aboutsummaryrefslogtreecommitdiff
path: root/engines/startrek/awaymission.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/startrek/awaymission.cpp')
-rw-r--r--engines/startrek/awaymission.cpp26
1 files changed, 13 insertions, 13 deletions
diff --git a/engines/startrek/awaymission.cpp b/engines/startrek/awaymission.cpp
index e086bca045..94ee86993c 100644
--- a/engines/startrek/awaymission.cpp
+++ b/engines/startrek/awaymission.cpp
@@ -105,9 +105,9 @@ void StarTrekEngine::loadRoom(const Common::String &missionName, int roomIndex)
actorFunc1();
initActors();
- double num = _room->getVar0c() - _room->getVar0a();
- double den = _room->getVar06() - _room->getVar08() + 1;
- _playerActorScale = (int32)(num * 256 / den);
+ Fixed16 num = _room->getMaxScale() - _room->getMinScale();
+ int16 den = _room->getMaxY() - _room->getMinY() + 1;
+ _playerActorScale = Fixed32(num) / den;
// TODO: RDF vars 1e/1f and 20/21; relates to BAN files?
@@ -446,21 +446,21 @@ void StarTrekEngine::unloadRoom() {
* further up (away) the object is, the smaller it is.
*/
int StarTrekEngine::loadActorAnimWithRoomScaling(int actorIndex, const Common::String &animName, int16 x, int16 y) {
- uint16 scale = getActorScaleAtPosition(y);
+ Fixed16 scale = getActorScaleAtPosition(y);
return loadActorAnim(actorIndex, animName, x, y, scale);
}
-uint16 StarTrekEngine::getActorScaleAtPosition(int16 y) {
- int16 var06 = _room->getVar06();
- int16 var08 = _room->getVar08();
- int16 var0a = _room->getVar0a();
+Fixed16 StarTrekEngine::getActorScaleAtPosition(int16 y) {
+ int16 maxY = _room->getMaxY();
+ int16 minY = _room->getMinY();
+ Fixed16 minScale = _room->getMinScale();
- if (var06 < y)
- y = var06;
- if (var08 > y)
- y = var08;
+ if (y > maxY)
+ y = maxY;
+ if (y < minY)
+ y = minY;
- return ((_playerActorScale * (y - var08)) >> 8) + var0a;
+ return Fixed16(_playerActorScale * (y - minY)) + minScale;
}
SharedPtr<Room> StarTrekEngine::getRoom() {