1. Polygon based modelling
Key features of ELE:2. Support for grouping
3. Visibility Layers
4. Support for slipgates, doors, switches
5. Object placement

As opposed to most leveleditors editors on the market, especially those for QUAKE based engines, this editor does not work with so called brushes, but with polygons and polygon edges directly.
To facilitate manipulating groups of level elements, there is a grouping feature, which groups a set of selected polygons together.
Currently every polygon may only be part of one group, and there is no hierarchical grouping. This will be changed in future versions.
Since the polygon is the unit of manipulation, there is basically no constraint about the kind of polygons used and the angles between them (compare that to QUAKES brushed which must be concave).
However it is best to restrict youself to certain well defined angles to avoid excessive plane splitting in the level wehich occurs when the BSP tree is generated. The engine generates a file with extension GBP and the same file name as the original level file (tha is, if the level was TEST.GPT, a TEST.GBP will be generated), which shows the planes after BSP splitting occured - this file can be read into the leveleditor to show the splittings.
Another output of the engine is the TEST.BSP (where TEST stands for
the actual level name) file, which shows the nodes of the generated BSP
tree.
The BSP tree is a binary tree, with left and right nodes. A detailed
explanation of that tree can be found in the ENG32
documentation.
This file can also be fed back into the leveleditor, after having loaded
the GBP file - it can be displayed as graphical tree and can be used to
determine which planes cause which splits. This is normally not necessary
- it is only interesting in case of errors or for performance tuning. See
the corresponding Tools section.
Possible other uses of that file would be graphical or statistical
tools, which help to check, if the tree is rather balanced, or degenerate.
A degenerate tree is one that has lets say only left branches or only right
branches or something like that, and would be bad in terms of performance,
since such a tree is in fact nothing more than a list, and operations on
such a structure take time of o(n) instead of time of o( log n ).
To enable detailed editing of polygons and edges there are two selection and working modes in the editor:
Polygon Selection and Point Selection (found in the selection submenu)
When moving polygons or polygon groups as a whole, switch to polygon selection mode.
When manipulating polygon shapes, switch to point selection mode.
All Move, Rotate, Size and similar Tools only work on either polygons OR points, depending on the selection mode.
The Menues in Detail
File Menu
New
Open
Save
Save As
Rather self explaining.
A word about the files:
The level definiton is a GPT File together with a GOB File. The GPT
File contains the static parts of the world, which will at engine runtime
be inserted into an immoveable spatial subdivison structure (BSP Tree)
- that is, the polygons making up the walls, floors, ceilings, water, etc...
The GOB File contains the objects like lights, monsters, triggers.
There is another Format called BPT, which is not yet supported - this
is a more compressed, binary format for final delivery of levels and will
be incorporated in a later version of the engine and the leveleditor -
do NOT use it now.
Load Sounds
Load Object Classes
Load Textures
These funtions load various resources needed by the engine, i.e. sounds, object classes and textures. See the chapter about resources for more details on that.
Sound resources are typically listed in a SOUND.IND file in the SOUNDS subdirectory. When you load a sound resource for the first time, the path is saved, so any subsequent load will already start the File Open Dialog Box in the directory you left it last. Still you must manually open the resource. This is true for Object Classes and Textures as well.
Object Classes are typically listed a OBJCLS.IND file in the WORLDS subdirectory.
Textures are typicalle listed in a TEXTURE.IND file in one of the following subdirectories:
texd3d............Direct3D
tex3df.............Glide
textures..........Software renderer
tex3gl.............Open GL
depending on the version of the engine.
| Polygon mode: | |
| Point Mode: |
| Move Tool |
|
Keyboard shortcut: "m" |
| Rotate Tool |
|
Keyboard shortcut: "r" |
| Select Tool |
|
Keyboard shortcut: "s" |
The most used tool will be the select tool. To facilitate selection of certain polygons and/or points, there is the concept of visibility layers, which will be explained now:
The Select tool works by drawing either an irregular fence (currently it must be concave, which makes the "irregular selection mode" rather unusable); a quad selection fence or by specifying a single position with a single click. All of these methods select ALL polygons, which are currently VISIBLE and which are COMPELTELY inside of the fence or lay under the specified point (as in single selection mode).
When combining the select tool with SHIFT, the selection will be enhanced
(polygons and/or points) will be added to the selected set.
When combinig the select tool with the CTRL key, the selection of the
fenced polygons/points will be inverted.
When combined with both SHIFT + CTRL, the fenced polygons will be deselected.
This is handy for removing polygons from a selection that where accidentally
selected in the first place.
Layers are a mean of temporarily grouping parts of a level togehther.
There is on active and 8 inactive layers. Every Hide, Unhide operation
is local to the active layer, which means that inactive layers will not
be influenced.
Every layer shows another set of visible polygons, so it is easy to
work on different substructures by just switching layers. Switching layers
should occur BEFOR any Hide or Unhide Operation is performed and can be
done by either selecting the wanted layer from the Display menu or by pressing
a number key between 1 and 9 (there are 9 layers at all).
More about the select tool can be found under Select Menu.
| Size Tool |
|
Keyboard shortcut: "z" |
This tool sizes a selected set of polygons / points around the pivot point
(which is position of the mouse, when starting to use the tool with a left mouseclick).
Use the Move Tool after a size operation to realign the edgepoints to the working
grid.
Intersect with group
Select a group of polygons and position it so, that it penetrates some other part of the level; "Intersect with group" will then split all non selected polygons accordingly and select the "inner" part of the intersection, so that it can be deleted.
(currently the split does not take place; only the polygons in question are selected)
Mirror
Mirrors all the vertices around the vertical axis (that is, the mirror process depends on the active view)
Flip
Reverses the ordering of the vertices, thereby inverting the polygons normal vector.
Subdivide
Subdivides the selected poylgons along their edges in two. Each polygon
is therefor subdivided into 4 rather equal sized smaller polygons.
This is sometimes necessary, since polygons should typically not exceed
8 grid lines in size, which makes up for a length of 8*50 = 400
engine units. Bigger polygons may exhibit ugly clipping errors and
prevent shadows from occuring, since light conditions are calculated only
on each edge of a polygon (i.e. there are no shadow maps).
Polygon Properties
This shows a dialog in which you can specify some properties for a set of selected poylgons.
These are:
The mapping coordinates. When automatic is enabled, the coordinates will be set to (-1 0) (0 0) (0 0) (0 0), which means the engine will determine the best mapping. This is in most cases enough.
If you want to have normal face mapping, use the STD button, which produces the following coordinates: (0 0) (256 0) (256 256) (0 256)
Use the ROT Button to rotate the texture coordinates clockwise.
Sometimes there may be errors - especially triangles may expose wrong texturecoordinates
- they will need hand tuning.
For these cases where you need to specify texture coordinates explicitely, do
that here. They range from (0,0) to (256,256).
The polygon type. This is a hint for the engine how to act with the
polygon and it kind of classifies the polygon..
This should be determined automatically by the leveledtitor, every
time a poylgon is moved or otherwise changed, but can be overridden here.
Once it is overridden, the classification is not changed any more automatically.
Currently there are the follwing types:
#define GPOLYGON_TYP_OTHER 0
#define GPOLYGON_TYP_CEIL 1
#define GPOLYGON_TYP_FLOOR 2
#define GPOLYGON_TYP_DOOR 3
#define GPOLYGON_TYP_SKY 4
#define GPOLYGON_TYP_WATER 5
#define GPOLYGON_TYP_SLIPGATE 6
#define GPOLYGON_TYP_IRREGULAR 7
#define GPOLYGON_TYP_SWITCH 8
Floor, Ceil and Other poylgons are the basic polygons. They have no special treatment in the engine, except for the fact, that FLOOR and CEIL polygons are used deeper in the BSP tree than OTHER poylgons (typically the walls), which means, that WALLS are preferably used to split subpartes of the level, to prevent degenerate trees in the case of big, flat levels. This decision is not without drawbacks, since on the other hand, there may now result degenerate trees in the case of high and slim levels (tower like structure). However, the primary goal of ENG32 was to render rather flat and big levels.
The software renderer may take additional advantage of this classification of poylgons, and perform perspective correction only as needed (FLOOR and CEIL - distortions on walls are not so bad).
DOOR, SLIPGATE, SWITCH Polygons need not be marked explicitely - this
is done automatically when a polygon is determined to be part of a door,
slipgate or switch structure respectively (see GROUPS).
DOORs have a special property: they occur highest up in the BSP tree,
that is, they split the level into its main parts. This gives you as the
level creator a basic possibility to control the big level parts, and you
should design the level in such a way, that doors split it into rather
distinct segments. This is an important performance issue, since these
parts can be discarded at once, when they are out of the render range.
In a future version there my be also a red line, indicating the split done
by a door.
SKY Polygons have a different mapping, and must be specified explicitely - the texture on skies shows no parallaxe when the player is moving, and the software renderer can speed significantly up, since it uses a very simple and quick assembler routine for skies.
WATER polygons are somewhat different, in the way, that the have onother form of collision detection (you can swim IN water after all and not stand on it).
IRREGULAR (Deco) Polygons are polygons with either rather irregular angles, which might cause many and ugly splits of other parts of the level and which need full perspective correction though they are not FLOORS or CEILS, or, which are just not assumed to split anything, since thy are part of a rather small substructure like a stair or something. They occur last (deepest) as final leaves in the BSP tree, so they do NOT split anything except other IRREGULAR poylgons. When you model decorations, you have 2 options: either make them a separate object (see Objects) or make them part of the level and make sure, they are of type IRREGULAR, to prevent them splitting the sorrounding room, but rather let the room split them. This is some basic kind of hierarchy (only 2 levels) and it gives the BSP splitter a hint, which parts are bigger and more important than others.
The Texture:
The most important part is to specify the texture. Throghout ENG32 textures are referred to by unique integer ID's. There is one texture index file, which associates all textures ever needed (in ALL levels and ALL objects) with their ID's. This file and the according texture files might be compared to QUAKES WAD files.
You can type in the ID here directly an will get a preview of the texture, or switch to the texture Preview and Selection screen by pressing "View Texture". See the description of the "View Texture" Window.
A word about texture formats:
The software renderer and the hardware renderer need evtly. textures
in different formats, so the decision was made, that there is one source
format, with which the leveleditor works, which is 24-bit BMP. Befor you
can test render or play a level you have to convert the 24-bit VMP's to
either 256 bit BMPs, with mapped palette for the software renderer (this
can be done with PALMAP.EXE) or to 3DF format (proprietary GLIDE format,
can be done with TEXUS.EXE) for the 3dfx renderer.
You do NOT need to convert the textures for the Direct3D renderer which
takes 24 bit BMP's as is. See Resources/Object
Classes.

