void AGOSEngine::vc80_setOverlayImage() { VgaSprite *vsp = findCurSprite(); vsp->image = vcReadVarOrWord(); vsp->x += vcReadNextWord(); vsp->y += vcReadNextWord(); vsp->flags = kDFOverlayed; _vgaSpriteChanged++; }
void AGOSEngine::vc61_setMaskImage() { VgaSprite *vsp = findCurSprite(); vsp->image = vcReadVarOrWord(); vsp->x += vcReadNextWord(); vsp->y += vcReadNextWord(); vsp->flags = kDFMasked | kDFSkipStoreBG; vsp->windowNum |= 0x8000; dirtyBackGround(); _vgaSpriteChanged++; }
void AGOSEngine::vc60_stopAnimation() { uint16 sprite, zoneNum; if (getGameType() == GType_PP) { zoneNum = vcReadNextWord(); sprite = vcReadVarOrWord(); } else if (getGameType() == GType_SIMON2 || getGameType() == GType_FF) { zoneNum = vcReadNextWord(); sprite = vcReadNextWord(); } else { sprite = vcReadNextWord(); zoneNum = sprite / 100; } vcStopAnimation(zoneNum, sprite); }
void AGOSEngine::vc56_delayLong() { uint16 num = vcReadVarOrWord() * _frameCount; addVgaEvent(num + _vgaBaseDelay, ANIMATE_EVENT, _vcPtr, _vgaCurSpriteId, _vgaCurZoneNum); _vcPtr = (byte *)&_vcGetOutOfCode; }