Sidedef
A sidedef is a structure bound to a linedef in order to specify for one side of the linedef which sector to refer to, what texture to use and where, and how to display and offset that texture. Sidedefs are assigned to linedefs, not the other way around. Just like sector data, sidedef data can be reused for multiple lines or sets of lines. Where a given sidedef's properties are the same as those of another sidedef, either sidedef can be used in either place, and the redundant sidedef can be discarded. This can significantly reduce the filesize of a saved map, and is known as sidedef packing. ZDoom unpacks these sidedefs when maps are loaded, however, presumably for stability purposes.
Specification
Bytes | Data type | Description |
---|---|---|
0-1 | Signed short | X offset |
2-3 | Signed short | Y offset |
4-11 | Char[8] | Upper texture |
12-19 | Char[8] | Lower texture |
20-27 | Char[8] | Middle texture |
28-29 | Unsigned Short | Sector reference — this must be correct for sectors to be closed |
UDMF properties
The Universal Doom Map Format allows to set a number of properties on sidedefs. Unless otherwise specified, default values for integers and float is 0. Boolean values default to "false". They include:
Name | Type | Description |
---|---|---|
alpha | float | Translucency of this line, default is 1.0. |
clipmidtex | bool | If true, this side's mid textures are clipped to floor and ceiling. Default is to let them "bleed" through floor and ceiling planes. Note that OpenGL renderers will clip mid textures regardless. |
comment | string | A comment. This is ignored by the engine. |
light | integer | This side's light level. |
lightabsolute | bool | If true, 'light' is an absolute value. Default is relative to the owning sector's light level. |
lightfog | bool | If true, this side's relative lighting is used even in foggy sectors. Default is to disable relative lighting in foggy sectors. |
nodecals | bool | If true, this disables decals on the sidedef. |
nofakecontrast | bool | If true, this disables use of fake contrast on this sidedef (forcing even lighting). Default is to use MAPINFO and user settings. |
offsetx_bottom | float | Additional X offset for lower texture. |
offsetx_mid | float | Additional X offset for mid texture. |
offsetx_top | float | Additional X offset for upper texture. |
offsetx | integer | X offset. |
offsety_bottom | float | Additional Y offset for lower texture. |
offsety_mid | float | Additional Y offset for mid texture. |
offsety_top | float | Additional Y offset for upper texture. |
offsety | integer | Y offset. |
scalex_bottom | float | X scale for lower texture, Default = 1.0. |
scalex_mid | float | X scale for mid texture, Default = 1.0. |
scalex_top | float | X scale for upper texture, Default = 1.0. |
scaley_bottom | float | Y scale for lower texture, Default = 1.0. |
scaley_mid | float | Y scale for mid texture, Default = 1.0. |
scaley_top | float | Y scale for upper texture, Default = 1.0. |
sector | integer | Sector index. No valid default. |
smoothlighting | bool | If true, this forces use of smooth lighting fake contrast. Default is to use MAPINFO and user settings. |
texturebottom | string | Lower texture. Default = "-" for no texture. |
texturemiddle | string | Middle texture. Default = "-" for no texture. |
texturetop | string | Upper texture. Default = "-" for no texture. |
wrapmidtex | bool | If true, this side's mid textures are wrapped (tiled vertically). |