[Scummvm-cvs-logs] scummvm master -> fc7a36d911341d960fcd9c2d890b1dc2362c5f35

tramboi bertrand_augereau at yahoo.fr
Thu Nov 17 12:40:35 CET 2011


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
db7184668d DREAMWEB: getroomdata has a better API
fc7a36d911 DREAMWEB: Cleaning in room loading


Commit: db7184668dfec0d09460f6bc345faaa43d036bb6
    https://github.com/scummvm/scummvm/commit/db7184668dfec0d09460f6bc345faaa43d036bb6
Author: Bertrand Augereau (bertrand_augereau at yahoo.fr)
Date: 2011-11-17T03:24:41-08:00

Commit Message:
DREAMWEB: getroomdata has a better API

Changed paths:
    engines/dreamweb/stubs.cpp
    engines/dreamweb/stubs.h



diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index f98e069..c94735f 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -747,7 +747,12 @@ void DreamGenContext::makebackob(SetObject *objData) {
 }
 
 void DreamGenContext::getroomdata() {
-	bx = kRoomdata + sizeof(Room) * al;
+	Room *room = getroomdata(al);
+	bx = (uint8 *)room - cs.ptr(0, 0);
+}
+
+Room *DreamGenContext::getroomdata(uint8 room) {
+	return (Room *)cs.ptr(kRoomdata, 0) + room;
 }
 
 void DreamGenContext::startloading() {
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 405ae1f..e6fe48e 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -63,6 +63,7 @@
 	uint8 getnumber(const Frame *charSet, const uint8 *string, uint16 maxWidth, bool centered, uint16 *offset);
 	uint8 kernchars(uint8 firstChar, uint8 secondChar, uint8 width);
 	void getroomdata();
+	Room *getroomdata(uint8 room);
 	void readheader();
 	void fillspace();
 	void startloading();


Commit: fc7a36d911341d960fcd9c2d890b1dc2362c5f35
    https://github.com/scummvm/scummvm/commit/fc7a36d911341d960fcd9c2d890b1dc2362c5f35
Author: Bertrand Augereau (bertrand_augereau at yahoo.fr)
Date: 2011-11-17T03:38:17-08:00

Commit Message:
DREAMWEB: Cleaning in room loading

Changed paths:
    engines/dreamweb/saveload.cpp
    engines/dreamweb/structs.h
    engines/dreamweb/stubs.cpp



diff --git a/engines/dreamweb/saveload.cpp b/engines/dreamweb/saveload.cpp
index f68ec86..02a1288 100644
--- a/engines/dreamweb/saveload.cpp
+++ b/engines/dreamweb/saveload.cpp
@@ -162,8 +162,8 @@ void DreamGenContext::doload() {
 
 	dx = data;
 	es = dx;
-	bx = kMadeuproomdat;
-	startloading();
+	const Room *room = (Room *)cs.ptr(kMadeuproomdat, sizeof(Room));
+	startloading(room);
 	loadroomssample();
 	data.byte(kRoomloaded) = 1;
 	data.byte(kNewlocation) = 255;
diff --git a/engines/dreamweb/structs.h b/engines/dreamweb/structs.h
index 2775cf4..c0adbe6 100644
--- a/engines/dreamweb/structs.h
+++ b/engines/dreamweb/structs.h
@@ -182,7 +182,7 @@ struct People {
 };
 
 struct Room {
-	uint8 name[10];
+	char  name[10];
 	uint8 b10;
 	uint8 b11;
 	uint8 b12;
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index c94735f..168d825 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -786,8 +786,7 @@ void DreamGenContext::startloading(const Room *room) {
 	al = room->b31;
 	ah = data.byte(kReallocation);
 	data.byte(kReallocation) = al;
-	dx = bx;
-	Common::String name = getFilename(*this);
+	Common::String name = room->name;
 	engine->openFile(name);
 	cs.word(kHandle) = 1; //only one handle
 	flags._c = false;
@@ -795,10 +794,10 @@ void DreamGenContext::startloading(const Room *room) {
 	allocateload();
 	ds = ax;
 	data.word(kBackdrop) = ax;
-	dx = (0);
+	dx = kFlags;
 	loadseg();
 	ds = data.word(kWorkspace);
-	dx = (0);
+	dx = kMap;
 	cx = 132*66;
 	al = 0;
 	fillspace();
@@ -807,11 +806,11 @@ void DreamGenContext::startloading(const Room *room) {
 	allocateload();
 	data.word(kSetframes) = ax;
 	ds = ax;
-	dx = (0);
+	dx = kFramedata;
 	loadseg();
 	ds = data.word(kSetdat);
 	dx = 0;
-	cx = (64*128);
+	cx = kSetdatlen;
 	al = 255;
 	fillspace();
 	loadseg();
@@ -862,22 +861,22 @@ void DreamGenContext::startloading(const Room *room) {
 	loadseg();
 	ds = data.word(kFreedat);
 	dx = 0;
-	cx = (16*80);
+	cx = kFreedatlen;
 	al = 255;
 	fillspace();
 	loadseg();
 	allocateload();
 	data.word(kFreedesc) = ax;
 	ds = ax;
-	dx = (0);
+	dx = kFreetextdat;
 	loadseg();
 	closefile();
 	findroominloc();
 	deletetaken();
 	setallchanges();
 	autoappear();
-	al = data.byte(kNewlocation);
-	getroomdata();
+	Room *newRoom = getroomdata(data.byte(kNewlocation));
+	bx = (uint8 *)newRoom - cs.ptr(0, 0);
 	data.byte(kLastweapon) = (uint8)-1;
 	data.byte(kMandead) = 0;
 	data.word(kLookcounter) = 160;
@@ -2037,9 +2036,8 @@ void DreamGenContext::loadroom() {
 	data.word(kTextaddressy) = 182;
 	data.byte(kTextlen) = 240;
 	data.byte(kLocation) = data.byte(kNewlocation);
-	al = data.byte(kNewlocation);
-	getroomdata();
-	startloading();
+	Room *room = getroomdata(data.byte(kNewlocation));
+	startloading(room);
 	loadroomssample();
 	switchryanon();
 	drawflags();






More information about the Scummvm-git-logs mailing list