#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 enum { DENDRITIC_VOLTAGE, LAZENBYCOMP_LIQUID, LAZENBYCOMP_SMOOTH, POTRA, } FONTS_ENUM; 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; typedef struct { Font fonts[4];// Texture textures;// Model models;// Sound sound; } Assets; //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; # ifndef ENGINE_PROTOTYPE # define ENGINE_PROTOTYPE //Render void LoadPipeline(); void UnloadPipeline(); //UI void UserInterface(const Player *player); //void Menu(); void EngineStateSwitch(ENGINE_STATE_E engine_state); # endif //other stuff here #endif