Fix regressions, due to zoneNum changes.

svn-id: r27579
This commit is contained in:
Travis Howell 2007-06-21 05:26:47 +00:00
parent 64cafa0270
commit d2e7058b59
2 changed files with 16 additions and 13 deletions

View File

@ -1213,7 +1213,7 @@ protected:
void fastFadeIn();
void slowFadeIn();
virtual void vcStopAnimation(uint zone, uint sprite);
virtual void vcStopAnimation(uint16 zone, uint16 sprite);
bool confirmOverWrite(WindowBlock *window);
int16 matchSaveGame(const char *name, uint16 max);
@ -1499,7 +1499,7 @@ protected:
virtual void playMusic(uint16 music, uint16 track);
virtual void vcStopAnimation(uint zone, uint sprite);
virtual void vcStopAnimation(uint16 zone, uint16 sprite);
};
class AGOSEngine_Simon2 : public AGOSEngine_Simon1 {

View File

@ -45,15 +45,17 @@ void AGOSEngine_Waxworks::setupVideoOpcodes(VgaOpcodeProc *op) {
op[63] = &AGOSEngine::vc63_fastFadeIn;
}
void AGOSEngine::vcStopAnimation(uint zone, uint sprite) {
uint16 old_sprite_id;
void AGOSEngine::vcStopAnimation(uint16 zone, uint16 sprite) {
uint16 oldCurSpriteId, oldCurZoneNum;
VgaSprite *vsp;
VgaTimerEntry *vte;
const byte *vcPtrOrg;
old_sprite_id = _vgaCurSpriteId;
oldCurSpriteId = _vgaCurSpriteId;
oldCurZoneNum = _vgaCurZoneNum;
vcPtrOrg = _vcPtr;
_vgaCurZoneNum = zone;
_vgaCurSpriteId = sprite;
vsp = findCurSprite();
@ -62,7 +64,7 @@ void AGOSEngine::vcStopAnimation(uint zone, uint sprite) {
vte = _vgaTimerList;
while (vte->delay) {
if (vte->sprite_id == _vgaCurSpriteId) {
if (vte->sprite_id == _vgaCurSpriteId && vte->cur_vga_file == _vgaCurZoneNum) {
deleteVgaEvent(vte);
break;
}
@ -70,19 +72,20 @@ void AGOSEngine::vcStopAnimation(uint zone, uint sprite) {
}
}
_vgaCurSpriteId = old_sprite_id;
_vgaCurZoneNum = oldCurZoneNum;
_vgaCurSpriteId = oldCurSpriteId;
_vcPtr = vcPtrOrg;
}
void AGOSEngine_Simon1::vcStopAnimation(uint zone, uint sprite) {
uint16 old_sprite_id, old_cur_file_id;
void AGOSEngine_Simon1::vcStopAnimation(uint16 zone, uint16 sprite) {
uint16 oldCurSpriteId, oldCurZoneNum;
VgaSleepStruct *vfs;
VgaSprite *vsp;
VgaTimerEntry *vte;
const byte *vcPtrOrg;
old_sprite_id = _vgaCurSpriteId;
old_cur_file_id = _vgaCurZoneNum;
oldCurSpriteId = _vgaCurSpriteId;
oldCurZoneNum = _vgaCurZoneNum;
vcPtrOrg = _vcPtr;
_vgaCurZoneNum = zone;
@ -114,8 +117,8 @@ void AGOSEngine_Simon1::vcStopAnimation(uint zone, uint sprite) {
}
}
_vgaCurZoneNum = old_cur_file_id;
_vgaCurSpriteId = old_sprite_id;
_vgaCurZoneNum = oldCurZoneNum;
_vgaCurSpriteId = oldCurSpriteId;
_vcPtr = vcPtrOrg;
}