.CMD macro help file
--------------------
(written 1999 by Sokke)

Welcome to the great world of SoP macro programming! :-)

Now let's go...

1. What is the use of CMDs?

CMDs are used to let small reasons have great effects. For example: You can put a hidden switch some-
where in a map and make it cause the event #1. Then you can put a macro object (see MAPEDIT.TXT) next
to it, or simply anywhere in teh map and make it launch a selected CMD when the event #1 occures.
This CMD could contain complex command structures, wich cause some MAP manipulation, spawn in items,
and give the hero quite a lot of money.

There are also two special kinds of CMDs...the so-called 'POSition CMDs'
-MAP CMDs are named the same as a map. They can contain POSitions, wich are some kinds of bookmarks
 that the game launches when a sound has been played, a text file has been shown, or when a hero ani-
 mation has been completely shown inside the specified MAP.
-The ITEMS.CMD contains POSitions that will be launched whenever an item with the specified number
 is being used by the hero

You'll get some further information about POSitions in this file.


2. How do CMDs work?

When an event occures and a macro-object is connected to this event number, the specified CMD file is
being opened. The 'code' of the CMD is being processed from the first line to the last. After this, the
file is closed again and the game continues doing it's usual jobs.

POSition CMDs are always checked when something, that could launch a POSition procedure, happens. Only
the lines from the correct POS command to the next POS command or the end of the file are being
processed.

Usual CMD file command names have a length of three characters. The command name is followed by some
fixed-length expressions. Example:

MAT XX YY OO AAAA BBBB String

In this command XX, YY, OO, AAAA and BBBB are such expressions. When you use this command, it should
look like that:

MAT 01 15 01 0000 0001 Sokke

You see: Each numeral must be filled with a '0' if it is not needed. Only the last parameter can have
any length you want. In most cases it's a string that describes a filename or something like that.

MAP CMDs can also have 'preprocessor' commands in the first line. These things are described in
Chapter 4.

Hint: To test your CMD files you can manually launch them by using the '_FILE=filename' command in the
console mode (pause key). Take care that your files are located in the 'MAKRO' dircetory.


3. The CMD commands

These data types are used for CMD commands:

Number=a number with a fixed amount of numerals (maybe 0002 or 0012)

NumberAtTheEnd=if it's the last parameter, the number can have any length (maybe 2 or 12)

StringAtTheEnd=a string is always placed at the end of a statement. It may have any length.

Operator=Operators have a length of one character. They tell a command how it has to work.

MAPPointerAtTheEnd=A MAP pointer is a number that describes a position on the 20x20 map.
A pointer is being calculated like that: pointer = -(X*20+Y). For example: For the position 12; 14,
it would be -254.

ON/OFF=Sometimes there are only two states that parameters can have: ON or OFF.


This is an alphabetical list of all available commands:

--------------------------------------------------------------------------------------------------------
ARM (Armor)

	Syntax: ARM; ARM ?

		If the syntax is only 'ARM', the player will directly get the armor #1 (Shirt with
		shield). This is only useful when you create an episode that lets the player start
		with armor #0 (Shirt without shield). Armor #0 does not work properly, it's just used
		for the original SoP intro. You may use it for this reason, but you shouldn't give
		the player any control about the hero while he wears armor #0.
		If you use the 'ARM ?' syntax, the following line (or BLK) will only be processed, if
		the hero's current armor # is >= 2 (anything better than the white shirt)

--------------------------------------------------------------------------------------------------------
BLK (Command block)

	Syntax: BLK; >>>; <<<

		Let the BLK command follow a command that makes it dependent. The commands included in
		the >>> ... <<< will only be processed when the BLK command has been executed.

	Example:

		...
		VAR ? 2
		BLK
		>>>
		MSG 2 It works! I can't believe it!
		DBG
		<<<
		...

	See also: CAS; NOT

--------------------------------------------------------------------------------------------------------
BUB (Bubble)

	Syntax BUB Number

		Number = A number of an inventory item. Inventory items and their numbers are listed in
		the ItmNames.dat file in the GAMEDATA folder. You can also define negative item num-
		bers, just put an ITEM-#.SPR into the GRAFIK\ITEMS folder.

		Lets the hero 'think' of an item, as you can see in the SoP intro.

	See also: ARM; FIX; PUT

