[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