diff options
-rw-r--r-- | scumm/intern.h | 3 | ||||
-rw-r--r-- | scumm/scumm.cpp | 2 | ||||
-rw-r--r-- | scumm/scumm.h | 3 | ||||
-rw-r--r-- | scumm/string.cpp | 8 |
4 files changed, 10 insertions, 6 deletions
diff --git a/scumm/intern.h b/scumm/intern.h index c2f0a3a430..4e49d1035a 100644 --- a/scumm/intern.h +++ b/scumm/intern.h @@ -952,6 +952,7 @@ protected: byte VAR_POLYGONS_ONLY; byte VAR_PLATFORM; byte VAR_WINDOWS_VERSION; + byte VAR_CURRENT_CHARSET; byte VAR_U32_VERSION; byte VAR_WIZ_TCOLOR; }; @@ -978,6 +979,8 @@ protected: virtual void initScummVars(); + virtual void initCharset(int charset); + virtual void clearDrawQueues(); void loadImgSpot(int resId, int state, int16 &x, int16 &y); diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp index aec23886f1..2c0e38084f 100644 --- a/scumm/scumm.cpp +++ b/scumm/scumm.cpp @@ -1054,7 +1054,6 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst, const ScummGameS VAR_MUSIC_BUNDLE_LOADED = 0xFF; VAR_VOICE_BUNDLE_LOADED = 0xFF; - VAR_CURRENT_CHARSET = 0xFF; VAR_SKIP_RESET_TALK_ACTOR = 0xFF; VAR_MUSIC_CHANNEL = 0xFF; VAR_SOUND_CHANNEL = 0xFF; @@ -1299,6 +1298,7 @@ ScummEngine_v72he::ScummEngine_v72he(GameDetector *detector, OSystem *syst, cons VAR_POLYGONS_ONLY = 0xFF; VAR_PLATFORM = 0xFF; VAR_WINDOWS_VERSION = 0xFF; + VAR_CURRENT_CHARSET = 0xFF; VAR_U32_VERSION = 0xFF; VAR_WIZ_TCOLOR = 0xFF; } diff --git a/scumm/scumm.h b/scumm/scumm.h index daa9328fbf..7c8bce7c0e 100644 --- a/scumm/scumm.h +++ b/scumm/scumm.h @@ -1131,7 +1131,7 @@ protected: bool _keepText; - void initCharset(int charset); + virtual void initCharset(int charset); void printString(int m, const byte *msg); @@ -1296,7 +1296,6 @@ public: byte VAR_CLICK_AREA; // HE specific variables - byte VAR_CURRENT_CHARSET; byte VAR_SKIP_RESET_TALK_ACTOR; byte VAR_MUSIC_CHANNEL; byte VAR_SOUND_CHANNEL; diff --git a/scumm/string.cpp b/scumm/string.cpp index a10ea9ef0a..6756398dcf 100644 --- a/scumm/string.cpp +++ b/scumm/string.cpp @@ -741,6 +741,11 @@ int ScummEngine::addStringToStack(byte *dst, int dstSize, int var) { return 0; } +void ScummEngine_v80he::initCharset(int charsetno) { + ScummEngine::initCharset(charsetno); + VAR(VAR_CURRENT_CHARSET) = charsetno; +} + void ScummEngine::initCharset(int charsetno) { int i; @@ -758,9 +763,6 @@ void ScummEngine::initCharset(int charsetno) { for (i = 0; i < 16; i++) _charsetColorMap[i] = _charsetData[charsetno][i]; - if (_heversion >= 80) { - VAR(VAR_CURRENT_CHARSET) = charsetno; - } } void ScummEngine_v6::enqueueText(const byte *text, int x, int y, byte color, byte charset, bool center) { |