mirror of
https://github.com/libretro/scummvm.git
synced 2025-03-05 17:57:14 +00:00
ACCESS: Implement some more opcodes
This commit is contained in:
parent
33f432d989
commit
f495d39099
@ -32,8 +32,6 @@ namespace Access {
|
||||
class Animation;
|
||||
|
||||
class AnimationManager : public Manager {
|
||||
private:
|
||||
Animation *findAnimation(int animId);
|
||||
public:
|
||||
const byte *_anim;
|
||||
Animation *_animation;
|
||||
@ -44,6 +42,7 @@ public:
|
||||
void freeAnimationData();
|
||||
void clearTimers();
|
||||
|
||||
Animation *findAnimation(int animId);
|
||||
Animation *setAnimation(int animId);
|
||||
|
||||
void setAnimTimer(Animation *anim);
|
||||
|
@ -89,14 +89,14 @@ void Scripts::executeCommand(int commandIndex) {
|
||||
&Scripts::cmdSetFlag, &Scripts::cmdCheckFlag, &Scripts::cmdGoto,
|
||||
&Scripts::cmdSetInventory, &Scripts::cmdSetInventory, &Scripts::cmdCheckInventory,
|
||||
&Scripts::CMDSETTEX, &Scripts::CMDNEWROOM, &Scripts::CMDCONVERSE,
|
||||
&Scripts::CMDCHECKFRAME, &Scripts::CMDCHECKANIM, &Scripts::CMDSND,
|
||||
&Scripts::CMDCHECKFRAME, &Scripts::cmdCheckAnim, &Scripts::CMDSND,
|
||||
&Scripts::CMDRETNEG, &Scripts::cmdRetPos, &Scripts::cmdCheckLoc,
|
||||
&Scripts::cmdSetAnim, &Scripts::CMDDISPINV, &Scripts::CMDSETTIMER,
|
||||
&Scripts::CMDSETTIMER, &Scripts::CMDCHECKTIMER, &Scripts::CMDSETTRAVEL,
|
||||
&Scripts::CMDSETTRAVEL, &Scripts::CMDSETVID, &Scripts::CMDPLAYVID,
|
||||
&Scripts::CMDPLOTIMAGE, &Scripts::CMDSETDISPLAY, &Scripts::CMDSETBUFFER,
|
||||
&Scripts::CMDSETSCROLL, &Scripts::CMDSAVERECT, &Scripts::CMDSAVERECT,
|
||||
&Scripts::CMDSETBUFVID, &Scripts::CMDPLAYBUFVID, &Scripts::CMDREMOVELAST,
|
||||
&Scripts::CMDSETBUFVID, &Scripts::CMDPLAYBUFVID, &Scripts::cmeRemoveLast,
|
||||
&Scripts::CMDSPECIAL, &Scripts::CMDSPECIAL, &Scripts::CMDSPECIAL,
|
||||
&Scripts::CMDSETCYCLE, &Scripts::CMDCYCLE, &Scripts::CMDCHARSPEAK,
|
||||
&Scripts::CMDTEXSPEAK, &Scripts::CMDTEXCHOICE, &Scripts::CMDWAIT,
|
||||
@ -105,7 +105,7 @@ void Scripts::executeCommand(int commandIndex) {
|
||||
&Scripts::CMDFREESOUND, &Scripts::CMDSETVIDSND, &Scripts::CMDPLAYVIDSND,
|
||||
&Scripts::CMDPUSHLOCATION, &Scripts::CMDPUSHLOCATION, &Scripts::CMDPUSHLOCATION,
|
||||
&Scripts::CMDPUSHLOCATION, &Scripts::CMDPUSHLOCATION, &Scripts::cmdPlayerOff,
|
||||
&Scripts::cmdPlayerOn, &Scripts::CMDDEAD, &Scripts::CMDFADEOUT,
|
||||
&Scripts::cmdPlayerOn, &Scripts::CMDDEAD, &Scripts::cmdFadeOut,
|
||||
&Scripts::CMDENDVID, &Scripts::CMDHELP, &Scripts::CMDCYCLEBACK,
|
||||
&Scripts::CMDCHAPTER, &Scripts::CMDSETHELP, &Scripts::CMDCENTERPANEL,
|
||||
&Scripts::cmdMainPanel, &Scripts::CMDRETFLASH
|
||||
@ -220,7 +220,18 @@ void Scripts::CMDSETTEX() { }
|
||||
void Scripts::CMDNEWROOM() { }
|
||||
void Scripts::CMDCONVERSE() { }
|
||||
void Scripts::CMDCHECKFRAME() { }
|
||||
void Scripts::CMDCHECKANIM() { }
|
||||
|
||||
void Scripts::cmdCheckAnim() {
|
||||
int id = _data->readUint16LE();
|
||||
Animation *anim = _vm->_animation->findAnimation(id);
|
||||
|
||||
if (anim->_currentLoopCount == -1) {
|
||||
_data->skip(2);
|
||||
cmdGoto();
|
||||
} else
|
||||
_data->skip(4);
|
||||
}
|
||||
|
||||
void Scripts::CMDSND() { }
|
||||
void Scripts::CMDRETNEG() { }
|
||||
|
||||
@ -258,7 +269,11 @@ void Scripts::CMDSETSCROLL() { }
|
||||
void Scripts::CMDSAVERECT() { }
|
||||
void Scripts::CMDSETBUFVID() { }
|
||||
void Scripts::CMDPLAYBUFVID() { }
|
||||
void Scripts::CMDREMOVELAST() { }
|
||||
|
||||
void Scripts::cmeRemoveLast() {
|
||||
--_vm->_numAnimTimers;
|
||||
}
|
||||
|
||||
void Scripts::CMDSPECIAL() { }
|
||||
void Scripts::CMDSETCYCLE() { }
|
||||
void Scripts::CMDCYCLE() { }
|
||||
@ -286,7 +301,11 @@ void Scripts::cmdPlayerOn() {
|
||||
}
|
||||
|
||||
void Scripts::CMDDEAD() { }
|
||||
void Scripts::CMDFADEOUT() { }
|
||||
|
||||
void Scripts::cmdFadeOut() {
|
||||
_vm->_screen->forceFadeOut();
|
||||
}
|
||||
|
||||
void Scripts::CMDENDVID() { }
|
||||
void Scripts::CMDHELP() { }
|
||||
void Scripts::CMDCYCLEBACK() { }
|
||||
|
@ -67,7 +67,7 @@ protected:
|
||||
void CMDNEWROOM();
|
||||
void CMDCONVERSE();
|
||||
void CMDCHECKFRAME();
|
||||
void CMDCHECKANIM();
|
||||
void cmdCheckAnim();
|
||||
void CMDSND();
|
||||
void CMDRETNEG();
|
||||
void cmdCheckLoc();
|
||||
@ -85,7 +85,7 @@ protected:
|
||||
void CMDSAVERECT();
|
||||
void CMDSETBUFVID();
|
||||
void CMDPLAYBUFVID();
|
||||
void CMDREMOVELAST();
|
||||
void cmeRemoveLast();
|
||||
void CMDSPECIAL();
|
||||
void CMDSETCYCLE();
|
||||
void CMDCYCLE();
|
||||
@ -106,7 +106,7 @@ protected:
|
||||
void cmdPlayerOff();
|
||||
void cmdPlayerOn();
|
||||
void CMDDEAD();
|
||||
void CMDFADEOUT();
|
||||
void cmdFadeOut();
|
||||
void CMDENDVID();
|
||||
void CMDHELP();
|
||||
void CMDCYCLEBACK();
|
||||
|
Loading…
x
Reference in New Issue
Block a user