[Scummvm-cvs-logs] scummvm master -> 3185dac25e2f1984ccf92e7c33eee12caa6cd676
wjp
wjp at usecode.org
Sat Dec 17 16:40:56 CET 2011
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:
3185dac25e DREAMWEB: Work around runtime limitation
Commit: 3185dac25e2f1984ccf92e7c33eee12caa6cd676
https://github.com/scummvm/scummvm/commit/3185dac25e2f1984ccf92e7c33eee12caa6cd676
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2011-12-17T07:40:15-08:00
Commit Message:
DREAMWEB: Work around runtime limitation
The WordRef accessor writes back its value too late. Example: in the
call printDirect(data.word(kLastxpos), .....)
the destructor isn't called until after printDirect returns.
This destroys the modifications to lastXPos that printDirect makes.
Changed paths:
engines/dreamweb/segment.h
engines/dreamweb/use.cpp
diff --git a/engines/dreamweb/segment.h b/engines/dreamweb/segment.h
index 9464015..65bc233 100644
--- a/engines/dreamweb/segment.h
+++ b/engines/dreamweb/segment.h
@@ -56,6 +56,11 @@ public:
}
inline ~WordRef() {
+ // FIXME: This is _too late_ to write back the
+ // value. Example: in the call
+ // printDirect(data.word(kLastxpos), .....)
+ // the destructor isn't called until after printDirect returns. This
+ // destroys the modifications to lastXPos that printDirect makes.
_data[0] = _value & 0xff;
_data[1] = _value >> 8;
_value = _data[0] | (_data[1] << 8);
diff --git a/engines/dreamweb/use.cpp b/engines/dreamweb/use.cpp
index 4be3c7a..ba1e8e4 100644
--- a/engines/dreamweb/use.cpp
+++ b/engines/dreamweb/use.cpp
@@ -1581,7 +1581,8 @@ void DreamGenContext::withWhat() {
copyName(data.byte(kObjecttype), data.byte(kCommand), commandLine);
printMessage2(100, 21, 63, 200, false, 2);
- printDirect(commandLine, data.word(kLastxpos) + 5, 21, 220, false);
+ uint16 x = data.word(kLastxpos) + 5;
+ printDirect(commandLine, x, 21, 220, false);
printMessage2(data.word(kLastxpos) + 5, 21, 63, 200, false, 3);
fillRyan();
More information about the Scummvm-git-logs
mailing list