diff options
author | Matthew Hoops | 2010-12-01 03:30:00 +0000 |
---|---|---|
committer | Matthew Hoops | 2010-12-01 03:30:00 +0000 |
commit | bdc3e5c353ff1ea82e618e9cf83624ce35cf781b (patch) | |
tree | 7419fb625ae0427c37bf292d270dd85ef4be7077 /engines/mohawk/myst_stacks/credits.cpp | |
parent | b9cfb529274219bb5638294a5759324503aa933e (diff) | |
download | scummvm-rg350-bdc3e5c353ff1ea82e618e9cf83624ce35cf781b.tar.gz scummvm-rg350-bdc3e5c353ff1ea82e618e9cf83624ce35cf781b.tar.bz2 scummvm-rg350-bdc3e5c353ff1ea82e618e9cf83624ce35cf781b.zip |
MOHAWK: Cleanup Myst opcode handling and reduce code duplication
svn-id: r54693
Diffstat (limited to 'engines/mohawk/myst_stacks/credits.cpp')
-rw-r--r-- | engines/mohawk/myst_stacks/credits.cpp | 78 |
1 files changed, 9 insertions, 69 deletions
diff --git a/engines/mohawk/myst_stacks/credits.cpp b/engines/mohawk/myst_stacks/credits.cpp index f508892ee4..152740139a 100644 --- a/engines/mohawk/myst_stacks/credits.cpp +++ b/engines/mohawk/myst_stacks/credits.cpp @@ -36,85 +36,25 @@ namespace Mohawk { // NOTE: Credits Start Card is 10000 -#define OPCODE(op, x) { op, &MystScriptParser::x, #x } -#define SPECIFIC_OPCODE(op, x) { op, (OpcodeProcMyst) &MystScriptParser_Credits::x, #x } - MystScriptParser_Credits::MystScriptParser_Credits(MohawkEngine_Myst *vm) : MystScriptParser(vm) { setupOpcodes(); - _invokingResource = NULL; } MystScriptParser_Credits::~MystScriptParser_Credits() { } +#define OPCODE(op, x) _opcodes.push_back(new MystOpcode(op, (OpcodeProcMyst) &MystScriptParser_Credits::x, #x)) + void MystScriptParser_Credits::setupOpcodes() { - // "invalid" opcodes do not exist or have not been observed - // "unknown" opcodes exist, but their meaning is unknown - - static const MystOpcode creditsOpcodes[] = { - // "Standard" Opcodes - OPCODE(0, o_toggleVar), - OPCODE(1, o_setVar), - OPCODE(2, o_changeCardSwitch), - OPCODE(3, o_takePage), - OPCODE(4, o_redrawCard), - // TODO: Opcode 5 Not Present - OPCODE(6, o_goToDest), - OPCODE(7, o_goToDest), - OPCODE(8, o_goToDest), - OPCODE(9, o_triggerMovie), - OPCODE(10, o_toggleVarNoRedraw), - // TODO: Opcode 10 to 11 Not Present - OPCODE(12, o_changeCardSwitch), - OPCODE(13, o_changeCardSwitch), - OPCODE(14, o_drawAreaState), - OPCODE(15, o_redrawAreaForVar), - OPCODE(16, o_changeCardDirectional), - OPCODE(17, o_changeCardPush), - OPCODE(18, o_changeCardPop), - OPCODE(19, o_enableAreas), - OPCODE(20, o_disableAreas), - OPCODE(21, o_directionalUpdate), - OPCODE(22, o_goToDest), - OPCODE(23, o_toggleAreasActivation), - OPCODE(24, o_playSound), - // TODO: Opcode 25 Not Present - OPCODE(26, o_stopSoundBackground), - OPCODE(27, o_playSoundBlocking), - OPCODE(28, o_restoreDefaultRect), - OPCODE(29, o_blitRect), - OPCODE(30, o_changeSound), - OPCODE(31, o_soundPlaySwitch), - OPCODE(32, o_soundResumeBackground), - OPCODE(33, o_blitRect), - OPCODE(34, o_changeCard), - OPCODE(35, o_drawImageChangeCard), - OPCODE(36, o_changeMainCursor), - OPCODE(37, o_hideCursor), - OPCODE(38, o_showCursor), - OPCODE(39, o_delay), - OPCODE(40, o_changeStack), - OPCODE(41, o_changeCardPlaySoundDirectional), - OPCODE(42, o_directionalUpdatePlaySound), - OPCODE(43, o_saveMainCursor), - OPCODE(44, o_restoreMainCursor), - // TODO: Opcode 45 Not Present - OPCODE(46, o_soundWaitStop), - // TODO: Opcodes 47 to 99 Not Present - - // "Stack-Specific" Opcodes - SPECIFIC_OPCODE(100, o_quit), - - // "Init" Opcodes - SPECIFIC_OPCODE(200, o_runCredits), - - OPCODE(0xFFFF, NOP) - }; - - _opcodes = creditsOpcodes; - _opcodeCount = ARRAYSIZE(creditsOpcodes); + // "Stack-Specific" Opcodes + OPCODE(100, o_quit); + + // "Init" Opcodes + OPCODE(200, o_runCredits); } +#undef OPCODE + void MystScriptParser_Credits::disablePersistentScripts() { _creditsRunning = false; _creditsVar = 0; |