#ifndef ENGINE_H # define ENGINE_H #include #include #include #include #include #include #include #include typedef enum { CRITICAL_FAIL, FAIL, SUCCESS, CRITICAL_SUCCESS, } CHECK_STATE; typedef enum { SPLASH_SCREEN, GAMELOOP_SCREEN, CREDIT_SCREEN, GAMEOVER_SCREEN, SERVER_SCREEN, SECRET_SCREEN, DEBUG_SCREEN, } ENGINE_STATE_E; typedef struct { int key[4];//should be the number of action in PLAYER_ACTION union { int key; int pad; int mouse; } press; Vector2 mouse_pos; Vector2 mouse_delta; //int mouse_pressed[2]; } Input; typedef struct { int state; Player player; Assets assets; } Context; //cities //hideout //tiles //level //npc //clan //army //team //typedef struct { // EVENT_TYPE trigger; // ACTIVITY_STATE required_state; // bool (*condition)(int e, Event ev); // void *(*effect)(int e, Event ev); //} virtualRule; //typedef struct { // EVENT_TYPE trigger; // ACTIVITY_STATE required_state; // bool (*condition)(int e, Event ev); // void *(*effect)(int e, Event ev); //} physicalRule; //Render Assets LoadAssets(void); void UnloadAssets(const Assets *assets); void LoadPipeline(); void UnloadPipeline(); void RenderingDeferred3D(const Scene* scene, const ModelRegistry *models, const AnimationRegistry *animations, const TextureRegistry *textures, const FontRegistry *fonts); //UI void UserInterface(const Player *player); //void Menu(); void EngineStateSwitch(ENGINE_STATE_E engine_state); void GameLoop(const double tick_time); //other stuff here #endif