void AGOSEngine::vc62_fastFadeOut() { vc29_stopAllSounds(); if (!_fastFadeOutFlag) { uint i, fadeSize, fadeCount; _fastFadeCount = 256; if (getGameType() == GType_SIMON1 || getGameType() == GType_SIMON2) { if (_windowNum == 4) _fastFadeCount = 208; } if (getGameType() == GType_FF || getGameType() == GType_PP) { if (getGameType() == GType_FF && getBitFlag(75)) { fadeCount = 4; fadeSize = 64; } else { fadeCount = 32; fadeSize = 8; } } else { fadeCount = 64; fadeSize = 4; } for (i = fadeCount; i != 0; --i) { paletteFadeOut(_currentPalette, _fastFadeCount, fadeSize); _system->setPalette(_currentPalette, 0, _fastFadeCount); delay(5); } if (getGameType() == GType_WW || getGameType() == GType_FF || getGameType() == GType_PP) { clearSurfaces(); } else { if (_windowNum != 4) { clearSurfaces(); } } } if (getGameType() == GType_SIMON2) { if (_nextMusicToPlay != -1) loadMusic(_nextMusicToPlay); } }
void AGOSEngine_PN::opn_opcode62() { int32 zoneNum = varval(); _videoLockOut |= 0x80; vc29_stopAllSounds(); _hitCalled = 0; _oneClick = 0; loadZone(zoneNum); setWindowImage(2, 2); _copyScnFlag = 0; _vgaSpriteChanged = 0; _videoLockOut &= ~0x80; setScriptReturn(true); }
void AGOSEngine::o_loadZone() { // 97: load zone uint vga_res = getVarOrWord(); _videoLockOut |= 0x80; if (getGameType() == GType_ELVIRA1 || getGameType() == GType_ELVIRA2 || getGameType() == GType_WW) { vc27_resetSprite(); vc29_stopAllSounds(); } loadZone(vga_res); if (getGameType() == GType_ELVIRA1 || getGameType() == GType_ELVIRA2 || getGameType() == GType_WW) { _copyScnFlag = 0; _vgaSpriteChanged = 0; } _videoLockOut &= ~0x80; }