ScummVM API documentation
Kyra::KyraEngine_v2 Class Referenceabstract
Inheritance diagram for Kyra::KyraEngine_v2:
Kyra::KyraEngine_v1 Engine Kyra::KyraEngine_HoF Kyra::KyraEngine_MR

Classes

struct  AnimObj
 
struct  Character
 
struct  EngineDesc
 
struct  ItemDefinition
 
struct  SceneAnim
 
struct  SceneDesc
 

Public Member Functions

 KyraEngine_v2 (OSystem *system, const GameFlags &flags, const EngineDesc &desc)
 
void pauseEngineIntern (bool pause) override
 
virtual Screen_v2screen_v2 () const =0
 
void delay (uint32 time, bool update=false, bool isMainLoop=false) override
 
const EngineDescengineDesc () const
 
- Public Member Functions inherited from Kyra::KyraEngine_v1
 KyraEngine_v1 (OSystem *system, const GameFlags &flags)
 
uint8 game () const
 
const GameFlagsgameFlags () const
 
Resourceresource ()
 
virtual Screenscreen ()=0
 
virtual TextDisplayertext ()
 
virtual GUIgui () const
 
Soundsound ()
 
StaticResourcestaticres ()
 
TimerManagertimer ()
 
uint32 tickLength () const
 
void setMousePos (int x, int y)
 
Common::Point getMousePos ()
 
bool speechEnabled ()
 
bool textEnabled ()
 
void setVolume (kVolumeEntry vol, uint8 value)
 
uint8 getVolume (kVolumeEntry vol)
 
void syncSoundSettings () override
 
int setGameFlag (int flag)
 
int queryGameFlag (int flag) const
 
int resetGameFlag (int flag)
 
virtual void snd_playTheme (int file, int track)
 
virtual void snd_playSoundEffect (int id, int volume=0xFF)
 
virtual void snd_playWanderScoreViaMap (int command, int restart)
 
virtual void snd_playVoiceFile (int id)=0
 
virtual bool snd_voiceIsPlaying ()
 
virtual void snd_stopVoice ()
 
virtual void delayUntil (uint32 timestamp, bool updateGameTimers=false, bool update=false, bool isMainLoop=false)
 
virtual void delayWithTicks (int ticks)
 
- Public Member Functions inherited from Engine
MetaEnginegetMetaEngine () const
 
void setMetaEngine (MetaEngine *metaEngine)
 
PauseToken pauseEngine ()
 
bool isPaused () const
 
void openMainMenuDialog ()
 
uint32 getTotalPlayTime () const
 
void setTotalPlayTime (uint32 time=0)
 
Common::TimerManagergetTimerManager ()
 
Common::EventManagergetEventManager ()
 
Common::SaveFileManagergetSaveFileManager ()
 
bool existExtractedCDAudioFiles (uint track=1)
 
bool isDataAndCDAudioReadFromSameCD ()
 
void warnMissingExtractedCDAudio ()
 
void handleAutoSave ()
 
void saveAutosaveIfEnabled ()
 
virtual bool canSaveAutosaveCurrently ()
 
 Engine (OSystem *syst)
 
virtual ~Engine ()
 
virtual void initializePath (const Common::FSNode &gamePath)
 
virtual void errorString (const char *buf_input, char *buf_output, int buf_output_size)
 
virtual GUI::DebuggergetDebugger () final
 
void setDebugger (GUI::Debugger *debugger)
 
GUI::DebuggergetOrCreateDebugger ()
 
virtual void applyGameSettings ()
 
virtual void flipMute ()
 
virtual Common::String getSaveStateName (int slot) const
 
virtual Common::Error loadGameStream (Common::SeekableReadStream *stream)
 
void setGameToLoadSlot (int slot)
 
virtual Common::Error saveGameStream (Common::WriteStream *stream, bool isAutosave=false)
 
bool saveGameDialog ()
 
bool loadGameDialog ()
 

Protected Types

typedef Common::HashMap< int, uint8 * > ShapeMap
 
