Difference between revisions of "Universal Wolfenstein Map Format"
(Created page with "The Universal Wolfenstein Map Format (UWMF) is a text based, extendable, specification for defining map structures. At the current time ECWolf is not a complete implementation...") |
Hair Machine (talk | contribs) |
||
Line 1: | Line 1: | ||
The Universal Wolfenstein Map Format (UWMF) is a text based, extendable, specification for defining map structures. At the current time ECWolf is not a complete implementation of the specification. | The Universal Wolfenstein Map Format (UWMF) is a text based, extendable, specification for defining map structures. At the current time ECWolf is not a complete implementation of the specification. | ||
+ | |||
+ | == Overview == | ||
+ | UWMF is loosely based on the textual map format for Doom known as Universal Doom Map Format (UDMF). | ||
+ | UWMF keeps the main concepts present in vanilla Wolf3d map editing. At its core, the format still supports the idea of planes of data which act as canvas which can be "painted." The big difference now is that the set of textures is defined on the map by name instead of a global index. This makes maps a whole lot more portable than before. In the future editors will, however, likely hide most of the details in defining the palettes for textures, flats, and sound zones (previously floor codes). Technically each individual wall side on a map could be given its own unique texture, if desired. | ||
+ | |||
+ | One thing the format does away with is special floor codes. A secret exit are defined by assigning a secret exit trigger to a wall. "Deaf" enemies are defined by simply flagging them as such. The format also handles special triggers which are possible to assign uniquely to each side of a wall - for example, one way doors or pushwalls that can be activated only from a certain direction. | ||
+ | |||
+ | Currently ECWolf does not implement the entirety of the new format, and no editor is directly capable of creating it. Maps can be created by using the export feature present in WDC and HWE. This is for two main reasons: whilst the format allows things to be placed independently on different walls of the grid, Adam tells me that this would be nearly impossible to support with WDC in its current state; in addition, the format is designed assuming the possibility of stacking planes. This is a long term goal for ECWolf, but obviously the map format needs to be ready for it. At this time maps are limited to one plane (a plane in the new format is a Z layer). | ||
+ | |||
+ | ECWolf forces the new map format for all mods distributed in the new package formats (WAD, PK3, etc). Old maps will be converted on the fly. This is particularly necessary since thing numbers differ between the two formats. | ||
== Globals == | == Globals == |
Revision as of 01:30, 2 January 2013
The Universal Wolfenstein Map Format (UWMF) is a text based, extendable, specification for defining map structures. At the current time ECWolf is not a complete implementation of the specification.
Overview
UWMF is loosely based on the textual map format for Doom known as Universal Doom Map Format (UDMF). UWMF keeps the main concepts present in vanilla Wolf3d map editing. At its core, the format still supports the idea of planes of data which act as canvas which can be "painted." The big difference now is that the set of textures is defined on the map by name instead of a global index. This makes maps a whole lot more portable than before. In the future editors will, however, likely hide most of the details in defining the palettes for textures, flats, and sound zones (previously floor codes). Technically each individual wall side on a map could be given its own unique texture, if desired.
One thing the format does away with is special floor codes. A secret exit are defined by assigning a secret exit trigger to a wall. "Deaf" enemies are defined by simply flagging them as such. The format also handles special triggers which are possible to assign uniquely to each side of a wall - for example, one way doors or pushwalls that can be activated only from a certain direction.
Currently ECWolf does not implement the entirety of the new format, and no editor is directly capable of creating it. Maps can be created by using the export feature present in WDC and HWE. This is for two main reasons: whilst the format allows things to be placed independently on different walls of the grid, Adam tells me that this would be nearly impossible to support with WDC in its current state; in addition, the format is designed assuming the possibility of stacking planes. This is a long term goal for ECWolf, but obviously the map format needs to be ready for it. At this time maps are limited to one plane (a plane in the new format is a Z layer).
ECWolf forces the new map format for all mods distributed in the new package formats (WAD, PK3, etc). Old maps will be converted on the fly. This is particularly necessary since thing numbers differ between the two formats.
Globals
- namespace = "Wolf3D";
- Sets the namespace of the properties used by this map. Must be the first item in a map.
- name = "<string>";
- Sets the name of the map. This can be overridden in MAPINFO.
- tilesize = <integer>;
- Sets the width, in pixels, of a standard map tile.
- width = <integer>;
- Width of the map in tiles.
- height = <integer>;
- Height of the map in tiles.
After the header information is set one or more of each of the following blocks can be defined.
- plane { properties }
- planemap { {<tile>,<sector>,<zone>}, ... }
- Assigns tiles, sectors, and zones to each map tile. Each plane should have a corresponding planemap.
- sector { properties }
- tiles { properties }
- thing { properties }
- trigger { properties }
- zone { }
Planes
Defines a single plane of tiles. Unlike in the binary format a plane contains all information for one slice of the level's Z-axis. In other words most levels have one plane.
- depth = <integer>;
- Height of the plane in pixels.
Sectors
Defines the floor and ceiling texture for a tile.
- textureceiling = "<string>";
- texturefloor = "<string>";
Tiles
Defines a set of textures and properties to use for the walls in a map tile.
- blockingeast = <bool>;
- blockingnorth = <bool>;
- blockingsouth = <bool>;
- blockingwest = <bool>;
- Sets the side of the tile as blocking. Default is true.
- offsethorizontal = <bool>;
- offsetvertical = <bool>;
- Offsets the texture by a half tile as commonly seen in doors.
- textureeast = "<string>";
- texturenorth = "<string>":
- texturesouth = "<string>";
- texturewest = "<string>";
- Sets the textures to use on each side of the tile.
Things
- ambush = <bool>;
- Sets the ambush flag for the thing. Default is false.
- angle = <integer>;
- Angle of the spawning point in degrees.
- patrol = <bool>;
- Spawns the thing as patrolling. Default is false.
- skill1 = <bool>;
- skill2 = <bool>;
- skill3 = <bool>;
- skill4 = <bool>;
- Sets the skill levels in which the thing will spawn. Default is false.
- type = <integer>;
- Gives the editor number (as defined in DECORATE) of thing to spawn.
- x = <float>;
- y = <float>;
- z = <float>;
- Gives the coordinates of the spawning point of the thing. In pixels.
Triggers
- action = <integer>;
- Sets the action special to execute for this trigger.
- activateeast = <bool>;
- activatenorth = <bool>;
- activatesouth = <bool>;
- activatewest = <bool>;
- Sets the faces on which the trigger will activate. Default is true.
- arg0 = <integer>;
- arg1 = <integer>;
- arg2 = <integer>;
- arg3 = <integer>;
- arg4 = <integer>;
- Arguments to pass to the action. Default is 0.
- playercross = <bool>;
- Allows the player to activate the line special by crossing the face. Default is false.
- playeruse = <bool>;
- Allows the player to activate the line special. Default is false.
- monsteruse = <bool>;
- Allows monsters to activate the line special. Default is false.
- repeatable = <bool>;
- Allows the special to be activated multiple times. Default is false.
- secret = <bool>;
- The trigger will count as a secret and will be tallied on first activation. Default is false.
- x = <integer>;
- y = <integer>;
- z = <integer>;
- Gives the coordinate of the map tile this trigger applies to.
Zones
Zones are areas in which sound can travel through. There are no properties for zones at this time, but they must be defined.