Help file for the MAPEDIT editor of Shadow of Power
written 1999 by Sokke

Welcome!

This file will introduce you into the work with the SoP MAPEDIT editor. It's divided into the following
chapters:

	1. Introduction
	2. Using Items
	3. Using basic MAP objects
	4. Using enemies
	5. advanced editor functions
	6. advanced MAP objects and CMDs
	7. cool hints and tricks

So - let's start with it!

1. Introduction
---------------
When you launch the MAPEDIT.EXE, you'll see an ugly-looking awfully bad designed screen full of strange
text strings and a kind of a grid. Welcome - this will be your new working environment when you're
going to design your own SoP addon episode. Not scared? Well - then let's have a look at the strange
things that appear on the screen, to uncover their purpose:

The Grid: The grid is the main element that you need. When you edit your level, you'll put all game ele-
ments into this grid. It contains MAP objects, items, enemies. Use the cursor keys to move around in the
grid. In the editor, the MAP grid appears with dimensions of 10x20, you can scroll right and left. So
you have grid dimensions of 20x20 in the end. The grid will be mentioned very often in this file, so
don't panic if there are questions left without an answer. It's all going to be explained!

The position indicator (top left): These two numbers show you, where you are with the cursor on the MAP.

The MAP filename indicator (top, red colour) Displays the filename of the MAP that you're currently edi-
ting.

Wather indicator (bottom left): Displays the climate of the MAP. Press W to change it.

landscape style indicator (bottom, white color): Displays the current landscape style, press 'O' to
change.

The Matrix object section (top right): The first, white coloured line describes the number and the name
of the matrix object you've selected. You can select a matrix object with the '+' '-' keys. The red-
coloured lines describe the purpose and the value of TAG 1. It's the same for TAG 2 with the yellow li-
nes. The gray expression ABOVE the yellow box is the STRING TAG value of the selected Matrix object.
press A to enter the TAG 1 value, B for TAG 2 and SPACE for the STRING TAG. When you've selected 
MATRIX OBJECT # 1 (landscape), you can also press BACKSPACE to select a sprite in a more comfortable
way.

The ITEM section (yellow box on the right) is used to select an item. Use the PAGEUP and PAGEDOWN keys
to select items. You can also use HOME or END keys to go directly to the first/last item in the list.

The pointer indicator (gray; on the right) shows a the MATRIX POINTER value for the actual cursor posi-
tion. (See CMDHELP.TXT)


How to load a file:
-press 'L'
-enter the X coordinate of the MAP
-enter the Y coordinate of the MAP
-enter the Z coordinate of the MAP

How to save a file:
-press 'S'
-enter the X coordinate of the MAP
-enter the Y coordinate of the MAP
-enter the Z coordinate of the MAP

2. adding items
---------------
Although it sounds strange, we start with this, because it's the easiest thing to do.

You should know how to select an item from the list: PAGUP, PGDN, HOME, END

To 'draw' the selected item into the MAP, simply press 'INS'. And then, to remove it, press 'DEL'.
Isn't that easy?

Now, it becomes really COMPLICATED: If you're gonna create a shop where items cost something, press
'C' and select a price. Then draw the items into the MAP. All following items will cost the selected
amount of money, until you press 'C' again, to change the price or make it available for free again.

Bug: NEVER set items into the upper left corner. You can't remove them from this point!

O.K.? Then, let's go on!

3. basic MAP objects
--------------------
Although this is not as easy as handling items, you'll see - it's easier than you've possibly expec-
ted.

You've already learned how to select a MAP object and how to enter the parameters. To add an object to
the MAP, simply press RETURN. To remove it, select object # 0 and press RETURN. There is another useful
function: press '#' on any MAP square to 'copy' the square into the MAP object section. You'll see:
This is easy too!

Note that 20x20 sprites MUST have a '!' prefix, like: !filename in most cases, if it doesn't work like
that anywhere, it will be mentioned!

