[Scummvm-cvs-logs] CVS: scummvm/gob draw.cpp,1.6,1.7 game.cpp,1.12,1.13 gob.h,1.2,1.3 goblin.cpp,1.10,1.11 inter.cpp,1.9,1.10 mult.cpp,1.7,1.8 parse.cpp,1.4,1.5 scenery.cpp,1.8,1.9

Joost Peters joostp at users.sourceforge.net
Sun Apr 10 10:14:02 CEST 2005


Update of /cvsroot/scummvm/scummvm/gob
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3785/gob

Modified Files:
	draw.cpp game.cpp gob.h goblin.cpp inter.cpp mult.cpp 
	parse.cpp scenery.cpp 
Log Message:
Some inter_variables cleanup.

Now it should store all variables in the native endianness, instead of storing half in LE and the other half in the native endianness.
Addresses and assignments can be tracked by modifying the macros if necessary.
Also, meaningful constants can now be assigned to script variable numbers (if one were so inclined)


Index: draw.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gob/draw.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- draw.cpp	9 Apr 2005 19:32:28 -0000	1.6
+++ draw.cpp	10 Apr 2005 17:13:16 -0000	1.7
@@ -628,10 +628,8 @@
 		newX = inter_mouseX;
 		newY = inter_mouseY;
 		if (draw_cursorXDeltaVar != -1) {
-			newX -= READ_LE_UINT16(inter_variables + draw_cursorIndex * 4 +
-			    (draw_cursorXDeltaVar / 4) * 4);
-			newY -= READ_LE_UINT16(inter_variables + draw_cursorIndex * 4 +
-			    (draw_cursorYDeltaVar / 4) * 4);
+			newX -= (uint16)VAR_OFFSET(draw_cursorIndex * 4 + (draw_cursorXDeltaVar / 4) * 4);
+			newY -= (uint16)VAR_OFFSET(draw_cursorIndex * 4 + (draw_cursorYDeltaVar / 4) * 4); 
 		}
 
 		minX = MIN(newX, draw_cursorX);
