ScummVM API documentation
Illusions::IllusionsEngine_BBDOU Class Reference
Inheritance diagram for Illusions::IllusionsEngine_BBDOU:
Illusions::IllusionsEngine Engine

Public Member Functions

 IllusionsEngine_BBDOU (OSystem *syst, const IllusionsGameDescription *gd)
 
void initInput ()
 
void initUpdateFunctions ()
 
int updateScript (uint flags)
 
int updateMenuKeys (uint flags)
 
bool causeIsDeclared (uint32 sceneId, uint32 verbId, uint32 objectId2, uint32 objectId)
 
void causeDeclare (uint32 verbId, uint32 objectId2, uint32 objectId, TriggerFunctionCallback *callback)
 
uint32 causeTrigger (uint32 sceneId, uint32 verbId, uint32 objectId2, uint32 objectId, uint32 callingThreadId)
 
int updateVideoPlayer (uint flags)
 
void playVideo (uint32 videoId, uint32 objectId, uint32 priority, uint32 callingThreadId)
 
bool isVideoPlaying () override
 
void setDefaultTextCoords () override
 
void loadSpecialCode (uint32 resId) override
 
void unloadSpecialCode (uint32 resId) override
 
void notifyThreadId (uint32 &threadId) override
 
bool testMainActorFastWalk (Control *control) override
 
bool testMainActorCollision (Control *control) override
 
Control * getObjectControl (uint32 objectId) override
 
Common::Point getNamedPointPosition (uint32 namedPointId) override
 
uint32 getPriorityFromBase (int16 priority) override
 
uint32 getCurrentScene () override
 
uint32 getPrevScene () override
 
bool isCursorObject (uint32 actorTypeId, uint32 objectId) override
 
void setCursorControlRoutine (Control *control) override
 
void placeCursorControl (Control *control, uint32 sequenceId) override
 
void setCursorControl (Control *control) override
 
void showCursor () override
 
void hideCursor () override
 
void cursorControlRoutine (Control *control, uint32 deltaTime)
 
void startScriptThreadSimple (uint32 threadId, uint32 callingThreadId) override
 
void startScriptThread (uint32 threadId, uint32 callingThreadId, uint32 value8, uint32 valueC, uint32 value10)
 
void startAnonScriptThread (int32 threadId, uint32 callingThreadId, uint32 value8, uint32 valueC, uint32 value10)
 
uint32 startAbortableTimerThread (uint32 duration, uint32 threadId)
 
uint32 startTimerThread (uint32 duration, uint32 threadId)
 
uint32 startAbortableThread (byte *scriptCodeIp1, byte *scriptCodeIp2, uint32 callingThreadId)
 
uint32 startTalkThread (int16 duration, uint32 objectId, uint32 talkId, uint32 sequenceId1, uint32 sequenceId2, uint32 namedPointId, uint32 callingThreadId)
 
uint32 startTempScriptThread (byte *scriptCodeIp, uint32 callingThreadId, uint32 value8, uint32 valueC, uint32 value10) override
 
void newScriptThread (uint32 threadId, uint32 callingThreadId, uint notifyFlags, byte *scriptCodeIp, uint32 value8, uint32 valueC, uint32 value10)
 
uint32 newTimerThread (uint32 duration, uint32 callingThreadId, bool isAbortable)
 
uint32 newTempThreadId ()
 
bool enterScene (uint32 sceneId, uint32 threadId)
 
void exitScene (uint32 threadId)
 
void enterPause (uint32 threadId)
 
void leavePause (uint32 threadId)
 
void dumpActiveScenes (uint32 sceneId, uint32 threadId)
 
void pause (uint32 callerThreadId)
 
void unpause (uint32 callerThreadId)
 
void enterMenuPause ()
 
void leaveMenuPause ()
 
void setSceneIdThreadId (uint32 theSceneId, uint32 theThreadId)
 
bool findTriggerCause (uint32 sceneId, uint32 verbId, uint32 objectId2, uint32 objectId, uint32 &codeOffs)
 
void reset ()
 
void loadSavegameFromScript (int16 slotNum, uint32 callingThreadId)
 
void saveSavegameFromScript (int16 slotNum, uint32 callingThreadId)
 
void activateSavegame (uint32 callingThreadId)
 
void resumeFromSavegame ()
 
- Public Member Functions inherited from Illusions::IllusionsEngine
 IllusionsEngine (OSystem *syst, const IllusionsGameDescription *gd)
 
