[Scummvm-cvs-logs] scummvm master -> a2a873b94dd5f8a203d940a7c4ff38b06e127437
tramboi
bertrand_augereau at yahoo.fr
Mon Nov 14 18:24:25 CET 2011
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
b3248deda7 DREAMWEB: talk.cpp to mirror talk.asm
8f263ab5e6 DREAMWEB: 'showpersframe' and 'convicons' ported to C++
a2a873b94d Internal: 'findsource' is pure C++
Commit: b3248deda76580d1860e41f1248379bd7fd437ba
https://github.com/scummvm/scummvm/commit/b3248deda76580d1860e41f1248379bd7fd437ba
Author: Bertrand Augereau (bertrand_augereau at yahoo.fr)
Date: 2011-09-04T07:42:41-07:00
Commit Message:
DREAMWEB: talk.cpp to mirror talk.asm
Changed paths:
A engines/dreamweb/talk.cpp
engines/dreamweb/module.mk
diff --git a/engines/dreamweb/module.mk b/engines/dreamweb/module.mk
index 21429dc..d38d4db 100644
--- a/engines/dreamweb/module.mk
+++ b/engines/dreamweb/module.mk
@@ -12,6 +12,7 @@ MODULE_OBJS := \
saveload.o \
sprite.o \
stubs.o \
+ talk.o \
use.o \
vgagrafx.o
diff --git a/engines/dreamweb/talk.cpp b/engines/dreamweb/talk.cpp
new file mode 100644
index 0000000..75d91f2
--- /dev/null
+++ b/engines/dreamweb/talk.cpp
@@ -0,0 +1,28 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "dreamweb/dreamweb.h"
+
+namespace DreamGen {
+
+} /*namespace dreamgen */
+
Commit: 8f263ab5e6647d7267cdbf15bf4450b311286f9a
https://github.com/scummvm/scummvm/commit/8f263ab5e6647d7267cdbf15bf4450b311286f9a
Author: Bertrand Augereau (bertrand_augereau at yahoo.fr)
Date: 2011-09-04T07:42:42-07:00
Commit Message:
DREAMWEB: 'showpersframe' and 'convicons' ported to C++
Changed paths:
devtools/tasmrecover/tasm-recover
engines/dreamweb/dreamgen.cpp
engines/dreamweb/dreamgen.h
engines/dreamweb/stubs.h
engines/dreamweb/talk.cpp
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 0bce261..e37f155 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -202,6 +202,8 @@ generator = cpp(context, "DreamGen", blacklist = [
'showcity',
'examineobtext',
'wornerror',
+ 'getpersframe',
+ 'convicons',
], skip_output = [
# These functions are processed but not output
'dreamweb',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 201d993..a092509 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -5950,31 +5950,6 @@ notnexttalk:
data.byte(kVolumeto) = 0;
}
-void DreamGenContext::convicons() {
- STACK_CHECK;
- al = data.byte(kCharacter);
- _and(al, 127);
- getpersframe();
- di = 234;
- bx = 2;
- data.word(kCurrentframe) = ax;
- findsource();
- ax = data.word(kCurrentframe);
- _sub(ax, data.word(kTakeoff));
- ah = 0;
- showframe();
-}
-
-void DreamGenContext::getpersframe() {
- STACK_CHECK;
- ah = 0;
- _add(ax, ax);
- bx = ax;
- es = data.word(kPeople);
- _add(bx, (0));
- ax = es.word(bx);
-}
-
void DreamGenContext::starttalk() {
STACK_CHECK;
data.byte(kTalkmode) = 0;
@@ -16833,8 +16808,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) {
case addr_redrawmainscrn: redrawmainscrn(); break;
case addr_getback1: getback1(); break;
case addr_talk: talk(); break;
- case addr_convicons: convicons(); break;
- case addr_getpersframe: getpersframe(); break;
case addr_starttalk: starttalk(); break;
case addr_getpersontext: getpersontext(); break;
case addr_moretalk: moretalk(); break;
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index b91bc54..c29463a 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -422,8 +422,6 @@ public:
static const uint16 addr_moretalk = 0xc494;
static const uint16 addr_getpersontext = 0xc490;
static const uint16 addr_starttalk = 0xc48c;
- static const uint16 addr_getpersframe = 0xc488;
- static const uint16 addr_convicons = 0xc484;
static const uint16 addr_talk = 0xc480;
static const uint16 addr_getback1 = 0xc47c;
static const uint16 addr_redrawmainscrn = 0xc478;
@@ -1345,7 +1343,7 @@ public:
//void deltextline();
void entercode();
void getopenedsize();
- void getpersframe();
+ //void getpersframe();
void doshake();
void resetkeyboard();
//void showpanel();
@@ -1539,6 +1537,7 @@ public:
//void showcity();
void dumpsymbol();
void disablepath();
+ //void convicons();
void buttonsix();
void intro2text();
void showouterpad();
@@ -1612,9 +1611,8 @@ public:
void showmonk();
void diarykeyn();
void set16colpalette();
- void convicons();
- void interviewer();
void sparky();
+ void interviewer();
void purgeanitem();
void madman();
void createpanel();
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 458e731..7057c47 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -247,4 +247,6 @@
void examineobtext();
void sortoutmap();
void showcity();
+ uint16 getpersframe(uint8 index);
+ void convicons();
diff --git a/engines/dreamweb/talk.cpp b/engines/dreamweb/talk.cpp
index 75d91f2..91291e0 100644
--- a/engines/dreamweb/talk.cpp
+++ b/engines/dreamweb/talk.cpp
@@ -24,5 +24,17 @@
namespace DreamGen {
+uint16 DreamGenContext::getpersframe(uint8 index) {
+ return segRef(data.word(kPeople)).word(kPersonframes + index * 2);
+}
+
+void DreamGenContext::convicons() {
+ uint8 index = data.byte(kCharacter) & 127;
+ data.word(kCurrentframe) = getpersframe(index);
+ Frame *frame = findsourceCPP();
+ uint16 frameNumber = (data.word(kCurrentframe) - data.word(kTakeoff)) & 0xff;
+ showframe(frame, 234, 2, frameNumber, 0);
+}
+
} /*namespace dreamgen */
Commit: a2a873b94dd5f8a203d940a7c4ff38b06e127437
https://github.com/scummvm/scummvm/commit/a2a873b94dd5f8a203d940a7c4ff38b06e127437
Author: Bertrand Augereau (bertrand_augereau at yahoo.fr)
Date: 2011-09-04T07:42:43-07:00
Commit Message:
Internal: 'findsource' is pure C++
Changed paths:
engines/dreamweb/sprite.cpp
engines/dreamweb/stubs.h
engines/dreamweb/talk.cpp
diff --git a/engines/dreamweb/sprite.cpp b/engines/dreamweb/sprite.cpp
index 4ec900c..3c3d148 100644
--- a/engines/dreamweb/sprite.cpp
+++ b/engines/dreamweb/sprite.cpp
@@ -494,28 +494,20 @@ void DreamGenContext::facerightway() {
data.byte(kLeavedirection) = dir;
}
-void DreamGenContext::findsource() {
+Frame *DreamGenContext::findsource() {
uint16 currentFrame = data.word(kCurrentframe);
if (currentFrame < 160) {
- ds = data.word(kReel1);
data.word(kTakeoff) = 0;
+ return (Frame *)segRef(data.word(kReel1)).ptr(0, 0);
} else if (currentFrame < 320) {
- ds = data.word(kReel2);
data.word(kTakeoff) = 160;
+ return (Frame *)segRef(data.word(kReel2)).ptr(0, 0);
} else {
- ds = data.word(kReel3);
data.word(kTakeoff) = 320;
+ return (Frame *)segRef(data.word(kReel3)).ptr(0, 0);
}
}
-Frame *DreamGenContext::findsourceCPP() {
- push(ds);
- findsource();
- Frame *result = (Frame *)ds.ptr(0, 0);
- ds = pop();
- return result;
-}
-
Reel *DreamGenContext::getreelstart() {
Reel *reel = (Reel *)segRef(data.word(kReels)).ptr(kReellist + data.word(kReelpointer) * sizeof(Reel) * 8, sizeof(Reel));
return reel;
@@ -525,7 +517,7 @@ void DreamGenContext::showreelframe(Reel *reel) {
uint16 x = reel->x + data.word(kMapadx);
uint16 y = reel->y + data.word(kMapady);
data.word(kCurrentframe) = reel->frame();
- Frame *source = findsourceCPP();
+ Frame *source = findsource();
uint16 frame = data.word(kCurrentframe) - data.word(kTakeoff);
showframe(source, x, y, frame, 8);
}
@@ -545,7 +537,7 @@ void DreamGenContext::showgamereel(ReelRoutine *routine) {
const Frame *DreamGenContext::getreelframeax(uint16 frame) {
data.word(kCurrentframe) = frame;
- Frame *source = findsourceCPP();
+ Frame *source = findsource();
uint16 offset = data.word(kCurrentframe) - data.word(kTakeoff);
return source + offset;
}
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 7057c47..8fd1598 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -96,8 +96,7 @@
void widedoor(Sprite *sprite, SetObject *objData);
void lockeddoorway(Sprite *sprite, SetObject *objData);
void liftsprite(Sprite *sprite, SetObject *objData);
- void findsource();
- Frame *findsourceCPP();
+ Frame *findsource();
void showgamereel();
void showgamereel(ReelRoutine *routine);
void showreelframe(Reel *reel);
diff --git a/engines/dreamweb/talk.cpp b/engines/dreamweb/talk.cpp
index 91291e0..78b296a 100644
--- a/engines/dreamweb/talk.cpp
+++ b/engines/dreamweb/talk.cpp
@@ -31,7 +31,7 @@ uint16 DreamGenContext::getpersframe(uint8 index) {
void DreamGenContext::convicons() {
uint8 index = data.byte(kCharacter) & 127;
data.word(kCurrentframe) = getpersframe(index);
- Frame *frame = findsourceCPP();
+ Frame *frame = findsource();
uint16 frameNumber = (data.word(kCurrentframe) - data.word(kTakeoff)) & 0xff;
showframe(frame, 234, 2, frameNumber, 0);
}
More information about the Scummvm-git-logs
mailing list