diff options
author | johndoe123 | 2014-04-08 19:43:17 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2018-07-20 06:43:33 +0000 |
commit | 67366aa04b723fadec300cc6ce1d5c6ee9241af7 (patch) | |
tree | bd4783f6b6ebb6c25d52a1349a60c2fd10034e0b /engines/illusions/illusions.h | |
parent | 3f15233f78a264e45ce74ecd2db9ed3119b1b654 (diff) | |
download | scummvm-rg350-67366aa04b723fadec300cc6ce1d5c6ee9241af7.tar.gz scummvm-rg350-67366aa04b723fadec300cc6ce1d5c6ee9241af7.tar.bz2 scummvm-rg350-67366aa04b723fadec300cc6ce1d5c6ee9241af7.zip |
ILLUSIONS: More work on Duckman
Diffstat (limited to 'engines/illusions/illusions.h')
-rw-r--r-- | engines/illusions/illusions.h | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/engines/illusions/illusions.h b/engines/illusions/illusions.h index a9b8555c50..ff7d2194af 100644 --- a/engines/illusions/illusions.h +++ b/engines/illusions/illusions.h @@ -35,6 +35,7 @@ #include "common/system.h" #include "common/winexe.h" #include "common/winexe_pe.h" +#include "engines/advancedDetector.h" #include "engines/engine.h" #include "graphics/surface.h" @@ -74,15 +75,21 @@ enum { kGameIdDuckman = 2 }; +struct IllusionsGameDescription { + ADGameDescription desc; + int gameId; +}; + class IllusionsEngine : public Engine { public: - IllusionsEngine(OSystem *syst, const ADGameDescription *gd); + IllusionsEngine(OSystem *syst, const IllusionsGameDescription *gd); ~IllusionsEngine(); const Common::String getTargetName() { return _targetName; } private: - const ADGameDescription *_gameDescription; + const IllusionsGameDescription *_gameDescription; Graphics::PixelFormat _pixelFormat; -public: +public: + Common::RandomSource *_random; Dictionary *_dict; ResourceSystem *_resSys; @@ -99,7 +106,6 @@ public: ScriptOpcodes *_scriptOpcodes; SpecialCode *_specialCode; ThreadList *_threads; - Cursor *_cursor; ScriptResource *_scriptResource; @@ -114,6 +120,10 @@ public: int16 _menuChoiceOfs; + int getGameId() const { + return _gameDescription->gameId; + } + Common::Point *getObjectActorPositionPtr(uint32 objectId); uint32 getElapsedUpdateTime(); int updateActors(); @@ -133,7 +143,7 @@ public: void setCurrFontId(uint32 fontId); bool checkActiveTalkThreads(); uint32 clipTextDuration(uint32 duration); - + virtual void loadSpecialCode(uint32 resId) = 0; virtual void unloadSpecialCode(uint32 resId) = 0; virtual void notifyThreadId(uint32 &threadId) = 0; @@ -143,6 +153,13 @@ public: 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; |