aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction
diff options
context:
space:
mode:
authorNicola Mettifogo2007-09-02 19:00:22 +0000
committerNicola Mettifogo2007-09-02 19:00:22 +0000
commitb819ae3e788061722913773cc69fd7d6916e6e4c (patch)
tree6218fb1236fc2e0f88d1318d7476577290c98152 /engines/parallaction
parent21e4f4f1760e204de6e8d0a413f8e8f8987dd083 (diff)
downloadscummvm-rg350-b819ae3e788061722913773cc69fd7d6916e6e4c.tar.gz
scummvm-rg350-b819ae3e788061722913773cc69fd7d6916e6e4c.tar.bz2
scummvm-rg350-b819ae3e788061722913773cc69fd7d6916e6e4c.zip
More support for subtitles in BRA.
svn-id: r28829
Diffstat (limited to 'engines/parallaction')
-rw-r--r--engines/parallaction/exec_br.cpp29
-rw-r--r--engines/parallaction/parallaction.h9
-rw-r--r--engines/parallaction/parallaction_br.cpp14
-rw-r--r--engines/parallaction/parser_br.cpp2
4 files changed, 43 insertions, 11 deletions
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<Parallaction_br> 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<Parallaction_br>(this, _jobsFn[functionId], job);
- return 0;
+ return new OpcodeImpl2<Parallaction_br>(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