[Scummvm-cvs-logs] CVS: scummvm/simon simon.cpp,1.520.2.7,1.520.2.8 simon.h,1.149.2.3,1.149.2.4 vga.cpp,1.139.2.3,1.139.2.4

kirben kirben at users.sourceforge.net
Wed Jan 25 19:45:01 CET 2006


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

Modified Files:
      Tag: branch-0-8-0
	simon.cpp simon.h vga.cpp 
Log Message:

Backport change for PalmOS port


Index: simon.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/simon.cpp,v
retrieving revision 1.520.2.7
retrieving revision 1.520.2.8
diff -u -d -r1.520.2.7 -r1.520.2.8
--- simon.cpp	26 Jan 2006 03:35:21 -0000	1.520.2.7
+++ simon.cpp	26 Jan 2006 03:44:35 -0000	1.520.2.8
@@ -242,6 +242,7 @@
 	_gameOffsetsPtr = 0;
 
 	_debugger = 0;
+	setupVgaOpcodes();
 
 	_keyPressed = 0;
 

Index: simon.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/simon.h,v
retrieving revision 1.149.2.3
retrieving revision 1.149.2.4
diff -u -d -r1.149.2.3 -r1.149.2.4
--- simon.h	26 Jan 2006 03:35:21 -0000	1.149.2.3
+++ simon.h	26 Jan 2006 03:44:36 -0000	1.149.2.4
@@ -140,6 +140,11 @@
 	friend class Debugger;
 
 	void errorString(const char *buf_input, char *buf_output);
+
+	typedef void (SimonEngine::*VgaOpcodeProc) ();
+	void setupVgaOpcodes();
+	const VgaOpcodeProc *_vga_opcode_table;
+
 public:
 	GameDescription *_gameDescription;
 

