Code
1361void loadFromIni(FIGameIniParser& iniParser)1362{1363 if(gameStarted())1364 return;1365 FString szHolder;1366 CvString tempString;13671368 int iHolder;1369 iniParser.GetKeyValue("GAME", "QuickCombat", &iHolder, "Force quick combat animations", 0);1370 setQuickCombatDefault(iHolder != 0);1371 setQuickCombat(quickCombatDefault());13721373 FString szGameDefault = "";//FString(GC.getSetupData().getAlias().GetCString());1374 if(szGameDefault.IsEmpty())1375 {1376 Localization::String strGameName = Localization::Lookup("TXT_KEY_DEFAULT_GAMENAME");1377 szGameDefault = strGameName.toUTF8();1378 }1379 else1380 {1381 Localization::String strGameName = Localization::Lookup("TXT_KEY_USER_GAMENAME");1382 szGameDefault += strGameName.toUTF8();1383 }1384 iniParser.GetKeyValue("GAME", "GameName", &szHolder, "Game Name", szGameDefault);1385 tempString = szHolder;1386 setGameName(tempString);1387 // World Size1388 iniParser.GetKeyValue("GAME", "WorldSize", &szHolder, "Worldsize options are WORLDSIZE_DUEL/WORLDSIZE_TINY/WORLDSIZE_SMALL/WORLDSIZE_STANDARD/WORLDSIZE_LARGE/WORLDSIZE_HUGE", "WORLDSIZE_SMALL");1389 tempString = szHolder;1390 setWorldSize(tempString);1391 // Climate1392 iniParser.GetKeyValue("GAME", "Climate", &szHolder, "Climate options are CLIMATE_ARID/CLIMATE_TEMPERATE/CLIMATE_TROPICAL", "CLIMATE_TEMPERATE");1393 tempString = szHolder;1394 setClimate(tempString);1395 // Sea Level1396 iniParser.GetKeyValue("GAME", "SeaLevel", &szHolder, "Sealevel options are SEALEVEL_LOW/SEALEVEL_MEDIUM/SEALEVEL_HIGH", "SEALEVEL_MEDIUM");1397 tempString = szHolder;1398 setSeaLevel(tempString);1399 // Era1400 iniParser.GetKeyValue("GAME", "Era", &szHolder, "Era options are ERA_ANCIENT/ERA_CLASSICAL/ERA_MEDIEVAL/ERA_RENAISSANCE/ERA_INDUSTRIAL/ERA_MODERN", "ERA_ANCIENT");1401 tempString = szHolder;1402 setEra(tempString);1403 // Game speed1404 iniParser.GetKeyValue("GAME", "GameSpeed", &szHolder, "GameSpeed options are GAMESPEED_QUICK/GAMESPEED_STANDARD/GAMESPEED_EPIC/GAMESPEED_MARATHON", "GAMESPEED_STANDARD");1405 tempString = szHolder;1406 setGameSpeed(tempString);1407 // Quick Handicap14081409 int iNumBools;1410 bool* pbBools;14111412 // Victory Conditions1413 iniParser.GetKeyValue("GAME", "VictoryConditions", &szHolder, "Victory Conditions", "11111111");1414 if(szHolder != "EMPTY")1415 {1416 StringToBools(szHolder, &iNumBools, &pbBools);1417 iNumBools = std::min(iNumBools, GC.getNumVictoryInfos());1418 int i;1419 std::vector<bool> tempVBool;1420 for(i = 0; i < iNumBools; i++)1421 {1422 tempVBool.push_back(pbBools[i]);1423 }1424 setVictories(tempVBool);1425 SAFE_DELETE_ARRAY(pbBools);1426 }14271428 // Game Options1429 //if (!CIV.GetModName())1430 {1431 iniParser.GetKeyValue("GAME", "GameOptions", &szHolder, "Game Options", "EMPTY");1432 if(szHolder != "EMPTY")1433 {1434 StringToBools(szHolder, &iNumBools, &pbBools);1435 iNumBools = std::min(iNumBools, static_cast<int>(NUM_GAMEOPTION_TYPES));1436 int i;1437 for(i = 0; i < iNumBools; i++)1438 {1439 SetGameOption(((GameOptionTypes)i), pbBools[i]);1440 }1441 SAFE_DELETE_ARRAY(pbBools);1442 }1443 }14441445 // Max Turns1446 iniParser.GetKeyValue("GAME", "MaxTurns", &iHolder, "Max number of turns (0 for no turn limit)", 0);1447 setMaxTurns(iHolder);14481449 iniParser.GetKeyValue("GAME", "EnableMultiplayerAI", &iHolder, "Allow AI in multiplayer games", 1);1450 setMultiplayerAIEnabled(iHolder != 0);14511452 // Pitboss SMTP info1453 //iniParser.SetGroupKey("CONFIG");1454 //iniParser.GetKeyValue("PitbossSMTPHost", &szHolder, "", "SMTP server for Pitboss reminder emails");1455 //GC.getSetupData().setPitbossSmtpHost((szHolder.Compare("0") ? szHolder.GetCString() : ""));1456 //iniParser.GetKeyValue("PitbossSMTPLogin", &szHolder, "", "SMTP server authentication login for Pitboss reminder emails");1457 //GC.getSetupData().setPitbossSmtpLogin((szHolder.Compare("0") ? szHolder.GetCString() : ""));1458 //iniParser.GetKeyValue("PitbossEmail", &szHolder, "", "Email address from which Pitboss reminder emails are sent");1459 //GC.getSetupData().setPitbossEmail((szHolder.Compare("0") ? szHolder.GetCString() : ""));14601461 // Get Pitboss Turn Time1462 //iniParser.SetGroupKey("GAME");1463 //iniParser.GetKeyValue("PitbossTurnTime", &iHolder, 0, "Pitboss Turn Time");1464 //setPitbossTurnTime(iHolder);1465 // Sync Rand1466#ifdef CRIPPLED_BUILD1467 //Dbaker set the seed to the same thing for testing purposes1468 setSyncRandomSeed(1);1469 setMapRandomSeed(1);1470#else1471 iniParser.GetKeyValue("CONFIG", "SyncRandSeed", &iHolder, "Random seed for game sync, or '0' for default", 0);1472 setSyncRandomSeed((iHolder!=0) ? iHolder : timeGetTime());1473 // Map Rand1474 iniParser.GetKeyValue("CONFIG", "MapRandSeed", &iHolder, "Random seed for map generation, or '0' for default", 0);1475 setMapRandomSeed((iHolder!=0) ? iHolder : timeGetTime());1476#endif14771478 // Game Type1479 iniParser.GetKeyValue("GAME", "GameType", &szHolder, "GameType options are singlePlayer/spLoad", "singlePlayer");1480 tempString = szHolder;1481 setGameType(tempString);14821483 // Map Script1484 iniParser.GetKeyValue("GAME", "Map", &szHolder, "Map Script file name", "Assets/Maps/Continents.lua");1485 szHolder.StandardizePath(false, false);1486 tempString = szHolder;1487 setMapScriptName(tempString);1488}