[Scummvm-cvs-logs] SF.net SVN: scummvm: [21762] scummvm/trunk/engines/simon

eriktorbjorn at users.sourceforge.net eriktorbjorn at users.sourceforge.net
Mon Apr 10 03:09:08 CEST 2006


Revision: 21762
Author:   eriktorbjorn
Date:     2006-04-10 03:07:56 -0700 (Mon, 10 Apr 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm/?rev=21762&view=rev

Log Message:
-----------
Some opcodes have been made Simon 1-specific, either because they really are
only used in Simon 1 (e.g. the "beard" opcodes), or because Simon 2 and FF have
their own versions.

Modified Paths:
--------------
    scummvm/trunk/engines/simon/items.cpp
    scummvm/trunk/engines/simon/simon.h
Modified: scummvm/trunk/engines/simon/items.cpp
===================================================================
--- scummvm/trunk/engines/simon/items.cpp	2006-04-10 09:49:03 UTC (rev 21761)
+++ scummvm/trunk/engines/simon/items.cpp	2006-04-10 10:07:56 UTC (rev 21762)
@@ -125,7 +125,7 @@
 		&SimonEngine::o_end,
 		&SimonEngine::o_done,
 		// 70 - 74
-		&SimonEngine::o_printLongText,
+		NULL,
 		&SimonEngine::o_process,
 		NULL,
 		NULL,
@@ -140,8 +140,8 @@
 		&SimonEngine::o_is,
 		NULL,
 		&SimonEngine::o_debug,
-		&SimonEngine::o_rescan,
 		NULL,
+		NULL,
 		// 85 - 89
 		NULL,
 		NULL,
@@ -158,8 +158,8 @@
 		NULL,
 		&SimonEngine::o_picture,
 		&SimonEngine::o_loadZone,
-		&SimonEngine::o_animate,
-		&SimonEngine::o_stopAnimate,
+		NULL,
+		NULL,
 		// 100 - 104
 		&SimonEngine::o_killAnimate,
 		&SimonEngine::o_defWindow,
@@ -258,16 +258,16 @@
 		&SimonEngine::o_scnTxtLongText,
 		// 180 - 184
 		&SimonEngine::o_mouseOn,
-		&SimonEngine::o_mouseOff,
-		&SimonEngine::o_loadBeard,
-		&SimonEngine::o_unloadBeard,
+		NULL,
+		NULL,
+		NULL,
 		&SimonEngine::o_unloadZone,
 		// 185 - 189
-		&SimonEngine::o_loadStrings,
+		NULL,
 		&SimonEngine::o_unfreezeZones,
-		&SimonEngine::o_specialFade,
 		NULL,
 		NULL,
+		NULL,
 		// 190 - 194
 		NULL,
 		NULL,
@@ -287,6 +287,15 @@
 
 	switch (getGameType()) {
 	case GType_SIMON1:
+		opcode_table[70] = &SimonEngine::o1_printLongText;
+		opcode_table[83] = &SimonEngine::o1_rescan;
+		opcode_table[98] = &SimonEngine::o1_animate;
+		opcode_table[99] = &SimonEngine::o1_stopAnimate;
+		opcode_table[181] = &SimonEngine::o1_mouseOff;
+		opcode_table[182] = &SimonEngine::o1_loadBeard;
+		opcode_table[183] = &SimonEngine::o1_unloadBeard;
+		opcode_table[185] = &SimonEngine::o1_loadStrings;
+		opcode_table[187] = &SimonEngine::o1_specialFade;
 		break;
 	case GType_SIMON2:
 		opcode_table[70] = &SimonEngine::o2_printLongText;
@@ -294,8 +303,6 @@
 		opcode_table[98] = &SimonEngine::o2_animate;
 		opcode_table[99] = &SimonEngine::o2_stopAnimate;
 		opcode_table[181] = &SimonEngine::o2_mouseOff;
-		opcode_table[185] = NULL;
-		opcode_table[187] = NULL;
 		opcode_table[188] = &SimonEngine::o2_isShortText;
 		opcode_table[189] = &SimonEngine::o2_clearMarks;
 		opcode_table[190] = &SimonEngine::o2_waitMark;
@@ -321,7 +328,6 @@
 		opcode_table[181] = &SimonEngine::o3_mouseOff;
 		opcode_table[182] = &SimonEngine::o3_loadSmack;
 		opcode_table[183] = &SimonEngine::o3_playSmack;
-		opcode_table[185] = NULL;
 		opcode_table[187] = &SimonEngine::o3_centreScroll;
 		opcode_table[188] = &SimonEngine::o2_isShortText;
 		opcode_table[189] = &SimonEngine::o2_clearMarks;
@@ -729,12 +735,6 @@
 	setScriptReturn(1);
 }
 
-void SimonEngine::o_printLongText() {
-	// 70: show string from array
-	const char *str = (const char *)getStringPtrByID(_stringIdArray3[getVarOrByte()]);
-	showMessageFormat("%s\n", str);
-}
-
 void SimonEngine::o_process() {
 	// 71: start subroutine
 	Subroutine *sub = getSubroutineByID(getVarOrWord());
@@ -775,11 +775,6 @@
 	getVarOrByte();
 }
 
-void SimonEngine::o_rescan() {
-	// 83: restart subroutine
-	setScriptReturn(-10);
-}
-
 void SimonEngine::o_comment() {
 	// 87: comment
 	getNextStringID();
@@ -863,23 +858,6 @@
 	_lockWord &= ~0x80;
 }
 
-void SimonEngine::o_animate() {
-	// 98: start vga
-	uint vga_res, vgaSpriteId, windowNum, x, y, palette;
-	vgaSpriteId = getVarOrWord();
-	vga_res = vgaSpriteId / 100;
-	windowNum = getVarOrByte();
-	x = getVarOrWord();
-	y = getVarOrWord();
-	palette = getVarOrWord();
-	loadSprite(windowNum, vga_res, vgaSpriteId, x, y, palette);
-}
-
-void SimonEngine::o_stopAnimate() {
-	// 99: kill sprite
-	kill_sprite_simon1(getVarOrWord());
-}
-
 void SimonEngine::o_killAnimate() {
 	// 100: vga reset
 	_lockWord |= 0x8000;
@@ -1597,12 +1575,59 @@
 	scriptMouseOn();
 }
 
-void SimonEngine::o_mouseOff() {
+void SimonEngine::o_unloadZone() {
+	// 184: clear vgapointer entry
+	uint a = getVarOrWord();
+	VgaPointersEntry *vpe = &_vgaBufferPointers[a];
+
+	vpe->sfxFile = NULL;
+	vpe->vgaFile1 = NULL;
+	vpe->vgaFile2 = NULL;
+}
+
+void SimonEngine::o_unfreezeZones() {
+	// 186: vga pointer op 3
+	unfreezeBottom();
+}
+
+// -----------------------------------------------------------------------
+// Simon 1 Opcodes
+// -----------------------------------------------------------------------
+
+void SimonEngine::o1_printLongText() {
+	// 70: show string from array
+	const char *str = (const char *)getStringPtrByID(_stringIdArray3[getVarOrByte()]);
+	showMessageFormat("%s\n", str);
+}
+
+void SimonEngine::o1_rescan() {
+	// 83: restart subroutine
+	setScriptReturn(-10);
+}
+
+void SimonEngine::o1_animate() {
+	// 98: start vga
+	uint vga_res, vgaSpriteId, windowNum, x, y, palette;
+	vgaSpriteId = getVarOrWord();
+	vga_res = vgaSpriteId / 100;
+	windowNum = getVarOrByte();
+	x = getVarOrWord();
+	y = getVarOrWord();
+	palette = getVarOrWord();
+	loadSprite(windowNum, vga_res, vgaSpriteId, x, y, palette);
+}
+
+void SimonEngine::o1_stopAnimate() {
+	// 99: kill sprite
+	kill_sprite_simon1(getVarOrWord());
+}
+
+void SimonEngine::o1_mouseOff() {
 	// 181: force mouseOff
 	scriptMouseOff();
 }
 
-void SimonEngine::o_loadBeard() {
+void SimonEngine::o1_loadBeard() {
 	// 182: load beard
 	if (_beardLoaded == false) {
 		_beardLoaded = true;
@@ -1612,7 +1637,7 @@
 	}
 }
 
-void SimonEngine::o_unloadBeard() {
+void SimonEngine::o1_unloadBeard() {
 	// 183: unload beard
 	if (_beardLoaded == true) {
 		_beardLoaded = false;
@@ -1622,17 +1647,7 @@
 	}
 }
 
-void SimonEngine::o_unloadZone() {
-	// 184: clear vgapointer entry
-	uint a = getVarOrWord();
-	VgaPointersEntry *vpe = &_vgaBufferPointers[a];
-
-	vpe->sfxFile = NULL;
-	vpe->vgaFile1 = NULL;
-	vpe->vgaFile2 = NULL;
-}
-
-void SimonEngine::o_loadStrings() {
+void SimonEngine::o1_loadStrings() {
 	// 185: load sound files
 	_soundFileId = getVarOrWord();
 	if (getPlatform() == Common::kPlatformAmiga && getFeatures() & GF_TALKIE) {
@@ -1644,12 +1659,7 @@
 	}
 }
 
-void SimonEngine::o_unfreezeZones() {
-	// 186: vga pointer op 3
-	unfreezeBottom();
-}
-
-void SimonEngine::o_specialFade() {
+void SimonEngine::o1_specialFade() {
 	// 187: fade to black
 	fadeToBlack();
 }

Modified: scummvm/trunk/engines/simon/simon.h
===================================================================
--- scummvm/trunk/engines/simon/simon.h	2006-04-10 09:49:03 UTC (rev 21761)
+++ scummvm/trunk/engines/simon/simon.h	2006-04-10 10:07:56 UTC (rev 21762)
@@ -850,7 +850,6 @@
 	void o_setLongText();
 	void o_end();
 	void o_done();
-	void o_printLongText();
 	void o_process();
 	void o_when();
 	void o_if1();
@@ -858,7 +857,6 @@
 	void o_isCalled();
 	void o_is();
 	void o_debug();
-	void o_rescan();
 	void o_comment();
 	void o_haltAnimation();
 	void o_restartAnimation();
@@ -867,8 +865,6 @@
 	void o_getChildren();
 	void o_picture();
 	void o_loadZone();
-	void o_animate();
-	void o_stopAnimate();
 	void o_killAnimate();
 	void o_defWindow();
 	void o_window();
@@ -928,14 +924,20 @@
 	void o_getPathPosn();
 	void o_scnTxtLongText();
 	void o_mouseOn();
-	void o_mouseOff();
-	void o_loadBeard();
-	void o_unloadBeard();
 	void o_unloadZone();
-	void o_loadStrings();
 	void o_unfreezeZones();
-	void o_specialFade();
 
+	// Opcodes, Simon 1 only
+	void o1_printLongText();
+	void o1_rescan();
+	void o1_animate();
+	void o1_stopAnimate();
+	void o1_mouseOff();
+	void o1_loadBeard();
+	void o1_unloadBeard();
+	void o1_loadStrings();
+	void o1_specialFade();
+
 	// Opcodes, Simon 2 and later
 	void o2_printLongText();
 	void o2_rescan();
@@ -946,7 +948,7 @@
 	void o2_clearMarks();
 	void o2_waitMark();
 
-	// Opcodes, Feeble Files
+	// Opcodes, Feeble Files only
 	void o3_jumpOut();
 	void o3_addTextBox();
 	void o3_printLongText();


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