diff --git a/devtools/create_mm/files/mm1/strings_en.yml b/devtools/create_mm/files/mm1/strings_en.yml index 2566d8378ce..235a7abe9f3 100644 --- a/devtools/create_mm/files/mm1/strings_en.yml +++ b/devtools/create_mm/files/mm1/strings_en.yml @@ -1292,7 +1292,7 @@ maps: levitation1: "Luckily,your levitation spell saved you!" levitation2: "Levitation saved you." remains: "Smashed remains of stone statues\nseem suspiciously lifelike." - map13e: + emap13: levitation1: "Luckily, your levitation spell saved you!" map14: diff --git a/engines/mm/mm1/globals.cpp b/engines/mm/mm1/globals.cpp index 83899db9198..dd5cf394b6f 100644 --- a/engines/mm/mm1/globals.cpp +++ b/engines/mm/mm1/globals.cpp @@ -22,6 +22,7 @@ #include "engines/engine.h" #include "graphics/fonts/ttf.h" #include "mm/mm1/globals.h" +#include "mm/mm1/mm1.h" #include "mm/shared/utils/engine_data.h" #include "graphics/fontman.h" @@ -95,6 +96,20 @@ bool Globals::load(bool isEnhanced) { return true; } +const Common::String &Globals::operator[](const Common::String &name) { + if (g_engine->isEnhanced() && name.hasPrefix("maps.map")) { + // Map strings support having alternate versions in Enhanced version + Common::String altName = Common::String::format("maps.emap%s", + name.c_str() + 8); + if (_strings.contains(altName)) + return _strings[altName]; + } + + assert(_strings.contains(name)); + return _strings[name]; +} + + void Globals::synchronize(Common::Serializer &s) { s.syncAsByte(_startingTown); diff --git a/engines/mm/mm1/globals.h b/engines/mm/mm1/globals.h index fd6e46bb922..8efaf7aff94 100644 --- a/engines/mm/mm1/globals.h +++ b/engines/mm/mm1/globals.h @@ -85,10 +85,7 @@ public: /** * Returns a string */ - const Common::String &operator[](const Common::String &name) { - assert(_strings.contains(name)); - return _strings[name]; - } + const Common::String &operator[](const Common::String &name); /** * Saves global data to/from savegames