void AGOSEngine::vc68_ifGE() { uint16 a = vcReadNextWord(); uint16 b = vcReadNextWord(); if (vcReadVar(a) <= vcReadVar(b)) vcSkipNextInstruction(); }
void AGOSEngine::vc66_ifEqual() { uint16 a = vcReadNextWord(); uint16 b = vcReadNextWord(); if (vcReadVar(a) != vcReadVar(b)) vcSkipNextInstruction(); }
void AGOSEngine_PuzzlePack::startAnOverlayAnim() { VgaSprite *vsp = _vgaSprites; const byte *vcPtrOrg; uint16 a, sprite, file, tmp, zoneNum; int16 x; zoneNum = _variableArray[999]; _vcPtr += 4; a = vcReadNextWord(); _vcPtr += 6; while (vsp->id) vsp++; vsp->windowNum = 4; vsp->priority = 20; vsp->flags = 0; vsp->palette = 0; vsp->image = vcReadVar(vcReadVar(a)); x = vcReadVar(a) - 1300; if (x < 0) { x += 300; vsp->priority = 10; } vsp->y = x / 20 * 32; vsp->x = x % 20 * 32; vsp->id = vcReadVar(a); vsp->zoneNum = zoneNum; sprite = _vgaCurSpriteId; file = _vgaCurZoneNum; _vgaCurZoneNum = vsp->zoneNum; _vgaCurSpriteId = vsp->id; tmp = to16Wrapper(vsp->priority); vcPtrOrg = _vcPtr; _vcPtr = (byte *)&tmp; vc23_setPriority(); _vcPtr = vcPtrOrg; _vgaCurSpriteId = sprite; _vgaCurZoneNum = file; }
void AGOSEngine::vc46_setSpriteY() { VgaSprite *vsp = findCurSprite(); vsp->y = vcReadVar(vcReadNextWord()); vsp->windowNum |= 0x8000; dirtyBackGround(); _vgaSpriteChanged++; }
void AGOSEngine::vc76_setScaleXOffs() { if (getGameType() == GType_PP && getBitFlag(120)) { VgaSprite *vsp1, *vsp2; uint16 old_file_1, tmp1, tmp2; old_file_1 = _vgaCurSpriteId; _vgaCurSpriteId = vcReadVar(vcReadNextWord()); vsp1 = findCurSprite(); _vgaCurSpriteId = vcReadVar(vcReadNextWord()); vsp2 = findCurSprite(); tmp1 = vsp1->x; tmp2 = vsp2->x; vsp1->x = tmp2; vsp2->x = tmp1; tmp1 = vsp1->y; tmp2 = vsp2->y; vsp1->y = tmp2; vsp2->y = tmp1; _vgaCurSpriteId = old_file_1; _vcPtr += 2; } else { VgaSprite *vsp = findCurSprite(); vsp->image = vcReadNextWord(); int16 x = vcReadNextWord(); uint16 var = vcReadNextWord(); vsp->x += getScale(vsp->y, x); _variableArrayPtr[var] = vsp->x; checkScrollX(x, vsp->x); vsp->flags = kDFScaled; } }
void AGOSEngine::vc47_addToVar() { uint16 var = vcReadNextWord(); vcWriteVar(var, vcReadVar(var) + vcReadVar(vcReadNextWord())); }
void AGOSEngine::vc32_copyVar() { uint16 a = vcReadVar(vcReadNextWord()); vcWriteVar(vcReadNextWord(), a); }