[Scummvm-cvs-logs] scummvm master -> a5748a34afe9ae837b14f26f69d6b3518ef91966
whoozle
whoozle at yandex.ru
Fri Jun 24 07:37:38 CEST 2011
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
a5748a34af DREAMWEB: Fixed continuing to another procedure. (axe misuse crash)
Commit: a5748a34afe9ae837b14f26f69d6b3518ef91966
https://github.com/scummvm/scummvm/commit/a5748a34afe9ae837b14f26f69d6b3518ef91966
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-23T22:34:23-07:00
Commit Message:
DREAMWEB: Fixed continuing to another procedure. (axe misuse crash)
Changed paths:
devtools/tasmrecover/tasm/cpp.py
engines/dreamweb/dreamgen.cpp
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index 0196e5b..dfdfb23 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -466,7 +466,9 @@ namespace %s {
self.resolve_label(s.label)
#adding statements
+ #BIG FIXME: this is quite ugly to handle code analysis from the code generation. rewrite me!
for label, proc, offset in self.unbounded:
+ self.body += "\treturn;\n" #we need to return before calling code from the other proc
self.body += "/*continuing to unbounded code: %s from %s:%d-%d*/\n" %(label, proc.name, offset, len(proc.stmts))
start = len(self.proc.stmts)
self.proc.add_label(label)
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index e92cd83..a5a4748 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -3482,6 +3482,7 @@ atlast4:
bx = pop();
es = pop();
data.byte(kLockstatus) = 1;
+ return;
/*continuing to unbounded code: shutdoor from dodoor:60-87*/
shutdoor:
cl = es.byte(bx+19);
@@ -6737,6 +6738,7 @@ doopeninv:
delpointer();
data.byte(kOpenedob) = 255;
goto waitexam;
+ return;
/*continuing to unbounded code: examineagain from examineob:3-66*/
examineagain:
data.byte(kInmaparea) = 0;
@@ -13187,6 +13189,7 @@ void DreamGenContext::useaxe() {
return;
notinpool:
showfirstuse();
+ return;
/*continuing to unbounded code: axeondoor from useelvdoor:19-30*/
axeondoor:
al = 15;
More information about the Scummvm-git-logs
mailing list