Skip to content

Commit

Permalink
ACCESS: Implement some more opcodes
Browse files Browse the repository at this point in the history
  • Loading branch information
Strangerke committed Aug 9, 2014
1 parent 33f432d commit f495d39
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 11 deletions.
3 changes: 1 addition & 2 deletions engines/access/animation.h
Expand Up @@ -32,8 +32,6 @@ namespace Access {
class Animation;

class AnimationManager : public Manager {
private:
Animation *findAnimation(int animId);
public:
const byte *_anim;
Animation *_animation;
Expand All @@ -44,6 +42,7 @@ class AnimationManager : public Manager {
void freeAnimationData();
void clearTimers();

Animation *findAnimation(int animId);
Animation *setAnimation(int animId);

void setAnimTimer(Animation *anim);
Expand Down
31 changes: 25 additions & 6 deletions engines/access/scripts.cpp
Expand Up @@ -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,
Expand All @@ -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
Expand Down Expand Up @@ -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() { }

Expand Down Expand Up @@ -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() { }
Expand Down Expand Up @@ -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() { }
Expand Down
6 changes: 3 additions & 3 deletions engines/access/scripts.h
Expand Up @@ -67,7 +67,7 @@ class Scripts {
void CMDNEWROOM();
void CMDCONVERSE();
void CMDCHECKFRAME();
void CMDCHECKANIM();
void cmdCheckAnim();
void CMDSND();
void CMDRETNEG();
void cmdCheckLoc();
Expand All @@ -85,7 +85,7 @@ class Scripts {
void CMDSAVERECT();
void CMDSETBUFVID();
void CMDPLAYBUFVID();
void CMDREMOVELAST();
void cmeRemoveLast();
void CMDSPECIAL();
void CMDSETCYCLE();
void CMDCYCLE();
Expand All @@ -106,7 +106,7 @@ class Scripts {
void cmdPlayerOff();
void cmdPlayerOn();
void CMDDEAD();
void CMDFADEOUT();
void cmdFadeOut();
void CMDENDVID();
void CMDHELP();
void CMDCYCLEBACK();
Expand Down

0 comments on commit f495d39

Please sign in to comment.