misc.cpp

Go to the documentation of this file.
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 "economy_func.h"
00020 #include "date_func.h"
00021 #include "texteff.hpp"
00022 #include "gfx_func.h"
00023 #include "gamelog.h"
00024 #include "animated_tile_func.h"
00025 #include "tilehighlight_func.h"
00026 #include "network/network_func.h"
00027 #include "window_func.h"
00028 #include "core/pool_type.hpp"
00029 #include "game/game.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   Game::Initialize();
00099   InitializeCheats();
00100 
00101   InitTextEffects();
00102 #ifdef ENABLE_NETWORK
00103   NetworkInitChatMessage();
00104 #endif /* ENABLE_NETWORK */
00105   InitializeAnimatedTiles();
00106 
00107   InitializeLinkGraphs();
00108   InitializeEconomy();
00109 
00110   ResetObjectToPlace();
00111 
00112   GamelogReset();
00113   GamelogStartAction(GLAT_START);
00114   GamelogRevision();
00115   GamelogMode();
00116   GamelogGRFAddList(_grfconfig);
00117   GamelogStopAction();
00118 }