aboutsummaryrefslogtreecommitdiff
path: root/engines/illusions/illusions.h
diff options
context:
space:
mode:
authorjohndoe1232014-04-08 19:43:17 +0200
committerEugene Sandulenko2018-07-20 06:43:33 +0000
commit67366aa04b723fadec300cc6ce1d5c6ee9241af7 (patch)
treebd4783f6b6ebb6c25d52a1349a60c2fd10034e0b /engines/illusions/illusions.h
parent3f15233f78a264e45ce74ecd2db9ed3119b1b654 (diff)
downloadscummvm-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.h27
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;