aboutsummaryrefslogtreecommitdiff
path: root/engines/agi/agi.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/agi/agi.h')
-rw-r--r--engines/agi/agi.h29
1 files changed, 26 insertions, 3 deletions
diff --git a/engines/agi/agi.h b/engines/agi/agi.h
index 93017af099..bcd47c9f08 100644
--- a/engines/agi/agi.h
+++ b/engines/agi/agi.h
@@ -704,6 +704,21 @@ public:
}
};
+enum AgiArtificialDelayTriggerType {
+ ARTIFICIALDELAYTYPE_NEWROOM = 0,
+ ARTIFICIALDELAYTYPE_NEWPICTURE = 1,
+ ARTIFICIALDELAYTYPE_END = -1
+};
+
+struct AgiArtificialDelayEntry {
+ uint32 gameId;
+ Common::Platform platform;
+ AgiArtificialDelayTriggerType triggerType;
+ int16 orgNr;
+ int16 newNr;
+ uint16 millisecondsDelay;
+};
+
typedef void (*AgiCommand)(AgiGame *state, AgiEngine *vm, uint8 *p);
class AgiEngine : public AgiBase {
@@ -924,10 +939,18 @@ public:
void nonBlockingText_IsShown();
void nonBlockingText_Forget();
- void nonBlockingText_CycleDone();
- void loadingTrigger_NewRoom(int16 newRoomNr);
- void loadingTrigger_DrawPicture();
+ void artificialDelay_Reset();
+ void artificialDelay_CycleDone();
+
+ uint16 artificialDelay_SearchTable(AgiArtificialDelayTriggerType triggerType, int16 orgNr, int16 newNr);
+
+ void artificialDelayTrigger_NewRoom(int16 newRoomNr);
+ void artificialDelayTrigger_DrawPicture(int16 newPictureNr);
+
+private:
+ int16 _artificialDelayCurrentRoom;
+ int16 _artificialDelayCurrentPicture;
public:
void redrawScreen();