[Scummvm-cvs-logs] SF.net SVN: scummvm: [24900] scummvm/trunk/engines/touche

cyx at users.sourceforge.net cyx at users.sourceforge.net
Wed Dec 20 02:52:51 CET 2006


Revision: 24900
          http://scummvm.svn.sourceforge.net/scummvm/?rev=24900&view=rev
Author:   cyx
Date:     2006-12-19 17:52:46 -0800 (Tue, 19 Dec 2006)

Log Message:
-----------
workaround a scripting bug (see tracker item #1618700) and renamed an opcode

Modified Paths:
--------------
    scummvm/trunk/engines/touche/opcodes.cpp
    scummvm/trunk/engines/touche/touche.h

Modified: scummvm/trunk/engines/touche/opcodes.cpp
===================================================================
--- scummvm/trunk/engines/touche/opcodes.cpp	2006-12-20 00:08:51 UTC (rev 24899)
+++ scummvm/trunk/engines/touche/opcodes.cpp	2006-12-20 01:52:46 UTC (rev 24900)
@@ -136,7 +136,7 @@
 		&ToucheEngine::op_addItemToInventoryAndRedraw,
 		/* 0x54 */
 		&ToucheEngine::op_giveItemTo,
-		&ToucheEngine::op_resetHitBoxes,
+		&ToucheEngine::op_setHitBoxText,
 		&ToucheEngine::op_fadePalette,
 		0,
 		/* 0x58 */
@@ -477,6 +477,23 @@
 	debugC(9, kDebugOpcodes, "ToucheEngine::op_updateRoom()");
 	int16 area = _script.readNextWord();
 	updateRoomAreas(area, 0);
+
+	// Workaround for bug #1618700. Beggar sign (area 25) should be displayed even
+	// if Henri isn't present in the room.
+	//
+	//  [00B3] (1D) ST[0] = FLAGS[2]
+	//  [00B6] (06) PUSH
+	//  [00B7] (13) ST[0] = 0
+	//  [00BA] (11) ST[0] = ST[1] == ST[0]
+	//  [00BB] (02) JZ 0xF6
+	//  [xxxx] ...
+	//  [0192] (35) UPDATE_ROOM(16, 0)
+	//  [0195] (35) UPDATE_ROOM(19, 0)
+
+	if (_currentEpisodeNum == 91 && area == 19 && _flagsTable[2] != 0) {
+		debug(0, "Workaround beggar sign disappearing bug");
+		updateRoomAreas(25, 0);
+	}
 }
 
 void ToucheEngine::op_startTalk() {
@@ -749,8 +766,8 @@
 	_script.quitFlag = 3;
 }
 
-void ToucheEngine::op_resetHitBoxes() {
-	debugC(9, kDebugOpcodes, "ToucheEngine::op_resetHitBoxes()");
+void ToucheEngine::op_setHitBoxText() {
+	debugC(9, kDebugOpcodes, "ToucheEngine::op_setHitBoxText()");
 	int16 num = _script.readNextWord();
 	if (num & 0x4000) {
 		num &= 0xFF;

Modified: scummvm/trunk/engines/touche/touche.h
===================================================================
--- scummvm/trunk/engines/touche/touche.h	2006-12-20 00:08:51 UTC (rev 24899)
+++ scummvm/trunk/engines/touche/touche.h	2006-12-20 01:52:46 UTC (rev 24900)
@@ -547,7 +547,7 @@
 	void op_unlockWalkPath();
 	void op_addItemToInventoryAndRedraw();
 	void op_giveItemTo();
-	void op_resetHitBoxes();
+	void op_setHitBoxText();
 	void op_fadePalette();
 	void op_getInventoryItemFlags();
 	void op_drawInventory();


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list