[Scummvm-cvs-logs] SF.net SVN: scummvm: [24028] scummvm/trunk/engines/agos

eriktorbjorn at users.sourceforge.net eriktorbjorn at users.sourceforge.net
Sat Sep 30 09:00:48 CEST 2006


Revision: 24028
          http://svn.sourceforge.net/scummvm/?rev=24028&view=rev
Author:   eriktorbjorn
Date:     2006-09-30 00:00:42 -0700 (Sat, 30 Sep 2006)

Log Message:
-----------
Partially unstubbed the PP "oops" opcodes.

Modified Paths:
--------------
    scummvm/trunk/engines/agos/agos.cpp
    scummvm/trunk/engines/agos/agos.h
    scummvm/trunk/engines/agos/items.cpp

Modified: scummvm/trunk/engines/agos/agos.cpp
===================================================================
--- scummvm/trunk/engines/agos/agos.cpp	2006-09-30 06:47:41 UTC (rev 24027)
+++ scummvm/trunk/engines/agos/agos.cpp	2006-09-30 07:00:42 UTC (rev 24028)
@@ -331,6 +331,7 @@
 	_variableArray = 0;
 	_variableArray2 = 0;
 	_variableArrayPtr = 0;
+	_variableBackupArray = 0;
 
 	memset(_windowArray, 0, sizeof(_windowArray));
 
@@ -379,6 +380,8 @@
 	_saveOrLoad = false;
 	_saveLoadEdit = false;
 
+	_oopsValid = false;
+
 	_hyperLink = 0;
 	_interactY = 0;
 	_oracleMaxScrollY = 0;
@@ -614,6 +617,7 @@
 
 	_variableArray = (int16 *)calloc(_numVars, sizeof(int16));
 	_variableArray2 = (int16 *)calloc(_numVars, sizeof(int16));
+	_variableBackupArray = (int16 *)calloc(_numVars, sizeof(int16));
 
 	setupOpcodes();
 

Modified: scummvm/trunk/engines/agos/agos.h
===================================================================
--- scummvm/trunk/engines/agos/agos.h	2006-09-30 06:47:41 UTC (rev 24027)
+++ scummvm/trunk/engines/agos/agos.h	2006-09-30 07:00:42 UTC (rev 24028)
@@ -412,6 +412,7 @@
 	int16 *_variableArray;
 	int16 *_variableArray2;
 	int16 *_variableArrayPtr;
+	int16 *_variableBackupArray;
 
 	WindowBlock *_windowArray[16];
 
@@ -475,6 +476,8 @@
 	byte _saveLoadType, _saveLoadSlot;
 	char _saveLoadName[108];
 
+	bool _oopsValid;
+
 	int _sdlMouseX, _sdlMouseY;
 
 	byte *_backGroundBuf;

Modified: scummvm/trunk/engines/agos/items.cpp
===================================================================
--- scummvm/trunk/engines/agos/items.cpp	2006-09-30 06:47:41 UTC (rev 24027)
+++ scummvm/trunk/engines/agos/items.cpp	2006-09-30 07:00:42 UTC (rev 24028)
@@ -2569,10 +2569,24 @@
 void AGOSEngine::o4_restoreOopsPosition() {
 	// 32: restore oops position
 	getNextItemPtr();
+	if (_oopsValid) {
+		for (uint i = 0; i < _numVars; i++) {
+			_variableArray[i] = _variableBackupArray[i];
+		}
+//		i=FlagData[999]*100+11;
+//		C_PICTURE(4,i);
+		if (getBitFlag(110)) {
+			_gameTime += 10;
+		} else {
+			// Swampy adventures
+			_gameTime += 30;
+		}
+		_oopsValid = false;
+	}
 }
 
 void AGOSEngine::o4_checkTiles() {
-	// 37: for  MahJongg game
+	// 37: for MahJongg game
 	getVarOrByte();
 }
 
@@ -2627,6 +2641,13 @@
 
 void AGOSEngine::o4_saveOopsPosition() {
 	// 173: save oops position
+//	if (IsVQueueEmpty() == 0) {
+		_oopsValid = true;
+		for (uint i = 0; i < _numVars; i++) {
+			_variableBackupArray[i] = _variableArray[i];
+		}
+//	} else
+//		_oopsValid = false;
 }
 
 void AGOSEngine::o4_resetGameTime() {


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