[Scummvm-cvs-logs] scummvm master -> a38018c5f49ff4a7c9014749c65ebaca4973a0f1
wjp
wjp at usecode.org
Sat Dec 3 16:58:29 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:
23576c8f15 DREAMWEB: Clean up
720f3587cb DREAMWEB: Move 'loadOld' from dreamgen
a38018c5f4 DREAMWEB: Convert 'loadOld' and clean up 'doLoad' calls
Commit: 23576c8f155833614f5207b14005f9a69f1c8d4f
https://github.com/scummvm/scummvm/commit/23576c8f155833614f5207b14005f9a69f1c8d4f
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2011-12-03T07:56:37-08:00
Commit Message:
DREAMWEB: Clean up
Changed paths:
engines/dreamweb/saveload.cpp
engines/dreamweb/stubs.cpp
diff --git a/engines/dreamweb/saveload.cpp b/engines/dreamweb/saveload.cpp
index b520150..6af4071 100644
--- a/engines/dreamweb/saveload.cpp
+++ b/engines/dreamweb/saveload.cpp
@@ -60,7 +60,7 @@ void DreamGenContext::doLoad() {
namesToOld();
data.byte(kGetback) = 0;
- while (true) {
+ while (data.byte(kGetback) == 0) {
if (quitRequested())
return;
delPointer();
@@ -77,8 +77,6 @@ void DreamGenContext::doLoad() {
{ 0xFFFF,0,0,0,0 }
};
checkCoords(loadlist);
- if (data.byte(kGetback) == 1)
- break; // This signalled that actualLoad loaded a game
if (data.byte(kGetback) == 2)
return; // "quitloaded"
}
@@ -114,8 +112,6 @@ void DreamGenContext::doLoad() {
if (data.word(kTempgraphics) != 0xFFFF)
getRidOfTemp();
- dx = data;
- es = dx;
const Room *room = (const Room *)cs.ptr(kMadeuproomdat, sizeof(Room));
startLoading(*room);
loadRoomsSample();
@@ -160,7 +156,7 @@ void DreamGenContext::saveGame() {
data.word(kBufferout) = 0;
data.byte(kGetback) = 0;
- while (true) {
+ while (data.byte(kGetback) == 0) {
if (quitRequested())
return;
delPointer();
@@ -179,10 +175,6 @@ void DreamGenContext::saveGame() {
{ 0xFFFF,0,0,0,0 }
};
checkCoords(savelist);
- _cmp(data.byte(kGetback), 0);
- if (flags.z())
- continue;
- break;
}
return;
} else {
@@ -340,7 +332,7 @@ void DreamGenContext::savePosition(unsigned int slot, const uint8 *descbuf) {
for (int i = 0; i < 6; ++i)
header.setLen(i, len[i]);
- engine->writeToSaveFile((const uint8 *)&header, kHeaderlen);
+ engine->writeToSaveFile((const uint8 *)&header, sizeof(FileHeader));
engine->writeToSaveFile(descbuf, len[0]);
engine->writeToSaveFile(data.ptr(kStartvars, len[1]), len[1]);
engine->writeToSaveFile(getSegment(data.word(kExtras)).ptr(kExframedata, len[2]), len[2]);
@@ -362,7 +354,7 @@ void DreamGenContext::loadPosition(unsigned int slot) {
FileHeader header;
- engine->readFromSaveFile((uint8 *)&header, kHeaderlen);
+ engine->readFromSaveFile((uint8 *)&header, sizeof(FileHeader));
// read segment lengths from savegame file header
int len[6];
@@ -383,6 +375,8 @@ void DreamGenContext::loadPosition(unsigned int slot) {
engine->readFromSaveFile(getSegment(data.word(kBuffers)).ptr(kListofchanges, len[3]), len[3]);
// len[4] == 48, which is sizeof(Room) plus 16 for 'Roomscango'
+ // Note: the values read into Madeuproomdat are only used in actualLoad,
+ // which is (almost) immediately called after this function
engine->readFromSaveFile(data.ptr(kMadeuproomdat, sizeof(Room)), sizeof(Room));
engine->readFromSaveFile(data.ptr(kRoomscango, 16), 16);
@@ -403,7 +397,7 @@ unsigned int DreamGenContext::scanForNames() {
++count;
- engine->readFromSaveFile((uint8 *)&header, kHeaderlen);
+ engine->readFromSaveFile((uint8 *)&header, sizeof(FileHeader));
if (header.len(0) != 17) {
::warning("Error loading save: description buffer isn't 17 bytes");
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 4b3428e..2db75ee 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -583,7 +583,7 @@ uint16 DreamGenContext::standardLoad(const char *fileName) {
FileHeader header;
engine->openFile(fileName);
- engine->readFromFile((uint8 *)&header, kHeaderlen);
+ engine->readFromFile((uint8 *)&header, sizeof(FileHeader));
uint16 sizeInBytes = header.len(0);
uint16 result = allocateMem((sizeInBytes + 15) / 16);
engine->readFromFile(getSegment(result).ptr(0, 0), sizeInBytes);
@@ -2425,7 +2425,7 @@ void DreamGenContext::loadRoomData(const Room &room, bool skipDat) {
flags._c = false;
FileHeader header;
- engine->readFromFile((uint8 *)&header, kHeaderlen);
+ engine->readFromFile((uint8 *)&header, sizeof(FileHeader));
// read segment lengths from room file header
int len[15];
Commit: 720f3587cba66c176657c7953f3df3ac07baabe7
https://github.com/scummvm/scummvm/commit/720f3587cba66c176657c7953f3df3ac07baabe7
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2011-12-03T07:57:42-08:00
Commit Message:
DREAMWEB: Move 'loadOld' from dreamgen
Changed paths:
devtools/tasmrecover/tasm-recover
engines/dreamweb/dreamgen.cpp
engines/dreamweb/dreamgen.h
engines/dreamweb/saveload.cpp
engines/dreamweb/stubs.h
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 22df4f1..9a533c8 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -368,6 +368,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'entercode',
'scanfornames',
'checkforemm',
+ 'loadold',
], skip_output = [
# These functions are processed but not output
'dreamweb',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 00d6b94..6ade575 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -10278,32 +10278,6 @@ alreadynewgame:
data.byte(kGetback) = 3;
}
-void DreamGenContext::loadOld() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 252);
- if (flags.z())
- goto alreadyloadold;
- data.byte(kCommandtype) = 252;
- al = 48;
- commandOnly();
-alreadyloadold:
- ax = data.word(kMousebutton);
- _and(ax, 1);
- if (flags.z())
- return /* (noloadold) */;
- ax = 0x0ffff;
- doLoad();
- _cmp(data.byte(kGetback), 4);
- if (flags.z())
- return /* (noloadold) */;
- _cmp(data.byte(kQuitrequested), 0);
- if (!flags.z())
- return /* (noloadold) */;
- showDecisions();
- workToScreenM();
- data.byte(kGetback) = 0;
-}
-
void DreamGenContext::createName() {
STACK_CHECK;
push(ax);
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 2fd2b00..b0cb21f 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -707,7 +707,7 @@ public:
void sLabDoorE();
void sLabDoorD();
void adjustUp();
- void sLabDoorF();
+ void fadeScreenDownHalf();
void loadIntroRoom();
void mouseCall();
void train();
@@ -715,6 +715,7 @@ public:
void loadCart();
void bartender();
void showDiary();
+ void sLabDoorF();
void outOfOpen();
void dirCom();
void dumpKeypad();
@@ -722,7 +723,6 @@ public:
void endGameSeq();
void setBotLeft();
void findFirstPath();
- void loadOld();
void useSLab();
void useAltar();
void manAsleep2();
@@ -746,7 +746,6 @@ public:
void disableSoundInt();
void priestText();
void openPoolBoss();
- void fadeScreenDownHalf();
void usePlate();
void lookInInterface();
void manAsleep();
@@ -921,7 +920,6 @@ public:
void showOpBox();
void clearBeforeLoad();
void bibleQuote();
- void doLoad();
void showExit();
void useTrainer();
void dumpCurrent();
diff --git a/engines/dreamweb/saveload.cpp b/engines/dreamweb/saveload.cpp
index 6af4071..ccf70aa 100644
--- a/engines/dreamweb/saveload.cpp
+++ b/engines/dreamweb/saveload.cpp
@@ -416,5 +416,32 @@ unsigned int DreamGenContext::scanForNames() {
return count;
}
+void DreamGenContext::loadOld() {
+ STACK_CHECK;
+ _cmp(data.byte(kCommandtype), 252);
+ if (flags.z())
+ goto alreadyloadold;
+ data.byte(kCommandtype) = 252;
+ al = 48;
+ commandOnly();
+alreadyloadold:
+ ax = data.word(kMousebutton);
+ _and(ax, 1);
+ if (flags.z())
+ return /* (noloadold) */;
+ ax = 0x0ffff;
+ doLoad();
+ _cmp(data.byte(kGetback), 4);
+ if (flags.z())
+ return /* (noloadold) */;
+ _cmp(data.byte(kQuitrequested), 0);
+ if (!flags.z())
+ return /* (noloadold) */;
+ showDecisions();
+ workToScreenM();
+ data.byte(kGetback) = 0;
+}
+
+
} /*namespace dreamgen */
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 36b499a..3bbe0dd 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -406,4 +406,6 @@
void enterCode(uint8 digit0, uint8 digit1, uint8 digit2, uint8 digit3);
void enterCode();
unsigned int scanForNames();
+ void doLoad();
+ void loadOld();
Commit: a38018c5f49ff4a7c9014749c65ebaca4973a0f1
https://github.com/scummvm/scummvm/commit/a38018c5f49ff4a7c9014749c65ebaca4973a0f1
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2011-12-03T07:57:42-08:00
Commit Message:
DREAMWEB: Convert 'loadOld' and clean up 'doLoad' calls
Changed paths:
devtools/tasmrecover/dreamweb/saveload.asm
engines/dreamweb/saveload.cpp
engines/dreamweb/stubs.cpp
engines/dreamweb/stubs.h
diff --git a/devtools/tasmrecover/dreamweb/saveload.asm b/devtools/tasmrecover/dreamweb/saveload.asm
index 6c98774..f3c92d3 100644
--- a/devtools/tasmrecover/dreamweb/saveload.asm
+++ b/devtools/tasmrecover/dreamweb/saveload.asm
@@ -1502,7 +1502,6 @@ Loadold proc near
alreadyloadold: mov ax,mousebutton
and ax,1
jz noloadold
- mov ax,0ffffh
call doload
cmp getback,4
jz noloadold
diff --git a/engines/dreamweb/saveload.cpp b/engines/dreamweb/saveload.cpp
index ccf70aa..6f1691f 100644
--- a/engines/dreamweb/saveload.cpp
+++ b/engines/dreamweb/saveload.cpp
@@ -35,18 +35,13 @@ void DreamGenContext::loadGame() {
}
if (data.word(kMousebutton) == data.word(kOldbutton))
return; // "noload"
- if (data.word(kMousebutton) == 1) {
- ax = 0xFFFF;
- doLoad();
- }
+ if (data.word(kMousebutton) == 1)
+ doLoad(-1);
}
-// input: ax = savegameId
// if -1, open menu to ask for slot to load
// if >= 0, directly load from that slot
-void DreamGenContext::doLoad() {
- int savegameId = (int16)ax;
-
+void DreamGenContext::doLoad(int savegameId) {
data.byte(kLoadingorsave) = 1;
if (ConfMan.getBool("dreamweb_originalsaveload") && savegameId == -1) {
@@ -417,26 +412,19 @@ unsigned int DreamGenContext::scanForNames() {
}
void DreamGenContext::loadOld() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 252);
- if (flags.z())
- goto alreadyloadold;
- data.byte(kCommandtype) = 252;
- al = 48;
- commandOnly();
-alreadyloadold:
- ax = data.word(kMousebutton);
- _and(ax, 1);
- if (flags.z())
- return /* (noloadold) */;
- ax = 0x0ffff;
- doLoad();
- _cmp(data.byte(kGetback), 4);
- if (flags.z())
- return /* (noloadold) */;
- _cmp(data.byte(kQuitrequested), 0);
- if (!flags.z())
- return /* (noloadold) */;
+ if (data.byte(kCommandtype) != 252) {
+ data.byte(kCommandtype) = 252;
+ commandOnly(48);
+ }
+
+ if (!(data.word(kMousebutton) & 1))
+ return;
+
+ doLoad(-1);
+
+ if (data.byte(kGetback) == 4 || quitRequested())
+ return;
+
showDecisions();
workToScreenM();
data.byte(kGetback) = 0;
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 2db75ee..846937b 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -348,8 +348,7 @@ void DreamGenContext::dreamweb() {
loadPalFromIFF();
clearPalette();
- ax = savegameId;
- doLoad();
+ doLoad(savegameId);
workToScreen();
fadeScreenUp();
startNewGame = false;
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 3bbe0dd..de9335f 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -406,6 +406,6 @@
void enterCode(uint8 digit0, uint8 digit1, uint8 digit2, uint8 digit3);
void enterCode();
unsigned int scanForNames();
- void doLoad();
+ void doLoad(int slot);
void loadOld();
More information about the Scummvm-git-logs
mailing list