/** * Unitializes drivers, frees allocated memory, cleans pools, ... * Generally, prepares the game for shutting down */ static void ShutdownGame() { IConsoleFree(); if (_network_available) NetworkShutDown(); // Shut down the network and close any open connections DriverFactoryBase::ShutdownDrivers(); UnInitWindowSystem(); /* stop the scripts */ AI::Uninitialize(false); Game::Uninitialize(false); /* Uninitialize variables that are allocated dynamically */ GamelogReset(); #ifdef ENABLE_NETWORK free(_config_file); #endif LinkGraphSchedule::Clear(); PoolBase::Clean(PT_ALL); /* No NewGRFs were loaded when it was still bootstrapping. */ if (_game_mode != GM_BOOTSTRAP) ResetNewGRFData(); /* Close all and any open filehandles */ FioCloseAll(); UninitFreeType(); }
/** * Unitializes drivers, frees allocated memory, cleans pools, ... * Generally, prepares the game for shutting down */ static void ShutdownGame() { IConsoleFree(); if (_network_available) NetworkShutDown(); // Shut down the network and close any open connections DriverFactoryBase::ShutdownDrivers(); UnInitWindowSystem(); /* stop the AI */ AI::Uninitialize(false); /* Uninitialize variables that are allocated dynamically */ GamelogReset(); _town_pool.CleanPool(); _industry_pool.CleanPool(); _station_pool.CleanPool(); _roadstop_pool.CleanPool(); _vehicle_pool.CleanPool(); _sign_pool.CleanPool(); _order_pool.CleanPool(); _group_pool.CleanPool(); _cargopacket_pool.CleanPool(); _engine_pool.CleanPool(); _company_pool.CleanPool(); #ifdef ENABLE_NETWORK free(_config_file); #endif ResetNewGRFData(); /* Close all and any open filehandles */ FioCloseAll(); }
void InitializeGame(uint size_x, uint size_y, bool reset_date, bool reset_settings) { /* Make sure there isn't any window that can influence anything * related to the new game we're about to start/load. */ UnInitWindowSystem(); AllocateMap(size_x, size_y); _pause_mode = PM_UNPAUSED; _fast_forward = 0; _tick_counter = 0; _cur_tileloop_tile = 0; _thd.redsq = INVALID_TILE; if (reset_settings) MakeNewgameSettingsLive(); if (reset_date) { SetDate(ConvertYMDToDate(_settings_game.game_creation.starting_year, 0, 1), 0); InitializeOldNames(); } PoolBase::Clean(PT_NORMAL); ResetPersistentNewGRFData(); InitializeSound(); InitializeMusic(); InitializeVehicles(); InitNewsItemStructs(); InitializeLandscape(); InitializeRailGui(); InitializeRoadGui(); InitializeAirportGui(); InitializeDockGui(); InitializeObjectGui(); InitializeAIGui(); InitializeTrees(); InitializeIndustries(); InitializeObjects(); InitializeBuildingCounts(); InitializeNPF(); InitializeCompanies(); AI::Initialize(); Game::Initialize(); InitializeCheats(); InitTextEffects(); #ifdef ENABLE_NETWORK NetworkInitChatMessage(); #endif /* ENABLE_NETWORK */ InitializeAnimatedTiles(); InitializeEconomy(); ResetObjectToPlace(); GamelogReset(); GamelogStartAction(GLAT_START); GamelogRevision(); GamelogMode(); GamelogGRFAddList(_grfconfig); GamelogStopAction(); }