DREAMWEB: 'clearrest' ported to C++.

This commit is contained in:
D G Turner 2011-12-07 18:00:05 +00:00
parent 03204ad319
commit c1b7d25bb7
4 changed files with 15 additions and 29 deletions

View file

@ -207,6 +207,7 @@ generator = cpp(context, "DreamGen", blacklist = [
'clearendpal',
'clearpalette',
'clearreels',
'clearrest',
'clearsprites',
'clearstartpal',
'clearwork',

View file

@ -7439,33 +7439,6 @@ void DreamGenContext::clearChanges() {
_stosw(cx, true);
}
void DreamGenContext::clearRest() {
STACK_CHECK;
es = data.word(kMapdata);
cx = (66*60)/2;
ax = 0;
di = (0);
_stosw(cx, true);
es = data.word(kBackdrop);
deallocateMem();
es = data.word(kSetframes);
deallocateMem();
es = data.word(kReels);
deallocateMem();
es = data.word(kPeople);
deallocateMem();
es = data.word(kSetdesc);
deallocateMem();
es = data.word(kBlockdesc);
deallocateMem();
es = data.word(kRoomdesc);
deallocateMem();
es = data.word(kFreeframes);
deallocateMem();
es = data.word(kFreedesc);
deallocateMem();
}
void DreamGenContext::watchReel() {
STACK_CHECK;
_cmp(data.word(kReeltowatch), -1);

View file

@ -729,7 +729,6 @@ public:
void findExObject();
void searchForFiles();
void monkSpeaking();
void clearRest();
void madmanRun();
void afterNewRoom();
void getExAd();

View file

@ -1165,7 +1165,20 @@ void DreamGenContext::clearBeforeLoad() {
return /* (noclear) */;
clearReels();
clearRest();
//clearRest
uint8 *dst = (uint8 *)getSegment(data.word(kMapdata)).ptr(0, 0);
memset(dst, 0, kMaplen);
deallocateMem(data.word(kBackdrop));
deallocateMem(data.word(kSetframes));
deallocateMem(data.word(kReels));
deallocateMem(data.word(kPeople));
deallocateMem(data.word(kSetdesc));
deallocateMem(data.word(kBlockdesc));
deallocateMem(data.word(kRoomdesc));
deallocateMem(data.word(kFreeframes));
deallocateMem(data.word(kFreedesc));
data.byte(kRoomloaded) = 0;
}