mirror of
https://github.com/libretro/scummvm.git
synced 2025-03-05 01:38:36 +00:00
SHERLOCK: Further FIXED_INT_MULTIPLIER refactoring
Also converted multiplier factor from 100 to 1000, which will be needed for Rose Tattoo
This commit is contained in:
parent
cf76576035
commit
9ada143d14
@ -392,8 +392,8 @@ void Map::updateMap(bool flushScreen) {
|
||||
|
||||
people[AL].adjustSprite();
|
||||
|
||||
_lDrawnPos.x = hPos.x = people[AL]._position.x / 100 - _bigPos.x;
|
||||
_lDrawnPos.y = hPos.y = people[AL]._position.y / 100 - people[AL].frameHeight() - _bigPos.y;
|
||||
_lDrawnPos.x = hPos.x = people[AL]._position.x / FIXED_INT_MULTIPLIER - _bigPos.x;
|
||||
_lDrawnPos.y = hPos.y = people[AL]._position.y / FIXED_INT_MULTIPLIER - people[AL].frameHeight() - _bigPos.y;
|
||||
|
||||
// Draw the person icon
|
||||
saveIcon(people[AL]._imageFrame, hPos);
|
||||
@ -407,8 +407,8 @@ void Map::updateMap(bool flushScreen) {
|
||||
screen.slamArea(0, 0, SHERLOCK_SCREEN_WIDTH, SHERLOCK_SCREEN_HEIGHT);
|
||||
} else if (!_drawMap) {
|
||||
if (hPos.x > 0 && hPos.y >= 0 && hPos.x < SHERLOCK_SCREEN_WIDTH && hPos.y < SHERLOCK_SCREEN_HEIGHT)
|
||||
screen.flushImage(people[AL]._imageFrame, Common::Point(people[AL]._position.x / 100 - _bigPos.x,
|
||||
people[AL]._position.y / 100 - people[AL].frameHeight() - _bigPos.y),
|
||||
screen.flushImage(people[AL]._imageFrame, Common::Point(people[AL]._position.x / FIXED_INT_MULTIPLIER - _bigPos.x,
|
||||
people[AL]._position.y / FIXED_INT_MULTIPLIER - people[AL].frameHeight() - _bigPos.y),
|
||||
&people[AL]._oldPosition.x, &people[AL]._oldPosition.y, &people[AL]._oldSize.x, &people[AL]._oldSize.y);
|
||||
|
||||
if (osPos.x != -1)
|
||||
|
@ -146,18 +146,18 @@ void Sprite::adjustSprite() {
|
||||
}
|
||||
|
||||
if (_type == CHARACTER && !map._active) {
|
||||
if ((_position.y / 100) > LOWER_LIMIT) {
|
||||
_position.y = LOWER_LIMIT * 100;
|
||||
if ((_position.y / FIXED_INT_MULTIPLIER) > LOWER_LIMIT) {
|
||||
_position.y = LOWER_LIMIT * FIXED_INT_MULTIPLIER;
|
||||
people.gotoStand(*this);
|
||||
}
|
||||
|
||||
if ((_position.y / 100) < UPPER_LIMIT) {
|
||||
_position.y = UPPER_LIMIT * 100;
|
||||
if ((_position.y / FIXED_INT_MULTIPLIER) < UPPER_LIMIT) {
|
||||
_position.y = UPPER_LIMIT * FIXED_INT_MULTIPLIER;
|
||||
people.gotoStand(*this);
|
||||
}
|
||||
|
||||
if ((_position.x / 100) < LEFT_LIMIT) {
|
||||
_position.x = LEFT_LIMIT * 100;
|
||||
if ((_position.x / FIXED_INT_MULTIPLIER) < LEFT_LIMIT) {
|
||||
_position.x = LEFT_LIMIT * FIXED_INT_MULTIPLIER;
|
||||
people.gotoStand(*this);
|
||||
}
|
||||
} else if (!map._active) {
|
||||
@ -196,8 +196,8 @@ void Sprite::adjustSprite() {
|
||||
|
||||
// Check to see if character has entered an exit zone
|
||||
if (!_walkCount && scene._walkedInScene && scene._goToScene == -1) {
|
||||
Common::Rect charRect(_position.x / 100 - 5, _position.y / 100 - 2,
|
||||
_position.x / 100 + 5, _position.y / 100 + 2);
|
||||
Common::Rect charRect(_position.x / FIXED_INT_MULTIPLIER - 5, _position.y / FIXED_INT_MULTIPLIER - 2,
|
||||
_position.x / FIXED_INT_MULTIPLIER + 5, _position.y / FIXED_INT_MULTIPLIER + 2);
|
||||
Exit *exit = scene.checkForExit(charRect);
|
||||
|
||||
if (exit) {
|
||||
@ -222,7 +222,7 @@ void Sprite::checkSprite() {
|
||||
Talk &talk = *_vm->_talk;
|
||||
Point32 pt;
|
||||
Common::Rect objBounds;
|
||||
Common::Point spritePt(_position.x / 100, _position.y / 100);
|
||||
Common::Point spritePt(_position.x / FIXED_INT_MULTIPLIER, _position.y / FIXED_INT_MULTIPLIER);
|
||||
|
||||
if (!talk._talkCounter && _type == CHARACTER) {
|
||||
pt = _walkCount ? _position + _delta : _position;
|
||||
@ -657,8 +657,13 @@ void Object::load(Common::SeekableReadStream &s, bool isRoseTattoo) {
|
||||
_oldPosition.y = s.readSint16LE();
|
||||
_oldSize.x = s.readUint16LE();
|
||||
_oldSize.y = s.readUint16LE();
|
||||
|
||||
_goto.x = s.readSint16LE();
|
||||
_goto.y = s.readSint16LE();
|
||||
if (!isRoseTattoo) {
|
||||
_goto.x = _goto.x * FIXED_INT_MULTIPLIER / 100;
|
||||
_goto.y = _goto.y * FIXED_INT_MULTIPLIER / 100;
|
||||
}
|
||||
|
||||
_pickup = isRoseTattoo ? 0 : s.readByte();
|
||||
_defaultCommand = isRoseTattoo ? 0 : s.readByte();
|
||||
@ -678,8 +683,8 @@ void Object::load(Common::SeekableReadStream &s, bool isRoseTattoo) {
|
||||
_aType = (AType)s.readByte();
|
||||
_lookFrames = s.readByte();
|
||||
_seqCounter = s.readByte();
|
||||
_lookPosition.x = s.readUint16LE();
|
||||
_lookPosition.y = isRoseTattoo ? s.readSint16LE() : s.readByte();
|
||||
_lookPosition.x = s.readUint16LE() * FIXED_INT_MULTIPLIER / 100;
|
||||
_lookPosition.y = (isRoseTattoo ? s.readSint16LE() : s.readByte()) * FIXED_INT_MULTIPLIER;
|
||||
_lookFacing = s.readByte();
|
||||
_lookcAnim = s.readByte();
|
||||
|
||||
@ -1418,6 +1423,13 @@ void CAnim::load(Common::SeekableReadStream &s, bool isRoseTattoo) {
|
||||
_gotoDir = s.readSint16LE();
|
||||
_teleportPos.x = s.readSint16LE();
|
||||
_teleportPos.y = s.readSint16LE();
|
||||
if (!isRoseTattoo) {
|
||||
_goto.x = _goto.x * FIXED_INT_MULTIPLIER / 100;
|
||||
_goto.y = _goto.y * FIXED_INT_MULTIPLIER / 100;
|
||||
_teleportPos.x = _teleportPos.x * FIXED_INT_MULTIPLIER / 100;
|
||||
_teleportPos.y = _teleportPos.y * FIXED_INT_MULTIPLIER / 100;
|
||||
}
|
||||
|
||||
_teleportDir = s.readSint16LE();
|
||||
}
|
||||
|
||||
|
@ -76,7 +76,7 @@ enum {
|
||||
|
||||
#define MAX_HOLMES_SEQUENCE 16
|
||||
#define MAX_FRAME 30
|
||||
#define FIXED_INT_MULTIPLIER 100
|
||||
#define FIXED_INT_MULTIPLIER 1000
|
||||
|
||||
// code put into sequences to defines 1-10 type seqs
|
||||
#define SEQ_TO_CODE 67
|
||||
@ -328,7 +328,7 @@ public:
|
||||
Common::Point _delta; // Momvement amount
|
||||
Common::Point _oldPosition; // Old position
|
||||
Common::Point _oldSize; // Image's old size
|
||||
Common::Point _goto; // Walk destination
|
||||
Point32 _goto; // Walk destination
|
||||
|
||||
int _pickup;
|
||||
int _defaultCommand; // Default right-click command
|
||||
@ -342,7 +342,7 @@ public:
|
||||
AType _aType; // Tells if this is an object, person, talk, etc.
|
||||
int _lookFrames; // How many frames to play of the look anim before pausing
|
||||
int _seqCounter; // How many times this sequence has been executed
|
||||
Common::Point _lookPosition; // Where to walk when examining object
|
||||
Point32 _lookPosition; // Where to walk when examining object
|
||||
int _lookFacing; // Direction to face when examining object
|
||||
int _lookcAnim;
|
||||
int _seqStack; // Allows gosubs to return to calling frame
|
||||
@ -439,9 +439,9 @@ struct CAnim {
|
||||
Common::Point _position; // Position
|
||||
int _size; // Size of uncompressed animation
|
||||
int _flags; // Tells if can be walked behind
|
||||
Common::Point _goto; // coords holmes should walk to before starting canim
|
||||
Point32 _goto; // coords holmes should walk to before starting canim
|
||||
int _gotoDir;
|
||||
Common::Point _teleportPos; // Location Holmes shoul teleport to after
|
||||
Point32 _teleportPos; // Location Holmes shoul teleport to after
|
||||
int _teleportDir; // playing canim
|
||||
|
||||
// Scalpel specific
|
||||
|
@ -98,7 +98,7 @@ People::People(SherlockEngine *vm) : _vm(vm), _player(_data[0]) {
|
||||
_speakerFlip = false;
|
||||
_holmesFlip = false;
|
||||
_holmesQuotient = 0;
|
||||
_hSavedPos = Common::Point(-1, -1);
|
||||
_hSavedPos = Point32(-1, -1);
|
||||
_hSavedFacing = -1;
|
||||
_forceWalkReload = false;
|
||||
_useWalkLib = false;
|
||||
@ -134,7 +134,7 @@ void People::reset() {
|
||||
p._sequenceNumber = STOP_DOWNRIGHT;
|
||||
p._imageFrame = nullptr;
|
||||
p._frameNumber = 1;
|
||||
p._delta = Common::Point(0, 0);
|
||||
p._delta = Point32(0, 0);
|
||||
p._oldPosition = Common::Point(0, 0);
|
||||
p._oldSize = Common::Point(0, 0);
|
||||
p._misc = 0;
|
||||
@ -297,8 +297,8 @@ void People::setWalking() {
|
||||
_walkDest.x -= temp;
|
||||
|
||||
delta = Common::Point(
|
||||
ABS(_player._position.x / 100 - _walkDest.x),
|
||||
ABS(_player._position.y / 100 - _walkDest.y)
|
||||
ABS(_player._position.x / FIXED_INT_MULTIPLIER - _walkDest.x),
|
||||
ABS(_player._position.y / FIXED_INT_MULTIPLIER - _walkDest.y)
|
||||
);
|
||||
|
||||
// If we're ready to move a sufficient distance, that's it. Otherwise,
|
||||
@ -316,20 +316,20 @@ void People::setWalking() {
|
||||
if (delta.x >= delta.y) {
|
||||
// Set the initial frame sequence for the left and right, as well
|
||||
// as setting the delta x depending on direction
|
||||
if (_walkDest.x < (_player._position.x / 100)) {
|
||||
if (_walkDest.x < (_player._position.x / FIXED_INT_MULTIPLIER)) {
|
||||
_player._sequenceNumber = (map._active ? (int)MAP_LEFT : (int)WALK_LEFT);
|
||||
_player._delta.x = speed.x * -100;
|
||||
_player._delta.x = speed.x * -FIXED_INT_MULTIPLIER;
|
||||
} else {
|
||||
_player._sequenceNumber = (map._active ? (int)MAP_RIGHT : (int)WALK_RIGHT);
|
||||
_player._delta.x = speed.x * 100;
|
||||
_player._delta.x = speed.x * FIXED_INT_MULTIPLIER;
|
||||
}
|
||||
|
||||
// See if the x delta is too small to be divided by the speed, since
|
||||
// this would cause a divide by zero error
|
||||
if (delta.x >= speed.x) {
|
||||
// Det the delta y
|
||||
_player._delta.y = (delta.y * 100) / (delta.x / speed.x);
|
||||
if (_walkDest.y < (_player._position.y / 100))
|
||||
_player._delta.y = (delta.y * FIXED_INT_MULTIPLIER) / (delta.x / speed.x);
|
||||
if (_walkDest.y < (_player._position.y / FIXED_INT_MULTIPLIER))
|
||||
_player._delta.y = -_player._delta.y;
|
||||
|
||||
// Set how many times we should add the delta to the player's position
|
||||
@ -337,8 +337,9 @@ void People::setWalking() {
|
||||
} else {
|
||||
// The delta x was less than the speed (ie. we're really close to
|
||||
// the destination). So set delta to 0 so the player won't move
|
||||
_player._delta = Common::Point(0, 0);
|
||||
_player._position = Common::Point(_walkDest.x * 100, _walkDest.y * 100);
|
||||
_player._delta = Point32(0, 0);
|
||||
_player._position = Point32(_walkDest.x * FIXED_INT_MULTIPLIER, _walkDest.y * FIXED_INT_MULTIPLIER);
|
||||
assert(_player._position.y >= 10000);/***DEBUG****/
|
||||
_player._walkCount = 1;
|
||||
}
|
||||
|
||||
@ -369,12 +370,12 @@ void People::setWalking() {
|
||||
} else {
|
||||
// Major movement is vertical, so set the sequence for up and down,
|
||||
// and set the delta Y depending on the direction
|
||||
if (_walkDest.y < (_player._position.y / 100)) {
|
||||
if (_walkDest.y < (_player._position.y / FIXED_INT_MULTIPLIER)) {
|
||||
_player._sequenceNumber = WALK_UP;
|
||||
_player._delta.y = speed.y * -100;
|
||||
_player._delta.y = speed.y * -FIXED_INT_MULTIPLIER;
|
||||
} else {
|
||||
_player._sequenceNumber = WALK_DOWN;
|
||||
_player._delta.y = speed.y * 100;
|
||||
_player._delta.y = speed.y * FIXED_INT_MULTIPLIER;
|
||||
}
|
||||
|
||||
// If we're on the overhead map, set the sequence so we keep moving
|
||||
@ -383,8 +384,8 @@ void People::setWalking() {
|
||||
_player._sequenceNumber = (oldDirection == -1) ? MAP_RIGHT : oldDirection;
|
||||
|
||||
// Set the delta x
|
||||
_player._delta.x = (delta.x * 100) / (delta.y / speed.y);
|
||||
if (_walkDest.x < (_player._position.x / 100))
|
||||
_player._delta.x = (delta.x * FIXED_INT_MULTIPLIER) / (delta.y / speed.y);
|
||||
if (_walkDest.x < (_player._position.x / FIXED_INT_MULTIPLIER))
|
||||
_player._delta.x = -_player._delta.x;
|
||||
|
||||
_player._walkCount = delta.y / speed.y;
|
||||
@ -451,15 +452,15 @@ void People::gotoStand(Sprite &sprite) {
|
||||
|
||||
if (map._active) {
|
||||
sprite._sequenceNumber = 0;
|
||||
_player._position.x = (map[map._charPoint].x - 6) * 100;
|
||||
_player._position.y = (map[map._charPoint].y + 10) * 100;
|
||||
_player._position.x = (map[map._charPoint].x - 6) * FIXED_INT_MULTIPLIER;
|
||||
_player._position.y = (map[map._charPoint].y + 10) * FIXED_INT_MULTIPLIER;
|
||||
}
|
||||
|
||||
_oldWalkSequence = -1;
|
||||
_allowWalkAbort = true;
|
||||
}
|
||||
|
||||
void People::walkToCoords(const Common::Point &destPos, int destDir) {
|
||||
void People::walkToCoords(const Point32 &destPos, int destDir) {
|
||||
Events &events = *_vm->_events;
|
||||
Scene &scene = *_vm->_scene;
|
||||
Talk &talk = *_vm->_talk;
|
||||
@ -467,7 +468,7 @@ void People::walkToCoords(const Common::Point &destPos, int destDir) {
|
||||
CursorId oldCursor = events.getCursor();
|
||||
events.setCursor(WAIT);
|
||||
|
||||
_walkDest = Common::Point(destPos.x / 100 + 10, destPos.y / 100);
|
||||
_walkDest = Common::Point(destPos.x / FIXED_INT_MULTIPLIER + 10, destPos.y / FIXED_INT_MULTIPLIER);
|
||||
_allowWalkAbort = true;
|
||||
goAllTheWay();
|
||||
|
||||
@ -480,6 +481,8 @@ void People::walkToCoords(const Common::Point &destPos, int destDir) {
|
||||
if (!talk._talkToAbort) {
|
||||
// Put player exactly on destination position, and set direction
|
||||
_player._position = destPos;
|
||||
assert(_player._position.y >= 10000);/***DEBUG****/
|
||||
|
||||
_player._sequenceNumber = destDir;
|
||||
gotoStand(_player);
|
||||
|
||||
@ -493,8 +496,8 @@ void People::walkToCoords(const Common::Point &destPos, int destDir) {
|
||||
|
||||
void People::goAllTheWay() {
|
||||
Scene &scene = *_vm->_scene;
|
||||
Common::Point srcPt(_player._position.x / 100 + _player.frameWidth() / 2,
|
||||
_player._position.y / 100);
|
||||
Common::Point srcPt(_player._position.x / FIXED_INT_MULTIPLIER + _player.frameWidth() / 2,
|
||||
_player._position.y / FIXED_INT_MULTIPLIER);
|
||||
|
||||
// Get the zone the player is currently in
|
||||
_srcZone = scene.whichZone(srcPt);
|
||||
@ -516,17 +519,17 @@ void People::goAllTheWay() {
|
||||
const Common::Point destCenter((destRect.left + destRect.right) / 2,
|
||||
(destRect.top + destRect.bottom) / 2);
|
||||
const Common::Point delta = _walkDest - destCenter;
|
||||
Common::Point pt(destCenter.x * 100, destCenter.y * 100);
|
||||
Point32 pt(destCenter.x * FIXED_INT_MULTIPLIER, destCenter.y * FIXED_INT_MULTIPLIER);
|
||||
|
||||
// Move along the line until the zone is left
|
||||
do {
|
||||
pt += delta;
|
||||
} while (destRect.contains(pt.x / 100, pt.y / 100));
|
||||
} while (destRect.contains(pt.x / FIXED_INT_MULTIPLIER, pt.y / FIXED_INT_MULTIPLIER));
|
||||
|
||||
// Set the new walk destination to the last point that was in the
|
||||
// zone just before it was left
|
||||
_walkDest = Common::Point((pt.x - delta.x * 2) / 100,
|
||||
(pt.y - delta.y * 2) / 100);
|
||||
_walkDest = Common::Point((pt.x - delta.x * 2) / FIXED_INT_MULTIPLIER,
|
||||
(pt.y - delta.y * 2) / FIXED_INT_MULTIPLIER);
|
||||
}
|
||||
|
||||
// Only do a walk if both zones are acceptable
|
||||
|
@ -110,7 +110,7 @@ public:
|
||||
Common::Array<PersonData> _characters;
|
||||
ImageFile *_talkPics;
|
||||
Common::Point _walkDest;
|
||||
Common::Point _hSavedPos;
|
||||
Point32 _hSavedPos;
|
||||
int _hSavedFacing;
|
||||
Common::Queue<Common::Point> _walkTo;
|
||||
Person &_player;
|
||||
@ -172,7 +172,7 @@ public:
|
||||
/**
|
||||
* Walk to the co-ordinates passed, and then face the given direction
|
||||
*/
|
||||
void walkToCoords(const Common::Point &destPos, int destDir);
|
||||
void walkToCoords(const Point32 &destPos, int destDir);
|
||||
|
||||
/**
|
||||
* Called to set the character walking to the current cursor location.
|
||||
|
@ -687,7 +687,7 @@ void ScalpelEngine::startScene() {
|
||||
}
|
||||
|
||||
void ScalpelEngine::eraseMirror12() {
|
||||
Common::Point pt((*_people)[AL]._position.x / 100, (*_people)[AL]._position.y / 100);
|
||||
Common::Point pt((*_people)[AL]._position.x / FIXED_INT_MULTIPLIER, (*_people)[AL]._position.y / FIXED_INT_MULTIPLIER);
|
||||
|
||||
// If player is in range of the mirror, then restore background from the secondary back buffer
|
||||
if (Common::Rect(70, 100, 200, 200).contains(pt)) {
|
||||
@ -700,7 +700,7 @@ void ScalpelEngine::doMirror12() {
|
||||
People &people = *_people;
|
||||
Person &player = people._player;
|
||||
|
||||
Common::Point pt((*_people)[AL]._position.x / 100, (*_people)[AL]._position.y / 100);
|
||||
Common::Point pt((*_people)[AL]._position.x / FIXED_INT_MULTIPLIER, (*_people)[AL]._position.y / FIXED_INT_MULTIPLIER);
|
||||
int frameNum = player._walkSequences[player._sequenceNumber][player._frameNumber] +
|
||||
player._walkSequences[player._sequenceNumber][0] - 2;
|
||||
|
||||
@ -772,7 +772,7 @@ void ScalpelEngine::doMirror12() {
|
||||
}
|
||||
|
||||
void ScalpelEngine::flushMirror12() {
|
||||
Common::Point pt((*_people)[AL]._position.x / 100, (*_people)[AL]._position.y / 100);
|
||||
Common::Point pt((*_people)[AL]._position.x / FIXED_INT_MULTIPLIER, (*_people)[AL]._position.y / FIXED_INT_MULTIPLIER);
|
||||
|
||||
// If player is in range of the mirror, then draw the entire mirror area to the screen
|
||||
if (Common::Rect(70, 100, 200, 200).contains(pt))
|
||||
|
@ -500,7 +500,7 @@ void ScalpelUserInterface::examine() {
|
||||
scene.startCAnim(_cNum, canimSpeed);
|
||||
} else if (obj._lookPosition.y != 0) {
|
||||
// Need to walk to the object to be examined
|
||||
people.walkToCoords(Common::Point(obj._lookPosition.x, obj._lookPosition.y * 100), obj._lookFacing);
|
||||
people.walkToCoords(obj._lookPosition, obj._lookFacing);
|
||||
}
|
||||
|
||||
if (!talk._talkToAbort) {
|
||||
@ -2158,7 +2158,7 @@ void ScalpelUserInterface::checkAction(ActionType &action, const char *const mes
|
||||
Scene &scene = *_vm->_scene;
|
||||
Screen &screen = *_vm->_screen;
|
||||
Talk &talk = *_vm->_talk;
|
||||
Common::Point pt(-1, -1);
|
||||
Point32 pt(-1, -1);
|
||||
|
||||
if (objNum >= 1000)
|
||||
// Ignore actions done on characters
|
||||
@ -2197,7 +2197,7 @@ void ScalpelUserInterface::checkAction(ActionType &action, const char *const mes
|
||||
}
|
||||
}
|
||||
} else {
|
||||
pt = Common::Point(-1, -1);
|
||||
pt = Point32(-1, -1);
|
||||
dir = -1;
|
||||
}
|
||||
|
||||
|
@ -756,7 +756,7 @@ void Scene::transitionToScene() {
|
||||
SaveManager &saves = *_vm->_saves;
|
||||
Screen &screen = *_vm->_screen;
|
||||
Talk &talk = *_vm->_talk;
|
||||
Common::Point &hSavedPos = people._hSavedPos;
|
||||
Point32 &hSavedPos = people._hSavedPos;
|
||||
int &hSavedFacing = people._hSavedFacing;
|
||||
|
||||
if (hSavedPos.x < 1) {
|
||||
@ -764,7 +764,7 @@ void Scene::transitionToScene() {
|
||||
if (_entrance._startPosition.x < 1) {
|
||||
// No entrance info either, so use defaults
|
||||
if (IS_SERRATED_SCALPEL) {
|
||||
hSavedPos = Common::Point(160 * FIXED_INT_MULTIPLIER, 100 * FIXED_INT_MULTIPLIER);
|
||||
hSavedPos = Point32(160 * FIXED_INT_MULTIPLIER, 100 * FIXED_INT_MULTIPLIER);
|
||||
hSavedFacing = 4;
|
||||
} else {
|
||||
hSavedPos = people[PLAYER]._position;
|
||||
@ -772,7 +772,8 @@ void Scene::transitionToScene() {
|
||||
}
|
||||
} else {
|
||||
// setup entrance info
|
||||
hSavedPos = _entrance._startPosition;
|
||||
hSavedPos.x = _entrance._startPosition.x * FIXED_INT_MULTIPLIER / 100;
|
||||
hSavedPos.y = _entrance._startPosition.y * FIXED_INT_MULTIPLIER / 100;
|
||||
hSavedFacing = _entrance._startDir;
|
||||
}
|
||||
} else {
|
||||
@ -919,7 +920,7 @@ int Scene::startCAnim(int cAnimNum, int playRate) {
|
||||
Resources &res = *_vm->_res;
|
||||
Talk &talk = *_vm->_talk;
|
||||
UserInterface &ui = *_vm->_ui;
|
||||
Common::Point tpPos, walkPos;
|
||||
Point32 tpPos, walkPos;
|
||||
int tpDir, walkDir;
|
||||
int tFrames = 0;
|
||||
int gotoCode = -1;
|
||||
|
@ -636,8 +636,7 @@ void Talk::talk(int objNum) {
|
||||
events.setCursor(WAIT);
|
||||
if (obj._lookPosition.y != 0)
|
||||
// Need to walk to character first
|
||||
people.walkToCoords(Common::Point(obj._lookPosition.x, obj._lookPosition.y * 100),
|
||||
obj._lookFacing);
|
||||
people.walkToCoords(obj._lookPosition, obj._lookFacing);
|
||||
events.setCursor(ARROW);
|
||||
|
||||
if (!_talkToAbort)
|
||||
@ -652,8 +651,7 @@ void Talk::talk(int objNum) {
|
||||
events.setCursor(WAIT);
|
||||
if (obj._lookPosition.y != 0)
|
||||
// Walk over to person to talk to
|
||||
people.walkToCoords(Common::Point(obj._lookPosition.x, obj._lookPosition.y * 100),
|
||||
obj._lookFacing);
|
||||
people.walkToCoords(obj._lookPosition, obj._lookFacing);
|
||||
events.setCursor(ARROW);
|
||||
|
||||
if (!_talkToAbort) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user