#ifndef USER_H #define USER_H #include "sys.h" 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 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_SPAWN3, USER_BIND_KIND_DEBUG_SPAWN4, USER_BIND_KIND_DEBUG_WALLS, USER_BIND_KIND_DEBUG_FOLLOW, USER_BIND_KIND_DEBUG_DRAW, USER_BIND_KIND_DEBUG_CONSOLE, USER_BIND_KIND_DEBUG_CAMERA, USER_BIND_KIND_DEBUG_PAUSE, USER_BIND_KIND_DEBUG_STEP, USER_BIND_KIND_DEBUG_DRAG, USER_BIND_KIND_DEBUG_DELETE, USER_BIND_KIND_DEBUG_TELEPORT, USER_BIND_KIND_DEBUG_EXPLODE, USER_BIND_KIND_FULLSCREEN_MOD, 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_DEBUG_STEPS, USER_BIND_KIND_INCR_DEBUG_STEPS, USER_BIND_KIND_DECR_DEBUG_STEPS, #endif USER_BIND_KIND_COUNT }; struct user_startup_receipt { i32 _; }; struct user_startup_receipt user_startup(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 host_startup_receipt *host_sr, struct sim_startup_receipt *sim_sr, struct string connect_address_str); #endif