Bazaar developer reference

CvPreGame::loadFromIni(FIGameIniParser &)

Defined in
CvPreGame.cpp, line 1361
Hook name
CivHooks::CvPreGame_loadFromIni

Hooks

static bool BeforeCvPreGame_loadFromIni(FIGameIniParser& iniParser);static void AfterCvPreGame_loadFromIni(FIGameIniParser& iniParser);static void ReplaceCvPreGame_loadFromIni(void (*original)(FIGameIniParser&), FIGameIniParser& iniParser);CivRegisterBefore<CivHooks::CvPreGame_loadFromIni>(host, &BeforeCvPreGame_loadFromIni);CivRegisterAfter<CivHooks::CvPreGame_loadFromIni>(host, &AfterCvPreGame_loadFromIni);CivRegisterReplace<CivHooks::CvPreGame_loadFromIni>(host, &ReplaceCvPreGame_loadFromIni);

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}

Calls

Called by