diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/simon/simon.cpp | 6 | ||||
-rw-r--r-- | engines/simon/simon.h | 2 | ||||
-rw-r--r-- | engines/simon/vga.cpp | 10 |
3 files changed, 8 insertions, 10 deletions
diff --git a/engines/simon/simon.cpp b/engines/simon/simon.cpp index 24f0a08f05..79860bb251 100644 --- a/engines/simon/simon.cpp +++ b/engines/simon/simon.cpp @@ -2204,7 +2204,7 @@ void SimonEngine::checkAnims(uint a, byte *end) { } } -void SimonEngine::set_video_mode_internal(uint mode, uint vga_res_id) { +void SimonEngine::set_video_mode_internal(uint16 mode, uint16 vga_res_id) { uint num, num_lines; VgaPointersEntry *vpe; byte *bb, *b; @@ -2216,7 +2216,6 @@ void SimonEngine::set_video_mode_internal(uint mode, uint vga_res_id) { if (getGameType() == GType_FF) { vc27_resetSprite(); - vga_res_id &= 0xFFFF; } if (vga_res_id == 0) { @@ -3228,7 +3227,8 @@ void SimonEngine::loadSprite(uint windowNum, uint zoneNum, uint vgaSpriteId, uin _lockWord |= 0x40; - if (isSpriteLoaded(vgaSpriteId, zoneNum)) { + if ((getGameType() == GType_SIMON1 || getGameType() == GType_SIMON2) && + isSpriteLoaded(vgaSpriteId, zoneNum)) { _lockWord &= ~0x40; return; } diff --git a/engines/simon/simon.h b/engines/simon/simon.h index e0a797fbd7..799a663098 100644 --- a/engines/simon/simon.h +++ b/engines/simon/simon.h @@ -699,7 +699,7 @@ protected: void handleVerbClicked(uint verb); - void set_video_mode_internal(uint mode, uint vga_res_id); + void set_video_mode_internal(uint16 mode, uint16 vga_res_id); void loadZone(uint vga_res); diff --git a/engines/simon/vga.cpp b/engines/simon/vga.cpp index b97040db9d..27dccdbdce 100644 --- a/engines/simon/vga.cpp +++ b/engines/simon/vga.cpp @@ -242,15 +242,12 @@ void SimonEngine::vc1_fadeOut() { void SimonEngine::vc2_call() { VgaPointersEntry *vpe; - uint num; - uint res; + uint16 num, res; byte *old_file_1, *old_file_2; byte *b, *bb; const byte *vc_ptr_org; num = vcReadVarOrWord(); - if (getGameType() == GType_FF) - num &= 0xFFFF; old_file_1 = _curVgaFile1; old_file_2 = _curVgaFile2; @@ -325,9 +322,10 @@ void SimonEngine::vc3_loadSprite() { y = vcReadNextWord(); /* 6 */ palette = vcReadNextWord(); /* 8 */ - /* 2nd param ignored with simon1 */ - if (isSpriteLoaded(vgaSpriteId, zoneNum)) + if ((getGameType() == GType_SIMON1 || getGameType() == GType_SIMON2) && + isSpriteLoaded(vgaSpriteId, zoneNum)) { return; + } vsp = _vgaSprites; while (vsp->id) |