From ca40764dc6b99fadedbcf25b82482c75b411cbd0 Mon Sep 17 00:00:00 2001 From: historic_bruno Date: Mon, 11 Mar 2013 16:42:41 +0000 Subject: [PATCH] Fixes bug in map reader that caused actor variations to default to seed 0. Fixes #1861. Fixes maps that were affected by this bug. This was SVN commit r13264. --- .../mods/public/maps/scenarios/Sandbox - Britons.xml | 4 ++-- .../mods/public/maps/scenarios/Sandbox - Mauryans.xml | 4 ++-- .../mods/public/maps/scenarios/Sandbox - Persians.xml | 4 ++-- source/graphics/MapReader.cpp | 9 +++++++-- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/binaries/data/mods/public/maps/scenarios/Sandbox - Britons.xml b/binaries/data/mods/public/maps/scenarios/Sandbox - Britons.xml index 412be1a12f..95f26c2a7d 100644 --- a/binaries/data/mods/public/maps/scenarios/Sandbox - Britons.xml +++ b/binaries/data/mods/public/maps/scenarios/Sandbox - Britons.xml @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b0947ae78fedcd2d61579136872b69d622ee8e5df7d3498bc34ed719a7202f90 -size 1049961 +oid sha256:26143ed894c5400bfd4d69ebd9ce41256e8a499c447e552b00801dd3bc758da1 +size 934440 diff --git a/binaries/data/mods/public/maps/scenarios/Sandbox - Mauryans.xml b/binaries/data/mods/public/maps/scenarios/Sandbox - Mauryans.xml index 6c77734f09..7115e9abb4 100644 --- a/binaries/data/mods/public/maps/scenarios/Sandbox - Mauryans.xml +++ b/binaries/data/mods/public/maps/scenarios/Sandbox - Mauryans.xml @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:68cff36497838590dd6341182b316e39e4632e84fface8d274f4236c6737fcf8 -size 1053046 +oid sha256:588a856b6c51767a557650bea7febe0de46c1fdb1a31672758f870f4ca27650a +size 941389 diff --git a/binaries/data/mods/public/maps/scenarios/Sandbox - Persians.xml b/binaries/data/mods/public/maps/scenarios/Sandbox - Persians.xml index 06caae2236..75cfb167d1 100644 --- a/binaries/data/mods/public/maps/scenarios/Sandbox - Persians.xml +++ b/binaries/data/mods/public/maps/scenarios/Sandbox - Persians.xml @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4b014dc458a06c61f0f4723e7055a79bd976e2227ffab3ab0f13beb29faae3c6 -size 292171 +oid sha256:f9b462ba850fc710a050caeae009275011496fdf794409a847ae55e62ef972b4 +size 261532 diff --git a/source/graphics/MapReader.cpp b/source/graphics/MapReader.cpp index c9a4e291d6..46e1c5530f 100644 --- a/source/graphics/MapReader.cpp +++ b/source/graphics/MapReader.cpp @@ -954,7 +954,7 @@ int CXMLReader::ReadEntities(XMBElement parent, double end_time) int PlayerID = 0; CFixedVector3D Position; CFixedVector3D Orientation; - long Seed = 0; + long Seed = -1; // Obstruction control groups. entity_id_t ControlGroup = INVALID_ENTITY; @@ -1004,7 +1004,12 @@ int CXMLReader::ReadEntities(XMBElement parent, double end_time) else if (element_name == el_actor) { XMBAttributeList attrs = setting.GetAttributes(); - Seed = attrs.GetNamedItem(at_seed).ToLong(); + CStr seedStr = attrs.GetNamedItem(at_seed); + if (!seedStr.empty()) + { + Seed = seedStr.ToLong(); + ENSURE(Seed >= 0); + } } else debug_warn(L"Invalid map XML data");