[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