BotMap - A level designer for BotKiller2
========================================

 This help text refers to version 0.68 of !BotMap and not neccessarily the
version it is contained within. If you find any discrepancies in this
documentation then please tell me and I'll either update the text or 
modify the code accordingly. Comments and suggestions on this editor are
always welcome and bug-reports should be sent as soon as possible.

BotMap version 0.68 - Do not distribute.



Index:

1.File Operations
  - Loading, saving and creating new levels.
2.Editing levels
  - Multiple layered maps, tool use.
3.Managing brushes
  - Loading, saving and deleting brushes.
4.Miscellaneous features
  - Map shifting, zooming and suchlike.
5.Notes on level design
  - What to avoid when designing a level.



1.File Operations
=================
 The levels for BotKiller2 are stored inside the main !BotKill2 application
and are loaded via the 'Load' window or by dragging a data file to the
application. The level data files have headers since version 0.39 to allow
for checking for files produced by BotMap. Files can be 'forced' to be loaded
even if the headers are not present to stop old map files being made totally
unusable. BotKiller, however, will not except files which have not got
headers so any 'old' style files must be 'forced' into BotMap and then saved
again to generate the header.
 When using the 'Load' window to load a file and an empty slot is selected
then it performs the same action as if the level is reset. It is not possible
to undo any operations concerning loading or reseting.



2.Editing levels
================
 Levels are edited via the main window which will provide a graphical display
of the map layer chosen by map tool on the accompanying pane window. The
tools are described below, and a change of tools signifies a new update of
the undo buffer.

	+---+---+	a = Pencil tool
	| a | b |	b = Fill tool
	+---+---+	c = Scissors tool
	| c | d |	d = Brush tool
	+---+---+	e = Pointer tool
	| e | f |	f = Map tool
	+---+---+	g = Undo tool
	|   g   |	h = Open tile window
	+---+---+	i = Open brush window
	|h|i|j|k|	j = Open general settings window
	+---+---+	k = Open shop settings window


Pencil tool

 The pencil tool draws with the curreent tile which can be selected via the
'Tiles' window or by clicking Adjust on a block in the map window. If you
wish to fill an area with a specific tile then this can be done by dragging
the required area with Select. Outlined areas can be done in a similar manner
but by using the Adjust buttion

Fill tool

 This tool will fill an area with either the current brush (using Select) or
the current tile (using Adjust). Brushes are mapped as if they were tiled
from the top left in a regular fashion. The flood area must consist of nulled
tiles for the operation to work. When the 'dual' map is filled then the fill
is performed on the 'over' map and copied to the 'back' map rather than two
seperate fills being performed.

Scissors tool

 This tool can be used to grab a new brush from the map. The brush grabs only
one layer of the map (ie not Back and Over levels) and can consist of up to
64 tiles in any dimensions. All brushes appear in the 'Brushes' window and
can be deleted or saved from there. You can define up to 32 brushes per tile
set and once these 32 are defined then the last brush is overwritten.

Brush tool

 This tool allows brushes to be 'painted' to the map canvas and the current
brush can be selected via the 'Brushes' window.

Pointer tool

 This tool is intended for use in conjunction with the 'Mouse' window as it
does not edit any data, but records the mouse click positions for display in
the relevant window. All other tools also record the mouse position, so this
tool is generally redundant other than for checking !BotScript files.

Map tool

 This icon cycles through the selected edit modes, Back Edit, Over Edit, and
Dual Edit. In Dual Edit mode then the 'Over' map is displayed in the main
window and all operations are plotted to the 'Over' map and then copied to
the 'Back' map.

Undo tool

 This undoes the maps until just before the last major change (auto undo) or
to the last time the user has requested. Loading, saving and updating the
level settings *always* causes the reset point to be set.



3.Managing brushes
==================
 The brushes are all handled via the 'Brushes' window, with up to 32 brushes
being held in memory at one time. Most operations can be either performed by
the toolbox (see below) or via the menu.

	+---+
	| a |
	+---+
	| b |		a = Move to previous brush
	+---+		b = Move to next brush
	| c |		c = Brush number (1-32)
	+---+		d = Delete brush
	| d |		e = Save brushes (Select) or reload (Adjust)
	+---+
	| e |
	+---+

 Brushes can be rotated about in a similar manner to the map shift function,
except that tiles are looped over to the opposite side to allow changing of
the tiling when used in conjunction with the brush fill tool.
 The brush data is local to each tile set, and brushes are stored inside the
main !BotMap application, so updating the application may well cause the old
brushes to be lost.



4.Miscellaneous features
========================
 To aid level design and the general usability of this editor, some extra
features have been added which may not be instantly obvious.

Zooming

 All of the windows can be zoomed to their own individual levels of
magnification and this level can be saved with the 'Save Options' menu.



5.Notes on level design
=======================
 The map editor makes no checks on the validity of levels, so impossible
levels are possible to be created, as are levels which will expose flaws in
the game engine.

Jump blocks

 Jump blocks have no concept of having a lift on top of them so it will still
function even when conceiled. Jump blocks behind doors are not advised either
as they lead to a slight graphical error as the jump block is plotted
/behind/ the door.



