Resource centre for ZX Spectrum games
      using Manic Miner and Jet Set Willy game engines

 

Archive of the

Manic Miner & Jet Set Willy Yahoo! Group

messages

 

 

 

Message: 6955

Author: rushforthian

Date: 27/11/2016

Subject: Re: Broadsoft Lifts v0.2: Hex-editor type-in

 

Following further experimentation, here are a few caveats to my previous message (one for each of my previous bullet points):
(1) In a horizontal Lift-Rope interaction scenario, if Willy-on-the-Rope is still being 'elevated' by the Lift when the Rope turns round to start to swing away from the Lift, then his 'true' y-coordinate naturally decreases as he swings back towards the centre.  If that process takes his y-coordinate to lower than that of the Lift, whilst he is still within the same cell-column as the Lift, then he will suddenly be killed by the same Lift upon which he was harmlessly hovering up until that point.
(2) If the Lift isn't cell-row aligned when the Rope collides with it, and if the collision is with one of the pixels towards the base of the Lift [e.g. imagine a horizontal Lift located in the top-left of a room, being clipped by a Rope at the outer reach of its swing], then when Willy is 'teleported' onto the Rope by the collision, even though he is raised up one cell-row above the segment of Rope that touches the Lift (by the Rope code), his vertical position may still be lower than that of the Lift (even after being rounded to the nearest #10 by the Broadsoft code).  If that is the case, then the collision will be fatal to Willy.
(3) If Willy swings on a Rope into a Lift, having mounted the Rope by jumping onto it, then he will be killed regardless of his y-coordinate (i.e. if he is higher than the Lift, then that won't save him), because the Broadsoft Lift code will think that he is still jumping.  And that, in turn, is because the Airborne Status Indicator at #85D1 hadn't been reset to zero by the Rope routine at the moment when he landed on the Rope.  (The exception is if he happened to be cell-row aligned and descending at the point when he landed on the Rope. i.e. if the Jumping Animation Counter at #85D5 had been left with a value of 13 or 16.)

 

 

arrowleft
arrowright