Skip to content

Commit

Permalink
TOON: Migrate Character API x,y coordinates and subclasses to int16.
Browse files Browse the repository at this point in the history
This harmonises the usage with Common::Point.
  • Loading branch information
digitall committed Jun 13, 2012
1 parent fcfff28 commit 87eb651
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 37 deletions.
34 changes: 16 additions & 18 deletions engines/toon/character.cpp
Expand Up @@ -81,7 +81,7 @@ Character::~Character(void) {
void Character::init() {
}

void Character::forceFacing( int32 facing ) {
void Character::forceFacing(int32 facing) {
debugC(4, kDebugCharacter, "forceFacing(%d)", facing);
_facing = facing;
}
Expand Down Expand Up @@ -136,16 +136,15 @@ void Character::setFacing(int32 facing) {
_facing = facing;
}

void Character::forcePosition(int32 x, int32 y) {

void Character::forcePosition(int16 x, int16 y) {
debugC(5, kDebugCharacter, "forcePosition(%d, %d)", x, y);

setPosition(x, y);
_finalX = x;
_finalY = y;
}

void Character::setPosition(int32 x, int32 y) {
void Character::setPosition(int16 x, int16 y) {
debugC(5, kDebugCharacter, "setPosition(%d, %d)", x, y);

_x = x;
Expand All @@ -155,7 +154,7 @@ void Character::setPosition(int32 x, int32 y) {
return;
}

bool Character::walkTo(int32 newPosX, int32 newPosY) {
bool Character::walkTo(int16 newPosX, int16 newPosY) {
debugC(1, kDebugCharacter, "walkTo(%d, %d)", newPosX, newPosY);

if (!_visible)
Expand All @@ -168,21 +167,19 @@ bool Character::walkTo(int32 newPosX, int32 newPosY) {

// don't allow flux to go at the same position as drew
if (_id == 1 ) {
int32 sizeX = MAX<int32>(5, 30 * _vm->getDrew()->getScale() / 1024);
int32 sizeY = MAX<int32>(2, 20 * _vm->getDrew()->getScale() / 1024);
int16 sizeX = MAX<int16>(5, 30 * _vm->getDrew()->getScale() / 1024);
int16 sizeY = MAX<int16>(2, 20 * _vm->getDrew()->getScale() / 1024);
_vm->getPathFinding()->addBlockingEllipse(_vm->getDrew()->getFinalX(), _vm->getDrew()->getFinalY(), sizeX, sizeY);
}

int16 tempFinalX, tempFinalY;
_vm->getPathFinding()->findClosestWalkingPoint(newPosX, newPosY, &tempFinalX, &tempFinalY, _x, _y);
_finalX = tempFinalX, _finalY = tempFinalY; // FIXME - Bodge to match types...
_vm->getPathFinding()->findClosestWalkingPoint(newPosX, newPosY, &_finalX, &_finalY, _x, _y);
if (_x == _finalX && _y == _finalY)
return true;

if (_vm->getPathFinding()->findPath(_x, _y, _finalX, _finalY)) {

int32 localFinalX = _finalX;
int32 localFinalY = _finalY;
int16 localFinalX = _finalX;
int16 localFinalY = _finalY;
int32 smoothDx = 0;
int32 smoothDy = 0;

Expand Down Expand Up @@ -266,10 +263,11 @@ int32 Character::getFlag() {
return _flags;
}

int32 Character::getX() {
int16 Character::getX() {
return _x;
}
int32 Character::getY() {

int16 Character::getY() {
return _y;
}

Expand Down Expand Up @@ -529,7 +527,7 @@ void Character::update(int32 timeIncrement) {
}

// adapted from Kyra
int32 Character::getFacingFromDirection(int32 dx, int32 dy) {
int32 Character::getFacingFromDirection(int16 dx, int16 dy) {
debugC(4, kDebugCharacter, "getFacingFromDirection(%d, %d)", dx, dy);

static const int facingTable[] = {
Expand Down Expand Up @@ -640,7 +638,7 @@ void Character::load(Common::ReadStream *stream) {
// "not visible" flag.
if (_flags & 0x100) {
_flags &= ~0x100;
setVisible(false);
setVisible(false);
}
}

Expand Down Expand Up @@ -1080,11 +1078,11 @@ void Character::setDefaultSpecialAnimationId(int32 defaultAnimationId) {
_animSpecialDefaultId = defaultAnimationId;
}

int32 Character::getFinalX() {
int16 Character::getFinalX() {
return _finalX;
}

int32 Character::getFinalY() {
int16 Character::getFinalY() {
return _finalY;
}

Expand Down
28 changes: 14 additions & 14 deletions engines/toon/character.h
Expand Up @@ -65,13 +65,13 @@ class Character {
virtual int32 getFlag();
virtual int32 getAnimFlag();
virtual void setAnimFlag(int32 flag);
virtual void setPosition(int32 x, int32 y);
virtual void forcePosition(int32 x, int32 y);
virtual int32 getX();
virtual int32 getY();
virtual int32 getFinalX();
virtual int32 getFinalY();
virtual bool walkTo(int32 newPosX, int32 newPosY);
virtual void setPosition(int16 x, int16 y);
virtual void forcePosition(int16 x, int16 y);
virtual int16 getX();
virtual int16 getY();
virtual int16 getFinalX();
virtual int16 getFinalY();
virtual bool walkTo(int16 newPosX, int16 newPosY);
virtual bool getVisible();
virtual void setVisible(bool visible);
virtual bool loadWalkAnimation(const Common::String &animName);
Expand Down Expand Up @@ -99,7 +99,7 @@ class Character {
virtual void resetScale() {}
virtual void plotPath(Graphics::Surface& surface);

int32 getFacingFromDirection(int32 dx, int32 dy);
int32 getFacingFromDirection(int16 dx, int16 dy);
static const SpecialCharacterAnimation *getSpecialAnimation(int32 characterId, int32 animationId);

protected:
Expand All @@ -112,11 +112,11 @@ class Character {
int32 _sceneAnimationId;
int32 _lineToSayId;
int32 _time;
int32 _x;
int32 _y;
int16 _x;
int16 _y;
int32 _z;
int32 _finalX;
int32 _finalY;
int16 _finalX;
int16 _finalY;
int32 _facing;
int32 _flags;
int32 _animFlags;
Expand All @@ -137,8 +137,8 @@ class Character {
Animation *_shadowAnim;
Animation *_specialAnim;

int32 _currentPathX[4096];
int32 _currentPathY[4096];
int16 _currentPathX[4096];
int16 _currentPathY[4096];
int32 _currentPathNodeCount;
int32 _currentPathNode;
int32 _currentWalkStamp;
Expand Down
2 changes: 1 addition & 1 deletion engines/toon/drew.cpp
Expand Up @@ -48,7 +48,7 @@ bool CharacterDrew::setupPalette() {
return false;
}

void CharacterDrew::setPosition(int32 x, int32 y) {
void CharacterDrew::setPosition(int16 x, int16 y) {
debugC(5, kDebugCharacter, "setPosition(%d, %d)", x, y);

_z = _vm->getLayerAtPoint(x, y);
Expand Down
2 changes: 1 addition & 1 deletion engines/toon/drew.h
Expand Up @@ -35,7 +35,7 @@ class CharacterDrew : public Character {
virtual ~CharacterDrew();
bool setupPalette();
void playStandingAnim();
void setPosition(int32 x, int32 y);
void setPosition(int16 x, int16 y);
void resetScale();
void update(int32 timeIncrement);
void playWalkAnim(int32 start, int32 end);
Expand Down
4 changes: 2 additions & 2 deletions engines/toon/flux.cpp
Expand Up @@ -45,7 +45,7 @@ void CharacterFlux::playStandingAnim() {
_animationInstance->stopAnimation();
_animationInstance->setLooping(true);

//s/etVisible(true);
//setVisible(true);
}

void CharacterFlux::setVisible(bool visible) {
Expand Down Expand Up @@ -99,7 +99,7 @@ int32 CharacterFlux::fixFacingForAnimation(int32 originalFacing, int32 animation
return finalFacing;
}

void CharacterFlux::setPosition(int32 x, int32 y) {
void CharacterFlux::setPosition(int16 x, int16 y) {
debugC(5, kDebugCharacter, "setPosition(%d, %d)", x, y);

_z = _vm->getLayerAtPoint(x, y);
Expand Down
2 changes: 1 addition & 1 deletion engines/toon/flux.h
Expand Up @@ -34,7 +34,7 @@ class CharacterFlux : public Character {
CharacterFlux(ToonEngine *vm);
virtual ~CharacterFlux();

void setPosition(int32 x, int32 y);
void setPosition(int16 x, int16 y);
void playStandingAnim();
void playWalkAnim(int32 start, int32 end);
void update(int32 timeIncrement);
Expand Down

0 comments on commit 87eb651

Please sign in to comment.