JETSET WILLY EDITOR
Build your own mansion
Software Projects Approved
Distributed by SPECTRUM ELECTRONICS
110 Leagrave Road, Luton, Bedfordshire
Written by Paul Rhodes, 1984

INSTRUCTI0NS:
To load the program, put the Jet Set Editor tape in your cassette player,
connect EAR socket on Spectrum to EAR socket on cassette player, and type
LOAD "", followed by the ENTER key. After a short time, a flashing picture will
appear. The main program will then be loaded and you will be asked to play the
'JetSet Willy tape'. Once the JetSet Willy program has loaded, the main menu
will appear.

MAIN MENU OPTIONS:
(1) Save entire game	= SAVE "jsw1" CODE 32768,32768
(2) Load entire game	= LOAD as option 1
(3) Save room (CODE)	= SAVE "Room:nn"
	CODE (49152+256*nn),256
	(nn=room no.)
(4) Save objects	= SAVE "Objects" CODE 41983,513
(5) Save room (JSE)	See below
(6) Load room (JSE)	See below
(7) Save guardians	= SAVE "Guardians1"CODE 40960,1020:
	SAVE "Guardians 2"CODE 42496,6656
(8) Load guardians	= LOAD as option 7
(9) Play game	= RANDOMIZE USR 33792

Options 5 and 6 SAVE and LOAD rooms together with all the object positions and
guardian and graphic data related to them. The other SAVE options produce copies
that can be LOADed from BASIC, but as the data saved by option 5 is not stored
as it is in the JetSet Willy program, this is not possible with JSE files. There
is no option to LOAD a room without guardian and object data as undefined
guardians can cause crashes.

E) THE SCREEN EDITOR:
Cursor movement: Use keys 5 to 8 to move the flashing cursor. Changing screen:
Use keys 5 to 8 with CAPS SHIFT to move to another screen.
Defining exits: Use keys 5 to 8 with SYMBOL SHIFT in define which rooms will be
to each side of the room you are in.
The Data Line: This is directly below the room name. It shows the graphic
squares representing, from left to right, the background (usually blank). the
'floor', the 'wall', the 'nasty', the 'ramp', the 'conveyor', and the 'object'
which you have to collect. The character shown in the white between the two
arrows is the 'current character', which will be deposited on the screen at the
cursor position when you press '0'. To change the current character, move the
cursor over one of the first four graphics on the data line, and press '0'. 'Rm'
is the number of the room you are in, and 'Ob' is the number of objects that
must be collected to complete the game.

OTHER KEYS ARE:
A: sets attributes of character under cursor (cursor must be over one of the
   first 6 on data line).
M: defines 8x8 graphic character for graphic under cursor (cursor on data line).
   Within character definer: 5-8 to move cursor, 0 to flip pixel on/off, CAPS
   SHIFT P to pick up current definition of character, Q to set character and
   return to screen editor.
C: places conveyor belt with left-hand end at cursor position. Direction 0=left,
   1=right.
R: places ramp with bottom at cursor position.
P: places 'object' at cursor position (if held down, many objects will be placed
   on top of each other; avoid this unless that is your aim).
D: deletes 'object' at cursor position (hold down to remove multiple objects).
B: sets border colour for current room.
N: inputs room name: CAPS 8 and CAPS 0 to move cursor, ENTER to finish.
? (SYMBOL SHIFT C): Clears screen, except for graphics definitions and objects.
. (SYMBOL SHIFT M): Returns to Main Menu.

DOS AND DON'TS:
Don't put anything in the path of a guardian (they leave trails to help show the
parts to avoid). Don't have arrows passing through anything with white INK. If
you have white background INK, any objects in the room will be automatically
collected on entry to the room (see swimming pool). Do not have have two
characters with the same attributes, especially if one is a 'nasty'. Having the
same attributes for ramp and conveyor creates a 'conveyor ramp' (see Chapel).
Avoid having a 'nasty' at the top of the screen above a gap at the bottom (see
right-hand half of Under the Roof). Do not put anything in the path of a rope
(try it and see!), and do not allow an arrow to pass through a rope (especially
not a white rope). Never allow guardians to overlap. Objects on top of other
characters (floors, walls, etc.) cannot be collected. Do try anything else that
seems like a good idea. Do save any rooms you wish to keep before playing the
game!

