aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/vga.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/agos/vga.cpp')
-rw-r--r--engines/agos/vga.cpp398
1 files changed, 199 insertions, 199 deletions
diff --git a/engines/agos/vga.cpp b/engines/agos/vga.cpp
index d7deb2fbc0..5095c9a108 100644
--- a/engines/agos/vga.cpp
+++ b/engines/agos/vga.cpp
@@ -30,103 +30,103 @@
#include "common/system.h"
-namespace Simon {
+namespace AGOS {
// Opcode tables
-void SimonEngine::setupVgaOpcodes() {
+void AGOSEngine::setupVgaOpcodes() {
static const VgaOpcodeProc vga_opcode_table[] = {
NULL,
- &SimonEngine::vc1_fadeOut,
- &SimonEngine::vc2_call,
- &SimonEngine::vc3_loadSprite,
- &SimonEngine::vc4_fadeIn,
- &SimonEngine::vc5_skip_if_neq,
- &SimonEngine::vc6_skip_ifn_sib_with_a,
- &SimonEngine::vc7_skip_if_sib_with_a,
- &SimonEngine::vc8_skip_if_parent_is,
- &SimonEngine::vc9_skip_if_unk3_is,
- &SimonEngine::vc10_draw,
- &SimonEngine::vc11_clearPathFinder,
- &SimonEngine::vc12_delay,
- &SimonEngine::vc13_addToSpriteX,
- &SimonEngine::vc14_addToSpriteY,
- &SimonEngine::vc15_sync,
- &SimonEngine::vc16_waitSync,
- &SimonEngine::vc17_setPathfinderItem,
- &SimonEngine::vc18_jump,
- &SimonEngine::vc19_chain_to_script,
- &SimonEngine::vc20_setRepeat,
- &SimonEngine::vc21_endRepeat,
- &SimonEngine::vc22_setSpritePalette,
- &SimonEngine::vc23_setSpritePriority,
- &SimonEngine::vc24_setSpriteXY,
- &SimonEngine::vc25_halt_sprite,
- &SimonEngine::vc26_setSubWindow,
- &SimonEngine::vc27_resetSprite,
- &SimonEngine::vc28_dummy_op,
- &SimonEngine::vc29_stopAllSounds,
- &SimonEngine::vc30_setFrameRate,
- &SimonEngine::vc31_setWindow,
- &SimonEngine::vc32_copyVar,
- &SimonEngine::vc33_setMouseOn,
- &SimonEngine::vc34_setMouseOff,
- &SimonEngine::vc35_clearWindow,
- &SimonEngine::vc36_setWindowImage,
- &SimonEngine::vc37_addToSpriteY,
- &SimonEngine::vc38_skipIfVarZero,
- &SimonEngine::vc39_setVar,
- &SimonEngine::vc40,
- &SimonEngine::vc41,
- &SimonEngine::vc42_delayIfNotEQ,
- &SimonEngine::vc43_skipIfBitClear,
- &SimonEngine::vc44_skipIfBitSet,
- &SimonEngine::vc45_setSpriteX,
- &SimonEngine::vc46_setSpriteY,
- &SimonEngine::vc47_addToVar,
- &SimonEngine::vc48_setPathFinder,
- &SimonEngine::vc49_setBit,
- &SimonEngine::vc50_clearBit,
- &SimonEngine::vc51_enableBox,
- &SimonEngine::vc52_playSound,
- &SimonEngine::vc53_panSFX,
- &SimonEngine::vc54_no_op,
- &SimonEngine::vc55_moveBox,
- &SimonEngine::vc56_delay,
- &SimonEngine::vc57_blackPalette,
- &SimonEngine::vc58,
- &SimonEngine::vc59,
- &SimonEngine::vc60_killSprite,
- &SimonEngine::vc61_setMaskImage,
- &SimonEngine::vc62_fastFadeOut,
- &SimonEngine::vc63_fastFadeIn,
- &SimonEngine::vc64_skipIfSpeechEnded,
- &SimonEngine::vc65_slowFadeIn,
- &SimonEngine::vc66_skipIfNotEqual,
- &SimonEngine::vc67_skipIfGE,
- &SimonEngine::vc68_skipIfLE,
- &SimonEngine::vc69_playTrack,
- &SimonEngine::vc70_queueMusic,
- &SimonEngine::vc71_checkMusicQueue,
- &SimonEngine::vc72_play_track_2,
- &SimonEngine::vc73_setMark,
- &SimonEngine::vc74_clearMark,
- &SimonEngine::vc75_setScale,
- &SimonEngine::vc76_setScaleXOffs,
- &SimonEngine::vc77_setScaleYOffs,
- &SimonEngine::vc78_computeXY,
- &SimonEngine::vc79_computePosNum,
- &SimonEngine::vc80_setOverlayImage,
- &SimonEngine::vc81_setRandom,
- &SimonEngine::vc82_getPathValue,
- &SimonEngine::vc83_playSoundLoop,
- &SimonEngine::vc84_stopSoundLoop,
+ &AGOSEngine::vc1_fadeOut,
+ &AGOSEngine::vc2_call,
+ &AGOSEngine::vc3_loadSprite,
+ &AGOSEngine::vc4_fadeIn,
+ &AGOSEngine::vc5_skip_if_neq,
+ &AGOSEngine::vc6_skip_ifn_sib_with_a,
+ &AGOSEngine::vc7_skip_if_sib_with_a,
+ &AGOSEngine::vc8_skip_if_parent_is,
+ &AGOSEngine::vc9_skip_if_unk3_is,
+ &AGOSEngine::vc10_draw,
+ &AGOSEngine::vc11_clearPathFinder,
+ &AGOSEngine::vc12_delay,
+ &AGOSEngine::vc13_addToSpriteX,
+ &AGOSEngine::vc14_addToSpriteY,
+ &AGOSEngine::vc15_sync,
+ &AGOSEngine::vc16_waitSync,
+ &AGOSEngine::vc17_setPathfinderItem,
+ &AGOSEngine::vc18_jump,
+ &AGOSEngine::vc19_chain_to_script,
+ &AGOSEngine::vc20_setRepeat,
+ &AGOSEngine::vc21_endRepeat,
+ &AGOSEngine::vc22_setSpritePalette,
+ &AGOSEngine::vc23_setSpritePriority,
+ &AGOSEngine::vc24_setSpriteXY,
+ &AGOSEngine::vc25_halt_sprite,
+ &AGOSEngine::vc26_setSubWindow,
+ &AGOSEngine::vc27_resetSprite,
+ &AGOSEngine::vc28_dummy_op,
+ &AGOSEngine::vc29_stopAllSounds,
+ &AGOSEngine::vc30_setFrameRate,
+ &AGOSEngine::vc31_setWindow,
+ &AGOSEngine::vc32_copyVar,
+ &AGOSEngine::vc33_setMouseOn,
+ &AGOSEngine::vc34_setMouseOff,
+ &AGOSEngine::vc35_clearWindow,
+ &AGOSEngine::vc36_setWindowImage,
+ &AGOSEngine::vc37_addToSpriteY,
+ &AGOSEngine::vc38_skipIfVarZero,
+ &AGOSEngine::vc39_setVar,
+ &AGOSEngine::vc40,
+ &AGOSEngine::vc41,
+ &AGOSEngine::vc42_delayIfNotEQ,
+ &AGOSEngine::vc43_skipIfBitClear,
+ &AGOSEngine::vc44_skipIfBitSet,
+ &AGOSEngine::vc45_setSpriteX,
+ &AGOSEngine::vc46_setSpriteY,
+ &AGOSEngine::vc47_addToVar,
+ &AGOSEngine::vc48_setPathFinder,
+ &AGOSEngine::vc49_setBit,
+ &AGOSEngine::vc50_clearBit,
+ &AGOSEngine::vc51_enableBox,
+ &AGOSEngine::vc52_playSound,
+ &AGOSEngine::vc53_panSFX,
+ &AGOSEngine::vc54_no_op,
+ &AGOSEngine::vc55_moveBox,
+ &AGOSEngine::vc56_delay,
+ &AGOSEngine::vc57_blackPalette,
+ &AGOSEngine::vc58,
+ &AGOSEngine::vc59,
+ &AGOSEngine::vc60_killSprite,
+ &AGOSEngine::vc61_setMaskImage,
+ &AGOSEngine::vc62_fastFadeOut,
+ &AGOSEngine::vc63_fastFadeIn,
+ &AGOSEngine::vc64_skipIfSpeechEnded,
+ &AGOSEngine::vc65_slowFadeIn,
+ &AGOSEngine::vc66_skipIfNotEqual,
+ &AGOSEngine::vc67_skipIfGE,
+ &AGOSEngine::vc68_skipIfLE,
+ &AGOSEngine::vc69_playTrack,
+ &AGOSEngine::vc70_queueMusic,
+ &AGOSEngine::vc71_checkMusicQueue,
+ &AGOSEngine::vc72_play_track_2,
+ &AGOSEngine::vc73_setMark,
+ &AGOSEngine::vc74_clearMark,
+ &AGOSEngine::vc75_setScale,
+ &AGOSEngine::vc76_setScaleXOffs,
+ &AGOSEngine::vc77_setScaleYOffs,
+ &AGOSEngine::vc78_computeXY,
+ &AGOSEngine::vc79_computePosNum,
+ &AGOSEngine::vc80_setOverlayImage,
+ &AGOSEngine::vc81_setRandom,
+ &AGOSEngine::vc82_getPathValue,
+ &AGOSEngine::vc83_playSoundLoop,
+ &AGOSEngine::vc84_stopSoundLoop,
};
_vga_opcode_table = vga_opcode_table;
}
// Script parser
-void SimonEngine::runVgaScript() {
+void AGOSEngine::runVgaScript() {
for (;;) {
uint opcode;
@@ -154,7 +154,7 @@ void SimonEngine::runVgaScript() {
}
}
-bool SimonEngine::itemIsSiblingOf(uint16 a) {
+bool AGOSEngine::itemIsSiblingOf(uint16 a) {
Item *item;
CHECK_BOUNDS(a, _objectArray);
@@ -166,7 +166,7 @@ bool SimonEngine::itemIsSiblingOf(uint16 a) {
return me()->parent == item->parent;
}
-bool SimonEngine::itemIsParentOf(uint16 a, uint16 b) {
+bool AGOSEngine::itemIsParentOf(uint16 a, uint16 b) {
Item *item_a, *item_b;
CHECK_BOUNDS(a, _objectArray);
@@ -181,7 +181,7 @@ bool SimonEngine::itemIsParentOf(uint16 a, uint16 b) {
return derefItem(item_a->parent) == item_b;
}
-bool SimonEngine::vc_maybe_skip_proc_1(uint16 a, int16 b) {
+bool AGOSEngine::vc_maybe_skip_proc_1(uint16 a, int16 b) {
Item *item;
CHECK_BOUNDS(a, _objectArray);
@@ -192,7 +192,7 @@ bool SimonEngine::vc_maybe_skip_proc_1(uint16 a, int16 b) {
return item->state == b;
}
-VgaSprite *SimonEngine::findCurSprite() {
+VgaSprite *AGOSEngine::findCurSprite() {
VgaSprite *vsp = _vgaSprites;
while (vsp->id) {
if (getGameType() == GType_SIMON1 || getGameType() == GType_WW) {
@@ -207,35 +207,35 @@ VgaSprite *SimonEngine::findCurSprite() {
return vsp;
}
-int SimonEngine::vcReadVarOrWord() {
+int AGOSEngine::vcReadVarOrWord() {
int16 var = vcReadNextWord();
if (var < 0)
var = vcReadVar(-var);
return var;
}
-uint SimonEngine::vcReadNextWord() {
+uint AGOSEngine::vcReadNextWord() {
uint a;
a = readUint16Wrapper(_vcPtr);
_vcPtr += 2;
return a;
}
-uint SimonEngine::vcReadNextByte() {
+uint AGOSEngine::vcReadNextByte() {
return *_vcPtr++;
}
-uint SimonEngine::vcReadVar(uint var) {
+uint AGOSEngine::vcReadVar(uint var) {
assert(var < _numVars);
return (uint16)_variableArrayPtr[var];
}
-void SimonEngine::vcWriteVar(uint var, int16 value) {
+void AGOSEngine::vcWriteVar(uint var, int16 value) {
assert(var < _numVars);
_variableArrayPtr[var] = value;
}
-void SimonEngine::vcSkipNextInstruction() {
+void AGOSEngine::vcSkipNextInstruction() {
static const byte opcodeParamLenWW[] = {
0, 6, 2, 10, 6, 4, 2, 2,
4, 4, 8, 2, 2, 2, 2, 2,
@@ -305,12 +305,12 @@ void SimonEngine::vcSkipNextInstruction() {
}
// VGA Script commands
-void SimonEngine::vc1_fadeOut() {
+void AGOSEngine::vc1_fadeOut() {
/* dummy opcode */
_vcPtr += 6;
}
-void SimonEngine::vc2_call() {
+void AGOSEngine::vc2_call() {
VgaPointersEntry *vpe;
uint16 count, num, res;
byte *old_file_1, *old_file_2;
@@ -395,7 +395,7 @@ void SimonEngine::vc2_call() {
_vcPtr = vcPtrOrg;
}
-void SimonEngine::vc3_loadSprite() {
+void AGOSEngine::vc3_loadSprite() {
uint16 windowNum, zoneNum, palette, x, y, vgaSpriteId;
uint16 count, res;
VgaSprite *vsp;
@@ -530,36 +530,36 @@ void SimonEngine::vc3_loadSprite() {
_curVgaFile1 = old_file_1;
}
-void SimonEngine::vc4_fadeIn() {
+void AGOSEngine::vc4_fadeIn() {
/* dummy opcode */
_vcPtr += 6;
}
-void SimonEngine::vc5_skip_if_neq() {
+void AGOSEngine::vc5_skip_if_neq() {
uint16 var = vcReadNextWord();
uint16 value = vcReadNextWord();
if (vcReadVar(var) != value)
vcSkipNextInstruction();
}
-void SimonEngine::vc6_skip_ifn_sib_with_a() {
+void AGOSEngine::vc6_skip_ifn_sib_with_a() {
if (!itemIsSiblingOf(vcReadNextWord()))
vcSkipNextInstruction();
}
-void SimonEngine::vc7_skip_if_sib_with_a() {
+void AGOSEngine::vc7_skip_if_sib_with_a() {
if (itemIsSiblingOf(vcReadNextWord()))
vcSkipNextInstruction();
}
-void SimonEngine::vc8_skip_if_parent_is() {
+void AGOSEngine::vc8_skip_if_parent_is() {
uint16 a = vcReadNextWord();
uint16 b = vcReadNextWord();
if (!itemIsParentOf(a, b))
vcSkipNextInstruction();
}
-void SimonEngine::vc9_skip_if_unk3_is() {
+void AGOSEngine::vc9_skip_if_unk3_is() {
uint16 a = vcReadNextWord();
uint16 b = vcReadNextWord();
if (!vc_maybe_skip_proc_1(a, b))
@@ -615,7 +615,7 @@ void vc10_skip_cols(VC10_state *vs) {
}
}
-byte *SimonEngine::vc10_uncompressFlip(const byte *src, uint w, uint h) {
+byte *AGOSEngine::vc10_uncompressFlip(const byte *src, uint w, uint h) {
w *= 8;
byte *src_org, *dst_org;
@@ -683,7 +683,7 @@ byte *SimonEngine::vc10_uncompressFlip(const byte *src, uint w, uint h) {
return _videoBuf1;
}
-byte *SimonEngine::vc10_flip(const byte *src, uint w, uint h) {
+byte *AGOSEngine::vc10_flip(const byte *src, uint w, uint h) {
if (src == _vc10BasePtrOld)
return _videoBuf1;
@@ -729,7 +729,7 @@ static uint16 _video_windows[128] = {
};
*/
-void SimonEngine::decodeColumn(byte *dst, const byte *src, int height) {
+void AGOSEngine::decodeColumn(byte *dst, const byte *src, int height) {
const uint pitch = _dxSurfacePitch;
int8 reps = (int8)0x80;
byte color;
@@ -773,7 +773,7 @@ void SimonEngine::decodeColumn(byte *dst, const byte *src, int height) {
}
}
-void SimonEngine::decodeRow(byte *dst, const byte *src, int width) {
+void AGOSEngine::decodeRow(byte *dst, const byte *src, int width) {
const uint pitch = _dxSurfacePitch;
int8 reps = (int8)0x80;
byte color;
@@ -817,7 +817,7 @@ void SimonEngine::decodeRow(byte *dst, const byte *src, int width) {
}
}
-void SimonEngine::vc10_draw() {
+void AGOSEngine::vc10_draw() {
byte *p2;
uint width, height;
byte flags;
@@ -925,7 +925,7 @@ void SimonEngine::vc10_draw() {
}
}
-bool SimonEngine::drawImages_clip(VC10_state *state) {
+bool AGOSEngine::drawImages_clip(VC10_state *state) {
const uint16 *vlut;
uint maxWidth, maxHeight;
int cur;
@@ -983,7 +983,7 @@ bool SimonEngine::drawImages_clip(VC10_state *state) {
return 1;
}
-void SimonEngine::drawImages_Feeble(VC10_state *state) {
+void AGOSEngine::drawImages_Feeble(VC10_state *state) {
if (state->flags & kDFCompressed) {
if (state->flags & kDFScaled) {
state->surf_addr = getScaleBuf();
@@ -1146,7 +1146,7 @@ void SimonEngine::drawImages_Feeble(VC10_state *state) {
}
}
-void SimonEngine::drawImages(VC10_state *state) {
+void AGOSEngine::drawImages(VC10_state *state) {
const uint16 *vlut = &_video_windows[_windowNum * 4];
if (drawImages_clip(state) == 0)
@@ -1365,7 +1365,7 @@ void SimonEngine::drawImages(VC10_state *state) {
}
}
-void SimonEngine::horizontalScroll(VC10_state *state) {
+void AGOSEngine::horizontalScroll(VC10_state *state) {
const byte *src;
byte *dst;
int w;
@@ -1398,7 +1398,7 @@ void SimonEngine::horizontalScroll(VC10_state *state) {
}
}
-void SimonEngine::verticalScroll(VC10_state *state) {
+void AGOSEngine::verticalScroll(VC10_state *state) {
const byte *src;
byte *dst;
int h;
@@ -1424,7 +1424,7 @@ void SimonEngine::verticalScroll(VC10_state *state) {
}
}
-void SimonEngine::scaleClip(int16 h, int16 w, int16 y, int16 x, int16 scrollY) {
+void AGOSEngine::scaleClip(int16 h, int16 w, int16 y, int16 x, int16 scrollY) {
Common::Rect srcRect, dstRect;
float factor, xscale;
@@ -1488,7 +1488,7 @@ void SimonEngine::scaleClip(int16 h, int16 w, int16 y, int16 x, int16 scrollY) {
}
}
-void SimonEngine::vc11_clearPathFinder() {
+void AGOSEngine::vc11_clearPathFinder() {
if (getGameType() == GType_WW) {
// FIXME
vcReadNextWord();
@@ -1497,7 +1497,7 @@ void SimonEngine::vc11_clearPathFinder() {
}
}
-void SimonEngine::vc12_delay() {
+void AGOSEngine::vc12_delay() {
VgaSprite *vsp = findCurSprite();
uint16 num;
@@ -1520,19 +1520,19 @@ void SimonEngine::vc12_delay() {
_vcPtr = (byte *)&_vc_get_out_of_code;
}
-void SimonEngine::vc13_addToSpriteX() {
+void AGOSEngine::vc13_addToSpriteX() {
VgaSprite *vsp = findCurSprite();
vsp->x += (int16)vcReadNextWord();
_vgaSpriteChanged++;
}
-void SimonEngine::vc14_addToSpriteY() {
+void AGOSEngine::vc14_addToSpriteY() {
VgaSprite *vsp = findCurSprite();
vsp->y += (int16)vcReadNextWord();
_vgaSpriteChanged++;
}
-void SimonEngine::vc15_sync() {
+void AGOSEngine::vc15_sync() {
VgaSleepStruct *vfs = _vgaSleepStructs, *vfs_tmp;
uint16 id = vcReadNextWord();
while (vfs->ident != 0) {
@@ -1554,7 +1554,7 @@ void SimonEngine::vc15_sync() {
_vgaWaitFor = 0;
}
-void SimonEngine::vc16_waitSync() {
+void AGOSEngine::vc16_waitSync() {
VgaSleepStruct *vfs = _vgaSleepStructs;
while (vfs->ident)
vfs++;
@@ -1567,7 +1567,7 @@ void SimonEngine::vc16_waitSync() {
_vcPtr = (byte *)&_vc_get_out_of_code;
}
-void SimonEngine::vc17_setPathfinderItem() {
+void AGOSEngine::vc17_setPathfinderItem() {
if (getGameType() == GType_WW) {
// FIXME
vcReadNextWord();
@@ -1582,20 +1582,20 @@ void SimonEngine::vc17_setPathfinderItem() {
}
}
-void SimonEngine::vc18_jump() {
+void AGOSEngine::vc18_jump() {
int16 offs = vcReadNextWord();
_vcPtr += offs;
}
/* chain to script? */
-void SimonEngine::vc19_chain_to_script() {
+void AGOSEngine::vc19_chain_to_script() {
/* unused */
error("vc19_chain_to_script: not implemented");
}
/* helper routines */
-void SimonEngine::vc20_setRepeat() {
+void AGOSEngine::vc20_setRepeat() {
/* FIXME: This opcode is somewhat strange: it first reads a BE word from
* the script (advancing the script pointer in doing so); then it writes
* back the same word, this time as LE, into the script.
@@ -1605,7 +1605,7 @@ void SimonEngine::vc20_setRepeat() {
_vcPtr += 2;
}
-void SimonEngine::vc21_endRepeat() {
+void AGOSEngine::vc21_endRepeat() {
int16 a = vcReadNextWord();
const byte *tmp = _vcPtr + a;
if (getGameType() == GType_SIMON1 || getGameType() == GType_WW)
@@ -1621,7 +1621,7 @@ void SimonEngine::vc21_endRepeat() {
}
}
-void SimonEngine::vc22_setSpritePalette() {
+void AGOSEngine::vc22_setSpritePalette() {
byte *offs, *palptr, *src;
uint16 a, b, num, palSize;
@@ -1671,7 +1671,7 @@ void SimonEngine::vc22_setSpritePalette() {
_vgaSpriteChanged++;
}
-void SimonEngine::vc23_setSpritePriority() {
+void AGOSEngine::vc23_setSpritePriority() {
VgaSprite *vsp = findCurSprite(), *vus2;
uint16 pri = vcReadNextWord();
VgaSprite bak;
@@ -1707,7 +1707,7 @@ void SimonEngine::vc23_setSpritePriority() {
_vgaSpriteChanged++;
}
-void SimonEngine::vc24_setSpriteXY() {
+void AGOSEngine::vc24_setSpriteXY() {
VgaSprite *vsp = findCurSprite();
vsp->image = vcReadVarOrWord();
@@ -1722,7 +1722,7 @@ void SimonEngine::vc24_setSpriteXY() {
_vgaSpriteChanged++;
}
-void SimonEngine::vc25_halt_sprite() {
+void AGOSEngine::vc25_halt_sprite() {
VgaSprite *vsp = findCurSprite();
while (vsp->id != 0) {
memcpy(vsp, vsp + 1, sizeof(VgaSprite));
@@ -1732,7 +1732,7 @@ void SimonEngine::vc25_halt_sprite() {
_vgaSpriteChanged++;
}
-void SimonEngine::vc26_setSubWindow() {
+void AGOSEngine::vc26_setSubWindow() {
uint16 *as = &_video_windows[vcReadNextWord() * 4]; // number
as[0] = vcReadNextWord(); // x
as[1] = vcReadNextWord(); // y
@@ -1740,7 +1740,7 @@ void SimonEngine::vc26_setSubWindow() {
as[3] = vcReadNextWord(); // height
}
-void SimonEngine::vc27_resetSprite() {
+void AGOSEngine::vc27_resetSprite() {
VgaSprite bak, *vsp;
VgaSleepStruct *vfs;
VgaTimerEntry *vte, *vte2;
@@ -1790,27 +1790,27 @@ void SimonEngine::vc27_resetSprite() {
_lockWord &= ~8;
}
-void SimonEngine::vc28_dummy_op() {
+void AGOSEngine::vc28_dummy_op() {
/* unused */
_vcPtr += 8;
}
-void SimonEngine::vc29_stopAllSounds() {
+void AGOSEngine::vc29_stopAllSounds() {
if (getGameType() != GType_PP)
_sound->stopVoice();
_sound->stopAllSfx();
}
-void SimonEngine::vc30_setFrameRate() {
+void AGOSEngine::vc30_setFrameRate() {
_frameRate = vcReadNextWord();
}
-void SimonEngine::vc31_setWindow() {
+void AGOSEngine::vc31_setWindow() {
_windowNum = vcReadNextWord();
}
-void SimonEngine::vc32_copyVar() {
+void AGOSEngine::vc32_copyVar() {
if (getGameType() == GType_WW) {
// FIXME
} else {
@@ -1819,26 +1819,26 @@ void SimonEngine::vc32_copyVar() {
}
}
-void SimonEngine::vc33_setMouseOn() {
+void AGOSEngine::vc33_setMouseOn() {
if (_mouseHideCount != 0) {
_mouseHideCount = 1;
mouseOn();
}
}
-void SimonEngine::vc34_setMouseOff() {
+void AGOSEngine::vc34_setMouseOff() {
mouseOff();
_mouseHideCount = 200;
_leftButtonDown = 0;
}
-void SimonEngine::vc35_clearWindow() {
+void AGOSEngine::vc35_clearWindow() {
/* unused */
_vcPtr += 4;
_vgaSpriteChanged++;
}
-void SimonEngine::vc36_setWindowImage() {
+void AGOSEngine::vc36_setWindowImage() {
_updateScreen = false;
uint16 vga_res = vcReadNextWord();
uint16 windowNum = vcReadNextWord();
@@ -1856,7 +1856,7 @@ void SimonEngine::vc36_setWindowImage() {
}
}
-void SimonEngine::vc37_addToSpriteY() {
+void AGOSEngine::vc37_addToSpriteY() {
if (getGameType() == GType_WW) {
// FIXME
vcReadNextWord();
@@ -1868,19 +1868,19 @@ void SimonEngine::vc37_addToSpriteY() {
}
}
-void SimonEngine::vc38_skipIfVarZero() {
+void AGOSEngine::vc38_skipIfVarZero() {
uint16 var = vcReadNextWord();
if (vcReadVar(var) == 0)
vcSkipNextInstruction();
}
-void SimonEngine::vc39_setVar() {
+void AGOSEngine::vc39_setVar() {
uint16 var = vcReadNextWord();
int16 value = vcReadNextWord();
vcWriteVar(var, value);
}
-void SimonEngine::vc40() {
+void AGOSEngine::vc40() {
uint16 var = vcReadNextWord();
int16 value = vcReadVar(var) + vcReadNextWord();
@@ -1909,7 +1909,7 @@ no_scroll:;
vcWriteVar(var, value);
}
-void SimonEngine::vc41() {
+void AGOSEngine::vc41() {
uint16 var = vcReadNextWord();
int16 value = vcReadVar(var) - vcReadNextWord();
@@ -1935,7 +1935,7 @@ no_scroll:;
vcWriteVar(var, value);
}
-void SimonEngine::vc42_delayIfNotEQ() {
+void AGOSEngine::vc42_delayIfNotEQ() {
uint16 val = vcReadVar(vcReadNextWord());
if (val != vcReadNextWord()) {
@@ -1944,19 +1944,19 @@ void SimonEngine::vc42_delayIfNotEQ() {
}
}
-void SimonEngine::vc43_skipIfBitClear() {
+void AGOSEngine::vc43_skipIfBitClear() {
if (!getBitFlag(vcReadNextWord())) {
vcSkipNextInstruction();
}
}
-void SimonEngine::vc44_skipIfBitSet() {
+void AGOSEngine::vc44_skipIfBitSet() {
if (getBitFlag(vcReadNextWord())) {
vcSkipNextInstruction();
}
}
-void SimonEngine::vc45_setSpriteX() {
+void AGOSEngine::vc45_setSpriteX() {
if (getGameType() == GType_WW) {
//FIXME
vcReadNextWord();
@@ -1968,13 +1968,13 @@ void SimonEngine::vc45_setSpriteX() {
}
}
-void SimonEngine::vc46_setSpriteY() {
+void AGOSEngine::vc46_setSpriteY() {
VgaSprite *vsp = findCurSprite();
vsp->y = vcReadVar(vcReadNextWord());
_vgaSpriteChanged++;
}
-void SimonEngine::vc47_addToVar() {
+void AGOSEngine::vc47_addToVar() {
if (getGameType() == GType_WW) {
//FIXME
vcReadNextWord();
@@ -1984,7 +1984,7 @@ void SimonEngine::vc47_addToVar() {
}
}
-void SimonEngine::vc48_setPathFinder() {
+void AGOSEngine::vc48_setPathFinder() {
uint16 a = (uint16)_variableArrayPtr[12];
const uint16 *p = _pathFindArray[a - 1];
@@ -2060,17 +2060,17 @@ void SimonEngine::vc48_setPathFinder() {
}
}
-void SimonEngine::setBitFlag(uint bit, bool value) {
+void AGOSEngine::setBitFlag(uint bit, bool value) {
uint16 *bits = &_bitArray[bit / 16];
*bits = (*bits & ~(1 << (bit & 15))) | (value << (bit & 15));
}
-bool SimonEngine::getBitFlag(uint bit) {
+bool AGOSEngine::getBitFlag(uint bit) {
uint16 *bits = &_bitArray[bit / 16];
return (*bits & (1 << (bit & 15))) != 0;
}
-void SimonEngine::vc49_setBit() {
+void AGOSEngine::vc49_setBit() {
uint16 bit = vcReadNextWord();
if (getGameType() == GType_FF && bit == 82) {
_variableArrayPtr = _variableArray2;
@@ -2078,7 +2078,7 @@ void SimonEngine::vc49_setBit() {
setBitFlag(bit, true);
}
-void SimonEngine::vc50_clearBit() {
+void AGOSEngine::vc50_clearBit() {
uint16 bit = vcReadNextWord();
if (getGameType() == GType_FF && bit == 82) {
_variableArrayPtr = _variableArray;
@@ -2086,11 +2086,11 @@ void SimonEngine::vc50_clearBit() {
setBitFlag(bit, false);
}
-void SimonEngine::vc51_enableBox() {
+void AGOSEngine::vc51_enableBox() {
enableBox(vcReadNextWord());
}
-void SimonEngine::vc52_playSound() {
+void AGOSEngine::vc52_playSound() {
bool ambient = false;
uint16 sound = vcReadNextWord();
@@ -2119,7 +2119,7 @@ void SimonEngine::vc52_playSound() {
}
}
-void SimonEngine::vc53_panSFX() {
+void AGOSEngine::vc53_panSFX() {
VgaSprite *vsp = findCurSprite();
int pan;
@@ -2142,12 +2142,12 @@ void SimonEngine::vc53_panSFX() {
debug(0, "vc53_panSFX: snd %d xoffs %d vol %d", sound, xoffs, vol);
}
-void SimonEngine::vc54_no_op() {
+void AGOSEngine::vc54_no_op() {
/* unused */
_vcPtr += 6;
}
-void SimonEngine::vc55_moveBox() {
+void AGOSEngine::vc55_moveBox() {
HitArea *ha = _hitAreas;
uint count = ARRAYSIZE(_hitAreas);
uint16 id = vcReadNextWord();
@@ -2168,7 +2168,7 @@ void SimonEngine::vc55_moveBox() {
_needHitAreaRecalc++;
}
-void SimonEngine::vc56_delay() {
+void AGOSEngine::vc56_delay() {
if (getGameType() == GType_WW) {
byte *src = _curVgaFile2 + 32;
byte *dst = getBackBuf();
@@ -2191,7 +2191,7 @@ void SimonEngine::vc56_delay() {
}
}
-void SimonEngine::vc57_blackPalette() {
+void AGOSEngine::vc57_blackPalette() {
if (getGameType() == GType_WW) {
uint8 palette[1024];
memset(palette, 0, sizeof(palette));
@@ -2199,7 +2199,7 @@ void SimonEngine::vc57_blackPalette() {
}
}
-void SimonEngine::vc58() {
+void AGOSEngine::vc58() {
if (getGameType() == GType_WW)
return;
@@ -2222,7 +2222,7 @@ void SimonEngine::vc58() {
_vgaCurZoneNum = file;
}
-void SimonEngine::vc59() {
+void AGOSEngine::vc59() {
if (getGameType() == GType_SIMON2 || getGameType() == GType_FF || getGameType() == GType_PP) {
uint16 file = vcReadNextWord();
uint16 start = vcReadNextWord();
@@ -2240,7 +2240,7 @@ void SimonEngine::vc59() {
}
}
-void SimonEngine::vc_kill_sprite(uint file, uint sprite) {
+void AGOSEngine::vc_kill_sprite(uint file, uint sprite) {
uint16 old_sprite_id, old_cur_file_id;
VgaSleepStruct *vfs;
VgaSprite *vsp;
@@ -2285,7 +2285,7 @@ void SimonEngine::vc_kill_sprite(uint file, uint sprite) {
_vcPtr = vcPtrOrg;
}
-void SimonEngine::vc60_killSprite() {
+void AGOSEngine::vc60_killSprite() {
uint16 zoneNum;
if (getGameType() == GType_SIMON1) {
@@ -2297,7 +2297,7 @@ void SimonEngine::vc60_killSprite() {
vc_kill_sprite(zoneNum, sprite);
}
-void SimonEngine::vc61_setMaskImage() {
+void AGOSEngine::vc61_setMaskImage() {
if (getGameType() == GType_WW) {
// FIXME
vcReadVarOrWord();
@@ -2313,7 +2313,7 @@ void SimonEngine::vc61_setMaskImage() {
}
}
-void SimonEngine::vc62_fastFadeOut() {
+void AGOSEngine::vc62_fastFadeOut() {
vc29_stopAllSounds();
if (!_fastFadeOutFlag) {
@@ -2396,7 +2396,7 @@ void SimonEngine::vc62_fastFadeOut() {
}
}
-void SimonEngine::vc63_fastFadeIn() {
+void AGOSEngine::vc63_fastFadeIn() {
if (getGameType() == GType_FF || getGameType() == GType_PP) {
_fastFadeInFlag = 256;
} else {
@@ -2408,14 +2408,14 @@ void SimonEngine::vc63_fastFadeIn() {
_fastFadeOutFlag = false;
}
-void SimonEngine::vc64_skipIfSpeechEnded() {
+void AGOSEngine::vc64_skipIfSpeechEnded() {
if ((getGameType() == GType_SIMON2 && _subtitles && _language != Common::HB_ISR) ||
!_sound->isVoiceActive()) {
vcSkipNextInstruction();
}
}
-void SimonEngine::vc65_slowFadeIn() {
+void AGOSEngine::vc65_slowFadeIn() {
_fastFadeInFlag = 624;
_fastFadeCount = 208;
if (_windowNum != 4) {
@@ -2426,7 +2426,7 @@ void SimonEngine::vc65_slowFadeIn() {
_fastFadeOutFlag = false;
}
-void SimonEngine::vc66_skipIfNotEqual() {
+void AGOSEngine::vc66_skipIfNotEqual() {
uint16 a = vcReadNextWord();
uint16 b = vcReadNextWord();
@@ -2434,7 +2434,7 @@ void SimonEngine::vc66_skipIfNotEqual() {
vcSkipNextInstruction();
}
-void SimonEngine::vc67_skipIfGE() {
+void AGOSEngine::vc67_skipIfGE() {
uint16 a = vcReadNextWord();
uint16 b = vcReadNextWord();
@@ -2442,7 +2442,7 @@ void SimonEngine::vc67_skipIfGE() {
vcSkipNextInstruction();
}
-void SimonEngine::vc68_skipIfLE() {
+void AGOSEngine::vc68_skipIfLE() {
uint16 a = vcReadNextWord();
uint16 b = vcReadNextWord();
@@ -2450,7 +2450,7 @@ void SimonEngine::vc68_skipIfLE() {
vcSkipNextInstruction();
}
-void SimonEngine::vc69_playTrack() {
+void AGOSEngine::vc69_playTrack() {
int16 track = vcReadNextWord();
int16 loop = vcReadNextWord();
@@ -2473,7 +2473,7 @@ void SimonEngine::vc69_playTrack() {
midi.startTrack(track);
}
-void SimonEngine::vc70_queueMusic() {
+void AGOSEngine::vc70_queueMusic() {
// Simon2
uint16 track = vcReadNextWord();
uint16 loop = vcReadNextWord();
@@ -2489,7 +2489,7 @@ void SimonEngine::vc70_queueMusic() {
midi.setLoop(loop != 0);
}
-void SimonEngine::vc71_checkMusicQueue() {
+void AGOSEngine::vc71_checkMusicQueue() {
// Jamieson630:
// This command skips the next instruction
// unless (1) there is a track playing, AND
@@ -2498,7 +2498,7 @@ void SimonEngine::vc71_checkMusicQueue() {
vcSkipNextInstruction();
}
-void SimonEngine::vc72_play_track_2() {
+void AGOSEngine::vc72_play_track_2() {
// Jamieson630:
// This is a "play or stop track". Note that
// this opcode looks very similar in function
@@ -2523,15 +2523,15 @@ void SimonEngine::vc72_play_track_2() {
}
}
-void SimonEngine::vc73_setMark() {
+void AGOSEngine::vc73_setMark() {
_marks |= (1 << vcReadNextWord());
}
-void SimonEngine::vc74_clearMark() {
+void AGOSEngine::vc74_clearMark() {
_marks &= ~(1 << vcReadNextWord());
}
-int SimonEngine::getScale(int16 y, int16 x) {
+int AGOSEngine::getScale(int16 y, int16 x) {
int16 z;
if (y > _baseY) {
@@ -2554,12 +2554,12 @@ int SimonEngine::getScale(int16 y, int16 x) {
}
}
-void SimonEngine::vc75_setScale() {
+void AGOSEngine::vc75_setScale() {
_baseY = vcReadNextWord();
_scale = (float)vcReadNextWord() / 1000000.;
}
-void SimonEngine::vc76_setScaleXOffs() {
+void AGOSEngine::vc76_setScaleXOffs() {
VgaSprite *vsp = findCurSprite();
vsp->image = vcReadNextWord();
@@ -2574,7 +2574,7 @@ void SimonEngine::vc76_setScaleXOffs() {
vsp->flags = kDFScaled;
}
-void SimonEngine::vc77_setScaleYOffs() {
+void AGOSEngine::vc77_setScaleYOffs() {
VgaSprite *vsp = findCurSprite();
vsp->image = vcReadNextWord();
@@ -2590,7 +2590,7 @@ void SimonEngine::vc77_setScaleYOffs() {
vsp->flags = kDFScaled;
}
-void SimonEngine::vc78_computeXY() {
+void AGOSEngine::vc78_computeXY() {
VgaSprite *vsp = findCurSprite();
uint16 a = (uint16)_variableArrayPtr[12];
@@ -2613,7 +2613,7 @@ void SimonEngine::vc78_computeXY() {
}
}
-void SimonEngine::vc79_computePosNum() {
+void AGOSEngine::vc79_computePosNum() {
uint a = (uint16)_variableArrayPtr[12];
const uint16 *p = _pathFindArray[a - 1];
uint pos = 0;
@@ -2627,7 +2627,7 @@ void SimonEngine::vc79_computePosNum() {
_variableArrayPtr[13] = pos;
}
-void SimonEngine::vc80_setOverlayImage() {
+void AGOSEngine::vc80_setOverlayImage() {
VgaSprite *vsp = findCurSprite();
vsp->image = vcReadVarOrWord();
@@ -2639,14 +2639,14 @@ void SimonEngine::vc80_setOverlayImage() {
_vgaSpriteChanged++;
}
-void SimonEngine::vc81_setRandom() {
+void AGOSEngine::vc81_setRandom() {
uint16 var = vcReadNextWord();
uint16 value = vcReadNextWord();
_variableArray[var] = _rnd.getRandomNumber(value - 1);
}
-void SimonEngine::vc82_getPathValue() {
+void AGOSEngine::vc82_getPathValue() {
uint8 val;
uint16 var = vcReadNextWord();
@@ -2660,7 +2660,7 @@ void SimonEngine::vc82_getPathValue() {
vcWriteVar(var, val);
}
-void SimonEngine::vc83_playSoundLoop() {
+void AGOSEngine::vc83_playSoundLoop() {
uint16 sound = vcReadNextWord();
int16 vol = vcReadNextWord();
int16 pan = vcReadNextWord();
@@ -2668,12 +2668,12 @@ void SimonEngine::vc83_playSoundLoop() {
loadSound(sound, pan, vol, 3);
}
-void SimonEngine::vc84_stopSoundLoop() {
+void AGOSEngine::vc84_stopSoundLoop() {
_sound->stopSfx5();
}
// Scrolling functions for Feeble Files
-void SimonEngine::checkScrollX(int16 x, int16 xpos) {
+void AGOSEngine::checkScrollX(int16 x, int16 xpos) {
if (_scrollXMax == 0 || getBitFlag(80) || getBitFlag(82) || x == 0)
return;
@@ -2712,7 +2712,7 @@ void SimonEngine::checkScrollX(int16 x, int16 xpos) {
}
}
-void SimonEngine::checkScrollY(int16 y, int16 ypos) {
+void AGOSEngine::checkScrollY(int16 y, int16 ypos) {
if (_scrollYMax == 0 || getBitFlag(80))
return;
@@ -2749,7 +2749,7 @@ void SimonEngine::checkScrollY(int16 y, int16 ypos) {
}
}
-void SimonEngine::centreScroll() {
+void AGOSEngine::centreScroll() {
int16 x, y, tmp;
if (_scrollXMax != 0) {
@@ -2785,4 +2785,4 @@ void SimonEngine::centreScroll() {
}
}
-} // End of namespace Simon
+} // End of namespace AGOS