From b819ae3e788061722913773cc69fd7d6916e6e4c Mon Sep 17 00:00:00 2001 From: Nicola Mettifogo Date: Sun, 2 Sep 2007 19:00:22 +0000 Subject: More support for subtitles in BRA. svn-id: r28829 --- engines/parallaction/exec_br.cpp | 29 +++++++++++++++++++++++++++++ engines/parallaction/parallaction.h | 9 +++++++-- engines/parallaction/parallaction_br.cpp | 14 ++++++-------- engines/parallaction/parser_br.cpp | 2 +- 4 files changed, 43 insertions(+), 11 deletions(-) (limited to 'engines/parallaction') diff --git a/engines/parallaction/exec_br.cpp b/engines/parallaction/exec_br.cpp index a5dada219c..c79608131b 100644 --- a/engines/parallaction/exec_br.cpp +++ b/engines/parallaction/exec_br.cpp @@ -45,6 +45,7 @@ typedef OpcodeImpl OpcodeV2; #define DECLARE_INSTRUCTION_OPCODE(op) void Parallaction_br::instOp_##op() void Parallaction_br::setupSubtitles(char *s, char *s2, int y) { + debugC(5, kDebugLocation, "setupSubtitles(%s, %s, %i)", s, s2, y); if (!scumm_stricmp("clear", s)) { @@ -549,4 +550,32 @@ void Parallaction_br::initOpcodes() { } +void Parallaction_br::jobWaitRemoveLabelJob(void *parm, Job *job) { + +} + + +void Parallaction_br::jobWaitRemoveSubtitleJob(void *parm, Job *job) { + +} + + +void Parallaction_br::jobPauseSfx(void *parm, Job *job) { + +} + + +void Parallaction_br::jobStopFollower(void *parm, Job *job) { + +} + + +void Parallaction_br::jobScroll(void *parm, Job *job) { + +} + + + + + } // namespace Parallaction diff --git a/engines/parallaction/parallaction.h b/engines/parallaction/parallaction.h index f13ac3ab95..4d4f685eca 100644 --- a/engines/parallaction/parallaction.h +++ b/engines/parallaction/parallaction.h @@ -940,7 +940,7 @@ private: void initParsers(); void initJobs(); - typedef void (*JobFn)(void*, Job*); + typedef void (Parallaction_br::*JobFn)(void*, Job*); const JobFn *_jobsFn; JobOpcode* createJobOpcode(uint functionId, Job *job); @@ -1091,10 +1091,15 @@ private: Job *_jDisplaySubtitle; Job *_jEraseSubtitle; + void setupSubtitles(char *s, char *s2, int y); + void jobWaitRemoveLabelJob(void *parm, Job *job); void jobDisplaySubtitle(void *parm, Job *job); void jobEraseSubtitle(void *parm, Job *job); - void setupSubtitles(char *s, char *s2, int y); + void jobWaitRemoveSubtitleJob(void *parm, Job *job); + void jobPauseSfx(void *parm, Job *job); + void jobStopFollower(void *parm, Job *job); + void jobScroll(void *parm, Job *job); }; diff --git a/engines/parallaction/parallaction_br.cpp b/engines/parallaction/parallaction_br.cpp index c2b84337db..f2b9626ead 100644 --- a/engines/parallaction/parallaction_br.cpp +++ b/engines/parallaction/parallaction_br.cpp @@ -81,6 +81,7 @@ int Parallaction_br::init() { _activeZone2 = 0; + initJobs(); initResources(); initFonts(); initCursors(); @@ -358,7 +359,7 @@ void Parallaction_br::changeCharacter(const char *name) { } void Parallaction_br::initJobs() { -/* + static const JobFn jobs[] = { &Parallaction_br::jobDisplayAnimations, &Parallaction_br::jobEraseAnimations, @@ -366,12 +367,12 @@ void Parallaction_br::initJobs() { &Parallaction_br::jobRemovePickedItem, &Parallaction_br::jobRunScripts, &Parallaction_br::jobWalk, - &Parallaction_br::jobDrawLabel, + &Parallaction_br::jobDisplayLabel, &Parallaction_br::jobEraseLabel, &Parallaction_br::jobWaitRemoveLabelJob, &Parallaction_br::jobToggleDoor, - &Parallaction_br::jobClearSubtitle, - &Parallaction_br::jobDrawSubtitle, + &Parallaction_br::jobEraseSubtitle, + &Parallaction_br::jobDisplaySubtitle, &Parallaction_br::jobWaitRemoveSubtitleJob, &Parallaction_br::jobPauseSfx, &Parallaction_br::jobStopFollower, @@ -379,13 +380,10 @@ void Parallaction_br::initJobs() { }; _jobsFn = jobs; -*/ - } JobOpcode* Parallaction_br::createJobOpcode(uint functionId, Job *job) { - //return new OpcodeImpl2(this, _jobsFn[functionId], job); - return 0; + return new OpcodeImpl2(this, _jobsFn[functionId], job); } } // namespace Parallaction diff --git a/engines/parallaction/parser_br.cpp b/engines/parallaction/parser_br.cpp index 2390e80dd2..dac6a13a66 100644 --- a/engines/parallaction/parser_br.cpp +++ b/engines/parallaction/parser_br.cpp @@ -740,7 +740,7 @@ void Parallaction_br::initParsers() { COMMAND_PARSER(zone), // leave COMMAND_PARSER(math), // inc COMMAND_PARSER(math), // dec - COMMAND_PARSER(math), // test + COMMAND_PARSER(test), // test COMMAND_PARSER(invalid), COMMAND_PARSER(invalid), COMMAND_PARSER(math), // let -- cgit v1.2.3