[Scummvm-cvs-logs] CVS: scummvm/simon simon.cpp,1.378,1.379 simon.h,1.113,1.114 vga.cpp,1.98,1.99

Travis Howell kirben at users.sourceforge.net
Fri Dec 19 20:21:01 CET 2003


Update of /cvsroot/scummvm/scummvm/simon
In directory sc8-pr-cvs1:/tmp/cvs-serv10823/simon

Modified Files:
	simon.cpp simon.h vga.cpp 
Log Message:

Fix iventory arrowsin some versions of Simon1.


Index: simon.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/simon.cpp,v
retrieving revision 1.378
retrieving revision 1.379
diff -u -d -r1.378 -r1.379
--- simon.cpp	18 Dec 2003 11:16:10 -0000	1.378
+++ simon.cpp	20 Dec 2003 04:20:21 -0000	1.379
@@ -350,6 +350,7 @@
 	_vga_var5 = 0;
 	_vga_var7 = 0;
 	_vga_var8 = 0;
+	_keep_arrows = 0;
 
 	_script_cond_a = 0;
 	_script_cond_b = 0;
@@ -1734,6 +1735,8 @@
 		ha->unk3 = 1;
 
 		// Simon1 specific
+		warning("Updating inventory area");
+		_keep_arrows = 1;
 		o_kill_sprite_simon1(0x80);
 		start_vga_code(0, 1, 0x80, 0, 0, 0xE);
 	} else {
@@ -3361,12 +3364,7 @@
 
 // ok
 void SimonEngine::fcs_unk_5(FillOrCopyStruct *fcs, uint fcs_index) {
-	if (_game == GAME_SIMON1WIN) {
-		o_kill_sprite_simon1(0x80);
-	} else {
-		o_kill_sprite_simon1(0x81);
-		start_vga_code(0, 1, 0x81, 0, 0, 0xE);
-	}
+	o_kill_sprite_simon1(0x80);
 }
 
 void SimonEngine::delete_hitarea_by_index(uint index) {

Index: simon.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/simon.h,v
retrieving revision 1.113
retrieving revision 1.114
diff -u -d -r1.113 -r1.114
--- simon.h	18 Dec 2003 10:47:12 -0000	1.113
+++ simon.h	20 Dec 2003 04:20:22 -0000	1.114
@@ -261,6 +261,7 @@
 	bool _exit_cutscene;
 	bool _skip_speech;
 	byte _video_var_9;
+	bool _keep_arrows;
 
 	uint _sound_file_id;
 	int16 _last_music_played;

Index: vga.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/vga.cpp,v
retrieving revision 1.98
retrieving revision 1.99
diff -u -d -r1.98 -r1.99
--- vga.cpp	18 Dec 2003 10:47:12 -0000	1.98
+++ vga.cpp	20 Dec 2003 04:20:22 -0000	1.99
@@ -1193,6 +1193,14 @@
 
 void SimonEngine::vc_25_halt_sprite() {
 	VgaSprite *vsp = find_cur_sprite();
+	// Work around to allow inventory arrows to be
+	// showned in some versions of Simon the Sorcerer 1
+	if (!(_game GF_SIMON2) && !(_game & GF_WIN) &&
+	      vsp->id == 0x80 && _keep_arrows) {
+		_keep_arrows = 0;
+		return;
+	}
+
 	while (vsp->id != 0) {
 		memcpy(vsp, vsp + 1, sizeof(VgaSprite));
 		vsp++;
@@ -1220,7 +1228,7 @@
 
 	vsp = _vga_sprites;
 	while (vsp->id) {
-		if ((_game == GAME_SIMON1WIN) && (vsp->id == 0x80)) {
+		if (vsp->id == 0x80) {
 			memcpy(&bak, vsp, sizeof(VgaSprite));
 		}
 		vsp->id = 0;
@@ -1244,7 +1252,7 @@
 				memcpy(vte2, vte2 + 1, sizeof(VgaTimerEntry));
 				vte2++;
 			}
-		} else if (_game == GAME_SIMON1WIN) {
+		} else {
 			vte++;
 		}
 	}
@@ -1722,7 +1730,7 @@
 			delay(5);
 		}
 
-		if (_game == GAME_SIMON1WIN) {
+		if (!(_game & GF_SIMON2)) {
 			uint16 params[5];						/* parameters to vc_10_draw */
 			VgaSprite *vsp;
 			VgaPointersEntry *vpe;





More information about the Scummvm-git-logs mailing list