00001 /* $Id$ */ 00002 00003 /* 00004 * This file is part of OpenTTD. 00005 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. 00006 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00007 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>. 00008 */ 00009 00012 #include "stdafx.h" 00013 #include "landscape.h" 00014 #include "news_func.h" 00015 #include "ai/ai.hpp" 00016 #include "ai/ai_gui.hpp" 00017 #include "newgrf.h" 00018 #include "newgrf_house.h" 00019 #include "group.h" 00020 #include "economy_func.h" 00021 #include "date_func.h" 00022 #include "texteff.hpp" 00023 #include "gfx_func.h" 00024 #include "gamelog.h" 00025 #include "animated_tile_func.h" 00026 #include "tilehighlight_func.h" 00027 #include "network/network_func.h" 00028 #include "window_func.h" 00029 #include "core/pool_type.hpp" 00030 00031 00032 extern TileIndex _cur_tileloop_tile; 00033 extern void MakeNewgameSettingsLive(); 00034 00035 void InitializeSound(); 00036 void InitializeMusic(); 00037 void InitializeVehicles(); 00038 void InitializeRailGui(); 00039 void InitializeRoadGui(); 00040 void InitializeAirportGui(); 00041 void InitializeDockGui(); 00042 void InitializeObjectGui(); 00043 void InitializeIndustries(); 00044 void InitializeObjects(); 00045 void InitializeTrees(); 00046 void InitializeCompanies(); 00047 void InitializeCheats(); 00048 void InitializeNPF(); 00049 void InitializeOldNames(); 00050 void InitializeLinkGraphs(); 00051 00052 void InitializeGame(uint size_x, uint size_y, bool reset_date, bool reset_settings) 00053 { 00054 /* Make sure there isn't any window that can influence anything 00055 * related to the new game we're about to start/load. */ 00056 UnInitWindowSystem(); 00057 00058 AllocateMap(size_x, size_y); 00059 00060 _pause_mode = PM_UNPAUSED; 00061 _fast_forward = 0; 00062 _tick_counter = 0; 00063 _cur_tileloop_tile = 0; 00064 _thd.redsq = INVALID_TILE; 00065 if (reset_settings) MakeNewgameSettingsLive(); 00066 00067 if (reset_date) { 00068 SetDate(ConvertYMDToDate(_settings_game.game_creation.starting_year, 0, 1), 0); 00069 InitializeOldNames(); 00070 } 00071 00072 PoolBase::Clean(PT_NORMAL); 00073 00074 ResetPersistentNewGRFData(); 00075 00076 InitializeSound(); 00077 InitializeMusic(); 00078 00079 InitializeVehicles(); 00080 00081 InitNewsItemStructs(); 00082 InitializeLandscape(); 00083 InitializeRailGui(); 00084 InitializeRoadGui(); 00085 InitializeAirportGui(); 00086 InitializeDockGui(); 00087 InitializeObjectGui(); 00088 InitializeAIGui(); 00089 InitializeTrees(); 00090 InitializeIndustries(); 00091 InitializeObjects(); 00092 InitializeBuildingCounts(); 00093 00094 InitializeNPF(); 00095 00096 InitializeCompanies(); 00097 AI::Initialize(); 00098 InitializeCheats(); 00099 00100 InitTextEffects(); 00101 #ifdef ENABLE_NETWORK 00102 NetworkInitChatMessage(); 00103 #endif /* ENABLE_NETWORK */ 00104 InitializeAnimatedTiles(); 00105 00106 InitializeLinkGraphs(); 00107 InitializeEconomy(); 00108 00109 ResetObjectToPlace(); 00110 00111 GamelogReset(); 00112 GamelogStartAction(GLAT_START); 00113 GamelogRevision(); 00114 GamelogMode(); 00115 GamelogGRFAddList(_grfconfig); 00116 GamelogStopAction(); 00117 }