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

 

Previous in thread
Next in thread

 

 

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