const Common::String getTargetName ()
 
void updateEvents ()
 
int getGameId () const
 
Common::Language getGameLanguage () const
 
void runUpdateFunctions ()
 
int updateActors (uint flags)
 
int updateSequences (uint flags)
 
int updateGraphics (uint flags)
 
int updateSoundMan (uint flags)
 
int updateSprites (uint flags)
 
uint32 getElapsedUpdateTime ()
 
Common::Point * getObjectActorPositionPtr (uint32 objectId)
 
int getRandom (int max)
 
int convertPanXCoord (int16 x)
 
bool calcPointDirection (Common::Point &srcPt, Common::Point &dstPt, uint &facing)
 
bool isSoundActive ()
 
virtual void updateFader ()
 
virtual void clearFader ()
 
virtual void pauseFader ()
 
virtual void unpauseFader ()
 
virtual bool isVideoPlaying ()
 
void setCurrFontId (uint32 fontId)
 
bool checkActiveTalkThreads ()
 
void setTextDuration (int kind, uint32 duration)
 
uint32 clipTextDuration (uint32 duration)
 
void getDefaultTextDimensions (WidthHeight &dimensions)
 
void setDefaultTextDimensions (WidthHeight &dimensions)
 
void getDefaultTextPosition (Common::Point &position)
 
void setDefaultTextPosition (Common::Point &position)
 
uint16 getSubtitleDuration ()
 
void setSubtitleDuration (uint16 duration)
 
FramesList * findActorSequenceFrames (Sequence *sequence)
 
virtual void setDefaultTextCoords ()=0
 
virtual void loadSpecialCode (uint32 resId)=0
 
virtual void unloadSpecialCode (uint32 resId)=0
 
virtual void notifyThreadId (uint32 &threadId)=0
 
virtual bool testMainActorFastWalk (Control *control)=0
 
virtual bool testMainActorCollision (Control *control)=0
 
virtual Control * getObjectControl (uint32 objectId)=0
 
virtual Common::Point getNamedPointPosition (uint32 namedPointId)=0
 
virtual uint32 getPriorityFromBase (int16 priority)=0
 
virtual uint32 getPrevScene ()=0
 
virtual uint32 getCurrentScene ()=0
 
virtual bool isCursorObject (uint32 actorTypeId, uint32 objectId)=0
 
virtual void setCursorControlRoutine (Control *control)=0
 
virtual void placeCursorControl (Control *control, uint32 sequenceId)=0
 
virtual void setCursorControl (Control *control)=0
 
virtual void showCursor ()=0
 
virtual void hideCursor ()=0
 
virtual void startScriptThreadSimple (uint32 threadId, uint32 callingThreadId)=0
 
virtual uint32 startTempScriptThread (byte *scriptCodeIp, uint32 callingThreadId, uint32 value8, uint32 valueC, uint32 value10)=0
 
bool canLoadGameStateCurrently (Common::U32String *msg=nullptr) override
 
bool canSaveGameStateCurrently (Common::U32String *msg=nullptr) override
 
Common::Error loadGameState (int slot) override
 
Common::Error saveGameState (int slot, const Common::String &desc, bool isAutosave=false) override
 
Common::Error removeGameState (int slot)
 
bool savegame (const char *filename, const char *description)
 
bool loadgame (const char *filename)
 
bool existsSavegame (int num)
 
- Public Member Functions inherited from Engine
virtual void showHotspots (bool show)
 
MetaEngine * getMetaEngine () const
 
void setMetaEngine (MetaEngine *metaEngine)
 
PauseToken pauseEngine ()
 
bool isPaused () const
 
void openMainMenuDialog ()
 
uint32 getTotalPlayTime () const
 
void setTotalPlayTime (uint32 time=0)
 
Common::TimerManager * getTimerManager ()
 
Common::EventManager * getEventManager ()
 
Common::SaveFileManager * getSaveFileManager ()
 
bool existExtractedCDAudioFiles (uint track=1)
 
bool isDataAndCDAudioReadFromSameCD ()
 
void warnMissingExtractedCDAudio ()
 
void handleAutoSave ()
 
void saveAutosaveIfEnabled ()
 
virtual bool canSaveAutosaveCurrently ()
 
virtual int getAutosaveSlot () const
 
virtual bool gameTypeHasAddOns () const
 
virtual bool dirCanBeGameAddOn (const Common::FSDirectory &dir) const
 
