Ultra Level Editor

Version 0.95


Drawing blocks

Select the the drawing tool and click on a block type and subtype in the menu to draw. Click anywhere on the map and the selected block will be placed there.

Selecting and moving blocks

Select the select tool, and hold down the left mouse button and move the mouse to select an area of blocks. Empty blocks will not be selected. Hold down Shift to select more blocks. To move selected blocks, hold down CTRL and the left mouse button and move the mouse. Note that any blocks already occupying the space where you wish to move blocks, will be erased.

Erasing blocks

Erase blocks with the erase tool. Only blocks of the current type will be erased. Also you can select blocks and click Edit>Erase to erase the selected blocks.

Moving around

Hold the middle mouse button and move the mouse to drag the map, alternatively, use the arrow keys.


XML Reference

Look up "attrs.xml" for an example

<editor> - root node

<levelinfo>

Defines an attribute for the level information, such as name of the level, etc.

Valid attributes:
name : the name of the attribute
type : type of attribute (valid values are: "text" - normal text, "numeric" - numbers only, "multiline" - a multiline text)

<block>

Defines a new block type, such platforms or enemies.

Valid attributes:
name : the name of the block type
snapX : integer value of the horizontal grid size.
snapY : integer value of the vertical grid size.
display : (optional) display type (valid values: "icon" - icon list (default), "full" - display all attributes.)
help : a help string for the block (not currently used)

<attr>

Defines a new attribute for the block, such as what type it is.

Valid attributes:
name : the name of the attribute
type : (optional) if type = "text", the attribute will be represented by a text field and not a dropdown menu.
print : (optional) if print = "true" the attribute value will be printed over drawn blocks of this type (only for type="text").
default : (optional) used as a default value if type = "text"

<value>

Defines a new value for the attribute.

Valid attributes:
name : the name of the value
style : how the selected value will affect the drawn block
icon : image file to be used in the icon quick-select menu (only used by the very first block attribute; this should be a "type" attribte)
default : (optional) if set, this will be the value selected by default.

Style information

The "style" attribute of the selected block->attr->value nodes determines how the block that is drawn on the map looks. One value may define the image to use, and another how transparent it should be when that value is selected, and so on.

The following values may be used:
image - (string) path to image file to use
alpha - (float) transparency of block (0.0 - 1.0, 0.0 - fully transparent)
red, blue, green (float) colour of block (0.0 - 1.0, 0.0 - use nothing of that colour, default is 1.0 for all)
scale - (float) scale image size
rotation - (float) rotate image (in degrees)
rotX, rotY, rotZ - (float) rotate image along an arbitrary axis

Declare values like so: image: images/blarg.bmp
Separate multiple values with semi-colons.

Icon quick select mode

When using the icon system, all block attributes except the first one will be ignored (though their default values will be entered when a block is drawn), and the "icon" attribute of that attribute's values will be used to build the icon menu.

The style information may still be used to its full extent, though it may be recommendable to use the same image file for both the icon and the block.


File formats

Image files

The editor will probably recognise any wellknown image file type you try to throw at it, as it is now using the image library FreeImage. Tested formats are: PNG, BMP, TGA.

Level files

The editor currently uses Flipside Level Files (.flf). For reference on the format of those files, check "levelFormat.txt". Note that for the level files to work properly in game, there must be a levelinfo node with the name "levelDescription" that is multiline.

Model files

Currently unsupported.