diff --git a/Core/GameEngine/Source/Common/INI/INI.cpp b/Core/GameEngine/Source/Common/INI/INI.cpp index af5f4566d0f..98260a183c2 100644 --- a/Core/GameEngine/Source/Common/INI/INI.cpp +++ b/Core/GameEngine/Source/Common/INI/INI.cpp @@ -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 }, }; @@ -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; }