virtual bool dirMustBeGameAddOn (const Common::FSDirectory &dir) const
 
Common::ErrorCode updateAddOns (const MetaEngine *metaEngine) const
 
 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::Debugger * getDebugger () final
 
void setDebugger (GUI::Debugger *debugger)
 
GUI::Debugger * getOrCreateDebugger ()
 
bool enhancementEnabled (int32 cls) const
 
virtual void syncSoundSettings ()
 
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 ()
 

Public Attributes

ScriptMan * _scriptMan
 
TriggerFunctions * _triggerFunctions
 
Cursor * _cursor
 
ActiveScenes _activeScenes
 
uint32 _prevSceneId
 
uint32 _theSceneId
 
uint32 _theThreadId
 
uint32 _globalSceneId
 
bool _loadGameResult
 
bool _saveGameResult
 
BBDOUMenuSystem * _menuSystem
 
BBDOUVideoPlayer * _videoPlayer
 
BBDOUMenuKeys * _menuKeys
 
bool _walkthroughStarted
 
bool _canResumeFromSavegame
 
- Public Attributes inherited from Illusions::IllusionsEngine
Common::RandomSource * _random
 
Dictionary * _dict
 
ResourceSystem * _resSys
 
BaseResourceReader * _resReader
 
UpdateFunctions * _updateFunctions
 
GameState * _gameState
 
Screen * _screen
 
ScreenPaletteBase * _screenPalette
 
ScreenText * _screenText
 
Input * _input
 
ActorInstanceList * _actorInstances
 
BackgroundInstanceList * _backgroundInstances
 
Camera * _camera
 
Controls * _controls
 
TalkInstanceList * _talkItems
 
ScriptOpcodes * _scriptOpcodes
 
SpecialCode * _specialCode
 
ThreadList * _threads
 
SoundMan * _soundMan
 
uint32 _nextTempThreadId
 
bool _doScriptThreadInit
 
ScriptStack * _stack
 
ScriptResource * _scriptResource
 
bool _rerunThreads
 
Fader * _fader
 
int _pauseCtr
 
int _resGetCtr
 
uint32 _resGetTime
 
bool _unpauseControlActorFlag
 
uint32 _lastUpdateTime
 
int _resumeFromSavegameRequested
 
int _savegameSlotNum
 
Common::String _savegameDescription
 
uint32 _savegameSceneId
 
uint32 _savegameThreadId
 
uint32 _fontId
 
int _field8
 
uint32 _fieldA
 
uint32 _subtitleDuration
 
WidthHeight _defaultTextDimensions
 
Common::Point _defaultTextPosition
 
int16 _menuChoiceOfs
 
bool _isSaveAllowed
 
- Public Attributes inherited from Engine
OSystem * _system
 
Audio::Mixer * _mixer
 

Protected Member Functions

Common::Error run () override
 
bool hasFeature (EngineFeature f) const override
 
- Protected Member Functions inherited from Engine
virtual int runDialog (GUI::Dialog &dialog)
 
void defaultSyncSoundSettings ()
 
virtual void pauseEngineIntern (bool pause)
 
virtual void getHotspotPositions (Common::Array< Graphics::HotspotInfo > &hotspots)
 
virtual void drawHotspots ()
 
virtual bool hotspotDirty () const
 

Additional Inherited Members

- Public Types inherited from Illusions::IllusionsEngine
enum  kReadSaveHeaderError { kRSHENoError = 0 , kRSHEInvalidType = 1 , kRSHEInvalidVersion = 2 , kRSHEIoError = 3 }
 
- Public Types inherited from Engine
enum  EngineFeature {
  kSupportsSubtitleOptions , kSupportsReturnToLauncher , kSupportsLoadingDuringRuntime , kSupportsSavingDuringRuntime ,
  kSupportsChangingOptionsDuringRuntime , kSupportsArbitraryResolutions , kSupportsHelp , kSupportsQuitDialogOverride
}
 
- Static Public Member Functions inherited from Illusions::IllusionsEngine
static Common::String getSavegameFilename (const Common::String &target, int num)
 
static kReadSaveHeaderError readSaveHeader (Common::SeekableReadStream *in, SaveHeader &header, bool skipThumbnail=true)
 
- Static Public Member Functions inherited from Engine
static void quitGame ()
 
static bool shouldQuit ()
 
static bool warnUserAboutUnsupportedGame (Common::String msg=Common::String())
 
