From 69fdd4d0f6861ea248c007ca51df64a20a138792 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivo=20Elezovi=C4=87?= Date: Thu, 4 Apr 2024 10:03:34 +0200 Subject: [PATCH] Update revolution_target detection (#1031) * Fixes #908 --- EU4ToVic2/Source/EU4World/World.cpp | 10 ++++++++++ EU4ToVic2/Source/EU4World/World.h | 2 ++ 2 files changed, 12 insertions(+) diff --git a/EU4ToVic2/Source/EU4World/World.cpp b/EU4ToVic2/Source/EU4World/World.cpp index 4afe39943..7a3a1112a 100644 --- a/EU4ToVic2/Source/EU4World/World.cpp +++ b/EU4ToVic2/Source/EU4World/World.cpp @@ -148,6 +148,11 @@ EU4::World::World(const mappers::IdeaEffectMapper& ideaEffectMapper, const commo void EU4::World::registerKeys(const mappers::IdeaEffectMapper& ideaEffectMapper, const commonItems::ConverterVersion& converterVersion) { + revolutionParser.registerKeyword("revolution_target", [this](std::istream& theStream) { + revolutionTargetString = commonItems::getString(theStream); + }); + revolutionParser.registerRegex(commonItems::catchallRegex, commonItems::ignoreItem); + registerKeyword("EU4txt", [](std::istream& theStream) { }); registerKeyword("date", [this](std::istream& theStream) { @@ -272,9 +277,14 @@ void EU4::World::registerKeys(const mappers::IdeaEffectMapper& ideaEffectMapper, } } }); + // Old Style (up to 1.32) registerKeyword("revolution_target", [this](std::istream& theStream) { revolutionTargetString = commonItems::getString(theStream); }); + // New style (1.33 and onwards) + registerKeyword("revolution", [this](std::istream& theStream) { + revolutionParser.parseStream(theStream); + }); registerKeyword("celestial_empire", [this](std::istream& theStream) { const EU4Empire empireBlock(theStream); celestialEmperor = empireBlock.getEmperor(); diff --git a/EU4ToVic2/Source/EU4World/World.h b/EU4ToVic2/Source/EU4World/World.h index 350bf5d78..1bf1e316b 100644 --- a/EU4ToVic2/Source/EU4World/World.h +++ b/EU4ToVic2/Source/EU4World/World.h @@ -105,6 +105,8 @@ class World: commonItems::parser // export data for hoi4 std::vector> historicalData; + + parser revolutionParser; }; } // namespace EU4