[Scummvm-cvs-logs] SF.net SVN: scummvm:[35095] scummvm/trunk/engines/groovie

spookypeanut at users.sourceforge.net spookypeanut at users.sourceforge.net
Sun Nov 16 20:20:30 CET 2008


Revision: 35095
          http://scummvm.svn.sourceforge.net/scummvm/?rev=35095&view=rev
Author:   spookypeanut
Date:     2008-11-16 19:20:30 +0000 (Sun, 16 Nov 2008)

Log Message:
-----------
T7G: Two leftover commits from t7gre: fix broken palette on intro video, and add scriptvar debug flag

Modified Paths:
--------------
    scummvm/trunk/engines/groovie/groovie.cpp
    scummvm/trunk/engines/groovie/groovie.h
    scummvm/trunk/engines/groovie/script.cpp
    scummvm/trunk/engines/groovie/script.h
    scummvm/trunk/engines/groovie/vdx.cpp

Modified: scummvm/trunk/engines/groovie/groovie.cpp
===================================================================
--- scummvm/trunk/engines/groovie/groovie.cpp	2008-11-16 17:29:55 UTC (rev 35094)
+++ scummvm/trunk/engines/groovie/groovie.cpp	2008-11-16 19:20:30 UTC (rev 35095)
@@ -52,6 +52,8 @@
 	Common::addSpecialDebugLevel(kGroovieDebugUnknown, "Unknown", "Report values of unknown data in files");
 	Common::addSpecialDebugLevel(kGroovieDebugHotspots, "Hotspots", "Show the hotspots");
 	Common::addSpecialDebugLevel(kGroovieDebugCursor, "Cursor", "Debug cursor decompression / switching");
+	Common::addSpecialDebugLevel(kGroovieDebugMIDI, "MIDI", "Debug MIDI / XMIDI files");
+	Common::addSpecialDebugLevel(kGroovieDebugScriptvars, "Scriptvars", "Print out any change to script variables");
 }
 
 GroovieEngine::~GroovieEngine() {

Modified: scummvm/trunk/engines/groovie/groovie.h
===================================================================
--- scummvm/trunk/engines/groovie/groovie.h	2008-11-16 17:29:55 UTC (rev 35094)
+++ scummvm/trunk/engines/groovie/groovie.h	2008-11-16 19:20:30 UTC (rev 35095)
@@ -49,7 +49,8 @@
 	kGroovieDebugUnknown = 1 << 4,
 	kGroovieDebugHotspots = 1 << 5,
 	kGroovieDebugCursor = 1 << 6,
-	kGroovieDebugMIDI = 1 << 7
+	kGroovieDebugMIDI = 1 << 7,
+	kGroovieDebugScriptvars = 1 << 8
 		// the current limitation is 32 debug levels (1 << 31 is the last one)
 };
 

Modified: scummvm/trunk/engines/groovie/script.cpp
===================================================================
--- scummvm/trunk/engines/groovie/script.cpp	2008-11-16 17:29:55 UTC (rev 35094)
+++ scummvm/trunk/engines/groovie/script.cpp	2008-11-16 19:20:30 UTC (rev 35095)
@@ -68,20 +68,20 @@
 	// Prepare the variables
 	_bitflags = 0;
 	for (int i = 0; i < 0x400; i++) {
-		_variables[i] = 0;
+		setVariable(i, 0);
 	}
 
 	// Initialize the music type variable
 	int midiDriver = MidiDriver::detectMusicDriver(MDT_MIDI | MDT_ADLIB | MDT_PREFER_MIDI);
 	if (midiDriver == MD_ADLIB) {
 		// MIDI through AdLib
-		_variables[0x100] = 0;
+		setVariable(0x100, 0);
 	} else 	if ((midiDriver == MD_MT32) || ConfMan.getBool("native_mt32")) {
 		// MT-32
-		_variables[0x100] = 2;
+		setVariable(0x100, 2);
 	} else {
 		// GM
-		_variables[0x100] = 1;
+		setVariable(0x100, 1);
 	}
 
 	_hotspotTopAction = 0;
@@ -99,6 +99,11 @@
 	delete _videoFile;
 }
 
