Editing SMMU

From Eternity Wiki
Jump to navigationJump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 3: Line 3:
Features of SMMU:
Features of SMMU:


* FraggleScript (''later removed from Eternity due to design flaws'')
* FraggleScript
* [[List_of_console_commands|Console]]
* [[List_of_console_commands|Console]]
* Rewritten [[menu]], [[heads-up display]], and [[networking]] code
* Rewritten [[menu]], [[heads-up display]], and [[networking]] code
* Quake-style "start map" for skill selection, courtesy of [[Doom Wiki:Derek MacDonald (Afterglow)|Derek "Afterglow" MacDonald]] (''later removed from Eternity due to its FraggleScript dependency'')
* Quake-style "start map", courtesy of [[Doom Wiki:Derek "Afterglow" MacDonald|Derek "Afterglow" MacDonald]]
* Windows, MS-DOS and Linux ports (''Eternity also runs on macOS'')
* Windows, MS-DOS and Linux ports
* Chasecam
* Chasecam
* Various demo features, including the ability to move cameras freely within demos while they are playing
* Various demo features, including the ability to move cameras freely within demos while they are playing
Line 16: Line 16:
SMMU is licensed under the [[Wikipedia:GPL|GNU GPL]].
SMMU is licensed under the [[Wikipedia:GPL|GNU GPL]].


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 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.
Eternity also contains further support for a number of extra linedef types which will only work with it.
{{backto|Eternity Engine}}
 
{{smmuedit}}
==The level header==
==The level header==
A 'level header' is 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''.
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 SMMU 'start map' had the name {{c|START}}. Levels with nonstandard names can be accessed from the [[console]] using the "map" command, e.g. "map start".
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).
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).


==The level info lump==
==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 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 SMMU, the level header was used to hold information about the level. The format is a simple text file, similar in style to the '.ini' files which are found in a typical Windows directory.
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 supports global MapInfo lumps. '''Setting MapInfo data in the level header lump is now deprecated.'''
See the Eternity Engine [[MapInfo]] Reference for full information. As of Eternity Engine v3.31 'Delta', Eternity also supports global MapInfo lumps.


==Thing options==
==Thing options==
===Directions===
===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.
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.
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.
Line 48: Line 47:
==Other==
==Other==
===Swirly flats===
===Swirly flats===
The console variable <code>r_swirl</code>, 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.
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 [[EDF animations]], the Boom [[ANIMATED]] resource or [[ANIMDEFS]]. For Boom ANIMATED, you can use the <code>SWANTBLS.EXE</code> 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.
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.


===Sector Flags===
===Sector Flags===
Line 60: Line 59:
   by the sector.
   by the sector.


In some levels, fake vanilla-compatible 3D bridges may "clunk" when you walk over them (due to the instant floor move specials). SMMU thus implemented sector flags which block mechanical sounds (or alternatively, ''all'' sounds) coming from them. You may now use bits 10 and 11 in your wads for the generalized sector types. Modern editors should offer this feature in the sector properties dialog box. See [[Generalized sector types]].
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.


== Sources ==
== Sources ==
Please note that all contributions to Eternity Wiki are considered to be released under the GNU Free Documentation License 1.2 (see Eternity Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!
Cancel Editing help (opens in new window)