DREAMWEB: Cleaning in room loading

This commit is contained in:
Bertrand Augereau 2011-11-17 11:34:06 +01:00
parent db7184668d
commit fc7a36d911
3 changed files with 14 additions and 16 deletions

View File

@ -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;

View File

@ -182,7 +182,7 @@ struct People {
};
struct Room {
uint8 name[10];
char name[10];
uint8 b10;
uint8 b11;
uint8 b12;

View File

@ -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();