diff options
Diffstat (limited to 'engines/parallaction/parallaction.h')
-rw-r--r-- | engines/parallaction/parallaction.h | 28 |
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 |