
                             Eternity Engine
			SMMU Features Editing Guide

                            Updated 08-19-04

[1-1] Overview
--------------
Eternity is based upon SMMU, and therefore contains support for most 
SMMU features, as well standard BOOM and MBF linedef and sector types, 
'dehacked' lumps, etc. Basically anything they can do, Eternity can do.

Eternity also contains further support for a number of extra linedef
types which will only work with it.

[1-2] The level header
----------------------
By 'the level header', I mean the wad resource which starts a level.
For example, the level headers for all the original doom levels were
all in the format "mapxy" or "exmy".

In Eternity, the level header can take any name, for example, the Eternity
'start map' has the name "start". Levels with nonstandard names can
be accessed from the console using the "map" command: eg "map start".

Additionally, Eternity automatically detects new levels loaded from wads
and will start on the appropriate level when the 'new game' option
is chosen from the main menu (only if the "start new game on first new
map" option on the Eternity Options menu is set to "yes", and only in
DOOM II).

[1-3] The level info lump
-------------------------
In original doom, the level header resource was empty: it was always
0 bytes long. This is not to say that it _had_ to be 0 bytes long:
any data in the level header was simply ignored.

In Eternity, the level header is used to hold information about the level.
The format is a simple ascii text file, similar in style to the '.ini'
files which are found in a typical windows directory.

See the Eternity Engine MapInfo Reference for full information. As of
Eternity Engine v3.31 'Delta', Eternity also supports global MapInfo 
lumps.

[2-1] The level info section
----------------------------

Most of this information has been moved to the Eternity Engine MapInfo
Reference. Please see it for full information.

_example_ A typical level info section

[level info]
levelname = chadders' lair
partime = 200
music = cheese
creator = Edwin Chadwick 'chadders'
nextlevel = chad2

This sets a number of settings, but uses the default interpic and sky.
The automap shows the level name "chadders' lair", and the par time is
200 seconds (3:20). The music 'd_cheese' is used, and when the player
exits the level, play advances to the next map, 'chad2'.

[3] Scripting
=============

See the Eternity Engine Small references for full information on Eternity's
scripting capabilities. FraggleScript is no longer supported by Eternity.

[3-4] Hubs
----------

NOTE: Hubs are temporarily disabled in Eternity v3.31 Delta
      due to continued development.

[4] Thing options
=================

[4-1] Directions
----------------
In original doom, you could place things in levels, but their directions
were rounded down to the nearest 45 degrees. However, in Eternity you can
specify any angle right down to the nearest degree.

This does not require any kind of change in wad format. The original
system allowed you to specify angles that were not 45 degree 'aligned'.
However these were simply rounded down. Eternity has greater accuracy so 
you can specify any angle.

[4-2] Intermission cameras
--------------------------
Eternity allows you to change the background in intermission screens but
there is also a more advanced system that allows you to see a view of
the after you have left it. If you place a thing of type 5003 in the level,
when you get to the intermission screen you will see a view from that
point rather than the standard 'still' background.

Placing more than one camera in a level works, also. If you make more
than one camera, one of them is simply chosen at random.

[5] Other
---------

[5-1] Swirly flats
------------------
The console variable 'r_swirl', when set to 1, will stop all animated flats
from animating and instead give them a 'swirling' effect similar to the
quake water effect. However, this affects all flats and for some animated
flats it doesn't look right.

You can specify when to use the 'swirl' effect on individual animated flats
using the boom 'animated' resource. You can use the SWANTBLS.EXE program to
create your own set of animated flats. If the delay between flat frames is
set greater than 65535, that flat will be given the swirl effect.

[5-2] Sector Flags
------------------
Boom once promised two extra sector flags, if you look in boomref.txt:

  Bits 10 and 11 are not implemented yet, but are reserved for use in
  sound control. Bit 10 will suppress all sounds within the sector,
  while bit 11 will disable any sounds due to floor or ceiling motion
  by the sector.

Anyway, looking at some levels, I found particularly annoying the way that
3-D bridges 'clunked' when you walked over them. So I decided to implement
the sector flags which the boom team planned to implement. You may now use
bits 10 and 11 in your wads as you please.

