Moved more SMUSH/Insane code from ScummEngine_v6 to ScummEngine_v7
svn-id: r24710
This commit is contained in:
parent
1a2853f7e0
commit
12fb12caf5
2 changed files with 217 additions and 204 deletions
|
@ -584,30 +584,10 @@ protected:
|
||||||
} _akosQueue[32];
|
} _akosQueue[32];
|
||||||
int16 _akosQueuePos;
|
int16 _akosQueuePos;
|
||||||
|
|
||||||
|
|
||||||
int _smushFrameRate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Flag which signals that the SMUSH video playback should end now
|
|
||||||
* (e.g. because it was aborted by the user or it's simply finished).
|
|
||||||
*/
|
|
||||||
bool _smushVideoShouldFinish;
|
|
||||||
|
|
||||||
bool _smushActive;
|
|
||||||
|
|
||||||
Insane *_insane;
|
|
||||||
|
|
||||||
byte _curActor;
|
byte _curActor;
|
||||||
int _curVerb;
|
int _curVerb;
|
||||||
int _curVerbSlot;
|
int _curVerbSlot;
|
||||||
|
|
||||||
public:
|
|
||||||
/** This flag tells IMuseDigital that INSANE is running. */
|
|
||||||
bool _insaneRunning; // Used by IMuseDigital::flushTracks()
|
|
||||||
|
|
||||||
SmushMixer *_smixer;
|
|
||||||
SmushPlayer *_splayer;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ScummEngine_v6(OSystem *syst, const DetectorResult &dr);
|
ScummEngine_v6(OSystem *syst, const DetectorResult &dr);
|
||||||
|
|
||||||
|
@ -817,7 +797,7 @@ protected:
|
||||||
void o6_distObjectObject();
|
void o6_distObjectObject();
|
||||||
void o6_distObjectPt();
|
void o6_distObjectPt();
|
||||||
void o6_distPtPt();
|
void o6_distPtPt();
|
||||||
void o6_kernelSetFunctions();
|
virtual void o6_kernelSetFunctions();
|
||||||
void o6_delayFrames();
|
void o6_delayFrames();
|
||||||
void o6_pickOneOf();
|
void o6_pickOneOf();
|
||||||
void o6_pickOneOfDefault();
|
void o6_pickOneOfDefault();
|
||||||
|
@ -858,11 +838,34 @@ public:
|
||||||
ScummEngine_v7(OSystem *syst, const DetectorResult &dr);
|
ScummEngine_v7(OSystem *syst, const DetectorResult &dr);
|
||||||
~ScummEngine_v7();
|
~ScummEngine_v7();
|
||||||
|
|
||||||
|
|
||||||
|
protected:
|
||||||
|
int _smushFrameRate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Flag which signals that the SMUSH video playback should end now
|
||||||
|
* (e.g. because it was aborted by the user or it's simply finished).
|
||||||
|
*/
|
||||||
|
bool _smushVideoShouldFinish;
|
||||||
|
|
||||||
|
bool _smushActive;
|
||||||
|
|
||||||
|
Insane *_insane;
|
||||||
|
|
||||||
|
public:
|
||||||
|
/** This flag tells IMuseDigital that INSANE is running. */
|
||||||
|
bool _insaneRunning; // Used by IMuseDigital::flushTracks()
|
||||||
|
|
||||||
|
SmushMixer *_smixer;
|
||||||
|
SmushPlayer *_splayer;
|
||||||
|
|
||||||
|
|
||||||
struct LangIndexNode {
|
struct LangIndexNode {
|
||||||
char tag[12+1];
|
char tag[12+1];
|
||||||
int32 offset;
|
int32 offset;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
protected:
|
||||||
int _verbCharset, _verbLineSpacing;
|
int _verbCharset, _verbLineSpacing;
|
||||||
bool _existLanguageFile;
|
bool _existLanguageFile;
|
||||||
char *_languageBuffer;
|
char *_languageBuffer;
|
||||||
|
@ -887,6 +890,7 @@ public:
|
||||||
int _subtitleQueuePos;
|
int _subtitleQueuePos;
|
||||||
SubtitleText _subtitleQueue[20];
|
SubtitleText _subtitleQueue[20];
|
||||||
|
|
||||||
|
public:
|
||||||
void processSubtitleQueue();
|
void processSubtitleQueue();
|
||||||
void addSubtitleToQueue(const byte *text, const Common::Point &pos, byte color, byte charset);
|
void addSubtitleToQueue(const byte *text, const Common::Point &pos, byte color, byte charset);
|
||||||
void clearSubtitleQueue();
|
void clearSubtitleQueue();
|
||||||
|
@ -924,6 +928,9 @@ protected:
|
||||||
void playSpeech(const byte *ptr);
|
void playSpeech(const byte *ptr);
|
||||||
|
|
||||||
virtual void drawVerb(int verb, int mode);
|
virtual void drawVerb(int verb, int mode);
|
||||||
|
|
||||||
|
|
||||||
|
virtual void o6_kernelSetFunctions();
|
||||||
};
|
};
|
||||||
|
|
||||||
class ScummEngine_v8 : public ScummEngine_v7 {
|
class ScummEngine_v8 : public ScummEngine_v7 {
|
||||||
|
|
|
@ -2506,19 +2506,18 @@ void ScummEngine_v6::o6_setBlastObjectWindow() {
|
||||||
// So, we just handle this as no-op opcode.
|
// So, we just handle this as no-op opcode.
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine_v6::o6_kernelSetFunctions() {
|
#ifndef DISABLE_SCUMM_7_8
|
||||||
|
void ScummEngine_v7::o6_kernelSetFunctions() {
|
||||||
int args[30];
|
int args[30];
|
||||||
int num;
|
int num;
|
||||||
Actor *a;
|
Actor *a;
|
||||||
|
|
||||||
num = getStackList(args, ARRAYSIZE(args));
|
num = getStackList(args, ARRAYSIZE(args));
|
||||||
|
|
||||||
if (_game.version >= 7) {
|
|
||||||
switch (args[0]) {
|
switch (args[0]) {
|
||||||
case 4:
|
case 4:
|
||||||
grabCursor(args[1], args[2], args[3], args[4]);
|
grabCursor(args[1], args[2], args[3], args[4]);
|
||||||
break;
|
break;
|
||||||
#ifndef DISABLE_SCUMM_7_8
|
|
||||||
case 6: {
|
case 6: {
|
||||||
if (_smushFrameRate == 0)
|
if (_smushFrameRate == 0)
|
||||||
_smushFrameRate = 14;
|
_smushFrameRate = 14;
|
||||||
|
@ -2550,7 +2549,6 @@ void ScummEngine_v6::o6_kernelSetFunctions() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
case 12:
|
case 12:
|
||||||
setCursorFromImg(args[1], (uint) - 1, args[2]);
|
setCursorFromImg(args[1], (uint) - 1, args[2]);
|
||||||
break;
|
break;
|
||||||
|
@ -2602,7 +2600,16 @@ void ScummEngine_v6::o6_kernelSetFunctions() {
|
||||||
error("o6_kernelSetFunctions: default case %d (param count %d)", args[0], num);
|
error("o6_kernelSetFunctions: default case %d (param count %d)", args[0], num);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void ScummEngine_v6::o6_kernelSetFunctions() {
|
||||||
|
int args[30];
|
||||||
|
int num;
|
||||||
|
Actor *a;
|
||||||
|
|
||||||
|
num = getStackList(args, ARRAYSIZE(args));
|
||||||
|
|
||||||
switch (args[0]) {
|
switch (args[0]) {
|
||||||
case 3:
|
case 3:
|
||||||
// Dummy case
|
// Dummy case
|
||||||
|
@ -2697,7 +2704,6 @@ void ScummEngine_v6::o6_kernelSetFunctions() {
|
||||||
error("o6_kernelSetFunctions: default case %d (param count %d)", args[0], num);
|
error("o6_kernelSetFunctions: default case %d (param count %d)", args[0], num);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine_v6::o6_kernelGetFunctions() {
|
void ScummEngine_v6::o6_kernelGetFunctions() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue