[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.80,2.81 script_v2.cpp,2.59,2.60 scummvm.cpp,2.137,2.138

Max Horn fingolfin at users.sourceforge.net
Sat May 10 17:04:02 CEST 2003


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv29354

Modified Files:
	intern.h script_v2.cpp scummvm.cpp 
Log Message:
more V2 'char coord' fixes

Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.80
retrieving revision 2.81
diff -u -d -r2.80 -r2.81
--- intern.h	8 May 2003 15:48:47 -0000	2.80
+++ intern.h	11 May 2003 00:03:02 -0000	2.81
@@ -212,67 +212,68 @@
 	virtual void clearStateCommon(byte type);
 
 	/* Version 2 script opcodes */
-	void o2_setState08();
-	void o2_clearState08();
-	void o2_setState04();
-	void o2_clearState04();
-	void o2_setState02();
-	void o2_clearState02();
-	void o2_setState01();
-	void o2_clearState01();
-	void o2_assignVarWordIndirect();
+	void o2_actorFromPos();
+	void o2_actorSet();
+	void o2_addIndirect();
+	void o2_animateActor();
 	void o2_assignVarByte();
-	void o2_setObjY();
-	void o2_getObjY();
-	void o2_setBitVar();
+	void o2_assignVarWordIndirect();
+	void o2_chainScript();
+	void o2_clearState01();
+	void o2_clearState02();
+	void o2_clearState04();
+	void o2_clearState08();
+	void o2_cursorCommand();
+	void o2_cutscene();
+	void o2_delay();
+	void o2_doSentence();
+	void o2_drawObject();
+	void o2_drawSentence();
+	void o2_dummy();
+	void o2_endCutscene();
+	void o2_findObject();
+	void o2_getActorWalkBox();
+	void o2_getActorX();
+	void o2_getActorY();
 	void o2_getBitVar();
-	void o2_addIndirect();
-	void o2_subIndirect();
-	void o2_ifState08();
-	void o2_ifNotState08();
-	void o2_ifState04();
-	void o2_ifNotState04();
-	void o2_ifState02();
+	void o2_getObjY();
+	void o2_ifClassOfIs();
+	void o2_ifNotState01();
 	void o2_ifNotState02();
+	void o2_ifNotState04();
+	void o2_ifNotState08();
 	void o2_ifState01();
-	void o2_ifNotState01();
-	void o2_actorSet();
-	void o2_waitForActor();
-	void o2_waitForMessage();
-	void o2_waitForSentence();
-	void o2_restart();
-	void o2_drawObject();
-	void o2_resourceRoutines();
-	void o2_verbOps();
-	void o2_doSentence();
-	void o2_ifClassOfIs();
-	void o2_walkActorTo();
-	void o2_putActor();
-	void o2_startScript();
+	void o2_ifState02();
+	void o2_ifState04();
+	void o2_ifState08();
+	void o2_loadRoomWithEgo();
+	void o2_matrixOps();
 	void o2_panCameraTo();
-	void o2_setActorElevation();
-	void o2_walkActorToObject();
+	void o2_pickupObject();
+	void o2_putActor();
 	void o2_putActorAtObject();
-	void o2_animateActor();
-	void o2_actorFromPos();
+	void o2_resourceRoutines();
+	void o2_restart();
+	void o2_roomOps();
 	void o2_saveLoadGame();
-	void o2_getActorX();
-	void o2_getActorY();
-	void o2_loadRoomWithEgo();
-	void o2_setOwnerOf();
-	void o2_matrixOps();
+	void o2_setActorElevation();
+	void o2_setBitVar();
 	void o2_setCameraAt();
-	void o2_roomOps();
-	void o2_cutscene();
-	void o2_chainScript();
-	void o2_pickupObject();
 	void o2_setObjectName();
-	void o2_cursorCommand();
-	void o2_getActorWalkBox();
-	void o2_endCutscene();
-	void o2_drawSentence();
-	void o2_delay();
-	void o2_dummy();
+	void o2_setObjY();
+	void o2_setOwnerOf();
+	void o2_setState01();
+	void o2_setState02();
+	void o2_setState04();
+	void o2_setState08();
+	void o2_startScript();
+	void o2_subIndirect();
+	void o2_verbOps();
+	void o2_waitForActor();
+	void o2_waitForMessage();
+	void o2_waitForSentence();
+	void o2_walkActorTo();
+	void o2_walkActorToObject();
 };
 
 class Scumm_v4 : public Scumm_v3 {

Index: script_v2.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v2.cpp,v
retrieving revision 2.59
retrieving revision 2.60
diff -u -d -r2.59 -r2.60
--- script_v2.cpp	10 May 2003 23:47:39 -0000	2.59
+++ script_v2.cpp	11 May 2003 00:03:03 -0000	2.60
@@ -99,7 +99,7 @@
 		OPCODE(o2_roomOps),
 		/* 34 */
 		OPCODE(o5_getDist),
-		OPCODE(o5_findObject),
+		OPCODE(o2_findObject),
 		OPCODE(o2_walkActorToObject),
 		OPCODE(o2_setState01),
 		/* 38 */
@@ -179,7 +179,7 @@
 		OPCODE(o2_roomOps),
 		/* 74 */
 		OPCODE(o5_getDist),
-		OPCODE(o5_findObject),
+		OPCODE(o2_findObject),
 		OPCODE(o2_walkActorToObject),
 		OPCODE(o2_clearState01),
 		/* 78 */
@@ -259,7 +259,7 @@
 		OPCODE(o2_roomOps),
 		/* B4 */
 		OPCODE(o5_getDist),
-		OPCODE(o5_findObject),
+		OPCODE(o2_findObject),
 		OPCODE(o2_walkActorToObject),
 		OPCODE(o2_setState02),
 		/* B8 */
@@ -339,7 +339,7 @@
 		OPCODE(o2_roomOps),
 		/* F4 */
 		OPCODE(o5_getDist),
-		OPCODE(o5_findObject),
+		OPCODE(o2_findObject),
 		OPCODE(o2_walkActorToObject),
 		OPCODE(o2_clearState01),
 		/* F8 */
@@ -851,6 +851,8 @@
 	a = derefActorSafe(getVarOrDirectByte(0x80), "o2_walkActorTo");
 	x = getVarOrDirectByte(0x40) * 8;
 	y = getVarOrDirectByte(0x20) * 2;
+
+	assert(a);
 	a->ignoreBoxes = true;			// FIXME: Disabling walkboxes
 	a->startWalkActor(x, y, -1);		// for now, just to debug the intro
 }
