#include "App.h" #include #include "RoomEntity.h" #include #include #include #ifdef __EMSCRIPTEN__ #include #endif static NGame::TApp *app = nullptr; static void InitApp(void) { app = NGame::TApp::Instance(); app->EntityManager().RegisterEntity("HeroEntity"); app->EntityManager().RegisterEntity("DirtEntity"); app->EntityManager().RegisterEntity("GrassEntity"); app->EntityManager().RegisterEntity("PlankEntity"); app->EntityManager().RegisterEntity("StoneEntity"); app->EntityManager().RegisterEntity("LadderEntity"); app->EntityManager().RegisterEntity("ExplosionEntity"); app->EntityManager().RegisterEntity("KeyEntity"); app->EntityManager().RegisterEntity("MineEntity"); app->EntityManager().RegisterEntity("CurseEntity"); app->EntityManager().RegisterEntity("SpikeEntity"); app->EntityManager().RegisterEntity("EntranceEntity"); app->EntityManager().RegisterEntity("ExitEntity"); app->EntityManager().RegisterEntity("FloatingTextEntity"); app->EntityManager().RegisterEntity("BackgroundTiler"); app->EntityManager().RegisterEntity("RoomEntity"); app->EntityManager().RegisterEntity("RubbleEntity"); app->EntityManager().RegisterEntity("MainMenu"); app->EntityManager().RegisterEntity("IntroMenu"); app->EntityManager().RegisterEntity("OutroMenu"); app->EntityManager().RegisterEntity("EulaMenu"); app->EntityManager().RegisterEntity("TorchEntity"); app->EntityManager().RegisterEntity("GrenadeEntity"); app->AudioManager().SetVolume(.3); app->EntityManager().AddToDeferred("IntroMenu"); app->EntityManager().Reset(); } static void MainLoop(void) { if (app) { app->Run(); } else { InitApp(); } } int main(int argc, char** argv) { SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO); srand(time(NULL)); #ifdef __EMSCRIPTEN__ emscripten_set_main_loop(MainLoop, -1, true); #else while (true) { MainLoop(); } #endif return 0; }