--------------------------------------------------------------------------------------------------------
CAS (In case of...)

	Syntax: CAS; CAS Number

		When a CMD file can be called by several events, use the CAS exception to do special
		things on every event number. There must be one CAS without parameters to introduce the
		CAS construction. Then there can be several CASes with different event numbers. Take
		care that you use BLKs when you want to make more than one command depend on one event.

	Example:

		...
		CAS
		CAS 1
		MSG 2 Event #1 has occured

		CAS 2
		BLK
		>>>
		MSG 2 Event #2 has occured
		DBG
		<<<
		...

	See also: POS; NOT; BLK; VAR; EVT

--------------------------------------------------------------------------------------------------------
DBG (Debug command: BEEP)

	Syntax: DBG

		For debugging reasons, this command is quite useful. It does exactly the same as the
		QuickBASIC BEEP command.

--------------------------------------------------------------------------------------------------------
DIE (Kill hero)

	Syntax: DIE

		When the hero shall be killed by a trap etc., the DIE command does the bloody job.

	See also: HRT; END

--------------------------------------------------------------------------------------------------------
DIR (Direction)

	Syntax: DIR direction

		direction=a valid direction descriptor (0=^ 1=> 2=v 3=<)

		Lets the hero look into a specified direction.

	See also: PUT; FIX	

--------------------------------------------------------------------------------------------------------
END (End game)

	Syntax: END

		Shuts the actual game down. Useful for test reasons or when the player has just won the
		game and the credits screens are over.

	See also: DIE

--------------------------------------------------------------------------------------------------------
EVT (Event)

	Syntax: EVT Number

		Number=The Event number to be set

		After the CMD has been processed, this event will occure.

	See also: CAS

--------------------------------------------------------------------------------------------------------
EXP (Explosion)

	Syntax: EXP XX YY

		XX=X MAP coordinate of the explosion
		YY=Y MAP coordinate of the explosion

		Creates an explosion at the specified coordinates.

	See also: SMK; QAK

--------------------------------------------------------------------------------------------------------
FIX (Fix the hero)

	Syntax: FIX ON|OFF

		When the FIX mode is turned ON, the player will have no more control of the hero. You
		can still make the hero act, using PUT etc.

	See also: PUT
	
--------------------------------------------------------------------------------------------------------
GND (Ground texture)

	Syntax: GND Texture

		Texture=A valid landscape type. As there are:

			-Arktis  (arctical snow plains)
			-Burg    (inside of a castle)
			-Ebene   (the standard outside grass landscape)
			-Gebirge (ice floor, slippy!)
			-Hoehle  (inside of a cave)
			-Oede    (badlands, where the evil plants live)
			-Strand  (inside of a castle, blue floor texture (looks more valuable))
			-Sumpf   (swamp)
			-Urwald  (tropical jungle)
			-Wald    (forest)
			-Wueste  (desert)

			This command sets the landscape type.
			As there have been a lot of changes during the game designing, some of the
			german names have nothing to do with what the effect of them is. Ground tex-
			ture names include the gfx directory (GRAFIK\ + name), which includes the
			floor texture names, birds that fly around, a MIDI file (SOUNDS\ + name + .MID)
			and the information about the climate (if the rain stick will cause snow or
			rain)

	See also: WET

--------------------------------------------------------------------------------------------------------
HRT (Hearts)

	Syntax: HRT incrementor

		incrementor=the number of hearts to add. Use a negaitve number to decrement the amount
		of hearts.

		Manipulates the amount of hearts that the hero has got. There can never be more hearts
		than heart containers are available.

	See also: MAG; MNY; DIE

--------------------------------------------------------------------------------------------------------
ITM (Item manipulation)

	Syntax: ITM O Number; ITM ~ XX YY; ITM # XX YY Number

		There are the following possible operators:

			'-' steals the hero the specified item from the inventory, if he has got it.
			(For inventory item numbers see GAMEDATA\ITMNAMES.DAT.)

			'+' gives the playes the specified inventory item.

			'&' sets the specified item directly onto the hero, so the description can
			be shown. 'Number' is NOT an inventory item number, but a main item number.
			(See Chapter 6)

			'~' deletes all items at the specified coordinates

			'#' lets the specified item appear at the specified coordinates. 'Number' is
			NOT an inventory item number, but a main item number (See Chapter 6)

			'!' The followin line is only executed when the selected inventory item
			is the same as described with 'Number

			'?' The following line is only executed if the hero has got the item specified
			with 'Number'

--------------------------------------------------------------------------------------------------------
KIL (Kill matrix objects)

	Syntax: KIL String

		Erases all matrix objects that have the specified string value

	See also: MAT

--------------------------------------------------------------------------------------------------------
MAG (Magic manipulation)

	Syntax: MAG incrementor

		incrementor=The amount of magic power that shall be added to the player's mana pool.
		Use negative values to decrease the mana amount.

		Manipulates the mana pool of the player. The maximum amount of mana is 80, the minimum
		is 0.

	See also: HRT; MNY

--------------------------------------------------------------------------------------------------------
MAT (Matrix manipulation)

	Syntax: MAT XX YY OO AAAA BBBB String; MAT ? XX YY String

		XX=The matrix X coordinate
		YY=The matrix Y coordinate

		OO=A matrix object number. (See chapter 5)

		AAAA=The first tag of the object
		BBBB=The second tag of the object
		String=The string tag of the object

		First syntax:
		Changes the matrix object at the specified coordinates to a sure object with sure tag
		values.

		Second syntax:
		Checks, if the specified matrix object has the specified string

	See also: KIL

--------------------------------------------------------------------------------------------------------
MNY (Money manipulation)

	Syntax MNY O Value

		O=Operator, can be '+' to make the hero richer, '-' to make him poorer, or '?' to check
		if the hero has got at least the specified amount of money.

		Value=The amount of money to operate with.

		Manipultes the hero's money amount, or checks if he's rich enough for something.

	See also: MAG; HRT

--------------------------------------------------------------------------------------------------------
MSG (Message)

	Syntax: MSG C MessageText

		C=Color, 0=blue (normal), 1=red (important), 2=green (error/debugging)

		MessageText=Text to be displayed

		Displays a message at the bottom of the screen (or at the prompt in the console mode)

	See also: WAV, DBG

--------------------------------------------------------------------------------------------------------
NOT (Logical negation)

	Syntax: NOT

		Some commands make the next line dependent. (These commands often use a ? in their syn-
		taxes.) The NOT command negates the function of those commands. If a command tries to
		skip the next line, the NOT statement will make it processed. The other way round, when
		a command tries to execute the next line, the NOT statement will make it skipped.

	Example:

		...
		VAR ? 1
		NOT
		MSG 2 The VAR has a value <> 1
		...

	See also: BLK

--------------------------------------------------------------------------------------------------------
POS (Position)

	Syntax: POS sSoundFile; POS vHeroAnimationFile; POS iItemNr; POS USE_MAGIC

		The following lines are only processed if the specified sound file has just been played/
		the hero animation has finished/the item has been used/a spell has been casted in a no-
		magic-MAP (see Chapter 4). Don't forget the s/v/i characters!

	See also: CAS; WAV; VID; MAGIC=OFF (Chapter 4)

--------------------------------------------------------------------------------------------------------
PUT (Put the hero somewhere)

	Syntax: PUT XXX YYY; PUT -01 XXX YYY

		XXX=The X-coordinate where the hero shall be sended to (pixels!=MAP square*20)
		YYY=The Y-coordinate where the hero shall be sended to (pixels!=MAP square*20)

		When the syntax without the '-01' is used, the hero will 'automatically' walk to the
		specified coordinates (like in the SoP intro or in the strange box scenes).
		If the other syntax is being used, the hero will be 'transported' directly to the
		destination coordinates. This normally looks awful and you should use SMK commands to
		make it look like the hero is being teleported.

		Hint: Use PUT -10 -20 to stop any automatic walking. (The hero sprite is always set
		to X + 10, Y + 20.) When the destination is set to this (0, 0), any action will stop.

	See also: FIX

--------------------------------------------------------------------------------------------------------
QAK (Earthquake)

	Syntax: QAK Frames

		Frames=The length of the earthquake, counted in frames.

		Shakes the screen for a sure time and plays an explosion sound.

	See also: EXP; SMK