Which kinds of MAP objects are there?

--------------------------------------------------------------------------------------------------------
1. Absolutely basic: the 'landscape' object

Landscape objects are simple objects that display a sprite and can block or not. Such as walls, stones,
trees etc.

	TAG 1: The 'height' of the object. The following values can be found:

		1=high, no flying or shooting over the object is possible
		2=middle, the hero and shots can fly above the objects.
		3=flat, just like the normal floor
		4=overlay, always above everything, but no blocking

	TAG 2: The centering of the sprite:

		0=The sprite is set to X;Y (default for 20x20 sprites)
		1=The sprite is set to X-10;Y-20 (default for 40x40 sprites)
		2=The sprite is set to X;X, it's hittable by big weapons and bombs (bushes, barrels...)

	STRING TAG: The filename of the sprite. 20x20 sprites MUST have a '!' prefix, like: !filename

--------------------------------------------------------------------------------------------------------
2. Inside map teleporter

Shows a teleporter that teleports the hero to a selected spot in the current map.

	TAG 1: X-MATRIX-destination

	TAG 2: Y-MATRIX-destination

	STRING TAG: The teleporter Sprite (1-5). (Default = '!Beam2' !!!)

--------------------------------------------------------------------------------------------------------
3. Take a bath: the pool

	Pools are all kinds of holes in the floor, that can contain many different things, such as
	water, acid, lava...

	TAG 1: The number of animation steps. This will be set automatically.

	TAG 2: Describes, if it costs life to take a bath in the pool (1/0). Will also be set automati-
	cally.

	STRING TAG: Describes the sprite of the pool. When you set it in the MAPEDIT by pressing SPACE,
	it'll automatically set all other TAGs.

--------------------------------------------------------------------------------------------------------
6. Puzzle time: dragging blocks

Draggable blocks can be used for puzzles or for the creation of secret passages.

	TAG 1: none

	TAG 2: none

	STRING TAG: The Sprite to be used for the block

--------------------------------------------------------------------------------------------------------
7. Bright idea: lights

The support of really working lights is very, very, very seldom in QuickBASIC. But - here you are:

	TAG 1: Determines if the light is blocking or not. (1/0)

	TAG 2: If set to 1, the light is ALWAYS in the background, like a glowing floor. (1/0)

	STRING TAG: There are 7 different light sprites, !Licht1 ..... !licht7 . Select one!

--------------------------------------------------------------------------------------------------------
8. Begin conversation: persons

	TAG 1: How will the person behave? When set to....

		...2, it will SPEAK and ALWAYS be animated. This should only be switched on if the
		selected person sprite SUPPORTS looped animation. When you select a person by pressing
		SPACE in the MAPEDIT, this will automatically be set.

		..1, it will SPEAK and SELDOM be animated. This is default.

		..-1, same as 1, but the person won't speak

		..-2, same as 2, but the person won't speak


	TAG 2: none

	STRING TAG: A valid person file name. Press SPACE in the MAPEDIT to get a list of all availa-
	ble persons. The text/wav files of the persons are stored in the SOUNDS\SPEECH folder. The
	sprites can be found in the folder GRAFIK\PERSONEN.