- Protected Types inherited from Kyra::KyraEngine_v1
enum  ReadSaveHeaderError { kRSHENoError = 0, kRSHEInvalidType = 1, kRSHEInvalidVersion = 2, kRSHEIoError = 3 }
 
typedef Common::HashMap< Common::KeyCode, int16, KeyCodeHashKeyMap
 

Protected Member Functions

virtual void update ()=0
 
virtual void updateWithText ()=0
 
virtual int inputSceneChange (int x, int y, int unk1, int unk2)=0
 
void allocAnimObjects (int actors, int anims, int items)
 
AnimObjinitAnimList (AnimObj *list, AnimObj *entry)
 
AnimObjaddToAnimListSorted (AnimObj *list, AnimObj *entry)
 
AnimObjdeleteAnimListEntry (AnimObj *list, AnimObj *entry)
 
virtual void refreshAnimObjects (int force)=0
 
void refreshAnimObjectsIfNeed ()
 
void flagAnimObjsSpecialRefresh ()
 
void flagAnimObjsForRefresh ()
 
virtual void clearAnimObjects ()=0
 
virtual void drawAnimObjects ()=0
 
virtual void drawSceneAnimObject (AnimObj *obj, int x, int y, int drawLayer)=0
 
virtual void drawCharacterAnimObject (AnimObj *obj, int x, int y, int drawLayer)=0
 
virtual void updateCharacterAnim (int)=0
 
virtual void updateSceneAnim (int anim, int newFrame)=0
 
void addItemToAnimList (int item)
 
void deleteItemAnimEntry (int item)
 
virtual void animSetupPaletteEntry (AnimObj *)
 
virtual void setCharacterAnimDim (int w, int h)=0
 
virtual void resetCharacterAnimDim ()=0
 
virtual int getScale (int x, int y)=0
 
bool checkSpecialSceneExit (int num, int x, int y)
 
virtual void enterNewScene (uint16 newScene, int facing, int unk1, int unk2, int unk3)=0
 
void runSceneScript6 ()
 
virtual int trySceneChange (int *moveTable, int unk1, int unk2)=0
 
virtual void restorePage3 ()=0
 
void freeSceneAnims ()
 
void updateSpecialSceneScripts ()
 
void runAnimationScript (const char *filename, int allowSkip, int resetChar, int newShapes, int shapeUnload)
 
int o2a_setAnimationShapes (EMCState *script)
 
int o2a_setResetFrame (EMCState *script)
 
virtual int initAnimationShapes (uint8 *filedata)=0
 
void processAnimationScript (int allowSkip, int resetChar)
 
virtual void uninitAnimationShapes (int count, uint8 *filedata)=0
 
uint8 * getShapePtr (int index) const
 
void addShapeToPool (const uint8 *data, int realIndex, int shape)
 
void addShapeToPool (uint8 *shpData, int index)
 
void remShapeFromPool (int idx)
 
virtual void loadCharacterShapes (int shapes)=0
 
int findWay (int curX, int curY, int dstX, int dstY, int *moveTable, int moveTableSize) override
 
bool directLinePassable (int x, int y, int toX, int toY)
 
int pathfinderInitPositionTable (int *moveTable)
 
int pathfinderAddToPositionTable (int index, int v1, int v2)
 
int pathfinderInitPositionIndexTable (int tableLen, int x, int y)
 
int pathfinderAddToPositionIndexTable (int index, int v)
 
void pathfinderFinializePath (int *moveTable, int unk1, int x, int y, int moveTableSize)
 
void initItemList (int size)
 
int findFreeItem ()
 
int countAllItems ()
 
int findItem (uint16 sceneId, Item id)
 
int findItem (Item item)
 
void resetItemList ()
 
void resetItem (int index)
 
virtual void setMouseCursor (Item item)=0
 
void setHandItem (Item item) override
 
void removeHandItem () override
 
void moveCharacter (int facing, int x, int y)
 
int updateCharPos (int *table, int force=0)
 
void updateCharPosWithUpdate ()
 
virtual int getCharacterWalkspeed () const =0
 
