aboutsummaryrefslogtreecommitdiff
path: root/simon
diff options
context:
space:
mode:
authorJames Brown2002-08-20 09:58:35 +0000
committerJames Brown2002-08-20 09:58:35 +0000
commitca4789c2ffff32213aaf90f656524f44f83d5830 (patch)
treea752532146bea5e2d8d1a319801e3b09c5a0e782 /simon
parentf3ceaf7f81246a3ddc5e09b2710d2627a3a412ba (diff)
downloadscummvm-rg350-ca4789c2ffff32213aaf90f656524f44f83d5830.tar.gz
scummvm-rg350-ca4789c2ffff32213aaf90f656524f44f83d5830.tar.bz2
scummvm-rg350-ca4789c2ffff32213aaf90f656524f44f83d5830.zip
Fix lighting on actors in V6+ games (eg, Sam and Max)
Move boxflags debug to debug level 2 (we default to 1) Apply patches: 595414: Simon 2 lockup workarounds 595875: Simon 2 save/load dialog fix 597422: Preliminary support for CREA sound format (for FT) 597627: Use savedir for save/load-string opcodes svn-id: r4779
Diffstat (limited to 'simon')
-rw-r--r--simon/simon.cpp26
1 files changed, 15 insertions, 11 deletions
diff --git a/simon/simon.cpp b/simon/simon.cpp
index c7e34ccbcb..a60234d7a2 100644
--- a/simon/simon.cpp
+++ b/simon/simon.cpp
@@ -2707,16 +2707,14 @@ void SimonState::timer_proc1()
timer_vga_sprites_2();
#endif
- if (!(_game & GAME_SIMON2)) {
- if (_copy_partial_mode == 1) {
- dx_copy_from_2_to_attached(80, 46, 208 - 80, 94 - 46);
- }
+ if (_copy_partial_mode == 1) {
+ dx_copy_from_2_to_attached(80, 46, 208 - 80, 94 - 46);
+ }
- if (_copy_partial_mode == 2) {
- /* copy partial from attached to 2 */
- dx_copy_from_attached_to_2(176, 61, 320 - 176, 134 - 61);
- _copy_partial_mode = 0;
- }
+ if (_copy_partial_mode == 2) {
+ /* copy partial from attached to 2 */
+ dx_copy_from_attached_to_2(176, 61, 320 - 176, 134 - 61);
+ _copy_partial_mode = 0;
}
/* XXX: more stuff here */
@@ -3206,6 +3204,7 @@ void SimonState::video_toggle_colors(HitArea * ha, byte a, byte b, byte c, byte
if (!(h > 0 && w > 0 && ha->x + w <= 320 && ha->y + h <= 200)) {
warning("Invalid coordinates in video_toggle_colors (%d,%d,%d,%d)", ha->x, ha->y, ha->width,
ha->height);
+ _lock_word &= ~0x8000;
return;
}
@@ -4453,8 +4452,10 @@ bool SimonState::save_game(uint slot, const char *caption)
#endif
f = fopen(gen_savename(slot), "wb");
- if (f == NULL)
+ if (f == NULL) {
+ _lock_word &= ~0x100;
return false;
+ }
fwrite(caption, 1, 0x12, f);
@@ -4559,8 +4560,10 @@ bool SimonState::load_game(uint slot)
#endif
f = fopen(gen_savename(slot), "rb");
- if (f == NULL)
+ if (f == NULL) {
+ _lock_word &= ~0x100;
return false;
+ }
fread(ident, 1, 18, f);
@@ -4568,6 +4571,7 @@ bool SimonState::load_game(uint slot)
if (fileReadBE32(f) != 0xFFFFFFFF || num != _itemarray_inited - 1) {
fclose(f);
+ _lock_word &= ~0x100;
return false;
}