--------------------------------------------------------------------------------------------------------
9. Good for orientation: pathways

	TAG 1: none

	TAG 2: none

	STRING TAG: none

	(this is easy to use, isn't it?)

--------------------------------------------------------------------------------------------------------
10. Step in: doors

	Doors are used as entrances of houses etc. Make sure that the tiles left and right next to the
	door are NOTHIN OTHER than landscape objects. Especially lights will cause bugs here!

	TAG 1: none

	TAG 2: none

	STRING TAG: none

--------------------------------------------------------------------------------------------------------
11. Open up: chests

	Chests normally contain a vast amount of gold. But with some tricks, you can make them contain
	a punching fist or nothing at all (for scenes like the SoP intro).

	TAG 1: Set to 1 if the chest is already opened, or to 0 (default) when the player shall be the
	one who is to open it.

	TAG 2: Amount of gold. Set to a number > 0 to define an amount of gold, set to 0 for the pun-
	ching fist or set it to -1 to make the chest contain nothing.

	STRING TAG: none

--------------------------------------------------------------------------------------------------------
12. Up 'n down: stairs

	The stairs teleport the hero one floor up or one floor down, depending on TAG 1. Example: When
	set to "downstairs" in the MAP 12-08-01, it'll take you to 12-08-00.

	TAG 1: Set to 2 for "downstairs", set to 1 for "upstairs"

	TAG 2: none

	STRING TAG: none

--------------------------------------------------------------------------------------------------------
13. Explore: secret path

	A secret path is a crack in a rock wall. When it's blasted (with a bomb), a black "tunnel" is
	set free. This tunnel works like a "downstairs" object (#12).

	TAG 1: Set to 1 if the crack shall already be blasted, set to 0 if not.

	TAG 2: none

	STRING TAG: none

--------------------------------------------------------------------------------------------------------
15. Global teleporter

	A global teleporter can teleport the player to any spot in any MAP.

	TAG 1: The destination MAP square X coordinate

	TAG 2: The destination MAP square Y coordinate

	STRING TAG: The Destination MAP + a teleporter sprite number (must be '2'). Example: 12-08-012
	for number 2 and MAP 12; 8; 1.

--------------------------------------------------------------------------------------------------------
16. Read out: sign

	A sign may stand anywhere and contain information in WAV/textfile format.

	TAG 1: none

	TAG 2: none

	STRING TAG: A WAV/text file in the SOUNDS\SCHILDER folder.

--------------------------------------------------------------------------------------------------------
18. Locked door

	A locked door looks like a normal door with a lock. It only opens if the player has got a so
	called 'key item'. When it's open, the player looses his key item and the door stays open for-
	ever.

	TAG 1: The key item. Use only items with a number > 100 (inventory items).

	TAG 2: Set to 1 if the door shall already be opened. Set to 0 if not.

	STRING TAG: none

--------------------------------------------------------------------------------------------------------
20. Shooter

	Shooters are blocking sprite objects that spawn a specified shot in a sure direction repeatedly,
	when the player stands in the target line.

	TAG 1: The direction to shoot. 0=^ 1=> 2=v 3=<

	TAG 2: A valid shot style number, as there are:


		 1=arrow that hits enemies (upgraded when hero owns the upgraded bow)  \
		 2=arrow of ice that freezes enemies                                    }not quite sui-
		 3=fireball that hits enemies                                          / table for this
		 4=small stone that hits the hero (like the ones the sniffys shoot with)
		 6=ignited bomb (affects both hero and enemies)
		 7=fireball that hits the hero
		 8=arrow that hits the hero
		 9=snake that hits the hero (the enemy type #3 must be snakes)
		10=magic energy shot that hits the hero
		11=magic fire ray that hits the hero (shot by plants etc.)
		12=bomb explosion radius extension (damage 4 (if dir=2) or 2 (if dir=1)) must be 2 or 1
		20=arrow of ice that freezes the hero
		30=shotgun shot that hits hero (used by the final boss)

	STRING TAG: A background sprite for the object in the matrix.

--------------------------------------------------------------------------------------------------------
21. Electric spark

	Moves around blocks, walls etc. Make sure that the needed pathways are all wide enough.

	TAG 1: none

	TAG 2: none

	STRING TAG: none

--------------------------------------------------------------------------------------------------------

4. Enemies
----------
In the SoP engine, there can be 4 different kinds of enemies available in one MAP.
There are 4 enemy classes for every MAP. An enemy file can be loaded into an enemy class and enemies
can be set from any enemy class. So you may use up to 15 enemies in one MAP, but only 4 different kinds.
Got it?
To load a file into a class, press F1....F4 for class 1 to 4.
To set enemies from those classes, press 1 2 3 4 anywhere on the grid.
Press '0' on the grid to delete enemies from the MAP.

Note: Undead creatures (who can't be killed in the ordinary way) MUST be loaded into class #1.

Here is a list of all creatures and their special properties:

	Creature File	Name		Health	Attack	Special
	---------------------------------------------------------------------------------------------
	BALROG		Balrog		100	4	boss
	BLOB		Blob		5	1	
	BOMBGOB		Bomberman	5	1	lays bombs
	CHAOS		Chaos warrior	20	2	
	DAEMON		Demon		32	3	
	DARK		Dark One	8	2	may be in dark rooms
	FEUEREL		Fire element	20	2	
	FLEDER		Bat		3	1	
	GOBKING		Goblin King	30	1	boss
	GOBLIN		Goblin		5	1	
	HEXER		Witchlord	15	1	boss; teleports
	IMP		Imp		14	2	
	JB		Jman		160	4	boss
	KOKON		Cocon		20	0	turns into plant; must be enemy #4
	MAGIER		Mage		10	3	teleports
	MEDUSA		Medusa		50	2	boss; shoots snakes -> enemy #3 must be snake
	MINO		Minotaur	40	2	boss
	MUMIE		Mummy		12	2	undead
	NAZGUL		Bad guy		28	3	teleports
	ORK		Orc		10	2	may be in dark rooms
	ORKH		Orc boss	70	3	boss; creates CRACK effectors
	PFLANZE1	Big plant	25	3	undead; cocons; turns when killed; must be #1
	PFLANZE2	Revenge plant	10	3	must be enemy #2
	SCHATTEN	Shadow		14	1	displays star effect
	SCHLANGE	Snake		5	1	
	SKELETT		Skeleton	10	1	undead
	SPINNE		Spider		20	2	plays alternative sounds when it hurts player
	TAIFUN		Typhoon		60	2	boss; set with cloud effector!
	VIEH		Sniffy		3	1	
	VIEHX		Blue Sniffy	8	1	
	WIZARD		Orc mage	15	2	shoots with arrows of ice; teleports
	ZOMBIE		Zombie		8	2	undead

Special: Plants

The green plants live in the badlands and act very cruel: They infect blobs with a kind of virus to make
new plants out of them. To use plants in a map, you have to load the following files into the enemy
classes:

	#1 = PFLANZE1 (Grown-up plants)
	#2 = PFLANZE2 (Revenge plants)
	#3 = BLOB     (Victim)
	#4 = KOKON    (Infected victim)

Hint: If you modify the sprites of the infected victims, you may use another enemy for victim!

Special: Teleporting

Some enemies like to teleport to any spot in the MAP. But sometimes, you may have 'black outside-MAP'
squares, where you don't want ANYTHING to happen. It looks pretty awful when enemies suddenly teleport
into such a black area. To prevent this, fill the black areas with '!NICHTS' (nothing) sprite land-
scape objects. Enemies will only teleport to spots with OBJECT #0.

Special: Bosses

Bosses are handled completely different. Don't try to 'put' them into them MAP. Handling bosses will be
described later. Just notice that bosses MUST be loaded into class #1.


5. Advanced editor functions
----------------------------
This chapter contains further information on efficient work with the MAPEDIT.

Special key shortcuts:

SHIFT+X: clear map

P: insert big zelda-like tree (although the tree looks uncompleted, it works all right)

H: House maker = easy house creating tool

SHIFT+A: Animator shortcut, see chapter 6

SHIFT+E: Show effector quick help, see chapter 6

F: Automatic border-drawing for rock construction

SHIFT+X: Clear MAP

Special tile functions:

When you 'copy' a house back or front wall and then set it anywhere, it randomly changes to a decoration
tile.

Carpets:

Carpets are used for House roofs or special floors that shall not waste MATRIX objects. Press 'G' to
define or redefine a carpet. For the sprite value, you can use:

	$!H1	(House style 1)
	$!H2	(House style 2)
	$!H3	(House style 3)
	BLACK	(For those DARK-OUTSIDE-MAP areas)
	EISFELS	(like rock wall, but coloured like ice)
	FELD	(Farming field)
	FELS	(rock wall)
	HOLZ	(wooden floor)
	KACHELN	(Puzzle ground)
	PLATTE	(blue special castle floor)
	PLATTE2	(green special castle floor)
	RASEN	(green grass)
	ROT1	(red carpet, left side)
	ROT2	(red carpet, right side)
	SAND	(sand)
	STRAND	(sand too)
	VFELS	(Volcano rock wall)
	WEG	(Pathway)



6. Complex MATRIX objects
-------------------------
Now, it REALLY becomes complicated, I'm afraid.
Nevertheless, let's start with a simple thing:

--------------------------------------------------------------------------------------------------------
4. Switches

	Switches are used to raise an event when the player steps on them. When it's an invisible
	switch, it'll also activate when the player flies over it. Invisible switches are of great
	importance for complex game designing, so read carefully:

	TAG 1: none

	TAG 2: An event number that shall be raised when the switch is activated.

	STRING TAG: '!Schalt1' or '!Schalt2', '!Schalt1' is invisible, '!Schalt2' is visible.

--------------------------------------------------------------------------------------------------------
5. Dependent blocks

	These blocks can change their blocking state and sprite when an event occures.

	TAG 1: Startup state: Open (non-blocking) = 0; Closed (blocking) = 1

	TAG 2: Event number

	STRING TAG: A valid dependent block sprite

--------------------------------------------------------------------------------------------------------
14. Event items (inivisible when playing)

	Spawns in an item when an event occures.

	TAG 1: A main item number

	TAG 2: Event number

	STRING TAG: none

--------------------------------------------------------------------------------------------------------
17. CMD macro object (invisible when playing)

	Launches a CMD file when an event occures. (See CMDHelp.txt)

	TAG 1: Event number

	TAG 2: none

	STRING TAG: The macro filename without extension/path

--------------------------------------------------------------------------------------------------------
19. Timer object (invisible when playing)

	Raises an event repeatedly in a set interval.

	TAG 1: Startup counter value (0 is default, 0 to TAG 2 -1 are valid)

	TAG 2: Time interval (in frames)

	STRING TAG: The event number to raise

--------------------------------------------------------------------------------------------------------
22. Boss

	Load a valid boss into enemy class #1. Place this tile where the boss shall appear.

	TAG 1: none

	TAG 2: The startup health of the boss. See the list in chapter 4.

	STRING TAG: A valid BOSS GFX file. Use the Sprite filename mentioned as the 2nd entry in the
	used UNI file.


	When a boss is killed, event #204 is launched!

--------------------------------------------------------------------------------------------------------
23. Effector (invisible when playing)

	The effector object is used, like you might guess, for some special effects and special func-
	tions. The meaning of the TAGs changes from tile to tile, so let's see:

	The different EFFECTOR #s (TAG 1)

	1. Ambient sound, as there are:

		TAG 2	STRING TAG	Sounds like
		----------------------------------------------
		4	AQUA		bubbling water
		4	DRIP-		dripping sounds inside cave
		2	SUMPF		swamp ambience
		6	URWALD		jungle
		2	WALD		forest
		3	Z		zombies shouting for help

		you see, TAG 2 equals the amount of files, STRING TAG is the file prefix

	2. Flame (ugly looking!)

		TAG 2 = MATRIX pointer to the field to flame.

		STRING TAG = SPRITE PREFIX (!FLAMME)

	3. Rolling stone :)

		You know the big stone trap in the 'Indiana Jones' cave? You don't? Well, then, I'm a-
		fraid, you'll have to find it (in the SoP junle).

		Will be launched with event #2

	4. Respawn: Spawns in enemies (class #4). When event #204 is launched, this effector
	disappears. So it'll disappear when a boss dies in the MAP.

		TAG 2: Event for spawning in enemy

		STRING TAG: Health for the enemy, see list in chapter 4.

	5. Event sound: Sound is played when an event occures.

		TAG 2: Event number to play sound. Event will be re-setted to 0. If TAG 2 is < 0, the
		absolute value is used, and the event won't be re-setted.

		STRING TAG: Sound filename

	6. Special music in this MAP

		TAG 2: If set to 0, this effector will work right from the start. If set to <> 0, this
		is an event number to change the music.

		STRING TAG: MIDI file (without path/extension, must be found in SOUNDS folder)

	7. Animator: Used to animate landscape objects and all other objects, if their string tags end
	with a one-numeral-number

		TAG 2: MATRIX pointer on target object

		STRING TAG: "1"+SEQUQNCE. Example: for sequence 1; 2; 2; 3; 1; 4 it would be: 1122314.

		Hint: press # on a MAP object to 'copy' it. Don't move the cursor and then press 'A'.
		Now enter an animation sequence WITHOUT leading "1". Then, simply place the animator.

	8. Thunderstorm: Simply place it. Don't forget to change the weather to 'rain'

	9. Write number into XBUFFER:

		TAG 2 = XBUFFER address (from 0 to 20...)

		STRING TAG: number to write into the specified address

	10. Sliding platform (ugh) object A

		TAG 2: XBUFFER address. At address TAG 2 must be the pixel-x-coordinate of the platform,
		at TAG 2 +1 must be the pixel-Y coordinate,
		at TAG 2 +2 must be the pixel-X left stop coordinate,
		at TAG 2 +3 must be the picel-X right stop coordinate.

		(umph!)

	11. Sliding platform object B

		TAG 2: XBUFFER address like for object A

		STRING TAG: when set to 1, platform will go to the right at first. When set to -1, it'll
		start going to the left.

	A special note on sliding platforms

	Like you should have seen, sliding platforms are the most difiicult thing to use. If you ask me,
	you should rather NOT use them. When you calculate, you'll see: you need 6(!) objects for one
	platform. As there are:

		4 #9 effectors to set up some coordinates into the XBUFFER (an extension integer array)

		1 #10 effector (should be as top-left-located in th map as possible)

		1 #11 effector (should be very bottom-right-located)

	12. Change acting mode (AI) of enemies (only class #1)

		TAG 2: Event to change AI

		STRING TAG: AI number, as there are:

			1=team work, scared when too less team members
			2=dumb, just walk around randomly
			3=attack, run after the hero and try to attack
			4=distance, run away and then turn to the hero to shoot at him

	13. Gossip (the rumor engine, up to 35 rumor files), engaged by event #123

		TAG 2: Set it to the startup gossip number (1 to 35)

		STRING TAG: sound/text file prefix

	14. If goal number >= TAG 2 raise event in STING TAG, see CMDHelp.txt

	15. Set goal

		TAG 2: When set to 0, set it when player enters MAP. When set to > 0, this equals an
		event number to launch this effector.

		STRING TAG: Set to XX-YY-Number. Example: For number 3 and MAP 12; 8; 1 it's 12-08-3

	16. Cloud for typhoon

		You'd rather forget this. Continue with the next effector.

	17. Fly over water

		When this object is placed in a MAP, all enemies will not be blocked by water.

	18. Set sprite at...

		TAG 2: MATRIX pointer to target square..

		STRING TAG: SPRITE

	19. Jman control

		Used to make the Jman act.

		TAG 2: Event that launches the Jman action. Will also be launched when Jman steps onto
		this effector.

		STRING TAG: Jman command string, formatted: EVT+C+D+VAL. EVT must be an event number
		with a length of 3 numerals That shall be raised after the action has been done. Set to
		0 if it's not needed. C is one of these 'commands':

			G=Go           (walk in the specified direction)
			W=Wait         (wait for VAL frames, VAL must have a length of 3 numerals)
			D=Dir          (turn into the specified direction)
			T=Teleport in  (with sound and smoke effect)
			X=Teleport out (also with sound and smoke effect)
			S=Set          (appear without effects)

		D is a valid direction descriptor: 0=^ 1=> 2=v 3=<

	20. Jman instance object must be set as bottom-right-located as possible when the effector #19
	is used.

	21. Crack floor

		Don't fall in.

	22. Don't show help arrows until

		In some castles, help arrows point into the wrong direction. For this purpose, you can
		turn them off until a specified mission goal number is set.

		TAG 2: Maximum goal number. When goal number is >, this effector won't work any more.


	23. Show help arrows again

		When effector #22 is placed in the first chamber of a castle, this must be placed in the
		first MAP outside the castle.

--------------------------------------------------------------------------------------------------------


7. Cool hints and tricks
------------------------

Although you've already learned a lot of things, you might be surprised when you hear of those cool
thing you can do:

1. The priority system of invisible objects (like effectors)
Take a look at this example MAP:
___________________________________________
|1 |2 |3 |4 |5.|..|  |  |  |  |  |  |  |  |
|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
| .|..|6 |7.|..|  |  |  |  |  |  |  |  |  |
|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
|  |  |  |  |  |  | .|..|8.|..|  |  |  |  |
|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
|  |  |  |  |  |  | .|..|9.|..|  |  |  |  |
|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |
|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
|  |  |  |  |  |  |  |  |  | .|..|10|11|12|
|__|__|__|__|__|__|__|__|__|__|__|__|__|__|

When you want to give several objects different priorities, put them more or less to the top left. The
example MAP shows the priority system: Thh larger the numbers are, the less priority they have. Object
'1' is being processed at first in every frame, '12' will always be processed at last.

2. Items out of bushes and trees...
As you should know, sometimes, when bushes, small firtrees or barrels are smashed, a heart, a coin or
even a small mana potion appear randomly. But a feature that is nearly NOT used in SoP, but well sup-
ported by the engine is the selectable hidden item. Press SHIFT+K while you've selected Matrix object #1
and see a great list of some interesting things that COULD appear when you destroy something.
(The global teleporter teleports you to a MAP with the same X and Y coordinates as the current MAP, but
with Z = 9)

3. The GRUM prefix
One of the VERY strange laws of the SoP engine ist the special meanging of the GRUM prefix. When you
take a glance at the GRAFIK folder, you'll see quite a lot of sprites that start with GRUM. WHAT IS
THIS GOOD FOR? Well... it's a long story. At the beginning of the SoP designing process, we needed a
special feature for a sprite named GRUMMEL.SPR, may be translated as 'Grumble'. But we soon recognized
that this feature would be useful for more puposes. So we named LOTS of sprites GRUMname.... The pre-
fix itself does nothing other than make a landscape object smashable by heavy weapons and bombs. A
GRUM Sprite will be replaced by a sprite that is named the same, but with a 'X' suffix at the end.
So GRUMsok becomes GRUMsokX. That is the reason for the strange names. For you it's a cool feature,
because you can make your sprites destructable.

4. The Jman as a person
There is a special way to use the Jman. You surely know the Jman, standing around anywhere and just
leaving when you enter a special area. This area can be defined with hidden switches. Select MATRIX ob-
ject #8 (person) and select the Jman. Place him anywhere in the MAP.
Now select object # 4 (switch and give it one of the following event numbers:

	500 = run away ^
	501 = run away >
	502 = run away v
	503 = run away <

You see: You can use this events to let the Jman run away in a specified direction.
Now place the swithces with these event numbers in a way that prevents the player from 'catching' the
Jman.
And, finally: NEVER FORGET to place a Jman instance effector (#20) in the MAP (bottom right)
Of course the person is deleted and a Jman object is being created in the background, but this looks
like a person moving around.