+void Script::setVariable(uint16 variablenum, byte value) {
+	_variables[variablenum] = value;
+	debugC(1, kGroovieDebugScriptvars | kGroovieDebugAll, "script variable[0x%03X] = %d (0x%04X)", variablenum, value, value);
+}
+
 void Script::setDebugger(Debugger *debugger) {
 	_debugger = debugger;
 }
@@ -136,7 +141,7 @@
 	// instruction to the one that actually loads the saved game specified
 	// in that variable. This will change in other versions of the game and
 	// in other games.
-	_variables[0x19] = slot;
+	setVariable(0x19, slot);
 	_currentInstruction = 0x287;
 
 	// TODO: We'll probably need to start by running the beginning of the
@@ -655,7 +660,7 @@
 
 	debugScript(1, true, "RANDOM: var[0x%04X] = rand(%d)", varnum, maxnum);
 
-	_variables[varnum] = _random.getRandomNumber(maxnum);
+	setVariable(varnum, _random.getRandomNumber(maxnum));
 }
 
 void Script::o_jmp() {
@@ -672,7 +677,7 @@
 	
 	debugScript(1, false, "LOADSTRING var[0x%04X..] =", varnum);
 	do {
-		_variables[varnum++] = readScriptChar(true, true, true);
+		setVariable(varnum++, readScriptChar(true, true, true));
 		debugScript(1, false, " 0x%02X", _variables[varnum - 1]);
 	} while (!(_code[_currentInstruction - 1] & 0x80));
 	debugScript(1, true, "");
@@ -684,7 +689,7 @@
 	debugScript(1, true, "RET %d", val);
 
 	// Set the return value
-	_variables[0x102] = val;
+	setVariable(0x102, val);
 
 	// Get the return address
 	if (_stacktop > 0) {
@@ -752,7 +757,7 @@
 		_firstbit = ((val & 0x80) != 0);
 		val &= 0x4F;
 
-		_variables[varnum] ^= val;
+		setVariable(varnum, _variables[varnum] ^ val);
 		debugScript(1, false, "%c", _variables[varnum]);
 
 		varnum++;
@@ -794,8 +799,8 @@
 	debugScript(1, true, "SWAP var[0x%04X] <-> var[0x%04X]", varnum1, varnum2);
 
 	uint8 tmp = _variables[varnum1];
-	_variables[varnum1] = _variables[varnum2];
-	_variables[varnum2] = tmp;
+	setVariable(varnum1, _variables[varnum2]);
+	setVariable(varnum2, tmp);
 }
 
 void Script::o_inc() {
@@ -803,7 +808,7 @@
 	
 	debugScript(1, true, "INC var[0x%04X]", varnum);
 
-	_variables[varnum]++;
+	setVariable(varnum, _variables[varnum] + 1);
 }
 
 void Script::o_dec() {
@@ -811,7 +816,7 @@
 	
 	debugScript(1, true, "DEC var[0x%04X]", varnum);
 
-	_variables[varnum]--;
+	setVariable(varnum, _variables[varnum] - 1);
 }
 
 void Script::o_strcmpnejmp_var() {			// 0x21
@@ -871,7 +876,7 @@
 
 	debugScript(1, true, "MOV var[0x%04X] = var[0x%04X]", varnum1, varnum2);
 
-	_variables[varnum1] = _variables[varnum2];
+	setVariable(varnum1, _variables[varnum2]);
 }
 
 void Script::o_add() {
@@ -880,7 +885,7 @@
 	
 	debugScript(1, true, "ADD var[0x%04X] += var[0x%04X]", varnum1, varnum2);
 
-	_variables[varnum1] += _variables[varnum2];
+	setVariable(varnum1, _variables[varnum1] + _variables[varnum2]);
 }
 
 void Script::o_videofromstring1() {
@@ -1010,7 +1015,7 @@
 	varnum = _variables[varnum] - 0x31;
 	debugScript(1, false, "LOADSTRINGVAR var[0x%04X..] =", varnum);
 	do {
-		_variables[varnum++] = readScriptChar(true, true, true);
+		setVariable(varnum++, readScriptChar(true, true, true));
 		debugScript(1, false, " 0x%02X", _variables[varnum - 1]);
 	} while (!(_code[_currentInstruction - 1] & 0x80));
 	debugScript(1, true, "");
@@ -1111,8 +1116,8 @@
 
 	// Swap the values
 	tmp = _variables[var1];
-	_variables[var1] = _variables[var2];
-	_variables[var2] = tmp;
+	setVariable(var1, _variables[var2]);
+	setVariable(var2, tmp);
 }
 
 void Script::o_printstring() {
@@ -1210,7 +1215,7 @@
 
 	// Reset the array of valid saves
 	for (int i = 0; i < 10; i++) {
-		_variables[i] = 0;
+		setVariable(i, 0);
 	}
 
 	// Get the list of savefiles
@@ -1225,21 +1230,21 @@
 		if (n >= 0 && n <= 9) {
 			// TODO: Check the contents of the file?
 			debugScript(2, true, "  Found valid savegame: %s", it->c_str());
-			_variables[n] = 1;
+			setVariable(n, 1);
 			count++;
 		}
 		it++;
 	}
 
 	// Save the number of valid saves
-	_variables[0x104] = count;
+	setVariable(0x104, count);
 	debugScript(1, true, "  Found %d valid savegames", count);
 }
 
 void Script::o_resetvars() {
 	debugScript(1, true, "RESETVARS");
 	for (int i = 0; i < 0x100; i++) {
-		_variables[i] = 0;
+		setVariable(i, 0);
 	}
 }
 