static bool warnUserAboutUnsupportedAddOn (Common::String addOnName)
 
static void warnUserAboutTestingMode ()
 
static void errorAddingAddOnWithoutBaseGame (Common::String addOnName, Common::String gameId)
 
static void errorUnsupportedGame (Common::String extraMsg)
 
- Protected Attributes inherited from Engine
Common::TimerManager * _timer
 
Common::EventManager * _eventMan
 
Common::SaveFileManager * _saveFileMan
 
GUI::Dialog * _mainMenuDialog
 
const Common::String _targetName
 
int32 _activeEnhancements = kEnhGameBreakingBugFixes
 
bool _showHotspots
 
bool _hotspotForceRedraw
 
bool _hotspotPrevCursorVisible
 

Member Function Documentation

◆ run()

Common::Error Illusions::IllusionsEngine_BBDOU::run ( )
overrideprotectedvirtual

Initialize the engine and start its main loop.

Returns
kNoError on success, otherwise an error code.

Implements Engine.

◆ hasFeature()

bool Illusions::IllusionsEngine_BBDOU::hasFeature ( EngineFeature  f) const
overrideprotectedvirtual

Determine whether the engine supports the specified feature.

Reimplemented from Engine.

◆ isVideoPlaying()

bool Illusions::IllusionsEngine_BBDOU::isVideoPlaying ( )
overridevirtual

Reimplemented from Illusions::IllusionsEngine.

◆ setDefaultTextCoords()

void Illusions::IllusionsEngine_BBDOU::setDefaultTextCoords ( )
overridevirtual

◆ loadSpecialCode()

void Illusions::IllusionsEngine_BBDOU::loadSpecialCode ( uint32  resId)
overridevirtual

◆ unloadSpecialCode()

void Illusions::IllusionsEngine_BBDOU::unloadSpecialCode ( uint32  resId)
overridevirtual

◆ notifyThreadId()

void Illusions::IllusionsEngine_BBDOU::notifyThreadId ( uint32 &  threadId)
overridevirtual

◆ testMainActorFastWalk()

bool Illusions::IllusionsEngine_BBDOU::testMainActorFastWalk ( Control *  control)
overridevirtual

◆ testMainActorCollision()

bool Illusions::IllusionsEngine_BBDOU::testMainActorCollision ( Control *  control)
overridevirtual

◆ getObjectControl()

Control * Illusions::IllusionsEngine_BBDOU::getObjectControl ( uint32  objectId)
overridevirtual

◆ getNamedPointPosition()

Common::Point Illusions::IllusionsEngine_BBDOU::getNamedPointPosition ( uint32  namedPointId)
overridevirtual

◆ getPriorityFromBase()

uint32 Illusions::IllusionsEngine_BBDOU::getPriorityFromBase ( int16  priority)
overridevirtual

◆ getCurrentScene()

uint32 Illusions::IllusionsEngine_BBDOU::getCurrentScene ( )
overridevirtual

◆ getPrevScene()

uint32 Illusions::IllusionsEngine_BBDOU::getPrevScene ( )
overridevirtual

◆ isCursorObject()

bool Illusions::IllusionsEngine_BBDOU::isCursorObject ( uint32  actorTypeId,
uint32  objectId 
)
overridevirtual

◆ setCursorControlRoutine()

void Illusions::IllusionsEngine_BBDOU::setCursorControlRoutine ( Control *  control)
overridevirtual

◆ placeCursorControl()

void Illusions::IllusionsEngine_BBDOU::placeCursorControl ( Control *  control,
uint32  sequenceId 
)
overridevirtual

◆ setCursorControl()

void Illusions::IllusionsEngine_BBDOU::setCursorControl ( Control *  control)
overridevirtual

◆ showCursor()

void Illusions::IllusionsEngine_BBDOU::showCursor ( )
overridevirtual

◆ hideCursor()

void Illusions::IllusionsEngine_BBDOU::hideCursor ( )
overridevirtual

◆ startScriptThreadSimple()

void Illusions::IllusionsEngine_BBDOU::startScriptThreadSimple ( uint32  threadId,
uint32  callingThreadId 
)
overridevirtual

◆ startTempScriptThread()

uint32 Illusions::IllusionsEngine_BBDOU::startTempScriptThread ( byte *  scriptCodeIp,
uint32  callingThreadId,
uint32  value8,
uint32  valueC,
uint32  value10 
)
overridevirtual

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