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: 4988

Author: andrewbroad

Date: 28/10/2005

Subject: Invalid Arrows (Re: "In the Sandhills")

 

Daniel wrote:

>
> In the room "In the Sandhills" (023) the last pair of arrows which
> appears (the fourth one, counting from the moment you have entered
> the room, the arrows enter from the right) looks incorrect in the
> emulator – the arrows seem to have the upper part missing.
> In JSWED they look OK, at least to me – there is nothing to
> suggest there may be a problem. Any idea of why this happens and
> (more importantly) – how to solve it?

What we have here are INVALID ARROWS (arrows whose pixel-patterns
straddle two character-rows).

JSWED allows invalid arrows - quite rightly - but it needs to give a
clear warning to the user when the arrow is invalid, identify the
type of invalidity and indicate its effect.


* LOWER-INVALID: the shaft of the arrow is the bottom pixel-row of
its character-row, so the bottom pixel-row of the arrow is cut off.

(a) If the arrow is in the bottom half of the playing-area, then
its bottom pixel-row is permanently drawn onto the top half
(8 character-rows above the arrow).

(b) If the arrow is in the top half of the playing-area, then its
bottom pixel-row is temporarily drawn onto the bottom half
(8 character-rows below the arrow).


* UPPER-INVALID: the shaft of the arrow is the top pixel-row of its
character-row, so the top pixel-row of the arrow is cut off.

(a) If the arrow is in the bottom half of the playing-area, then
its top pixel-row is permanently drawn onto the top half
(8 character-rows above the arrow).

(b) If the arrow is in the top half of the playing-area, then its
top pixel-row is written as a COLOUR-ATTRIBUTE to the bottom
half! (8 character-rows below the arrow).

Upper-invalid arrows of type (b) are probably the most spectacular
quirky feature of JSW, and have several applications:

1. An invalid arrow can be used to make a platform appear a certain
number of time-frames into a room.

2. An invalid arrow can be used to knock out a character-row (by
setting the pixel-pattern to the background (Air) colour-attribute).

3. A pair of invalid arrows can be used to hurl floor-blocks across
the screen that you have to jump onto and off (the first invalid
arrow has an arbitrary colour-attribute as its pixel pattern; the
second invalid arrow the background colour-attribute). The width of
this flying platform is determined by the difference between the two
arrows' start-columns.

4. Likewise, a pair of invalid arrows can be used to hurl static-
nasty (Fire) blocks across the screen, by setting the first arrow's
pixel-pattern to the colour-attribute of static nasty.

The general rule is that the pixel-row of the arrow must be set to
the colour-attribute of the block-type as which you wish it to
behave, as follows:

FBPPPIII
(where F is the FLASH bit, B is the BRIGHT bit,
PPP are the PAPER bits, and III are the INK bits)

Colour-attributes not defined as block-types behave as floor (water).

--
Dr. Andrew Broad
http://www.geocities.com/andrewbroad/
http://www.geocities.com/andrewbroad/spectrum/
http://www.geocities.com/andrewbroad/spectrum/willy/

 

 

arrowleft
arrowright