--------------------------------------------------------------------------------------------------------
RND (Random)

	Syntax RND numberoflines

		numberoflines=The number of lines that will be affected by the RND construction

		Makes the game process only one of the following lines. Which one it will be depends
		on a random number that the macro interpreter generates. The commands must directly
		follow the RND command, no comments etc. are allowed. Only the last line of the con-
		struction can be a BLK. You can also use one VAR statement to make another line launch
		a BLK. Look at the example to see how you can maximize the number of random BLKs to
		three:

	Example:

		RND 3
		VAR +
		'This line does nothing
		BLK
		>>>
		MSG 2 Random number was 3
		DBG
		DBG
		DBG
		VAR +
		VAR +
		<<<
		
		VAR ? 1
		BLK
		>>>
		MSG 2 Random number was 1
		DBG
		<<<

		VAR ? 0
		>>>
		MSG 2 Random number was 2
		DBG
		DBG
		<<<

	See also: VAR; BLK

--------------------------------------------------------------------------------------------------------
SHT (Shoot)

	Syntax: SHT XX YY NN D

		XX=X MAP coordinate
		YY=X MAP coordinate
		NN=Shot number. The following numbers are valid:

			 1=arrow that hits enemies (upgraded when hero owns the upgraded bow)
			 2=arrow of ice that freezes enemies
			 3=fireball that hits enemies
			 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, see MAPEDIT.TXT)
			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 (D2) or 2 (D1)), D must be 2 or 1
			20=arrow of ice that freezes the hero
			30=shotgun shot that hits hero (used by the final boss)


		D=Direction (0=^ 1=> 2=v 3=<)

		Spawns a shot from sure coordinates into a specified direction

	See also: SMK

--------------------------------------------------------------------------------------------------------
SMK (Smoke)

	Syntax: SMK XXX YYY

		XXX=The X-Coordinate (in pixels=MAP square * 20). If it's < 0 the effect will be set on
		the hero's current coordinates.
		YYY=The Y-Coordinate (in pixels=MAP square * 20).

		Shows a gray smoke 'explosion' on the specified spot. Useful for large explosion
		effects or when something shall be 'teleported'.

	See also: EXP QAK

--------------------------------------------------------------------------------------------------------
SPK (Speak the following wav)

	Syntax: SPK matrixpointer

		matrixpointer=A matrix pointer (see explanation at the beginning of this chapter) that
		points to a person.

		Lets a specified person 'say' the following WAV. All persons have a speech animation,
		also if it's not used in the game.

	See also: WAV

--------------------------------------------------------------------------------------------------------
VAR (The (very simple) macro variable)

	Syntax: VAR O; VAR ? Value

		O=Operator, can be '+' for increasing the variable, '0' for re-setting it to 0, '?'
		for checking if it has the specified value.

		Value=The value to check when the '?' operator is used.

		Use the macro variable for complex 'if then else' structures. See the example for the
		'RND' command.

	See also: BLK; NOT; CAS

--------------------------------------------------------------------------------------------------------
VID (Hero video (animation))

	Syntax: VID A LLL Filename

		A=If it's 1, the armor will be overlayed while the animation plays. If it's 0, it
		won't show the armor.

		LLL=Length of the animation. If it's set to a number < 0, it'll play a still sprite
		for the set time.

		Filename=A valid hero animation file prefix, as there are:

			Fileprefix:	Purpose:					Lenght value:
			-----------------------------------------------------------------------------
			Aufset		setting up sunglasses				14
			Bigmac		eating a burger					9
			Blau		drinking a blue potion				9
			Blitz		being electrified by a lightning		20
			Brille		wearing sunglasses				13
			Bumm		after opened a trick present			<0
			Fall		falling down into a deeeeeep hole		20
			Gehen		holger walks upstairs				6
			Gruen		drinking a green potion				9
			Hamlet		holding a skull					<0
			Hase		holger turned into a rabbit			9
			Holvor		holger takes out the currently selected item	9
			Lesen		reading the magic bbok of power			20
			MachWas		very useful animation: doing something above	5
			Muetze		wearing the ridiculous cap			<0
			Platt		overrun by a steam roller...cool for traps	20
			Poppen		opening a package of 'Pringles (tm)'		5
			PunchA		punching something above			9
			RBull		drinking red bull (tm) energy drink		5
			Rot		drinking a red potion				9
			Scheiss		looking disappointed at the dagger		<0
			Schlaf		sleeping					<0
			Schnee		holger turned into a snowman			<0
			Sieg		holger posing like a hero			<0
			Stab		using the rain stick				10
			Stech		holger being killed by a stone cone		20
			Sterbe		very cruel dying animation			20
			Tele		holger receiving a MYST (tm)-like message	9
			Tod		sinking into lava/water/acid			20
			Wach		holger waking up				8
			Zieh		holger tried to pull the long sword		5
			Ziehen		holger trying to pull the long sword		10
			Zuklein		holger looking disappointed at his shield	<0

		Plays the specified hero animation.

