[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