Amineri Posted November 20, 2013 Share Posted November 20, 2013 These two config files (at least originally) corresponded to two different classes in XComGame.upk. XGTacticalGameCore (and it's parent class XGTacticalGameCoreNativeBase)XGGameDataThis is why the first tag you see in DefaultGameCore.ini is [XComGame.XGTacticalGameCore] and the first tag you see in DefaultGameData.ini is [XComGame.XGGameData] These tags identify which upk/class's config variables are being set in the following section. Later these ini files were expanded to read in config variables for other classes (I guess to cut down on the number of ini files?) For example DefaultGameCore.ini has the following tags:[XComGame.XGTacticalGameCore][XComGame.XComPrecomputedPath][XComGame.XGAction_FireCustom_Flamethrower][XComGame.XGAction_FireCustom_Barrage][XComGame.XGAbility_Electropulse][XComGame.XGAbility_Electropulse][XComGame.XGUnitNativeBase][XComGame.XComPerkManager]If you open these classes in UE Explorer you'll see that the variables in the ini file are config-type class variables in the class. For example XComPerkManager has the following class variables: config TGeneModTree GeneModPerkTree private array<TPerk> m_arrPerks privatewrite bool m_bInitialized const localized string m_strBattleFatigueSecondWave const localized string m_strBonusTitle[EPerkType] const localized string m_strBonusTxt[EPerkType] const localized string m_strPassiveTitle[EPerkType] const localized string m_strPassiveTxt[EPerkType] const localized string m_strPenaltyTitle[EPerkType] const localized string m_strPenaltyTxt[EPerkType] config TPsiPerkTree PsiPerkTree private config array<config XGTacticalGameCoreNativeBase.EPerkType> RandomPerks config array<config TSoldierPerkTree> SoldierPerkTrees The variables of type config are precisely the variables being defined in the DefaultGameCore.ini. DefaultGameData.ini works similarly but defines config variables for a different set of classes:[XComGame.XGGameData][XComStrategyGame.XComDropshipAudioMgr][XComStrategyGame.UITellMeMore][XComStrategyGame.XGExaltSimulation][XComGame.XComMeldContainerActor][XComGame.XGBattle_SPCovertOpsExtraction][XComGame.XGBattle_SPCaptureAndHold][XComStrategyGame.XGFacility_CyberneticsLab][XComStrategyGame.XGFundingCouncil][XComStrategyGame.XGFacility_Barracks][XComStrategyGame.XGStrategyActorNativeBase]I don't know how the config parser knows which config file to look for a class's config variable data in, nor the order in which they are read. -------------------------------------------------------- Next -- the relationship between the /XEW/XComGame/Config/ files and the /My Games/XCom - Enemy Within/XComGame/Config/ files. The files in the root XCom folder (XEW) are the "master" copies. These files all begin with "Default" (e.g. DefaultGameCore.ini, DefaultGameData.ini). Whenever the game is launched, near the very beginning of execution it performs merge operations, creating copies of the config files in the /My Games/.../Config/ folder. These files all being with "XCom" (e.g. XComGameCore.ini, XComGameData.ini). For the present state of Enemy Within these are simply copies (but with all comments stripped out). However, once DLC for Enemy Within is released, these My Games versions will be merged versions of the base game + DLC config files. These files are reconstructed (or are supposed to be) every time the game launches so altering the versions in My Games should be ineffective. In EU there was a bug with some of the localization files in which the My Games merged version wasn't being properly overwritten. There was also a bug in EU in which the XComEngine.ini config file was being improperly merged causing the file to load an additional copy of some DLC art assets every time the game was launched. This would lead to very long "dropship loading screen" times. Link to comment Share on other sites More sharing options...
dubiousintent Posted November 21, 2013 Share Posted November 21, 2013 Added this as a new section on Config files to 'DefaultGameCore.ini settings' article. -Dubious- Link to comment Share on other sites More sharing options...
Recommended Posts