@@ -850,7 +848,7 @@
 			cmd = ptr2[17] & 0x7f;
 			if (cmd == 0) {
 				val = READ_LE_UINT16(ptr2 + 18) * 4;
-				sprintf(buf, "%d",  READ_LE_UINT32(inter_variables + val));
+				sprintf(buf, "%d",  VAR_OFFSET(val));
 			} else if (cmd == 1) {
 				val = READ_LE_UINT16(ptr2 + 18) * 4;
 
@@ -858,7 +856,7 @@
 			} else {
 				val = READ_LE_UINT16(ptr2 + 18) * 4;
 
-				sprintf(buf, "%d",  READ_LE_UINT32(inter_variables + val));
+				sprintf(buf, "%d",  VAR_OFFSET(val));
 				if (buf[0] == '-') {
 					while (strlen(buf) - 1 < (uint32)ptr2[17]) {
 						util_insertStr("0", buf, 1);

Index: game.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gob/game.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- game.cpp	9 Apr 2005 19:32:28 -0000	1.12
+++ game.cpp	10 Apr 2005 17:13:16 -0000	1.13
@@ -440,14 +440,13 @@
 int16 game_checkKeys(int16 *pMouseX, int16 *pMouseY, int16 *pButtons, char handleMouse) {
 	util_processInput();
 
-	if (READ_LE_UINT32(inter_variables + 0xe8) != 0) {
-		if (mult_frameStart != (int)READ_LE_UINT32(inter_variables + 0xe8) - 1)
+	if (VAR(58) != 0) {
+		if (mult_frameStart != (int)VAR(58) - 1)
 			mult_frameStart++;
 		else
 			mult_frameStart = 0;
 
-		mult_playMult(mult_frameStart + READ_LE_UINT32(inter_variables + 0xe4),
-		    mult_frameStart + READ_LE_UINT32(inter_variables + 0xe4), 1,
+		mult_playMult(mult_frameStart + VAR(57), mult_frameStart + VAR(57), 1,
 		    handleMouse);
 	}
 
@@ -950,7 +949,7 @@
 	}
 
 	for (i = 0; i < 40; i++) {
-		WRITE_LE_UINT32(inter_variables + i * 4 + 0x44, 0);
+		WRITE_VAR_OFFSET(i * 4 + 0x44, 0);
 	}
 
 	while (1) {
@@ -1128,7 +1127,7 @@
 	inter_execPtr += 6;
 
 	startIP = inter_execPtr;
-	WRITE_LE_UINT32(inter_variables + 0x40, 0);
+	WRITE_VAR(16, 0);
 	var_22 = 0;
 	index = 0;
 	curEditIndex = 0;
@@ -1371,7 +1370,7 @@
 				}
 			} else {
 
-				if (deltaTime != 0 && READ_LE_UINT32(inter_variables + 0x40) == 0) {
+				if (deltaTime != 0 && VAR(16) == 0) {
 					if (stackPos2 != 0) {
 						collStackPos = 0;
 						collPtr = game_collisionAreas;
@@ -1386,10 +1385,10 @@
 
 							game_activeCollResId = collPtr->id;
 							game_activeCollIndex = i;
-							WRITE_LE_UINT32(inter_variables + 0x08, inter_mouseX);
-							WRITE_LE_UINT32(inter_variables + 0x0c, inter_mouseY);
-							WRITE_LE_UINT32(inter_variables + 0x10, game_mouseButtons);
-							WRITE_LE_UINT32(inter_variables + 0x40, array[(uint16)game_activeCollResId & ~0x8000]);
+							WRITE_VAR(2, inter_mouseX);
+							WRITE_VAR(3, inter_mouseY);
+							WRITE_VAR(4, game_mouseButtons);
+							WRITE_VAR(16, array[(uint16)game_activeCollResId & ~0x8000]);
 
 							if (collPtr->funcLeave != 0) {
 								timeKey = util_getTimeKey();
@@ -1410,7 +1409,7 @@
 									deltaTime = 2;
 							}
 
-							if (READ_LE_UINT32(inter_variables + 0x40) == 0)
+							if (VAR(16) == 0)
 								game_activeCollResId = 0;
 							break;
 						}
@@ -1475,10 +1474,10 @@
 		if (game_collisionAreas[game_activeCollIndex].funcLeave != 0)
 			continue;
 
-		WRITE_LE_UINT32(inter_variables + 0x08, inter_mouseX);
-		WRITE_LE_UINT32(inter_variables + 0x0c, inter_mouseY);
-		WRITE_LE_UINT32(inter_variables + 0x10, game_mouseButtons);
-		WRITE_LE_UINT32(inter_variables + 0x40, array[(uint16)game_activeCollResId & ~0x8000]);
+		WRITE_VAR(2, inter_mouseX);
+		WRITE_VAR(3, inter_mouseY);
+		WRITE_VAR(4, game_mouseButtons);
+		WRITE_VAR(16, array[(uint16)game_activeCollResId & ~0x8000]);
 
 		if (game_collisionAreas[game_activeCollIndex].funcEnter != 0) {
 			savedIP = inter_execPtr;
@@ -1496,7 +1495,7 @@
 			inter_execPtr = savedIP;
 		}
 
-		WRITE_LE_UINT32(inter_variables + 0x40, 0);
+		WRITE_VAR(16, 0);
 		game_activeCollResId = 0;
 	}
 	while (game_activeCollResId == 0 && inter_terminate == 0);
@@ -1549,24 +1548,23 @@
 						util_prepareStr(game_collStr);
 
 					if (strcmp(game_tempStr, game_collStr) == 0) {
-						WRITE_LE_UINT32(inter_variables + 0x44, 
-										READ_LE_UINT32(inter_variables + 0x44) + 1);
-						WRITE_LE_UINT32(inter_variables + 0x44 + var_26 * 4, 1);
+						VAR(17)++;
+						WRITE_VAR(17 + var_26, 1);
 						break;
 					}
 				} while (READ_LE_UINT16(descArray[var_24].ptr - 2) > pos);
 				collStackPos++;
 			} else {
-				WRITE_LE_UINT32(inter_variables + 0x44 + var_26 * 4, 2);
+				VAR(17 + var_26) = 2;
 			}
 			var_24++;
 			var_26++;
 		}
 
-		if (collStackPos != READ_LE_UINT16(inter_variables + 0x44))
-			WRITE_LE_UINT32(inter_variables + 0x44, 0);
+		if (collStackPos != (int16)VAR(17))
+			WRITE_VAR(17, 0);
 		else
-			WRITE_LE_UINT32(inter_variables + 0x44, 1);
+			WRITE_VAR(17, 1);
 	}
 
 	savedIP = 0;
@@ -1574,12 +1572,12 @@
 		savedIP = (char *)game_totFileData +
 		    game_collisionAreas[game_activeCollIndex].funcLeave;
 
-		WRITE_LE_UINT32(inter_variables + 0x08, inter_mouseX);
-		WRITE_LE_UINT32(inter_variables + 0x0c, inter_mouseY);
-		WRITE_LE_UINT32(inter_variables + 0x10, game_mouseButtons);
+		WRITE_VAR(2, inter_mouseX);
+		WRITE_VAR(3, inter_mouseY);
+		WRITE_VAR(4, game_mouseButtons);
 
-		if (READ_LE_UINT32(inter_variables + 0x40) == 0) {
-			WRITE_LE_UINT32(inter_variables + 0x40, array[(uint16)game_activeCollResId & ~0x8000]);
+		if (VAR(16) == 0) {
+			WRITE_VAR(16, array[(uint16)game_activeCollResId & ~0x8000]);
 		}
 	}
 
@@ -1813,7 +1811,7 @@
 				variablesCount = READ_LE_UINT32((char *)game_totFileData + 0x2c);
 				inter_variables = (char *)malloc(variablesCount * 4);
 				for (i = 0; i < variablesCount; i++)
-					WRITE_LE_UINT32(inter_variables + i * 4, 0);
+					WRITE_VAR(i, 0);
 			}
 
 			inter_execPtr = (char *)game_totFileData;
@@ -1831,10 +1829,10 @@
 
 			inter_renewTimeInVars();
 
-			WRITE_LE_UINT32(inter_variables + 0x34, useMouse);
-			WRITE_LE_UINT32(inter_variables + 0x38, soundFlags);
-			WRITE_LE_UINT32(inter_variables + 0x3c,videoMode);
-			WRITE_LE_UINT32(inter_variables + 0x40, language);
+			WRITE_VAR(13, useMouse);
+			WRITE_VAR(14, soundFlags);
+			WRITE_VAR(15, videoMode);
+			WRITE_VAR(16, language);
 
 			inter_callSub(2);
 

Index: gob.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gob/gob.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- gob.h	5 Apr 2005 18:08:01 -0000	1.2
+++ gob.h	10 Apr 2005 17:13:17 -0000	1.3
@@ -29,6 +29,13 @@
 
 #include "base/engine.h"
 
+#define	VAR_OFFSET(offs)		(*(uint32 *)(inter_variables + (offs)))
+#define	VAR(var)			VAR_OFFSET((var << 2))
+#define VAR_ADDRESS(var)		(&VAR(var))
+
+#define	WRITE_VAR_OFFSET(offs, val)	(VAR_OFFSET(offs) = val)
+#define WRITE_VAR(var, val)		WRITE_VAR_OFFSET((var << 2), val)
+
 namespace Gob {
 
 class GobEngine : public Engine {

Index: goblin.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gob/goblin.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- goblin.cpp	10 Apr 2005 13:07:02 -0000	1.10
+++ goblin.cpp	10 Apr 2005 17:13:17 -0000	1.11
@@ -636,8 +636,7 @@
 			}
 		}
 		gobDesc->nextState = 21;
-	} else if (state >= 18 && state <= 21
-			   && READ_LE_UINT32(inter_variables + 0xec) == 0) {
+	} else if (state >= 18 && state <= 21 && VAR(59) == 0) {
 		if (state == 30 || state == 31)	// ???
 			return;
 
@@ -655,7 +654,7 @@
 	int16 tmp;
 
 	debug(0, "gob_switchGoblin");
-	if (READ_LE_UINT32(inter_variables + 0xec) != 0)
+	if (VAR(59) != 0)
 		return;
 
 	if (gob_goblins[gob_currentGoblin]->state <= 39 &&
@@ -1124,7 +1123,7 @@
 	int16 posY;
 
 	if (cont != 0 && gob_goesAtTarget == 0 &&
-	    gob_readyToAct == 0 && READ_LE_UINT32(inter_variables + 0xec) == 0 &&
+	    gob_readyToAct == 0 && VAR(59) == 0 &&
 	    gobDesc->type != 1 &&
 	    gobDesc->state != 10 && gobDesc->state != 11) {
 		if (gobDesc->state >= 40) {
@@ -1809,7 +1808,7 @@
 	framesCount =
 	    scen_animations[gobDesc->animation].layers[layer]->framesCount;
 
-	if (READ_LE_UINT32(inter_variables + 0xec) == 0 &&
+	if (VAR(59) == 0 &&
 	    gobDesc->state != 30 && gobDesc->state != 31) {
 		gobDesc->order = (gobDesc->bottom) / 24 + 3;
 	}
@@ -2011,58 +2010,56 @@
 }
 
 void gob_initVarPointers(void) {
-	// FIXME: All this is not endian-safe
-	gob_curGobStateVarPtr = (int32 *)(inter_variables + 0xf0);
-	gob_curGobNoTickVarPtr = (int32 *)(inter_variables + 0x120);
-	gob_curGobNextStateVarPtr = (int32 *)(inter_variables + 0xfc);
-	gob_curGobMultStateVarPtr = (int32 *)(inter_variables + 0xf8);
-	gob_curGobLookDirVarPtr = (int32 *)(inter_variables + 0x134);
-	gob_curGobPickableVarPtr = (int32 *)(inter_variables + 0x140);
-	gob_curGobRelaxVarPtr = (int32 *)(inter_variables + 0x144);
-	gob_curGobTypeVarPtr = (int32 *)(inter_variables + 0x124);
-	gob_curGobMaxFrameVarPtr = (int32 *)(inter_variables + 0x1b8);
-	gob_curGobTickVarPtr = (int32 *)(inter_variables + 0x12c);
-	gob_curGobFrameVarPtr = (int32 *)(inter_variables + 0xf4);
-	gob_curGobOrderVarPtr = (int32 *)(inter_variables + 0x11c);
-	gob_curGobMaxTickVarPtr = (int32 *)(inter_variables + 0x128);
-	gob_curGobActStartStateVarPtr = (int32 *)(inter_variables + 0x130);
-	gob_curGobDoAnimVarPtr = (int32 *)(inter_variables + 0x118);
-	gob_curGobLeftVarPtr = (int32 *)(inter_variables + 0x108);
-	gob_curGobRightVarPtr = (int32 *)(inter_variables + 0x110);
-	gob_curGobScrXVarPtr = (int32 *)(inter_variables + 0x100);
-	gob_curGobTopVarPtr = (int32 *)(inter_variables + 0x10c);
-	gob_curGobBottomVarPtr = (int32 *)(inter_variables + 0x114);
-	gob_curGobScrYVarPtr = (int32 *)(inter_variables + 0x104);
-
-	gob_destItemStateVarPtr = (int32 *)(inter_variables + 0x148);
-	gob_destItemNoTickVarPtr = (int32 *)(inter_variables + 0x178);
-	gob_destItemNextStateVarPtr = (int32 *)(inter_variables + 0x154);
-	gob_destItemMultStateVarPtr = (int32 *)(inter_variables + 0x150);
-	gob_destItemLookDirVarPtr = (int32 *)(inter_variables + 0x18c);
-	gob_destItemPickableVarPtr = (int32 *)(inter_variables + 0x198);
-	gob_destItemRelaxVarPtr = (int32 *)(inter_variables + 0x19c);
-	gob_destItemTypeVarPtr = (int32 *)(inter_variables + 0x17c);
-	gob_destItemMaxFrameVarPtr = (int32 *)(inter_variables + 0x1a4);
-	gob_destItemTickVarPtr = (int32 *)(inter_variables + 0x184);
-	gob_destItemFrameVarPtr = (int32 *)(inter_variables + 0x14c);
-	gob_destItemOrderVarPtr = (int32 *)(inter_variables + 0x174);
-	gob_destItemMaxTickVarPtr = (int32 *)(inter_variables + 0x180);
-	gob_destItemActStartStVarPtr = (int32 *)(inter_variables + 0x188);
-	gob_destItemDoAnimVarPtr = (int32 *)(inter_variables + 0x170);
-	gob_destItemLeftVarPtr = (int32 *)(inter_variables + 0x160);
-	gob_destItemRightVarPtr = (int32 *)(inter_variables + 0x168);
-	gob_destItemScrXVarPtr = (int32 *)(inter_variables + 0x158);
-	gob_destItemTopVarPtr = (int32 *)(inter_variables + 0x164);
-	gob_destItemBottomVarPtr = (int32 *)(inter_variables + 0x16c);
-	gob_destItemScrYVarPtr = (int32 *)(inter_variables + 0x15c);
-
-	gob_some0ValPtr = (int32 *)(inter_variables + 0x1ac);
-	gob_curGobXPosVarPtr = (int32 *)(inter_variables + 0x1b0);
-	gob_curGobYPosVarPtr = (int32 *)(inter_variables + 0x1b4);
-	gob_itemInPocketVarPtr = (int32 *)(inter_variables + 0x1c8);
-	gob_gobRetVarPtr = (int32 *)(inter_variables + 0xec);
-	gob_curGobVarPtr = (int32 *)(inter_variables + 0x1a8);
-
+	gob_gobRetVarPtr = (int32 *)VAR_ADDRESS(59);
+	gob_curGobStateVarPtr = (int32 *)VAR_ADDRESS(60);
+	gob_curGobFrameVarPtr = (int32 *)VAR_ADDRESS(61);
+	gob_curGobMultStateVarPtr = (int32 *)VAR_ADDRESS(62);
+	gob_curGobNextStateVarPtr = (int32 *)VAR_ADDRESS(63);
+	gob_curGobScrXVarPtr = (int32 *)VAR_ADDRESS(64);
+	gob_curGobScrYVarPtr = (int32 *)VAR_ADDRESS(65);
+	gob_curGobLeftVarPtr = (int32 *)VAR_ADDRESS(66);	
+	gob_curGobTopVarPtr = (int32 *)VAR_ADDRESS(67);
+	gob_curGobRightVarPtr = (int32 *)VAR_ADDRESS(68);
+	gob_curGobBottomVarPtr = (int32 *)VAR_ADDRESS(69);	
+	gob_curGobDoAnimVarPtr = (int32 *)VAR_ADDRESS(70);
+	gob_curGobOrderVarPtr = (int32 *)VAR_ADDRESS(71);
+	gob_curGobNoTickVarPtr = (int32 *)VAR_ADDRESS(72);
+	gob_curGobTypeVarPtr = (int32 *)VAR_ADDRESS(73);
+	gob_curGobMaxTickVarPtr = (int32 *)VAR_ADDRESS(74);
+	gob_curGobTickVarPtr = (int32 *)VAR_ADDRESS(75);
+	gob_curGobActStartStateVarPtr = (int32 *)VAR_ADDRESS(76);
+	gob_curGobLookDirVarPtr = (int32 *)VAR_ADDRESS(77);
+	gob_curGobPickableVarPtr = (int32 *)VAR_ADDRESS(80);
+	gob_curGobRelaxVarPtr = (int32 *)VAR_ADDRESS(81);
+	gob_destItemStateVarPtr = (int32 *)VAR_ADDRESS(82);
+	gob_destItemFrameVarPtr = (int32 *)VAR_ADDRESS(83);
+	gob_destItemMultStateVarPtr = (int32 *)VAR_ADDRESS(84);
+	gob_destItemNextStateVarPtr = (int32 *)VAR_ADDRESS(85);
+	gob_destItemScrXVarPtr = (int32 *)VAR_ADDRESS(86);
+	gob_destItemScrYVarPtr = (int32 *)VAR_ADDRESS(87);
+	gob_destItemLeftVarPtr = (int32 *)VAR_ADDRESS(88);
+	gob_destItemTopVarPtr = (int32 *)VAR_ADDRESS(89);
+	gob_destItemRightVarPtr = (int32 *)VAR_ADDRESS(90);
+	gob_destItemBottomVarPtr = (int32 *)VAR_ADDRESS(91);
+	gob_destItemDoAnimVarPtr = (int32 *)VAR_ADDRESS(92);
+	gob_destItemOrderVarPtr = (int32 *)VAR_ADDRESS(93);
+	gob_destItemNoTickVarPtr = (int32 *)VAR_ADDRESS(94);
+	gob_destItemTypeVarPtr = (int32 *)VAR_ADDRESS(95);
+	gob_destItemMaxTickVarPtr = (int32 *)VAR_ADDRESS(96);
+	gob_destItemTickVarPtr = (int32 *)VAR_ADDRESS(97);
+	gob_destItemActStartStVarPtr = (int32 *)VAR_ADDRESS(98);
+	gob_destItemLookDirVarPtr = (int32 *)VAR_ADDRESS(99);
+	gob_destItemPickableVarPtr = (int32 *)VAR_ADDRESS(102);
+	gob_destItemRelaxVarPtr = (int32 *)VAR_ADDRESS(103);
+	gob_destItemMaxFrameVarPtr = (int32 *)VAR_ADDRESS(105);
+	gob_curGobVarPtr = (int32 *)VAR_ADDRESS(106);
+	gob_some0ValPtr = (int32 *)VAR_ADDRESS(107);
+	gob_curGobXPosVarPtr = (int32 *)VAR_ADDRESS(108);
+	gob_curGobYPosVarPtr = (int32 *)VAR_ADDRESS(109);
+	gob_curGobMaxFrameVarPtr = (int32 *)VAR_ADDRESS(110);
+	
+	gob_itemInPocketVarPtr = (int32 *)VAR_ADDRESS(114);
+	
 	*gob_itemInPocketVarPtr = -2;
 }
 
@@ -2477,7 +2474,7 @@
 	int16 state;
 	int32 *retVarPtr;
 
-	retVarPtr = (int32 *)(inter_variables + 0xec);
+	retVarPtr = (int32 *)VAR_ADDRESS(59);
 
 	cmd = inter_load16();
 	inter_execPtr += 2;
@@ -2673,9 +2670,9 @@
 		item = inter_load16();
 
 		if (cmd == 42) {
-			xPos = READ_LE_UINT32(inter_variables + xPos * 4);
-			yPos = READ_LE_UINT32(inter_variables + yPos * 4);
-			item = READ_LE_UINT32(inter_variables + item * 4);
+			xPos = VAR(xPos);
+			yPos = VAR(yPos);
+			item = VAR(item);
 		}
 
 		for (y = 0; y < 28; y++) {
@@ -2824,8 +2821,8 @@
 		yPos = inter_load16();
 
 		if (cmd == 43) {
-			xPos = READ_LE_UINT32(inter_variables + xPos * 4);
-			yPos = READ_LE_UINT32(inter_variables + yPos * 4);
+			xPos = VAR(xPos);
+			yPos = VAR(yPos);
 		}
 
 		if ((map_itemsMap[yPos][xPos] & 0xff00) != 0) {
@@ -3149,7 +3146,7 @@
 		if (game_extHandle >= 0)
 			data_closeData(game_extHandle);
 
-		gob_loadObjects(inter_variables + extraData * 4);
+		gob_loadObjects((char *)VAR_ADDRESS(extraData));
 		game_extHandle = data_openData(game_curExtFile);
 		break;
 
@@ -3173,10 +3170,10 @@
 		extraData = inter_load16();
 		xPos = inter_load16();
 
-		if (READ_LE_UINT16(inter_variables + xPos * 4) == 0) {
+		if ((uint16)VAR(xPos) == 0) {
 			item =
 			    gob_doMove(gob_goblins[gob_currentGoblin], 1,
-			    READ_LE_UINT16(inter_variables + extraData * 4));
+			    (uint16)VAR(extraData));
 		} else {
 			item =
 			    gob_doMove(gob_goblins[gob_currentGoblin], 1, 3);
@@ -3199,13 +3196,12 @@
 		cmd = inter_load16();
 		xPos = inter_load16();
 
-		if (READ_LE_UINT16(inter_variables + xPos * 4) == 0) {
-			WRITE_LE_UINT32(inter_variables + cmd * 4,
-							gob_treatItem(READ_LE_UINT16(inter_variables + extraData * 4)));
+		if ((uint16)VAR(xPos) == 0) {
+			WRITE_VAR(cmd, gob_treatItem((uint16)VAR(extraData)));
 			break;
 		}
 
-		WRITE_LE_UINT32(inter_variables + cmd * 4, gob_treatItem(3));
+		WRITE_VAR(cmd, gob_treatItem(3));
 		break;
 
 	case 1010:
@@ -3214,7 +3210,7 @@
 
 	case 1011:
 		extraData = inter_load16();
-		if (READ_LE_UINT32(inter_variables + extraData * 4) != 0)
+		if (VAR(extraData) != 0)
 			gob_goesAtTarget = 1;
 		else
 			gob_goesAtTarget = 0;
@@ -3222,11 +3218,11 @@
 
 	case 1015:
 		extraData = inter_load16();
-		extraData = READ_LE_UINT32(inter_variables + extraData * 4);
+		extraData = VAR(extraData);
 		gob_objects[10]->xPos = extraData;
 
 		extraData = inter_load16();
-		extraData = READ_LE_UINT32(inter_variables + extraData * 4);
+		extraData = VAR(extraData);
 		gob_objects[10]->yPos = extraData;
 		break;
 

Index: inter.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gob/inter.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- inter.cpp	9 Apr 2005 19:32:28 -0000	1.9
+++ inter.cpp	10 Apr 2005 17:13:17 -0000	1.10
@@ -106,7 +106,7 @@
 	switch (savedPos[0]) {
 	case 23:
 	case 26:
-		WRITE_LE_UINT32(inter_variables + varOff, inter_resVal);
+		WRITE_VAR_OFFSET(varOff, inter_resVal);
 		break;
 
 	case 25:
@@ -173,7 +173,7 @@
 			switch (*inter_execPtr) {
 			case 23:
 			case 26:
-				sprintf(buf + i, "%d", READ_LE_UINT32(inter_variables + parse_parseVarIndex()));
+				sprintf(buf + i, "%d", VAR_OFFSET(parse_parseVarIndex()));
 				break;
 
 			case 25:
@@ -235,7 +235,7 @@
 	int16 checkEscape;
 
 	checkEscape = inter_load16();
-	mult_playMult(READ_LE_UINT32(inter_variables + 0xe4), -1, checkEscape, 0);
+	mult_playMult(VAR(57), -1, checkEscape, 0);
 }
 
 void inter_freeMult(void) {
@@ -433,8 +433,8 @@
 	maxFreeVar = parse_parseVarIndex();
 
 	// HACK
-	WRITE_LE_UINT32(inter_variables + freeVar, 1000000);
-	WRITE_LE_UINT32(inter_variables + maxFreeVar, 1000000);
+	WRITE_VAR_OFFSET(freeVar, 1000000);
+	WRITE_VAR_OFFSET(maxFreeVar, 1000000);
 }
 
 void inter_manageDataFile(void) {
@@ -459,7 +459,7 @@
 	size = parse_parseValExpr();
 	offset = parse_parseValExpr();
 
-	WRITE_LE_UINT32(inter_variables + 4, 1);
+	WRITE_VAR(1, 1);
 	handle = data_openData(inter_resStr, File::kFileWriteMode);
 
 	if (handle < 0)
@@ -474,7 +474,7 @@
 	retSize = file_getHandle(handle)->write(inter_variables + dataVar, size);
 
 	if (retSize == size)
-		WRITE_LE_UINT32(inter_variables + 4, 0);
+		WRITE_VAR(1, 0);
 
 	data_closeData(handle);
 }
@@ -488,7 +488,7 @@
 	varOff = parse_parseVarIndex();
 	handle = data_openData(inter_resStr);
 
-	WRITE_LE_UINT32(inter_variables + varOff, handle);
+	WRITE_VAR_OFFSET(varOff, handle);
 	if (handle >= 0)
 		data_closeData(handle);
 }
@@ -509,7 +509,7 @@
 	if (game_extHandle >= 0)
 		data_closeData(game_extHandle);
 
-	WRITE_LE_UINT32(inter_variables + 4, 1);
+	WRITE_VAR(1, 1);
 	handle = data_openData(inter_resStr);
 	if (handle >= 0) {
 		draw_animateCursor(4);
@@ -522,7 +522,7 @@
 		data_closeData(handle);
 
 		if (retSize == size)
-			WRITE_LE_UINT32(inter_variables + 4, 0);
+			WRITE_VAR(1, 0);
 	}
 
 	if (game_extHandle >= 0)
@@ -597,7 +597,7 @@
 	resVar = parse_parseVarIndex();
 
 	pos = util_strstr(inter_resStr, inter_variables + strVar);
-	WRITE_LE_UINT32(inter_variables + resVar, pos - 1);
+	WRITE_VAR_OFFSET(resVar, pos - 1);
 }
 
 void inter_setFrameRate(void) {
@@ -612,7 +612,7 @@
 	len = strlen(inter_variables + var);
 	var = parse_parseVarIndex();
 
-	WRITE_LE_UINT32(inter_variables + var, len);
+	WRITE_VAR_OFFSET(var, len);
 }
 
 void inter_strToLong(void) {
@@ -626,7 +626,7 @@
 	res = atol(str);
 
 	destVar = parse_parseVarIndex();
-	WRITE_LE_UINT32(inter_variables + destVar, res);
+	WRITE_VAR_OFFSET(destVar, res);
 }
 
 void inter_invalidate(void) {
@@ -733,15 +733,15 @@
 	time /= 1000; // convert to seconds
 
 	// hours
-	WRITE_LE_UINT32(inter_variables + 0x24, time / 3600);
+	WRITE_VAR(9, time / 3600);
 	time %= 3600;
 
 	// minutes
-	WRITE_LE_UINT32(inter_variables + 0x28, time / 60);
+	WRITE_VAR(10, time / 60);
 	time %= 60;
 
 	// seconds
-	WRITE_LE_UINT32(inter_variables + 0x2c, time);
+	WRITE_VAR(11, time);
 }
 
 void inter_playComposition(void) {
@@ -753,7 +753,7 @@
 	dataVar = parse_parseVarIndex();
 	freqVal = parse_parseValExpr();
 	for (i = 0; i < 50; i++)
-		inter_composition[i] = READ_LE_UINT32(inter_variables + dataVar + i * 4);
+		inter_composition[i] = (int16)VAR_OFFSET(dataVar + i * 4);
 
 	snd_playComposition(game_soundSamples, inter_composition, freqVal);
 }
@@ -874,12 +874,12 @@
 }
 
 void inter_storeKey(int16 key) {
-	WRITE_LE_UINT32(inter_variables + 0x30, util_getTimeKey() - game_startTimeKey);
+	WRITE_VAR(12, util_getTimeKey() - game_startTimeKey);
 
-	WRITE_LE_UINT32(inter_variables + 0x08, inter_mouseX);
-	WRITE_LE_UINT32(inter_variables + 0x0c, inter_mouseX);
-	WRITE_LE_UINT32(inter_variables + 0x10, game_mouseButtons);
-	WRITE_LE_UINT32(inter_variables + 0x04, snd_playingSound);
+	WRITE_VAR(2, inter_mouseX);
+	WRITE_VAR(3, inter_mouseY);
+	WRITE_VAR(4, game_mouseButtons);
+	WRITE_VAR(1, snd_playingSound);
 
 	if (key == 0x4800)
 		key = 0x0b;
@@ -894,7 +894,7 @@
 	else if ((key & 0xff) != 0)
 		key &= 0xff;
 
-	WRITE_LE_UINT32(inter_variables, key);
+	WRITE_VAR(0, key);
 
 	if (key != 0)
 		util_waitKey();
@@ -964,7 +964,7 @@
 			if (pressedKeys[0x3e])
 				key |= 0x4000;
 
-			WRITE_LE_UINT32(inter_variables, key);
+			WRITE_VAR(0, key);			
 			util_waitKey();
 			return;
 		}
@@ -995,7 +995,7 @@
 	notFound = 1;
 	*ppExec = 0;
 	value = parse_parseVarIndex();
-	value = READ_LE_UINT32(inter_variables + value);
+	value = VAR_OFFSET(value);
 
 	do {
 		len = *inter_execPtr++;

Index: mult.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gob/mult.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- mult.cpp	9 Apr 2005 19:32:28 -0000	1.7
+++ mult.cpp	10 Apr 2005 17:13:17 -0000	1.8
@@ -396,10 +396,10 @@
 		    pAnimData->animation, 0, *(mult_objects[objIndex].pPosX),
 		    *(mult_objects[objIndex].pPosY), 0);
 	}
-	WRITE_LE_UINT32(inter_variables + parse_parseVarIndex(), scen_toRedrawLeft);
-	WRITE_LE_UINT32(inter_variables + parse_parseVarIndex(), scen_toRedrawTop);
-	WRITE_LE_UINT32(inter_variables + parse_parseVarIndex(), scen_toRedrawRight);
-	WRITE_LE_UINT32(inter_variables + parse_parseVarIndex(), scen_toRedrawBottom);
+	WRITE_VAR_OFFSET(parse_parseVarIndex(), scen_toRedrawLeft);
+	WRITE_VAR_OFFSET(parse_parseVarIndex(), scen_toRedrawTop);
+	WRITE_VAR_OFFSET(parse_parseVarIndex(), scen_toRedrawRight);
+	WRITE_VAR_OFFSET(parse_parseVarIndex(), scen_toRedrawBottom);
 }
 
 void mult_interInitMult(void) {
@@ -896,7 +896,7 @@
 	do {
 		stop = 1;
 
-		if (READ_LE_UINT32(inter_variables + 0xe8) == 0) {
+		if (VAR(58) == 0) {
 			stop = mult_drawStatics(stop);
 			mult_drawAnims();
 		}
@@ -908,7 +908,7 @@
 			draw_blitInvalidated();
 		}
 
-		if (READ_LE_UINT32(inter_variables + 0xe8) == 0) {
+		if (VAR(58) == 0) {
 			mult_drawText(&stop, &stopNoClear);
 		}
 
@@ -964,9 +964,9 @@
 		if (snd_playingSound != 0)
 			snd_stopSound(10);
 
-		WRITE_LE_UINT32(inter_variables + 0xe4, (uint32)-1);
+		WRITE_VAR(57, (uint32)-1);
 	} else {
-		WRITE_LE_UINT32(inter_variables + 0xe4, mult_frame - 1 - mult_frameStart);
+		WRITE_VAR(57, mult_frame - 1 - mult_frameStart);
 	}
 }
 

Index: parse.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gob/parse.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- parse.cpp	9 Apr 2005 19:32:29 -0000	1.4
+++ parse.cpp	10 Apr 2005 17:13:17 -0000	1.5
@@ -77,7 +77,7 @@
 
 			case 23:
 				*operPtr = 20;
-				*valPtr = READ_LE_UINT32(inter_variables + inter_load16() * 4);
+				*valPtr = VAR(inter_load16());
 				break;
 
 			case 25:
@@ -88,6 +88,7 @@
 					inter_execPtr++;
 					temp += parse_parseValExpr();
 					*operPtr = 20;
+					//XXX: Checkme
 					*valPtr = *(inter_variables + temp);
 				}
 				break;
@@ -107,7 +108,7 @@
 				}
 
 				if (operation == 26) {
-					*valPtr = READ_LE_UINT32(inter_variables + temp * 4 + offset * 4);
+					*valPtr = VAR(temp + offset);
 					break;
 				}
 				*valPtr = (int32)(inter_variables + temp * 4 + offset * inter_animDataSize * 4);
@@ -115,6 +116,7 @@
 					inter_execPtr++;
 					temp2 = parse_parseValExpr();
 					*operPtr = 20;
+					//XXX: Checkme
 					*valPtr = *(inter_variables + temp * 4 + offset * 4 * inter_animDataSize + temp2);
 				}
 				break;
@@ -720,13 +722,14 @@
 				break;
 
 			case 23:
-				*valPtr = READ_LE_UINT16(inter_variables + inter_load16() * 4);
+				*valPtr = (uint16)VAR(inter_load16());
 				break;
 
 			case 25:
 				temp = inter_load16() * 4;
 				inter_execPtr++;
 				temp += parse_parseValExpr();
+				//XXX: Checkme
 				*valPtr = *(inter_variables + temp);
 				break;
 
@@ -742,10 +745,11 @@
 					offset = arrDesc[dim] * offset + temp2;
 				}
 				if (operation == 26) {
-					*valPtr = READ_LE_UINT16(inter_variables + temp * 4 + offset * 4);
+					*valPtr = (uint16)VAR(temp + offset);
 				} else {
 					inter_execPtr++;
 					temp2 = parse_parseValExpr();
+					//XXX: Checkme
 					*valPtr = *(inter_variables + temp * 4 + offset * 4 * inter_animDataSize + temp2);
 				}
 				break;

Index: scenery.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gob/scenery.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- scenery.cpp	9 Apr 2005 19:32:29 -0000	1.8
+++ scenery.cpp	10 Apr 2005 17:13:17 -0000	1.9
@@ -735,16 +735,16 @@
 	layerPtr = scen_animations[animation].layers[layer];
 
 	var = parse_parseVarIndex();
-	WRITE_LE_UINT32(inter_variables + var, layerPtr->animDeltaX);
+	WRITE_VAR_OFFSET(var, layerPtr->animDeltaX);
 
 	var = parse_parseVarIndex();
-	WRITE_LE_UINT32(inter_variables + var, layerPtr->animDeltaY);
+	WRITE_VAR_OFFSET(var, layerPtr->animDeltaY);
 
 	var = parse_parseVarIndex();
-	WRITE_LE_UINT32(inter_variables + var, layerPtr->unknown0);
+	WRITE_VAR_OFFSET(var, layerPtr->unknown0);
 
 	var = parse_parseVarIndex();
-	WRITE_LE_UINT32(inter_variables + var, layerPtr->framesCount);
+	WRITE_VAR_OFFSET(var, layerPtr->framesCount);
 }
 
 }				// End of namespace Gob





More information about the Scummvm-git-logs mailing list