diff options
author | Walter van Niftrik | 2017-02-20 22:47:22 +0100 |
---|---|---|
committer | Walter van Niftrik | 2017-02-20 22:53:04 +0100 |
commit | 8ca719b2bc0ca0539ceb995067a1bdf7a183eb05 (patch) | |
tree | f2a9d6eba597862e04fc30f2f866c84f384b5502 | |
parent | 27c956a255bd00bde3215c68f1c39c77343f3dc8 (diff) | |
download | scummvm-rg350-8ca719b2bc0ca0539ceb995067a1bdf7a183eb05.tar.gz scummvm-rg350-8ca719b2bc0ca0539ceb995067a1bdf7a183eb05.tar.bz2 scummvm-rg350-8ca719b2bc0ca0539ceb995067a1bdf7a183eb05.zip |
ADL: Clean up/comment hires6 string printing
-rw-r--r-- | engines/adl/hires6.cpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/engines/adl/hires6.cpp b/engines/adl/hires6.cpp index 10d8580fcc..b3b66f6873 100644 --- a/engines/adl/hires6.cpp +++ b/engines/adl/hires6.cpp @@ -430,6 +430,8 @@ void HiRes6Engine::printString(const Common::String &str) { Common::String s; uint found = 0; + // Variable 27 is 1 when Kira is present, 0 otherwise. It's used for choosing + // between singular and plural variants of a string. // This does not emulate the corner cases of the original, hence this check if (getVar(27) > 1) error("Invalid value %i encountered for variable 27", getVar(27)); @@ -445,21 +447,24 @@ void HiRes6Engine::printString(const Common::String &str) { } } - if (getVar(2) != 0xff) { - AdlEngine_v5::printString(s); - } else { + // Variables 2 and 26 are used for controlling the printing of room descriptions + if (getVar(2) == 0xff) { if (getVar(26) == 0) { + // This checks for special room description string " " if (str.size() != 1 || APPLECHAR(str[0]) != APPLECHAR(' ')) return AdlEngine_v5::printString(s); - setVar(2, APPLECHAR(' ')); - } else if (getVar(26) != 0xff) { - setVar(2, 'P'); - } else { + setVar(2, 160); + } else if (getVar(26) == 0xff) { + // Storing the room number in a variable allows for range comparisons setVar(26, _state.room); setVar(2, 1); + } else { + setVar(2, 80); } doAllCommands(_globalCommands, _currVerb, _currNoun); + } else { + AdlEngine_v5::printString(s); } } |