@@ -863,8 +865,7 @@
 	x = getVarOrDirectByte(0x40) * 8;
 	y = getVarOrDirectByte(0x20) * 2;
 
-	if (!a)
-		return;
+	assert(a);
 	a->putActor(x, y, a->room);
 }
 
@@ -931,9 +932,16 @@
 void Scumm_v2::o2_actorFromPos() {
 	int x, y;
 	getResultPos();
-	x = getVarOrDirectByte(0x80);
-	y = getVarOrDirectByte(0x40);
+	x = getVarOrDirectByte(0x80) * 8;
+	y = getVarOrDirectByte(0x40) * 2;
 	setResult(getActorFromPos(x, y));
+}
+
+void Scumm_v2::o2_findObject() {
+	getResultPos();
+	int x = getVarOrDirectByte(0x80) * 8;
+	int y = getVarOrDirectByte(0x40) * 2;
+	setResult(findObject(x, y));
 }
 
 void Scumm_v2::o2_saveLoadGame() {

Index: scummvm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scummvm.cpp,v
retrieving revision 2.137
retrieving revision 2.138
diff -u -d -r2.137 -r2.138
--- scummvm.cpp	10 May 2003 23:47:39 -0000	2.137
+++ scummvm.cpp	11 May 2003 00:03:03 -0000	2.138
@@ -885,8 +885,8 @@
 	}
 	VAR(VAR_HAVE_MSG) = (_haveMsg == 0xFE) ? 0xFF : _haveMsg;
 	if (_features & GF_AFTER_V2) {
-		VAR(VAR_VIRT_MOUSE_X) = _virtual_mouse_x;
-		VAR(VAR_VIRT_MOUSE_Y) = _virtual_mouse_y;
+		VAR(VAR_VIRT_MOUSE_X) = _virtual_mouse_x / 8;
+		VAR(VAR_VIRT_MOUSE_Y) = _virtual_mouse_y / 2;
 	} else {
 		VAR(VAR_VIRT_MOUSE_X) = _virtual_mouse_x;
 		VAR(VAR_VIRT_MOUSE_Y) = _virtual_mouse_y;





More information about the Scummvm-git-logs mailing list