22 #ifndef ILLUSIONS_ILLUSIONS_DUCKMAN_H 23 #define ILLUSIONS_ILLUSIONS_DUCKMAN_H 25 #include "illusions/illusions.h" 26 #include "common/algorithm.h" 27 #include "common/stack.h" 33 class DuckmanDialogSystem;
34 class DuckmanMenuSystem;
35 class DuckmanVideoPlayer;
45 Control *_currOverlappedControl;
48 uint32 _notifyThreadId30;
49 int16 *_op113_choiceOfsPtr;
50 int _dialogItemsCount;
51 uint32 _overlappedObjectId;
72 uint32 _notifyThreadId;
89 uint32 _globalSceneId;
91 uint _activeScenesCount;
92 uint32 _activeScenes[6];
95 Control *_currWalkOverlappedControl;
99 int _savedInventoryActorIndex;
107 void initUpdateFunctions();
108 int updateScript(uint flags);
110 void startScreenShaker(uint pointsCount, uint32 duration,
const ScreenShakerPoint *points, uint32 threadId);
111 void stopScreenShaker();
112 int updateScreenShaker(uint flags);
114 void startFader(
int duration,
int minValue,
int maxValue,
int firstIndex,
int lastIndex, uint32 threadId);
115 void updateFader()
override;
116 void clearFader()
override;
117 void pauseFader()
override;
118 void unpauseFader()
override;
120 int updateVideoPlayer(uint flags);
121 void playVideo(uint32 videoId, uint32 callingThreadId);
122 bool isVideoPlaying()
override;
124 void setDefaultTextCoords()
override;
126 void loadSpecialCode(uint32 resId)
override;
127 void unloadSpecialCode(uint32 resId)
override;
128 void notifyThreadId(uint32 &threadId)
override;
129 bool testMainActorFastWalk(
Control *control)
override;
130 bool testMainActorCollision(
Control *control)
override;
131 Control *getObjectControl(uint32 objectId)
override;
132 Common::Point getNamedPointPosition(uint32 namedPointId)
override;
133 uint32 getPriorityFromBase(int16 priority)
override;
134 uint32 getCurrentScene()
override;
135 uint32 getPrevScene()
override;
137 bool isCursorObject(uint32 actorTypeId, uint32 objectId)
override;
138 void setCursorControlRoutine(
Control *control)
override;
139 void placeCursorControl(
Control *control, uint32 sequenceId)
override;
140 void setCursorControl(
Control *control)
override;
141 void showCursor()
override;
142 void hideCursor()
override;
144 void setCursorActorIndex(
int actorIndex,
int a,
int b);
145 void enableCursorVerb(
int verbNum);
146 void disableCursorVerb(
int verbNum);
147 void setCursorHandMode(
int mode);
148 void setCursorInventoryMode(
int mode,
int value);
149 void startCursorHoldingObject(uint32 objectId, uint32 sequenceId);
150 void stopCursorHoldingObject();
151 void cursorControlRoutine(
Control *control, uint32 deltaTime);
153 void startScriptThreadSimple(uint32 threadId, uint32 callingThreadId)
override;
154 void startScriptThread(uint32 threadId, uint32 callingThreadId);
155 void startScriptThread2(uint32 threadId, uint32 callingThreadId, uint32 unk);
156 uint32 startAbortableTimerThread(uint32 duration, uint32 threadId);
157 uint32 startTimerThread(uint32 duration, uint32 threadId);
158 uint32 startAbortableThread(byte *scriptCodeIp1, byte *scriptCodeIp2, uint32 callingThreadId);
159 uint32 startTalkThread(uint32 objectId, uint32 talkId, uint32 sequenceId1,
160 uint32 sequenceId2, uint32 callingThreadId);
161 uint32 startTempScriptThread(byte *scriptCodeIp, uint32 callingThreadId,
162 uint32 value8, uint32 valueC, uint32 value10)
override;
163 void resumeFromSavegame(uint32 callingThreadId);
165 void newScriptThread(uint32 threadId, uint32 callingThreadId, uint notifyFlags,
167 uint32 newTimerThread(uint32 duration, uint32 callingThreadId,
bool isAbortable);
168 uint32 newTempThreadId();
170 void initActiveScenes();
171 void pushActiveScene(uint32 sceneId);
172 void popActiveScene();
173 bool loadScene(uint32 sceneId);
174 bool enterScene(uint32 sceneId, uint32 threadId);
176 bool changeScene(uint32 sceneId, uint32 threadId, uint32 callerThreadId);
177 void enterPause(uint32 sceneId, uint32 threadId);
178 void leavePause(uint32 sceneId, uint32 threadId);
179 void dumpActiveScenes(uint32 sceneId, uint32 threadId);
180 void dumpCurrSceneFiles(uint32 sceneId, uint32 threadId);
182 void pause(uint32 callerThreadId);
183 void unpause(uint32 callerThreadId);
185 void setSceneIdThreadId(uint32 theSceneId, uint32 theThreadId);
186 bool findTriggerCause(uint32 sceneId, uint32 verbId, uint32 objectId2, uint32 objectId, uint32 &codeOffs);
189 uint32 getObjectActorTypeId(uint32 objectId);
192 void startCursorSequence();
193 int getCursorActorIndex();
194 void updateGameState2();
195 void playSoundEffect(
int index);
196 bool getTriggerCause(uint32 verbId, uint32 objectId2, uint32 objectId, uint32 &outThreadId);
197 uint32 runTriggerCause(uint32 verbId, uint32 objectId2, uint32 objectId);
198 void playTriggerCauseSound(uint32 verbId, uint32 objectId2, uint32 objectId);
200 bool loadSavegameFromScript(int16 slotNum, uint32 callingThreadId);
201 bool saveSavegameFromScript(int16 slotNum, uint32 callingThreadId);
202 void activateSavegame(uint32 callingThreadId);
208 #endif // ILLUSIONS_ILLUSIONS_H Definition: illusions_duckman.h:60
EngineFeature
Definition: engine.h:250
Definition: detection.h:34
Definition: duckman_dialog.h:36
Definition: illusions_duckman.h:37
Definition: duckman_videoplayer.h:32
Definition: illusions_duckman.h:66
Definition: illusions_duckman.h:78
Definition: scriptopcodes.h:32
Definition: illusions_duckman.h:56
Definition: illusions.h:92