This dialog allows you to edit the object class and any parameters specifying
an object. Objects are e.g. monsters, triggers, lights and such.
Every object has an associated class, defining its properties. See
Resources / Object Classes on that.
You can manually type in the object class or select it from a list
of classes. The list of classes contains either classes already used in
the level or all classes, after having loaded the object classes with File
/ Load Object Classes.
To edit the properties of an object, select it and display this dialog - if more than one object is selected only the FIRST ONE is taken into account, so you cannot modify the properties of a group of objects at once - you must modify them one by one.
Here is a short list of the classes currently in use:
| LIGHT1 | a fire light, flickering. Produces a firelight effect |
| LIGHT2 | a blue, static light - the main light source |
| LIGHT3 | a red flashing alert light |
| LIGHTRED | a static red light |
| LIGHTYELLOW | a static yellow light (used in the reactor core) |
| MUSIC | some music; not visible |
| MUSIC2 | some music; not visible |
| MUSIC3 | some music; not visible |
| ELECTRIC | produces a humming electric sound; not visible |
| FFIELD | produces a force field effect; not visible |
| SPIDER | the spider |
| WURM | some other monster - not yet finished |
| DRAGON | some other monster - not yet finished |
| START | the players tart position - there can be only one at any given time in one level |
Examples of Properties:
class GNEONLIGHT:
REDALERT1,255,0,0,1,3000,1
meaning:
Name: REDALERT1
color: 255,0,0
dynamic: 1
Examples of Events
class ROTOR
START: starts the rotor
STOP: stops the rotor
Group Properties
Under this submenu you find properties for Doors, Switches, Slipgates and Named Groups.
Each of these dialogs works on a so called group. Groups are groupings of poylgons
in the level which may have additional properties. Doors, Switches, Slipgates
and Named Groups do have additional properties, normal groups just group polygons
together.
Some words about group properties:
Groups are persistend in the sense that they can be saved and are still there
when reloaded. The polygons constituting a group are consecutive in the level
file, so groups can as well be used as a means, to restructure the order of
level files - but be careful, every polygon may only be part of ONE group, so
don't try to group a group. This shortcoming might be overcome in a later version.
Doors
Additinal properties of doors: Open and close sound. Select them by name. To get a selection list, you first have to load the sound resources with File/Load Sounds...
Door Name: this is the primary key by which a door can be referred to from a script. See a description of script commands here: eng32script.txt.
Room1/Room2: these are the names of the rooms connected by this door. Rooms are a means of speeding up the engine - it is not necessary to define rooms. Currently they can only be defined with 3DS MAX Scripts that are part of the SDK. See the README.TXT accompaning the SDK, or the UNION.GPT level for examples. Currently the Leveleditor can only display the room definitions (Menü: Tools / Define rooms)
Currently doors consist of only 4 polygons, 2 for each side of the door, and
the open up only sliding and to the left and the right. Other door types might
be implemented soon.
Attention: BUG: in the current version of ENG32 doors must have a special order
of edge points - therefor they cannot simply be created from 4 arbitrary polygons
- you have to cut /copy and paste on of the existing doors in the supplied sample
files!
Switches
Additional properties of Switches: the script.
Scripts are written in Lua. See http://www.tecgraf.puc-rio.br/lua/ for reference.
A few examples for the available commands (this list ist not complete - for
a complete reference see eng32script.txt):
| PlaySound( "Soundname" ) | Plays the named sound |
| Print( "Text" ) | Prints the specified text on the game screen |
| ConsolePrint( "Text" ) or CP( "Text" ) | Prints the text to the console (F9) |
| Sleep( 1000 ) | Sleeps for 1 second |
| OpenDoor( 10 ) | Opens door number 10 |
| CloseDoor( 10 ) | Closes door number 10 |
| door = GetDoorByName( "Door" ) ; | Gets the doornumber by its name |
| number = GetDoorNumber() | Returns the number of doors in the level |
| UnlockDoor( 10 ) | Unlocks door number 10 |
| LockDoor( 10 ) | Locks door number 10 |
| bLocked = IsDoorLocked( 10 ) | Returns true, if door 10 is locked, false otherwise |
| SetDoorDelay( 1000 ) | Sets the door delay to 1 second |
| SetTexture( polyID, textureID ) | Changes the texture of the specified polygon to the specified value |
| LightOn( 5 ) | Switches Light number 5 on |
| LightOff( 5 ) | Switches Light number 5 off |
| number = GetLightNumber() | Returns the number of lights in the level |
| light1 = GetLightByName( "Light1") | Converts a light name to its number |
| WorldSlip( "world", x, y, z ) | Slips to world "world", at position (x,y,z) |
| ObjectSendEvent( objectid, "event", "data" ) | Sends the eventstring "event" to the object with id objectid together with the generic data "data". The meaning of the eventstring and the data is entirely up to the entity that receives the event. See the chapter above "Object properties" for samples of events. |
| ObjectSendEventEngine( objectid, "SHOW", "data" ) | Currently only "SHOW" and "HIDE" implemented. These events have hardcoded meanings to the engine itself and are not passed to the controller DLL's |
A Switch has one associated polygon, which has 2 textures: activated and not activated, with consecutive texture ID 's.
Slipgates
NO SCREENDUMP YET.
Additional properties of Slipgates:
The huming work sound and the sound, when the slip occurs. To select
other sounds, load the sound resources first (File/Load Sounds...)
The name of the level, where we want te player to be after the slip
(referred to as WORLD), as well as the coordinates.
Named Groups
NO SCREENDUMP YET.
Additinal properties Named Groups:
As you need it. They are saved together with the level file, and currently
not used. This might help in implementing other structures/groups for future
versions.
Destack Points
This tools helps to get a handle to points that have the same position in all 3 dimensions - in such a case it is impossible to select only 1 of them. Select all of them and Use Destack - they will be moved in such a way, that you can select them again one by one. However, most of the time, it will be easier to delete the polygon/poylgons, and reinsert them.
Group Selected
This Tool creates the already mentioned normal groups. The have no additional properties, their polygons are consecutive in the level file and they can be only selected as once. Either a whole group is completely selected completely deselected. If you need to work on parts of a group, you must Ungroup it first, then make your changes and then group it back again (preferably in a new layer)
Ungroup Selected
Ungroups (removes from group and destroys the group) the polygons of the first selected group.
Check Level!
This tool searches for degenerate polygons (with only 1 or 2 points) and warns about them in the status baer, if found. In future version also coincident polygons shall be warned about. Problemetical poylgons are selected afterwards, and can therefor be deleted quickly (Ctrl-X)
Remove Attributes!
Removes from all selected polygons the classification attributes (floor,
ceil, wall, water, etc...).
This is the contrary to "Classify!".
Classify!
Tries to determine and classify types of polygons autmatically. Normally you can enter the polygon type for a set of selected polygons in "Polygon Properties".
BSP Tree