--------------------------------------------------------------------------------------------------------
WAV (Play WAVfile)

	Syntax: WAV wavfile

		wavfile=the name of a wav file that shall be played. The files must be located in the
		SOUNDS-folder or in a sub-directory. You can use files in sub-directories by adding a
		relative path. Note that the SoP engine only allows one file to be played at a time.
		The files must have a format of 11025 PCM 8 bit mono and a maximum length of about 3
		seconds. Use a MAP CMD with 'POS s' statements to chain wav files together. (You CAN
		also use longer wavs, but the engine for long wavs does not always work allright.)
		To give a wav file high priority (you'll usually want to), so that it's also played, if
		another file is still playing, you must give the filename a ! as prefix, like that:

		WAV !filename

		Note that you mustn't add the .wav extension to the file name. The great advantage of
		this is that the game will automatically display an equally named text file, if the
		set wav file does not exist. So, if you plan a great project, you can temporary work
		with text files and change them to wav files later.

	See also: SPK; MSG

--------------------------------------------------------------------------------------------------------
WET (Weather)

	Syntax: WET Number; WET ?

		Number=A weather description number, as there are:

			0=Normal
			1=Snow
			2=Rain
			3=Darkness (this can cause lots of bugs!)

		Syntax 1:
		Sets the weather.
		Syntax 2:
		Checks if there is rain/snow or not. The following command is executed when there is
		rain or snow.

	See also: GND

--------------------------------------------------------------------------------------------------------
XXX (Mission goal x)

	Syntax: XXX XX YY Number

		XX=X coordinate of goal MAP file
		YY=Y coordinate of goal MAP file

		Number: The priority number of this mission goal (See Chapter 7)

--------------------------------------------------------------------------------------------------------
:-) (DebugCheat: All weapons)

	Syntax: :-)

		Gives the player all available weapons with all upgrades. Only use this in the console
		and only for debugging...

	See also: ;-)

--------------------------------------------------------------------------------------------------------
;-) (DebugCheat: All spells)

	Syntax: ;-)

		Gives the player all magic spells. Only for debugging use in the console!

	See also: :-)

--------------------------------------------------------------------------------------------------------
'Comments

	You can create comments, using the ' character, but only at the beginning of lines.

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

4. The preprocessor commands for MAP CMDs

Preprocessor commands must stand in the first line of MAP CMDs. The preprocessor line starts with a %.

like that:

%PARAMETER=VALUE OTHERPARAMETER=OTHERVALUE

The following commands (parameters) are supported:

MAGIC=ON|OFF

	If this is set to OFF, the map becomes a non-magic map. The player is unable to cast spells.
	If the player tries to, the POS USE_MAGIC becomes engaged, if it exists. Usually it contains
	a procedure that turns holger into a bunny:

		...
		POS USE_MAGIC
		SMK -01 000
		VID 0 009 Hase
		
		POS vHase
		SMK -01 000
		WAV !HOLGER\NZaubern
		...

	This parameter is mainly used for puzzles that shall not be solved by some magic 'tricks' like
	flying or teleporting.

AUTOEVENT=ON|OFF

	When set to ON, it causes the game to raise event #1 when the player enters the MAP. Useful
	for stores that shall fill up with wares when the player enters the map etc..

POS=ON|OFF

	Sometimes, you use a MAP CMD file just for some preprocessor parameters, not for POSitions.
	If you want to prevent the slowing-down POS routines from working for nothing, you can simply
	turn them off. This may also be useful for debugging reasons.

5. Matrix objects

This is a simple introduction into the matrix technique. You'll find quite more detailed information in
the MAPEDIT.TXT file.

The matrix is a 2-dimensional array of a user defined data type:

