diff options
author | Paul Gilbert | 2015-05-25 23:07:11 -0400 |
---|---|---|
committer | Paul Gilbert | 2015-05-25 23:07:11 -0400 |
commit | e1e39ea3d2e358b47fc26cc52244f536ee2a0a01 (patch) | |
tree | b3fc9e2fd53785b6edc132f117dda5f0ccda3386 | |
parent | 1a1010f0ab4164bb615283f9c332afbf97f702ca (diff) | |
download | scummvm-rg350-e1e39ea3d2e358b47fc26cc52244f536ee2a0a01.tar.gz scummvm-rg350-e1e39ea3d2e358b47fc26cc52244f536ee2a0a01.tar.bz2 scummvm-rg350-e1e39ea3d2e358b47fc26cc52244f536ee2a0a01.zip |
SHERLOCK: Add define for fixed integer multiplier
-rw-r--r-- | engines/sherlock/objects.h | 1 | ||||
-rw-r--r-- | engines/sherlock/scene.cpp | 29 |
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); } |