This tool helps visualizing and debugging the generated BSP tree (for
more information on that see the ENG32 documentation.
Normally you will not need to use it.
When you start it, it displays an empty window. Press "Load..." to
select and load a BSP File. These are generated on the fly by the engine,
when a GPT (Level) File is loaded for rendering. Together with the BSP
Files, GBP Files are generated as well. The GBP File represents the Level
as specified in the original GPT File, but with the polygons already properly
split, so that Binary Space Partitioning can be made. To work with the
BSP Tool you should have loaded the GBP File first, since the BSP File
references polygons from the corrresponding GBP File.
You can then select nodes in the BSP Tool and the corresponding polygons
in the GBP File (the main window) are marked (selected with yellow lines)
immediately.
You can as well select a polygon from the main window (the GBP view)
and press "Find Select" which marks the BSP node that contains the polygon
in question. If more than one polygon was marked only the first one is
taken into account.
Note, that a GBP File is NOT a complete level definition - it does not
contain entities like objects and lights.
Its only purpose is for debugging and performance analyzing, in combination
with the BSP Tool. You should therefor not contiue to edit on a GBP - only
GPT Files should be edited!!!
The Create Menu
Point
This is not yet implemented. It might later on aid in constructing more complex polygons, but it is not necessary.
Polygon From Points
This is a rather important tool. It creates a polygon spanning all selected
points - it is primary used to fill gaps between an otherwise solid polygon
structure.
With this tool it is rather easy to lift parts of a floor:
Mark the part to be lifted in polygon mode. Switch to Left View; lift
the polygons. There is now a gap between the original floor and the lifted
part which we have to fill with a few polygons.
Now switch back to top view. Switch to point selection mode.
Select the edge of one polygon from the lifted part, which is adjacent
to the unlifted floor. In Perspective view you should see about 4 Points
selected: 2 from the lifted polygon and 2 from the unlifted adjacent polygon.
Apply "Polygon From Points" - a fill polygon is created.
Attention: depending on the order of point selection, the resulting
polygon may have its face normal facing into the wrong direction (remember:
only polygons, whose normal vector points TOWARDS the viewer, will be seen
during the game!)
If so, apply the "Flip" Tool as well.
Continue this procedure for every polygon gap.
Afterwards you'll have to apply a texture and mapping coordinates to the newly created polygons with Tools / Polygon Properties.
Cube
Creates a small cube. This can be a starting point for many modelling actions. The cube is a group - if you want to edit only some polygons of the cube, you must select it as a whole and Ungroup it first.
Player Start
Most important, this has to be done, befor the level can be test played. It creates an Object of Class "START" in the center of your current view. You can select and move it then to its final destination. Be sure to check in all views, if the player start is correct.
Object
Creates a new object of a given class. See Tools
/ Object Properties for a description of the parameters as well as
a screen dump.
Polygon Mode and Point Mode:
The Editor has two selection and work modes.
When in Polygon mode only complete polygons can be selected - subsequent
move, rotate and similar operations affect the whole polygon then.
Poylgon selections are seen as yellow outlines, as in the following
screen dump, where a whole console of the control rook is selected - a
subsequent move will move the console as a whole.

When in Point selection mode, individual points of one or more polygons can be selected. Subsequent move, rotate or similar operations work on the selected points.
Point selections can be seen as tiny red marks, as in the following
screendumo, where a few points of a console in the control room are selected
- a subsequent move will enlarge the console in one direction or shear
it, depending on the direction of move.

Note that polygon selections and point selections may coexist - however
only one mode (polygon or point) is active at any given time, and any operation
works only according to the current working mode.
The current mode can be determined by looking at the cursor: when it
has a little point sign to its upper left, the editor is in point selection/work
mode, otherwise in polygon mode.
Deselect all
deselects all Polygons OR Points, according to the current mode.
It must be noted, that selections are NOT removed when switching from
Polygon to Point Mode and back, so both kinds of selections may coexisit
- however the Tools work only on the currently active selection according
to the selection mode.
Extended select is a convenient way to select polygons by texture ID (e.g all steel walls), by Polygon ID or by group.
Surface: when -1 is specified, no selection takes place. In the combobox
you can see textures by their associated filenames.
Attention: BUG: this feature is not yet working!
Polygon ID: this is normally not known, especially in the phase of creating a level, and changes, when polygons or inserted and/or deleted. However this can be used, when the engine produces an error and refers to a certain polygon, to determine the size/position and similar attributes of the polygon by first deselectiong all poylgons and then entering it's ID here.
Group: This currently lists all groups: Doors, Slipgates, Switches,
Named and normal groups - it is rather difficult to find the correct one
- you have to try. In a future version a group ID may be introduced and
showed when the level is shown.
However this is a good place to have a look at the currently active
groups.
From the top, from the left, from the right and perspective (free view).
You can switch between these views with the View Menu or the tool bar.
When switching views, the view is centered to the center of the level, which is calculated upon loading the level. This is also the point about which the perspective view rotates, when you change it. This may be changed in future versions, so that every kind of view has its own center point, and the point, around which the level is rotated in perspective view as well as it is centered when using View/Center or switching view may also be changed dynamically.
To zoom in or out, use the right mouse button. The point on which you click, is the point which stays constant in the zoom process, so if you chose this point wisely you can spare yourself another adjustment on the scrollbars afterwards.
To change the point of view in the perspective view, use the left mouse button - the tools do not work in this view.
The view is a grid view, with no hidden line algorithm yet. A solid polygon drawing mode, which shows only poylgons facing the viewer with their normal vector (therefor e.g. not showing the ceiling) might be implemented soon.
When poylgons are selected, they are drawn in yellow and fat. Also,
their normal vectors are drawn as thin red lines - they help you in determining,
if you also have selected faces, that would otherwise not be visible, like
a wall seen from above (only a yellow line, which might be covered by ceiling/floor
polygons), as well as in determining, if the polygon is oriented correctly
- the normal vector must go inwards in rooms, and in general point to the
viewer, if the face shall be visible.
if this is not the case, you must rotate the polygon - a future version
my introduce a Flip Normals Tool.
Center centers around the already mentioned center of the level.
Sounds:
They may be loaded with File / Load Sounds. You need not load them immediately, but if you want to change sound settings for e.g doors, you will need to load them first. Be sure to load the correct version, which will be used together with the level, or otherwise the level will not start up.
There is a Sounds Window, to allow you to view and edit the loaded sounds - currently it only shows the loaded sounds. For the future.
Quite similar as sounds. Can be loaded in advance but may not.
The object classes window just shows them now, a future version will include editing of object classes too.
Object classes describe the behaviour and appearance of objects. What
is an object?
An object is a comparably small structure (in comparison to the level)
which is persistent (saved together with the level, and saved in the savegame,
see ENG32), which can normally move in the level.
The only exception to the movability aspect are lights which should generally
not move, since the lightmaps are precalculated.
Typically you will use them for enemies, friends, inventory of the level and such. They are also used to represent lights.
Objects are represented as dark green rectangles in the leveleditor,
not regarding their actual size, but only indicating their starting position.
When selected, they become light green. See the following example:

Here we have a dozen objects, most of them representing lights; 4 of
them are selected.
To see the the class of an object, select it, and select Tools
/ Object properties.
What can be seen as well is the levels midpoint, indicated as a small yellow
rectangle. This is the point which will be centered by the Center Tool and the
pivot point for the rotation in the Perspective View.
List of object classes as supported by now:
| LIGHT1 | a fire light, flickering. Produces a firelight effect |
| LIGHT2 | a blue, static light - the main light source |
| LIGHT3 | a red flashing alert light |
| LIGHTRED | a static red light |
| GNEONLIGHT |
a generic light: Properties: Name,R,G,B,dynamic,Distance,ON/OFF |
| LIGHTYELLOW | a static yellow light (used in the reactor core) |
| MUSIC | some music; not visible |
| MUSIC2 | some music; not visible |
| MUSIC3 | some music; not visible |
| ELECTRIC | produces a humming electric sound; not visible |
| FFIELD | produces a force field effect; not visible |
| SPIDER | the spider |
| WURM | some other monster |
| DRAGON | some other monster |
| ROTOR |
a rotor Properties: H/V (horizontal or vertical),MaxSpeed Events: START: start rotor and accelerate up to MaxSpeed STOP: stop normally STOPIMMEDIATE: Stop without delay |
| PLATFRM1 |
a moving platform Properties: Number,x1,y1,z1,x2,y2,z2 like: 2,0,-1000,0,0,-2000,0, Events: MOVE Move to next target GET Retrieve current target (non functional) |
| START | the players start position - there can be only one at any given time in one level |
This list can be changed by editing the OBJCLS.IND File in the WORLDS subdirectory. Certain object classes have predefined and hardcoded meanings, like the lights. Others, like music, electric, ffield and the various monsters can be edited and inserted at will into the OBJCLS.IND file.
Textures:
Same as sounds and object classes they must be loaded separately under File / Load Textures.
They can be viewn afterwards with Window / Textures.
An example:

The vary same dialog can be used in the polygon properties to select the texture of chocie.
Future: You can then edit the textures by deleting textures and inserting new ones (preferably from 24-bit Bitmaps) - they will then be saved in the TEXTURE directory and an entry in the Texture Index file will be made.
Attention: Befor using the level you must convert the textures to the native ENG32 format, depeding on whether you use the software renderer, Direct 3D renderer, Glide renderer or Open GL renderer.
Requirements:
Glide................uses 3df files - use TEXUS utility
Direct 3D.........uses 24 bit BMP's - no conversion needed.
OpenGL...........uses 24 bit BMP's - no conversion needed.
Software...........uses 8 bit BMP - use PALMAP utility.
To facilitate the use of TEXUS a Batch, 3DF.BAT has been provided.
Recommended usage:
3DF Inputfile YIQ
Inputfile should contain NO EXTENSION.
This creates a 3df file with same filename and extension 3df with a
rather good compression.
PALMAP usage:
PALMAP palref.pal InputBitmap [OutputBitmap].
palref.pal is the palette to which the bitmap will be mapped. A sample
palette can be found in the textures subdirectory.
The quality of the produced textures may vary, since the palette is
rather poor on colors - best results can be achieved with green, brown
and grey colors. Blue is problematical and should mostly be used for water
in a rather pure form.
Batches for processing the whole subdirectory will be provided.