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

Public Member Functions

 IllusionsEngine_Duckman (OSystem *syst, const IllusionsGameDescription *gd)
 
void initInput ()
 
void initUpdateFunctions ()
 
int updateScript (uint flags)
 
void startScreenShaker (uint pointsCount, uint32 duration, const ScreenShakerPoint *points, uint32 threadId)
 
void stopScreenShaker ()
 
int updateScreenShaker (uint flags)
 
void startFader (int duration, int minValue, int maxValue, int firstIndex, int lastIndex, uint32 threadId)
 
void updateFader () override
 
void clearFader () override
 
void pauseFader () override
 
void unpauseFader () override
 
int updateVideoPlayer (uint flags)
 
void playVideo (uint32 videoId, 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 initCursor ()
 
void setCursorActorIndex (int actorIndex, int a, int b)
 
void enableCursorVerb (int verbNum)
 
void disableCursorVerb (int verbNum)
 
void setCursorHandMode (int mode)
 
void setCursorInventoryMode (int mode, int value)
 
void startCursorHoldingObject (uint32 objectId, uint32 sequenceId)
 
void stopCursorHoldingObject ()
 
void cursorControlRoutine (Control *control, uint32 deltaTime)
 
void startScriptThreadSimple (uint32 threadId, uint32 callingThreadId) override
 
void startScriptThread (uint32 threadId, uint32 callingThreadId)
 
void startScriptThread2 (uint32 threadId, uint32 callingThreadId, uint32 unk)
 
uint32 startAbortableTimerThread (uint32 duration, uint32 threadId)
 
uint32 startTimerThread (uint32 duration, uint32 threadId)
 
uint32 startAbortableThread (byte *scriptCodeIp1, byte *scriptCodeIp2, uint32 callingThreadId)
 
uint32 startTalkThread (uint32 objectId, uint32 talkId, uint32 sequenceId1, uint32 sequenceId2, uint32 callingThreadId)
 
uint32 startTempScriptThread (byte *scriptCodeIp, uint32 callingThreadId, uint32 value8, uint32 valueC, uint32 value10) override
 
void resumeFromSavegame (uint32 callingThreadId)
 
void newScriptThread (uint32 threadId, uint32 callingThreadId, uint notifyFlags, byte *scriptCodeIp)
 
uint32 newTimerThread (uint32 duration, uint32 callingThreadId, bool isAbortable)
 
uint32 newTempThreadId ()
 
void initActiveScenes ()
 
void pushActiveScene (uint32 sceneId)
 
void popActiveScene ()
 
bool loadScene (uint32 sceneId)
 
bool enterScene (uint32 sceneId, uint32 threadId)
 
void exitScene ()
 
bool changeScene (uint32 sceneId, uint32 threadId, uint32 callerThreadId)
 
void enterPause (uint32 sceneId, uint32 threadId)
 
void leavePause (uint32 sceneId, uint32 threadId)
 
void dumpActiveScenes (uint32 sceneId, uint32 threadId)
 
void dumpCurrSceneFiles (uint32 sceneId, uint32 threadId)
 
void pause (uint32 callerThreadId)
 
void unpause (uint32 callerThreadId)
 
void setSceneIdThreadId (uint32 theSceneId, uint32 theThreadId)
 
bool findTriggerCause (uint32 sceneId, uint32 verbId, uint32 objectId2, uint32 objectId, uint32 &codeOffs)
 
void reset ()
 
uint32 getObjectActorTypeId (uint32 objectId)
 
Common::Point convertMousePos (Common::Point mousePos)
 
void startCursorSequence ()
 
int getCursorActorIndex ()
 
void updateGameState2 ()
 
void playSoundEffect (int index)
 
bool getTriggerCause (uint32 verbId, uint32 objectId2, uint32 objectId, uint32 &outThreadId)
 
uint32 runTriggerCause (uint32 verbId, uint32 objectId2, uint32 objectId)
 
void playTriggerCauseSound (uint32 verbId, uint32 objectId2, uint32 objectId)
 
bool loadSavegameFromScript (int16 slotNum, uint32 callingThreadId)
 
bool saveSavegameFromScript (int16 slotNum, uint32 callingThreadId)
 
void activateSavegame (uint32 callingThreadId)
 
- 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

uint32 _prevSceneId
 
uint32 _theSceneId
 
uint32 _theThreadId
 
uint32 _globalSceneId
 
uint _activeScenesCount
 
uint32 _activeScenes [6]
 
Cursor_Duckman _cursor
 
Control * _currWalkOverlappedControl
 
DuckmanDialogSystem * _dialogSys
 
int _savedInventoryActorIndex
 
ScreenShaker * _screenShaker
 
DuckmanMenuSystem * _menuSystem
 
DuckmanVideoPlayer * _videoPlayer
 
- 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_Duckman::run ( )
overrideprotectedvirtual

Initialize the engine and start its main loop.

Returns
kNoError on success, otherwise an error code.

Implements Engine.

◆ hasFeature()

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

Determine whether the engine supports the specified feature.

Reimplemented from Engine.

◆ updateFader()

void Illusions::IllusionsEngine_Duckman::updateFader ( )
overridevirtual

Reimplemented from Illusions::IllusionsEngine.

◆ clearFader()

void Illusions::IllusionsEngine_Duckman::clearFader ( )
overridevirtual

Reimplemented from Illusions::IllusionsEngine.

◆ pauseFader()

void Illusions::IllusionsEngine_Duckman::pauseFader ( )
overridevirtual

Reimplemented from Illusions::IllusionsEngine.

◆ unpauseFader()

void Illusions::IllusionsEngine_Duckman::unpauseFader ( )
overridevirtual

Reimplemented from Illusions::IllusionsEngine.

◆ isVideoPlaying()

bool Illusions::IllusionsEngine_Duckman::isVideoPlaying ( )
overridevirtual

Reimplemented from Illusions::IllusionsEngine.

◆ setDefaultTextCoords()

void Illusions::IllusionsEngine_Duckman::setDefaultTextCoords ( )
overridevirtual

◆ loadSpecialCode()

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

◆ unloadSpecialCode()

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

◆ notifyThreadId()

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

◆ testMainActorFastWalk()

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

◆ testMainActorCollision()

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

◆ getObjectControl()

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

◆ getNamedPointPosition()

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

◆ getPriorityFromBase()

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

◆ getCurrentScene()

uint32 Illusions::IllusionsEngine_Duckman::getCurrentScene ( )
overridevirtual

◆ getPrevScene()

uint32 Illusions::IllusionsEngine_Duckman::getPrevScene ( )
overridevirtual

◆ isCursorObject()

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

◆ setCursorControlRoutine()

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

◆ placeCursorControl()

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

◆ setCursorControl()

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

◆ showCursor()

void Illusions::IllusionsEngine_Duckman::showCursor ( )
overridevirtual

◆ hideCursor()

void Illusions::IllusionsEngine_Duckman::hideCursor ( )
overridevirtual

◆ startScriptThreadSimple()

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

◆ startTempScriptThread()

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

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