[Scummvm-git-logs] scummvm master -> b4185bdf60f8f28afe57b192f7073135e0eb2cc8
athrxx
noreply at scummvm.org
Sun Aug 14 23:07:01 UTC 2022
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
b4185bdf60 SCUMM: (LOOM/EGA) - fix bug 13763 (Inaccurate text position)
Commit: b4185bdf60f8f28afe57b192f7073135e0eb2cc8
https://github.com/scummvm/scummvm/commit/b4185bdf60f8f28afe57b192f7073135e0eb2cc8
Author: athrxx (athrxx at scummvm.org)
Date: 2022-08-15T01:06:19+02:00
Commit Message:
SCUMM: (LOOM/EGA) - fix bug 13763 (Inaccurate text position)
I am going to clean this up a bit after confirming the behavior of the other v1-3 games. I bet that it it is the same thing (only that it probably doesn't matter, due to the text display being restricted to the top of the screen and the verb screen).
Changed paths:
engines/scumm/charset.cpp
diff --git a/engines/scumm/charset.cpp b/engines/scumm/charset.cpp
index fa800169114..c35be846056 100644
--- a/engines/scumm/charset.cpp
+++ b/engines/scumm/charset.cpp
@@ -456,7 +456,16 @@ int CharsetRendererClassic::getCharWidth(uint16 chr) const {
int CharsetRenderer::getStringWidth(int arg, const byte *text) {
int pos = 0;
- int width = (_vm->_game.id == GID_FT) ? 0 : 1;
+
+ // I have confirmed from disasm that LOOM EGA and FM-TOWNS (EN/JP) do not add 1 to the width
+ // while LOOM VGA Talkie and MONKEY1 EGA do. So that seems to have been introduced with version 4.
+ // TODO: Check other v1-3 games. Loom IS the only game in that version range that has charset mask
+ // (overlaying) text display, the others are limited to top screen and verb screen. So it might not
+ // be that relevant....
+ int width = 1;
+ if (_vm->_game.id == GID_FT || (_vm->_game.id == GID_LOOM && _vm->_game.version < 4))
+ width = 0;
+
int chr;
int oldID = getCurID();
int code = (_vm->_game.heversion >= 80) ? 127 : 64;
More information about the Scummvm-git-logs
mailing list