virtual void updateCharAnimFrame (int *table)=0
 
virtual void setDlgIndex (int dlgIndex)=0
 
virtual void randomSceneChat ()=0
 
int o2_getCharacterX (EMCState *script)
 
int o2_getCharacterY (EMCState *script)
 
int o2_getCharacterFacing (EMCState *script)
 
int o2_getCharacterScene (EMCState *script)
 
int o2_setCharacterFacingOverwrite (EMCState *script)
 
int o2_trySceneChange (EMCState *script)
 
int o2_moveCharacter (EMCState *script)
 
int o2_checkForItem (EMCState *script)
 
int o2_defineItem (EMCState *script)
 
int o2_addSpecialExit (EMCState *script)
 
int o2_delay (EMCState *script)
 
int o2_update (EMCState *script)
 
int o2_getShapeFlag1 (EMCState *script)
 
int o2_waitForConfirmationClick (EMCState *script)
 
int o2_randomSceneChat (EMCState *script)
 
int o2_setDlgIndex (EMCState *script)
 
int o2_getDlgIndex (EMCState *script)
 
int o2_defineRoomEntrance (EMCState *script)
 
int o2_runAnimationScript (EMCState *script)
 
int o2_setSpecialSceneScriptRunTime (EMCState *script)
 
int o2_defineScene (EMCState *script)
 
int o2_setSpecialSceneScriptState (EMCState *script)
 
int o2_clearSpecialSceneScriptState (EMCState *script)
 
int o2_querySpecialSceneScriptState (EMCState *script)
 
int o2_setHiddenItemsEntry (EMCState *script)
 
int o2_getHiddenItemsEntry (EMCState *script)
 
int o2_disableTimer (EMCState *script)
 
int o2_enableTimer (EMCState *script)
 
int o2_setTimerCountdown (EMCState *script)
 
int o2_setVocHigh (EMCState *script)
 
int o2_getVocHigh (EMCState *script)
 
- Protected Member Functions inherited from Kyra::KyraEngine_v1
virtual Common::Error init ()
 
virtual Common::Error go ()=0
 
Common::Error run () override
 
bool hasFeature (EngineFeature f) const override
 
void pauseEngineIntern (bool pause) override
 
void setupKeyMap ()
 
void updateInput ()
 
int checkInput (Button *buttonList, bool mainLoop=false, int eventFlag=0x8000)
 
void removeInputTop ()
 
void transposeScreenOutputY (int yAdd)
 
virtual void registerDefaultSettings ()
 
virtual void readSettings ()
 
virtual void writeSettings ()
 
virtual bool skipFlag () const
 
virtual void resetSkipFlag (bool removeEvent=true)
 
virtual void setupTimers ()=0
 
virtual void setWalkspeed (uint8 speed)=0
 
virtual void setupOpcodeTable ()=0
 
int o1_queryGameFlag (EMCState *script)
 
int o1_setGameFlag (EMCState *script)
 
int o1_resetGameFlag (EMCState *script)
 
int o1_getRand (EMCState *script)
 
int o1_hideMouse (EMCState *script)
 
int o1_showMouse (EMCState *script)
 
int o1_setMousePos (EMCState *script)
 
int o1_setHandItem (EMCState *script)
 
int o1_removeHandItem (EMCState *script)
 
int o1_getMouseState (EMCState *script)
 
int o1_setDeathHandler (EMCState *script)
 
int o1_playWanderScoreViaMap (EMCState *script)
 
int o1_fillRect (EMCState *script)
 
int o1_blockInWalkableRegion (EMCState *script)
 
int o1_blockOutWalkableRegion (EMCState *script)
 
int o1_playSoundEffect (EMCState *script)
 
int16 emcSafeReadStack (EMCState *s, int x, int line, const char *file)
 
virtual int convertVolumeToMixer (int value)
 
virtual int convertVolumeFromMixer (int value)
 
int findSubPath (int x, int y, int toX, int toY, int *moveTable, int start, int end)
 
int getFacingFromPointToPoint (int x, int y, int toX, int toY)
 
