diff options
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/actor.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/scumm/actor.cpp b/scumm/actor.cpp index f1262a313c..3c6ddf272f 100644 --- a/scumm/actor.cpp +++ b/scumm/actor.cpp @@ -373,13 +373,24 @@ void Actor::setupActorScale() scale = resptr[theY]; } + // FIXME - Quick fix to ft's fuel tower bug (by yazoo) + // + // Ben's Y position can be anything between 272 and 398 inclusive + // (which by the way means that we're always looking at the same + // element in the scale table... hmmm...) + // + // When standing at the bottom of the ladder, Ben's Y position is + // 356, and by the looks of it he ought to be unscaled there. + + if (scale == 1 && _vm->_currentRoom == 76) { + scale = 0xff; + if (y < 356) + scale -= 2 * (356 - y); + } + if (scale > 255) warning("Actor %d at %d, scale %d out of range", number, y, scale); - // FIXME - Quick fix to ft's fuel tower bug (by yazoo) - if (scale == 1 && _vm->_currentRoom == 76) - scale = 0xFF; - scalex = (byte)scale; scaley = (byte)scale; } |