Skip to content

Commit

Permalink
ACCESS: Implement cmdSetTex()
Browse files Browse the repository at this point in the history
  • Loading branch information
Strangerke committed Aug 17, 2014
1 parent 1b69da3 commit 4ea9339
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 9 deletions.
4 changes: 2 additions & 2 deletions engines/access/player.h
Expand Up @@ -49,11 +49,9 @@ class Player: public ImageEntry, Manager {
int _diagDownWalkMin, _diagDownWalkMax;
Common::Point _guard;
bool _collideFlag;
Direction _playerDirection;
Direction _move;
int _xFlag, _yFlag;
Common::Point _moveTo;
SpriteResource *_playerSprites;
SpriteResource *_playerSprites1;
byte *_manPal1;
int _scrollEnd;
Expand All @@ -79,6 +77,8 @@ class Player: public ImageEntry, Manager {
bool scrollLeft();
bool scrollRight();
public:
Direction _playerDirection;
SpriteResource *_playerSprites;
// Fields in original Player structure
byte *_monData;
int _walkOffRight[PLAYER_DATA_COUNT];
Expand Down
3 changes: 2 additions & 1 deletion engines/access/room.h
Expand Up @@ -68,7 +68,6 @@ class Room: public Manager {
protected:
void loadRoomData(const byte *roomData);
void setupRoom();
void setWallCodes();
void buildScreen();

/**
Expand Down Expand Up @@ -110,6 +109,8 @@ class Room: public Manager {

virtual void mainAreaClick() = 0;
public:
void setWallCodes();

virtual void setIconPalette() {}
public:
Plotter _plotter;
Expand Down
36 changes: 32 additions & 4 deletions engines/access/scripts.cpp
Expand Up @@ -96,7 +96,7 @@ void Scripts::executeCommand(int commandIndex) {
&Scripts::cmdPrint, &Scripts::cmdRetPos, &Scripts::cmdAnim,
&Scripts::cmdSetFlag, &Scripts::cmdCheckFlag, &Scripts::cmdGoto,
&Scripts::cmdSetInventory, &Scripts::cmdSetInventory, &Scripts::cmdCheckInventory,
&Scripts::CMDSETTEX, &Scripts::CMDNEWROOM, &Scripts::CMDCONVERSE,
&Scripts::cmdSetTex, &Scripts::CMDNEWROOM, &Scripts::CMDCONVERSE,
&Scripts::cmdCheckFrame, &Scripts::cmdCheckAnim, &Scripts::cmdSnd,
&Scripts::cmdRetNeg, &Scripts::cmdRetPos, &Scripts::cmdCheckLoc,
&Scripts::cmdSetAnim, &Scripts::cmdDispInv, &Scripts::CMDSETTIMER,
Expand All @@ -105,7 +105,7 @@ void Scripts::executeCommand(int commandIndex) {
&Scripts::cmdPlotImage, &Scripts::cmdSetDisplay, &Scripts::cmdSetBuffer,
&Scripts::cmdSetScroll, &Scripts::CMDSAVERECT, &Scripts::CMDSAVERECT,
&Scripts::CMDSETBUFVID, &Scripts::CMDPLAYBUFVID, &Scripts::cmdRemoveLast,
&Scripts::CMDSPECIAL, &Scripts::CMDSPECIAL, &Scripts::CMDSPECIAL,
&Scripts::cmdSpecial, &Scripts::cmdSpecial, &Scripts::cmdSpecial,
&Scripts::CMDSETCYCLE, &Scripts::CMDCYCLE, &Scripts::cmdCharSpeak,
&Scripts::cmdTexSpeak, &Scripts::CMDTEXCHOICE, &Scripts::CMDWAIT,
&Scripts::cmdSetConPos, &Scripts::CMDCHECKVFRAME, &Scripts::cmdJumpChoice,
Expand Down Expand Up @@ -255,7 +255,35 @@ void Scripts::cmdCheckInventory() {
_data->skip(2);
}

void Scripts::CMDSETTEX() { error("TODO CMDSETTEX"); }
void Scripts::cmdSetTex() {
_vm->_player->_playerDirection = RIGHT;
int posX = _data->readSint16LE() - (_vm->_player->_playerOffset.x / 2);
if (posX <= _vm->_player->_rawPlayer.x)
_vm->_player->_playerDirection = LEFT;

_vm->_player->_rawPlayer.x = posX;
_vm->_player->checkScroll();
bool scrlTemp = _vm->_player->_scrollFlag;

_vm->_player->_playerDirection = UP;
int posY = _data->readSint16LE();
if (posY <= _vm->_player->_rawPlayer.y)
_vm->_player->_playerDirection = DOWN;

_vm->_player->_rawPlayer.y = posY;
_vm->_player->_frame = 5;
_vm->_player->checkScroll();

_vm->_player->_scrollFlag |= scrlTemp;

_vm->_player->_position = Common::Point(_vm->_player->_rawPlayer.x, _vm->_player->_rawPlayer.y - _vm->_player->_playerOffset.y);
_vm->_player->_priority = _vm->_player->_playerOffset.y;
_vm->_player->_spritesPtr = _vm->_player->_playerSprites;
_vm->_player->_frameNumber = _vm->_player->_frame;

_vm->_room->setWallCodes();
}

void Scripts::CMDNEWROOM() { error("TODO CMDNEWROOM"); }
void Scripts::CMDCONVERSE() { error("TODO CMDCONVERSE"); }

Expand Down Expand Up @@ -363,7 +391,7 @@ void Scripts::cmdRemoveLast() {
--_vm->_numAnimTimers;
}

void Scripts::CMDSPECIAL() {
void Scripts::cmdSpecial() {
_specialFunction = _data->readUint16LE();
int p1 = _data->readUint16LE();
int p2 = _data->readUint16LE();
Expand Down
4 changes: 2 additions & 2 deletions engines/access/scripts.h
Expand Up @@ -65,7 +65,7 @@ class Scripts {

void cmdSetInventory();
void cmdCheckInventory();
void CMDSETTEX();
void cmdSetTex();
void CMDNEWROOM();
void CMDCONVERSE();
void cmdCheckFrame();
Expand All @@ -88,7 +88,7 @@ class Scripts {
void CMDSETBUFVID();
void CMDPLAYBUFVID();
void cmdRemoveLast();
void CMDSPECIAL();
void cmdSpecial();
void CMDSETCYCLE();
void CMDCYCLE();
void cmdCharSpeak();
Expand Down

0 comments on commit 4ea9339

Please sign in to comment.