[Widelands-cvs] SF.net SVN: widelands:[3268] trunk/src
Status: Beta
Brought to you by:
sirver
From: <nas...@us...> - 2008-08-18 05:42:25
|
Revision: 3268 http://widelands.svn.sourceforge.net/widelands/?rev=3268&view=rev Author: nasenbaer_peter Date: 2008-08-18 05:42:23 +0000 (Mon, 18 Aug 2008) Log Message: ----------- Clean up in Game-Class : * Game::run_splayer_map_direct(...) is only able to load a scenario map, so rename it and remove boolean argument "scenario" * Revert renaming of Game::init_savegame() and generalize it's use. After running this function the savegame should be at the same state like a map loaded with Game::init(...) with only difference, that players are already initalised. a call to Game::run(loader_UI, true) takes care about this difference [ in case of Game::init(...) we call Game::run(loader_UI) ] * Change Game::run_load_game(...) so it sends boolean argument "multiplayer" to game_loader. Anyway this function is not yet able to load a multiplayer savegame, so we perhaps should rename it as well and make it singleplayer only. Modified Paths: -------------- trunk/src/game.cc trunk/src/game.h trunk/src/netclient.cc trunk/src/nethost.cc trunk/src/wlapplication.cc Modified: trunk/src/game.cc =================================================================== --- trunk/src/game.cc 2008-08-17 19:02:54 UTC (rev 3267) +++ trunk/src/game.cc 2008-08-18 05:42:23 UTC (rev 3268) @@ -230,7 +230,7 @@ } -bool Game::run_splayer_map_direct(const char* mapname, bool scenario) { +bool Game::run_splayer_scenario_direct(const char* mapname) { assert(!get_map()); set_map(new Map); @@ -241,14 +241,11 @@ GameTips tips (loaderUI); loaderUI.step (_("Preloading a map")); - if (scenario) { + { i18n::Textdomain textdomain(mapname); // load scenario textdomain log("Loading the locals for scenario. file: %s.mo\n", mapname); maploader->preload_map(true); - } else { - maploader->preload_map(false); } - const std::string background = map().get_background(); if (background.size() > 0) loaderUI.set_background(background); @@ -267,16 +264,15 @@ map().get_scenario_player_name (p)); } - set_iabase(new Interactive_Player(*this, 1, scenario, false)); + set_iabase(new Interactive_Player(*this, 1, true, false)); - loaderUI.step (_("Loading a map")); // Must be printed before loading the scenarios textdomain, else it won't be translated. + loaderUI.step (_("Loading a map")); // Reload campaign textdomain - if (scenario) { + { i18n::Textdomain textdomain(mapname); maploader->load_map_complete(this, true); - } else - maploader->load_map_complete(this, false); + } delete maploader; maploader = 0; @@ -344,8 +340,11 @@ /** * Initialize the savegame based on the given settings. + * At return the game is at the same state like a map loaded with Game::init() + * Only difference is, that players are already initialised. + * run(loaderUI, true) takes care about this difference. */ -void Game::init_multiplayer_savegame(UI::ProgressWindow & loaderUI, const GameSettings& settings) { +void Game::init_savegame(UI::ProgressWindow & loaderUI, const GameSettings& settings) { g_gr->flush(PicMod_Menu); loaderUI.step(_("Preloading map")); @@ -357,7 +356,7 @@ (g_fs->MakeSubFileSystem(settings.mapfilename.c_str())); Game_Loader gl(*fs, this); loaderUI.step(_("Loading...")); - gl.load_game(true); + gl.load_game(settings.multiplayer); } catch (...) { throw; } @@ -392,7 +391,7 @@ Game_Loader gl(*fs, this); loaderUI.step(_("Loading...")); - gl.load_game(); + gl.load_game(multiplayer); } set_game_controller(GameController::createSinglePlayer(this, true, 1)); Modified: trunk/src/game.h =================================================================== --- trunk/src/game.h 2008-08-17 19:02:54 UTC (rev 3267) +++ trunk/src/game.h 2008-08-18 05:42:23 UTC (rev 3268) @@ -94,8 +94,8 @@ void set_write_replay(bool wr); void save_syncstream(bool save); void init(UI::ProgressWindow & loader_ui, const GameSettings& settings); - void init_multiplayer_savegame(UI::ProgressWindow & loader_ui, const GameSettings& settings); - bool run_splayer_map_direct(const char* mapname, bool scenario); + void init_savegame(UI::ProgressWindow & loader_ui, const GameSettings& settings); + bool run_splayer_scenario_direct(const char* mapname); bool run (UI::ProgressWindow & loader_ui, bool = false); /** Modified: trunk/src/netclient.cc =================================================================== --- trunk/src/netclient.cc 2008-08-17 19:02:54 UTC (rev 3267) +++ trunk/src/netclient.cc 2008-08-18 05:42:23 UTC (rev 3268) @@ -145,7 +145,7 @@ if(!d->settings.savegame) // new map game.init(loaderUI, d->settings); else // savegame - game.init_multiplayer_savegame(loaderUI, d->settings); + game.init_savegame(loaderUI, d->settings); d->time.reset(game.get_gametime()); d->lasttimestamp = game.get_gametime(); d->lasttimestamp_realtime = WLApplication::get()->get_time(); Modified: trunk/src/nethost.cc =================================================================== --- trunk/src/nethost.cc 2008-08-17 19:02:54 UTC (rev 3267) +++ trunk/src/nethost.cc 2008-08-18 05:42:23 UTC (rev 3268) @@ -307,7 +307,7 @@ if(!d->settings.savegame) // new game game.init(loaderUI, d->settings); else // savegame - game.init_multiplayer_savegame(loaderUI, d->settings); + game.init_savegame(loaderUI, d->settings); d->pseudo_networktime = game.get_gametime(); d->time.reset(d->pseudo_networktime); d->lastframe = WLApplication::get()->get_time(); Modified: trunk/src/wlapplication.cc =================================================================== --- trunk/src/wlapplication.cc 2008-08-17 19:02:54 UTC (rev 3267) +++ trunk/src/wlapplication.cc 2008-08-18 05:42:23 UTC (rev 3268) @@ -292,7 +292,7 @@ } else if (m_scenario_filename.size()) { Widelands::Game game; try { - game.run_splayer_map_direct(m_scenario_filename.c_str(), true); + game.run_splayer_scenario_direct(m_scenario_filename.c_str()); } catch (...) { emergency_save(game); throw; @@ -1195,7 +1195,7 @@ try { // Load selected campaign-map-file - if (game.run_splayer_map_direct(filename.c_str(), true)) + if (game.run_splayer_scenario_direct(filename.c_str())) done = true; } catch (...) { emergency_save(game); @@ -1394,7 +1394,7 @@ return false; if (code == 2) { // scenario try { - game.run_splayer_map_direct(sp.getMap().c_str(), true); + game.run_splayer_scenario_direct(sp.getMap().c_str()); } catch (...) { emergency_save(game); throw; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |