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: 7021
Author: ian.rushforth
Date: 16/01/2017
Subject: Re: Special Fire cells
> > What is a "'special' fire-block"?
> One which appears as Water in the editor but has been hackulated to act like Fire.
Presumably these special Fire cells act like Fire in terms of killing Willy if he stands on or in them, but they don't have the Trap-like qualities that normal Fire cells display. i.e. they are treated as a standonable cell by the 'Move Willy' routine, and therefore he can bounce off them in certain circumstances - but he can only survive the encounter if he is at the same position (in terms of his y-coordinate relative to his frame of animation) that allows him to fall into solid blocks adjacent to normal Fire cells (a previously well-documented quirk).
http://skoolkid.github.io/manicminer/reference/bugs.html#throughTheWall
i.e. In a single time-frame during the descent part of a jump, Willy's y-coordinate is adjusted such that the Fire cell is detected beneath him, and then his horizontal position is also adjusted such that he transitions across a cell-column boundary. So when the 'Draw Willy' routine is enacted later in the same time-frame, he has moved horizontally past the Fire, such that his attribute coordinates (or those of the two cells beneath his feet when he is cell-row aligned) don't coincide with the Fire cell, and he escapes being killed.
*
Now, in the case of the 'Special Fire cell bounce' manouevre, the check for standonable cells beneath Willy, immediately after his y-coordinate has been updated, will detect something that curtails his jump - and if the Jump button is being pressed, then another jump will be commenced when the next part of 'Move Willy' (detect keypresses) is executed. N.B. The correct Left-Right movement key (in the same direction that he is facing) would also need to be depressed at the time when Willy 'landed', in order to move Willy along horizontally (beyond the reach of the Fire cell) by the last part of 'Move Willy'.
However, if jump is not being pressed at that point during this manouevre - but the appropriate Left-Right movement key is being pressed - then I believe the Airborne status Indicator will be reset by the presence of the Special Fire cell underneath him. This should occur even though he will have moved past the Fire cell before he is next drawn, and so in the next time-frame he will commence falling (assuming that the next two cells beneath him, in the same row as the Special Fire cell, are both Air cells).
I believe that this will give rise to a couple of undocumented(?) quirky features (N.B. I have not yet experimented to confirm that these occur in practice):
(1) Willy will 'hover' for one time-frame at the same y-coordinate, before he begins to fall (when Willy starts to fall, the first time-frame is used to set the variables up for the fall, but the adjustment of his y-coordinate doesn't begin until the next time-frame);
(2) Willy should be able to fall a height of four cell-rows below the position of the Special Fire cell, without being killed:
Normally during a jump, the Airborne Status Indicator is set to a value of 6 at the end of the jump (reflecting the fact that Willy has already dropped two cell-rows from the apex of his jump), which means that he can't land safely on a block that is more than two cell-rows below the starting point of his jump. [AIRBORNE is incremented for every half-row of descent, and Willy is killed upon landing if it reaches a value of 12.]
But when he walks off a platform, the Airborne Status Indicator is assigned an initial value of 2, so he can drop up to four rows safely. I believe that will be the case in the above scenario, meaning that he will have survived falling a greater distance than usual from the apex.
(N.B. That is also the case when he bangs his head on an Earth cell jumping leftwards, or jumps through an Innocent-Looking Block, because AIRBORNE is also reset in those scenarios. It is peculiar that apparently harmful scenarios, such as banging his head or putting his feet against a Fire, can actually protect Willy from harm!)
