aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/kyra.h
diff options
context:
space:
mode:
authorJohannes Schickel2007-05-05 12:18:02 +0000
committerJohannes Schickel2007-05-05 12:18:02 +0000
commit776423ff823c28f0b7ef5929af6caa679b11e067 (patch)
treeea8e43cb1b46b4cb68aa1a645e0ad27bf5a8c120 /engines/kyra/kyra.h
parentae24e0e99f6ae8e7ebc854a3debe691ad963bdf7 (diff)
downloadscummvm-rg350-776423ff823c28f0b7ef5929af6caa679b11e067.tar.gz
scummvm-rg350-776423ff823c28f0b7ef5929af6caa679b11e067.tar.bz2
scummvm-rg350-776423ff823c28f0b7ef5929af6caa679b11e067.zip
- started to move v1 specific functions to KyraEngine_v1 (just opcodes yet)
- reworked script opcode handling svn-id: r26749
Diffstat (limited to 'engines/kyra/kyra.h')
-rw-r--r--engines/kyra/kyra.h178
1 files changed, 5 insertions, 173 deletions
diff --git a/engines/kyra/kyra.h b/engines/kyra/kyra.h
index b42a00d510..fe0067a5b4 100644
--- a/engines/kyra/kyra.h
+++ b/engines/kyra/kyra.h
@@ -25,6 +25,7 @@
#include "engines/engine.h"
#include "common/rect.h"
+#include "common/array.h"
namespace Kyra {
@@ -43,6 +44,7 @@ class TextDisplayer;
class KyraEngine;
class StaticResource;
+struct Opcode;
struct ScriptState;
struct ScriptData;
@@ -262,7 +264,6 @@ public:
int16 _northExitHeight;
typedef void (KyraEngine::*IntroProc)();
- typedef int (KyraEngine::*OpcodeProc)(ScriptState *script);
// static data access
const char * const*seqWSATable() { return _seq_WSATable; }
@@ -277,7 +278,7 @@ public:
// -> misc
bool seq_skipSequence() const;
-private:
+protected:
// -> demo
void seq_demo();
@@ -360,168 +361,6 @@ public:
int setGameFlag(int flag);
int queryGameFlag(int flag);
int resetGameFlag(int flag);
-
- virtual int runOpcode(ScriptState *script, uint8 opcode);
-protected:
- // Opcodes
- int o1_magicInMouseItem(ScriptState *script);
- int o1_characterSays(ScriptState *script);
- int o1_pauseTicks(ScriptState *script);
- int o1_drawSceneAnimShape(ScriptState *script);
- int o1_queryGameFlag(ScriptState *script);
- int o1_setGameFlag(ScriptState *script);
- int o1_resetGameFlag(ScriptState *script);
- int o1_runNPCScript(ScriptState *script);
- int o1_setSpecialExitList(ScriptState *script);
- int o1_blockInWalkableRegion(ScriptState *script);
- int o1_blockOutWalkableRegion(ScriptState *script);
- int o1_walkPlayerToPoint(ScriptState *script);
- int o1_dropItemInScene(ScriptState *script);
- int o1_drawAnimShapeIntoScene(ScriptState *script);
- int o1_createMouseItem(ScriptState *script);
- int o1_savePageToDisk(ScriptState *script);
- int o1_sceneAnimOn(ScriptState *script);
- int o1_sceneAnimOff(ScriptState *script);
- int o1_getElapsedSeconds(ScriptState *script);
- int o1_mouseIsPointer(ScriptState *script);
- int o1_destroyMouseItem(ScriptState *script);
- int o1_runSceneAnimUntilDone(ScriptState *script);
- int o1_fadeSpecialPalette(ScriptState *script);
- int o1_playAdlibSound(ScriptState *script);
- int o1_playAdlibScore(ScriptState *script);
- int o1_phaseInSameScene(ScriptState *script);
- int o1_setScenePhasingFlag(ScriptState *script);
- int o1_resetScenePhasingFlag(ScriptState *script);
- int o1_queryScenePhasingFlag(ScriptState *script);
- int o1_sceneToDirection(ScriptState *script);
- int o1_setBirthstoneGem(ScriptState *script);
- int o1_placeItemInGenericMapScene(ScriptState *script);
- int o1_setBrandonStatusBit(ScriptState *script);
- int o1_pauseSeconds(ScriptState *script);
- int o1_getCharactersLocation(ScriptState *script);
- int o1_runNPCSubscript(ScriptState *script);
- int o1_magicOutMouseItem(ScriptState *script);
- int o1_internalAnimOn(ScriptState *script);
- int o1_forceBrandonToNormal(ScriptState *script);
- int o1_poisonDeathNow(ScriptState *script);
- int o1_setScaleMode(ScriptState *script);
- int o1_openWSAFile(ScriptState *script);
- int o1_closeWSAFile(ScriptState *script);
- int o1_runWSAFromBeginningToEnd(ScriptState *script);
- int o1_displayWSAFrame(ScriptState *script);
- int o1_enterNewScene(ScriptState *script);
- int o1_setSpecialEnterXAndY(ScriptState *script);
- int o1_runWSAFrames(ScriptState *script);
- int o1_popBrandonIntoScene(ScriptState *script);
- int o1_restoreAllObjectBackgrounds(ScriptState *script);
- int o1_setCustomPaletteRange(ScriptState *script);
- int o1_loadPageFromDisk(ScriptState *script);
- int o1_customPrintTalkString(ScriptState *script);
- int o1_restoreCustomPrintBackground(ScriptState *script);
- int o1_hideMouse(ScriptState *script);
- int o1_showMouse(ScriptState *script);
- int o1_getCharacterX(ScriptState *script);
- int o1_getCharacterY(ScriptState *script);
- int o1_changeCharactersFacing(ScriptState *script);
- int o1_copyWSARegion(ScriptState *script);
- int o1_printText(ScriptState *script);
- int o1_random(ScriptState *script);
- int o1_loadSoundFile(ScriptState *script);
- int o1_displayWSAFrameOnHidPage(ScriptState *script);
- int o1_displayWSASequentialFrames(ScriptState *script);
- int o1_drawCharacterStanding(ScriptState *script);
- int o1_internalAnimOff(ScriptState *script);
- int o1_changeCharactersXAndY(ScriptState *script);
- int o1_clearSceneAnimatorBeacon(ScriptState *script);
- int o1_querySceneAnimatorBeacon(ScriptState *script);
- int o1_refreshSceneAnimator(ScriptState *script);
- int o1_placeItemInOffScene(ScriptState *script);
- int o1_wipeDownMouseItem(ScriptState *script);
- int o1_placeCharacterInOtherScene(ScriptState *script);
- int o1_getKey(ScriptState *script);
- int o1_specificItemInInventory(ScriptState *script);
- int o1_popMobileNPCIntoScene(ScriptState *script);
- int o1_mobileCharacterInScene(ScriptState *script);
- int o1_hideMobileCharacter(ScriptState *script);
- int o1_unhideMobileCharacter(ScriptState *script);
- int o1_setCharactersLocation(ScriptState *script);
- int o1_walkCharacterToPoint(ScriptState *script);
- int o1_specialEventDisplayBrynnsNote(ScriptState *script);
- int o1_specialEventRemoveBrynnsNote(ScriptState *script);
- int o1_setLogicPage(ScriptState *script);
- int o1_fatPrint(ScriptState *script);
- int o1_preserveAllObjectBackgrounds(ScriptState *script);
- int o1_updateSceneAnimations(ScriptState *script);
- int o1_sceneAnimationActive(ScriptState *script);
- int o1_setCharactersMovementDelay(ScriptState *script);
- int o1_getCharactersFacing(ScriptState *script);
- int o1_bkgdScrollSceneAndMasksRight(ScriptState *script);
- int o1_dispelMagicAnimation(ScriptState *script);
- int o1_findBrightestFireberry(ScriptState *script);
- int o1_setFireberryGlowPalette(ScriptState *script);
- int o1_setDeathHandlerFlag(ScriptState *script);
- int o1_drinkPotionAnimation(ScriptState *script);
- int o1_makeAmuletAppear(ScriptState *script);
- int o1_drawItemShapeIntoScene(ScriptState *script);
- int o1_setCharactersCurrentFrame(ScriptState *script);
- int o1_waitForConfirmationMouseClick(ScriptState *script);
- int o1_pageFlip(ScriptState *script);
- int o1_setSceneFile(ScriptState *script);
- int o1_getItemInMarbleVase(ScriptState *script);
- int o1_setItemInMarbleVase(ScriptState *script);
- int o1_addItemToInventory(ScriptState *script);
- int o1_intPrint(ScriptState *script);
- int o1_shakeScreen(ScriptState *script);
- int o1_createAmuletJewel(ScriptState *script);
- int o1_setSceneAnimCurrXY(ScriptState *script);
- int o1_poisonBrandonAndRemaps(ScriptState *script);
- int o1_fillFlaskWithWater(ScriptState *script);
- int o1_getCharactersMovementDelay(ScriptState *script);
- int o1_getBirthstoneGem(ScriptState *script);
- int o1_queryBrandonStatusBit(ScriptState *script);
- int o1_playFluteAnimation(ScriptState *script);
- int o1_playWinterScrollSequence(ScriptState *script);
- int o1_getIdolGem(ScriptState *script);
- int o1_setIdolGem(ScriptState *script);
- int o1_totalItemsInScene(ScriptState *script);
- int o1_restoreBrandonsMovementDelay(ScriptState *script);
- int o1_setMousePos(ScriptState *script);
- int o1_getMouseState(ScriptState *script);
- int o1_setEntranceMouseCursorTrack(ScriptState *script);
- int o1_itemAppearsOnGround(ScriptState *script);
- int o1_setNoDrawShapesFlag(ScriptState *script);
- int o1_fadeEntirePalette(ScriptState *script);
- int o1_itemOnGroundHere(ScriptState *script);
- int o1_queryCauldronState(ScriptState *script);
- int o1_setCauldronState(ScriptState *script);
- int o1_queryCrystalState(ScriptState *script);
- int o1_setCrystalState(ScriptState *script);
- int o1_setPaletteRange(ScriptState *script);
- int o1_shrinkBrandonDown(ScriptState *script);
- int o1_growBrandonUp(ScriptState *script);
- int o1_setBrandonScaleXAndY(ScriptState *script);
- int o1_resetScaleMode(ScriptState *script);
- int o1_getScaleDepthTableValue(ScriptState *script);
- int o1_setScaleDepthTableValue(ScriptState *script);
- int o1_message(ScriptState *script);
- int o1_checkClickOnNPC(ScriptState *script);
- int o1_getFoyerItem(ScriptState *script);
- int o1_setFoyerItem(ScriptState *script);
- int o1_setNoItemDropRegion(ScriptState *script);
- int o1_walkMalcolmOn(ScriptState *script);
- int o1_passiveProtection(ScriptState *script);
- int o1_setPlayingLoop(ScriptState *script);
- int o1_brandonToStoneSequence(ScriptState *script);
- int o1_brandonHealingSequence(ScriptState *script);
- int o1_protectCommandLine(ScriptState *script);
- int o1_pauseMusicSeconds(ScriptState *script);
- int o1_resetMaskRegion(ScriptState *script);
- int o1_setPaletteChangeFlag(ScriptState *script);
- int o1_fillRect(ScriptState *script);
- int o1_dummy(ScriptState *script);
- int o1_vocUnload(ScriptState *script);
- int o1_vocLoad(ScriptState *script);
-
protected:
virtual int go();
virtual int init();
@@ -668,9 +507,8 @@ protected:
int checkForNPCScriptRun(int xpos, int ypos);
void runNpcScript(int func);
- void setupOpcodeTable();
- const OpcodeProc *_opcodeTable;
- int _opcodeTableSize;
+ virtual void setupOpcodeTable() = 0;
+ Common::Array<const Opcode*> _opcodes;
void loadMouseShapes();
void loadCharacterShapes();
@@ -1076,12 +914,6 @@ protected:
static const uint16 _amuletY2[];
};
-class KyraEngine_v1 : public KyraEngine {
-public:
- KyraEngine_v1(OSystem *system, const GameFlags &flags);
- ~KyraEngine_v1();
-};
-
} // End of namespace Kyra
#endif