bool stageOneShutDown() { debug(LOG_WZ, "== stageOneShutDown =="); atmosSetWeatherType(WT_NONE); // reset weather and free its data wzPerfShutdown(); pie_FreeShaders(); if (audio_Disabled() == false) { sound_CheckAllUnloaded(); } proj_Shutdown(); releaseMission(); if (!aiShutdown()) { return false; } if (!objShutdown()) { return false; } grpShutDown(); ResearchRelease(); //free up the gateway stuff? gwShutDown(); shutdownTerrain(); if (!mapShutdown()) { return false; } scrShutDown(); gridShutDown(); debug(LOG_TEXTURE, "== stageOneShutDown =="); modelShutdown(); pie_TexShutDown(); // Use mod_multiplay as the default (campaign might have set it to mod_singleplayer) rebuildSearchPath(mod_multiplay, true); pie_TexInit(); // restart it initMiscVars(); wzSceneEnd("Main game loop"); wzSceneBegin("Main menu loop"); return true; }
void systemShutdown(void) { pie_ShutdownRadar(); if (mod_list) { free(mod_list); } shutdownEffectsSystem(); wzSceneEnd("Main menu loop"); keyClearMappings(); // free up all the load functions (all the data should already have been freed) resReleaseAll(); if (!multiShutdown()) // ajl. init net stuff { debug(LOG_FATAL, "Unable to multiShutdown() cleanly!"); abort(); } debug(LOG_MAIN, "shutting down audio subsystems"); debug(LOG_MAIN, "shutting down CD audio"); cdAudio_Close(); if ( audio_Disabled() == false && !audio_Shutdown() ) { debug(LOG_FATAL, "Unable to audio_Shutdown() cleanly!"); abort(); } debug(LOG_MAIN, "shutting down graphics subsystem"); levShutDown(); widgShutDown(); fpathShutdown(); mapShutdown(); debug(LOG_MAIN, "shutting down everything else"); pal_ShutDown(); // currently unused stub frameShutDown(); // close screen / SDL / resources / cursors / trig screenShutDown(); closeConfig(); // "registry" close cleanSearchPath(); // clean PHYSFS search paths debug_exit(); // cleanup debug routines PHYSFS_deinit(); // cleanup PHYSFS (If failure, state of PhysFS is undefined, and probably badly screwed up.) // NOTE: Exception handler is cleaned via atexit(ExchndlShutdown); }
bool stageOneInitialise(void) { debug(LOG_WZ, "== stageOneInitalise =="); wzSceneEnd("Main menu loop"); wzSceneBegin("Main game loop"); // Initialise all globals and statics everwhere. if(!InitialiseGlobals()) { return false; } if (!stringsInitialise()) /* Initialise the string system */ { return false; } if (!objInitialise()) /* Initialise the object system */ { return false; } if (!droidInit()) { return false; } if (!initViewData()) { return false; } if (!grpInitialise()) { return false; } if (!aiInitialise()) /* Initialise the AI system */ // pregame { return false; } if (!anim_Init()) { return false; } if ( !animObj_Init( init_ObjectDead ) ) { return false; } if (!allocPlayerPower()) /*set up the PlayerPower for each player - this should only be done ONCE now*/ { return false; } // initialise the visibility stuff if (!visInitialise()) { return false; } if (!proj_InitSystem()) { return false; } if (!scrTabInitialise()) // Initialise the old wzscript system { return false; } if (!gridInitialise()) { return false; } initMission(); initTransporters(); scriptInit(); // do this here so that the very first mission has it initialised initRunData(); gameTimeInit(); eventTimeReset(gameTime / SCR_TICKRATE); return true; }