Index: vga.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/vga.cpp,v
retrieving revision 1.139.2.3
retrieving revision 1.139.2.4
diff -u -d -r1.139.2.3 -r1.139.2.4
--- vga.cpp	26 Jan 2006 03:35:21 -0000	1.139.2.3
+++ vga.cpp	26 Jan 2006 03:44:36 -0000	1.139.2.4
@@ -29,86 +29,88 @@
 
 namespace Simon {
 
-typedef void (SimonEngine::*VgaOpcodeProc) ();
-
 // Opcode tables
-static const VgaOpcodeProc vga_opcode_table[] = {
-	NULL,
-	&SimonEngine::vc1_fadeOut,
-	&SimonEngine::vc2_call,
-	&SimonEngine::vc3_loadSprite,
-	&SimonEngine::vc4_fadeIn,
-	&SimonEngine::vc5_skip_if_neq,
-	&SimonEngine::vc6_skip_ifn_sib_with_a,
-	&SimonEngine::vc7_skip_if_sib_with_a,
-	&SimonEngine::vc8_skip_if_parent_is,
-	&SimonEngine::vc9_skip_if_unk3_is,
-	&SimonEngine::vc10_draw,
-	&SimonEngine::vc11_clearPathFinder,
-	&SimonEngine::vc12_delay,
-	&SimonEngine::vc13_addToSpriteX,
-	&SimonEngine::vc14_addToSpriteY,
-	&SimonEngine::vc15_wakeup_id,
-	&SimonEngine::vc16_sleep_on_id,
-	&SimonEngine::vc17_setPathfinderItem,
-	&SimonEngine::vc18_jump,
-	&SimonEngine::vc19_chain_to_script,
-	&SimonEngine::vc20_setRepeat,
-	&SimonEngine::vc21_endRepeat,
-	&SimonEngine::vc22_setSpritePalette,
-	&SimonEngine::vc23_setSpritePriority,
-	&SimonEngine::vc24_setSpriteXY,
-	&SimonEngine::vc25_halt_sprite,
-	&SimonEngine::vc26_setSubWindow,
-	&SimonEngine::vc27_resetSprite,
-	&SimonEngine::vc28_dummy_op,
-	&SimonEngine::vc29_stopAllSounds,
-	&SimonEngine::vc30_setFrameRate,
-	&SimonEngine::vc31_setWindow,
-	&SimonEngine::vc32_copyVar,
-	&SimonEngine::vc33_setMouseOn,
-	&SimonEngine::vc34_setMouseOff,
-	&SimonEngine::vc35_clearWindow,
-	&SimonEngine::vc36_setWindowImage,
-	&SimonEngine::vc37_addToSpriteY,
-	&SimonEngine::vc38_skipIfVarZero,
-	&SimonEngine::vc39_setVar,
-	&SimonEngine::vc40,
-	&SimonEngine::vc41,
-	&SimonEngine::vc42_delayIfNotEQ,
-	&SimonEngine::vc43_skipIfBitClear,
-	&SimonEngine::vc44_skipIfBitSet,
-	&SimonEngine::vc45_setSpriteX,
-	&SimonEngine::vc46_setSpriteY,
-	&SimonEngine::vc47_addToVar,
-	&SimonEngine::vc48_setPathFinder,
-	&SimonEngine::vc49_setBit,
-	&SimonEngine::vc50_clearBit,
-	&SimonEngine::vc51_clear_hitarea_bit_0x40,
-	&SimonEngine::vc52_playSound,
-	&SimonEngine::vc53_no_op,
-	&SimonEngine::vc54_no_op,
-	&SimonEngine::vc55_offset_hit_area,
-	&SimonEngine::vc56_delay,
-	&SimonEngine::vc57_no_op,
-	&SimonEngine::vc58,
-	&SimonEngine::vc59,
-	&SimonEngine::vc60_killSprite,
-	&SimonEngine::vc61_changeSprite,
-	&SimonEngine::vc62_fastFadeOut,
-	&SimonEngine::vc63_fastFadeIn,
-	&SimonEngine::vc64_skipIfSpeechEnded,
-	&SimonEngine::vc65_slowFadeIn,
-	&SimonEngine::vc66_skipIfNotEqual,
-	&SimonEngine::vc67_skipIfGE,
-	&SimonEngine::vc68_skipIfLE,
-	&SimonEngine::vc69_playTrack,
-	&SimonEngine::vc70_queueMusic,
-	&SimonEngine::vc71_checkMusicQueue,
-	&SimonEngine::vc72_play_track_2,
-	&SimonEngine::vc73_setMark,
-	&SimonEngine::vc74_clearMark,
-};
+void SimonEngine::setupVgaOpcodes() {
+	static const VgaOpcodeProc vga_opcode_table[] = {
+		NULL,
+		&SimonEngine::vc1_fadeOut,
+		&SimonEngine::vc2_call,
+		&SimonEngine::vc3_loadSprite,
+		&SimonEngine::vc4_fadeIn,
+		&SimonEngine::vc5_skip_if_neq,
+		&SimonEngine::vc6_skip_ifn_sib_with_a,
+		&SimonEngine::vc7_skip_if_sib_with_a,
+		&SimonEngine::vc8_skip_if_parent_is,
+		&SimonEngine::vc9_skip_if_unk3_is,
+		&SimonEngine::vc10_draw,
+		&SimonEngine::vc11_clearPathFinder,
+		&SimonEngine::vc12_delay,
+		&SimonEngine::vc13_addToSpriteX,
+		&SimonEngine::vc14_addToSpriteY,
+		&SimonEngine::vc15_wakeup_id,
+		&SimonEngine::vc16_sleep_on_id,
+		&SimonEngine::vc17_setPathfinderItem,
+		&SimonEngine::vc18_jump,
+		&SimonEngine::vc19_chain_to_script,
+		&SimonEngine::vc20_setRepeat,
+		&SimonEngine::vc21_endRepeat,
+		&SimonEngine::vc22_setSpritePalette,
+		&SimonEngine::vc23_setSpritePriority,
+		&SimonEngine::vc24_setSpriteXY,
+		&SimonEngine::vc25_halt_sprite,
+		&SimonEngine::vc26_setSubWindow,
+		&SimonEngine::vc27_resetSprite,
+		&SimonEngine::vc28_dummy_op,
+		&SimonEngine::vc29_stopAllSounds,
+		&SimonEngine::vc30_setFrameRate,
+		&SimonEngine::vc31_setWindow,
+		&SimonEngine::vc32_copyVar,
+		&SimonEngine::vc33_setMouseOn,
+		&SimonEngine::vc34_setMouseOff,
+		&SimonEngine::vc35_clearWindow,
+		&SimonEngine::vc36_setWindowImage,
+		&SimonEngine::vc37_addToSpriteY,
+		&SimonEngine::vc38_skipIfVarZero,
+		&SimonEngine::vc39_setVar,
+		&SimonEngine::vc40,
+		&SimonEngine::vc41,
+		&SimonEngine::vc42_delayIfNotEQ,
+		&SimonEngine::vc43_skipIfBitClear,
+		&SimonEngine::vc44_skipIfBitSet,
+		&SimonEngine::vc45_setSpriteX,
+		&SimonEngine::vc46_setSpriteY,
+		&SimonEngine::vc47_addToVar,
+		&SimonEngine::vc48_setPathFinder,
+		&SimonEngine::vc49_setBit,
+		&SimonEngine::vc50_clearBit,
+		&SimonEngine::vc51_clear_hitarea_bit_0x40,
+		&SimonEngine::vc52_playSound,
+		&SimonEngine::vc53_no_op,
+		&SimonEngine::vc54_no_op,
+		&SimonEngine::vc55_offset_hit_area,
+		&SimonEngine::vc56_delay,
+		&SimonEngine::vc57_no_op,
+		&SimonEngine::vc58,
+		&SimonEngine::vc59,
+		&SimonEngine::vc60_killSprite,
+		&SimonEngine::vc61_changeSprite,
+		&SimonEngine::vc62_fastFadeOut,
+		&SimonEngine::vc63_fastFadeIn,
+		&SimonEngine::vc64_skipIfSpeechEnded,
+		&SimonEngine::vc65_slowFadeIn,
+		&SimonEngine::vc66_skipIfNotEqual,
+		&SimonEngine::vc67_skipIfGE,
+		&SimonEngine::vc68_skipIfLE,
+		&SimonEngine::vc69_playTrack,
+		&SimonEngine::vc70_queueMusic,
+		&SimonEngine::vc71_checkMusicQueue,
+		&SimonEngine::vc72_play_track_2,
+		&SimonEngine::vc73_setMark,
+		&SimonEngine::vc74_clearMark,
+	};
+	
+	_vga_opcode_table = vga_opcode_table;
+}
 
 // Script parser
 void SimonEngine::run_vga_script() {
@@ -135,7 +137,7 @@
 		if (opcode == 0)
 			return;
 
-		(this->*vga_opcode_table[opcode]) ();
+		(this->*_vga_opcode_table[opcode]) ();
 	}
 }
 
@@ -610,6 +612,7 @@
 	state.palette = (_vcPtr[1] << 4);
 	_vcPtr += 2;
 	state.x = (int16)vc_read_next_word();
+
 	if (getGameType() == GType_SIMON2) {
 		state.x -= _scrollX;
 	}





More information about the Scummvm-git-logs mailing list