Пример #1
0
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);
}
Пример #2
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;
}