From: <geo...@us...> - 2011-09-23 13:55:28
|
Revision: 4282 http://freeorion.svn.sourceforge.net/freeorion/revision/?rev=4282&view=rev Author: geoffthemedio Date: 2011-09-23 13:55:21 +0000 (Fri, 23 Sep 2011) Log Message: ----------- -Added some workaround for a bug with options storing, where no species name stored in config.xml was being read as a boolean true and converted to a string "1", which was being rejected as a species name, leading to the first species in the list being used instead. Now, the species name "1" is checked for in two places, and "SP_HUMAN" is used instead if that occurs. -Made the fallback sepecies selection if an invalid species name is specified (such as "1" as above) start with the first playable species, instead of the first species, so that players shouldn't end up playing a species that wasn't meant for player use due to (for example) lacking the ability to colonize or build colony ships. -Modified HumanClientApp::NewSinglePlayerGame to not create a GalaxySetupWnd (invisibly to player) when quickstarting, since doing so served no purpose when quickstarting. -Tweaked species.txt layout. -Updated Version.cpp. Modified Paths: -------------- trunk/FreeOrion/UI/GalaxySetupWnd.cpp trunk/FreeOrion/client/human/HumanClientApp.cpp trunk/FreeOrion/default/species.txt trunk/FreeOrion/msvc2010/src/Version.cpp Modified: trunk/FreeOrion/UI/GalaxySetupWnd.cpp =================================================================== --- trunk/FreeOrion/UI/GalaxySetupWnd.cpp 2011-09-22 04:13:05 UTC (rev 4281) +++ trunk/FreeOrion/UI/GalaxySetupWnd.cpp 2011-09-23 13:55:21 UTC (rev 4282) @@ -38,7 +38,7 @@ db.Add("GameSetup.empire-name", "OPTIONS_DB_GAMESETUP_EMPIRE_NAME", std::string(""), Validator<std::string>()); db.Add("GameSetup.player-name", "OPTIONS_DB_GAMESETUP_PLAYER_NAME", std::string(""), Validator<std::string>()); db.Add("GameSetup.empire-color", "OPTIONS_DB_GAMESETUP_EMPIRE_COLOR", 0, RangedValidator<int>(0, 100)); - db.Add("GameSetup.starting-species", "OPTIONS_DB_GAMESETUP_STARTING_SPECIES_NAME", std::string(""), Validator<std::string>()); + db.Add("GameSetup.starting-species", "OPTIONS_DB_GAMESETUP_STARTING_SPECIES_NAME", std::string("SP_HUMAN"), Validator<std::string>()); db.Add("GameSetup.ai-players", "OPTIONS_DB_GAMESETUP_NUM_AI_PLAYERS", 3, RangedValidator<int>(0, MAX_AI_PLAYERS)); } bool temp_bool = RegisterOptions(&AddOptions); @@ -368,7 +368,7 @@ m_starting_secies_selector = new SpeciesSelector(LABELS_WIDTH, AUTO_CONTROL_HEIGHT); m_starting_secies_selector->MoveTo(GG::Pt(LABELS_WIDTH + 2 * CONTROL_MARGIN, ypos + (PANEL_CONTROL_SPACING - m_starting_secies_selector->Height()) / 2)); std::string default_starting_species = GetOptionsDB().Get<std::string>("GameSetup.starting-species"); - if (default_starting_species.empty()) { + if (default_starting_species.empty() || default_starting_species == "1") { // kludge / bug workaround for bug with options storage and retreival. Empty-string options are stored, but read in as "true" boolean, and converted to string equal to "1" // if no previously-stored species selection, need to pick a default std::vector<std::string> selector_avail_species = m_starting_secies_selector->AvailableSpeciesNames(); if (!selector_avail_species.empty()) { Modified: trunk/FreeOrion/client/human/HumanClientApp.cpp =================================================================== --- trunk/FreeOrion/client/human/HumanClientApp.cpp 2011-09-22 04:13:05 UTC (rev 4281) +++ trunk/FreeOrion/client/human/HumanClientApp.cpp 2011-09-23 13:55:21 UTC (rev 4282) @@ -304,13 +304,15 @@ } } - GalaxySetupWnd galaxy_wnd; + bool ended_with_ok = false; if (!quickstart) { + GalaxySetupWnd galaxy_wnd; galaxy_wnd.Run(); + ended_with_ok = galaxy_wnd.EndedWithOk(); } bool failed = false; - if (quickstart || galaxy_wnd.EndedWithOk()) { + if (quickstart || ended_with_ok) { unsigned int start_time = Ticks(); while (!m_networking.ConnectToLocalHostServer()) { if (SERVER_CONNECT_TIMEOUT < Ticks() - start_time) { @@ -360,12 +362,15 @@ human_player_setup_data.m_empire_color = GG::CLR_GREEN; human_player_setup_data.m_starting_species_name = GetOptionsDB().Get<std::string>("GameSetup.starting-species"); + if (human_player_setup_data.m_starting_species_name == "1") + human_player_setup_data.m_starting_species_name = "SP_HUMAN"; // kludge / bug workaround for bug with options storage and retreival. Empty-string options are stored, but read in as "true" boolean, and converted to string equal to "1" + if (!GetSpecies(human_player_setup_data.m_starting_species_name)) { const SpeciesManager& sm = GetSpeciesManager(); if (sm.empty()) human_player_setup_data.m_starting_species_name.clear(); else - human_player_setup_data.m_starting_species_name = sm.begin()->first; + human_player_setup_data.m_starting_species_name = sm.playable_begin()->first; } human_player_setup_data.m_save_game_empire_id = ALL_EMPIRES; // not used for new games Modified: trunk/FreeOrion/default/species.txt =================================================================== --- trunk/FreeOrion/default/species.txt 2011-09-22 04:13:05 UTC (rev 4281) +++ trunk/FreeOrion/default/species.txt 2011-09-23 13:55:21 UTC (rev 4282) @@ -2,8 +2,7 @@ name = "SP_CYNOS" description = "SP_CYNOS_DESC" Planetbound - - foci = [ + foci = [ Focus name = "FOCUS_FARMING" description = "FOCUS_FARMING_DESC" @@ -236,8 +235,7 @@ name = "SP_DERTHREAN" description = "SP_DERTHREAN_DESC" Planetbound - - foci = [ + foci = [ Focus name = "FOCUS_FARMING" description = "FOCUS_FARMING_DESC" @@ -608,8 +606,7 @@ name = "SP_GEORGE" description = "SP_GEORGE_DESC" Planetbound - - foci = [ + foci = [ Focus name = "FOCUS_FARMING" description = "FOCUS_FARMING_DESC" @@ -980,8 +977,7 @@ name = "SP_LAENFA" description = "SP_LAENFA_DESC" Planetbound - - foci = [ + foci = [ Focus name = "FOCUS_FARMING" description = "FOCUS_FARMING_DESC" @@ -1352,8 +1348,7 @@ name = "SP_PHINNERT" description = "SP_PHINNERT_DESC" Planetbound - - foci = [ + foci = [ Focus name = "FOCUS_FARMING" description = "FOCUS_FARMING_DESC" @@ -1703,9 +1698,7 @@ name = "SP_SSLITH" description = "SP_SSLITH_DESC" Planetbound - - - foci = [ + foci = [ Focus name = "FOCUS_FARMING" description = "FOCUS_FARMING_DESC" @@ -2075,9 +2068,7 @@ name = "SP_TAEGHIRUS" description = "SP_TAEGHIRUS_DESC" Planetbound - - - foci = [ + foci = [ Focus name = "FOCUS_FARMING" description = "FOCUS_FARMING_DESC" @@ -2447,8 +2438,7 @@ name = "SP_FIFTYSEVEN" description = "SP_FIFTYSEVEN_DESC" Planetbound - - foci = [ + foci = [ Focus name = "FOCUS_FARMING" description = "FOCUS_FARMING_DESC" @@ -2679,7 +2669,6 @@ name = "SP_SETINON" description = "SP_SETINON_DESC" Planetbound - foci = [ Focus name = "FOCUS_FARMING" @@ -2727,8 +2716,7 @@ name = "SP_NYMNMN" description = "SP_NYMNMN_DESC" Planetbound - - foci = [ + foci = [ Focus name = "FOCUS_FARMING" description = "FOCUS_FARMING_DESC" @@ -2961,8 +2949,7 @@ name = "SP_TRENCHERS" description = "SP_TRENCHERS_DESC" Planetbound - - foci = [ + foci = [ Focus name = "FOCUS_FARMING" description = "FOCUS_FARMING_DESC" @@ -3332,8 +3319,7 @@ name = "SP_BEIGEGOO" description = "SP_BEIGEGOO_DESC" Planetbound - - foci = [ + foci = [ Focus name = "FOCUS_FARMING" description = "FOCUS_FARMING_DESC" @@ -3568,9 +3554,7 @@ name = "SP_SILEXIAN" description = "SP_SILEXIAN_DESC" Planetbound - - - foci = [ + foci = [ Focus name = "FOCUS_FARMING" description = "FOCUS_FARMING_DESC" @@ -3940,9 +3924,7 @@ name = "SP_KOBUNTURA" description = "SP_KOBUNTURA_DESC" Planetbound - - - foci = [ + foci = [ Focus name = "FOCUS_FARMING" description = "FOCUS_FARMING_DESC" @@ -4312,9 +4294,7 @@ name = "SP_ETTY" description = "SP_ETTY_DESC" Planetbound - - - foci = [ + foci = [ Focus name = "FOCUS_FARMING" description = "FOCUS_FARMING_DESC" @@ -4684,9 +4664,7 @@ name = "SP_UGMORRS" description = "SP_UGMORRS_DESC" Planetbound - - - foci = [ + foci = [ Focus name = "FOCUS_FARMING" description = "FOCUS_FARMING_DESC" @@ -5056,9 +5034,7 @@ name = "SP_GISGUFGTHRIM" description = "SP_GISGUFGTHRIM_DESC" Planetbound - - - foci = [ + foci = [ Focus name = "FOCUS_FARMING" description = "FOCUS_FARMING_DESC" @@ -5428,9 +5404,7 @@ name = "SP_HIDDENGARDENER" description = "SP_HIDDENGARDENER_DESC" Planetbound - - - foci = [ + foci = [ Focus name = "FOCUS_FARMING" description = "FOCUS_FARMING_DESC" @@ -5640,9 +5614,7 @@ name = "SP_ABADDONNIANS" description = "SP_ABADDONNIANS_DESC" Planetbound - - - foci = [ + foci = [ Focus name = "FOCUS_FARMING" description = "FOCUS_FARMING_DESC" @@ -6012,8 +5984,7 @@ name = "SP_ACIREMA" description = "SP_ACIREMA_DESC" Planetbound - - foci = [ + foci = [ Focus name = "FOCUS_FARMING" description = "FOCUS_FARMING_DESC" @@ -6378,6 +6349,7 @@ type = Gasgiant environment = Uninhabitable ] graphic = "icons/species/acirema.png" + Species name = "SP_HUMAN" description = "SP_HUMAN_DESC" @@ -12009,7 +11981,6 @@ description = "SP_TEST_DESC" Planetbound SpaceBound - foci = [ Focus name = "FOCUS_FARMING" Modified: trunk/FreeOrion/msvc2010/src/Version.cpp =================================================================== --- trunk/FreeOrion/msvc2010/src/Version.cpp 2011-09-22 04:13:05 UTC (rev 4281) +++ trunk/FreeOrion/msvc2010/src/Version.cpp 2011-09-23 13:55:21 UTC (rev 4282) @@ -1,10 +1,8 @@ #include "../../util/Version.h" namespace { - static const std::string retval = "v0.3.17 [SVN 4281] MSVC 2010"; + static const std::string retval = "v0.3.17 [SVN 4282] MSVC 2010"; } const std::string& FreeOrionVersionString() -{ - return retval; -} +{ return retval; } |