int getOppositeFacingDirection (int dir)
 
void changePosTowardsFacing (int &x, int &y, int facing)
 
int getMoveTableSize (int *moveTable)
 
virtual bool lineIsPassable (int x, int y)=0
 
bool canLoadGameStateCurrently (Common::U32String *msg=nullptr) override
 
bool canSaveGameStateCurrently (Common::U32String *msg=nullptr) override
 
int getAutosaveSlot () const override
 
const char * getSavegameFilename (int num)
 
bool saveFileLoadable (int slot)
 
void loadGameStateCheck (int slot)
 
Common::Error loadGameState (int slot) override=0
 
Common::Error saveGameState (int slot, const Common::String &desc, bool isAutosave=false) override
 
virtual Common::Error saveGameStateIntern (int slot, const char *saveName, const Graphics::Surface *thumbnail)=0
 
Common::SeekableReadStreamopenSaveForReading (const char *filename, SaveHeader &header, bool checkID=true)
 
Common::OutSaveFileopenSaveForWriting (const char *filename, const char *saveName, const Graphics::Surface *thumbnail) const
 
virtual Graphics::SurfacegenerateSaveThumbnail () const
 
void updatePlayTimer ()
 
void restartPlayTimerAt (uint32 totalPlaySecs)
 
void pausePlayTimer (bool pause)
 
- Protected Member Functions inherited from Engine
virtual int runDialog (GUI::Dialog &dialog)
 
void defaultSyncSoundSettings ()
 

Protected Attributes

EngineDesc _desc
 
uint32 _pauseStart
 
bool _runFlag
 
bool _showOutro
 
int _lang
 
const int _numLang
 
int _langIntern
 
AnimObj_animObjects
 
AnimObj_animActor
 
AnimObj_animAnims
 
AnimObj_animItems
 
bool _drawNoShapeFlag
 
AnimObj_animList
 
uint8 * _screenBuffer
 
SceneDesc_sceneList
 
int _sceneListSize
 
uint16 _currentScene
 
uint16 _sceneExit1
 
uint16 _sceneExit2
 
uint16 _sceneExit3
 
uint16 _sceneExit4
 
int _sceneEnterX1
 
int _sceneEnterY1
 
int _sceneEnterX2
 
int _sceneEnterY2
 
int _sceneEnterX3
 
int _sceneEnterY3
 
int _sceneEnterX4
 
int _sceneEnterY4
 
int _specialExitCount
 
uint16 _specialExitTable [25]
 
bool _overwriteSceneFacing
 
EMCData _sceneScriptData
 
EMCState _sceneScriptState
 
SceneAnim _sceneAnims [16]
 
WSAMovie_v2_sceneAnimMovie [16]
 
bool _specialSceneScriptState [10]
 
bool _specialSceneScriptStateBackup [10]
 
EMCState _sceneSpecialScripts [10]
 
uint32 _sceneSpecialScriptsTimer [10]
 
int _lastProcessedSceneScript
 
bool _specialSceneScriptRunFlag
 
EMCData _animationScriptData
 
EMCState _animationScriptState
 
Common::Array< const Opcode * > _opcodesAnimation
 
char _animShapeFilename [14]
 
uint8 * _animShapeFiledata
 
int _animShapeCount
 
int _animShapeLastEntry
 
int _animNewFrame
 
int _animDelayTime
 
int _animResetFrame
 
int _animShapeWidth
 
int _animShapeHeight
 
int _animShapeXAdd
 
int _animShapeYAdd
 
bool _animNeedUpdate
 
ShapeMap _gameShapes
 
int _characterShapeFile
 
int _movFacingTable [600]
 
int _pathfinderFlag
 
bool _smoothingPath
 
int _pathfinderPositionTable [400]
 
int _pathfinderPositionIndexTable [200]
 
Item _hiddenItems [100]
 
ItemDefinition_itemList
 
int _itemListSize
 
int _itemInHand
 
int _savedMouseState
 
Character _mainCharacter
 
int _mainCharX
 
int _mainCharY
 
int _charScale
 