TYPE MatrixType
OBJ AS INTEGER 'The object number describes what object a square in the matrix is. 0 equals none.
STRINGTAG AS STRING * 11 'The string contains filenames etc, this may vary from object to object.
TAG1 AS INTEGER 'Tags 1 and 2 contain important numeric values. Their use may vary from object
TAG2 AS INTEGER 'to object
END TYPE

DIM SHARED Matrix(1 TO 20, 1 TO 20) AS MatrixType

The matrix contains all game elements, except:

-enemies and bosses   (there can be up to 15 of them in one map)
-items                (there can be up to 36 of them in one map)
-shots                (there can be up to 36 of them in one map)

6. Main item numbers

Some items aren't added to the inventory when the player gets them, but have effects immidiately.
These items cannot be referred by an inventory item number.
Using main item numbers, you can identify every item that exists in the game. If you want to convert an
inventory item number to a main item number, you simply have to add 100.

The main item numbers so far:

Usual goodies:

	1=piece of gold (1 gold)
	2=small mana potion
	3=heart
	4=package of 5 arrows
	5=heart container
	6=moneybag containing 5 gold
	7=heap of gold (10 gold)

Weapons:

	13=normal bow
	15=normal mace
	17=boomerang
	18=normal short sword
	22=long sword
	23=upgraded bow
	24=burning axe
	25=upgraded mace
	26=chainsaw
	28=upgraded short sword
	
Armors:

	32=leather suit
	33=chainmail
	34=dwarf armor
	35=knight's armor
	36=dragon shield
	37=super holger suit (cheat)

Spells:

	41=Earthquake
	42=Thunderstorm
	43=Arrow of ice
	44=Fireball
	45=Invisibility
	46=Magic armor
	47=Teleporting
	48=Hovering

Inventory items (see GAMEDATA\ITMNAMES.DAT):

	>100

7. Mission goals

During the game, the player has to complete several mission goals. Every time, there is a goal map that
the player has to find. Normally, the red arrows show the way to the goal map.
Every mission goal is identified by goal map coordinates (only X and Y) and a goal priority. The goal
priority is a number >= 0 that defines which goal is the first (#0) and which one follows which one.
When a new game is begun, the goal number is normally 0 and the goal map is 12-8. This can be changed
by editing the 'player.sts' file in the 'MAPS' folder. the next goal must always have the last one's
goal number + 1.
The description text of the mission goals can be found in the 'GOALS.DAT' file in the 'GAMEDATA' folder.
The first line equals the goal description for #0, the second line equals #1 and so on. The description
is being shown when the player hits the F1 key and when he enters the goal map.
Hint: When the player has the task to find a sure room inside a cave, fill in an extra goal at the en-
trance of the cave, so that the player doesn't try to find the map ABOVE the real destination.

8. Debugging and cheats

For debugging your CMDs (and your MAPs), you may need some information that the 'normal' player does
never get. For this reason, there are those DEBUG CHEATS that may help you while you're designing com-
plex CMD structures etc:

In the console mode (pause key), enter...

_DEBUG        for the debugging mode. You will see all MACRO OBJECTS, HIDDEN SWITCHES, TIMER OBJECTS,
	      EFFECTORS. Hit the F5 key (Framecounter) to display the actual MAP coordinates, the play-
	      ers pixel coordinates and the goal MAP coordinates + goal priority number.

_INFO	      to quickly display the actual MAP coordinates.

_BUFFER	      to display the current size of the sprite cache. This should be of no interest for normal
	      level designers. Only, if the number is < 50, you should have a look at your AUTOEXEC.BAT
	      to find out, which strange DOS TSRs reduce the memory so strictly.

_FILE=file    to launch a CMD file manually. This should not be done with POS CMDs! You mustn't add a
	      path name or file extension to the filename!

_MAP          for the full MAP mode. The auto map becomes completely visible.

:-)           for the all-weapons-mode. You'll get all weapons with all upgrades.

;-)	      for the all-spells-mode. You'll get all spells right away.

HRT x	      adds x hearts to your health.

MAG 80	      sets your mana pool to the maximum (80).

MNY + x       increases your richdom by x.

Don't forget that most CMD commands work properly in the console mode.

Hint: Create CMDs with lots of commands that help you test a MAP etc. and run them with the _FILE
command. But keep in mind, that console-only-commands (with underscore prefix) only work in the console
mode!