6) THE GUARDIAN EDITOR:
Each guardian is identified by a number in the range 1-126. Most of them up to
111 are already in use, but any guardian can be deleted from all the rooms in
which it occurs, so leaving the space it occupies in the data area free for
defining a new guardian. Each guardian is associated with a 'page' of 8
graphics, and a set of parameters to determine which of these graphics are used
and how they move. Whenever a guardian is used, two more parameters must be
specified; a start position in character positions across the screen; and a
'start' character, which further modifies which characters will form the
guardian. The start character is the lowest number graphic that will be printed
(the 8 graphics in each page are numbered 0-7). 'Animation' is part of the
guardian definition, and affects the number of characters used:

Animation 0 gives no animation: only a single character is used (eg. the
barrel).
Animation 1 gives 2 character animation (eg. the jelly).
Animation 3 gives 4 character animation (eg. the thing in the bathroom).
Adding 4 to the animation number for a horizontally-moving guardian gives
bi-directional animation, eg. anim. 7 = 4 to the left, 4 to the right. For
vertically moving characters, adding 4 increases the number of graphics used.
Animation 2 would give slow animation using only the even numbered characters 0
and 2. 6 would be bi-directional slow 2-character animation.

Technically, the character number to be printed cycles constantly from 0 to 7,
and is modified before printing by ANDing with the start character and ORing
with the animation.

ARROWS
move constantly along an imaginary line with 256 positions numbered 0-255. Only
positions 0-31 fall within the screen boundaries: the rest constitute the delay
between the arrow leaving on one side and coming back on the other. An arrow is
defined with a direction and a start position along the line. It also has a
'Top/bottom byte', which in its binary representation gives the bit-pattern for
the appearance of the top and bottom of the arrow. Eg. 65 * 01000001 binary,
which as a top/bottom byte would give an arrow like this:

 *     *
********  (*=pixel set)
 *     *

Note that the middle is always 11111111 binary (255 decimal). When used, an
arrow must have a height specified. This height is in pixel positions from the
top of the screen, but the top or bottom of the arrow should not fall outside
the character position containing the body of the arrow. Put more simply, the
height should not be exactly divisible by eight, nor must it be one less than a
number which is exactly divisible by eight.

NB. Heights are always given in pixels from the top of the screen, horizontal
positions are in character positions from the left of the screen (as in PRINT
AT). Directions are 0 or 1 (for left and right respectively). For bi-directional
graphics, the left-facing graphics are in characters 0-3, and the right-facing
ones in 4-7, so a 2-character bi-directional guardian with start character 2
would use 2,3,6 and 7. Horizontal movement is obtained by scrolling characters
within their character positions (see the monk or the bird for egs.) but
vertical movement is by moving the character position. Try moving a horizontal
character vertically, or vice-versa to see the difference.

THE ATTIC:
The arrow moving to the left in the attic is the cause of the problems usually
encountered after passing through this screen, due to it being called in an
unorthodox manner. Such a problem cannot be created using this editor. It can,
however, be removed, using option 6 on the guardian menu.

THE GUARDIAN MENU:
(1) Examine a guardian	Prints out page and rooms in which a guardian occurs.
                        Also shows guardian, given start character, as it would
                        appear in the game.
(2) Define a guardian	See above. Also: Vertical displacement is how many
                        pixels a vertical guardian moves at a time. Fast
                        animation is self-explanatory.
(3) Delete a guardian	Removes guardian from all rooms in which it occurs.
(4) Define graphics	Like option M in the screen editor, but you can also
                        scroll using CAPS SHIFT S, and you can pick up any
                        character.
(5) Examine screen	Shows guardian numbers and start characters for all
                        graphics on screen.
(6) Edit screen	'G' to place guardian, 'D' to delete, 'Q' to return to menu, '5'
    and '8' to move cursor. NB. the rope is guardian no. 1.

Example screens are on the tape after the JetSet Editor program. Load using
option 6 on the Main Menu. Define 'up' from Beach (S/SHIFT 7 in Beach) as room
47, and go up to the 'Space Station'. (The room numbers for loading are 47 and
61).

JETSET EDITOR

ADDITIONAL INSTRUCTIONS

SCREEN EDITOR
< > (SYM/SH W) - Set start position for Willy (cursor = top-left corner of
Willy).

GUARDIAN EDITOR
CAPS R in Graphic Editor (Option 4) 'Reflects' graphic.