@@ -1249,7 +1254,7 @@
 
 	debugScript(1, true, "MOD var[0x%04X] %%= %d", varnum, val);
 
-	_variables[varnum] %= val;
+	setVariable(varnum, _variables[varnum] % val);
 }
 
 void Script::o_loadscript() {
@@ -1303,7 +1308,7 @@
 
 	debugScript(1, true, "SUB var[0x%04X] -= var[0x%04X]", varnum1, varnum2);
 
-	_variables[varnum1] -= _variables[varnum2];
+	setVariable(varnum1, _variables[varnum1] - _variables[varnum2]);
 }
 
 void Script::o_othello() {
@@ -1326,11 +1331,11 @@
 	}
 
 	// Set the movement origin
-	_variables[0] = 6; // y
-	_variables[1] = 0; // x
+	setVariable(0, 6); // y
+	setVariable(1, 0); // x
 	// Set the movement destination
-	_variables[2] = 6;
-	_variables[3] = 1;
+	setVariable(2, 6);
+	setVariable(3, 1);
 }
 
 void Script::o_returnscript() {
@@ -1344,7 +1349,7 @@
 	}
 
 	// Set the return value
-	_variables[0x102] = val;
+	setVariable(0x102, val);
 
 	// Restore the code
 	delete[] _code;
@@ -1403,7 +1408,7 @@
 		}
 	}
 
-	_variables[0x106] = cd;
+	setVariable(0x106, cd);
 }
 
 void Script::o_opcode4D() {

Modified: scummvm/trunk/engines/groovie/script.h
===================================================================
--- scummvm/trunk/engines/groovie/script.h	2008-11-16 17:29:55 UTC (rev 35094)
+++ scummvm/trunk/engines/groovie/script.h	2008-11-16 19:20:30 UTC (rev 35095)
@@ -43,6 +43,7 @@
 	~Script();
 
 	void setDebugger(Debugger *debugger);
+	void setVariable(uint16 varnum, byte value);
 
 	bool loadScript(Common::String scriptfile);
 	void directGameLoad(int slot);

Modified: scummvm/trunk/engines/groovie/vdx.cpp
===================================================================
--- scummvm/trunk/engines/groovie/vdx.cpp	2008-11-16 17:29:55 UTC (rev 35094)
+++ scummvm/trunk/engines/groovie/vdx.cpp	2008-11-16 19:20:30 UTC (rev 35095)
@@ -220,7 +220,8 @@
 		}
 
 		// Apply the palette
-		if (!_flagSix && !_flagSeven) {
+		if (!_flagSeven) {
+		//if (!_flagSix && !_flagSeven) {
 			setPalette(_palBuf);
 		}
 	}


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