SHERLOCK: Add define for fixed integer multiplier
This commit is contained in:
parent
1a1010f0ab
commit
e1e39ea3d2
2 changed files with 16 additions and 14 deletions
|
@ -76,6 +76,7 @@ enum {
|
||||||
|
|
||||||
#define MAX_HOLMES_SEQUENCE 16
|
#define MAX_HOLMES_SEQUENCE 16
|
||||||
#define MAX_FRAME 30
|
#define MAX_FRAME 30
|
||||||
|
#define FIXED_INT_MULTIPLIER 100
|
||||||
|
|
||||||
// code put into sequences to defines 1-10 type seqs
|
// code put into sequences to defines 1-10 type seqs
|
||||||
#define SEQ_TO_CODE 67
|
#define SEQ_TO_CODE 67
|
||||||
|
|
|
@ -200,8 +200,8 @@ void Scene::selectScene() {
|
||||||
_tempFadeStyle = 0;
|
_tempFadeStyle = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
people._walkDest = Common::Point(people[AL]._position.x / 100,
|
people._walkDest = Common::Point(people[AL]._position.x / FIXED_INT_MULTIPLIER,
|
||||||
people[AL]._position.y / 100);
|
people[AL]._position.y / FIXED_INT_MULTIPLIER);
|
||||||
|
|
||||||
_restoreFlag = true;
|
_restoreFlag = true;
|
||||||
events.clearEvents();
|
events.clearEvents();
|
||||||
|
@ -618,8 +618,8 @@ bool Scene::loadScene(const Common::String &filename) {
|
||||||
map._oldCharPoint = _currentScene;
|
map._oldCharPoint = _currentScene;
|
||||||
|
|
||||||
if (IS_SERRATED_SCALPEL) {
|
if (IS_SERRATED_SCALPEL) {
|
||||||
map._overPos.x = map[_currentScene].x * 100 - 600;
|
map._overPos.x = (map[_currentScene].x - 6) * FIXED_INT_MULTIPLIER;
|
||||||
map._overPos.y = map[_currentScene].y * 100 + 900;
|
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
|
// Otherwise, this is a linked scene or entrance info, and must be translated
|
||||||
if (hSavedFacing < 8 && !saves._justLoaded) {
|
if (hSavedFacing < 8 && !saves._justLoaded) {
|
||||||
hSavedFacing = FS_TRANS[hSavedFacing];
|
hSavedFacing = FS_TRANS[hSavedFacing];
|
||||||
hSavedPos.x *= 100;
|
hSavedPos.x *= FIXED_INT_MULTIPLIER;
|
||||||
hSavedPos.y *= 100;
|
hSavedPos.y *= FIXED_INT_MULTIPLIER;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -802,7 +802,8 @@ void Scene::transitionToScene() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Common::Rect(topLeft.x, topLeft.y, bottomRight.x, bottomRight.y).contains(
|
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
|
// Current point is already inside box - impact occurred on
|
||||||
// a previous call. So simply do nothing except talk until the
|
// a previous call. So simply do nothing except talk until the
|
||||||
// player is clear of the box
|
// player is clear of the box
|
||||||
|
@ -924,8 +925,8 @@ void Scene::drawAllShapes() {
|
||||||
p._sequenceNumber == WALK_UPLEFT || p._sequenceNumber == STOP_UPLEFT ||
|
p._sequenceNumber == WALK_UPLEFT || p._sequenceNumber == STOP_UPLEFT ||
|
||||||
p._sequenceNumber == WALK_DOWNRIGHT || p._sequenceNumber == STOP_DOWNRIGHT);
|
p._sequenceNumber == WALK_DOWNRIGHT || p._sequenceNumber == STOP_DOWNRIGHT);
|
||||||
|
|
||||||
screen._backBuffer->transBlitFrom(*p._imageFrame, Common::Point(p._position.x / 100,
|
screen._backBuffer->transBlitFrom(*p._imageFrame, Common::Point(p._position.x / FIXED_INT_MULTIPLIER,
|
||||||
p._position.y / 100 - p.frameHeight()), flipped);
|
p._position.y / FIXED_INT_MULTIPLIER - p.frameHeight()), flipped);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -980,7 +981,7 @@ Exit *Scene::checkForExit(const Common::Rect &r) {
|
||||||
void Scene::checkBgShapes() {
|
void Scene::checkBgShapes() {
|
||||||
People &people = *_vm->_people;
|
People &people = *_vm->_people;
|
||||||
Person &holmes = people._player;
|
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
|
// Iterate through the shapes
|
||||||
for (uint idx = 0; idx < _bgShapes.size(); ++idx) {
|
for (uint idx = 0; idx < _bgShapes.size(); ++idx) {
|
||||||
|
@ -1400,13 +1401,13 @@ void Scene::doBgAnim() {
|
||||||
if (people[AL]._type == CHARACTER && people[AL]._walkLoaded) {
|
if (people[AL]._type == CHARACTER && people[AL]._walkLoaded) {
|
||||||
// If Holmes is too far to the right, move him back so he's on-screen
|
// 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 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 ||
|
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_UPLEFT || people[AL]._sequenceNumber == STOP_UPLEFT ||
|
||||||
people[AL]._sequenceNumber == WALK_DOWNRIGHT || people[AL]._sequenceNumber == STOP_DOWNRIGHT;
|
people[AL]._sequenceNumber == WALK_DOWNRIGHT || people[AL]._sequenceNumber == STOP_DOWNRIGHT;
|
||||||
screen._backBuffer->transBlitFrom(*people[AL]._imageFrame,
|
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
|
// 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;
|
people[AL]._type = INVALID;
|
||||||
} else {
|
} else {
|
||||||
screen.flushImage(people[AL]._imageFrame,
|
screen.flushImage(people[AL]._imageFrame,
|
||||||
Common::Point(people[AL]._position.x / 100,
|
Common::Point(people[AL]._position.x / FIXED_INT_MULTIPLIER,
|
||||||
people[AL]._position.y / 100 - people[AL].frameHeight()),
|
people[AL]._position.y / FIXED_INT_MULTIPLIER - people[AL].frameHeight()),
|
||||||
&people[AL]._oldPosition.x, &people[AL]._oldPosition.y,
|
&people[AL]._oldPosition.x, &people[AL]._oldPosition.y,
|
||||||
&people[AL]._oldSize.x, &people[AL]._oldSize.y);
|
&people[AL]._oldSize.x, &people[AL]._oldSize.y);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue