aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorWillem Jan Palenstijn2011-06-21 23:50:01 +0200
committerWillem Jan Palenstijn2011-06-22 00:00:56 +0200
commit25513893044032b2595992936e1e6011889197fd (patch)
tree23b362805b2202c5475de2d73b79a5856e9b5b27 /engines
parent55ed69dbab7a4856c59fe676cc6721110cb405e6 (diff)
downloadscummvm-rg350-25513893044032b2595992936e1e6011889197fd.tar.gz
scummvm-rg350-25513893044032b2595992936e1e6011889197fd.tar.bz2
scummvm-rg350-25513893044032b2595992936e1e6011889197fd.zip
DREAMWEB: Fix bug in tasmrecover causing load/save mixup
This is a regression from c1b9adb6912 and (my commit) 287c23f1263c. It is not safe to remove opcodes from proc.stmts since labels are sometimes referenced by their offset in the list. So, instead they are now replaced by op._nop. This fixes kLoadingorsave not being set in doload(), which was visible when going to the load game menu from the startup menu.
Diffstat (limited to 'engines')
-rw-r--r--engines/dreamweb/dreamgen.cpp3
-rw-r--r--engines/dreamweb/dreamgen.h6
2 files changed, 5 insertions, 4 deletions
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 9349436ca2..da0d71f7fe 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -13226,7 +13226,7 @@ void DreamGenContext::useaxe() {
return;
notinpool:
showfirstuse();
-/*continuing to unbounded code: axeondoor from useelvdoor:19-29*/
+/*continuing to unbounded code: axeondoor from useelvdoor:19-30*/
axeondoor:
al = 15;
cx = 300;
@@ -16886,6 +16886,7 @@ alreadynewgame:
void DreamGenContext::doload() {
STACK_CHECK;
+ data.byte(kLoadingorsave) = 1;
showopbox();
showloadops();
data.byte(kCurrentslot) = 0;
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 2d05f9c791..b012663ab6 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -600,6 +600,7 @@ public:
void clearbuffers();
void neterror();
void storeit();
+ void lockeddoorway();
void isitworn();
void putundertimed();
void dumpmap();
@@ -954,8 +955,9 @@ public:
void showmonk();
void diarykeyn();
void set16colpalette();
- void sparky();
+ void convicons();
void interviewer();
+ void sparky();
void purgeanitem();
void madman();
void createpanel();
@@ -1250,14 +1252,12 @@ public:
void usechurchgate();
void monkandryan();
void allocatebuffers();
- void convicons();
void swapwithinv();
void usecontrol();
void buttonseven();
void redrawmainscrn();
void finishedwalking();
void findallryan();
- void lockeddoorway();
void channel0tran();
void buttonpress();
void parseblaster();