[Scummvm-cvs-logs] scummvm master -> aefdf240fb91efbecc3dc929ae311faa9c8d7b02
tramboi
bertrand_augereau at yahoo.fr
Tue Aug 30 01:05:50 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:
aefdf240fb DREAMWEB: 'obpicture' ported to C++
Commit: aefdf240fb91efbecc3dc929ae311faa9c8d7b02
https://github.com/scummvm/scummvm/commit/aefdf240fb91efbecc3dc929ae311faa9c8d7b02
Author: Bertrand Augereau (bertrand_augereau at yahoo.fr)
Date: 2011-08-29T18:01:40-07:00
Commit Message:
DREAMWEB: 'obpicture' ported to C++
Changed paths:
devtools/tasmrecover/tasm-recover
engines/dreamweb/dreamgen.cpp
engines/dreamweb/dreamgen.h
engines/dreamweb/stubs.cpp
engines/dreamweb/stubs.h
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index bc138cf..9ecd261 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -167,6 +167,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'addtopeoplelist',
'getexpos',
'paneltomap',
+ 'obpicture',
], skip_output = [
# These functions are processed but not output
'dreamweb',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 6ebb617..bcc1cbb 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -4487,38 +4487,6 @@ void DreamGenContext::examicon() {
showframe();
}
-void DreamGenContext::obpicture() {
- STACK_CHECK;
- al = data.byte(kCommand);
- ah = data.byte(kObjecttype);
- _cmp(ah, 1);
- if (flags.z())
- return /* (setframe) */;
- _cmp(ah, 4);
- if (flags.z())
- goto exframe;
- ds = data.word(kFreeframes);
- di = 160;
- bx = 68;
- cl = al;
- _add(al, al);
- _add(al, cl);
- _inc(al);
- ah = 128;
- showframe();
- return;
-exframe:
- ds = data.word(kExtras);
- di = 160;
- bx = 68;
- cl = al;
- _add(al, al);
- _add(al, cl);
- _inc(al);
- ah = 128;
- showframe();
-}
-
void DreamGenContext::describeob() {
STACK_CHECK;
getobtextstart();
@@ -17908,7 +17876,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) {
case addr_openob: openob(); break;
case addr_obicons: obicons(); break;
case addr_examicon: examicon(); break;
- case addr_obpicture: obpicture(); break;
case addr_describeob: describeob(); break;
case addr_additionaltext: additionaltext(); break;
case addr_obsthatdothings: obsthatdothings(); break;
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 8cf0462..d638722 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -495,7 +495,6 @@ public:
static const uint16 addr_obsthatdothings = 0xc36c;
static const uint16 addr_additionaltext = 0xc368;
static const uint16 addr_describeob = 0xc364;
- static const uint16 addr_obpicture = 0xc360;
static const uint16 addr_examicon = 0xc35c;
static const uint16 addr_obicons = 0xc358;
static const uint16 addr_openob = 0xc354;
@@ -1871,7 +1870,7 @@ public:
void settopleft();
void searchforstring();
//void clearsprites();
- void obpicture();
+ //void obpicture();
void selectopenob();
//void widedoor();
void security();
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 1ffe329..0f3e642 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -1643,6 +1643,18 @@ void DreamGenContext::printmessage(uint16 x, uint16 y, uint8 index, uint8 maxWid
printdirect(&string, x, &y, maxWidth, centered);
}
+void DreamGenContext::obpicture() {
+ if (data.byte(kObjecttype) == 1)
+ return;
+ Frame *frames;
+ if (data.byte(kObjecttype) == 4)
+ frames = (Frame *)segRef(data.word(kExtras)).ptr(0, 0);
+ else
+ frames = (Frame *)segRef(data.word(kFreeframes)).ptr(0, 0);
+ uint8 frame = 3 * data.byte(kCommand) + 1;
+ showframe(frames, 160, 68, frame, 0x80);
+}
+
bool DreamGenContext::isCD() {
// The original sources has two codepaths depending if the game is 'if cd' or not
// This is a hack to guess which version to use with the assumption that if we have a cd version
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 58bda83..17b884c 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -199,4 +199,5 @@
void addtopeoplelist(ReelRoutine *routine);
void getexpos();
void paneltomap();
+ void obpicture();
More information about the Scummvm-git-logs
mailing list