#ifndef USER_H #define USER_H struct sys_window; struct work_startup_receipt; struct renderer_startup_receipt; struct font_startup_receipt; struct sprite_startup_receipt; struct draw_startup_receipt; struct asset_cache_startup_receipt; struct sound_startup_receipt; struct mixer_startup_receipt; struct phys_startup_receipt; struct host_startup_receipt; struct sim_startup_receipt; enum user_bind_kind { USER_BIND_KIND_NONE, USER_BIND_KIND_MOVE_UP, USER_BIND_KIND_MOVE_DOWN, USER_BIND_KIND_MOVE_LEFT, USER_BIND_KIND_MOVE_RIGHT, USER_BIND_KIND_WALK, USER_BIND_KIND_FIRE, USER_BIND_KIND_FIRE_ALT, /* Testing */ USER_BIND_KIND_TILE_TEST, USER_BIND_KIND_DEBUG_CLEAR, USER_BIND_KIND_DEBUG_SPAWN1, USER_BIND_KIND_DEBUG_SPAWN2, USER_BIND_KIND_DEBUG_FOLLOW, USER_BIND_KIND_DEBUG_DRAW, USER_BIND_KIND_DEBUG_CAMERA, USER_BIND_KIND_DEBUG_PAUSE, USER_BIND_KIND_DEBUG_STEP, USER_BIND_KIND_DEBUG_DRAG, USER_BIND_KIND_DEBUG_TELEPORT, USER_BIND_KIND_DEBUG_EXPLODE, USER_BIND_KIND_FULLSCREEN, USER_BIND_KIND_ZOOM_IN, USER_BIND_KIND_ZOOM_OUT, USER_BIND_KIND_PAN, #if RTC /* Debug */ USER_BIND_KIND_RESET_COLLIDER_GJK_STEPS, USER_BIND_KIND_INCR_COLLIDER_GJK_STEPS, USER_BIND_KIND_DECR_COLLIDER_GJK_STEPS, #endif USER_BIND_KIND_COUNT }; struct user_startup_receipt { i32 _; }; struct user_startup_receipt user_startup(struct work_startup_receipt *work_sr, struct renderer_startup_receipt *renderer_sr, struct font_startup_receipt *font_sr, struct sprite_startup_receipt *sprite_sr, struct draw_startup_receipt *draw_sr, struct asset_cache_startup_receipt *asset_cache_sr, struct sound_startup_receipt *sound_sr, struct mixer_startup_receipt *mixer_sr, struct phys_startup_receipt *phys_sr, struct host_startup_receipt *host_sr, struct sim_startup_receipt *sim_sr, struct string connect_address_str, struct sys_window *window); #endif