Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
133 changes: 66 additions & 67 deletions Core/GameEngine/Source/Common/INI/INI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,70 +78,68 @@ struct BlockParse
};
static const BlockParse theTypeTable[] =
{
{ "AIData", INI::parseAIDataDefinition },
{ "Animation", INI::parseAnim2DDefinition },
{ "Armor", INI::parseArmorDefinition },
{ "AudioEvent", INI::parseAudioEventDefinition },
{ "AudioSettings", INI::parseAudioSettingsDefinition },
{ "Bridge", INI::parseTerrainBridgeDefinition },
{ "Campaign", INI::parseCampaignDefinition },
{ "ChallengeGenerals", INI::parseChallengeModeDefinition },
{ "CommandButton", INI::parseCommandButtonDefinition },
{ "CommandMap", INI::parseMetaMapDefinition },
{ "CommandSet", INI::parseCommandSetDefinition },
{ "ControlBarScheme", INI::parseControlBarSchemeDefinition },
{ "ControlBarResizer", INI::parseControlBarResizerDefinition },
{ "CrateData", INI::parseCrateTemplateDefinition },
{ "Credits", INI::parseCredits},
{ "WindowTransition", INI::parseWindowTransitions},
{ "DamageFX", INI::parseDamageFXDefinition },
{ "DialogEvent", INI::parseDialogDefinition },
{ "DrawGroupInfo", INI::parseDrawGroupNumberDefinition },
{ "EvaEvent", INI::parseEvaEvent },
{ "FXList", INI::parseFXListDefinition },
{ "GameData", INI::parseGameDataDefinition },
{ "InGameUI", INI::parseInGameUIDefinition },
{ "Locomotor", INI::parseLocomotorTemplateDefinition },
{ "Language", INI::parseLanguageDefinition },
{ "MapCache", INI::parseMapCacheDefinition },
{ "MapData", INI::parseMapDataDefinition },
{ "MappedImage", INI::parseMappedImageDefinition },
{ "MiscAudio", INI::parseMiscAudio},
{ "Mouse", INI::parseMouseDefinition },
{ "MouseCursor", INI::parseMouseCursorDefinition },
{ "MultiplayerColor", INI::parseMultiplayerColorDefinition },
{ "MultiplayerStartingMoneyChoice", INI::parseMultiplayerStartingMoneyChoiceDefinition },
{ "OnlineChatColors", INI::parseOnlineChatColorDefinition },
{ "MultiplayerSettings",INI::parseMultiplayerSettingsDefinition },
{ "MusicTrack", INI::parseMusicTrackDefinition },
{ "Object", INI::parseObjectDefinition },
{ "ObjectCreationList", INI::parseObjectCreationListDefinition },
{ "ObjectReskin", INI::parseObjectReskinDefinition },
{ "ParticleSystem", INI::parseParticleSystemDefinition },
{ "PlayerTemplate", INI::parsePlayerTemplateDefinition },
{ "Road", INI::parseTerrainRoadDefinition },
{ "Science", INI::parseScienceDefinition },
{ "Rank", INI::parseRankDefinition },
{ "SpecialPower", INI::parseSpecialPowerDefinition },
{ "ShellMenuScheme", INI::parseShellMenuSchemeDefinition },
{ "Terrain", INI::parseTerrainDefinition },
{ "Upgrade", INI::parseUpgradeDefinition },
{ "Video", INI::parseVideoDefinition },
{ "WaterSet", INI::parseWaterSettingDefinition },
{ "WaterTransparency", INI::parseWaterTransparencyDefinition},
{ "Weather", INI::parseWeatherDefinition},
{ "Weapon", INI::parseWeaponTemplateDefinition },
{ "WebpageURL", INI::parseWebpageURLDefinition },
{ "HeaderTemplate", INI::parseHeaderTemplateDefinition },
{ "StaticGameLOD", INI::parseStaticGameLODDefinition },
{ "DynamicGameLOD", INI::parseDynamicGameLODDefinition },
{ "LODPreset", INI::parseLODPreset },
{ "BenchProfile", INI::parseBenchProfile },
{ "ReallyLowMHz", parseReallyLowMHz },
{ "ScriptAction", ScriptEngine::parseScriptAction },
{ "ScriptCondition", ScriptEngine::parseScriptCondition },

{ nullptr, nullptr },
{ "AIData", INI::parseAIDataDefinition },
{ "Animation", INI::parseAnim2DDefinition },
{ "Armor", INI::parseArmorDefinition },
{ "AudioEvent", INI::parseAudioEventDefinition },
{ "AudioSettings", INI::parseAudioSettingsDefinition },
{ "BenchProfile", INI::parseBenchProfile },
{ "Bridge", INI::parseTerrainBridgeDefinition },
{ "Campaign", INI::parseCampaignDefinition },
{ "ChallengeGenerals", INI::parseChallengeModeDefinition },
{ "CommandButton", INI::parseCommandButtonDefinition },
{ "CommandMap", INI::parseMetaMapDefinition },
{ "CommandSet", INI::parseCommandSetDefinition },
{ "ControlBarResizer", INI::parseControlBarResizerDefinition },
{ "ControlBarScheme", INI::parseControlBarSchemeDefinition },
{ "CrateData", INI::parseCrateTemplateDefinition },
{ "Credits", INI::parseCredits },
{ "DamageFX", INI::parseDamageFXDefinition },
{ "DialogEvent", INI::parseDialogDefinition },
{ "DrawGroupInfo", INI::parseDrawGroupNumberDefinition },
{ "DynamicGameLOD", INI::parseDynamicGameLODDefinition },
{ "EvaEvent", INI::parseEvaEvent },
{ "FXList", INI::parseFXListDefinition },
{ "GameData", INI::parseGameDataDefinition },
{ "HeaderTemplate", INI::parseHeaderTemplateDefinition },
{ "InGameUI", INI::parseInGameUIDefinition },
{ "LODPreset", INI::parseLODPreset },
{ "Language", INI::parseLanguageDefinition },
{ "Locomotor", INI::parseLocomotorTemplateDefinition },
{ "MapCache", INI::parseMapCacheDefinition },
{ "MapData", INI::parseMapDataDefinition },
{ "MappedImage", INI::parseMappedImageDefinition },
{ "MiscAudio", INI::parseMiscAudio },
{ "Mouse", INI::parseMouseDefinition },
{ "MouseCursor", INI::parseMouseCursorDefinition },
{ "MultiplayerColor", INI::parseMultiplayerColorDefinition },
{ "MultiplayerSettings", INI::parseMultiplayerSettingsDefinition },
{ "MultiplayerStartingMoneyChoice", INI::parseMultiplayerStartingMoneyChoiceDefinition },
{ "MusicTrack", INI::parseMusicTrackDefinition },
{ "Object", INI::parseObjectDefinition },
{ "ObjectCreationList", INI::parseObjectCreationListDefinition },
{ "ObjectReskin", INI::parseObjectReskinDefinition },
{ "OnlineChatColors", INI::parseOnlineChatColorDefinition },
{ "ParticleSystem", INI::parseParticleSystemDefinition },
{ "PlayerTemplate", INI::parsePlayerTemplateDefinition },
{ "Rank", INI::parseRankDefinition },
{ "ReallyLowMHz", parseReallyLowMHz },
{ "Road", INI::parseTerrainRoadDefinition },
{ "Science", INI::parseScienceDefinition },
{ "ScriptAction", ScriptEngine::parseScriptAction },
{ "ScriptCondition", ScriptEngine::parseScriptCondition },
{ "ShellMenuScheme", INI::parseShellMenuSchemeDefinition },
{ "SpecialPower", INI::parseSpecialPowerDefinition },
{ "StaticGameLOD", INI::parseStaticGameLODDefinition },
{ "Terrain", INI::parseTerrainDefinition },
{ "Upgrade", INI::parseUpgradeDefinition },
{ "Video", INI::parseVideoDefinition },
{ "WaterSet", INI::parseWaterSettingDefinition },
{ "WaterTransparency", INI::parseWaterTransparencyDefinition },
{ "Weapon", INI::parseWeaponTemplateDefinition },
{ "Weather", INI::parseWeatherDefinition },
{ "WebpageURL", INI::parseWebpageURLDefinition },
{ "WindowTransition", INI::parseWindowTransitions },
};


Expand Down Expand Up @@ -350,13 +348,14 @@ void INI::unPrepFile()
//-------------------------------------------------------------------------------------------------
static INIBlockParse findBlockParse(const char* token)
{
for (const BlockParse* parse = theTypeTable; parse->token; ++parse)
for (size_t i = 0; i < ARRAY_SIZE(theTypeTable); ++i)
{
if (strcmp( parse->token, token ) == 0)
if (strcmp(theTypeTable[i].token, token) == 0)
{
return parse->parse;
return theTypeTable[i].parse;
}
}

return nullptr;
}

Expand Down
Loading