uint32 _updateCharPosNextUpdate
 
int _vocHigh
 
Common::String _chatText
 
int _chatObject
 
uint32 _chatEndTime
 
int _chatVocHigh
 
int _chatVocLow
 
bool _chatTextEnabled
 
EMCData _chatScriptData
 
EMCState _chatScriptState
 
int _unk4
 
int _unk5
 
bool _unkSceneScreenFlag1
 
bool _unkHandleSceneChangeFlag
 
- Protected Attributes inherited from Kyra::KyraEngine_v1
Resource_res
 
Sound_sound
 
TextDisplayer_text
 
StaticResource_staticres
 
TimerManager_timer
 
EMCInterpreter_emc
 
int _mouseX
 
int _mouseY
 
int _transOffsY
 
Common::List< Event_eventList
 
KeyMap _keyMap
 
bool _asciiCodeEvents
 
bool _kbEventSkip
 
uint8 _configWalkspeed
 
int _configMusic
 
bool _configSounds
 
uint8 _configVoice
 
bool _configNullSound
 
Common::RenderMode _configRenderMode
 
uint16 _tickLength
 
uint16 _gameSpeed
 
int8 _deathHandler
 
GameFlags _flags
 
Common::Array< const Opcode * > _opcodes
 
int _mouseState
 
uint8 _flagsTable [100]
 
Audio::SoundHandle _speechHandle
 
int _curMusicTheme
 
int _curSfxFile
 
int16 _lastMusicCommand
 
const int8 * _trackMap
 
int _trackMapSize
 
bool _preventScriptSfx
 
int _gameToLoad
 
bool _isSaveAllowed
 
Common::String _savegameFilename
 
uint32 _lastSecTick
 
uint32 _lastSecTickAtPauseStart
 
uint32 _totalPlaySecs
 
- Protected Attributes inherited from Engine
Common::TimerManager_timer
 
Common::EventManager_eventMan
 
Common::SaveFileManager_saveFileMan
 
GUI::Dialog_mainMenuDialog
 
const Common::String _targetName
 

Additional Inherited Members

- Public Types inherited from Kyra::KyraEngine_v1
enum  kVolumeEntry { kVolumeMusic = 0, kVolumeSfx = 1, kVolumeSpeech = 2 }
 
- Public Types inherited from Engine
enum  EngineFeature {
  kSupportsSubtitleOptions, kSupportsReturnToLauncher, kSupportsLoadingDuringRuntime, kSupportsSavingDuringRuntime,
  kSupportsChangingOptionsDuringRuntime, kSupportsArbitraryResolutions, kSupportsHelp, kSupportsQuitDialogOverride
}
 
- Static Public Member Functions inherited from Engine
static void quitGame ()
 
static bool shouldQuit ()
 
static MetaEngineDetectiongetMetaEngineDetection ()
 
static bool warnUserAboutUnsupportedGame (Common::String msg=Common::String())
 
static void errorUnsupportedGame (Common::String extraMsg)
 
- Public Attributes inherited from Kyra::KyraEngine_v1
Common::RandomSource _rnd
 
- Public Attributes inherited from Engine
OSystem_system
 
Audio::Mixer_mixer
 
- Static Protected Member Functions inherited from Kyra::KyraEngine_v1
static Common::String getSavegameFilename (const Common::String &target, int num)
 
static WARN_UNUSED_RESULT ReadSaveHeaderError readSaveHeader (Common::SeekableReadStream *file, SaveHeader &header, bool skipThumbnail=true)
 
- Static Protected Attributes inherited from Kyra::KyraEngine_v1
static const int8 _addXPosTable []
 
static const int8 _addYPosTable []
 
static const int8 _charAddXPosTable []
 
static const int8 _charAddYPosTable []
 

Member Function Documentation

◆ pauseEngineIntern()

void Kyra::KyraEngine_v2::pauseEngineIntern ( bool  pause)
overridevirtual

Actual implementation of pauseEngine by subclasses.

See also
Engine::pauseEngine

Reimplemented from Engine.


The documentation for this class was generated from the following file: