int main (void) { InitTime(); // initialize the GL code glutInitDisplayMode(GLUT_RGBA | GLUT_DEPTH | GLUT_DOUBLE); glutInitWindowPosition(200, 0); glutInitWindowSize(gWindowWidth, gWindowHeight); glutCreateWindow("AI Engine App"); glutDisplayFunc(DisplayFunc); glutKeyboardFunc(KeyboardFunc); glutSpecialFunc(KeyboardSpecialFunc); glutReshapeFunc(ReshapeFunc); glutIdleFunc(IdleFunc); Initialize3D(); HUDInitScreen(); //AI Game Object Creation InitDelayedMessages(); { int i; GameObject* go; char name[256]; for( i=0; i<40; i++ ) { sprintf( name, "drone%d", i ); go = GODBCreateAndReturnGO( name ); FSMInitialize( go->unique_id, FSM_Drone ); } } glutSwapBuffers(); glutMainLoop(); return (0); }
int usdxMain(int argc, char ** argv) { try { const char * windowTitle = USDXVersionStr(); if (Platform::TerminateIfAlreadyRunning(windowTitle)) return 1; // fix the locale for string-to-float parsing in C-libs Common::SetDefaultNumericLocale(); // initialize SDL // without SDL_INIT_TIMER SDL_GetTicks() might return strange values if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER) == -1) return 1; // initialize SDL_mixer if (Mix_OpenAudio(MIX_DEFAULT_FREQUENCY, MIX_DEFAULT_FORMAT, MIX_DEFAULT_CHANNELS, 4096) == -1) return 1; SDL_StartTextInput(); // create LuaCore first so other classes can register their events new LuaCore(); // load the command-line arguments Params.Load(argc, argv); // Setup the logger/benchmarker new Log(); sLog.BenchmarkStart(0); // Setup the texture manager new TextureMgr(); // Language sLog.BenchmarkStart(1); sLog.Status("Initialize Paths", "Initialization"); InitializePaths(); sLog.Status("Load Language", "Initialization"); new Language(); // Add const values sLanguage.AddConst("US_VERSION", USDXVersionStr()); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading Language"); // Skins sLog.BenchmarkStart(1); sLog.Status("Loading Skin List", "Initialization"); new Skins(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading Skin List"); // Themes sLog.BenchmarkStart(1); sLog.Status("Loading Theme List", "Initialization"); new Themes(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading Theme List"); // INI file sLog.BenchmarkStart(1); sLog.Status("Loading INI", "Initialization"); new Ini(); sIni.Load(); // Set the language. // NOTE: Command-line takes precedence. if (!Params.LanguageName.empty()) sLanguage.ChangeLanguage(Params.LanguageName); else sLanguage.ChangeLanguage(sIni.LanguageName); // It is possible that this is the first run, so create an .ini file if necessary. sLog.Status("Writing INI", "Initialization"); sIni.Save(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading INI"); // Sound sLog.BenchmarkStart(1); sLog.Status("Initialize Sound", "Initialization"); new SoundLibrary(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Initializing Sound"); // Lyrics engine with media reference timer // new LyricsState(); // Theme sLog.BenchmarkStart(1); sLog.Status("Load Theme", "Initialization"); sThemes.LoadTheme(sIni.Theme, sIni.ThemeColor); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading Theme"); // Covers cache sLog.BenchmarkStart(1); sLog.Status("Creating Covers cache", "Initialization"); // new Covers(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading Covers cache"); // Category covers sLog.BenchmarkStart(1); sLog.Status("Creating Category Covers array", "Initialization"); // new CatCovers(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading Category Covers array"); // Songs sLog.BenchmarkStart(1); sLog.Status("Creating song array", "Initialization"); // new Songs(); sLog.Status("Creating 2nd song array", "Initialization"); // new CatSongs(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading songs"); // Graphics sLog.BenchmarkStart(1); sLog.Status("Initialize 3D", "Initialization"); Initialize3D(windowTitle); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Initializing 3D"); // Score saving sLog.BenchmarkStart(1); sLog.Status("Loading database", "Initialization"); new Database(); if (ScoreFile.empty()) { Platform::GetGameUserPath(&ScoreFile); ScoreFile /= "Ultrastar.db"; } sDatabase.Init(ScoreFile); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading database"); // Playlist manager sLog.BenchmarkStart(1); sLog.Status("Playlist manager", "Initialization"); // new PlaylistManager(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading playlist manager"); // Effect manager (for the twinkling golden stars and such) sLog.BenchmarkStart(1); sLog.Status("Effect manager", "Initialization"); // new EffectManager(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading effect manager"); // Joypad if (sIni.Joypad || Params.Joypad) { sLog.BenchmarkStart(1); sLog.Status("Joystick", "Initialization"); // new Joystick(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading joystick"); } // Party manager sLog.BenchmarkStart(1); sLog.Status("Party manager", "Initialization"); // new PartyGame(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading party manager"); // Lua sLog.BenchmarkStart(1); // sLuaCore.RegisterModule("Log", LuaLog_Lib_f); // sLuaCore.RegisterModule("Gl", LuaGl_Lib_f); // sLuaCore.RegisterModule("TextGl", LuaTextGl_Lib_f); // sLuaCore.RegisterModule("Party", LuaParty_Lib_f); // sLuaCore.RegisterModule("ScreenSing", LuaScreenSing_Lib_f); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Initializing LuaCore"); // Lua plugins sLog.BenchmarkStart(1); sLuaCore.LoadPlugins(); sLog.BenchmarkEnd(1); sLog.Benchmark(1, "Loading Lua plugins"); sLuaCore.DumpPlugins(); sLog.BenchmarkEnd(0); sLog.Benchmark(0, "Loading time"); // Prepare software cursor sDisplay.SetCursor(); // Start background music sSoundLib.StartBgMusic(); // Check microphone settings, go to record options if they are incorrect /* int badPlayer = AudioInputProcessor::ValidateSettings(); if (badPlayer >= 0) { ScreenPopupError::ShowPopup("ERROR_PLAYER_DEVICE_ASSIGNMENT", BadPlayer + 1); sDisplay.CurrentScreen->FadeTo(&ScreenOptionsRecord); } */ // Start main loop sLog.Status("Main loop", "Initialization"); usdxMainLoop(); } catch (const CriticalException& e) { printf("Critical exception occurred: %s\n", e.what()); } catch (const std::exception& e) { printf("Unhandled exception occurred: %s\n", e.what()); } catch (...) { printf("Unhandled exception occurred.\n"); } FreeGfxResources(); // delete PartyGame::getSingletonPtr(); // delete Joystick::getSingletonPtr(); // delete EffectManager::getSingletonPtr(); // delete PlaylistManager::getSingletonPtr(); delete Database::getSingletonPtr(); // delete CatSongs::getSingletonPtr(); // delete Songs::getSingletonPtr(); // delete CatCovers::getSingletonPtr(); // delete Covers::getSingletonPtr(); // delete LyricsState::getSingletonPtr(); delete Ini::getSingletonPtr(); delete Themes::getSingletonPtr(); delete Skins::getSingletonPtr(); delete Language::getSingletonPtr(); delete TextureMgr::getSingletonPtr(); delete Log::getSingletonPtr(); delete LuaCore::getSingletonPtr(); delete SoundLibrary::getSingletonPtr(); SDL_StopTextInput(); Mix_CloseAudio(); SDL_Quit(); return 0; }