aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2015-05-25 23:07:11 -0400
committerPaul Gilbert2015-05-25 23:07:11 -0400
commite1e39ea3d2e358b47fc26cc52244f536ee2a0a01 (patch)
treeb3fc9e2fd53785b6edc132f117dda5f0ccda3386 /engines
parent1a1010f0ab4164bb615283f9c332afbf97f702ca (diff)
downloadscummvm-rg350-e1e39ea3d2e358b47fc26cc52244f536ee2a0a01.tar.gz
scummvm-rg350-e1e39ea3d2e358b47fc26cc52244f536ee2a0a01.tar.bz2
scummvm-rg350-e1e39ea3d2e358b47fc26cc52244f536ee2a0a01.zip
SHERLOCK: Add define for fixed integer multiplier
Diffstat (limited to 'engines')
-rw-r--r--engines/sherlock/objects.h1
-rw-r--r--engines/sherlock/scene.cpp29
2 files changed, 16 insertions, 14 deletions
diff --git a/engines/sherlock/objects.h b/engines/sherlock/objects.h
index 2a0de7f26e..7fe44c0a23 100644
--- a/engines/sherlock/objects.h
+++ b/engines/sherlock/objects.h
@@ -76,6 +76,7 @@ enum {
#define MAX_HOLMES_SEQUENCE 16
#define MAX_FRAME 30
+#define FIXED_INT_MULTIPLIER 100
// code put into sequences to defines 1-10 type seqs
#define SEQ_TO_CODE 67
diff --git a/engines/sherlock/scene.cpp b/engines/sherlock/scene.cpp
index d7519d5c47..a1a165e805 100644
--- a/engines/sherlock/scene.cpp
+++ b/engines/sherlock/scene.cpp
@@ -200,8 +200,8 @@ void Scene::selectScene() {
_tempFadeStyle = 0;
}
- people._walkDest = Common::Point(people[AL]._position.x / 100,
- people[AL]._position.y / 100);
+ people._walkDest = Common::Point(people[AL]._position.x / FIXED_INT_MULTIPLIER,
+ people[AL]._position.y / FIXED_INT_MULTIPLIER);
_restoreFlag = true;
events.clearEvents();
@@ -618,8 +618,8 @@ bool Scene::loadScene(const Common::String &filename) {
map._oldCharPoint = _currentScene;
if (IS_SERRATED_SCALPEL) {
- map._overPos.x = map[_currentScene].x * 100 - 600;
- map._overPos.y = map[_currentScene].y * 100 + 900;
+ map._overPos.x = (map[_currentScene].x - 6) * FIXED_INT_MULTIPLIER;
+ map._overPos.y = (map[_currentScene].y + 9) * FIXED_INT_MULTIPLIER;
}
}
@@ -761,8 +761,8 @@ void Scene::transitionToScene() {
// Otherwise, this is a linked scene or entrance info, and must be translated
if (hSavedFacing < 8 && !saves._justLoaded) {
hSavedFacing = FS_TRANS[hSavedFacing];
- hSavedPos.x *= 100;
- hSavedPos.y *= 100;
+ hSavedPos.x *= FIXED_INT_MULTIPLIER;
+ hSavedPos.y *= FIXED_INT_MULTIPLIER;
}
}
@@ -802,7 +802,8 @@ void Scene::transitionToScene() {
}
if (Common::Rect(topLeft.x, topLeft.y, bottomRight.x, bottomRight.y).contains(
- Common::Point(people[PLAYER]._position.x / 100, people[PLAYER]._position.y / 100))) {
+ Common::Point(people[PLAYER]._position.x / FIXED_INT_MULTIPLIER,
+ people[PLAYER]._position.y / FIXED_INT_MULTIPLIER))) {
// Current point is already inside box - impact occurred on
// a previous call. So simply do nothing except talk until the
// player is clear of the box
@@ -924,8 +925,8 @@ void Scene::drawAllShapes() {
p._sequenceNumber == WALK_UPLEFT || p._sequenceNumber == STOP_UPLEFT ||
p._sequenceNumber == WALK_DOWNRIGHT || p._sequenceNumber == STOP_DOWNRIGHT);
- screen._backBuffer->transBlitFrom(*p._imageFrame, Common::Point(p._position.x / 100,
- p._position.y / 100 - p.frameHeight()), flipped);
+ screen._backBuffer->transBlitFrom(*p._imageFrame, Common::Point(p._position.x / FIXED_INT_MULTIPLIER,
+ p._position.y / FIXED_INT_MULTIPLIER - p.frameHeight()), flipped);
}
}
@@ -980,7 +981,7 @@ Exit *Scene::checkForExit(const Common::Rect &r) {
void Scene::checkBgShapes() {
People &people = *_vm->_people;
Person &holmes = people._player;
- Common::Point pt(holmes._position.x / 100, holmes._position.y / 100);
+ Common::Point pt(holmes._position.x / FIXED_INT_MULTIPLIER, holmes._position.y / FIXED_INT_MULTIPLIER);
// Iterate through the shapes
for (uint idx = 0; idx < _bgShapes.size(); ++idx) {
@@ -1400,13 +1401,13 @@ void Scene::doBgAnim() {
if (people[AL]._type == CHARACTER && people[AL]._walkLoaded) {
// If Holmes is too far to the right, move him back so he's on-screen
int xRight = SHERLOCK_SCREEN_WIDTH - 2 - people[AL]._imageFrame->_frame.w;
- int tempX = MIN(people[AL]._position.x / 100, xRight);
+ int tempX = MIN(people[AL]._position.x / FIXED_INT_MULTIPLIER, xRight);
bool flipped = people[AL]._sequenceNumber == WALK_LEFT || people[AL]._sequenceNumber == STOP_LEFT ||
people[AL]._sequenceNumber == WALK_UPLEFT || people[AL]._sequenceNumber == STOP_UPLEFT ||
people[AL]._sequenceNumber == WALK_DOWNRIGHT || people[AL]._sequenceNumber == STOP_DOWNRIGHT;
screen._backBuffer->transBlitFrom(*people[AL]._imageFrame,
- Common::Point(tempX, people[AL]._position.y / 100 - people[AL]._imageFrame->_frame.h), flipped);
+ Common::Point(tempX, people[AL]._position.y / FIXED_INT_MULTIPLIER - people[AL]._imageFrame->_frame.h), flipped);
}
// Draw all static and active shapes are NORMAL and are in front of the person
@@ -1466,8 +1467,8 @@ void Scene::doBgAnim() {
people[AL]._type = INVALID;
} else {
screen.flushImage(people[AL]._imageFrame,
- Common::Point(people[AL]._position.x / 100,
- people[AL]._position.y / 100 - people[AL].frameHeight()),
+ Common::Point(people[AL]._position.x / FIXED_INT_MULTIPLIER,
+ people[AL]._position.y / FIXED_INT_MULTIPLIER - people[AL].frameHeight()),
&people[AL]._oldPosition.x, &people[AL]._oldPosition.y,
&people[AL]._oldSize.x, &people[AL]._oldSize.y);
}