aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/parallaction.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/parallaction/parallaction.h')
-rw-r--r--engines/parallaction/parallaction.h28
1 files changed, 21 insertions, 7 deletions
diff --git a/engines/parallaction/parallaction.h b/engines/parallaction/parallaction.h
index 433587780e..f13ac3ab95 100644
--- a/engines/parallaction/parallaction.h
+++ b/engines/parallaction/parallaction.h
@@ -90,7 +90,8 @@ enum {
kPriority18 = 18,
kPriority19 = 19,
kPriority20 = 20,
- kPriority21 = 21
+ kPriority21 = 21,
+ kPriority99 = 99 // fictitious priority value used as a flag to handle quick label deletion
};
enum {
@@ -372,8 +373,8 @@ enum Jobs {
kJobHideInventory,
// BRA specific
- kJobClearSubtitle = 10,
- kJobDrawSubtitle,
+ kJobEraseSubtitle = 10,
+ kJobDisplaySubtitle,
kJobWaitRemoveSubtitleJob,
kJobPauseSfx,
kJobStopFollower,
@@ -475,6 +476,9 @@ public:
Table *_localFlagNames;
+ void showLabel(Label &label);
+ void hideLabel(uint priority);
+
public:
int getGameType() const;
uint32 getFeatures() const;
@@ -745,6 +749,9 @@ protected:
CommandList *list;
bool endcommands;
Command *cmd;
+
+ // BRA specific
+ int numZones;
} _locParseCtxt;
DECLARE_UNQUALIFIED_LOCATION_PARSER(invalid);
@@ -914,6 +921,10 @@ public:
int _zeta2;
int16 _lipSyncVal;
+ uint _subtitleLipSync;
+
+ Label _subtitle0;
+ Label _subtitle1;
Zone *_activeZone2;
@@ -921,10 +932,6 @@ public:
uint32 _zoneFlags[NUM_LOCATIONS][NUM_ZONES];
- struct LocationParserContext_br : public LocationParserContext {
- int numZones;
- } _locParseCtxt;
-
private:
void initResources();
void initFonts();
@@ -1082,6 +1089,13 @@ private:
DECLARE_UNQUALIFIED_INSTRUCTION_OPCODE(stop);
DECLARE_UNQUALIFIED_INSTRUCTION_OPCODE(endscript);
+ Job *_jDisplaySubtitle;
+ Job *_jEraseSubtitle;
+
+ void jobDisplaySubtitle(void *parm, Job *job);
+ void jobEraseSubtitle(void *parm, Job *job);
+ void setupSubtitles(char *s, char *s2, int y);
+
};
// FIXME: remove global