diff options
| -rw-r--r-- | engines/dreamweb/segment.h | 5 | ||||
| -rw-r--r-- | engines/dreamweb/use.cpp | 3 | 
2 files changed, 7 insertions, 1 deletions
| diff --git a/engines/dreamweb/segment.h b/engines/dreamweb/segment.h index 9464015478..65bc2335ea 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 4be3c7a6b3..ba1e8e4952 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(); | 
