<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://zdoom.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Eevee</id>
	<title>ZDoom Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://zdoom.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Eevee"/>
	<link rel="alternate" type="text/html" href="https://zdoom.org/wiki/Special:Contributions/Eevee"/>
	<updated>2026-08-15T19:33:11Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://zdoom.org/w/index.php?title=CVARs:Display&amp;diff=48862</id>
		<title>CVARs:Display</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=CVARs:Display&amp;diff=48862"/>
		<updated>2021-12-12T23:53:44Z</updated>

		<summary type="html">&lt;p&gt;Eevee: /* OpenGL */ fill in other lightmodes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These CVARs control various aspects of ZDoom&#039;s renderer and options relating to the in-game display.&lt;br /&gt;
&lt;br /&gt;
See the [[CVARs]] article for general information on how to access and edit variables.&lt;br /&gt;
__TOC__&lt;br /&gt;
==Game options==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|addrocketexplosion}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:When false, {{class|rocket}} explosions are drawn with normal translucency. When true, rocket explosions use additive translucency instead, producing a brighter effect. This affects the death state sequence of any {{class|actor}} with the {{Flag|DEHEXPLOSION}} flag.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|paletteflash}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 0&lt;br /&gt;
:Affects the [[palette flash]]es that happen in certain circumstances, notably in &#039;&#039;[[Hexen]]&#039;&#039; and &#039;&#039;[[Strife]]&#039;&#039;. The value is combined from several palette flash flags.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|pf_hazard}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:If true, ZDoom uses accurate palette flashes for delayed poisoning from &#039;&#039;Strife&#039;&#039;&#039;s [[damaging floor]]s.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|pf_hexenweaps}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:If true, ZDoom uses accurate palette flashes for the {{Class|MWeapBloodscourge|Bloodscourge}} and {{Class|CWeapWraithverge|Wraithverge}} [[weapon]]s.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|pf_ice}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:If true, ZDoom uses accurate palette flashes for [[frozen death]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|pf_poison}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:If true, ZDoom uses accurate palette flashes for [[poison]] damage.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|nomonsterinterpolation}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
: Default: false&lt;br /&gt;
: Because [[ZDoom]] allows the framerate to go above 35 FPS, [[monster]] movement is interpolated by default so they move more smoothly and take advantage of the additional frames. However, the actual AI that moves them is still limited to the normal 35 [[tic]]s per second rate. In some situations, this may cause jerky or inaccurate movement when ZDoom attempts to interpolate. This option can be enabled so that monsters will only visibly move at the 35 FPS rate.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|transsouls}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
:Default: 0.75&lt;br /&gt;
:Defines the level of alpha transparency for [[Classes:LostSoul|lost souls]] and other actors with the SoulTrans {{Property|RenderStyle}}. Values are clamped to stay between 0.25 and 1.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|telezoom}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:When true, teleporters will create an &#039;&#039;{{wp|Unreal}}&#039;&#039;-like zooming effect when you use them.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|wipetype}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 1&lt;br /&gt;
:Selects the type of [[screen wipe]] to use. There are currently four possible settings for this cvar:&lt;br /&gt;
:*0:No wipe&lt;br /&gt;
:*1:Melt&lt;br /&gt;
:*2:Burn&lt;br /&gt;
:*3:Crossfade&lt;br /&gt;
&lt;br /&gt;
==Crosshair==&lt;br /&gt;
* &#039;&#039;&#039;{{LE|crosshair}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 0&lt;br /&gt;
:If this cvar is non-zero, it draws a [[crosshair]]. If this cvar is negative, the crosshair is translucent, otherwise it is opaque. The specific crosshair drawn depends on the value of this cvar.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|crosshairon}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:Enables/disables the crosshair without changing the selected crosshair.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|crosshaircolor}}&#039;&#039;&#039; ([[CVARs#color|color]])&lt;br /&gt;
:Default: &amp;quot;ff 00 00&amp;quot; {{color|#ff0000}}&lt;br /&gt;
:This is the crosshair&#039;s color if crosshairhealth is false. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|crosshairforce}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:By defaults mods may use [[A_SetCrosshair]] in a weapon definition to designate a [[crosshair]] to use for that weapon.  If you want to override this and force the game to use your own selected crosshair, set this CVAR to true.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|crosshairgrow}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:Set this to true if you want the [[crosshair]] to temporarily enlarge each time you pick up an item, provided that the item in question has a {{Property|Inventory.PickupMessage|pickup message}} assigned and the {{Flag|INVENTORY.QUIET|QUIET}} [[actor flags|flag]] cleared.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|crosshairhealth}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:When true, the [[crosshair]]&#039;s color reflects your current health. Green is healthy, red is near death, and intermediate colors are somewhere in between. Set this to false, if you want the crosshair to have a constant color (specified by the crosshaircolor cvar) instead.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|crosshairscale}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
:Default: 1.0&lt;br /&gt;
:A multiplier for the crosshair&#039;s size on the screen. Setting this to 0, draws the crosshair without scaling.&lt;br /&gt;
&lt;br /&gt;
==Chase camera==&lt;br /&gt;
* &#039;&#039;&#039;{{LE|chase_dist}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
:Default: 90.0&lt;br /&gt;
:This is how far away from the player the [[chasecam]] likes to be, but it will get closer as necessary to avoid going inside walls.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|chase_height}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
:Default: -8.0&lt;br /&gt;
:This is the base height above the top of the player&#039;s head at which the [[chasecam]] will be positioned. Looking up and down will move the camera in the opposite direction so that the player stays at approximately the same height on the screen. Large values of this CVAR (either positive or negative) will produce strange output.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|chasedemo}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:If this CVAR is true, then [[demo]]s will automatically start with the [[chasecam]] active.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_deathcamera}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:If this CVAR is true, the player automatically goes into chasecam mode when dying. This use of the chasecam is not considered a cheat.&lt;br /&gt;
&lt;br /&gt;
==Decals==&lt;br /&gt;
These CVARs affect [[decal]]s.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|cl_bloodsplats}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:When true, whenever something bleeds, it has a chance of leaving blood spots on nearby walls. Setting this to false might help performance on low-end machines.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|cl_maxdecals}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 1024&lt;br /&gt;
:This is the maximum number of decals that can exist in the game at one time. Decals are graphics that are placed on walls in response to blood splatter and projectile impacts.  Setting this to 0 will disable decals entirely.  This CVAR can be set to a maximum value of 2,147,483,647 which would allow an infinite number of decals for all intents and purposes.  Be aware, however, that hundreds of decals visible on the screen at one time can cause lag even on fast computers.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|cl_missiledecals}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:Set this to false if you don&#039;t want exploding missiles to leave scorch marks.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|cl_spreaddecals}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:ZDoom clips decals to sidedefs. In order to hide this, the game will create as many duplicate decals on adjoining sidedefs as needed to make it appear that there is only one unbroken decal on the wall. Set this cvar to false if you don&#039;t want this. &lt;br /&gt;
&lt;br /&gt;
==Heads-Up Display (HUD)==&lt;br /&gt;
* &#039;&#039;&#039;{{LE|displaynametags}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 0&lt;br /&gt;
:Determines whether [[inventory]] and [[weapon]] {{property|Tag|tags}} are shown when using {{CCMD|P|invnext}}, {{CCMD|P|invprev}}, {{CCMD|P|weapnext}}, and {{CCMD|P|weapprev}}. Possible values are:&lt;br /&gt;
:*0: Don&#039;t show anything&lt;br /&gt;
:*1: Show inventory tags&lt;br /&gt;
:*2: Show weapon tags&lt;br /&gt;
:*3: Show both inventory and weapon tags&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|con_alpha}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
:Default: 0.75&lt;br /&gt;
:Controls how transparent the [[console]] is when it is lowered. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_scale}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:Controls scaling of the fullscreen hud. At resolutions of 640x400 or above, setting this cvar to true will cause the icons to be scaled to approximately the same size they would be at 320x200. If this cvar is false, the icons will always be drawn without any scaling.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|nametagcolor}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 5 ({{color|#FFCC00}} gold)&lt;br /&gt;
:The color used to display weapon and inventory {{Property|Tag|tags}} when scrolling through them.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|screenblocks}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 10&lt;br /&gt;
:This CVAR determines the size of the view window. Valid values are in the range 3-12 inclusive. Attempts to set this cvar to values outside this range will be truncated. 10 shows the normal [[status bar]] at the bottom of the screen. 3 is the smallest view window, and 12 is full screen. 11 is also full screen, but includes a small overlaid heads-up display (which can be changed to the [[alternate HUD]] with [[#hud_althud|hud_althud]]).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|st_oldouch}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:If this CVAR is true, the [[mugshot]] will show the infamous &amp;quot;ouch face&amp;quot; when the player is healed by at least 20 points while taking damage, reestablishing the bogus behavior found in [[vanilla Doom]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|st_scale}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:When this CVAR is true, the status bar will be scaled so that it covers the entire width of the screen in higher resolutions. At low resolutions this may look ugly, but at high resolutions it should look good enough.&lt;br /&gt;
&lt;br /&gt;
=== Alternate HUD ===&lt;br /&gt;
The following variables all affect the [[alternate HUD]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_althud}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:Controls whether the [[alternate HUD]] is used in full-screen HUD mode ([[#screenblocks|screenblocks]] 11).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_althud_forceinternal}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:Controls whether or not to allow a [[GameInfo_definition#AltHudClass|custom alternate HUD]] to be used instead of the internal one. If this is &#039;&#039;false&#039;&#039;, a custom HUD is allowed to be used, otherwise, if it is &#039;&#039;true&#039;&#039;, the internal one is always used.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_althudscale}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 2&lt;br /&gt;
:Scale of the [[alternate HUD]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_ammo_red}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 25&lt;br /&gt;
:The percent value of the maximum below which the current ammo count will be displayed in red ({{color|#FF5566}}).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_ammo_yellow}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 50&lt;br /&gt;
:The percent value below which the current armor rating will be displayed in yellow ({{color|#FFCC00}}). Greater values are displayed in green ({{color|#00CC00}}).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_armor_green}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 100&lt;br /&gt;
:The percent value of the maximum below which the current ammo count will be displayed in green ({{color|#00CC00}}). Greater values are displayed in blue ({{color|#9999FF}}).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_armor_red}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 25&lt;br /&gt;
:The value below which the current armor rating will be displayed in red ({{color|#FF5566}}).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_armor_yellow}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 50&lt;br /&gt;
:The value below which the current armor rating will be displayed in yellow ({{color|#FFCC00}}).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_berserk_health}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:If true, the {{Class|berserk}} icon is shown instead of the health icon when the player has a {{Class|PowerStrength}} active. If false, the health icon is displayed regardless. This also requires a berserk icon to be defined and valid ({{c|PSTRA0}} by default in Doom games).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_health_green}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 100&lt;br /&gt;
:The value below which the current health total will be displayed in green ({{color|#00CC00}}). Greater values are displayed in blue ({{color|#9999FF}}).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_health_red}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 25&lt;br /&gt;
:The value below which the current health total will be displayed in red ({{color|#FF5566}}).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_health_yellow}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 50&lt;br /&gt;
:The value below which the current health total will be displayed in yellow ({{color|#FFCC00}}).&lt;br /&gt;
&lt;br /&gt;
==== HUD statistics ====&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_ammo_order}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 0&lt;br /&gt;
:Sets the order in which the ammo counters and their associated icons are drawn:&lt;br /&gt;
:* 0: the icons are drawn on the left while the counters are drawn on the right.&lt;br /&gt;
:* 1 or above: the icons are drawn on the right while the counters are drawn on the left.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_showammo}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 2&lt;br /&gt;
:Manages the display of ammo:&lt;br /&gt;
:* 0: displays ammo for the currently equipped weapon only.&lt;br /&gt;
:* 1: displays ammo for weapons in the inventory only.&lt;br /&gt;
:* 2: displays ammo for all available weapons, whether they are in the inventory or not.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_showangles}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:While the [[automap]] is active, it shows player&#039;s current yaw, pitch and roll.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_showitems}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:Toggles whether the player&#039;s tally of found [[item]]s is displayed.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_showmonsters}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:Toggles whether the player&#039;s tally of killed [[monster]]s is displayed.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_showscore}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:Toggles whether the player&#039;s [[score]] is displayed.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_showsecrets}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:Toggles whether the player&#039;s tally of found [[secret]]s is displayed.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_showstats}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:Toggles whether the player&#039;s [[accuracy]] and [[stamina]] are displayed.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_showtime}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 0&lt;br /&gt;
:Selects whether a timer is shown in the upper-right corner of the screen. The time can show the level time, hub time, total game time, or system time; and the precision can go from hours and minutes only to also showing seconds. When set to level time, the precision can even go to milliseconds.&lt;br /&gt;
:*0: Off&lt;br /&gt;
:*1: Level time, down to milliseconds&lt;br /&gt;
:*2: Level time, down to seconds&lt;br /&gt;
:*3: Level time, down to minutes&lt;br /&gt;
:*4: Hub time, down to seconds&lt;br /&gt;
:*5: Hub time, down to minutes&lt;br /&gt;
:*6: Game time, down to seconds&lt;br /&gt;
:*7: Game time, down to minutes&lt;br /&gt;
:*8: System time, down to seconds&lt;br /&gt;
:*9: System time, down to minutes&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_showweapons}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:Toggles whether the weapons in the player&#039;s inventory are displayed.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|map_point_coordinates}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:While the [[automap]] is active, the coordinates displayed correspond to the position of the cursor at the center of the map. If false, the coordinates remain set to the player&#039;s position. &lt;br /&gt;
:When follow mode is on, the coordinates of the cursor and of the player should be the same except potentially for the Z coordinate. The cursor&#039;s Z position will always be that of the sector floor at this point; whereas a player might be flying, jumping, walking on things, or present above a [[3D floor]] or [[3D middle texture]].&lt;br /&gt;
&lt;br /&gt;
==== HUD colors ====&lt;br /&gt;
The various hudcolor_* variables use [[TEXTCOLO]] color values:&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!code!!colspan=&amp;quot;2&amp;quot;|color!!code!!colspan=&amp;quot;2&amp;quot;|color!!code!!colspan=&amp;quot;2&amp;quot;|color!!code!!colspan=&amp;quot;2&amp;quot;|color!!code!!colspan=&amp;quot;2&amp;quot;|color!!code!!colspan=&amp;quot;2&amp;quot;|color!!code!!colspan=&amp;quot;2&amp;quot;|color&lt;br /&gt;
|-&lt;br /&gt;
|0||reddish brick||{{color|#CC3333}}||1||tan||{{color|#D2B48C}}||2||gray||{{color|#CCCCCC}}||3||green||{{color|#00CC00}}||4||brown||{{color|#996633}}||5||gold||{{color|#FFCC00}}||6||red||{{color|#FF5566}}&lt;br /&gt;
|-&lt;br /&gt;
|7||blue||{{color|#9999FF}}||8||orange||{{color|#FFAA00}}||9||white||{{color|#DFDFDF}}||10||yellow||{{color|#EEEE33}}||12||black||{{color|#000000}}||13||light blue||{{color|#33EEFF}}||14||cream||{{color|#FFCC99}}&lt;br /&gt;
|-&lt;br /&gt;
|15||olive||{{color|#D1D8A8}}||16||dark green||{{color|#008C00}}||17||dark red||{{color|#800000}}||18||dark brown||{{color|#663333}}||19||purple||{{color|#9966CC}}||20||dark gray||{{color|#808080}}||21||cyan||{{color|#00DDDD}}&lt;br /&gt;
|}&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hudcolor_ltim}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 8 ({{color|#FFAA00}} orange)&lt;br /&gt;
:The color used to display on the [[automap]] the time spent in the current visit of a level in a [[hub]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hudcolor_statnames}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 6 ({{color|#FF5566}} red)&lt;br /&gt;
:The color used to display the labels for the various statistics optionally shown as determined by the [[#HUD Statistics|hud_show*]] variables.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hudcolor_stats}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 3 ({{color|#00CC00}} green)&lt;br /&gt;
:The color used to display the values for the various statistics optionally shown as determined by the [[#HUD Statistics|hud_show*]] variables.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hudcolor_time}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 6 ({{color|#FF5566}} red)&lt;br /&gt;
:The color used to display on the [[automap]] the hub spent in the current [[hub]], or in the current level outside of a hub.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hudcolor_titl}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 10 ({{color|#EEEE33}} yellow)&lt;br /&gt;
:The color used to display on the [[automap]] the level name.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hudcolor_ttim}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 5 ({{color|#FFCC00}} gold)&lt;br /&gt;
:The color used to display on the [[automap]] the total time spent in the current game.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hudcolor_xyco}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 3 ({{color|#00CC00}} green)&lt;br /&gt;
:The color used to display on the [[automap]] the player coordinates.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|hud_timecolor}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 5 ({{color|#FFCC00}} gold)&lt;br /&gt;
:The color used to display the optional timer on the normal view of the alternate HUD.&lt;br /&gt;
&lt;br /&gt;
=== Scoreboard ===&lt;br /&gt;
These variables affect the [[scoreboard]] in [[multiplayer]].&lt;br /&gt;
The various *color variables use [[TEXTCOLO]] color values:&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!code!!colspan=&amp;quot;2&amp;quot;|color!!code!!colspan=&amp;quot;2&amp;quot;|color!!code!!colspan=&amp;quot;2&amp;quot;|color!!code!!colspan=&amp;quot;2&amp;quot;|color!!code!!colspan=&amp;quot;2&amp;quot;|color!!code!!colspan=&amp;quot;2&amp;quot;|color!!code!!colspan=&amp;quot;2&amp;quot;|color&lt;br /&gt;
|-&lt;br /&gt;
|0||reddish brick||{{color|#CC3333}}||1||tan||{{color|#D2B48C}}||2||gray||{{color|#CCCCCC}}||3||green||{{color|#00CC00}}||4||brown||{{color|#996633}}||5||gold||{{color|#FFCC00}}||6||red||{{color|#FF5566}}&lt;br /&gt;
|-&lt;br /&gt;
|7||blue||{{color|#9999FF}}||8||orange||{{color|#FFAA00}}||9||white||{{color|#DFDFDF}}||10||yellow||{{color|#EEEE33}}||12||black||{{color|#000000}}||13||light blue||{{color|#33EEFF}}||14||cream||{{color|#FFCC99}}&lt;br /&gt;
|-&lt;br /&gt;
|15||olive||{{color|#D1D8A8}}||16||dark green||{{color|#008C00}}||17||dark red||{{color|#800000}}||18||dark brown||{{color|#663333}}||19||purple||{{color|#9966CC}}||20||dark gray||{{color|#808080}}||21||cyan||{{color|#00DDDD}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|sb_cooperative_enable}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:Controls whether the scoreboard is shown in [[cooperative]] mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|sb_cooperative_headingcolor}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 6 ({{color|#FF5566}} red)&lt;br /&gt;
:The color used for headings on the cooperative scoreboard.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|sb_cooperative_otherplayercolor}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 2 ({{color|#CCCCCC}} gray)&lt;br /&gt;
:The color used to display other players&#039; names on the cooperative scoreboard.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|sb_cooperative_yourplayercolor}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 3 ({{color|#00CC00}} green)&lt;br /&gt;
:The color used to display your own name on the cooperative scoreboard.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|sb_deathmatch_enable}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:Controls whether the scoreboard is shown in [[deathmatch]] mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|sb_deathmatch_headingcolor}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 6 ({{color|#FF5566}} red)&lt;br /&gt;
:The color used for headings on the deathmatch scoreboard.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|sb_deathmatch_otherplayercolor}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 2 ({{color|#CCCCCC}} gray)&lt;br /&gt;
:The color used to display other players&#039; names on the deathmatch scoreboard.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|sb_deathmatch_yourplayercolor}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 3 ({{color|#00CC00}} green)&lt;br /&gt;
:The color used to display your own name on the deathmatch scoreboard.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|sb_teamdeathmatch_enable}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:Controls whether the scoreboard is shown in [[team deathmatch]] mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|sb_teamdeathmatch_headingcolor}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 6 ({{color|#FF5566}} red)&lt;br /&gt;
:The color used for headings on the team deathmatch scoreboard.&lt;br /&gt;
&lt;br /&gt;
==Intermission screens==&lt;br /&gt;
* &#039;&#039;&#039;{{LE|wi_noautostartmap}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:If this CVAR is true, the user has to manually end the &#039;entering level&#039; page with the {{CCMD|P|+use}} command. By default, this screen is automatically left after 140 [[tic]]s (four seconds). In a network game, this effect is enabled if any player switches this on. Note that custom [[intermission script]]s can use the {{c|noautostartmap}} keyword to achieve the same effect; this CVAR being false will not override the presence of this keyword.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|wi_percents}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false for &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;[[Hexen]]&#039;&#039;, true for other games&lt;br /&gt;
:When false, [[intermission]] statistics are printed as absolute values such as &amp;quot;7 of 9&amp;quot; as in &#039;&#039;[[Heretic]]&#039;&#039;. When true, intermission stats are printed as percentages such as &amp;quot;50%&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|wi_showtotaltime}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:If true, show the total time spent on the current game during the intermission tally screen, in addition to the time spent on the completed level. If false, only the time spent on the completed level is shown.&lt;br /&gt;
&lt;br /&gt;
==Renderer==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|blood_fade_scalar}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
:Default: 1.0&lt;br /&gt;
:Controls the intensity of the screen flash effect upon taking damage. Higher values increases the intensity while lower values decreases it. Setting this to 0, disables the effect.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|cl_bloodtype}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 0&lt;br /&gt;
:Controls how blood is drawn. Supported values are:&lt;br /&gt;
:0: Blood is drawn as sprites&lt;br /&gt;
:1: Blood is drawn as both sprites and [[particles]]&lt;br /&gt;
:2: Blood is drawn as particles only&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|cl_capfps}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:When true, the game is limited to 35 FPS, as it was originally in Doom. When false, the game frame rate will be as high as your machine is capable of (within the limits of {{CVAR|R|vid_maxfps}}, if set). You can use this in conjunction with {{CVAR|R|vid_vsync}} to control whether or not the maximum frame rate is restricted to your monitor&#039;s refresh rate.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|cl_customizeinvulmap}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:When true, it overrides the {{Property|Powerup.Color|inverse colormap}} of {{Class|powerup|powerups}}, allowing for the use of a custom colormap of the user&#039;s choice. The colormap is set through the two following variables.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|cl_custominvulmapcolor1}}&#039;&#039;&#039; ([[CVARs#color|color]])&lt;br /&gt;
:Default: &amp;quot;00 00 1a&amp;quot; {{color|#00001a}}&lt;br /&gt;
:One half component of the custom colormap used in place of the inverse colormap. Setting this is only meaningful if {{c|[[#cl_customizeinvulmap|cl_customizeinvulmap]]}} is set to true.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|cl_custominvulmapcolor2}}&#039;&#039;&#039; ([[CVARs#color|color]])&lt;br /&gt;
:Default: &amp;quot;a6 a6 7a&amp;quot; {{color|#a6a67a}}&lt;br /&gt;
:One half component of the custom colormap used in place of the inverse colormap. Setting this is only meaningful if  {{c|[[#cl_customizeinvulmap|cl_customizeinvulmap]]}} is set to true.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|cl_pufftype}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 0&lt;br /&gt;
:Controls how {{Class|BulletPuff|bullet puffs}} are drawn. Supported values are:&lt;br /&gt;
:0: Puffs are drawn as sprites&lt;br /&gt;
:1: Puffs are drawn as [[particles]]&lt;br /&gt;
:2: Puffs are drawn as both, sprites and particles&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|cl_rockettrails }}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 1&lt;br /&gt;
:Controls whether or not {{Class|rocket}}s and {{class|grenade}}s leave trails of smoke behind them, as determined by the {{Flag|ROCKETTRAIL}} and {{Flag|GRENADETRAIL}} flags. Supported values are:&lt;br /&gt;
:0: No rocket trail&lt;br /&gt;
:1: [[Particle]] trail&lt;br /&gt;
:2: Sprite trail (spawning {{Class|RocketSmokeTrail}} or {{Class|GrenadeSmokeTrail}} in the wake of the projectile)&lt;br /&gt;
:3: Both particles and sprites&lt;br /&gt;
:If an actor has both the ROCKETTRAIL and GRENADETRAIL flags, it can have both particle types trailing it, but only the rocket smoke sprites.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|fullscreen}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:If this CVAR is true, the game will be displayed fullscreen. Otherwise, it will be drawn in a window. Some video cards may require that you have fullscreen false in order to run [[ZDoom]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gamma}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
:Default: 1.0&lt;br /&gt;
:Controls the amount of gamma correction applied to the display. 1.0 is equivalent to no correction, while larger numbers translate into a brighter display, and smaller numbers translate into a darker display. 0.0 is invalid and will be rejected. Negative numbers are technically invalid but will be accepted solely for the novelty value doing so provides. &lt;br /&gt;
:* &#039;&#039;&#039;{{LE|bgamma}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
::Default: 1.0&lt;br /&gt;
::Controls the blue component of gamma correction. A value of 0 is ignored, otherwise it is used as a multiplier to the gamma value.&lt;br /&gt;
:* &#039;&#039;&#039;{{LE|ggamma}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
::Default: 1.0&lt;br /&gt;
::Controls the green component of gamma correction. A value of 0 is ignored, otherwise it is used as a multiplier to the gamma value.&lt;br /&gt;
:* &#039;&#039;&#039;{{LE|rgamma}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
::Default: 1.0&lt;br /&gt;
::Controls the red component of gamma correction. A value of 0 is ignored, otherwise it is used as a multiplier to the gamma value.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|pickup_fade_scalar}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
:Default: 1.0&lt;br /&gt;
:Controls the intensity of the screen flash effect upon picking up items. Higher values increases the intensity while lower values decreases it. Setting this to 0, disables the effect.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_3dfloors}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:Setting this false will disable the display of [[3D floor]]s. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_clearbuffer}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 0&lt;br /&gt;
:Clears the framebuffer between each frame. Several values are possible:&lt;br /&gt;
:*0: By default, do not clear the buffer. This allows the {{dwicon|nolink=|hall_of_mirrors_effect|hall of mirrors effect}} to happen in certain conditions. Since the variable is not archived, it is reset to this value whenever ZDoom is run.&lt;br /&gt;
:*1: Fill with black. This prevents HOMs and will generally make the affected area less noticeable.&lt;br /&gt;
:*2: Fill with white. As with black, though the areas will generally be more noticeable.&lt;br /&gt;
:*3: Fill in alternation with black and white, making the areas flash and helping them be more noticeable. This is roughly similar to [[Boom]]&#039;s TNTHOM &amp;quot;cheat&amp;quot;.&lt;br /&gt;
:*4: Fill with each color of the [[palette]] in sequence, creating a pulsing effect.&lt;br /&gt;
:*5: Fill with a random color. Seizure warning!&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_columnmethod}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 1&lt;br /&gt;
:Selects which of two algorithms to use to draw sprites and masked textures. Method 0 is the original algorithm used by DOOM. Method 1 is a new algorithm optimized for Pentium IIs and can perform significantly better with that or comparable processors. Ironically, method 0 is slightly faster than method 1 on Pentium III and Athlon processors (though not significantly so).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_drawflat}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:When set to true, segs will be drawn as solid colors instead of textures. This is useful if you want to see how a node builder split a level&#039;s linedefs. Otherwise, it just looks ugly. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_drawfuzz}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 1&lt;br /&gt;
:When set to 0, the &amp;quot;[[fuzz]]&amp;quot; effect on {{Class|spectre}}s and partially invisible players will be replaced with translucency. If set to 1, normal fuzz effect is used.&lt;br /&gt;
:If set to 2, the &amp;quot;shadow&amp;quot; {{Property|RenderStyle}} is used. This emulates the rendering of fuzz in [[GZDoom]] when not using one of the pixel shaders.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_drawmirrors}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:Setting this false will disable the display of mirrors. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_drawplayersprites}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:When false, the game will not draw the player&#039;s weapon or muzzle flash, which can be nice for screenshots. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_drawtrans}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:Setting this to false will disable all translucency effects in the game.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_drawvoxels}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:Setting this to false will disable [[voxel]] display.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_fakecontrast}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 1&lt;br /&gt;
:This variable affects how [[fake contrast]] (the difference between sector light and wall light to make angles more contrasted) is handled. 0 disables it altogether (&amp;quot;even lighting&amp;quot;). The default value of 1 uses the vanilla fake contrast (only linedefs perfectly aligned with the X or Y axis are affected). A value of 2 (&amp;quot;smooth lighting&amp;quot;) generalizes fake contrast to all angles, with values proportional to the angle.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_fogboundary}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:Setting this to false will disable the display of fog boundaries. Fog boundaries are sections where two areas with different fog colors meet. If the boundary is not drawn, then it will look like there is no fog at all in front of the boundary. Some old levels may look bad with fog boundary drawing enabled, which is why this cvar is available. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_fullbrightignoresectorcolor}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:This changes the behavior of fullbright sprite states and [[Classes:PowerLightAmp|light-amplification goggles]] in the software renderer. Previously, and when this CVAR is set to false, the sector&#039;s color setting would override the fullbright state of the sprite. This changes it so that when a sprite is fullbright in non-fog sectors, it is always fullbright regardless of sector color settings. Additionally, this CVAR causes light-amplification goggles to change all sectors to white. Changing this to false enables ZDoom&#039;s old behavior.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_maxparticles}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 4000&lt;br /&gt;
:The maximum number of particles that will be rendered at once.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_np2}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:If this CVAR is true, [[ZDoom]] uses special code to handle non-power-of-two textures tiling vertically. Setting it to false uses the old behavior where the texture is artificially increased in height to a power of two, each column being prolonged by the data from the next column and the last being prolonged by a {{dw|tutti-frutti effect}}.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_particles}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:If set to true, particles are drawn. Otherwise, they aren&#039;t.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_quakeintensity}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
:Default: 1.0&lt;br /&gt;
:Factor which scales the camera-shaking effects of &#039;&#039;Hexen&#039;&#039;-style [[earthquake]]s. Value can be between 0 (no shaking) and 1 (normal shaking).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_skyboxes}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:Set this to false to disable the drawing of [[skybox]]es. Then every sky will be drawn as a standard sky instead of as a skybox.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_rail_smartspiral}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:If true, disable railgun spiral if the inner trail color is -1.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_rail_spiralsparsity}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 1&lt;br /&gt;
:Sets the sparsity of spiral [[particle]]s in railgun shots. The normal amount of particles is divided by this value; a value of 0 disable the spiral entirely.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_rail_trailsparsity}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 1&lt;br /&gt;
:Sets the sparsity of trail [[particle]]s in railgun shots. The normal amount of particles is divided by this value; a value of 0 disable the trail entirely.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_shadercolormaps}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:Set it to false to disable shaders for fixed colormap effects (e.g. invulnerability). This should only be necessary for SM1.4 cards with buggy drivers.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_skymode}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 2&lt;br /&gt;
:Chooses how short [[sky]] textures are handled. Possible values:&lt;br /&gt;
:*0: Normal. Sky will tile when looking up or down.&lt;br /&gt;
:*1: [[Sky stretching|Stretched]] sky.&lt;br /&gt;
:*2: Capped sky. The top and bottom of the sky fade to their dominant colors.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_smoothlighting}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]]) {{deprecated}}&lt;br /&gt;
:Default: false&lt;br /&gt;
:Forces smoothlighting to the walls in maps.&lt;br /&gt;
:Replaced by r_fakecontrast in development versions.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_stretchsky}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]]) {{deprecated}}&lt;br /&gt;
:Default: true&lt;br /&gt;
:Controls whether or not short sky textures are [[sky stretching|stretched]] so that you do not see them wrap when you look up or down. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_vanillatrans}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 0&lt;br /&gt;
:Controls whether ZDoom&#039;s translucency enhancements of vanilla actors are allowed. This mostly concerns bright actors such as fireballs, lightning bolts, plasma shots, and so on, that are typically given an additive translucency {{Property|RenderStyle}} in ZDoom while the original games they are from made them opaque as they did not support additive translucency. Actors affected by this option are given the +{{Flag|ZDOOMTRANS}} flag; actors without this flag are not affected by this setting. Possible values:&lt;br /&gt;
:*0: Force ZDoom translucency.&lt;br /&gt;
:*1: Force vanilla opaqueness.&lt;br /&gt;
:*2: Prefer ZDoom translucency. Turn translucency off only if a [[DEHACKED]] lump is loaded while no [[ZScript]] lump is present.&lt;br /&gt;
:*3: Prefer vanilla opaqueness. Turn translucency on only if a [[DECORATE]] lump is loaded while no [[ZScript]] lump is present.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_viewsize}}&#039;&#039;&#039; ([[CVARs#string|string]])&lt;br /&gt;
:This cvar contains the width and height of the current view window. This cvar is read only. &lt;br /&gt;
&lt;br /&gt;
===Direct3D===&lt;br /&gt;
These variables affect [[ZDoom]]&#039;s [[Direct3D]] renderer.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|d3d_antilag}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:Enables a technique meant to minimize input lag with [[#vid_vsync|vsync]] enabled: Two surfaces are alternately locked for read-only access each frame, forcing the driver to stop buffering more than one frame at a time. See [http://www.xyzw.de/c120.html xyzw.de/c120.html] for more details.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|d3d_showpacks}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 0&lt;br /&gt;
:?&lt;br /&gt;
&lt;br /&gt;
===OpenGL===&lt;br /&gt;
{{openGLsmall}}&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_aalines}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:Choose whether to enable OpenGL-based anti-aliasing in the [[automap]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_attachedlights}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:Dead code, declared but not referenced anywhere.&lt;br /&gt;
&lt;br /&gt;
[[Image:BillboardAxes.png|right|thumb|160px|Y and XY billboarding.]]&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_billboard_mode}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 0&lt;br /&gt;
:Sets the default billboarding mode for sprites. The default value of 0 means to use Y-billboarding (sprites become paper-thin when looked at steep angles from above or below); a value of 1 means to use XY-billboarding (sprites are always facing the camera, which might make them appear at odd angles to the geometry). This is overridden by actors having the {{Flag|FORCEYBILLBOARD}} or {{Flag|FORCEXYBILLBOARD}} flags.&lt;br /&gt;
:Note that some minor graphical glitches should be expected when XY-billboarded sprites are present near [[3D floor]]s.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_billboard_particles}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:This is similar to gl_billboard_mode, but only applies to [[particle]]s. If true, XY-billboarding is always used for them; if false it depends on the gl_billboard_mode setting.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_brightfog}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:Choose whether fog is rendered based on full brightness. In the software renderer, light level in colored fog is effectively used for fog density. This option looks good for bright, white fogs, and less so for dark, black fogs.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_brightmap_shader}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:Chooses whether OpenGL shaders are used to handle brightmaps. This CVAR is only used with hardware limited to {{wp|GLSL|shader model 3}}. If shader model 4 is supported, shaders are always used for brightmaps; if support is limited to shader model 2, they are never used.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_clamp_per_texture}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:Dead code, declared but not referenced anywhere.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_colormap_shader}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:Chooses whether OpenGL shaders are used to handle colormaps. This CVAR is only used with hardware limited to {{wp|GLSL|shader model 3}}. If shader model 4 is supported, shaders are always used for colormaps; if support is limited to shader model 2, they are never used.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_debug}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:If this CVAR is true, the OpenGL context is created in debug mode. This variable is only relevant during initialization and is not archived; if you want to see its effect you have to set it from the command line: {{c|gzdoom +{{CCMD|C|set}} gl_debug 1}} for example.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_direct_state_change}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_distfog}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 70&lt;br /&gt;
:This value is used to compute the distance fog table.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_draw_sync}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_dynlight_shader}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:Chooses whether OpenGL shaders are used to handle [[dynamic light]]s. This variable can only be set to true if the GLSL implementation available supports at least 1024 uniform variables and provides shader model 4 features.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_enhanced_nightvision}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:Enables or disables the enhanced nightvision effect which changes how the {{Class|PowerLightAmp}} and {{Class|PowerTorch}} effects work. If false, they behave like the software renderer and merely give full brightness to everything. If true, however, the light amplification visor shows the world geometry in green and the sprites of monsters and items are in inverted colors; while everything illuminated by the torch lies in a flickering golden light. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_enhanced_nv_stealth}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 3&lt;br /&gt;
:If enhanced night vision is on, [[stealth monster]]s and other actors with the {{Flag|STEALTH}} flag or the {{c|Shadow}} {{Property|RenderStyle}} can be seen while an effect altering vision with a fixed colormap is active. Possible values are:&lt;br /&gt;
:*0: Enhanced night vision has no effect.&lt;br /&gt;
:*1: Infrared night vision makes stealth monsters visible and shadowed actors easier to see.&lt;br /&gt;
:*2: Both infrared and torch have this effect of making such actors easier to see.&lt;br /&gt;
:*3: Any sort of fixed colormap have this effect.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_fog_shader}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:Chooses whether OpenGL shaders are used to handle fog. This CVAR is only used with hardware limited to {{wp|GLSL|shader model 3}}. If shader model 4 is supported, shaders are always used for fog; if support is limited to shader model 2, they are never used.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_fogmode}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 1&lt;br /&gt;
:Chooses how distance fog is generated. Possible values are:&lt;br /&gt;
:*0:No fog&lt;br /&gt;
:*1:Standard fog&lt;br /&gt;
:*2:Radial fog&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_forcemultipass}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_fuzztype}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 0&lt;br /&gt;
:Defines how the {{Class|spectre}} [[fuzz]] effect ({{Property|RenderStyle}} {{c|Fuzzy}} or {{c|OptFuzzy}}) is handled. Possible values include:&lt;br /&gt;
:*0: Shadow (equivalent to RenderStyle Shadow)&lt;br /&gt;
:*1: Pixel fuzz&lt;br /&gt;
:*2: Smooth fuzz&lt;br /&gt;
:*3: Swirly fuzz&lt;br /&gt;
:*4: Translucent fuzz&lt;br /&gt;
:*6: Noise&lt;br /&gt;
:*7: Smooth Noise&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_glow_shader}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:Chooses whether OpenGL shaders are used to handle glowing flats. This CVAR is only used with hardware limited to {{wp|GLSL|shader model 3}}. If shader model 4 is supported, shaders are always used for glowing flats; if support is limited to shader model 2, they are never used.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_interpolate_model_frames}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:When this CVAR is true, [[model]] frames are interpolated, smoothing up their movement. This also concerns [[voxel]]s.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_light_models}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:Unused. Only referenced in a disabled part of the code.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_light_particles}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:If true, [[particle]]s are affected by [[dynamic light]]s.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_light_sprites}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:If true, [[sprite]]s are affected by [[dynamic light]]s.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_lightmode}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 3 (Dark)&lt;br /&gt;
:Sets the default lighting model to use in maps. Note that the choice made here can be overridden by the {{c|lightmode}} property in a [[MAPINFO]] [[map definition]].&lt;br /&gt;
:*0 (Standard): Uses a standard OpenGL formula.  Dark sectors appear much lighter than they would in vanilla Doom.&lt;br /&gt;
:*1 (Bright): Like 0 (Standard), but with very weak fog dropoff, keeping distant sectors relatively bright.&lt;br /&gt;
:*2 (Doom): A close approximation to vanilla Doom, but still not quite as dark.&lt;br /&gt;
:*3 (Dark): Identical to 2 (Doom), but without the brighter halo effect around the player.&lt;br /&gt;
:*4 (Doom Legacy): Emulates the lighting model of the [[Doom Legacy]] 1.42 OpenGL renderer.  Visually about halfway between 0 (Standard) and 1 (Bright).&lt;br /&gt;
:*5 (Build): GLSL-based emulation of Build lighting.  Similar to vanilla Doom near the player, but light drops off sharply to total darkness after a modest distance.&lt;br /&gt;
:*8 (Software): GLSL-based emulation of the ZDoom software renderer&#039;s lighting, based on the equations used by Id to generate the original colormaps.  Virtually identical to original Doom.&lt;br /&gt;
:*16 (Vanilla): GLSL-based emulation of vanilla Doom&#039;s lighting, in theory, but in practice appears a step darker overall.&lt;br /&gt;
:If shaders are unavailable, the GLSL-based modes fall back to 2 (Doom).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_lights}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_lights_additive}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_lights_checkside}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_lights_intensity}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
:Default: 1.0&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_lights_size}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
:Default: 1.0&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_mask_sprite_threshold}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
:Default: 0.5&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_mask_threshold}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
:Default: 0.5&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_mirror_envmap}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_mirrors}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_no_skyclear}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_nocoloredspritelighting}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_noquery}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_noskyboxes}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_notexturefill}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_particles_style}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 2&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_plane_reflection}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_portals}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_precache}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_render_flats}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_render_precise}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_render_segs}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_render_things}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_render_walls}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_sclipfactor}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
:Default: 1.8&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_sclipthreshold}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
:Default: 10&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_seamless}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_sky_detail}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 16&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_sort_textures}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_sprite_blend}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_spritebrightfog}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_spriteclip}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 1&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_texture}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_texture_filter}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 4&lt;br /&gt;
:Sets the {{wp|Texture_filtering|texture filtering}} mode. The possible values are:&lt;br /&gt;
:*0: None&lt;br /&gt;
:*1: None (nearest mipmap)&lt;br /&gt;
:*2: Linear&lt;br /&gt;
:*3: Bilinear&lt;br /&gt;
:*4: Trilinear&lt;br /&gt;
:*5: None (linear mipmap)&lt;br /&gt;
:*6: None (trilinear mipmap)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_texture_filter_anisotropic}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 8&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_texture_format}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 0&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_texture_hqresize}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 0&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_texture_hqresize_fonts}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_texture_hqresize_maxinputsize}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 512&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_texture_hqresize_sprites}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_texture_hqresize_targets}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 7&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_texture_hqresize_textures}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_texture_usehires}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_texture_useshaders}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_trimsprites}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_usecolorblending}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: true&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_usefb}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_usevbo}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 2&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_vid_compatibility}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_vid_multisample}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 0&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_warp_shader}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gl_weaponlight}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 8&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|gltest_slopeopt}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|maxviewpitch}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
:Default: 90.0&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|r_mirror_recursions}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 4&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|skyoffset}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
:Default: 0.0&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_brightness}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
:Default: 0&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_contrast}}&#039;&#039;&#039; ([[CVARs#float|float]])&lt;br /&gt;
:Default: 1&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;del&amp;gt;&#039;&#039;&#039;{{LE|vid_renderer}}&#039;&#039;&#039;&amp;lt;/del&amp;gt; ([[CVARs#integer|integer]])&lt;br /&gt;
:&amp;lt;del&amp;gt;Default: 1&amp;lt;/del&amp;gt;&lt;br /&gt;
:&amp;lt;del&amp;gt; GZDoom will run in either OpenGL mode (1) or software mode (0). Changing this requires a restart of the game.&amp;lt;/del&amp;gt; This option was removed after 2.7.1.&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;{{LE|vid_preferbackend}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 0&lt;br /&gt;
: Selects the API for compositing the scene (world geometry + weapon sprites + menu).&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! id&lt;br /&gt;
! Lower-level API on POSIX&lt;br /&gt;
! Lower-level API on Windows&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| SDL+OpenGL&lt;br /&gt;
| OpenGL&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| SDL (no Vulkan, always OpenGL)&lt;br /&gt;
| Vulkan&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| SDL+OpenGL&lt;br /&gt;
| Direct3D 9&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| SDL+GLES2&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(GZDoom 4.2.4 (POSIX) was the last to send Softpoly output to an SDL RGBA 2D context. Starting from 4.3.0, it always uses a GL window.)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_rendermode}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 4&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! vid_rendermode&lt;br /&gt;
! vid_preferbackend&lt;br /&gt;
! World rasterized by&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| -&lt;br /&gt;
| Classic 2-point projection renderer, 8-bit&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| -&lt;br /&gt;
| Classic 2-point, truecolor&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 0&lt;br /&gt;
| OpenGL&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 1&lt;br /&gt;
| Vulkan/OpenGL (see vid_preferbackend table)&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
| Softpoly 3-point projection renderer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Video adapter==&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_adapter}}&#039;&#039;&#039; ([[CVARs#integer|integer]]) (&#039;&#039;&#039;OpenGL or Win32 Only&#039;&#039;&#039;)&lt;br /&gt;
:Default: 1&lt;br /&gt;
:Defines which screen is used if multiple monitors are available. A list of available video adapters can be obtained by using the {{CCMD|I|vid_listadapters}} [[console command]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_aspect}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 0&lt;br /&gt;
:Which aspect ratio is used.&lt;br /&gt;
:*0: Autodetect appropriate aspect ratio.&lt;br /&gt;
:*1: 16:9&lt;br /&gt;
:*2: 16:10&lt;br /&gt;
:*3: 4:3&lt;br /&gt;
:*4: 5:4&lt;br /&gt;
:*5: 17:10&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_attachedsurfaces}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]]) (&#039;&#039;&#039;Win32 Only&#039;&#039;&#039;)&lt;br /&gt;
:Default: false&lt;br /&gt;
:Controls how the game allocates video memory. False is the standard setting and will always produce a usable display. If you find that there are patches of pure black and pure white on the screen (especially noticeable when a demon is right in your face), try setting this to true. Certain old Windows 95 video drivers are said to need this fix, and it is also necessary under NT 4. Unfortunately, many new video drivers (including those under NT 4) will produce a scrambled display if the screen width is not 512 or 1024 pixels and this is set to true.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_cursor}}&#039;&#039;&#039; ([[CVARs#string|string]])&lt;br /&gt;
:Default: &amp;quot;None&amp;quot;&lt;br /&gt;
:Which mouse cursor to use. This overrides the [[MAPINFO/GameInfo_definition|GameInfo]] {{c|cursorpic}} value. Default is &amp;quot;None&amp;quot; to use the GameInfo cursor, possible values include &amp;quot;-&amp;quot; (system cursor), or one of the graphics provided by [[ZDoom]]: &amp;quot;cursor&amp;quot;, &amp;quot;chexcurs&amp;quot; (a waffle), &amp;quot;doomcurs&amp;quot; (the endgame bunny head), &amp;quot;herecurs&amp;quot; (the {{Class|GoldWand|elven wand}}), &amp;quot;hexncurs&amp;quot; (the Hexen logo&#039;s red X), or &amp;quot;strfcurs&amp;quot; (a sigil logo). It is possible to use custom cursors, as long as they fit the requirements (no more than 32x32).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_defbits}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 8&lt;br /&gt;
:This cvar is meant to specify the default screen depth, but the setting is currently ignored because only 256-color (8-bit) display modes are supported.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_defheight}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 480&lt;br /&gt;
:Specifies the default screen height to use if not overridden at the command line by the -height switch. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_defwidth}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 640&lt;br /&gt;
:Specifies the default screen width to use if not overridden at the command line with the -width switch. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_displaybits}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 8&lt;br /&gt;
:Controls how many bits per pixel the fullscreen display gets created with. The game is still rendered in 8-bit, but this is for the benefit of cards that don&#039;t support that or work better with non-8-bit displays.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_forceddraw}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]]) (&#039;&#039;&#039;Win32 Only&#039;&#039;&#039;)&lt;br /&gt;
:Default: false&lt;br /&gt;
:Forces the use of {{wp|DirectDraw}} instead of [[Direct3D]] for blitting graphics to the screen or render window. Direct3D is generally preferable as it allows truecolor rendering for [[HUD]] graphics, but forcing the use of DirectDraw routines may solve problems caused by faulty drivers or aged hardware.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_hw2d}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]]) (&#039;&#039;&#039;Win32 Only&#039;&#039;&#039;)&lt;br /&gt;
:Default: true&lt;br /&gt;
:If false, this disables hardware assistance for the 2D layer when using the [[Direct3D]] renderer. However, hardware rendering is still used to get the data to the screen, contrarily to [[#vid_forceddraw|vid_forceddraw]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_hwaalines}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]]) (&#039;&#039;&#039;Win32 Only&#039;&#039;&#039;)&lt;br /&gt;
:Default: true&lt;br /&gt;
:Controls whether Direct3D can use antialiased lines. Drivers tend to misreport that they cannot handle antialiasing even when they can, forcing ZDoom to take the issue out of their hands. If the [[automap]] displays thick and blurry lines, set this value to false.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_maxfps}}&#039;&#039;&#039; ([[CVARs#integer|integer]]) (&#039;&#039;&#039;Not Mac OS X&#039;&#039;&#039;)&lt;br /&gt;
:Default: 200&lt;br /&gt;
:If non-zero, this variable limits the frame rate to some arbitrary rate between 35 and 1000 FPS. Note that vid_maxfps 35 is &#039;&#039;not&#039;&#039; the same as {{CVAR|R|cl_capfps}} 1: cl_capfps caps the frame rate by tying the video update directly to the game timer. With vid_maxfps 35, the video update and game timer are running on separate timers, and results will not be as good as with cl_capfps 1, which uses only one timer. You can use this in conjunction with {{CVAR|R|vid_vsync}} to control whether or not the maximum frame rate is restricted to your monitor&#039;s refresh rate.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_noblitter}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]]) (&#039;&#039;&#039;Win32 Only&#039;&#039;&#039;)&lt;br /&gt;
:Default: true&lt;br /&gt;
:Setting this to false will allow the use of the hardware to assist moving image data to video memory. When Randy initially wrote the code to use the blitter, it was faster than not using it. Now the blitter is slower, so the default is true. {{verification}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_nopalsubstitutions}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:Setting this to true will disable [[PALVERS]]-based graphics substitution in the 8-bit software renderer.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_nowidescreen}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:Use this cvar to disable widescreen aspect ratio correction. When it is set to true, the only display ratio available is 4:3 (and 5:4 if [[#vid_tft|vid_tft]] is set).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_palettehack}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]]) (&#039;&#039;&#039;Win32 Only&#039;&#039;&#039;)&lt;br /&gt;
:Default: false&lt;br /&gt;
:When this cvar is true, the game will refresh the palette every time the screen is redrawn. This can be useful with some buggy video drivers. If the display is fine without it, leave it that way because this can slightly slow things down. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_refreshrate}}&#039;&#039;&#039; ([[CVARs#integer|integer]]) (&#039;&#039;&#039;Win32 Only&#039;&#039;&#039;)&lt;br /&gt;
:Default: 0&lt;br /&gt;
:If non-zero, specifies a custom refresh rate which overrides Windows&#039; automatic refresh rate selection. This is useful if your video card is trying to run your monitor at a refresh rate it doesn&#039;t actually support for the given resolution. Normally this will not be needed, however. This is only meaningful in fullscreen mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_showpalette}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: 0&lt;br /&gt;
:Set this to a value between 1 and 9 inclusive to display in the upper left corner of the screen the current [[palette]] with a preset [[translation]]. This is a debugging tool used to detect interference with the system palette from other programs. 1 is the untranslated palette, 2 is translation 0, 3 is translation 1, etc. up to 8 for translation 6. 9 corresponds to the ice translation.&lt;br /&gt;
:If a translation is not defined (for example, values 6 to 8 in &#039;&#039;[[Doom]]&#039;&#039; and &#039;&#039;[[Heretic]]&#039;&#039;), the palette is left untranslated.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_tft}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]])&lt;br /&gt;
:Default: false&lt;br /&gt;
:When this CVAR is true, the 5:4 aspect ratio is available.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|vid_vsync}}&#039;&#039;&#039; ([[CVARs#boolean|boolean]]) (&#039;&#039;&#039;Not Linux&#039;&#039;&#039;)&lt;br /&gt;
:Default: false&lt;br /&gt;
:Set this to false to disable syncing the frame rate to the vertical refresh rate. Not all video cards support disabling vsync, in which case this CVAR will be ignored. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;{{LE|win_x}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
* &#039;&#039;&#039;{{LE|win_y}}&#039;&#039;&#039; ([[CVARs#integer|integer]])&lt;br /&gt;
:Default: -1&lt;br /&gt;
:The horizontal (x) and vertical (y) location of the window when in windowed mode. If either value is such that the window would be placed off the screen, it will be forced into a position that keeps as much of the window onscreen as possible. (It will not choose a position less than 0.) This CVAR is only evaluated on startup, and changing it after the window is created will have no effect until ZDoom is restarted.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[CVARs]]&lt;br /&gt;
*[[CCMDs]]&lt;br /&gt;
&lt;br /&gt;
[[category:ZDoom console]]&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=OpenGL_options&amp;diff=48861</id>
		<title>OpenGL options</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=OpenGL_options&amp;diff=48861"/>
		<updated>2021-12-12T23:39:52Z</updated>

		<summary type="html">&lt;p&gt;Eevee: update sector light modes with a full list and some descriptions of the visual differences&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{menutrail|Main menu|Options menu|Display options}}&lt;br /&gt;
[[File:OpenGLOptions.png|thumb|The display options menu in [[Stronghold]].]]&lt;br /&gt;
{{OpenGL}}&lt;br /&gt;
The &#039;&#039;&#039;OpenGL options&#039;&#039;&#039; menu allows to access the various submenus that control how the game is displayed when using the [[OpenGL]] renderer. Its [[MENUDEF]] name is {{c|OpenGLOptions}}.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;{{LE|Texture options}}&#039;&#039;&#039;&lt;br /&gt;
:Opens the [[Texture options]] menu.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;{{LE|Sector light mode|gl_lightmode}}&#039;&#039;&#039; (Standard/Bright/Doom/Dark/Doom Legacy/Build/Software/Vanilla)&lt;br /&gt;
:{{c|{{CVAR|R|gl_lightmode}}}}&lt;br /&gt;
:Chooses which method to use for managing light diminishing of ambient light levels in sectors. Note that the choice made here can be overridden by the {{c|lightmode}} property in a [[MAPINFO]] [[map definition]].&lt;br /&gt;
:*Standard: GZDoom&#039;s original behavior.  Uses a standard OpenGL formula.  Fairly close to original Doom for bright areas, but dark areas are much brighter overall, and the full gamut of light levels is considerably smaller.&lt;br /&gt;
:*Bright: Like &amp;quot;Standard&amp;quot;, but with very weak fog dropoff, keeping distant sectors relatively bright.&lt;br /&gt;
:*Doom: An early approximation of Doom&#039;s diminishing light effect.  Closer, but still not as dark as original Doom.&lt;br /&gt;
:*Dark: Identical to &amp;quot;Doom&amp;quot;, but without the brighter halo effect around the player.&lt;br /&gt;
:*Doom Legacy: Emulates [[Doom Legacy]] 1.42&#039;s OpenGL lighting.  Visually about halfway between &amp;quot;Standard&amp;quot; and &amp;quot;Bright&amp;quot;.  Fog is very faint at close distances.&lt;br /&gt;
:*Build: {{wp|GLSL}}-based emulation of, presumably, the Build engine.  Lighting is similar to original Doom&#039;s near the player, but drops off sharply to total darkness after a modest distance.  Textures in foggy areas are completely obscured unless extremely close to the player.&lt;br /&gt;
:*Software: GLSL-based emulation of the ZDoom software renderer&#039;s lighting.  Virtually identical to original Doom.&lt;br /&gt;
:*Vanilla: GLSL-based emulation of original Doom&#039;s lighting, in theory, but in practice appears a step darker overall.&lt;br /&gt;
:If shaders are unavailable, the GLSL-based modes fall back to &amp;quot;Doom&amp;quot; mode.&lt;br /&gt;
*&#039;&#039;&#039;{{LE|Fog mode|gl_fogmode}}&#039;&#039;&#039; (Off/Standard/Radial)&lt;br /&gt;
:{{c|{{CVAR|R|gl_fogmode}}}}&lt;br /&gt;
:Selects the fog mode.&lt;br /&gt;
:Note that all sector light modes except &amp;quot;Software&amp;quot; and &amp;quot;Vanilla&amp;quot; implement standard Doom diminishing light as black fog, so if the fog mode is set to &amp;quot;Off&amp;quot;, everything will appear as its normal light level regardless of distance.&lt;br /&gt;
*&#039;&#039;&#039;{{LE|Fog forces fullbright|gl_brightfog}}&#039;&#039;&#039; (Yes/No)&lt;br /&gt;
:{{c|{{CVAR|R|gl_brightfog}}}}&lt;br /&gt;
:If this option is turned on, foggy sectors use full brightness and treat the light level as fog density. This is recommended for white fogs but should not be used for black fogs.&lt;br /&gt;
*&#039;&#039;&#039;{{LE|Weapon light strength|gl_weaponlight}}&#039;&#039;&#039; (0&amp;amp;mdash;32, by 2 increments)&lt;br /&gt;
:{{c|{{CVAR|R|gl_weaponlight}}}}&lt;br /&gt;
:How effective the weapon brightens the player&#039;s view when shooting. It specifically affects [[A_Light]] and its variants.&lt;br /&gt;
*&#039;&#039;&#039;{{LE|Environment map on mirrors|gl_mirror_envmap}}&#039;&#039;&#039; (On/Off)&lt;br /&gt;
:{{c|{{CVAR|R|gl_mirror_envmap}}}}&lt;br /&gt;
:Enables or disables the use of the mirror.png texture (contained in gzdoom.pk3) as an {{wp|Reflection_mapping|environment map}} on mirrors.&lt;br /&gt;
*&#039;&#039;&#039;{{LE|Enhanced night vision mode|gl_enhanced_nightvision}}&#039;&#039;&#039; (On/Off)&lt;br /&gt;
:{{c|{{CVAR|R|gl_enhanced_nightvision}}}}&lt;br /&gt;
:Enables or disables the enhanced nightvision effect which changes how the {{Class|PowerLightAmp}} and {{Class|PowerTorch}} effects work. If &amp;quot;off&amp;quot;, they behave like the software renderer and merely give full brightness to everything. If on, however, the light amplification visor shows the world geometry in green and the sprites of monsters and items are in inverted colors; while everything illuminated by the torch lies in a flickering golden light.&lt;br /&gt;
*&#039;&#039;&#039;{{LE|ENV shows stealth monsters|gl_enhanced_nv_stealth}}&#039;&#039;&#039; (Never/Infrared only/Infrared and torch/Any fixed colormap)&lt;br /&gt;
:{{c|{{CVAR|R|gl_enhanced_nv_stealth}}}}&lt;br /&gt;
:If enhanced night vision is on, monsters with the {{Flag|STEALTH}} flag can be seen while an effect altering vision with a fixed colormap is active. This option allows to fine-tune this effect to restrict it to light powerups (both infrared and torch) or just the infrared, and it can as well disable the sight of stealth monsters altogether.&lt;br /&gt;
*&#039;&#039;&#039;{{LE|Force brightness in fog|gl_spritebrightfog}}&#039;&#039;&#039; (On/Off)&lt;br /&gt;
:{{c|{{CVAR|R|gl_spritebrightfog}}}}&lt;br /&gt;
:The software renderer is unable to handle full brightness in foggy or faded areas, and by default the OpenGL renderer emulates this. This option allows to let fullbright or brightmapped sprites retain their brightness.&lt;br /&gt;
*&#039;&#039;&#039;{{LE|Adjust sprite clipping|gl_spriteclip}}&#039;&#039;&#039; (Never/Smart/Always/Smarter)&lt;br /&gt;
:{{c|{{CVAR|R|gl_spriteclip}}}}&lt;br /&gt;
:The OpenGL renderer clips off [[sprite]]s when they go &amp;quot;within&amp;quot; a floor or ceiling; whereas the software renderer overdraws them, a fact which has been willfully exploited to fake certain perspective effects. The result is that many sprites are abruptly cut off when they shouldn&#039;t be. The adjustment cheats by adjusting their offset so that they are less cut off.&lt;br /&gt;
:*Never: Offsets are not adjusted at all.&lt;br /&gt;
:*Smart: Offsets are only adjusted if they meet certain criteria.&lt;br /&gt;
:*Always: Offsets are always adjusted if they make the sprite sink in the ground.&lt;br /&gt;
:*Smarter: Offsets are adjusted in a wider range of cases than with &amp;quot;smart&amp;quot;, including if they sink in the ceiling. The amount by which they are adjusted is scaled according to the overall height of the sprite. Very small sprites (such as {{Class|SmallBloodPool|POB2A0}}) are visible, contrarily to &amp;quot;smart&amp;quot;, even if they are offset in the ceiling (such as {{Class|WaterDrip|CDRP[ABCD]0}}); and tall sprites (such as {{Class|GreenTorch|TGRNA0}}) do not seem to hover above the floor, contrarily to &amp;quot;always&amp;quot;.&lt;br /&gt;
*&#039;&#039;&#039;{{LE|Smooth sprite edges|gl_sprite_blend}}&#039;&#039;&#039; (On/Off)&lt;br /&gt;
:{{c|{{CVAR|R|gl_sprite_blend}}}}&lt;br /&gt;
:Enables or disables blending the edges of the sprites into the background. Turning it on also sometimes solves graphical glitches that may seem unrelated.&lt;br /&gt;
[[File:BillboardAxes.png|thumb|Billboard axes illustrated.]]&lt;br /&gt;
*&#039;&#039;&#039;{{LE|Fuzz Style|gl_fuzztype}}&#039;&#039;&#039; (Shadow/Pixel fuzz/Smooth fuzz/Swirly fuzz/Translucent fuzz/Noise/Smooth Noise)&lt;br /&gt;
:{{c|{{CVAR|R|gl_fuzztype}}}}&lt;br /&gt;
:Selects how the [[fuzz]] effect is rendered in OpenGL mode. All options except &amp;quot;Shadow&amp;quot; require pixel shaders to be available.&lt;br /&gt;
*&#039;&#039;&#039;{{LE|Sprite billboard|gl_billboard_mode}}&#039;&#039;&#039; (Y Axis/X/Y Axis)&lt;br /&gt;
:{{c|{{CVAR|R|gl_billboard_mode}}}}&lt;br /&gt;
:Chooses whether sprites, by default, are billboarded on the Y axis (and remain vertical, appearing paper-thin if viewed at an extreme angle) or on the X/Y axis (and remain always fully visible, but oddly rotated if viewed at an extreme angle). The {{Flag|FORCEYBILLBOARD}} and {{Flag|FORCEXYBILLBOARD}} flags allow to override the default. Note that X/Y billboarding suffers from a few minor glitches, especially when transparent [[3D floor]]s are involved.&lt;br /&gt;
*&#039;&#039;&#039;{{LE|Particle style|gl_particles_style}}&#039;&#039;&#039; (Square/Round/Smooth)&lt;br /&gt;
:{{c|{{CVAR|R|gl_particles_style}}}}&lt;br /&gt;
:Selects how [[particle]]s are rendered. The &amp;quot;smooth&amp;quot; option uses a texture with gradually increasing alpha toward its edges, whereas &amp;quot;square&amp;quot; and &amp;quot;round&amp;quot; use solid primitives and are therefore much faster to render.&lt;br /&gt;
*&#039;&#039;&#039;{{LE|Rendering quality|gl_render_precise}}&#039;&#039;&#039; (Speed/Quality)&lt;br /&gt;
:{{c|{{CVAR|R|gl_render_precise}}}}&lt;br /&gt;
:If set on &amp;quot;speed&amp;quot;, the renderer will sacrifice precision for performances and graphical artifacts (typically, tiny white dots at the edges of polygons in level geometry) may appear. If set on quality, the rendering should be free of such artifacts, but performances may suffer.&lt;br /&gt;
*&#039;&#039;&#039;{{LE|Use vertex buffer|gl_usevbo}}&#039;&#039;&#039; (Off/Static/Dynamic)&lt;br /&gt;
:{{c|{{CVAR|R|gl_usevbo}}}}&lt;br /&gt;
:Selects if and how {{wp|Vertex_Buffer_Object|vertex buffer objects}} are used by the renderer. Benchmarks have shown that this provides a small performance boost on Nvidia hardware. However, on ATI hardware, setting this on may cause glitches.&lt;br /&gt;
&lt;br /&gt;
[[Category:Menus]]&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=PickActor&amp;diff=42622</id>
		<title>PickActor</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=PickActor&amp;diff=42622"/>
		<updated>2016-04-21T06:04:18Z</updated>

		<summary type="html">&lt;p&gt;Eevee: explain correct usage (god i hope i got this right)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
int &#039;&#039;&#039;PickActor&#039;&#039;&#039; (int &#039;&#039;source&#039;&#039;, fixed &#039;&#039;angle&#039;&#039;, fixed &#039;&#039;pitch&#039;&#039;, fixed &#039;&#039;distance&#039;&#039;, int &#039;&#039;tid&#039;&#039; [, int &#039;&#039;actorMask&#039;&#039; [, int &#039;&#039;wallMask&#039;&#039; [, int &#039;&#039;flags&#039;&#039;]]]) {{new}}&lt;br /&gt;
== Usage ==&lt;br /&gt;
Picks a single actor that is being aimed at, and assigns a {{c|[[TID|tid]]}} to it.&lt;br /&gt;
&lt;br /&gt;
This function is tricky to use correctly; calling it in the straightforward way can cause bugs.  [[#Correct_usage|See below]] for a full example.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
* &#039;&#039;source&#039;&#039;: the {{c|tid}} of the actor that the pick originates from. Use a {{c|tid}} of 0 to use the script&#039;s activator as the source.&lt;br /&gt;
* &#039;&#039;angle&#039;&#039;: the angle to look at. This is a [[definitions|fixed point angle]] in the range of 0.0 to 1.0.&lt;br /&gt;
* &#039;&#039;pitch&#039;&#039;: the pitch to look at. This is a [[definitions|fixed point angle]] in the range of 0.0 to 1.0.&lt;br /&gt;
* &#039;&#039;distance&#039;&#039;: the maximum distance to pick actors in.&lt;br /&gt;
* &#039;&#039;tid&#039;&#039;: the {{c|tid}} to assign to an actor that is being looked at.&lt;br /&gt;
* &#039;&#039;actorMask&#039;&#039;: flags that an actor must have in order for it to be picked. The default is MF_SHOOTABLE. See [[#Actor flags|Actor flags]] for a list of possible flags.&lt;br /&gt;
* &#039;&#039;wallMask&#039;&#039;: linedef flags that will block the pick ray. The default is ML_BLOCKEVERYTHING | ML_BLOCKHITSCAN. See [[#Linedef flags|Linedef flags]] for a list of possible flags.&lt;br /&gt;
* &#039;&#039;flags&#039;&#039;: The following flags can be combined with the | character between the constant names:&lt;br /&gt;
** &#039;&#039;&#039;PICKAF_FORCETID&#039;&#039;&#039; — The picked actor is forcibly assigned the specified {{c|tid}}, otherwise it will only be assigned the {{c|tid}} if it does not have one to begin with.&lt;br /&gt;
** &#039;&#039;&#039;PICKAF_RETURNTID&#039;&#039;&#039; — Instead of using a return value of 1, PickActor will use the actor&#039;s {{c|tid}} as the return value.&lt;br /&gt;
&lt;br /&gt;
=== Return value ===&lt;br /&gt;
The function returns {{c|true}} if an actor was picked, {{c|false}} if not. If PICKAF_RETURNTID is specified, the function returns the picked actor&#039;s {{c|[[TID|tid]]}}.&lt;br /&gt;
&lt;br /&gt;
== Actor flags ==&lt;br /&gt;
*MF_SPECIAL: The actor can be picked up.&lt;br /&gt;
*MF_SOLID: Set when the actor should be solid (blocking).&lt;br /&gt;
*MF_SHOOTABLE: The actor can be damaged. If it&#039;s health goes below 0 it enters its death state.&lt;br /&gt;
*MF_NOSECTOR: Object is not linked into the sector. This makes it invisible and excludes it from certain physics checks.&lt;br /&gt;
*MF_NOBLOCKMAP: The actor is added to the internal blockmap for collision detection purposes.&lt;br /&gt;
*MF_AMBUSH: Monster is set to ambush players.&lt;br /&gt;
*MF_JUSTHIT: Try to attack right back (used in monster AI).&lt;br /&gt;
*MF_JUSTATTACKED: Take at least one step before attacking (used in monster AI).&lt;br /&gt;
*MF_SPAWNCEILING: Actor is spawned hanging from the ceiling as opposed to standing on the floor.&lt;br /&gt;
*MF_NOGRAVITY: Actor is not subject to gravity.&lt;br /&gt;
*MF_DROPOFF: Actor can walk over ledges/taller steps.&lt;br /&gt;
*MF_PICKUP: This actor can pick up items.&lt;br /&gt;
*MF_NOCLIP: Actor is totally excluded from collision detection and can walk through walls etc.&lt;br /&gt;
*MF_INCHASE: Used internally to avoid recursion.&lt;br /&gt;
*MF_FLOAT: Floating actor that can change height at will.&lt;br /&gt;
*MF_TELEPORT: Used when teleporting an actor.&lt;br /&gt;
*MF_MISSILE: Actor is a projectile.&lt;br /&gt;
*MF_DROPPED: Actor always acts as if it was dropped.&lt;br /&gt;
*MF_SHADOW: Actor is nearly invisible and makes monsters trying to target this actor to be inaccurate.&lt;br /&gt;
*MF_NOBLOOD: Actor does not bleed when hurt.&lt;br /&gt;
*MF_CORPSE: Actor is a corpse.&lt;br /&gt;
*MF_INFLOAT: Used internally for floating monsters.&lt;br /&gt;
*MF_INBOUNCE: Used internally by Heretic bouncing missiles.&lt;br /&gt;
*MF_COUNTKILL: Counts toward kill percentage.&lt;br /&gt;
*MF_COUNTITEM: Counts toward item percentage.&lt;br /&gt;
*MF_SKULLFLY: Actor is a charging monster.&lt;br /&gt;
*MF_NOTDMATCH: Actor is not spawned in deathmatch games.&lt;br /&gt;
*MF_SPAWNSOUNDSOURCE: This projectile will play its seesound from the originating actor.&lt;br /&gt;
*MF_FRIENDLY: This monster doesn&#039;t target the player. Instead it attacks other monsters.&lt;br /&gt;
*MF_UNMORPHED: This actor is an unmorphed version of something else.&lt;br /&gt;
*MF_NOLIFTDROP: Does not drop when a lift under it lowers.&lt;br /&gt;
*MF_STEALTH: Actor is a stealth monster.&lt;br /&gt;
*MF_ICECORPSE: Actor is a frozen corpse.&lt;br /&gt;
&lt;br /&gt;
== Linedef flags ==&lt;br /&gt;
*ML_BLOCKING: The linedef is solid.&lt;br /&gt;
*ML_BLOCKMONSTERS: The linedef blocks monsters.&lt;br /&gt;
*ML_TWOSIDED: The linedef has two siedes (two sidedefs).&lt;br /&gt;
*ML_DONTPEGTOP: Upper texture unpegged.&lt;br /&gt;
*ML_DONTPEGBOTTOM: Lower texture unpegged.&lt;br /&gt;
*ML_SECRET: Displays on the automap as a one-sided line.&lt;br /&gt;
*ML_SOUNDBLOCK: Stops sound propagation after two of these linedefs have been traversed.&lt;br /&gt;
*ML_DONTDRAW: Prevents this linedef from displaying on the automap.&lt;br /&gt;
*ML_MAPPED: This linedef will be present on the automap from the start of the level.&lt;br /&gt;
*ML_REPEAT_SPECIAL: This linedef&#039;s special is repeatable.&lt;br /&gt;
*ML_ADDTRANS: Drawn with additive translucency (internal flag).&lt;br /&gt;
*ML_MONSTERSCANACTIVATE: Monsters can activate this linedef.&lt;br /&gt;
*ML_BLOCK_PLAYERS: This linedef blocks players.&lt;br /&gt;
*ML_BLOCKEVERYTHING: This linedef blocks everything.&lt;br /&gt;
*ML_ZONEBOUNDARY: This linedef indicates a sound zone boundary.&lt;br /&gt;
*ML_RAILING: This linedef uses Strife&#039;s railing collision logic.&lt;br /&gt;
*ML_BLOCK_FLOATERS: This linedef blocks floating monsters.&lt;br /&gt;
*ML_CLIP_MIDTEX: This linedef&#039;s middle texture is clipped by the ceiling and floor.&lt;br /&gt;
*ML_WRAP_MIDTEX: This linedef&#039;s middle texture wraps around.&lt;br /&gt;
*ML_3DMIDTEX: This linedef clips actor movement based on it&#039;s middle texture.&lt;br /&gt;
*ML_CHECKSWITCHRANGE: Forces a check to see if the player can really reach a switch.&lt;br /&gt;
*ML_FIRSTSIDEONLY: This linedef will only be activated when crossed from it&#039;s front side.&lt;br /&gt;
*ML_BLOCKPROJECTILE: This linedef blocks projectiles.&lt;br /&gt;
*ML_BLOCKUSE: This linedef blocks use actions.&lt;br /&gt;
*ML_BLOCKSIGHT: This linedef blocks actor sight.&lt;br /&gt;
*ML_BLOCKHITSCAN: This linedef blocks hitscan attacks.&lt;br /&gt;
&lt;br /&gt;
== Correct usage ==&lt;br /&gt;
&amp;lt;code&amp;gt;PickActor&amp;lt;/code&amp;gt; has trouble if the chosen actor already has a TID.  By default, it won&#039;t change an existing TID, so your code will do nothing.  With &amp;lt;code&amp;gt;PICKAF_FORCETID&amp;lt;/code&amp;gt;, you lose the actor&#039;s existing TID, which is likely to break other scripts.  With &amp;lt;code&amp;gt;PICKAF_RETURNTID&amp;lt;/code&amp;gt;, you might get an existing TID that&#039;s shared by several other actors.&lt;br /&gt;
&lt;br /&gt;
The only way to be sure is to call &amp;lt;code&amp;gt;PickActor&amp;lt;/code&amp;gt; &#039;&#039;twice&#039;&#039; with the same arguments.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;// Get the existing TID, if there is one.&lt;br /&gt;
// A TID of 0 is the same as not having a TID, so &amp;quot;setting&amp;quot; it to 0 will not&lt;br /&gt;
// change anything&#039;s TID.&lt;br /&gt;
int old_tid = PickActor(..., /* tid */ 0, actor_mask, wall_mask, PICKAF_RETURNTID);&lt;br /&gt;
&lt;br /&gt;
// Find a TID that&#039;s not currently in use.&lt;br /&gt;
int new_tid = UniqueTID();&lt;br /&gt;
&lt;br /&gt;
// Do the &amp;quot;real&amp;quot; call.  This will return true if an actor was actually found,&lt;br /&gt;
// and also forcibly set its TID.&lt;br /&gt;
if (PickActor(..., /* tid */ new_tid, actor_mask, wall_mask, PICKAF_FORCETID)) {&lt;br /&gt;
    // Do some stuff with the temporary TID.&lt;br /&gt;
    do_some_stuff_with(new_tid);&lt;br /&gt;
    do_some_other_stuff_with(new_tid);&lt;br /&gt;
&lt;br /&gt;
    // When you&#039;re done, restore the actor&#039;s TID to its original value.&lt;br /&gt;
    Thing_ChangeTID(new_tid, old_tid);&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This works because nothing can move between the two &amp;lt;code&amp;gt;PickActor&amp;lt;/code&amp;gt; calls, as long as they have the same arguments.  While a script is executing, the game state doesn&#039;t change and other scripts don&#039;t run.&lt;br /&gt;
&lt;br /&gt;
If you need to refer to the found actor later, this approach won&#039;t work.  You may need to store the found actor as one of the source&#039;s [[Actor pointer|actor pointers]] using [[SetPointer]].&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
This example script, when called from a weapon state, will instantly gib any monster actor under the player&#039;s crosshairs.&lt;br /&gt;
&lt;br /&gt;
 Script &amp;quot;InstaGib&amp;quot; (void) {&lt;br /&gt;
 &lt;br /&gt;
   // Get a unique TID to temporarily use.&lt;br /&gt;
   int tid = [[UniqueTID]]();&lt;br /&gt;
 &lt;br /&gt;
   // Attempt to pick an actor where the activator is looking at. Ony shootable actors are considered.&lt;br /&gt;
   if (PickActor(0, [[GetActorAngle]](0), [[GetActorPitch]](0), 256.0, tid, MF_SOLID | MF_SHOOTABLE)) {&lt;br /&gt;
 &lt;br /&gt;
     // Gib the picked actor.&lt;br /&gt;
     [[Thing_Damage2]](tid, 9000, &amp;quot;Melee&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
     // Reset the now gibbed actor&#039;s TID.&lt;br /&gt;
     [[Thing_ChangeTID]](tid, 0);&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:ACS Actor functions]]&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=ExtraFloor_LightOnly&amp;diff=42539</id>
		<title>ExtraFloor LightOnly</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=ExtraFloor_LightOnly&amp;diff=42539"/>
		<updated>2016-03-19T03:45:26Z</updated>

		<summary type="html">&lt;p&gt;Eevee: mention that damage is transferred!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:ExtraFloor_LightOnly}}&lt;br /&gt;
{{Special|50|tag, type|Renderer|use=line}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;tag&#039;&#039;: tag of sector to apply effect to &lt;br /&gt;
* &#039;&#039;type&#039;&#039;: Type of light effect (see below)&lt;br /&gt;
&lt;br /&gt;
This special, when placed on a line, will transfer the [[control sector]]&#039;s (the sector on the first side) light level to the walls of the sector referenced by &#039;&#039;tag&#039;&#039; at the heights specified from the control sector.&lt;br /&gt;
&lt;br /&gt;
If you have a real sector, floor/ceiling heights 0 and 128, and have a control sector with heights 64 and 96, you would get sort of a white bar from 64 to 96 in the real sector. You can, of course, apply [[slope]]s, [[colored lighting]] and any effect to the control sector.&lt;br /&gt;
&lt;br /&gt;
The second parameter is the type of light effect to do. The available values are as follows:&lt;br /&gt;
&lt;br /&gt;
:0&amp;amp;nbsp;&amp;amp;mdash; Extra light extends from ceiling of control sector down to top of another type 0 light. &lt;br /&gt;
:1&amp;amp;nbsp;&amp;amp;mdash; Extra light extends from ceiling down to the floor of the control sector. &lt;br /&gt;
:2&amp;amp;nbsp;&amp;amp;mdash; Extra light extends from control sector&#039;s ceiling down to the top of another extra light. &lt;br /&gt;
&lt;br /&gt;
Note that when using two or more extra lights on a sector, the linedef with the lower number has priority.&lt;br /&gt;
&lt;br /&gt;
Example: let&#039;s say the real sector&#039;s floor/ceiling heights are 0 and 128, the first control sector&#039;s heights are 0 and 64, and the second control sector&#039;s heights are 32 and 128. If the first control sector&#039;s type 50 linedef is linedef #100, and the second&#039;s is linedef #200, that would mean heights 0&amp;amp;ndash;64 would be the light level of the first control sector, and 64&amp;amp;ndash;128 the level of the second control sector. If the linedef numbers were swapped over, then heights 0&amp;amp;ndash;32 would be the light level of the first control sector, and 32&amp;amp;ndash;128 the level of the second control sector.&lt;br /&gt;
&lt;br /&gt;
Note that this is implemented as a [[Sector_Set3DFloor]] with invisible textures, so sector effects such as damaging specials are also transferred.&lt;br /&gt;
&lt;br /&gt;
An example wad can be found {{plainlink|[http://zdoom.org/files/examples/extralight.zip here]}}.&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=TeleportGroup&amp;diff=42518</id>
		<title>TeleportGroup</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=TeleportGroup&amp;diff=42518"/>
		<updated>2016-03-12T22:20:58Z</updated>

		<summary type="html">&lt;p&gt;Eevee: mention that velocity is not updated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Special|77|tid, source, destination, movesource, fog|Teleport|Group}}&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
&lt;br /&gt;
Teleports the specified group of actors from one area to another while keeping their same positions relative to each other.  Note that velocities are &#039;&#039;not&#039;&#039; altered to account for a change in angle.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;tid&#039;&#039;: The TID of the actor(s) to teleport. If 0, teleports the activator only.&lt;br /&gt;
* &#039;&#039;source&#039;&#039;: The spot relative to which to teleport. This must be a teleport destination object.&lt;br /&gt;
* &#039;&#039;destination&#039;&#039;: The destination spot relative to which to spawn, which must also be a teleport destination.&lt;br /&gt;
* &#039;&#039;movesource&#039;&#039;: If 1, the source object teleports along with the other actors&lt;br /&gt;
* &#039;&#039;fog&#039;&#039;: Set to 1 to use teleport fog, or 0 to teleport without.&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=ZDoom_version_history&amp;diff=40989</id>
		<title>ZDoom version history</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=ZDoom_version_history&amp;diff=40989"/>
		<updated>2016-02-12T23:28:59Z</updated>

		<summary type="html">&lt;p&gt;Eevee: /* 2016 */ checkswitchrange and 3d floors&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page tracks the evolution of [[ZDoom]] by listing the main features of each version.&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!By year&lt;br /&gt;
|[[#1998|1998]] &amp;amp;middot; [[#1999|1999]] &amp;amp;middot; [[#2000|2000]] &amp;amp;middot; [[#2001|2001]] &amp;amp;middot; [[#2002|2002]] &amp;amp;middot; [[#2003|2003]] &amp;amp;middot; [[#2004|2004]] &amp;amp;middot; [[#2005|2005]] &amp;amp;middot; [[#2006|2006]] &amp;amp;middot; [[#2007|2007]] &amp;amp;middot; [[#2008|2008]] &amp;amp;middot; [[#2009|2009]] &amp;amp;middot; [[#2010|2010]] &amp;amp;middot; [[#2011|2011]] &amp;amp;middot; [[#2012|2012]] &amp;amp;middot; [[#2013|2013]] &amp;amp;middot; [[#2014|2014]] &amp;amp;middot; [[#2015|2015]] &amp;amp;middot; [[#2016|2016]]&lt;br /&gt;
|-&lt;br /&gt;
!1.x Branch&lt;br /&gt;
|[[#1.11|1.11]] &amp;amp;middot; [[#1.12|1.12]] &amp;amp;middot; [[#1.13|1.13]] &amp;amp;middot; [[#1.14|1.14]] &amp;amp;middot; [[#1.14a|1.14a]] &amp;amp;middot; [[#1.16|1.16]] &amp;amp;middot; [[#1.17|1.17]] &amp;amp;middot; [[#1.17a|1.17a]] &amp;amp;middot; [[#1.17b|1.17b]] &amp;amp;middot; [[#1.17b1|1.17b1]] &amp;amp;middot; [[#1.17c|1.17c]] &amp;amp;middot; [[#1.18|1.18]] &amp;amp;middot; [[#1.18a|1.18a]] &amp;amp;middot; [[#1.18b|1.18b]] &amp;amp;middot; [[#1.19|1.19]] &amp;amp;middot; [[#1.20|1.20]] &amp;amp;middot; [[#1.21|1.21]] &amp;amp;middot; [[#1.22|1.22]] &amp;amp;middot; [[#1.23 Beta|1.23 Beta]] &amp;amp;middot; [[#1.23 Beta 19|1.23 Beta 19]] &amp;amp;middot; [[#1.23 Beta 20|1.23 Beta 20]] &amp;amp;middot; [[#1.23 Beta 23|1.23 Beta 23]] &amp;amp;middot; [[#1.23 Beta 24|1.23 Beta 24]] &amp;amp;middot; [[#1.23 Beta 25|1.23 Beta 25]] &amp;amp;middot; [[#1.23 Beta 33|1.23 Beta 33]]&lt;br /&gt;
|-&lt;br /&gt;
!2.0 Branch&lt;br /&gt;
|[[#2.0 Beta 13|2.0 Beta 13]] &amp;amp;middot; [[#2.0.47|2.0.47]] &amp;amp;middot; [[#2.0.47i|2.0.47i]] &amp;amp;middot; [[#2.0.48|2.0.48]] &amp;amp;middot; [[#2.0.49|2.0.49]] &amp;amp;middot; [[#2.0.50|2.0.50]] &amp;amp;middot; [[#2.0.51|2.0.51]] &amp;amp;middot; [[#2.0.52|2.0.52]] &amp;amp;middot; [[#2.0.53|2.0.53]] &amp;amp;middot; [[#2.0.54|2.0.54]] &amp;amp;middot; [[#2.0.55|2.0.55]] &amp;amp;middot; [[#2.0.56|2.0.56]] &amp;amp;middot; [[#2.0.57|2.0.57]] &amp;amp;middot; [[#2.0.58|2.0.58]] &amp;amp;middot; [[#2.0.59|2.0.59]] &amp;amp;middot; [[#2.0.60|2.0.60]] &amp;amp;middot; [[#2.0.61|2.0.61]] &amp;amp;middot; [[#2.0.62|2.0.62]] &amp;amp;middot; [[#2.0.63|2.0.63]] &amp;amp;middot; [[#2.0.64|2.0.64]] &amp;amp;middot; [[#2.0.90|2.0.90]] &amp;amp;middot; [[#2.0.91|2.0.91]] &amp;amp;middot; [[#2.0.92|2.0.92]] &amp;amp;middot; [[#2.0.93|2.0.93]] &amp;amp;middot; [[#2.0.94|2.0.94]] &amp;amp;middot; [[#2.0.95|2.0.95]] &amp;amp;middot; [[#2.0.96|2.0.96]] &amp;amp;middot; [[#2.0.97|2.0.97]] &amp;amp;middot; [[#2.0.98|2.0.98]]&lt;br /&gt;
|-&lt;br /&gt;
!2.1 Branch&lt;br /&gt;
|[[#2.1.0|2.1.0]] &amp;amp;middot; [[#2.1.1|2.1.1]] &amp;amp;middot; [[#2.1.2|2.1.2]] &amp;amp;middot; [[#2.1.3|2.1.3]] &amp;amp;middot; [[#2.1.3|2.1.3]] &amp;amp;middot; [[#2.1.4|2.1.4]] &amp;amp;middot; [[#2.1.5|2.1.5]] &amp;amp;middot; [[#2.1.6|2.1.6]] &amp;amp;middot; [[#2.1.7|2.1.7]]&lt;br /&gt;
|-&lt;br /&gt;
!Modern&lt;br /&gt;
|[[#2.2.0|2.2.0]] &amp;amp;middot; [[#2.3.0|2.3.0]] &amp;amp;middot; [[#2.3.1|2.3.1]] &amp;amp;middot; [[#2.4.0|2.4.0]] &amp;amp;middot; [[#2.4.1|2.4.1]] &amp;amp;middot; [[#2.5.0|2.5.0]] &amp;amp;middot; [[#2.6.0|2.6.0]] &amp;amp;middot; [[#2.6.1|2.6.1]] &amp;amp;middot; [[#2.7.0|2.7.0]] &amp;amp;middot; [[#2.7.1|2.7.1]] &amp;amp;middot; [[#2.8.0|2.8.0]] &amp;amp;middot; [[#Next version|Next version]]&lt;br /&gt;
|}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
==1998==&lt;br /&gt;
;{{LE|1.11}} (March 6): {{Plainlink|[http://www.zdoom.org/files/old/zdoom111.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom111s.zip Source]}}&lt;br /&gt;
:Initial release, based on the [[NTDoom]] and [[ATB Doom]]. The version numbering follows from the Doom source code version numbering of 1.10.&lt;br /&gt;
:* Works under both Windows 95 and NT 4.0, although it works best under Win95.&lt;br /&gt;
:* Limited support for the Pause key. It works with some keyboards on some machines.&lt;br /&gt;
:* Supports any resolution compatible with your DirectDraw drivers.&lt;br /&gt;
:* Look up/down à la &#039;&#039;[[Heretic]]&#039;&#039;.&lt;br /&gt;
:* Translucency for selected objects.&lt;br /&gt;
:* Has a [[console]] with most of the functionality of &#039;&#039;Quake&#039;&#039;&#039;s. The only significant missing feature is Tab-completion.&lt;br /&gt;
:* Notarget [[cheat]].&lt;br /&gt;
:* Command to {{CCMD|D|kill}} all [[monster]]s in a level or yourself.&lt;br /&gt;
:* Can play [[MUS]], [[MIDI]], and MOD music.&lt;br /&gt;
:* Selected sounds are played in surround sound.&lt;br /&gt;
:* Doors that need keys to open are highlighted on the [[automap]].&lt;br /&gt;
:* Automap now shows various statistics in addition to the level name.&lt;br /&gt;
:* True keybindings. Bind any key to any command or sequence of commands.&lt;br /&gt;
:* [[Intermission]] screen can now display your stats using absolute values rather than percentages.&lt;br /&gt;
:* A new more general [[demo]] format.&lt;br /&gt;
;{{LE|1.12}} (April 7): {{Plainlink|[http://www.zdoom.org/files/old/zdoom112.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom112s.zip Source]}}&lt;br /&gt;
:* Some visual enhancements were made such as centering the menus and drawing borders around the status bar in higher resolutions.&lt;br /&gt;
:* [[Console command]]s can now be specified on the [[command line parameters|command line]].&lt;br /&gt;
:* Removed some of [[Doom]]&#039;s limits such as VisPlanes, VisSprites, and 2S [[HOM]].&lt;br /&gt;
:* Rewrote some of the inner loops in assembly. (There was some assembly in 1.11, but it never got used.)&lt;br /&gt;
:* New [[CVAR]]s relating to mouse movement. ({{CVAR|C|invertmouse}}, {{CVAR|C|m_pitch}}, {{CVAR|C|m_yaw}}, etc.)&lt;br /&gt;
:* Mouse movement doesn&#039;t get sluggish in high resolutions.&lt;br /&gt;
:* [[Automap]] colors are customizable.&lt;br /&gt;
:* Automap overlay and rotation are available.&lt;br /&gt;
:* Eight [[crosshair]]s.&lt;br /&gt;
:* Shoot up/down.&lt;br /&gt;
:* Alt-Tab and Pause work properly on all machines now.&lt;br /&gt;
:* The {{CCMD|P|+jump}} command now works.&lt;br /&gt;
:* 25% and 75% translucency levels in addition to 50%. The translucency tables now get saved to disk, too, so they only need to be calculated once instead of every time the game is run.&lt;br /&gt;
:* The [[console]] [[font]] is now editable.&lt;br /&gt;
:* Near complete support for [[DeHackEd]] patches. (Only monster infighting and changing a few minor text strings are not supported.)&lt;br /&gt;
:* Sky height and position is now fixed for high resolutions. (It still wraps if you look up, but at least now if you look straight ahead, it never will.)&lt;br /&gt;
:* Weapon sprite is always drawn at the correct location. (It was being drawn too low in some resolutions like 400x300.)&lt;br /&gt;
:* New [[options menu]], which includes a key configuration screen.&lt;br /&gt;
:* [[Stealth monster]]s.&lt;br /&gt;
:* New full-screen [[HUD]].&lt;br /&gt;
:* And a few other things not worth mentioning separately.&lt;br /&gt;
;{{LE|1.13}} (May 26):{{forum|t=4|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom113.zip Build]}}&lt;br /&gt;
:* Fixed some major bugs (that crashed the game) and other lesser bugs that were just annoying.&lt;br /&gt;
:* 3-D collisions for walking under and standing on other things.&lt;br /&gt;
:* The status bar can be scaled to the full width of the screen.&lt;br /&gt;
:* The screen mode can be selected from a menu inside the game.&lt;br /&gt;
:* ZDoom can run in a window on the desktop.&lt;br /&gt;
:* Better [[DeHackEd]] support. Only a few text replacements are not supported. Everything else works (including monster infighting which I haven&#039;t seen in any other port).&lt;br /&gt;
:* New features for level designers (see editing.txt for details):&lt;br /&gt;
::*Specification of next and secret maps on a per-map basis.&lt;br /&gt;
::*Specify sky texture on a per-map basis.&lt;br /&gt;
::*Use any lump in a wad as music for a map.&lt;br /&gt;
::*Give maps a custom name without using a DeHackEd patch.&lt;br /&gt;
::*Maps can be named anything (not just E?M? or MAP??).&lt;br /&gt;
::*Place any messages of any length between any two maps.&lt;br /&gt;
::*&#039;&#039;[[Hexen]]&#039;&#039;-style fog (of any color).&lt;br /&gt;
::*[[Ambient sound]]s &amp;amp;mdash; either point like &#039;&#039;Quake&#039;&#039; or global like &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;Hexen&#039;&#039;.&lt;br /&gt;
::*Automatic use of [[DeHackEd]] patches in PWADs.&lt;br /&gt;
::*No more {{dw|tutti-frutti}} for short textures of certain heights.&lt;br /&gt;
::*zdoom.wcf file for use with [[WadAuthor]].&lt;br /&gt;
:* Rocket jumping. (One very important note about this: You need to be *in the air* when your rocket explodes for rocket jumping to work. This is different from &#039;&#039;Quake&#039;&#039;, and I will probably rewrite it for the next release.)&lt;br /&gt;
:* Dynamic [[palette flash]]es.&lt;br /&gt;
:* Supports stretching skies for [[freelook]].&lt;br /&gt;
:* Larger freelook range.&lt;br /&gt;
:* Added tab-completion to the [[console]].&lt;br /&gt;
:* zdoom.cfg is now the name of the default [[configuration file]] since [[Doom Legacy]] decided to start using config.cfg.&lt;br /&gt;
:* French language support. (Set {{CVAR|C|language}} CVAR to &amp;quot;french&amp;quot;.)&lt;br /&gt;
:* Player obituaries.&lt;br /&gt;
:* Unlimited ammo cheat (use g_unlimitedammo cvar).&lt;br /&gt;
;{{LE|1.14}} (July 22): {{forum|t=5|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom114.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom114-src.zip Source]}}&lt;br /&gt;
:Bugs fixed:&lt;br /&gt;
:* The bunny scroller at the end of E3M8 no longer crashes the game.&lt;br /&gt;
:* The IDKFA [[cheat]] gives the proper amount of armor again.&lt;br /&gt;
:* Demo recording works again.&lt;br /&gt;
:* Telefragging works again.&lt;br /&gt;
:* Picking up the {{Class|InvulnerabilitySphere|invulnerability sphere}} displays the correct colors now.&lt;br /&gt;
:* [[DeHackEd]] patches containing text replacements no longer crash the game.&lt;br /&gt;
:* Printing a string containing &amp;quot;%s&amp;quot; to the console and then changing the video mode will no longer crash the game.&lt;br /&gt;
:* Chat mode finally works again.&lt;br /&gt;
:* If MIDAS can&#039;t initialize, you can still play the game but without sound.&lt;br /&gt;
:* {{Class|Pistol}} and {{Class|chaingun}} sounds no longer cut out when there are lots of {{Class|ZombieMan|zombie men}} shooting their pistols at you.&lt;br /&gt;
:* Mouse input should no longer be so jerky under Windows NT.&lt;br /&gt;
:* The [[crosshair]] is finally accurate for aiming.&lt;br /&gt;
:* [[Autoaim]] is properly remembered each time you start ZDoom.&lt;br /&gt;
:* Switches in &#039;&#039;[[the Ultimate Doom]]&#039;&#039; that aren&#039;t also in the shareware Doom properly change their appearance when switched.&lt;br /&gt;
:New features:&lt;br /&gt;
:* Players can choose their own colors and names. ([[Player setup]] menu is included).&lt;br /&gt;
:* 8-player support (untested but should work).&lt;br /&gt;
:* Miscellaneous internal code changes have been borrowed from the [[Boom]] source. (This does *not* mean that ZDoom supports Boom levels yet.)&lt;br /&gt;
:* [[Cheat]]s, chat messages, and gamestate changes are now recorded in demos.&lt;br /&gt;
:* Single-player demos recorded with ZDoom are generally smaller than before.&lt;br /&gt;
:* &#039;&#039;Quake 2&#039;&#039;-style deathmatch flags.&lt;br /&gt;
:* Cheats (optionally) work in multiplayer games.&lt;br /&gt;
:* Mode X is now supported under Win95, so all the machines that couldn&#039;t run ZDoom in 320x200 before should be able to now.&lt;br /&gt;
:* Fewer conditions result in error messages that quit the game. (If you have &#039;&#039;[[Heretic]]&#039;&#039;, try this: Start ZDoom with -file heretic and go to the console and type &amp;quot;{{CCMD|D|map}} E1M1&amp;quot;.)&lt;br /&gt;
:* Keys can repeat in the [[console]].&lt;br /&gt;
:* The console and chat mode now use the localized keymap set with the Keyboard control panel.&lt;br /&gt;
:* Messages at the top of the screen now break along between words instead of in the middle of them.&lt;br /&gt;
:* Added {{c|-config}} [[command line parameter]].&lt;br /&gt;
:* Added {{c|-fastdemo}} command line parameter.&lt;br /&gt;
:* Added new {{CCMD|D|screenshot}} command. (bound to &amp;quot;Print Screen&amp;quot; key by default)&lt;br /&gt;
:* Added &#039;&#039;Quake&#039;&#039;-like {{CCMD|P|+showscores}} command. (bound to &amp;quot;\&amp;quot; key by default)&lt;br /&gt;
:* [[Alias]]es are now saved in the config file.&lt;br /&gt;
:* Added support for multiple pitched sounds like in very old version of Doom. (Use the snd_pitched cvar to turn it on and off.)&lt;br /&gt;
;{{LE|1.14a}} (July 27): {{forum|t=6|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom114a.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoomsrc114-114a.zip Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:Bugs fixed are:&lt;br /&gt;
:* No more crashing about freeing a pointer without ZONEID when changing levels.&lt;br /&gt;
:* Skies wider than 256 pixels are drawn correctly.&lt;br /&gt;
:* [[Monster]]s&#039; heights are once again the same as they were in id&#039;s original &#039;&#039;[[Doom]]&#039;&#039;, so certain areas work properly again.&lt;br /&gt;
:* Monsters shouldn&#039;t teleport into each other anymore.&lt;br /&gt;
:* Improved support for international keyboards.&lt;br /&gt;
:* The skill level chosen for a new game is no longer ignored if the new game is started while a demo is playing.&lt;br /&gt;
:Cosmetic changes:&lt;br /&gt;
:* No more &amp;quot;sv_gravity changed to...&amp;quot;, &amp;quot;skill changed to...&amp;quot;, etc. messages in single player games.&lt;br /&gt;
:* Activating the [[player setup]] [[menu]] automatically stops any playing [[demo]]s, since it doesn&#039;t work properly while they play.&lt;br /&gt;
:* {{Class|ExplosiveBarrel|Barrels}} don&#039;t go flying away when exploding anymore.&lt;br /&gt;
:* Added def_patch cvar to automatically load a DeHackEd patch each time the game is started.&lt;br /&gt;
:* ZDoom [[savegame]]s now use the name zdoomsv?.dsg instead of doomsav?.dsg.&lt;br /&gt;
:This version also includes some preliminary [[Boom]] support as I started integrating some of the Boom source code with ZDoom:&lt;br /&gt;
:* Medusa fix.&lt;br /&gt;
:* Openings limit removed.&lt;br /&gt;
:* Removed limit on switches and animations.&lt;br /&gt;
:* Added support for Boom-like [[ANIMATED]] and [[SWITCHES]] lumps in PWADs.&lt;br /&gt;
:* Added support for Boom-style scrollers (including conveyors).&lt;br /&gt;
:* Added partial [[deep water]] support.&lt;br /&gt;
;{{LE|1.16}} (December 22): {{forum|t=13|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom116.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom116-src.zip Source]}}&lt;br /&gt;
:Bug fixes:&lt;br /&gt;
:* No more limit on size of [[savegame]]s or [[demo]]s.&lt;br /&gt;
:* Screen resolutions above 320x200 are now the proper brightness (they were too bright before.)&lt;br /&gt;
:* Improved the brightness of the [[console]] [[font]].&lt;br /&gt;
:* {{Class|BulletPuff|Bullet puffs}} can show up on the floor and ceiling and not just walls.&lt;br /&gt;
:* Missile weapons can trigger gun activation lines.&lt;br /&gt;
:* {{Class|ExplosiveBarrel|Barrels}} now bounce around as much as they did in original &#039;&#039;[[Doom]]&#039;&#039;. (They were too &amp;quot;inert&amp;quot; in 1.14.)&lt;br /&gt;
:* If a demo is being recorded, quitting the game normally will save the demo to disk. (Previously, you had to use the stop command to do this.)&lt;br /&gt;
:New features for players:&lt;br /&gt;
:* Proper support for [[Boom]] maps.&lt;br /&gt;
:* Mouse wheel support and {{CCMD|P|weapnext}}/{{CCMD|P|weapprev}} commands.&lt;br /&gt;
:* Doublebindings.&lt;br /&gt;
:* Better analog joystick support.&lt;br /&gt;
:* 180 degree turn command for keyboarders.&lt;br /&gt;
:* Damage done by a rocket to its shooter is {{CVAR|C|splashfator|configurable}} and defaults to the original Doom behavior.&lt;br /&gt;
:* User-configurable gender. (Even though I don&#039;t have any new player sounds, at least the [[obituaries]] are gender-aware. :-)&lt;br /&gt;
:* [[Teamplay]] mode.&lt;br /&gt;
:* {{CVAR|C|sv_nobfgaim|New CVAR}} to disable manual aiming of the BFG to prevent someone from shooting it at the floor and quickly triggering tracer damage before.&lt;br /&gt;
:* Maps no longer need to have as many deathmatch starts as there are players in a deathmatch game.&lt;br /&gt;
:* Support for [[Doom Legacy]] [[skin]]s.&lt;br /&gt;
:* Rewrote the [[MIDI]]/[[MUS]] code so that it has a working volume control.&lt;br /&gt;
:* Many more [[console command]]s and [[CVARs]].&lt;br /&gt;
:New features for editors:&lt;br /&gt;
:* Proper support for [[Boom]] maps.&lt;br /&gt;
:* [[Obituaries]] are configurable with a .bex patch.&lt;br /&gt;
:* [[Monster path]]s&lt;br /&gt;
:* [[Colored lighting]]&lt;br /&gt;
:* [[Fog]] can be applied to only part of a level instead of all of it.&lt;br /&gt;
:* Per-sector [[gravity]] settings.&lt;br /&gt;
:* Support for up to 256 [[ambient sound]]s (as opposed to the limit of 64 in earlier versions).&lt;br /&gt;
:* [[Sector damage]] adjustable from between 0-255 points of damage.&lt;br /&gt;
:* Changeable [[camera]] views.&lt;br /&gt;
:* The following editing features that were introduced in &#039;&#039;[[Hexen]]&#039;&#039; are also available in ZDoom:&lt;br /&gt;
::*Most line specials take arguments that modify their behavior.&lt;br /&gt;
::*[[ACS]] scripting.&lt;br /&gt;
::*[[Hub]]s.&lt;br /&gt;
::*[[Earthquake]]s.&lt;br /&gt;
::*[[Dormant]] monsters.&lt;br /&gt;
::*Trigger events to happen on monster deaths.&lt;br /&gt;
::*[[Floor_Waggle|&amp;quot;Waggling&amp;quot; floors]].&lt;br /&gt;
::*[[Pillar_Build|Pillar builders]].&lt;br /&gt;
::*Push activation lines (walking into a wall can trigger an event).&lt;br /&gt;
::*[[Thing_Spawn|Thing spawning]] (e.g. for traps/gifts).&lt;br /&gt;
&lt;br /&gt;
==1999==&lt;br /&gt;
January 6 of this year saw the first release of the [[Raven Software]] source code.&lt;br /&gt;
;{{LE|1.17}} (February 17): {{forum|t=15|Release thread}} | {{plainlink|[http://www.zdoom.org/files/zdoom/zdos117c.zip DOS build]}}&lt;br /&gt;
:Bug fixes:&lt;br /&gt;
:* [[Multiplayer]] games with [[monster]]s do not crash.&lt;br /&gt;
:* Player corpses do not levitate and then fall down when a player respawns in multiplayer games.&lt;br /&gt;
:* Using {{CCMD|P|togglemap}} outside of a game will not crash.&lt;br /&gt;
:* Monsters stop attacking their target once it is dead.&lt;br /&gt;
:* EV_StopPlat() does not get stuck in an infinite loop if there are [[moving platform]]s.&lt;br /&gt;
:* Partially invisible players are drawn the proper colors (instead of green) if {{CVAR|R|r_drawfuzz}} is 0.&lt;br /&gt;
:* If you are invisible, so are your muzzle flashes.&lt;br /&gt;
:* Trying to execute a non-existent [[ACS|script]] will not crash.&lt;br /&gt;
:* Using a [[ChangeCamera]] special from an open script will not crash.&lt;br /&gt;
:* The [[FloorAndCeiling_RaiseByValue]] and [[FloorAndCeiling_LowerByValue]] now behave like &#039;&#039;[[Hexen]]&#039;&#039;&#039;s.&lt;br /&gt;
:* Using {{c|{{param|-loadgame}}}} from the [[command line]] works.&lt;br /&gt;
:* Fixed a memory leak during generation of the translucency tables.&lt;br /&gt;
:* In high resolutions, weapon sprites meet the bottom of the screen.&lt;br /&gt;
:* Sounds will not cut out mysteriously when there is no reason for them to do so.&lt;br /&gt;
:* Sounds will also not be stopped immediately when a thing is removed, so explosion sounds will play to their full length.&lt;br /&gt;
:* Things can make more than one sound at once.&lt;br /&gt;
:* The [[deathmatch]] [[scoreboard]] is aligned properly at high resolutions.&lt;br /&gt;
:* {{CCMD|P|Spynext}} and {{CCMD|P|spyprev}} work properly instead of leaving the [[status bar]] &amp;quot;lagging behind&amp;quot; the player being viewed.&lt;br /&gt;
:* The {{Class|Infrared|light-amp}} does not disable colored lighting.&lt;br /&gt;
:* The [[sky]] gets {{dw|invulnerability colormap bug|inverted}} when using the invulnerability powerup.&lt;br /&gt;
:* Implemented better z-checking code (from &#039;&#039;[[Heretic]]&#039;&#039;/&#039;&#039;[[Hexen]]&#039;&#039;).&lt;br /&gt;
:* {{Class|PainElemental|Pain elementals}} will spawn one {{Class|LostSoul|lost soul}} at a time instead of two inside of each other.&lt;br /&gt;
:* Bex patches that use thing mnemonics really do work now, and unknown bit messages aren&#039;t generated for regular [[DeHackEd]]  patches.&lt;br /&gt;
:* Linedef type 134 for regular &#039;&#039;[[Doom]]&#039;&#039;/[[Boom]] maps requires a red key for activation (it was being improperly translated to require a blue one).&lt;br /&gt;
:* Monsters can activate secret lines when they cross them. (See &#039;&#039;[[Doom II]]&#039;&#039; MAP08).&lt;br /&gt;
:* The player extreme death sound is used.&lt;br /&gt;
:* When a player leaves a network game, their body is removed instead of being left empty.&lt;br /&gt;
:* 0-length sounds are treated as empty sounds instead of sounds 4 gigs long.&lt;br /&gt;
:* [[Skin]]s that replaced player sounds with sounds in the [[IWAD]] work.&lt;br /&gt;
:* Muzzle flashes do not light up foggy areas, and fullbright sprites stay shrouded in fog.&lt;br /&gt;
:* Alphanumeric keys no longer automatically repeat on the console.&lt;br /&gt;
:* Wads such as gothicdm2 that used new flats in addition to the ones in the IWAD with the regular doom.exe work.&lt;br /&gt;
:New features:&lt;br /&gt;
:* Significant speed improvements on modern processors.&lt;br /&gt;
:* [[Armor]] and [[key]]s are shown on the fullscreen HUD.&lt;br /&gt;
:* Colored text.&lt;br /&gt;
:* A {{CCMD|P|playdemo}} console command.&lt;br /&gt;
:* A [[chasecam]].&lt;br /&gt;
:* A [[particle]] system.&lt;br /&gt;
:* An optional [[railgun]] to show off the particle system. (Start the game with {{c|{{param|-deh}} [[railgun.bex]]}} if you want to use it.)&lt;br /&gt;
:New features interesting for wad authors:&lt;br /&gt;
:* [[Polyobject]]s.&lt;br /&gt;
:* [[Sound sequence]]s.&lt;br /&gt;
:* WAVE files can be used as sound lumps without converting them to DMX&#039;s format first.&lt;br /&gt;
:* A sky can be specified to not be stretched even if it is shorter than 200 pixels.&lt;br /&gt;
:* {{Class|Spark}}s.&lt;br /&gt;
:* {{Class|ParticleFountain|Particle fountain}}s.&lt;br /&gt;
:* Parallax skies.&lt;br /&gt;
:* Some new [[DeHackEd]] thing flags from &#039;&#039;[[Hexen]]&#039;&#039; (bobbing, reflective, etc.).&lt;br /&gt;
;{{LE|1.17a}} (February 21): {{forum|t=16|Release thread}}&lt;br /&gt;
:Mostly minor bug fixes, released because [[Herian 2]] needed some of those fixes. There are a few new features, however:&lt;br /&gt;
:* If you have a skins/ directory in the same directory as zdoom.exe, every wad file in it will be automatically loaded when the game starts. This way, you don&#039;t have to load your [[skin]]s by hand to use them.&lt;br /&gt;
:* New formatting options for text [[print]]ed using [[ACS]].&lt;br /&gt;
:* A [[A_MonsterRail|code pointer]] to make monsters fire a railgun.&lt;br /&gt;
;{{LE|1.17b}} (March 17): {{forum|t=21|Release thread}}&lt;br /&gt;
:Some minor bug fixes over 1.17 and 1.17a. It also loads faster because the sprite dimensions are not cached until they are actually needed. There are also some other internal changes in preparation for supporting &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;[[Hexen]]&#039;&#039;, but those don&#039;t affect the user yet.&lt;br /&gt;
;{{LE|1.17b1}} (March 19): {{forum|t=22|Release thread}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
;{{LE|1.17c}} (May 5): {{forum|t=28|Release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom117c.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom117c-src.zip Source]}}&lt;br /&gt;
:* Fixed game saving crashes on maps with [[wind]]/[[current]] effects.&lt;br /&gt;
:* In [[Boom]] [[deep water]] sectors, the underwater light and fog colors can now be set independently of the area above water.&lt;br /&gt;
:* Added nojump, allowjump, nofreelook, and allowfreelook keywords for use in [[MAPINFO]] lumps to control [[jumping]] and [[free look]].&lt;br /&gt;
:* The random number seed now changes each time you run the program.&lt;br /&gt;
;{{LE|1.18 test 1}} (June 30): {{forum|t=33|Release thread}}&lt;br /&gt;
:* Tweaked the optimized renderer for fifth-generation processors.&lt;br /&gt;
:* Added the following specials:&lt;br /&gt;
::*[[Line_AlignFloor]]&lt;br /&gt;
::*[[Line_AlignCeiling]]&lt;br /&gt;
::*[[Sector_SetRotation]]&lt;br /&gt;
::*[[Sector_SetCeilingPanning]]&lt;br /&gt;
::*[[Sector_SetFloorPanning]]&lt;br /&gt;
::*[[Sector_SetCeilingScale]]&lt;br /&gt;
::*[[Sector_SetFloorScale]]&lt;br /&gt;
:* Added an additional parameter to the [[Transfer_Heights]] special.&lt;br /&gt;
:* Switched to the [http://sourceforge.net/projects/openptc/ OpenPTC] library for display.&lt;br /&gt;
:* Converted lots of code to an object-oriented C++ architecture.&lt;br /&gt;
;{{LE|1.18 test 2}} (July 1): {{forum|t=36|Release thread}}&lt;br /&gt;
:* Fixed vertical aim clipping ({{Class|BFG9000|BFG}} works again).&lt;br /&gt;
:* Fixed [[monster]] wandering.&lt;br /&gt;
:* Maps with mapthings of type 0 no longer generate warning messages.&lt;br /&gt;
:* [[Crusher]]s that do no damage no longer act as if they inflict pain to actors.&lt;br /&gt;
:* The [[alias]] command lists aliases again.&lt;br /&gt;
:* Aliases are saved to the [[config file]] again.&lt;br /&gt;
;{{LE|1.18 test 3}} (July 2): {{forum|t=37|Release thread}}&lt;br /&gt;
:* Removed unnecessary display mode switches.&lt;br /&gt;
:* Created a DCanvas class to encapsulate most 2D rendering.&lt;br /&gt;
;{{LE|1.18 test 4}} (July 3): {{forum|t=39|Release thread}}&lt;br /&gt;
:* Fixed the &amp;quot;Bad DCanvas::CopyRect&amp;quot; problem introduced in test3.&lt;br /&gt;
:* Fixed [[sound sequence]]s that should not be cut off when stopped (such as the standard doors).&lt;br /&gt;
;{{LE|1.18 test 5}} (July 6): {{forum|t=40|Release thread}}&lt;br /&gt;
:* Fixed a potential infinite loop that was introduced in [[#1.18 test 1|118test1]].&lt;br /&gt;
:* Delayed the initial execution of [[CVAR]] callbacks.&lt;br /&gt;
:* Added &#039;&#039;[[Heretic]]&#039;&#039;&#039;s {{wp|Xiaolin Wu&#039;s line algorithm|anti-aliased Wu line drawer}} to the [[automap]].&lt;br /&gt;
;{{LE|1.18 test 6}} (July 10): {{forum|t=41|Release thread}}&lt;br /&gt;
:* Rewrote the {{wp|Xiaolin Wu&#039;s line algorithm|Wu line drawer}} to look better (especially in overlay mode).&lt;br /&gt;
:* [[Sky stretching|Stretched skies]] now get stretched horizontally as well as vertically.&lt;br /&gt;
:* Did an initial integration of the [[Cajun Bot]] 0.71 code.&lt;br /&gt;
;{{LE|1.18 test 7}} (July 12):&lt;br /&gt;
:* Fixed handling of maps with scrolling walls.&lt;br /&gt;
:* Single player works again. In test 6, all games were considered either [[coop]] or [[deathmatch]].&lt;br /&gt;
:* Disabled the [[bot]] thinking code in single player games, so you don&#039;t suffer a performance hit when not using bots.&lt;br /&gt;
:* Added some performance counters accessible through the {{CCMD|D|stat}} command.&lt;br /&gt;
;{{LE|1.18 test 8}} (July 20): {{forum|t=43|Release thread}}&lt;br /&gt;
:* Fixed a crash problem with the &amp;quot;burn&amp;quot; [[screen wipe]].&lt;br /&gt;
:* Fixed a crash problem with playing non-assigned [[sound sequence]]s.&lt;br /&gt;
:* Fixed a crash problem related to trying to shutdown the music subsystem twice.&lt;br /&gt;
:* If you try to add more coop [[bot]]s than there are coop starts, the extra bot leaves quietly instead of ending the game.&lt;br /&gt;
:* {{CVAR|C|sv_weapondrop|Weapondrop}} is now a &amp;quot;server&amp;quot; CVAR, which it should have been in the first place.&lt;br /&gt;
:* Changed the nodetable file format to be more compact.&lt;br /&gt;
:* Bots can now be recorded in demos.&lt;br /&gt;
:* Bots work in [[multiplayer]] games. Still buggy. Spawning bots can cause consistency failures, and they can start spinning wildly.&lt;br /&gt;
;{{LE|1.18 test 9}} (August 9): {{forum|t=44|Release thread}}&lt;br /&gt;
:* Fixed the &amp;quot;wild&amp;quot; [[bot]] spinning problem.&lt;br /&gt;
:* Commands like {{CCMD|D|changemap}} that could make network games go out of sync should work properly now. The reason they would do that is closely related to the reason that the bots would start spinning.&lt;br /&gt;
:* Finished the serializer. Now savegames work. [[Hub]]s don&#039;t, because I haven&#039;t written the player travelling code yet.&lt;br /&gt;
:* Various other code cleanup.&lt;br /&gt;
;{{LE|1.18 test 10}} (August 14):&lt;br /&gt;
:* Reimplemented [[hub]] travel.&lt;br /&gt;
:* Optimized R_MapPlane slightly.&lt;br /&gt;
:* Added {{CCMD|D|fov}} command.&lt;br /&gt;
:* Added vertical sub-pixel accuracy to the renderer.&lt;br /&gt;
:* Added searches for an [[IWAD]] in the current directory, $DOOMWADDIR, and $HOME.&lt;br /&gt;
;{{LE|1.18}} (September 5): {{forum|t=46|Release thread}}&lt;br /&gt;
:* Replaced the older [[Bots|Cajun]] 0.71 with Cajun 0.97.&lt;br /&gt;
:* Fixed handling of [[status bar]] [[mugshot|faces]] with [[skin]]s that provide them.&lt;br /&gt;
:* Added [[swimmable water]].&lt;br /&gt;
:* Messages printed to the middle of the screen also print to the [[console]].&lt;br /&gt;
:* Skill and other server [[CVARs]] get saved in [[savegame]]s again.&lt;br /&gt;
:* Added liquid [[texture warping]].&lt;br /&gt;
:* Bad [[MAPINFO]] lumps generate error messages instead of hanging.&lt;br /&gt;
:* Realized that it&#039;s impossible to guarantee that all object pointers will be valid without some effort, so FArchive saves DObject objects as NULL objects now instead of aborting with an error.&lt;br /&gt;
:* Added the [[built-in ACS functions]] [[LocalAmbientSound]], [[ActivatorSound]], and [[SetLineMonsterBlocking]].&lt;br /&gt;
:* Added a {{Class|SecretTrigger|thing}} that does nothing but count toward the number of [[secret]]s.&lt;br /&gt;
:* Added a {{CCMD|D|fly}} mode.&lt;br /&gt;
:* Finally implemented the {{CCMD|P|+moveup}} and {{CCMD|P|+movedown}} commands.&lt;br /&gt;
;{{LE|1.18a}} (September 12): {{forum|t=47|Release thread}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed [[liquid warping]] temporarily stopping when changing levels.&lt;br /&gt;
:* {{CCMD|P|+mlook|+/-mlook}} commands do not generate unknown command messages.&lt;br /&gt;
:* Fixed support for maps with &amp;gt;10 deathmatch starts. Thanks to Roman Hatsiev.&lt;br /&gt;
:* Fixed support for the special &amp;quot;maps&amp;quot; EndGame? in MAPINFO lumps.&lt;br /&gt;
:* {{Class|TeleportDest2|Teleport destination (no gravity)}} now works as intended.&lt;br /&gt;
:* Hopefully fixed [[savegame]] problems.&lt;br /&gt;
:* [[Bots]] are restored from savegames.&lt;br /&gt;
:* Fixed keyboard turning speed when {{c|{{param|-dup}}}} is used.&lt;br /&gt;
:* Network commands get executed only once when {{c|{{param|-dup}}}} is used.&lt;br /&gt;
:* In sectors with [[damaging floor]]s and swimmable [[deep water]], the damage will also be applied while the player is swimming and not just when the player is on the ground.&lt;br /&gt;
;{{LE|1.18b}} (September 15): {{forum|t=48|Release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom118b.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom118b-src.zip Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed crash when saving games with more than 1024 objects.&lt;br /&gt;
:* Fixed crash when loading a game without starting a new one first.&lt;br /&gt;
:* Reduced the size and frequency of pregame network packets, under the assumption that problems people were having using 1.18 on the Internet are a result of limited modem bandwidth.&lt;br /&gt;
;{{LE|1.19}} (November 24): {{forum|t=53|Release thread}} | {{forum|t=54|Source/Linux build release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom-1.19.tar.gz Source]}}&lt;br /&gt;
:First official Linux build.&lt;br /&gt;
:* [[DeHackEd]] patches that set an actor&#039;s {{Property|DeathSound|death sound}} to 0 without removing the [[A_Scream]] call no longer crash.&lt;br /&gt;
:* Fixed sync problems when playing with {{Class|BulletPuff|bullet puffs}} as [[particle]]s vs as sprites.&lt;br /&gt;
:* Fixed friction when walking on the bottom of swimmable water.&lt;br /&gt;
:* Added Jeffrey Cuenco&#039;s fixes to get {{c|{{param|-host}}}} and {{c|{{param|-join}}}} [[command line parameters]] to work properly.&lt;br /&gt;
:* Fixed [[Boom]] [[Generic_Door|generalized locked doors]] so that the open/close type will actually close.&lt;br /&gt;
:* Added pointer tracking and cleanup. This should fix the occasional crashes when saving games and various other anomalies.&lt;br /&gt;
;{{LE|1.20}} (November 25): {{forum|t=56|Release thread}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed saving, reloading, and then resaving [[savegame|games]] when travelling between levels in a [[hub]].&lt;br /&gt;
:* Fixed saving of [[ACS]] scripts scheduled to occur on a future level.&lt;br /&gt;
;{{LE|1.21}} (November 26): {{forum|t=57|Release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom121.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom121-src.zip Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed problems with thinkers removing themselves and causing other thinkers to not get a chance to think.&lt;br /&gt;
:* Added {{CVAR|R|hud_scale}} CVAR&lt;br /&gt;
;{{LE|1.22}} (November 12): {{forum|t=60|Release thread}} | {{plainlink|[http://www.zdoom.org/files/zdoom/1.x/zdoom122.zip Windows build] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom-1.22-i386.tar.gz Linux build] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom122-src.zip Windows source] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom-1.22.tar.gz Linux source]}}&lt;br /&gt;
:* [[Scroll_Texture_Both]] and [[TranslucentLine]] specials can now be used from [[ACS]].&lt;br /&gt;
:* Fixed compiler-dependent [[CVAR]] ordering during [[netgame]] arbitration.&lt;br /&gt;
:* Fixed certain [[polyobject]] movement combinations that would not stop even though they were supposed to.&lt;br /&gt;
:* Did some cleanup for Alpha processors.&lt;br /&gt;
&lt;br /&gt;
==2000==&lt;br /&gt;
June 20 of this year saw the public release of the [[Build]] source code.&lt;br /&gt;
;{{LE|1.23 Beta}} (May 10): {{forum|t=64|Release thread}}&lt;br /&gt;
:*Partial &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;[[Hexen]]&#039;&#039; support.&lt;br /&gt;
:*Windows build uses [[FMOD Ex|FMOD]] instead of [http://www.s2.org/midas/ MIDAS].&lt;br /&gt;
&lt;br /&gt;
==2001==&lt;br /&gt;
;{{LE|1.23 Beta 19}} (March 9): {{forum|t=74|Release thread}}&lt;br /&gt;
:Added new [[camera]] types.&lt;br /&gt;
:Added [[LANGUAGE|string localization]].&lt;br /&gt;
:Added [[decal]]s.&lt;br /&gt;
:Added [[slope]]s.&lt;br /&gt;
:Added [[skybox]]es.&lt;br /&gt;
;{{LE|1.23 Beta 20}} (March 11): {{forum|t=75|Release thread}}&lt;br /&gt;
;{{LE|1.23 Beta 23}} (April 9): {{forum|t=76|Release thread}}&lt;br /&gt;
;{{LE|1.23 Beta 24}} (April 12): {{forum|t=77|Release thread}}&lt;br /&gt;
;{{LE|1.23 Beta 25}} (August 15): {{forum|t=81|Release thread}}&lt;br /&gt;
:Linux build now uses SDL&lt;br /&gt;
;{{LE|1.23 Beta 28}} (September 17): {{forum|t=83|Release thread}}&lt;br /&gt;
:Added a few [[decal]]-related [[CVARs]].&lt;br /&gt;
;{{LE|1.23 Beta 28a}} (December 13): {{forum|t=88|Release thread}}&lt;br /&gt;
&lt;br /&gt;
==2002==&lt;br /&gt;
;{{LE|1.23 Beta 33}} (February 5): {{Forum|t=90|Release thread}} | {{plainlink|[http://www.zdoom.org/files/zdoom/1.x/zdoom-1.23beta33-linux.bz2 Linux build] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom-1.23beta33-src.tar.bz2 Source]}}&lt;br /&gt;
:Many fixes and rendering optimization.&lt;br /&gt;
:*Increased &#039;&#039;[[Heretic]]&#039;&#039;/&#039;&#039;[[Hexen]]&#039;&#039; support&lt;br /&gt;
:*Improved [[decal]]s.&lt;br /&gt;
:*Added support for the [[Bloodbath announcer]]&lt;br /&gt;
:*Added [[underwater]] [[REVERBS|reverb]] effect.&lt;br /&gt;
:*Added [[Line_Horizon]] effect.&lt;br /&gt;
:*Added {{Class|ScriptedMarine|scripted marines}} and several [[ACS]] enhancements.&lt;br /&gt;
:*Added support for [[DeePsea]]&#039;s [[patch|tall patches]].&lt;br /&gt;
:*Added [[slope]] things.&lt;br /&gt;
:*Changed [[license]] for original ZDoom source code to a &amp;quot;BSD-ish one&amp;quot;.&lt;br /&gt;
;{{LE|2.0 Beta 13}} (August 27):&lt;br /&gt;
:*Further increased &#039;&#039;Heretic&#039;&#039;/&#039;&#039;Hexen&#039;&#039; support.&lt;br /&gt;
:*Added [[PNG]] support for screenshots. [[Savegame]]s are actually PNG files now.&lt;br /&gt;
:*Added [[ZDBSP|internal nodebuilder]], made it [[polyobject]]-aware.&lt;br /&gt;
:*Added SNES SPC music support.&lt;br /&gt;
:*Added a loader for [[Build]] maps.&lt;br /&gt;
:*Added support for double- and quadruple-resolution flats (128x128 and 256x256).&lt;br /&gt;
:*Added ACS [[libraries]].&lt;br /&gt;
:*Added support for up to 8 mouse buttons.&lt;br /&gt;
:*Added the very first version of [[DECORATE]].&lt;br /&gt;
:*Removed [[MBF]]&#039;s torque simulation because of the problems it caused.&lt;br /&gt;
&lt;br /&gt;
==2003==&lt;br /&gt;
;{{LE|2.0.47}} (May 14): {{Forum|t=101|Release thread}} | {{plainlink|[http://www.zdoom.org/files/lars/47.cab Build]}}&lt;br /&gt;
;{{LE|2.0.47i}} (October 2): {{plainlink|[http://www.zdoom.org/files/lars/47i.cab Build]}}&lt;br /&gt;
;{{LE|2.0.48}} (October 23):&lt;br /&gt;
:*Interchangeability between [[flat]]s and [[texture]]s.&lt;br /&gt;
;{{LE|2.0.49}}, {{LE|2.0.50}} (October 26)&lt;br /&gt;
;{{LE|2.0.51}} (October 30)&lt;br /&gt;
;{{LE|2.0.52}} (October 31)&lt;br /&gt;
;{{LE|2.0.53}} (November 16)&lt;br /&gt;
;{{LE|2.0.54}}, {{LE|2.0.55}} (November 23)&lt;br /&gt;
;{{LE|2.0.56}} (November 25)&lt;br /&gt;
;{{LE|2.0.57}} (November 26)&lt;br /&gt;
;{{LE|2.0.58}}, {{LE|2.0.59}} (December 7)&lt;br /&gt;
;{{LE|2.0.60}} (December 8)&lt;br /&gt;
&lt;br /&gt;
==2004==&lt;br /&gt;
;{{LE|2.0.61}} (January 22) &lt;br /&gt;
;{{LE|2.0.62}} (February 7):&lt;br /&gt;
:*Added modern [[DECORATE]] support.&lt;br /&gt;
;{{LE|2.0.63}} (February 10): {{plainlink|[http://www.zdoom.org/files/lars/63.cab Build] {{!}} [http://www.zdoom.org/files/lars/63src.cab Source]}}&lt;br /&gt;
:*Added custom monsters to DECORATE.&lt;br /&gt;
;{{LE|2.0.64}} (June 8)&lt;br /&gt;
;{{LE|2.0.90}} (October 21):&lt;br /&gt;
:*Added &#039;&#039;[[Strife]]&#039;&#039; support and new inventory system&lt;br /&gt;
;{{LE|2.0.91}} (October 22)&lt;br /&gt;
;{{LE|2.0.92}} (October 31)&lt;br /&gt;
;{{LE|2.0.93}} (November 3)&lt;br /&gt;
;{{LE|2.0.94}} (November 19)&lt;br /&gt;
;{{LE|2.0.95}} (December 24): {{plainlink|[http://www.zdoom.org/files/lars/95changes.html Changelog]}}&lt;br /&gt;
:*Added [[camera]] textures to [[ANIMDEFS]] and [[SetCameraToTexture]]&lt;br /&gt;
:*Improved [[console]] tab completion, added Ctrl-X shortcut to clear the console&#039;s command line&lt;br /&gt;
:*Several &#039;&#039;[[Hexen]]&#039;&#039; and &#039;&#039;[[Strife]]&#039;&#039; fixes&lt;br /&gt;
:*Merged in Jim&#039;s [[ACS]] character array [[print]]ing support. &lt;br /&gt;
:*Added the [[polymost]] clipper.&lt;br /&gt;
:*Added support for 16:10 and 5:4 aspect ratios and letterboxing.&lt;br /&gt;
:*Added [[scope|static local variables]], [[Log]], [[SetAmmoCapacity]] and [[GetAmmoCapacity]] to [[ACS]].&lt;br /&gt;
;{{LE|2.0.96}} (December 25): {{plainlink|[http://www.zdoom.org/files/lars/96.cab Build] {{!}} [http://www.zdoom.org/files/lars/96src.cab Source] {{!}} [http://www.zdoom.org/files/lars/96changes.html Changelog]}}&lt;br /&gt;
:*Added [[TITLEMAP]]&lt;br /&gt;
&lt;br /&gt;
==2005==&lt;br /&gt;
;{{LE|2.0.97}} (September 28): {{forum|t=8060|Release thread}} | {{plainlink|[http://www.zdoom.org/files/lars/97.cab Build] {{!}} [http://www.zdoom.org/files/lars/97src.rar Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:*The [[LANGUAGE]] lump is now text-based.&lt;br /&gt;
:*Added IMF [[music format]] support.&lt;br /&gt;
:*Ported [[SetActorAngle]] and [[SetLineBlocking|BLOCK_RAILING]] from the [[ZDoom Community Build]].&lt;br /&gt;
:*Added [[Polymost]] visualization code from [[Build]].&lt;br /&gt;
:*Gave {{Flag|DONTMORPH}} flag to {{Class|Cyberdemon}}, {{Class|SpiderMastermind}}, {{Class|AlienSpectre1}}, {{Class|Crusader}}, {{Class|Programmer}}, and {{Class|Inquisitor}}.&lt;br /&gt;
:*Made {{Class|Puffy}} and projectiles spawned by [[A_LastZap]] deal no damage.&lt;br /&gt;
:*[[Teleport_NewMap]] can now be used within a [[TITLEMAP]] in order to make it possible to use different maps as the title map.&lt;br /&gt;
:*Merged in Graf Zahl&#039;s [[Caverns of Darkness]] patch.&lt;br /&gt;
:*Added [[Polymost]] wireframe mode.&lt;br /&gt;
:*Added {{CCMD|O|writeopl}} console command.&lt;br /&gt;
:*[[UsePuzzleItem]] can now be a [[thing]]&#039;s [[special]].&lt;br /&gt;
:*Missiles with negative damage now give you health.&lt;br /&gt;
;{{LE|2.0.98}} (November 3): {{forum|t=8460|Release thread}} | {{plainlink|[http://www.zdoom.org/files/lars/98.cab Build] {{!}} [http://www.zdoom.org/files/lars/98src.rar Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
&lt;br /&gt;
==2006==&lt;br /&gt;
February 16 of this year saw the first commit to the [[SVN]] repository.&lt;br /&gt;
;{{LE|2.1.0}}{{rev|204}} (June 21): {{forum|t=10550|Release thread}} | {{plainlink|[http://zdoom.org/files/old/zdoom-2.1.0.zip Build] {{!}} [http://zdoom.org/files/old/zdoom-2.1.0-src.7z Source]}}&lt;br /&gt;
:*Added several things from [[ZDoom Community Build]] (unofficial 2.0.96x) and [[GZDoom]], including custom [[DECORATE]] [[weapon]]s.&lt;br /&gt;
;{{LE|2.1.1}}{{rev|226}} (June 25): {{forum|t=10630|Release thread}} | {{versionlinks|2|1|1}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
;{{LE|2.1.2}}{{rev|257}} (July 17): {{forum|t=10895|Release thread}} | {{versionlinks|2|1|2}}&lt;br /&gt;
:*Added custom [[player class]]es.&lt;br /&gt;
:*Added &amp;quot;replaces&amp;quot; keyword for [[DECORATE]].&lt;br /&gt;
:*[[IWAD selection box]] now remembers the last choice.&lt;br /&gt;
:*Added [[A_RadiusThrust]] to DECORATE.&lt;br /&gt;
:*Added [[ThingCountName]] and  [[SpawnSpotFacing]] to [[ACS]].&lt;br /&gt;
:*Changed additive scroller options into a [[compatibility options|compatibility flag]].&lt;br /&gt;
;{{LE|2.1.3}}{{rev|265}} (July 18): {{forum|t=10930|Release thread}} | {{versionlinks|2|1|3}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Sounds can be specified by full path now in [[SNDINFO]] and [[S_SKIN]].&lt;br /&gt;
:* [[DECORATE]] replacement is more universal.&lt;br /&gt;
:* Added NecroMage&#039;s submission for bitwise/shift assignment operators for [[ACS]]. (Requires [[ACC]] 1.42+.)&lt;br /&gt;
:* Changed PlayAttacking2 to always use the melee state instead of different implementations per player and hard coding it to MissileState+1. Also changed PlayAttacking for the {{Class|HereticPlayer}} to use the same animation as PlayAttacking2. Now the special handling for &#039;&#039;[[Heretic]]&#039;&#039; in the FireWeapon functions can be removed.&lt;br /&gt;
;{{LE|2.1.4}}{{rev|273}} (July 29): {{forum|t=11063|Release thread}} | {{versionlinks|2|1|4}}&lt;br /&gt;
:*Added partial emulation of [[Boom]]&#039;s TRANMAP by analyzing such lumps and extrapolating translucency level from them. This does not work for non-translucency effects that can be achieved with TRANMAPs.&lt;br /&gt;
:*Added a {{CVAR|C|queryiwad_key}} cvar to control which key can force the [[IWAD selection box]] to appear. It can be either &amp;quot;shift&amp;quot; or &amp;quot;control&amp;quot;. Any other value will disable its functionality.&lt;br /&gt;
;{{LE|2.1.5}}{{rev|321}} (September 2): {{forum|t=11466|Release thread}} | {{versionlinks|2|1|5}}&lt;br /&gt;
:*New [[ACS]] functions: [[GetPlayerInfo]], [[ChangeLevel]], [[SectorDamage]], [[ReplaceTextures]]&lt;br /&gt;
:*New [[DECORATE]] functions: [[A_PlaySoundEx]], [[A_StopSoundEx]]&lt;br /&gt;
:*The {{CVAR|C|vid_nowidescreen}} cvar can be used to disable widescreen aspect ratio correction.&lt;br /&gt;
:*[[A_SpawnDebris]] and [[A_SpawnItem]] can optionally transfer the caller&#039;s color translation to the newly spawned item.&lt;br /&gt;
:*New morphing artifacts can be created by subclassing the {{Class|MorphProjectile}} and {{Class|MorphedMonster}} classes.&lt;br /&gt;
:*[[A_FireCustomMissile]] has a new parameter: Previously it always aimed straight ahead and altered the projectile&#039;s angle according to the resulting direction. If the 6th parameter is 1 now it will aim at the specified angle directly.&lt;br /&gt;
:*Users can now define their own [[TEXTCOLO|text colors]], and there are several new standard ones.&lt;br /&gt;
:*The fourth parameter of [[Polyobj_StartLine]] and the fifth parameter of [[Polyobj_ExplicitLine]] now set the line&#039;s ID.&lt;br /&gt;
:*DECORATE explosion parameters are no longer considered deprecated.&lt;br /&gt;
:*Calling [[Radius_Quake]], [[Thing_Activate]], or [[Thing_Remove]] with a [[TID]] of 0 now operates the activator.&lt;br /&gt;
:*Strife&#039;s {{Class|PhosphorousFire}} now does completely thrustless damage.&lt;br /&gt;
:*An actor&#039;s damage in DECORATE can now be specified as an expression that is evaluated each time it needs to do damage. To do this, enclose it within parentheses, and the normal Doom damage calculation will be bypassed.&lt;br /&gt;
:*Passing a negative script number to the {{CCMD|D|puke}} [[console command]] now runs the script with [[ACS_ExecuteAlways]] instead of [[ACS_Execute]].&lt;br /&gt;
:*[[Polyobject]]s defined with [[Polyobj_ExplicitLine]] are no longer limited to 64 segs.&lt;br /&gt;
:*Starting a new game or reloading an old one no longer resets the [[chasecam]].&lt;br /&gt;
:*The [[automap]] background is now a regular texture.&lt;br /&gt;
:*Added support for many [[image format]]s for use as textures: [[PNG]], JPEG, PCX, TGA, DDS.&lt;br /&gt;
:*Numerous bugfixes.&lt;br /&gt;
;{{LE|2.1.6}}{{rev|346}} (October 2): {{forum|t=11758|Release thread}} | {{versionlinks|2|1|6}}&lt;br /&gt;
:*Scaled 2D images are supported.&lt;br /&gt;
:*Dehacked max health usage defaults to consistency with other ([[Boom]]) ports.&lt;br /&gt;
:*A &#039;&#039;font&#039;&#039; parameter was added to [[A_Print]].&lt;br /&gt;
:*Quoted strings in [[DECORATE]] can no longer span multiple lines without using the escape character (\) at the end of each line. This makes it easier to spot places where you unintentionally left off a closing quote and got an error several lines later.&lt;br /&gt;
:*A new {{CCMD|O|writeini}} console command can be used to save [[the ini]] at any time, with any file name.&lt;br /&gt;
:*If the ini is write-protected when you quit, an error dialog now opens to let you know your settings could not be saved and gives you the opportunity to unprotect it.&lt;br /&gt;
:*Multiple stat displays can be enabled at once.&lt;br /&gt;
:*Several bugfixes.&lt;br /&gt;
;{{LE|2.1.7}}{{rev|524}} (October 31): {{forum|t=12015|Release thread}} | {{versionlinks|2|1|7}}&lt;br /&gt;
:*Alias commands can now do parameter substitution. If you have %x, where x is some number, in an alias command, it will be replaced by the appropriately numbered parameter passed when the alias is used, with %0 being replaced by the name of the alias itself.&lt;br /&gt;
:*A new {{Class|MapMarker}} actor has been added that you can use to mark points of interest on the [[automap]]. If its first argument is zero, the map marker itself appears on the automap, otherwise it is drawn on top of any actor with a [[TID]] matching that argument. If the second argument is one, then the map marker will only be appear if the player has previously seen the sector it is in. You can use [[Thing_Activate]] and [[Thing_Deactivate]] on markers to turn them on and off. To make custom markers, all you need to do is subclass MapMarker with [[DECORATE]].&lt;br /&gt;
:*Added the [[SetActorPitch]] [[ACS]] command to set an actor&#039;s pitch.&lt;br /&gt;
:*You can pass multiple jump targets to the [[A_Jump]] [[DECORATE]] function, and it will choose one of them at random if it jumps.&lt;br /&gt;
:*Using a [[TID]] of 0 with [[Thing_Deactivate]], [[SetActorAngle]], [[Thing_Spawn]]*, [[Thing_Projectile]]*, and [[Thing_Move]] will now operate on the activator.&lt;br /&gt;
:*The fifth argument for [[Line_SetIdentification]] can be used to set the high byte of the line ID.&lt;br /&gt;
:*Added a {{Property|CameraHeight}} [[DECORATE]] property for actors.&lt;br /&gt;
:*Added special death states for [[projectile]]s hitting actors. If missiles hit a non-bleeding actor, they try the Crash state first. If that doesn&#039;t exist or the actor is bleeding, they try the XDeath state next. If they hit anything else or neither of the two states are defined, they use the normal death state.&lt;br /&gt;
:*Added a {{Flag|PIERCEARMOR}} [[DECORATE]] flag for projectiles.&lt;br /&gt;
:*The {{CCMD|D|morphme}} [[console command]] can be given an optional argument to specify which class to morph into.&lt;br /&gt;
:*Miscellaneous bugfixes.&lt;br /&gt;
&lt;br /&gt;
==2007==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
==2008==&lt;br /&gt;
;{{LE|2.2.0}}{{rev|748}} (February 15): {{forum|t=16272|Release thread}} | {{versionlinks|2|2|0}}&lt;br /&gt;
:*This is the final version of ZDoom to fully support Windows 95 since later versions switched to [[FMOD Ex]].&lt;br /&gt;
:*Added [[custom damage types]], with monsters being able to have different custom pain chances, custom damage factors, and custom death sequence for each damage type. Also, damage-specific player pain and death sounds.&lt;br /&gt;
:*Custom damage color for [[palette flash]]es per [[player class]].&lt;br /&gt;
:*Custom state labels. New states can be defined in [[DECORATE]].&lt;br /&gt;
:*The [[SBARINFO]] lump for creating status bar and other [[HUD]]s.&lt;br /&gt;
:*[[Skill definition]] in [[MAPINFO]], with many properties.&lt;br /&gt;
:*Most thing functions treat a [[TID]] of 0 as the activator now.&lt;br /&gt;
:*Support for [[ENDOOM]] screens and the graphical or semi-graphical [[startup lumps|screens]] from &#039;&#039;[[Heretic]]&#039;&#039;, &#039;&#039;[[Hexen]]&#039;&#039; and &#039;&#039;[[Strife]]&#039;&#039;.&lt;br /&gt;
:*Several things backported from [[Skulltag]], including powerups and flags for increased port compatibility:&lt;br /&gt;
::*{{Class|PowerDrain|Drain}}, {{Class|PowerHighJump|HighJump}} and {{Class|PowerRegeneration|Regeneration}} runes as powerups and used specific player sounds for their sound effects.&lt;br /&gt;
::*PowerQuadDamage and PowerQuarterDamage as more customizable {{Class|PowerDamage}} and {{Class|PowerProtection}}. These new powerups allow free customization of the damage modification per damage type by inheriting from these classes and setting specific values. Such derived damage/protection powerups will be considered as separate powers so that for example a QuadDamage and a DoubleDamage item can be stacked which would result in 8x damage.&lt;br /&gt;
::*{{Property|Armor.MaxBonus}} and {{Property|Armor.MaxBonusMax}} properties to create armor bonuses that increases the max amount that can be given by other armor items.&lt;br /&gt;
::*Custom F1 help screen [[MAPINFO]] option&lt;br /&gt;
::*Added REDMAP and GREENMAP [[palette blend]]s.&lt;br /&gt;
::*Imported SAME_SPAWN_SPOT [[DM flag]]&lt;br /&gt;
::*Pickup sprite for the {{Class|pistol}}.&lt;br /&gt;
::*Imported {{CVAR|R|r_maxparticles}} CVAR.&lt;br /&gt;
:*New [[Direct3D]] code for better Vista support.&lt;br /&gt;
:*Autoload sections in [[the ini]].&lt;br /&gt;
:*[[GZDoom]]&#039;s [[alternate HUD]].&lt;br /&gt;
:*Custom blood on an actor-by-actor basis into [[DECORATE]].&lt;br /&gt;
:*Smart [[autoaim]] code to prevent the targeting of friendly monsters.&lt;br /&gt;
:*New {{Flag|NOBLOODDECALS}} flag that prevents bleeding actors from spawning blood [[decal]]s.&lt;br /&gt;
:*Customizable border textures. They are defined with the [[MAPINFO]] keyword &#039;bordertexture&#039; and are settable per map.&lt;br /&gt;
:*Custom label support for [[A_Chase]] and [[A_VileChase]]&lt;br /&gt;
:*{{Property|Player.RunHealth}} property to expose the {{Class|StrifePlayer}}&#039;s behavior of not being able to run when its [[health]] is below 10.&lt;br /&gt;
:*Customizable gravity per actor&lt;br /&gt;
:*New {{CCMD|D|summonfoe}} console command, which is analogous to {{CCMD|D|summonfriend}} but forces the summoned creature to be hostile instead.&lt;br /&gt;
:*Added two new [[MAPINFO]] flags to control what actor activates impact lines: {{c|MissileShootersActivateImpactLines}} (the current behavior) and {{c|MissilesActivateImpactLines}} (the original &#039;&#039;[[Hexen]]&#039;&#039; behavior).&lt;br /&gt;
:*More player water sounds: {{c|*dive}} (head goes below water), {{c|*surface}} (your head goes back above water), {{c|*gasp}} (getting air back after starting to drown)&lt;br /&gt;
:*Using &amp;quot;*&amp;quot; with [[ACS]]&#039;s music commands will play the level&#039;s default music set in [[MAPINFO]]&lt;br /&gt;
:*Two new CVARs ({{CVAR|C|win_x}} and {{CVAR|C|win_y}}) that keep track of the window position when not playing in fullscreen mode&lt;br /&gt;
:*Key bindings can now be [[print]]ed with [[ACS]]&lt;br /&gt;
:*{{Flag|INVENTORY.KEEPDEPLETED}} flag for inventory items to keep them in the player&#039;s inventory even when they have been used up. If the item also has an inventory bar icon, it will be drawn darkened while it is depleted.&lt;br /&gt;
:*{{Flag|INVENTORY.IGNORESKILL}} flag for ammo that prevents the given quantity from being modified by the skill level&lt;br /&gt;
:*{{Property|Player.AttackZOffset}} for {{Class|PlayerPawn}}. This is the offset from the center of the player at which their attacks are fired and scales according to their crouched height.&lt;br /&gt;
:*Added a new [[SetActorState]] [[ACS]] function.&lt;br /&gt;
:*{{Flag|CANUSEWALLS}} flag which allows a [[monster]] to activate &#039;use&#039; specials like doors. This flag is on by default for any monster, which was the previous behavior.&lt;br /&gt;
:*[[Thing_Stop]] action special.&lt;br /&gt;
:*New {{Flag|FORCERADIUSDMG}} flag that allows exploding items to hurt boss monsters.&lt;br /&gt;
:*New {{Flag|USESPECIAL}} flag that allows using things to execute their [[special]]s.&lt;br /&gt;
:*[[Compatibility option]] to restore the original behavior of the {{Class|PowerInvisibility|Invisibility}} powerup&lt;br /&gt;
:*Telefrag option added to [[A_SpawnItemEx]].&lt;br /&gt;
:*Added option to [[A_Chase]] that prevents the monster from moving.&lt;br /&gt;
:*New {{c|allowrespawn}} MAPINFO option.&lt;br /&gt;
:*New [[scoreboard]]s.&lt;br /&gt;
:*New [[A_LookEx]] function.&lt;br /&gt;
:*Customizable [[team]]s through the [[TEAMINFO]] lump.&lt;br /&gt;
:*New {{CCMD|D|take}} console command to do the opposite of {{CCMD|D|give}}.&lt;br /&gt;
:*[[UseInventory]]/[[UseActorInventory]] [[ACS]] functions.&lt;br /&gt;
:*New [[A_CustomBulletAttack]] &#039;&#039;aimfacing&#039;&#039; parameter&lt;br /&gt;
:*New [[A_PlaySoundEx]] attenuation parameter.&lt;br /&gt;
:*[[Automap]] markers are stored in [[savegame]]s now.&lt;br /&gt;
:*&#039;No respawn&#039; [[DM flag]] which prevents a [[player]] from respawning after they have died.&lt;br /&gt;
:*&#039;Keep frags gained&#039; [[DM flag]] which allows you to choose whether you want to reset the [[frag]]s of each player next level or not.&lt;br /&gt;
:*Sector_Outside [[sector type]] which forces outside [[fog]] regardless of ceiling texture.&lt;br /&gt;
:*User-defined [[crosshair]]s in the [[Display options]] menu. See xhairs.txt in zdoom.pk3.&lt;br /&gt;
:*Generic log display that can show &#039;&#039;[[Strife]]&#039;&#039;&#039;s log messages in all games regardless of the current game, active [[status bar]] and [[HUD]] mode.&lt;br /&gt;
:*Support for stenciling actors with {{Property|RenderStyle}} property.&lt;br /&gt;
:*.TXT files can now be loaded by simply dragging-and-dropping them on top of zdoom.exe.&lt;br /&gt;
:*&#039;Ice&#039; [[translation]] is accessible from [[DECORATE]].&lt;br /&gt;
:*[[Teamplay]] MAPINFO option.&lt;br /&gt;
:*[[ACS]] script type [[RETURN]]. These are executed by players who return to a map they&#039;ve previously been to.&lt;br /&gt;
&lt;br /&gt;
==2009==&lt;br /&gt;
;{{LE|2.3.0}}{{rev|1455}} (March 1): {{Forum|t=21116|Release thread}} | {{versionlinks|2|3|0}}&lt;br /&gt;
:*[[Universal Doom Map Format]] (UDMF) support.&lt;br /&gt;
:*New garbage collector to improve performances on resource-intensive maps.&lt;br /&gt;
:*Sound uses [[FMOD Ex]] instead of FMOD. Among the benefits, [[REVERBS|reverbs]] can now work on any sound card, not just those that support EAX.&lt;br /&gt;
:*SPC is now a first-class [[music format]] that no longer requires an external DLL to play.&lt;br /&gt;
:*Support for [[Vavoom]]&#039;s [[slope|vertex height things]] and [[Eternity Engine]]&#039;s [[3D middle texture]]s.&lt;br /&gt;
:*[[Linked sectors]], to ensure that multiple [[sector]]s can move consistently in sync.&lt;br /&gt;
:*[[TEXTURES]] lump for text-based texture definitions.&lt;br /&gt;
:*[[Automatic compatibility|MD5-based recognition of maps]] that require certain [[compatibility options]] to work (e.g., {{dw|Strain}} map 7 which relied on the {{dw|Spechits overflow}} bug) to apply these settings transparently.&lt;br /&gt;
:*[[Freedoom]], [[Chex Quest]], and [[Chex Quest 3]] are recognized as [[IWAD]]s and can be selected in the [[IWAD selection box]]. New aliases are available for IWADs, too.&lt;br /&gt;
:*New [[MAPINFO]] format (the old is still supported of course) with a more robust syntax.&lt;br /&gt;
:*Custom [[map translator]]s for Doom-format maps, which can be specified in MAPINFO.&lt;br /&gt;
:*[[Strife]] dialogues now work in multiplayer.&lt;br /&gt;
:*Setting up slots for custom weapons no longer requires a [[KEYCONF]] lump, the limit of 8 weapons per slot is removed.&lt;br /&gt;
:*Added the &amp;quot;{{Class|RandomSpawner|random spawner}}&amp;quot; actor, customizable {{Class|BossEye}}s, {{Class|CustomBridge}}, {{Class|FastProjectile}}.&lt;br /&gt;
:*Many new [[compatibility options]], including one to have [[projectile]]s pass through solid decorations.&lt;br /&gt;
:*More flexible use of [[lightning]] in a map.&lt;br /&gt;
:*The two different [[crushing mode]]s (Doom and Hexen) are now selectable per action.&lt;br /&gt;
:*Customizable pickup flash with {{Property|Inventory.PickupFlash}} property.&lt;br /&gt;
:*[[DeHackEd]] music name replacement has been restored.&lt;br /&gt;
:*Rewritten DECORATE parser, more robust and featuring better error reporting. All actors are defined in DECORATE now.&lt;br /&gt;
:*Functions to handle [[weapon]] reloading through DECORATE.&lt;br /&gt;
:*New [[ACS]] functions: [[GetPlayerInput]], [[GetActorProperty|Get]]/[[SetActorProperty]].&lt;br /&gt;
:*Many actions are now more flexible through optional parameters, for example [[A_Die]] can specify damage type to send to a custom Death state, [[A_KeenDie]] can affect tags other than 666, [[A_Fire]] can specify a vertical offset, and so on.&lt;br /&gt;
:*Many, many new [[DMFlags]] for [[cooperative]] plays, such as having to kill all [[monster]]s before leaving the map or seeing the other [[player]]s on the [[automap]].&lt;br /&gt;
:*Enhanced &#039;&#039;[[Strife]]&#039;&#039; support.&lt;br /&gt;
:*Various and sundry bug fixes.&lt;br /&gt;
;{{LE|2.3.1}}{{rev|1480}} (March 15): {{Forum|t=21296|Release thread}} | {{versionlinks|2|3|1}}&lt;br /&gt;
:Mostly a bugfix release.&lt;br /&gt;
:*Fixes the bug that prevented you from switching weapons after respawning in multiplayer.&lt;br /&gt;
:*Fixes a performance regression introduced in 2.3.0.&lt;br /&gt;
:*Adds support for zip/pk3 files with LZMA and BZip2 compression. (7-Zip is one program that can create such files.)&lt;br /&gt;
:*Addresses a few other niggles.&lt;br /&gt;
&lt;br /&gt;
==2010==&lt;br /&gt;
;{{LE|2.4.0}}{{rev|2075}} (January 1): {{Forum|t=24602|Release thread}} | {{versionlinks|2|4|0}}&lt;br /&gt;
:*Rewritten [[archive format|archive]] management code.&lt;br /&gt;
::*Added support for new [[archive format]]s: 7z, &#039;&#039;Quake&#039;&#039; PAK, &amp;quot;Shrink&amp;quot; and &amp;quot;Implode&amp;quot;.&lt;br /&gt;
::*Removed loading limit of 65 535 lumps. The archive manager can now handle up to 4 294 967 295 lumps.&lt;br /&gt;
:*Rewritten mouse and keyboard handling input under Windows.&lt;br /&gt;
:*Reimplemented and improved support for gamepads and joysticks.&lt;br /&gt;
:*Added truecolor display of the [[HUD]], [[menu]]s and other 2D elements outside the game world when using [[Direct3D]] on Windows.&lt;br /&gt;
:*Replaced SNES_SPC with Game Music Emu, greatly increasing the number of supported emulated [[music format]]s.&lt;br /&gt;
:*Added compiling support for {{wp|Macintosh}} systems.&lt;br /&gt;
:*Added [[IWAD]] recognition for Ultimate [[Freedoom]], [[Action Doom 2: Urban Brawl|Action Doom 2]], [[Blasphemer]] and [[Harmony]].&lt;br /&gt;
:*Added {{param|-noautoload}}, {{param|-norun}}, {{param|-stdout}}, and {{param|-warpwipe}} command line parameters.&lt;br /&gt;
:*Added {{CVAR|C|save_dir}} and {{CVAR|R|d3d_antilag}} console variables.&lt;br /&gt;
:*Added optional parameters to {{CCMD|D|summon}} commands, added {{CCMD|D|summonmbf}} command.&lt;br /&gt;
:*Added {{CCMD|D|info}} command to obtain very verbose debugging information on actors.&lt;br /&gt;
:*Buddha mode&lt;br /&gt;
:*Added [[score]] and {{Class|ScoreItem}}s.&lt;br /&gt;
:*Added [[GameInfo definition]]s to [[MAPINFO]].&lt;br /&gt;
:*Changed random seed initialization so that it uses the system&#039;s cryptographically secure random number generator, if available, instead of the current time. Also changed the random number generator from Lee Killough&#039;s algorithm to the SFMT607 variant of the {{wp|Mersenne twister}}.&lt;br /&gt;
:*Disabled custom [[DEHSUPP]] lumps.&lt;br /&gt;
:*Added &#039;damage&#039; to the actor variables exported to [[DECORATE expressions|DECORATE&#039;s expression evaluator]].&lt;br /&gt;
:*Added &#039;frandom&#039; DECORATE function to the expression evaluator, which is like &#039;random&#039; but for floating point values instead of integers.&lt;br /&gt;
:*Added Raven color set and dagger-like vector sprite to the [[automap]].&lt;br /&gt;
:*Added desatured [[translation]]s.&lt;br /&gt;
:*[[SBARINFO]]: Added the ability to center things with fullscreenoffsets enabled, added [[underwater]] stats.&lt;br /&gt;
:*[[MAPINFO]]: Added [no_]grinding_polyobj, resetinventory properties, added EndTitle option for {{c|nextmap}}.&lt;br /&gt;
:*Added actor replacement to [[skill definition]]s.&lt;br /&gt;
:*Exported many hardcoded values to [[GameInfo definition]]s.&lt;br /&gt;
:*Added [[Line_SetBlocking]] and [[Sector_SetPortal]] specials.&lt;br /&gt;
:*Added {{c|defaultterrain}} section to [[TERRAIN]].&lt;br /&gt;
:*Added new [[earthquake]] functions.&lt;br /&gt;
:*Added [[user variable]]s.&lt;br /&gt;
:*[[DECORATE]]: Added {{Property|Species}}, {{Property|Activation}}, {{Property|PainThreshold}}, {{Property|PushFactor}}, {{Property|WeaveIndexXY}}, {{Property|WeaveIndexZ}}, {{Property|Powerup.Strength}}, {{Property|Player.MugShotMaxHealth}}, {{Property|Inventory.InterHubAmount}} properties.&lt;br /&gt;
:*Turned old bounce flags into {{Property|BounceType}} property.&lt;br /&gt;
:*Added {{Property|DamageFactor}} handling to Armors.&lt;br /&gt;
:*Added &amp;quot;BLUEMAP&amp;quot; [[palette blend]] for {{Property|Powerup.Color}}, and added {{Property|Powerup.Colormap}} for custom colormaps.&lt;br /&gt;
:*Added {{Flag|MOVEWITHSECTOR}}, {{Flag|NOBOSSRIP}}, {{Flag|THRUACTORS}}, {{Flag|THRUSPECIES}}, {{Flag|DONTSEEKINVISIBLE}}, {{Flag|FORCEPAIN}}, {{Flag|NOFEAR}}, {{Flag|BUMPSPECIAL}}, {{Flag|STEPMISSILE}}, {{Flag|NOTELEPORT}}, {{Flag|NOTRIGGER}},  {{Flag|AVOIDMELEE}}, {{Flag|JUMPDOWN}}, {{Flag|SCREENSEEKER}}, {{Flag|INVENTORY.PERSISTENTPOWER}}, {{Flag|WEAPON.AMMO_CHECKBOTH}}, {{Flag|WEAPON.NOAUTOAIM}} flags.&lt;br /&gt;
:*Added [[A_CheckCeiling]], [[A_MonsterRefire]], [[A_Weave]], [[A_JumpIfTargetInSight]], [[A_ZoomFactor]], [[A_SetAngle]], [[A_SetPitch]], [[A_ScaleVelocity]], [[A_ChangeVelocity]], [[A_SetCrosshair]], [[A_RemoveSiblings]], [[A_RaiseMaster]]/[[A_RaiseChildren|Children]]/[[A_RaiseSiblings|Siblings]], [[A_Log]], [[A_PrintBold]], [[A_SetArg]], [[A_SetSpecial]], [[A_Blast]] codepointers.&lt;br /&gt;
:*Added parameters to [[A_PodPain]], [[A_MakePod]], [[A_MLightningAttack]], [[A_M_Saw]], [[A_FireCustomMissile]], [[A_FadeOut]], [[A_Explode]], [[A_WeaponReady]], [[A_VileAttack]], [[A_Mushroom]], [[A_SeekerMissile]], [[A_KillChildren]]/[[A_KillMaster|Master]]/[[A_KillSiblings|Siblings]], [[A_CustomRailgun]] and [[A_RailAttack]], added SXF_TRANSFERPOINTERS flag to [[A_SpawnItemEx]] and several flags to [[A_Respawn]].&lt;br /&gt;
:*Imported {{Class|PowerDoubleFiringSpeed}} from [[Skulltag]], added {{Class|PowerInfiniteAmmo}}.&lt;br /&gt;
:*{{Class|PowerProtection}} and {{Class|PowerInvisibility}} can now be used to give certain flags to the player. Other enhancements to PowerInvisibility, such as changing the player&#039;s {{Property|RenderStyle}}.&lt;br /&gt;
:*Customizable mage lightning, sapphire wand, and {{Class|SpawnShot}} spawn lists.&lt;br /&gt;
:*[[ACS]]: compatibility fix for vanilla Hexen map where script execution order is critical.&lt;br /&gt;
:*Added [[GetActorVelX]]/[[GetActorVelY|Y]]/[[GetActorVelZ|Z]], [[SetActorVelocity]], [[GetActorViewHeight]], [[SetActivator]], [[SetActivatorToTarget]], [[GetChar]], [[SetSkyScrollSpeed]], [[GetAirSupply|Get]]/[[SetAirSupply]], [[GetArmorType]], [[CheckActorProperty]], [[CheckActorClass]], [[SoundSequenceOnActor]]/[[SoundSequenceOnSector|Sector]]/[[SoundSequenceOnPolyobj|Polyobj]], [[SpawnSpotForced]] and [[SpawnSpotFacingForced]].&lt;br /&gt;
:*Added ML_BLOCKUSE line flag, accessible through [[UDMF]] and [[Line_SetBlocking]].&lt;br /&gt;
:*Improved [[automatic compatibility]] with {{dw|Hacx}}, {{dw|Suspended in Dusk}}, {{dw|Community Chest}}, {{dw|Doomsday of UAC}}, {{dw|Strain}}, and the {{dw|Astrostein}} series.&lt;br /&gt;
:*[[Compatibility options]]: added Minotaur footclipped floor fire setting, sprite sorting order, [[MBF]]-style [[A_Mushroom]], monster movements affected by terrain, and friendly monsters able to cross blocking lines.&lt;br /&gt;
:*Added arch-vile &amp;quot;ghost&amp;quot; bug emulation for selected maps only.&lt;br /&gt;
:*Added several other MBF features, including {{Class|BetaSkull}}, [[A_FireOldBFG]], and [[DeHackEd]] support of MBF codepointers and actors.&lt;br /&gt;
:*Repaired accuracy of player behavior in &#039;&#039;[[Hexen]]&#039;&#039; with regards to [[jumping]] and pushing enemies away with attacks.&lt;br /&gt;
:*Fixed compatibility issues arising with [[Action Doom]].&lt;br /&gt;
:*Puffs now set their angle to face the originator of the attack.&lt;br /&gt;
:*Added SoulPriestess&#039; patch to force aspect ratio with {{CVAR|R|vid_aspect}}.&lt;br /&gt;
:*Added Spleen&#039;s patch to customize [[railgun]] performances with {{CVAR|R|r_rail_smartspiral}}, {{CVAR|R|r_rail_spiralsparsity}}, and {{CVAR|R|r_rail_trailsparsity}}.&lt;br /&gt;
:*[[UDMF]]: Added per-tier texture scaling with new [[sidedef]] properties and sidedef versions of [[linedef]] flags {{c|wrapmidtex}} and {{c|clipmidtex}}.&lt;br /&gt;
:*Improved [[sky]] projection and [[sky stretching]].&lt;br /&gt;
:*Updated Italian [[LANGUAGE|language]] file.&lt;br /&gt;
:*A whole lot more.&lt;br /&gt;
;{{LE|2.4.1}}{{rev|2126}} (January 24): {{Forum|t=24895|Release thread}} | {{versionlinks|2|4|1}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:*[[Floor_Waggle]] effects are smoother now.&lt;br /&gt;
:*Negative numbers in the [[alternate HUD]] have their minus sign at the right place now.&lt;br /&gt;
:*Menu option scales better in widescreen resolution.&lt;br /&gt;
:*[[Player setup]] menu looks better in non-Doom games.&lt;br /&gt;
:*Moving [[camera]]s work correctly again.&lt;br /&gt;
:*[[Polyobject]]s glitch a bit less now.&lt;br /&gt;
:*The internal nodebuilder works correctly now with certain troublesome maps.&lt;br /&gt;
:*&#039;&#039;[[Strife]]&#039;&#039; conversations fixed and improved.&lt;br /&gt;
:*Many nitpicky fixes in &#039;&#039;Strife&#039;&#039; (switch sounds, messages, etc.).&lt;br /&gt;
:*&#039;&#039;[[Action Doom 2]]&#039;&#039; and &#039;&#039;[[Harmony]]&#039;&#039; can now use idclev, and they have their Autoload section in [[the ini]].&lt;br /&gt;
:*[[MAPINFO]] {{c|ResetInventory}} keyword now works as expected.&lt;br /&gt;
:*The {{CVAR|C|norawinput}} console variable can be set to true to fix input problems while playing a Windows build through {{wp|Wine_(software)|Wine}}.&lt;br /&gt;
:*A [[character input grid]] is available to play ZDoom with a controller without having to use the keyboard.&lt;br /&gt;
:*Added [[GAMEINFO]] lump so that a mod can specify which [[IWAD]] and external resource files it uses.&lt;br /&gt;
;{{LE|2.5.0}}{{rev|2508}} (August 11): {{Forum|t=26755|Release thread}} | {{versionlinks|2|5|0}}&lt;br /&gt;
:*Enhanced [[polyobject]] system, allowing them to move anywhere in the map (like [[Eternity Engine|Eternity]]&#039;s &amp;quot;dynasegs&amp;quot;) and to give them any arbitrary shape. This is accompanied by new [[ACS]] polyobject movement functions.&lt;br /&gt;
:*Support for [[node|uncompressed extended nodes]], also supported by [[Eternity Engine]] and [[PrBoom+]], to create a new cross-port standard for node storage.&lt;br /&gt;
:*Support for using [[Byte Map Font]]s.&lt;br /&gt;
:*Ability to use metadata tags in audio formats to define custom loop points.&lt;br /&gt;
:*Added support for the [[MUSINFO]] lump (from [[Risen3D]] and [[PrBoom+]]).&lt;br /&gt;
:*Improved compatibility settings to allow optionally a greater faithfulness to the [[vanilla Doom]] and vanilla Heretic behaviors.&lt;br /&gt;
:*ZMAPINFO as an alias for [[MAPINFO]] to avoid compatibility problems with other ports parsing this lump.&lt;br /&gt;
:*Full rewrite of the [[SBARINFO]] system allowing many additional features and options.&lt;br /&gt;
:*Added support for multi-monitor display.&lt;br /&gt;
:*default reverbs environment setting in MAPINFO&lt;br /&gt;
:*Several generalized [[action functions|codepointers]] to emulate some very specific &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;[[Hexen]]&#039;&#039; action functions&lt;br /&gt;
:*New functions to refine actor behavior through&lt;br /&gt;
:*Enhanced [[poison]] damage system&lt;br /&gt;
:*Generalized [[railgun]] codepointers&lt;br /&gt;
:*New [[automap options]]&lt;br /&gt;
:*[[Hall of mirrors|HOM]] detection system&lt;br /&gt;
:*New [[console commands]]&lt;br /&gt;
:*The usual bug fixes and minor enhancements.&lt;br /&gt;
&lt;br /&gt;
==2011==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==2012==&lt;br /&gt;
;{{LE|2.6.0}}{{rev|3730}} (July 2): {{Forum|t=33295|Release thread}} | {{versionlinks|2|6|0}}&lt;br /&gt;
:*Added [[Hacx]] IWAD support.&lt;br /&gt;
:*Added text-format Strife conversation system with [[USDF]] and [[ZSDF]].&lt;br /&gt;
:*A textured [[automap]] is now available; automap graphics are now [[map arrow|externalized]].&lt;br /&gt;
:*Rewritten [[menu]] system, which can now be defined with the [[MENUDEF]] lump.&lt;br /&gt;
:*Externalized intermissions to [[MAPINFO]].&lt;br /&gt;
:*Externalized [[IWAD]] detection and gave each IWAD its own independent config section.&lt;br /&gt;
:*Added [[FluidSynth]] and [[GUS|GUS emulator]] softsynths; fixed issues with [[TiMidity++]].&lt;br /&gt;
:*Added [[VOC]] support and enhanced [[MIDI]] playback with support for alternative formats such as [[XMI]] and [[HMI]].&lt;br /&gt;
:*[[Action specials]]: Added [[Ceiling_LowerAndCrushDist]] and [[Thing_SetConversation]]. Added [[console command]] to execute specials.&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
::*Increased maximum script number from 999 to 32767.&lt;br /&gt;
::*[[Named script]]s allow to avoid script number conflicts.&lt;br /&gt;
::*Added [[StrCpy]], [[CheckSight]], [[SetActivator]], [[SetPointer]] functions.&lt;br /&gt;
::*Added [[ACS actor properties|APROP_ScaleX/Y]] and APROP_Mass actor properties.&lt;br /&gt;
::*Added temporary dynamic strings variables with [[StrParam]].&lt;br /&gt;
::*Scripts can now have up to four parameters.&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
::*Added [[A_CheckFlag]], [[A_FaceMaster]], [[A_FaceTracer]], [[A_RadiusGive]], [[A_SetMass]], [[A_SetScale]], [[A_Warp]] and [[A_WolfAttack]]...&lt;br /&gt;
::*Enhanced [[A_AlertMonsters]], [[A_BFGSpray]], [[A_Blast]], [[A_CustomBulletAttack]], [[A_FireBullets]], [[A_GunFlash]], [[A_PainAttack]], [[A_RadiusThrust]]...&lt;br /&gt;
::*Added an [[actor pointer]] manipulation system with several new codepointers...&lt;br /&gt;
::*Added {{Flag|DOHARMSPECIES}}, {{Flag|DONTCORPSE}}, {{Flag|SEEINVISIBLE}} and {{Flag|INVENTORY.UNTOSSABLE}}&lt;br /&gt;
::*Increased [[damage type]] flexibility in several ways with {{Property|DeathType}} and {{Property|PainType}}.&lt;br /&gt;
::*Added customizable {{Class|ArtiPoisonBag|fléchettes}}.&lt;br /&gt;
::*Made [[accuracy]] and [[stamina]] accessible through [[DECORATE expressions]].&lt;br /&gt;
::*Added {{Property|ProjectileKickback}}, {{Property|Inventory.RestrictedTo}} and {{Property|Inventory.ForbiddenTo}} class-based properties.&lt;br /&gt;
::*Backported {{Property|VisibleToTeam}}, {{Property|VisibleToPlayerClass}} and weapon {{Property|DropItem}} feature from [[Skulltag]], and enhanced them.&lt;br /&gt;
::*Added &amp;quot;Fast&amp;quot; keyword for states and deprecated the unreliable {{Flag|FASTER}} and {{Flag|FASTMELEE}} flags.&lt;br /&gt;
:*Added a [[SECRETS|secret hint system]].&lt;br /&gt;
:*[[3D floor]]s support.&lt;br /&gt;
:*[[FraggleScript]] support.&lt;br /&gt;
:*[[Voxel]] support.&lt;br /&gt;
:*[[SBARINFO]]: Ammo 1/2 capacities added to DrawNumber, support for color names in colored text.&lt;br /&gt;
:*[[SNDINFO]]: Added {{sndinfo|musicalias}} and {{sndinfo|attenuation}}.&lt;br /&gt;
:*Compatibility: fixed issues with {{dw|Eternal Doom}}, [[Happy Time Circus]], {{dw|Phobos_(WAD)|Phobos}}, vanilla compat, [[Boom]] compat, light levels higher than 255, [[Heretic]], [[Strife]], [[MUSINFO]], misnamed UDMF field.&lt;br /&gt;
:*Fixed loading of [[BMF]] palettes.&lt;br /&gt;
:*{{CCMD|O|restart}} console command.&lt;br /&gt;
:*Added [[PALVERS]] lump.&lt;br /&gt;
:*Custom [[IWAD]]s no longer need to include a [[COLORMAP]], as ZDoom will generate one automatically if it is missing.&lt;br /&gt;
:*Fixed vertical tiling of non-power-of-two textures.&lt;br /&gt;
:*Fixed blockmap overflows in huge maps with help from [[Mocha Doom|Maes]] and [[PrBoom+|Entryway]].&lt;br /&gt;
:*Joystick support for non-Windows platforms.&lt;br /&gt;
:*As always, a plethora of bug fixes and minor enhancements.&lt;br /&gt;
&lt;br /&gt;
;{{LE|2.6.1}}{{rev|3794}} (July 28): {{Forum|t=33547|Release thread}} | {{versionlinks|2|6|1}}&lt;br /&gt;
:*Added [[Hacx]] 2.0 IWAD support.&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
::*Added [[ACS_NamedExecuteWait]] and [[NamedScriptWait]].&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
::*Added {{Flag|INVENTORY.RESTRICTABSOLUTELY}} and {{Flag|PLAYERPAWN.CANSUPERMORPH}}.&lt;br /&gt;
:*[[MAPINFO]]:&lt;br /&gt;
::*Added RandomPlayerStarts and UsePlayerStartZ flags for [[map definition]]s.&lt;br /&gt;
:*Solved compatibility issue with [[Massmouth 2]].&lt;br /&gt;
:*[[Voxel]]s are now rotated by 90° to match their orientation in Slab6 and [[Build]] games.&lt;br /&gt;
&lt;br /&gt;
==2013==&lt;br /&gt;
;{{LE|2.7.0}}{{rev|4342}} (June 8): {{Forum|t=36456|Release thread}} | {{versionlinks|2|7|0}}&lt;br /&gt;
:*Added [[Floor_RaiseAndCrushDoom]].&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
::*Made dynamic strings persistent. ACS can now safely generate up to one million new strings.&lt;br /&gt;
::*Added [[CheckFont]], [[GetCVarString]], [[GetUserCVar]], [[GetUserCVarString]], [[IsTIDUsed]], [[LineAttack]], [[SetCVar]], [[SetCVarString]], [[SetUserCVar]], [[SetUserCVarString]], [[SpawnDecal]], and [[UniqueTID]].&lt;br /&gt;
::*Added HUD layers, visibility flags, additive blending, and alpha parameter to [[HudMessage]] and [[HudMessageBold]].&lt;br /&gt;
::*Also added HUD message wrapping and clipping with [[SetHudClipRect]] and [[SetHudWrapWidth]].&lt;br /&gt;
::*Added PLAYERINFO_FOV and _DESIREDFOV to [[GetPlayerInfo]].&lt;br /&gt;
::*Added support for desaturated [[translation]]s.&lt;br /&gt;
::*Added [[Sqrt]], [[FixedSqrt]], and [[VectorLength]] functions.&lt;br /&gt;
::*Support for advanced structures from non-ACC compilers.&lt;br /&gt;
::*Added the ability to retrieve the {{Property|ReactionTime}}, {{Property|Height}} and {{Property|Radius}} properties through [[GetActorProperty]].&lt;br /&gt;
::*Added CHANGELEVEL_PRERAISEWEAPON to [[ChangeLevel]].&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
::*{{Flag|FLOATBOB}} things are no longer moved physically when bobbing.&lt;br /&gt;
::*Added {{Property|Player.FallingScreamSpeed}}, {{Property|Player.GruntSpeed}}, {{Property|Weapon.MinSelectionAmmo1}}, and {{Property|Weapon.MinSelectionAmmo2}}.&lt;br /&gt;
::*Added random state duration and [[A_SetTics]].&lt;br /&gt;
::*[[A_Explode]]&#039;s &#039;&#039;affectsource&#039;&#039; parameter has been turned into a flag. Plus, added NOTMISSILE flag to A_Explode as well as to [[A_RadiusThrust]].&lt;br /&gt;
::*[[A_RadiusThrust]] can use negative &#039;&#039;force&#039;&#039; values.&lt;br /&gt;
::*Added [[A_JumpIfTargetInsideMeleeRange]], [[A_JumpIfTargetOutsideMeleeRange]], [[A_SetDamageType]], and [[A_CheckLOF]].&lt;br /&gt;
::*Added {{Flag|INVENTORY.NEVERRESPAWN}}, {{Flag|INVENTORY.NOSCREENFLASH}}, {{Flag|POWERSPEED.NOTRAIL}}, and {{Flag|PLAYERPAWN.CROUCHABLEMORPH}}.&lt;br /&gt;
::*Added JLOSF_NOAUTOAIM flag to [[A_JumpIfTargetInLOS]].&lt;br /&gt;
::*Added WRF_DISABLESWITCH to [[A_WeaponReady]].&lt;br /&gt;
::*[[A_Light]] can use negative values to darken the scene.&lt;br /&gt;
::*Added NORANDOMPUFFZ flag to [[A_CustomPunch]], [[A_FireBullets]], and [[A_CustomBulletAttack]].&lt;br /&gt;
::*Added SXF_USEBLOODCOLOR, SXF_CLEARCALLERTID, SXF_MULTIPLYSPEED, SXF_TRANSFERSCALE, SXF_TRANSFERSPECIAL, and SXF_CLEARCALLERSPECIAL flags to [[A_SpawnItemEx]].&lt;br /&gt;
::*Added the ability to adjust the vertical offset of a rail attack to [[A_RailAttack]] and [[A_CustomRailgun]].&lt;br /&gt;
::*Player-fired seeker [[Projectile|missiles]]&#039; range at which the missiles initially lock-on a [[Actor pointer|tracer]] can be set via {{Property|MaxTargetRange}} actor property.&lt;br /&gt;
::*{{Property|ReactionTime}} added to [[DECORATE expressions]].&lt;br /&gt;
::*Added [[Actor states#NoDelay|NoDelay]] state flag.&lt;br /&gt;
::*Added [[Actor_states#States|Bounce]] actor states.&lt;br /&gt;
::*Fixed few cases of DECORATE definitions inaccuracies for [[Doom]], [[Heretic]], [[Hexen]] and [[Strife]] actors.&lt;br /&gt;
:*[[FONTDEFS]]: Backported SPACEWIDTH from [[ECWolf]].&lt;br /&gt;
:*[[LANGUAGE]]: Brazilian Portuguese support.&lt;br /&gt;
:*[[MAPINFO]]: Added ForgetState, RememberState, and SpawnWithWeaponRaised flags for [[map definition]]s and NoRandomPlayerclass for [[GameInfo definition]]s.&lt;br /&gt;
:*[[MIDI]]: [[FluidSynth]] now recognize {{c|libfluidsynth.dll}} as a valid alias for {{c|fluidsynth.dll}}, various FluidSynth [http://forums.scummvm.org/viewtopic.php?p=72972#72972 tweaks] and fixes. The [[OPL emulator]] now can use either OPL2 or OPL3 emulation, supports full stereo panning and can use up to eight virtual chips.&lt;br /&gt;
:*Updated [[foo_DUMB]].&lt;br /&gt;
:*Implemented additive rendering for [[3D floor]]s.&lt;br /&gt;
:*Added &#039;&#039;{{wp|Quake (video game)|Quake}}&#039;&#039;-like no-clipping with {{CCMD|D|noclip2}}.&lt;br /&gt;
:*Exported the [[scoreboard]] text to [[LANGUAGE]].&lt;br /&gt;
:*The sound system should now precache nearly all sounds used by actor properties and [[ambient sound]]s, and the [[MAPINFO/Map definition|MAPINFO]] command &amp;quot;PrecacheSounds&amp;quot; can be used to precache other sounds.&lt;br /&gt;
:*Arbitrary FPS cap with {{CVAR|R|vid_maxfps}}.&lt;br /&gt;
:*Increased maximum resolution to 5760&amp;amp;times;3600.&lt;br /&gt;
:*Added {{c|lightfog}} property for [[sidedef]]s.&lt;br /&gt;
:*Added support for {{dw|Doom 3: BFG Edition}}&#039;s modified [[IWAD]]s, including {{dw|No Rest for the Living}}.&lt;br /&gt;
:*Improved [[WAD]] archive code with support for big-endian format and LZSS compression used in several console ports.&lt;br /&gt;
:*Added ability in [[UDMF]] to specify things to spawn by [[:Category:Thing specials|thing specials]] and [[Hexen breakable items]] by names with {{c|arg1str}}, as well as the ability to set initial values to a thing&#039;s [[user variable]].&lt;br /&gt;
:*Added new [[node]] format for complex UDMF maps which need fractional precision on node splitters.&lt;br /&gt;
:*The [[alternate HUD]] now features a {{Class|Berserk}} indicator and a customizable time display.&lt;br /&gt;
:*Tweaked {{Class|ScriptedMarine|scripted marines}}.&lt;br /&gt;
:*Added {{c|{{CCMD|D|acsprofile}}}} [[CCMDs|console command]].&lt;br /&gt;
:*[[Weapon slots]] can be configured from the [[Customize controls]] menu.&lt;br /&gt;
:*Solved compatibility issues with [[Daedalus: Alien Defense]], {{dw|Community Chest 3}}, Nuke Mine, Khorus, [[Void]], the {{dw|Master Levels}}, and {{dw|Claustrophobia 1024}}.&lt;br /&gt;
:*{{Class|RandomSpawner}}s now respect {{param|nomonsters}}.&lt;br /&gt;
:*Added the ability to define mod-specific [[CVARs|console variables]] through the addition of the [[CVARINFO]] lump.&lt;br /&gt;
:*Fixed miscellaneous bugs.&lt;br /&gt;
&lt;br /&gt;
;{{LE|2.7.1}}{{cs|21efe3b}} (July 3): {{Forum|t=36679|Release thread}} | {{versionlinks|2|7|1}}&lt;br /&gt;
&#039;&#039;Note: this is the first version based on the [[Git repository]]; 2.7.0 was the last version based on the SVN repository.&#039;&#039;&lt;br /&gt;
* Added new additive [[MAPINFO/GameInfo definition|GameInfo]] keywords: AddCreditPage, AddPlayerClasses, and AddInfoPage.&lt;br /&gt;
* Added a new {{Flag|DONTDRAIN}} flag to mark actors as ineligible for vampirism attacks.&lt;br /&gt;
* [[Automatic compatibility|Compatibility]] fixes for [[Ultimate Simplicity]] map07, [[Cheogsh]] map01, [[Super Sonic Doom]] map31&lt;br /&gt;
* [[Polyobject]] mirror numbers can no longer be changed with [[SetLineSpecial]]. This was never a supported feature and caused problems for legitimate uses of SetLineSpecial on polyobject lines.&lt;br /&gt;
* The powered-up {{Class|GoldWand|Gold Wand}} was not puffing on actors.&lt;br /&gt;
* Disabled [[Heretic]]&#039;s punishment [[cheat]]s when in {{CVAR|C|allcheats}} mode.&lt;br /&gt;
* Objects that explode on death no longer deal the damage they were dealt instead of their own.&lt;br /&gt;
* Vampirism attacks now respect damage reduction.&lt;br /&gt;
* [[Demo]] recording now writes correct user info to demos.&lt;br /&gt;
* ACS&#039;s [[PlaySound]] for looping sounds now works properly when using channel flags.&lt;br /&gt;
&lt;br /&gt;
==2014==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==2015==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==2016==&lt;br /&gt;
;{{LE|2.8.0}}{{cs|56359b6}} (February 3): {{Forum|t=50712|Release thread}} | {{versionlinks|2|8|0}}&lt;br /&gt;
:*Frontend&lt;br /&gt;
:**GoG-installed IWADs are now detected automatically.  Steam-installed IWADs are detected on OS X and Linux.&lt;br /&gt;
:**Improved netcode and added [[network options]] menu to configure new features.&lt;br /&gt;
:**Two new cheats, god2 and buddha2. The player cannot die from telefrag damage with these.&lt;br /&gt;
:**Added WAD compatibility fixes for over a dozen maps, including &#039;&#039;[[Cheogsh 2]]&#039;&#039;, &#039;&#039;XtheaterIII&#039;&#039;, and the infamous missing yellow keycard on TNT MAP31.&lt;br /&gt;
:**+warp now works from the command line.&lt;br /&gt;
:**Added support for standard file paths on Windows.&lt;br /&gt;
:**Added a user-settable factor for [[earthquake]] intensity.&lt;br /&gt;
:*Automap&lt;br /&gt;
:**Non-countable monster actors can have their own separate automap color.&lt;br /&gt;
:**Extended {{c|{{CVAR|A|am_cheat}}}} with three modes to prevent lines flagged as &#039;&#039;hidden&#039;&#039; from being shown on the automap.&lt;br /&gt;
:**Added separate colors for the various types of 2-sided walls for the overlay automap, as well as colors missing from that mode.&lt;br /&gt;
:**Actors sprites can be shown on the automap instead of simple triangles when the second, third, fifth or sixth modes of {{c|am_cheat}} console variable are enabled.&lt;br /&gt;
:*Console&lt;br /&gt;
:**Added a {{c|{{CCMD|O|closemenu}}}} [[CCMDs|console command]], so that menu options that close the [[menu]] can be added.&lt;br /&gt;
:**The behavior of auto-loading external [[DEHACKED]] lumps can be controlled by setting the {{c|dehload}} [[CVARs|console variable]].&lt;br /&gt;
:**Results for console tab-completion are now color-coded; console commands appear blue, console variables green, and aliases red.&lt;br /&gt;
:**Fixed: the {{c|{{CVAR|R|wi_noautostartmap}}}} console variable was not sync-safe.&lt;br /&gt;
:**Added {{c|{{CVAR|C|sv_freelook}}}}, {{c|{{CVAR|C|sv_allowfreelook}}}} and {{c|{{CVAR|C|sv_nofreelook}}}}.&lt;br /&gt;
:*Building&lt;br /&gt;
:**Native Cocoa back end for OS X resulting in significant increases in performance over SDL in addition to better overall user experience.&lt;br /&gt;
:**Added optional support for the OpenAL sound library, allowing for compiling without FMOD.&lt;br /&gt;
:**Added a new [[software synthesizer]], [[WildMIDI]], and a new [[OPL]] core.&lt;br /&gt;
:**Added support for building with clang.&lt;br /&gt;
:**Nearly-complete support for ARM devices such as the Raspberry Pi.  (Some known bugs remain — in particular, you must set vid_forcesurface to true in zdoom.ini, or ZDoom will instantly segfault.)&lt;br /&gt;
:*Modding&lt;br /&gt;
:**Added [[Ceiling_CrushAndRaiseSilentDist]].&lt;br /&gt;
:**New type of [[earthquake]], can only be accessed with [[A_QuakeEx]] or its [[QuakeEx|ACS equivalent]], which can replicate the shaking effect seen in many recent games instead of random camera offsets using the QF_WAVE flag. Quakes can now be scaled in, out, or mixed up. Both wave and regular quakes work together.&lt;br /&gt;
:**Menu&#039;s back button and the pause sign can be animated.&lt;br /&gt;
:**The particle engine is now exposed to modders via the [[A_SpawnParticle]] action function and [[SpawnParticle]] ACS function.&lt;br /&gt;
:**Directory-structured archives now support [[lump filtering]], which loads different resources depending on the base game.&lt;br /&gt;
:**Friction and [[TERRAIN]]-based sector damage are now transferred to [[Sector_Set3dFloor|3D floors]].&lt;br /&gt;
:**Fixed scaling of textures on [[Sector_Set3dFloor|3D floors]].&lt;br /&gt;
:**Overhauled [[sector type]]s and properties. Sectors have several new UDMF properties.&lt;br /&gt;
:**Lines and sectors may now have multiple ids/tags via the moreids UDMF property.&lt;br /&gt;
:**&amp;lt;code&amp;gt;checkswitchrange&amp;lt;/code&amp;gt; now correctly prevents players from pressing switches embedded in the floor or ceiling, and works correctly with switches that are part of 3D floors.&lt;br /&gt;
:**Added {{c|blockhitscan}} and {{c|transparent}} [[linedef|line]] properties, {{c|waterzone}} [[sector]] property, and {{c|alpha}}, {{c|fillcolor}}, {{c|gravity}}, {{c|health}}, {{c|pitch}}, {{c|renderstyle}}, {{c|roll}}, {{c|scale}}, {{c|scalex}}, {{c|scaley}} and {{c|score}} [[thing]] properties for [[Universal Doom Map Format|UDMF]].&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
:**Added {{c|[[DropItem]]}}, {{c|[[DropInventory]]}}, {{c|[[CheckFlag]]}}, {{c|[[GetLineActivation]]}}, {{c|[[GetMaxInventory]]}}, {{c|[[SetLineActivation]]}}, {{c|[[GetArmorInfo]]}}, {{c|[[GetActorPowerupTics]]}}, {{c|[[IsPointerEqual]]}}, {{c|[[ChangeActorAngle]]}}, {{c|[[ChangeActorPitch]]}}, {{c|[[PickActor]]}}, {{c|[[SetSectorDamage]]}}, {{c|[[QuakeEx]]}}, {{c|[[Warp]]}} and {{c|[[CanRaiseActor]]}}  functions.&lt;br /&gt;
:**Added FHF_NORANDOMPUFFZ flag for {{c|[[LineAttack]]}}.&lt;br /&gt;
:**Added BLOCKF_HITSCAN flag for {{c|[[Line_SetBlocking]]}}.&lt;br /&gt;
:**Added {{c|APROP_ViewHeight}}, {{c|APROP_AttackZOffset}} and {{c|APROP_StencilColor}} [[ACS actor properties]].&lt;br /&gt;
:**Fixed potential desync with {{c|[[CheckPlayerCamera]]}}.&lt;br /&gt;
:**Fixed: {{c|[[Thing_SetGoal]]}} could put an actor&#039;s target and goal out of sync.&lt;br /&gt;
:**{{c|[[GetSectorFloorZ]]}} and {{c|[[GetSectorCeilingZ]]}} now interpret 0-tag as &#039;any sector&#039; and return the z-height of whatever sector is at those coordinates.&lt;br /&gt;
:**[[Arrays]] are now supported at the script scope.&lt;br /&gt;
:*[[ANIMDEFS]]:&lt;br /&gt;
:**Added an optional {{c|worldpanning}} flag for camera textures definitions in order to make camera textures pan in world units instead of texture units.&lt;br /&gt;
:**Added {{c|allowdecals}} option to animated doors.&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
:**Four new keybinds for DECORATE use with weapons (see {{c|[[A_WeaponReady]]}}&#039;s User states.)&lt;br /&gt;
:**Sprites now support mirroring via negative scales.&lt;br /&gt;
:**Added {{c|{{Property|Player.UseRange}}}} and {{c|{{Property|Player.AirCapacity}}}} [[player properties]].&lt;br /&gt;
:**Actors can now have extreme death/crash states that are damage type specific.&lt;br /&gt;
:**New &amp;lt;code&amp;gt;randompick&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frandompick&amp;lt;/code&amp;gt; [[DECORATE expressions|non-action functions]].&lt;br /&gt;
:**[[A_Print]], [[A_PrintBold]], and [[A_Log]] can now use &amp;lt;code&amp;gt;$FOO&amp;lt;/code&amp;gt; [[LANGUAGE|translation strings]].&lt;br /&gt;
:**The following functions have been given additional functionalities: {{c|[[A_AlertMonsters]]}}, {{c|[[A_BFGSpray]]}}, {{c|[[A_ChangeVelocity|A_Change]]/[[A_ScaleVelocity|ScaleVelocity]]}}, {{c|[[A_CustomPunch]]}}, {{c|[[A_SetAngle]]}} and {{c|[[A_SetPitch]]}}, {{c|[[A_DamageMaster]]/[[A_DamageChildren|Children]]/[[A_DamageSiblings|Siblings]]}}, {{c|[[A_KillMaster]]/[[A_KillChildren|Children]]/[[A_KillSiblings|Siblings]]}}, {{c|[[A_Log]]}}, {{c|[[A_Print]]}}, {{c|[[A_PrintBold]]}}, {{c|[[A_RadiusGive]]}}, {{c|[[A_Saw]]}}, {{c|[[A_SetScale]]}}, {{c|[[A_SetTics]]}}, {{c|[[A_SpawnItemEx]]}}, {{c|[[A_Teleport]]}}, {{c|[[A_VileAttack]]}}, {{c|[[A_Warp]]}}, {{c|[[A_WeaponReady]]}}.&lt;br /&gt;
:**Added {{Flag|NOFORWARDFALL}}, {{Flag|NOTONAUTOMAP}}, {{Flag|RELATIVETOFLOOR}}, {{Flag|NEVERTARGET}}, {{Flag|NOTELESTOMP}}, {{Flag|ALWAYSTELEFRAG}}, {{Flag|ALLOWPAIN}}, {{Flag|CAUSEPAIN}}, {{Flag|DONTTHRUST}}, {{Flag|BUDDHA}}, {{Flag|FOILBUDDHA}}, {{Flag|MIRRORREFLECT}}, {{Flag|AIMREFLECT}}, {{Flag|THRUREFLECT}}, {{Flag|HARMFRIENDS}}, {{Flag|NOFORWARDFALL}}, {{Flag|HITTARGET}}, {{Flag|HITMASTER}}, {{Flag|HITTRACER}}, {{Flag|WEAPONSPAWN}}, {{Flag|INVENTORY.TOSSED}}, {{Flag|INVENTORY.ALWAYSRESPAWN}}, {{Flag|INVENTORY.TRANSFER}}, and {{Flag|INVENTORY.NOTELEPORTFREEZE}} [[actor flags]].&lt;br /&gt;
:**{{Flag|MTHRUSPECIES}} now works with [[A_BFGSpray]] and rail attacks.&lt;br /&gt;
:**Added {{c|[[A_DamageSelf]]/[[A_DamageTarget|Target]]/[[A_DamageTracer|Tracer]]}}, {{c|[[A_Remove]]/[[A_RemoveSiblings|Siblings]]/[[A_RemoveTarget|Target]]/[[A_RemoveTracer|Tracer]]}}, {{c|[[A_KillTarget]]/[[A_KillTracer|Tracer]]}}, {{c|[[A_DropItem]]}}, {{c|[[A_SetSpeed]]}}, {{c|[[A_SetHealth]]}}, {{c|[[A_ResetHealth]]}}, {{c|[[A_SetFloatBobPhase]]}}, {{c|[[A_SetRoll]]}}, {{c|[[A_SetTeleFog]]}}, {{c|[[A_GiveToChildren|A_GiveTo]]/[[A_TakeFromChildren|TakeFromChildren]]}}, {{c|[[A_GiveToSiblings|A_GiveTo]]/[[A_TakeFromSiblings|TakeFromSiblings]]}}, {{c|[[A_JumpIfHigherOrLower]]}},  {{c|[[A_SetFloatSpeed]]}}, {{c|[[A_SetSpecies]]}}, {{c|[[A_CheckBlock]]}}, {{c|[[A_CheckProximity]]}}, and {{c|[[A_QuakeEx]]}} [[action functions]].&lt;br /&gt;
:**Players with the NODAMAGE flag cannot be telefragged anymore, nor can they take any damage via voodoo dolls.&lt;br /&gt;
:**The amount of health regeneration gained from a {{c|{{Class|PowerRegeneration}}}} powerup can be controlled with the {{c|{{Property|Powerup.Strength}}}} property.&lt;br /&gt;
:**Improved the {{c|[[Actor states#NoDelay|NoDelay]]}} state flag reliability.&lt;br /&gt;
:**Added {{c|Subtract}} render style.&lt;br /&gt;
:**Different types of {{Class|HereticImp|gargoyles}} and {{Class|Mummy|golems}} could infight amongst themselves (original &#039;&#039;[[Heretic]]&#039;&#039; behavior).&lt;br /&gt;
:**Added {{c|[[Actor states#CanRaise|CanRaise]]}} and {{c|[[Actor states#Slow|Slow]]}} actor [[actor states#State keywords|state flags]].&lt;br /&gt;
:*[[LANGUAGE]]:&lt;br /&gt;
:**Externalized &amp;quot;New save game&amp;quot; line for save screen, and [[automap]] statistics display.&lt;br /&gt;
:*[[MAPINFO]]:&lt;br /&gt;
:**Custom colors for both modes of the automap can be set on per-mod basis.&lt;br /&gt;
:**Added {{c|SlowMonsters}}, {{c|HealthFactor}}, {{c|NoInfighting}} and {{c|TotalInfighting}} [[skill definition]]s property.&lt;br /&gt;
:*[[SBARINFO]]:&lt;br /&gt;
:**Extended {{c|[[DrawImage]]}} command.&lt;br /&gt;
:*[[SNDINFO]]:&lt;br /&gt;
:**Fixed incorrect {{Class|Minotaur|Maulotaur}} melee attack sound.&lt;br /&gt;
:*Internals&lt;br /&gt;
:**Removed [[Polymost]] code.&lt;br /&gt;
:**Vast improvements to movement interpolation.&lt;br /&gt;
:**Fixed a lot of leaks and garbage collection issues.&lt;br /&gt;
:**Fixed miscellaneous bugs.&lt;br /&gt;
&lt;br /&gt;
==Next version==&lt;br /&gt;
The following additions are available in [[Git]] builds, but not yet in an official version.&lt;br /&gt;
&lt;br /&gt;
:* The scripting branch has been merged, laying some groundwork for DoomScript™.  So far the only visible changes are:&lt;br /&gt;
:** [[DECORATE]] [[Actor_states|states]] can contain multiple action functions enclosed in braces, and can use &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; blocks.&lt;br /&gt;
:* Portals via [[Line_SetPortal]] (visual only so far; {{Forum|t=46916|original forum thread}})&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://sourceforge.net/projects/zdoom/files/ Sourceforge archive] Unofficial mirror for ZDoom versions&lt;br /&gt;
* [https://github.com/doomtech/zdoom-old GitHub archive] Unofficial repository of pre-SVN source code&lt;br /&gt;
[[Category:Nostalgia]][[Category:ZDoom]]&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=User:Eevee/Generic_Floor&amp;diff=40960</id>
		<title>User:Eevee/Generic Floor</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=User:Eevee/Generic_Floor&amp;diff=40960"/>
		<updated>2016-02-08T21:53:41Z</updated>

		<summary type="html">&lt;p&gt;Eevee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Generic_Floor}} __NOTOC__&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=4 style=&amp;quot;border: solid 1px #668; border-left-width: 6px; background-color: #F4F4FF; padding: 0.25em 0.5em; width: 100%; margin: 1em auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| This [[action special]] may be used on a line in a map, called like a function from a [[ACS|script]], or used as an actor&#039;s [[action function]] from [[DECORATE]].&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!-- {{Special|200|tag, speed, height, target, flags|General BOOM linetype|Floor|type2=Floor}} --&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 133%;&amp;quot;&amp;gt;200: &#039;&#039;&#039;Generic_Floor&#039;&#039;&#039;(&#039;&#039;tag, speed, height, target, flags)&amp;lt;/span&amp;gt;&lt;br /&gt;
* &#039;&#039;tag&#039;&#039; — Tag of affected sectors, or 0 to use the line&#039;s back sector.&lt;br /&gt;
* &#039;&#039;speed&#039;&#039; — Floor&#039;s [[Definitions#Sector_movement_speed|movement speed]].  Doom&#039;s standard floors move at 8, and fast floors move at 32.&lt;br /&gt;
* &#039;&#039;height&#039;&#039; — Distance to move (when &#039;&#039;target&#039;&#039; is 0).&lt;br /&gt;
* &#039;&#039;target&#039;&#039; — How to determine the floor&#039;s destination height.&lt;br /&gt;
* &#039;&#039;flags&#039;&#039; — Various flags; see below.&lt;br /&gt;
&lt;br /&gt;
This special encapsulates [[BOOM]]&#039;s {{Dw|Linedef_type#Generalized_floors_.288192_types.29|generalized floors}}.&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
&lt;br /&gt;
=== Target ===&lt;br /&gt;
&#039;&#039;target&#039;&#039; can be one of the following:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039; — Move by &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; units&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; — Move to highest neighboring floor&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; — Move to lowest neighboring floor&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; — Move to nearest neighboring floor&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039; — Move to lowest neighboring ceiling&lt;br /&gt;
* &#039;&#039;&#039;5&#039;&#039;&#039; — Move to the sector&#039;s own ceiling&lt;br /&gt;
* &#039;&#039;&#039;6&#039;&#039;&#039; — Move by the height of the shortest lower texture on the sector&lt;br /&gt;
&lt;br /&gt;
=== Flags ===&lt;br /&gt;
A moving floor may optionally copy its floor texture and [[Sector specials|special]] from a &amp;quot;model&amp;quot; sector.  There are two ways to choose a model sector.  The &#039;&#039;trigger model&#039;&#039; uses the sector on the front side of the line that caused the move.  The &#039;&#039;numeric model&#039;&#039; looks for neighboring sectors whose floors are at the destination height, and uses the one with the lowest-numbered shared linedef.  If no model sector can be found, nothing is copied.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;flags&#039;&#039; is composed of:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039; — Don&#039;t copy anything&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; — Copy floor texture, and remove special (Tx0)&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; — Copy floor texture only (Tx)&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; — Copy both floor texture and special (TxTy)&lt;br /&gt;
* &#039;&#039;&#039;+4&#039;&#039;&#039; — Use the numeric model (default is trigger model)&lt;br /&gt;
* &#039;&#039;&#039;+8&#039;&#039;&#039; — Raise floor (default is to lower)&lt;br /&gt;
* &#039;&#039;&#039;+16&#039;&#039;&#039; — Inflict crushing damage&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
Many other floor specials can be expressed in terms of Generic_Floor:&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! Special !! Equivalent Generic_Floor&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerByValue]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;, 0, 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerToLowest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 2, 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerToLowestTxTy]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 2, 3)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerToNearest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 3, 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseByTexture]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 6, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseByValue]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;, 0, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseByValueTxTy]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;, 0, 11)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseToHighest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 1, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseToLowestCeiling]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 4, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseToNearest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 3, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_TransferNumeric]](&#039;&#039;tag&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, 0, 0, 0, 7)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_TransferTrigger]](&#039;&#039;tag&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, 0, 0, 0, 3)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=User:Eevee/Generic_Floor&amp;diff=40959</id>
		<title>User:Eevee/Generic Floor</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=User:Eevee/Generic_Floor&amp;diff=40959"/>
		<updated>2016-02-08T21:53:25Z</updated>

		<summary type="html">&lt;p&gt;Eevee: nuke the toc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Generic_Floor}}&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=4 style=&amp;quot;border: solid 1px #668; border-left-width: 6px; background-color: #F4F4FF; padding: 0.25em 0.5em; width: 100%; margin: 1em auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| This [[action special]] may be used on a line in a map, called like a function from a [[ACS|script]], or used as an actor&#039;s [[action function]] from [[DECORATE]].&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!-- {{Special|200|tag, speed, height, target, flags|General BOOM linetype|Floor|type2=Floor}} --&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 133%;&amp;quot;&amp;gt;200: &#039;&#039;&#039;Generic_Floor&#039;&#039;&#039;(&#039;&#039;tag, speed, height, target, flags)&amp;lt;/span&amp;gt;&lt;br /&gt;
* &#039;&#039;tag&#039;&#039; — Tag of affected sectors, or 0 to use the line&#039;s back sector.&lt;br /&gt;
* &#039;&#039;speed&#039;&#039; — Floor&#039;s [[Definitions#Sector_movement_speed|movement speed]].  Doom&#039;s standard floors move at 8, and fast floors move at 32.&lt;br /&gt;
* &#039;&#039;height&#039;&#039; — Distance to move (when &#039;&#039;target&#039;&#039; is 0).&lt;br /&gt;
* &#039;&#039;target&#039;&#039; — How to determine the floor&#039;s destination height.&lt;br /&gt;
* &#039;&#039;flags&#039;&#039; — Various flags; see below.&lt;br /&gt;
&lt;br /&gt;
This special encapsulates [[BOOM]]&#039;s {{Dw|Linedef_type#Generalized_floors_.288192_types.29|generalized floors}}.&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
&lt;br /&gt;
=== Target ===&lt;br /&gt;
&#039;&#039;target&#039;&#039; can be one of the following:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039; — Move by &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; units&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; — Move to highest neighboring floor&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; — Move to lowest neighboring floor&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; — Move to nearest neighboring floor&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039; — Move to lowest neighboring ceiling&lt;br /&gt;
* &#039;&#039;&#039;5&#039;&#039;&#039; — Move to the sector&#039;s own ceiling&lt;br /&gt;
* &#039;&#039;&#039;6&#039;&#039;&#039; — Move by the height of the shortest lower texture on the sector&lt;br /&gt;
&lt;br /&gt;
=== Flags ===&lt;br /&gt;
A moving floor may optionally copy its floor texture and [[Sector specials|special]] from a &amp;quot;model&amp;quot; sector.  There are two ways to choose a model sector.  The &#039;&#039;trigger model&#039;&#039; uses the sector on the front side of the line that caused the move.  The &#039;&#039;numeric model&#039;&#039; looks for neighboring sectors whose floors are at the destination height, and uses the one with the lowest-numbered shared linedef.  If no model sector can be found, nothing is copied.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;flags&#039;&#039; is composed of:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039; — Don&#039;t copy anything&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; — Copy floor texture, and remove special (Tx0)&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; — Copy floor texture only (Tx)&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; — Copy both floor texture and special (TxTy)&lt;br /&gt;
* &#039;&#039;&#039;+4&#039;&#039;&#039; — Use the numeric model (default is trigger model)&lt;br /&gt;
* &#039;&#039;&#039;+8&#039;&#039;&#039; — Raise floor (default is to lower)&lt;br /&gt;
* &#039;&#039;&#039;+16&#039;&#039;&#039; — Inflict crushing damage&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
Many other floor specials can be expressed in terms of Generic_Floor:&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! Special !! Equivalent Generic_Floor&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerByValue]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;, 0, 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerToLowest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 2, 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerToLowestTxTy]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 2, 3)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerToNearest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 3, 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseByTexture]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 6, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseByValue]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;, 0, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseByValueTxTy]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;, 0, 11)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseToHighest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 1, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseToLowestCeiling]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 4, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseToNearest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 3, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_TransferNumeric]](&#039;&#039;tag&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, 0, 0, 0, 7)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_TransferTrigger]](&#039;&#039;tag&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, 0, 0, 0, 3)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=User:Eevee/Sqrt&amp;diff=40958</id>
		<title>User:Eevee/Sqrt</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=User:Eevee/Sqrt&amp;diff=40958"/>
		<updated>2016-02-08T21:28:48Z</updated>

		<summary type="html">&lt;p&gt;Eevee: i like em dashes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=0 cellpadding=4 cellspacing=4 style=&amp;quot;border: solid 1px #678; border-left-width: 6px; background-color: #F4F8FF; padding: 0.25em 0.5em; width: 100%; margin: 1em auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| This [[Built-in ACS functions|ACS function]] may be used in a [[ACS|script]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 133%;&amp;quot;&amp;gt;int &#039;&#039;&#039;Sqrt&#039;&#039;&#039;(int &#039;&#039;number&#039;&#039;)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 133%;&amp;quot;&amp;gt;fixed &#039;&#039;&#039;FixedSqrt&#039;&#039;&#039;(fixed &#039;&#039;number&#039;&#039;)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;number&#039;&#039; — Value to take the square root of.&lt;br /&gt;
&lt;br /&gt;
Returns the square root of an integer or fixed point number.  The integer version returns the floor of the square root, so &amp;lt;code&amp;gt;Sqrt(99)&amp;lt;/code&amp;gt; produces 9.&lt;br /&gt;
&lt;br /&gt;
== Manual calcuation ==&lt;br /&gt;
In older versions of ZDoom, this function is not built into ACS, so here are several manual equivalents.  Do note that for the distance between two objects, the [[distance]] function can be faster.  Also note that if you name a function &amp;lt;code&amp;gt;sqrt&amp;lt;/code&amp;gt;, your code will no longer compile with later versions of [[ACC]].&lt;br /&gt;
&lt;br /&gt;
This version uses Newton&#039;s method, where the solution converges quadratically from the initial guess. This function has been compared with the following two, and is at least 5 to 10 times faster in normal use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
function int sqrt(int number)&lt;br /&gt;
{&lt;br /&gt;
	if(number &amp;lt;= 3) { return number &amp;gt; 0; }&lt;br /&gt;
&lt;br /&gt;
 	int oldAns = number &amp;gt;&amp;gt; 1,                     // initial guess&lt;br /&gt;
	    newAns = (oldAns + number / oldAns) &amp;gt;&amp;gt; 1; // first iteration&lt;br /&gt;
&lt;br /&gt;
	// main iterative method&lt;br /&gt;
	while(newAns &amp;lt; oldAns)&lt;br /&gt;
	{&lt;br /&gt;
		oldAns = newAns;&lt;br /&gt;
		newAns = (oldAns + number / oldAns) &amp;gt;&amp;gt; 1;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return oldAns;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a simpler, but slower, version of a square root function. It rounds the root up or down.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
function int sqrt (int x)&lt;br /&gt;
{&lt;br /&gt;
	int r;&lt;br /&gt;
	x = x + 1 &amp;gt;&amp;gt; 1;&lt;br /&gt;
	while (x &amp;gt; r)&lt;br /&gt;
		x -= r++;&lt;br /&gt;
	return r;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need a function that rounds down, this one will work. Based off of [http://snippets.dzone.com/posts/show/2715 this algorithm].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
function int isqrt (int n)&lt;br /&gt;
{&lt;br /&gt;
	int a;&lt;br /&gt;
	for (a=0;n&amp;gt;=(2*a)+1;n-=(2*a++)+1);&lt;br /&gt;
	return a;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This sample-based formulae processes fixed values and returns a fixed result which accuracy is defined by the &#039;&#039;samples&#039;&#039; integer, and results zero if the input number is negative.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
function int sqrt(int number) &lt;br /&gt;
{ &lt;br /&gt;
    int samples=15; //Samples for accuracy&lt;br /&gt;
&lt;br /&gt;
    if (number == 1.0) return 1.0; &lt;br /&gt;
    if (number &amp;lt;= 0) return 0;&lt;br /&gt;
    int val = samples&amp;lt;&amp;lt;17 + samples&amp;lt;&amp;lt;19; //x*10 = x&amp;lt;&amp;lt;1 + x&amp;lt;&amp;lt;3&lt;br /&gt;
    for (int i=0; i&amp;lt;samples; i++) &lt;br /&gt;
        val = (val + FixedDiv(number, val)) &amp;gt;&amp;gt; 1;&lt;br /&gt;
 &lt;br /&gt;
    return val; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the same as above, but optimised for 15 samples.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
function int sqrt(int number) &lt;br /&gt;
{&lt;br /&gt;
  if (number == 1.0) return 1.0; &lt;br /&gt;
  if (number &amp;lt;= 0) return 0;&lt;br /&gt;
  int val = 150.0;&lt;br /&gt;
  for (int i=0; i&amp;lt;15; i++) &lt;br /&gt;
    val = (val + FixedDiv(number, val)) &amp;gt;&amp;gt; 1;&lt;br /&gt;
&lt;br /&gt;
  return val; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[category:Sample ACS functions]]&lt;br /&gt;
[[category:ACS Math functions]]&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=User:Eevee/Sqrt&amp;diff=40957</id>
		<title>User:Eevee/Sqrt</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=User:Eevee/Sqrt&amp;diff=40957"/>
		<updated>2016-02-08T21:28:30Z</updated>

		<summary type="html">&lt;p&gt;Eevee: better top infobar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=0 cellpadding=4 cellspacing=4 style=&amp;quot;border: solid 1px #678; border-left-width: 6px; background-color: #F4F8FF; padding: 0.25em 0.5em; width: 100%; margin: 1em auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| This [[Built-in ACS functions|ACS function]] may be used in a [[ACS|script]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 133%;&amp;quot;&amp;gt;int &#039;&#039;&#039;Sqrt&#039;&#039;&#039;(int &#039;&#039;number&#039;&#039;)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 133%;&amp;quot;&amp;gt;fixed &#039;&#039;&#039;FixedSqrt&#039;&#039;&#039;(fixed &#039;&#039;number&#039;&#039;)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;number&#039;&#039;: Value to take the square root of.&lt;br /&gt;
&lt;br /&gt;
Returns the square root of an integer or fixed point number.  The integer version returns the floor of the square root, so &amp;lt;code&amp;gt;Sqrt(99)&amp;lt;/code&amp;gt; produces 9.&lt;br /&gt;
&lt;br /&gt;
== Manual calcuation ==&lt;br /&gt;
In older versions of ZDoom, this function is not built into ACS, so here are several manual equivalents.  Do note that for the distance between two objects, the [[distance]] function can be faster.  Also note that if you name a function &amp;lt;code&amp;gt;sqrt&amp;lt;/code&amp;gt;, your code will no longer compile with later versions of [[ACC]].&lt;br /&gt;
&lt;br /&gt;
This version uses Newton&#039;s method, where the solution converges quadratically from the initial guess. This function has been compared with the following two, and is at least 5 to 10 times faster in normal use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
function int sqrt(int number)&lt;br /&gt;
{&lt;br /&gt;
	if(number &amp;lt;= 3) { return number &amp;gt; 0; }&lt;br /&gt;
&lt;br /&gt;
 	int oldAns = number &amp;gt;&amp;gt; 1,                     // initial guess&lt;br /&gt;
	    newAns = (oldAns + number / oldAns) &amp;gt;&amp;gt; 1; // first iteration&lt;br /&gt;
&lt;br /&gt;
	// main iterative method&lt;br /&gt;
	while(newAns &amp;lt; oldAns)&lt;br /&gt;
	{&lt;br /&gt;
		oldAns = newAns;&lt;br /&gt;
		newAns = (oldAns + number / oldAns) &amp;gt;&amp;gt; 1;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return oldAns;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a simpler, but slower, version of a square root function. It rounds the root up or down.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
function int sqrt (int x)&lt;br /&gt;
{&lt;br /&gt;
	int r;&lt;br /&gt;
	x = x + 1 &amp;gt;&amp;gt; 1;&lt;br /&gt;
	while (x &amp;gt; r)&lt;br /&gt;
		x -= r++;&lt;br /&gt;
	return r;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need a function that rounds down, this one will work. Based off of [http://snippets.dzone.com/posts/show/2715 this algorithm].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
function int isqrt (int n)&lt;br /&gt;
{&lt;br /&gt;
	int a;&lt;br /&gt;
	for (a=0;n&amp;gt;=(2*a)+1;n-=(2*a++)+1);&lt;br /&gt;
	return a;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This sample-based formulae processes fixed values and returns a fixed result which accuracy is defined by the &#039;&#039;samples&#039;&#039; integer, and results zero if the input number is negative.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
function int sqrt(int number) &lt;br /&gt;
{ &lt;br /&gt;
    int samples=15; //Samples for accuracy&lt;br /&gt;
&lt;br /&gt;
    if (number == 1.0) return 1.0; &lt;br /&gt;
    if (number &amp;lt;= 0) return 0;&lt;br /&gt;
    int val = samples&amp;lt;&amp;lt;17 + samples&amp;lt;&amp;lt;19; //x*10 = x&amp;lt;&amp;lt;1 + x&amp;lt;&amp;lt;3&lt;br /&gt;
    for (int i=0; i&amp;lt;samples; i++) &lt;br /&gt;
        val = (val + FixedDiv(number, val)) &amp;gt;&amp;gt; 1;&lt;br /&gt;
 &lt;br /&gt;
    return val; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the same as above, but optimised for 15 samples.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
function int sqrt(int number) &lt;br /&gt;
{&lt;br /&gt;
  if (number == 1.0) return 1.0; &lt;br /&gt;
  if (number &amp;lt;= 0) return 0;&lt;br /&gt;
  int val = 150.0;&lt;br /&gt;
  for (int i=0; i&amp;lt;15; i++) &lt;br /&gt;
    val = (val + FixedDiv(number, val)) &amp;gt;&amp;gt; 1;&lt;br /&gt;
&lt;br /&gt;
  return val; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[category:Sample ACS functions]]&lt;br /&gt;
[[category:ACS Math functions]]&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=User:Eevee/Generic_Floor&amp;diff=40956</id>
		<title>User:Eevee/Generic Floor</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=User:Eevee/Generic_Floor&amp;diff=40956"/>
		<updated>2016-02-08T21:27:44Z</updated>

		<summary type="html">&lt;p&gt;Eevee: bold the special name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Generic_Floor}}&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=4 style=&amp;quot;border: solid 1px #668; border-left-width: 6px; background-color: #F4F4FF; padding: 0.25em 0.5em; width: 100%; margin: 1em auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| This [[action special]] may be used on a line in a map, called like a function from a [[ACS|script]], or used as an actor&#039;s [[action function]] from [[DECORATE]].&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!-- {{Special|200|tag, speed, height, target, flags|General BOOM linetype|Floor|type2=Floor}} --&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 133%;&amp;quot;&amp;gt;200: &#039;&#039;&#039;Generic_Floor&#039;&#039;&#039;(&#039;&#039;tag, speed, height, target, flags)&amp;lt;/span&amp;gt;&lt;br /&gt;
* &#039;&#039;tag&#039;&#039; — Tag of affected sectors, or 0 to use the line&#039;s back sector.&lt;br /&gt;
* &#039;&#039;speed&#039;&#039; — Floor&#039;s [[Definitions#Sector_movement_speed|movement speed]].  Doom&#039;s standard floors move at 8, and fast floors move at 32.&lt;br /&gt;
* &#039;&#039;height&#039;&#039; — Distance to move (when &#039;&#039;target&#039;&#039; is 0).&lt;br /&gt;
* &#039;&#039;target&#039;&#039; — How to determine the floor&#039;s destination height.&lt;br /&gt;
* &#039;&#039;flags&#039;&#039; — Various flags; see below.&lt;br /&gt;
&lt;br /&gt;
This special encapsulates [[BOOM]]&#039;s {{Dw|Linedef_type#Generalized_floors_.288192_types.29|generalized floors}}.&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
&lt;br /&gt;
=== Target ===&lt;br /&gt;
&#039;&#039;target&#039;&#039; can be one of the following:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039; — Move by &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; units&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; — Move to highest neighboring floor&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; — Move to lowest neighboring floor&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; — Move to nearest neighboring floor&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039; — Move to lowest neighboring ceiling&lt;br /&gt;
* &#039;&#039;&#039;5&#039;&#039;&#039; — Move to the sector&#039;s own ceiling&lt;br /&gt;
* &#039;&#039;&#039;6&#039;&#039;&#039; — Move by the height of the shortest lower texture on the sector&lt;br /&gt;
&lt;br /&gt;
=== Flags ===&lt;br /&gt;
A moving floor may optionally copy its floor texture and [[Sector specials|special]] from a &amp;quot;model&amp;quot; sector.  There are two ways to choose a model sector.  The &#039;&#039;trigger model&#039;&#039; uses the sector on the front side of the line that caused the move.  The &#039;&#039;numeric model&#039;&#039; looks for neighboring sectors whose floors are at the destination height, and uses the one with the lowest-numbered shared linedef.  If no model sector can be found, nothing is copied.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;flags&#039;&#039; is composed of:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039; — Don&#039;t copy anything&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; — Copy floor texture, and remove special (Tx0)&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; — Copy floor texture only (Tx)&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; — Copy both floor texture and special (TxTy)&lt;br /&gt;
* &#039;&#039;&#039;+4&#039;&#039;&#039; — Use the numeric model (default is trigger model)&lt;br /&gt;
* &#039;&#039;&#039;+8&#039;&#039;&#039; — Raise floor (default is to lower)&lt;br /&gt;
* &#039;&#039;&#039;+16&#039;&#039;&#039; — Inflict crushing damage&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
Many other floor specials can be expressed in terms of Generic_Floor:&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! Special !! Equivalent Generic_Floor&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerByValue]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;, 0, 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerToLowest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 2, 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerToLowestTxTy]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 2, 3)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerToNearest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 3, 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseByTexture]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 6, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseByValue]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;, 0, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseByValueTxTy]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;, 0, 11)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseToHighest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 1, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseToLowestCeiling]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 4, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseToNearest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 3, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_TransferNumeric]](&#039;&#039;tag&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, 0, 0, 0, 7)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_TransferTrigger]](&#039;&#039;tag&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, 0, 0, 0, 3)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=User:Eevee/Generic_Floor&amp;diff=40954</id>
		<title>User:Eevee/Generic Floor</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=User:Eevee/Generic_Floor&amp;diff=40954"/>
		<updated>2016-02-08T21:26:49Z</updated>

		<summary type="html">&lt;p&gt;Eevee: better top infobar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Generic_Floor}}&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=4 style=&amp;quot;border: solid 1px #668; border-left-width: 6px; background-color: #F4F4FF; padding: 0.25em 0.5em; width: 100%; margin: 1em auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| This [[action special]] may be used on a line in a map, called like a function from a [[ACS|script]], or used as an actor&#039;s [[action function]] from [[DECORATE]].&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!-- {{Special|200|tag, speed, height, target, flags|General BOOM linetype|Floor|type2=Floor}} --&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 133%;&amp;quot;&amp;gt;200: Generic_Floor(&#039;&#039;tag, speed, height, target, flags)&amp;lt;/span&amp;gt;&lt;br /&gt;
* &#039;&#039;tag&#039;&#039; — Tag of affected sectors, or 0 to use the line&#039;s back sector.&lt;br /&gt;
* &#039;&#039;speed&#039;&#039; — Floor&#039;s [[Definitions#Sector_movement_speed|movement speed]].  Doom&#039;s standard floors move at 8, and fast floors move at 32.&lt;br /&gt;
* &#039;&#039;height&#039;&#039; — Distance to move (when &#039;&#039;target&#039;&#039; is 0).&lt;br /&gt;
* &#039;&#039;target&#039;&#039; — How to determine the floor&#039;s destination height.&lt;br /&gt;
* &#039;&#039;flags&#039;&#039; — Various flags; see below.&lt;br /&gt;
&lt;br /&gt;
This special encapsulates [[BOOM]]&#039;s {{Dw|Linedef_type#Generalized_floors_.288192_types.29|generalized floors}}.&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
&lt;br /&gt;
=== Target ===&lt;br /&gt;
&#039;&#039;target&#039;&#039; can be one of the following:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039; — Move by &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; units&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; — Move to highest neighboring floor&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; — Move to lowest neighboring floor&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; — Move to nearest neighboring floor&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039; — Move to lowest neighboring ceiling&lt;br /&gt;
* &#039;&#039;&#039;5&#039;&#039;&#039; — Move to the sector&#039;s own ceiling&lt;br /&gt;
* &#039;&#039;&#039;6&#039;&#039;&#039; — Move by the height of the shortest lower texture on the sector&lt;br /&gt;
&lt;br /&gt;
=== Flags ===&lt;br /&gt;
A moving floor may optionally copy its floor texture and [[Sector specials|special]] from a &amp;quot;model&amp;quot; sector.  There are two ways to choose a model sector.  The &#039;&#039;trigger model&#039;&#039; uses the sector on the front side of the line that caused the move.  The &#039;&#039;numeric model&#039;&#039; looks for neighboring sectors whose floors are at the destination height, and uses the one with the lowest-numbered shared linedef.  If no model sector can be found, nothing is copied.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;flags&#039;&#039; is composed of:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039; — Don&#039;t copy anything&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; — Copy floor texture, and remove special (Tx0)&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; — Copy floor texture only (Tx)&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; — Copy both floor texture and special (TxTy)&lt;br /&gt;
* &#039;&#039;&#039;+4&#039;&#039;&#039; — Use the numeric model (default is trigger model)&lt;br /&gt;
* &#039;&#039;&#039;+8&#039;&#039;&#039; — Raise floor (default is to lower)&lt;br /&gt;
* &#039;&#039;&#039;+16&#039;&#039;&#039; — Inflict crushing damage&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
Many other floor specials can be expressed in terms of Generic_Floor:&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! Special !! Equivalent Generic_Floor&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerByValue]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;, 0, 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerToLowest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 2, 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerToLowestTxTy]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 2, 3)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerToNearest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 3, 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseByTexture]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 6, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseByValue]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;, 0, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseByValueTxTy]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;, 0, 11)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseToHighest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 1, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseToLowestCeiling]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 4, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseToNearest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 3, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_TransferNumeric]](&#039;&#039;tag&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, 0, 0, 0, 7)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_TransferTrigger]](&#039;&#039;tag&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, 0, 0, 0, 3)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=User:Eevee/Generic_Floor&amp;diff=40953</id>
		<title>User:Eevee/Generic Floor</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=User:Eevee/Generic_Floor&amp;diff=40953"/>
		<updated>2016-02-08T21:25:57Z</updated>

		<summary type="html">&lt;p&gt;Eevee: some sprucing up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Generic_Floor}}&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=4 style=&amp;quot;border: solid 1px #668; border-left-width: 6px; background-color: #EEF; padding: 0.4em 1em; width: 100%; margin: 1em auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| This [[action special]] may be used on a line in a map, called like a function from a [[ACS|script]], or used as an actor&#039;s [[action function]] from [[DECORATE]].&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!-- {{Special|200|tag, speed, height, target, flags|General BOOM linetype|Floor|type2=Floor}} --&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 133%;&amp;quot;&amp;gt;200: Generic_Floor(&#039;&#039;tag, speed, height, target, flags)&amp;lt;/span&amp;gt;&lt;br /&gt;
* &#039;&#039;tag&#039;&#039; — Tag of affected sectors, or 0 to use the line&#039;s back sector.&lt;br /&gt;
* &#039;&#039;speed&#039;&#039; — Floor&#039;s [[Definitions#Sector_movement_speed|movement speed]].  Doom&#039;s standard floors move at 8, and fast floors move at 32.&lt;br /&gt;
* &#039;&#039;height&#039;&#039; — Distance to move (when &#039;&#039;target&#039;&#039; is 0).&lt;br /&gt;
* &#039;&#039;target&#039;&#039; — How to determine the floor&#039;s destination height.&lt;br /&gt;
* &#039;&#039;flags&#039;&#039; — Various flags; see below.&lt;br /&gt;
&lt;br /&gt;
This special encapsulates [[BOOM]]&#039;s {{Dw|Linedef_type#Generalized_floors_.288192_types.29|generalized floors}}.&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
&lt;br /&gt;
=== Target ===&lt;br /&gt;
&#039;&#039;target&#039;&#039; can be one of the following:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039; — Move by &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; units&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; — Move to highest neighboring floor&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; — Move to lowest neighboring floor&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; — Move to nearest neighboring floor&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039; — Move to lowest neighboring ceiling&lt;br /&gt;
* &#039;&#039;&#039;5&#039;&#039;&#039; — Move to the sector&#039;s own ceiling&lt;br /&gt;
* &#039;&#039;&#039;6&#039;&#039;&#039; — Move by the height of the shortest lower texture on the sector&lt;br /&gt;
&lt;br /&gt;
=== Flags ===&lt;br /&gt;
A moving floor may optionally copy its floor texture and [[Sector specials|special]] from a &amp;quot;model&amp;quot; sector.  There are two ways to choose a model sector.  The &#039;&#039;trigger model&#039;&#039; uses the sector on the front side of the line that caused the move.  The &#039;&#039;numeric model&#039;&#039; looks for neighboring sectors whose floors are at the destination height, and uses the one with the lowest-numbered shared linedef.  If no model sector can be found, nothing is copied.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;flags&#039;&#039; is composed of:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039; — Don&#039;t copy anything&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; — Copy floor texture, and remove special (Tx0)&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039; — Copy floor texture only (Tx)&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039; — Copy both floor texture and special (TxTy)&lt;br /&gt;
* &#039;&#039;&#039;+4&#039;&#039;&#039; — Use the numeric model (default is trigger model)&lt;br /&gt;
* &#039;&#039;&#039;+8&#039;&#039;&#039; — Raise floor (default is to lower)&lt;br /&gt;
* &#039;&#039;&#039;+16&#039;&#039;&#039; — Inflict crushing damage&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
Many other floor specials can be expressed in terms of Generic_Floor:&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! Special !! Equivalent Generic_Floor&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerByValue]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;, 0, 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerToLowest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 2, 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerToLowestTxTy]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 2, 3)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerToNearest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 3, 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseByTexture]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 6, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseByValue]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;, 0, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseByValueTxTy]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;, 0, 11)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseToHighest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 1, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseToLowestCeiling]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 4, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseToNearest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 3, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_TransferNumeric]](&#039;&#039;tag&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, 0, 0, 0, 7)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_TransferTrigger]](&#039;&#039;tag&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, 0, 0, 0, 3)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=User:Eevee/Sqrt&amp;diff=40952</id>
		<title>User:Eevee/Sqrt</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=User:Eevee/Sqrt&amp;diff=40952"/>
		<updated>2016-02-08T21:25:48Z</updated>

		<summary type="html">&lt;p&gt;Eevee: import and spruce up sqrt page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=0 cellpadding=4 cellspacing=4 style=&amp;quot;border: solid 1px #688; border-left-width: 6px; background-color: #EFF; padding: 0.4em 1em; width: 100%; margin: 1em auto;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| This [[Built-in ACS functions|ACS function]] may be used in a [[ACS|script]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 133%;&amp;quot;&amp;gt;int &#039;&#039;&#039;Sqrt&#039;&#039;&#039;(int &#039;&#039;number&#039;&#039;)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 133%;&amp;quot;&amp;gt;fixed &#039;&#039;&#039;FixedSqrt&#039;&#039;&#039;(fixed &#039;&#039;number&#039;&#039;)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;number&#039;&#039;: Value to take the square root of.&lt;br /&gt;
&lt;br /&gt;
Returns the square root of an integer or fixed point number.  The integer version returns the floor of the square root, so &amp;lt;code&amp;gt;Sqrt(99)&amp;lt;/code&amp;gt; produces 9.&lt;br /&gt;
&lt;br /&gt;
== Manual calcuation ==&lt;br /&gt;
In older versions of ZDoom, this function is not built into ACS, so here are several manual equivalents.  Do note that for the distance between two objects, the [[distance]] function can be faster.  Also note that if you name a function &amp;lt;code&amp;gt;sqrt&amp;lt;/code&amp;gt;, your code will no longer compile with later versions of [[ACC]].&lt;br /&gt;
&lt;br /&gt;
This version uses Newton&#039;s method, where the solution converges quadratically from the initial guess. This function has been compared with the following two, and is at least 5 to 10 times faster in normal use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
function int sqrt(int number)&lt;br /&gt;
{&lt;br /&gt;
	if(number &amp;lt;= 3) { return number &amp;gt; 0; }&lt;br /&gt;
&lt;br /&gt;
 	int oldAns = number &amp;gt;&amp;gt; 1,                     // initial guess&lt;br /&gt;
	    newAns = (oldAns + number / oldAns) &amp;gt;&amp;gt; 1; // first iteration&lt;br /&gt;
&lt;br /&gt;
	// main iterative method&lt;br /&gt;
	while(newAns &amp;lt; oldAns)&lt;br /&gt;
	{&lt;br /&gt;
		oldAns = newAns;&lt;br /&gt;
		newAns = (oldAns + number / oldAns) &amp;gt;&amp;gt; 1;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return oldAns;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a simpler, but slower, version of a square root function. It rounds the root up or down.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
function int sqrt (int x)&lt;br /&gt;
{&lt;br /&gt;
	int r;&lt;br /&gt;
	x = x + 1 &amp;gt;&amp;gt; 1;&lt;br /&gt;
	while (x &amp;gt; r)&lt;br /&gt;
		x -= r++;&lt;br /&gt;
	return r;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need a function that rounds down, this one will work. Based off of [http://snippets.dzone.com/posts/show/2715 this algorithm].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
function int isqrt (int n)&lt;br /&gt;
{&lt;br /&gt;
	int a;&lt;br /&gt;
	for (a=0;n&amp;gt;=(2*a)+1;n-=(2*a++)+1);&lt;br /&gt;
	return a;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This sample-based formulae processes fixed values and returns a fixed result which accuracy is defined by the &#039;&#039;samples&#039;&#039; integer, and results zero if the input number is negative.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
function int sqrt(int number) &lt;br /&gt;
{ &lt;br /&gt;
    int samples=15; //Samples for accuracy&lt;br /&gt;
&lt;br /&gt;
    if (number == 1.0) return 1.0; &lt;br /&gt;
    if (number &amp;lt;= 0) return 0;&lt;br /&gt;
    int val = samples&amp;lt;&amp;lt;17 + samples&amp;lt;&amp;lt;19; //x*10 = x&amp;lt;&amp;lt;1 + x&amp;lt;&amp;lt;3&lt;br /&gt;
    for (int i=0; i&amp;lt;samples; i++) &lt;br /&gt;
        val = (val + FixedDiv(number, val)) &amp;gt;&amp;gt; 1;&lt;br /&gt;
 &lt;br /&gt;
    return val; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the same as above, but optimised for 15 samples.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
function int sqrt(int number) &lt;br /&gt;
{&lt;br /&gt;
  if (number == 1.0) return 1.0; &lt;br /&gt;
  if (number &amp;lt;= 0) return 0;&lt;br /&gt;
  int val = 150.0;&lt;br /&gt;
  for (int i=0; i&amp;lt;15; i++) &lt;br /&gt;
    val = (val + FixedDiv(number, val)) &amp;gt;&amp;gt; 1;&lt;br /&gt;
&lt;br /&gt;
  return val; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[category:Sample ACS functions]]&lt;br /&gt;
[[category:ACS Math functions]]&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=User:Eevee/Generic_Floor&amp;diff=40941</id>
		<title>User:Eevee/Generic Floor</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=User:Eevee/Generic_Floor&amp;diff=40941"/>
		<updated>2016-02-08T20:59:50Z</updated>

		<summary type="html">&lt;p&gt;Eevee: importing Generic_Floor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Generic_Floor}}&lt;br /&gt;
{{Special|200|tag, speed, height, target, flags|General BOOM linetype|Floor|type2=Floor}}&lt;br /&gt;
* &#039;&#039;tag&#039;&#039;: Tag of affected sectors, or 0 to use the line&#039;s back sector.&lt;br /&gt;
* &#039;&#039;speed&#039;&#039;: Floor&#039;s [[Definitions#Sector_movement_speed|movement speed]].  Doom&#039;s standard floors move at 8, and fast floors move at 32.&lt;br /&gt;
* &#039;&#039;height&#039;&#039;: Distance to move (when &#039;&#039;target&#039;&#039; is 0).&lt;br /&gt;
* &#039;&#039;target&#039;&#039;: How to determine the floor&#039;s destination height.&lt;br /&gt;
* &#039;&#039;flags&#039;&#039;: Various flags; see below.&lt;br /&gt;
&lt;br /&gt;
This special encapsulates BOOM&#039;s generalized floors.&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
&lt;br /&gt;
=== Target ===&lt;br /&gt;
&#039;&#039;target&#039;&#039; can be one of the following:&lt;br /&gt;
&lt;br /&gt;
* 0: Move by &#039;&#039;height&#039;&#039; units&lt;br /&gt;
* 1: Move to highest neighboring floor&lt;br /&gt;
* 2: Move to lowest neighboring floor&lt;br /&gt;
* 3: Move to nearest neighboring floor&lt;br /&gt;
* 4: Move to lowest neighboring ceiling&lt;br /&gt;
* 5: Move to the sector&#039;s own ceiling&lt;br /&gt;
* 6: Move by the height of the shortest lower texture on the sector&lt;br /&gt;
&lt;br /&gt;
=== Flags ===&lt;br /&gt;
A moving floor may optionally copy its floor texture and [[Sector specials|special]] from a &amp;quot;model&amp;quot; sector.  There are two ways to choose a model sector.  The &#039;&#039;trigger model&#039;&#039; uses the sector on the front side of the line that caused the move.  The &#039;&#039;numeric model&#039;&#039; looks for neighboring sectors whose floors are at the destination height, and uses the one with the lowest-numbered shared linedef.  If no model sector can be found, nothing is copied.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;flags&#039;&#039; is composed of:&lt;br /&gt;
&lt;br /&gt;
* 0: Don&#039;t copy anything&lt;br /&gt;
* 1: Copy floor texture, and remove special (Tx0)&lt;br /&gt;
* 2: Copy floor texture only (Tx)&lt;br /&gt;
* 3: Copy both floor texture and special (TxTy)&lt;br /&gt;
* +4: Use the numeric model (default is trigger model)&lt;br /&gt;
* +8: Raise floor (default is to lower)&lt;br /&gt;
* +16: Inflict crushing damage&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
Many other floor specials can be expressed in terms of Generic_Floor:&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! Special !! Equivalent Generic_Floor&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerByValue]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;, 0, 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerToLowest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 2, 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerToLowestTxTy]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 2, 3)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerToNearest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 3, 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseByTexture]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 6, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseByValue]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;, 0, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseByValueTxTy]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;, 0, 11)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseToHighest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 1, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseToLowestCeiling]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 4, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseToNearest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 3, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_TransferNumeric]](&#039;&#039;tag&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, 0, 0, 0, 7)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_TransferTrigger]](&#039;&#039;tag&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, 0, 0, 0, 3)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=ZDoom_version_history&amp;diff=40940</id>
		<title>ZDoom version history</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=ZDoom_version_history&amp;diff=40940"/>
		<updated>2016-02-08T20:52:41Z</updated>

		<summary type="html">&lt;p&gt;Eevee: /* Next version */ link to portal special&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page tracks the evolution of [[ZDoom]] by listing the main features of each version.&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!By year&lt;br /&gt;
|[[#1998|1998]] &amp;amp;middot; [[#1999|1999]] &amp;amp;middot; [[#2000|2000]] &amp;amp;middot; [[#2001|2001]] &amp;amp;middot; [[#2002|2002]] &amp;amp;middot; [[#2003|2003]] &amp;amp;middot; [[#2004|2004]] &amp;amp;middot; [[#2005|2005]] &amp;amp;middot; [[#2006|2006]] &amp;amp;middot; [[#2007|2007]] &amp;amp;middot; [[#2008|2008]] &amp;amp;middot; [[#2009|2009]] &amp;amp;middot; [[#2010|2010]] &amp;amp;middot; [[#2011|2011]] &amp;amp;middot; [[#2012|2012]] &amp;amp;middot; [[#2013|2013]] &amp;amp;middot; [[#2014|2014]] &amp;amp;middot; [[#2015|2015]] &amp;amp;middot; [[#2016|2016]]&lt;br /&gt;
|-&lt;br /&gt;
!1.x Branch&lt;br /&gt;
|[[#1.11|1.11]] &amp;amp;middot; [[#1.12|1.12]] &amp;amp;middot; [[#1.13|1.13]] &amp;amp;middot; [[#1.14|1.14]] &amp;amp;middot; [[#1.14a|1.14a]] &amp;amp;middot; [[#1.16|1.16]] &amp;amp;middot; [[#1.17|1.17]] &amp;amp;middot; [[#1.17a|1.17a]] &amp;amp;middot; [[#1.17b|1.17b]] &amp;amp;middot; [[#1.17b1|1.17b1]] &amp;amp;middot; [[#1.17c|1.17c]] &amp;amp;middot; [[#1.18|1.18]] &amp;amp;middot; [[#1.18a|1.18a]] &amp;amp;middot; [[#1.18b|1.18b]] &amp;amp;middot; [[#1.19|1.19]] &amp;amp;middot; [[#1.20|1.20]] &amp;amp;middot; [[#1.21|1.21]] &amp;amp;middot; [[#1.22|1.22]] &amp;amp;middot; [[#1.23 Beta|1.23 Beta]] &amp;amp;middot; [[#1.23 Beta 19|1.23 Beta 19]] &amp;amp;middot; [[#1.23 Beta 20|1.23 Beta 20]] &amp;amp;middot; [[#1.23 Beta 23|1.23 Beta 23]] &amp;amp;middot; [[#1.23 Beta 24|1.23 Beta 24]] &amp;amp;middot; [[#1.23 Beta 25|1.23 Beta 25]] &amp;amp;middot; [[#1.23 Beta 33|1.23 Beta 33]]&lt;br /&gt;
|-&lt;br /&gt;
!2.0 Branch&lt;br /&gt;
|[[#2.0 Beta 13|2.0 Beta 13]] &amp;amp;middot; [[#2.0.47|2.0.47]] &amp;amp;middot; [[#2.0.47i|2.0.47i]] &amp;amp;middot; [[#2.0.48|2.0.48]] &amp;amp;middot; [[#2.0.49|2.0.49]] &amp;amp;middot; [[#2.0.50|2.0.50]] &amp;amp;middot; [[#2.0.51|2.0.51]] &amp;amp;middot; [[#2.0.52|2.0.52]] &amp;amp;middot; [[#2.0.53|2.0.53]] &amp;amp;middot; [[#2.0.54|2.0.54]] &amp;amp;middot; [[#2.0.55|2.0.55]] &amp;amp;middot; [[#2.0.56|2.0.56]] &amp;amp;middot; [[#2.0.57|2.0.57]] &amp;amp;middot; [[#2.0.58|2.0.58]] &amp;amp;middot; [[#2.0.59|2.0.59]] &amp;amp;middot; [[#2.0.60|2.0.60]] &amp;amp;middot; [[#2.0.61|2.0.61]] &amp;amp;middot; [[#2.0.62|2.0.62]] &amp;amp;middot; [[#2.0.63|2.0.63]] &amp;amp;middot; [[#2.0.64|2.0.64]] &amp;amp;middot; [[#2.0.90|2.0.90]] &amp;amp;middot; [[#2.0.91|2.0.91]] &amp;amp;middot; [[#2.0.92|2.0.92]] &amp;amp;middot; [[#2.0.93|2.0.93]] &amp;amp;middot; [[#2.0.94|2.0.94]] &amp;amp;middot; [[#2.0.95|2.0.95]] &amp;amp;middot; [[#2.0.96|2.0.96]] &amp;amp;middot; [[#2.0.97|2.0.97]] &amp;amp;middot; [[#2.0.98|2.0.98]]&lt;br /&gt;
|-&lt;br /&gt;
!2.1 Branch&lt;br /&gt;
|[[#2.1.0|2.1.0]] &amp;amp;middot; [[#2.1.1|2.1.1]] &amp;amp;middot; [[#2.1.2|2.1.2]] &amp;amp;middot; [[#2.1.3|2.1.3]] &amp;amp;middot; [[#2.1.3|2.1.3]] &amp;amp;middot; [[#2.1.4|2.1.4]] &amp;amp;middot; [[#2.1.5|2.1.5]] &amp;amp;middot; [[#2.1.6|2.1.6]] &amp;amp;middot; [[#2.1.7|2.1.7]]&lt;br /&gt;
|-&lt;br /&gt;
!Modern&lt;br /&gt;
|[[#2.2.0|2.2.0]] &amp;amp;middot; [[#2.3.0|2.3.0]] &amp;amp;middot; [[#2.3.1|2.3.1]] &amp;amp;middot; [[#2.4.0|2.4.0]] &amp;amp;middot; [[#2.4.1|2.4.1]] &amp;amp;middot; [[#2.5.0|2.5.0]] &amp;amp;middot; [[#2.6.0|2.6.0]] &amp;amp;middot; [[#2.6.1|2.6.1]] &amp;amp;middot; [[#2.7.0|2.7.0]] &amp;amp;middot; [[#2.7.1|2.7.1]] &amp;amp;middot; [[#2.8.0|2.8.0]] &amp;amp;middot; [[#Next version|Next version]]&lt;br /&gt;
|}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
==1998==&lt;br /&gt;
;{{LE|1.11}} (March 6): {{Plainlink|[http://www.zdoom.org/files/old/zdoom111.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom111s.zip Source]}}&lt;br /&gt;
:Initial release, based on the [[NTDoom]] and [[ATB Doom]]. The version numbering follows from the Doom source code version numbering of 1.10.&lt;br /&gt;
:* Works under both Windows 95 and NT 4.0, although it works best under Win95.&lt;br /&gt;
:* Limited support for the Pause key. It works with some keyboards on some machines.&lt;br /&gt;
:* Supports any resolution compatible with your DirectDraw drivers.&lt;br /&gt;
:* Look up/down à la &#039;&#039;[[Heretic]]&#039;&#039;.&lt;br /&gt;
:* Translucency for selected objects.&lt;br /&gt;
:* Has a [[console]] with most of the functionality of &#039;&#039;Quake&#039;&#039;&#039;s. The only significant missing feature is Tab-completion.&lt;br /&gt;
:* Notarget [[cheat]].&lt;br /&gt;
:* Command to {{CCMD|D|kill}} all [[monster]]s in a level or yourself.&lt;br /&gt;
:* Can play [[MUS]], [[MIDI]], and MOD music.&lt;br /&gt;
:* Selected sounds are played in surround sound.&lt;br /&gt;
:* Doors that need keys to open are highlighted on the [[automap]].&lt;br /&gt;
:* Automap now shows various statistics in addition to the level name.&lt;br /&gt;
:* True keybindings. Bind any key to any command or sequence of commands.&lt;br /&gt;
:* [[Intermission]] screen can now display your stats using absolute values rather than percentages.&lt;br /&gt;
:* A new more general [[demo]] format.&lt;br /&gt;
;{{LE|1.12}} (April 7): {{Plainlink|[http://www.zdoom.org/files/old/zdoom112.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom112s.zip Source]}}&lt;br /&gt;
:* Some visual enhancements were made such as centering the menus and drawing borders around the status bar in higher resolutions.&lt;br /&gt;
:* [[Console command]]s can now be specified on the [[command line parameters|command line]].&lt;br /&gt;
:* Removed some of [[Doom]]&#039;s limits such as VisPlanes, VisSprites, and 2S [[HOM]].&lt;br /&gt;
:* Rewrote some of the inner loops in assembly. (There was some assembly in 1.11, but it never got used.)&lt;br /&gt;
:* New [[CVAR]]s relating to mouse movement. ({{CVAR|C|invertmouse}}, {{CVAR|C|m_pitch}}, {{CVAR|C|m_yaw}}, etc.)&lt;br /&gt;
:* Mouse movement doesn&#039;t get sluggish in high resolutions.&lt;br /&gt;
:* [[Automap]] colors are customizable.&lt;br /&gt;
:* Automap overlay and rotation are available.&lt;br /&gt;
:* Eight [[crosshair]]s.&lt;br /&gt;
:* Shoot up/down.&lt;br /&gt;
:* Alt-Tab and Pause work properly on all machines now.&lt;br /&gt;
:* The {{CCMD|P|+jump}} command now works.&lt;br /&gt;
:* 25% and 75% translucency levels in addition to 50%. The translucency tables now get saved to disk, too, so they only need to be calculated once instead of every time the game is run.&lt;br /&gt;
:* The [[console]] [[font]] is now editable.&lt;br /&gt;
:* Near complete support for [[DeHackEd]] patches. (Only monster infighting and changing a few minor text strings are not supported.)&lt;br /&gt;
:* Sky height and position is now fixed for high resolutions. (It still wraps if you look up, but at least now if you look straight ahead, it never will.)&lt;br /&gt;
:* Weapon sprite is always drawn at the correct location. (It was being drawn too low in some resolutions like 400x300.)&lt;br /&gt;
:* New [[options menu]], which includes a key configuration screen.&lt;br /&gt;
:* [[Stealth monster]]s.&lt;br /&gt;
:* New full-screen [[HUD]].&lt;br /&gt;
:* And a few other things not worth mentioning separately.&lt;br /&gt;
;{{LE|1.13}} (May 26):{{forum|t=4|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom113.zip Build]}}&lt;br /&gt;
:* Fixed some major bugs (that crashed the game) and other lesser bugs that were just annoying.&lt;br /&gt;
:* 3-D collisions for walking under and standing on other things.&lt;br /&gt;
:* The status bar can be scaled to the full width of the screen.&lt;br /&gt;
:* The screen mode can be selected from a menu inside the game.&lt;br /&gt;
:* ZDoom can run in a window on the desktop.&lt;br /&gt;
:* Better [[DeHackEd]] support. Only a few text replacements are not supported. Everything else works (including monster infighting which I haven&#039;t seen in any other port).&lt;br /&gt;
:* New features for level designers (see editing.txt for details):&lt;br /&gt;
::*Specification of next and secret maps on a per-map basis.&lt;br /&gt;
::*Specify sky texture on a per-map basis.&lt;br /&gt;
::*Use any lump in a wad as music for a map.&lt;br /&gt;
::*Give maps a custom name without using a DeHackEd patch.&lt;br /&gt;
::*Maps can be named anything (not just E?M? or MAP??).&lt;br /&gt;
::*Place any messages of any length between any two maps.&lt;br /&gt;
::*&#039;&#039;[[Hexen]]&#039;&#039;-style fog (of any color).&lt;br /&gt;
::*[[Ambient sound]]s &amp;amp;mdash; either point like &#039;&#039;Quake&#039;&#039; or global like &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;Hexen&#039;&#039;.&lt;br /&gt;
::*Automatic use of [[DeHackEd]] patches in PWADs.&lt;br /&gt;
::*No more {{dw|tutti-frutti}} for short textures of certain heights.&lt;br /&gt;
::*zdoom.wcf file for use with [[WadAuthor]].&lt;br /&gt;
:* Rocket jumping. (One very important note about this: You need to be *in the air* when your rocket explodes for rocket jumping to work. This is different from &#039;&#039;Quake&#039;&#039;, and I will probably rewrite it for the next release.)&lt;br /&gt;
:* Dynamic [[palette flash]]es.&lt;br /&gt;
:* Supports stretching skies for [[freelook]].&lt;br /&gt;
:* Larger freelook range.&lt;br /&gt;
:* Added tab-completion to the [[console]].&lt;br /&gt;
:* zdoom.cfg is now the name of the default [[configuration file]] since [[Doom Legacy]] decided to start using config.cfg.&lt;br /&gt;
:* French language support. (Set {{CVAR|C|language}} CVAR to &amp;quot;french&amp;quot;.)&lt;br /&gt;
:* Player obituaries.&lt;br /&gt;
:* Unlimited ammo cheat (use g_unlimitedammo cvar).&lt;br /&gt;
;{{LE|1.14}} (July 22): {{forum|t=5|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom114.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom114-src.zip Source]}}&lt;br /&gt;
:Bugs fixed:&lt;br /&gt;
:* The bunny scroller at the end of E3M8 no longer crashes the game.&lt;br /&gt;
:* The IDKFA [[cheat]] gives the proper amount of armor again.&lt;br /&gt;
:* Demo recording works again.&lt;br /&gt;
:* Telefragging works again.&lt;br /&gt;
:* Picking up the {{Class|InvulnerabilitySphere|invulnerability sphere}} displays the correct colors now.&lt;br /&gt;
:* [[DeHackEd]] patches containing text replacements no longer crash the game.&lt;br /&gt;
:* Printing a string containing &amp;quot;%s&amp;quot; to the console and then changing the video mode will no longer crash the game.&lt;br /&gt;
:* Chat mode finally works again.&lt;br /&gt;
:* If MIDAS can&#039;t initialize, you can still play the game but without sound.&lt;br /&gt;
:* {{Class|Pistol}} and {{Class|chaingun}} sounds no longer cut out when there are lots of {{Class|ZombieMan|zombie men}} shooting their pistols at you.&lt;br /&gt;
:* Mouse input should no longer be so jerky under Windows NT.&lt;br /&gt;
:* The [[crosshair]] is finally accurate for aiming.&lt;br /&gt;
:* [[Autoaim]] is properly remembered each time you start ZDoom.&lt;br /&gt;
:* Switches in &#039;&#039;[[the Ultimate Doom]]&#039;&#039; that aren&#039;t also in the shareware Doom properly change their appearance when switched.&lt;br /&gt;
:New features:&lt;br /&gt;
:* Players can choose their own colors and names. ([[Player setup]] menu is included).&lt;br /&gt;
:* 8-player support (untested but should work).&lt;br /&gt;
:* Miscellaneous internal code changes have been borrowed from the [[Boom]] source. (This does *not* mean that ZDoom supports Boom levels yet.)&lt;br /&gt;
:* [[Cheat]]s, chat messages, and gamestate changes are now recorded in demos.&lt;br /&gt;
:* Single-player demos recorded with ZDoom are generally smaller than before.&lt;br /&gt;
:* &#039;&#039;Quake 2&#039;&#039;-style deathmatch flags.&lt;br /&gt;
:* Cheats (optionally) work in multiplayer games.&lt;br /&gt;
:* Mode X is now supported under Win95, so all the machines that couldn&#039;t run ZDoom in 320x200 before should be able to now.&lt;br /&gt;
:* Fewer conditions result in error messages that quit the game. (If you have &#039;&#039;[[Heretic]]&#039;&#039;, try this: Start ZDoom with -file heretic and go to the console and type &amp;quot;{{CCMD|D|map}} E1M1&amp;quot;.)&lt;br /&gt;
:* Keys can repeat in the [[console]].&lt;br /&gt;
:* The console and chat mode now use the localized keymap set with the Keyboard control panel.&lt;br /&gt;
:* Messages at the top of the screen now break along between words instead of in the middle of them.&lt;br /&gt;
:* Added {{c|-config}} [[command line parameter]].&lt;br /&gt;
:* Added {{c|-fastdemo}} command line parameter.&lt;br /&gt;
:* Added new {{CCMD|D|screenshot}} command. (bound to &amp;quot;Print Screen&amp;quot; key by default)&lt;br /&gt;
:* Added &#039;&#039;Quake&#039;&#039;-like {{CCMD|P|+showscores}} command. (bound to &amp;quot;\&amp;quot; key by default)&lt;br /&gt;
:* [[Alias]]es are now saved in the config file.&lt;br /&gt;
:* Added support for multiple pitched sounds like in very old version of Doom. (Use the snd_pitched cvar to turn it on and off.)&lt;br /&gt;
;{{LE|1.14a}} (July 27): {{forum|t=6|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom114a.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoomsrc114-114a.zip Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:Bugs fixed are:&lt;br /&gt;
:* No more crashing about freeing a pointer without ZONEID when changing levels.&lt;br /&gt;
:* Skies wider than 256 pixels are drawn correctly.&lt;br /&gt;
:* [[Monster]]s&#039; heights are once again the same as they were in id&#039;s original &#039;&#039;[[Doom]]&#039;&#039;, so certain areas work properly again.&lt;br /&gt;
:* Monsters shouldn&#039;t teleport into each other anymore.&lt;br /&gt;
:* Improved support for international keyboards.&lt;br /&gt;
:* The skill level chosen for a new game is no longer ignored if the new game is started while a demo is playing.&lt;br /&gt;
:Cosmetic changes:&lt;br /&gt;
:* No more &amp;quot;sv_gravity changed to...&amp;quot;, &amp;quot;skill changed to...&amp;quot;, etc. messages in single player games.&lt;br /&gt;
:* Activating the [[player setup]] [[menu]] automatically stops any playing [[demo]]s, since it doesn&#039;t work properly while they play.&lt;br /&gt;
:* {{Class|ExplosiveBarrel|Barrels}} don&#039;t go flying away when exploding anymore.&lt;br /&gt;
:* Added def_patch cvar to automatically load a DeHackEd patch each time the game is started.&lt;br /&gt;
:* ZDoom [[savegame]]s now use the name zdoomsv?.dsg instead of doomsav?.dsg.&lt;br /&gt;
:This version also includes some preliminary [[Boom]] support as I started integrating some of the Boom source code with ZDoom:&lt;br /&gt;
:* Medusa fix.&lt;br /&gt;
:* Openings limit removed.&lt;br /&gt;
:* Removed limit on switches and animations.&lt;br /&gt;
:* Added support for Boom-like [[ANIMATED]] and [[SWITCHES]] lumps in PWADs.&lt;br /&gt;
:* Added support for Boom-style scrollers (including conveyors).&lt;br /&gt;
:* Added partial [[deep water]] support.&lt;br /&gt;
;{{LE|1.16}} (December 22): {{forum|t=13|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom116.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom116-src.zip Source]}}&lt;br /&gt;
:Bug fixes:&lt;br /&gt;
:* No more limit on size of [[savegame]]s or [[demo]]s.&lt;br /&gt;
:* Screen resolutions above 320x200 are now the proper brightness (they were too bright before.)&lt;br /&gt;
:* Improved the brightness of the [[console]] [[font]].&lt;br /&gt;
:* {{Class|BulletPuff|Bullet puffs}} can show up on the floor and ceiling and not just walls.&lt;br /&gt;
:* Missile weapons can trigger gun activation lines.&lt;br /&gt;
:* {{Class|ExplosiveBarrel|Barrels}} now bounce around as much as they did in original &#039;&#039;[[Doom]]&#039;&#039;. (They were too &amp;quot;inert&amp;quot; in 1.14.)&lt;br /&gt;
:* If a demo is being recorded, quitting the game normally will save the demo to disk. (Previously, you had to use the stop command to do this.)&lt;br /&gt;
:New features for players:&lt;br /&gt;
:* Proper support for [[Boom]] maps.&lt;br /&gt;
:* Mouse wheel support and {{CCMD|P|weapnext}}/{{CCMD|P|weapprev}} commands.&lt;br /&gt;
:* Doublebindings.&lt;br /&gt;
:* Better analog joystick support.&lt;br /&gt;
:* 180 degree turn command for keyboarders.&lt;br /&gt;
:* Damage done by a rocket to its shooter is {{CVAR|C|splashfator|configurable}} and defaults to the original Doom behavior.&lt;br /&gt;
:* User-configurable gender. (Even though I don&#039;t have any new player sounds, at least the [[obituaries]] are gender-aware. :-)&lt;br /&gt;
:* [[Teamplay]] mode.&lt;br /&gt;
:* {{CVAR|C|sv_nobfgaim|New CVAR}} to disable manual aiming of the BFG to prevent someone from shooting it at the floor and quickly triggering tracer damage before.&lt;br /&gt;
:* Maps no longer need to have as many deathmatch starts as there are players in a deathmatch game.&lt;br /&gt;
:* Support for [[Doom Legacy]] [[skin]]s.&lt;br /&gt;
:* Rewrote the [[MIDI]]/[[MUS]] code so that it has a working volume control.&lt;br /&gt;
:* Many more [[console command]]s and [[CVARs]].&lt;br /&gt;
:New features for editors:&lt;br /&gt;
:* Proper support for [[Boom]] maps.&lt;br /&gt;
:* [[Obituaries]] are configurable with a .bex patch.&lt;br /&gt;
:* [[Monster path]]s&lt;br /&gt;
:* [[Colored lighting]]&lt;br /&gt;
:* [[Fog]] can be applied to only part of a level instead of all of it.&lt;br /&gt;
:* Per-sector [[gravity]] settings.&lt;br /&gt;
:* Support for up to 256 [[ambient sound]]s (as opposed to the limit of 64 in earlier versions).&lt;br /&gt;
:* [[Sector damage]] adjustable from between 0-255 points of damage.&lt;br /&gt;
:* Changeable [[camera]] views.&lt;br /&gt;
:* The following editing features that were introduced in &#039;&#039;[[Hexen]]&#039;&#039; are also available in ZDoom:&lt;br /&gt;
::*Most line specials take arguments that modify their behavior.&lt;br /&gt;
::*[[ACS]] scripting.&lt;br /&gt;
::*[[Hub]]s.&lt;br /&gt;
::*[[Earthquake]]s.&lt;br /&gt;
::*[[Dormant]] monsters.&lt;br /&gt;
::*Trigger events to happen on monster deaths.&lt;br /&gt;
::*[[Floor_Waggle|&amp;quot;Waggling&amp;quot; floors]].&lt;br /&gt;
::*[[Pillar_Build|Pillar builders]].&lt;br /&gt;
::*Push activation lines (walking into a wall can trigger an event).&lt;br /&gt;
::*[[Thing_Spawn|Thing spawning]] (e.g. for traps/gifts).&lt;br /&gt;
&lt;br /&gt;
==1999==&lt;br /&gt;
January 6 of this year saw the first release of the [[Raven Software]] source code.&lt;br /&gt;
;{{LE|1.17}} (February 17): {{forum|t=15|Release thread}} | {{plainlink|[http://www.zdoom.org/files/zdoom/zdos117c.zip DOS build]}}&lt;br /&gt;
:Bug fixes:&lt;br /&gt;
:* [[Multiplayer]] games with [[monster]]s do not crash.&lt;br /&gt;
:* Player corpses do not levitate and then fall down when a player respawns in multiplayer games.&lt;br /&gt;
:* Using {{CCMD|P|togglemap}} outside of a game will not crash.&lt;br /&gt;
:* Monsters stop attacking their target once it is dead.&lt;br /&gt;
:* EV_StopPlat() does not get stuck in an infinite loop if there are [[moving platform]]s.&lt;br /&gt;
:* Partially invisible players are drawn the proper colors (instead of green) if {{CVAR|R|r_drawfuzz}} is 0.&lt;br /&gt;
:* If you are invisible, so are your muzzle flashes.&lt;br /&gt;
:* Trying to execute a non-existent [[ACS|script]] will not crash.&lt;br /&gt;
:* Using a [[ChangeCamera]] special from an open script will not crash.&lt;br /&gt;
:* The [[FloorAndCeiling_RaiseByValue]] and [[FloorAndCeiling_LowerByValue]] now behave like &#039;&#039;[[Hexen]]&#039;&#039;&#039;s.&lt;br /&gt;
:* Using {{c|{{param|-loadgame}}}} from the [[command line]] works.&lt;br /&gt;
:* Fixed a memory leak during generation of the translucency tables.&lt;br /&gt;
:* In high resolutions, weapon sprites meet the bottom of the screen.&lt;br /&gt;
:* Sounds will not cut out mysteriously when there is no reason for them to do so.&lt;br /&gt;
:* Sounds will also not be stopped immediately when a thing is removed, so explosion sounds will play to their full length.&lt;br /&gt;
:* Things can make more than one sound at once.&lt;br /&gt;
:* The [[deathmatch]] [[scoreboard]] is aligned properly at high resolutions.&lt;br /&gt;
:* {{CCMD|P|Spynext}} and {{CCMD|P|spyprev}} work properly instead of leaving the [[status bar]] &amp;quot;lagging behind&amp;quot; the player being viewed.&lt;br /&gt;
:* The {{Class|Infrared|light-amp}} does not disable colored lighting.&lt;br /&gt;
:* The [[sky]] gets {{dw|invulnerability colormap bug|inverted}} when using the invulnerability powerup.&lt;br /&gt;
:* Implemented better z-checking code (from &#039;&#039;[[Heretic]]&#039;&#039;/&#039;&#039;[[Hexen]]&#039;&#039;).&lt;br /&gt;
:* {{Class|PainElemental|Pain elementals}} will spawn one {{Class|LostSoul|lost soul}} at a time instead of two inside of each other.&lt;br /&gt;
:* Bex patches that use thing mnemonics really do work now, and unknown bit messages aren&#039;t generated for regular [[DeHackEd]]  patches.&lt;br /&gt;
:* Linedef type 134 for regular &#039;&#039;[[Doom]]&#039;&#039;/[[Boom]] maps requires a red key for activation (it was being improperly translated to require a blue one).&lt;br /&gt;
:* Monsters can activate secret lines when they cross them. (See &#039;&#039;[[Doom II]]&#039;&#039; MAP08).&lt;br /&gt;
:* The player extreme death sound is used.&lt;br /&gt;
:* When a player leaves a network game, their body is removed instead of being left empty.&lt;br /&gt;
:* 0-length sounds are treated as empty sounds instead of sounds 4 gigs long.&lt;br /&gt;
:* [[Skin]]s that replaced player sounds with sounds in the [[IWAD]] work.&lt;br /&gt;
:* Muzzle flashes do not light up foggy areas, and fullbright sprites stay shrouded in fog.&lt;br /&gt;
:* Alphanumeric keys no longer automatically repeat on the console.&lt;br /&gt;
:* Wads such as gothicdm2 that used new flats in addition to the ones in the IWAD with the regular doom.exe work.&lt;br /&gt;
:New features:&lt;br /&gt;
:* Significant speed improvements on modern processors.&lt;br /&gt;
:* [[Armor]] and [[key]]s are shown on the fullscreen HUD.&lt;br /&gt;
:* Colored text.&lt;br /&gt;
:* A {{CCMD|P|playdemo}} console command.&lt;br /&gt;
:* A [[chasecam]].&lt;br /&gt;
:* A [[particle]] system.&lt;br /&gt;
:* An optional [[railgun]] to show off the particle system. (Start the game with {{c|{{param|-deh}} [[railgun.bex]]}} if you want to use it.)&lt;br /&gt;
:New features interesting for wad authors:&lt;br /&gt;
:* [[Polyobject]]s.&lt;br /&gt;
:* [[Sound sequence]]s.&lt;br /&gt;
:* WAVE files can be used as sound lumps without converting them to DMX&#039;s format first.&lt;br /&gt;
:* A sky can be specified to not be stretched even if it is shorter than 200 pixels.&lt;br /&gt;
:* {{Class|Spark}}s.&lt;br /&gt;
:* {{Class|ParticleFountain|Particle fountain}}s.&lt;br /&gt;
:* Parallax skies.&lt;br /&gt;
:* Some new [[DeHackEd]] thing flags from &#039;&#039;[[Hexen]]&#039;&#039; (bobbing, reflective, etc.).&lt;br /&gt;
;{{LE|1.17a}} (February 21): {{forum|t=16|Release thread}}&lt;br /&gt;
:Mostly minor bug fixes, released because [[Herian 2]] needed some of those fixes. There are a few new features, however:&lt;br /&gt;
:* If you have a skins/ directory in the same directory as zdoom.exe, every wad file in it will be automatically loaded when the game starts. This way, you don&#039;t have to load your [[skin]]s by hand to use them.&lt;br /&gt;
:* New formatting options for text [[print]]ed using [[ACS]].&lt;br /&gt;
:* A [[A_MonsterRail|code pointer]] to make monsters fire a railgun.&lt;br /&gt;
;{{LE|1.17b}} (March 17): {{forum|t=21|Release thread}}&lt;br /&gt;
:Some minor bug fixes over 1.17 and 1.17a. It also loads faster because the sprite dimensions are not cached until they are actually needed. There are also some other internal changes in preparation for supporting &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;[[Hexen]]&#039;&#039;, but those don&#039;t affect the user yet.&lt;br /&gt;
;{{LE|1.17b1}} (March 19): {{forum|t=22|Release thread}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
;{{LE|1.17c}} (May 5): {{forum|t=28|Release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom117c.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom117c-src.zip Source]}}&lt;br /&gt;
:* Fixed game saving crashes on maps with [[wind]]/[[current]] effects.&lt;br /&gt;
:* In [[Boom]] [[deep water]] sectors, the underwater light and fog colors can now be set independently of the area above water.&lt;br /&gt;
:* Added nojump, allowjump, nofreelook, and allowfreelook keywords for use in [[MAPINFO]] lumps to control [[jumping]] and [[free look]].&lt;br /&gt;
:* The random number seed now changes each time you run the program.&lt;br /&gt;
;{{LE|1.18 test 1}} (June 30): {{forum|t=33|Release thread}}&lt;br /&gt;
:* Tweaked the optimized renderer for fifth-generation processors.&lt;br /&gt;
:* Added the following specials:&lt;br /&gt;
::*[[Line_AlignFloor]]&lt;br /&gt;
::*[[Line_AlignCeiling]]&lt;br /&gt;
::*[[Sector_SetRotation]]&lt;br /&gt;
::*[[Sector_SetCeilingPanning]]&lt;br /&gt;
::*[[Sector_SetFloorPanning]]&lt;br /&gt;
::*[[Sector_SetCeilingScale]]&lt;br /&gt;
::*[[Sector_SetFloorScale]]&lt;br /&gt;
:* Added an additional parameter to the [[Transfer_Heights]] special.&lt;br /&gt;
:* Switched to the [http://sourceforge.net/projects/openptc/ OpenPTC] library for display.&lt;br /&gt;
:* Converted lots of code to an object-oriented C++ architecture.&lt;br /&gt;
;{{LE|1.18 test 2}} (July 1): {{forum|t=36|Release thread}}&lt;br /&gt;
:* Fixed vertical aim clipping ({{Class|BFG9000|BFG}} works again).&lt;br /&gt;
:* Fixed [[monster]] wandering.&lt;br /&gt;
:* Maps with mapthings of type 0 no longer generate warning messages.&lt;br /&gt;
:* [[Crusher]]s that do no damage no longer act as if they inflict pain to actors.&lt;br /&gt;
:* The [[alias]] command lists aliases again.&lt;br /&gt;
:* Aliases are saved to the [[config file]] again.&lt;br /&gt;
;{{LE|1.18 test 3}} (July 2): {{forum|t=37|Release thread}}&lt;br /&gt;
:* Removed unnecessary display mode switches.&lt;br /&gt;
:* Created a DCanvas class to encapsulate most 2D rendering.&lt;br /&gt;
;{{LE|1.18 test 4}} (July 3): {{forum|t=39|Release thread}}&lt;br /&gt;
:* Fixed the &amp;quot;Bad DCanvas::CopyRect&amp;quot; problem introduced in test3.&lt;br /&gt;
:* Fixed [[sound sequence]]s that should not be cut off when stopped (such as the standard doors).&lt;br /&gt;
;{{LE|1.18 test 5}} (July 6): {{forum|t=40|Release thread}}&lt;br /&gt;
:* Fixed a potential infinite loop that was introduced in [[#1.18 test 1|118test1]].&lt;br /&gt;
:* Delayed the initial execution of [[CVAR]] callbacks.&lt;br /&gt;
:* Added &#039;&#039;[[Heretic]]&#039;&#039;&#039;s {{wp|Xiaolin Wu&#039;s line algorithm|anti-aliased Wu line drawer}} to the [[automap]].&lt;br /&gt;
;{{LE|1.18 test 6}} (July 10): {{forum|t=41|Release thread}}&lt;br /&gt;
:* Rewrote the {{wp|Xiaolin Wu&#039;s line algorithm|Wu line drawer}} to look better (especially in overlay mode).&lt;br /&gt;
:* [[Sky stretching|Stretched skies]] now get stretched horizontally as well as vertically.&lt;br /&gt;
:* Did an initial integration of the [[Cajun Bot]] 0.71 code.&lt;br /&gt;
;{{LE|1.18 test 7}} (July 12):&lt;br /&gt;
:* Fixed handling of maps with scrolling walls.&lt;br /&gt;
:* Single player works again. In test 6, all games were considered either [[coop]] or [[deathmatch]].&lt;br /&gt;
:* Disabled the [[bot]] thinking code in single player games, so you don&#039;t suffer a performance hit when not using bots.&lt;br /&gt;
:* Added some performance counters accessible through the {{CCMD|D|stat}} command.&lt;br /&gt;
;{{LE|1.18 test 8}} (July 20): {{forum|t=43|Release thread}}&lt;br /&gt;
:* Fixed a crash problem with the &amp;quot;burn&amp;quot; [[screen wipe]].&lt;br /&gt;
:* Fixed a crash problem with playing non-assigned [[sound sequence]]s.&lt;br /&gt;
:* Fixed a crash problem related to trying to shutdown the music subsystem twice.&lt;br /&gt;
:* If you try to add more coop [[bot]]s than there are coop starts, the extra bot leaves quietly instead of ending the game.&lt;br /&gt;
:* {{CVAR|C|sv_weapondrop|Weapondrop}} is now a &amp;quot;server&amp;quot; CVAR, which it should have been in the first place.&lt;br /&gt;
:* Changed the nodetable file format to be more compact.&lt;br /&gt;
:* Bots can now be recorded in demos.&lt;br /&gt;
:* Bots work in [[multiplayer]] games. Still buggy. Spawning bots can cause consistency failures, and they can start spinning wildly.&lt;br /&gt;
;{{LE|1.18 test 9}} (August 9): {{forum|t=44|Release thread}}&lt;br /&gt;
:* Fixed the &amp;quot;wild&amp;quot; [[bot]] spinning problem.&lt;br /&gt;
:* Commands like {{CCMD|D|changemap}} that could make network games go out of sync should work properly now. The reason they would do that is closely related to the reason that the bots would start spinning.&lt;br /&gt;
:* Finished the serializer. Now savegames work. [[Hub]]s don&#039;t, because I haven&#039;t written the player travelling code yet.&lt;br /&gt;
:* Various other code cleanup.&lt;br /&gt;
;{{LE|1.18 test 10}} (August 14):&lt;br /&gt;
:* Reimplemented [[hub]] travel.&lt;br /&gt;
:* Optimized R_MapPlane slightly.&lt;br /&gt;
:* Added {{CCMD|D|fov}} command.&lt;br /&gt;
:* Added vertical sub-pixel accuracy to the renderer.&lt;br /&gt;
:* Added searches for an [[IWAD]] in the current directory, $DOOMWADDIR, and $HOME.&lt;br /&gt;
;{{LE|1.18}} (September 5): {{forum|t=46|Release thread}}&lt;br /&gt;
:* Replaced the older [[Bots|Cajun]] 0.71 with Cajun 0.97.&lt;br /&gt;
:* Fixed handling of [[status bar]] [[mugshot|faces]] with [[skin]]s that provide them.&lt;br /&gt;
:* Added [[swimmable water]].&lt;br /&gt;
:* Messages printed to the middle of the screen also print to the [[console]].&lt;br /&gt;
:* Skill and other server [[CVARs]] get saved in [[savegame]]s again.&lt;br /&gt;
:* Added liquid [[texture warping]].&lt;br /&gt;
:* Bad [[MAPINFO]] lumps generate error messages instead of hanging.&lt;br /&gt;
:* Realized that it&#039;s impossible to guarantee that all object pointers will be valid without some effort, so FArchive saves DObject objects as NULL objects now instead of aborting with an error.&lt;br /&gt;
:* Added the [[built-in ACS functions]] [[LocalAmbientSound]], [[ActivatorSound]], and [[SetLineMonsterBlocking]].&lt;br /&gt;
:* Added a {{Class|SecretTrigger|thing}} that does nothing but count toward the number of [[secret]]s.&lt;br /&gt;
:* Added a {{CCMD|D|fly}} mode.&lt;br /&gt;
:* Finally implemented the {{CCMD|P|+moveup}} and {{CCMD|P|+movedown}} commands.&lt;br /&gt;
;{{LE|1.18a}} (September 12): {{forum|t=47|Release thread}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed [[liquid warping]] temporarily stopping when changing levels.&lt;br /&gt;
:* {{CCMD|P|+mlook|+/-mlook}} commands do not generate unknown command messages.&lt;br /&gt;
:* Fixed support for maps with &amp;gt;10 deathmatch starts. Thanks to Roman Hatsiev.&lt;br /&gt;
:* Fixed support for the special &amp;quot;maps&amp;quot; EndGame? in MAPINFO lumps.&lt;br /&gt;
:* {{Class|TeleportDest2|Teleport destination (no gravity)}} now works as intended.&lt;br /&gt;
:* Hopefully fixed [[savegame]] problems.&lt;br /&gt;
:* [[Bots]] are restored from savegames.&lt;br /&gt;
:* Fixed keyboard turning speed when {{c|{{param|-dup}}}} is used.&lt;br /&gt;
:* Network commands get executed only once when {{c|{{param|-dup}}}} is used.&lt;br /&gt;
:* In sectors with [[damaging floor]]s and swimmable [[deep water]], the damage will also be applied while the player is swimming and not just when the player is on the ground.&lt;br /&gt;
;{{LE|1.18b}} (September 15): {{forum|t=48|Release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom118b.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom118b-src.zip Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed crash when saving games with more than 1024 objects.&lt;br /&gt;
:* Fixed crash when loading a game without starting a new one first.&lt;br /&gt;
:* Reduced the size and frequency of pregame network packets, under the assumption that problems people were having using 1.18 on the Internet are a result of limited modem bandwidth.&lt;br /&gt;
;{{LE|1.19}} (November 24): {{forum|t=53|Release thread}} | {{forum|t=54|Source/Linux build release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom-1.19.tar.gz Source]}}&lt;br /&gt;
:First official Linux build.&lt;br /&gt;
:* [[DeHackEd]] patches that set an actor&#039;s {{Property|DeathSound|death sound}} to 0 without removing the [[A_Scream]] call no longer crash.&lt;br /&gt;
:* Fixed sync problems when playing with {{Class|BulletPuff|bullet puffs}} as [[particle]]s vs as sprites.&lt;br /&gt;
:* Fixed friction when walking on the bottom of swimmable water.&lt;br /&gt;
:* Added Jeffrey Cuenco&#039;s fixes to get {{c|{{param|-host}}}} and {{c|{{param|-join}}}} [[command line parameters]] to work properly.&lt;br /&gt;
:* Fixed [[Boom]] [[Generic_Door|generalized locked doors]] so that the open/close type will actually close.&lt;br /&gt;
:* Added pointer tracking and cleanup. This should fix the occasional crashes when saving games and various other anomalies.&lt;br /&gt;
;{{LE|1.20}} (November 25): {{forum|t=56|Release thread}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed saving, reloading, and then resaving [[savegame|games]] when travelling between levels in a [[hub]].&lt;br /&gt;
:* Fixed saving of [[ACS]] scripts scheduled to occur on a future level.&lt;br /&gt;
;{{LE|1.21}} (November 26): {{forum|t=57|Release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom121.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom121-src.zip Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed problems with thinkers removing themselves and causing other thinkers to not get a chance to think.&lt;br /&gt;
:* Added {{CVAR|R|hud_scale}} CVAR&lt;br /&gt;
;{{LE|1.22}} (November 12): {{forum|t=60|Release thread}} | {{plainlink|[http://www.zdoom.org/files/zdoom/1.x/zdoom122.zip Windows build] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom-1.22-i386.tar.gz Linux build] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom122-src.zip Windows source] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom-1.22.tar.gz Linux source]}}&lt;br /&gt;
:* [[Scroll_Texture_Both]] and [[TranslucentLine]] specials can now be used from [[ACS]].&lt;br /&gt;
:* Fixed compiler-dependent [[CVAR]] ordering during [[netgame]] arbitration.&lt;br /&gt;
:* Fixed certain [[polyobject]] movement combinations that would not stop even though they were supposed to.&lt;br /&gt;
:* Did some cleanup for Alpha processors.&lt;br /&gt;
&lt;br /&gt;
==2000==&lt;br /&gt;
June 20 of this year saw the public release of the [[Build]] source code.&lt;br /&gt;
;{{LE|1.23 Beta}} (May 10): {{forum|t=64|Release thread}}&lt;br /&gt;
:*Partial &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;[[Hexen]]&#039;&#039; support.&lt;br /&gt;
:*Windows build uses [[FMOD Ex|FMOD]] instead of [http://www.s2.org/midas/ MIDAS].&lt;br /&gt;
&lt;br /&gt;
==2001==&lt;br /&gt;
;{{LE|1.23 Beta 19}} (March 9): {{forum|t=74|Release thread}}&lt;br /&gt;
:Added new [[camera]] types.&lt;br /&gt;
:Added [[LANGUAGE|string localization]].&lt;br /&gt;
:Added [[decal]]s.&lt;br /&gt;
:Added [[slope]]s.&lt;br /&gt;
:Added [[skybox]]es.&lt;br /&gt;
;{{LE|1.23 Beta 20}} (March 11): {{forum|t=75|Release thread}}&lt;br /&gt;
;{{LE|1.23 Beta 23}} (April 9): {{forum|t=76|Release thread}}&lt;br /&gt;
;{{LE|1.23 Beta 24}} (April 12): {{forum|t=77|Release thread}}&lt;br /&gt;
;{{LE|1.23 Beta 25}} (August 15): {{forum|t=81|Release thread}}&lt;br /&gt;
:Linux build now uses SDL&lt;br /&gt;
;{{LE|1.23 Beta 28}} (September 17): {{forum|t=83|Release thread}}&lt;br /&gt;
:Added a few [[decal]]-related [[CVARs]].&lt;br /&gt;
;{{LE|1.23 Beta 28a}} (December 13): {{forum|t=88|Release thread}}&lt;br /&gt;
&lt;br /&gt;
==2002==&lt;br /&gt;
;{{LE|1.23 Beta 33}} (February 5): {{Forum|t=90|Release thread}} | {{plainlink|[http://www.zdoom.org/files/zdoom/1.x/zdoom-1.23beta33-linux.bz2 Linux build] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom-1.23beta33-src.tar.bz2 Source]}}&lt;br /&gt;
:Many fixes and rendering optimization.&lt;br /&gt;
:*Increased &#039;&#039;[[Heretic]]&#039;&#039;/&#039;&#039;[[Hexen]]&#039;&#039; support&lt;br /&gt;
:*Improved [[decal]]s.&lt;br /&gt;
:*Added support for the [[Bloodbath announcer]]&lt;br /&gt;
:*Added [[underwater]] [[REVERBS|reverb]] effect.&lt;br /&gt;
:*Added [[Line_Horizon]] effect.&lt;br /&gt;
:*Added {{Class|ScriptedMarine|scripted marines}} and several [[ACS]] enhancements.&lt;br /&gt;
:*Added support for [[DeePsea]]&#039;s [[patch|tall patches]].&lt;br /&gt;
:*Added [[slope]] things.&lt;br /&gt;
:*Changed [[license]] for original ZDoom source code to a &amp;quot;BSD-ish one&amp;quot;.&lt;br /&gt;
;{{LE|2.0 Beta 13}} (August 27):&lt;br /&gt;
:*Further increased &#039;&#039;Heretic&#039;&#039;/&#039;&#039;Hexen&#039;&#039; support.&lt;br /&gt;
:*Added [[PNG]] support for screenshots. [[Savegame]]s are actually PNG files now.&lt;br /&gt;
:*Added [[ZDBSP|internal nodebuilder]], made it [[polyobject]]-aware.&lt;br /&gt;
:*Added SNES SPC music support.&lt;br /&gt;
:*Added a loader for [[Build]] maps.&lt;br /&gt;
:*Added support for double- and quadruple-resolution flats (128x128 and 256x256).&lt;br /&gt;
:*Added ACS [[libraries]].&lt;br /&gt;
:*Added support for up to 8 mouse buttons.&lt;br /&gt;
:*Added the very first version of [[DECORATE]].&lt;br /&gt;
:*Removed [[MBF]]&#039;s torque simulation because of the problems it caused.&lt;br /&gt;
&lt;br /&gt;
==2003==&lt;br /&gt;
;{{LE|2.0.47}} (May 14): {{Forum|t=101|Release thread}} | {{plainlink|[http://www.zdoom.org/files/lars/47.cab Build]}}&lt;br /&gt;
;{{LE|2.0.47i}} (October 2): {{plainlink|[http://www.zdoom.org/files/lars/47i.cab Build]}}&lt;br /&gt;
;{{LE|2.0.48}} (October 23):&lt;br /&gt;
:*Interchangeability between [[flat]]s and [[texture]]s.&lt;br /&gt;
;{{LE|2.0.49}}, {{LE|2.0.50}} (October 26)&lt;br /&gt;
;{{LE|2.0.51}} (October 30)&lt;br /&gt;
;{{LE|2.0.52}} (October 31)&lt;br /&gt;
;{{LE|2.0.53}} (November 16)&lt;br /&gt;
;{{LE|2.0.54}}, {{LE|2.0.55}} (November 23)&lt;br /&gt;
;{{LE|2.0.56}} (November 25)&lt;br /&gt;
;{{LE|2.0.57}} (November 26)&lt;br /&gt;
;{{LE|2.0.58}}, {{LE|2.0.59}} (December 7)&lt;br /&gt;
;{{LE|2.0.60}} (December 8)&lt;br /&gt;
&lt;br /&gt;
==2004==&lt;br /&gt;
;{{LE|2.0.61}} (January 22) &lt;br /&gt;
;{{LE|2.0.62}} (February 7):&lt;br /&gt;
:*Added modern [[DECORATE]] support.&lt;br /&gt;
;{{LE|2.0.63}} (February 10): {{plainlink|[http://www.zdoom.org/files/lars/63.cab Build] {{!}} [http://www.zdoom.org/files/lars/63src.cab Source]}}&lt;br /&gt;
:*Added custom monsters to DECORATE.&lt;br /&gt;
;{{LE|2.0.64}} (June 8)&lt;br /&gt;
;{{LE|2.0.90}} (October 21):&lt;br /&gt;
:*Added &#039;&#039;[[Strife]]&#039;&#039; support and new inventory system&lt;br /&gt;
;{{LE|2.0.91}} (October 22)&lt;br /&gt;
;{{LE|2.0.92}} (October 31)&lt;br /&gt;
;{{LE|2.0.93}} (November 3)&lt;br /&gt;
;{{LE|2.0.94}} (November 19)&lt;br /&gt;
;{{LE|2.0.95}} (December 24): {{plainlink|[http://www.zdoom.org/files/lars/95changes.html Changelog]}}&lt;br /&gt;
:*Added [[camera]] textures to [[ANIMDEFS]] and [[SetCameraToTexture]]&lt;br /&gt;
:*Improved [[console]] tab completion, added Ctrl-X shortcut to clear the console&#039;s command line&lt;br /&gt;
:*Several &#039;&#039;[[Hexen]]&#039;&#039; and &#039;&#039;[[Strife]]&#039;&#039; fixes&lt;br /&gt;
:*Merged in Jim&#039;s [[ACS]] character array [[print]]ing support. &lt;br /&gt;
:*Added the [[polymost]] clipper.&lt;br /&gt;
:*Added support for 16:10 and 5:4 aspect ratios and letterboxing.&lt;br /&gt;
:*Added [[scope|static local variables]], [[Log]], [[SetAmmoCapacity]] and [[GetAmmoCapacity]] to [[ACS]].&lt;br /&gt;
;{{LE|2.0.96}} (December 25): {{plainlink|[http://www.zdoom.org/files/lars/96.cab Build] {{!}} [http://www.zdoom.org/files/lars/96src.cab Source] {{!}} [http://www.zdoom.org/files/lars/96changes.html Changelog]}}&lt;br /&gt;
:*Added [[TITLEMAP]]&lt;br /&gt;
&lt;br /&gt;
==2005==&lt;br /&gt;
;{{LE|2.0.97}} (September 28): {{forum|t=8060|Release thread}} | {{plainlink|[http://www.zdoom.org/files/lars/97.cab Build] {{!}} [http://www.zdoom.org/files/lars/97src.rar Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:*The [[LANGUAGE]] lump is now text-based.&lt;br /&gt;
:*Added IMF [[music format]] support.&lt;br /&gt;
:*Ported [[SetActorAngle]] and [[SetLineBlocking|BLOCK_RAILING]] from the [[ZDoom Community Build]].&lt;br /&gt;
:*Added [[Polymost]] visualization code from [[Build]].&lt;br /&gt;
:*Gave {{Flag|DONTMORPH}} flag to {{Class|Cyberdemon}}, {{Class|SpiderMastermind}}, {{Class|AlienSpectre1}}, {{Class|Crusader}}, {{Class|Programmer}}, and {{Class|Inquisitor}}.&lt;br /&gt;
:*Made {{Class|Puffy}} and projectiles spawned by [[A_LastZap]] deal no damage.&lt;br /&gt;
:*[[Teleport_NewMap]] can now be used within a [[TITLEMAP]] in order to make it possible to use different maps as the title map.&lt;br /&gt;
:*Merged in Graf Zahl&#039;s [[Caverns of Darkness]] patch.&lt;br /&gt;
:*Added [[Polymost]] wireframe mode.&lt;br /&gt;
:*Added {{CCMD|O|writeopl}} console command.&lt;br /&gt;
:*[[UsePuzzleItem]] can now be a [[thing]]&#039;s [[special]].&lt;br /&gt;
:*Missiles with negative damage now give you health.&lt;br /&gt;
;{{LE|2.0.98}} (November 3): {{forum|t=8460|Release thread}} | {{plainlink|[http://www.zdoom.org/files/lars/98.cab Build] {{!}} [http://www.zdoom.org/files/lars/98src.rar Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
&lt;br /&gt;
==2006==&lt;br /&gt;
February 16 of this year saw the first commit to the [[SVN]] repository.&lt;br /&gt;
;{{LE|2.1.0}}{{rev|204}} (June 21): {{forum|t=10550|Release thread}} | {{plainlink|[http://zdoom.org/files/old/zdoom-2.1.0.zip Build] {{!}} [http://zdoom.org/files/old/zdoom-2.1.0-src.7z Source]}}&lt;br /&gt;
:*Added several things from [[ZDoom Community Build]] (unofficial 2.0.96x) and [[GZDoom]], including custom [[DECORATE]] [[weapon]]s.&lt;br /&gt;
;{{LE|2.1.1}}{{rev|226}} (June 25): {{forum|t=10630|Release thread}} | {{versionlinks|2|1|1}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
;{{LE|2.1.2}}{{rev|257}} (July 17): {{forum|t=10895|Release thread}} | {{versionlinks|2|1|2}}&lt;br /&gt;
:*Added custom [[player class]]es.&lt;br /&gt;
:*Added &amp;quot;replaces&amp;quot; keyword for [[DECORATE]].&lt;br /&gt;
:*[[IWAD selection box]] now remembers the last choice.&lt;br /&gt;
:*Added [[A_RadiusThrust]] to DECORATE.&lt;br /&gt;
:*Added [[ThingCountName]] and  [[SpawnSpotFacing]] to [[ACS]].&lt;br /&gt;
:*Changed additive scroller options into a [[compatibility options|compatibility flag]].&lt;br /&gt;
;{{LE|2.1.3}}{{rev|265}} (July 18): {{forum|t=10930|Release thread}} | {{versionlinks|2|1|3}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Sounds can be specified by full path now in [[SNDINFO]] and [[S_SKIN]].&lt;br /&gt;
:* [[DECORATE]] replacement is more universal.&lt;br /&gt;
:* Added NecroMage&#039;s submission for bitwise/shift assignment operators for [[ACS]]. (Requires [[ACC]] 1.42+.)&lt;br /&gt;
:* Changed PlayAttacking2 to always use the melee state instead of different implementations per player and hard coding it to MissileState+1. Also changed PlayAttacking for the {{Class|HereticPlayer}} to use the same animation as PlayAttacking2. Now the special handling for &#039;&#039;[[Heretic]]&#039;&#039; in the FireWeapon functions can be removed.&lt;br /&gt;
;{{LE|2.1.4}}{{rev|273}} (July 29): {{forum|t=11063|Release thread}} | {{versionlinks|2|1|4}}&lt;br /&gt;
:*Added partial emulation of [[Boom]]&#039;s TRANMAP by analyzing such lumps and extrapolating translucency level from them. This does not work for non-translucency effects that can be achieved with TRANMAPs.&lt;br /&gt;
:*Added a {{CVAR|C|queryiwad_key}} cvar to control which key can force the [[IWAD selection box]] to appear. It can be either &amp;quot;shift&amp;quot; or &amp;quot;control&amp;quot;. Any other value will disable its functionality.&lt;br /&gt;
;{{LE|2.1.5}}{{rev|321}} (September 2): {{forum|t=11466|Release thread}} | {{versionlinks|2|1|5}}&lt;br /&gt;
:*New [[ACS]] functions: [[GetPlayerInfo]], [[ChangeLevel]], [[SectorDamage]], [[ReplaceTextures]]&lt;br /&gt;
:*New [[DECORATE]] functions: [[A_PlaySoundEx]], [[A_StopSoundEx]]&lt;br /&gt;
:*The {{CVAR|C|vid_nowidescreen}} cvar can be used to disable widescreen aspect ratio correction.&lt;br /&gt;
:*[[A_SpawnDebris]] and [[A_SpawnItem]] can optionally transfer the caller&#039;s color translation to the newly spawned item.&lt;br /&gt;
:*New morphing artifacts can be created by subclassing the {{Class|MorphProjectile}} and {{Class|MorphedMonster}} classes.&lt;br /&gt;
:*[[A_FireCustomMissile]] has a new parameter: Previously it always aimed straight ahead and altered the projectile&#039;s angle according to the resulting direction. If the 6th parameter is 1 now it will aim at the specified angle directly.&lt;br /&gt;
:*Users can now define their own [[TEXTCOLO|text colors]], and there are several new standard ones.&lt;br /&gt;
:*The fourth parameter of [[Polyobj_StartLine]] and the fifth parameter of [[Polyobj_ExplicitLine]] now set the line&#039;s ID.&lt;br /&gt;
:*DECORATE explosion parameters are no longer considered deprecated.&lt;br /&gt;
:*Calling [[Radius_Quake]], [[Thing_Activate]], or [[Thing_Remove]] with a [[TID]] of 0 now operates the activator.&lt;br /&gt;
:*Strife&#039;s {{Class|PhosphorousFire}} now does completely thrustless damage.&lt;br /&gt;
:*An actor&#039;s damage in DECORATE can now be specified as an expression that is evaluated each time it needs to do damage. To do this, enclose it within parentheses, and the normal Doom damage calculation will be bypassed.&lt;br /&gt;
:*Passing a negative script number to the {{CCMD|D|puke}} [[console command]] now runs the script with [[ACS_ExecuteAlways]] instead of [[ACS_Execute]].&lt;br /&gt;
:*[[Polyobject]]s defined with [[Polyobj_ExplicitLine]] are no longer limited to 64 segs.&lt;br /&gt;
:*Starting a new game or reloading an old one no longer resets the [[chasecam]].&lt;br /&gt;
:*The [[automap]] background is now a regular texture.&lt;br /&gt;
:*Added support for many [[image format]]s for use as textures: [[PNG]], JPEG, PCX, TGA, DDS.&lt;br /&gt;
:*Numerous bugfixes.&lt;br /&gt;
;{{LE|2.1.6}}{{rev|346}} (October 2): {{forum|t=11758|Release thread}} | {{versionlinks|2|1|6}}&lt;br /&gt;
:*Scaled 2D images are supported.&lt;br /&gt;
:*Dehacked max health usage defaults to consistency with other ([[Boom]]) ports.&lt;br /&gt;
:*A &#039;&#039;font&#039;&#039; parameter was added to [[A_Print]].&lt;br /&gt;
:*Quoted strings in [[DECORATE]] can no longer span multiple lines without using the escape character (\) at the end of each line. This makes it easier to spot places where you unintentionally left off a closing quote and got an error several lines later.&lt;br /&gt;
:*A new {{CCMD|O|writeini}} console command can be used to save [[the ini]] at any time, with any file name.&lt;br /&gt;
:*If the ini is write-protected when you quit, an error dialog now opens to let you know your settings could not be saved and gives you the opportunity to unprotect it.&lt;br /&gt;
:*Multiple stat displays can be enabled at once.&lt;br /&gt;
:*Several bugfixes.&lt;br /&gt;
;{{LE|2.1.7}}{{rev|524}} (October 31): {{forum|t=12015|Release thread}} | {{versionlinks|2|1|7}}&lt;br /&gt;
:*Alias commands can now do parameter substitution. If you have %x, where x is some number, in an alias command, it will be replaced by the appropriately numbered parameter passed when the alias is used, with %0 being replaced by the name of the alias itself.&lt;br /&gt;
:*A new {{Class|MapMarker}} actor has been added that you can use to mark points of interest on the [[automap]]. If its first argument is zero, the map marker itself appears on the automap, otherwise it is drawn on top of any actor with a [[TID]] matching that argument. If the second argument is one, then the map marker will only be appear if the player has previously seen the sector it is in. You can use [[Thing_Activate]] and [[Thing_Deactivate]] on markers to turn them on and off. To make custom markers, all you need to do is subclass MapMarker with [[DECORATE]].&lt;br /&gt;
:*Added the [[SetActorPitch]] [[ACS]] command to set an actor&#039;s pitch.&lt;br /&gt;
:*You can pass multiple jump targets to the [[A_Jump]] [[DECORATE]] function, and it will choose one of them at random if it jumps.&lt;br /&gt;
:*Using a [[TID]] of 0 with [[Thing_Deactivate]], [[SetActorAngle]], [[Thing_Spawn]]*, [[Thing_Projectile]]*, and [[Thing_Move]] will now operate on the activator.&lt;br /&gt;
:*The fifth argument for [[Line_SetIdentification]] can be used to set the high byte of the line ID.&lt;br /&gt;
:*Added a {{Property|CameraHeight}} [[DECORATE]] property for actors.&lt;br /&gt;
:*Added special death states for [[projectile]]s hitting actors. If missiles hit a non-bleeding actor, they try the Crash state first. If that doesn&#039;t exist or the actor is bleeding, they try the XDeath state next. If they hit anything else or neither of the two states are defined, they use the normal death state.&lt;br /&gt;
:*Added a {{Flag|PIERCEARMOR}} [[DECORATE]] flag for projectiles.&lt;br /&gt;
:*The {{CCMD|D|morphme}} [[console command]] can be given an optional argument to specify which class to morph into.&lt;br /&gt;
:*Miscellaneous bugfixes.&lt;br /&gt;
&lt;br /&gt;
==2007==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
==2008==&lt;br /&gt;
;{{LE|2.2.0}}{{rev|748}} (February 15): {{forum|t=16272|Release thread}} | {{versionlinks|2|2|0}}&lt;br /&gt;
:*This is the final version of ZDoom to fully support Windows 95 since later versions switched to [[FMOD Ex]].&lt;br /&gt;
:*Added [[custom damage types]], with monsters being able to have different custom pain chances, custom damage factors, and custom death sequence for each damage type. Also, damage-specific player pain and death sounds.&lt;br /&gt;
:*Custom damage color for [[palette flash]]es per [[player class]].&lt;br /&gt;
:*Custom state labels. New states can be defined in [[DECORATE]].&lt;br /&gt;
:*The [[SBARINFO]] lump for creating status bar and other [[HUD]]s.&lt;br /&gt;
:*[[Skill definition]] in [[MAPINFO]], with many properties.&lt;br /&gt;
:*Most thing functions treat a [[TID]] of 0 as the activator now.&lt;br /&gt;
:*Support for [[ENDOOM]] screens and the graphical or semi-graphical [[startup lumps|screens]] from &#039;&#039;[[Heretic]]&#039;&#039;, &#039;&#039;[[Hexen]]&#039;&#039; and &#039;&#039;[[Strife]]&#039;&#039;.&lt;br /&gt;
:*Several things backported from [[Skulltag]], including powerups and flags for increased port compatibility:&lt;br /&gt;
::*{{Class|PowerDrain|Drain}}, {{Class|PowerHighJump|HighJump}} and {{Class|PowerRegeneration|Regeneration}} runes as powerups and used specific player sounds for their sound effects.&lt;br /&gt;
::*PowerQuadDamage and PowerQuarterDamage as more customizable {{Class|PowerDamage}} and {{Class|PowerProtection}}. These new powerups allow free customization of the damage modification per damage type by inheriting from these classes and setting specific values. Such derived damage/protection powerups will be considered as separate powers so that for example a QuadDamage and a DoubleDamage item can be stacked which would result in 8x damage.&lt;br /&gt;
::*{{Property|Armor.MaxBonus}} and {{Property|Armor.MaxBonusMax}} properties to create armor bonuses that increases the max amount that can be given by other armor items.&lt;br /&gt;
::*Custom F1 help screen [[MAPINFO]] option&lt;br /&gt;
::*Added REDMAP and GREENMAP [[palette blend]]s.&lt;br /&gt;
::*Imported SAME_SPAWN_SPOT [[DM flag]]&lt;br /&gt;
::*Pickup sprite for the {{Class|pistol}}.&lt;br /&gt;
::*Imported {{CVAR|R|r_maxparticles}} CVAR.&lt;br /&gt;
:*New [[Direct3D]] code for better Vista support.&lt;br /&gt;
:*Autoload sections in [[the ini]].&lt;br /&gt;
:*[[GZDoom]]&#039;s [[alternate HUD]].&lt;br /&gt;
:*Custom blood on an actor-by-actor basis into [[DECORATE]].&lt;br /&gt;
:*Smart [[autoaim]] code to prevent the targeting of friendly monsters.&lt;br /&gt;
:*New {{Flag|NOBLOODDECALS}} flag that prevents bleeding actors from spawning blood [[decal]]s.&lt;br /&gt;
:*Customizable border textures. They are defined with the [[MAPINFO]] keyword &#039;bordertexture&#039; and are settable per map.&lt;br /&gt;
:*Custom label support for [[A_Chase]] and [[A_VileChase]]&lt;br /&gt;
:*{{Property|Player.RunHealth}} property to expose the {{Class|StrifePlayer}}&#039;s behavior of not being able to run when its [[health]] is below 10.&lt;br /&gt;
:*Customizable gravity per actor&lt;br /&gt;
:*New {{CCMD|D|summonfoe}} console command, which is analogous to {{CCMD|D|summonfriend}} but forces the summoned creature to be hostile instead.&lt;br /&gt;
:*Added two new [[MAPINFO]] flags to control what actor activates impact lines: {{c|MissileShootersActivateImpactLines}} (the current behavior) and {{c|MissilesActivateImpactLines}} (the original &#039;&#039;[[Hexen]]&#039;&#039; behavior).&lt;br /&gt;
:*More player water sounds: {{c|*dive}} (head goes below water), {{c|*surface}} (your head goes back above water), {{c|*gasp}} (getting air back after starting to drown)&lt;br /&gt;
:*Using &amp;quot;*&amp;quot; with [[ACS]]&#039;s music commands will play the level&#039;s default music set in [[MAPINFO]]&lt;br /&gt;
:*Two new CVARs ({{CVAR|C|win_x}} and {{CVAR|C|win_y}}) that keep track of the window position when not playing in fullscreen mode&lt;br /&gt;
:*Key bindings can now be [[print]]ed with [[ACS]]&lt;br /&gt;
:*{{Flag|INVENTORY.KEEPDEPLETED}} flag for inventory items to keep them in the player&#039;s inventory even when they have been used up. If the item also has an inventory bar icon, it will be drawn darkened while it is depleted.&lt;br /&gt;
:*{{Flag|INVENTORY.IGNORESKILL}} flag for ammo that prevents the given quantity from being modified by the skill level&lt;br /&gt;
:*{{Property|Player.AttackZOffset}} for {{Class|PlayerPawn}}. This is the offset from the center of the player at which their attacks are fired and scales according to their crouched height.&lt;br /&gt;
:*Added a new [[SetActorState]] [[ACS]] function.&lt;br /&gt;
:*{{Flag|CANUSEWALLS}} flag which allows a [[monster]] to activate &#039;use&#039; specials like doors. This flag is on by default for any monster, which was the previous behavior.&lt;br /&gt;
:*[[Thing_Stop]] action special.&lt;br /&gt;
:*New {{Flag|FORCERADIUSDMG}} flag that allows exploding items to hurt boss monsters.&lt;br /&gt;
:*New {{Flag|USESPECIAL}} flag that allows using things to execute their [[special]]s.&lt;br /&gt;
:*[[Compatibility option]] to restore the original behavior of the {{Class|PowerInvisibility|Invisibility}} powerup&lt;br /&gt;
:*Telefrag option added to [[A_SpawnItemEx]].&lt;br /&gt;
:*Added option to [[A_Chase]] that prevents the monster from moving.&lt;br /&gt;
:*New {{c|allowrespawn}} MAPINFO option.&lt;br /&gt;
:*New [[scoreboard]]s.&lt;br /&gt;
:*New [[A_LookEx]] function.&lt;br /&gt;
:*Customizable [[team]]s through the [[TEAMINFO]] lump.&lt;br /&gt;
:*New {{CCMD|D|take}} console command to do the opposite of {{CCMD|D|give}}.&lt;br /&gt;
:*[[UseInventory]]/[[UseActorInventory]] [[ACS]] functions.&lt;br /&gt;
:*New [[A_CustomBulletAttack]] &#039;&#039;aimfacing&#039;&#039; parameter&lt;br /&gt;
:*New [[A_PlaySoundEx]] attenuation parameter.&lt;br /&gt;
:*[[Automap]] markers are stored in [[savegame]]s now.&lt;br /&gt;
:*&#039;No respawn&#039; [[DM flag]] which prevents a [[player]] from respawning after they have died.&lt;br /&gt;
:*&#039;Keep frags gained&#039; [[DM flag]] which allows you to choose whether you want to reset the [[frag]]s of each player next level or not.&lt;br /&gt;
:*Sector_Outside [[sector type]] which forces outside [[fog]] regardless of ceiling texture.&lt;br /&gt;
:*User-defined [[crosshair]]s in the [[Display options]] menu. See xhairs.txt in zdoom.pk3.&lt;br /&gt;
:*Generic log display that can show &#039;&#039;[[Strife]]&#039;&#039;&#039;s log messages in all games regardless of the current game, active [[status bar]] and [[HUD]] mode.&lt;br /&gt;
:*Support for stenciling actors with {{Property|RenderStyle}} property.&lt;br /&gt;
:*.TXT files can now be loaded by simply dragging-and-dropping them on top of zdoom.exe.&lt;br /&gt;
:*&#039;Ice&#039; [[translation]] is accessible from [[DECORATE]].&lt;br /&gt;
:*[[Teamplay]] MAPINFO option.&lt;br /&gt;
:*[[ACS]] script type [[RETURN]]. These are executed by players who return to a map they&#039;ve previously been to.&lt;br /&gt;
&lt;br /&gt;
==2009==&lt;br /&gt;
;{{LE|2.3.0}}{{rev|1455}} (March 1): {{Forum|t=21116|Release thread}} | {{versionlinks|2|3|0}}&lt;br /&gt;
:*[[Universal Doom Map Format]] (UDMF) support.&lt;br /&gt;
:*New garbage collector to improve performances on resource-intensive maps.&lt;br /&gt;
:*Sound uses [[FMOD Ex]] instead of FMOD. Among the benefits, [[REVERBS|reverbs]] can now work on any sound card, not just those that support EAX.&lt;br /&gt;
:*SPC is now a first-class [[music format]] that no longer requires an external DLL to play.&lt;br /&gt;
:*Support for [[Vavoom]]&#039;s [[slope|vertex height things]] and [[Eternity Engine]]&#039;s [[3D middle texture]]s.&lt;br /&gt;
:*[[Linked sectors]], to ensure that multiple [[sector]]s can move consistently in sync.&lt;br /&gt;
:*[[TEXTURES]] lump for text-based texture definitions.&lt;br /&gt;
:*[[Automatic compatibility|MD5-based recognition of maps]] that require certain [[compatibility options]] to work (e.g., {{dw|Strain}} map 7 which relied on the {{dw|Spechits overflow}} bug) to apply these settings transparently.&lt;br /&gt;
:*[[Freedoom]], [[Chex Quest]], and [[Chex Quest 3]] are recognized as [[IWAD]]s and can be selected in the [[IWAD selection box]]. New aliases are available for IWADs, too.&lt;br /&gt;
:*New [[MAPINFO]] format (the old is still supported of course) with a more robust syntax.&lt;br /&gt;
:*Custom [[map translator]]s for Doom-format maps, which can be specified in MAPINFO.&lt;br /&gt;
:*[[Strife]] dialogues now work in multiplayer.&lt;br /&gt;
:*Setting up slots for custom weapons no longer requires a [[KEYCONF]] lump, the limit of 8 weapons per slot is removed.&lt;br /&gt;
:*Added the &amp;quot;{{Class|RandomSpawner|random spawner}}&amp;quot; actor, customizable {{Class|BossEye}}s, {{Class|CustomBridge}}, {{Class|FastProjectile}}.&lt;br /&gt;
:*Many new [[compatibility options]], including one to have [[projectile]]s pass through solid decorations.&lt;br /&gt;
:*More flexible use of [[lightning]] in a map.&lt;br /&gt;
:*The two different [[crushing mode]]s (Doom and Hexen) are now selectable per action.&lt;br /&gt;
:*Customizable pickup flash with {{Property|Inventory.PickupFlash}} property.&lt;br /&gt;
:*[[DeHackEd]] music name replacement has been restored.&lt;br /&gt;
:*Rewritten DECORATE parser, more robust and featuring better error reporting. All actors are defined in DECORATE now.&lt;br /&gt;
:*Functions to handle [[weapon]] reloading through DECORATE.&lt;br /&gt;
:*New [[ACS]] functions: [[GetPlayerInput]], [[GetActorProperty|Get]]/[[SetActorProperty]].&lt;br /&gt;
:*Many actions are now more flexible through optional parameters, for example [[A_Die]] can specify damage type to send to a custom Death state, [[A_KeenDie]] can affect tags other than 666, [[A_Fire]] can specify a vertical offset, and so on.&lt;br /&gt;
:*Many, many new [[DMFlags]] for [[cooperative]] plays, such as having to kill all [[monster]]s before leaving the map or seeing the other [[player]]s on the [[automap]].&lt;br /&gt;
:*Enhanced &#039;&#039;[[Strife]]&#039;&#039; support.&lt;br /&gt;
:*Various and sundry bug fixes.&lt;br /&gt;
;{{LE|2.3.1}}{{rev|1480}} (March 15): {{Forum|t=21296|Release thread}} | {{versionlinks|2|3|1}}&lt;br /&gt;
:Mostly a bugfix release.&lt;br /&gt;
:*Fixes the bug that prevented you from switching weapons after respawning in multiplayer.&lt;br /&gt;
:*Fixes a performance regression introduced in 2.3.0.&lt;br /&gt;
:*Adds support for zip/pk3 files with LZMA and BZip2 compression. (7-Zip is one program that can create such files.)&lt;br /&gt;
:*Addresses a few other niggles.&lt;br /&gt;
&lt;br /&gt;
==2010==&lt;br /&gt;
;{{LE|2.4.0}}{{rev|2075}} (January 1): {{Forum|t=24602|Release thread}} | {{versionlinks|2|4|0}}&lt;br /&gt;
:*Rewritten [[archive format|archive]] management code.&lt;br /&gt;
::*Added support for new [[archive format]]s: 7z, &#039;&#039;Quake&#039;&#039; PAK, &amp;quot;Shrink&amp;quot; and &amp;quot;Implode&amp;quot;.&lt;br /&gt;
::*Removed loading limit of 65 535 lumps. The archive manager can now handle up to 4 294 967 295 lumps.&lt;br /&gt;
:*Rewritten mouse and keyboard handling input under Windows.&lt;br /&gt;
:*Reimplemented and improved support for gamepads and joysticks.&lt;br /&gt;
:*Added truecolor display of the [[HUD]], [[menu]]s and other 2D elements outside the game world when using [[Direct3D]] on Windows.&lt;br /&gt;
:*Replaced SNES_SPC with Game Music Emu, greatly increasing the number of supported emulated [[music format]]s.&lt;br /&gt;
:*Added compiling support for {{wp|Macintosh}} systems.&lt;br /&gt;
:*Added [[IWAD]] recognition for Ultimate [[Freedoom]], [[Action Doom 2: Urban Brawl|Action Doom 2]], [[Blasphemer]] and [[Harmony]].&lt;br /&gt;
:*Added {{param|-noautoload}}, {{param|-norun}}, {{param|-stdout}}, and {{param|-warpwipe}} command line parameters.&lt;br /&gt;
:*Added {{CVAR|C|save_dir}} and {{CVAR|R|d3d_antilag}} console variables.&lt;br /&gt;
:*Added optional parameters to {{CCMD|D|summon}} commands, added {{CCMD|D|summonmbf}} command.&lt;br /&gt;
:*Added {{CCMD|D|info}} command to obtain very verbose debugging information on actors.&lt;br /&gt;
:*Buddha mode&lt;br /&gt;
:*Added [[score]] and {{Class|ScoreItem}}s.&lt;br /&gt;
:*Added [[GameInfo definition]]s to [[MAPINFO]].&lt;br /&gt;
:*Changed random seed initialization so that it uses the system&#039;s cryptographically secure random number generator, if available, instead of the current time. Also changed the random number generator from Lee Killough&#039;s algorithm to the SFMT607 variant of the {{wp|Mersenne twister}}.&lt;br /&gt;
:*Disabled custom [[DEHSUPP]] lumps.&lt;br /&gt;
:*Added &#039;damage&#039; to the actor variables exported to [[DECORATE expressions|DECORATE&#039;s expression evaluator]].&lt;br /&gt;
:*Added &#039;frandom&#039; DECORATE function to the expression evaluator, which is like &#039;random&#039; but for floating point values instead of integers.&lt;br /&gt;
:*Added Raven color set and dagger-like vector sprite to the [[automap]].&lt;br /&gt;
:*Added desatured [[translation]]s.&lt;br /&gt;
:*[[SBARINFO]]: Added the ability to center things with fullscreenoffsets enabled, added [[underwater]] stats.&lt;br /&gt;
:*[[MAPINFO]]: Added [no_]grinding_polyobj, resetinventory properties, added EndTitle option for {{c|nextmap}}.&lt;br /&gt;
:*Added actor replacement to [[skill definition]]s.&lt;br /&gt;
:*Exported many hardcoded values to [[GameInfo definition]]s.&lt;br /&gt;
:*Added [[Line_SetBlocking]] and [[Sector_SetPortal]] specials.&lt;br /&gt;
:*Added {{c|defaultterrain}} section to [[TERRAIN]].&lt;br /&gt;
:*Added new [[earthquake]] functions.&lt;br /&gt;
:*Added [[user variable]]s.&lt;br /&gt;
:*[[DECORATE]]: Added {{Property|Species}}, {{Property|Activation}}, {{Property|PainThreshold}}, {{Property|PushFactor}}, {{Property|WeaveIndexXY}}, {{Property|WeaveIndexZ}}, {{Property|Powerup.Strength}}, {{Property|Player.MugShotMaxHealth}}, {{Property|Inventory.InterHubAmount}} properties.&lt;br /&gt;
:*Turned old bounce flags into {{Property|BounceType}} property.&lt;br /&gt;
:*Added {{Property|DamageFactor}} handling to Armors.&lt;br /&gt;
:*Added &amp;quot;BLUEMAP&amp;quot; [[palette blend]] for {{Property|Powerup.Color}}, and added {{Property|Powerup.Colormap}} for custom colormaps.&lt;br /&gt;
:*Added {{Flag|MOVEWITHSECTOR}}, {{Flag|NOBOSSRIP}}, {{Flag|THRUACTORS}}, {{Flag|THRUSPECIES}}, {{Flag|DONTSEEKINVISIBLE}}, {{Flag|FORCEPAIN}}, {{Flag|NOFEAR}}, {{Flag|BUMPSPECIAL}}, {{Flag|STEPMISSILE}}, {{Flag|NOTELEPORT}}, {{Flag|NOTRIGGER}},  {{Flag|AVOIDMELEE}}, {{Flag|JUMPDOWN}}, {{Flag|SCREENSEEKER}}, {{Flag|INVENTORY.PERSISTENTPOWER}}, {{Flag|WEAPON.AMMO_CHECKBOTH}}, {{Flag|WEAPON.NOAUTOAIM}} flags.&lt;br /&gt;
:*Added [[A_CheckCeiling]], [[A_MonsterRefire]], [[A_Weave]], [[A_JumpIfTargetInSight]], [[A_ZoomFactor]], [[A_SetAngle]], [[A_SetPitch]], [[A_ScaleVelocity]], [[A_ChangeVelocity]], [[A_SetCrosshair]], [[A_RemoveSiblings]], [[A_RaiseMaster]]/[[A_RaiseChildren|Children]]/[[A_RaiseSiblings|Siblings]], [[A_Log]], [[A_PrintBold]], [[A_SetArg]], [[A_SetSpecial]], [[A_Blast]] codepointers.&lt;br /&gt;
:*Added parameters to [[A_PodPain]], [[A_MakePod]], [[A_MLightningAttack]], [[A_M_Saw]], [[A_FireCustomMissile]], [[A_FadeOut]], [[A_Explode]], [[A_WeaponReady]], [[A_VileAttack]], [[A_Mushroom]], [[A_SeekerMissile]], [[A_KillChildren]]/[[A_KillMaster|Master]]/[[A_KillSiblings|Siblings]], [[A_CustomRailgun]] and [[A_RailAttack]], added SXF_TRANSFERPOINTERS flag to [[A_SpawnItemEx]] and several flags to [[A_Respawn]].&lt;br /&gt;
:*Imported {{Class|PowerDoubleFiringSpeed}} from [[Skulltag]], added {{Class|PowerInfiniteAmmo}}.&lt;br /&gt;
:*{{Class|PowerProtection}} and {{Class|PowerInvisibility}} can now be used to give certain flags to the player. Other enhancements to PowerInvisibility, such as changing the player&#039;s {{Property|RenderStyle}}.&lt;br /&gt;
:*Customizable mage lightning, sapphire wand, and {{Class|SpawnShot}} spawn lists.&lt;br /&gt;
:*[[ACS]]: compatibility fix for vanilla Hexen map where script execution order is critical.&lt;br /&gt;
:*Added [[GetActorVelX]]/[[GetActorVelY|Y]]/[[GetActorVelZ|Z]], [[SetActorVelocity]], [[GetActorViewHeight]], [[SetActivator]], [[SetActivatorToTarget]], [[GetChar]], [[SetSkyScrollSpeed]], [[GetAirSupply|Get]]/[[SetAirSupply]], [[GetArmorType]], [[CheckActorProperty]], [[CheckActorClass]], [[SoundSequenceOnActor]]/[[SoundSequenceOnSector|Sector]]/[[SoundSequenceOnPolyobj|Polyobj]], [[SpawnSpotForced]] and [[SpawnSpotFacingForced]].&lt;br /&gt;
:*Added ML_BLOCKUSE line flag, accessible through [[UDMF]] and [[Line_SetBlocking]].&lt;br /&gt;
:*Improved [[automatic compatibility]] with {{dw|Hacx}}, {{dw|Suspended in Dusk}}, {{dw|Community Chest}}, {{dw|Doomsday of UAC}}, {{dw|Strain}}, and the {{dw|Astrostein}} series.&lt;br /&gt;
:*[[Compatibility options]]: added Minotaur footclipped floor fire setting, sprite sorting order, [[MBF]]-style [[A_Mushroom]], monster movements affected by terrain, and friendly monsters able to cross blocking lines.&lt;br /&gt;
:*Added arch-vile &amp;quot;ghost&amp;quot; bug emulation for selected maps only.&lt;br /&gt;
:*Added several other MBF features, including {{Class|BetaSkull}}, [[A_FireOldBFG]], and [[DeHackEd]] support of MBF codepointers and actors.&lt;br /&gt;
:*Repaired accuracy of player behavior in &#039;&#039;[[Hexen]]&#039;&#039; with regards to [[jumping]] and pushing enemies away with attacks.&lt;br /&gt;
:*Fixed compatibility issues arising with [[Action Doom]].&lt;br /&gt;
:*Puffs now set their angle to face the originator of the attack.&lt;br /&gt;
:*Added SoulPriestess&#039; patch to force aspect ratio with {{CVAR|R|vid_aspect}}.&lt;br /&gt;
:*Added Spleen&#039;s patch to customize [[railgun]] performances with {{CVAR|R|r_rail_smartspiral}}, {{CVAR|R|r_rail_spiralsparsity}}, and {{CVAR|R|r_rail_trailsparsity}}.&lt;br /&gt;
:*[[UDMF]]: Added per-tier texture scaling with new [[sidedef]] properties and sidedef versions of [[linedef]] flags {{c|wrapmidtex}} and {{c|clipmidtex}}.&lt;br /&gt;
:*Improved [[sky]] projection and [[sky stretching]].&lt;br /&gt;
:*Updated Italian [[LANGUAGE|language]] file.&lt;br /&gt;
:*A whole lot more.&lt;br /&gt;
;{{LE|2.4.1}}{{rev|2126}} (January 24): {{Forum|t=24895|Release thread}} | {{versionlinks|2|4|1}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:*[[Floor_Waggle]] effects are smoother now.&lt;br /&gt;
:*Negative numbers in the [[alternate HUD]] have their minus sign at the right place now.&lt;br /&gt;
:*Menu option scales better in widescreen resolution.&lt;br /&gt;
:*[[Player setup]] menu looks better in non-Doom games.&lt;br /&gt;
:*Moving [[camera]]s work correctly again.&lt;br /&gt;
:*[[Polyobject]]s glitch a bit less now.&lt;br /&gt;
:*The internal nodebuilder works correctly now with certain troublesome maps.&lt;br /&gt;
:*&#039;&#039;[[Strife]]&#039;&#039; conversations fixed and improved.&lt;br /&gt;
:*Many nitpicky fixes in &#039;&#039;Strife&#039;&#039; (switch sounds, messages, etc.).&lt;br /&gt;
:*&#039;&#039;[[Action Doom 2]]&#039;&#039; and &#039;&#039;[[Harmony]]&#039;&#039; can now use idclev, and they have their Autoload section in [[the ini]].&lt;br /&gt;
:*[[MAPINFO]] {{c|ResetInventory}} keyword now works as expected.&lt;br /&gt;
:*The {{CVAR|C|norawinput}} console variable can be set to true to fix input problems while playing a Windows build through {{wp|Wine_(software)|Wine}}.&lt;br /&gt;
:*A [[character input grid]] is available to play ZDoom with a controller without having to use the keyboard.&lt;br /&gt;
:*Added [[GAMEINFO]] lump so that a mod can specify which [[IWAD]] and external resource files it uses.&lt;br /&gt;
;{{LE|2.5.0}}{{rev|2508}} (August 11): {{Forum|t=26755|Release thread}} | {{versionlinks|2|5|0}}&lt;br /&gt;
:*Enhanced [[polyobject]] system, allowing them to move anywhere in the map (like [[Eternity Engine|Eternity]]&#039;s &amp;quot;dynasegs&amp;quot;) and to give them any arbitrary shape. This is accompanied by new [[ACS]] polyobject movement functions.&lt;br /&gt;
:*Support for [[node|uncompressed extended nodes]], also supported by [[Eternity Engine]] and [[PrBoom+]], to create a new cross-port standard for node storage.&lt;br /&gt;
:*Support for using [[Byte Map Font]]s.&lt;br /&gt;
:*Ability to use metadata tags in audio formats to define custom loop points.&lt;br /&gt;
:*Added support for the [[MUSINFO]] lump (from [[Risen3D]] and [[PrBoom+]]).&lt;br /&gt;
:*Improved compatibility settings to allow optionally a greater faithfulness to the [[vanilla Doom]] and vanilla Heretic behaviors.&lt;br /&gt;
:*ZMAPINFO as an alias for [[MAPINFO]] to avoid compatibility problems with other ports parsing this lump.&lt;br /&gt;
:*Full rewrite of the [[SBARINFO]] system allowing many additional features and options.&lt;br /&gt;
:*Added support for multi-monitor display.&lt;br /&gt;
:*default reverbs environment setting in MAPINFO&lt;br /&gt;
:*Several generalized [[action functions|codepointers]] to emulate some very specific &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;[[Hexen]]&#039;&#039; action functions&lt;br /&gt;
:*New functions to refine actor behavior through&lt;br /&gt;
:*Enhanced [[poison]] damage system&lt;br /&gt;
:*Generalized [[railgun]] codepointers&lt;br /&gt;
:*New [[automap options]]&lt;br /&gt;
:*[[Hall of mirrors|HOM]] detection system&lt;br /&gt;
:*New [[console commands]]&lt;br /&gt;
:*The usual bug fixes and minor enhancements.&lt;br /&gt;
&lt;br /&gt;
==2011==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==2012==&lt;br /&gt;
;{{LE|2.6.0}}{{rev|3730}} (July 2): {{Forum|t=33295|Release thread}} | {{versionlinks|2|6|0}}&lt;br /&gt;
:*Added [[Hacx]] IWAD support.&lt;br /&gt;
:*Added text-format Strife conversation system with [[USDF]] and [[ZSDF]].&lt;br /&gt;
:*A textured [[automap]] is now available; automap graphics are now [[map arrow|externalized]].&lt;br /&gt;
:*Rewritten [[menu]] system, which can now be defined with the [[MENUDEF]] lump.&lt;br /&gt;
:*Externalized intermissions to [[MAPINFO]].&lt;br /&gt;
:*Externalized [[IWAD]] detection and gave each IWAD its own independent config section.&lt;br /&gt;
:*Added [[FluidSynth]] and [[GUS|GUS emulator]] softsynths; fixed issues with [[TiMidity++]].&lt;br /&gt;
:*Added [[VOC]] support and enhanced [[MIDI]] playback with support for alternative formats such as [[XMI]] and [[HMI]].&lt;br /&gt;
:*[[Action specials]]: Added [[Ceiling_LowerAndCrushDist]] and [[Thing_SetConversation]]. Added [[console command]] to execute specials.&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
::*Increased maximum script number from 999 to 32767.&lt;br /&gt;
::*[[Named script]]s allow to avoid script number conflicts.&lt;br /&gt;
::*Added [[StrCpy]], [[CheckSight]], [[SetActivator]], [[SetPointer]] functions.&lt;br /&gt;
::*Added [[ACS actor properties|APROP_ScaleX/Y]] and APROP_Mass actor properties.&lt;br /&gt;
::*Added temporary dynamic strings variables with [[StrParam]].&lt;br /&gt;
::*Scripts can now have up to four parameters.&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
::*Added [[A_CheckFlag]], [[A_FaceMaster]], [[A_FaceTracer]], [[A_RadiusGive]], [[A_SetMass]], [[A_SetScale]], [[A_Warp]] and [[A_WolfAttack]]...&lt;br /&gt;
::*Enhanced [[A_AlertMonsters]], [[A_BFGSpray]], [[A_Blast]], [[A_CustomBulletAttack]], [[A_FireBullets]], [[A_GunFlash]], [[A_PainAttack]], [[A_RadiusThrust]]...&lt;br /&gt;
::*Added an [[actor pointer]] manipulation system with several new codepointers...&lt;br /&gt;
::*Added {{Flag|DOHARMSPECIES}}, {{Flag|DONTCORPSE}}, {{Flag|SEEINVISIBLE}} and {{Flag|INVENTORY.UNTOSSABLE}}&lt;br /&gt;
::*Increased [[damage type]] flexibility in several ways with {{Property|DeathType}} and {{Property|PainType}}.&lt;br /&gt;
::*Added customizable {{Class|ArtiPoisonBag|fléchettes}}.&lt;br /&gt;
::*Made [[accuracy]] and [[stamina]] accessible through [[DECORATE expressions]].&lt;br /&gt;
::*Added {{Property|ProjectileKickback}}, {{Property|Inventory.RestrictedTo}} and {{Property|Inventory.ForbiddenTo}} class-based properties.&lt;br /&gt;
::*Backported {{Property|VisibleToTeam}}, {{Property|VisibleToPlayerClass}} and weapon {{Property|DropItem}} feature from [[Skulltag]], and enhanced them.&lt;br /&gt;
::*Added &amp;quot;Fast&amp;quot; keyword for states and deprecated the unreliable {{Flag|FASTER}} and {{Flag|FASTMELEE}} flags.&lt;br /&gt;
:*Added a [[SECRETS|secret hint system]].&lt;br /&gt;
:*[[3D floor]]s support.&lt;br /&gt;
:*[[FraggleScript]] support.&lt;br /&gt;
:*[[Voxel]] support.&lt;br /&gt;
:*[[SBARINFO]]: Ammo 1/2 capacities added to DrawNumber, support for color names in colored text.&lt;br /&gt;
:*[[SNDINFO]]: Added {{sndinfo|musicalias}} and {{sndinfo|attenuation}}.&lt;br /&gt;
:*Compatibility: fixed issues with {{dw|Eternal Doom}}, [[Happy Time Circus]], {{dw|Phobos_(WAD)|Phobos}}, vanilla compat, [[Boom]] compat, light levels higher than 255, [[Heretic]], [[Strife]], [[MUSINFO]], misnamed UDMF field.&lt;br /&gt;
:*Fixed loading of [[BMF]] palettes.&lt;br /&gt;
:*{{CCMD|O|restart}} console command.&lt;br /&gt;
:*Added [[PALVERS]] lump.&lt;br /&gt;
:*Custom [[IWAD]]s no longer need to include a [[COLORMAP]], as ZDoom will generate one automatically if it is missing.&lt;br /&gt;
:*Fixed vertical tiling of non-power-of-two textures.&lt;br /&gt;
:*Fixed blockmap overflows in huge maps with help from [[Mocha Doom|Maes]] and [[PrBoom+|Entryway]].&lt;br /&gt;
:*Joystick support for non-Windows platforms.&lt;br /&gt;
:*As always, a plethora of bug fixes and minor enhancements.&lt;br /&gt;
&lt;br /&gt;
;{{LE|2.6.1}}{{rev|3794}} (July 28): {{Forum|t=33547|Release thread}} | {{versionlinks|2|6|1}}&lt;br /&gt;
:*Added [[Hacx]] 2.0 IWAD support.&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
::*Added [[ACS_NamedExecuteWait]] and [[NamedScriptWait]].&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
::*Added {{Flag|INVENTORY.RESTRICTABSOLUTELY}} and {{Flag|PLAYERPAWN.CANSUPERMORPH}}.&lt;br /&gt;
:*[[MAPINFO]]:&lt;br /&gt;
::*Added RandomPlayerStarts and UsePlayerStartZ flags for [[map definition]]s.&lt;br /&gt;
:*Solved compatibility issue with [[Massmouth 2]].&lt;br /&gt;
:*[[Voxel]]s are now rotated by 90° to match their orientation in Slab6 and [[Build]] games.&lt;br /&gt;
&lt;br /&gt;
==2013==&lt;br /&gt;
;{{LE|2.7.0}}{{rev|4342}} (June 8): {{Forum|t=36456|Release thread}} | {{versionlinks|2|7|0}}&lt;br /&gt;
:*Added [[Floor_RaiseAndCrushDoom]].&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
::*Made dynamic strings persistent. ACS can now safely generate up to one million new strings.&lt;br /&gt;
::*Added [[CheckFont]], [[GetCVarString]], [[GetUserCVar]], [[GetUserCVarString]], [[IsTIDUsed]], [[LineAttack]], [[SetCVar]], [[SetCVarString]], [[SetUserCVar]], [[SetUserCVarString]], [[SpawnDecal]], and [[UniqueTID]].&lt;br /&gt;
::*Added HUD layers, visibility flags, additive blending, and alpha parameter to [[HudMessage]] and [[HudMessageBold]].&lt;br /&gt;
::*Also added HUD message wrapping and clipping with [[SetHudClipRect]] and [[SetHudWrapWidth]].&lt;br /&gt;
::*Added PLAYERINFO_FOV and _DESIREDFOV to [[GetPlayerInfo]].&lt;br /&gt;
::*Added support for desaturated [[translation]]s.&lt;br /&gt;
::*Added [[Sqrt]], [[FixedSqrt]], and [[VectorLength]] functions.&lt;br /&gt;
::*Support for advanced structures from non-ACC compilers.&lt;br /&gt;
::*Added the ability to retrieve the {{Property|ReactionTime}}, {{Property|Height}} and {{Property|Radius}} properties through [[GetActorProperty]].&lt;br /&gt;
::*Added CHANGELEVEL_PRERAISEWEAPON to [[ChangeLevel]].&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
::*{{Flag|FLOATBOB}} things are no longer moved physically when bobbing.&lt;br /&gt;
::*Added {{Property|Player.FallingScreamSpeed}}, {{Property|Player.GruntSpeed}}, {{Property|Weapon.MinSelectionAmmo1}}, and {{Property|Weapon.MinSelectionAmmo2}}.&lt;br /&gt;
::*Added random state duration and [[A_SetTics]].&lt;br /&gt;
::*[[A_Explode]]&#039;s &#039;&#039;affectsource&#039;&#039; parameter has been turned into a flag. Plus, added NOTMISSILE flag to A_Explode as well as to [[A_RadiusThrust]].&lt;br /&gt;
::*[[A_RadiusThrust]] can use negative &#039;&#039;force&#039;&#039; values.&lt;br /&gt;
::*Added [[A_JumpIfTargetInsideMeleeRange]], [[A_JumpIfTargetOutsideMeleeRange]], [[A_SetDamageType]], and [[A_CheckLOF]].&lt;br /&gt;
::*Added {{Flag|INVENTORY.NEVERRESPAWN}}, {{Flag|INVENTORY.NOSCREENFLASH}}, {{Flag|POWERSPEED.NOTRAIL}}, and {{Flag|PLAYERPAWN.CROUCHABLEMORPH}}.&lt;br /&gt;
::*Added JLOSF_NOAUTOAIM flag to [[A_JumpIfTargetInLOS]].&lt;br /&gt;
::*Added WRF_DISABLESWITCH to [[A_WeaponReady]].&lt;br /&gt;
::*[[A_Light]] can use negative values to darken the scene.&lt;br /&gt;
::*Added NORANDOMPUFFZ flag to [[A_CustomPunch]], [[A_FireBullets]], and [[A_CustomBulletAttack]].&lt;br /&gt;
::*Added SXF_USEBLOODCOLOR, SXF_CLEARCALLERTID, SXF_MULTIPLYSPEED, SXF_TRANSFERSCALE, SXF_TRANSFERSPECIAL, and SXF_CLEARCALLERSPECIAL flags to [[A_SpawnItemEx]].&lt;br /&gt;
::*Added the ability to adjust the vertical offset of a rail attack to [[A_RailAttack]] and [[A_CustomRailgun]].&lt;br /&gt;
::*Player-fired seeker [[Projectile|missiles]]&#039; range at which the missiles initially lock-on a [[Actor pointer|tracer]] can be set via {{Property|MaxTargetRange}} actor property.&lt;br /&gt;
::*{{Property|ReactionTime}} added to [[DECORATE expressions]].&lt;br /&gt;
::*Added [[Actor states#NoDelay|NoDelay]] state flag.&lt;br /&gt;
::*Added [[Actor_states#States|Bounce]] actor states.&lt;br /&gt;
::*Fixed few cases of DECORATE definitions inaccuracies for [[Doom]], [[Heretic]], [[Hexen]] and [[Strife]] actors.&lt;br /&gt;
:*[[FONTDEFS]]: Backported SPACEWIDTH from [[ECWolf]].&lt;br /&gt;
:*[[LANGUAGE]]: Brazilian Portuguese support.&lt;br /&gt;
:*[[MAPINFO]]: Added ForgetState, RememberState, and SpawnWithWeaponRaised flags for [[map definition]]s and NoRandomPlayerclass for [[GameInfo definition]]s.&lt;br /&gt;
:*[[MIDI]]: [[FluidSynth]] now recognize {{c|libfluidsynth.dll}} as a valid alias for {{c|fluidsynth.dll}}, various FluidSynth [http://forums.scummvm.org/viewtopic.php?p=72972#72972 tweaks] and fixes. The [[OPL emulator]] now can use either OPL2 or OPL3 emulation, supports full stereo panning and can use up to eight virtual chips.&lt;br /&gt;
:*Updated [[foo_DUMB]].&lt;br /&gt;
:*Implemented additive rendering for [[3D floor]]s.&lt;br /&gt;
:*Added &#039;&#039;{{wp|Quake (video game)|Quake}}&#039;&#039;-like no-clipping with {{CCMD|D|noclip2}}.&lt;br /&gt;
:*Exported the [[scoreboard]] text to [[LANGUAGE]].&lt;br /&gt;
:*The sound system should now precache nearly all sounds used by actor properties and [[ambient sound]]s, and the [[MAPINFO/Map definition|MAPINFO]] command &amp;quot;PrecacheSounds&amp;quot; can be used to precache other sounds.&lt;br /&gt;
:*Arbitrary FPS cap with {{CVAR|R|vid_maxfps}}.&lt;br /&gt;
:*Increased maximum resolution to 5760&amp;amp;times;3600.&lt;br /&gt;
:*Added {{c|lightfog}} property for [[sidedef]]s.&lt;br /&gt;
:*Added support for {{dw|Doom 3: BFG Edition}}&#039;s modified [[IWAD]]s, including {{dw|No Rest for the Living}}.&lt;br /&gt;
:*Improved [[WAD]] archive code with support for big-endian format and LZSS compression used in several console ports.&lt;br /&gt;
:*Added ability in [[UDMF]] to specify things to spawn by [[:Category:Thing specials|thing specials]] and [[Hexen breakable items]] by names with {{c|arg1str}}, as well as the ability to set initial values to a thing&#039;s [[user variable]].&lt;br /&gt;
:*Added new [[node]] format for complex UDMF maps which need fractional precision on node splitters.&lt;br /&gt;
:*The [[alternate HUD]] now features a {{Class|Berserk}} indicator and a customizable time display.&lt;br /&gt;
:*Tweaked {{Class|ScriptedMarine|scripted marines}}.&lt;br /&gt;
:*Added {{c|{{CCMD|D|acsprofile}}}} [[CCMDs|console command]].&lt;br /&gt;
:*[[Weapon slots]] can be configured from the [[Customize controls]] menu.&lt;br /&gt;
:*Solved compatibility issues with [[Daedalus: Alien Defense]], {{dw|Community Chest 3}}, Nuke Mine, Khorus, [[Void]], the {{dw|Master Levels}}, and {{dw|Claustrophobia 1024}}.&lt;br /&gt;
:*{{Class|RandomSpawner}}s now respect {{param|nomonsters}}.&lt;br /&gt;
:*Added the ability to define mod-specific [[CVARs|console variables]] through the addition of the [[CVARINFO]] lump.&lt;br /&gt;
:*Fixed miscellaneous bugs.&lt;br /&gt;
&lt;br /&gt;
;{{LE|2.7.1}}{{cs|21efe3b}} (July 3): {{Forum|t=36679|Release thread}} | {{versionlinks|2|7|1}}&lt;br /&gt;
&#039;&#039;Note: this is the first version based on the [[Git repository]]; 2.7.0 was the last version based on the SVN repository.&#039;&#039;&lt;br /&gt;
* Added new additive [[MAPINFO/GameInfo definition|GameInfo]] keywords: AddCreditPage, AddPlayerClasses, and AddInfoPage.&lt;br /&gt;
* Added a new {{Flag|DONTDRAIN}} flag to mark actors as ineligible for vampirism attacks.&lt;br /&gt;
* [[Automatic compatibility|Compatibility]] fixes for [[Ultimate Simplicity]] map07, [[Cheogsh]] map01, [[Super Sonic Doom]] map31&lt;br /&gt;
* [[Polyobject]] mirror numbers can no longer be changed with [[SetLineSpecial]]. This was never a supported feature and caused problems for legitimate uses of SetLineSpecial on polyobject lines.&lt;br /&gt;
* The powered-up {{Class|GoldWand|Gold Wand}} was not puffing on actors.&lt;br /&gt;
* Disabled [[Heretic]]&#039;s punishment [[cheat]]s when in {{CVAR|C|allcheats}} mode.&lt;br /&gt;
* Objects that explode on death no longer deal the damage they were dealt instead of their own.&lt;br /&gt;
* Vampirism attacks now respect damage reduction.&lt;br /&gt;
* [[Demo]] recording now writes correct user info to demos.&lt;br /&gt;
* ACS&#039;s [[PlaySound]] for looping sounds now works properly when using channel flags.&lt;br /&gt;
&lt;br /&gt;
==2014==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==2015==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==2016==&lt;br /&gt;
;{{LE|2.8.0}}{{cs|56359b6}} (February 3): {{Forum|t=50712|Release thread}} | {{versionlinks|2|8|0}}&lt;br /&gt;
:*Frontend&lt;br /&gt;
:**GoG-installed IWADs are now detected automatically.  Steam-installed IWADs are detected on OS X and Linux.&lt;br /&gt;
:**Improved netcode and added [[network options]] menu to configure new features.&lt;br /&gt;
:**Two new cheats, god2 and buddha2. The player cannot die from telefrag damage with these.&lt;br /&gt;
:**Added WAD compatibility fixes for over a dozen maps, including &#039;&#039;[[Cheogsh 2]]&#039;&#039;, &#039;&#039;XtheaterIII&#039;&#039;, and the infamous missing yellow keycard on TNT MAP31.&lt;br /&gt;
:**+warp now works from the command line.&lt;br /&gt;
:**Added support for standard file paths on Windows.&lt;br /&gt;
:**Added a user-settable factor for [[earthquake]] intensity.&lt;br /&gt;
:*Automap&lt;br /&gt;
:**Non-countable monster actors can have their own separate automap color.&lt;br /&gt;
:**Extended {{c|{{CVAR|A|am_cheat}}}} with three modes to prevent lines flagged as &#039;&#039;hidden&#039;&#039; from being shown on the automap.&lt;br /&gt;
:**Added separate colors for the various types of 2-sided walls for the overlay automap, as well as colors missing from that mode.&lt;br /&gt;
:**Actors sprites can be shown on the automap instead of simple triangles when the second, third, fifth or sixth modes of {{c|am_cheat}} console variable are enabled.&lt;br /&gt;
:*Console&lt;br /&gt;
:**Added a {{c|{{CCMD|O|closemenu}}}} [[CCMDs|console command]], so that menu options that close the [[menu]] can be added.&lt;br /&gt;
:**The behavior of auto-loading external [[DEHACKED]] lumps can be controlled by setting the {{c|dehload}} [[CVARs|console variable]].&lt;br /&gt;
:**Results for console tab-completion are now color-coded; console commands appear blue, console variables green, and aliases red.&lt;br /&gt;
:**Fixed: the {{c|{{CVAR|R|wi_noautostartmap}}}} console variable was not sync-safe.&lt;br /&gt;
:**Added {{c|{{CVAR|C|sv_freelook}}}}, {{c|{{CVAR|C|sv_allowfreelook}}}} and {{c|{{CVAR|C|sv_nofreelook}}}}.&lt;br /&gt;
:*Building&lt;br /&gt;
:**Native Cocoa back end for OS X resulting in significant increases in performance over SDL in addition to better overall user experience.&lt;br /&gt;
:**Added optional support for the OpenAL sound library, allowing for compiling without FMOD.&lt;br /&gt;
:**Added a new [[software synthesizer]], [[WildMIDI]], and a new [[OPL]] core.&lt;br /&gt;
:**Added support for building with clang.&lt;br /&gt;
:**Nearly-complete support for ARM devices such as the Raspberry Pi.  (Some known bugs remain — in particular, you must set vid_forcesurface to true in zdoom.ini, or ZDoom will instantly segfault.)&lt;br /&gt;
:*Modding&lt;br /&gt;
:**Added [[Ceiling_CrushAndRaiseSilentDist]].&lt;br /&gt;
:**New type of [[earthquake]], can only be accessed with [[A_QuakeEx]] or its [[QuakeEx|ACS equivalent]], which can replicate the shaking effect seen in many recent games instead of random camera offsets using the QF_WAVE flag. Quakes can now be scaled in, out, or mixed up. Both wave and regular quakes work together.&lt;br /&gt;
:**Menu&#039;s back button and the pause sign can be animated.&lt;br /&gt;
:**The particle engine is now exposed to modders via the [[A_SpawnParticle]] action function and [[SpawnParticle]] ACS function.&lt;br /&gt;
:**Directory-structured archives now support [[lump filtering]], which loads different resources depending on the base game.&lt;br /&gt;
:**Friction and [[TERRAIN]]-based sector damage are now transferred to [[Sector_Set3dFloor|3D floors]].&lt;br /&gt;
:**Fixed scaling of textures on [[Sector_Set3dFloor|3D floors]].&lt;br /&gt;
:**Overhauled [[sector type]]s and properties. Sectors have several new UDMF properties.&lt;br /&gt;
:**Lines and sectors may now have multiple ids/tags via the moreids UDMF property.&lt;br /&gt;
:**&amp;lt;code&amp;gt;checkswitchrange&amp;lt;/code&amp;gt; now correctly prevents players from pressing switches embedded in the floor or ceiling.&lt;br /&gt;
:**Added {{c|blockhitscan}} and {{c|transparent}} [[linedef|line]] properties, {{c|waterzone}} [[sector]] property, and {{c|alpha}}, {{c|fillcolor}}, {{c|gravity}}, {{c|health}}, {{c|pitch}}, {{c|renderstyle}}, {{c|roll}}, {{c|scale}}, {{c|scalex}}, {{c|scaley}} and {{c|score}} [[thing]] properties for [[Universal Doom Map Format|UDMF]].&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
:**Added {{c|[[DropItem]]}}, {{c|[[DropInventory]]}}, {{c|[[CheckFlag]]}}, {{c|[[GetLineActivation]]}}, {{c|[[GetMaxInventory]]}}, {{c|[[SetLineActivation]]}}, {{c|[[GetArmorInfo]]}}, {{c|[[GetActorPowerupTics]]}}, {{c|[[IsPointerEqual]]}}, {{c|[[ChangeActorAngle]]}}, {{c|[[ChangeActorPitch]]}}, {{c|[[PickActor]]}}, {{c|[[SetSectorDamage]]}}, {{c|[[QuakeEx]]}}, {{c|[[Warp]]}} and {{c|[[CanRaiseActor]]}}  functions.&lt;br /&gt;
:**Added FHF_NORANDOMPUFFZ flag for {{c|[[LineAttack]]}}.&lt;br /&gt;
:**Added BLOCKF_HITSCAN flag for {{c|[[Line_SetBlocking]]}}.&lt;br /&gt;
:**Added {{c|APROP_ViewHeight}}, {{c|APROP_AttackZOffset}} and {{c|APROP_StencilColor}} [[ACS actor properties]].&lt;br /&gt;
:**Fixed potential desync with {{c|[[CheckPlayerCamera]]}}.&lt;br /&gt;
:**Fixed: {{c|[[Thing_SetGoal]]}} could put an actor&#039;s target and goal out of sync.&lt;br /&gt;
:**{{c|[[GetSectorFloorZ]]}} and {{c|[[GetSectorCeilingZ]]}} now interpret 0-tag as &#039;any sector&#039; and return the z-height of whatever sector is at those coordinates.&lt;br /&gt;
:**[[Arrays]] are now supported at the script scope.&lt;br /&gt;
:*[[ANIMDEFS]]:&lt;br /&gt;
:**Added an optional {{c|worldpanning}} flag for camera textures definitions in order to make camera textures pan in world units instead of texture units.&lt;br /&gt;
:**Added {{c|allowdecals}} option to animated doors.&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
:**Four new keybinds for DECORATE use with weapons (see {{c|[[A_WeaponReady]]}}&#039;s User states.)&lt;br /&gt;
:**Sprites now support mirroring via negative scales.&lt;br /&gt;
:**Added {{c|{{Property|Player.UseRange}}}} and {{c|{{Property|Player.AirCapacity}}}} [[player properties]].&lt;br /&gt;
:**Actors can now have extreme death/crash states that are damage type specific.&lt;br /&gt;
:**New &amp;lt;code&amp;gt;randompick&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frandompick&amp;lt;/code&amp;gt; [[DECORATE expressions|non-action functions]].&lt;br /&gt;
:**[[A_Print]], [[A_PrintBold]], and [[A_Log]] can now use &amp;lt;code&amp;gt;$FOO&amp;lt;/code&amp;gt; [[LANGUAGE|translation strings]].&lt;br /&gt;
:**The following functions have been given additional functionalities: {{c|[[A_AlertMonsters]]}}, {{c|[[A_BFGSpray]]}}, {{c|[[A_ChangeVelocity|A_Change]]/[[A_ScaleVelocity|ScaleVelocity]]}}, {{c|[[A_CustomPunch]]}}, {{c|[[A_SetAngle]]}} and {{c|[[A_SetPitch]]}}, {{c|[[A_DamageMaster]]/[[A_DamageChildren|Children]]/[[A_DamageSiblings|Siblings]]}}, {{c|[[A_KillMaster]]/[[A_KillChildren|Children]]/[[A_KillSiblings|Siblings]]}}, {{c|[[A_Log]]}}, {{c|[[A_Print]]}}, {{c|[[A_PrintBold]]}}, {{c|[[A_RadiusGive]]}}, {{c|[[A_Saw]]}}, {{c|[[A_SetScale]]}}, {{c|[[A_SetTics]]}}, {{c|[[A_SpawnItemEx]]}}, {{c|[[A_Teleport]]}}, {{c|[[A_VileAttack]]}}, {{c|[[A_Warp]]}}, {{c|[[A_WeaponReady]]}}.&lt;br /&gt;
:**Added {{Flag|NOFORWARDFALL}}, {{Flag|NOTONAUTOMAP}}, {{Flag|RELATIVETOFLOOR}}, {{Flag|NEVERTARGET}}, {{Flag|NOTELESTOMP}}, {{Flag|ALWAYSTELEFRAG}}, {{Flag|ALLOWPAIN}}, {{Flag|CAUSEPAIN}}, {{Flag|DONTTHRUST}}, {{Flag|BUDDHA}}, {{Flag|FOILBUDDHA}}, {{Flag|MIRRORREFLECT}}, {{Flag|AIMREFLECT}}, {{Flag|THRUREFLECT}}, {{Flag|HARMFRIENDS}}, {{Flag|NOFORWARDFALL}}, {{Flag|HITTARGET}}, {{Flag|HITMASTER}}, {{Flag|HITTRACER}}, {{Flag|WEAPONSPAWN}}, {{Flag|INVENTORY.TOSSED}}, {{Flag|INVENTORY.ALWAYSRESPAWN}}, {{Flag|INVENTORY.TRANSFER}}, and {{Flag|INVENTORY.NOTELEPORTFREEZE}} [[actor flags]].&lt;br /&gt;
:**{{Flag|MTHRUSPECIES}} now works with [[A_BFGSpray]] and rail attacks.&lt;br /&gt;
:**Added {{c|[[A_DamageSelf]]/[[A_DamageTarget|Target]]/[[A_DamageTracer|Tracer]]}}, {{c|[[A_Remove]]/[[A_RemoveSiblings|Siblings]]/[[A_RemoveTarget|Target]]/[[A_RemoveTracer|Tracer]]}}, {{c|[[A_KillTarget]]/[[A_KillTracer|Tracer]]}}, {{c|[[A_DropItem]]}}, {{c|[[A_SetSpeed]]}}, {{c|[[A_SetHealth]]}}, {{c|[[A_ResetHealth]]}}, {{c|[[A_SetFloatBobPhase]]}}, {{c|[[A_SetRoll]]}}, {{c|[[A_SetTeleFog]]}}, {{c|[[A_GiveToChildren|A_GiveTo]]/[[A_TakeFromChildren|TakeFromChildren]]}}, {{c|[[A_GiveToSiblings|A_GiveTo]]/[[A_TakeFromSiblings|TakeFromSiblings]]}}, {{c|[[A_JumpIfHigherOrLower]]}},  {{c|[[A_SetFloatSpeed]]}}, {{c|[[A_SetSpecies]]}}, {{c|[[A_CheckBlock]]}}, {{c|[[A_CheckProximity]]}}, and {{c|[[A_QuakeEx]]}} [[action functions]].&lt;br /&gt;
:**Players with the NODAMAGE flag cannot be telefragged anymore, nor can they take any damage via voodoo dolls.&lt;br /&gt;
:**The amount of health regeneration gained from a {{c|{{Class|PowerRegeneration}}}} powerup can be controlled with the {{c|{{Property|Powerup.Strength}}}} property.&lt;br /&gt;
:**Improved the {{c|[[Actor states#NoDelay|NoDelay]]}} state flag reliability.&lt;br /&gt;
:**Added {{c|Subtract}} render style.&lt;br /&gt;
:**Different types of {{Class|HereticImp|gargoyles}} and {{Class|Mummy|golems}} could infight amongst themselves (original &#039;&#039;[[Heretic]]&#039;&#039; behavior).&lt;br /&gt;
:**Added {{c|[[Actor states#CanRaise|CanRaise]]}} and {{c|[[Actor states#Slow|Slow]]}} actor [[actor states#State keywords|state flags]].&lt;br /&gt;
:*[[LANGUAGE]]:&lt;br /&gt;
:**Externalized &amp;quot;New save game&amp;quot; line for save screen, and [[automap]] statistics display.&lt;br /&gt;
:*[[MAPINFO]]:&lt;br /&gt;
:**Custom colors for both modes of the automap can be set on per-mod basis.&lt;br /&gt;
:**Added {{c|SlowMonsters}}, {{c|HealthFactor}}, {{c|NoInfighting}} and {{c|TotalInfighting}} [[skill definition]]s property.&lt;br /&gt;
:*[[SBARINFO]]:&lt;br /&gt;
:**Extended {{c|[[DrawImage]]}} command.&lt;br /&gt;
:*[[SNDINFO]]:&lt;br /&gt;
:**Fixed incorrect {{Class|Minotaur|Maulotaur}} melee attack sound.&lt;br /&gt;
:*Internals&lt;br /&gt;
:**Removed [[Polymost]] code.&lt;br /&gt;
:**Vast improvements to movement interpolation.&lt;br /&gt;
:**Fixed a lot of leaks and garbage collection issues.&lt;br /&gt;
:**Fixed miscellaneous bugs.&lt;br /&gt;
&lt;br /&gt;
==Next version==&lt;br /&gt;
The following additions are available in [[Git]] builds, but not yet in an official version.&lt;br /&gt;
&lt;br /&gt;
:* The scripting branch has been merged, laying some groundwork for DoomScript™.  So far the only visible changes are:&lt;br /&gt;
:** [[DECORATE]] [[Actor_states|states]] can contain multiple action functions enclosed in braces, and can use &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; blocks.&lt;br /&gt;
:* Portals via [[Line_SetPortal]] (visual only so far; {{Forum|t=46916|original forum thread}})&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://sourceforge.net/projects/zdoom/files/ Sourceforge archive] Unofficial mirror for ZDoom versions&lt;br /&gt;
* [https://github.com/doomtech/zdoom-old GitHub archive] Unofficial repository of pre-SVN source code&lt;br /&gt;
[[Category:Nostalgia]][[Category:ZDoom]]&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=ZDoom_version_history&amp;diff=40939</id>
		<title>ZDoom version history</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=ZDoom_version_history&amp;diff=40939"/>
		<updated>2016-02-08T20:50:20Z</updated>

		<summary type="html">&lt;p&gt;Eevee: /* 2016 */  update 2.8.0 with everything i could find that wasn&amp;#039;t yet mentioned&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page tracks the evolution of [[ZDoom]] by listing the main features of each version.&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!By year&lt;br /&gt;
|[[#1998|1998]] &amp;amp;middot; [[#1999|1999]] &amp;amp;middot; [[#2000|2000]] &amp;amp;middot; [[#2001|2001]] &amp;amp;middot; [[#2002|2002]] &amp;amp;middot; [[#2003|2003]] &amp;amp;middot; [[#2004|2004]] &amp;amp;middot; [[#2005|2005]] &amp;amp;middot; [[#2006|2006]] &amp;amp;middot; [[#2007|2007]] &amp;amp;middot; [[#2008|2008]] &amp;amp;middot; [[#2009|2009]] &amp;amp;middot; [[#2010|2010]] &amp;amp;middot; [[#2011|2011]] &amp;amp;middot; [[#2012|2012]] &amp;amp;middot; [[#2013|2013]] &amp;amp;middot; [[#2014|2014]] &amp;amp;middot; [[#2015|2015]] &amp;amp;middot; [[#2016|2016]]&lt;br /&gt;
|-&lt;br /&gt;
!1.x Branch&lt;br /&gt;
|[[#1.11|1.11]] &amp;amp;middot; [[#1.12|1.12]] &amp;amp;middot; [[#1.13|1.13]] &amp;amp;middot; [[#1.14|1.14]] &amp;amp;middot; [[#1.14a|1.14a]] &amp;amp;middot; [[#1.16|1.16]] &amp;amp;middot; [[#1.17|1.17]] &amp;amp;middot; [[#1.17a|1.17a]] &amp;amp;middot; [[#1.17b|1.17b]] &amp;amp;middot; [[#1.17b1|1.17b1]] &amp;amp;middot; [[#1.17c|1.17c]] &amp;amp;middot; [[#1.18|1.18]] &amp;amp;middot; [[#1.18a|1.18a]] &amp;amp;middot; [[#1.18b|1.18b]] &amp;amp;middot; [[#1.19|1.19]] &amp;amp;middot; [[#1.20|1.20]] &amp;amp;middot; [[#1.21|1.21]] &amp;amp;middot; [[#1.22|1.22]] &amp;amp;middot; [[#1.23 Beta|1.23 Beta]] &amp;amp;middot; [[#1.23 Beta 19|1.23 Beta 19]] &amp;amp;middot; [[#1.23 Beta 20|1.23 Beta 20]] &amp;amp;middot; [[#1.23 Beta 23|1.23 Beta 23]] &amp;amp;middot; [[#1.23 Beta 24|1.23 Beta 24]] &amp;amp;middot; [[#1.23 Beta 25|1.23 Beta 25]] &amp;amp;middot; [[#1.23 Beta 33|1.23 Beta 33]]&lt;br /&gt;
|-&lt;br /&gt;
!2.0 Branch&lt;br /&gt;
|[[#2.0 Beta 13|2.0 Beta 13]] &amp;amp;middot; [[#2.0.47|2.0.47]] &amp;amp;middot; [[#2.0.47i|2.0.47i]] &amp;amp;middot; [[#2.0.48|2.0.48]] &amp;amp;middot; [[#2.0.49|2.0.49]] &amp;amp;middot; [[#2.0.50|2.0.50]] &amp;amp;middot; [[#2.0.51|2.0.51]] &amp;amp;middot; [[#2.0.52|2.0.52]] &amp;amp;middot; [[#2.0.53|2.0.53]] &amp;amp;middot; [[#2.0.54|2.0.54]] &amp;amp;middot; [[#2.0.55|2.0.55]] &amp;amp;middot; [[#2.0.56|2.0.56]] &amp;amp;middot; [[#2.0.57|2.0.57]] &amp;amp;middot; [[#2.0.58|2.0.58]] &amp;amp;middot; [[#2.0.59|2.0.59]] &amp;amp;middot; [[#2.0.60|2.0.60]] &amp;amp;middot; [[#2.0.61|2.0.61]] &amp;amp;middot; [[#2.0.62|2.0.62]] &amp;amp;middot; [[#2.0.63|2.0.63]] &amp;amp;middot; [[#2.0.64|2.0.64]] &amp;amp;middot; [[#2.0.90|2.0.90]] &amp;amp;middot; [[#2.0.91|2.0.91]] &amp;amp;middot; [[#2.0.92|2.0.92]] &amp;amp;middot; [[#2.0.93|2.0.93]] &amp;amp;middot; [[#2.0.94|2.0.94]] &amp;amp;middot; [[#2.0.95|2.0.95]] &amp;amp;middot; [[#2.0.96|2.0.96]] &amp;amp;middot; [[#2.0.97|2.0.97]] &amp;amp;middot; [[#2.0.98|2.0.98]]&lt;br /&gt;
|-&lt;br /&gt;
!2.1 Branch&lt;br /&gt;
|[[#2.1.0|2.1.0]] &amp;amp;middot; [[#2.1.1|2.1.1]] &amp;amp;middot; [[#2.1.2|2.1.2]] &amp;amp;middot; [[#2.1.3|2.1.3]] &amp;amp;middot; [[#2.1.3|2.1.3]] &amp;amp;middot; [[#2.1.4|2.1.4]] &amp;amp;middot; [[#2.1.5|2.1.5]] &amp;amp;middot; [[#2.1.6|2.1.6]] &amp;amp;middot; [[#2.1.7|2.1.7]]&lt;br /&gt;
|-&lt;br /&gt;
!Modern&lt;br /&gt;
|[[#2.2.0|2.2.0]] &amp;amp;middot; [[#2.3.0|2.3.0]] &amp;amp;middot; [[#2.3.1|2.3.1]] &amp;amp;middot; [[#2.4.0|2.4.0]] &amp;amp;middot; [[#2.4.1|2.4.1]] &amp;amp;middot; [[#2.5.0|2.5.0]] &amp;amp;middot; [[#2.6.0|2.6.0]] &amp;amp;middot; [[#2.6.1|2.6.1]] &amp;amp;middot; [[#2.7.0|2.7.0]] &amp;amp;middot; [[#2.7.1|2.7.1]] &amp;amp;middot; [[#2.8.0|2.8.0]] &amp;amp;middot; [[#Next version|Next version]]&lt;br /&gt;
|}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
==1998==&lt;br /&gt;
;{{LE|1.11}} (March 6): {{Plainlink|[http://www.zdoom.org/files/old/zdoom111.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom111s.zip Source]}}&lt;br /&gt;
:Initial release, based on the [[NTDoom]] and [[ATB Doom]]. The version numbering follows from the Doom source code version numbering of 1.10.&lt;br /&gt;
:* Works under both Windows 95 and NT 4.0, although it works best under Win95.&lt;br /&gt;
:* Limited support for the Pause key. It works with some keyboards on some machines.&lt;br /&gt;
:* Supports any resolution compatible with your DirectDraw drivers.&lt;br /&gt;
:* Look up/down à la &#039;&#039;[[Heretic]]&#039;&#039;.&lt;br /&gt;
:* Translucency for selected objects.&lt;br /&gt;
:* Has a [[console]] with most of the functionality of &#039;&#039;Quake&#039;&#039;&#039;s. The only significant missing feature is Tab-completion.&lt;br /&gt;
:* Notarget [[cheat]].&lt;br /&gt;
:* Command to {{CCMD|D|kill}} all [[monster]]s in a level or yourself.&lt;br /&gt;
:* Can play [[MUS]], [[MIDI]], and MOD music.&lt;br /&gt;
:* Selected sounds are played in surround sound.&lt;br /&gt;
:* Doors that need keys to open are highlighted on the [[automap]].&lt;br /&gt;
:* Automap now shows various statistics in addition to the level name.&lt;br /&gt;
:* True keybindings. Bind any key to any command or sequence of commands.&lt;br /&gt;
:* [[Intermission]] screen can now display your stats using absolute values rather than percentages.&lt;br /&gt;
:* A new more general [[demo]] format.&lt;br /&gt;
;{{LE|1.12}} (April 7): {{Plainlink|[http://www.zdoom.org/files/old/zdoom112.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom112s.zip Source]}}&lt;br /&gt;
:* Some visual enhancements were made such as centering the menus and drawing borders around the status bar in higher resolutions.&lt;br /&gt;
:* [[Console command]]s can now be specified on the [[command line parameters|command line]].&lt;br /&gt;
:* Removed some of [[Doom]]&#039;s limits such as VisPlanes, VisSprites, and 2S [[HOM]].&lt;br /&gt;
:* Rewrote some of the inner loops in assembly. (There was some assembly in 1.11, but it never got used.)&lt;br /&gt;
:* New [[CVAR]]s relating to mouse movement. ({{CVAR|C|invertmouse}}, {{CVAR|C|m_pitch}}, {{CVAR|C|m_yaw}}, etc.)&lt;br /&gt;
:* Mouse movement doesn&#039;t get sluggish in high resolutions.&lt;br /&gt;
:* [[Automap]] colors are customizable.&lt;br /&gt;
:* Automap overlay and rotation are available.&lt;br /&gt;
:* Eight [[crosshair]]s.&lt;br /&gt;
:* Shoot up/down.&lt;br /&gt;
:* Alt-Tab and Pause work properly on all machines now.&lt;br /&gt;
:* The {{CCMD|P|+jump}} command now works.&lt;br /&gt;
:* 25% and 75% translucency levels in addition to 50%. The translucency tables now get saved to disk, too, so they only need to be calculated once instead of every time the game is run.&lt;br /&gt;
:* The [[console]] [[font]] is now editable.&lt;br /&gt;
:* Near complete support for [[DeHackEd]] patches. (Only monster infighting and changing a few minor text strings are not supported.)&lt;br /&gt;
:* Sky height and position is now fixed for high resolutions. (It still wraps if you look up, but at least now if you look straight ahead, it never will.)&lt;br /&gt;
:* Weapon sprite is always drawn at the correct location. (It was being drawn too low in some resolutions like 400x300.)&lt;br /&gt;
:* New [[options menu]], which includes a key configuration screen.&lt;br /&gt;
:* [[Stealth monster]]s.&lt;br /&gt;
:* New full-screen [[HUD]].&lt;br /&gt;
:* And a few other things not worth mentioning separately.&lt;br /&gt;
;{{LE|1.13}} (May 26):{{forum|t=4|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom113.zip Build]}}&lt;br /&gt;
:* Fixed some major bugs (that crashed the game) and other lesser bugs that were just annoying.&lt;br /&gt;
:* 3-D collisions for walking under and standing on other things.&lt;br /&gt;
:* The status bar can be scaled to the full width of the screen.&lt;br /&gt;
:* The screen mode can be selected from a menu inside the game.&lt;br /&gt;
:* ZDoom can run in a window on the desktop.&lt;br /&gt;
:* Better [[DeHackEd]] support. Only a few text replacements are not supported. Everything else works (including monster infighting which I haven&#039;t seen in any other port).&lt;br /&gt;
:* New features for level designers (see editing.txt for details):&lt;br /&gt;
::*Specification of next and secret maps on a per-map basis.&lt;br /&gt;
::*Specify sky texture on a per-map basis.&lt;br /&gt;
::*Use any lump in a wad as music for a map.&lt;br /&gt;
::*Give maps a custom name without using a DeHackEd patch.&lt;br /&gt;
::*Maps can be named anything (not just E?M? or MAP??).&lt;br /&gt;
::*Place any messages of any length between any two maps.&lt;br /&gt;
::*&#039;&#039;[[Hexen]]&#039;&#039;-style fog (of any color).&lt;br /&gt;
::*[[Ambient sound]]s &amp;amp;mdash; either point like &#039;&#039;Quake&#039;&#039; or global like &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;Hexen&#039;&#039;.&lt;br /&gt;
::*Automatic use of [[DeHackEd]] patches in PWADs.&lt;br /&gt;
::*No more {{dw|tutti-frutti}} for short textures of certain heights.&lt;br /&gt;
::*zdoom.wcf file for use with [[WadAuthor]].&lt;br /&gt;
:* Rocket jumping. (One very important note about this: You need to be *in the air* when your rocket explodes for rocket jumping to work. This is different from &#039;&#039;Quake&#039;&#039;, and I will probably rewrite it for the next release.)&lt;br /&gt;
:* Dynamic [[palette flash]]es.&lt;br /&gt;
:* Supports stretching skies for [[freelook]].&lt;br /&gt;
:* Larger freelook range.&lt;br /&gt;
:* Added tab-completion to the [[console]].&lt;br /&gt;
:* zdoom.cfg is now the name of the default [[configuration file]] since [[Doom Legacy]] decided to start using config.cfg.&lt;br /&gt;
:* French language support. (Set {{CVAR|C|language}} CVAR to &amp;quot;french&amp;quot;.)&lt;br /&gt;
:* Player obituaries.&lt;br /&gt;
:* Unlimited ammo cheat (use g_unlimitedammo cvar).&lt;br /&gt;
;{{LE|1.14}} (July 22): {{forum|t=5|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom114.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom114-src.zip Source]}}&lt;br /&gt;
:Bugs fixed:&lt;br /&gt;
:* The bunny scroller at the end of E3M8 no longer crashes the game.&lt;br /&gt;
:* The IDKFA [[cheat]] gives the proper amount of armor again.&lt;br /&gt;
:* Demo recording works again.&lt;br /&gt;
:* Telefragging works again.&lt;br /&gt;
:* Picking up the {{Class|InvulnerabilitySphere|invulnerability sphere}} displays the correct colors now.&lt;br /&gt;
:* [[DeHackEd]] patches containing text replacements no longer crash the game.&lt;br /&gt;
:* Printing a string containing &amp;quot;%s&amp;quot; to the console and then changing the video mode will no longer crash the game.&lt;br /&gt;
:* Chat mode finally works again.&lt;br /&gt;
:* If MIDAS can&#039;t initialize, you can still play the game but without sound.&lt;br /&gt;
:* {{Class|Pistol}} and {{Class|chaingun}} sounds no longer cut out when there are lots of {{Class|ZombieMan|zombie men}} shooting their pistols at you.&lt;br /&gt;
:* Mouse input should no longer be so jerky under Windows NT.&lt;br /&gt;
:* The [[crosshair]] is finally accurate for aiming.&lt;br /&gt;
:* [[Autoaim]] is properly remembered each time you start ZDoom.&lt;br /&gt;
:* Switches in &#039;&#039;[[the Ultimate Doom]]&#039;&#039; that aren&#039;t also in the shareware Doom properly change their appearance when switched.&lt;br /&gt;
:New features:&lt;br /&gt;
:* Players can choose their own colors and names. ([[Player setup]] menu is included).&lt;br /&gt;
:* 8-player support (untested but should work).&lt;br /&gt;
:* Miscellaneous internal code changes have been borrowed from the [[Boom]] source. (This does *not* mean that ZDoom supports Boom levels yet.)&lt;br /&gt;
:* [[Cheat]]s, chat messages, and gamestate changes are now recorded in demos.&lt;br /&gt;
:* Single-player demos recorded with ZDoom are generally smaller than before.&lt;br /&gt;
:* &#039;&#039;Quake 2&#039;&#039;-style deathmatch flags.&lt;br /&gt;
:* Cheats (optionally) work in multiplayer games.&lt;br /&gt;
:* Mode X is now supported under Win95, so all the machines that couldn&#039;t run ZDoom in 320x200 before should be able to now.&lt;br /&gt;
:* Fewer conditions result in error messages that quit the game. (If you have &#039;&#039;[[Heretic]]&#039;&#039;, try this: Start ZDoom with -file heretic and go to the console and type &amp;quot;{{CCMD|D|map}} E1M1&amp;quot;.)&lt;br /&gt;
:* Keys can repeat in the [[console]].&lt;br /&gt;
:* The console and chat mode now use the localized keymap set with the Keyboard control panel.&lt;br /&gt;
:* Messages at the top of the screen now break along between words instead of in the middle of them.&lt;br /&gt;
:* Added {{c|-config}} [[command line parameter]].&lt;br /&gt;
:* Added {{c|-fastdemo}} command line parameter.&lt;br /&gt;
:* Added new {{CCMD|D|screenshot}} command. (bound to &amp;quot;Print Screen&amp;quot; key by default)&lt;br /&gt;
:* Added &#039;&#039;Quake&#039;&#039;-like {{CCMD|P|+showscores}} command. (bound to &amp;quot;\&amp;quot; key by default)&lt;br /&gt;
:* [[Alias]]es are now saved in the config file.&lt;br /&gt;
:* Added support for multiple pitched sounds like in very old version of Doom. (Use the snd_pitched cvar to turn it on and off.)&lt;br /&gt;
;{{LE|1.14a}} (July 27): {{forum|t=6|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom114a.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoomsrc114-114a.zip Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:Bugs fixed are:&lt;br /&gt;
:* No more crashing about freeing a pointer without ZONEID when changing levels.&lt;br /&gt;
:* Skies wider than 256 pixels are drawn correctly.&lt;br /&gt;
:* [[Monster]]s&#039; heights are once again the same as they were in id&#039;s original &#039;&#039;[[Doom]]&#039;&#039;, so certain areas work properly again.&lt;br /&gt;
:* Monsters shouldn&#039;t teleport into each other anymore.&lt;br /&gt;
:* Improved support for international keyboards.&lt;br /&gt;
:* The skill level chosen for a new game is no longer ignored if the new game is started while a demo is playing.&lt;br /&gt;
:Cosmetic changes:&lt;br /&gt;
:* No more &amp;quot;sv_gravity changed to...&amp;quot;, &amp;quot;skill changed to...&amp;quot;, etc. messages in single player games.&lt;br /&gt;
:* Activating the [[player setup]] [[menu]] automatically stops any playing [[demo]]s, since it doesn&#039;t work properly while they play.&lt;br /&gt;
:* {{Class|ExplosiveBarrel|Barrels}} don&#039;t go flying away when exploding anymore.&lt;br /&gt;
:* Added def_patch cvar to automatically load a DeHackEd patch each time the game is started.&lt;br /&gt;
:* ZDoom [[savegame]]s now use the name zdoomsv?.dsg instead of doomsav?.dsg.&lt;br /&gt;
:This version also includes some preliminary [[Boom]] support as I started integrating some of the Boom source code with ZDoom:&lt;br /&gt;
:* Medusa fix.&lt;br /&gt;
:* Openings limit removed.&lt;br /&gt;
:* Removed limit on switches and animations.&lt;br /&gt;
:* Added support for Boom-like [[ANIMATED]] and [[SWITCHES]] lumps in PWADs.&lt;br /&gt;
:* Added support for Boom-style scrollers (including conveyors).&lt;br /&gt;
:* Added partial [[deep water]] support.&lt;br /&gt;
;{{LE|1.16}} (December 22): {{forum|t=13|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom116.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom116-src.zip Source]}}&lt;br /&gt;
:Bug fixes:&lt;br /&gt;
:* No more limit on size of [[savegame]]s or [[demo]]s.&lt;br /&gt;
:* Screen resolutions above 320x200 are now the proper brightness (they were too bright before.)&lt;br /&gt;
:* Improved the brightness of the [[console]] [[font]].&lt;br /&gt;
:* {{Class|BulletPuff|Bullet puffs}} can show up on the floor and ceiling and not just walls.&lt;br /&gt;
:* Missile weapons can trigger gun activation lines.&lt;br /&gt;
:* {{Class|ExplosiveBarrel|Barrels}} now bounce around as much as they did in original &#039;&#039;[[Doom]]&#039;&#039;. (They were too &amp;quot;inert&amp;quot; in 1.14.)&lt;br /&gt;
:* If a demo is being recorded, quitting the game normally will save the demo to disk. (Previously, you had to use the stop command to do this.)&lt;br /&gt;
:New features for players:&lt;br /&gt;
:* Proper support for [[Boom]] maps.&lt;br /&gt;
:* Mouse wheel support and {{CCMD|P|weapnext}}/{{CCMD|P|weapprev}} commands.&lt;br /&gt;
:* Doublebindings.&lt;br /&gt;
:* Better analog joystick support.&lt;br /&gt;
:* 180 degree turn command for keyboarders.&lt;br /&gt;
:* Damage done by a rocket to its shooter is {{CVAR|C|splashfator|configurable}} and defaults to the original Doom behavior.&lt;br /&gt;
:* User-configurable gender. (Even though I don&#039;t have any new player sounds, at least the [[obituaries]] are gender-aware. :-)&lt;br /&gt;
:* [[Teamplay]] mode.&lt;br /&gt;
:* {{CVAR|C|sv_nobfgaim|New CVAR}} to disable manual aiming of the BFG to prevent someone from shooting it at the floor and quickly triggering tracer damage before.&lt;br /&gt;
:* Maps no longer need to have as many deathmatch starts as there are players in a deathmatch game.&lt;br /&gt;
:* Support for [[Doom Legacy]] [[skin]]s.&lt;br /&gt;
:* Rewrote the [[MIDI]]/[[MUS]] code so that it has a working volume control.&lt;br /&gt;
:* Many more [[console command]]s and [[CVARs]].&lt;br /&gt;
:New features for editors:&lt;br /&gt;
:* Proper support for [[Boom]] maps.&lt;br /&gt;
:* [[Obituaries]] are configurable with a .bex patch.&lt;br /&gt;
:* [[Monster path]]s&lt;br /&gt;
:* [[Colored lighting]]&lt;br /&gt;
:* [[Fog]] can be applied to only part of a level instead of all of it.&lt;br /&gt;
:* Per-sector [[gravity]] settings.&lt;br /&gt;
:* Support for up to 256 [[ambient sound]]s (as opposed to the limit of 64 in earlier versions).&lt;br /&gt;
:* [[Sector damage]] adjustable from between 0-255 points of damage.&lt;br /&gt;
:* Changeable [[camera]] views.&lt;br /&gt;
:* The following editing features that were introduced in &#039;&#039;[[Hexen]]&#039;&#039; are also available in ZDoom:&lt;br /&gt;
::*Most line specials take arguments that modify their behavior.&lt;br /&gt;
::*[[ACS]] scripting.&lt;br /&gt;
::*[[Hub]]s.&lt;br /&gt;
::*[[Earthquake]]s.&lt;br /&gt;
::*[[Dormant]] monsters.&lt;br /&gt;
::*Trigger events to happen on monster deaths.&lt;br /&gt;
::*[[Floor_Waggle|&amp;quot;Waggling&amp;quot; floors]].&lt;br /&gt;
::*[[Pillar_Build|Pillar builders]].&lt;br /&gt;
::*Push activation lines (walking into a wall can trigger an event).&lt;br /&gt;
::*[[Thing_Spawn|Thing spawning]] (e.g. for traps/gifts).&lt;br /&gt;
&lt;br /&gt;
==1999==&lt;br /&gt;
January 6 of this year saw the first release of the [[Raven Software]] source code.&lt;br /&gt;
;{{LE|1.17}} (February 17): {{forum|t=15|Release thread}} | {{plainlink|[http://www.zdoom.org/files/zdoom/zdos117c.zip DOS build]}}&lt;br /&gt;
:Bug fixes:&lt;br /&gt;
:* [[Multiplayer]] games with [[monster]]s do not crash.&lt;br /&gt;
:* Player corpses do not levitate and then fall down when a player respawns in multiplayer games.&lt;br /&gt;
:* Using {{CCMD|P|togglemap}} outside of a game will not crash.&lt;br /&gt;
:* Monsters stop attacking their target once it is dead.&lt;br /&gt;
:* EV_StopPlat() does not get stuck in an infinite loop if there are [[moving platform]]s.&lt;br /&gt;
:* Partially invisible players are drawn the proper colors (instead of green) if {{CVAR|R|r_drawfuzz}} is 0.&lt;br /&gt;
:* If you are invisible, so are your muzzle flashes.&lt;br /&gt;
:* Trying to execute a non-existent [[ACS|script]] will not crash.&lt;br /&gt;
:* Using a [[ChangeCamera]] special from an open script will not crash.&lt;br /&gt;
:* The [[FloorAndCeiling_RaiseByValue]] and [[FloorAndCeiling_LowerByValue]] now behave like &#039;&#039;[[Hexen]]&#039;&#039;&#039;s.&lt;br /&gt;
:* Using {{c|{{param|-loadgame}}}} from the [[command line]] works.&lt;br /&gt;
:* Fixed a memory leak during generation of the translucency tables.&lt;br /&gt;
:* In high resolutions, weapon sprites meet the bottom of the screen.&lt;br /&gt;
:* Sounds will not cut out mysteriously when there is no reason for them to do so.&lt;br /&gt;
:* Sounds will also not be stopped immediately when a thing is removed, so explosion sounds will play to their full length.&lt;br /&gt;
:* Things can make more than one sound at once.&lt;br /&gt;
:* The [[deathmatch]] [[scoreboard]] is aligned properly at high resolutions.&lt;br /&gt;
:* {{CCMD|P|Spynext}} and {{CCMD|P|spyprev}} work properly instead of leaving the [[status bar]] &amp;quot;lagging behind&amp;quot; the player being viewed.&lt;br /&gt;
:* The {{Class|Infrared|light-amp}} does not disable colored lighting.&lt;br /&gt;
:* The [[sky]] gets {{dw|invulnerability colormap bug|inverted}} when using the invulnerability powerup.&lt;br /&gt;
:* Implemented better z-checking code (from &#039;&#039;[[Heretic]]&#039;&#039;/&#039;&#039;[[Hexen]]&#039;&#039;).&lt;br /&gt;
:* {{Class|PainElemental|Pain elementals}} will spawn one {{Class|LostSoul|lost soul}} at a time instead of two inside of each other.&lt;br /&gt;
:* Bex patches that use thing mnemonics really do work now, and unknown bit messages aren&#039;t generated for regular [[DeHackEd]]  patches.&lt;br /&gt;
:* Linedef type 134 for regular &#039;&#039;[[Doom]]&#039;&#039;/[[Boom]] maps requires a red key for activation (it was being improperly translated to require a blue one).&lt;br /&gt;
:* Monsters can activate secret lines when they cross them. (See &#039;&#039;[[Doom II]]&#039;&#039; MAP08).&lt;br /&gt;
:* The player extreme death sound is used.&lt;br /&gt;
:* When a player leaves a network game, their body is removed instead of being left empty.&lt;br /&gt;
:* 0-length sounds are treated as empty sounds instead of sounds 4 gigs long.&lt;br /&gt;
:* [[Skin]]s that replaced player sounds with sounds in the [[IWAD]] work.&lt;br /&gt;
:* Muzzle flashes do not light up foggy areas, and fullbright sprites stay shrouded in fog.&lt;br /&gt;
:* Alphanumeric keys no longer automatically repeat on the console.&lt;br /&gt;
:* Wads such as gothicdm2 that used new flats in addition to the ones in the IWAD with the regular doom.exe work.&lt;br /&gt;
:New features:&lt;br /&gt;
:* Significant speed improvements on modern processors.&lt;br /&gt;
:* [[Armor]] and [[key]]s are shown on the fullscreen HUD.&lt;br /&gt;
:* Colored text.&lt;br /&gt;
:* A {{CCMD|P|playdemo}} console command.&lt;br /&gt;
:* A [[chasecam]].&lt;br /&gt;
:* A [[particle]] system.&lt;br /&gt;
:* An optional [[railgun]] to show off the particle system. (Start the game with {{c|{{param|-deh}} [[railgun.bex]]}} if you want to use it.)&lt;br /&gt;
:New features interesting for wad authors:&lt;br /&gt;
:* [[Polyobject]]s.&lt;br /&gt;
:* [[Sound sequence]]s.&lt;br /&gt;
:* WAVE files can be used as sound lumps without converting them to DMX&#039;s format first.&lt;br /&gt;
:* A sky can be specified to not be stretched even if it is shorter than 200 pixels.&lt;br /&gt;
:* {{Class|Spark}}s.&lt;br /&gt;
:* {{Class|ParticleFountain|Particle fountain}}s.&lt;br /&gt;
:* Parallax skies.&lt;br /&gt;
:* Some new [[DeHackEd]] thing flags from &#039;&#039;[[Hexen]]&#039;&#039; (bobbing, reflective, etc.).&lt;br /&gt;
;{{LE|1.17a}} (February 21): {{forum|t=16|Release thread}}&lt;br /&gt;
:Mostly minor bug fixes, released because [[Herian 2]] needed some of those fixes. There are a few new features, however:&lt;br /&gt;
:* If you have a skins/ directory in the same directory as zdoom.exe, every wad file in it will be automatically loaded when the game starts. This way, you don&#039;t have to load your [[skin]]s by hand to use them.&lt;br /&gt;
:* New formatting options for text [[print]]ed using [[ACS]].&lt;br /&gt;
:* A [[A_MonsterRail|code pointer]] to make monsters fire a railgun.&lt;br /&gt;
;{{LE|1.17b}} (March 17): {{forum|t=21|Release thread}}&lt;br /&gt;
:Some minor bug fixes over 1.17 and 1.17a. It also loads faster because the sprite dimensions are not cached until they are actually needed. There are also some other internal changes in preparation for supporting &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;[[Hexen]]&#039;&#039;, but those don&#039;t affect the user yet.&lt;br /&gt;
;{{LE|1.17b1}} (March 19): {{forum|t=22|Release thread}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
;{{LE|1.17c}} (May 5): {{forum|t=28|Release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom117c.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom117c-src.zip Source]}}&lt;br /&gt;
:* Fixed game saving crashes on maps with [[wind]]/[[current]] effects.&lt;br /&gt;
:* In [[Boom]] [[deep water]] sectors, the underwater light and fog colors can now be set independently of the area above water.&lt;br /&gt;
:* Added nojump, allowjump, nofreelook, and allowfreelook keywords for use in [[MAPINFO]] lumps to control [[jumping]] and [[free look]].&lt;br /&gt;
:* The random number seed now changes each time you run the program.&lt;br /&gt;
;{{LE|1.18 test 1}} (June 30): {{forum|t=33|Release thread}}&lt;br /&gt;
:* Tweaked the optimized renderer for fifth-generation processors.&lt;br /&gt;
:* Added the following specials:&lt;br /&gt;
::*[[Line_AlignFloor]]&lt;br /&gt;
::*[[Line_AlignCeiling]]&lt;br /&gt;
::*[[Sector_SetRotation]]&lt;br /&gt;
::*[[Sector_SetCeilingPanning]]&lt;br /&gt;
::*[[Sector_SetFloorPanning]]&lt;br /&gt;
::*[[Sector_SetCeilingScale]]&lt;br /&gt;
::*[[Sector_SetFloorScale]]&lt;br /&gt;
:* Added an additional parameter to the [[Transfer_Heights]] special.&lt;br /&gt;
:* Switched to the [http://sourceforge.net/projects/openptc/ OpenPTC] library for display.&lt;br /&gt;
:* Converted lots of code to an object-oriented C++ architecture.&lt;br /&gt;
;{{LE|1.18 test 2}} (July 1): {{forum|t=36|Release thread}}&lt;br /&gt;
:* Fixed vertical aim clipping ({{Class|BFG9000|BFG}} works again).&lt;br /&gt;
:* Fixed [[monster]] wandering.&lt;br /&gt;
:* Maps with mapthings of type 0 no longer generate warning messages.&lt;br /&gt;
:* [[Crusher]]s that do no damage no longer act as if they inflict pain to actors.&lt;br /&gt;
:* The [[alias]] command lists aliases again.&lt;br /&gt;
:* Aliases are saved to the [[config file]] again.&lt;br /&gt;
;{{LE|1.18 test 3}} (July 2): {{forum|t=37|Release thread}}&lt;br /&gt;
:* Removed unnecessary display mode switches.&lt;br /&gt;
:* Created a DCanvas class to encapsulate most 2D rendering.&lt;br /&gt;
;{{LE|1.18 test 4}} (July 3): {{forum|t=39|Release thread}}&lt;br /&gt;
:* Fixed the &amp;quot;Bad DCanvas::CopyRect&amp;quot; problem introduced in test3.&lt;br /&gt;
:* Fixed [[sound sequence]]s that should not be cut off when stopped (such as the standard doors).&lt;br /&gt;
;{{LE|1.18 test 5}} (July 6): {{forum|t=40|Release thread}}&lt;br /&gt;
:* Fixed a potential infinite loop that was introduced in [[#1.18 test 1|118test1]].&lt;br /&gt;
:* Delayed the initial execution of [[CVAR]] callbacks.&lt;br /&gt;
:* Added &#039;&#039;[[Heretic]]&#039;&#039;&#039;s {{wp|Xiaolin Wu&#039;s line algorithm|anti-aliased Wu line drawer}} to the [[automap]].&lt;br /&gt;
;{{LE|1.18 test 6}} (July 10): {{forum|t=41|Release thread}}&lt;br /&gt;
:* Rewrote the {{wp|Xiaolin Wu&#039;s line algorithm|Wu line drawer}} to look better (especially in overlay mode).&lt;br /&gt;
:* [[Sky stretching|Stretched skies]] now get stretched horizontally as well as vertically.&lt;br /&gt;
:* Did an initial integration of the [[Cajun Bot]] 0.71 code.&lt;br /&gt;
;{{LE|1.18 test 7}} (July 12):&lt;br /&gt;
:* Fixed handling of maps with scrolling walls.&lt;br /&gt;
:* Single player works again. In test 6, all games were considered either [[coop]] or [[deathmatch]].&lt;br /&gt;
:* Disabled the [[bot]] thinking code in single player games, so you don&#039;t suffer a performance hit when not using bots.&lt;br /&gt;
:* Added some performance counters accessible through the {{CCMD|D|stat}} command.&lt;br /&gt;
;{{LE|1.18 test 8}} (July 20): {{forum|t=43|Release thread}}&lt;br /&gt;
:* Fixed a crash problem with the &amp;quot;burn&amp;quot; [[screen wipe]].&lt;br /&gt;
:* Fixed a crash problem with playing non-assigned [[sound sequence]]s.&lt;br /&gt;
:* Fixed a crash problem related to trying to shutdown the music subsystem twice.&lt;br /&gt;
:* If you try to add more coop [[bot]]s than there are coop starts, the extra bot leaves quietly instead of ending the game.&lt;br /&gt;
:* {{CVAR|C|sv_weapondrop|Weapondrop}} is now a &amp;quot;server&amp;quot; CVAR, which it should have been in the first place.&lt;br /&gt;
:* Changed the nodetable file format to be more compact.&lt;br /&gt;
:* Bots can now be recorded in demos.&lt;br /&gt;
:* Bots work in [[multiplayer]] games. Still buggy. Spawning bots can cause consistency failures, and they can start spinning wildly.&lt;br /&gt;
;{{LE|1.18 test 9}} (August 9): {{forum|t=44|Release thread}}&lt;br /&gt;
:* Fixed the &amp;quot;wild&amp;quot; [[bot]] spinning problem.&lt;br /&gt;
:* Commands like {{CCMD|D|changemap}} that could make network games go out of sync should work properly now. The reason they would do that is closely related to the reason that the bots would start spinning.&lt;br /&gt;
:* Finished the serializer. Now savegames work. [[Hub]]s don&#039;t, because I haven&#039;t written the player travelling code yet.&lt;br /&gt;
:* Various other code cleanup.&lt;br /&gt;
;{{LE|1.18 test 10}} (August 14):&lt;br /&gt;
:* Reimplemented [[hub]] travel.&lt;br /&gt;
:* Optimized R_MapPlane slightly.&lt;br /&gt;
:* Added {{CCMD|D|fov}} command.&lt;br /&gt;
:* Added vertical sub-pixel accuracy to the renderer.&lt;br /&gt;
:* Added searches for an [[IWAD]] in the current directory, $DOOMWADDIR, and $HOME.&lt;br /&gt;
;{{LE|1.18}} (September 5): {{forum|t=46|Release thread}}&lt;br /&gt;
:* Replaced the older [[Bots|Cajun]] 0.71 with Cajun 0.97.&lt;br /&gt;
:* Fixed handling of [[status bar]] [[mugshot|faces]] with [[skin]]s that provide them.&lt;br /&gt;
:* Added [[swimmable water]].&lt;br /&gt;
:* Messages printed to the middle of the screen also print to the [[console]].&lt;br /&gt;
:* Skill and other server [[CVARs]] get saved in [[savegame]]s again.&lt;br /&gt;
:* Added liquid [[texture warping]].&lt;br /&gt;
:* Bad [[MAPINFO]] lumps generate error messages instead of hanging.&lt;br /&gt;
:* Realized that it&#039;s impossible to guarantee that all object pointers will be valid without some effort, so FArchive saves DObject objects as NULL objects now instead of aborting with an error.&lt;br /&gt;
:* Added the [[built-in ACS functions]] [[LocalAmbientSound]], [[ActivatorSound]], and [[SetLineMonsterBlocking]].&lt;br /&gt;
:* Added a {{Class|SecretTrigger|thing}} that does nothing but count toward the number of [[secret]]s.&lt;br /&gt;
:* Added a {{CCMD|D|fly}} mode.&lt;br /&gt;
:* Finally implemented the {{CCMD|P|+moveup}} and {{CCMD|P|+movedown}} commands.&lt;br /&gt;
;{{LE|1.18a}} (September 12): {{forum|t=47|Release thread}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed [[liquid warping]] temporarily stopping when changing levels.&lt;br /&gt;
:* {{CCMD|P|+mlook|+/-mlook}} commands do not generate unknown command messages.&lt;br /&gt;
:* Fixed support for maps with &amp;gt;10 deathmatch starts. Thanks to Roman Hatsiev.&lt;br /&gt;
:* Fixed support for the special &amp;quot;maps&amp;quot; EndGame? in MAPINFO lumps.&lt;br /&gt;
:* {{Class|TeleportDest2|Teleport destination (no gravity)}} now works as intended.&lt;br /&gt;
:* Hopefully fixed [[savegame]] problems.&lt;br /&gt;
:* [[Bots]] are restored from savegames.&lt;br /&gt;
:* Fixed keyboard turning speed when {{c|{{param|-dup}}}} is used.&lt;br /&gt;
:* Network commands get executed only once when {{c|{{param|-dup}}}} is used.&lt;br /&gt;
:* In sectors with [[damaging floor]]s and swimmable [[deep water]], the damage will also be applied while the player is swimming and not just when the player is on the ground.&lt;br /&gt;
;{{LE|1.18b}} (September 15): {{forum|t=48|Release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom118b.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom118b-src.zip Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed crash when saving games with more than 1024 objects.&lt;br /&gt;
:* Fixed crash when loading a game without starting a new one first.&lt;br /&gt;
:* Reduced the size and frequency of pregame network packets, under the assumption that problems people were having using 1.18 on the Internet are a result of limited modem bandwidth.&lt;br /&gt;
;{{LE|1.19}} (November 24): {{forum|t=53|Release thread}} | {{forum|t=54|Source/Linux build release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom-1.19.tar.gz Source]}}&lt;br /&gt;
:First official Linux build.&lt;br /&gt;
:* [[DeHackEd]] patches that set an actor&#039;s {{Property|DeathSound|death sound}} to 0 without removing the [[A_Scream]] call no longer crash.&lt;br /&gt;
:* Fixed sync problems when playing with {{Class|BulletPuff|bullet puffs}} as [[particle]]s vs as sprites.&lt;br /&gt;
:* Fixed friction when walking on the bottom of swimmable water.&lt;br /&gt;
:* Added Jeffrey Cuenco&#039;s fixes to get {{c|{{param|-host}}}} and {{c|{{param|-join}}}} [[command line parameters]] to work properly.&lt;br /&gt;
:* Fixed [[Boom]] [[Generic_Door|generalized locked doors]] so that the open/close type will actually close.&lt;br /&gt;
:* Added pointer tracking and cleanup. This should fix the occasional crashes when saving games and various other anomalies.&lt;br /&gt;
;{{LE|1.20}} (November 25): {{forum|t=56|Release thread}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed saving, reloading, and then resaving [[savegame|games]] when travelling between levels in a [[hub]].&lt;br /&gt;
:* Fixed saving of [[ACS]] scripts scheduled to occur on a future level.&lt;br /&gt;
;{{LE|1.21}} (November 26): {{forum|t=57|Release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom121.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom121-src.zip Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed problems with thinkers removing themselves and causing other thinkers to not get a chance to think.&lt;br /&gt;
:* Added {{CVAR|R|hud_scale}} CVAR&lt;br /&gt;
;{{LE|1.22}} (November 12): {{forum|t=60|Release thread}} | {{plainlink|[http://www.zdoom.org/files/zdoom/1.x/zdoom122.zip Windows build] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom-1.22-i386.tar.gz Linux build] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom122-src.zip Windows source] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom-1.22.tar.gz Linux source]}}&lt;br /&gt;
:* [[Scroll_Texture_Both]] and [[TranslucentLine]] specials can now be used from [[ACS]].&lt;br /&gt;
:* Fixed compiler-dependent [[CVAR]] ordering during [[netgame]] arbitration.&lt;br /&gt;
:* Fixed certain [[polyobject]] movement combinations that would not stop even though they were supposed to.&lt;br /&gt;
:* Did some cleanup for Alpha processors.&lt;br /&gt;
&lt;br /&gt;
==2000==&lt;br /&gt;
June 20 of this year saw the public release of the [[Build]] source code.&lt;br /&gt;
;{{LE|1.23 Beta}} (May 10): {{forum|t=64|Release thread}}&lt;br /&gt;
:*Partial &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;[[Hexen]]&#039;&#039; support.&lt;br /&gt;
:*Windows build uses [[FMOD Ex|FMOD]] instead of [http://www.s2.org/midas/ MIDAS].&lt;br /&gt;
&lt;br /&gt;
==2001==&lt;br /&gt;
;{{LE|1.23 Beta 19}} (March 9): {{forum|t=74|Release thread}}&lt;br /&gt;
:Added new [[camera]] types.&lt;br /&gt;
:Added [[LANGUAGE|string localization]].&lt;br /&gt;
:Added [[decal]]s.&lt;br /&gt;
:Added [[slope]]s.&lt;br /&gt;
:Added [[skybox]]es.&lt;br /&gt;
;{{LE|1.23 Beta 20}} (March 11): {{forum|t=75|Release thread}}&lt;br /&gt;
;{{LE|1.23 Beta 23}} (April 9): {{forum|t=76|Release thread}}&lt;br /&gt;
;{{LE|1.23 Beta 24}} (April 12): {{forum|t=77|Release thread}}&lt;br /&gt;
;{{LE|1.23 Beta 25}} (August 15): {{forum|t=81|Release thread}}&lt;br /&gt;
:Linux build now uses SDL&lt;br /&gt;
;{{LE|1.23 Beta 28}} (September 17): {{forum|t=83|Release thread}}&lt;br /&gt;
:Added a few [[decal]]-related [[CVARs]].&lt;br /&gt;
;{{LE|1.23 Beta 28a}} (December 13): {{forum|t=88|Release thread}}&lt;br /&gt;
&lt;br /&gt;
==2002==&lt;br /&gt;
;{{LE|1.23 Beta 33}} (February 5): {{Forum|t=90|Release thread}} | {{plainlink|[http://www.zdoom.org/files/zdoom/1.x/zdoom-1.23beta33-linux.bz2 Linux build] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom-1.23beta33-src.tar.bz2 Source]}}&lt;br /&gt;
:Many fixes and rendering optimization.&lt;br /&gt;
:*Increased &#039;&#039;[[Heretic]]&#039;&#039;/&#039;&#039;[[Hexen]]&#039;&#039; support&lt;br /&gt;
:*Improved [[decal]]s.&lt;br /&gt;
:*Added support for the [[Bloodbath announcer]]&lt;br /&gt;
:*Added [[underwater]] [[REVERBS|reverb]] effect.&lt;br /&gt;
:*Added [[Line_Horizon]] effect.&lt;br /&gt;
:*Added {{Class|ScriptedMarine|scripted marines}} and several [[ACS]] enhancements.&lt;br /&gt;
:*Added support for [[DeePsea]]&#039;s [[patch|tall patches]].&lt;br /&gt;
:*Added [[slope]] things.&lt;br /&gt;
:*Changed [[license]] for original ZDoom source code to a &amp;quot;BSD-ish one&amp;quot;.&lt;br /&gt;
;{{LE|2.0 Beta 13}} (August 27):&lt;br /&gt;
:*Further increased &#039;&#039;Heretic&#039;&#039;/&#039;&#039;Hexen&#039;&#039; support.&lt;br /&gt;
:*Added [[PNG]] support for screenshots. [[Savegame]]s are actually PNG files now.&lt;br /&gt;
:*Added [[ZDBSP|internal nodebuilder]], made it [[polyobject]]-aware.&lt;br /&gt;
:*Added SNES SPC music support.&lt;br /&gt;
:*Added a loader for [[Build]] maps.&lt;br /&gt;
:*Added support for double- and quadruple-resolution flats (128x128 and 256x256).&lt;br /&gt;
:*Added ACS [[libraries]].&lt;br /&gt;
:*Added support for up to 8 mouse buttons.&lt;br /&gt;
:*Added the very first version of [[DECORATE]].&lt;br /&gt;
:*Removed [[MBF]]&#039;s torque simulation because of the problems it caused.&lt;br /&gt;
&lt;br /&gt;
==2003==&lt;br /&gt;
;{{LE|2.0.47}} (May 14): {{Forum|t=101|Release thread}} | {{plainlink|[http://www.zdoom.org/files/lars/47.cab Build]}}&lt;br /&gt;
;{{LE|2.0.47i}} (October 2): {{plainlink|[http://www.zdoom.org/files/lars/47i.cab Build]}}&lt;br /&gt;
;{{LE|2.0.48}} (October 23):&lt;br /&gt;
:*Interchangeability between [[flat]]s and [[texture]]s.&lt;br /&gt;
;{{LE|2.0.49}}, {{LE|2.0.50}} (October 26)&lt;br /&gt;
;{{LE|2.0.51}} (October 30)&lt;br /&gt;
;{{LE|2.0.52}} (October 31)&lt;br /&gt;
;{{LE|2.0.53}} (November 16)&lt;br /&gt;
;{{LE|2.0.54}}, {{LE|2.0.55}} (November 23)&lt;br /&gt;
;{{LE|2.0.56}} (November 25)&lt;br /&gt;
;{{LE|2.0.57}} (November 26)&lt;br /&gt;
;{{LE|2.0.58}}, {{LE|2.0.59}} (December 7)&lt;br /&gt;
;{{LE|2.0.60}} (December 8)&lt;br /&gt;
&lt;br /&gt;
==2004==&lt;br /&gt;
;{{LE|2.0.61}} (January 22) &lt;br /&gt;
;{{LE|2.0.62}} (February 7):&lt;br /&gt;
:*Added modern [[DECORATE]] support.&lt;br /&gt;
;{{LE|2.0.63}} (February 10): {{plainlink|[http://www.zdoom.org/files/lars/63.cab Build] {{!}} [http://www.zdoom.org/files/lars/63src.cab Source]}}&lt;br /&gt;
:*Added custom monsters to DECORATE.&lt;br /&gt;
;{{LE|2.0.64}} (June 8)&lt;br /&gt;
;{{LE|2.0.90}} (October 21):&lt;br /&gt;
:*Added &#039;&#039;[[Strife]]&#039;&#039; support and new inventory system&lt;br /&gt;
;{{LE|2.0.91}} (October 22)&lt;br /&gt;
;{{LE|2.0.92}} (October 31)&lt;br /&gt;
;{{LE|2.0.93}} (November 3)&lt;br /&gt;
;{{LE|2.0.94}} (November 19)&lt;br /&gt;
;{{LE|2.0.95}} (December 24): {{plainlink|[http://www.zdoom.org/files/lars/95changes.html Changelog]}}&lt;br /&gt;
:*Added [[camera]] textures to [[ANIMDEFS]] and [[SetCameraToTexture]]&lt;br /&gt;
:*Improved [[console]] tab completion, added Ctrl-X shortcut to clear the console&#039;s command line&lt;br /&gt;
:*Several &#039;&#039;[[Hexen]]&#039;&#039; and &#039;&#039;[[Strife]]&#039;&#039; fixes&lt;br /&gt;
:*Merged in Jim&#039;s [[ACS]] character array [[print]]ing support. &lt;br /&gt;
:*Added the [[polymost]] clipper.&lt;br /&gt;
:*Added support for 16:10 and 5:4 aspect ratios and letterboxing.&lt;br /&gt;
:*Added [[scope|static local variables]], [[Log]], [[SetAmmoCapacity]] and [[GetAmmoCapacity]] to [[ACS]].&lt;br /&gt;
;{{LE|2.0.96}} (December 25): {{plainlink|[http://www.zdoom.org/files/lars/96.cab Build] {{!}} [http://www.zdoom.org/files/lars/96src.cab Source] {{!}} [http://www.zdoom.org/files/lars/96changes.html Changelog]}}&lt;br /&gt;
:*Added [[TITLEMAP]]&lt;br /&gt;
&lt;br /&gt;
==2005==&lt;br /&gt;
;{{LE|2.0.97}} (September 28): {{forum|t=8060|Release thread}} | {{plainlink|[http://www.zdoom.org/files/lars/97.cab Build] {{!}} [http://www.zdoom.org/files/lars/97src.rar Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:*The [[LANGUAGE]] lump is now text-based.&lt;br /&gt;
:*Added IMF [[music format]] support.&lt;br /&gt;
:*Ported [[SetActorAngle]] and [[SetLineBlocking|BLOCK_RAILING]] from the [[ZDoom Community Build]].&lt;br /&gt;
:*Added [[Polymost]] visualization code from [[Build]].&lt;br /&gt;
:*Gave {{Flag|DONTMORPH}} flag to {{Class|Cyberdemon}}, {{Class|SpiderMastermind}}, {{Class|AlienSpectre1}}, {{Class|Crusader}}, {{Class|Programmer}}, and {{Class|Inquisitor}}.&lt;br /&gt;
:*Made {{Class|Puffy}} and projectiles spawned by [[A_LastZap]] deal no damage.&lt;br /&gt;
:*[[Teleport_NewMap]] can now be used within a [[TITLEMAP]] in order to make it possible to use different maps as the title map.&lt;br /&gt;
:*Merged in Graf Zahl&#039;s [[Caverns of Darkness]] patch.&lt;br /&gt;
:*Added [[Polymost]] wireframe mode.&lt;br /&gt;
:*Added {{CCMD|O|writeopl}} console command.&lt;br /&gt;
:*[[UsePuzzleItem]] can now be a [[thing]]&#039;s [[special]].&lt;br /&gt;
:*Missiles with negative damage now give you health.&lt;br /&gt;
;{{LE|2.0.98}} (November 3): {{forum|t=8460|Release thread}} | {{plainlink|[http://www.zdoom.org/files/lars/98.cab Build] {{!}} [http://www.zdoom.org/files/lars/98src.rar Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
&lt;br /&gt;
==2006==&lt;br /&gt;
February 16 of this year saw the first commit to the [[SVN]] repository.&lt;br /&gt;
;{{LE|2.1.0}}{{rev|204}} (June 21): {{forum|t=10550|Release thread}} | {{plainlink|[http://zdoom.org/files/old/zdoom-2.1.0.zip Build] {{!}} [http://zdoom.org/files/old/zdoom-2.1.0-src.7z Source]}}&lt;br /&gt;
:*Added several things from [[ZDoom Community Build]] (unofficial 2.0.96x) and [[GZDoom]], including custom [[DECORATE]] [[weapon]]s.&lt;br /&gt;
;{{LE|2.1.1}}{{rev|226}} (June 25): {{forum|t=10630|Release thread}} | {{versionlinks|2|1|1}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
;{{LE|2.1.2}}{{rev|257}} (July 17): {{forum|t=10895|Release thread}} | {{versionlinks|2|1|2}}&lt;br /&gt;
:*Added custom [[player class]]es.&lt;br /&gt;
:*Added &amp;quot;replaces&amp;quot; keyword for [[DECORATE]].&lt;br /&gt;
:*[[IWAD selection box]] now remembers the last choice.&lt;br /&gt;
:*Added [[A_RadiusThrust]] to DECORATE.&lt;br /&gt;
:*Added [[ThingCountName]] and  [[SpawnSpotFacing]] to [[ACS]].&lt;br /&gt;
:*Changed additive scroller options into a [[compatibility options|compatibility flag]].&lt;br /&gt;
;{{LE|2.1.3}}{{rev|265}} (July 18): {{forum|t=10930|Release thread}} | {{versionlinks|2|1|3}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Sounds can be specified by full path now in [[SNDINFO]] and [[S_SKIN]].&lt;br /&gt;
:* [[DECORATE]] replacement is more universal.&lt;br /&gt;
:* Added NecroMage&#039;s submission for bitwise/shift assignment operators for [[ACS]]. (Requires [[ACC]] 1.42+.)&lt;br /&gt;
:* Changed PlayAttacking2 to always use the melee state instead of different implementations per player and hard coding it to MissileState+1. Also changed PlayAttacking for the {{Class|HereticPlayer}} to use the same animation as PlayAttacking2. Now the special handling for &#039;&#039;[[Heretic]]&#039;&#039; in the FireWeapon functions can be removed.&lt;br /&gt;
;{{LE|2.1.4}}{{rev|273}} (July 29): {{forum|t=11063|Release thread}} | {{versionlinks|2|1|4}}&lt;br /&gt;
:*Added partial emulation of [[Boom]]&#039;s TRANMAP by analyzing such lumps and extrapolating translucency level from them. This does not work for non-translucency effects that can be achieved with TRANMAPs.&lt;br /&gt;
:*Added a {{CVAR|C|queryiwad_key}} cvar to control which key can force the [[IWAD selection box]] to appear. It can be either &amp;quot;shift&amp;quot; or &amp;quot;control&amp;quot;. Any other value will disable its functionality.&lt;br /&gt;
;{{LE|2.1.5}}{{rev|321}} (September 2): {{forum|t=11466|Release thread}} | {{versionlinks|2|1|5}}&lt;br /&gt;
:*New [[ACS]] functions: [[GetPlayerInfo]], [[ChangeLevel]], [[SectorDamage]], [[ReplaceTextures]]&lt;br /&gt;
:*New [[DECORATE]] functions: [[A_PlaySoundEx]], [[A_StopSoundEx]]&lt;br /&gt;
:*The {{CVAR|C|vid_nowidescreen}} cvar can be used to disable widescreen aspect ratio correction.&lt;br /&gt;
:*[[A_SpawnDebris]] and [[A_SpawnItem]] can optionally transfer the caller&#039;s color translation to the newly spawned item.&lt;br /&gt;
:*New morphing artifacts can be created by subclassing the {{Class|MorphProjectile}} and {{Class|MorphedMonster}} classes.&lt;br /&gt;
:*[[A_FireCustomMissile]] has a new parameter: Previously it always aimed straight ahead and altered the projectile&#039;s angle according to the resulting direction. If the 6th parameter is 1 now it will aim at the specified angle directly.&lt;br /&gt;
:*Users can now define their own [[TEXTCOLO|text colors]], and there are several new standard ones.&lt;br /&gt;
:*The fourth parameter of [[Polyobj_StartLine]] and the fifth parameter of [[Polyobj_ExplicitLine]] now set the line&#039;s ID.&lt;br /&gt;
:*DECORATE explosion parameters are no longer considered deprecated.&lt;br /&gt;
:*Calling [[Radius_Quake]], [[Thing_Activate]], or [[Thing_Remove]] with a [[TID]] of 0 now operates the activator.&lt;br /&gt;
:*Strife&#039;s {{Class|PhosphorousFire}} now does completely thrustless damage.&lt;br /&gt;
:*An actor&#039;s damage in DECORATE can now be specified as an expression that is evaluated each time it needs to do damage. To do this, enclose it within parentheses, and the normal Doom damage calculation will be bypassed.&lt;br /&gt;
:*Passing a negative script number to the {{CCMD|D|puke}} [[console command]] now runs the script with [[ACS_ExecuteAlways]] instead of [[ACS_Execute]].&lt;br /&gt;
:*[[Polyobject]]s defined with [[Polyobj_ExplicitLine]] are no longer limited to 64 segs.&lt;br /&gt;
:*Starting a new game or reloading an old one no longer resets the [[chasecam]].&lt;br /&gt;
:*The [[automap]] background is now a regular texture.&lt;br /&gt;
:*Added support for many [[image format]]s for use as textures: [[PNG]], JPEG, PCX, TGA, DDS.&lt;br /&gt;
:*Numerous bugfixes.&lt;br /&gt;
;{{LE|2.1.6}}{{rev|346}} (October 2): {{forum|t=11758|Release thread}} | {{versionlinks|2|1|6}}&lt;br /&gt;
:*Scaled 2D images are supported.&lt;br /&gt;
:*Dehacked max health usage defaults to consistency with other ([[Boom]]) ports.&lt;br /&gt;
:*A &#039;&#039;font&#039;&#039; parameter was added to [[A_Print]].&lt;br /&gt;
:*Quoted strings in [[DECORATE]] can no longer span multiple lines without using the escape character (\) at the end of each line. This makes it easier to spot places where you unintentionally left off a closing quote and got an error several lines later.&lt;br /&gt;
:*A new {{CCMD|O|writeini}} console command can be used to save [[the ini]] at any time, with any file name.&lt;br /&gt;
:*If the ini is write-protected when you quit, an error dialog now opens to let you know your settings could not be saved and gives you the opportunity to unprotect it.&lt;br /&gt;
:*Multiple stat displays can be enabled at once.&lt;br /&gt;
:*Several bugfixes.&lt;br /&gt;
;{{LE|2.1.7}}{{rev|524}} (October 31): {{forum|t=12015|Release thread}} | {{versionlinks|2|1|7}}&lt;br /&gt;
:*Alias commands can now do parameter substitution. If you have %x, where x is some number, in an alias command, it will be replaced by the appropriately numbered parameter passed when the alias is used, with %0 being replaced by the name of the alias itself.&lt;br /&gt;
:*A new {{Class|MapMarker}} actor has been added that you can use to mark points of interest on the [[automap]]. If its first argument is zero, the map marker itself appears on the automap, otherwise it is drawn on top of any actor with a [[TID]] matching that argument. If the second argument is one, then the map marker will only be appear if the player has previously seen the sector it is in. You can use [[Thing_Activate]] and [[Thing_Deactivate]] on markers to turn them on and off. To make custom markers, all you need to do is subclass MapMarker with [[DECORATE]].&lt;br /&gt;
:*Added the [[SetActorPitch]] [[ACS]] command to set an actor&#039;s pitch.&lt;br /&gt;
:*You can pass multiple jump targets to the [[A_Jump]] [[DECORATE]] function, and it will choose one of them at random if it jumps.&lt;br /&gt;
:*Using a [[TID]] of 0 with [[Thing_Deactivate]], [[SetActorAngle]], [[Thing_Spawn]]*, [[Thing_Projectile]]*, and [[Thing_Move]] will now operate on the activator.&lt;br /&gt;
:*The fifth argument for [[Line_SetIdentification]] can be used to set the high byte of the line ID.&lt;br /&gt;
:*Added a {{Property|CameraHeight}} [[DECORATE]] property for actors.&lt;br /&gt;
:*Added special death states for [[projectile]]s hitting actors. If missiles hit a non-bleeding actor, they try the Crash state first. If that doesn&#039;t exist or the actor is bleeding, they try the XDeath state next. If they hit anything else or neither of the two states are defined, they use the normal death state.&lt;br /&gt;
:*Added a {{Flag|PIERCEARMOR}} [[DECORATE]] flag for projectiles.&lt;br /&gt;
:*The {{CCMD|D|morphme}} [[console command]] can be given an optional argument to specify which class to morph into.&lt;br /&gt;
:*Miscellaneous bugfixes.&lt;br /&gt;
&lt;br /&gt;
==2007==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
==2008==&lt;br /&gt;
;{{LE|2.2.0}}{{rev|748}} (February 15): {{forum|t=16272|Release thread}} | {{versionlinks|2|2|0}}&lt;br /&gt;
:*This is the final version of ZDoom to fully support Windows 95 since later versions switched to [[FMOD Ex]].&lt;br /&gt;
:*Added [[custom damage types]], with monsters being able to have different custom pain chances, custom damage factors, and custom death sequence for each damage type. Also, damage-specific player pain and death sounds.&lt;br /&gt;
:*Custom damage color for [[palette flash]]es per [[player class]].&lt;br /&gt;
:*Custom state labels. New states can be defined in [[DECORATE]].&lt;br /&gt;
:*The [[SBARINFO]] lump for creating status bar and other [[HUD]]s.&lt;br /&gt;
:*[[Skill definition]] in [[MAPINFO]], with many properties.&lt;br /&gt;
:*Most thing functions treat a [[TID]] of 0 as the activator now.&lt;br /&gt;
:*Support for [[ENDOOM]] screens and the graphical or semi-graphical [[startup lumps|screens]] from &#039;&#039;[[Heretic]]&#039;&#039;, &#039;&#039;[[Hexen]]&#039;&#039; and &#039;&#039;[[Strife]]&#039;&#039;.&lt;br /&gt;
:*Several things backported from [[Skulltag]], including powerups and flags for increased port compatibility:&lt;br /&gt;
::*{{Class|PowerDrain|Drain}}, {{Class|PowerHighJump|HighJump}} and {{Class|PowerRegeneration|Regeneration}} runes as powerups and used specific player sounds for their sound effects.&lt;br /&gt;
::*PowerQuadDamage and PowerQuarterDamage as more customizable {{Class|PowerDamage}} and {{Class|PowerProtection}}. These new powerups allow free customization of the damage modification per damage type by inheriting from these classes and setting specific values. Such derived damage/protection powerups will be considered as separate powers so that for example a QuadDamage and a DoubleDamage item can be stacked which would result in 8x damage.&lt;br /&gt;
::*{{Property|Armor.MaxBonus}} and {{Property|Armor.MaxBonusMax}} properties to create armor bonuses that increases the max amount that can be given by other armor items.&lt;br /&gt;
::*Custom F1 help screen [[MAPINFO]] option&lt;br /&gt;
::*Added REDMAP and GREENMAP [[palette blend]]s.&lt;br /&gt;
::*Imported SAME_SPAWN_SPOT [[DM flag]]&lt;br /&gt;
::*Pickup sprite for the {{Class|pistol}}.&lt;br /&gt;
::*Imported {{CVAR|R|r_maxparticles}} CVAR.&lt;br /&gt;
:*New [[Direct3D]] code for better Vista support.&lt;br /&gt;
:*Autoload sections in [[the ini]].&lt;br /&gt;
:*[[GZDoom]]&#039;s [[alternate HUD]].&lt;br /&gt;
:*Custom blood on an actor-by-actor basis into [[DECORATE]].&lt;br /&gt;
:*Smart [[autoaim]] code to prevent the targeting of friendly monsters.&lt;br /&gt;
:*New {{Flag|NOBLOODDECALS}} flag that prevents bleeding actors from spawning blood [[decal]]s.&lt;br /&gt;
:*Customizable border textures. They are defined with the [[MAPINFO]] keyword &#039;bordertexture&#039; and are settable per map.&lt;br /&gt;
:*Custom label support for [[A_Chase]] and [[A_VileChase]]&lt;br /&gt;
:*{{Property|Player.RunHealth}} property to expose the {{Class|StrifePlayer}}&#039;s behavior of not being able to run when its [[health]] is below 10.&lt;br /&gt;
:*Customizable gravity per actor&lt;br /&gt;
:*New {{CCMD|D|summonfoe}} console command, which is analogous to {{CCMD|D|summonfriend}} but forces the summoned creature to be hostile instead.&lt;br /&gt;
:*Added two new [[MAPINFO]] flags to control what actor activates impact lines: {{c|MissileShootersActivateImpactLines}} (the current behavior) and {{c|MissilesActivateImpactLines}} (the original &#039;&#039;[[Hexen]]&#039;&#039; behavior).&lt;br /&gt;
:*More player water sounds: {{c|*dive}} (head goes below water), {{c|*surface}} (your head goes back above water), {{c|*gasp}} (getting air back after starting to drown)&lt;br /&gt;
:*Using &amp;quot;*&amp;quot; with [[ACS]]&#039;s music commands will play the level&#039;s default music set in [[MAPINFO]]&lt;br /&gt;
:*Two new CVARs ({{CVAR|C|win_x}} and {{CVAR|C|win_y}}) that keep track of the window position when not playing in fullscreen mode&lt;br /&gt;
:*Key bindings can now be [[print]]ed with [[ACS]]&lt;br /&gt;
:*{{Flag|INVENTORY.KEEPDEPLETED}} flag for inventory items to keep them in the player&#039;s inventory even when they have been used up. If the item also has an inventory bar icon, it will be drawn darkened while it is depleted.&lt;br /&gt;
:*{{Flag|INVENTORY.IGNORESKILL}} flag for ammo that prevents the given quantity from being modified by the skill level&lt;br /&gt;
:*{{Property|Player.AttackZOffset}} for {{Class|PlayerPawn}}. This is the offset from the center of the player at which their attacks are fired and scales according to their crouched height.&lt;br /&gt;
:*Added a new [[SetActorState]] [[ACS]] function.&lt;br /&gt;
:*{{Flag|CANUSEWALLS}} flag which allows a [[monster]] to activate &#039;use&#039; specials like doors. This flag is on by default for any monster, which was the previous behavior.&lt;br /&gt;
:*[[Thing_Stop]] action special.&lt;br /&gt;
:*New {{Flag|FORCERADIUSDMG}} flag that allows exploding items to hurt boss monsters.&lt;br /&gt;
:*New {{Flag|USESPECIAL}} flag that allows using things to execute their [[special]]s.&lt;br /&gt;
:*[[Compatibility option]] to restore the original behavior of the {{Class|PowerInvisibility|Invisibility}} powerup&lt;br /&gt;
:*Telefrag option added to [[A_SpawnItemEx]].&lt;br /&gt;
:*Added option to [[A_Chase]] that prevents the monster from moving.&lt;br /&gt;
:*New {{c|allowrespawn}} MAPINFO option.&lt;br /&gt;
:*New [[scoreboard]]s.&lt;br /&gt;
:*New [[A_LookEx]] function.&lt;br /&gt;
:*Customizable [[team]]s through the [[TEAMINFO]] lump.&lt;br /&gt;
:*New {{CCMD|D|take}} console command to do the opposite of {{CCMD|D|give}}.&lt;br /&gt;
:*[[UseInventory]]/[[UseActorInventory]] [[ACS]] functions.&lt;br /&gt;
:*New [[A_CustomBulletAttack]] &#039;&#039;aimfacing&#039;&#039; parameter&lt;br /&gt;
:*New [[A_PlaySoundEx]] attenuation parameter.&lt;br /&gt;
:*[[Automap]] markers are stored in [[savegame]]s now.&lt;br /&gt;
:*&#039;No respawn&#039; [[DM flag]] which prevents a [[player]] from respawning after they have died.&lt;br /&gt;
:*&#039;Keep frags gained&#039; [[DM flag]] which allows you to choose whether you want to reset the [[frag]]s of each player next level or not.&lt;br /&gt;
:*Sector_Outside [[sector type]] which forces outside [[fog]] regardless of ceiling texture.&lt;br /&gt;
:*User-defined [[crosshair]]s in the [[Display options]] menu. See xhairs.txt in zdoom.pk3.&lt;br /&gt;
:*Generic log display that can show &#039;&#039;[[Strife]]&#039;&#039;&#039;s log messages in all games regardless of the current game, active [[status bar]] and [[HUD]] mode.&lt;br /&gt;
:*Support for stenciling actors with {{Property|RenderStyle}} property.&lt;br /&gt;
:*.TXT files can now be loaded by simply dragging-and-dropping them on top of zdoom.exe.&lt;br /&gt;
:*&#039;Ice&#039; [[translation]] is accessible from [[DECORATE]].&lt;br /&gt;
:*[[Teamplay]] MAPINFO option.&lt;br /&gt;
:*[[ACS]] script type [[RETURN]]. These are executed by players who return to a map they&#039;ve previously been to.&lt;br /&gt;
&lt;br /&gt;
==2009==&lt;br /&gt;
;{{LE|2.3.0}}{{rev|1455}} (March 1): {{Forum|t=21116|Release thread}} | {{versionlinks|2|3|0}}&lt;br /&gt;
:*[[Universal Doom Map Format]] (UDMF) support.&lt;br /&gt;
:*New garbage collector to improve performances on resource-intensive maps.&lt;br /&gt;
:*Sound uses [[FMOD Ex]] instead of FMOD. Among the benefits, [[REVERBS|reverbs]] can now work on any sound card, not just those that support EAX.&lt;br /&gt;
:*SPC is now a first-class [[music format]] that no longer requires an external DLL to play.&lt;br /&gt;
:*Support for [[Vavoom]]&#039;s [[slope|vertex height things]] and [[Eternity Engine]]&#039;s [[3D middle texture]]s.&lt;br /&gt;
:*[[Linked sectors]], to ensure that multiple [[sector]]s can move consistently in sync.&lt;br /&gt;
:*[[TEXTURES]] lump for text-based texture definitions.&lt;br /&gt;
:*[[Automatic compatibility|MD5-based recognition of maps]] that require certain [[compatibility options]] to work (e.g., {{dw|Strain}} map 7 which relied on the {{dw|Spechits overflow}} bug) to apply these settings transparently.&lt;br /&gt;
:*[[Freedoom]], [[Chex Quest]], and [[Chex Quest 3]] are recognized as [[IWAD]]s and can be selected in the [[IWAD selection box]]. New aliases are available for IWADs, too.&lt;br /&gt;
:*New [[MAPINFO]] format (the old is still supported of course) with a more robust syntax.&lt;br /&gt;
:*Custom [[map translator]]s for Doom-format maps, which can be specified in MAPINFO.&lt;br /&gt;
:*[[Strife]] dialogues now work in multiplayer.&lt;br /&gt;
:*Setting up slots for custom weapons no longer requires a [[KEYCONF]] lump, the limit of 8 weapons per slot is removed.&lt;br /&gt;
:*Added the &amp;quot;{{Class|RandomSpawner|random spawner}}&amp;quot; actor, customizable {{Class|BossEye}}s, {{Class|CustomBridge}}, {{Class|FastProjectile}}.&lt;br /&gt;
:*Many new [[compatibility options]], including one to have [[projectile]]s pass through solid decorations.&lt;br /&gt;
:*More flexible use of [[lightning]] in a map.&lt;br /&gt;
:*The two different [[crushing mode]]s (Doom and Hexen) are now selectable per action.&lt;br /&gt;
:*Customizable pickup flash with {{Property|Inventory.PickupFlash}} property.&lt;br /&gt;
:*[[DeHackEd]] music name replacement has been restored.&lt;br /&gt;
:*Rewritten DECORATE parser, more robust and featuring better error reporting. All actors are defined in DECORATE now.&lt;br /&gt;
:*Functions to handle [[weapon]] reloading through DECORATE.&lt;br /&gt;
:*New [[ACS]] functions: [[GetPlayerInput]], [[GetActorProperty|Get]]/[[SetActorProperty]].&lt;br /&gt;
:*Many actions are now more flexible through optional parameters, for example [[A_Die]] can specify damage type to send to a custom Death state, [[A_KeenDie]] can affect tags other than 666, [[A_Fire]] can specify a vertical offset, and so on.&lt;br /&gt;
:*Many, many new [[DMFlags]] for [[cooperative]] plays, such as having to kill all [[monster]]s before leaving the map or seeing the other [[player]]s on the [[automap]].&lt;br /&gt;
:*Enhanced &#039;&#039;[[Strife]]&#039;&#039; support.&lt;br /&gt;
:*Various and sundry bug fixes.&lt;br /&gt;
;{{LE|2.3.1}}{{rev|1480}} (March 15): {{Forum|t=21296|Release thread}} | {{versionlinks|2|3|1}}&lt;br /&gt;
:Mostly a bugfix release.&lt;br /&gt;
:*Fixes the bug that prevented you from switching weapons after respawning in multiplayer.&lt;br /&gt;
:*Fixes a performance regression introduced in 2.3.0.&lt;br /&gt;
:*Adds support for zip/pk3 files with LZMA and BZip2 compression. (7-Zip is one program that can create such files.)&lt;br /&gt;
:*Addresses a few other niggles.&lt;br /&gt;
&lt;br /&gt;
==2010==&lt;br /&gt;
;{{LE|2.4.0}}{{rev|2075}} (January 1): {{Forum|t=24602|Release thread}} | {{versionlinks|2|4|0}}&lt;br /&gt;
:*Rewritten [[archive format|archive]] management code.&lt;br /&gt;
::*Added support for new [[archive format]]s: 7z, &#039;&#039;Quake&#039;&#039; PAK, &amp;quot;Shrink&amp;quot; and &amp;quot;Implode&amp;quot;.&lt;br /&gt;
::*Removed loading limit of 65 535 lumps. The archive manager can now handle up to 4 294 967 295 lumps.&lt;br /&gt;
:*Rewritten mouse and keyboard handling input under Windows.&lt;br /&gt;
:*Reimplemented and improved support for gamepads and joysticks.&lt;br /&gt;
:*Added truecolor display of the [[HUD]], [[menu]]s and other 2D elements outside the game world when using [[Direct3D]] on Windows.&lt;br /&gt;
:*Replaced SNES_SPC with Game Music Emu, greatly increasing the number of supported emulated [[music format]]s.&lt;br /&gt;
:*Added compiling support for {{wp|Macintosh}} systems.&lt;br /&gt;
:*Added [[IWAD]] recognition for Ultimate [[Freedoom]], [[Action Doom 2: Urban Brawl|Action Doom 2]], [[Blasphemer]] and [[Harmony]].&lt;br /&gt;
:*Added {{param|-noautoload}}, {{param|-norun}}, {{param|-stdout}}, and {{param|-warpwipe}} command line parameters.&lt;br /&gt;
:*Added {{CVAR|C|save_dir}} and {{CVAR|R|d3d_antilag}} console variables.&lt;br /&gt;
:*Added optional parameters to {{CCMD|D|summon}} commands, added {{CCMD|D|summonmbf}} command.&lt;br /&gt;
:*Added {{CCMD|D|info}} command to obtain very verbose debugging information on actors.&lt;br /&gt;
:*Buddha mode&lt;br /&gt;
:*Added [[score]] and {{Class|ScoreItem}}s.&lt;br /&gt;
:*Added [[GameInfo definition]]s to [[MAPINFO]].&lt;br /&gt;
:*Changed random seed initialization so that it uses the system&#039;s cryptographically secure random number generator, if available, instead of the current time. Also changed the random number generator from Lee Killough&#039;s algorithm to the SFMT607 variant of the {{wp|Mersenne twister}}.&lt;br /&gt;
:*Disabled custom [[DEHSUPP]] lumps.&lt;br /&gt;
:*Added &#039;damage&#039; to the actor variables exported to [[DECORATE expressions|DECORATE&#039;s expression evaluator]].&lt;br /&gt;
:*Added &#039;frandom&#039; DECORATE function to the expression evaluator, which is like &#039;random&#039; but for floating point values instead of integers.&lt;br /&gt;
:*Added Raven color set and dagger-like vector sprite to the [[automap]].&lt;br /&gt;
:*Added desatured [[translation]]s.&lt;br /&gt;
:*[[SBARINFO]]: Added the ability to center things with fullscreenoffsets enabled, added [[underwater]] stats.&lt;br /&gt;
:*[[MAPINFO]]: Added [no_]grinding_polyobj, resetinventory properties, added EndTitle option for {{c|nextmap}}.&lt;br /&gt;
:*Added actor replacement to [[skill definition]]s.&lt;br /&gt;
:*Exported many hardcoded values to [[GameInfo definition]]s.&lt;br /&gt;
:*Added [[Line_SetBlocking]] and [[Sector_SetPortal]] specials.&lt;br /&gt;
:*Added {{c|defaultterrain}} section to [[TERRAIN]].&lt;br /&gt;
:*Added new [[earthquake]] functions.&lt;br /&gt;
:*Added [[user variable]]s.&lt;br /&gt;
:*[[DECORATE]]: Added {{Property|Species}}, {{Property|Activation}}, {{Property|PainThreshold}}, {{Property|PushFactor}}, {{Property|WeaveIndexXY}}, {{Property|WeaveIndexZ}}, {{Property|Powerup.Strength}}, {{Property|Player.MugShotMaxHealth}}, {{Property|Inventory.InterHubAmount}} properties.&lt;br /&gt;
:*Turned old bounce flags into {{Property|BounceType}} property.&lt;br /&gt;
:*Added {{Property|DamageFactor}} handling to Armors.&lt;br /&gt;
:*Added &amp;quot;BLUEMAP&amp;quot; [[palette blend]] for {{Property|Powerup.Color}}, and added {{Property|Powerup.Colormap}} for custom colormaps.&lt;br /&gt;
:*Added {{Flag|MOVEWITHSECTOR}}, {{Flag|NOBOSSRIP}}, {{Flag|THRUACTORS}}, {{Flag|THRUSPECIES}}, {{Flag|DONTSEEKINVISIBLE}}, {{Flag|FORCEPAIN}}, {{Flag|NOFEAR}}, {{Flag|BUMPSPECIAL}}, {{Flag|STEPMISSILE}}, {{Flag|NOTELEPORT}}, {{Flag|NOTRIGGER}},  {{Flag|AVOIDMELEE}}, {{Flag|JUMPDOWN}}, {{Flag|SCREENSEEKER}}, {{Flag|INVENTORY.PERSISTENTPOWER}}, {{Flag|WEAPON.AMMO_CHECKBOTH}}, {{Flag|WEAPON.NOAUTOAIM}} flags.&lt;br /&gt;
:*Added [[A_CheckCeiling]], [[A_MonsterRefire]], [[A_Weave]], [[A_JumpIfTargetInSight]], [[A_ZoomFactor]], [[A_SetAngle]], [[A_SetPitch]], [[A_ScaleVelocity]], [[A_ChangeVelocity]], [[A_SetCrosshair]], [[A_RemoveSiblings]], [[A_RaiseMaster]]/[[A_RaiseChildren|Children]]/[[A_RaiseSiblings|Siblings]], [[A_Log]], [[A_PrintBold]], [[A_SetArg]], [[A_SetSpecial]], [[A_Blast]] codepointers.&lt;br /&gt;
:*Added parameters to [[A_PodPain]], [[A_MakePod]], [[A_MLightningAttack]], [[A_M_Saw]], [[A_FireCustomMissile]], [[A_FadeOut]], [[A_Explode]], [[A_WeaponReady]], [[A_VileAttack]], [[A_Mushroom]], [[A_SeekerMissile]], [[A_KillChildren]]/[[A_KillMaster|Master]]/[[A_KillSiblings|Siblings]], [[A_CustomRailgun]] and [[A_RailAttack]], added SXF_TRANSFERPOINTERS flag to [[A_SpawnItemEx]] and several flags to [[A_Respawn]].&lt;br /&gt;
:*Imported {{Class|PowerDoubleFiringSpeed}} from [[Skulltag]], added {{Class|PowerInfiniteAmmo}}.&lt;br /&gt;
:*{{Class|PowerProtection}} and {{Class|PowerInvisibility}} can now be used to give certain flags to the player. Other enhancements to PowerInvisibility, such as changing the player&#039;s {{Property|RenderStyle}}.&lt;br /&gt;
:*Customizable mage lightning, sapphire wand, and {{Class|SpawnShot}} spawn lists.&lt;br /&gt;
:*[[ACS]]: compatibility fix for vanilla Hexen map where script execution order is critical.&lt;br /&gt;
:*Added [[GetActorVelX]]/[[GetActorVelY|Y]]/[[GetActorVelZ|Z]], [[SetActorVelocity]], [[GetActorViewHeight]], [[SetActivator]], [[SetActivatorToTarget]], [[GetChar]], [[SetSkyScrollSpeed]], [[GetAirSupply|Get]]/[[SetAirSupply]], [[GetArmorType]], [[CheckActorProperty]], [[CheckActorClass]], [[SoundSequenceOnActor]]/[[SoundSequenceOnSector|Sector]]/[[SoundSequenceOnPolyobj|Polyobj]], [[SpawnSpotForced]] and [[SpawnSpotFacingForced]].&lt;br /&gt;
:*Added ML_BLOCKUSE line flag, accessible through [[UDMF]] and [[Line_SetBlocking]].&lt;br /&gt;
:*Improved [[automatic compatibility]] with {{dw|Hacx}}, {{dw|Suspended in Dusk}}, {{dw|Community Chest}}, {{dw|Doomsday of UAC}}, {{dw|Strain}}, and the {{dw|Astrostein}} series.&lt;br /&gt;
:*[[Compatibility options]]: added Minotaur footclipped floor fire setting, sprite sorting order, [[MBF]]-style [[A_Mushroom]], monster movements affected by terrain, and friendly monsters able to cross blocking lines.&lt;br /&gt;
:*Added arch-vile &amp;quot;ghost&amp;quot; bug emulation for selected maps only.&lt;br /&gt;
:*Added several other MBF features, including {{Class|BetaSkull}}, [[A_FireOldBFG]], and [[DeHackEd]] support of MBF codepointers and actors.&lt;br /&gt;
:*Repaired accuracy of player behavior in &#039;&#039;[[Hexen]]&#039;&#039; with regards to [[jumping]] and pushing enemies away with attacks.&lt;br /&gt;
:*Fixed compatibility issues arising with [[Action Doom]].&lt;br /&gt;
:*Puffs now set their angle to face the originator of the attack.&lt;br /&gt;
:*Added SoulPriestess&#039; patch to force aspect ratio with {{CVAR|R|vid_aspect}}.&lt;br /&gt;
:*Added Spleen&#039;s patch to customize [[railgun]] performances with {{CVAR|R|r_rail_smartspiral}}, {{CVAR|R|r_rail_spiralsparsity}}, and {{CVAR|R|r_rail_trailsparsity}}.&lt;br /&gt;
:*[[UDMF]]: Added per-tier texture scaling with new [[sidedef]] properties and sidedef versions of [[linedef]] flags {{c|wrapmidtex}} and {{c|clipmidtex}}.&lt;br /&gt;
:*Improved [[sky]] projection and [[sky stretching]].&lt;br /&gt;
:*Updated Italian [[LANGUAGE|language]] file.&lt;br /&gt;
:*A whole lot more.&lt;br /&gt;
;{{LE|2.4.1}}{{rev|2126}} (January 24): {{Forum|t=24895|Release thread}} | {{versionlinks|2|4|1}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:*[[Floor_Waggle]] effects are smoother now.&lt;br /&gt;
:*Negative numbers in the [[alternate HUD]] have their minus sign at the right place now.&lt;br /&gt;
:*Menu option scales better in widescreen resolution.&lt;br /&gt;
:*[[Player setup]] menu looks better in non-Doom games.&lt;br /&gt;
:*Moving [[camera]]s work correctly again.&lt;br /&gt;
:*[[Polyobject]]s glitch a bit less now.&lt;br /&gt;
:*The internal nodebuilder works correctly now with certain troublesome maps.&lt;br /&gt;
:*&#039;&#039;[[Strife]]&#039;&#039; conversations fixed and improved.&lt;br /&gt;
:*Many nitpicky fixes in &#039;&#039;Strife&#039;&#039; (switch sounds, messages, etc.).&lt;br /&gt;
:*&#039;&#039;[[Action Doom 2]]&#039;&#039; and &#039;&#039;[[Harmony]]&#039;&#039; can now use idclev, and they have their Autoload section in [[the ini]].&lt;br /&gt;
:*[[MAPINFO]] {{c|ResetInventory}} keyword now works as expected.&lt;br /&gt;
:*The {{CVAR|C|norawinput}} console variable can be set to true to fix input problems while playing a Windows build through {{wp|Wine_(software)|Wine}}.&lt;br /&gt;
:*A [[character input grid]] is available to play ZDoom with a controller without having to use the keyboard.&lt;br /&gt;
:*Added [[GAMEINFO]] lump so that a mod can specify which [[IWAD]] and external resource files it uses.&lt;br /&gt;
;{{LE|2.5.0}}{{rev|2508}} (August 11): {{Forum|t=26755|Release thread}} | {{versionlinks|2|5|0}}&lt;br /&gt;
:*Enhanced [[polyobject]] system, allowing them to move anywhere in the map (like [[Eternity Engine|Eternity]]&#039;s &amp;quot;dynasegs&amp;quot;) and to give them any arbitrary shape. This is accompanied by new [[ACS]] polyobject movement functions.&lt;br /&gt;
:*Support for [[node|uncompressed extended nodes]], also supported by [[Eternity Engine]] and [[PrBoom+]], to create a new cross-port standard for node storage.&lt;br /&gt;
:*Support for using [[Byte Map Font]]s.&lt;br /&gt;
:*Ability to use metadata tags in audio formats to define custom loop points.&lt;br /&gt;
:*Added support for the [[MUSINFO]] lump (from [[Risen3D]] and [[PrBoom+]]).&lt;br /&gt;
:*Improved compatibility settings to allow optionally a greater faithfulness to the [[vanilla Doom]] and vanilla Heretic behaviors.&lt;br /&gt;
:*ZMAPINFO as an alias for [[MAPINFO]] to avoid compatibility problems with other ports parsing this lump.&lt;br /&gt;
:*Full rewrite of the [[SBARINFO]] system allowing many additional features and options.&lt;br /&gt;
:*Added support for multi-monitor display.&lt;br /&gt;
:*default reverbs environment setting in MAPINFO&lt;br /&gt;
:*Several generalized [[action functions|codepointers]] to emulate some very specific &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;[[Hexen]]&#039;&#039; action functions&lt;br /&gt;
:*New functions to refine actor behavior through&lt;br /&gt;
:*Enhanced [[poison]] damage system&lt;br /&gt;
:*Generalized [[railgun]] codepointers&lt;br /&gt;
:*New [[automap options]]&lt;br /&gt;
:*[[Hall of mirrors|HOM]] detection system&lt;br /&gt;
:*New [[console commands]]&lt;br /&gt;
:*The usual bug fixes and minor enhancements.&lt;br /&gt;
&lt;br /&gt;
==2011==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==2012==&lt;br /&gt;
;{{LE|2.6.0}}{{rev|3730}} (July 2): {{Forum|t=33295|Release thread}} | {{versionlinks|2|6|0}}&lt;br /&gt;
:*Added [[Hacx]] IWAD support.&lt;br /&gt;
:*Added text-format Strife conversation system with [[USDF]] and [[ZSDF]].&lt;br /&gt;
:*A textured [[automap]] is now available; automap graphics are now [[map arrow|externalized]].&lt;br /&gt;
:*Rewritten [[menu]] system, which can now be defined with the [[MENUDEF]] lump.&lt;br /&gt;
:*Externalized intermissions to [[MAPINFO]].&lt;br /&gt;
:*Externalized [[IWAD]] detection and gave each IWAD its own independent config section.&lt;br /&gt;
:*Added [[FluidSynth]] and [[GUS|GUS emulator]] softsynths; fixed issues with [[TiMidity++]].&lt;br /&gt;
:*Added [[VOC]] support and enhanced [[MIDI]] playback with support for alternative formats such as [[XMI]] and [[HMI]].&lt;br /&gt;
:*[[Action specials]]: Added [[Ceiling_LowerAndCrushDist]] and [[Thing_SetConversation]]. Added [[console command]] to execute specials.&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
::*Increased maximum script number from 999 to 32767.&lt;br /&gt;
::*[[Named script]]s allow to avoid script number conflicts.&lt;br /&gt;
::*Added [[StrCpy]], [[CheckSight]], [[SetActivator]], [[SetPointer]] functions.&lt;br /&gt;
::*Added [[ACS actor properties|APROP_ScaleX/Y]] and APROP_Mass actor properties.&lt;br /&gt;
::*Added temporary dynamic strings variables with [[StrParam]].&lt;br /&gt;
::*Scripts can now have up to four parameters.&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
::*Added [[A_CheckFlag]], [[A_FaceMaster]], [[A_FaceTracer]], [[A_RadiusGive]], [[A_SetMass]], [[A_SetScale]], [[A_Warp]] and [[A_WolfAttack]]...&lt;br /&gt;
::*Enhanced [[A_AlertMonsters]], [[A_BFGSpray]], [[A_Blast]], [[A_CustomBulletAttack]], [[A_FireBullets]], [[A_GunFlash]], [[A_PainAttack]], [[A_RadiusThrust]]...&lt;br /&gt;
::*Added an [[actor pointer]] manipulation system with several new codepointers...&lt;br /&gt;
::*Added {{Flag|DOHARMSPECIES}}, {{Flag|DONTCORPSE}}, {{Flag|SEEINVISIBLE}} and {{Flag|INVENTORY.UNTOSSABLE}}&lt;br /&gt;
::*Increased [[damage type]] flexibility in several ways with {{Property|DeathType}} and {{Property|PainType}}.&lt;br /&gt;
::*Added customizable {{Class|ArtiPoisonBag|fléchettes}}.&lt;br /&gt;
::*Made [[accuracy]] and [[stamina]] accessible through [[DECORATE expressions]].&lt;br /&gt;
::*Added {{Property|ProjectileKickback}}, {{Property|Inventory.RestrictedTo}} and {{Property|Inventory.ForbiddenTo}} class-based properties.&lt;br /&gt;
::*Backported {{Property|VisibleToTeam}}, {{Property|VisibleToPlayerClass}} and weapon {{Property|DropItem}} feature from [[Skulltag]], and enhanced them.&lt;br /&gt;
::*Added &amp;quot;Fast&amp;quot; keyword for states and deprecated the unreliable {{Flag|FASTER}} and {{Flag|FASTMELEE}} flags.&lt;br /&gt;
:*Added a [[SECRETS|secret hint system]].&lt;br /&gt;
:*[[3D floor]]s support.&lt;br /&gt;
:*[[FraggleScript]] support.&lt;br /&gt;
:*[[Voxel]] support.&lt;br /&gt;
:*[[SBARINFO]]: Ammo 1/2 capacities added to DrawNumber, support for color names in colored text.&lt;br /&gt;
:*[[SNDINFO]]: Added {{sndinfo|musicalias}} and {{sndinfo|attenuation}}.&lt;br /&gt;
:*Compatibility: fixed issues with {{dw|Eternal Doom}}, [[Happy Time Circus]], {{dw|Phobos_(WAD)|Phobos}}, vanilla compat, [[Boom]] compat, light levels higher than 255, [[Heretic]], [[Strife]], [[MUSINFO]], misnamed UDMF field.&lt;br /&gt;
:*Fixed loading of [[BMF]] palettes.&lt;br /&gt;
:*{{CCMD|O|restart}} console command.&lt;br /&gt;
:*Added [[PALVERS]] lump.&lt;br /&gt;
:*Custom [[IWAD]]s no longer need to include a [[COLORMAP]], as ZDoom will generate one automatically if it is missing.&lt;br /&gt;
:*Fixed vertical tiling of non-power-of-two textures.&lt;br /&gt;
:*Fixed blockmap overflows in huge maps with help from [[Mocha Doom|Maes]] and [[PrBoom+|Entryway]].&lt;br /&gt;
:*Joystick support for non-Windows platforms.&lt;br /&gt;
:*As always, a plethora of bug fixes and minor enhancements.&lt;br /&gt;
&lt;br /&gt;
;{{LE|2.6.1}}{{rev|3794}} (July 28): {{Forum|t=33547|Release thread}} | {{versionlinks|2|6|1}}&lt;br /&gt;
:*Added [[Hacx]] 2.0 IWAD support.&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
::*Added [[ACS_NamedExecuteWait]] and [[NamedScriptWait]].&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
::*Added {{Flag|INVENTORY.RESTRICTABSOLUTELY}} and {{Flag|PLAYERPAWN.CANSUPERMORPH}}.&lt;br /&gt;
:*[[MAPINFO]]:&lt;br /&gt;
::*Added RandomPlayerStarts and UsePlayerStartZ flags for [[map definition]]s.&lt;br /&gt;
:*Solved compatibility issue with [[Massmouth 2]].&lt;br /&gt;
:*[[Voxel]]s are now rotated by 90° to match their orientation in Slab6 and [[Build]] games.&lt;br /&gt;
&lt;br /&gt;
==2013==&lt;br /&gt;
;{{LE|2.7.0}}{{rev|4342}} (June 8): {{Forum|t=36456|Release thread}} | {{versionlinks|2|7|0}}&lt;br /&gt;
:*Added [[Floor_RaiseAndCrushDoom]].&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
::*Made dynamic strings persistent. ACS can now safely generate up to one million new strings.&lt;br /&gt;
::*Added [[CheckFont]], [[GetCVarString]], [[GetUserCVar]], [[GetUserCVarString]], [[IsTIDUsed]], [[LineAttack]], [[SetCVar]], [[SetCVarString]], [[SetUserCVar]], [[SetUserCVarString]], [[SpawnDecal]], and [[UniqueTID]].&lt;br /&gt;
::*Added HUD layers, visibility flags, additive blending, and alpha parameter to [[HudMessage]] and [[HudMessageBold]].&lt;br /&gt;
::*Also added HUD message wrapping and clipping with [[SetHudClipRect]] and [[SetHudWrapWidth]].&lt;br /&gt;
::*Added PLAYERINFO_FOV and _DESIREDFOV to [[GetPlayerInfo]].&lt;br /&gt;
::*Added support for desaturated [[translation]]s.&lt;br /&gt;
::*Added [[Sqrt]], [[FixedSqrt]], and [[VectorLength]] functions.&lt;br /&gt;
::*Support for advanced structures from non-ACC compilers.&lt;br /&gt;
::*Added the ability to retrieve the {{Property|ReactionTime}}, {{Property|Height}} and {{Property|Radius}} properties through [[GetActorProperty]].&lt;br /&gt;
::*Added CHANGELEVEL_PRERAISEWEAPON to [[ChangeLevel]].&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
::*{{Flag|FLOATBOB}} things are no longer moved physically when bobbing.&lt;br /&gt;
::*Added {{Property|Player.FallingScreamSpeed}}, {{Property|Player.GruntSpeed}}, {{Property|Weapon.MinSelectionAmmo1}}, and {{Property|Weapon.MinSelectionAmmo2}}.&lt;br /&gt;
::*Added random state duration and [[A_SetTics]].&lt;br /&gt;
::*[[A_Explode]]&#039;s &#039;&#039;affectsource&#039;&#039; parameter has been turned into a flag. Plus, added NOTMISSILE flag to A_Explode as well as to [[A_RadiusThrust]].&lt;br /&gt;
::*[[A_RadiusThrust]] can use negative &#039;&#039;force&#039;&#039; values.&lt;br /&gt;
::*Added [[A_JumpIfTargetInsideMeleeRange]], [[A_JumpIfTargetOutsideMeleeRange]], [[A_SetDamageType]], and [[A_CheckLOF]].&lt;br /&gt;
::*Added {{Flag|INVENTORY.NEVERRESPAWN}}, {{Flag|INVENTORY.NOSCREENFLASH}}, {{Flag|POWERSPEED.NOTRAIL}}, and {{Flag|PLAYERPAWN.CROUCHABLEMORPH}}.&lt;br /&gt;
::*Added JLOSF_NOAUTOAIM flag to [[A_JumpIfTargetInLOS]].&lt;br /&gt;
::*Added WRF_DISABLESWITCH to [[A_WeaponReady]].&lt;br /&gt;
::*[[A_Light]] can use negative values to darken the scene.&lt;br /&gt;
::*Added NORANDOMPUFFZ flag to [[A_CustomPunch]], [[A_FireBullets]], and [[A_CustomBulletAttack]].&lt;br /&gt;
::*Added SXF_USEBLOODCOLOR, SXF_CLEARCALLERTID, SXF_MULTIPLYSPEED, SXF_TRANSFERSCALE, SXF_TRANSFERSPECIAL, and SXF_CLEARCALLERSPECIAL flags to [[A_SpawnItemEx]].&lt;br /&gt;
::*Added the ability to adjust the vertical offset of a rail attack to [[A_RailAttack]] and [[A_CustomRailgun]].&lt;br /&gt;
::*Player-fired seeker [[Projectile|missiles]]&#039; range at which the missiles initially lock-on a [[Actor pointer|tracer]] can be set via {{Property|MaxTargetRange}} actor property.&lt;br /&gt;
::*{{Property|ReactionTime}} added to [[DECORATE expressions]].&lt;br /&gt;
::*Added [[Actor states#NoDelay|NoDelay]] state flag.&lt;br /&gt;
::*Added [[Actor_states#States|Bounce]] actor states.&lt;br /&gt;
::*Fixed few cases of DECORATE definitions inaccuracies for [[Doom]], [[Heretic]], [[Hexen]] and [[Strife]] actors.&lt;br /&gt;
:*[[FONTDEFS]]: Backported SPACEWIDTH from [[ECWolf]].&lt;br /&gt;
:*[[LANGUAGE]]: Brazilian Portuguese support.&lt;br /&gt;
:*[[MAPINFO]]: Added ForgetState, RememberState, and SpawnWithWeaponRaised flags for [[map definition]]s and NoRandomPlayerclass for [[GameInfo definition]]s.&lt;br /&gt;
:*[[MIDI]]: [[FluidSynth]] now recognize {{c|libfluidsynth.dll}} as a valid alias for {{c|fluidsynth.dll}}, various FluidSynth [http://forums.scummvm.org/viewtopic.php?p=72972#72972 tweaks] and fixes. The [[OPL emulator]] now can use either OPL2 or OPL3 emulation, supports full stereo panning and can use up to eight virtual chips.&lt;br /&gt;
:*Updated [[foo_DUMB]].&lt;br /&gt;
:*Implemented additive rendering for [[3D floor]]s.&lt;br /&gt;
:*Added &#039;&#039;{{wp|Quake (video game)|Quake}}&#039;&#039;-like no-clipping with {{CCMD|D|noclip2}}.&lt;br /&gt;
:*Exported the [[scoreboard]] text to [[LANGUAGE]].&lt;br /&gt;
:*The sound system should now precache nearly all sounds used by actor properties and [[ambient sound]]s, and the [[MAPINFO/Map definition|MAPINFO]] command &amp;quot;PrecacheSounds&amp;quot; can be used to precache other sounds.&lt;br /&gt;
:*Arbitrary FPS cap with {{CVAR|R|vid_maxfps}}.&lt;br /&gt;
:*Increased maximum resolution to 5760&amp;amp;times;3600.&lt;br /&gt;
:*Added {{c|lightfog}} property for [[sidedef]]s.&lt;br /&gt;
:*Added support for {{dw|Doom 3: BFG Edition}}&#039;s modified [[IWAD]]s, including {{dw|No Rest for the Living}}.&lt;br /&gt;
:*Improved [[WAD]] archive code with support for big-endian format and LZSS compression used in several console ports.&lt;br /&gt;
:*Added ability in [[UDMF]] to specify things to spawn by [[:Category:Thing specials|thing specials]] and [[Hexen breakable items]] by names with {{c|arg1str}}, as well as the ability to set initial values to a thing&#039;s [[user variable]].&lt;br /&gt;
:*Added new [[node]] format for complex UDMF maps which need fractional precision on node splitters.&lt;br /&gt;
:*The [[alternate HUD]] now features a {{Class|Berserk}} indicator and a customizable time display.&lt;br /&gt;
:*Tweaked {{Class|ScriptedMarine|scripted marines}}.&lt;br /&gt;
:*Added {{c|{{CCMD|D|acsprofile}}}} [[CCMDs|console command]].&lt;br /&gt;
:*[[Weapon slots]] can be configured from the [[Customize controls]] menu.&lt;br /&gt;
:*Solved compatibility issues with [[Daedalus: Alien Defense]], {{dw|Community Chest 3}}, Nuke Mine, Khorus, [[Void]], the {{dw|Master Levels}}, and {{dw|Claustrophobia 1024}}.&lt;br /&gt;
:*{{Class|RandomSpawner}}s now respect {{param|nomonsters}}.&lt;br /&gt;
:*Added the ability to define mod-specific [[CVARs|console variables]] through the addition of the [[CVARINFO]] lump.&lt;br /&gt;
:*Fixed miscellaneous bugs.&lt;br /&gt;
&lt;br /&gt;
;{{LE|2.7.1}}{{cs|21efe3b}} (July 3): {{Forum|t=36679|Release thread}} | {{versionlinks|2|7|1}}&lt;br /&gt;
&#039;&#039;Note: this is the first version based on the [[Git repository]]; 2.7.0 was the last version based on the SVN repository.&#039;&#039;&lt;br /&gt;
* Added new additive [[MAPINFO/GameInfo definition|GameInfo]] keywords: AddCreditPage, AddPlayerClasses, and AddInfoPage.&lt;br /&gt;
* Added a new {{Flag|DONTDRAIN}} flag to mark actors as ineligible for vampirism attacks.&lt;br /&gt;
* [[Automatic compatibility|Compatibility]] fixes for [[Ultimate Simplicity]] map07, [[Cheogsh]] map01, [[Super Sonic Doom]] map31&lt;br /&gt;
* [[Polyobject]] mirror numbers can no longer be changed with [[SetLineSpecial]]. This was never a supported feature and caused problems for legitimate uses of SetLineSpecial on polyobject lines.&lt;br /&gt;
* The powered-up {{Class|GoldWand|Gold Wand}} was not puffing on actors.&lt;br /&gt;
* Disabled [[Heretic]]&#039;s punishment [[cheat]]s when in {{CVAR|C|allcheats}} mode.&lt;br /&gt;
* Objects that explode on death no longer deal the damage they were dealt instead of their own.&lt;br /&gt;
* Vampirism attacks now respect damage reduction.&lt;br /&gt;
* [[Demo]] recording now writes correct user info to demos.&lt;br /&gt;
* ACS&#039;s [[PlaySound]] for looping sounds now works properly when using channel flags.&lt;br /&gt;
&lt;br /&gt;
==2014==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==2015==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==2016==&lt;br /&gt;
;{{LE|2.8.0}}{{cs|56359b6}} (February 3): {{Forum|t=50712|Release thread}} | {{versionlinks|2|8|0}}&lt;br /&gt;
:*Frontend&lt;br /&gt;
:**GoG-installed IWADs are now detected automatically.  Steam-installed IWADs are detected on OS X and Linux.&lt;br /&gt;
:**Improved netcode and added [[network options]] menu to configure new features.&lt;br /&gt;
:**Two new cheats, god2 and buddha2. The player cannot die from telefrag damage with these.&lt;br /&gt;
:**Added WAD compatibility fixes for over a dozen maps, including &#039;&#039;[[Cheogsh 2]]&#039;&#039;, &#039;&#039;XtheaterIII&#039;&#039;, and the infamous missing yellow keycard on TNT MAP31.&lt;br /&gt;
:**+warp now works from the command line.&lt;br /&gt;
:**Added support for standard file paths on Windows.&lt;br /&gt;
:**Added a user-settable factor for [[earthquake]] intensity.&lt;br /&gt;
:*Automap&lt;br /&gt;
:**Non-countable monster actors can have their own separate automap color.&lt;br /&gt;
:**Extended {{c|{{CVAR|A|am_cheat}}}} with three modes to prevent lines flagged as &#039;&#039;hidden&#039;&#039; from being shown on the automap.&lt;br /&gt;
:**Added separate colors for the various types of 2-sided walls for the overlay automap, as well as colors missing from that mode.&lt;br /&gt;
:**Actors sprites can be shown on the automap instead of simple triangles when the second, third, fifth or sixth modes of {{c|am_cheat}} console variable are enabled.&lt;br /&gt;
:*Console&lt;br /&gt;
:**Added a {{c|{{CCMD|O|closemenu}}}} [[CCMDs|console command]], so that menu options that close the [[menu]] can be added.&lt;br /&gt;
:**The behavior of auto-loading external [[DEHACKED]] lumps can be controlled by setting the {{c|dehload}} [[CVARs|console variable]].&lt;br /&gt;
:**Results for console tab-completion are now color-coded; console commands appear blue, console variables green, and aliases red.&lt;br /&gt;
:**Fixed: the {{c|{{CVAR|R|wi_noautostartmap}}}} console variable was not sync-safe.&lt;br /&gt;
:**Added {{c|{{CVAR|C|sv_freelook}}}}, {{c|{{CVAR|C|sv_allowfreelook}}}} and {{c|{{CVAR|C|sv_nofreelook}}}}.&lt;br /&gt;
:*Building&lt;br /&gt;
:**Native Cocoa back end for OS X resulting in significant increases in performance over SDL in addition to better overall user experience.&lt;br /&gt;
:**Added optional support for the OpenAL sound library, allowing for compiling without FMOD.&lt;br /&gt;
:**Added a new [[software synthesizer]], [[WildMIDI]], and a new [[OPL]] core.&lt;br /&gt;
:**Added support for building with clang.&lt;br /&gt;
:**Nearly-complete support for ARM devices such as the Raspberry Pi.  (Some known bugs remain — in particular, you must set vid_forcesurface to true in zdoom.ini, or ZDoom will instantly segfault.)&lt;br /&gt;
:*Modding&lt;br /&gt;
:**Added [[Ceiling_CrushAndRaiseSilentDist]].&lt;br /&gt;
:**New type of [[earthquake]], can only be accessed with [[A_QuakeEx]] or its [[QuakeEx|ACS equivalent]], which can replicate the shaking effect seen in many recent games instead of random camera offsets using the QF_WAVE flag. Quakes can now be scaled in, out, or mixed up. Both wave and regular quakes work together.&lt;br /&gt;
:**Menu&#039;s back button and the pause sign can be animated.&lt;br /&gt;
:**The particle engine is now exposed to modders via the [[A_SpawnParticle]] action function and [[SpawnParticle]] ACS function.&lt;br /&gt;
:**Directory-structured archives now support [[lump filtering]], which loads different resources depending on the base game.&lt;br /&gt;
:**Friction and [[TERRAIN]]-based sector damage are now transferred to [[Sector_Set3dFloor|3D floors]].&lt;br /&gt;
:**Fixed scaling of textures on [[Sector_Set3dFloor|3D floors]].&lt;br /&gt;
:**Overhauled [[sector type]]s and properties. Sectors have several new UDMF properties.&lt;br /&gt;
:**Lines and sectors may now have multiple ids/tags via the moreids UDMF property.&lt;br /&gt;
:**&amp;lt;code&amp;gt;checkswitchrange&amp;lt;/code&amp;gt; now correctly prevents players from pressing switches embedded in the floor or ceiling.&lt;br /&gt;
:**Added {{c|blockhitscan}} and {{c|transparent}} [[linedef|line]] properties, {{c|waterzone}} [[sector]] property, and {{c|alpha}}, {{c|fillcolor}}, {{c|gravity}}, {{c|health}}, {{c|pitch}}, {{c|renderstyle}}, {{c|roll}}, {{c|scale}}, {{c|scalex}}, {{c|scaley}} and {{c|score}} [[thing]] properties for [[Universal Doom Map Format|UDMF]].&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
:**Added {{c|[[DropItem]]}}, {{c|[[DropInventory]]}}, {{c|[[CheckFlag]]}}, {{c|[[GetLineActivation]]}}, {{c|[[GetMaxInventory]]}}, {{c|[[SetLineActivation]]}}, {{c|[[GetArmorInfo]]}}, {{c|[[GetActorPowerupTics]]}}, {{c|[[IsPointerEqual]]}}, {{c|[[ChangeActorAngle]]}}, {{c|[[ChangeActorPitch]]}}, {{c|[[PickActor]]}}, {{c|[[SetSectorDamage]]}}, {{c|[[QuakeEx]]}}, {{c|[[Warp]]}} and {{c|[[CanRaiseActor]]}}  functions.&lt;br /&gt;
:**Added FHF_NORANDOMPUFFZ flag for {{c|[[LineAttack]]}}.&lt;br /&gt;
:**Added BLOCKF_HITSCAN flag for {{c|[[Line_SetBlocking]]}}.&lt;br /&gt;
:**Added {{c|APROP_ViewHeight}}, {{c|APROP_AttackZOffset}} and {{c|APROP_StencilColor}} [[ACS actor properties]].&lt;br /&gt;
:**Fixed potential desync with {{c|[[CheckPlayerCamera]]}}.&lt;br /&gt;
:**Fixed: {{c|[[Thing_SetGoal]]}} could put an actor&#039;s target and goal out of sync.&lt;br /&gt;
:**{{c|[[GetSectorFloorZ]]}} and {{c|[[GetSectorCeilingZ]]}} now interpret 0-tag as &#039;any sector&#039; and return the z-height of whatever sector is at those coordinates.&lt;br /&gt;
:**[[Arrays]] are now supported at the script scope.&lt;br /&gt;
:*[[ANIMDEFS]]:&lt;br /&gt;
:**Added an optional {{c|worldpanning}} flag for camera textures definitions in order to make camera textures pan in world units instead of texture units.&lt;br /&gt;
:**Added {{c|allowdecals}} option to animated doors.&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
:**Four new keybinds for DECORATE use with weapons (see {{c|[[A_WeaponReady]]}}&#039;s User states.)&lt;br /&gt;
:**Sprites now support mirroring via negative scales.&lt;br /&gt;
:**Added {{c|{{Property|Player.UseRange}}}} and {{c|{{Property|Player.AirCapacity}}}} [[player properties]].&lt;br /&gt;
:**Actors can now have extreme death/crash states that are damage type specific.&lt;br /&gt;
:**New &amp;lt;code&amp;gt;randompick&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frandompick&amp;lt;/code&amp;gt; [[DECORATE expressions|non-action functions]].&lt;br /&gt;
:**[[A_Print]], [[A_PrintBold]], and [[A_Log]] can now use &amp;lt;code&amp;gt;$FOO&amp;lt;/code&amp;gt; [[LANGUAGE|translation strings]].&lt;br /&gt;
:**The following functions have been given additional functionalities: {{c|[[A_AlertMonsters]]}}, {{c|[[A_BFGSpray]]}}, {{c|[[A_ChangeVelocity|A_Change]]/[[A_ScaleVelocity|ScaleVelocity]]}}, {{c|[[A_CustomPunch]]}}, {{c|[[A_SetAngle]]}} and {{c|[[A_SetPitch]]}}, {{c|[[A_DamageMaster]]/[[A_DamageChildren|Children]]/[[A_DamageSiblings|Siblings]]}}, {{c|[[A_KillMaster]]/[[A_KillChildren|Children]]/[[A_KillSiblings|Siblings]]}}, {{c|[[A_Log]]}}, {{c|[[A_Print]]}}, {{c|[[A_PrintBold]]}}, {{c|[[A_RadiusGive]]}}, {{c|[[A_Saw]]}}, {{c|[[A_SetScale]]}}, {{c|[[A_SetTics]]}}, {{c|[[A_SpawnItemEx]]}}, {{c|[[A_Teleport]]}}, {{c|[[A_VileAttack]]}}, {{c|[[A_Warp]]}}, {{c|[[A_WeaponReady]]}}.&lt;br /&gt;
:**Added {{Flag|NOFORWARDFALL}}, {{Flag|NOTONAUTOMAP}}, {{Flag|RELATIVETOFLOOR}}, {{Flag|NEVERTARGET}}, {{Flag|NOTELESTOMP}}, {{Flag|ALWAYSTELEFRAG}}, {{Flag|ALLOWPAIN}}, {{Flag|CAUSEPAIN}}, {{Flag|DONTTHRUST}}, {{Flag|BUDDHA}}, {{Flag|FOILBUDDHA}}, {{Flag|MIRRORREFLECT}}, {{Flag|AIMREFLECT}}, {{Flag|THRUREFLECT}}, {{Flag|HARMFRIENDS}}, {{Flag|NOFORWARDFALL}}, {{Flag|HITTARGET}}, {{Flag|HITMASTER}}, {{Flag|HITTRACER}}, {{Flag|WEAPONSPAWN}}, {{Flag|INVENTORY.TOSSED}}, {{Flag|INVENTORY.ALWAYSRESPAWN}}, {{Flag|INVENTORY.TRANSFER}}, and {{Flag|INVENTORY.NOTELEPORTFREEZE}} [[actor flags]].&lt;br /&gt;
:**{{Flag|MTHRUSPECIES}} now works with [[A_BFGSpray]] and rail attacks.&lt;br /&gt;
:**Added {{c|[[A_DamageSelf]]/[[A_DamageTarget|Target]]/[[A_DamageTracer|Tracer]]}}, {{c|[[A_Remove]]/[[A_RemoveSiblings|Siblings]]/[[A_RemoveTarget|Target]]/[[A_RemoveTracer|Tracer]]}}, {{c|[[A_KillTarget]]/[[A_KillTracer|Tracer]]}}, {{c|[[A_DropItem]]}}, {{c|[[A_SetSpeed]]}}, {{c|[[A_SetHealth]]}}, {{c|[[A_ResetHealth]]}}, {{c|[[A_SetFloatBobPhase]]}}, {{c|[[A_SetRoll]]}}, {{c|[[A_SetTeleFog]]}}, {{c|[[A_GiveToChildren|A_GiveTo]]/[[A_TakeFromChildren|TakeFromChildren]]}}, {{c|[[A_GiveToSiblings|A_GiveTo]]/[[A_TakeFromSiblings|TakeFromSiblings]]}}, {{c|[[A_JumpIfHigherOrLower]]}},  {{c|[[A_SetFloatSpeed]]}}, {{c|[[A_SetSpecies]]}}, {{c|[[A_CheckBlock]]}}, {{c|[[A_CheckProximity]]}}, and {{c|[[A_QuakeEx]]}} [[action functions]].&lt;br /&gt;
:**Players with the NODAMAGE flag cannot be telefragged anymore, nor can they take any damage via voodoo dolls.&lt;br /&gt;
:**The amount of health regeneration gained from a {{c|{{Class|PowerRegeneration}}}} powerup can be controlled with the {{c|{{Property|Powerup.Strength}}}} property.&lt;br /&gt;
:**Improved the {{c|[[Actor states#NoDelay|NoDelay]]}} state flag reliability.&lt;br /&gt;
:**Added {{c|Subtract}} render style.&lt;br /&gt;
:**Different types of {{Class|HereticImp|gargoyles}} and {{Class|Mummy|golems}} could infight amongst themselves (original &#039;&#039;[[Heretic]]&#039;&#039; behavior).&lt;br /&gt;
:**Added {{c|[[Actor states#CanRaise|CanRaise]]}} and {{c|[[Actor states#Slow|Slow]]}} actor [[actor states#State keywords|state flags]].&lt;br /&gt;
:*[[LANGUAGE]]:&lt;br /&gt;
:**Externalized &amp;quot;New save game&amp;quot; line for save screen, and [[automap]] statistics display.&lt;br /&gt;
:*[[MAPINFO]]:&lt;br /&gt;
:**Custom colors for both modes of the automap can be set on per-mod basis.&lt;br /&gt;
:**Added {{c|SlowMonsters}}, {{c|HealthFactor}}, {{c|NoInfighting}} and {{c|TotalInfighting}} [[skill definition]]s property.&lt;br /&gt;
:*[[SBARINFO]]:&lt;br /&gt;
:**Extended {{c|[[DrawImage]]}} command.&lt;br /&gt;
:*[[SNDINFO]]:&lt;br /&gt;
:**Fixed incorrect {{Class|Minotaur|Maulotaur}} melee attack sound.&lt;br /&gt;
:*Internals&lt;br /&gt;
:**Removed [[Polymost]] code.&lt;br /&gt;
:**Vast improvements to movement interpolation.&lt;br /&gt;
:**Fixed a lot of leaks and garbage collection issues.&lt;br /&gt;
:**Fixed miscellaneous bugs.&lt;br /&gt;
&lt;br /&gt;
==Next version==&lt;br /&gt;
The following additions are available in [[Git]] builds, but not yet in an official version.&lt;br /&gt;
&lt;br /&gt;
:* The scripting branch, which lays some groundwork for DoomScript™.  So far the only visible changes are:&lt;br /&gt;
:** [[DECORATE]] [[Actor_states|states]] can contain multiple action functions enclosed in braces, and can use &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; blocks.&lt;br /&gt;
:* {{Forum|t=46916|Portals}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://sourceforge.net/projects/zdoom/files/ Sourceforge archive] Unofficial mirror for ZDoom versions&lt;br /&gt;
* [https://github.com/doomtech/zdoom-old GitHub archive] Unofficial repository of pre-SVN source code&lt;br /&gt;
[[Category:Nostalgia]][[Category:ZDoom]]&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=ZDoom_version_history&amp;diff=40818</id>
		<title>ZDoom version history</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=ZDoom_version_history&amp;diff=40818"/>
		<updated>2016-02-06T01:26:15Z</updated>

		<summary type="html">&lt;p&gt;Eevee: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page tracks the evolution of [[ZDoom]] by listing the main features of each version.&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!By year&lt;br /&gt;
|[[#1998|1998]] &amp;amp;middot; [[#1999|1999]] &amp;amp;middot; [[#2000|2000]] &amp;amp;middot; [[#2001|2001]] &amp;amp;middot; [[#2002|2002]] &amp;amp;middot; [[#2003|2003]] &amp;amp;middot; [[#2004|2004]] &amp;amp;middot; [[#2005|2005]] &amp;amp;middot; [[#2006|2006]] &amp;amp;middot; [[#2007|2007]] &amp;amp;middot; [[#2008|2008]] &amp;amp;middot; [[#2009|2009]] &amp;amp;middot; [[#2010|2010]] &amp;amp;middot; [[#2011|2011]] &amp;amp;middot; [[#2012|2012]] &amp;amp;middot; [[#2013|2013]] &amp;amp;middot; [[#2014|2014]] &amp;amp;middot; [[#2015|2015]] &amp;amp;middot; [[#2016|2016]]&lt;br /&gt;
|-&lt;br /&gt;
!1.x Branch&lt;br /&gt;
|[[#1.11|1.11]] &amp;amp;middot; [[#1.12|1.12]] &amp;amp;middot; [[#1.13|1.13]] &amp;amp;middot; [[#1.14|1.14]] &amp;amp;middot; [[#1.14a|1.14a]] &amp;amp;middot; [[#1.16|1.16]] &amp;amp;middot; [[#1.17|1.17]] &amp;amp;middot; [[#1.17a|1.17a]] &amp;amp;middot; [[#1.17b|1.17b]] &amp;amp;middot; [[#1.17b1|1.17b1]] &amp;amp;middot; [[#1.17c|1.17c]] &amp;amp;middot; [[#1.18|1.18]] &amp;amp;middot; [[#1.18a|1.18a]] &amp;amp;middot; [[#1.18b|1.18b]] &amp;amp;middot; [[#1.19|1.19]] &amp;amp;middot; [[#1.20|1.20]] &amp;amp;middot; [[#1.21|1.21]] &amp;amp;middot; [[#1.22|1.22]] &amp;amp;middot; [[#1.23 Beta|1.23 Beta]] &amp;amp;middot; [[#1.23 Beta 19|1.23 Beta 19]] &amp;amp;middot; [[#1.23 Beta 20|1.23 Beta 20]] &amp;amp;middot; [[#1.23 Beta 23|1.23 Beta 23]] &amp;amp;middot; [[#1.23 Beta 24|1.23 Beta 24]] &amp;amp;middot; [[#1.23 Beta 25|1.23 Beta 25]] &amp;amp;middot; [[#1.23 Beta 33|1.23 Beta 33]]&lt;br /&gt;
|-&lt;br /&gt;
!2.0 Branch&lt;br /&gt;
|[[#2.0 Beta 13|2.0 Beta 13]] &amp;amp;middot; [[#2.0.47|2.0.47]] &amp;amp;middot; [[#2.0.47i|2.0.47i]] &amp;amp;middot; [[#2.0.48|2.0.48]] &amp;amp;middot; [[#2.0.49|2.0.49]] &amp;amp;middot; [[#2.0.50|2.0.50]] &amp;amp;middot; [[#2.0.51|2.0.51]] &amp;amp;middot; [[#2.0.52|2.0.52]] &amp;amp;middot; [[#2.0.53|2.0.53]] &amp;amp;middot; [[#2.0.54|2.0.54]] &amp;amp;middot; [[#2.0.55|2.0.55]] &amp;amp;middot; [[#2.0.56|2.0.56]] &amp;amp;middot; [[#2.0.57|2.0.57]] &amp;amp;middot; [[#2.0.58|2.0.58]] &amp;amp;middot; [[#2.0.59|2.0.59]] &amp;amp;middot; [[#2.0.60|2.0.60]] &amp;amp;middot; [[#2.0.61|2.0.61]] &amp;amp;middot; [[#2.0.62|2.0.62]] &amp;amp;middot; [[#2.0.63|2.0.63]] &amp;amp;middot; [[#2.0.64|2.0.64]] &amp;amp;middot; [[#2.0.90|2.0.90]] &amp;amp;middot; [[#2.0.91|2.0.91]] &amp;amp;middot; [[#2.0.92|2.0.92]] &amp;amp;middot; [[#2.0.93|2.0.93]] &amp;amp;middot; [[#2.0.94|2.0.94]] &amp;amp;middot; [[#2.0.95|2.0.95]] &amp;amp;middot; [[#2.0.96|2.0.96]] &amp;amp;middot; [[#2.0.97|2.0.97]] &amp;amp;middot; [[#2.0.98|2.0.98]]&lt;br /&gt;
|-&lt;br /&gt;
!2.1 Branch&lt;br /&gt;
|[[#2.1.0|2.1.0]] &amp;amp;middot; [[#2.1.1|2.1.1]] &amp;amp;middot; [[#2.1.2|2.1.2]] &amp;amp;middot; [[#2.1.3|2.1.3]] &amp;amp;middot; [[#2.1.3|2.1.3]] &amp;amp;middot; [[#2.1.4|2.1.4]] &amp;amp;middot; [[#2.1.5|2.1.5]] &amp;amp;middot; [[#2.1.6|2.1.6]] &amp;amp;middot; [[#2.1.7|2.1.7]]&lt;br /&gt;
|-&lt;br /&gt;
!Modern&lt;br /&gt;
|[[#2.2.0|2.2.0]] &amp;amp;middot; [[#2.3.0|2.3.0]] &amp;amp;middot; [[#2.3.1|2.3.1]] &amp;amp;middot; [[#2.4.0|2.4.0]] &amp;amp;middot; [[#2.4.1|2.4.1]] &amp;amp;middot; [[#2.5.0|2.5.0]] &amp;amp;middot; [[#2.6.0|2.6.0]] &amp;amp;middot; [[#2.6.1|2.6.1]] &amp;amp;middot; [[#2.7.0|2.7.0]] &amp;amp;middot; [[#2.7.1|2.7.1]] &amp;amp;middot; [[#2.8.0|2.8.0]] &amp;amp;middot; [[#Next version|Next version]]&lt;br /&gt;
|}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
==1998==&lt;br /&gt;
;{{LE|1.11}} (March 6): {{Plainlink|[http://www.zdoom.org/files/old/zdoom111.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom111s.zip Source]}}&lt;br /&gt;
:Initial release, based on the [[NTDoom]] and [[ATB Doom]]. The version numbering follows from the Doom source code version numbering of 1.10.&lt;br /&gt;
:* Works under both Windows 95 and NT 4.0, although it works best under Win95.&lt;br /&gt;
:* Limited support for the Pause key. It works with some keyboards on some machines.&lt;br /&gt;
:* Supports any resolution compatible with your DirectDraw drivers.&lt;br /&gt;
:* Look up/down à la &#039;&#039;[[Heretic]]&#039;&#039;.&lt;br /&gt;
:* Translucency for selected objects.&lt;br /&gt;
:* Has a [[console]] with most of the functionality of &#039;&#039;Quake&#039;&#039;&#039;s. The only significant missing feature is Tab-completion.&lt;br /&gt;
:* Notarget [[cheat]].&lt;br /&gt;
:* Command to {{CCMD|D|kill}} all [[monster]]s in a level or yourself.&lt;br /&gt;
:* Can play [[MUS]], [[MIDI]], and MOD music.&lt;br /&gt;
:* Selected sounds are played in surround sound.&lt;br /&gt;
:* Doors that need keys to open are highlighted on the [[automap]].&lt;br /&gt;
:* Automap now shows various statistics in addition to the level name.&lt;br /&gt;
:* True keybindings. Bind any key to any command or sequence of commands.&lt;br /&gt;
:* [[Intermission]] screen can now display your stats using absolute values rather than percentages.&lt;br /&gt;
:* A new more general [[demo]] format.&lt;br /&gt;
;{{LE|1.12}} (April 7): {{Plainlink|[http://www.zdoom.org/files/old/zdoom112.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom112s.zip Source]}}&lt;br /&gt;
:* Some visual enhancements were made such as centering the menus and drawing borders around the status bar in higher resolutions.&lt;br /&gt;
:* [[Console command]]s can now be specified on the [[command line parameters|command line]].&lt;br /&gt;
:* Removed some of [[Doom]]&#039;s limits such as VisPlanes, VisSprites, and 2S [[HOM]].&lt;br /&gt;
:* Rewrote some of the inner loops in assembly. (There was some assembly in 1.11, but it never got used.)&lt;br /&gt;
:* New [[CVAR]]s relating to mouse movement. ({{CVAR|C|invertmouse}}, {{CVAR|C|m_pitch}}, {{CVAR|C|m_yaw}}, etc.)&lt;br /&gt;
:* Mouse movement doesn&#039;t get sluggish in high resolutions.&lt;br /&gt;
:* [[Automap]] colors are customizable.&lt;br /&gt;
:* Automap overlay and rotation are available.&lt;br /&gt;
:* Eight [[crosshair]]s.&lt;br /&gt;
:* Shoot up/down.&lt;br /&gt;
:* Alt-Tab and Pause work properly on all machines now.&lt;br /&gt;
:* The {{CCMD|P|+jump}} command now works.&lt;br /&gt;
:* 25% and 75% translucency levels in addition to 50%. The translucency tables now get saved to disk, too, so they only need to be calculated once instead of every time the game is run.&lt;br /&gt;
:* The [[console]] [[font]] is now editable.&lt;br /&gt;
:* Near complete support for [[DeHackEd]] patches. (Only monster infighting and changing a few minor text strings are not supported.)&lt;br /&gt;
:* Sky height and position is now fixed for high resolutions. (It still wraps if you look up, but at least now if you look straight ahead, it never will.)&lt;br /&gt;
:* Weapon sprite is always drawn at the correct location. (It was being drawn too low in some resolutions like 400x300.)&lt;br /&gt;
:* New [[options menu]], which includes a key configuration screen.&lt;br /&gt;
:* [[Stealth monster]]s.&lt;br /&gt;
:* New full-screen [[HUD]].&lt;br /&gt;
:* And a few other things not worth mentioning separately.&lt;br /&gt;
;{{LE|1.13}} (May 26):{{forum|t=4|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom113.zip Build]}}&lt;br /&gt;
:* Fixed some major bugs (that crashed the game) and other lesser bugs that were just annoying.&lt;br /&gt;
:* 3-D collisions for walking under and standing on other things.&lt;br /&gt;
:* The status bar can be scaled to the full width of the screen.&lt;br /&gt;
:* The screen mode can be selected from a menu inside the game.&lt;br /&gt;
:* ZDoom can run in a window on the desktop.&lt;br /&gt;
:* Better [[DeHackEd]] support. Only a few text replacements are not supported. Everything else works (including monster infighting which I haven&#039;t seen in any other port).&lt;br /&gt;
:* New features for level designers (see editing.txt for details):&lt;br /&gt;
::*Specification of next and secret maps on a per-map basis.&lt;br /&gt;
::*Specify sky texture on a per-map basis.&lt;br /&gt;
::*Use any lump in a wad as music for a map.&lt;br /&gt;
::*Give maps a custom name without using a DeHackEd patch.&lt;br /&gt;
::*Maps can be named anything (not just E?M? or MAP??).&lt;br /&gt;
::*Place any messages of any length between any two maps.&lt;br /&gt;
::*&#039;&#039;[[Hexen]]&#039;&#039;-style fog (of any color).&lt;br /&gt;
::*[[Ambient sound]]s &amp;amp;mdash; either point like &#039;&#039;Quake&#039;&#039; or global like &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;Hexen&#039;&#039;.&lt;br /&gt;
::*Automatic use of [[DeHackEd]] patches in PWADs.&lt;br /&gt;
::*No more {{dw|tutti-frutti}} for short textures of certain heights.&lt;br /&gt;
::*zdoom.wcf file for use with [[WadAuthor]].&lt;br /&gt;
:* Rocket jumping. (One very important note about this: You need to be *in the air* when your rocket explodes for rocket jumping to work. This is different from &#039;&#039;Quake&#039;&#039;, and I will probably rewrite it for the next release.)&lt;br /&gt;
:* Dynamic [[palette flash]]es.&lt;br /&gt;
:* Supports stretching skies for [[freelook]].&lt;br /&gt;
:* Larger freelook range.&lt;br /&gt;
:* Added tab-completion to the [[console]].&lt;br /&gt;
:* zdoom.cfg is now the name of the default [[configuration file]] since [[Doom Legacy]] decided to start using config.cfg.&lt;br /&gt;
:* French language support. (Set {{CVAR|C|language}} CVAR to &amp;quot;french&amp;quot;.)&lt;br /&gt;
:* Player obituaries.&lt;br /&gt;
:* Unlimited ammo cheat (use g_unlimitedammo cvar).&lt;br /&gt;
;{{LE|1.14}} (July 22): {{forum|t=5|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom114.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom114-src.zip Source]}}&lt;br /&gt;
:Bugs fixed:&lt;br /&gt;
:* The bunny scroller at the end of E3M8 no longer crashes the game.&lt;br /&gt;
:* The IDKFA [[cheat]] gives the proper amount of armor again.&lt;br /&gt;
:* Demo recording works again.&lt;br /&gt;
:* Telefragging works again.&lt;br /&gt;
:* Picking up the {{Class|InvulnerabilitySphere|invulnerability sphere}} displays the correct colors now.&lt;br /&gt;
:* [[DeHackEd]] patches containing text replacements no longer crash the game.&lt;br /&gt;
:* Printing a string containing &amp;quot;%s&amp;quot; to the console and then changing the video mode will no longer crash the game.&lt;br /&gt;
:* Chat mode finally works again.&lt;br /&gt;
:* If MIDAS can&#039;t initialize, you can still play the game but without sound.&lt;br /&gt;
:* {{Class|Pistol}} and {{Class|chaingun}} sounds no longer cut out when there are lots of {{Class|ZombieMan|zombie men}} shooting their pistols at you.&lt;br /&gt;
:* Mouse input should no longer be so jerky under Windows NT.&lt;br /&gt;
:* The [[crosshair]] is finally accurate for aiming.&lt;br /&gt;
:* [[Autoaim]] is properly remembered each time you start ZDoom.&lt;br /&gt;
:* Switches in &#039;&#039;[[the Ultimate Doom]]&#039;&#039; that aren&#039;t also in the shareware Doom properly change their appearance when switched.&lt;br /&gt;
:New features:&lt;br /&gt;
:* Players can choose their own colors and names. ([[Player setup]] menu is included).&lt;br /&gt;
:* 8-player support (untested but should work).&lt;br /&gt;
:* Miscellaneous internal code changes have been borrowed from the [[Boom]] source. (This does *not* mean that ZDoom supports Boom levels yet.)&lt;br /&gt;
:* [[Cheat]]s, chat messages, and gamestate changes are now recorded in demos.&lt;br /&gt;
:* Single-player demos recorded with ZDoom are generally smaller than before.&lt;br /&gt;
:* &#039;&#039;Quake 2&#039;&#039;-style deathmatch flags.&lt;br /&gt;
:* Cheats (optionally) work in multiplayer games.&lt;br /&gt;
:* Mode X is now supported under Win95, so all the machines that couldn&#039;t run ZDoom in 320x200 before should be able to now.&lt;br /&gt;
:* Fewer conditions result in error messages that quit the game. (If you have &#039;&#039;[[Heretic]]&#039;&#039;, try this: Start ZDoom with -file heretic and go to the console and type &amp;quot;{{CCMD|D|map}} E1M1&amp;quot;.)&lt;br /&gt;
:* Keys can repeat in the [[console]].&lt;br /&gt;
:* The console and chat mode now use the localized keymap set with the Keyboard control panel.&lt;br /&gt;
:* Messages at the top of the screen now break along between words instead of in the middle of them.&lt;br /&gt;
:* Added {{c|-config}} [[command line parameter]].&lt;br /&gt;
:* Added {{c|-fastdemo}} command line parameter.&lt;br /&gt;
:* Added new {{CCMD|D|screenshot}} command. (bound to &amp;quot;Print Screen&amp;quot; key by default)&lt;br /&gt;
:* Added &#039;&#039;Quake&#039;&#039;-like {{CCMD|P|+showscores}} command. (bound to &amp;quot;\&amp;quot; key by default)&lt;br /&gt;
:* [[Alias]]es are now saved in the config file.&lt;br /&gt;
:* Added support for multiple pitched sounds like in very old version of Doom. (Use the snd_pitched cvar to turn it on and off.)&lt;br /&gt;
;{{LE|1.14a}} (July 27): {{forum|t=6|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom114a.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoomsrc114-114a.zip Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:Bugs fixed are:&lt;br /&gt;
:* No more crashing about freeing a pointer without ZONEID when changing levels.&lt;br /&gt;
:* Skies wider than 256 pixels are drawn correctly.&lt;br /&gt;
:* [[Monster]]s&#039; heights are once again the same as they were in id&#039;s original &#039;&#039;[[Doom]]&#039;&#039;, so certain areas work properly again.&lt;br /&gt;
:* Monsters shouldn&#039;t teleport into each other anymore.&lt;br /&gt;
:* Improved support for international keyboards.&lt;br /&gt;
:* The skill level chosen for a new game is no longer ignored if the new game is started while a demo is playing.&lt;br /&gt;
:Cosmetic changes:&lt;br /&gt;
:* No more &amp;quot;sv_gravity changed to...&amp;quot;, &amp;quot;skill changed to...&amp;quot;, etc. messages in single player games.&lt;br /&gt;
:* Activating the [[player setup]] [[menu]] automatically stops any playing [[demo]]s, since it doesn&#039;t work properly while they play.&lt;br /&gt;
:* {{Class|ExplosiveBarrel|Barrels}} don&#039;t go flying away when exploding anymore.&lt;br /&gt;
:* Added def_patch cvar to automatically load a DeHackEd patch each time the game is started.&lt;br /&gt;
:* ZDoom [[savegame]]s now use the name zdoomsv?.dsg instead of doomsav?.dsg.&lt;br /&gt;
:This version also includes some preliminary [[Boom]] support as I started integrating some of the Boom source code with ZDoom:&lt;br /&gt;
:* Medusa fix.&lt;br /&gt;
:* Openings limit removed.&lt;br /&gt;
:* Removed limit on switches and animations.&lt;br /&gt;
:* Added support for Boom-like [[ANIMATED]] and [[SWITCHES]] lumps in PWADs.&lt;br /&gt;
:* Added support for Boom-style scrollers (including conveyors).&lt;br /&gt;
:* Added partial [[deep water]] support.&lt;br /&gt;
;{{LE|1.16}} (December 22): {{forum|t=13|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom116.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom116-src.zip Source]}}&lt;br /&gt;
:Bug fixes:&lt;br /&gt;
:* No more limit on size of [[savegame]]s or [[demo]]s.&lt;br /&gt;
:* Screen resolutions above 320x200 are now the proper brightness (they were too bright before.)&lt;br /&gt;
:* Improved the brightness of the [[console]] [[font]].&lt;br /&gt;
:* {{Class|BulletPuff|Bullet puffs}} can show up on the floor and ceiling and not just walls.&lt;br /&gt;
:* Missile weapons can trigger gun activation lines.&lt;br /&gt;
:* {{Class|ExplosiveBarrel|Barrels}} now bounce around as much as they did in original &#039;&#039;[[Doom]]&#039;&#039;. (They were too &amp;quot;inert&amp;quot; in 1.14.)&lt;br /&gt;
:* If a demo is being recorded, quitting the game normally will save the demo to disk. (Previously, you had to use the stop command to do this.)&lt;br /&gt;
:New features for players:&lt;br /&gt;
:* Proper support for [[Boom]] maps.&lt;br /&gt;
:* Mouse wheel support and {{CCMD|P|weapnext}}/{{CCMD|P|weapprev}} commands.&lt;br /&gt;
:* Doublebindings.&lt;br /&gt;
:* Better analog joystick support.&lt;br /&gt;
:* 180 degree turn command for keyboarders.&lt;br /&gt;
:* Damage done by a rocket to its shooter is {{CVAR|C|splashfator|configurable}} and defaults to the original Doom behavior.&lt;br /&gt;
:* User-configurable gender. (Even though I don&#039;t have any new player sounds, at least the [[obituaries]] are gender-aware. :-)&lt;br /&gt;
:* [[Teamplay]] mode.&lt;br /&gt;
:* {{CVAR|C|sv_nobfgaim|New CVAR}} to disable manual aiming of the BFG to prevent someone from shooting it at the floor and quickly triggering tracer damage before.&lt;br /&gt;
:* Maps no longer need to have as many deathmatch starts as there are players in a deathmatch game.&lt;br /&gt;
:* Support for [[Doom Legacy]] [[skin]]s.&lt;br /&gt;
:* Rewrote the [[MIDI]]/[[MUS]] code so that it has a working volume control.&lt;br /&gt;
:* Many more [[console command]]s and [[CVARs]].&lt;br /&gt;
:New features for editors:&lt;br /&gt;
:* Proper support for [[Boom]] maps.&lt;br /&gt;
:* [[Obituaries]] are configurable with a .bex patch.&lt;br /&gt;
:* [[Monster path]]s&lt;br /&gt;
:* [[Colored lighting]]&lt;br /&gt;
:* [[Fog]] can be applied to only part of a level instead of all of it.&lt;br /&gt;
:* Per-sector [[gravity]] settings.&lt;br /&gt;
:* Support for up to 256 [[ambient sound]]s (as opposed to the limit of 64 in earlier versions).&lt;br /&gt;
:* [[Sector damage]] adjustable from between 0-255 points of damage.&lt;br /&gt;
:* Changeable [[camera]] views.&lt;br /&gt;
:* The following editing features that were introduced in &#039;&#039;[[Hexen]]&#039;&#039; are also available in ZDoom:&lt;br /&gt;
::*Most line specials take arguments that modify their behavior.&lt;br /&gt;
::*[[ACS]] scripting.&lt;br /&gt;
::*[[Hub]]s.&lt;br /&gt;
::*[[Earthquake]]s.&lt;br /&gt;
::*[[Dormant]] monsters.&lt;br /&gt;
::*Trigger events to happen on monster deaths.&lt;br /&gt;
::*[[Floor_Waggle|&amp;quot;Waggling&amp;quot; floors]].&lt;br /&gt;
::*[[Pillar_Build|Pillar builders]].&lt;br /&gt;
::*Push activation lines (walking into a wall can trigger an event).&lt;br /&gt;
::*[[Thing_Spawn|Thing spawning]] (e.g. for traps/gifts).&lt;br /&gt;
&lt;br /&gt;
==1999==&lt;br /&gt;
January 6 of this year saw the first release of the [[Raven Software]] source code.&lt;br /&gt;
;{{LE|1.17}} (February 17): {{forum|t=15|Release thread}} | {{plainlink|[http://www.zdoom.org/files/zdoom/zdos117c.zip DOS build]}}&lt;br /&gt;
:Bug fixes:&lt;br /&gt;
:* [[Multiplayer]] games with [[monster]]s do not crash.&lt;br /&gt;
:* Player corpses do not levitate and then fall down when a player respawns in multiplayer games.&lt;br /&gt;
:* Using {{CCMD|P|togglemap}} outside of a game will not crash.&lt;br /&gt;
:* Monsters stop attacking their target once it is dead.&lt;br /&gt;
:* EV_StopPlat() does not get stuck in an infinite loop if there are [[moving platform]]s.&lt;br /&gt;
:* Partially invisible players are drawn the proper colors (instead of green) if {{CVAR|R|r_drawfuzz}} is 0.&lt;br /&gt;
:* If you are invisible, so are your muzzle flashes.&lt;br /&gt;
:* Trying to execute a non-existent [[ACS|script]] will not crash.&lt;br /&gt;
:* Using a [[ChangeCamera]] special from an open script will not crash.&lt;br /&gt;
:* The [[FloorAndCeiling_RaiseByValue]] and [[FloorAndCeiling_LowerByValue]] now behave like &#039;&#039;[[Hexen]]&#039;&#039;&#039;s.&lt;br /&gt;
:* Using {{c|{{param|-loadgame}}}} from the [[command line]] works.&lt;br /&gt;
:* Fixed a memory leak during generation of the translucency tables.&lt;br /&gt;
:* In high resolutions, weapon sprites meet the bottom of the screen.&lt;br /&gt;
:* Sounds will not cut out mysteriously when there is no reason for them to do so.&lt;br /&gt;
:* Sounds will also not be stopped immediately when a thing is removed, so explosion sounds will play to their full length.&lt;br /&gt;
:* Things can make more than one sound at once.&lt;br /&gt;
:* The [[deathmatch]] [[scoreboard]] is aligned properly at high resolutions.&lt;br /&gt;
:* {{CCMD|P|Spynext}} and {{CCMD|P|spyprev}} work properly instead of leaving the [[status bar]] &amp;quot;lagging behind&amp;quot; the player being viewed.&lt;br /&gt;
:* The {{Class|Infrared|light-amp}} does not disable colored lighting.&lt;br /&gt;
:* The [[sky]] gets {{dw|invulnerability colormap bug|inverted}} when using the invulnerability powerup.&lt;br /&gt;
:* Implemented better z-checking code (from &#039;&#039;[[Heretic]]&#039;&#039;/&#039;&#039;[[Hexen]]&#039;&#039;).&lt;br /&gt;
:* {{Class|PainElemental|Pain elementals}} will spawn one {{Class|LostSoul|lost soul}} at a time instead of two inside of each other.&lt;br /&gt;
:* Bex patches that use thing mnemonics really do work now, and unknown bit messages aren&#039;t generated for regular [[DeHackEd]]  patches.&lt;br /&gt;
:* Linedef type 134 for regular &#039;&#039;[[Doom]]&#039;&#039;/[[Boom]] maps requires a red key for activation (it was being improperly translated to require a blue one).&lt;br /&gt;
:* Monsters can activate secret lines when they cross them. (See &#039;&#039;[[Doom II]]&#039;&#039; MAP08).&lt;br /&gt;
:* The player extreme death sound is used.&lt;br /&gt;
:* When a player leaves a network game, their body is removed instead of being left empty.&lt;br /&gt;
:* 0-length sounds are treated as empty sounds instead of sounds 4 gigs long.&lt;br /&gt;
:* [[Skin]]s that replaced player sounds with sounds in the [[IWAD]] work.&lt;br /&gt;
:* Muzzle flashes do not light up foggy areas, and fullbright sprites stay shrouded in fog.&lt;br /&gt;
:* Alphanumeric keys no longer automatically repeat on the console.&lt;br /&gt;
:* Wads such as gothicdm2 that used new flats in addition to the ones in the IWAD with the regular doom.exe work.&lt;br /&gt;
:New features:&lt;br /&gt;
:* Significant speed improvements on modern processors.&lt;br /&gt;
:* [[Armor]] and [[key]]s are shown on the fullscreen HUD.&lt;br /&gt;
:* Colored text.&lt;br /&gt;
:* A {{CCMD|P|playdemo}} console command.&lt;br /&gt;
:* A [[chasecam]].&lt;br /&gt;
:* A [[particle]] system.&lt;br /&gt;
:* An optional [[railgun]] to show off the particle system. (Start the game with {{c|{{param|-deh}} [[railgun.bex]]}} if you want to use it.)&lt;br /&gt;
:New features interesting for wad authors:&lt;br /&gt;
:* [[Polyobject]]s.&lt;br /&gt;
:* [[Sound sequence]]s.&lt;br /&gt;
:* WAVE files can be used as sound lumps without converting them to DMX&#039;s format first.&lt;br /&gt;
:* A sky can be specified to not be stretched even if it is shorter than 200 pixels.&lt;br /&gt;
:* {{Class|Spark}}s.&lt;br /&gt;
:* {{Class|ParticleFountain|Particle fountain}}s.&lt;br /&gt;
:* Parallax skies.&lt;br /&gt;
:* Some new [[DeHackEd]] thing flags from &#039;&#039;[[Hexen]]&#039;&#039; (bobbing, reflective, etc.).&lt;br /&gt;
;{{LE|1.17a}} (February 21): {{forum|t=16|Release thread}}&lt;br /&gt;
:Mostly minor bug fixes, released because [[Herian 2]] needed some of those fixes. There are a few new features, however:&lt;br /&gt;
:* If you have a skins/ directory in the same directory as zdoom.exe, every wad file in it will be automatically loaded when the game starts. This way, you don&#039;t have to load your [[skin]]s by hand to use them.&lt;br /&gt;
:* New formatting options for text [[print]]ed using [[ACS]].&lt;br /&gt;
:* A [[A_MonsterRail|code pointer]] to make monsters fire a railgun.&lt;br /&gt;
;{{LE|1.17b}} (March 17): {{forum|t=21|Release thread}}&lt;br /&gt;
:Some minor bug fixes over 1.17 and 1.17a. It also loads faster because the sprite dimensions are not cached until they are actually needed. There are also some other internal changes in preparation for supporting &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;[[Hexen]]&#039;&#039;, but those don&#039;t affect the user yet.&lt;br /&gt;
;{{LE|1.17b1}} (March 19): {{forum|t=22|Release thread}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
;{{LE|1.17c}} (May 5): {{forum|t=28|Release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom117c.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom117c-src.zip Source]}}&lt;br /&gt;
:* Fixed game saving crashes on maps with [[wind]]/[[current]] effects.&lt;br /&gt;
:* In [[Boom]] [[deep water]] sectors, the underwater light and fog colors can now be set independently of the area above water.&lt;br /&gt;
:* Added nojump, allowjump, nofreelook, and allowfreelook keywords for use in [[MAPINFO]] lumps to control [[jumping]] and [[free look]].&lt;br /&gt;
:* The random number seed now changes each time you run the program.&lt;br /&gt;
;{{LE|1.18 test 1}} (June 30): {{forum|t=33|Release thread}}&lt;br /&gt;
:* Tweaked the optimized renderer for fifth-generation processors.&lt;br /&gt;
:* Added the following specials:&lt;br /&gt;
::*[[Line_AlignFloor]]&lt;br /&gt;
::*[[Line_AlignCeiling]]&lt;br /&gt;
::*[[Sector_SetRotation]]&lt;br /&gt;
::*[[Sector_SetCeilingPanning]]&lt;br /&gt;
::*[[Sector_SetFloorPanning]]&lt;br /&gt;
::*[[Sector_SetCeilingScale]]&lt;br /&gt;
::*[[Sector_SetFloorScale]]&lt;br /&gt;
:* Added an additional parameter to the [[Transfer_Heights]] special.&lt;br /&gt;
:* Switched to the [http://sourceforge.net/projects/openptc/ OpenPTC] library for display.&lt;br /&gt;
:* Converted lots of code to an object-oriented C++ architecture.&lt;br /&gt;
;{{LE|1.18 test 2}} (July 1): {{forum|t=36|Release thread}}&lt;br /&gt;
:* Fixed vertical aim clipping ({{Class|BFG9000|BFG}} works again).&lt;br /&gt;
:* Fixed [[monster]] wandering.&lt;br /&gt;
:* Maps with mapthings of type 0 no longer generate warning messages.&lt;br /&gt;
:* [[Crusher]]s that do no damage no longer act as if they inflict pain to actors.&lt;br /&gt;
:* The [[alias]] command lists aliases again.&lt;br /&gt;
:* Aliases are saved to the [[config file]] again.&lt;br /&gt;
;{{LE|1.18 test 3}} (July 2): {{forum|t=37|Release thread}}&lt;br /&gt;
:* Removed unnecessary display mode switches.&lt;br /&gt;
:* Created a DCanvas class to encapsulate most 2D rendering.&lt;br /&gt;
;{{LE|1.18 test 4}} (July 3): {{forum|t=39|Release thread}}&lt;br /&gt;
:* Fixed the &amp;quot;Bad DCanvas::CopyRect&amp;quot; problem introduced in test3.&lt;br /&gt;
:* Fixed [[sound sequence]]s that should not be cut off when stopped (such as the standard doors).&lt;br /&gt;
;{{LE|1.18 test 5}} (July 6): {{forum|t=40|Release thread}}&lt;br /&gt;
:* Fixed a potential infinite loop that was introduced in [[#1.18 test 1|118test1]].&lt;br /&gt;
:* Delayed the initial execution of [[CVAR]] callbacks.&lt;br /&gt;
:* Added &#039;&#039;[[Heretic]]&#039;&#039;&#039;s {{wp|Xiaolin Wu&#039;s line algorithm|anti-aliased Wu line drawer}} to the [[automap]].&lt;br /&gt;
;{{LE|1.18 test 6}} (July 10): {{forum|t=41|Release thread}}&lt;br /&gt;
:* Rewrote the {{wp|Xiaolin Wu&#039;s line algorithm|Wu line drawer}} to look better (especially in overlay mode).&lt;br /&gt;
:* [[Sky stretching|Stretched skies]] now get stretched horizontally as well as vertically.&lt;br /&gt;
:* Did an initial integration of the [[Cajun Bot]] 0.71 code.&lt;br /&gt;
;{{LE|1.18 test 7}} (July 12):&lt;br /&gt;
:* Fixed handling of maps with scrolling walls.&lt;br /&gt;
:* Single player works again. In test 6, all games were considered either [[coop]] or [[deathmatch]].&lt;br /&gt;
:* Disabled the [[bot]] thinking code in single player games, so you don&#039;t suffer a performance hit when not using bots.&lt;br /&gt;
:* Added some performance counters accessible through the {{CCMD|D|stat}} command.&lt;br /&gt;
;{{LE|1.18 test 8}} (July 20): {{forum|t=43|Release thread}}&lt;br /&gt;
:* Fixed a crash problem with the &amp;quot;burn&amp;quot; [[screen wipe]].&lt;br /&gt;
:* Fixed a crash problem with playing non-assigned [[sound sequence]]s.&lt;br /&gt;
:* Fixed a crash problem related to trying to shutdown the music subsystem twice.&lt;br /&gt;
:* If you try to add more coop [[bot]]s than there are coop starts, the extra bot leaves quietly instead of ending the game.&lt;br /&gt;
:* {{CVAR|C|sv_weapondrop|Weapondrop}} is now a &amp;quot;server&amp;quot; CVAR, which it should have been in the first place.&lt;br /&gt;
:* Changed the nodetable file format to be more compact.&lt;br /&gt;
:* Bots can now be recorded in demos.&lt;br /&gt;
:* Bots work in [[multiplayer]] games. Still buggy. Spawning bots can cause consistency failures, and they can start spinning wildly.&lt;br /&gt;
;{{LE|1.18 test 9}} (August 9): {{forum|t=44|Release thread}}&lt;br /&gt;
:* Fixed the &amp;quot;wild&amp;quot; [[bot]] spinning problem.&lt;br /&gt;
:* Commands like {{CCMD|D|changemap}} that could make network games go out of sync should work properly now. The reason they would do that is closely related to the reason that the bots would start spinning.&lt;br /&gt;
:* Finished the serializer. Now savegames work. [[Hub]]s don&#039;t, because I haven&#039;t written the player travelling code yet.&lt;br /&gt;
:* Various other code cleanup.&lt;br /&gt;
;{{LE|1.18 test 10}} (August 14):&lt;br /&gt;
:* Reimplemented [[hub]] travel.&lt;br /&gt;
:* Optimized R_MapPlane slightly.&lt;br /&gt;
:* Added {{CCMD|D|fov}} command.&lt;br /&gt;
:* Added vertical sub-pixel accuracy to the renderer.&lt;br /&gt;
:* Added searches for an [[IWAD]] in the current directory, $DOOMWADDIR, and $HOME.&lt;br /&gt;
;{{LE|1.18}} (September 5): {{forum|t=46|Release thread}}&lt;br /&gt;
:* Replaced the older [[Bots|Cajun]] 0.71 with Cajun 0.97.&lt;br /&gt;
:* Fixed handling of [[status bar]] [[mugshot|faces]] with [[skin]]s that provide them.&lt;br /&gt;
:* Added [[swimmable water]].&lt;br /&gt;
:* Messages printed to the middle of the screen also print to the [[console]].&lt;br /&gt;
:* Skill and other server [[CVARs]] get saved in [[savegame]]s again.&lt;br /&gt;
:* Added liquid [[texture warping]].&lt;br /&gt;
:* Bad [[MAPINFO]] lumps generate error messages instead of hanging.&lt;br /&gt;
:* Realized that it&#039;s impossible to guarantee that all object pointers will be valid without some effort, so FArchive saves DObject objects as NULL objects now instead of aborting with an error.&lt;br /&gt;
:* Added the [[built-in ACS functions]] [[LocalAmbientSound]], [[ActivatorSound]], and [[SetLineMonsterBlocking]].&lt;br /&gt;
:* Added a {{Class|SecretTrigger|thing}} that does nothing but count toward the number of [[secret]]s.&lt;br /&gt;
:* Added a {{CCMD|D|fly}} mode.&lt;br /&gt;
:* Finally implemented the {{CCMD|P|+moveup}} and {{CCMD|P|+movedown}} commands.&lt;br /&gt;
;{{LE|1.18a}} (September 12): {{forum|t=47|Release thread}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed [[liquid warping]] temporarily stopping when changing levels.&lt;br /&gt;
:* {{CCMD|P|+mlook|+/-mlook}} commands do not generate unknown command messages.&lt;br /&gt;
:* Fixed support for maps with &amp;gt;10 deathmatch starts. Thanks to Roman Hatsiev.&lt;br /&gt;
:* Fixed support for the special &amp;quot;maps&amp;quot; EndGame? in MAPINFO lumps.&lt;br /&gt;
:* {{Class|TeleportDest2|Teleport destination (no gravity)}} now works as intended.&lt;br /&gt;
:* Hopefully fixed [[savegame]] problems.&lt;br /&gt;
:* [[Bots]] are restored from savegames.&lt;br /&gt;
:* Fixed keyboard turning speed when {{c|{{param|-dup}}}} is used.&lt;br /&gt;
:* Network commands get executed only once when {{c|{{param|-dup}}}} is used.&lt;br /&gt;
:* In sectors with [[damaging floor]]s and swimmable [[deep water]], the damage will also be applied while the player is swimming and not just when the player is on the ground.&lt;br /&gt;
;{{LE|1.18b}} (September 15): {{forum|t=48|Release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom118b.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom118b-src.zip Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed crash when saving games with more than 1024 objects.&lt;br /&gt;
:* Fixed crash when loading a game without starting a new one first.&lt;br /&gt;
:* Reduced the size and frequency of pregame network packets, under the assumption that problems people were having using 1.18 on the Internet are a result of limited modem bandwidth.&lt;br /&gt;
;{{LE|1.19}} (November 24): {{forum|t=53|Release thread}} | {{forum|t=54|Source/Linux build release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom-1.19.tar.gz Source]}}&lt;br /&gt;
:First official Linux build.&lt;br /&gt;
:* [[DeHackEd]] patches that set an actor&#039;s {{Property|DeathSound|death sound}} to 0 without removing the [[A_Scream]] call no longer crash.&lt;br /&gt;
:* Fixed sync problems when playing with {{Class|BulletPuff|bullet puffs}} as [[particle]]s vs as sprites.&lt;br /&gt;
:* Fixed friction when walking on the bottom of swimmable water.&lt;br /&gt;
:* Added Jeffrey Cuenco&#039;s fixes to get {{c|{{param|-host}}}} and {{c|{{param|-join}}}} [[command line parameters]] to work properly.&lt;br /&gt;
:* Fixed [[Boom]] [[Generic_Door|generalized locked doors]] so that the open/close type will actually close.&lt;br /&gt;
:* Added pointer tracking and cleanup. This should fix the occasional crashes when saving games and various other anomalies.&lt;br /&gt;
;{{LE|1.20}} (November 25): {{forum|t=56|Release thread}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed saving, reloading, and then resaving [[savegame|games]] when travelling between levels in a [[hub]].&lt;br /&gt;
:* Fixed saving of [[ACS]] scripts scheduled to occur on a future level.&lt;br /&gt;
;{{LE|1.21}} (November 26): {{forum|t=57|Release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom121.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom121-src.zip Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed problems with thinkers removing themselves and causing other thinkers to not get a chance to think.&lt;br /&gt;
:* Added {{CVAR|R|hud_scale}} CVAR&lt;br /&gt;
;{{LE|1.22}} (November 12): {{forum|t=60|Release thread}} | {{plainlink|[http://www.zdoom.org/files/zdoom/1.x/zdoom122.zip Windows build] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom-1.22-i386.tar.gz Linux build] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom122-src.zip Windows source] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom-1.22.tar.gz Linux source]}}&lt;br /&gt;
:* [[Scroll_Texture_Both]] and [[TranslucentLine]] specials can now be used from [[ACS]].&lt;br /&gt;
:* Fixed compiler-dependent [[CVAR]] ordering during [[netgame]] arbitration.&lt;br /&gt;
:* Fixed certain [[polyobject]] movement combinations that would not stop even though they were supposed to.&lt;br /&gt;
:* Did some cleanup for Alpha processors.&lt;br /&gt;
&lt;br /&gt;
==2000==&lt;br /&gt;
June 20 of this year saw the public release of the [[Build]] source code.&lt;br /&gt;
;{{LE|1.23 Beta}} (May 10): {{forum|t=64|Release thread}}&lt;br /&gt;
:*Partial &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;[[Hexen]]&#039;&#039; support.&lt;br /&gt;
:*Windows build uses [[FMOD Ex|FMOD]] instead of [http://www.s2.org/midas/ MIDAS].&lt;br /&gt;
&lt;br /&gt;
==2001==&lt;br /&gt;
;{{LE|1.23 Beta 19}} (March 9): {{forum|t=74|Release thread}}&lt;br /&gt;
:Added new [[camera]] types.&lt;br /&gt;
:Added [[LANGUAGE|string localization]].&lt;br /&gt;
:Added [[decal]]s.&lt;br /&gt;
:Added [[slope]]s.&lt;br /&gt;
:Added [[skybox]]es.&lt;br /&gt;
;{{LE|1.23 Beta 20}} (March 11): {{forum|t=75|Release thread}}&lt;br /&gt;
;{{LE|1.23 Beta 23}} (April 9): {{forum|t=76|Release thread}}&lt;br /&gt;
;{{LE|1.23 Beta 24}} (April 12): {{forum|t=77|Release thread}}&lt;br /&gt;
;{{LE|1.23 Beta 25}} (August 15): {{forum|t=81|Release thread}}&lt;br /&gt;
:Linux build now uses SDL&lt;br /&gt;
;{{LE|1.23 Beta 28}} (September 17): {{forum|t=83|Release thread}}&lt;br /&gt;
:Added a few [[decal]]-related [[CVARs]].&lt;br /&gt;
;{{LE|1.23 Beta 28a}} (December 13): {{forum|t=88|Release thread}}&lt;br /&gt;
&lt;br /&gt;
==2002==&lt;br /&gt;
;{{LE|1.23 Beta 33}} (February 5): {{Forum|t=90|Release thread}} | {{plainlink|[http://www.zdoom.org/files/zdoom/1.x/zdoom-1.23beta33-linux.bz2 Linux build] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom-1.23beta33-src.tar.bz2 Source]}}&lt;br /&gt;
:Many fixes and rendering optimization.&lt;br /&gt;
:*Increased &#039;&#039;[[Heretic]]&#039;&#039;/&#039;&#039;[[Hexen]]&#039;&#039; support&lt;br /&gt;
:*Improved [[decal]]s.&lt;br /&gt;
:*Added support for the [[Bloodbath announcer]]&lt;br /&gt;
:*Added [[underwater]] [[REVERBS|reverb]] effect.&lt;br /&gt;
:*Added [[Line_Horizon]] effect.&lt;br /&gt;
:*Added {{Class|ScriptedMarine|scripted marines}} and several [[ACS]] enhancements.&lt;br /&gt;
:*Added support for [[DeePsea]]&#039;s [[patch|tall patches]].&lt;br /&gt;
:*Added [[slope]] things.&lt;br /&gt;
:*Changed [[license]] for original ZDoom source code to a &amp;quot;BSD-ish one&amp;quot;.&lt;br /&gt;
;{{LE|2.0 Beta 13}} (August 27):&lt;br /&gt;
:*Further increased &#039;&#039;Heretic&#039;&#039;/&#039;&#039;Hexen&#039;&#039; support.&lt;br /&gt;
:*Added [[PNG]] support for screenshots. [[Savegame]]s are actually PNG files now.&lt;br /&gt;
:*Added [[ZDBSP|internal nodebuilder]], made it [[polyobject]]-aware.&lt;br /&gt;
:*Added SNES SPC music support.&lt;br /&gt;
:*Added a loader for [[Build]] maps.&lt;br /&gt;
:*Added support for double- and quadruple-resolution flats (128x128 and 256x256).&lt;br /&gt;
:*Added ACS [[libraries]].&lt;br /&gt;
:*Added support for up to 8 mouse buttons.&lt;br /&gt;
:*Added the very first version of [[DECORATE]].&lt;br /&gt;
:*Removed [[MBF]]&#039;s torque simulation because of the problems it caused.&lt;br /&gt;
&lt;br /&gt;
==2003==&lt;br /&gt;
;{{LE|2.0.47}} (May 14): {{Forum|t=101|Release thread}} | {{plainlink|[http://www.zdoom.org/files/lars/47.cab Build]}}&lt;br /&gt;
;{{LE|2.0.47i}} (October 2): {{plainlink|[http://www.zdoom.org/files/lars/47i.cab Build]}}&lt;br /&gt;
;{{LE|2.0.48}} (October 23):&lt;br /&gt;
:*Interchangeability between [[flat]]s and [[texture]]s.&lt;br /&gt;
;{{LE|2.0.49}}, {{LE|2.0.50}} (October 26)&lt;br /&gt;
;{{LE|2.0.51}} (October 30)&lt;br /&gt;
;{{LE|2.0.52}} (October 31)&lt;br /&gt;
;{{LE|2.0.53}} (November 16)&lt;br /&gt;
;{{LE|2.0.54}}, {{LE|2.0.55}} (November 23)&lt;br /&gt;
;{{LE|2.0.56}} (November 25)&lt;br /&gt;
;{{LE|2.0.57}} (November 26)&lt;br /&gt;
;{{LE|2.0.58}}, {{LE|2.0.59}} (December 7)&lt;br /&gt;
;{{LE|2.0.60}} (December 8)&lt;br /&gt;
&lt;br /&gt;
==2004==&lt;br /&gt;
;{{LE|2.0.61}} (January 22) &lt;br /&gt;
;{{LE|2.0.62}} (February 7):&lt;br /&gt;
:*Added modern [[DECORATE]] support.&lt;br /&gt;
;{{LE|2.0.63}} (February 10): {{plainlink|[http://www.zdoom.org/files/lars/63.cab Build] {{!}} [http://www.zdoom.org/files/lars/63src.cab Source]}}&lt;br /&gt;
:*Added custom monsters to DECORATE.&lt;br /&gt;
;{{LE|2.0.64}} (June 8)&lt;br /&gt;
;{{LE|2.0.90}} (October 21):&lt;br /&gt;
:*Added &#039;&#039;[[Strife]]&#039;&#039; support and new inventory system&lt;br /&gt;
;{{LE|2.0.91}} (October 22)&lt;br /&gt;
;{{LE|2.0.92}} (October 31)&lt;br /&gt;
;{{LE|2.0.93}} (November 3)&lt;br /&gt;
;{{LE|2.0.94}} (November 19)&lt;br /&gt;
;{{LE|2.0.95}} (December 24): {{plainlink|[http://www.zdoom.org/files/lars/95changes.html Changelog]}}&lt;br /&gt;
:*Added [[camera]] textures to [[ANIMDEFS]] and [[SetCameraToTexture]]&lt;br /&gt;
:*Improved [[console]] tab completion, added Ctrl-X shortcut to clear the console&#039;s command line&lt;br /&gt;
:*Several &#039;&#039;[[Hexen]]&#039;&#039; and &#039;&#039;[[Strife]]&#039;&#039; fixes&lt;br /&gt;
:*Merged in Jim&#039;s [[ACS]] character array [[print]]ing support. &lt;br /&gt;
:*Added the [[polymost]] clipper.&lt;br /&gt;
:*Added support for 16:10 and 5:4 aspect ratios and letterboxing.&lt;br /&gt;
:*Added [[scope|static local variables]], [[Log]], [[SetAmmoCapacity]] and [[GetAmmoCapacity]] to [[ACS]].&lt;br /&gt;
;{{LE|2.0.96}} (December 25): {{plainlink|[http://www.zdoom.org/files/lars/96.cab Build] {{!}} [http://www.zdoom.org/files/lars/96src.cab Source] {{!}} [http://www.zdoom.org/files/lars/96changes.html Changelog]}}&lt;br /&gt;
:*Added [[TITLEMAP]]&lt;br /&gt;
&lt;br /&gt;
==2005==&lt;br /&gt;
;{{LE|2.0.97}} (September 28): {{forum|t=8060|Release thread}} | {{plainlink|[http://www.zdoom.org/files/lars/97.cab Build] {{!}} [http://www.zdoom.org/files/lars/97src.rar Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:*The [[LANGUAGE]] lump is now text-based.&lt;br /&gt;
:*Added IMF [[music format]] support.&lt;br /&gt;
:*Ported [[SetActorAngle]] and [[SetLineBlocking|BLOCK_RAILING]] from the [[ZDoom Community Build]].&lt;br /&gt;
:*Added [[Polymost]] visualization code from [[Build]].&lt;br /&gt;
:*Gave {{Flag|DONTMORPH}} flag to {{Class|Cyberdemon}}, {{Class|SpiderMastermind}}, {{Class|AlienSpectre1}}, {{Class|Crusader}}, {{Class|Programmer}}, and {{Class|Inquisitor}}.&lt;br /&gt;
:*Made {{Class|Puffy}} and projectiles spawned by [[A_LastZap]] deal no damage.&lt;br /&gt;
:*[[Teleport_NewMap]] can now be used within a [[TITLEMAP]] in order to make it possible to use different maps as the title map.&lt;br /&gt;
:*Merged in Graf Zahl&#039;s [[Caverns of Darkness]] patch.&lt;br /&gt;
:*Added [[Polymost]] wireframe mode.&lt;br /&gt;
:*Added {{CCMD|O|writeopl}} console command.&lt;br /&gt;
:*[[UsePuzzleItem]] can now be a [[thing]]&#039;s [[special]].&lt;br /&gt;
:*Missiles with negative damage now give you health.&lt;br /&gt;
;{{LE|2.0.98}} (November 3): {{forum|t=8460|Release thread}} | {{plainlink|[http://www.zdoom.org/files/lars/98.cab Build] {{!}} [http://www.zdoom.org/files/lars/98src.rar Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
&lt;br /&gt;
==2006==&lt;br /&gt;
February 16 of this year saw the first commit to the [[SVN]] repository.&lt;br /&gt;
;{{LE|2.1.0}}{{rev|204}} (June 21): {{forum|t=10550|Release thread}} | {{plainlink|[http://zdoom.org/files/old/zdoom-2.1.0.zip Build] {{!}} [http://zdoom.org/files/old/zdoom-2.1.0-src.7z Source]}}&lt;br /&gt;
:*Added several things from [[ZDoom Community Build]] (unofficial 2.0.96x) and [[GZDoom]], including custom [[DECORATE]] [[weapon]]s.&lt;br /&gt;
;{{LE|2.1.1}}{{rev|226}} (June 25): {{forum|t=10630|Release thread}} | {{versionlinks|2|1|1}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
;{{LE|2.1.2}}{{rev|257}} (July 17): {{forum|t=10895|Release thread}} | {{versionlinks|2|1|2}}&lt;br /&gt;
:*Added custom [[player class]]es.&lt;br /&gt;
:*Added &amp;quot;replaces&amp;quot; keyword for [[DECORATE]].&lt;br /&gt;
:*[[IWAD selection box]] now remembers the last choice.&lt;br /&gt;
:*Added [[A_RadiusThrust]] to DECORATE.&lt;br /&gt;
:*Added [[ThingCountName]] and  [[SpawnSpotFacing]] to [[ACS]].&lt;br /&gt;
:*Changed additive scroller options into a [[compatibility options|compatibility flag]].&lt;br /&gt;
;{{LE|2.1.3}}{{rev|265}} (July 18): {{forum|t=10930|Release thread}} | {{versionlinks|2|1|3}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Sounds can be specified by full path now in [[SNDINFO]] and [[S_SKIN]].&lt;br /&gt;
:* [[DECORATE]] replacement is more universal.&lt;br /&gt;
:* Added NecroMage&#039;s submission for bitwise/shift assignment operators for [[ACS]]. (Requires [[ACC]] 1.42+.)&lt;br /&gt;
:* Changed PlayAttacking2 to always use the melee state instead of different implementations per player and hard coding it to MissileState+1. Also changed PlayAttacking for the {{Class|HereticPlayer}} to use the same animation as PlayAttacking2. Now the special handling for &#039;&#039;[[Heretic]]&#039;&#039; in the FireWeapon functions can be removed.&lt;br /&gt;
;{{LE|2.1.4}}{{rev|273}} (July 29): {{forum|t=11063|Release thread}} | {{versionlinks|2|1|4}}&lt;br /&gt;
:*Added partial emulation of [[Boom]]&#039;s TRANMAP by analyzing such lumps and extrapolating translucency level from them. This does not work for non-translucency effects that can be achieved with TRANMAPs.&lt;br /&gt;
:*Added a {{CVAR|C|queryiwad_key}} cvar to control which key can force the [[IWAD selection box]] to appear. It can be either &amp;quot;shift&amp;quot; or &amp;quot;control&amp;quot;. Any other value will disable its functionality.&lt;br /&gt;
;{{LE|2.1.5}}{{rev|321}} (September 2): {{forum|t=11466|Release thread}} | {{versionlinks|2|1|5}}&lt;br /&gt;
:*New [[ACS]] functions: [[GetPlayerInfo]], [[ChangeLevel]], [[SectorDamage]], [[ReplaceTextures]]&lt;br /&gt;
:*New [[DECORATE]] functions: [[A_PlaySoundEx]], [[A_StopSoundEx]]&lt;br /&gt;
:*The {{CVAR|C|vid_nowidescreen}} cvar can be used to disable widescreen aspect ratio correction.&lt;br /&gt;
:*[[A_SpawnDebris]] and [[A_SpawnItem]] can optionally transfer the caller&#039;s color translation to the newly spawned item.&lt;br /&gt;
:*New morphing artifacts can be created by subclassing the {{Class|MorphProjectile}} and {{Class|MorphedMonster}} classes.&lt;br /&gt;
:*[[A_FireCustomMissile]] has a new parameter: Previously it always aimed straight ahead and altered the projectile&#039;s angle according to the resulting direction. If the 6th parameter is 1 now it will aim at the specified angle directly.&lt;br /&gt;
:*Users can now define their own [[TEXTCOLO|text colors]], and there are several new standard ones.&lt;br /&gt;
:*The fourth parameter of [[Polyobj_StartLine]] and the fifth parameter of [[Polyobj_ExplicitLine]] now set the line&#039;s ID.&lt;br /&gt;
:*DECORATE explosion parameters are no longer considered deprecated.&lt;br /&gt;
:*Calling [[Radius_Quake]], [[Thing_Activate]], or [[Thing_Remove]] with a [[TID]] of 0 now operates the activator.&lt;br /&gt;
:*Strife&#039;s {{Class|PhosphorousFire}} now does completely thrustless damage.&lt;br /&gt;
:*An actor&#039;s damage in DECORATE can now be specified as an expression that is evaluated each time it needs to do damage. To do this, enclose it within parentheses, and the normal Doom damage calculation will be bypassed.&lt;br /&gt;
:*Passing a negative script number to the {{CCMD|D|puke}} [[console command]] now runs the script with [[ACS_ExecuteAlways]] instead of [[ACS_Execute]].&lt;br /&gt;
:*[[Polyobject]]s defined with [[Polyobj_ExplicitLine]] are no longer limited to 64 segs.&lt;br /&gt;
:*Starting a new game or reloading an old one no longer resets the [[chasecam]].&lt;br /&gt;
:*The [[automap]] background is now a regular texture.&lt;br /&gt;
:*Added support for many [[image format]]s for use as textures: [[PNG]], JPEG, PCX, TGA, DDS.&lt;br /&gt;
:*Numerous bugfixes.&lt;br /&gt;
;{{LE|2.1.6}}{{rev|346}} (October 2): {{forum|t=11758|Release thread}} | {{versionlinks|2|1|6}}&lt;br /&gt;
:*Scaled 2D images are supported.&lt;br /&gt;
:*Dehacked max health usage defaults to consistency with other ([[Boom]]) ports.&lt;br /&gt;
:*A &#039;&#039;font&#039;&#039; parameter was added to [[A_Print]].&lt;br /&gt;
:*Quoted strings in [[DECORATE]] can no longer span multiple lines without using the escape character (\) at the end of each line. This makes it easier to spot places where you unintentionally left off a closing quote and got an error several lines later.&lt;br /&gt;
:*A new {{CCMD|O|writeini}} console command can be used to save [[the ini]] at any time, with any file name.&lt;br /&gt;
:*If the ini is write-protected when you quit, an error dialog now opens to let you know your settings could not be saved and gives you the opportunity to unprotect it.&lt;br /&gt;
:*Multiple stat displays can be enabled at once.&lt;br /&gt;
:*Several bugfixes.&lt;br /&gt;
;{{LE|2.1.7}}{{rev|524}} (October 31): {{forum|t=12015|Release thread}} | {{versionlinks|2|1|7}}&lt;br /&gt;
:*Alias commands can now do parameter substitution. If you have %x, where x is some number, in an alias command, it will be replaced by the appropriately numbered parameter passed when the alias is used, with %0 being replaced by the name of the alias itself.&lt;br /&gt;
:*A new {{Class|MapMarker}} actor has been added that you can use to mark points of interest on the [[automap]]. If its first argument is zero, the map marker itself appears on the automap, otherwise it is drawn on top of any actor with a [[TID]] matching that argument. If the second argument is one, then the map marker will only be appear if the player has previously seen the sector it is in. You can use [[Thing_Activate]] and [[Thing_Deactivate]] on markers to turn them on and off. To make custom markers, all you need to do is subclass MapMarker with [[DECORATE]].&lt;br /&gt;
:*Added the [[SetActorPitch]] [[ACS]] command to set an actor&#039;s pitch.&lt;br /&gt;
:*You can pass multiple jump targets to the [[A_Jump]] [[DECORATE]] function, and it will choose one of them at random if it jumps.&lt;br /&gt;
:*Using a [[TID]] of 0 with [[Thing_Deactivate]], [[SetActorAngle]], [[Thing_Spawn]]*, [[Thing_Projectile]]*, and [[Thing_Move]] will now operate on the activator.&lt;br /&gt;
:*The fifth argument for [[Line_SetIdentification]] can be used to set the high byte of the line ID.&lt;br /&gt;
:*Added a {{Property|CameraHeight}} [[DECORATE]] property for actors.&lt;br /&gt;
:*Added special death states for [[projectile]]s hitting actors. If missiles hit a non-bleeding actor, they try the Crash state first. If that doesn&#039;t exist or the actor is bleeding, they try the XDeath state next. If they hit anything else or neither of the two states are defined, they use the normal death state.&lt;br /&gt;
:*Added a {{Flag|PIERCEARMOR}} [[DECORATE]] flag for projectiles.&lt;br /&gt;
:*The {{CCMD|D|morphme}} [[console command]] can be given an optional argument to specify which class to morph into.&lt;br /&gt;
:*Miscellaneous bugfixes.&lt;br /&gt;
&lt;br /&gt;
==2007==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
==2008==&lt;br /&gt;
;{{LE|2.2.0}}{{rev|748}} (February 15): {{forum|t=16272|Release thread}} | {{versionlinks|2|2|0}}&lt;br /&gt;
:*This is the final version of ZDoom to fully support Windows 95 since later versions switched to [[FMOD Ex]].&lt;br /&gt;
:*Added [[custom damage types]], with monsters being able to have different custom pain chances, custom damage factors, and custom death sequence for each damage type. Also, damage-specific player pain and death sounds.&lt;br /&gt;
:*Custom damage color for [[palette flash]]es per [[player class]].&lt;br /&gt;
:*Custom state labels. New states can be defined in [[DECORATE]].&lt;br /&gt;
:*The [[SBARINFO]] lump for creating status bar and other [[HUD]]s.&lt;br /&gt;
:*[[Skill definition]] in [[MAPINFO]], with many properties.&lt;br /&gt;
:*Most thing functions treat a [[TID]] of 0 as the activator now.&lt;br /&gt;
:*Support for [[ENDOOM]] screens and the graphical or semi-graphical [[startup lumps|screens]] from &#039;&#039;[[Heretic]]&#039;&#039;, &#039;&#039;[[Hexen]]&#039;&#039; and &#039;&#039;[[Strife]]&#039;&#039;.&lt;br /&gt;
:*Several things backported from [[Skulltag]], including powerups and flags for increased port compatibility:&lt;br /&gt;
::*{{Class|PowerDrain|Drain}}, {{Class|PowerHighJump|HighJump}} and {{Class|PowerRegeneration|Regeneration}} runes as powerups and used specific player sounds for their sound effects.&lt;br /&gt;
::*PowerQuadDamage and PowerQuarterDamage as more customizable {{Class|PowerDamage}} and {{Class|PowerProtection}}. These new powerups allow free customization of the damage modification per damage type by inheriting from these classes and setting specific values. Such derived damage/protection powerups will be considered as separate powers so that for example a QuadDamage and a DoubleDamage item can be stacked which would result in 8x damage.&lt;br /&gt;
::*{{Property|Armor.MaxBonus}} and {{Property|Armor.MaxBonusMax}} properties to create armor bonuses that increases the max amount that can be given by other armor items.&lt;br /&gt;
::*Custom F1 help screen [[MAPINFO]] option&lt;br /&gt;
::*Added REDMAP and GREENMAP [[palette blend]]s.&lt;br /&gt;
::*Imported SAME_SPAWN_SPOT [[DM flag]]&lt;br /&gt;
::*Pickup sprite for the {{Class|pistol}}.&lt;br /&gt;
::*Imported {{CVAR|R|r_maxparticles}} CVAR.&lt;br /&gt;
:*New [[Direct3D]] code for better Vista support.&lt;br /&gt;
:*Autoload sections in [[the ini]].&lt;br /&gt;
:*[[GZDoom]]&#039;s [[alternate HUD]].&lt;br /&gt;
:*Custom blood on an actor-by-actor basis into [[DECORATE]].&lt;br /&gt;
:*Smart [[autoaim]] code to prevent the targeting of friendly monsters.&lt;br /&gt;
:*New {{Flag|NOBLOODDECALS}} flag that prevents bleeding actors from spawning blood [[decal]]s.&lt;br /&gt;
:*Customizable border textures. They are defined with the [[MAPINFO]] keyword &#039;bordertexture&#039; and are settable per map.&lt;br /&gt;
:*Custom label support for [[A_Chase]] and [[A_VileChase]]&lt;br /&gt;
:*{{Property|Player.RunHealth}} property to expose the {{Class|StrifePlayer}}&#039;s behavior of not being able to run when its [[health]] is below 10.&lt;br /&gt;
:*Customizable gravity per actor&lt;br /&gt;
:*New {{CCMD|D|summonfoe}} console command, which is analogous to {{CCMD|D|summonfriend}} but forces the summoned creature to be hostile instead.&lt;br /&gt;
:*Added two new [[MAPINFO]] flags to control what actor activates impact lines: {{c|MissileShootersActivateImpactLines}} (the current behavior) and {{c|MissilesActivateImpactLines}} (the original &#039;&#039;[[Hexen]]&#039;&#039; behavior).&lt;br /&gt;
:*More player water sounds: {{c|*dive}} (head goes below water), {{c|*surface}} (your head goes back above water), {{c|*gasp}} (getting air back after starting to drown)&lt;br /&gt;
:*Using &amp;quot;*&amp;quot; with [[ACS]]&#039;s music commands will play the level&#039;s default music set in [[MAPINFO]]&lt;br /&gt;
:*Two new CVARs ({{CVAR|C|win_x}} and {{CVAR|C|win_y}}) that keep track of the window position when not playing in fullscreen mode&lt;br /&gt;
:*Key bindings can now be [[print]]ed with [[ACS]]&lt;br /&gt;
:*{{Flag|INVENTORY.KEEPDEPLETED}} flag for inventory items to keep them in the player&#039;s inventory even when they have been used up. If the item also has an inventory bar icon, it will be drawn darkened while it is depleted.&lt;br /&gt;
:*{{Flag|INVENTORY.IGNORESKILL}} flag for ammo that prevents the given quantity from being modified by the skill level&lt;br /&gt;
:*{{Property|Player.AttackZOffset}} for {{Class|PlayerPawn}}. This is the offset from the center of the player at which their attacks are fired and scales according to their crouched height.&lt;br /&gt;
:*Added a new [[SetActorState]] [[ACS]] function.&lt;br /&gt;
:*{{Flag|CANUSEWALLS}} flag which allows a [[monster]] to activate &#039;use&#039; specials like doors. This flag is on by default for any monster, which was the previous behavior.&lt;br /&gt;
:*[[Thing_Stop]] action special.&lt;br /&gt;
:*New {{Flag|FORCERADIUSDMG}} flag that allows exploding items to hurt boss monsters.&lt;br /&gt;
:*New {{Flag|USESPECIAL}} flag that allows using things to execute their [[special]]s.&lt;br /&gt;
:*[[Compatibility option]] to restore the original behavior of the {{Class|PowerInvisibility|Invisibility}} powerup&lt;br /&gt;
:*Telefrag option added to [[A_SpawnItemEx]].&lt;br /&gt;
:*Added option to [[A_Chase]] that prevents the monster from moving.&lt;br /&gt;
:*New {{c|allowrespawn}} MAPINFO option.&lt;br /&gt;
:*New [[scoreboard]]s.&lt;br /&gt;
:*New [[A_LookEx]] function.&lt;br /&gt;
:*Customizable [[team]]s through the [[TEAMINFO]] lump.&lt;br /&gt;
:*New {{CCMD|D|take}} console command to do the opposite of {{CCMD|D|give}}.&lt;br /&gt;
:*[[UseInventory]]/[[UseActorInventory]] [[ACS]] functions.&lt;br /&gt;
:*New [[A_CustomBulletAttack]] &#039;&#039;aimfacing&#039;&#039; parameter&lt;br /&gt;
:*New [[A_PlaySoundEx]] attenuation parameter.&lt;br /&gt;
:*[[Automap]] markers are stored in [[savegame]]s now.&lt;br /&gt;
:*&#039;No respawn&#039; [[DM flag]] which prevents a [[player]] from respawning after they have died.&lt;br /&gt;
:*&#039;Keep frags gained&#039; [[DM flag]] which allows you to choose whether you want to reset the [[frag]]s of each player next level or not.&lt;br /&gt;
:*Sector_Outside [[sector type]] which forces outside [[fog]] regardless of ceiling texture.&lt;br /&gt;
:*User-defined [[crosshair]]s in the [[Display options]] menu. See xhairs.txt in zdoom.pk3.&lt;br /&gt;
:*Generic log display that can show &#039;&#039;[[Strife]]&#039;&#039;&#039;s log messages in all games regardless of the current game, active [[status bar]] and [[HUD]] mode.&lt;br /&gt;
:*Support for stenciling actors with {{Property|RenderStyle}} property.&lt;br /&gt;
:*.TXT files can now be loaded by simply dragging-and-dropping them on top of zdoom.exe.&lt;br /&gt;
:*&#039;Ice&#039; [[translation]] is accessible from [[DECORATE]].&lt;br /&gt;
:*[[Teamplay]] MAPINFO option.&lt;br /&gt;
:*[[ACS]] script type [[RETURN]]. These are executed by players who return to a map they&#039;ve previously been to.&lt;br /&gt;
&lt;br /&gt;
==2009==&lt;br /&gt;
;{{LE|2.3.0}}{{rev|1455}} (March 1): {{Forum|t=21116|Release thread}} | {{versionlinks|2|3|0}}&lt;br /&gt;
:*[[Universal Doom Map Format]] (UDMF) support.&lt;br /&gt;
:*New garbage collector to improve performances on resource-intensive maps.&lt;br /&gt;
:*Sound uses [[FMOD Ex]] instead of FMOD. Among the benefits, [[REVERBS|reverbs]] can now work on any sound card, not just those that support EAX.&lt;br /&gt;
:*SPC is now a first-class [[music format]] that no longer requires an external DLL to play.&lt;br /&gt;
:*Support for [[Vavoom]]&#039;s [[slope|vertex height things]] and [[Eternity Engine]]&#039;s [[3D middle texture]]s.&lt;br /&gt;
:*[[Linked sectors]], to ensure that multiple [[sector]]s can move consistently in sync.&lt;br /&gt;
:*[[TEXTURES]] lump for text-based texture definitions.&lt;br /&gt;
:*[[Automatic compatibility|MD5-based recognition of maps]] that require certain [[compatibility options]] to work (e.g., {{dw|Strain}} map 7 which relied on the {{dw|Spechits overflow}} bug) to apply these settings transparently.&lt;br /&gt;
:*[[Freedoom]], [[Chex Quest]], and [[Chex Quest 3]] are recognized as [[IWAD]]s and can be selected in the [[IWAD selection box]]. New aliases are available for IWADs, too.&lt;br /&gt;
:*New [[MAPINFO]] format (the old is still supported of course) with a more robust syntax.&lt;br /&gt;
:*Custom [[map translator]]s for Doom-format maps, which can be specified in MAPINFO.&lt;br /&gt;
:*[[Strife]] dialogues now work in multiplayer.&lt;br /&gt;
:*Setting up slots for custom weapons no longer requires a [[KEYCONF]] lump, the limit of 8 weapons per slot is removed.&lt;br /&gt;
:*Added the &amp;quot;{{Class|RandomSpawner|random spawner}}&amp;quot; actor, customizable {{Class|BossEye}}s, {{Class|CustomBridge}}, {{Class|FastProjectile}}.&lt;br /&gt;
:*Many new [[compatibility options]], including one to have [[projectile]]s pass through solid decorations.&lt;br /&gt;
:*More flexible use of [[lightning]] in a map.&lt;br /&gt;
:*The two different [[crushing mode]]s (Doom and Hexen) are now selectable per action.&lt;br /&gt;
:*Customizable pickup flash with {{Property|Inventory.PickupFlash}} property.&lt;br /&gt;
:*[[DeHackEd]] music name replacement has been restored.&lt;br /&gt;
:*Rewritten DECORATE parser, more robust and featuring better error reporting. All actors are defined in DECORATE now.&lt;br /&gt;
:*Functions to handle [[weapon]] reloading through DECORATE.&lt;br /&gt;
:*New [[ACS]] functions: [[GetPlayerInput]], [[GetActorProperty|Get]]/[[SetActorProperty]].&lt;br /&gt;
:*Many actions are now more flexible through optional parameters, for example [[A_Die]] can specify damage type to send to a custom Death state, [[A_KeenDie]] can affect tags other than 666, [[A_Fire]] can specify a vertical offset, and so on.&lt;br /&gt;
:*Many, many new [[DMFlags]] for [[cooperative]] plays, such as having to kill all [[monster]]s before leaving the map or seeing the other [[player]]s on the [[automap]].&lt;br /&gt;
:*Enhanced &#039;&#039;[[Strife]]&#039;&#039; support.&lt;br /&gt;
:*Various and sundry bug fixes.&lt;br /&gt;
;{{LE|2.3.1}}{{rev|1480}} (March 15): {{Forum|t=21296|Release thread}} | {{versionlinks|2|3|1}}&lt;br /&gt;
:Mostly a bugfix release.&lt;br /&gt;
:*Fixes the bug that prevented you from switching weapons after respawning in multiplayer.&lt;br /&gt;
:*Fixes a performance regression introduced in 2.3.0.&lt;br /&gt;
:*Adds support for zip/pk3 files with LZMA and BZip2 compression. (7-Zip is one program that can create such files.)&lt;br /&gt;
:*Addresses a few other niggles.&lt;br /&gt;
&lt;br /&gt;
==2010==&lt;br /&gt;
;{{LE|2.4.0}}{{rev|2075}} (January 1): {{Forum|t=24602|Release thread}} | {{versionlinks|2|4|0}}&lt;br /&gt;
:*Rewritten [[archive format|archive]] management code.&lt;br /&gt;
::*Added support for new [[archive format]]s: 7z, &#039;&#039;Quake&#039;&#039; PAK, &amp;quot;Shrink&amp;quot; and &amp;quot;Implode&amp;quot;.&lt;br /&gt;
::*Removed loading limit of 65 535 lumps. The archive manager can now handle up to 4 294 967 295 lumps.&lt;br /&gt;
:*Rewritten mouse and keyboard handling input under Windows.&lt;br /&gt;
:*Reimplemented and improved support for gamepads and joysticks.&lt;br /&gt;
:*Added truecolor display of the [[HUD]], [[menu]]s and other 2D elements outside the game world when using [[Direct3D]] on Windows.&lt;br /&gt;
:*Replaced SNES_SPC with Game Music Emu, greatly increasing the number of supported emulated [[music format]]s.&lt;br /&gt;
:*Added compiling support for {{wp|Macintosh}} systems.&lt;br /&gt;
:*Added [[IWAD]] recognition for Ultimate [[Freedoom]], [[Action Doom 2: Urban Brawl|Action Doom 2]], [[Blasphemer]] and [[Harmony]].&lt;br /&gt;
:*Added {{param|-noautoload}}, {{param|-norun}}, {{param|-stdout}}, and {{param|-warpwipe}} command line parameters.&lt;br /&gt;
:*Added {{CVAR|C|save_dir}} and {{CVAR|R|d3d_antilag}} console variables.&lt;br /&gt;
:*Added optional parameters to {{CCMD|D|summon}} commands, added {{CCMD|D|summonmbf}} command.&lt;br /&gt;
:*Added {{CCMD|D|info}} command to obtain very verbose debugging information on actors.&lt;br /&gt;
:*Buddha mode&lt;br /&gt;
:*Added [[score]] and {{Class|ScoreItem}}s.&lt;br /&gt;
:*Added [[GameInfo definition]]s to [[MAPINFO]].&lt;br /&gt;
:*Changed random seed initialization so that it uses the system&#039;s cryptographically secure random number generator, if available, instead of the current time. Also changed the random number generator from Lee Killough&#039;s algorithm to the SFMT607 variant of the {{wp|Mersenne twister}}.&lt;br /&gt;
:*Disabled custom [[DEHSUPP]] lumps.&lt;br /&gt;
:*Added &#039;damage&#039; to the actor variables exported to [[DECORATE expressions|DECORATE&#039;s expression evaluator]].&lt;br /&gt;
:*Added &#039;frandom&#039; DECORATE function to the expression evaluator, which is like &#039;random&#039; but for floating point values instead of integers.&lt;br /&gt;
:*Added Raven color set and dagger-like vector sprite to the [[automap]].&lt;br /&gt;
:*Added desatured [[translation]]s.&lt;br /&gt;
:*[[SBARINFO]]: Added the ability to center things with fullscreenoffsets enabled, added [[underwater]] stats.&lt;br /&gt;
:*[[MAPINFO]]: Added [no_]grinding_polyobj, resetinventory properties, added EndTitle option for {{c|nextmap}}.&lt;br /&gt;
:*Added actor replacement to [[skill definition]]s.&lt;br /&gt;
:*Exported many hardcoded values to [[GameInfo definition]]s.&lt;br /&gt;
:*Added [[Line_SetBlocking]] and [[Sector_SetPortal]] specials.&lt;br /&gt;
:*Added {{c|defaultterrain}} section to [[TERRAIN]].&lt;br /&gt;
:*Added new [[earthquake]] functions.&lt;br /&gt;
:*Added [[user variable]]s.&lt;br /&gt;
:*[[DECORATE]]: Added {{Property|Species}}, {{Property|Activation}}, {{Property|PainThreshold}}, {{Property|PushFactor}}, {{Property|WeaveIndexXY}}, {{Property|WeaveIndexZ}}, {{Property|Powerup.Strength}}, {{Property|Player.MugShotMaxHealth}}, {{Property|Inventory.InterHubAmount}} properties.&lt;br /&gt;
:*Turned old bounce flags into {{Property|BounceType}} property.&lt;br /&gt;
:*Added {{Property|DamageFactor}} handling to Armors.&lt;br /&gt;
:*Added &amp;quot;BLUEMAP&amp;quot; [[palette blend]] for {{Property|Powerup.Color}}, and added {{Property|Powerup.Colormap}} for custom colormaps.&lt;br /&gt;
:*Added {{Flag|MOVEWITHSECTOR}}, {{Flag|NOBOSSRIP}}, {{Flag|THRUACTORS}}, {{Flag|THRUSPECIES}}, {{Flag|DONTSEEKINVISIBLE}}, {{Flag|FORCEPAIN}}, {{Flag|NOFEAR}}, {{Flag|BUMPSPECIAL}}, {{Flag|STEPMISSILE}}, {{Flag|NOTELEPORT}}, {{Flag|NOTRIGGER}},  {{Flag|AVOIDMELEE}}, {{Flag|JUMPDOWN}}, {{Flag|SCREENSEEKER}}, {{Flag|INVENTORY.PERSISTENTPOWER}}, {{Flag|WEAPON.AMMO_CHECKBOTH}}, {{Flag|WEAPON.NOAUTOAIM}} flags.&lt;br /&gt;
:*Added [[A_CheckCeiling]], [[A_MonsterRefire]], [[A_Weave]], [[A_JumpIfTargetInSight]], [[A_ZoomFactor]], [[A_SetAngle]], [[A_SetPitch]], [[A_ScaleVelocity]], [[A_ChangeVelocity]], [[A_SetCrosshair]], [[A_RemoveSiblings]], [[A_RaiseMaster]]/[[A_RaiseChildren|Children]]/[[A_RaiseSiblings|Siblings]], [[A_Log]], [[A_PrintBold]], [[A_SetArg]], [[A_SetSpecial]], [[A_Blast]] codepointers.&lt;br /&gt;
:*Added parameters to [[A_PodPain]], [[A_MakePod]], [[A_MLightningAttack]], [[A_M_Saw]], [[A_FireCustomMissile]], [[A_FadeOut]], [[A_Explode]], [[A_WeaponReady]], [[A_VileAttack]], [[A_Mushroom]], [[A_SeekerMissile]], [[A_KillChildren]]/[[A_KillMaster|Master]]/[[A_KillSiblings|Siblings]], [[A_CustomRailgun]] and [[A_RailAttack]], added SXF_TRANSFERPOINTERS flag to [[A_SpawnItemEx]] and several flags to [[A_Respawn]].&lt;br /&gt;
:*Imported {{Class|PowerDoubleFiringSpeed}} from [[Skulltag]], added {{Class|PowerInfiniteAmmo}}.&lt;br /&gt;
:*{{Class|PowerProtection}} and {{Class|PowerInvisibility}} can now be used to give certain flags to the player. Other enhancements to PowerInvisibility, such as changing the player&#039;s {{Property|RenderStyle}}.&lt;br /&gt;
:*Customizable mage lightning, sapphire wand, and {{Class|SpawnShot}} spawn lists.&lt;br /&gt;
:*[[ACS]]: compatibility fix for vanilla Hexen map where script execution order is critical.&lt;br /&gt;
:*Added [[GetActorVelX]]/[[GetActorVelY|Y]]/[[GetActorVelZ|Z]], [[SetActorVelocity]], [[GetActorViewHeight]], [[SetActivator]], [[SetActivatorToTarget]], [[GetChar]], [[SetSkyScrollSpeed]], [[GetAirSupply|Get]]/[[SetAirSupply]], [[GetArmorType]], [[CheckActorProperty]], [[CheckActorClass]], [[SoundSequenceOnActor]]/[[SoundSequenceOnSector|Sector]]/[[SoundSequenceOnPolyobj|Polyobj]], [[SpawnSpotForced]] and [[SpawnSpotFacingForced]].&lt;br /&gt;
:*Added ML_BLOCKUSE line flag, accessible through [[UDMF]] and [[Line_SetBlocking]].&lt;br /&gt;
:*Improved [[automatic compatibility]] with {{dw|Hacx}}, {{dw|Suspended in Dusk}}, {{dw|Community Chest}}, {{dw|Doomsday of UAC}}, {{dw|Strain}}, and the {{dw|Astrostein}} series.&lt;br /&gt;
:*[[Compatibility options]]: added Minotaur footclipped floor fire setting, sprite sorting order, [[MBF]]-style [[A_Mushroom]], monster movements affected by terrain, and friendly monsters able to cross blocking lines.&lt;br /&gt;
:*Added arch-vile &amp;quot;ghost&amp;quot; bug emulation for selected maps only.&lt;br /&gt;
:*Added several other MBF features, including {{Class|BetaSkull}}, [[A_FireOldBFG]], and [[DeHackEd]] support of MBF codepointers and actors.&lt;br /&gt;
:*Repaired accuracy of player behavior in &#039;&#039;[[Hexen]]&#039;&#039; with regards to [[jumping]] and pushing enemies away with attacks.&lt;br /&gt;
:*Fixed compatibility issues arising with [[Action Doom]].&lt;br /&gt;
:*Puffs now set their angle to face the originator of the attack.&lt;br /&gt;
:*Added SoulPriestess&#039; patch to force aspect ratio with {{CVAR|R|vid_aspect}}.&lt;br /&gt;
:*Added Spleen&#039;s patch to customize [[railgun]] performances with {{CVAR|R|r_rail_smartspiral}}, {{CVAR|R|r_rail_spiralsparsity}}, and {{CVAR|R|r_rail_trailsparsity}}.&lt;br /&gt;
:*[[UDMF]]: Added per-tier texture scaling with new [[sidedef]] properties and sidedef versions of [[linedef]] flags {{c|wrapmidtex}} and {{c|clipmidtex}}.&lt;br /&gt;
:*Improved [[sky]] projection and [[sky stretching]].&lt;br /&gt;
:*Updated Italian [[LANGUAGE|language]] file.&lt;br /&gt;
:*A whole lot more.&lt;br /&gt;
;{{LE|2.4.1}}{{rev|2126}} (January 24): {{Forum|t=24895|Release thread}} | {{versionlinks|2|4|1}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:*[[Floor_Waggle]] effects are smoother now.&lt;br /&gt;
:*Negative numbers in the [[alternate HUD]] have their minus sign at the right place now.&lt;br /&gt;
:*Menu option scales better in widescreen resolution.&lt;br /&gt;
:*[[Player setup]] menu looks better in non-Doom games.&lt;br /&gt;
:*Moving [[camera]]s work correctly again.&lt;br /&gt;
:*[[Polyobject]]s glitch a bit less now.&lt;br /&gt;
:*The internal nodebuilder works correctly now with certain troublesome maps.&lt;br /&gt;
:*&#039;&#039;[[Strife]]&#039;&#039; conversations fixed and improved.&lt;br /&gt;
:*Many nitpicky fixes in &#039;&#039;Strife&#039;&#039; (switch sounds, messages, etc.).&lt;br /&gt;
:*&#039;&#039;[[Action Doom 2]]&#039;&#039; and &#039;&#039;[[Harmony]]&#039;&#039; can now use idclev, and they have their Autoload section in [[the ini]].&lt;br /&gt;
:*[[MAPINFO]] {{c|ResetInventory}} keyword now works as expected.&lt;br /&gt;
:*The {{CVAR|C|norawinput}} console variable can be set to true to fix input problems while playing a Windows build through {{wp|Wine_(software)|Wine}}.&lt;br /&gt;
:*A [[character input grid]] is available to play ZDoom with a controller without having to use the keyboard.&lt;br /&gt;
:*Added [[GAMEINFO]] lump so that a mod can specify which [[IWAD]] and external resource files it uses.&lt;br /&gt;
;{{LE|2.5.0}}{{rev|2508}} (August 11): {{Forum|t=26755|Release thread}} | {{versionlinks|2|5|0}}&lt;br /&gt;
:*Enhanced [[polyobject]] system, allowing them to move anywhere in the map (like [[Eternity Engine|Eternity]]&#039;s &amp;quot;dynasegs&amp;quot;) and to give them any arbitrary shape. This is accompanied by new [[ACS]] polyobject movement functions.&lt;br /&gt;
:*Support for [[node|uncompressed extended nodes]], also supported by [[Eternity Engine]] and [[PrBoom+]], to create a new cross-port standard for node storage.&lt;br /&gt;
:*Support for using [[Byte Map Font]]s.&lt;br /&gt;
:*Ability to use metadata tags in audio formats to define custom loop points.&lt;br /&gt;
:*Added support for the [[MUSINFO]] lump (from [[Risen3D]] and [[PrBoom+]]).&lt;br /&gt;
:*Improved compatibility settings to allow optionally a greater faithfulness to the [[vanilla Doom]] and vanilla Heretic behaviors.&lt;br /&gt;
:*ZMAPINFO as an alias for [[MAPINFO]] to avoid compatibility problems with other ports parsing this lump.&lt;br /&gt;
:*Full rewrite of the [[SBARINFO]] system allowing many additional features and options.&lt;br /&gt;
:*Added support for multi-monitor display.&lt;br /&gt;
:*default reverbs environment setting in MAPINFO&lt;br /&gt;
:*Several generalized [[action functions|codepointers]] to emulate some very specific &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;[[Hexen]]&#039;&#039; action functions&lt;br /&gt;
:*New functions to refine actor behavior through&lt;br /&gt;
:*Enhanced [[poison]] damage system&lt;br /&gt;
:*Generalized [[railgun]] codepointers&lt;br /&gt;
:*New [[automap options]]&lt;br /&gt;
:*[[Hall of mirrors|HOM]] detection system&lt;br /&gt;
:*New [[console commands]]&lt;br /&gt;
:*The usual bug fixes and minor enhancements.&lt;br /&gt;
&lt;br /&gt;
==2011==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==2012==&lt;br /&gt;
;{{LE|2.6.0}}{{rev|3730}} (July 2): {{Forum|t=33295|Release thread}} | {{versionlinks|2|6|0}}&lt;br /&gt;
:*Added [[Hacx]] IWAD support.&lt;br /&gt;
:*Added text-format Strife conversation system with [[USDF]] and [[ZSDF]].&lt;br /&gt;
:*A textured [[automap]] is now available; automap graphics are now [[map arrow|externalized]].&lt;br /&gt;
:*Rewritten [[menu]] system, which can now be defined with the [[MENUDEF]] lump.&lt;br /&gt;
:*Externalized intermissions to [[MAPINFO]].&lt;br /&gt;
:*Externalized [[IWAD]] detection and gave each IWAD its own independent config section.&lt;br /&gt;
:*Added [[FluidSynth]] and [[GUS|GUS emulator]] softsynths; fixed issues with [[TiMidity++]].&lt;br /&gt;
:*Added [[VOC]] support and enhanced [[MIDI]] playback with support for alternative formats such as [[XMI]] and [[HMI]].&lt;br /&gt;
:*[[Action specials]]: Added [[Ceiling_LowerAndCrushDist]] and [[Thing_SetConversation]]. Added [[console command]] to execute specials.&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
::*Increased maximum script number from 999 to 32767.&lt;br /&gt;
::*[[Named script]]s allow to avoid script number conflicts.&lt;br /&gt;
::*Added [[StrCpy]], [[CheckSight]], [[SetActivator]], [[SetPointer]] functions.&lt;br /&gt;
::*Added [[ACS actor properties|APROP_ScaleX/Y]] and APROP_Mass actor properties.&lt;br /&gt;
::*Added temporary dynamic strings variables with [[StrParam]].&lt;br /&gt;
::*Scripts can now have up to four parameters.&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
::*Added [[A_CheckFlag]], [[A_FaceMaster]], [[A_FaceTracer]], [[A_RadiusGive]], [[A_SetMass]], [[A_SetScale]], [[A_Warp]] and [[A_WolfAttack]]...&lt;br /&gt;
::*Enhanced [[A_AlertMonsters]], [[A_BFGSpray]], [[A_Blast]], [[A_CustomBulletAttack]], [[A_FireBullets]], [[A_GunFlash]], [[A_PainAttack]], [[A_RadiusThrust]]...&lt;br /&gt;
::*Added an [[actor pointer]] manipulation system with several new codepointers...&lt;br /&gt;
::*Added {{Flag|DOHARMSPECIES}}, {{Flag|DONTCORPSE}}, {{Flag|SEEINVISIBLE}} and {{Flag|INVENTORY.UNTOSSABLE}}&lt;br /&gt;
::*Increased [[damage type]] flexibility in several ways with {{Property|DeathType}} and {{Property|PainType}}.&lt;br /&gt;
::*Added customizable {{Class|ArtiPoisonBag|fléchettes}}.&lt;br /&gt;
::*Made [[accuracy]] and [[stamina]] accessible through [[DECORATE expressions]].&lt;br /&gt;
::*Added {{Property|ProjectileKickback}}, {{Property|Inventory.RestrictedTo}} and {{Property|Inventory.ForbiddenTo}} class-based properties.&lt;br /&gt;
::*Backported {{Property|VisibleToTeam}}, {{Property|VisibleToPlayerClass}} and weapon {{Property|DropItem}} feature from [[Skulltag]], and enhanced them.&lt;br /&gt;
::*Added &amp;quot;Fast&amp;quot; keyword for states and deprecated the unreliable {{Flag|FASTER}} and {{Flag|FASTMELEE}} flags.&lt;br /&gt;
:*Added a [[SECRETS|secret hint system]].&lt;br /&gt;
:*[[3D floor]]s support.&lt;br /&gt;
:*[[FraggleScript]] support.&lt;br /&gt;
:*[[Voxel]] support.&lt;br /&gt;
:*[[SBARINFO]]: Ammo 1/2 capacities added to DrawNumber, support for color names in colored text.&lt;br /&gt;
:*[[SNDINFO]]: Added {{sndinfo|musicalias}} and {{sndinfo|attenuation}}.&lt;br /&gt;
:*Compatibility: fixed issues with {{dw|Eternal Doom}}, [[Happy Time Circus]], {{dw|Phobos_(WAD)|Phobos}}, vanilla compat, [[Boom]] compat, light levels higher than 255, [[Heretic]], [[Strife]], [[MUSINFO]], misnamed UDMF field.&lt;br /&gt;
:*Fixed loading of [[BMF]] palettes.&lt;br /&gt;
:*{{CCMD|O|restart}} console command.&lt;br /&gt;
:*Added [[PALVERS]] lump.&lt;br /&gt;
:*Custom [[IWAD]]s no longer need to include a [[COLORMAP]], as ZDoom will generate one automatically if it is missing.&lt;br /&gt;
:*Fixed vertical tiling of non-power-of-two textures.&lt;br /&gt;
:*Fixed blockmap overflows in huge maps with help from [[Mocha Doom|Maes]] and [[PrBoom+|Entryway]].&lt;br /&gt;
:*Joystick support for non-Windows platforms.&lt;br /&gt;
:*As always, a plethora of bug fixes and minor enhancements.&lt;br /&gt;
&lt;br /&gt;
;{{LE|2.6.1}}{{rev|3794}} (July 28): {{Forum|t=33547|Release thread}} | {{versionlinks|2|6|1}}&lt;br /&gt;
:*Added [[Hacx]] 2.0 IWAD support.&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
::*Added [[ACS_NamedExecuteWait]] and [[NamedScriptWait]].&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
::*Added {{Flag|INVENTORY.RESTRICTABSOLUTELY}} and {{Flag|PLAYERPAWN.CANSUPERMORPH}}.&lt;br /&gt;
:*[[MAPINFO]]:&lt;br /&gt;
::*Added RandomPlayerStarts and UsePlayerStartZ flags for [[map definition]]s.&lt;br /&gt;
:*Solved compatibility issue with [[Massmouth 2]].&lt;br /&gt;
:*[[Voxel]]s are now rotated by 90° to match their orientation in Slab6 and [[Build]] games.&lt;br /&gt;
&lt;br /&gt;
==2013==&lt;br /&gt;
;{{LE|2.7.0}}{{rev|4342}} (June 8): {{Forum|t=36456|Release thread}} | {{versionlinks|2|7|0}}&lt;br /&gt;
:*Added [[Floor_RaiseAndCrushDoom]].&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
::*Made dynamic strings persistent. ACS can now safely generate up to one million new strings.&lt;br /&gt;
::*Added [[CheckFont]], [[GetCVarString]], [[GetUserCVar]], [[GetUserCVarString]], [[IsTIDUsed]], [[LineAttack]], [[SetCVar]], [[SetCVarString]], [[SetUserCVar]], [[SetUserCVarString]], [[SpawnDecal]], and [[UniqueTID]].&lt;br /&gt;
::*Added HUD layers, visibility flags, additive blending, and alpha parameter to [[HudMessage]] and [[HudMessageBold]].&lt;br /&gt;
::*Also added HUD message wrapping and clipping with [[SetHudClipRect]] and [[SetHudWrapWidth]].&lt;br /&gt;
::*Added PLAYERINFO_FOV and _DESIREDFOV to [[GetPlayerInfo]].&lt;br /&gt;
::*Added support for desaturated [[translation]]s.&lt;br /&gt;
::*Added [[Sqrt]], [[FixedSqrt]], and [[VectorLength]] functions.&lt;br /&gt;
::*Support for advanced structures from non-ACC compilers.&lt;br /&gt;
::*Added the ability to retrieve the {{Property|ReactionTime}}, {{Property|Height}} and {{Property|Radius}} properties through [[GetActorProperty]].&lt;br /&gt;
::*Added CHANGELEVEL_PRERAISEWEAPON to [[ChangeLevel]].&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
::*{{Flag|FLOATBOB}} things are no longer moved physically when bobbing.&lt;br /&gt;
::*Added {{Property|Player.FallingScreamSpeed}}, {{Property|Player.GruntSpeed}}, {{Property|Weapon.MinSelectionAmmo1}}, and {{Property|Weapon.MinSelectionAmmo2}}.&lt;br /&gt;
::*Added random state duration and [[A_SetTics]].&lt;br /&gt;
::*[[A_Explode]]&#039;s &#039;&#039;affectsource&#039;&#039; parameter has been turned into a flag. Plus, added NOTMISSILE flag to A_Explode as well as to [[A_RadiusThrust]].&lt;br /&gt;
::*[[A_RadiusThrust]] can use negative &#039;&#039;force&#039;&#039; values.&lt;br /&gt;
::*Added [[A_JumpIfTargetInsideMeleeRange]], [[A_JumpIfTargetOutsideMeleeRange]], [[A_SetDamageType]], and [[A_CheckLOF]].&lt;br /&gt;
::*Added {{Flag|INVENTORY.NEVERRESPAWN}}, {{Flag|INVENTORY.NOSCREENFLASH}}, {{Flag|POWERSPEED.NOTRAIL}}, and {{Flag|PLAYERPAWN.CROUCHABLEMORPH}}.&lt;br /&gt;
::*Added JLOSF_NOAUTOAIM flag to [[A_JumpIfTargetInLOS]].&lt;br /&gt;
::*Added WRF_DISABLESWITCH to [[A_WeaponReady]].&lt;br /&gt;
::*[[A_Light]] can use negative values to darken the scene.&lt;br /&gt;
::*Added NORANDOMPUFFZ flag to [[A_CustomPunch]], [[A_FireBullets]], and [[A_CustomBulletAttack]].&lt;br /&gt;
::*Added SXF_USEBLOODCOLOR, SXF_CLEARCALLERTID, SXF_MULTIPLYSPEED, SXF_TRANSFERSCALE, SXF_TRANSFERSPECIAL, and SXF_CLEARCALLERSPECIAL flags to [[A_SpawnItemEx]].&lt;br /&gt;
::*Added the ability to adjust the vertical offset of a rail attack to [[A_RailAttack]] and [[A_CustomRailgun]].&lt;br /&gt;
::*Player-fired seeker [[Projectile|missiles]]&#039; range at which the missiles initially lock-on a [[Actor pointer|tracer]] can be set via {{Property|MaxTargetRange}} actor property.&lt;br /&gt;
::*{{Property|ReactionTime}} added to [[DECORATE expressions]].&lt;br /&gt;
::*Added [[Actor states#NoDelay|NoDelay]] state flag.&lt;br /&gt;
::*Added [[Actor_states#States|Bounce]] actor states.&lt;br /&gt;
::*Fixed few cases of DECORATE definitions inaccuracies for [[Doom]], [[Heretic]], [[Hexen]] and [[Strife]] actors.&lt;br /&gt;
:*[[FONTDEFS]]: Backported SPACEWIDTH from [[ECWolf]].&lt;br /&gt;
:*[[LANGUAGE]]: Brazilian Portuguese support.&lt;br /&gt;
:*[[MAPINFO]]: Added ForgetState, RememberState, and SpawnWithWeaponRaised flags for [[map definition]]s and NoRandomPlayerclass for [[GameInfo definition]]s.&lt;br /&gt;
:*[[MIDI]]: [[FluidSynth]] now recognize {{c|libfluidsynth.dll}} as a valid alias for {{c|fluidsynth.dll}}, various FluidSynth [http://forums.scummvm.org/viewtopic.php?p=72972#72972 tweaks] and fixes. The [[OPL emulator]] now can use either OPL2 or OPL3 emulation, supports full stereo panning and can use up to eight virtual chips.&lt;br /&gt;
:*Updated [[foo_DUMB]].&lt;br /&gt;
:*Implemented additive rendering for [[3D floor]]s.&lt;br /&gt;
:*Added &#039;&#039;{{wp|Quake (video game)|Quake}}&#039;&#039;-like no-clipping with {{CCMD|D|noclip2}}.&lt;br /&gt;
:*Exported the [[scoreboard]] text to [[LANGUAGE]].&lt;br /&gt;
:*The sound system should now precache nearly all sounds used by actor properties and [[ambient sound]]s, and the [[MAPINFO/Map definition|MAPINFO]] command &amp;quot;PrecacheSounds&amp;quot; can be used to precache other sounds.&lt;br /&gt;
:*Arbitrary FPS cap with {{CVAR|R|vid_maxfps}}.&lt;br /&gt;
:*Increased maximum resolution to 5760&amp;amp;times;3600.&lt;br /&gt;
:*Added {{c|lightfog}} property for [[sidedef]]s.&lt;br /&gt;
:*Added support for {{dw|Doom 3: BFG Edition}}&#039;s modified [[IWAD]]s, including {{dw|No Rest for the Living}}.&lt;br /&gt;
:*Improved [[WAD]] archive code with support for big-endian format and LZSS compression used in several console ports.&lt;br /&gt;
:*Added ability in [[UDMF]] to specify things to spawn by [[:Category:Thing specials|thing specials]] and [[Hexen breakable items]] by names with {{c|arg1str}}, as well as the ability to set initial values to a thing&#039;s [[user variable]].&lt;br /&gt;
:*Added new [[node]] format for complex UDMF maps which need fractional precision on node splitters.&lt;br /&gt;
:*The [[alternate HUD]] now features a {{Class|Berserk}} indicator and a customizable time display.&lt;br /&gt;
:*Tweaked {{Class|ScriptedMarine|scripted marines}}.&lt;br /&gt;
:*Added {{c|{{CCMD|D|acsprofile}}}} [[CCMDs|console command]].&lt;br /&gt;
:*[[Weapon slots]] can be configured from the [[Customize controls]] menu.&lt;br /&gt;
:*Solved compatibility issues with [[Daedalus: Alien Defense]], {{dw|Community Chest 3}}, Nuke Mine, Khorus, [[Void]], the {{dw|Master Levels}}, and {{dw|Claustrophobia 1024}}.&lt;br /&gt;
:*{{Class|RandomSpawner}}s now respect {{param|nomonsters}}.&lt;br /&gt;
:*Added the ability to define mod-specific [[CVARs|console variables]] through the addition of the [[CVARINFO]] lump.&lt;br /&gt;
:*Fixed miscellaneous bugs.&lt;br /&gt;
&lt;br /&gt;
;{{LE|2.7.1}}{{cs|21efe3b}} (July 3): {{Forum|t=36679|Release thread}} | {{versionlinks|2|7|1}}&lt;br /&gt;
&#039;&#039;Note: this is the first version based on the [[Git repository]]; 2.7.0 was the last version based on the SVN repository.&#039;&#039;&lt;br /&gt;
* Added new additive [[MAPINFO/GameInfo definition|GameInfo]] keywords: AddCreditPage, AddPlayerClasses, and AddInfoPage.&lt;br /&gt;
* Added a new {{Flag|DONTDRAIN}} flag to mark actors as ineligible for vampirism attacks.&lt;br /&gt;
* [[Automatic compatibility|Compatibility]] fixes for [[Ultimate Simplicity]] map07, [[Cheogsh]] map01, [[Super Sonic Doom]] map31&lt;br /&gt;
* [[Polyobject]] mirror numbers can no longer be changed with [[SetLineSpecial]]. This was never a supported feature and caused problems for legitimate uses of SetLineSpecial on polyobject lines.&lt;br /&gt;
* The powered-up {{Class|GoldWand|Gold Wand}} was not puffing on actors.&lt;br /&gt;
* Disabled [[Heretic]]&#039;s punishment [[cheat]]s when in {{CVAR|C|allcheats}} mode.&lt;br /&gt;
* Objects that explode on death no longer deal the damage they were dealt instead of their own.&lt;br /&gt;
* Vampirism attacks now respect damage reduction.&lt;br /&gt;
* [[Demo]] recording now writes correct user info to demos.&lt;br /&gt;
* ACS&#039;s [[PlaySound]] for looping sounds now works properly when using channel flags.&lt;br /&gt;
&lt;br /&gt;
==2014==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==2015==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==2016==&lt;br /&gt;
;{{LE|2.8.0}}{{cs|56359b6}} (February 3): {{Forum|t=50712|Release thread}} | {{versionlinks|2|8|0}}&lt;br /&gt;
:*Improved netcode and added [[network options]] menu to configure new features.&lt;br /&gt;
:*Native Cocoa back end for OS X resulting in significant increases in performance over SDL in addition to better overall user experience.&lt;br /&gt;
:*Added a new [[software synthesizer]], [[WildMIDI]], and a new [[OPL]] core.&lt;br /&gt;
:*Two new cheats, god2 and buddha2. The player cannot die from telefrag damage with these.&lt;br /&gt;
:*Four new keybinds for DECORATE use with weapons (see {{c|[[A_WeaponReady]]}}&#039;s User states.)&lt;br /&gt;
:*Overhauled [[sector type]]s and properties. Sectors have several new UDMF properties.&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
:**Added {{c|[[DropItem]]}}, {{c|[[DropInventory]]}}, {{c|[[CheckFlag]]}}, {{c|[[GetLineActivation]]}}, {{c|[[GetMaxInventory]]}}, {{c|[[SetLineActivation]]}}, {{c|[[GetArmorInfo]]}}, {{c|[[GetActorPowerupTics]]}}, {{c|[[IsPointerEqual]]}}, {{c|[[ChangeActorAngle]]}}, {{c|[[ChangeActorPitch]]}}, {{c|[[PickActor]]}}, {{c|[[SetSectorDamage]]}}, {{c|[[QuakeEx]]}}, {{c|[[Warp]]}} and {{c|[[CanRaiseActor]]}}  functions.&lt;br /&gt;
:**Added FHF_NORANDOMPUFFZ flag for {{c|[[LineAttack]]}}.&lt;br /&gt;
:**Added BLOCKF_HITSCAN flag for {{c|[[Line_SetBlocking]]}}.&lt;br /&gt;
:**Added {{c|APROP_ViewHeight}}, {{c|APROP_AttackZOffset}} and {{c|APROP_StencilColor}} [[ACS actor properties]].&lt;br /&gt;
:**Fixed potential desync with {{c|[[CheckPlayerCamera]]}}.&lt;br /&gt;
:**Fixed: {{c|[[Thing_SetGoal]]}} could put an actor&#039;s target and goal out of sync.&lt;br /&gt;
:**{{c|[[GetSectorFloorZ]]}} and {{c|[[GetSectorCeilingZ]]}} now interpret 0-tag as &#039;any sector&#039; and return the z-height of whatever sector is at those coordinates.&lt;br /&gt;
:**[[Arrays]] are now supported at the script scope.&lt;br /&gt;
:*[[ANIMDEFS]]:&lt;br /&gt;
:**Added an optional {{c|worldpanning}} flag for camera textures definitions in order to make camera textures pan in world units instead of texture units.&lt;br /&gt;
:**Added {{c|allowdecals}} option to animated doors.&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
:**Added {{c|{{Property|Player.UseRange}}}} and {{c|{{Property|Player.AirCapacity}}}} [[player properties]].&lt;br /&gt;
:**The following functions have been given additional functionalities: {{c|[[A_AlertMonsters]]}}, {{c|[[A_BFGSpray]]}}, {{c|[[A_ChangeVelocity|A_Change]]/[[A_ScaleVelocity|ScaleVelocity]]}}, {{c|[[A_CustomPunch]]}}, {{c|[[A_SetAngle]]}} and {{c|[[A_SetPitch]]}}, {{c|[[A_DamageMaster]]/[[A_DamageChildren|Children]]/[[A_DamageSiblings|Siblings]]}}, {{c|[[A_KillMaster]]/[[A_KillChildren|Children]]/[[A_KillSiblings|Siblings]]}}, {{c|[[A_Log]]}}, {{c|[[A_Print]]}}, {{c|[[A_PrintBold]]}}, {{c|[[A_RadiusGive]]}}, {{c|[[A_Saw]]}}, {{c|[[A_SetScale]]}}, {{c|[[A_SetTics]]}}, {{c|[[A_SpawnItemEx]]}}, {{c|[[A_Teleport]]}}, {{c|[[A_VileAttack]]}}, {{c|[[A_Warp]]}}, {{c|[[A_WeaponReady]]}}.&lt;br /&gt;
:**Added {{Flag|NOFORWARDFALL}}, {{Flag|NOTONAUTOMAP}}, {{Flag|RELATIVETOFLOOR}}, {{Flag|NEVERTARGET}}, {{Flag|NOTELESTOMP}}, {{Flag|ALWAYSTELEFRAG}}, {{Flag|ALLOWPAIN}}, {{Flag|CAUSEPAIN}}, {{Flag|DONTTHRUST}}, {{Flag|BUDDHA}}, {{Flag|FOILBUDDHA}}, {{Flag|MIRRORREFLECT}}, {{Flag|AIMREFLECT}}, {{Flag|THRUREFLECT}}, {{Flag|HARMFRIENDS}}, {{Flag|NOFORWARDFALL}}, {{Flag|HITTARGET}}, {{Flag|HITMASTER}}, {{Flag|HITTRACER}}, {{Flag|WEAPONSPAWN}} and {{Flag|INVENTORY.TOSSED}} [[actor flags]].&lt;br /&gt;
:**{{Flag|MTHRUSPECIES}} now works with [[A_BFGSpray]] and rail attacks.&lt;br /&gt;
:**Added {{c|[[A_DamageSelf]]/[[A_DamageTarget|Target]]/[[A_DamageTracer|Tracer]]}}, {{c|[[A_Remove]]/[[A_RemoveSiblings|Siblings]]/[[A_RemoveTarget|Target]]/[[A_RemoveTracer|Tracer]]}}, {{c|[[A_KillTarget]]/[[A_KillTracer|Tracer]]}}, {{c|[[A_DropItem]]}}, {{c|[[A_SetSpeed]]}}, {{c|[[A_SetHealth]]}}, {{c|[[A_ResetHealth]]}}, {{c|[[A_SetFloatBobPhase]]}}, {{c|[[A_SetRoll]]}}, {{c|[[A_SetTeleFog]]}}, {{c|[[A_GiveToChildren|A_GiveTo]]/[[A_TakeFromChildren|TakeFromChildren]]}}, {{c|[[A_GiveToSiblings|A_GiveTo]]/[[A_TakeFromSiblings|TakeFromSiblings]]}}, {{c|[[A_JumpIfHigherOrLower]]}},  {{c|[[A_SetFloatSpeed]]}}, {{c|[[A_SetSpecies]]}}, {{c|[[A_CheckBlock]]}}, {{c|[[A_CheckProximity]]}}, and {{c|[[A_QuakeEx]]}} [[action functions]].&lt;br /&gt;
:**Players with the NODAMAGE flag cannot be telefragged anymore, nor can they take any damage via voodoo dolls.&lt;br /&gt;
:**The amount of health regeneration gained from a {{c|{{Class|PowerRegeneration}}}} powerup can be controlled with the {{c|{{Property|Powerup.Strength}}}} property.&lt;br /&gt;
:**Improved the {{c|[[Actor states#NoDelay|NoDelay]]}} state flag reliability.&lt;br /&gt;
:**Added {{c|Subtract}} render style.&lt;br /&gt;
:**Different types of {{Class|HereticImp|gargoyles}} and {{Class|Mummy|golems}} could infight amongst themselves (original &#039;&#039;[[Heretic]]&#039;&#039; behavior).&lt;br /&gt;
:**Added {{c|[[Actor states#CanRaise|CanRaise]]}} and {{c|[[Actor states#Slow|Slow]]}} actor [[actor states#State keywords|state flags]].&lt;br /&gt;
:*[[LANGUAGE]]:&lt;br /&gt;
:**Externalized &amp;quot;New save game&amp;quot; line for save screen, and [[automap]] statistics display.&lt;br /&gt;
:*[[MAPINFO]]:&lt;br /&gt;
:**Custom colors for both modes of the automap can be set on per-mod basis.&lt;br /&gt;
:**Added {{c|SlowMonsters}}, {{c|HealthFactor}}, {{c|NoInfighting}} and {{c|TotalInfighting}} [[skill definition]]s property.&lt;br /&gt;
:*[[SBARINFO]]:&lt;br /&gt;
:**Extended {{c|[[DrawImage]]}} command.&lt;br /&gt;
:*[[SNDINFO]]:&lt;br /&gt;
:**Fixed incorrect {{Class|Minotaur|Maulotaur}} melee attack sound.&lt;br /&gt;
:*Added [[Ceiling_CrushAndRaiseSilentDist]]&lt;br /&gt;
:*Added a user-settable factor for [[earthquake]] intensity.&lt;br /&gt;
:*New type of [[earthquake]], can only be accessed with [[A_QuakeEx]] or its [[QuakeEx|ACS equivalent]], which can replicate the shaking effect seen in many recent games instead of random camera offsets using the QF_WAVE flag. Quakes can now be scaled in, out, or mixed up. Both wave and regular quakes work together.&lt;br /&gt;
:*Non-countable monster actors can have their own separate automap color.&lt;br /&gt;
:*Added a {{c|{{CCMD|O|closemenu}}}} [[CCMDs|console command]], so that menu options that close the [[menu]] can be added.&lt;br /&gt;
:*Menu&#039;s back button and the pause sign can be animated.&lt;br /&gt;
:*Added {{c|blockhitscan}} and {{c|transparent}} [[linedef|line]] properties, {{c|waterzone}} [[sector]] property, and {{c|alpha}}, {{c|fillcolor}}, {{c|gravity}}, {{c|health}}, {{c|pitch}}, {{c|renderstyle}}, {{c|roll}}, {{c|scale}}, {{c|scalex}}, {{c|scaley}} and {{c|score}} [[thing]] properties for [[Universal Doom Map Format|UDMF]].&lt;br /&gt;
:*Extended {{c|{{CVAR|A|am_cheat}}}} with three modes to prevent lines flagged as &#039;&#039;hidden&#039;&#039; from being shown on the automap.&lt;br /&gt;
:*Added separate colors for the various types of 2-sided walls for the overlay automap, as well as colors missing from that mode.&lt;br /&gt;
:*The behavior of auto-loading external [[DEHACKED]] lumps can be controlled by setting the {{c|dehload}} [[CVARs|console variable]].&lt;br /&gt;
:*Results for console tab-completion are now color-coded; console commands appear blue, console variables green, and aliases red.&lt;br /&gt;
:*Actors sprites can be shown on the automap instead of simple triangles when the second, third, fifth or sixth modes of {{c|am_cheat}} console variable are enabled.&lt;br /&gt;
:*Added compatibility settings for &#039;&#039;[[Cheogsh 2]]&#039;&#039; and &#039;&#039;XtheaterIII&#039;&#039;.&lt;br /&gt;
:*Fixed: the {{c|{{CVAR|R|wi_noautostartmap}}}} console variable was not sync-safe.&lt;br /&gt;
:*Added {{c|{{CVAR|C|sv_freelook}}}}, {{c|{{CVAR|C|sv_allowfreelook}}}} and {{c|{{CVAR|C|sv_nofreelook}}}}&lt;br /&gt;
:*Added support for standard file paths on Windows.&lt;br /&gt;
:*Removed [[Polymost]] code.&lt;br /&gt;
:*Fixed miscellaneous bugs.&lt;br /&gt;
&lt;br /&gt;
==Next version==&lt;br /&gt;
The following additions are available in [[Git]] builds, but not yet in an official version.&lt;br /&gt;
&lt;br /&gt;
:* The scripting branch, which lays some groundwork for DoomScript™.  So far the only visible changes are:&lt;br /&gt;
:** [[DECORATE]] [[Actor_states|states]] can contain multiple action functions enclosed in braces, and can use &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; blocks.&lt;br /&gt;
:* {{Forum|t=46916|Portals}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://sourceforge.net/projects/zdoom/files/ Sourceforge archive] Unofficial mirror for ZDoom versions&lt;br /&gt;
* [https://github.com/doomtech/zdoom-old GitHub archive] Unofficial repository of pre-SVN source code&lt;br /&gt;
[[Category:Nostalgia]][[Category:ZDoom]]&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=ZDoom_version_history&amp;diff=40817</id>
		<title>ZDoom version history</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=ZDoom_version_history&amp;diff=40817"/>
		<updated>2016-02-06T01:24:04Z</updated>

		<summary type="html">&lt;p&gt;Eevee: fix wacky nested lists for 2.8.0 changelog&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page tracks the evolution of [[ZDoom]] by listing the main features of each version.&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!By year&lt;br /&gt;
|[[#1998|1998]] &amp;amp;middot; [[#1999|1999]] &amp;amp;middot; [[#2000|2000]] &amp;amp;middot; [[#2001|2001]] &amp;amp;middot; [[#2002|2002]] &amp;amp;middot; [[#2003|2003]] &amp;amp;middot; [[#2004|2004]] &amp;amp;middot; [[#2005|2005]] &amp;amp;middot; [[#2006|2006]] &amp;amp;middot; [[#2007|2007]] &amp;amp;middot; [[#2008|2008]] &amp;amp;middot; [[#2009|2009]] &amp;amp;middot; [[#2010|2010]] &amp;amp;middot; [[#2011|2011]] &amp;amp;middot; [[#2012|2012]] &amp;amp;middot; [[#2013|2013]] &amp;amp;middot; [[#2014|2014]] &amp;amp;middot; [[#2015|2015]]&lt;br /&gt;
|-&lt;br /&gt;
!1.x Branch&lt;br /&gt;
|[[#1.11|1.11]] &amp;amp;middot; [[#1.12|1.12]] &amp;amp;middot; [[#1.13|1.13]] &amp;amp;middot; [[#1.14|1.14]] &amp;amp;middot; [[#1.14a|1.14a]] &amp;amp;middot; [[#1.16|1.16]] &amp;amp;middot; [[#1.17|1.17]] &amp;amp;middot; [[#1.17a|1.17a]] &amp;amp;middot; [[#1.17b|1.17b]] &amp;amp;middot; [[#1.17b1|1.17b1]] &amp;amp;middot; [[#1.17c|1.17c]] &amp;amp;middot; [[#1.18|1.18]] &amp;amp;middot; [[#1.18a|1.18a]] &amp;amp;middot; [[#1.18b|1.18b]] &amp;amp;middot; [[#1.19|1.19]] &amp;amp;middot; [[#1.20|1.20]] &amp;amp;middot; [[#1.21|1.21]] &amp;amp;middot; [[#1.22|1.22]] &amp;amp;middot; [[#1.23 Beta|1.23 Beta]] &amp;amp;middot; [[#1.23 Beta 19|1.23 Beta 19]] &amp;amp;middot; [[#1.23 Beta 20|1.23 Beta 20]] &amp;amp;middot; [[#1.23 Beta 23|1.23 Beta 23]] &amp;amp;middot; [[#1.23 Beta 24|1.23 Beta 24]] &amp;amp;middot; [[#1.23 Beta 25|1.23 Beta 25]] &amp;amp;middot; [[#1.23 Beta 33|1.23 Beta 33]]&lt;br /&gt;
|-&lt;br /&gt;
!2.0 Branch&lt;br /&gt;
|[[#2.0 Beta 13|2.0 Beta 13]] &amp;amp;middot; [[#2.0.47|2.0.47]] &amp;amp;middot; [[#2.0.47i|2.0.47i]] &amp;amp;middot; [[#2.0.48|2.0.48]] &amp;amp;middot; [[#2.0.49|2.0.49]] &amp;amp;middot; [[#2.0.50|2.0.50]] &amp;amp;middot; [[#2.0.51|2.0.51]] &amp;amp;middot; [[#2.0.52|2.0.52]] &amp;amp;middot; [[#2.0.53|2.0.53]] &amp;amp;middot; [[#2.0.54|2.0.54]] &amp;amp;middot; [[#2.0.55|2.0.55]] &amp;amp;middot; [[#2.0.56|2.0.56]] &amp;amp;middot; [[#2.0.57|2.0.57]] &amp;amp;middot; [[#2.0.58|2.0.58]] &amp;amp;middot; [[#2.0.59|2.0.59]] &amp;amp;middot; [[#2.0.60|2.0.60]] &amp;amp;middot; [[#2.0.61|2.0.61]] &amp;amp;middot; [[#2.0.62|2.0.62]] &amp;amp;middot; [[#2.0.63|2.0.63]] &amp;amp;middot; [[#2.0.64|2.0.64]] &amp;amp;middot; [[#2.0.90|2.0.90]] &amp;amp;middot; [[#2.0.91|2.0.91]] &amp;amp;middot; [[#2.0.92|2.0.92]] &amp;amp;middot; [[#2.0.93|2.0.93]] &amp;amp;middot; [[#2.0.94|2.0.94]] &amp;amp;middot; [[#2.0.95|2.0.95]] &amp;amp;middot; [[#2.0.96|2.0.96]] &amp;amp;middot; [[#2.0.97|2.0.97]] &amp;amp;middot; [[#2.0.98|2.0.98]]&lt;br /&gt;
|-&lt;br /&gt;
!2.1 Branch&lt;br /&gt;
|[[#2.1.0|2.1.0]] &amp;amp;middot; [[#2.1.1|2.1.1]] &amp;amp;middot; [[#2.1.2|2.1.2]] &amp;amp;middot; [[#2.1.3|2.1.3]] &amp;amp;middot; [[#2.1.3|2.1.3]] &amp;amp;middot; [[#2.1.4|2.1.4]] &amp;amp;middot; [[#2.1.5|2.1.5]] &amp;amp;middot; [[#2.1.6|2.1.6]] &amp;amp;middot; [[#2.1.7|2.1.7]]&lt;br /&gt;
|-&lt;br /&gt;
!Modern&lt;br /&gt;
|[[#2.2.0|2.2.0]] &amp;amp;middot; [[#2.3.0|2.3.0]] &amp;amp;middot; [[#2.3.1|2.3.1]] &amp;amp;middot; [[#2.4.0|2.4.0]] &amp;amp;middot; [[#2.4.1|2.4.1]] &amp;amp;middot; [[#2.5.0|2.5.0]] &amp;amp;middot; [[#2.6.0|2.6.0]] &amp;amp;middot; [[#2.6.1|2.6.1]] &amp;amp;middot; [[#2.7.0|2.7.0]] &amp;amp;middot; [[#2.7.1|2.7.1]] &amp;amp;middot; [[#2.8.0|2.8.0]] &amp;amp;middot; [[#Next version|Next version]]&lt;br /&gt;
|}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
==1998==&lt;br /&gt;
;{{LE|1.11}} (March 6): {{Plainlink|[http://www.zdoom.org/files/old/zdoom111.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom111s.zip Source]}}&lt;br /&gt;
:Initial release, based on the [[NTDoom]] and [[ATB Doom]]. The version numbering follows from the Doom source code version numbering of 1.10.&lt;br /&gt;
:* Works under both Windows 95 and NT 4.0, although it works best under Win95.&lt;br /&gt;
:* Limited support for the Pause key. It works with some keyboards on some machines.&lt;br /&gt;
:* Supports any resolution compatible with your DirectDraw drivers.&lt;br /&gt;
:* Look up/down à la &#039;&#039;[[Heretic]]&#039;&#039;.&lt;br /&gt;
:* Translucency for selected objects.&lt;br /&gt;
:* Has a [[console]] with most of the functionality of &#039;&#039;Quake&#039;&#039;&#039;s. The only significant missing feature is Tab-completion.&lt;br /&gt;
:* Notarget [[cheat]].&lt;br /&gt;
:* Command to {{CCMD|D|kill}} all [[monster]]s in a level or yourself.&lt;br /&gt;
:* Can play [[MUS]], [[MIDI]], and MOD music.&lt;br /&gt;
:* Selected sounds are played in surround sound.&lt;br /&gt;
:* Doors that need keys to open are highlighted on the [[automap]].&lt;br /&gt;
:* Automap now shows various statistics in addition to the level name.&lt;br /&gt;
:* True keybindings. Bind any key to any command or sequence of commands.&lt;br /&gt;
:* [[Intermission]] screen can now display your stats using absolute values rather than percentages.&lt;br /&gt;
:* A new more general [[demo]] format.&lt;br /&gt;
;{{LE|1.12}} (April 7): {{Plainlink|[http://www.zdoom.org/files/old/zdoom112.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom112s.zip Source]}}&lt;br /&gt;
:* Some visual enhancements were made such as centering the menus and drawing borders around the status bar in higher resolutions.&lt;br /&gt;
:* [[Console command]]s can now be specified on the [[command line parameters|command line]].&lt;br /&gt;
:* Removed some of [[Doom]]&#039;s limits such as VisPlanes, VisSprites, and 2S [[HOM]].&lt;br /&gt;
:* Rewrote some of the inner loops in assembly. (There was some assembly in 1.11, but it never got used.)&lt;br /&gt;
:* New [[CVAR]]s relating to mouse movement. ({{CVAR|C|invertmouse}}, {{CVAR|C|m_pitch}}, {{CVAR|C|m_yaw}}, etc.)&lt;br /&gt;
:* Mouse movement doesn&#039;t get sluggish in high resolutions.&lt;br /&gt;
:* [[Automap]] colors are customizable.&lt;br /&gt;
:* Automap overlay and rotation are available.&lt;br /&gt;
:* Eight [[crosshair]]s.&lt;br /&gt;
:* Shoot up/down.&lt;br /&gt;
:* Alt-Tab and Pause work properly on all machines now.&lt;br /&gt;
:* The {{CCMD|P|+jump}} command now works.&lt;br /&gt;
:* 25% and 75% translucency levels in addition to 50%. The translucency tables now get saved to disk, too, so they only need to be calculated once instead of every time the game is run.&lt;br /&gt;
:* The [[console]] [[font]] is now editable.&lt;br /&gt;
:* Near complete support for [[DeHackEd]] patches. (Only monster infighting and changing a few minor text strings are not supported.)&lt;br /&gt;
:* Sky height and position is now fixed for high resolutions. (It still wraps if you look up, but at least now if you look straight ahead, it never will.)&lt;br /&gt;
:* Weapon sprite is always drawn at the correct location. (It was being drawn too low in some resolutions like 400x300.)&lt;br /&gt;
:* New [[options menu]], which includes a key configuration screen.&lt;br /&gt;
:* [[Stealth monster]]s.&lt;br /&gt;
:* New full-screen [[HUD]].&lt;br /&gt;
:* And a few other things not worth mentioning separately.&lt;br /&gt;
;{{LE|1.13}} (May 26):{{forum|t=4|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom113.zip Build]}}&lt;br /&gt;
:* Fixed some major bugs (that crashed the game) and other lesser bugs that were just annoying.&lt;br /&gt;
:* 3-D collisions for walking under and standing on other things.&lt;br /&gt;
:* The status bar can be scaled to the full width of the screen.&lt;br /&gt;
:* The screen mode can be selected from a menu inside the game.&lt;br /&gt;
:* ZDoom can run in a window on the desktop.&lt;br /&gt;
:* Better [[DeHackEd]] support. Only a few text replacements are not supported. Everything else works (including monster infighting which I haven&#039;t seen in any other port).&lt;br /&gt;
:* New features for level designers (see editing.txt for details):&lt;br /&gt;
::*Specification of next and secret maps on a per-map basis.&lt;br /&gt;
::*Specify sky texture on a per-map basis.&lt;br /&gt;
::*Use any lump in a wad as music for a map.&lt;br /&gt;
::*Give maps a custom name without using a DeHackEd patch.&lt;br /&gt;
::*Maps can be named anything (not just E?M? or MAP??).&lt;br /&gt;
::*Place any messages of any length between any two maps.&lt;br /&gt;
::*&#039;&#039;[[Hexen]]&#039;&#039;-style fog (of any color).&lt;br /&gt;
::*[[Ambient sound]]s &amp;amp;mdash; either point like &#039;&#039;Quake&#039;&#039; or global like &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;Hexen&#039;&#039;.&lt;br /&gt;
::*Automatic use of [[DeHackEd]] patches in PWADs.&lt;br /&gt;
::*No more {{dw|tutti-frutti}} for short textures of certain heights.&lt;br /&gt;
::*zdoom.wcf file for use with [[WadAuthor]].&lt;br /&gt;
:* Rocket jumping. (One very important note about this: You need to be *in the air* when your rocket explodes for rocket jumping to work. This is different from &#039;&#039;Quake&#039;&#039;, and I will probably rewrite it for the next release.)&lt;br /&gt;
:* Dynamic [[palette flash]]es.&lt;br /&gt;
:* Supports stretching skies for [[freelook]].&lt;br /&gt;
:* Larger freelook range.&lt;br /&gt;
:* Added tab-completion to the [[console]].&lt;br /&gt;
:* zdoom.cfg is now the name of the default [[configuration file]] since [[Doom Legacy]] decided to start using config.cfg.&lt;br /&gt;
:* French language support. (Set {{CVAR|C|language}} CVAR to &amp;quot;french&amp;quot;.)&lt;br /&gt;
:* Player obituaries.&lt;br /&gt;
:* Unlimited ammo cheat (use g_unlimitedammo cvar).&lt;br /&gt;
;{{LE|1.14}} (July 22): {{forum|t=5|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom114.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom114-src.zip Source]}}&lt;br /&gt;
:Bugs fixed:&lt;br /&gt;
:* The bunny scroller at the end of E3M8 no longer crashes the game.&lt;br /&gt;
:* The IDKFA [[cheat]] gives the proper amount of armor again.&lt;br /&gt;
:* Demo recording works again.&lt;br /&gt;
:* Telefragging works again.&lt;br /&gt;
:* Picking up the {{Class|InvulnerabilitySphere|invulnerability sphere}} displays the correct colors now.&lt;br /&gt;
:* [[DeHackEd]] patches containing text replacements no longer crash the game.&lt;br /&gt;
:* Printing a string containing &amp;quot;%s&amp;quot; to the console and then changing the video mode will no longer crash the game.&lt;br /&gt;
:* Chat mode finally works again.&lt;br /&gt;
:* If MIDAS can&#039;t initialize, you can still play the game but without sound.&lt;br /&gt;
:* {{Class|Pistol}} and {{Class|chaingun}} sounds no longer cut out when there are lots of {{Class|ZombieMan|zombie men}} shooting their pistols at you.&lt;br /&gt;
:* Mouse input should no longer be so jerky under Windows NT.&lt;br /&gt;
:* The [[crosshair]] is finally accurate for aiming.&lt;br /&gt;
:* [[Autoaim]] is properly remembered each time you start ZDoom.&lt;br /&gt;
:* Switches in &#039;&#039;[[the Ultimate Doom]]&#039;&#039; that aren&#039;t also in the shareware Doom properly change their appearance when switched.&lt;br /&gt;
:New features:&lt;br /&gt;
:* Players can choose their own colors and names. ([[Player setup]] menu is included).&lt;br /&gt;
:* 8-player support (untested but should work).&lt;br /&gt;
:* Miscellaneous internal code changes have been borrowed from the [[Boom]] source. (This does *not* mean that ZDoom supports Boom levels yet.)&lt;br /&gt;
:* [[Cheat]]s, chat messages, and gamestate changes are now recorded in demos.&lt;br /&gt;
:* Single-player demos recorded with ZDoom are generally smaller than before.&lt;br /&gt;
:* &#039;&#039;Quake 2&#039;&#039;-style deathmatch flags.&lt;br /&gt;
:* Cheats (optionally) work in multiplayer games.&lt;br /&gt;
:* Mode X is now supported under Win95, so all the machines that couldn&#039;t run ZDoom in 320x200 before should be able to now.&lt;br /&gt;
:* Fewer conditions result in error messages that quit the game. (If you have &#039;&#039;[[Heretic]]&#039;&#039;, try this: Start ZDoom with -file heretic and go to the console and type &amp;quot;{{CCMD|D|map}} E1M1&amp;quot;.)&lt;br /&gt;
:* Keys can repeat in the [[console]].&lt;br /&gt;
:* The console and chat mode now use the localized keymap set with the Keyboard control panel.&lt;br /&gt;
:* Messages at the top of the screen now break along between words instead of in the middle of them.&lt;br /&gt;
:* Added {{c|-config}} [[command line parameter]].&lt;br /&gt;
:* Added {{c|-fastdemo}} command line parameter.&lt;br /&gt;
:* Added new {{CCMD|D|screenshot}} command. (bound to &amp;quot;Print Screen&amp;quot; key by default)&lt;br /&gt;
:* Added &#039;&#039;Quake&#039;&#039;-like {{CCMD|P|+showscores}} command. (bound to &amp;quot;\&amp;quot; key by default)&lt;br /&gt;
:* [[Alias]]es are now saved in the config file.&lt;br /&gt;
:* Added support for multiple pitched sounds like in very old version of Doom. (Use the snd_pitched cvar to turn it on and off.)&lt;br /&gt;
;{{LE|1.14a}} (July 27): {{forum|t=6|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom114a.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoomsrc114-114a.zip Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:Bugs fixed are:&lt;br /&gt;
:* No more crashing about freeing a pointer without ZONEID when changing levels.&lt;br /&gt;
:* Skies wider than 256 pixels are drawn correctly.&lt;br /&gt;
:* [[Monster]]s&#039; heights are once again the same as they were in id&#039;s original &#039;&#039;[[Doom]]&#039;&#039;, so certain areas work properly again.&lt;br /&gt;
:* Monsters shouldn&#039;t teleport into each other anymore.&lt;br /&gt;
:* Improved support for international keyboards.&lt;br /&gt;
:* The skill level chosen for a new game is no longer ignored if the new game is started while a demo is playing.&lt;br /&gt;
:Cosmetic changes:&lt;br /&gt;
:* No more &amp;quot;sv_gravity changed to...&amp;quot;, &amp;quot;skill changed to...&amp;quot;, etc. messages in single player games.&lt;br /&gt;
:* Activating the [[player setup]] [[menu]] automatically stops any playing [[demo]]s, since it doesn&#039;t work properly while they play.&lt;br /&gt;
:* {{Class|ExplosiveBarrel|Barrels}} don&#039;t go flying away when exploding anymore.&lt;br /&gt;
:* Added def_patch cvar to automatically load a DeHackEd patch each time the game is started.&lt;br /&gt;
:* ZDoom [[savegame]]s now use the name zdoomsv?.dsg instead of doomsav?.dsg.&lt;br /&gt;
:This version also includes some preliminary [[Boom]] support as I started integrating some of the Boom source code with ZDoom:&lt;br /&gt;
:* Medusa fix.&lt;br /&gt;
:* Openings limit removed.&lt;br /&gt;
:* Removed limit on switches and animations.&lt;br /&gt;
:* Added support for Boom-like [[ANIMATED]] and [[SWITCHES]] lumps in PWADs.&lt;br /&gt;
:* Added support for Boom-style scrollers (including conveyors).&lt;br /&gt;
:* Added partial [[deep water]] support.&lt;br /&gt;
;{{LE|1.16}} (December 22): {{forum|t=13|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom116.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom116-src.zip Source]}}&lt;br /&gt;
:Bug fixes:&lt;br /&gt;
:* No more limit on size of [[savegame]]s or [[demo]]s.&lt;br /&gt;
:* Screen resolutions above 320x200 are now the proper brightness (they were too bright before.)&lt;br /&gt;
:* Improved the brightness of the [[console]] [[font]].&lt;br /&gt;
:* {{Class|BulletPuff|Bullet puffs}} can show up on the floor and ceiling and not just walls.&lt;br /&gt;
:* Missile weapons can trigger gun activation lines.&lt;br /&gt;
:* {{Class|ExplosiveBarrel|Barrels}} now bounce around as much as they did in original &#039;&#039;[[Doom]]&#039;&#039;. (They were too &amp;quot;inert&amp;quot; in 1.14.)&lt;br /&gt;
:* If a demo is being recorded, quitting the game normally will save the demo to disk. (Previously, you had to use the stop command to do this.)&lt;br /&gt;
:New features for players:&lt;br /&gt;
:* Proper support for [[Boom]] maps.&lt;br /&gt;
:* Mouse wheel support and {{CCMD|P|weapnext}}/{{CCMD|P|weapprev}} commands.&lt;br /&gt;
:* Doublebindings.&lt;br /&gt;
:* Better analog joystick support.&lt;br /&gt;
:* 180 degree turn command for keyboarders.&lt;br /&gt;
:* Damage done by a rocket to its shooter is {{CVAR|C|splashfator|configurable}} and defaults to the original Doom behavior.&lt;br /&gt;
:* User-configurable gender. (Even though I don&#039;t have any new player sounds, at least the [[obituaries]] are gender-aware. :-)&lt;br /&gt;
:* [[Teamplay]] mode.&lt;br /&gt;
:* {{CVAR|C|sv_nobfgaim|New CVAR}} to disable manual aiming of the BFG to prevent someone from shooting it at the floor and quickly triggering tracer damage before.&lt;br /&gt;
:* Maps no longer need to have as many deathmatch starts as there are players in a deathmatch game.&lt;br /&gt;
:* Support for [[Doom Legacy]] [[skin]]s.&lt;br /&gt;
:* Rewrote the [[MIDI]]/[[MUS]] code so that it has a working volume control.&lt;br /&gt;
:* Many more [[console command]]s and [[CVARs]].&lt;br /&gt;
:New features for editors:&lt;br /&gt;
:* Proper support for [[Boom]] maps.&lt;br /&gt;
:* [[Obituaries]] are configurable with a .bex patch.&lt;br /&gt;
:* [[Monster path]]s&lt;br /&gt;
:* [[Colored lighting]]&lt;br /&gt;
:* [[Fog]] can be applied to only part of a level instead of all of it.&lt;br /&gt;
:* Per-sector [[gravity]] settings.&lt;br /&gt;
:* Support for up to 256 [[ambient sound]]s (as opposed to the limit of 64 in earlier versions).&lt;br /&gt;
:* [[Sector damage]] adjustable from between 0-255 points of damage.&lt;br /&gt;
:* Changeable [[camera]] views.&lt;br /&gt;
:* The following editing features that were introduced in &#039;&#039;[[Hexen]]&#039;&#039; are also available in ZDoom:&lt;br /&gt;
::*Most line specials take arguments that modify their behavior.&lt;br /&gt;
::*[[ACS]] scripting.&lt;br /&gt;
::*[[Hub]]s.&lt;br /&gt;
::*[[Earthquake]]s.&lt;br /&gt;
::*[[Dormant]] monsters.&lt;br /&gt;
::*Trigger events to happen on monster deaths.&lt;br /&gt;
::*[[Floor_Waggle|&amp;quot;Waggling&amp;quot; floors]].&lt;br /&gt;
::*[[Pillar_Build|Pillar builders]].&lt;br /&gt;
::*Push activation lines (walking into a wall can trigger an event).&lt;br /&gt;
::*[[Thing_Spawn|Thing spawning]] (e.g. for traps/gifts).&lt;br /&gt;
&lt;br /&gt;
==1999==&lt;br /&gt;
January 6 of this year saw the first release of the [[Raven Software]] source code.&lt;br /&gt;
;{{LE|1.17}} (February 17): {{forum|t=15|Release thread}} | {{plainlink|[http://www.zdoom.org/files/zdoom/zdos117c.zip DOS build]}}&lt;br /&gt;
:Bug fixes:&lt;br /&gt;
:* [[Multiplayer]] games with [[monster]]s do not crash.&lt;br /&gt;
:* Player corpses do not levitate and then fall down when a player respawns in multiplayer games.&lt;br /&gt;
:* Using {{CCMD|P|togglemap}} outside of a game will not crash.&lt;br /&gt;
:* Monsters stop attacking their target once it is dead.&lt;br /&gt;
:* EV_StopPlat() does not get stuck in an infinite loop if there are [[moving platform]]s.&lt;br /&gt;
:* Partially invisible players are drawn the proper colors (instead of green) if {{CVAR|R|r_drawfuzz}} is 0.&lt;br /&gt;
:* If you are invisible, so are your muzzle flashes.&lt;br /&gt;
:* Trying to execute a non-existent [[ACS|script]] will not crash.&lt;br /&gt;
:* Using a [[ChangeCamera]] special from an open script will not crash.&lt;br /&gt;
:* The [[FloorAndCeiling_RaiseByValue]] and [[FloorAndCeiling_LowerByValue]] now behave like &#039;&#039;[[Hexen]]&#039;&#039;&#039;s.&lt;br /&gt;
:* Using {{c|{{param|-loadgame}}}} from the [[command line]] works.&lt;br /&gt;
:* Fixed a memory leak during generation of the translucency tables.&lt;br /&gt;
:* In high resolutions, weapon sprites meet the bottom of the screen.&lt;br /&gt;
:* Sounds will not cut out mysteriously when there is no reason for them to do so.&lt;br /&gt;
:* Sounds will also not be stopped immediately when a thing is removed, so explosion sounds will play to their full length.&lt;br /&gt;
:* Things can make more than one sound at once.&lt;br /&gt;
:* The [[deathmatch]] [[scoreboard]] is aligned properly at high resolutions.&lt;br /&gt;
:* {{CCMD|P|Spynext}} and {{CCMD|P|spyprev}} work properly instead of leaving the [[status bar]] &amp;quot;lagging behind&amp;quot; the player being viewed.&lt;br /&gt;
:* The {{Class|Infrared|light-amp}} does not disable colored lighting.&lt;br /&gt;
:* The [[sky]] gets {{dw|invulnerability colormap bug|inverted}} when using the invulnerability powerup.&lt;br /&gt;
:* Implemented better z-checking code (from &#039;&#039;[[Heretic]]&#039;&#039;/&#039;&#039;[[Hexen]]&#039;&#039;).&lt;br /&gt;
:* {{Class|PainElemental|Pain elementals}} will spawn one {{Class|LostSoul|lost soul}} at a time instead of two inside of each other.&lt;br /&gt;
:* Bex patches that use thing mnemonics really do work now, and unknown bit messages aren&#039;t generated for regular [[DeHackEd]]  patches.&lt;br /&gt;
:* Linedef type 134 for regular &#039;&#039;[[Doom]]&#039;&#039;/[[Boom]] maps requires a red key for activation (it was being improperly translated to require a blue one).&lt;br /&gt;
:* Monsters can activate secret lines when they cross them. (See &#039;&#039;[[Doom II]]&#039;&#039; MAP08).&lt;br /&gt;
:* The player extreme death sound is used.&lt;br /&gt;
:* When a player leaves a network game, their body is removed instead of being left empty.&lt;br /&gt;
:* 0-length sounds are treated as empty sounds instead of sounds 4 gigs long.&lt;br /&gt;
:* [[Skin]]s that replaced player sounds with sounds in the [[IWAD]] work.&lt;br /&gt;
:* Muzzle flashes do not light up foggy areas, and fullbright sprites stay shrouded in fog.&lt;br /&gt;
:* Alphanumeric keys no longer automatically repeat on the console.&lt;br /&gt;
:* Wads such as gothicdm2 that used new flats in addition to the ones in the IWAD with the regular doom.exe work.&lt;br /&gt;
:New features:&lt;br /&gt;
:* Significant speed improvements on modern processors.&lt;br /&gt;
:* [[Armor]] and [[key]]s are shown on the fullscreen HUD.&lt;br /&gt;
:* Colored text.&lt;br /&gt;
:* A {{CCMD|P|playdemo}} console command.&lt;br /&gt;
:* A [[chasecam]].&lt;br /&gt;
:* A [[particle]] system.&lt;br /&gt;
:* An optional [[railgun]] to show off the particle system. (Start the game with {{c|{{param|-deh}} [[railgun.bex]]}} if you want to use it.)&lt;br /&gt;
:New features interesting for wad authors:&lt;br /&gt;
:* [[Polyobject]]s.&lt;br /&gt;
:* [[Sound sequence]]s.&lt;br /&gt;
:* WAVE files can be used as sound lumps without converting them to DMX&#039;s format first.&lt;br /&gt;
:* A sky can be specified to not be stretched even if it is shorter than 200 pixels.&lt;br /&gt;
:* {{Class|Spark}}s.&lt;br /&gt;
:* {{Class|ParticleFountain|Particle fountain}}s.&lt;br /&gt;
:* Parallax skies.&lt;br /&gt;
:* Some new [[DeHackEd]] thing flags from &#039;&#039;[[Hexen]]&#039;&#039; (bobbing, reflective, etc.).&lt;br /&gt;
;{{LE|1.17a}} (February 21): {{forum|t=16|Release thread}}&lt;br /&gt;
:Mostly minor bug fixes, released because [[Herian 2]] needed some of those fixes. There are a few new features, however:&lt;br /&gt;
:* If you have a skins/ directory in the same directory as zdoom.exe, every wad file in it will be automatically loaded when the game starts. This way, you don&#039;t have to load your [[skin]]s by hand to use them.&lt;br /&gt;
:* New formatting options for text [[print]]ed using [[ACS]].&lt;br /&gt;
:* A [[A_MonsterRail|code pointer]] to make monsters fire a railgun.&lt;br /&gt;
;{{LE|1.17b}} (March 17): {{forum|t=21|Release thread}}&lt;br /&gt;
:Some minor bug fixes over 1.17 and 1.17a. It also loads faster because the sprite dimensions are not cached until they are actually needed. There are also some other internal changes in preparation for supporting &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;[[Hexen]]&#039;&#039;, but those don&#039;t affect the user yet.&lt;br /&gt;
;{{LE|1.17b1}} (March 19): {{forum|t=22|Release thread}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
;{{LE|1.17c}} (May 5): {{forum|t=28|Release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom117c.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom117c-src.zip Source]}}&lt;br /&gt;
:* Fixed game saving crashes on maps with [[wind]]/[[current]] effects.&lt;br /&gt;
:* In [[Boom]] [[deep water]] sectors, the underwater light and fog colors can now be set independently of the area above water.&lt;br /&gt;
:* Added nojump, allowjump, nofreelook, and allowfreelook keywords for use in [[MAPINFO]] lumps to control [[jumping]] and [[free look]].&lt;br /&gt;
:* The random number seed now changes each time you run the program.&lt;br /&gt;
;{{LE|1.18 test 1}} (June 30): {{forum|t=33|Release thread}}&lt;br /&gt;
:* Tweaked the optimized renderer for fifth-generation processors.&lt;br /&gt;
:* Added the following specials:&lt;br /&gt;
::*[[Line_AlignFloor]]&lt;br /&gt;
::*[[Line_AlignCeiling]]&lt;br /&gt;
::*[[Sector_SetRotation]]&lt;br /&gt;
::*[[Sector_SetCeilingPanning]]&lt;br /&gt;
::*[[Sector_SetFloorPanning]]&lt;br /&gt;
::*[[Sector_SetCeilingScale]]&lt;br /&gt;
::*[[Sector_SetFloorScale]]&lt;br /&gt;
:* Added an additional parameter to the [[Transfer_Heights]] special.&lt;br /&gt;
:* Switched to the [http://sourceforge.net/projects/openptc/ OpenPTC] library for display.&lt;br /&gt;
:* Converted lots of code to an object-oriented C++ architecture.&lt;br /&gt;
;{{LE|1.18 test 2}} (July 1): {{forum|t=36|Release thread}}&lt;br /&gt;
:* Fixed vertical aim clipping ({{Class|BFG9000|BFG}} works again).&lt;br /&gt;
:* Fixed [[monster]] wandering.&lt;br /&gt;
:* Maps with mapthings of type 0 no longer generate warning messages.&lt;br /&gt;
:* [[Crusher]]s that do no damage no longer act as if they inflict pain to actors.&lt;br /&gt;
:* The [[alias]] command lists aliases again.&lt;br /&gt;
:* Aliases are saved to the [[config file]] again.&lt;br /&gt;
;{{LE|1.18 test 3}} (July 2): {{forum|t=37|Release thread}}&lt;br /&gt;
:* Removed unnecessary display mode switches.&lt;br /&gt;
:* Created a DCanvas class to encapsulate most 2D rendering.&lt;br /&gt;
;{{LE|1.18 test 4}} (July 3): {{forum|t=39|Release thread}}&lt;br /&gt;
:* Fixed the &amp;quot;Bad DCanvas::CopyRect&amp;quot; problem introduced in test3.&lt;br /&gt;
:* Fixed [[sound sequence]]s that should not be cut off when stopped (such as the standard doors).&lt;br /&gt;
;{{LE|1.18 test 5}} (July 6): {{forum|t=40|Release thread}}&lt;br /&gt;
:* Fixed a potential infinite loop that was introduced in [[#1.18 test 1|118test1]].&lt;br /&gt;
:* Delayed the initial execution of [[CVAR]] callbacks.&lt;br /&gt;
:* Added &#039;&#039;[[Heretic]]&#039;&#039;&#039;s {{wp|Xiaolin Wu&#039;s line algorithm|anti-aliased Wu line drawer}} to the [[automap]].&lt;br /&gt;
;{{LE|1.18 test 6}} (July 10): {{forum|t=41|Release thread}}&lt;br /&gt;
:* Rewrote the {{wp|Xiaolin Wu&#039;s line algorithm|Wu line drawer}} to look better (especially in overlay mode).&lt;br /&gt;
:* [[Sky stretching|Stretched skies]] now get stretched horizontally as well as vertically.&lt;br /&gt;
:* Did an initial integration of the [[Cajun Bot]] 0.71 code.&lt;br /&gt;
;{{LE|1.18 test 7}} (July 12):&lt;br /&gt;
:* Fixed handling of maps with scrolling walls.&lt;br /&gt;
:* Single player works again. In test 6, all games were considered either [[coop]] or [[deathmatch]].&lt;br /&gt;
:* Disabled the [[bot]] thinking code in single player games, so you don&#039;t suffer a performance hit when not using bots.&lt;br /&gt;
:* Added some performance counters accessible through the {{CCMD|D|stat}} command.&lt;br /&gt;
;{{LE|1.18 test 8}} (July 20): {{forum|t=43|Release thread}}&lt;br /&gt;
:* Fixed a crash problem with the &amp;quot;burn&amp;quot; [[screen wipe]].&lt;br /&gt;
:* Fixed a crash problem with playing non-assigned [[sound sequence]]s.&lt;br /&gt;
:* Fixed a crash problem related to trying to shutdown the music subsystem twice.&lt;br /&gt;
:* If you try to add more coop [[bot]]s than there are coop starts, the extra bot leaves quietly instead of ending the game.&lt;br /&gt;
:* {{CVAR|C|sv_weapondrop|Weapondrop}} is now a &amp;quot;server&amp;quot; CVAR, which it should have been in the first place.&lt;br /&gt;
:* Changed the nodetable file format to be more compact.&lt;br /&gt;
:* Bots can now be recorded in demos.&lt;br /&gt;
:* Bots work in [[multiplayer]] games. Still buggy. Spawning bots can cause consistency failures, and they can start spinning wildly.&lt;br /&gt;
;{{LE|1.18 test 9}} (August 9): {{forum|t=44|Release thread}}&lt;br /&gt;
:* Fixed the &amp;quot;wild&amp;quot; [[bot]] spinning problem.&lt;br /&gt;
:* Commands like {{CCMD|D|changemap}} that could make network games go out of sync should work properly now. The reason they would do that is closely related to the reason that the bots would start spinning.&lt;br /&gt;
:* Finished the serializer. Now savegames work. [[Hub]]s don&#039;t, because I haven&#039;t written the player travelling code yet.&lt;br /&gt;
:* Various other code cleanup.&lt;br /&gt;
;{{LE|1.18 test 10}} (August 14):&lt;br /&gt;
:* Reimplemented [[hub]] travel.&lt;br /&gt;
:* Optimized R_MapPlane slightly.&lt;br /&gt;
:* Added {{CCMD|D|fov}} command.&lt;br /&gt;
:* Added vertical sub-pixel accuracy to the renderer.&lt;br /&gt;
:* Added searches for an [[IWAD]] in the current directory, $DOOMWADDIR, and $HOME.&lt;br /&gt;
;{{LE|1.18}} (September 5): {{forum|t=46|Release thread}}&lt;br /&gt;
:* Replaced the older [[Bots|Cajun]] 0.71 with Cajun 0.97.&lt;br /&gt;
:* Fixed handling of [[status bar]] [[mugshot|faces]] with [[skin]]s that provide them.&lt;br /&gt;
:* Added [[swimmable water]].&lt;br /&gt;
:* Messages printed to the middle of the screen also print to the [[console]].&lt;br /&gt;
:* Skill and other server [[CVARs]] get saved in [[savegame]]s again.&lt;br /&gt;
:* Added liquid [[texture warping]].&lt;br /&gt;
:* Bad [[MAPINFO]] lumps generate error messages instead of hanging.&lt;br /&gt;
:* Realized that it&#039;s impossible to guarantee that all object pointers will be valid without some effort, so FArchive saves DObject objects as NULL objects now instead of aborting with an error.&lt;br /&gt;
:* Added the [[built-in ACS functions]] [[LocalAmbientSound]], [[ActivatorSound]], and [[SetLineMonsterBlocking]].&lt;br /&gt;
:* Added a {{Class|SecretTrigger|thing}} that does nothing but count toward the number of [[secret]]s.&lt;br /&gt;
:* Added a {{CCMD|D|fly}} mode.&lt;br /&gt;
:* Finally implemented the {{CCMD|P|+moveup}} and {{CCMD|P|+movedown}} commands.&lt;br /&gt;
;{{LE|1.18a}} (September 12): {{forum|t=47|Release thread}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed [[liquid warping]] temporarily stopping when changing levels.&lt;br /&gt;
:* {{CCMD|P|+mlook|+/-mlook}} commands do not generate unknown command messages.&lt;br /&gt;
:* Fixed support for maps with &amp;gt;10 deathmatch starts. Thanks to Roman Hatsiev.&lt;br /&gt;
:* Fixed support for the special &amp;quot;maps&amp;quot; EndGame? in MAPINFO lumps.&lt;br /&gt;
:* {{Class|TeleportDest2|Teleport destination (no gravity)}} now works as intended.&lt;br /&gt;
:* Hopefully fixed [[savegame]] problems.&lt;br /&gt;
:* [[Bots]] are restored from savegames.&lt;br /&gt;
:* Fixed keyboard turning speed when {{c|{{param|-dup}}}} is used.&lt;br /&gt;
:* Network commands get executed only once when {{c|{{param|-dup}}}} is used.&lt;br /&gt;
:* In sectors with [[damaging floor]]s and swimmable [[deep water]], the damage will also be applied while the player is swimming and not just when the player is on the ground.&lt;br /&gt;
;{{LE|1.18b}} (September 15): {{forum|t=48|Release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom118b.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom118b-src.zip Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed crash when saving games with more than 1024 objects.&lt;br /&gt;
:* Fixed crash when loading a game without starting a new one first.&lt;br /&gt;
:* Reduced the size and frequency of pregame network packets, under the assumption that problems people were having using 1.18 on the Internet are a result of limited modem bandwidth.&lt;br /&gt;
;{{LE|1.19}} (November 24): {{forum|t=53|Release thread}} | {{forum|t=54|Source/Linux build release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom-1.19.tar.gz Source]}}&lt;br /&gt;
:First official Linux build.&lt;br /&gt;
:* [[DeHackEd]] patches that set an actor&#039;s {{Property|DeathSound|death sound}} to 0 without removing the [[A_Scream]] call no longer crash.&lt;br /&gt;
:* Fixed sync problems when playing with {{Class|BulletPuff|bullet puffs}} as [[particle]]s vs as sprites.&lt;br /&gt;
:* Fixed friction when walking on the bottom of swimmable water.&lt;br /&gt;
:* Added Jeffrey Cuenco&#039;s fixes to get {{c|{{param|-host}}}} and {{c|{{param|-join}}}} [[command line parameters]] to work properly.&lt;br /&gt;
:* Fixed [[Boom]] [[Generic_Door|generalized locked doors]] so that the open/close type will actually close.&lt;br /&gt;
:* Added pointer tracking and cleanup. This should fix the occasional crashes when saving games and various other anomalies.&lt;br /&gt;
;{{LE|1.20}} (November 25): {{forum|t=56|Release thread}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed saving, reloading, and then resaving [[savegame|games]] when travelling between levels in a [[hub]].&lt;br /&gt;
:* Fixed saving of [[ACS]] scripts scheduled to occur on a future level.&lt;br /&gt;
;{{LE|1.21}} (November 26): {{forum|t=57|Release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom121.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom121-src.zip Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed problems with thinkers removing themselves and causing other thinkers to not get a chance to think.&lt;br /&gt;
:* Added {{CVAR|R|hud_scale}} CVAR&lt;br /&gt;
;{{LE|1.22}} (November 12): {{forum|t=60|Release thread}} | {{plainlink|[http://www.zdoom.org/files/zdoom/1.x/zdoom122.zip Windows build] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom-1.22-i386.tar.gz Linux build] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom122-src.zip Windows source] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom-1.22.tar.gz Linux source]}}&lt;br /&gt;
:* [[Scroll_Texture_Both]] and [[TranslucentLine]] specials can now be used from [[ACS]].&lt;br /&gt;
:* Fixed compiler-dependent [[CVAR]] ordering during [[netgame]] arbitration.&lt;br /&gt;
:* Fixed certain [[polyobject]] movement combinations that would not stop even though they were supposed to.&lt;br /&gt;
:* Did some cleanup for Alpha processors.&lt;br /&gt;
&lt;br /&gt;
==2000==&lt;br /&gt;
June 20 of this year saw the public release of the [[Build]] source code.&lt;br /&gt;
;{{LE|1.23 Beta}} (May 10): {{forum|t=64|Release thread}}&lt;br /&gt;
:*Partial &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;[[Hexen]]&#039;&#039; support.&lt;br /&gt;
:*Windows build uses [[FMOD Ex|FMOD]] instead of [http://www.s2.org/midas/ MIDAS].&lt;br /&gt;
&lt;br /&gt;
==2001==&lt;br /&gt;
;{{LE|1.23 Beta 19}} (March 9): {{forum|t=74|Release thread}}&lt;br /&gt;
:Added new [[camera]] types.&lt;br /&gt;
:Added [[LANGUAGE|string localization]].&lt;br /&gt;
:Added [[decal]]s.&lt;br /&gt;
:Added [[slope]]s.&lt;br /&gt;
:Added [[skybox]]es.&lt;br /&gt;
;{{LE|1.23 Beta 20}} (March 11): {{forum|t=75|Release thread}}&lt;br /&gt;
;{{LE|1.23 Beta 23}} (April 9): {{forum|t=76|Release thread}}&lt;br /&gt;
;{{LE|1.23 Beta 24}} (April 12): {{forum|t=77|Release thread}}&lt;br /&gt;
;{{LE|1.23 Beta 25}} (August 15): {{forum|t=81|Release thread}}&lt;br /&gt;
:Linux build now uses SDL&lt;br /&gt;
;{{LE|1.23 Beta 28}} (September 17): {{forum|t=83|Release thread}}&lt;br /&gt;
:Added a few [[decal]]-related [[CVARs]].&lt;br /&gt;
;{{LE|1.23 Beta 28a}} (December 13): {{forum|t=88|Release thread}}&lt;br /&gt;
&lt;br /&gt;
==2002==&lt;br /&gt;
;{{LE|1.23 Beta 33}} (February 5): {{Forum|t=90|Release thread}} | {{plainlink|[http://www.zdoom.org/files/zdoom/1.x/zdoom-1.23beta33-linux.bz2 Linux build] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom-1.23beta33-src.tar.bz2 Source]}}&lt;br /&gt;
:Many fixes and rendering optimization.&lt;br /&gt;
:*Increased &#039;&#039;[[Heretic]]&#039;&#039;/&#039;&#039;[[Hexen]]&#039;&#039; support&lt;br /&gt;
:*Improved [[decal]]s.&lt;br /&gt;
:*Added support for the [[Bloodbath announcer]]&lt;br /&gt;
:*Added [[underwater]] [[REVERBS|reverb]] effect.&lt;br /&gt;
:*Added [[Line_Horizon]] effect.&lt;br /&gt;
:*Added {{Class|ScriptedMarine|scripted marines}} and several [[ACS]] enhancements.&lt;br /&gt;
:*Added support for [[DeePsea]]&#039;s [[patch|tall patches]].&lt;br /&gt;
:*Added [[slope]] things.&lt;br /&gt;
:*Changed [[license]] for original ZDoom source code to a &amp;quot;BSD-ish one&amp;quot;.&lt;br /&gt;
;{{LE|2.0 Beta 13}} (August 27):&lt;br /&gt;
:*Further increased &#039;&#039;Heretic&#039;&#039;/&#039;&#039;Hexen&#039;&#039; support.&lt;br /&gt;
:*Added [[PNG]] support for screenshots. [[Savegame]]s are actually PNG files now.&lt;br /&gt;
:*Added [[ZDBSP|internal nodebuilder]], made it [[polyobject]]-aware.&lt;br /&gt;
:*Added SNES SPC music support.&lt;br /&gt;
:*Added a loader for [[Build]] maps.&lt;br /&gt;
:*Added support for double- and quadruple-resolution flats (128x128 and 256x256).&lt;br /&gt;
:*Added ACS [[libraries]].&lt;br /&gt;
:*Added support for up to 8 mouse buttons.&lt;br /&gt;
:*Added the very first version of [[DECORATE]].&lt;br /&gt;
:*Removed [[MBF]]&#039;s torque simulation because of the problems it caused.&lt;br /&gt;
&lt;br /&gt;
==2003==&lt;br /&gt;
;{{LE|2.0.47}} (May 14): {{Forum|t=101|Release thread}} | {{plainlink|[http://www.zdoom.org/files/lars/47.cab Build]}}&lt;br /&gt;
;{{LE|2.0.47i}} (October 2): {{plainlink|[http://www.zdoom.org/files/lars/47i.cab Build]}}&lt;br /&gt;
;{{LE|2.0.48}} (October 23):&lt;br /&gt;
:*Interchangeability between [[flat]]s and [[texture]]s.&lt;br /&gt;
;{{LE|2.0.49}}, {{LE|2.0.50}} (October 26)&lt;br /&gt;
;{{LE|2.0.51}} (October 30)&lt;br /&gt;
;{{LE|2.0.52}} (October 31)&lt;br /&gt;
;{{LE|2.0.53}} (November 16)&lt;br /&gt;
;{{LE|2.0.54}}, {{LE|2.0.55}} (November 23)&lt;br /&gt;
;{{LE|2.0.56}} (November 25)&lt;br /&gt;
;{{LE|2.0.57}} (November 26)&lt;br /&gt;
;{{LE|2.0.58}}, {{LE|2.0.59}} (December 7)&lt;br /&gt;
;{{LE|2.0.60}} (December 8)&lt;br /&gt;
&lt;br /&gt;
==2004==&lt;br /&gt;
;{{LE|2.0.61}} (January 22) &lt;br /&gt;
;{{LE|2.0.62}} (February 7):&lt;br /&gt;
:*Added modern [[DECORATE]] support.&lt;br /&gt;
;{{LE|2.0.63}} (February 10): {{plainlink|[http://www.zdoom.org/files/lars/63.cab Build] {{!}} [http://www.zdoom.org/files/lars/63src.cab Source]}}&lt;br /&gt;
:*Added custom monsters to DECORATE.&lt;br /&gt;
;{{LE|2.0.64}} (June 8)&lt;br /&gt;
;{{LE|2.0.90}} (October 21):&lt;br /&gt;
:*Added &#039;&#039;[[Strife]]&#039;&#039; support and new inventory system&lt;br /&gt;
;{{LE|2.0.91}} (October 22)&lt;br /&gt;
;{{LE|2.0.92}} (October 31)&lt;br /&gt;
;{{LE|2.0.93}} (November 3)&lt;br /&gt;
;{{LE|2.0.94}} (November 19)&lt;br /&gt;
;{{LE|2.0.95}} (December 24): {{plainlink|[http://www.zdoom.org/files/lars/95changes.html Changelog]}}&lt;br /&gt;
:*Added [[camera]] textures to [[ANIMDEFS]] and [[SetCameraToTexture]]&lt;br /&gt;
:*Improved [[console]] tab completion, added Ctrl-X shortcut to clear the console&#039;s command line&lt;br /&gt;
:*Several &#039;&#039;[[Hexen]]&#039;&#039; and &#039;&#039;[[Strife]]&#039;&#039; fixes&lt;br /&gt;
:*Merged in Jim&#039;s [[ACS]] character array [[print]]ing support. &lt;br /&gt;
:*Added the [[polymost]] clipper.&lt;br /&gt;
:*Added support for 16:10 and 5:4 aspect ratios and letterboxing.&lt;br /&gt;
:*Added [[scope|static local variables]], [[Log]], [[SetAmmoCapacity]] and [[GetAmmoCapacity]] to [[ACS]].&lt;br /&gt;
;{{LE|2.0.96}} (December 25): {{plainlink|[http://www.zdoom.org/files/lars/96.cab Build] {{!}} [http://www.zdoom.org/files/lars/96src.cab Source] {{!}} [http://www.zdoom.org/files/lars/96changes.html Changelog]}}&lt;br /&gt;
:*Added [[TITLEMAP]]&lt;br /&gt;
&lt;br /&gt;
==2005==&lt;br /&gt;
;{{LE|2.0.97}} (September 28): {{forum|t=8060|Release thread}} | {{plainlink|[http://www.zdoom.org/files/lars/97.cab Build] {{!}} [http://www.zdoom.org/files/lars/97src.rar Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:*The [[LANGUAGE]] lump is now text-based.&lt;br /&gt;
:*Added IMF [[music format]] support.&lt;br /&gt;
:*Ported [[SetActorAngle]] and [[SetLineBlocking|BLOCK_RAILING]] from the [[ZDoom Community Build]].&lt;br /&gt;
:*Added [[Polymost]] visualization code from [[Build]].&lt;br /&gt;
:*Gave {{Flag|DONTMORPH}} flag to {{Class|Cyberdemon}}, {{Class|SpiderMastermind}}, {{Class|AlienSpectre1}}, {{Class|Crusader}}, {{Class|Programmer}}, and {{Class|Inquisitor}}.&lt;br /&gt;
:*Made {{Class|Puffy}} and projectiles spawned by [[A_LastZap]] deal no damage.&lt;br /&gt;
:*[[Teleport_NewMap]] can now be used within a [[TITLEMAP]] in order to make it possible to use different maps as the title map.&lt;br /&gt;
:*Merged in Graf Zahl&#039;s [[Caverns of Darkness]] patch.&lt;br /&gt;
:*Added [[Polymost]] wireframe mode.&lt;br /&gt;
:*Added {{CCMD|O|writeopl}} console command.&lt;br /&gt;
:*[[UsePuzzleItem]] can now be a [[thing]]&#039;s [[special]].&lt;br /&gt;
:*Missiles with negative damage now give you health.&lt;br /&gt;
;{{LE|2.0.98}} (November 3): {{forum|t=8460|Release thread}} | {{plainlink|[http://www.zdoom.org/files/lars/98.cab Build] {{!}} [http://www.zdoom.org/files/lars/98src.rar Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
&lt;br /&gt;
==2006==&lt;br /&gt;
February 16 of this year saw the first commit to the [[SVN]] repository.&lt;br /&gt;
;{{LE|2.1.0}}{{rev|204}} (June 21): {{forum|t=10550|Release thread}} | {{plainlink|[http://zdoom.org/files/old/zdoom-2.1.0.zip Build] {{!}} [http://zdoom.org/files/old/zdoom-2.1.0-src.7z Source]}}&lt;br /&gt;
:*Added several things from [[ZDoom Community Build]] (unofficial 2.0.96x) and [[GZDoom]], including custom [[DECORATE]] [[weapon]]s.&lt;br /&gt;
;{{LE|2.1.1}}{{rev|226}} (June 25): {{forum|t=10630|Release thread}} | {{versionlinks|2|1|1}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
;{{LE|2.1.2}}{{rev|257}} (July 17): {{forum|t=10895|Release thread}} | {{versionlinks|2|1|2}}&lt;br /&gt;
:*Added custom [[player class]]es.&lt;br /&gt;
:*Added &amp;quot;replaces&amp;quot; keyword for [[DECORATE]].&lt;br /&gt;
:*[[IWAD selection box]] now remembers the last choice.&lt;br /&gt;
:*Added [[A_RadiusThrust]] to DECORATE.&lt;br /&gt;
:*Added [[ThingCountName]] and  [[SpawnSpotFacing]] to [[ACS]].&lt;br /&gt;
:*Changed additive scroller options into a [[compatibility options|compatibility flag]].&lt;br /&gt;
;{{LE|2.1.3}}{{rev|265}} (July 18): {{forum|t=10930|Release thread}} | {{versionlinks|2|1|3}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Sounds can be specified by full path now in [[SNDINFO]] and [[S_SKIN]].&lt;br /&gt;
:* [[DECORATE]] replacement is more universal.&lt;br /&gt;
:* Added NecroMage&#039;s submission for bitwise/shift assignment operators for [[ACS]]. (Requires [[ACC]] 1.42+.)&lt;br /&gt;
:* Changed PlayAttacking2 to always use the melee state instead of different implementations per player and hard coding it to MissileState+1. Also changed PlayAttacking for the {{Class|HereticPlayer}} to use the same animation as PlayAttacking2. Now the special handling for &#039;&#039;[[Heretic]]&#039;&#039; in the FireWeapon functions can be removed.&lt;br /&gt;
;{{LE|2.1.4}}{{rev|273}} (July 29): {{forum|t=11063|Release thread}} | {{versionlinks|2|1|4}}&lt;br /&gt;
:*Added partial emulation of [[Boom]]&#039;s TRANMAP by analyzing such lumps and extrapolating translucency level from them. This does not work for non-translucency effects that can be achieved with TRANMAPs.&lt;br /&gt;
:*Added a {{CVAR|C|queryiwad_key}} cvar to control which key can force the [[IWAD selection box]] to appear. It can be either &amp;quot;shift&amp;quot; or &amp;quot;control&amp;quot;. Any other value will disable its functionality.&lt;br /&gt;
;{{LE|2.1.5}}{{rev|321}} (September 2): {{forum|t=11466|Release thread}} | {{versionlinks|2|1|5}}&lt;br /&gt;
:*New [[ACS]] functions: [[GetPlayerInfo]], [[ChangeLevel]], [[SectorDamage]], [[ReplaceTextures]]&lt;br /&gt;
:*New [[DECORATE]] functions: [[A_PlaySoundEx]], [[A_StopSoundEx]]&lt;br /&gt;
:*The {{CVAR|C|vid_nowidescreen}} cvar can be used to disable widescreen aspect ratio correction.&lt;br /&gt;
:*[[A_SpawnDebris]] and [[A_SpawnItem]] can optionally transfer the caller&#039;s color translation to the newly spawned item.&lt;br /&gt;
:*New morphing artifacts can be created by subclassing the {{Class|MorphProjectile}} and {{Class|MorphedMonster}} classes.&lt;br /&gt;
:*[[A_FireCustomMissile]] has a new parameter: Previously it always aimed straight ahead and altered the projectile&#039;s angle according to the resulting direction. If the 6th parameter is 1 now it will aim at the specified angle directly.&lt;br /&gt;
:*Users can now define their own [[TEXTCOLO|text colors]], and there are several new standard ones.&lt;br /&gt;
:*The fourth parameter of [[Polyobj_StartLine]] and the fifth parameter of [[Polyobj_ExplicitLine]] now set the line&#039;s ID.&lt;br /&gt;
:*DECORATE explosion parameters are no longer considered deprecated.&lt;br /&gt;
:*Calling [[Radius_Quake]], [[Thing_Activate]], or [[Thing_Remove]] with a [[TID]] of 0 now operates the activator.&lt;br /&gt;
:*Strife&#039;s {{Class|PhosphorousFire}} now does completely thrustless damage.&lt;br /&gt;
:*An actor&#039;s damage in DECORATE can now be specified as an expression that is evaluated each time it needs to do damage. To do this, enclose it within parentheses, and the normal Doom damage calculation will be bypassed.&lt;br /&gt;
:*Passing a negative script number to the {{CCMD|D|puke}} [[console command]] now runs the script with [[ACS_ExecuteAlways]] instead of [[ACS_Execute]].&lt;br /&gt;
:*[[Polyobject]]s defined with [[Polyobj_ExplicitLine]] are no longer limited to 64 segs.&lt;br /&gt;
:*Starting a new game or reloading an old one no longer resets the [[chasecam]].&lt;br /&gt;
:*The [[automap]] background is now a regular texture.&lt;br /&gt;
:*Added support for many [[image format]]s for use as textures: [[PNG]], JPEG, PCX, TGA, DDS.&lt;br /&gt;
:*Numerous bugfixes.&lt;br /&gt;
;{{LE|2.1.6}}{{rev|346}} (October 2): {{forum|t=11758|Release thread}} | {{versionlinks|2|1|6}}&lt;br /&gt;
:*Scaled 2D images are supported.&lt;br /&gt;
:*Dehacked max health usage defaults to consistency with other ([[Boom]]) ports.&lt;br /&gt;
:*A &#039;&#039;font&#039;&#039; parameter was added to [[A_Print]].&lt;br /&gt;
:*Quoted strings in [[DECORATE]] can no longer span multiple lines without using the escape character (\) at the end of each line. This makes it easier to spot places where you unintentionally left off a closing quote and got an error several lines later.&lt;br /&gt;
:*A new {{CCMD|O|writeini}} console command can be used to save [[the ini]] at any time, with any file name.&lt;br /&gt;
:*If the ini is write-protected when you quit, an error dialog now opens to let you know your settings could not be saved and gives you the opportunity to unprotect it.&lt;br /&gt;
:*Multiple stat displays can be enabled at once.&lt;br /&gt;
:*Several bugfixes.&lt;br /&gt;
;{{LE|2.1.7}}{{rev|524}} (October 31): {{forum|t=12015|Release thread}} | {{versionlinks|2|1|7}}&lt;br /&gt;
:*Alias commands can now do parameter substitution. If you have %x, where x is some number, in an alias command, it will be replaced by the appropriately numbered parameter passed when the alias is used, with %0 being replaced by the name of the alias itself.&lt;br /&gt;
:*A new {{Class|MapMarker}} actor has been added that you can use to mark points of interest on the [[automap]]. If its first argument is zero, the map marker itself appears on the automap, otherwise it is drawn on top of any actor with a [[TID]] matching that argument. If the second argument is one, then the map marker will only be appear if the player has previously seen the sector it is in. You can use [[Thing_Activate]] and [[Thing_Deactivate]] on markers to turn them on and off. To make custom markers, all you need to do is subclass MapMarker with [[DECORATE]].&lt;br /&gt;
:*Added the [[SetActorPitch]] [[ACS]] command to set an actor&#039;s pitch.&lt;br /&gt;
:*You can pass multiple jump targets to the [[A_Jump]] [[DECORATE]] function, and it will choose one of them at random if it jumps.&lt;br /&gt;
:*Using a [[TID]] of 0 with [[Thing_Deactivate]], [[SetActorAngle]], [[Thing_Spawn]]*, [[Thing_Projectile]]*, and [[Thing_Move]] will now operate on the activator.&lt;br /&gt;
:*The fifth argument for [[Line_SetIdentification]] can be used to set the high byte of the line ID.&lt;br /&gt;
:*Added a {{Property|CameraHeight}} [[DECORATE]] property for actors.&lt;br /&gt;
:*Added special death states for [[projectile]]s hitting actors. If missiles hit a non-bleeding actor, they try the Crash state first. If that doesn&#039;t exist or the actor is bleeding, they try the XDeath state next. If they hit anything else or neither of the two states are defined, they use the normal death state.&lt;br /&gt;
:*Added a {{Flag|PIERCEARMOR}} [[DECORATE]] flag for projectiles.&lt;br /&gt;
:*The {{CCMD|D|morphme}} [[console command]] can be given an optional argument to specify which class to morph into.&lt;br /&gt;
:*Miscellaneous bugfixes.&lt;br /&gt;
&lt;br /&gt;
==2007==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
==2008==&lt;br /&gt;
;{{LE|2.2.0}}{{rev|748}} (February 15): {{forum|t=16272|Release thread}} | {{versionlinks|2|2|0}}&lt;br /&gt;
:*This is the final version of ZDoom to fully support Windows 95 since later versions switched to [[FMOD Ex]].&lt;br /&gt;
:*Added [[custom damage types]], with monsters being able to have different custom pain chances, custom damage factors, and custom death sequence for each damage type. Also, damage-specific player pain and death sounds.&lt;br /&gt;
:*Custom damage color for [[palette flash]]es per [[player class]].&lt;br /&gt;
:*Custom state labels. New states can be defined in [[DECORATE]].&lt;br /&gt;
:*The [[SBARINFO]] lump for creating status bar and other [[HUD]]s.&lt;br /&gt;
:*[[Skill definition]] in [[MAPINFO]], with many properties.&lt;br /&gt;
:*Most thing functions treat a [[TID]] of 0 as the activator now.&lt;br /&gt;
:*Support for [[ENDOOM]] screens and the graphical or semi-graphical [[startup lumps|screens]] from &#039;&#039;[[Heretic]]&#039;&#039;, &#039;&#039;[[Hexen]]&#039;&#039; and &#039;&#039;[[Strife]]&#039;&#039;.&lt;br /&gt;
:*Several things backported from [[Skulltag]], including powerups and flags for increased port compatibility:&lt;br /&gt;
::*{{Class|PowerDrain|Drain}}, {{Class|PowerHighJump|HighJump}} and {{Class|PowerRegeneration|Regeneration}} runes as powerups and used specific player sounds for their sound effects.&lt;br /&gt;
::*PowerQuadDamage and PowerQuarterDamage as more customizable {{Class|PowerDamage}} and {{Class|PowerProtection}}. These new powerups allow free customization of the damage modification per damage type by inheriting from these classes and setting specific values. Such derived damage/protection powerups will be considered as separate powers so that for example a QuadDamage and a DoubleDamage item can be stacked which would result in 8x damage.&lt;br /&gt;
::*{{Property|Armor.MaxBonus}} and {{Property|Armor.MaxBonusMax}} properties to create armor bonuses that increases the max amount that can be given by other armor items.&lt;br /&gt;
::*Custom F1 help screen [[MAPINFO]] option&lt;br /&gt;
::*Added REDMAP and GREENMAP [[palette blend]]s.&lt;br /&gt;
::*Imported SAME_SPAWN_SPOT [[DM flag]]&lt;br /&gt;
::*Pickup sprite for the {{Class|pistol}}.&lt;br /&gt;
::*Imported {{CVAR|R|r_maxparticles}} CVAR.&lt;br /&gt;
:*New [[Direct3D]] code for better Vista support.&lt;br /&gt;
:*Autoload sections in [[the ini]].&lt;br /&gt;
:*[[GZDoom]]&#039;s [[alternate HUD]].&lt;br /&gt;
:*Custom blood on an actor-by-actor basis into [[DECORATE]].&lt;br /&gt;
:*Smart [[autoaim]] code to prevent the targeting of friendly monsters.&lt;br /&gt;
:*New {{Flag|NOBLOODDECALS}} flag that prevents bleeding actors from spawning blood [[decal]]s.&lt;br /&gt;
:*Customizable border textures. They are defined with the [[MAPINFO]] keyword &#039;bordertexture&#039; and are settable per map.&lt;br /&gt;
:*Custom label support for [[A_Chase]] and [[A_VileChase]]&lt;br /&gt;
:*{{Property|Player.RunHealth}} property to expose the {{Class|StrifePlayer}}&#039;s behavior of not being able to run when its [[health]] is below 10.&lt;br /&gt;
:*Customizable gravity per actor&lt;br /&gt;
:*New {{CCMD|D|summonfoe}} console command, which is analogous to {{CCMD|D|summonfriend}} but forces the summoned creature to be hostile instead.&lt;br /&gt;
:*Added two new [[MAPINFO]] flags to control what actor activates impact lines: {{c|MissileShootersActivateImpactLines}} (the current behavior) and {{c|MissilesActivateImpactLines}} (the original &#039;&#039;[[Hexen]]&#039;&#039; behavior).&lt;br /&gt;
:*More player water sounds: {{c|*dive}} (head goes below water), {{c|*surface}} (your head goes back above water), {{c|*gasp}} (getting air back after starting to drown)&lt;br /&gt;
:*Using &amp;quot;*&amp;quot; with [[ACS]]&#039;s music commands will play the level&#039;s default music set in [[MAPINFO]]&lt;br /&gt;
:*Two new CVARs ({{CVAR|C|win_x}} and {{CVAR|C|win_y}}) that keep track of the window position when not playing in fullscreen mode&lt;br /&gt;
:*Key bindings can now be [[print]]ed with [[ACS]]&lt;br /&gt;
:*{{Flag|INVENTORY.KEEPDEPLETED}} flag for inventory items to keep them in the player&#039;s inventory even when they have been used up. If the item also has an inventory bar icon, it will be drawn darkened while it is depleted.&lt;br /&gt;
:*{{Flag|INVENTORY.IGNORESKILL}} flag for ammo that prevents the given quantity from being modified by the skill level&lt;br /&gt;
:*{{Property|Player.AttackZOffset}} for {{Class|PlayerPawn}}. This is the offset from the center of the player at which their attacks are fired and scales according to their crouched height.&lt;br /&gt;
:*Added a new [[SetActorState]] [[ACS]] function.&lt;br /&gt;
:*{{Flag|CANUSEWALLS}} flag which allows a [[monster]] to activate &#039;use&#039; specials like doors. This flag is on by default for any monster, which was the previous behavior.&lt;br /&gt;
:*[[Thing_Stop]] action special.&lt;br /&gt;
:*New {{Flag|FORCERADIUSDMG}} flag that allows exploding items to hurt boss monsters.&lt;br /&gt;
:*New {{Flag|USESPECIAL}} flag that allows using things to execute their [[special]]s.&lt;br /&gt;
:*[[Compatibility option]] to restore the original behavior of the {{Class|PowerInvisibility|Invisibility}} powerup&lt;br /&gt;
:*Telefrag option added to [[A_SpawnItemEx]].&lt;br /&gt;
:*Added option to [[A_Chase]] that prevents the monster from moving.&lt;br /&gt;
:*New {{c|allowrespawn}} MAPINFO option.&lt;br /&gt;
:*New [[scoreboard]]s.&lt;br /&gt;
:*New [[A_LookEx]] function.&lt;br /&gt;
:*Customizable [[team]]s through the [[TEAMINFO]] lump.&lt;br /&gt;
:*New {{CCMD|D|take}} console command to do the opposite of {{CCMD|D|give}}.&lt;br /&gt;
:*[[UseInventory]]/[[UseActorInventory]] [[ACS]] functions.&lt;br /&gt;
:*New [[A_CustomBulletAttack]] &#039;&#039;aimfacing&#039;&#039; parameter&lt;br /&gt;
:*New [[A_PlaySoundEx]] attenuation parameter.&lt;br /&gt;
:*[[Automap]] markers are stored in [[savegame]]s now.&lt;br /&gt;
:*&#039;No respawn&#039; [[DM flag]] which prevents a [[player]] from respawning after they have died.&lt;br /&gt;
:*&#039;Keep frags gained&#039; [[DM flag]] which allows you to choose whether you want to reset the [[frag]]s of each player next level or not.&lt;br /&gt;
:*Sector_Outside [[sector type]] which forces outside [[fog]] regardless of ceiling texture.&lt;br /&gt;
:*User-defined [[crosshair]]s in the [[Display options]] menu. See xhairs.txt in zdoom.pk3.&lt;br /&gt;
:*Generic log display that can show &#039;&#039;[[Strife]]&#039;&#039;&#039;s log messages in all games regardless of the current game, active [[status bar]] and [[HUD]] mode.&lt;br /&gt;
:*Support for stenciling actors with {{Property|RenderStyle}} property.&lt;br /&gt;
:*.TXT files can now be loaded by simply dragging-and-dropping them on top of zdoom.exe.&lt;br /&gt;
:*&#039;Ice&#039; [[translation]] is accessible from [[DECORATE]].&lt;br /&gt;
:*[[Teamplay]] MAPINFO option.&lt;br /&gt;
:*[[ACS]] script type [[RETURN]]. These are executed by players who return to a map they&#039;ve previously been to.&lt;br /&gt;
&lt;br /&gt;
==2009==&lt;br /&gt;
;{{LE|2.3.0}}{{rev|1455}} (March 1): {{Forum|t=21116|Release thread}} | {{versionlinks|2|3|0}}&lt;br /&gt;
:*[[Universal Doom Map Format]] (UDMF) support.&lt;br /&gt;
:*New garbage collector to improve performances on resource-intensive maps.&lt;br /&gt;
:*Sound uses [[FMOD Ex]] instead of FMOD. Among the benefits, [[REVERBS|reverbs]] can now work on any sound card, not just those that support EAX.&lt;br /&gt;
:*SPC is now a first-class [[music format]] that no longer requires an external DLL to play.&lt;br /&gt;
:*Support for [[Vavoom]]&#039;s [[slope|vertex height things]] and [[Eternity Engine]]&#039;s [[3D middle texture]]s.&lt;br /&gt;
:*[[Linked sectors]], to ensure that multiple [[sector]]s can move consistently in sync.&lt;br /&gt;
:*[[TEXTURES]] lump for text-based texture definitions.&lt;br /&gt;
:*[[Automatic compatibility|MD5-based recognition of maps]] that require certain [[compatibility options]] to work (e.g., {{dw|Strain}} map 7 which relied on the {{dw|Spechits overflow}} bug) to apply these settings transparently.&lt;br /&gt;
:*[[Freedoom]], [[Chex Quest]], and [[Chex Quest 3]] are recognized as [[IWAD]]s and can be selected in the [[IWAD selection box]]. New aliases are available for IWADs, too.&lt;br /&gt;
:*New [[MAPINFO]] format (the old is still supported of course) with a more robust syntax.&lt;br /&gt;
:*Custom [[map translator]]s for Doom-format maps, which can be specified in MAPINFO.&lt;br /&gt;
:*[[Strife]] dialogues now work in multiplayer.&lt;br /&gt;
:*Setting up slots for custom weapons no longer requires a [[KEYCONF]] lump, the limit of 8 weapons per slot is removed.&lt;br /&gt;
:*Added the &amp;quot;{{Class|RandomSpawner|random spawner}}&amp;quot; actor, customizable {{Class|BossEye}}s, {{Class|CustomBridge}}, {{Class|FastProjectile}}.&lt;br /&gt;
:*Many new [[compatibility options]], including one to have [[projectile]]s pass through solid decorations.&lt;br /&gt;
:*More flexible use of [[lightning]] in a map.&lt;br /&gt;
:*The two different [[crushing mode]]s (Doom and Hexen) are now selectable per action.&lt;br /&gt;
:*Customizable pickup flash with {{Property|Inventory.PickupFlash}} property.&lt;br /&gt;
:*[[DeHackEd]] music name replacement has been restored.&lt;br /&gt;
:*Rewritten DECORATE parser, more robust and featuring better error reporting. All actors are defined in DECORATE now.&lt;br /&gt;
:*Functions to handle [[weapon]] reloading through DECORATE.&lt;br /&gt;
:*New [[ACS]] functions: [[GetPlayerInput]], [[GetActorProperty|Get]]/[[SetActorProperty]].&lt;br /&gt;
:*Many actions are now more flexible through optional parameters, for example [[A_Die]] can specify damage type to send to a custom Death state, [[A_KeenDie]] can affect tags other than 666, [[A_Fire]] can specify a vertical offset, and so on.&lt;br /&gt;
:*Many, many new [[DMFlags]] for [[cooperative]] plays, such as having to kill all [[monster]]s before leaving the map or seeing the other [[player]]s on the [[automap]].&lt;br /&gt;
:*Enhanced &#039;&#039;[[Strife]]&#039;&#039; support.&lt;br /&gt;
:*Various and sundry bug fixes.&lt;br /&gt;
;{{LE|2.3.1}}{{rev|1480}} (March 15): {{Forum|t=21296|Release thread}} | {{versionlinks|2|3|1}}&lt;br /&gt;
:Mostly a bugfix release.&lt;br /&gt;
:*Fixes the bug that prevented you from switching weapons after respawning in multiplayer.&lt;br /&gt;
:*Fixes a performance regression introduced in 2.3.0.&lt;br /&gt;
:*Adds support for zip/pk3 files with LZMA and BZip2 compression. (7-Zip is one program that can create such files.)&lt;br /&gt;
:*Addresses a few other niggles.&lt;br /&gt;
&lt;br /&gt;
==2010==&lt;br /&gt;
;{{LE|2.4.0}}{{rev|2075}} (January 1): {{Forum|t=24602|Release thread}} | {{versionlinks|2|4|0}}&lt;br /&gt;
:*Rewritten [[archive format|archive]] management code.&lt;br /&gt;
::*Added support for new [[archive format]]s: 7z, &#039;&#039;Quake&#039;&#039; PAK, &amp;quot;Shrink&amp;quot; and &amp;quot;Implode&amp;quot;.&lt;br /&gt;
::*Removed loading limit of 65 535 lumps. The archive manager can now handle up to 4 294 967 295 lumps.&lt;br /&gt;
:*Rewritten mouse and keyboard handling input under Windows.&lt;br /&gt;
:*Reimplemented and improved support for gamepads and joysticks.&lt;br /&gt;
:*Added truecolor display of the [[HUD]], [[menu]]s and other 2D elements outside the game world when using [[Direct3D]] on Windows.&lt;br /&gt;
:*Replaced SNES_SPC with Game Music Emu, greatly increasing the number of supported emulated [[music format]]s.&lt;br /&gt;
:*Added compiling support for {{wp|Macintosh}} systems.&lt;br /&gt;
:*Added [[IWAD]] recognition for Ultimate [[Freedoom]], [[Action Doom 2: Urban Brawl|Action Doom 2]], [[Blasphemer]] and [[Harmony]].&lt;br /&gt;
:*Added {{param|-noautoload}}, {{param|-norun}}, {{param|-stdout}}, and {{param|-warpwipe}} command line parameters.&lt;br /&gt;
:*Added {{CVAR|C|save_dir}} and {{CVAR|R|d3d_antilag}} console variables.&lt;br /&gt;
:*Added optional parameters to {{CCMD|D|summon}} commands, added {{CCMD|D|summonmbf}} command.&lt;br /&gt;
:*Added {{CCMD|D|info}} command to obtain very verbose debugging information on actors.&lt;br /&gt;
:*Buddha mode&lt;br /&gt;
:*Added [[score]] and {{Class|ScoreItem}}s.&lt;br /&gt;
:*Added [[GameInfo definition]]s to [[MAPINFO]].&lt;br /&gt;
:*Changed random seed initialization so that it uses the system&#039;s cryptographically secure random number generator, if available, instead of the current time. Also changed the random number generator from Lee Killough&#039;s algorithm to the SFMT607 variant of the {{wp|Mersenne twister}}.&lt;br /&gt;
:*Disabled custom [[DEHSUPP]] lumps.&lt;br /&gt;
:*Added &#039;damage&#039; to the actor variables exported to [[DECORATE expressions|DECORATE&#039;s expression evaluator]].&lt;br /&gt;
:*Added &#039;frandom&#039; DECORATE function to the expression evaluator, which is like &#039;random&#039; but for floating point values instead of integers.&lt;br /&gt;
:*Added Raven color set and dagger-like vector sprite to the [[automap]].&lt;br /&gt;
:*Added desatured [[translation]]s.&lt;br /&gt;
:*[[SBARINFO]]: Added the ability to center things with fullscreenoffsets enabled, added [[underwater]] stats.&lt;br /&gt;
:*[[MAPINFO]]: Added [no_]grinding_polyobj, resetinventory properties, added EndTitle option for {{c|nextmap}}.&lt;br /&gt;
:*Added actor replacement to [[skill definition]]s.&lt;br /&gt;
:*Exported many hardcoded values to [[GameInfo definition]]s.&lt;br /&gt;
:*Added [[Line_SetBlocking]] and [[Sector_SetPortal]] specials.&lt;br /&gt;
:*Added {{c|defaultterrain}} section to [[TERRAIN]].&lt;br /&gt;
:*Added new [[earthquake]] functions.&lt;br /&gt;
:*Added [[user variable]]s.&lt;br /&gt;
:*[[DECORATE]]: Added {{Property|Species}}, {{Property|Activation}}, {{Property|PainThreshold}}, {{Property|PushFactor}}, {{Property|WeaveIndexXY}}, {{Property|WeaveIndexZ}}, {{Property|Powerup.Strength}}, {{Property|Player.MugShotMaxHealth}}, {{Property|Inventory.InterHubAmount}} properties.&lt;br /&gt;
:*Turned old bounce flags into {{Property|BounceType}} property.&lt;br /&gt;
:*Added {{Property|DamageFactor}} handling to Armors.&lt;br /&gt;
:*Added &amp;quot;BLUEMAP&amp;quot; [[palette blend]] for {{Property|Powerup.Color}}, and added {{Property|Powerup.Colormap}} for custom colormaps.&lt;br /&gt;
:*Added {{Flag|MOVEWITHSECTOR}}, {{Flag|NOBOSSRIP}}, {{Flag|THRUACTORS}}, {{Flag|THRUSPECIES}}, {{Flag|DONTSEEKINVISIBLE}}, {{Flag|FORCEPAIN}}, {{Flag|NOFEAR}}, {{Flag|BUMPSPECIAL}}, {{Flag|STEPMISSILE}}, {{Flag|NOTELEPORT}}, {{Flag|NOTRIGGER}},  {{Flag|AVOIDMELEE}}, {{Flag|JUMPDOWN}}, {{Flag|SCREENSEEKER}}, {{Flag|INVENTORY.PERSISTENTPOWER}}, {{Flag|WEAPON.AMMO_CHECKBOTH}}, {{Flag|WEAPON.NOAUTOAIM}} flags.&lt;br /&gt;
:*Added [[A_CheckCeiling]], [[A_MonsterRefire]], [[A_Weave]], [[A_JumpIfTargetInSight]], [[A_ZoomFactor]], [[A_SetAngle]], [[A_SetPitch]], [[A_ScaleVelocity]], [[A_ChangeVelocity]], [[A_SetCrosshair]], [[A_RemoveSiblings]], [[A_RaiseMaster]]/[[A_RaiseChildren|Children]]/[[A_RaiseSiblings|Siblings]], [[A_Log]], [[A_PrintBold]], [[A_SetArg]], [[A_SetSpecial]], [[A_Blast]] codepointers.&lt;br /&gt;
:*Added parameters to [[A_PodPain]], [[A_MakePod]], [[A_MLightningAttack]], [[A_M_Saw]], [[A_FireCustomMissile]], [[A_FadeOut]], [[A_Explode]], [[A_WeaponReady]], [[A_VileAttack]], [[A_Mushroom]], [[A_SeekerMissile]], [[A_KillChildren]]/[[A_KillMaster|Master]]/[[A_KillSiblings|Siblings]], [[A_CustomRailgun]] and [[A_RailAttack]], added SXF_TRANSFERPOINTERS flag to [[A_SpawnItemEx]] and several flags to [[A_Respawn]].&lt;br /&gt;
:*Imported {{Class|PowerDoubleFiringSpeed}} from [[Skulltag]], added {{Class|PowerInfiniteAmmo}}.&lt;br /&gt;
:*{{Class|PowerProtection}} and {{Class|PowerInvisibility}} can now be used to give certain flags to the player. Other enhancements to PowerInvisibility, such as changing the player&#039;s {{Property|RenderStyle}}.&lt;br /&gt;
:*Customizable mage lightning, sapphire wand, and {{Class|SpawnShot}} spawn lists.&lt;br /&gt;
:*[[ACS]]: compatibility fix for vanilla Hexen map where script execution order is critical.&lt;br /&gt;
:*Added [[GetActorVelX]]/[[GetActorVelY|Y]]/[[GetActorVelZ|Z]], [[SetActorVelocity]], [[GetActorViewHeight]], [[SetActivator]], [[SetActivatorToTarget]], [[GetChar]], [[SetSkyScrollSpeed]], [[GetAirSupply|Get]]/[[SetAirSupply]], [[GetArmorType]], [[CheckActorProperty]], [[CheckActorClass]], [[SoundSequenceOnActor]]/[[SoundSequenceOnSector|Sector]]/[[SoundSequenceOnPolyobj|Polyobj]], [[SpawnSpotForced]] and [[SpawnSpotFacingForced]].&lt;br /&gt;
:*Added ML_BLOCKUSE line flag, accessible through [[UDMF]] and [[Line_SetBlocking]].&lt;br /&gt;
:*Improved [[automatic compatibility]] with {{dw|Hacx}}, {{dw|Suspended in Dusk}}, {{dw|Community Chest}}, {{dw|Doomsday of UAC}}, {{dw|Strain}}, and the {{dw|Astrostein}} series.&lt;br /&gt;
:*[[Compatibility options]]: added Minotaur footclipped floor fire setting, sprite sorting order, [[MBF]]-style [[A_Mushroom]], monster movements affected by terrain, and friendly monsters able to cross blocking lines.&lt;br /&gt;
:*Added arch-vile &amp;quot;ghost&amp;quot; bug emulation for selected maps only.&lt;br /&gt;
:*Added several other MBF features, including {{Class|BetaSkull}}, [[A_FireOldBFG]], and [[DeHackEd]] support of MBF codepointers and actors.&lt;br /&gt;
:*Repaired accuracy of player behavior in &#039;&#039;[[Hexen]]&#039;&#039; with regards to [[jumping]] and pushing enemies away with attacks.&lt;br /&gt;
:*Fixed compatibility issues arising with [[Action Doom]].&lt;br /&gt;
:*Puffs now set their angle to face the originator of the attack.&lt;br /&gt;
:*Added SoulPriestess&#039; patch to force aspect ratio with {{CVAR|R|vid_aspect}}.&lt;br /&gt;
:*Added Spleen&#039;s patch to customize [[railgun]] performances with {{CVAR|R|r_rail_smartspiral}}, {{CVAR|R|r_rail_spiralsparsity}}, and {{CVAR|R|r_rail_trailsparsity}}.&lt;br /&gt;
:*[[UDMF]]: Added per-tier texture scaling with new [[sidedef]] properties and sidedef versions of [[linedef]] flags {{c|wrapmidtex}} and {{c|clipmidtex}}.&lt;br /&gt;
:*Improved [[sky]] projection and [[sky stretching]].&lt;br /&gt;
:*Updated Italian [[LANGUAGE|language]] file.&lt;br /&gt;
:*A whole lot more.&lt;br /&gt;
;{{LE|2.4.1}}{{rev|2126}} (January 24): {{Forum|t=24895|Release thread}} | {{versionlinks|2|4|1}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:*[[Floor_Waggle]] effects are smoother now.&lt;br /&gt;
:*Negative numbers in the [[alternate HUD]] have their minus sign at the right place now.&lt;br /&gt;
:*Menu option scales better in widescreen resolution.&lt;br /&gt;
:*[[Player setup]] menu looks better in non-Doom games.&lt;br /&gt;
:*Moving [[camera]]s work correctly again.&lt;br /&gt;
:*[[Polyobject]]s glitch a bit less now.&lt;br /&gt;
:*The internal nodebuilder works correctly now with certain troublesome maps.&lt;br /&gt;
:*&#039;&#039;[[Strife]]&#039;&#039; conversations fixed and improved.&lt;br /&gt;
:*Many nitpicky fixes in &#039;&#039;Strife&#039;&#039; (switch sounds, messages, etc.).&lt;br /&gt;
:*&#039;&#039;[[Action Doom 2]]&#039;&#039; and &#039;&#039;[[Harmony]]&#039;&#039; can now use idclev, and they have their Autoload section in [[the ini]].&lt;br /&gt;
:*[[MAPINFO]] {{c|ResetInventory}} keyword now works as expected.&lt;br /&gt;
:*The {{CVAR|C|norawinput}} console variable can be set to true to fix input problems while playing a Windows build through {{wp|Wine_(software)|Wine}}.&lt;br /&gt;
:*A [[character input grid]] is available to play ZDoom with a controller without having to use the keyboard.&lt;br /&gt;
:*Added [[GAMEINFO]] lump so that a mod can specify which [[IWAD]] and external resource files it uses.&lt;br /&gt;
;{{LE|2.5.0}}{{rev|2508}} (August 11): {{Forum|t=26755|Release thread}} | {{versionlinks|2|5|0}}&lt;br /&gt;
:*Enhanced [[polyobject]] system, allowing them to move anywhere in the map (like [[Eternity Engine|Eternity]]&#039;s &amp;quot;dynasegs&amp;quot;) and to give them any arbitrary shape. This is accompanied by new [[ACS]] polyobject movement functions.&lt;br /&gt;
:*Support for [[node|uncompressed extended nodes]], also supported by [[Eternity Engine]] and [[PrBoom+]], to create a new cross-port standard for node storage.&lt;br /&gt;
:*Support for using [[Byte Map Font]]s.&lt;br /&gt;
:*Ability to use metadata tags in audio formats to define custom loop points.&lt;br /&gt;
:*Added support for the [[MUSINFO]] lump (from [[Risen3D]] and [[PrBoom+]]).&lt;br /&gt;
:*Improved compatibility settings to allow optionally a greater faithfulness to the [[vanilla Doom]] and vanilla Heretic behaviors.&lt;br /&gt;
:*ZMAPINFO as an alias for [[MAPINFO]] to avoid compatibility problems with other ports parsing this lump.&lt;br /&gt;
:*Full rewrite of the [[SBARINFO]] system allowing many additional features and options.&lt;br /&gt;
:*Added support for multi-monitor display.&lt;br /&gt;
:*default reverbs environment setting in MAPINFO&lt;br /&gt;
:*Several generalized [[action functions|codepointers]] to emulate some very specific &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;[[Hexen]]&#039;&#039; action functions&lt;br /&gt;
:*New functions to refine actor behavior through&lt;br /&gt;
:*Enhanced [[poison]] damage system&lt;br /&gt;
:*Generalized [[railgun]] codepointers&lt;br /&gt;
:*New [[automap options]]&lt;br /&gt;
:*[[Hall of mirrors|HOM]] detection system&lt;br /&gt;
:*New [[console commands]]&lt;br /&gt;
:*The usual bug fixes and minor enhancements.&lt;br /&gt;
&lt;br /&gt;
==2011==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==2012==&lt;br /&gt;
;{{LE|2.6.0}}{{rev|3730}} (July 2): {{Forum|t=33295|Release thread}} | {{versionlinks|2|6|0}}&lt;br /&gt;
:*Added [[Hacx]] IWAD support.&lt;br /&gt;
:*Added text-format Strife conversation system with [[USDF]] and [[ZSDF]].&lt;br /&gt;
:*A textured [[automap]] is now available; automap graphics are now [[map arrow|externalized]].&lt;br /&gt;
:*Rewritten [[menu]] system, which can now be defined with the [[MENUDEF]] lump.&lt;br /&gt;
:*Externalized intermissions to [[MAPINFO]].&lt;br /&gt;
:*Externalized [[IWAD]] detection and gave each IWAD its own independent config section.&lt;br /&gt;
:*Added [[FluidSynth]] and [[GUS|GUS emulator]] softsynths; fixed issues with [[TiMidity++]].&lt;br /&gt;
:*Added [[VOC]] support and enhanced [[MIDI]] playback with support for alternative formats such as [[XMI]] and [[HMI]].&lt;br /&gt;
:*[[Action specials]]: Added [[Ceiling_LowerAndCrushDist]] and [[Thing_SetConversation]]. Added [[console command]] to execute specials.&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
::*Increased maximum script number from 999 to 32767.&lt;br /&gt;
::*[[Named script]]s allow to avoid script number conflicts.&lt;br /&gt;
::*Added [[StrCpy]], [[CheckSight]], [[SetActivator]], [[SetPointer]] functions.&lt;br /&gt;
::*Added [[ACS actor properties|APROP_ScaleX/Y]] and APROP_Mass actor properties.&lt;br /&gt;
::*Added temporary dynamic strings variables with [[StrParam]].&lt;br /&gt;
::*Scripts can now have up to four parameters.&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
::*Added [[A_CheckFlag]], [[A_FaceMaster]], [[A_FaceTracer]], [[A_RadiusGive]], [[A_SetMass]], [[A_SetScale]], [[A_Warp]] and [[A_WolfAttack]]...&lt;br /&gt;
::*Enhanced [[A_AlertMonsters]], [[A_BFGSpray]], [[A_Blast]], [[A_CustomBulletAttack]], [[A_FireBullets]], [[A_GunFlash]], [[A_PainAttack]], [[A_RadiusThrust]]...&lt;br /&gt;
::*Added an [[actor pointer]] manipulation system with several new codepointers...&lt;br /&gt;
::*Added {{Flag|DOHARMSPECIES}}, {{Flag|DONTCORPSE}}, {{Flag|SEEINVISIBLE}} and {{Flag|INVENTORY.UNTOSSABLE}}&lt;br /&gt;
::*Increased [[damage type]] flexibility in several ways with {{Property|DeathType}} and {{Property|PainType}}.&lt;br /&gt;
::*Added customizable {{Class|ArtiPoisonBag|fléchettes}}.&lt;br /&gt;
::*Made [[accuracy]] and [[stamina]] accessible through [[DECORATE expressions]].&lt;br /&gt;
::*Added {{Property|ProjectileKickback}}, {{Property|Inventory.RestrictedTo}} and {{Property|Inventory.ForbiddenTo}} class-based properties.&lt;br /&gt;
::*Backported {{Property|VisibleToTeam}}, {{Property|VisibleToPlayerClass}} and weapon {{Property|DropItem}} feature from [[Skulltag]], and enhanced them.&lt;br /&gt;
::*Added &amp;quot;Fast&amp;quot; keyword for states and deprecated the unreliable {{Flag|FASTER}} and {{Flag|FASTMELEE}} flags.&lt;br /&gt;
:*Added a [[SECRETS|secret hint system]].&lt;br /&gt;
:*[[3D floor]]s support.&lt;br /&gt;
:*[[FraggleScript]] support.&lt;br /&gt;
:*[[Voxel]] support.&lt;br /&gt;
:*[[SBARINFO]]: Ammo 1/2 capacities added to DrawNumber, support for color names in colored text.&lt;br /&gt;
:*[[SNDINFO]]: Added {{sndinfo|musicalias}} and {{sndinfo|attenuation}}.&lt;br /&gt;
:*Compatibility: fixed issues with {{dw|Eternal Doom}}, [[Happy Time Circus]], {{dw|Phobos_(WAD)|Phobos}}, vanilla compat, [[Boom]] compat, light levels higher than 255, [[Heretic]], [[Strife]], [[MUSINFO]], misnamed UDMF field.&lt;br /&gt;
:*Fixed loading of [[BMF]] palettes.&lt;br /&gt;
:*{{CCMD|O|restart}} console command.&lt;br /&gt;
:*Added [[PALVERS]] lump.&lt;br /&gt;
:*Custom [[IWAD]]s no longer need to include a [[COLORMAP]], as ZDoom will generate one automatically if it is missing.&lt;br /&gt;
:*Fixed vertical tiling of non-power-of-two textures.&lt;br /&gt;
:*Fixed blockmap overflows in huge maps with help from [[Mocha Doom|Maes]] and [[PrBoom+|Entryway]].&lt;br /&gt;
:*Joystick support for non-Windows platforms.&lt;br /&gt;
:*As always, a plethora of bug fixes and minor enhancements.&lt;br /&gt;
&lt;br /&gt;
;{{LE|2.6.1}}{{rev|3794}} (July 28): {{Forum|t=33547|Release thread}} | {{versionlinks|2|6|1}}&lt;br /&gt;
:*Added [[Hacx]] 2.0 IWAD support.&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
::*Added [[ACS_NamedExecuteWait]] and [[NamedScriptWait]].&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
::*Added {{Flag|INVENTORY.RESTRICTABSOLUTELY}} and {{Flag|PLAYERPAWN.CANSUPERMORPH}}.&lt;br /&gt;
:*[[MAPINFO]]:&lt;br /&gt;
::*Added RandomPlayerStarts and UsePlayerStartZ flags for [[map definition]]s.&lt;br /&gt;
:*Solved compatibility issue with [[Massmouth 2]].&lt;br /&gt;
:*[[Voxel]]s are now rotated by 90° to match their orientation in Slab6 and [[Build]] games.&lt;br /&gt;
&lt;br /&gt;
==2013==&lt;br /&gt;
;{{LE|2.7.0}}{{rev|4342}} (June 8): {{Forum|t=36456|Release thread}} | {{versionlinks|2|7|0}}&lt;br /&gt;
:*Added [[Floor_RaiseAndCrushDoom]].&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
::*Made dynamic strings persistent. ACS can now safely generate up to one million new strings.&lt;br /&gt;
::*Added [[CheckFont]], [[GetCVarString]], [[GetUserCVar]], [[GetUserCVarString]], [[IsTIDUsed]], [[LineAttack]], [[SetCVar]], [[SetCVarString]], [[SetUserCVar]], [[SetUserCVarString]], [[SpawnDecal]], and [[UniqueTID]].&lt;br /&gt;
::*Added HUD layers, visibility flags, additive blending, and alpha parameter to [[HudMessage]] and [[HudMessageBold]].&lt;br /&gt;
::*Also added HUD message wrapping and clipping with [[SetHudClipRect]] and [[SetHudWrapWidth]].&lt;br /&gt;
::*Added PLAYERINFO_FOV and _DESIREDFOV to [[GetPlayerInfo]].&lt;br /&gt;
::*Added support for desaturated [[translation]]s.&lt;br /&gt;
::*Added [[Sqrt]], [[FixedSqrt]], and [[VectorLength]] functions.&lt;br /&gt;
::*Support for advanced structures from non-ACC compilers.&lt;br /&gt;
::*Added the ability to retrieve the {{Property|ReactionTime}}, {{Property|Height}} and {{Property|Radius}} properties through [[GetActorProperty]].&lt;br /&gt;
::*Added CHANGELEVEL_PRERAISEWEAPON to [[ChangeLevel]].&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
::*{{Flag|FLOATBOB}} things are no longer moved physically when bobbing.&lt;br /&gt;
::*Added {{Property|Player.FallingScreamSpeed}}, {{Property|Player.GruntSpeed}}, {{Property|Weapon.MinSelectionAmmo1}}, and {{Property|Weapon.MinSelectionAmmo2}}.&lt;br /&gt;
::*Added random state duration and [[A_SetTics]].&lt;br /&gt;
::*[[A_Explode]]&#039;s &#039;&#039;affectsource&#039;&#039; parameter has been turned into a flag. Plus, added NOTMISSILE flag to A_Explode as well as to [[A_RadiusThrust]].&lt;br /&gt;
::*[[A_RadiusThrust]] can use negative &#039;&#039;force&#039;&#039; values.&lt;br /&gt;
::*Added [[A_JumpIfTargetInsideMeleeRange]], [[A_JumpIfTargetOutsideMeleeRange]], [[A_SetDamageType]], and [[A_CheckLOF]].&lt;br /&gt;
::*Added {{Flag|INVENTORY.NEVERRESPAWN}}, {{Flag|INVENTORY.NOSCREENFLASH}}, {{Flag|POWERSPEED.NOTRAIL}}, and {{Flag|PLAYERPAWN.CROUCHABLEMORPH}}.&lt;br /&gt;
::*Added JLOSF_NOAUTOAIM flag to [[A_JumpIfTargetInLOS]].&lt;br /&gt;
::*Added WRF_DISABLESWITCH to [[A_WeaponReady]].&lt;br /&gt;
::*[[A_Light]] can use negative values to darken the scene.&lt;br /&gt;
::*Added NORANDOMPUFFZ flag to [[A_CustomPunch]], [[A_FireBullets]], and [[A_CustomBulletAttack]].&lt;br /&gt;
::*Added SXF_USEBLOODCOLOR, SXF_CLEARCALLERTID, SXF_MULTIPLYSPEED, SXF_TRANSFERSCALE, SXF_TRANSFERSPECIAL, and SXF_CLEARCALLERSPECIAL flags to [[A_SpawnItemEx]].&lt;br /&gt;
::*Added the ability to adjust the vertical offset of a rail attack to [[A_RailAttack]] and [[A_CustomRailgun]].&lt;br /&gt;
::*Player-fired seeker [[Projectile|missiles]]&#039; range at which the missiles initially lock-on a [[Actor pointer|tracer]] can be set via {{Property|MaxTargetRange}} actor property.&lt;br /&gt;
::*{{Property|ReactionTime}} added to [[DECORATE expressions]].&lt;br /&gt;
::*Added [[Actor states#NoDelay|NoDelay]] state flag.&lt;br /&gt;
::*Added [[Actor_states#States|Bounce]] actor states.&lt;br /&gt;
::*Fixed few cases of DECORATE definitions inaccuracies for [[Doom]], [[Heretic]], [[Hexen]] and [[Strife]] actors.&lt;br /&gt;
:*[[FONTDEFS]]: Backported SPACEWIDTH from [[ECWolf]].&lt;br /&gt;
:*[[LANGUAGE]]: Brazilian Portuguese support.&lt;br /&gt;
:*[[MAPINFO]]: Added ForgetState, RememberState, and SpawnWithWeaponRaised flags for [[map definition]]s and NoRandomPlayerclass for [[GameInfo definition]]s.&lt;br /&gt;
:*[[MIDI]]: [[FluidSynth]] now recognize {{c|libfluidsynth.dll}} as a valid alias for {{c|fluidsynth.dll}}, various FluidSynth [http://forums.scummvm.org/viewtopic.php?p=72972#72972 tweaks] and fixes. The [[OPL emulator]] now can use either OPL2 or OPL3 emulation, supports full stereo panning and can use up to eight virtual chips.&lt;br /&gt;
:*Updated [[foo_DUMB]].&lt;br /&gt;
:*Implemented additive rendering for [[3D floor]]s.&lt;br /&gt;
:*Added &#039;&#039;{{wp|Quake (video game)|Quake}}&#039;&#039;-like no-clipping with {{CCMD|D|noclip2}}.&lt;br /&gt;
:*Exported the [[scoreboard]] text to [[LANGUAGE]].&lt;br /&gt;
:*The sound system should now precache nearly all sounds used by actor properties and [[ambient sound]]s, and the [[MAPINFO/Map definition|MAPINFO]] command &amp;quot;PrecacheSounds&amp;quot; can be used to precache other sounds.&lt;br /&gt;
:*Arbitrary FPS cap with {{CVAR|R|vid_maxfps}}.&lt;br /&gt;
:*Increased maximum resolution to 5760&amp;amp;times;3600.&lt;br /&gt;
:*Added {{c|lightfog}} property for [[sidedef]]s.&lt;br /&gt;
:*Added support for {{dw|Doom 3: BFG Edition}}&#039;s modified [[IWAD]]s, including {{dw|No Rest for the Living}}.&lt;br /&gt;
:*Improved [[WAD]] archive code with support for big-endian format and LZSS compression used in several console ports.&lt;br /&gt;
:*Added ability in [[UDMF]] to specify things to spawn by [[:Category:Thing specials|thing specials]] and [[Hexen breakable items]] by names with {{c|arg1str}}, as well as the ability to set initial values to a thing&#039;s [[user variable]].&lt;br /&gt;
:*Added new [[node]] format for complex UDMF maps which need fractional precision on node splitters.&lt;br /&gt;
:*The [[alternate HUD]] now features a {{Class|Berserk}} indicator and a customizable time display.&lt;br /&gt;
:*Tweaked {{Class|ScriptedMarine|scripted marines}}.&lt;br /&gt;
:*Added {{c|{{CCMD|D|acsprofile}}}} [[CCMDs|console command]].&lt;br /&gt;
:*[[Weapon slots]] can be configured from the [[Customize controls]] menu.&lt;br /&gt;
:*Solved compatibility issues with [[Daedalus: Alien Defense]], {{dw|Community Chest 3}}, Nuke Mine, Khorus, [[Void]], the {{dw|Master Levels}}, and {{dw|Claustrophobia 1024}}.&lt;br /&gt;
:*{{Class|RandomSpawner}}s now respect {{param|nomonsters}}.&lt;br /&gt;
:*Added the ability to define mod-specific [[CVARs|console variables]] through the addition of the [[CVARINFO]] lump.&lt;br /&gt;
:*Fixed miscellaneous bugs.&lt;br /&gt;
&lt;br /&gt;
;{{LE|2.7.1}}{{cs|21efe3b}} (July 3): {{Forum|t=36679|Release thread}} | {{versionlinks|2|7|1}}&lt;br /&gt;
&#039;&#039;Note: this is the first version based on the [[Git repository]]; 2.7.0 was the last version based on the SVN repository.&#039;&#039;&lt;br /&gt;
* Added new additive [[MAPINFO/GameInfo definition|GameInfo]] keywords: AddCreditPage, AddPlayerClasses, and AddInfoPage.&lt;br /&gt;
* Added a new {{Flag|DONTDRAIN}} flag to mark actors as ineligible for vampirism attacks.&lt;br /&gt;
* [[Automatic compatibility|Compatibility]] fixes for [[Ultimate Simplicity]] map07, [[Cheogsh]] map01, [[Super Sonic Doom]] map31&lt;br /&gt;
* [[Polyobject]] mirror numbers can no longer be changed with [[SetLineSpecial]]. This was never a supported feature and caused problems for legitimate uses of SetLineSpecial on polyobject lines.&lt;br /&gt;
* The powered-up {{Class|GoldWand|Gold Wand}} was not puffing on actors.&lt;br /&gt;
* Disabled [[Heretic]]&#039;s punishment [[cheat]]s when in {{CVAR|C|allcheats}} mode.&lt;br /&gt;
* Objects that explode on death no longer deal the damage they were dealt instead of their own.&lt;br /&gt;
* Vampirism attacks now respect damage reduction.&lt;br /&gt;
* [[Demo]] recording now writes correct user info to demos.&lt;br /&gt;
* ACS&#039;s [[PlaySound]] for looping sounds now works properly when using channel flags.&lt;br /&gt;
&lt;br /&gt;
==2014==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==2015==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==2016==&lt;br /&gt;
;{{LE|2.8.0}}{{cs|56359b6}} (February 3): {{Forum|t=50712|Release thread}} | {{versionlinks|2|8|0}}&lt;br /&gt;
:*Improved netcode and added [[network options]] menu to configure new features.&lt;br /&gt;
:*Native Cocoa back end for OS X resulting in significant increases in performance over SDL in addition to better overall user experience.&lt;br /&gt;
:*Added a new [[software synthesizer]], [[WildMIDI]], and a new [[OPL]] core.&lt;br /&gt;
:*Two new cheats, god2 and buddha2. The player cannot die from telefrag damage with these.&lt;br /&gt;
:*Four new keybinds for DECORATE use with weapons (see {{c|[[A_WeaponReady]]}}&#039;s User states.)&lt;br /&gt;
:*Overhauled [[sector type]]s and properties. Sectors have several new UDMF properties.&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
:**Added {{c|[[DropItem]]}}, {{c|[[DropInventory]]}}, {{c|[[CheckFlag]]}}, {{c|[[GetLineActivation]]}}, {{c|[[GetMaxInventory]]}}, {{c|[[SetLineActivation]]}}, {{c|[[GetArmorInfo]]}}, {{c|[[GetActorPowerupTics]]}}, {{c|[[IsPointerEqual]]}}, {{c|[[ChangeActorAngle]]}}, {{c|[[ChangeActorPitch]]}}, {{c|[[PickActor]]}}, {{c|[[SetSectorDamage]]}}, {{c|[[QuakeEx]]}}, {{c|[[Warp]]}} and {{c|[[CanRaiseActor]]}}  functions.&lt;br /&gt;
:**Added FHF_NORANDOMPUFFZ flag for {{c|[[LineAttack]]}}.&lt;br /&gt;
:**Added BLOCKF_HITSCAN flag for {{c|[[Line_SetBlocking]]}}.&lt;br /&gt;
:**Added {{c|APROP_ViewHeight}}, {{c|APROP_AttackZOffset}} and {{c|APROP_StencilColor}} [[ACS actor properties]].&lt;br /&gt;
:**Fixed potential desync with {{c|[[CheckPlayerCamera]]}}.&lt;br /&gt;
:**Fixed: {{c|[[Thing_SetGoal]]}} could put an actor&#039;s target and goal out of sync.&lt;br /&gt;
:**{{c|[[GetSectorFloorZ]]}} and {{c|[[GetSectorCeilingZ]]}} now interpret 0-tag as &#039;any sector&#039; and return the z-height of whatever sector is at those coordinates.&lt;br /&gt;
:**[[Arrays]] are now supported at the script scope.&lt;br /&gt;
:*[[ANIMDEFS]]:&lt;br /&gt;
:**Added an optional {{c|worldpanning}} flag for camera textures definitions in order to make camera textures pan in world units instead of texture units.&lt;br /&gt;
:**Added {{c|allowdecals}} option to animated doors.&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
:**Added {{c|{{Property|Player.UseRange}}}} and {{c|{{Property|Player.AirCapacity}}}} [[player properties]].&lt;br /&gt;
:**The following functions have been given additional functionalities: {{c|[[A_AlertMonsters]]}}, {{c|[[A_BFGSpray]]}}, {{c|[[A_ChangeVelocity|A_Change]]/[[A_ScaleVelocity|ScaleVelocity]]}}, {{c|[[A_CustomPunch]]}}, {{c|[[A_SetAngle]]}} and {{c|[[A_SetPitch]]}}, {{c|[[A_DamageMaster]]/[[A_DamageChildren|Children]]/[[A_DamageSiblings|Siblings]]}}, {{c|[[A_KillMaster]]/[[A_KillChildren|Children]]/[[A_KillSiblings|Siblings]]}}, {{c|[[A_Log]]}}, {{c|[[A_Print]]}}, {{c|[[A_PrintBold]]}}, {{c|[[A_RadiusGive]]}}, {{c|[[A_Saw]]}}, {{c|[[A_SetScale]]}}, {{c|[[A_SetTics]]}}, {{c|[[A_SpawnItemEx]]}}, {{c|[[A_Teleport]]}}, {{c|[[A_VileAttack]]}}, {{c|[[A_Warp]]}}, {{c|[[A_WeaponReady]]}}.&lt;br /&gt;
:**Added {{Flag|NOFORWARDFALL}}, {{Flag|NOTONAUTOMAP}}, {{Flag|RELATIVETOFLOOR}}, {{Flag|NEVERTARGET}}, {{Flag|NOTELESTOMP}}, {{Flag|ALWAYSTELEFRAG}}, {{Flag|ALLOWPAIN}}, {{Flag|CAUSEPAIN}}, {{Flag|DONTTHRUST}}, {{Flag|BUDDHA}}, {{Flag|FOILBUDDHA}}, {{Flag|MIRRORREFLECT}}, {{Flag|AIMREFLECT}}, {{Flag|THRUREFLECT}}, {{Flag|HARMFRIENDS}}, {{Flag|NOFORWARDFALL}}, {{Flag|HITTARGET}}, {{Flag|HITMASTER}}, {{Flag|HITTRACER}}, {{Flag|WEAPONSPAWN}} and {{Flag|INVENTORY.TOSSED}} [[actor flags]].&lt;br /&gt;
:**{{Flag|MTHRUSPECIES}} now works with [[A_BFGSpray]] and rail attacks.&lt;br /&gt;
:**Added {{c|[[A_DamageSelf]]/[[A_DamageTarget|Target]]/[[A_DamageTracer|Tracer]]}}, {{c|[[A_Remove]]/[[A_RemoveSiblings|Siblings]]/[[A_RemoveTarget|Target]]/[[A_RemoveTracer|Tracer]]}}, {{c|[[A_KillTarget]]/[[A_KillTracer|Tracer]]}}, {{c|[[A_DropItem]]}}, {{c|[[A_SetSpeed]]}}, {{c|[[A_SetHealth]]}}, {{c|[[A_ResetHealth]]}}, {{c|[[A_SetFloatBobPhase]]}}, {{c|[[A_SetRoll]]}}, {{c|[[A_SetTeleFog]]}}, {{c|[[A_GiveToChildren|A_GiveTo]]/[[A_TakeFromChildren|TakeFromChildren]]}}, {{c|[[A_GiveToSiblings|A_GiveTo]]/[[A_TakeFromSiblings|TakeFromSiblings]]}}, {{c|[[A_JumpIfHigherOrLower]]}},  {{c|[[A_SetFloatSpeed]]}}, {{c|[[A_SetSpecies]]}}, {{c|[[A_CheckBlock]]}}, {{c|[[A_CheckProximity]]}}, and {{c|[[A_QuakeEx]]}} [[action functions]].&lt;br /&gt;
:**Players with the NODAMAGE flag cannot be telefragged anymore, nor can they take any damage via voodoo dolls.&lt;br /&gt;
:**The amount of health regeneration gained from a {{c|{{Class|PowerRegeneration}}}} powerup can be controlled with the {{c|{{Property|Powerup.Strength}}}} property.&lt;br /&gt;
:**Improved the {{c|[[Actor states#NoDelay|NoDelay]]}} state flag reliability.&lt;br /&gt;
:**Added {{c|Subtract}} render style.&lt;br /&gt;
:**Different types of {{Class|HereticImp|gargoyles}} and {{Class|Mummy|golems}} could infight amongst themselves (original &#039;&#039;[[Heretic]]&#039;&#039; behavior).&lt;br /&gt;
:**Added {{c|[[Actor states#CanRaise|CanRaise]]}} and {{c|[[Actor states#Slow|Slow]]}} actor [[actor states#State keywords|state flags]].&lt;br /&gt;
:*[[LANGUAGE]]:&lt;br /&gt;
:**Externalized &amp;quot;New save game&amp;quot; line for save screen, and [[automap]] statistics display.&lt;br /&gt;
:*[[MAPINFO]]:&lt;br /&gt;
:**Custom colors for both modes of the automap can be set on per-mod basis.&lt;br /&gt;
:**Added {{c|SlowMonsters}}, {{c|HealthFactor}}, {{c|NoInfighting}} and {{c|TotalInfighting}} [[skill definition]]s property.&lt;br /&gt;
:*[[SBARINFO]]:&lt;br /&gt;
:**Extended {{c|[[DrawImage]]}} command.&lt;br /&gt;
:*[[SNDINFO]]:&lt;br /&gt;
:**Fixed incorrect {{Class|Minotaur|Maulotaur}} melee attack sound.&lt;br /&gt;
:*Added [[Ceiling_CrushAndRaiseSilentDist]]&lt;br /&gt;
:*Added a user-settable factor for [[earthquake]] intensity.&lt;br /&gt;
:*New type of [[earthquake]], can only be accessed with [[A_QuakeEx]] or its [[QuakeEx|ACS equivalent]], which can replicate the shaking effect seen in many recent games instead of random camera offsets using the QF_WAVE flag. Quakes can now be scaled in, out, or mixed up. Both wave and regular quakes work together.&lt;br /&gt;
:*Non-countable monster actors can have their own separate automap color.&lt;br /&gt;
:*Added a {{c|{{CCMD|O|closemenu}}}} [[CCMDs|console command]], so that menu options that close the [[menu]] can be added.&lt;br /&gt;
:*Menu&#039;s back button and the pause sign can be animated.&lt;br /&gt;
:*Added {{c|blockhitscan}} and {{c|transparent}} [[linedef|line]] properties, {{c|waterzone}} [[sector]] property, and {{c|alpha}}, {{c|fillcolor}}, {{c|gravity}}, {{c|health}}, {{c|pitch}}, {{c|renderstyle}}, {{c|roll}}, {{c|scale}}, {{c|scalex}}, {{c|scaley}} and {{c|score}} [[thing]] properties for [[Universal Doom Map Format|UDMF]].&lt;br /&gt;
:*Extended {{c|{{CVAR|A|am_cheat}}}} with three modes to prevent lines flagged as &#039;&#039;hidden&#039;&#039; from being shown on the automap.&lt;br /&gt;
:*Added separate colors for the various types of 2-sided walls for the overlay automap, as well as colors missing from that mode.&lt;br /&gt;
:*The behavior of auto-loading external [[DEHACKED]] lumps can be controlled by setting the {{c|dehload}} [[CVARs|console variable]].&lt;br /&gt;
:*Results for console tab-completion are now color-coded; console commands appear blue, console variables green, and aliases red.&lt;br /&gt;
:*Actors sprites can be shown on the automap instead of simple triangles when the second, third, fifth or sixth modes of {{c|am_cheat}} console variable are enabled.&lt;br /&gt;
:*Added compatibility settings for &#039;&#039;[[Cheogsh 2]]&#039;&#039; and &#039;&#039;XtheaterIII&#039;&#039;.&lt;br /&gt;
:*Fixed: the {{c|{{CVAR|R|wi_noautostartmap}}}} console variable was not sync-safe.&lt;br /&gt;
:*Added {{c|{{CVAR|C|sv_freelook}}}}, {{c|{{CVAR|C|sv_allowfreelook}}}} and {{c|{{CVAR|C|sv_nofreelook}}}}&lt;br /&gt;
:*Added support for standard file paths on Windows.&lt;br /&gt;
:*Removed [[Polymost]] code.&lt;br /&gt;
:*Fixed miscellaneous bugs.&lt;br /&gt;
&lt;br /&gt;
==Next version==&lt;br /&gt;
The following additions are available in [[Git]] builds, but not yet in an official version.&lt;br /&gt;
&lt;br /&gt;
:* The scripting branch, which lays some groundwork for DoomScript™.&lt;br /&gt;
:** [[DECORATE]] states can contain multiple action functions enclosed in braces, and can use &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; blocks.&lt;br /&gt;
:* {{Forum|t=46916|Portals}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://sourceforge.net/projects/zdoom/files/ Sourceforge archive] Unofficial mirror for ZDoom versions&lt;br /&gt;
* [https://github.com/doomtech/zdoom-old GitHub archive] Unofficial repository of pre-SVN source code&lt;br /&gt;
[[Category:Nostalgia]][[Category:ZDoom]]&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=ZDoom_version_history&amp;diff=40816</id>
		<title>ZDoom version history</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=ZDoom_version_history&amp;diff=40816"/>
		<updated>2016-02-06T01:21:06Z</updated>

		<summary type="html">&lt;p&gt;Eevee: 2.8.0 release, woo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page tracks the evolution of [[ZDoom]] by listing the main features of each version.&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!By year&lt;br /&gt;
|[[#1998|1998]] &amp;amp;middot; [[#1999|1999]] &amp;amp;middot; [[#2000|2000]] &amp;amp;middot; [[#2001|2001]] &amp;amp;middot; [[#2002|2002]] &amp;amp;middot; [[#2003|2003]] &amp;amp;middot; [[#2004|2004]] &amp;amp;middot; [[#2005|2005]] &amp;amp;middot; [[#2006|2006]] &amp;amp;middot; [[#2007|2007]] &amp;amp;middot; [[#2008|2008]] &amp;amp;middot; [[#2009|2009]] &amp;amp;middot; [[#2010|2010]] &amp;amp;middot; [[#2011|2011]] &amp;amp;middot; [[#2012|2012]] &amp;amp;middot; [[#2013|2013]] &amp;amp;middot; [[#2014|2014]] &amp;amp;middot; [[#2015|2015]]&lt;br /&gt;
|-&lt;br /&gt;
!1.x Branch&lt;br /&gt;
|[[#1.11|1.11]] &amp;amp;middot; [[#1.12|1.12]] &amp;amp;middot; [[#1.13|1.13]] &amp;amp;middot; [[#1.14|1.14]] &amp;amp;middot; [[#1.14a|1.14a]] &amp;amp;middot; [[#1.16|1.16]] &amp;amp;middot; [[#1.17|1.17]] &amp;amp;middot; [[#1.17a|1.17a]] &amp;amp;middot; [[#1.17b|1.17b]] &amp;amp;middot; [[#1.17b1|1.17b1]] &amp;amp;middot; [[#1.17c|1.17c]] &amp;amp;middot; [[#1.18|1.18]] &amp;amp;middot; [[#1.18a|1.18a]] &amp;amp;middot; [[#1.18b|1.18b]] &amp;amp;middot; [[#1.19|1.19]] &amp;amp;middot; [[#1.20|1.20]] &amp;amp;middot; [[#1.21|1.21]] &amp;amp;middot; [[#1.22|1.22]] &amp;amp;middot; [[#1.23 Beta|1.23 Beta]] &amp;amp;middot; [[#1.23 Beta 19|1.23 Beta 19]] &amp;amp;middot; [[#1.23 Beta 20|1.23 Beta 20]] &amp;amp;middot; [[#1.23 Beta 23|1.23 Beta 23]] &amp;amp;middot; [[#1.23 Beta 24|1.23 Beta 24]] &amp;amp;middot; [[#1.23 Beta 25|1.23 Beta 25]] &amp;amp;middot; [[#1.23 Beta 33|1.23 Beta 33]]&lt;br /&gt;
|-&lt;br /&gt;
!2.0 Branch&lt;br /&gt;
|[[#2.0 Beta 13|2.0 Beta 13]] &amp;amp;middot; [[#2.0.47|2.0.47]] &amp;amp;middot; [[#2.0.47i|2.0.47i]] &amp;amp;middot; [[#2.0.48|2.0.48]] &amp;amp;middot; [[#2.0.49|2.0.49]] &amp;amp;middot; [[#2.0.50|2.0.50]] &amp;amp;middot; [[#2.0.51|2.0.51]] &amp;amp;middot; [[#2.0.52|2.0.52]] &amp;amp;middot; [[#2.0.53|2.0.53]] &amp;amp;middot; [[#2.0.54|2.0.54]] &amp;amp;middot; [[#2.0.55|2.0.55]] &amp;amp;middot; [[#2.0.56|2.0.56]] &amp;amp;middot; [[#2.0.57|2.0.57]] &amp;amp;middot; [[#2.0.58|2.0.58]] &amp;amp;middot; [[#2.0.59|2.0.59]] &amp;amp;middot; [[#2.0.60|2.0.60]] &amp;amp;middot; [[#2.0.61|2.0.61]] &amp;amp;middot; [[#2.0.62|2.0.62]] &amp;amp;middot; [[#2.0.63|2.0.63]] &amp;amp;middot; [[#2.0.64|2.0.64]] &amp;amp;middot; [[#2.0.90|2.0.90]] &amp;amp;middot; [[#2.0.91|2.0.91]] &amp;amp;middot; [[#2.0.92|2.0.92]] &amp;amp;middot; [[#2.0.93|2.0.93]] &amp;amp;middot; [[#2.0.94|2.0.94]] &amp;amp;middot; [[#2.0.95|2.0.95]] &amp;amp;middot; [[#2.0.96|2.0.96]] &amp;amp;middot; [[#2.0.97|2.0.97]] &amp;amp;middot; [[#2.0.98|2.0.98]]&lt;br /&gt;
|-&lt;br /&gt;
!2.1 Branch&lt;br /&gt;
|[[#2.1.0|2.1.0]] &amp;amp;middot; [[#2.1.1|2.1.1]] &amp;amp;middot; [[#2.1.2|2.1.2]] &amp;amp;middot; [[#2.1.3|2.1.3]] &amp;amp;middot; [[#2.1.3|2.1.3]] &amp;amp;middot; [[#2.1.4|2.1.4]] &amp;amp;middot; [[#2.1.5|2.1.5]] &amp;amp;middot; [[#2.1.6|2.1.6]] &amp;amp;middot; [[#2.1.7|2.1.7]]&lt;br /&gt;
|-&lt;br /&gt;
!Modern&lt;br /&gt;
|[[#2.2.0|2.2.0]] &amp;amp;middot; [[#2.3.0|2.3.0]] &amp;amp;middot; [[#2.3.1|2.3.1]] &amp;amp;middot; [[#2.4.0|2.4.0]] &amp;amp;middot; [[#2.4.1|2.4.1]] &amp;amp;middot; [[#2.5.0|2.5.0]] &amp;amp;middot; [[#2.6.0|2.6.0]] &amp;amp;middot; [[#2.6.1|2.6.1]] &amp;amp;middot; [[#2.7.0|2.7.0]] &amp;amp;middot; [[#2.7.1|2.7.1]] &amp;amp;middot; [[#2.8.0|2.8.0]] &amp;amp;middot; [[#Next version|Next version]]&lt;br /&gt;
|}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
==1998==&lt;br /&gt;
;{{LE|1.11}} (March 6): {{Plainlink|[http://www.zdoom.org/files/old/zdoom111.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom111s.zip Source]}}&lt;br /&gt;
:Initial release, based on the [[NTDoom]] and [[ATB Doom]]. The version numbering follows from the Doom source code version numbering of 1.10.&lt;br /&gt;
:* Works under both Windows 95 and NT 4.0, although it works best under Win95.&lt;br /&gt;
:* Limited support for the Pause key. It works with some keyboards on some machines.&lt;br /&gt;
:* Supports any resolution compatible with your DirectDraw drivers.&lt;br /&gt;
:* Look up/down à la &#039;&#039;[[Heretic]]&#039;&#039;.&lt;br /&gt;
:* Translucency for selected objects.&lt;br /&gt;
:* Has a [[console]] with most of the functionality of &#039;&#039;Quake&#039;&#039;&#039;s. The only significant missing feature is Tab-completion.&lt;br /&gt;
:* Notarget [[cheat]].&lt;br /&gt;
:* Command to {{CCMD|D|kill}} all [[monster]]s in a level or yourself.&lt;br /&gt;
:* Can play [[MUS]], [[MIDI]], and MOD music.&lt;br /&gt;
:* Selected sounds are played in surround sound.&lt;br /&gt;
:* Doors that need keys to open are highlighted on the [[automap]].&lt;br /&gt;
:* Automap now shows various statistics in addition to the level name.&lt;br /&gt;
:* True keybindings. Bind any key to any command or sequence of commands.&lt;br /&gt;
:* [[Intermission]] screen can now display your stats using absolute values rather than percentages.&lt;br /&gt;
:* A new more general [[demo]] format.&lt;br /&gt;
;{{LE|1.12}} (April 7): {{Plainlink|[http://www.zdoom.org/files/old/zdoom112.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom112s.zip Source]}}&lt;br /&gt;
:* Some visual enhancements were made such as centering the menus and drawing borders around the status bar in higher resolutions.&lt;br /&gt;
:* [[Console command]]s can now be specified on the [[command line parameters|command line]].&lt;br /&gt;
:* Removed some of [[Doom]]&#039;s limits such as VisPlanes, VisSprites, and 2S [[HOM]].&lt;br /&gt;
:* Rewrote some of the inner loops in assembly. (There was some assembly in 1.11, but it never got used.)&lt;br /&gt;
:* New [[CVAR]]s relating to mouse movement. ({{CVAR|C|invertmouse}}, {{CVAR|C|m_pitch}}, {{CVAR|C|m_yaw}}, etc.)&lt;br /&gt;
:* Mouse movement doesn&#039;t get sluggish in high resolutions.&lt;br /&gt;
:* [[Automap]] colors are customizable.&lt;br /&gt;
:* Automap overlay and rotation are available.&lt;br /&gt;
:* Eight [[crosshair]]s.&lt;br /&gt;
:* Shoot up/down.&lt;br /&gt;
:* Alt-Tab and Pause work properly on all machines now.&lt;br /&gt;
:* The {{CCMD|P|+jump}} command now works.&lt;br /&gt;
:* 25% and 75% translucency levels in addition to 50%. The translucency tables now get saved to disk, too, so they only need to be calculated once instead of every time the game is run.&lt;br /&gt;
:* The [[console]] [[font]] is now editable.&lt;br /&gt;
:* Near complete support for [[DeHackEd]] patches. (Only monster infighting and changing a few minor text strings are not supported.)&lt;br /&gt;
:* Sky height and position is now fixed for high resolutions. (It still wraps if you look up, but at least now if you look straight ahead, it never will.)&lt;br /&gt;
:* Weapon sprite is always drawn at the correct location. (It was being drawn too low in some resolutions like 400x300.)&lt;br /&gt;
:* New [[options menu]], which includes a key configuration screen.&lt;br /&gt;
:* [[Stealth monster]]s.&lt;br /&gt;
:* New full-screen [[HUD]].&lt;br /&gt;
:* And a few other things not worth mentioning separately.&lt;br /&gt;
;{{LE|1.13}} (May 26):{{forum|t=4|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom113.zip Build]}}&lt;br /&gt;
:* Fixed some major bugs (that crashed the game) and other lesser bugs that were just annoying.&lt;br /&gt;
:* 3-D collisions for walking under and standing on other things.&lt;br /&gt;
:* The status bar can be scaled to the full width of the screen.&lt;br /&gt;
:* The screen mode can be selected from a menu inside the game.&lt;br /&gt;
:* ZDoom can run in a window on the desktop.&lt;br /&gt;
:* Better [[DeHackEd]] support. Only a few text replacements are not supported. Everything else works (including monster infighting which I haven&#039;t seen in any other port).&lt;br /&gt;
:* New features for level designers (see editing.txt for details):&lt;br /&gt;
::*Specification of next and secret maps on a per-map basis.&lt;br /&gt;
::*Specify sky texture on a per-map basis.&lt;br /&gt;
::*Use any lump in a wad as music for a map.&lt;br /&gt;
::*Give maps a custom name without using a DeHackEd patch.&lt;br /&gt;
::*Maps can be named anything (not just E?M? or MAP??).&lt;br /&gt;
::*Place any messages of any length between any two maps.&lt;br /&gt;
::*&#039;&#039;[[Hexen]]&#039;&#039;-style fog (of any color).&lt;br /&gt;
::*[[Ambient sound]]s &amp;amp;mdash; either point like &#039;&#039;Quake&#039;&#039; or global like &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;Hexen&#039;&#039;.&lt;br /&gt;
::*Automatic use of [[DeHackEd]] patches in PWADs.&lt;br /&gt;
::*No more {{dw|tutti-frutti}} for short textures of certain heights.&lt;br /&gt;
::*zdoom.wcf file for use with [[WadAuthor]].&lt;br /&gt;
:* Rocket jumping. (One very important note about this: You need to be *in the air* when your rocket explodes for rocket jumping to work. This is different from &#039;&#039;Quake&#039;&#039;, and I will probably rewrite it for the next release.)&lt;br /&gt;
:* Dynamic [[palette flash]]es.&lt;br /&gt;
:* Supports stretching skies for [[freelook]].&lt;br /&gt;
:* Larger freelook range.&lt;br /&gt;
:* Added tab-completion to the [[console]].&lt;br /&gt;
:* zdoom.cfg is now the name of the default [[configuration file]] since [[Doom Legacy]] decided to start using config.cfg.&lt;br /&gt;
:* French language support. (Set {{CVAR|C|language}} CVAR to &amp;quot;french&amp;quot;.)&lt;br /&gt;
:* Player obituaries.&lt;br /&gt;
:* Unlimited ammo cheat (use g_unlimitedammo cvar).&lt;br /&gt;
;{{LE|1.14}} (July 22): {{forum|t=5|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom114.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom114-src.zip Source]}}&lt;br /&gt;
:Bugs fixed:&lt;br /&gt;
:* The bunny scroller at the end of E3M8 no longer crashes the game.&lt;br /&gt;
:* The IDKFA [[cheat]] gives the proper amount of armor again.&lt;br /&gt;
:* Demo recording works again.&lt;br /&gt;
:* Telefragging works again.&lt;br /&gt;
:* Picking up the {{Class|InvulnerabilitySphere|invulnerability sphere}} displays the correct colors now.&lt;br /&gt;
:* [[DeHackEd]] patches containing text replacements no longer crash the game.&lt;br /&gt;
:* Printing a string containing &amp;quot;%s&amp;quot; to the console and then changing the video mode will no longer crash the game.&lt;br /&gt;
:* Chat mode finally works again.&lt;br /&gt;
:* If MIDAS can&#039;t initialize, you can still play the game but without sound.&lt;br /&gt;
:* {{Class|Pistol}} and {{Class|chaingun}} sounds no longer cut out when there are lots of {{Class|ZombieMan|zombie men}} shooting their pistols at you.&lt;br /&gt;
:* Mouse input should no longer be so jerky under Windows NT.&lt;br /&gt;
:* The [[crosshair]] is finally accurate for aiming.&lt;br /&gt;
:* [[Autoaim]] is properly remembered each time you start ZDoom.&lt;br /&gt;
:* Switches in &#039;&#039;[[the Ultimate Doom]]&#039;&#039; that aren&#039;t also in the shareware Doom properly change their appearance when switched.&lt;br /&gt;
:New features:&lt;br /&gt;
:* Players can choose their own colors and names. ([[Player setup]] menu is included).&lt;br /&gt;
:* 8-player support (untested but should work).&lt;br /&gt;
:* Miscellaneous internal code changes have been borrowed from the [[Boom]] source. (This does *not* mean that ZDoom supports Boom levels yet.)&lt;br /&gt;
:* [[Cheat]]s, chat messages, and gamestate changes are now recorded in demos.&lt;br /&gt;
:* Single-player demos recorded with ZDoom are generally smaller than before.&lt;br /&gt;
:* &#039;&#039;Quake 2&#039;&#039;-style deathmatch flags.&lt;br /&gt;
:* Cheats (optionally) work in multiplayer games.&lt;br /&gt;
:* Mode X is now supported under Win95, so all the machines that couldn&#039;t run ZDoom in 320x200 before should be able to now.&lt;br /&gt;
:* Fewer conditions result in error messages that quit the game. (If you have &#039;&#039;[[Heretic]]&#039;&#039;, try this: Start ZDoom with -file heretic and go to the console and type &amp;quot;{{CCMD|D|map}} E1M1&amp;quot;.)&lt;br /&gt;
:* Keys can repeat in the [[console]].&lt;br /&gt;
:* The console and chat mode now use the localized keymap set with the Keyboard control panel.&lt;br /&gt;
:* Messages at the top of the screen now break along between words instead of in the middle of them.&lt;br /&gt;
:* Added {{c|-config}} [[command line parameter]].&lt;br /&gt;
:* Added {{c|-fastdemo}} command line parameter.&lt;br /&gt;
:* Added new {{CCMD|D|screenshot}} command. (bound to &amp;quot;Print Screen&amp;quot; key by default)&lt;br /&gt;
:* Added &#039;&#039;Quake&#039;&#039;-like {{CCMD|P|+showscores}} command. (bound to &amp;quot;\&amp;quot; key by default)&lt;br /&gt;
:* [[Alias]]es are now saved in the config file.&lt;br /&gt;
:* Added support for multiple pitched sounds like in very old version of Doom. (Use the snd_pitched cvar to turn it on and off.)&lt;br /&gt;
;{{LE|1.14a}} (July 27): {{forum|t=6|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom114a.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoomsrc114-114a.zip Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:Bugs fixed are:&lt;br /&gt;
:* No more crashing about freeing a pointer without ZONEID when changing levels.&lt;br /&gt;
:* Skies wider than 256 pixels are drawn correctly.&lt;br /&gt;
:* [[Monster]]s&#039; heights are once again the same as they were in id&#039;s original &#039;&#039;[[Doom]]&#039;&#039;, so certain areas work properly again.&lt;br /&gt;
:* Monsters shouldn&#039;t teleport into each other anymore.&lt;br /&gt;
:* Improved support for international keyboards.&lt;br /&gt;
:* The skill level chosen for a new game is no longer ignored if the new game is started while a demo is playing.&lt;br /&gt;
:Cosmetic changes:&lt;br /&gt;
:* No more &amp;quot;sv_gravity changed to...&amp;quot;, &amp;quot;skill changed to...&amp;quot;, etc. messages in single player games.&lt;br /&gt;
:* Activating the [[player setup]] [[menu]] automatically stops any playing [[demo]]s, since it doesn&#039;t work properly while they play.&lt;br /&gt;
:* {{Class|ExplosiveBarrel|Barrels}} don&#039;t go flying away when exploding anymore.&lt;br /&gt;
:* Added def_patch cvar to automatically load a DeHackEd patch each time the game is started.&lt;br /&gt;
:* ZDoom [[savegame]]s now use the name zdoomsv?.dsg instead of doomsav?.dsg.&lt;br /&gt;
:This version also includes some preliminary [[Boom]] support as I started integrating some of the Boom source code with ZDoom:&lt;br /&gt;
:* Medusa fix.&lt;br /&gt;
:* Openings limit removed.&lt;br /&gt;
:* Removed limit on switches and animations.&lt;br /&gt;
:* Added support for Boom-like [[ANIMATED]] and [[SWITCHES]] lumps in PWADs.&lt;br /&gt;
:* Added support for Boom-style scrollers (including conveyors).&lt;br /&gt;
:* Added partial [[deep water]] support.&lt;br /&gt;
;{{LE|1.16}} (December 22): {{forum|t=13|Release thread}} | {{Plainlink|[http://www.zdoom.org/files/old/zdoom116.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom116-src.zip Source]}}&lt;br /&gt;
:Bug fixes:&lt;br /&gt;
:* No more limit on size of [[savegame]]s or [[demo]]s.&lt;br /&gt;
:* Screen resolutions above 320x200 are now the proper brightness (they were too bright before.)&lt;br /&gt;
:* Improved the brightness of the [[console]] [[font]].&lt;br /&gt;
:* {{Class|BulletPuff|Bullet puffs}} can show up on the floor and ceiling and not just walls.&lt;br /&gt;
:* Missile weapons can trigger gun activation lines.&lt;br /&gt;
:* {{Class|ExplosiveBarrel|Barrels}} now bounce around as much as they did in original &#039;&#039;[[Doom]]&#039;&#039;. (They were too &amp;quot;inert&amp;quot; in 1.14.)&lt;br /&gt;
:* If a demo is being recorded, quitting the game normally will save the demo to disk. (Previously, you had to use the stop command to do this.)&lt;br /&gt;
:New features for players:&lt;br /&gt;
:* Proper support for [[Boom]] maps.&lt;br /&gt;
:* Mouse wheel support and {{CCMD|P|weapnext}}/{{CCMD|P|weapprev}} commands.&lt;br /&gt;
:* Doublebindings.&lt;br /&gt;
:* Better analog joystick support.&lt;br /&gt;
:* 180 degree turn command for keyboarders.&lt;br /&gt;
:* Damage done by a rocket to its shooter is {{CVAR|C|splashfator|configurable}} and defaults to the original Doom behavior.&lt;br /&gt;
:* User-configurable gender. (Even though I don&#039;t have any new player sounds, at least the [[obituaries]] are gender-aware. :-)&lt;br /&gt;
:* [[Teamplay]] mode.&lt;br /&gt;
:* {{CVAR|C|sv_nobfgaim|New CVAR}} to disable manual aiming of the BFG to prevent someone from shooting it at the floor and quickly triggering tracer damage before.&lt;br /&gt;
:* Maps no longer need to have as many deathmatch starts as there are players in a deathmatch game.&lt;br /&gt;
:* Support for [[Doom Legacy]] [[skin]]s.&lt;br /&gt;
:* Rewrote the [[MIDI]]/[[MUS]] code so that it has a working volume control.&lt;br /&gt;
:* Many more [[console command]]s and [[CVARs]].&lt;br /&gt;
:New features for editors:&lt;br /&gt;
:* Proper support for [[Boom]] maps.&lt;br /&gt;
:* [[Obituaries]] are configurable with a .bex patch.&lt;br /&gt;
:* [[Monster path]]s&lt;br /&gt;
:* [[Colored lighting]]&lt;br /&gt;
:* [[Fog]] can be applied to only part of a level instead of all of it.&lt;br /&gt;
:* Per-sector [[gravity]] settings.&lt;br /&gt;
:* Support for up to 256 [[ambient sound]]s (as opposed to the limit of 64 in earlier versions).&lt;br /&gt;
:* [[Sector damage]] adjustable from between 0-255 points of damage.&lt;br /&gt;
:* Changeable [[camera]] views.&lt;br /&gt;
:* The following editing features that were introduced in &#039;&#039;[[Hexen]]&#039;&#039; are also available in ZDoom:&lt;br /&gt;
::*Most line specials take arguments that modify their behavior.&lt;br /&gt;
::*[[ACS]] scripting.&lt;br /&gt;
::*[[Hub]]s.&lt;br /&gt;
::*[[Earthquake]]s.&lt;br /&gt;
::*[[Dormant]] monsters.&lt;br /&gt;
::*Trigger events to happen on monster deaths.&lt;br /&gt;
::*[[Floor_Waggle|&amp;quot;Waggling&amp;quot; floors]].&lt;br /&gt;
::*[[Pillar_Build|Pillar builders]].&lt;br /&gt;
::*Push activation lines (walking into a wall can trigger an event).&lt;br /&gt;
::*[[Thing_Spawn|Thing spawning]] (e.g. for traps/gifts).&lt;br /&gt;
&lt;br /&gt;
==1999==&lt;br /&gt;
January 6 of this year saw the first release of the [[Raven Software]] source code.&lt;br /&gt;
;{{LE|1.17}} (February 17): {{forum|t=15|Release thread}} | {{plainlink|[http://www.zdoom.org/files/zdoom/zdos117c.zip DOS build]}}&lt;br /&gt;
:Bug fixes:&lt;br /&gt;
:* [[Multiplayer]] games with [[monster]]s do not crash.&lt;br /&gt;
:* Player corpses do not levitate and then fall down when a player respawns in multiplayer games.&lt;br /&gt;
:* Using {{CCMD|P|togglemap}} outside of a game will not crash.&lt;br /&gt;
:* Monsters stop attacking their target once it is dead.&lt;br /&gt;
:* EV_StopPlat() does not get stuck in an infinite loop if there are [[moving platform]]s.&lt;br /&gt;
:* Partially invisible players are drawn the proper colors (instead of green) if {{CVAR|R|r_drawfuzz}} is 0.&lt;br /&gt;
:* If you are invisible, so are your muzzle flashes.&lt;br /&gt;
:* Trying to execute a non-existent [[ACS|script]] will not crash.&lt;br /&gt;
:* Using a [[ChangeCamera]] special from an open script will not crash.&lt;br /&gt;
:* The [[FloorAndCeiling_RaiseByValue]] and [[FloorAndCeiling_LowerByValue]] now behave like &#039;&#039;[[Hexen]]&#039;&#039;&#039;s.&lt;br /&gt;
:* Using {{c|{{param|-loadgame}}}} from the [[command line]] works.&lt;br /&gt;
:* Fixed a memory leak during generation of the translucency tables.&lt;br /&gt;
:* In high resolutions, weapon sprites meet the bottom of the screen.&lt;br /&gt;
:* Sounds will not cut out mysteriously when there is no reason for them to do so.&lt;br /&gt;
:* Sounds will also not be stopped immediately when a thing is removed, so explosion sounds will play to their full length.&lt;br /&gt;
:* Things can make more than one sound at once.&lt;br /&gt;
:* The [[deathmatch]] [[scoreboard]] is aligned properly at high resolutions.&lt;br /&gt;
:* {{CCMD|P|Spynext}} and {{CCMD|P|spyprev}} work properly instead of leaving the [[status bar]] &amp;quot;lagging behind&amp;quot; the player being viewed.&lt;br /&gt;
:* The {{Class|Infrared|light-amp}} does not disable colored lighting.&lt;br /&gt;
:* The [[sky]] gets {{dw|invulnerability colormap bug|inverted}} when using the invulnerability powerup.&lt;br /&gt;
:* Implemented better z-checking code (from &#039;&#039;[[Heretic]]&#039;&#039;/&#039;&#039;[[Hexen]]&#039;&#039;).&lt;br /&gt;
:* {{Class|PainElemental|Pain elementals}} will spawn one {{Class|LostSoul|lost soul}} at a time instead of two inside of each other.&lt;br /&gt;
:* Bex patches that use thing mnemonics really do work now, and unknown bit messages aren&#039;t generated for regular [[DeHackEd]]  patches.&lt;br /&gt;
:* Linedef type 134 for regular &#039;&#039;[[Doom]]&#039;&#039;/[[Boom]] maps requires a red key for activation (it was being improperly translated to require a blue one).&lt;br /&gt;
:* Monsters can activate secret lines when they cross them. (See &#039;&#039;[[Doom II]]&#039;&#039; MAP08).&lt;br /&gt;
:* The player extreme death sound is used.&lt;br /&gt;
:* When a player leaves a network game, their body is removed instead of being left empty.&lt;br /&gt;
:* 0-length sounds are treated as empty sounds instead of sounds 4 gigs long.&lt;br /&gt;
:* [[Skin]]s that replaced player sounds with sounds in the [[IWAD]] work.&lt;br /&gt;
:* Muzzle flashes do not light up foggy areas, and fullbright sprites stay shrouded in fog.&lt;br /&gt;
:* Alphanumeric keys no longer automatically repeat on the console.&lt;br /&gt;
:* Wads such as gothicdm2 that used new flats in addition to the ones in the IWAD with the regular doom.exe work.&lt;br /&gt;
:New features:&lt;br /&gt;
:* Significant speed improvements on modern processors.&lt;br /&gt;
:* [[Armor]] and [[key]]s are shown on the fullscreen HUD.&lt;br /&gt;
:* Colored text.&lt;br /&gt;
:* A {{CCMD|P|playdemo}} console command.&lt;br /&gt;
:* A [[chasecam]].&lt;br /&gt;
:* A [[particle]] system.&lt;br /&gt;
:* An optional [[railgun]] to show off the particle system. (Start the game with {{c|{{param|-deh}} [[railgun.bex]]}} if you want to use it.)&lt;br /&gt;
:New features interesting for wad authors:&lt;br /&gt;
:* [[Polyobject]]s.&lt;br /&gt;
:* [[Sound sequence]]s.&lt;br /&gt;
:* WAVE files can be used as sound lumps without converting them to DMX&#039;s format first.&lt;br /&gt;
:* A sky can be specified to not be stretched even if it is shorter than 200 pixels.&lt;br /&gt;
:* {{Class|Spark}}s.&lt;br /&gt;
:* {{Class|ParticleFountain|Particle fountain}}s.&lt;br /&gt;
:* Parallax skies.&lt;br /&gt;
:* Some new [[DeHackEd]] thing flags from &#039;&#039;[[Hexen]]&#039;&#039; (bobbing, reflective, etc.).&lt;br /&gt;
;{{LE|1.17a}} (February 21): {{forum|t=16|Release thread}}&lt;br /&gt;
:Mostly minor bug fixes, released because [[Herian 2]] needed some of those fixes. There are a few new features, however:&lt;br /&gt;
:* If you have a skins/ directory in the same directory as zdoom.exe, every wad file in it will be automatically loaded when the game starts. This way, you don&#039;t have to load your [[skin]]s by hand to use them.&lt;br /&gt;
:* New formatting options for text [[print]]ed using [[ACS]].&lt;br /&gt;
:* A [[A_MonsterRail|code pointer]] to make monsters fire a railgun.&lt;br /&gt;
;{{LE|1.17b}} (March 17): {{forum|t=21|Release thread}}&lt;br /&gt;
:Some minor bug fixes over 1.17 and 1.17a. It also loads faster because the sprite dimensions are not cached until they are actually needed. There are also some other internal changes in preparation for supporting &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;[[Hexen]]&#039;&#039;, but those don&#039;t affect the user yet.&lt;br /&gt;
;{{LE|1.17b1}} (March 19): {{forum|t=22|Release thread}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
;{{LE|1.17c}} (May 5): {{forum|t=28|Release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom117c.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom117c-src.zip Source]}}&lt;br /&gt;
:* Fixed game saving crashes on maps with [[wind]]/[[current]] effects.&lt;br /&gt;
:* In [[Boom]] [[deep water]] sectors, the underwater light and fog colors can now be set independently of the area above water.&lt;br /&gt;
:* Added nojump, allowjump, nofreelook, and allowfreelook keywords for use in [[MAPINFO]] lumps to control [[jumping]] and [[free look]].&lt;br /&gt;
:* The random number seed now changes each time you run the program.&lt;br /&gt;
;{{LE|1.18 test 1}} (June 30): {{forum|t=33|Release thread}}&lt;br /&gt;
:* Tweaked the optimized renderer for fifth-generation processors.&lt;br /&gt;
:* Added the following specials:&lt;br /&gt;
::*[[Line_AlignFloor]]&lt;br /&gt;
::*[[Line_AlignCeiling]]&lt;br /&gt;
::*[[Sector_SetRotation]]&lt;br /&gt;
::*[[Sector_SetCeilingPanning]]&lt;br /&gt;
::*[[Sector_SetFloorPanning]]&lt;br /&gt;
::*[[Sector_SetCeilingScale]]&lt;br /&gt;
::*[[Sector_SetFloorScale]]&lt;br /&gt;
:* Added an additional parameter to the [[Transfer_Heights]] special.&lt;br /&gt;
:* Switched to the [http://sourceforge.net/projects/openptc/ OpenPTC] library for display.&lt;br /&gt;
:* Converted lots of code to an object-oriented C++ architecture.&lt;br /&gt;
;{{LE|1.18 test 2}} (July 1): {{forum|t=36|Release thread}}&lt;br /&gt;
:* Fixed vertical aim clipping ({{Class|BFG9000|BFG}} works again).&lt;br /&gt;
:* Fixed [[monster]] wandering.&lt;br /&gt;
:* Maps with mapthings of type 0 no longer generate warning messages.&lt;br /&gt;
:* [[Crusher]]s that do no damage no longer act as if they inflict pain to actors.&lt;br /&gt;
:* The [[alias]] command lists aliases again.&lt;br /&gt;
:* Aliases are saved to the [[config file]] again.&lt;br /&gt;
;{{LE|1.18 test 3}} (July 2): {{forum|t=37|Release thread}}&lt;br /&gt;
:* Removed unnecessary display mode switches.&lt;br /&gt;
:* Created a DCanvas class to encapsulate most 2D rendering.&lt;br /&gt;
;{{LE|1.18 test 4}} (July 3): {{forum|t=39|Release thread}}&lt;br /&gt;
:* Fixed the &amp;quot;Bad DCanvas::CopyRect&amp;quot; problem introduced in test3.&lt;br /&gt;
:* Fixed [[sound sequence]]s that should not be cut off when stopped (such as the standard doors).&lt;br /&gt;
;{{LE|1.18 test 5}} (July 6): {{forum|t=40|Release thread}}&lt;br /&gt;
:* Fixed a potential infinite loop that was introduced in [[#1.18 test 1|118test1]].&lt;br /&gt;
:* Delayed the initial execution of [[CVAR]] callbacks.&lt;br /&gt;
:* Added &#039;&#039;[[Heretic]]&#039;&#039;&#039;s {{wp|Xiaolin Wu&#039;s line algorithm|anti-aliased Wu line drawer}} to the [[automap]].&lt;br /&gt;
;{{LE|1.18 test 6}} (July 10): {{forum|t=41|Release thread}}&lt;br /&gt;
:* Rewrote the {{wp|Xiaolin Wu&#039;s line algorithm|Wu line drawer}} to look better (especially in overlay mode).&lt;br /&gt;
:* [[Sky stretching|Stretched skies]] now get stretched horizontally as well as vertically.&lt;br /&gt;
:* Did an initial integration of the [[Cajun Bot]] 0.71 code.&lt;br /&gt;
;{{LE|1.18 test 7}} (July 12):&lt;br /&gt;
:* Fixed handling of maps with scrolling walls.&lt;br /&gt;
:* Single player works again. In test 6, all games were considered either [[coop]] or [[deathmatch]].&lt;br /&gt;
:* Disabled the [[bot]] thinking code in single player games, so you don&#039;t suffer a performance hit when not using bots.&lt;br /&gt;
:* Added some performance counters accessible through the {{CCMD|D|stat}} command.&lt;br /&gt;
;{{LE|1.18 test 8}} (July 20): {{forum|t=43|Release thread}}&lt;br /&gt;
:* Fixed a crash problem with the &amp;quot;burn&amp;quot; [[screen wipe]].&lt;br /&gt;
:* Fixed a crash problem with playing non-assigned [[sound sequence]]s.&lt;br /&gt;
:* Fixed a crash problem related to trying to shutdown the music subsystem twice.&lt;br /&gt;
:* If you try to add more coop [[bot]]s than there are coop starts, the extra bot leaves quietly instead of ending the game.&lt;br /&gt;
:* {{CVAR|C|sv_weapondrop|Weapondrop}} is now a &amp;quot;server&amp;quot; CVAR, which it should have been in the first place.&lt;br /&gt;
:* Changed the nodetable file format to be more compact.&lt;br /&gt;
:* Bots can now be recorded in demos.&lt;br /&gt;
:* Bots work in [[multiplayer]] games. Still buggy. Spawning bots can cause consistency failures, and they can start spinning wildly.&lt;br /&gt;
;{{LE|1.18 test 9}} (August 9): {{forum|t=44|Release thread}}&lt;br /&gt;
:* Fixed the &amp;quot;wild&amp;quot; [[bot]] spinning problem.&lt;br /&gt;
:* Commands like {{CCMD|D|changemap}} that could make network games go out of sync should work properly now. The reason they would do that is closely related to the reason that the bots would start spinning.&lt;br /&gt;
:* Finished the serializer. Now savegames work. [[Hub]]s don&#039;t, because I haven&#039;t written the player travelling code yet.&lt;br /&gt;
:* Various other code cleanup.&lt;br /&gt;
;{{LE|1.18 test 10}} (August 14):&lt;br /&gt;
:* Reimplemented [[hub]] travel.&lt;br /&gt;
:* Optimized R_MapPlane slightly.&lt;br /&gt;
:* Added {{CCMD|D|fov}} command.&lt;br /&gt;
:* Added vertical sub-pixel accuracy to the renderer.&lt;br /&gt;
:* Added searches for an [[IWAD]] in the current directory, $DOOMWADDIR, and $HOME.&lt;br /&gt;
;{{LE|1.18}} (September 5): {{forum|t=46|Release thread}}&lt;br /&gt;
:* Replaced the older [[Bots|Cajun]] 0.71 with Cajun 0.97.&lt;br /&gt;
:* Fixed handling of [[status bar]] [[mugshot|faces]] with [[skin]]s that provide them.&lt;br /&gt;
:* Added [[swimmable water]].&lt;br /&gt;
:* Messages printed to the middle of the screen also print to the [[console]].&lt;br /&gt;
:* Skill and other server [[CVARs]] get saved in [[savegame]]s again.&lt;br /&gt;
:* Added liquid [[texture warping]].&lt;br /&gt;
:* Bad [[MAPINFO]] lumps generate error messages instead of hanging.&lt;br /&gt;
:* Realized that it&#039;s impossible to guarantee that all object pointers will be valid without some effort, so FArchive saves DObject objects as NULL objects now instead of aborting with an error.&lt;br /&gt;
:* Added the [[built-in ACS functions]] [[LocalAmbientSound]], [[ActivatorSound]], and [[SetLineMonsterBlocking]].&lt;br /&gt;
:* Added a {{Class|SecretTrigger|thing}} that does nothing but count toward the number of [[secret]]s.&lt;br /&gt;
:* Added a {{CCMD|D|fly}} mode.&lt;br /&gt;
:* Finally implemented the {{CCMD|P|+moveup}} and {{CCMD|P|+movedown}} commands.&lt;br /&gt;
;{{LE|1.18a}} (September 12): {{forum|t=47|Release thread}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed [[liquid warping]] temporarily stopping when changing levels.&lt;br /&gt;
:* {{CCMD|P|+mlook|+/-mlook}} commands do not generate unknown command messages.&lt;br /&gt;
:* Fixed support for maps with &amp;gt;10 deathmatch starts. Thanks to Roman Hatsiev.&lt;br /&gt;
:* Fixed support for the special &amp;quot;maps&amp;quot; EndGame? in MAPINFO lumps.&lt;br /&gt;
:* {{Class|TeleportDest2|Teleport destination (no gravity)}} now works as intended.&lt;br /&gt;
:* Hopefully fixed [[savegame]] problems.&lt;br /&gt;
:* [[Bots]] are restored from savegames.&lt;br /&gt;
:* Fixed keyboard turning speed when {{c|{{param|-dup}}}} is used.&lt;br /&gt;
:* Network commands get executed only once when {{c|{{param|-dup}}}} is used.&lt;br /&gt;
:* In sectors with [[damaging floor]]s and swimmable [[deep water]], the damage will also be applied while the player is swimming and not just when the player is on the ground.&lt;br /&gt;
;{{LE|1.18b}} (September 15): {{forum|t=48|Release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom118b.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom118b-src.zip Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed crash when saving games with more than 1024 objects.&lt;br /&gt;
:* Fixed crash when loading a game without starting a new one first.&lt;br /&gt;
:* Reduced the size and frequency of pregame network packets, under the assumption that problems people were having using 1.18 on the Internet are a result of limited modem bandwidth.&lt;br /&gt;
;{{LE|1.19}} (November 24): {{forum|t=53|Release thread}} | {{forum|t=54|Source/Linux build release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom-1.19.tar.gz Source]}}&lt;br /&gt;
:First official Linux build.&lt;br /&gt;
:* [[DeHackEd]] patches that set an actor&#039;s {{Property|DeathSound|death sound}} to 0 without removing the [[A_Scream]] call no longer crash.&lt;br /&gt;
:* Fixed sync problems when playing with {{Class|BulletPuff|bullet puffs}} as [[particle]]s vs as sprites.&lt;br /&gt;
:* Fixed friction when walking on the bottom of swimmable water.&lt;br /&gt;
:* Added Jeffrey Cuenco&#039;s fixes to get {{c|{{param|-host}}}} and {{c|{{param|-join}}}} [[command line parameters]] to work properly.&lt;br /&gt;
:* Fixed [[Boom]] [[Generic_Door|generalized locked doors]] so that the open/close type will actually close.&lt;br /&gt;
:* Added pointer tracking and cleanup. This should fix the occasional crashes when saving games and various other anomalies.&lt;br /&gt;
;{{LE|1.20}} (November 25): {{forum|t=56|Release thread}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed saving, reloading, and then resaving [[savegame|games]] when travelling between levels in a [[hub]].&lt;br /&gt;
:* Fixed saving of [[ACS]] scripts scheduled to occur on a future level.&lt;br /&gt;
;{{LE|1.21}} (November 26): {{forum|t=57|Release thread}} | {{plainlink|[http://www.zdoom.org/files/old/zdoom121.zip Build] {{!}} [http://www.zdoom.org/files/old/zdoom121-src.zip Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Fixed problems with thinkers removing themselves and causing other thinkers to not get a chance to think.&lt;br /&gt;
:* Added {{CVAR|R|hud_scale}} CVAR&lt;br /&gt;
;{{LE|1.22}} (November 12): {{forum|t=60|Release thread}} | {{plainlink|[http://www.zdoom.org/files/zdoom/1.x/zdoom122.zip Windows build] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom-1.22-i386.tar.gz Linux build] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom122-src.zip Windows source] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom-1.22.tar.gz Linux source]}}&lt;br /&gt;
:* [[Scroll_Texture_Both]] and [[TranslucentLine]] specials can now be used from [[ACS]].&lt;br /&gt;
:* Fixed compiler-dependent [[CVAR]] ordering during [[netgame]] arbitration.&lt;br /&gt;
:* Fixed certain [[polyobject]] movement combinations that would not stop even though they were supposed to.&lt;br /&gt;
:* Did some cleanup for Alpha processors.&lt;br /&gt;
&lt;br /&gt;
==2000==&lt;br /&gt;
June 20 of this year saw the public release of the [[Build]] source code.&lt;br /&gt;
;{{LE|1.23 Beta}} (May 10): {{forum|t=64|Release thread}}&lt;br /&gt;
:*Partial &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;[[Hexen]]&#039;&#039; support.&lt;br /&gt;
:*Windows build uses [[FMOD Ex|FMOD]] instead of [http://www.s2.org/midas/ MIDAS].&lt;br /&gt;
&lt;br /&gt;
==2001==&lt;br /&gt;
;{{LE|1.23 Beta 19}} (March 9): {{forum|t=74|Release thread}}&lt;br /&gt;
:Added new [[camera]] types.&lt;br /&gt;
:Added [[LANGUAGE|string localization]].&lt;br /&gt;
:Added [[decal]]s.&lt;br /&gt;
:Added [[slope]]s.&lt;br /&gt;
:Added [[skybox]]es.&lt;br /&gt;
;{{LE|1.23 Beta 20}} (March 11): {{forum|t=75|Release thread}}&lt;br /&gt;
;{{LE|1.23 Beta 23}} (April 9): {{forum|t=76|Release thread}}&lt;br /&gt;
;{{LE|1.23 Beta 24}} (April 12): {{forum|t=77|Release thread}}&lt;br /&gt;
;{{LE|1.23 Beta 25}} (August 15): {{forum|t=81|Release thread}}&lt;br /&gt;
:Linux build now uses SDL&lt;br /&gt;
;{{LE|1.23 Beta 28}} (September 17): {{forum|t=83|Release thread}}&lt;br /&gt;
:Added a few [[decal]]-related [[CVARs]].&lt;br /&gt;
;{{LE|1.23 Beta 28a}} (December 13): {{forum|t=88|Release thread}}&lt;br /&gt;
&lt;br /&gt;
==2002==&lt;br /&gt;
;{{LE|1.23 Beta 33}} (February 5): {{Forum|t=90|Release thread}} | {{plainlink|[http://www.zdoom.org/files/zdoom/1.x/zdoom-1.23beta33-linux.bz2 Linux build] {{!}} [http://www.zdoom.org/files/zdoom/1.x/zdoom-1.23beta33-src.tar.bz2 Source]}}&lt;br /&gt;
:Many fixes and rendering optimization.&lt;br /&gt;
:*Increased &#039;&#039;[[Heretic]]&#039;&#039;/&#039;&#039;[[Hexen]]&#039;&#039; support&lt;br /&gt;
:*Improved [[decal]]s.&lt;br /&gt;
:*Added support for the [[Bloodbath announcer]]&lt;br /&gt;
:*Added [[underwater]] [[REVERBS|reverb]] effect.&lt;br /&gt;
:*Added [[Line_Horizon]] effect.&lt;br /&gt;
:*Added {{Class|ScriptedMarine|scripted marines}} and several [[ACS]] enhancements.&lt;br /&gt;
:*Added support for [[DeePsea]]&#039;s [[patch|tall patches]].&lt;br /&gt;
:*Added [[slope]] things.&lt;br /&gt;
:*Changed [[license]] for original ZDoom source code to a &amp;quot;BSD-ish one&amp;quot;.&lt;br /&gt;
;{{LE|2.0 Beta 13}} (August 27):&lt;br /&gt;
:*Further increased &#039;&#039;Heretic&#039;&#039;/&#039;&#039;Hexen&#039;&#039; support.&lt;br /&gt;
:*Added [[PNG]] support for screenshots. [[Savegame]]s are actually PNG files now.&lt;br /&gt;
:*Added [[ZDBSP|internal nodebuilder]], made it [[polyobject]]-aware.&lt;br /&gt;
:*Added SNES SPC music support.&lt;br /&gt;
:*Added a loader for [[Build]] maps.&lt;br /&gt;
:*Added support for double- and quadruple-resolution flats (128x128 and 256x256).&lt;br /&gt;
:*Added ACS [[libraries]].&lt;br /&gt;
:*Added support for up to 8 mouse buttons.&lt;br /&gt;
:*Added the very first version of [[DECORATE]].&lt;br /&gt;
:*Removed [[MBF]]&#039;s torque simulation because of the problems it caused.&lt;br /&gt;
&lt;br /&gt;
==2003==&lt;br /&gt;
;{{LE|2.0.47}} (May 14): {{Forum|t=101|Release thread}} | {{plainlink|[http://www.zdoom.org/files/lars/47.cab Build]}}&lt;br /&gt;
;{{LE|2.0.47i}} (October 2): {{plainlink|[http://www.zdoom.org/files/lars/47i.cab Build]}}&lt;br /&gt;
;{{LE|2.0.48}} (October 23):&lt;br /&gt;
:*Interchangeability between [[flat]]s and [[texture]]s.&lt;br /&gt;
;{{LE|2.0.49}}, {{LE|2.0.50}} (October 26)&lt;br /&gt;
;{{LE|2.0.51}} (October 30)&lt;br /&gt;
;{{LE|2.0.52}} (October 31)&lt;br /&gt;
;{{LE|2.0.53}} (November 16)&lt;br /&gt;
;{{LE|2.0.54}}, {{LE|2.0.55}} (November 23)&lt;br /&gt;
;{{LE|2.0.56}} (November 25)&lt;br /&gt;
;{{LE|2.0.57}} (November 26)&lt;br /&gt;
;{{LE|2.0.58}}, {{LE|2.0.59}} (December 7)&lt;br /&gt;
;{{LE|2.0.60}} (December 8)&lt;br /&gt;
&lt;br /&gt;
==2004==&lt;br /&gt;
;{{LE|2.0.61}} (January 22) &lt;br /&gt;
;{{LE|2.0.62}} (February 7):&lt;br /&gt;
:*Added modern [[DECORATE]] support.&lt;br /&gt;
;{{LE|2.0.63}} (February 10): {{plainlink|[http://www.zdoom.org/files/lars/63.cab Build] {{!}} [http://www.zdoom.org/files/lars/63src.cab Source]}}&lt;br /&gt;
:*Added custom monsters to DECORATE.&lt;br /&gt;
;{{LE|2.0.64}} (June 8)&lt;br /&gt;
;{{LE|2.0.90}} (October 21):&lt;br /&gt;
:*Added &#039;&#039;[[Strife]]&#039;&#039; support and new inventory system&lt;br /&gt;
;{{LE|2.0.91}} (October 22)&lt;br /&gt;
;{{LE|2.0.92}} (October 31)&lt;br /&gt;
;{{LE|2.0.93}} (November 3)&lt;br /&gt;
;{{LE|2.0.94}} (November 19)&lt;br /&gt;
;{{LE|2.0.95}} (December 24): {{plainlink|[http://www.zdoom.org/files/lars/95changes.html Changelog]}}&lt;br /&gt;
:*Added [[camera]] textures to [[ANIMDEFS]] and [[SetCameraToTexture]]&lt;br /&gt;
:*Improved [[console]] tab completion, added Ctrl-X shortcut to clear the console&#039;s command line&lt;br /&gt;
:*Several &#039;&#039;[[Hexen]]&#039;&#039; and &#039;&#039;[[Strife]]&#039;&#039; fixes&lt;br /&gt;
:*Merged in Jim&#039;s [[ACS]] character array [[print]]ing support. &lt;br /&gt;
:*Added the [[polymost]] clipper.&lt;br /&gt;
:*Added support for 16:10 and 5:4 aspect ratios and letterboxing.&lt;br /&gt;
:*Added [[scope|static local variables]], [[Log]], [[SetAmmoCapacity]] and [[GetAmmoCapacity]] to [[ACS]].&lt;br /&gt;
;{{LE|2.0.96}} (December 25): {{plainlink|[http://www.zdoom.org/files/lars/96.cab Build] {{!}} [http://www.zdoom.org/files/lars/96src.cab Source] {{!}} [http://www.zdoom.org/files/lars/96changes.html Changelog]}}&lt;br /&gt;
:*Added [[TITLEMAP]]&lt;br /&gt;
&lt;br /&gt;
==2005==&lt;br /&gt;
;{{LE|2.0.97}} (September 28): {{forum|t=8060|Release thread}} | {{plainlink|[http://www.zdoom.org/files/lars/97.cab Build] {{!}} [http://www.zdoom.org/files/lars/97src.rar Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:*The [[LANGUAGE]] lump is now text-based.&lt;br /&gt;
:*Added IMF [[music format]] support.&lt;br /&gt;
:*Ported [[SetActorAngle]] and [[SetLineBlocking|BLOCK_RAILING]] from the [[ZDoom Community Build]].&lt;br /&gt;
:*Added [[Polymost]] visualization code from [[Build]].&lt;br /&gt;
:*Gave {{Flag|DONTMORPH}} flag to {{Class|Cyberdemon}}, {{Class|SpiderMastermind}}, {{Class|AlienSpectre1}}, {{Class|Crusader}}, {{Class|Programmer}}, and {{Class|Inquisitor}}.&lt;br /&gt;
:*Made {{Class|Puffy}} and projectiles spawned by [[A_LastZap]] deal no damage.&lt;br /&gt;
:*[[Teleport_NewMap]] can now be used within a [[TITLEMAP]] in order to make it possible to use different maps as the title map.&lt;br /&gt;
:*Merged in Graf Zahl&#039;s [[Caverns of Darkness]] patch.&lt;br /&gt;
:*Added [[Polymost]] wireframe mode.&lt;br /&gt;
:*Added {{CCMD|O|writeopl}} console command.&lt;br /&gt;
:*[[UsePuzzleItem]] can now be a [[thing]]&#039;s [[special]].&lt;br /&gt;
:*Missiles with negative damage now give you health.&lt;br /&gt;
;{{LE|2.0.98}} (November 3): {{forum|t=8460|Release thread}} | {{plainlink|[http://www.zdoom.org/files/lars/98.cab Build] {{!}} [http://www.zdoom.org/files/lars/98src.rar Source]}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
&lt;br /&gt;
==2006==&lt;br /&gt;
February 16 of this year saw the first commit to the [[SVN]] repository.&lt;br /&gt;
;{{LE|2.1.0}}{{rev|204}} (June 21): {{forum|t=10550|Release thread}} | {{plainlink|[http://zdoom.org/files/old/zdoom-2.1.0.zip Build] {{!}} [http://zdoom.org/files/old/zdoom-2.1.0-src.7z Source]}}&lt;br /&gt;
:*Added several things from [[ZDoom Community Build]] (unofficial 2.0.96x) and [[GZDoom]], including custom [[DECORATE]] [[weapon]]s.&lt;br /&gt;
;{{LE|2.1.1}}{{rev|226}} (June 25): {{forum|t=10630|Release thread}} | {{versionlinks|2|1|1}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
;{{LE|2.1.2}}{{rev|257}} (July 17): {{forum|t=10895|Release thread}} | {{versionlinks|2|1|2}}&lt;br /&gt;
:*Added custom [[player class]]es.&lt;br /&gt;
:*Added &amp;quot;replaces&amp;quot; keyword for [[DECORATE]].&lt;br /&gt;
:*[[IWAD selection box]] now remembers the last choice.&lt;br /&gt;
:*Added [[A_RadiusThrust]] to DECORATE.&lt;br /&gt;
:*Added [[ThingCountName]] and  [[SpawnSpotFacing]] to [[ACS]].&lt;br /&gt;
:*Changed additive scroller options into a [[compatibility options|compatibility flag]].&lt;br /&gt;
;{{LE|2.1.3}}{{rev|265}} (July 18): {{forum|t=10930|Release thread}} | {{versionlinks|2|1|3}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:* Sounds can be specified by full path now in [[SNDINFO]] and [[S_SKIN]].&lt;br /&gt;
:* [[DECORATE]] replacement is more universal.&lt;br /&gt;
:* Added NecroMage&#039;s submission for bitwise/shift assignment operators for [[ACS]]. (Requires [[ACC]] 1.42+.)&lt;br /&gt;
:* Changed PlayAttacking2 to always use the melee state instead of different implementations per player and hard coding it to MissileState+1. Also changed PlayAttacking for the {{Class|HereticPlayer}} to use the same animation as PlayAttacking2. Now the special handling for &#039;&#039;[[Heretic]]&#039;&#039; in the FireWeapon functions can be removed.&lt;br /&gt;
;{{LE|2.1.4}}{{rev|273}} (July 29): {{forum|t=11063|Release thread}} | {{versionlinks|2|1|4}}&lt;br /&gt;
:*Added partial emulation of [[Boom]]&#039;s TRANMAP by analyzing such lumps and extrapolating translucency level from them. This does not work for non-translucency effects that can be achieved with TRANMAPs.&lt;br /&gt;
:*Added a {{CVAR|C|queryiwad_key}} cvar to control which key can force the [[IWAD selection box]] to appear. It can be either &amp;quot;shift&amp;quot; or &amp;quot;control&amp;quot;. Any other value will disable its functionality.&lt;br /&gt;
;{{LE|2.1.5}}{{rev|321}} (September 2): {{forum|t=11466|Release thread}} | {{versionlinks|2|1|5}}&lt;br /&gt;
:*New [[ACS]] functions: [[GetPlayerInfo]], [[ChangeLevel]], [[SectorDamage]], [[ReplaceTextures]]&lt;br /&gt;
:*New [[DECORATE]] functions: [[A_PlaySoundEx]], [[A_StopSoundEx]]&lt;br /&gt;
:*The {{CVAR|C|vid_nowidescreen}} cvar can be used to disable widescreen aspect ratio correction.&lt;br /&gt;
:*[[A_SpawnDebris]] and [[A_SpawnItem]] can optionally transfer the caller&#039;s color translation to the newly spawned item.&lt;br /&gt;
:*New morphing artifacts can be created by subclassing the {{Class|MorphProjectile}} and {{Class|MorphedMonster}} classes.&lt;br /&gt;
:*[[A_FireCustomMissile]] has a new parameter: Previously it always aimed straight ahead and altered the projectile&#039;s angle according to the resulting direction. If the 6th parameter is 1 now it will aim at the specified angle directly.&lt;br /&gt;
:*Users can now define their own [[TEXTCOLO|text colors]], and there are several new standard ones.&lt;br /&gt;
:*The fourth parameter of [[Polyobj_StartLine]] and the fifth parameter of [[Polyobj_ExplicitLine]] now set the line&#039;s ID.&lt;br /&gt;
:*DECORATE explosion parameters are no longer considered deprecated.&lt;br /&gt;
:*Calling [[Radius_Quake]], [[Thing_Activate]], or [[Thing_Remove]] with a [[TID]] of 0 now operates the activator.&lt;br /&gt;
:*Strife&#039;s {{Class|PhosphorousFire}} now does completely thrustless damage.&lt;br /&gt;
:*An actor&#039;s damage in DECORATE can now be specified as an expression that is evaluated each time it needs to do damage. To do this, enclose it within parentheses, and the normal Doom damage calculation will be bypassed.&lt;br /&gt;
:*Passing a negative script number to the {{CCMD|D|puke}} [[console command]] now runs the script with [[ACS_ExecuteAlways]] instead of [[ACS_Execute]].&lt;br /&gt;
:*[[Polyobject]]s defined with [[Polyobj_ExplicitLine]] are no longer limited to 64 segs.&lt;br /&gt;
:*Starting a new game or reloading an old one no longer resets the [[chasecam]].&lt;br /&gt;
:*The [[automap]] background is now a regular texture.&lt;br /&gt;
:*Added support for many [[image format]]s for use as textures: [[PNG]], JPEG, PCX, TGA, DDS.&lt;br /&gt;
:*Numerous bugfixes.&lt;br /&gt;
;{{LE|2.1.6}}{{rev|346}} (October 2): {{forum|t=11758|Release thread}} | {{versionlinks|2|1|6}}&lt;br /&gt;
:*Scaled 2D images are supported.&lt;br /&gt;
:*Dehacked max health usage defaults to consistency with other ([[Boom]]) ports.&lt;br /&gt;
:*A &#039;&#039;font&#039;&#039; parameter was added to [[A_Print]].&lt;br /&gt;
:*Quoted strings in [[DECORATE]] can no longer span multiple lines without using the escape character (\) at the end of each line. This makes it easier to spot places where you unintentionally left off a closing quote and got an error several lines later.&lt;br /&gt;
:*A new {{CCMD|O|writeini}} console command can be used to save [[the ini]] at any time, with any file name.&lt;br /&gt;
:*If the ini is write-protected when you quit, an error dialog now opens to let you know your settings could not be saved and gives you the opportunity to unprotect it.&lt;br /&gt;
:*Multiple stat displays can be enabled at once.&lt;br /&gt;
:*Several bugfixes.&lt;br /&gt;
;{{LE|2.1.7}}{{rev|524}} (October 31): {{forum|t=12015|Release thread}} | {{versionlinks|2|1|7}}&lt;br /&gt;
:*Alias commands can now do parameter substitution. If you have %x, where x is some number, in an alias command, it will be replaced by the appropriately numbered parameter passed when the alias is used, with %0 being replaced by the name of the alias itself.&lt;br /&gt;
:*A new {{Class|MapMarker}} actor has been added that you can use to mark points of interest on the [[automap]]. If its first argument is zero, the map marker itself appears on the automap, otherwise it is drawn on top of any actor with a [[TID]] matching that argument. If the second argument is one, then the map marker will only be appear if the player has previously seen the sector it is in. You can use [[Thing_Activate]] and [[Thing_Deactivate]] on markers to turn them on and off. To make custom markers, all you need to do is subclass MapMarker with [[DECORATE]].&lt;br /&gt;
:*Added the [[SetActorPitch]] [[ACS]] command to set an actor&#039;s pitch.&lt;br /&gt;
:*You can pass multiple jump targets to the [[A_Jump]] [[DECORATE]] function, and it will choose one of them at random if it jumps.&lt;br /&gt;
:*Using a [[TID]] of 0 with [[Thing_Deactivate]], [[SetActorAngle]], [[Thing_Spawn]]*, [[Thing_Projectile]]*, and [[Thing_Move]] will now operate on the activator.&lt;br /&gt;
:*The fifth argument for [[Line_SetIdentification]] can be used to set the high byte of the line ID.&lt;br /&gt;
:*Added a {{Property|CameraHeight}} [[DECORATE]] property for actors.&lt;br /&gt;
:*Added special death states for [[projectile]]s hitting actors. If missiles hit a non-bleeding actor, they try the Crash state first. If that doesn&#039;t exist or the actor is bleeding, they try the XDeath state next. If they hit anything else or neither of the two states are defined, they use the normal death state.&lt;br /&gt;
:*Added a {{Flag|PIERCEARMOR}} [[DECORATE]] flag for projectiles.&lt;br /&gt;
:*The {{CCMD|D|morphme}} [[console command]] can be given an optional argument to specify which class to morph into.&lt;br /&gt;
:*Miscellaneous bugfixes.&lt;br /&gt;
&lt;br /&gt;
==2007==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
==2008==&lt;br /&gt;
;{{LE|2.2.0}}{{rev|748}} (February 15): {{forum|t=16272|Release thread}} | {{versionlinks|2|2|0}}&lt;br /&gt;
:*This is the final version of ZDoom to fully support Windows 95 since later versions switched to [[FMOD Ex]].&lt;br /&gt;
:*Added [[custom damage types]], with monsters being able to have different custom pain chances, custom damage factors, and custom death sequence for each damage type. Also, damage-specific player pain and death sounds.&lt;br /&gt;
:*Custom damage color for [[palette flash]]es per [[player class]].&lt;br /&gt;
:*Custom state labels. New states can be defined in [[DECORATE]].&lt;br /&gt;
:*The [[SBARINFO]] lump for creating status bar and other [[HUD]]s.&lt;br /&gt;
:*[[Skill definition]] in [[MAPINFO]], with many properties.&lt;br /&gt;
:*Most thing functions treat a [[TID]] of 0 as the activator now.&lt;br /&gt;
:*Support for [[ENDOOM]] screens and the graphical or semi-graphical [[startup lumps|screens]] from &#039;&#039;[[Heretic]]&#039;&#039;, &#039;&#039;[[Hexen]]&#039;&#039; and &#039;&#039;[[Strife]]&#039;&#039;.&lt;br /&gt;
:*Several things backported from [[Skulltag]], including powerups and flags for increased port compatibility:&lt;br /&gt;
::*{{Class|PowerDrain|Drain}}, {{Class|PowerHighJump|HighJump}} and {{Class|PowerRegeneration|Regeneration}} runes as powerups and used specific player sounds for their sound effects.&lt;br /&gt;
::*PowerQuadDamage and PowerQuarterDamage as more customizable {{Class|PowerDamage}} and {{Class|PowerProtection}}. These new powerups allow free customization of the damage modification per damage type by inheriting from these classes and setting specific values. Such derived damage/protection powerups will be considered as separate powers so that for example a QuadDamage and a DoubleDamage item can be stacked which would result in 8x damage.&lt;br /&gt;
::*{{Property|Armor.MaxBonus}} and {{Property|Armor.MaxBonusMax}} properties to create armor bonuses that increases the max amount that can be given by other armor items.&lt;br /&gt;
::*Custom F1 help screen [[MAPINFO]] option&lt;br /&gt;
::*Added REDMAP and GREENMAP [[palette blend]]s.&lt;br /&gt;
::*Imported SAME_SPAWN_SPOT [[DM flag]]&lt;br /&gt;
::*Pickup sprite for the {{Class|pistol}}.&lt;br /&gt;
::*Imported {{CVAR|R|r_maxparticles}} CVAR.&lt;br /&gt;
:*New [[Direct3D]] code for better Vista support.&lt;br /&gt;
:*Autoload sections in [[the ini]].&lt;br /&gt;
:*[[GZDoom]]&#039;s [[alternate HUD]].&lt;br /&gt;
:*Custom blood on an actor-by-actor basis into [[DECORATE]].&lt;br /&gt;
:*Smart [[autoaim]] code to prevent the targeting of friendly monsters.&lt;br /&gt;
:*New {{Flag|NOBLOODDECALS}} flag that prevents bleeding actors from spawning blood [[decal]]s.&lt;br /&gt;
:*Customizable border textures. They are defined with the [[MAPINFO]] keyword &#039;bordertexture&#039; and are settable per map.&lt;br /&gt;
:*Custom label support for [[A_Chase]] and [[A_VileChase]]&lt;br /&gt;
:*{{Property|Player.RunHealth}} property to expose the {{Class|StrifePlayer}}&#039;s behavior of not being able to run when its [[health]] is below 10.&lt;br /&gt;
:*Customizable gravity per actor&lt;br /&gt;
:*New {{CCMD|D|summonfoe}} console command, which is analogous to {{CCMD|D|summonfriend}} but forces the summoned creature to be hostile instead.&lt;br /&gt;
:*Added two new [[MAPINFO]] flags to control what actor activates impact lines: {{c|MissileShootersActivateImpactLines}} (the current behavior) and {{c|MissilesActivateImpactLines}} (the original &#039;&#039;[[Hexen]]&#039;&#039; behavior).&lt;br /&gt;
:*More player water sounds: {{c|*dive}} (head goes below water), {{c|*surface}} (your head goes back above water), {{c|*gasp}} (getting air back after starting to drown)&lt;br /&gt;
:*Using &amp;quot;*&amp;quot; with [[ACS]]&#039;s music commands will play the level&#039;s default music set in [[MAPINFO]]&lt;br /&gt;
:*Two new CVARs ({{CVAR|C|win_x}} and {{CVAR|C|win_y}}) that keep track of the window position when not playing in fullscreen mode&lt;br /&gt;
:*Key bindings can now be [[print]]ed with [[ACS]]&lt;br /&gt;
:*{{Flag|INVENTORY.KEEPDEPLETED}} flag for inventory items to keep them in the player&#039;s inventory even when they have been used up. If the item also has an inventory bar icon, it will be drawn darkened while it is depleted.&lt;br /&gt;
:*{{Flag|INVENTORY.IGNORESKILL}} flag for ammo that prevents the given quantity from being modified by the skill level&lt;br /&gt;
:*{{Property|Player.AttackZOffset}} for {{Class|PlayerPawn}}. This is the offset from the center of the player at which their attacks are fired and scales according to their crouched height.&lt;br /&gt;
:*Added a new [[SetActorState]] [[ACS]] function.&lt;br /&gt;
:*{{Flag|CANUSEWALLS}} flag which allows a [[monster]] to activate &#039;use&#039; specials like doors. This flag is on by default for any monster, which was the previous behavior.&lt;br /&gt;
:*[[Thing_Stop]] action special.&lt;br /&gt;
:*New {{Flag|FORCERADIUSDMG}} flag that allows exploding items to hurt boss monsters.&lt;br /&gt;
:*New {{Flag|USESPECIAL}} flag that allows using things to execute their [[special]]s.&lt;br /&gt;
:*[[Compatibility option]] to restore the original behavior of the {{Class|PowerInvisibility|Invisibility}} powerup&lt;br /&gt;
:*Telefrag option added to [[A_SpawnItemEx]].&lt;br /&gt;
:*Added option to [[A_Chase]] that prevents the monster from moving.&lt;br /&gt;
:*New {{c|allowrespawn}} MAPINFO option.&lt;br /&gt;
:*New [[scoreboard]]s.&lt;br /&gt;
:*New [[A_LookEx]] function.&lt;br /&gt;
:*Customizable [[team]]s through the [[TEAMINFO]] lump.&lt;br /&gt;
:*New {{CCMD|D|take}} console command to do the opposite of {{CCMD|D|give}}.&lt;br /&gt;
:*[[UseInventory]]/[[UseActorInventory]] [[ACS]] functions.&lt;br /&gt;
:*New [[A_CustomBulletAttack]] &#039;&#039;aimfacing&#039;&#039; parameter&lt;br /&gt;
:*New [[A_PlaySoundEx]] attenuation parameter.&lt;br /&gt;
:*[[Automap]] markers are stored in [[savegame]]s now.&lt;br /&gt;
:*&#039;No respawn&#039; [[DM flag]] which prevents a [[player]] from respawning after they have died.&lt;br /&gt;
:*&#039;Keep frags gained&#039; [[DM flag]] which allows you to choose whether you want to reset the [[frag]]s of each player next level or not.&lt;br /&gt;
:*Sector_Outside [[sector type]] which forces outside [[fog]] regardless of ceiling texture.&lt;br /&gt;
:*User-defined [[crosshair]]s in the [[Display options]] menu. See xhairs.txt in zdoom.pk3.&lt;br /&gt;
:*Generic log display that can show &#039;&#039;[[Strife]]&#039;&#039;&#039;s log messages in all games regardless of the current game, active [[status bar]] and [[HUD]] mode.&lt;br /&gt;
:*Support for stenciling actors with {{Property|RenderStyle}} property.&lt;br /&gt;
:*.TXT files can now be loaded by simply dragging-and-dropping them on top of zdoom.exe.&lt;br /&gt;
:*&#039;Ice&#039; [[translation]] is accessible from [[DECORATE]].&lt;br /&gt;
:*[[Teamplay]] MAPINFO option.&lt;br /&gt;
:*[[ACS]] script type [[RETURN]]. These are executed by players who return to a map they&#039;ve previously been to.&lt;br /&gt;
&lt;br /&gt;
==2009==&lt;br /&gt;
;{{LE|2.3.0}}{{rev|1455}} (March 1): {{Forum|t=21116|Release thread}} | {{versionlinks|2|3|0}}&lt;br /&gt;
:*[[Universal Doom Map Format]] (UDMF) support.&lt;br /&gt;
:*New garbage collector to improve performances on resource-intensive maps.&lt;br /&gt;
:*Sound uses [[FMOD Ex]] instead of FMOD. Among the benefits, [[REVERBS|reverbs]] can now work on any sound card, not just those that support EAX.&lt;br /&gt;
:*SPC is now a first-class [[music format]] that no longer requires an external DLL to play.&lt;br /&gt;
:*Support for [[Vavoom]]&#039;s [[slope|vertex height things]] and [[Eternity Engine]]&#039;s [[3D middle texture]]s.&lt;br /&gt;
:*[[Linked sectors]], to ensure that multiple [[sector]]s can move consistently in sync.&lt;br /&gt;
:*[[TEXTURES]] lump for text-based texture definitions.&lt;br /&gt;
:*[[Automatic compatibility|MD5-based recognition of maps]] that require certain [[compatibility options]] to work (e.g., {{dw|Strain}} map 7 which relied on the {{dw|Spechits overflow}} bug) to apply these settings transparently.&lt;br /&gt;
:*[[Freedoom]], [[Chex Quest]], and [[Chex Quest 3]] are recognized as [[IWAD]]s and can be selected in the [[IWAD selection box]]. New aliases are available for IWADs, too.&lt;br /&gt;
:*New [[MAPINFO]] format (the old is still supported of course) with a more robust syntax.&lt;br /&gt;
:*Custom [[map translator]]s for Doom-format maps, which can be specified in MAPINFO.&lt;br /&gt;
:*[[Strife]] dialogues now work in multiplayer.&lt;br /&gt;
:*Setting up slots for custom weapons no longer requires a [[KEYCONF]] lump, the limit of 8 weapons per slot is removed.&lt;br /&gt;
:*Added the &amp;quot;{{Class|RandomSpawner|random spawner}}&amp;quot; actor, customizable {{Class|BossEye}}s, {{Class|CustomBridge}}, {{Class|FastProjectile}}.&lt;br /&gt;
:*Many new [[compatibility options]], including one to have [[projectile]]s pass through solid decorations.&lt;br /&gt;
:*More flexible use of [[lightning]] in a map.&lt;br /&gt;
:*The two different [[crushing mode]]s (Doom and Hexen) are now selectable per action.&lt;br /&gt;
:*Customizable pickup flash with {{Property|Inventory.PickupFlash}} property.&lt;br /&gt;
:*[[DeHackEd]] music name replacement has been restored.&lt;br /&gt;
:*Rewritten DECORATE parser, more robust and featuring better error reporting. All actors are defined in DECORATE now.&lt;br /&gt;
:*Functions to handle [[weapon]] reloading through DECORATE.&lt;br /&gt;
:*New [[ACS]] functions: [[GetPlayerInput]], [[GetActorProperty|Get]]/[[SetActorProperty]].&lt;br /&gt;
:*Many actions are now more flexible through optional parameters, for example [[A_Die]] can specify damage type to send to a custom Death state, [[A_KeenDie]] can affect tags other than 666, [[A_Fire]] can specify a vertical offset, and so on.&lt;br /&gt;
:*Many, many new [[DMFlags]] for [[cooperative]] plays, such as having to kill all [[monster]]s before leaving the map or seeing the other [[player]]s on the [[automap]].&lt;br /&gt;
:*Enhanced &#039;&#039;[[Strife]]&#039;&#039; support.&lt;br /&gt;
:*Various and sundry bug fixes.&lt;br /&gt;
;{{LE|2.3.1}}{{rev|1480}} (March 15): {{Forum|t=21296|Release thread}} | {{versionlinks|2|3|1}}&lt;br /&gt;
:Mostly a bugfix release.&lt;br /&gt;
:*Fixes the bug that prevented you from switching weapons after respawning in multiplayer.&lt;br /&gt;
:*Fixes a performance regression introduced in 2.3.0.&lt;br /&gt;
:*Adds support for zip/pk3 files with LZMA and BZip2 compression. (7-Zip is one program that can create such files.)&lt;br /&gt;
:*Addresses a few other niggles.&lt;br /&gt;
&lt;br /&gt;
==2010==&lt;br /&gt;
;{{LE|2.4.0}}{{rev|2075}} (January 1): {{Forum|t=24602|Release thread}} | {{versionlinks|2|4|0}}&lt;br /&gt;
:*Rewritten [[archive format|archive]] management code.&lt;br /&gt;
::*Added support for new [[archive format]]s: 7z, &#039;&#039;Quake&#039;&#039; PAK, &amp;quot;Shrink&amp;quot; and &amp;quot;Implode&amp;quot;.&lt;br /&gt;
::*Removed loading limit of 65 535 lumps. The archive manager can now handle up to 4 294 967 295 lumps.&lt;br /&gt;
:*Rewritten mouse and keyboard handling input under Windows.&lt;br /&gt;
:*Reimplemented and improved support for gamepads and joysticks.&lt;br /&gt;
:*Added truecolor display of the [[HUD]], [[menu]]s and other 2D elements outside the game world when using [[Direct3D]] on Windows.&lt;br /&gt;
:*Replaced SNES_SPC with Game Music Emu, greatly increasing the number of supported emulated [[music format]]s.&lt;br /&gt;
:*Added compiling support for {{wp|Macintosh}} systems.&lt;br /&gt;
:*Added [[IWAD]] recognition for Ultimate [[Freedoom]], [[Action Doom 2: Urban Brawl|Action Doom 2]], [[Blasphemer]] and [[Harmony]].&lt;br /&gt;
:*Added {{param|-noautoload}}, {{param|-norun}}, {{param|-stdout}}, and {{param|-warpwipe}} command line parameters.&lt;br /&gt;
:*Added {{CVAR|C|save_dir}} and {{CVAR|R|d3d_antilag}} console variables.&lt;br /&gt;
:*Added optional parameters to {{CCMD|D|summon}} commands, added {{CCMD|D|summonmbf}} command.&lt;br /&gt;
:*Added {{CCMD|D|info}} command to obtain very verbose debugging information on actors.&lt;br /&gt;
:*Buddha mode&lt;br /&gt;
:*Added [[score]] and {{Class|ScoreItem}}s.&lt;br /&gt;
:*Added [[GameInfo definition]]s to [[MAPINFO]].&lt;br /&gt;
:*Changed random seed initialization so that it uses the system&#039;s cryptographically secure random number generator, if available, instead of the current time. Also changed the random number generator from Lee Killough&#039;s algorithm to the SFMT607 variant of the {{wp|Mersenne twister}}.&lt;br /&gt;
:*Disabled custom [[DEHSUPP]] lumps.&lt;br /&gt;
:*Added &#039;damage&#039; to the actor variables exported to [[DECORATE expressions|DECORATE&#039;s expression evaluator]].&lt;br /&gt;
:*Added &#039;frandom&#039; DECORATE function to the expression evaluator, which is like &#039;random&#039; but for floating point values instead of integers.&lt;br /&gt;
:*Added Raven color set and dagger-like vector sprite to the [[automap]].&lt;br /&gt;
:*Added desatured [[translation]]s.&lt;br /&gt;
:*[[SBARINFO]]: Added the ability to center things with fullscreenoffsets enabled, added [[underwater]] stats.&lt;br /&gt;
:*[[MAPINFO]]: Added [no_]grinding_polyobj, resetinventory properties, added EndTitle option for {{c|nextmap}}.&lt;br /&gt;
:*Added actor replacement to [[skill definition]]s.&lt;br /&gt;
:*Exported many hardcoded values to [[GameInfo definition]]s.&lt;br /&gt;
:*Added [[Line_SetBlocking]] and [[Sector_SetPortal]] specials.&lt;br /&gt;
:*Added {{c|defaultterrain}} section to [[TERRAIN]].&lt;br /&gt;
:*Added new [[earthquake]] functions.&lt;br /&gt;
:*Added [[user variable]]s.&lt;br /&gt;
:*[[DECORATE]]: Added {{Property|Species}}, {{Property|Activation}}, {{Property|PainThreshold}}, {{Property|PushFactor}}, {{Property|WeaveIndexXY}}, {{Property|WeaveIndexZ}}, {{Property|Powerup.Strength}}, {{Property|Player.MugShotMaxHealth}}, {{Property|Inventory.InterHubAmount}} properties.&lt;br /&gt;
:*Turned old bounce flags into {{Property|BounceType}} property.&lt;br /&gt;
:*Added {{Property|DamageFactor}} handling to Armors.&lt;br /&gt;
:*Added &amp;quot;BLUEMAP&amp;quot; [[palette blend]] for {{Property|Powerup.Color}}, and added {{Property|Powerup.Colormap}} for custom colormaps.&lt;br /&gt;
:*Added {{Flag|MOVEWITHSECTOR}}, {{Flag|NOBOSSRIP}}, {{Flag|THRUACTORS}}, {{Flag|THRUSPECIES}}, {{Flag|DONTSEEKINVISIBLE}}, {{Flag|FORCEPAIN}}, {{Flag|NOFEAR}}, {{Flag|BUMPSPECIAL}}, {{Flag|STEPMISSILE}}, {{Flag|NOTELEPORT}}, {{Flag|NOTRIGGER}},  {{Flag|AVOIDMELEE}}, {{Flag|JUMPDOWN}}, {{Flag|SCREENSEEKER}}, {{Flag|INVENTORY.PERSISTENTPOWER}}, {{Flag|WEAPON.AMMO_CHECKBOTH}}, {{Flag|WEAPON.NOAUTOAIM}} flags.&lt;br /&gt;
:*Added [[A_CheckCeiling]], [[A_MonsterRefire]], [[A_Weave]], [[A_JumpIfTargetInSight]], [[A_ZoomFactor]], [[A_SetAngle]], [[A_SetPitch]], [[A_ScaleVelocity]], [[A_ChangeVelocity]], [[A_SetCrosshair]], [[A_RemoveSiblings]], [[A_RaiseMaster]]/[[A_RaiseChildren|Children]]/[[A_RaiseSiblings|Siblings]], [[A_Log]], [[A_PrintBold]], [[A_SetArg]], [[A_SetSpecial]], [[A_Blast]] codepointers.&lt;br /&gt;
:*Added parameters to [[A_PodPain]], [[A_MakePod]], [[A_MLightningAttack]], [[A_M_Saw]], [[A_FireCustomMissile]], [[A_FadeOut]], [[A_Explode]], [[A_WeaponReady]], [[A_VileAttack]], [[A_Mushroom]], [[A_SeekerMissile]], [[A_KillChildren]]/[[A_KillMaster|Master]]/[[A_KillSiblings|Siblings]], [[A_CustomRailgun]] and [[A_RailAttack]], added SXF_TRANSFERPOINTERS flag to [[A_SpawnItemEx]] and several flags to [[A_Respawn]].&lt;br /&gt;
:*Imported {{Class|PowerDoubleFiringSpeed}} from [[Skulltag]], added {{Class|PowerInfiniteAmmo}}.&lt;br /&gt;
:*{{Class|PowerProtection}} and {{Class|PowerInvisibility}} can now be used to give certain flags to the player. Other enhancements to PowerInvisibility, such as changing the player&#039;s {{Property|RenderStyle}}.&lt;br /&gt;
:*Customizable mage lightning, sapphire wand, and {{Class|SpawnShot}} spawn lists.&lt;br /&gt;
:*[[ACS]]: compatibility fix for vanilla Hexen map where script execution order is critical.&lt;br /&gt;
:*Added [[GetActorVelX]]/[[GetActorVelY|Y]]/[[GetActorVelZ|Z]], [[SetActorVelocity]], [[GetActorViewHeight]], [[SetActivator]], [[SetActivatorToTarget]], [[GetChar]], [[SetSkyScrollSpeed]], [[GetAirSupply|Get]]/[[SetAirSupply]], [[GetArmorType]], [[CheckActorProperty]], [[CheckActorClass]], [[SoundSequenceOnActor]]/[[SoundSequenceOnSector|Sector]]/[[SoundSequenceOnPolyobj|Polyobj]], [[SpawnSpotForced]] and [[SpawnSpotFacingForced]].&lt;br /&gt;
:*Added ML_BLOCKUSE line flag, accessible through [[UDMF]] and [[Line_SetBlocking]].&lt;br /&gt;
:*Improved [[automatic compatibility]] with {{dw|Hacx}}, {{dw|Suspended in Dusk}}, {{dw|Community Chest}}, {{dw|Doomsday of UAC}}, {{dw|Strain}}, and the {{dw|Astrostein}} series.&lt;br /&gt;
:*[[Compatibility options]]: added Minotaur footclipped floor fire setting, sprite sorting order, [[MBF]]-style [[A_Mushroom]], monster movements affected by terrain, and friendly monsters able to cross blocking lines.&lt;br /&gt;
:*Added arch-vile &amp;quot;ghost&amp;quot; bug emulation for selected maps only.&lt;br /&gt;
:*Added several other MBF features, including {{Class|BetaSkull}}, [[A_FireOldBFG]], and [[DeHackEd]] support of MBF codepointers and actors.&lt;br /&gt;
:*Repaired accuracy of player behavior in &#039;&#039;[[Hexen]]&#039;&#039; with regards to [[jumping]] and pushing enemies away with attacks.&lt;br /&gt;
:*Fixed compatibility issues arising with [[Action Doom]].&lt;br /&gt;
:*Puffs now set their angle to face the originator of the attack.&lt;br /&gt;
:*Added SoulPriestess&#039; patch to force aspect ratio with {{CVAR|R|vid_aspect}}.&lt;br /&gt;
:*Added Spleen&#039;s patch to customize [[railgun]] performances with {{CVAR|R|r_rail_smartspiral}}, {{CVAR|R|r_rail_spiralsparsity}}, and {{CVAR|R|r_rail_trailsparsity}}.&lt;br /&gt;
:*[[UDMF]]: Added per-tier texture scaling with new [[sidedef]] properties and sidedef versions of [[linedef]] flags {{c|wrapmidtex}} and {{c|clipmidtex}}.&lt;br /&gt;
:*Improved [[sky]] projection and [[sky stretching]].&lt;br /&gt;
:*Updated Italian [[LANGUAGE|language]] file.&lt;br /&gt;
:*A whole lot more.&lt;br /&gt;
;{{LE|2.4.1}}{{rev|2126}} (January 24): {{Forum|t=24895|Release thread}} | {{versionlinks|2|4|1}}&lt;br /&gt;
:Bugfix release.&lt;br /&gt;
:*[[Floor_Waggle]] effects are smoother now.&lt;br /&gt;
:*Negative numbers in the [[alternate HUD]] have their minus sign at the right place now.&lt;br /&gt;
:*Menu option scales better in widescreen resolution.&lt;br /&gt;
:*[[Player setup]] menu looks better in non-Doom games.&lt;br /&gt;
:*Moving [[camera]]s work correctly again.&lt;br /&gt;
:*[[Polyobject]]s glitch a bit less now.&lt;br /&gt;
:*The internal nodebuilder works correctly now with certain troublesome maps.&lt;br /&gt;
:*&#039;&#039;[[Strife]]&#039;&#039; conversations fixed and improved.&lt;br /&gt;
:*Many nitpicky fixes in &#039;&#039;Strife&#039;&#039; (switch sounds, messages, etc.).&lt;br /&gt;
:*&#039;&#039;[[Action Doom 2]]&#039;&#039; and &#039;&#039;[[Harmony]]&#039;&#039; can now use idclev, and they have their Autoload section in [[the ini]].&lt;br /&gt;
:*[[MAPINFO]] {{c|ResetInventory}} keyword now works as expected.&lt;br /&gt;
:*The {{CVAR|C|norawinput}} console variable can be set to true to fix input problems while playing a Windows build through {{wp|Wine_(software)|Wine}}.&lt;br /&gt;
:*A [[character input grid]] is available to play ZDoom with a controller without having to use the keyboard.&lt;br /&gt;
:*Added [[GAMEINFO]] lump so that a mod can specify which [[IWAD]] and external resource files it uses.&lt;br /&gt;
;{{LE|2.5.0}}{{rev|2508}} (August 11): {{Forum|t=26755|Release thread}} | {{versionlinks|2|5|0}}&lt;br /&gt;
:*Enhanced [[polyobject]] system, allowing them to move anywhere in the map (like [[Eternity Engine|Eternity]]&#039;s &amp;quot;dynasegs&amp;quot;) and to give them any arbitrary shape. This is accompanied by new [[ACS]] polyobject movement functions.&lt;br /&gt;
:*Support for [[node|uncompressed extended nodes]], also supported by [[Eternity Engine]] and [[PrBoom+]], to create a new cross-port standard for node storage.&lt;br /&gt;
:*Support for using [[Byte Map Font]]s.&lt;br /&gt;
:*Ability to use metadata tags in audio formats to define custom loop points.&lt;br /&gt;
:*Added support for the [[MUSINFO]] lump (from [[Risen3D]] and [[PrBoom+]]).&lt;br /&gt;
:*Improved compatibility settings to allow optionally a greater faithfulness to the [[vanilla Doom]] and vanilla Heretic behaviors.&lt;br /&gt;
:*ZMAPINFO as an alias for [[MAPINFO]] to avoid compatibility problems with other ports parsing this lump.&lt;br /&gt;
:*Full rewrite of the [[SBARINFO]] system allowing many additional features and options.&lt;br /&gt;
:*Added support for multi-monitor display.&lt;br /&gt;
:*default reverbs environment setting in MAPINFO&lt;br /&gt;
:*Several generalized [[action functions|codepointers]] to emulate some very specific &#039;&#039;[[Heretic]]&#039;&#039; and &#039;&#039;[[Hexen]]&#039;&#039; action functions&lt;br /&gt;
:*New functions to refine actor behavior through&lt;br /&gt;
:*Enhanced [[poison]] damage system&lt;br /&gt;
:*Generalized [[railgun]] codepointers&lt;br /&gt;
:*New [[automap options]]&lt;br /&gt;
:*[[Hall of mirrors|HOM]] detection system&lt;br /&gt;
:*New [[console commands]]&lt;br /&gt;
:*The usual bug fixes and minor enhancements.&lt;br /&gt;
&lt;br /&gt;
==2011==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==2012==&lt;br /&gt;
;{{LE|2.6.0}}{{rev|3730}} (July 2): {{Forum|t=33295|Release thread}} | {{versionlinks|2|6|0}}&lt;br /&gt;
:*Added [[Hacx]] IWAD support.&lt;br /&gt;
:*Added text-format Strife conversation system with [[USDF]] and [[ZSDF]].&lt;br /&gt;
:*A textured [[automap]] is now available; automap graphics are now [[map arrow|externalized]].&lt;br /&gt;
:*Rewritten [[menu]] system, which can now be defined with the [[MENUDEF]] lump.&lt;br /&gt;
:*Externalized intermissions to [[MAPINFO]].&lt;br /&gt;
:*Externalized [[IWAD]] detection and gave each IWAD its own independent config section.&lt;br /&gt;
:*Added [[FluidSynth]] and [[GUS|GUS emulator]] softsynths; fixed issues with [[TiMidity++]].&lt;br /&gt;
:*Added [[VOC]] support and enhanced [[MIDI]] playback with support for alternative formats such as [[XMI]] and [[HMI]].&lt;br /&gt;
:*[[Action specials]]: Added [[Ceiling_LowerAndCrushDist]] and [[Thing_SetConversation]]. Added [[console command]] to execute specials.&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
::*Increased maximum script number from 999 to 32767.&lt;br /&gt;
::*[[Named script]]s allow to avoid script number conflicts.&lt;br /&gt;
::*Added [[StrCpy]], [[CheckSight]], [[SetActivator]], [[SetPointer]] functions.&lt;br /&gt;
::*Added [[ACS actor properties|APROP_ScaleX/Y]] and APROP_Mass actor properties.&lt;br /&gt;
::*Added temporary dynamic strings variables with [[StrParam]].&lt;br /&gt;
::*Scripts can now have up to four parameters.&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
::*Added [[A_CheckFlag]], [[A_FaceMaster]], [[A_FaceTracer]], [[A_RadiusGive]], [[A_SetMass]], [[A_SetScale]], [[A_Warp]] and [[A_WolfAttack]]...&lt;br /&gt;
::*Enhanced [[A_AlertMonsters]], [[A_BFGSpray]], [[A_Blast]], [[A_CustomBulletAttack]], [[A_FireBullets]], [[A_GunFlash]], [[A_PainAttack]], [[A_RadiusThrust]]...&lt;br /&gt;
::*Added an [[actor pointer]] manipulation system with several new codepointers...&lt;br /&gt;
::*Added {{Flag|DOHARMSPECIES}}, {{Flag|DONTCORPSE}}, {{Flag|SEEINVISIBLE}} and {{Flag|INVENTORY.UNTOSSABLE}}&lt;br /&gt;
::*Increased [[damage type]] flexibility in several ways with {{Property|DeathType}} and {{Property|PainType}}.&lt;br /&gt;
::*Added customizable {{Class|ArtiPoisonBag|fléchettes}}.&lt;br /&gt;
::*Made [[accuracy]] and [[stamina]] accessible through [[DECORATE expressions]].&lt;br /&gt;
::*Added {{Property|ProjectileKickback}}, {{Property|Inventory.RestrictedTo}} and {{Property|Inventory.ForbiddenTo}} class-based properties.&lt;br /&gt;
::*Backported {{Property|VisibleToTeam}}, {{Property|VisibleToPlayerClass}} and weapon {{Property|DropItem}} feature from [[Skulltag]], and enhanced them.&lt;br /&gt;
::*Added &amp;quot;Fast&amp;quot; keyword for states and deprecated the unreliable {{Flag|FASTER}} and {{Flag|FASTMELEE}} flags.&lt;br /&gt;
:*Added a [[SECRETS|secret hint system]].&lt;br /&gt;
:*[[3D floor]]s support.&lt;br /&gt;
:*[[FraggleScript]] support.&lt;br /&gt;
:*[[Voxel]] support.&lt;br /&gt;
:*[[SBARINFO]]: Ammo 1/2 capacities added to DrawNumber, support for color names in colored text.&lt;br /&gt;
:*[[SNDINFO]]: Added {{sndinfo|musicalias}} and {{sndinfo|attenuation}}.&lt;br /&gt;
:*Compatibility: fixed issues with {{dw|Eternal Doom}}, [[Happy Time Circus]], {{dw|Phobos_(WAD)|Phobos}}, vanilla compat, [[Boom]] compat, light levels higher than 255, [[Heretic]], [[Strife]], [[MUSINFO]], misnamed UDMF field.&lt;br /&gt;
:*Fixed loading of [[BMF]] palettes.&lt;br /&gt;
:*{{CCMD|O|restart}} console command.&lt;br /&gt;
:*Added [[PALVERS]] lump.&lt;br /&gt;
:*Custom [[IWAD]]s no longer need to include a [[COLORMAP]], as ZDoom will generate one automatically if it is missing.&lt;br /&gt;
:*Fixed vertical tiling of non-power-of-two textures.&lt;br /&gt;
:*Fixed blockmap overflows in huge maps with help from [[Mocha Doom|Maes]] and [[PrBoom+|Entryway]].&lt;br /&gt;
:*Joystick support for non-Windows platforms.&lt;br /&gt;
:*As always, a plethora of bug fixes and minor enhancements.&lt;br /&gt;
&lt;br /&gt;
;{{LE|2.6.1}}{{rev|3794}} (July 28): {{Forum|t=33547|Release thread}} | {{versionlinks|2|6|1}}&lt;br /&gt;
:*Added [[Hacx]] 2.0 IWAD support.&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
::*Added [[ACS_NamedExecuteWait]] and [[NamedScriptWait]].&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
::*Added {{Flag|INVENTORY.RESTRICTABSOLUTELY}} and {{Flag|PLAYERPAWN.CANSUPERMORPH}}.&lt;br /&gt;
:*[[MAPINFO]]:&lt;br /&gt;
::*Added RandomPlayerStarts and UsePlayerStartZ flags for [[map definition]]s.&lt;br /&gt;
:*Solved compatibility issue with [[Massmouth 2]].&lt;br /&gt;
:*[[Voxel]]s are now rotated by 90° to match their orientation in Slab6 and [[Build]] games.&lt;br /&gt;
&lt;br /&gt;
==2013==&lt;br /&gt;
;{{LE|2.7.0}}{{rev|4342}} (June 8): {{Forum|t=36456|Release thread}} | {{versionlinks|2|7|0}}&lt;br /&gt;
:*Added [[Floor_RaiseAndCrushDoom]].&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
::*Made dynamic strings persistent. ACS can now safely generate up to one million new strings.&lt;br /&gt;
::*Added [[CheckFont]], [[GetCVarString]], [[GetUserCVar]], [[GetUserCVarString]], [[IsTIDUsed]], [[LineAttack]], [[SetCVar]], [[SetCVarString]], [[SetUserCVar]], [[SetUserCVarString]], [[SpawnDecal]], and [[UniqueTID]].&lt;br /&gt;
::*Added HUD layers, visibility flags, additive blending, and alpha parameter to [[HudMessage]] and [[HudMessageBold]].&lt;br /&gt;
::*Also added HUD message wrapping and clipping with [[SetHudClipRect]] and [[SetHudWrapWidth]].&lt;br /&gt;
::*Added PLAYERINFO_FOV and _DESIREDFOV to [[GetPlayerInfo]].&lt;br /&gt;
::*Added support for desaturated [[translation]]s.&lt;br /&gt;
::*Added [[Sqrt]], [[FixedSqrt]], and [[VectorLength]] functions.&lt;br /&gt;
::*Support for advanced structures from non-ACC compilers.&lt;br /&gt;
::*Added the ability to retrieve the {{Property|ReactionTime}}, {{Property|Height}} and {{Property|Radius}} properties through [[GetActorProperty]].&lt;br /&gt;
::*Added CHANGELEVEL_PRERAISEWEAPON to [[ChangeLevel]].&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
::*{{Flag|FLOATBOB}} things are no longer moved physically when bobbing.&lt;br /&gt;
::*Added {{Property|Player.FallingScreamSpeed}}, {{Property|Player.GruntSpeed}}, {{Property|Weapon.MinSelectionAmmo1}}, and {{Property|Weapon.MinSelectionAmmo2}}.&lt;br /&gt;
::*Added random state duration and [[A_SetTics]].&lt;br /&gt;
::*[[A_Explode]]&#039;s &#039;&#039;affectsource&#039;&#039; parameter has been turned into a flag. Plus, added NOTMISSILE flag to A_Explode as well as to [[A_RadiusThrust]].&lt;br /&gt;
::*[[A_RadiusThrust]] can use negative &#039;&#039;force&#039;&#039; values.&lt;br /&gt;
::*Added [[A_JumpIfTargetInsideMeleeRange]], [[A_JumpIfTargetOutsideMeleeRange]], [[A_SetDamageType]], and [[A_CheckLOF]].&lt;br /&gt;
::*Added {{Flag|INVENTORY.NEVERRESPAWN}}, {{Flag|INVENTORY.NOSCREENFLASH}}, {{Flag|POWERSPEED.NOTRAIL}}, and {{Flag|PLAYERPAWN.CROUCHABLEMORPH}}.&lt;br /&gt;
::*Added JLOSF_NOAUTOAIM flag to [[A_JumpIfTargetInLOS]].&lt;br /&gt;
::*Added WRF_DISABLESWITCH to [[A_WeaponReady]].&lt;br /&gt;
::*[[A_Light]] can use negative values to darken the scene.&lt;br /&gt;
::*Added NORANDOMPUFFZ flag to [[A_CustomPunch]], [[A_FireBullets]], and [[A_CustomBulletAttack]].&lt;br /&gt;
::*Added SXF_USEBLOODCOLOR, SXF_CLEARCALLERTID, SXF_MULTIPLYSPEED, SXF_TRANSFERSCALE, SXF_TRANSFERSPECIAL, and SXF_CLEARCALLERSPECIAL flags to [[A_SpawnItemEx]].&lt;br /&gt;
::*Added the ability to adjust the vertical offset of a rail attack to [[A_RailAttack]] and [[A_CustomRailgun]].&lt;br /&gt;
::*Player-fired seeker [[Projectile|missiles]]&#039; range at which the missiles initially lock-on a [[Actor pointer|tracer]] can be set via {{Property|MaxTargetRange}} actor property.&lt;br /&gt;
::*{{Property|ReactionTime}} added to [[DECORATE expressions]].&lt;br /&gt;
::*Added [[Actor states#NoDelay|NoDelay]] state flag.&lt;br /&gt;
::*Added [[Actor_states#States|Bounce]] actor states.&lt;br /&gt;
::*Fixed few cases of DECORATE definitions inaccuracies for [[Doom]], [[Heretic]], [[Hexen]] and [[Strife]] actors.&lt;br /&gt;
:*[[FONTDEFS]]: Backported SPACEWIDTH from [[ECWolf]].&lt;br /&gt;
:*[[LANGUAGE]]: Brazilian Portuguese support.&lt;br /&gt;
:*[[MAPINFO]]: Added ForgetState, RememberState, and SpawnWithWeaponRaised flags for [[map definition]]s and NoRandomPlayerclass for [[GameInfo definition]]s.&lt;br /&gt;
:*[[MIDI]]: [[FluidSynth]] now recognize {{c|libfluidsynth.dll}} as a valid alias for {{c|fluidsynth.dll}}, various FluidSynth [http://forums.scummvm.org/viewtopic.php?p=72972#72972 tweaks] and fixes. The [[OPL emulator]] now can use either OPL2 or OPL3 emulation, supports full stereo panning and can use up to eight virtual chips.&lt;br /&gt;
:*Updated [[foo_DUMB]].&lt;br /&gt;
:*Implemented additive rendering for [[3D floor]]s.&lt;br /&gt;
:*Added &#039;&#039;{{wp|Quake (video game)|Quake}}&#039;&#039;-like no-clipping with {{CCMD|D|noclip2}}.&lt;br /&gt;
:*Exported the [[scoreboard]] text to [[LANGUAGE]].&lt;br /&gt;
:*The sound system should now precache nearly all sounds used by actor properties and [[ambient sound]]s, and the [[MAPINFO/Map definition|MAPINFO]] command &amp;quot;PrecacheSounds&amp;quot; can be used to precache other sounds.&lt;br /&gt;
:*Arbitrary FPS cap with {{CVAR|R|vid_maxfps}}.&lt;br /&gt;
:*Increased maximum resolution to 5760&amp;amp;times;3600.&lt;br /&gt;
:*Added {{c|lightfog}} property for [[sidedef]]s.&lt;br /&gt;
:*Added support for {{dw|Doom 3: BFG Edition}}&#039;s modified [[IWAD]]s, including {{dw|No Rest for the Living}}.&lt;br /&gt;
:*Improved [[WAD]] archive code with support for big-endian format and LZSS compression used in several console ports.&lt;br /&gt;
:*Added ability in [[UDMF]] to specify things to spawn by [[:Category:Thing specials|thing specials]] and [[Hexen breakable items]] by names with {{c|arg1str}}, as well as the ability to set initial values to a thing&#039;s [[user variable]].&lt;br /&gt;
:*Added new [[node]] format for complex UDMF maps which need fractional precision on node splitters.&lt;br /&gt;
:*The [[alternate HUD]] now features a {{Class|Berserk}} indicator and a customizable time display.&lt;br /&gt;
:*Tweaked {{Class|ScriptedMarine|scripted marines}}.&lt;br /&gt;
:*Added {{c|{{CCMD|D|acsprofile}}}} [[CCMDs|console command]].&lt;br /&gt;
:*[[Weapon slots]] can be configured from the [[Customize controls]] menu.&lt;br /&gt;
:*Solved compatibility issues with [[Daedalus: Alien Defense]], {{dw|Community Chest 3}}, Nuke Mine, Khorus, [[Void]], the {{dw|Master Levels}}, and {{dw|Claustrophobia 1024}}.&lt;br /&gt;
:*{{Class|RandomSpawner}}s now respect {{param|nomonsters}}.&lt;br /&gt;
:*Added the ability to define mod-specific [[CVARs|console variables]] through the addition of the [[CVARINFO]] lump.&lt;br /&gt;
:*Fixed miscellaneous bugs.&lt;br /&gt;
&lt;br /&gt;
;{{LE|2.7.1}}{{cs|21efe3b}} (July 3): {{Forum|t=36679|Release thread}} | {{versionlinks|2|7|1}}&lt;br /&gt;
&#039;&#039;Note: this is the first version based on the [[Git repository]]; 2.7.0 was the last version based on the SVN repository.&#039;&#039;&lt;br /&gt;
* Added new additive [[MAPINFO/GameInfo definition|GameInfo]] keywords: AddCreditPage, AddPlayerClasses, and AddInfoPage.&lt;br /&gt;
* Added a new {{Flag|DONTDRAIN}} flag to mark actors as ineligible for vampirism attacks.&lt;br /&gt;
* [[Automatic compatibility|Compatibility]] fixes for [[Ultimate Simplicity]] map07, [[Cheogsh]] map01, [[Super Sonic Doom]] map31&lt;br /&gt;
* [[Polyobject]] mirror numbers can no longer be changed with [[SetLineSpecial]]. This was never a supported feature and caused problems for legitimate uses of SetLineSpecial on polyobject lines.&lt;br /&gt;
* The powered-up {{Class|GoldWand|Gold Wand}} was not puffing on actors.&lt;br /&gt;
* Disabled [[Heretic]]&#039;s punishment [[cheat]]s when in {{CVAR|C|allcheats}} mode.&lt;br /&gt;
* Objects that explode on death no longer deal the damage they were dealt instead of their own.&lt;br /&gt;
* Vampirism attacks now respect damage reduction.&lt;br /&gt;
* [[Demo]] recording now writes correct user info to demos.&lt;br /&gt;
* ACS&#039;s [[PlaySound]] for looping sounds now works properly when using channel flags.&lt;br /&gt;
&lt;br /&gt;
==2014==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==2015==&lt;br /&gt;
&#039;&#039;No release this year.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==2016==&lt;br /&gt;
;{{LE|2.8.0}}{{cs|56359b6f233f538b8cbcec093af93a19d66fabed}} (February 3): {{Forum|t=50712|Release thread}} | {{versionlinks|2|8|0}}&lt;br /&gt;
:*Improved netcode and added [[network options]] menu to configure new features.&lt;br /&gt;
:*Native Cocoa back end for OS X resulting in significant increases in performance over SDL in addition to better overall user experience.&lt;br /&gt;
:*Added a new [[software synthesizer]], [[WildMIDI]], and a new [[OPL]] core.&lt;br /&gt;
:*Two new cheats, god2 and buddha2. The player cannot die from telefrag damage with these.&lt;br /&gt;
:*Four new keybinds for DECORATE use with weapons (see {{c|[[A_WeaponReady]]}}&#039;s User states.)&lt;br /&gt;
:*Overhauled [[sector type]]s and properties. Sectors have several new UDMF properties.&lt;br /&gt;
:*[[ACS]]:&lt;br /&gt;
::*Added {{c|[[DropItem]]}}, {{c|[[DropInventory]]}}, {{c|[[CheckFlag]]}}, {{c|[[GetLineActivation]]}}, {{c|[[GetMaxInventory]]}}, {{c|[[SetLineActivation]]}}, {{c|[[GetArmorInfo]]}}, {{c|[[GetActorPowerupTics]]}}, {{c|[[IsPointerEqual]]}}, {{c|[[ChangeActorAngle]]}}, {{c|[[ChangeActorPitch]]}}, {{c|[[PickActor]]}}, {{c|[[SetSectorDamage]]}}, {{c|[[QuakeEx]]}}, {{c|[[Warp]]}} and {{c|[[CanRaiseActor]]}}  functions.&lt;br /&gt;
::*Added FHF_NORANDOMPUFFZ flag for {{c|[[LineAttack]]}}.&lt;br /&gt;
::*Added BLOCKF_HITSCAN flag for {{c|[[Line_SetBlocking]]}}.&lt;br /&gt;
::*Added {{c|APROP_ViewHeight}}, {{c|APROP_AttackZOffset}} and {{c|APROP_StencilColor}} [[ACS actor properties]].&lt;br /&gt;
::*Fixed potential desync with {{c|[[CheckPlayerCamera]]}}.&lt;br /&gt;
::*Fixed: {{c|[[Thing_SetGoal]]}} could put an actor&#039;s target and goal out of sync.&lt;br /&gt;
::*{{c|[[GetSectorFloorZ]]}} and {{c|[[GetSectorCeilingZ]]}} now interpret 0-tag as &#039;any sector&#039; and return the z-height of whatever sector is at those coordinates.&lt;br /&gt;
::*[[Arrays]] are now supported at the script scope.&lt;br /&gt;
:*[[ANIMDEFS]]:&lt;br /&gt;
::*Added an optional {{c|worldpanning}} flag for camera textures definitions in order to make camera textures pan in world units instead of texture units.&lt;br /&gt;
::*Added {{c|allowdecals}} option to animated doors.&lt;br /&gt;
:*[[DECORATE]]:&lt;br /&gt;
::*Added {{c|{{Property|Player.UseRange}}}} and {{c|{{Property|Player.AirCapacity}}}} [[player properties]].&lt;br /&gt;
::*The following functions have been given additional functionalities: {{c|[[A_AlertMonsters]]}}, {{c|[[A_BFGSpray]]}}, {{c|[[A_ChangeVelocity|A_Change]]/[[A_ScaleVelocity|ScaleVelocity]]}}, {{c|[[A_CustomPunch]]}}, {{c|[[A_SetAngle]]}} and {{c|[[A_SetPitch]]}}, {{c|[[A_DamageMaster]]/[[A_DamageChildren|Children]]/[[A_DamageSiblings|Siblings]]}}, {{c|[[A_KillMaster]]/[[A_KillChildren|Children]]/[[A_KillSiblings|Siblings]]}}, {{c|[[A_Log]]}}, {{c|[[A_Print]]}}, {{c|[[A_PrintBold]]}}, {{c|[[A_RadiusGive]]}}, {{c|[[A_Saw]]}}, {{c|[[A_SetScale]]}}, {{c|[[A_SetTics]]}}, {{c|[[A_SpawnItemEx]]}}, {{c|[[A_Teleport]]}}, {{c|[[A_VileAttack]]}}, {{c|[[A_Warp]]}}, {{c|[[A_WeaponReady]]}}.&lt;br /&gt;
::*Added {{Flag|NOFORWARDFALL}}, {{Flag|NOTONAUTOMAP}}, {{Flag|RELATIVETOFLOOR}}, {{Flag|NEVERTARGET}}, {{Flag|NOTELESTOMP}}, {{Flag|ALWAYSTELEFRAG}}, {{Flag|ALLOWPAIN}}, {{Flag|CAUSEPAIN}}, {{Flag|DONTTHRUST}}, {{Flag|BUDDHA}}, {{Flag|FOILBUDDHA}}, {{Flag|MIRRORREFLECT}}, {{Flag|AIMREFLECT}}, {{Flag|THRUREFLECT}}, {{Flag|HARMFRIENDS}}, {{Flag|NOFORWARDFALL}}, {{Flag|HITTARGET}}, {{Flag|HITMASTER}}, {{Flag|HITTRACER}}, {{Flag|WEAPONSPAWN}} and {{Flag|INVENTORY.TOSSED}} [[actor flags]].&lt;br /&gt;
::*{{Flag|MTHRUSPECIES}} now works with [[A_BFGSpray]] and rail attacks.&lt;br /&gt;
::*Added {{c|[[A_DamageSelf]]/[[A_DamageTarget|Target]]/[[A_DamageTracer|Tracer]]}}, {{c|[[A_Remove]]/[[A_RemoveSiblings|Siblings]]/[[A_RemoveTarget|Target]]/[[A_RemoveTracer|Tracer]]}}, {{c|[[A_KillTarget]]/[[A_KillTracer|Tracer]]}}, {{c|[[A_DropItem]]}}, {{c|[[A_SetSpeed]]}}, {{c|[[A_SetHealth]]}}, {{c|[[A_ResetHealth]]}}, {{c|[[A_SetFloatBobPhase]]}}, {{c|[[A_SetRoll]]}}, {{c|[[A_SetTeleFog]]}}, {{c|[[A_GiveToChildren|A_GiveTo]]/[[A_TakeFromChildren|TakeFromChildren]]}}, {{c|[[A_GiveToSiblings|A_GiveTo]]/[[A_TakeFromSiblings|TakeFromSiblings]]}}, {{c|[[A_JumpIfHigherOrLower]]}},  {{c|[[A_SetFloatSpeed]]}}, {{c|[[A_SetSpecies]]}}, {{c|[[A_CheckBlock]]}}, {{c|[[A_CheckProximity]]}}, and {{c|[[A_QuakeEx]]}} [[action functions]].&lt;br /&gt;
::*Players with the NODAMAGE flag cannot be telefragged anymore, nor can they take any damage via voodoo dolls.&lt;br /&gt;
::*The amount of health regeneration gained from a {{c|{{Class|PowerRegeneration}}}} powerup can be controlled with the {{c|{{Property|Powerup.Strength}}}} property.&lt;br /&gt;
::*Improved the {{c|[[Actor states#NoDelay|NoDelay]]}} state flag reliability.&lt;br /&gt;
::*Added {{c|Subtract}} render style.&lt;br /&gt;
::*Different types of {{Class|HereticImp|gargoyles}} and {{Class|Mummy|golems}} could infight amongst themselves (original &#039;&#039;[[Heretic]]&#039;&#039; behavior).&lt;br /&gt;
::*Added {{c|[[Actor states#CanRaise|CanRaise]]}} and {{c|[[Actor states#Slow|Slow]]}} actor [[actor states#State keywords|state flags]].&lt;br /&gt;
:*[[LANGUAGE]]:&lt;br /&gt;
::*Externalized &amp;quot;New save game&amp;quot; line for save screen, and [[automap]] statistics display.&lt;br /&gt;
:*[[MAPINFO]]:&lt;br /&gt;
::*Custom colors for both modes of the automap can be set on per-mod basis.&lt;br /&gt;
::*Added {{c|SlowMonsters}}, {{c|HealthFactor}}, {{c|NoInfighting}} and {{c|TotalInfighting}} [[skill definition]]s property.&lt;br /&gt;
:*[[SBARINFO]]:&lt;br /&gt;
::*Extended {{c|[[DrawImage]]}} command.&lt;br /&gt;
:*[[SNDINFO]]:&lt;br /&gt;
::*Fixed incorrect {{Class|Minotaur|Maulotaur}} melee attack sound.&lt;br /&gt;
:*Added [[Ceiling_CrushAndRaiseSilentDist]]&lt;br /&gt;
:*Added a user-settable factor for [[earthquake]] intensity.&lt;br /&gt;
:*New type of [[earthquake]], can only be accessed with [[A_QuakeEx]] or its [[QuakeEx|ACS equivalent]], which can replicate the shaking effect seen in many recent games instead of random camera offsets using the QF_WAVE flag. Quakes can now be scaled in, out, or mixed up. Both wave and regular quakes work together.&lt;br /&gt;
:*Non-countable monster actors can have their own separate automap color.&lt;br /&gt;
:*Added a {{c|{{CCMD|O|closemenu}}}} [[CCMDs|console command]], so that menu options that close the [[menu]] can be added.&lt;br /&gt;
:*Menu&#039;s back button and the pause sign can be animated.&lt;br /&gt;
:*Added {{c|blockhitscan}} and {{c|transparent}} [[linedef|line]] properties, {{c|waterzone}} [[sector]] property, and {{c|alpha}}, {{c|fillcolor}}, {{c|gravity}}, {{c|health}}, {{c|pitch}}, {{c|renderstyle}}, {{c|roll}}, {{c|scale}}, {{c|scalex}}, {{c|scaley}} and {{c|score}} [[thing]] properties for [[Universal Doom Map Format|UDMF]].&lt;br /&gt;
:*Extended {{c|{{CVAR|A|am_cheat}}}} with three modes to prevent lines flagged as &#039;&#039;hidden&#039;&#039; from being shown on the automap.&lt;br /&gt;
:*Added separate colors for the various types of 2-sided walls for the overlay automap, as well as colors missing from that mode.&lt;br /&gt;
:*The behavior of auto-loading external [[DEHACKED]] lumps can be controlled by setting the {{c|dehload}} [[CVARs|console variable]].&lt;br /&gt;
:*Results for console tab-completion are now color-coded; console commands appear blue, console variables green, and aliases red.&lt;br /&gt;
:*Actors sprites can be shown on the automap instead of simple triangles when the second, third, fifth or sixth modes of {{c|am_cheat}} console variable are enabled.&lt;br /&gt;
:*Added compatibility settings for &#039;&#039;[[Cheogsh 2]]&#039;&#039; and &#039;&#039;XtheaterIII&#039;&#039;.&lt;br /&gt;
:*Fixed: the {{c|{{CVAR|R|wi_noautostartmap}}}} console variable was not sync-safe.&lt;br /&gt;
:*Added {{c|{{CVAR|C|sv_freelook}}}}, {{c|{{CVAR|C|sv_allowfreelook}}}} and {{c|{{CVAR|C|sv_nofreelook}}}}&lt;br /&gt;
:*Added support for standard file paths on Windows.&lt;br /&gt;
:*Removed [[Polymost]] code.&lt;br /&gt;
:*Fixed miscellaneous bugs.&lt;br /&gt;
&lt;br /&gt;
==Next version==&lt;br /&gt;
The following additions are available in [[Git]] builds, but not yet in an official version.&lt;br /&gt;
&lt;br /&gt;
* The scripting branch, which lays some groundwork for DoomScript™.&lt;br /&gt;
** [[DECORATE]] states can contain multiple action functions enclosed in braces, and can use &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; blocks.&lt;br /&gt;
* {{Forum|t=46916|Portals}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://sourceforge.net/projects/zdoom/files/ Sourceforge archive] Unofficial mirror for ZDoom versions&lt;br /&gt;
* [https://github.com/doomtech/zdoom-old GitHub archive] Unofficial repository of pre-SVN source code&lt;br /&gt;
[[Category:Nostalgia]][[Category:ZDoom]]&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Animated_door&amp;diff=40647</id>
		<title>Animated door</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Animated_door&amp;diff=40647"/>
		<updated>2016-01-03T04:46:11Z</updated>

		<summary type="html">&lt;p&gt;Eevee: the ceiling moves FIRST&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An &#039;&#039;&#039;animated door&#039;&#039;&#039; is a feature originating from &#039;&#039;[[Strife]]&#039;&#039; and completing some unfinished and unused code in &#039;&#039;[[Doom]]&#039;&#039; meant to create &#039;&#039;Wolfenstein 3D&#039;&#039;-style sliding doors.&lt;br /&gt;
&lt;br /&gt;
An animated door is created with the special [[Door_Animated]] and the [[ANIMDEFS#Animated_doors|ANIMDEFS]] lump.&lt;br /&gt;
&lt;br /&gt;
Contrarily to [[polyobject]]s, which can be used to implement actual sliding doors, an animated door is a variant of the [[vertical door]]: the sector must have a height of zero, and the door texture is placed on the upper texture. While opening, the door sector&#039;s ceiling instantly raises and sets the &amp;quot;Impassable&amp;quot; flag on both sides, then plays the opening animation (as defined in ANIMDEFS), at the end of which the &amp;quot;Impassable&amp;quot; flag is removed. While closing, the reverse happens: the lines are set blocking, the animation is played backwards, the ceiling is instantly lowered, and the lines are set unblocking.&lt;br /&gt;
&lt;br /&gt;
If a solid actor blocks the door&#039;s closing movement, the door remains open. Contrarily to vertical doors and polyobjects, it will not start to move and abort, since the movement itself is instantaneous and silent.&lt;br /&gt;
&lt;br /&gt;
The door&#039;s [[sound sequence]] is determined by its texture animation. It cannot be overridden by a [[sound sequence thing]] since it is not a property of the sector.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Only two [[linedef]]s will be animated; the one activated and the first two-sided line found with the same texture belonging also to the door sector. Doors with more complex shapes than the usual thin rectangle (such as a cross-shaped connection between four sectors) will not behave correctly.&lt;br /&gt;
[[Category:Features]][[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Door_Animated&amp;diff=40646</id>
		<title>Door Animated</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Door_Animated&amp;diff=40646"/>
		<updated>2016-01-03T04:43:35Z</updated>

		<summary type="html">&lt;p&gt;Eevee: whoops, ceiling is raised first&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Door_Animated}}&lt;br /&gt;
{{Special|14|tag, speed, delay, lock|Door|Animated}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;tag&#039;&#039;: Tag of affected sector &lt;br /&gt;
* &#039;&#039;speed&#039;&#039;: Duration of each frame in the door animation, in [[Definitions#Units_of_time|tics]]&lt;br /&gt;
* &#039;&#039;delay&#039;&#039;: Tics until door closes &lt;br /&gt;
* &#039;&#039;lock&#039;&#039;: Required key (See [[Key types]])&lt;br /&gt;
&lt;br /&gt;
Opens the affected sector like a door, but instead of raising the ceiling visibly, it instantly raises the ceiling and then plays a texture animation on the front sides of the door sector.  This is used by ZDoom to manage [[Strife]]&#039;s [[Animated door|animated doors]].&lt;br /&gt;
&lt;br /&gt;
There are a few limitations to observe:&lt;br /&gt;
# The sector must be set up like a normal door, that is, its ceiling height should be equal to its floor height.&lt;br /&gt;
# The texture to be used must be defined in the [[ANIMDEFS]] lump.&lt;br /&gt;
# The door sector may only have 2 sides which face another sector.&lt;br /&gt;
# Those 2 sides must have the same texture.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
Here is an example of ANIMDEFS definition for a Strife door:&lt;br /&gt;
 animateddoor  SIGLDR01&lt;br /&gt;
 	opensound DoorOpenLargeMetal&lt;br /&gt;
 	closesound DoorCloseLargeMetal&lt;br /&gt;
 	pic SIGLDR01 &lt;br /&gt;
 	pic SIGLDR02 &lt;br /&gt;
 	pic SIGLDR03 &lt;br /&gt;
 	pic SIGLDR04 &lt;br /&gt;
 	pic SIGLDR05  &lt;br /&gt;
 	pic SIGLDR06 &lt;br /&gt;
 	pic SIGLDR07 &lt;br /&gt;
 	pic SIGLDR08 &lt;br /&gt;
The Strife linetypes 144 and 207 are translated to this:&lt;br /&gt;
 Door_Animated (0, 4, 3*35)&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=ANIMDEFS&amp;diff=40645</id>
		<title>ANIMDEFS</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=ANIMDEFS&amp;diff=40645"/>
		<updated>2016-01-03T04:33:04Z</updated>

		<summary type="html">&lt;p&gt;Eevee: mention Door_Animated&amp;#039;s speed arg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ANIMDEFS&#039;&#039;&#039; is ZDoom&#039;s [[Hexen]]-derived answer to [[BOOM]]&#039;s [[ANIMATED]] and [[SWITCHES]] [[lump]]s. ANIMDEFS provides additional flexibility, allowing one to not only animate textures with any amount of images at any rate of animation, and not only to make standard Doom-style on/off switch textures, but to combine the two. Switches can be animated like textures, and can even be set to play sounds (which must be defined in [[SNDINFO]]) at any given point during the animation. Textures are not necessarily actual textures, but can also be used for HUD graphics. [[Strife]]-style &#039;&#039;&#039;animated doors&#039;&#039;&#039; and &#039;&#039;&#039;camera textures&#039;&#039;&#039; can also be created with this lump.&lt;br /&gt;
&lt;br /&gt;
ANIMDEFS, like ANIMATED, should be provided in a [[WAD]] only once, unlike compiled [[scripts]] contained in [[BEHAVIOR]] lumps, which are level-specific. An ANIMDEFS lump, when loaded, will apply to all maps played in any given gameplay session, and therefore will apply to all levels within a given WAD.&lt;br /&gt;
&lt;br /&gt;
Although all ANIMDEFS commands allow you to specify textures by lump offset from the base texture it is not recommended to do this. Use real texture names whenever possible as this is more robust and doesn&#039;t depend on lump ordering in a WAD. The index method is only maintained for backwards compatibility with Hexen and older ZDoom WADs.&lt;br /&gt;
&lt;br /&gt;
Multiple ANIMDEFS lumps are cumulative: all such lumps will be parsed in the order in which they are loaded.&lt;br /&gt;
&lt;br /&gt;
The followings commands can be used in an ANIMDEFS lump:&lt;br /&gt;
&lt;br /&gt;
== Animated graphics ==&lt;br /&gt;
*&#039;&#039;&#039;TEXTURE&#039;&#039;&#039;/&#039;&#039;&#039;FLAT&#039;&#039;&#039; [optional] &amp;lt;&#039;&#039;name&#039;&#039;&amp;gt;:&lt;br /&gt;
:Starts a new animation definition. TEXTURE defines a wall texture animation, FLAT a flat animation. This is something of a moot point though, since &#039;flat&#039; and &#039;texture&#039; are interchangeable in versions of ZDoom from 2.0.48 and up. The only difference is the search order in the case of duplicate names, see [[namespace]] for more information. &lt;br /&gt;
:If the &amp;quot;&#039;&#039;&#039;optional&#039;&#039;&#039;&amp;quot; keyword is used, no warnings are issued if the needed lumps are not found.&lt;br /&gt;
:Both flat and texture support the same commands:&lt;br /&gt;
:*&#039;&#039;&#039;PIC&#039;&#039;&#039; &amp;lt;&#039;&#039;number&#039;&#039;|&#039;&#039;name&#039;&#039;&amp;gt; &#039;&#039;&#039;tics&#039;&#039;&#039; &amp;lt;duration&amp;gt; | &#039;&#039;&#039;rand&#039;&#039;&#039; &amp;lt;&#039;&#039;min&#039;&#039; &#039;&#039;max&#039;&#039;&amp;gt;&lt;br /&gt;
::Defines one animation frame. The texture used for it can either be specified as an index (with the base texture being index 1 and each subsequent index the following texture in the list) or as a name. If the frame texture is specified by index it is not necessary to order the indices in any way and you also can use the same index multiple times in the sequence. If the frame texture is specified by name, order in the WAD or TEXTUREx lump is irrelevant. The duration for each frame can either be specified as a constant value or as a range in which the duration is randomly selected. To specify a constant duration, add &#039;&#039;&#039;&#039;tics&#039;&#039;&#039; &amp;lt;&#039;&#039;duration&#039;&#039;&amp;gt;&#039; to the definition. For a random interval, add &#039;&#039;&#039;&#039;rand&#039;&#039;&#039; &amp;lt;&#039;&#039;min&#039;&#039; &#039;&#039;max&#039;&#039;&amp;gt;&#039;. &#039;&#039;min&#039;&#039; and &#039;&#039;max&#039;&#039; define the minimum and maximum values of the frame&#039;s duration. Only the base picture of the animation will animate if an animation is defined like this. Unlike most other places in the engine where you can specify tics for duration, the value may be fractional (e.g. 4.3 tics) instead of whole tics.  This is because texture animations are controlled by the renderer timer instead of the play timer, which allows them finer accuracy.&lt;br /&gt;
:*&#039;&#039;&#039;RANGE&#039;&#039;&#039; &amp;lt;&#039;&#039;name&#039;&#039;|&#039;&#039;number&#039;&#039;&amp;gt; &#039;&#039;&#039;tics&#039;&#039;&#039; &amp;lt;&#039;&#039;duration&#039;&#039;&amp;gt; | &#039;&#039;&#039;rand&#039;&#039;&#039; &amp;lt;&#039;&#039;min&#039;&#039; &#039;&#039;max&#039;&#039;&amp;gt; | &#039;&#039;&#039;Oscillate&#039;&#039;&#039;&lt;br /&gt;
:: Defines an animation range. &amp;lt;&#039;&#039;number&#039;&#039;&amp;gt; or &amp;lt;&#039;&#039;name&#039;&#039;&amp;gt; defines the last picture in the animation. This is either specified as a texture name or an offset from the base texture. Note that if you specify a number &#039;&#039;n&#039;&#039;, the animation will have &#039;&#039;n&#039;&#039;+1 frames. You can use &#039;&#039;&#039;&#039;tics&#039;&#039;&#039;&#039; and &#039;&#039;&#039;&#039;rand&#039;&#039;&#039;&#039; as with &#039;&#039;&#039;PIC&#039;&#039;&#039;. Unlike &#039;&#039;&#039;PIC&#039;&#039;&#039;, though, an animation defined like this will animate all frames, much like an animation defined in the [[ANIMATED]] lump.  If the &#039;&#039;&#039;Oscillate&#039;&#039;&#039; flag is added, when the animation reaches the end, it will animate towards the first frame instead of looping.&lt;br /&gt;
::Note: although this does not affect compatibility with mods using &#039;&#039;&#039;Oscillate&#039;&#039;&#039; with &#039;&#039;&#039;RANGE&#039;&#039;&#039;, as of {{Cs|ffbcda2}}, the flag is not part of the command&#039;s syntax.&lt;br /&gt;
:*&#039;&#039;&#039;ALLOWDECALS&#039;&#039;&#039;&lt;br /&gt;
::Normally decals are disallowed on animated textures. With this command you can specifically enable decals for the current texture.&lt;br /&gt;
:*&#039;&#039;&#039;OSCILLATE&#039;&#039;&#039; {{git|ffbcda2}}&lt;br /&gt;
::When the animation reaches the end, it will animate towards the first frame instead of looping. This works for both &#039;&#039;&#039;RANGE&#039;&#039;&#039; and &#039;&#039;&#039;PIC&#039;&#039;&#039;.&lt;br /&gt;
:*&#039;&#039;&#039;RANDOM&#039;&#039;&#039; {{git|ffbcda2}}&lt;br /&gt;
::The texture animation is randomized instead of being sequential.&lt;br /&gt;
=== Interface graphics ===&lt;br /&gt;
Despite the &amp;quot;texture&amp;quot; or &amp;quot;flat&amp;quot; name, this function can be used for non-texture graphics, notably {{Class|Powerup}} {{Property|Inventory.Icon|icons}}. The following graphics are defined in the default ANIMDEFS lump:&lt;br /&gt;
* {{Class|PowerWeaponLevel2|SPINBK0}}&lt;br /&gt;
* {{Class|PowerSpeed|SPBOOT0}}&lt;br /&gt;
* {{Class|PowerInvulnerable|SPSHLD0}}&lt;br /&gt;
* {{Class|PowerMinotaur|SPMINO0}}&lt;br /&gt;
One exception is {{Class|PowerFlight|SPFLY0}} whose behavior is more complicated (since it can be suspended) and is therefore still hardcoded.&lt;br /&gt;
&lt;br /&gt;
The menu selectors are also defined in ANIMDEFS:&lt;br /&gt;
* Doom, Chex Quest, Harmony, Urban Brawl: M_SKULL1&lt;br /&gt;
* Heretic, Hexen: M_SLCTR1&lt;br /&gt;
* Strife: M_CURS1&lt;br /&gt;
&lt;br /&gt;
== Switches ==&lt;br /&gt;
*&#039;&#039;&#039;SWITCH&#039;&#039;&#039; &amp;lt;&#039;&#039;name&#039;&#039;&amp;gt;:&lt;br /&gt;
:Starts a new switch definition. A switch has 2 commands:&lt;br /&gt;
:*&#039;&#039;&#039;ON&#039;&#039;&#039;&lt;br /&gt;
::Defines the animation that is played when the switch is activated&lt;br /&gt;
:*&#039;&#039;&#039;OFF&#039;&#039;&#039;&lt;br /&gt;
::Defines the animation that is played when the switch resets&lt;br /&gt;
:Inside each of these definitions  the following commands can be used:&lt;br /&gt;
:*&#039;&#039;&#039;SOUND&#039;&#039;&#039; &amp;lt;&#039;&#039;soundname&#039;&#039;&amp;gt;&lt;br /&gt;
::Defines the sound that is played when the switch is pressed/reset. As usual, this uses a logical sound name from [[SNDINFO]] and not the name of the sound lump.&lt;br /&gt;
:*&#039;&#039;&#039;PIC&#039;&#039;&#039; &amp;lt;&#039;&#039;name&#039;&#039;&amp;gt; &#039;&#039;&#039;tics&#039;&#039;&#039; &amp;lt;&#039;&#039;duration&#039;&#039;&amp;gt; | &#039;&#039;&#039;rand&#039;&#039;&#039; &amp;lt;&#039;&#039;min&#039;&#039; &#039;&#039;max&#039;&#039;&amp;gt;&lt;br /&gt;
::Defines one animation frame for the current sequence. The syntax is the same as in the TEXTURE/FLAT animations, except that the texture must always be specified by name. There can be multiple &#039;&#039;&#039;PIC&#039;&#039;&#039; definitions in each sequence for the switch.&lt;br /&gt;
&lt;br /&gt;
== Warping graphics ==&lt;br /&gt;
*&#039;&#039;&#039;WARP&#039;&#039;&#039; &#039;&#039;&#039;texture&#039;&#039;&#039;|&#039;&#039;&#039;flat&#039;&#039;&#039; &amp;lt;&#039;&#039;name&#039;&#039;&amp;gt; [&#039;&#039;&#039;allowdecals&#039;&#039;&#039;]&lt;br /&gt;
*&#039;&#039;&#039;WARP&#039;&#039;&#039; &#039;&#039;&#039;texture&#039;&#039;&#039;|&#039;&#039;&#039;flat&#039;&#039;&#039; &amp;lt;&#039;&#039;name&#039;&#039;&amp;gt; &amp;lt;&#039;&#039;speed&#039;&#039;&amp;gt; [&#039;&#039;&#039;allowdecals&#039;&#039;&#039;]&lt;br /&gt;
:Defines a warping effect for flats and textures. This will make the flat (or texture) warp similar to the water in Quake or Q2.  This effect can also be used with sprites (as long as their sizes are powers of two). Though the results are somewhat odd, it&#039;s good to know it&#039;s available. As with other animated textures, you can optionally add &#039;&#039;&#039;&#039;allowdecals&#039;&#039;&#039;&#039; to override the default behavior of not placing decals on animated textures.  You can also add an optional float value after the name to control the speed of the warp animation. For GZdoom, the following notes apply. Warping anything larger than 256x256 in software for OpenGL is too costly so it is intentionally disabled. Shader-based warping does not have this limitation. It also can warp textures of any size but for non-square textures it may not look the same as the software algorithm.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;WARP2&#039;&#039;&#039; &#039;&#039;&#039;texture&#039;&#039;&#039;|&#039;&#039;&#039;flat&#039;&#039;&#039; &amp;lt;&#039;&#039;name&#039;&#039;&amp;gt; [&#039;&#039;&#039;allowdecals&#039;&#039;&#039;]&lt;br /&gt;
*&#039;&#039;&#039;WARP2&#039;&#039;&#039; &#039;&#039;&#039;texture&#039;&#039;&#039;|&#039;&#039;&#039;flat&#039;&#039;&#039; &amp;lt;&#039;&#039;name&#039;&#039;&amp;gt; &amp;lt;&#039;&#039;speed&#039;&#039;&amp;gt; [&#039;&#039;&#039;allowdecals&#039;&#039;&#039;]&lt;br /&gt;
:Same as &#039;&#039;&#039;WARP&#039;&#039;&#039;, but with nicer water-like effect.&lt;br /&gt;
&lt;br /&gt;
== Animated doors ==&lt;br /&gt;
*&#039;&#039;&#039;ANIMATEDDOOR&#039;&#039;&#039; &amp;lt;&#039;&#039;name&#039;&#039;&amp;gt;:&lt;br /&gt;
:Starts a definition for an animation sequence that can be used with the [[Door_Animated]] line special.  Unlike animated textures, the duration of each frame is not defined here; rather, the duration of each frame is given by the &#039;&#039;speed&#039;&#039; argument to [[Door_Animated]].&lt;br /&gt;
:The following commands are supported:&lt;br /&gt;
:*&#039;&#039;&#039;OPENSOUND&#039;&#039;&#039; &amp;lt;&#039;&#039;soundsequence&#039;&#039;&amp;gt;&lt;br /&gt;
::Defines the sound sequence that is being played when the door opens. This sound sequence must be defined in the [[SNDSEQ]] lump.&lt;br /&gt;
:*&#039;&#039;&#039;CLOSESOUND&#039;&#039;&#039; &amp;lt;&#039;&#039;soundsequence&#039;&#039;&amp;gt;&lt;br /&gt;
::Defines the sound sequence that is being played when the door closes. This sound sequence must be defined in the [[SNDSEQ]] lump.&lt;br /&gt;
:*&#039;&#039;&#039;PIC&#039;&#039;&#039; &amp;lt;&#039;&#039;number&#039;&#039;|&#039;&#039;name&#039;&#039;&amp;gt;&lt;br /&gt;
::Defines one animation frame for this door. The texture used for it can either be specified as an index (with the base texture being index 1 and each subsequent index the following texture in the list) or as a name. If the frame texture is specified by index it is not necessary to order the indices in any way and you also can use the same index multiple times in the sequence. If the frame texture is specified by name, order in the WAD or TEXTUREx lump is irrelevant. The frames inside the sequence must be ordered from fully closed to fully open and the number of frames is not restricted in any way&lt;br /&gt;
:*&#039;&#039;&#039;ALLOWDECALS&#039;&#039;&#039; {{git|7e062f3}}&lt;br /&gt;
::Normally decals are disallowed on animated door textures. With this command you can specifically enable decals for the current texture.&lt;br /&gt;
&lt;br /&gt;
== Camera textures ==&lt;br /&gt;
*&#039;&#039;&#039;CAMERATEXTURE&#039;&#039;&#039; &amp;lt;&#039;&#039;texture name&#039;&#039;&amp;gt; &amp;lt;&#039;&#039;width&#039;&#039;&amp;gt; &amp;lt;&#039;&#039;heigth&#039;&#039;&amp;gt; [fit &amp;lt;&#039;&#039;width&#039;&#039;&amp;gt; &amp;lt;&#039;&#039;height&#039;&#039;&amp;gt;]&lt;br /&gt;
:&#039;&#039;&#039;CAMERATEXTURE&#039;&#039;&#039; &amp;lt;&#039;&#039;texture name&#039;&#039;&amp;gt; &amp;lt;&#039;&#039;width&#039;&#039;&amp;gt; &amp;lt;&#039;&#039;heigth&#039;&#039;&amp;gt; [fit &amp;lt;&#039;&#039;width&#039;&#039;&amp;gt; &amp;lt;&#039;&#039;height&#039;&#039;&amp;gt; [worldpanning]] {{git|c2bac9d}}&lt;br /&gt;
:Define a texture that can be drawn into. You have to specify a name and a size. If &amp;lt;&#039;&#039;texture name&#039;&#039;&amp;gt; is an existing texture the image will be scaled to fit that texture&#039;s size. Optionally, you can also specify the size the image will be scaled to with the &#039;&#039;&#039;FIT&#039;&#039;&#039; keyword. Adding the {{c|worldpanning}} keyword makes camera textures pan in world units instead of texture units. {{git|c2bac9d}}&lt;br /&gt;
:Square textures use less memory than non-square textures. However, if you want to use a camera that can see the texture it renders into, you should use a non-square texture. You have to use the [[SetCameraToTexture]] ACS command to specify the image this texture shows.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
An animated flat:&lt;br /&gt;
 flat x_001&lt;br /&gt;
     pic 1 tics 5&lt;br /&gt;
     pic 2 tics 5&lt;br /&gt;
     pic 3 tics 5&lt;br /&gt;
     pic 4 tics 5&lt;br /&gt;
&lt;br /&gt;
An animated texture that allows decals:&lt;br /&gt;
 texture x_water1&lt;br /&gt;
     allowdecals&lt;br /&gt;
     pic x_water1 rand 5 12&lt;br /&gt;
     pic x_water2 rand 5 12&lt;br /&gt;
     pic x_water3 rand 5 12&lt;br /&gt;
     pic x_water4 rand 5 12&lt;br /&gt;
&lt;br /&gt;
A simple toggle switch:&lt;br /&gt;
 switch SW_1_UP on sound Switch1 pic SW_1_DN tics 0&lt;br /&gt;
 switch SW_1_DN off sound Switch2 pic SW_1_UP tics 0&lt;br /&gt;
&lt;br /&gt;
A switch that plays an animation when it is toggled:&lt;br /&gt;
 switch doom 3 sw1nj15 &lt;br /&gt;
 on sound switches/lever2 &lt;br /&gt;
 pic sw1nj15b tics 8 &lt;br /&gt;
 pic sw1nj15c tics 8 &lt;br /&gt;
 pic sw2nj15 tics 8 &lt;br /&gt;
 &lt;br /&gt;
 off sound switches/lever2 &lt;br /&gt;
 pic sw1nj15c tics 8 &lt;br /&gt;
 pic sw1nj15b tics 8 &lt;br /&gt;
 pic sw1nj15 tics 0&lt;br /&gt;
&lt;br /&gt;
A warped flat (the second variation allows decals to appear):&lt;br /&gt;
 warp flat qslime2&lt;br /&gt;
 warp flat qslime2 allowdecals&lt;br /&gt;
&lt;br /&gt;
An animated door texture:&lt;br /&gt;
 animateddoor DORIRS01&lt;br /&gt;
    opensound DoorOpenAirlock&lt;br /&gt;
    closesound DoorCloseAirlock&lt;br /&gt;
    pic DORIRS01 &lt;br /&gt;
    pic DORIRS02 &lt;br /&gt;
    pic DORIRS03 &lt;br /&gt;
    pic DORIRS04 &lt;br /&gt;
    pic DORIRS05 &lt;br /&gt;
    pic DORIRS06 &lt;br /&gt;
    pic DORIRS07 &lt;br /&gt;
    pic DORIRS08&lt;br /&gt;
&lt;br /&gt;
A 64x64 camera texture:&lt;br /&gt;
 cameratexture CAMTEX1 64 64&lt;br /&gt;
&lt;br /&gt;
An 80x50 camera texture that is scaled down from a 100x50 resolution camera:&lt;br /&gt;
 cameratexture CAMTEX2 100 50 fit 80 50&lt;br /&gt;
&lt;br /&gt;
A 64x64 resolution camera that replaces the STARTAN2 texture.  Since fit is not specified, the texture will be fit to the original texture&#039;s size (128x128):&lt;br /&gt;
 cameratexture STARTAN2 64 64&lt;br /&gt;
&lt;br /&gt;
This is the same thing as the previous example, but prevents the texture from scaling by explicitly specifying the fit size:&lt;br /&gt;
 cameratexture STARTAN2 64 64 fit 64 64&lt;br /&gt;
&lt;br /&gt;
The animated flats and textures from Doom:&lt;br /&gt;
 flat	BLOOD1  	range	BLOOD3  	tics 8&lt;br /&gt;
 flat	FWATER1 	range	FWATER4 	tics 8&lt;br /&gt;
 flat	LAVA1   	range	LAVA4		tics 8&lt;br /&gt;
 flat	NUKAGE1 	range	NUKAGE3 	tics 8&lt;br /&gt;
 flat	SLIME01 	range	SLIME04 	tics 8&lt;br /&gt;
 flat	SLIME05 	range	SLIME08 	tics 8&lt;br /&gt;
 flat	SLIME09 	range	SLIME12 	tics 8&lt;br /&gt;
 flat	SWATER1 	range	SWATER4 	tics 8&lt;br /&gt;
 texture	BFALL1  	range	BFALL4  	tics 8&lt;br /&gt;
 texture	BLODGR1 	range	BLODGR4 	tics 8 allowdecals&lt;br /&gt;
 texture	BLODRIP1	range	BLODRIP4	tics 8 allowdecals&lt;br /&gt;
 texture	DBRAIN1 	range	DBRAIN4 	tics 8&lt;br /&gt;
 texture	FIREBLU1	range	FIREBLU2	tics 8&lt;br /&gt;
 texture	FIRELAV3	range	FIRELAVA	tics 8&lt;br /&gt;
 texture	FIREMAG1	range	FIREMAG3	tics 8&lt;br /&gt;
 texture	FIREWALA	range	FIREWALL	tics 8&lt;br /&gt;
 texture	GSTFONT1	range	GSTFONT3	tics 8 allowdecals&lt;br /&gt;
 texture	ROCKRED1	range	ROCKRED3	tics 8 allowdecals&lt;br /&gt;
 texture	SFALL1  	range	SFALL4  	tics 8&lt;br /&gt;
 texture	SLADRIP1	range	SLADRIP4	tics 8 allowdecals&lt;br /&gt;
 texture	WFALL1  	range	WFALL4  	tics 8&lt;br /&gt;
&lt;br /&gt;
The animated flats and textures from Heretic:&lt;br /&gt;
 flat	FLATHUH1	range	FLATHUH4	tics 8&lt;br /&gt;
 flat	FLTFLWW1	range	FLTFLWW3	tics 9&lt;br /&gt;
 flat	FLTLAVA1	range	FLTLAVA4	tics 8&lt;br /&gt;
 flat	FLTSLUD1	range	FLTSLUT3	tics 8&lt;br /&gt;
 flat	FLTTELE1	range	FLTTELE4	tics 6&lt;br /&gt;
 flat	FLTWAWA1	range	FLTWAWA3	tics 8&lt;br /&gt;
 texture	LAVAFL1 	range	LAVAFL3 	tics 6&lt;br /&gt;
 texture	WATRWAL1	range	WATRWAL3	tics 4&lt;br /&gt;
&lt;br /&gt;
The animated flats and textures from Strife:&lt;br /&gt;
 flat	F_CONVY1	range	F_CONVY2	tics 4&lt;br /&gt;
 flat	F_FAN1  	range	F_FAN2  	tics 4&lt;br /&gt;
 flat	F_HWATR1	range	F_HWATR3	tics 4&lt;br /&gt;
 flat	F_PWATR1	range	F_PWATR3	tics 11&lt;br /&gt;
 flat	F_RDALN1	range	F_RDALN4	tics 4&lt;br /&gt;
 flat	F_SCANR1	range	F_SCANR4	tics 4 &lt;br /&gt;
 flat	F_SCANR5	range	F_SCANR8	tics 4&lt;br /&gt;
 flat	F_TELE1 	range	F_TELE2 	tics 4&lt;br /&gt;
 flat	P_VWATR1	range	F_VWATR3	tics 4 // Yes, P_VWATR1, not F_VWATR1.&lt;br /&gt;
 flat	F_WATR01	range	F_WATR03	tics 8&lt;br /&gt;
 texture	BRKGRY13	range	BRKGRY16	tics 10&lt;br /&gt;
 texture	BRNSCN01	range	BRNSCN04	tics 10&lt;br /&gt;
 texture	COMP01  	range	COMP04  	tics 4&lt;br /&gt;
 texture	COMP05  	range	COMP08  	tics 6&lt;br /&gt;
 texture	COMP09  	range	COMP12  	tics 11&lt;br /&gt;
 texture	COMP13  	range	COMP16  	tics 12&lt;br /&gt;
 texture	COMP17  	range	COMP20  	tics 12&lt;br /&gt;
 texture	COMP21  	range	COMP24  	tics 12&lt;br /&gt;
 texture	COMP25  	range	COMP28  	tics 12&lt;br /&gt;
 texture	COMP29  	range	COMP32  	tics 12&lt;br /&gt;
 texture	COMP33  	range	COMP37  	tics 12&lt;br /&gt;
 texture	COMP38  	range	COMP41  	tics 12&lt;br /&gt;
 texture	COMP42  	range	COMP49  	tics 10&lt;br /&gt;
 texture	CONCRT09	range	CONCRT12	tics 11&lt;br /&gt;
 texture	CONCRT22	range	CONCRT25	tics 11&lt;br /&gt;
 texture	FAN01   	range	FAN02   	tics 4&lt;br /&gt;
 texture	FORCE01 	range	FORCE04 	tics 4&lt;br /&gt;
 texture	FORCE05 	range	FORCE08 	tics 4&lt;br /&gt;
 texture	SCAN01  	range	SCAN04  	tics 4&lt;br /&gt;
 texture	SCAN05  	range	SCAN08  	tics 4&lt;br /&gt;
 texture	SWTRMG01	range	SWTRMG03	tics 4&lt;br /&gt;
 texture	WALPMP01	range	WALPMP02	tics 16&lt;br /&gt;
 texture	WALTEK16	range	WALTEK17	tics 8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:ZDoom special lumps]]&lt;br /&gt;
[[category:Graphics lumps]]&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Door_Animated&amp;diff=40644</id>
		<title>Door Animated</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Door_Animated&amp;diff=40644"/>
		<updated>2016-01-03T04:31:00Z</updated>

		<summary type="html">&lt;p&gt;Eevee: speed isn&amp;#039;t a speed, it&amp;#039;s a frame delay!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Door_Animated}}&lt;br /&gt;
{{Special|14|tag, speed, delay, lock|Door|Animated}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;tag&#039;&#039;: Tag of affected sector &lt;br /&gt;
* &#039;&#039;speed&#039;&#039;: Duration of each frame in the door animation, in [[Definitions#Units_of_time|tics]]&lt;br /&gt;
* &#039;&#039;delay&#039;&#039;: Tics until door closes &lt;br /&gt;
* &#039;&#039;lock&#039;&#039;: Required key (See [[Key types]])&lt;br /&gt;
&lt;br /&gt;
Opens the affected sector like a door, but instead of raising the ceiling visibly, it plays a texture animation on the front sides of the door sector. Once the animation finishes, the ceiling silently and instantly raises.  This is used by ZDoom to manage [[Strife]]&#039;s [[Animated door|animated doors]].&lt;br /&gt;
&lt;br /&gt;
There are a few limitations to observe:&lt;br /&gt;
# The sector must be set up like a normal door, that is, its ceiling height should be equal to its floor height.&lt;br /&gt;
# The texture to be used must be defined in the [[ANIMDEFS]] lump.&lt;br /&gt;
# The door sector may only have 2 sides which face another sector.&lt;br /&gt;
# Those 2 sides must have the same texture.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
Here is an example of ANIMDEFS definition for a Strife door:&lt;br /&gt;
 animateddoor  SIGLDR01&lt;br /&gt;
 	opensound DoorOpenLargeMetal&lt;br /&gt;
 	closesound DoorCloseLargeMetal&lt;br /&gt;
 	pic SIGLDR01 &lt;br /&gt;
 	pic SIGLDR02 &lt;br /&gt;
 	pic SIGLDR03 &lt;br /&gt;
 	pic SIGLDR04 &lt;br /&gt;
 	pic SIGLDR05  &lt;br /&gt;
 	pic SIGLDR06 &lt;br /&gt;
 	pic SIGLDR07 &lt;br /&gt;
 	pic SIGLDR08 &lt;br /&gt;
The Strife linetypes 144 and 207 are translated to this:&lt;br /&gt;
 Door_Animated (0, 4, 3*35)&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Generic_Floor&amp;diff=40643</id>
		<title>Generic Floor</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Generic_Floor&amp;diff=40643"/>
		<updated>2016-01-03T01:33:48Z</updated>

		<summary type="html">&lt;p&gt;Eevee: add some examples, in the form of equivalences with other specials&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Generic_Floor}}&lt;br /&gt;
{{Special|200|tag, speed, height, target, flags|General BOOM linetype|Floor|type2=Floor}}&lt;br /&gt;
* &#039;&#039;tag&#039;&#039;: Tag of affected sectors, or 0 to use the line&#039;s back sector.&lt;br /&gt;
* &#039;&#039;speed&#039;&#039;: Floor&#039;s [[Definitions#Sector_movement_speed|movement speed]].  Doom&#039;s standard floors move at 8, and fast floors move at 32.&lt;br /&gt;
* &#039;&#039;height&#039;&#039;: Distance to move (when &#039;&#039;target&#039;&#039; is 0).&lt;br /&gt;
* &#039;&#039;target&#039;&#039;: How to determine the floor&#039;s destination height.&lt;br /&gt;
* &#039;&#039;flags&#039;&#039;: Various flags; see below.&lt;br /&gt;
&lt;br /&gt;
This special encapsulates BOOM&#039;s generalized floors.&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
&lt;br /&gt;
=== Target ===&lt;br /&gt;
&#039;&#039;target&#039;&#039; can be one of the following:&lt;br /&gt;
&lt;br /&gt;
* 0: Move by &#039;&#039;height&#039;&#039; units&lt;br /&gt;
* 1: Move to highest neighboring floor&lt;br /&gt;
* 2: Move to lowest neighboring floor&lt;br /&gt;
* 3: Move to nearest neighboring floor&lt;br /&gt;
* 4: Move to lowest neighboring ceiling&lt;br /&gt;
* 5: Move to the sector&#039;s own ceiling&lt;br /&gt;
* 6: Move by the height of the shortest lower texture on the sector&lt;br /&gt;
&lt;br /&gt;
=== Flags ===&lt;br /&gt;
A moving floor may optionally copy its floor texture and [[Sector specials|special]] from a &amp;quot;model&amp;quot; sector.  There are two ways to choose a model sector.  The &#039;&#039;trigger model&#039;&#039; uses the sector on the front side of the line that caused the move.  The &#039;&#039;numeric model&#039;&#039; looks for neighboring sectors whose floors are at the destination height, and uses the one with the lowest-numbered shared linedef.  If no model sector can be found, nothing is copied.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;flags&#039;&#039; is composed of:&lt;br /&gt;
&lt;br /&gt;
* 0: Don&#039;t copy anything&lt;br /&gt;
* 1: Copy floor texture, and remove special (Tx0)&lt;br /&gt;
* 2: Copy floor texture only (Tx)&lt;br /&gt;
* 3: Copy both floor texture and special (TxTy)&lt;br /&gt;
* +4: Use the numeric model (default is trigger model)&lt;br /&gt;
* +8: Raise floor (default is to lower)&lt;br /&gt;
* +16: Inflict crushing damage&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
Many other floor specials can be expressed in terms of Generic_Floor:&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! Special !! Equivalent Generic_Floor&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerByValue]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;, 0, 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerToLowest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 2, 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerToLowestTxTy]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 2, 3)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_LowerToNearest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 3, 0)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseByTexture]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 6, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseByValue]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;, 0, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseByValueTxTy]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, &#039;&#039;height&#039;&#039;, 0, 11)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseToHighest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 1, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseToLowestCeiling]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 4, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_RaiseToNearest]](&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, &#039;&#039;speed&#039;&#039;, 0, 3, 8)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_TransferNumeric]](&#039;&#039;tag&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, 0, 0, 0, 7)&lt;br /&gt;
|-&lt;br /&gt;
| [[Floor_TransferTrigger]](&#039;&#039;tag&#039;&#039;) || Generic_Floor(&#039;&#039;tag&#039;&#039;, 0, 0, 0, 3)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Floor_LowerByValue&amp;diff=40642</id>
		<title>Floor LowerByValue</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Floor_LowerByValue&amp;diff=40642"/>
		<updated>2016-01-03T01:27:29Z</updated>

		<summary type="html">&lt;p&gt;Eevee: standardizing args&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Floor_LowerByValue}}&lt;br /&gt;
{{Special|20|tag, speed, height|Floor|LowerByValue}}&lt;br /&gt;
* &#039;&#039;tag&#039;&#039;: Tag of affected sectors, or 0 to use the line&#039;s back sector.&lt;br /&gt;
* &#039;&#039;speed&#039;&#039;: Floor&#039;s [[Definitions#Sector_movement_speed|movement speed]].  Doom&#039;s standard floors move at 8, and fast floors move at 32.&lt;br /&gt;
* &#039;&#039;height&#039;&#039;: Distance to lower the floor.&lt;br /&gt;
&lt;br /&gt;
Lowers any tagged sector&#039;s floor by &#039;&#039;height&#039;&#039; units.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
{{noexamples}}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Generic_Ceiling&amp;diff=40641</id>
		<title>Generic Ceiling</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Generic_Ceiling&amp;diff=40641"/>
		<updated>2016-01-03T01:24:09Z</updated>

		<summary type="html">&lt;p&gt;Eevee: this should just be italics&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Generic_Ceiling}}&lt;br /&gt;
{{Special|201|tag, speed, height, target, flag|General BOOM linetype|Ceiling|type2=Ceiling}}&lt;br /&gt;
* &#039;&#039;tag&#039;&#039;: Tag of affected sector, or 0 to use the sector on the back side of the line.&lt;br /&gt;
* &#039;&#039;speed&#039;&#039;: Ceiling&#039;s [[Definitions#Sector_movement_speed|movement speed]].  Doom&#039;s standard ceilings move at 8, and fast crushers move at 16.&lt;br /&gt;
* &#039;&#039;height&#039;&#039;: Distance to move (when &#039;&#039;target&#039;&#039; is 0).&lt;br /&gt;
* &#039;&#039;target&#039;&#039;: How to determine the ceiling&#039;s destination height.&lt;br /&gt;
* &#039;&#039;flags&#039;&#039;: Various flags; see below.&lt;br /&gt;
&lt;br /&gt;
This special encapsulates BOOM&#039;s generalized ceilings.&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
&lt;br /&gt;
=== Target ===&lt;br /&gt;
&#039;&#039;target&#039;&#039; can be one of the following:&lt;br /&gt;
&lt;br /&gt;
* 0: Move by &#039;&#039;height&#039;&#039; units&lt;br /&gt;
* 1: Move to highest neighboring ceiling&lt;br /&gt;
* 2: Move to lowest neighboring ceiling&lt;br /&gt;
* 3: Move to nearest neighboring ceiling&lt;br /&gt;
* 4: Move to highest neighboring floor&lt;br /&gt;
* 5: Move to the sector&#039;s own floor&lt;br /&gt;
* 6: Move by the height of the shortest upper texture on the sector&lt;br /&gt;
&lt;br /&gt;
=== Flags ===&lt;br /&gt;
A moving ceiling may optionally copy its ceiling texture and [[Sector specials|special]] from a &amp;quot;model&amp;quot; sector.  There are two ways to choose a model sector.  The &#039;&#039;trigger model&#039;&#039; uses the sector on the front side of the line that caused the move.  The &#039;&#039;numeric model&#039;&#039; looks for neighboring sectors whose ceilings are at the destination height, and uses the one with the lowest-numbered shared linedef.  If no model sector can be found, nothing is copied.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;flags&#039;&#039; is composed of:&lt;br /&gt;
&lt;br /&gt;
* 0: Don&#039;t copy anything&lt;br /&gt;
* 1: Copy ceiling texture, and remove special (Tx0)&lt;br /&gt;
* 2: Copy ceiling texture only (Tx)&lt;br /&gt;
* 3: Copy both ceiling texture and special (TxTy)&lt;br /&gt;
* +4: Use the numeric model (default is trigger model)&lt;br /&gt;
* +8: Raise ceiling (default is to lower)&lt;br /&gt;
* +16: Inflict crushing damage&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
{{noexamples}}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Generic_Floor&amp;diff=40640</id>
		<title>Generic Floor</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Generic_Floor&amp;diff=40640"/>
		<updated>2016-01-03T01:23:01Z</updated>

		<summary type="html">&lt;p&gt;Eevee: overhaul to match Generic_Ceiling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Generic_Floor}}&lt;br /&gt;
{{Special|200|tag, speed, height, target, flags|General BOOM linetype|Floor|type2=Floor}}&lt;br /&gt;
* &#039;&#039;tag&#039;&#039;: Tag of affected sector, or 0 to use the line&#039;s back sector.&lt;br /&gt;
* &#039;&#039;speed&#039;&#039;: Floor&#039;s [[Definitions#Sector_movement_speed|movement speed]].  Doom&#039;s standard floors move at 8, and fast floors move at 32.&lt;br /&gt;
* &#039;&#039;height&#039;&#039;: Distance to move (when &#039;&#039;target&#039;&#039; is 0).&lt;br /&gt;
* &#039;&#039;target&#039;&#039;: How to determine the floor&#039;s destination height.&lt;br /&gt;
* &#039;&#039;flags&#039;&#039;: Various flags; see below.&lt;br /&gt;
&lt;br /&gt;
This special encapsulates BOOM&#039;s generalized floors.&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
&lt;br /&gt;
=== Target ===&lt;br /&gt;
&#039;&#039;target&#039;&#039; can be one of the following:&lt;br /&gt;
&lt;br /&gt;
* 0: Move by &#039;&#039;height&#039;&#039; units&lt;br /&gt;
* 1: Move to highest neighboring floor&lt;br /&gt;
* 2: Move to lowest neighboring floor&lt;br /&gt;
* 3: Move to nearest neighboring floor&lt;br /&gt;
* 4: Move to lowest neighboring ceiling&lt;br /&gt;
* 5: Move to the sector&#039;s own ceiling&lt;br /&gt;
* 6: Move by the height of the shortest lower texture on the sector&lt;br /&gt;
&lt;br /&gt;
=== Flags ===&lt;br /&gt;
A moving floor may optionally copy its floor texture and [[Sector specials|special]] from a &amp;quot;model&amp;quot; sector.  There are two ways to choose a model sector.  The &#039;&#039;trigger model&#039;&#039; uses the sector on the front side of the line that caused the move.  The &#039;&#039;numeric model&#039;&#039; looks for neighboring sectors whose floors are at the destination height, and uses the one with the lowest-numbered shared linedef.  If no model sector can be found, nothing is copied.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;flags&#039;&#039; is composed of:&lt;br /&gt;
&lt;br /&gt;
* 0: Don&#039;t copy anything&lt;br /&gt;
* 1: Copy floor texture, and remove special (Tx0)&lt;br /&gt;
* 2: Copy floor texture only (Tx)&lt;br /&gt;
* 3: Copy both floor texture and special (TxTy)&lt;br /&gt;
* +4: Use the numeric model (default is trigger model)&lt;br /&gt;
* +8: Raise floor (default is to lower)&lt;br /&gt;
* +16: Inflict crushing damage&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
{{noexamples}}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Generic_Ceiling&amp;diff=40639</id>
		<title>Generic Ceiling</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Generic_Ceiling&amp;diff=40639"/>
		<updated>2016-01-03T01:18:37Z</updated>

		<summary type="html">&lt;p&gt;Eevee: clean up, explain the models, correct the copy flags&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Generic_Ceiling}}&lt;br /&gt;
{{Special|201|tag, speed, height, target, flag|General BOOM linetype|Ceiling|type2=Ceiling}}&lt;br /&gt;
* &#039;&#039;tag&#039;&#039;: Tag of affected sector, or 0 to use the sector on the back side of the line.&lt;br /&gt;
* &#039;&#039;speed&#039;&#039;: Ceiling&#039;s [[Definitions#Sector_movement_speed|movement speed]].  Doom&#039;s standard ceilings move at 8, and fast crushers move at 16.&lt;br /&gt;
* &#039;&#039;height&#039;&#039;: Distance to move when &#039;&#039;target&#039;&#039; is 0.&lt;br /&gt;
* &#039;&#039;target&#039;&#039;: How to determine the ceiling&#039;s destination height.&lt;br /&gt;
* &#039;&#039;flags&#039;&#039;: Various flags; see below.&lt;br /&gt;
&lt;br /&gt;
This special encapsulates BOOM&#039;s generalized ceilings.&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
&lt;br /&gt;
=== Target ===&lt;br /&gt;
&#039;&#039;target&#039;&#039; can be one of the following:&lt;br /&gt;
&lt;br /&gt;
* 0: Move by &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt; units&lt;br /&gt;
* 1: Move to highest neighboring ceiling&lt;br /&gt;
* 2: Move to lowest neighboring ceiling&lt;br /&gt;
* 3: Move to nearest neighboring ceiling&lt;br /&gt;
* 4: Move to highest neighboring floor&lt;br /&gt;
* 5: Move to the sector&#039;s own floor&lt;br /&gt;
* 6: Move by the height of the shortest upper texture on the sector&lt;br /&gt;
&lt;br /&gt;
=== Flags ===&lt;br /&gt;
A moving ceiling may optionally copy its ceiling texture and [[Sector specials|special]] from a &amp;quot;model&amp;quot; sector.  There are two ways to choose a model sector.  The &#039;&#039;trigger model&#039;&#039; uses the sector on the front side of the line that caused the move.  The &#039;&#039;numeric model&#039;&#039; looks for neighboring sectors whose ceilings are at the destination height, and uses the one with the lowest-numbered shared linedef.  If no model sector can be found, nothing is copied.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;flags&#039;&#039; is composed of:&lt;br /&gt;
&lt;br /&gt;
* 0: Don&#039;t copy anything&lt;br /&gt;
* 1: Copy ceiling texture, and remove special (Tx0)&lt;br /&gt;
* 2: Copy ceiling texture only (Tx)&lt;br /&gt;
* 3: Copy both ceiling texture and special (TxTy)&lt;br /&gt;
* +4: Use the numeric model (default is trigger model)&lt;br /&gt;
* +8: Raise ceiling (default is to lower)&lt;br /&gt;
* +16: Inflict crushing damage&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
{{noexamples}}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Definitions&amp;diff=40638</id>
		<title>Definitions</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Definitions&amp;diff=40638"/>
		<updated>2016-01-03T01:16:01Z</updated>

		<summary type="html">&lt;p&gt;Eevee: add vanilla doom floor/ceiling movement speeds&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Fixed point numbers==&lt;br /&gt;
ZDoom commonly represents fixed point numbers as 32-bit integers with the integer part of the represented number stored in the top 16 bits, and with the fractional part (65536ths) stored the lower 16 bits.&lt;br /&gt;
&lt;br /&gt;
In other words, the fixed point representation of a number = that number * 65536.&lt;br /&gt;
&lt;br /&gt;
See [[Fixed point numbers]] for more information.&lt;br /&gt;
&lt;br /&gt;
==Byte angles==&lt;br /&gt;
This is a value between 0 and 255 representing a direction and is used with some line specials. Some useful values are:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}} width=&amp;quot;300&amp;quot;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;96&#039;&#039;&#039;&amp;lt;br/&amp;gt;Northwest||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;64&#039;&#039;&#039;&amp;lt;br/&amp;gt;North||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;32&#039;&#039;&#039;&amp;lt;br/&amp;gt;Northeast&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;128&#039;&#039;&#039;&amp;lt;br/&amp;gt;West||width=&amp;quot;100&amp;quot;|&amp;amp;nbsp;||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;0&#039;&#039;&#039;&amp;lt;br/&amp;gt;East&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;160&#039;&#039;&#039;&amp;lt;br/&amp;gt;Southwest||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;192&#039;&#039;&#039;&amp;lt;br/&amp;gt;South||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;224&#039;&#039;&#039;&amp;lt;br/&amp;gt;Southeast&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Fixed point angles==&lt;br /&gt;
&lt;br /&gt;
These angles are similar to above but the value lies between 0.0 and 1.0 and is represented as a [[fixed point number]]. This means the value lies between 0 and 65536, with 0 representing 0.0 and 65536 representing 1.0. It is therefore possible to represent these angles as decimals (e.g. 0.5 is west, 0.25 is north), and use [[FixedMul]] and other commands on them.&lt;br /&gt;
&lt;br /&gt;
=== Converting angles ===&lt;br /&gt;
&lt;br /&gt;
To convert fixed point angles to byte angles, you can use the following formula:&lt;br /&gt;
&lt;br /&gt;
 byte_angle = fixed_point_angle &amp;gt;&amp;gt; 8 &lt;br /&gt;
&lt;br /&gt;
And to convert byte to fixed point angles you use the opposite:&lt;br /&gt;
&lt;br /&gt;
 fixed_point_angle = byte_angle &amp;lt;&amp;lt; 8&lt;br /&gt;
&lt;br /&gt;
==Sprite angles==&lt;br /&gt;
See [[Sprite]] article&lt;br /&gt;
&lt;br /&gt;
==Byte pitches==&lt;br /&gt;
Pitches can be represented in byte form, as they only have a range of 180°, rather than 360°. The pitch is a value between 0 and 255 representing vertical pitch and is used with some actors. The number is actually in degrees, and is &#039;&#039;&#039;&#039;&#039;equal to the angle subtracted from 256&#039;&#039;&#039;&#039;&#039;. 0 is level, 1-89 is down, and 166-255 is up.&lt;br /&gt;
Some useful values are:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}} width=&amp;quot;200&amp;quot;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;210&#039;&#039;&#039;&amp;lt;br/&amp;gt;45° up||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;166&#039;&#039;&#039;&amp;lt;br/&amp;gt;Straight up&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;0&#039;&#039;&#039;&amp;lt;br/&amp;gt;Level&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;45&#039;&#039;&#039;&amp;lt;br/&amp;gt;45° down||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;89&#039;&#039;&#039;&amp;lt;br/&amp;gt;Straight down&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Units of time==&lt;br /&gt;
;{{LE|Tic}}&lt;br /&gt;
:A time interval of 1/35 second. Actor logic (state duration) is based on tics.&lt;br /&gt;
;{{LE|Octic}}&lt;br /&gt;
:A time interval of 1/8 second. Sector logic (speed and wait for crushers, doors, lifts, raising stairs, etc.) is based on octics, as well as {{Class|InterpolationPoint|interpolation points}} for {{Class|MovingCamera|moving cameras}} and {{Class|ActorMover|actor movers}}.&lt;br /&gt;
&lt;br /&gt;
Vanilla Doom doors wait for 150 tics, roughly 34 octics or 4.3 seconds.  Vanilla Doom platforms wait for 105 tics, equivalent to 24 octics or 3 seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Because of a loss of precision with integer division, the duration of a tic is of 28 milliseconds (instead of 28.5714287514...), which means that 35 tics actually make up only 0.98 seconds. There are therefore actually 35.7142857142857... tics in one second. Likewise, octics are internally derived from tics (one octic being 35 tics divided by 8), and the duration of an octic is 122 milliseconds (instead of 122.5 based on the tic, or of 125 based on the second), which means that 8 octics actually make up only 0.976 seconds. There are therefore 8.192721311475409... octics in one second.&lt;br /&gt;
[[Category:Glossary|*000000000000]]&lt;br /&gt;
&lt;br /&gt;
==Sector movement speed==&lt;br /&gt;
Many specials take a &#039;&#039;speed&#039;&#039; argument, which is usually in eighths of a unit per tic.  That is, a value of 8 means to move by one unit per tic, or 35 units per second.  A value of 0 will generally not do anything useful.&lt;br /&gt;
&lt;br /&gt;
For reference, the standard Doom and Boom speeds are as follows.  Boom uses a standard set of &amp;quot;slow, normal, fast, turbo&amp;quot; speeds for many generalized specials, but they have different meanings for doors, platforms (including moving floors, ceilings, and crushers), and stair building.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! Value !! Boom doors !! Boom platforms !! Boom stairs !! Doom&lt;br /&gt;
|-&lt;br /&gt;
| 2 ||  ||  || Slow || Standard stairs&lt;br /&gt;
|-&lt;br /&gt;
| 4 ||  ||  || Normal || Raising and perpetual platforms; [[Floor_Donut|donut]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 ||  || Slow ||  || Standard floors, ceilings, and crushers&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Slow || Normal || Fast || Standard doors; fast crushers&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Normal || Fast || Turbo || Standard platforms; fast floors; fast stairs&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Fast || Turbo ||  || Blazing doors; fast platforms&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Turbo ||  ||  ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Plat_DownByValue&amp;diff=40637</id>
		<title>Plat DownByValue</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Plat_DownByValue&amp;diff=40637"/>
		<updated>2016-01-03T01:04:55Z</updated>

		<summary type="html">&lt;p&gt;Eevee: remove extraneous newline&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Plat_DownByValue}}&lt;br /&gt;
{{Special|63|tag, speed, delay, height|Platform|DownByValue}}&lt;br /&gt;
* &#039;&#039;tag&#039;&#039;: Tag of affected sector, or 0 to use the line&#039;s back sector.&lt;br /&gt;
* &#039;&#039;speed&#039;&#039;: Platform&#039;s [[Definitions#Sector_movement_speed|movement speed]].  Doom&#039;s standard platforms move at 32, and blazing platforms move at 64.&lt;br /&gt;
* &#039;&#039;delay&#039;&#039;: [[Definitions#Units_of_time|Tics]] before going back up.  Doom&#039;s platforms wait 105 tics.&lt;br /&gt;
* &#039;&#039;height&#039;&#039;: Distance to lower, divided by 8.&lt;br /&gt;
&lt;br /&gt;
Lowers a platform by (&#039;&#039;height&#039;&#039; * 8) units, waits, and then raises it back to its original position. If &#039;&#039;tag&#039;&#039; is 0, then the sector on the line&#039;s back side is used.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
{{noexamples}}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Plat_DownByValue&amp;diff=40636</id>
		<title>Plat DownByValue</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Plat_DownByValue&amp;diff=40636"/>
		<updated>2016-01-03T01:04:36Z</updated>

		<summary type="html">&lt;p&gt;Eevee: add doom defaults&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Plat_DownByValue}}&lt;br /&gt;
{{Special|63|tag, speed, delay, height|Platform|DownByValue}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;tag&#039;&#039;: Tag of affected sector, or 0 to use the line&#039;s back sector.&lt;br /&gt;
* &#039;&#039;speed&#039;&#039;: Platform&#039;s [[Definitions#Sector_movement_speed|movement speed]].  Doom&#039;s standard platforms move at 32, and blazing platforms move at 64.&lt;br /&gt;
* &#039;&#039;delay&#039;&#039;: [[Definitions#Units_of_time|Tics]] before going back up.  Doom&#039;s platforms wait 105 tics.&lt;br /&gt;
* &#039;&#039;height&#039;&#039;: Distance to lower, divided by 8.&lt;br /&gt;
&lt;br /&gt;
Lowers a platform by (&#039;&#039;height&#039;&#039; * 8) units, waits, and then raises it back to its original position. If &#039;&#039;tag&#039;&#039; is 0, then the sector on the line&#039;s back side is used.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
{{noexamples}}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Generic_Door&amp;diff=40635</id>
		<title>Generic Door</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Generic_Door&amp;diff=40635"/>
		<updated>2016-01-03T01:02:07Z</updated>

		<summary type="html">&lt;p&gt;Eevee: add defaults to arg list, matching Door_Raise&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Generic_Door}}&lt;br /&gt;
{{Special|202|tag, speed, kind, delay, lock|General BOOM linetype|Door|type2=Door}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;tag&#039;&#039;: Tag of affected sector, or 0 to use the line&#039;s back sector.&lt;br /&gt;
* &#039;&#039;speed&#039;&#039;: Door&#039;s [[Definitions#Sector_movement_speed|movement speed]].  Doom&#039;s standard doors move at 16, and blazing doors move at 64.&lt;br /&gt;
* &#039;&#039;kind&#039;&#039;: Type of movement to apply to the door.&lt;br /&gt;
* &#039;&#039;delay&#039;&#039;: [[Octic#Units of time|Octics]] until door is automatically closed/opened.  Doom waits about 34 octics.&lt;br /&gt;
* &#039;&#039;lock&#039;&#039;: Required key, if any (see [[Key types]]).&lt;br /&gt;
&lt;br /&gt;
This special encapsulates [[Boom]]&#039;s generalized doors.&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
===Tag===&lt;br /&gt;
If &#039;&#039;tag&#039;&#039; is 0, then the sector on the line&#039;s back side is used.&lt;br /&gt;
&lt;br /&gt;
If 128 is added to the &#039;&#039;kind&#039;&#039; parameter, the tag is used as a light tag, not a door tag; see below.&lt;br /&gt;
&lt;br /&gt;
===Kind===&lt;br /&gt;
&#039;&#039;Kind&#039;&#039; can be one of four values:&lt;br /&gt;
&lt;br /&gt;
* 0&amp;amp;nbsp;&amp;amp;mdash; Raise door and close it after &#039;&#039;delay&#039;&#039; octics &lt;br /&gt;
* 1&amp;amp;nbsp;&amp;amp;mdash; Open door and leave it open &lt;br /&gt;
* 2&amp;amp;nbsp;&amp;amp;mdash; Close door and open it after &#039;&#039;delay&#039;&#039; octics &lt;br /&gt;
* 3&amp;amp;nbsp;&amp;amp;mdash; Close door and leave it closed&lt;br /&gt;
&lt;br /&gt;
If 64 is added to the &#039;&#039;kind&#039;&#039; parameter, the door is not retriggerable even if it is a manual door. This is consistent with Boom&#039;s behavior for generalized door.&lt;br /&gt;
&lt;br /&gt;
If 128 is added to the &#039;&#039;kind&#039;&#039; parameter, the tag is used as a light tag, not a door tag. In this case, this special only opens the door on the line&#039;s back side.&lt;br /&gt;
Instead, a gradual lighting effect is done in the tagged sectors. The light is gradually changed between the darkest neighboring sector when the door is fully closed and the brightest neighboring sector when the door is fully open.&lt;br /&gt;
&lt;br /&gt;
===Delay===&lt;br /&gt;
Because the largest values used in Boom maps could not fit in tics in the Hexen map format, this generalized line uses values in octics. For reference, the following table provides equivalence for the values available in Boom. Use the values from the octics column. You can also use any arbitrary value you want.&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! Seconds !! Tics !! Octics !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 35 || 8 ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 150 || 34 || Equivalent to vanilla door delay&lt;br /&gt;
|-&lt;br /&gt;
| 9 || 300 || 69 ||&lt;br /&gt;
|-&lt;br /&gt;
| 30 || 1050 || 240 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Lock===&lt;br /&gt;
For reference, Boom allows twelve possible lock types, but it is also possible to use any defined [[LOCKDEFS|custom lock value]].&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! Value !! Key needed to unlock&lt;br /&gt;
|-&lt;br /&gt;
| 100 || Any key&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Any blue key&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Any red key&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Any yellow key&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Blue key card&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Red key card&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Yellow key card&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Blue skull key&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Red skull key&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Yellow skull key&lt;br /&gt;
|-&lt;br /&gt;
| 229 || All three colors&lt;br /&gt;
|-&lt;br /&gt;
| 101 || All six keys&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Generic_Lift&amp;diff=40634</id>
		<title>Generic Lift</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Generic_Lift&amp;diff=40634"/>
		<updated>2016-01-03T00:59:19Z</updated>

		<summary type="html">&lt;p&gt;Eevee: mention doom defaults, add table of boom delays&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Generic_Lift}}&lt;br /&gt;
{{Special|203|tag, speed, delay, type, height|General BOOM linetype|Lift|type2=Platform}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;tag&#039;&#039;: Tag of affected sector, or 0 to use the line&#039;s back side.&lt;br /&gt;
* &#039;&#039;speed&#039;&#039;: Lift&#039;s [[Definitions#Sector_movement_speed|movement speed]].  Doom&#039;s standard lifts move at 32, and blazing lifts move at 64.&lt;br /&gt;
* &#039;&#039;delay&#039;&#039;: Octics before reversing direction.  Doom waits for 24 octics (3 seconds).&lt;br /&gt;
* &#039;&#039;type&#039;&#039;: Specifies what type of platform this is; see below.&lt;br /&gt;
* &#039;&#039;height&#039;&#039;: Distance to move; only used when &#039;&#039;target&#039;&#039; is 0.&lt;br /&gt;
&lt;br /&gt;
This special encapsulates [[Boom]]&#039;s generalized lifts.&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
&lt;br /&gt;
=== Delay ===&lt;br /&gt;
Because the largest values used in Boom maps could not fit in tics in the Hexen map format, this generalized special uses values in octics. For reference, the following table provides equivalence for the values available in Boom. Use the values from the octics column. You can also use any arbitrary value you want.&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! Seconds !! Tics !! Octics !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 35 || 8 ||&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 105 || 24 || Equivalent to vanilla lift delay&lt;br /&gt;
|-&lt;br /&gt;
| 4.7 || 165 || ~38 ||&lt;br /&gt;
|-&lt;br /&gt;
| 10 || 350 || 80 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Type ===&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Value!!Target!!Default [[sound sequence]]&lt;br /&gt;
|-&lt;br /&gt;
|0||[[Plat_UpByValue]]||Platform&lt;br /&gt;
|-&lt;br /&gt;
|1||[[Plat_DownWaitUpStay]]||Platform&lt;br /&gt;
|-&lt;br /&gt;
|2||Plat_DownToNearestFloor (does not exist as an explicit action special)||Platform&lt;br /&gt;
|-&lt;br /&gt;
|3||Plat_DownToLowestCeiling (does not exist as an explicit action special)||Platform&lt;br /&gt;
|-&lt;br /&gt;
|4||[[Plat_PerpetualRaise]]||Floor&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
{{noexamples}}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Door_Raise&amp;diff=40633</id>
		<title>Door Raise</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Door_Raise&amp;diff=40633"/>
		<updated>2016-01-03T00:51:57Z</updated>

		<summary type="html">&lt;p&gt;Eevee: eh, stick the reasonable defaults in the arg descriptions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Door_Raise}}&lt;br /&gt;
{{Special|12|tag, speed, delay, lighttag|Door|Raise}}&lt;br /&gt;
* &#039;&#039;tag&#039;&#039;: Tag of affected sector.&lt;br /&gt;
* &#039;&#039;speed&#039;&#039;: Door&#039;s [[Definitions#Sector_movement_speed|movement speed]].  Doom&#039;s standard doors move at 16, and blazing doors move at 64.&lt;br /&gt;
* &#039;&#039;delay&#039;&#039;: Tics until door closes.  Doom waits 150 tics.&lt;br /&gt;
* &#039;&#039;lighttag&#039;&#039;: Tag of sector to perform a gradual lighting effect in&lt;br /&gt;
&lt;br /&gt;
Raises the ceiling of all affected sectors to four units below the lowest surrounding ceiling. After the door is opened, it will be closed again after &#039;&#039;delay&#039;&#039; tics. If &#039;&#039;tag&#039;&#039; is 0, then the sector on the line&#039;s back side is used.&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;lighttag&#039;&#039; is non-zero a gradual lighting effect is done in the tagged sectors. The light is gradually changed between the darkest neighboring sector when the door is fully closed and the brightest neighboring sector when the door is fully open.&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Door_Raise&amp;diff=40632</id>
		<title>Door Raise</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Door_Raise&amp;diff=40632"/>
		<updated>2016-01-03T00:48:43Z</updated>

		<summary type="html">&lt;p&gt;Eevee: mention vanilla doom values&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Door_Raise}}&lt;br /&gt;
{{Special|12|tag, speed, delay, lighttag|Door|Raise}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;tag&#039;&#039;: Tag of affected sector &lt;br /&gt;
* &#039;&#039;speed&#039;&#039;: Door&#039;s [[Definitions#Sector_movement_speed|movement speed]]&lt;br /&gt;
* &#039;&#039;delay&#039;&#039;: Tics until door closes &lt;br /&gt;
* &#039;&#039;lighttag&#039;&#039;: Tag of sector to perform a gradual lighting effect in&lt;br /&gt;
&lt;br /&gt;
Raises the ceiling of all affected sectors to four units below the lowest surrounding ceiling. After the door is opened, it will be closed again after &#039;&#039;delay&#039;&#039; tics. If &#039;&#039;tag&#039;&#039; is 0, then the sector on the line&#039;s back side is used.&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;lighttag&#039;&#039; is non-zero a gradual lighting effect is done in the tagged sectors. The light is gradually changed between the darkest neighboring sector when the door is fully closed and the brightest neighboring sector when the door is fully open.&lt;br /&gt;
&lt;br /&gt;
Vanilla Doom doors have a &#039;&#039;delay&#039;&#039; of 150 tics, and a &#039;&#039;speed&#039;&#039; of 16 (for standard doors) or 64 (for blazing doors).&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Generic_Door&amp;diff=40631</id>
		<title>Generic Door</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Generic_Door&amp;diff=40631"/>
		<updated>2016-01-03T00:44:14Z</updated>

		<summary type="html">&lt;p&gt;Eevee: move boom speeds to a single table in the definitions article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Generic_Door}}&lt;br /&gt;
{{Special|202|tag, speed, kind, delay, lock|General BOOM linetype|Door|type2=Door}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;tag&#039;&#039;: Tag of affected sector &lt;br /&gt;
* &#039;&#039;speed&#039;&#039;: Door&#039;s [[Definitions#Sector_movement_speed|movement speed]]&lt;br /&gt;
* &#039;&#039;kind&#039;&#039;: What type of door this is &lt;br /&gt;
* &#039;&#039;delay&#039;&#039;: [[Octic#Units of time|Octics]] until door is automatically closed/opened &lt;br /&gt;
* &#039;&#039;lock&#039;&#039;: Required key, if any (see [[Key types]]) &lt;br /&gt;
&lt;br /&gt;
This special encapsulates [[Boom]]&#039;s generalized doors.&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
===Tag===&lt;br /&gt;
If &#039;&#039;tag&#039;&#039; is 0, then the sector on the line&#039;s back side is used.&lt;br /&gt;
&lt;br /&gt;
If 128 is added to the &#039;&#039;kind&#039;&#039; parameter, the tag is used as a light tag, not a door tag; see below.&lt;br /&gt;
&lt;br /&gt;
===Kind===&lt;br /&gt;
&#039;&#039;Kind&#039;&#039; can be one of four values:&lt;br /&gt;
&lt;br /&gt;
* 0&amp;amp;nbsp;&amp;amp;mdash; Raise door and close it after &#039;&#039;delay&#039;&#039; octics &lt;br /&gt;
* 1&amp;amp;nbsp;&amp;amp;mdash; Open door and leave it open &lt;br /&gt;
* 2&amp;amp;nbsp;&amp;amp;mdash; Close door and open it after &#039;&#039;delay&#039;&#039; octics &lt;br /&gt;
* 3&amp;amp;nbsp;&amp;amp;mdash; Close door and leave it closed&lt;br /&gt;
&lt;br /&gt;
If 64 is added to the &#039;&#039;kind&#039;&#039; parameter, the door is not retriggerable even if it is a manual door. This is consistent with Boom&#039;s behavior for generalized door.&lt;br /&gt;
&lt;br /&gt;
If 128 is added to the &#039;&#039;kind&#039;&#039; parameter, the tag is used as a light tag, not a door tag. In this case, this special only opens the door on the line&#039;s back side.&lt;br /&gt;
Instead, a gradual lighting effect is done in the tagged sectors. The light is gradually changed between the darkest neighboring sector when the door is fully closed and the brightest neighboring sector when the door is fully open.&lt;br /&gt;
&lt;br /&gt;
===Delay===&lt;br /&gt;
Because the largest values used in Boom maps could not fit in tics in the Hexen map format, this generalized line uses values in octics. For reference, the following table provides equivalence for the values available in Boom. Use the values from the octics column. You can also use any arbitrary value you want.&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! Seconds !! Tics !! Octics !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 35 || 8 ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 150 || 34 || Equivalent to vanilla door delay&lt;br /&gt;
|-&lt;br /&gt;
| 9 || 300 || 69 ||&lt;br /&gt;
|-&lt;br /&gt;
| 30 || 1050 || 240 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Lock===&lt;br /&gt;
For reference, Boom allows twelve possible lock types, but it is also possible to use any defined [[LOCKDEFS|custom lock value]].&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! Value !! Key needed to unlock&lt;br /&gt;
|-&lt;br /&gt;
| 100 || Any key&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Any blue key&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Any red key&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Any yellow key&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Blue key card&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Red key card&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Yellow key card&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Blue skull key&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Red skull key&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Yellow skull key&lt;br /&gt;
|-&lt;br /&gt;
| 229 || All three colors&lt;br /&gt;
|-&lt;br /&gt;
| 101 || All six keys&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Definitions&amp;diff=40630</id>
		<title>Definitions</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Definitions&amp;diff=40630"/>
		<updated>2016-01-03T00:43:51Z</updated>

		<summary type="html">&lt;p&gt;Eevee: mention vanilla doom delays&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Fixed point numbers==&lt;br /&gt;
ZDoom commonly represents fixed point numbers as 32-bit integers with the integer part of the represented number stored in the top 16 bits, and with the fractional part (65536ths) stored the lower 16 bits.&lt;br /&gt;
&lt;br /&gt;
In other words, the fixed point representation of a number = that number * 65536.&lt;br /&gt;
&lt;br /&gt;
See [[Fixed point numbers]] for more information.&lt;br /&gt;
&lt;br /&gt;
==Byte angles==&lt;br /&gt;
This is a value between 0 and 255 representing a direction and is used with some line specials. Some useful values are:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}} width=&amp;quot;300&amp;quot;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;96&#039;&#039;&#039;&amp;lt;br/&amp;gt;Northwest||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;64&#039;&#039;&#039;&amp;lt;br/&amp;gt;North||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;32&#039;&#039;&#039;&amp;lt;br/&amp;gt;Northeast&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;128&#039;&#039;&#039;&amp;lt;br/&amp;gt;West||width=&amp;quot;100&amp;quot;|&amp;amp;nbsp;||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;0&#039;&#039;&#039;&amp;lt;br/&amp;gt;East&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;160&#039;&#039;&#039;&amp;lt;br/&amp;gt;Southwest||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;192&#039;&#039;&#039;&amp;lt;br/&amp;gt;South||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;224&#039;&#039;&#039;&amp;lt;br/&amp;gt;Southeast&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Fixed point angles==&lt;br /&gt;
&lt;br /&gt;
These angles are similar to above but the value lies between 0.0 and 1.0 and is represented as a [[fixed point number]]. This means the value lies between 0 and 65536, with 0 representing 0.0 and 65536 representing 1.0. It is therefore possible to represent these angles as decimals (e.g. 0.5 is west, 0.25 is north), and use [[FixedMul]] and other commands on them.&lt;br /&gt;
&lt;br /&gt;
=== Converting angles ===&lt;br /&gt;
&lt;br /&gt;
To convert fixed point angles to byte angles, you can use the following formula:&lt;br /&gt;
&lt;br /&gt;
 byte_angle = fixed_point_angle &amp;gt;&amp;gt; 8 &lt;br /&gt;
&lt;br /&gt;
And to convert byte to fixed point angles you use the opposite:&lt;br /&gt;
&lt;br /&gt;
 fixed_point_angle = byte_angle &amp;lt;&amp;lt; 8&lt;br /&gt;
&lt;br /&gt;
==Sprite angles==&lt;br /&gt;
See [[Sprite]] article&lt;br /&gt;
&lt;br /&gt;
==Byte pitches==&lt;br /&gt;
Pitches can be represented in byte form, as they only have a range of 180°, rather than 360°. The pitch is a value between 0 and 255 representing vertical pitch and is used with some actors. The number is actually in degrees, and is &#039;&#039;&#039;&#039;&#039;equal to the angle subtracted from 256&#039;&#039;&#039;&#039;&#039;. 0 is level, 1-89 is down, and 166-255 is up.&lt;br /&gt;
Some useful values are:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}} width=&amp;quot;200&amp;quot;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;210&#039;&#039;&#039;&amp;lt;br/&amp;gt;45° up||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;166&#039;&#039;&#039;&amp;lt;br/&amp;gt;Straight up&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;0&#039;&#039;&#039;&amp;lt;br/&amp;gt;Level&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;45&#039;&#039;&#039;&amp;lt;br/&amp;gt;45° down||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;89&#039;&#039;&#039;&amp;lt;br/&amp;gt;Straight down&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Units of time==&lt;br /&gt;
;{{LE|Tic}}&lt;br /&gt;
:A time interval of 1/35 second. Actor logic (state duration) is based on tics.&lt;br /&gt;
;{{LE|Octic}}&lt;br /&gt;
:A time interval of 1/8 second. Sector logic (speed and wait for crushers, doors, lifts, raising stairs, etc.) is based on octics, as well as {{Class|InterpolationPoint|interpolation points}} for {{Class|MovingCamera|moving cameras}} and {{Class|ActorMover|actor movers}}.&lt;br /&gt;
&lt;br /&gt;
Vanilla Doom doors wait for 150 tics, roughly 34 octics or 4.3 seconds.  Vanilla Doom platforms wait for 105 tics, equivalent to 24 octics or 3 seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Because of a loss of precision with integer division, the duration of a tic is of 28 milliseconds (instead of 28.5714287514...), which means that 35 tics actually make up only 0.98 seconds. There are therefore actually 35.7142857142857... tics in one second. Likewise, octics are internally derived from tics (one octic being 35 tics divided by 8), and the duration of an octic is 122 milliseconds (instead of 122.5 based on the tic, or of 125 based on the second), which means that 8 octics actually make up only 0.976 seconds. There are therefore 8.192721311475409... octics in one second.&lt;br /&gt;
[[Category:Glossary|*000000000000]]&lt;br /&gt;
&lt;br /&gt;
==Sector movement speed==&lt;br /&gt;
Many specials take a &#039;&#039;speed&#039;&#039; argument, which is usually in eighths of a unit per tic.  That is, a value of 8 means to move by one unit per tic, or 35 units per second.  A value of 0 will generally not do anything useful.&lt;br /&gt;
&lt;br /&gt;
For reference, the standard Doom and Boom speeds are as follows.  Boom uses a standard set of &amp;quot;slow, normal, fast, turbo&amp;quot; speeds for many generalized specials, but they have different meanings for doors, platforms (including moving floors, ceilings, and crushers), and stair building.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! Value !! Boom doors !! Boom platforms !! Boom stairs !! Doom&lt;br /&gt;
|-&lt;br /&gt;
| 2 ||  ||  || Slow || Standard stairs&lt;br /&gt;
|-&lt;br /&gt;
| 4 ||  ||  || Normal || Raising and perpetual platforms; [[Floor_Donut|donut]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 ||  || Slow ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Slow || Normal || Fast || Standard doors&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Normal || Fast || Turbo || Standard platforms; blazing stairs&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Fast || Turbo ||  || Blazing doors; blazing platforms&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Turbo ||  ||  ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Definitions&amp;diff=40629</id>
		<title>Definitions</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Definitions&amp;diff=40629"/>
		<updated>2016-01-03T00:34:34Z</updated>

		<summary type="html">&lt;p&gt;Eevee: mention zero&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Fixed point numbers==&lt;br /&gt;
ZDoom commonly represents fixed point numbers as 32-bit integers with the integer part of the represented number stored in the top 16 bits, and with the fractional part (65536ths) stored the lower 16 bits.&lt;br /&gt;
&lt;br /&gt;
In other words, the fixed point representation of a number = that number * 65536.&lt;br /&gt;
&lt;br /&gt;
See [[Fixed point numbers]] for more information.&lt;br /&gt;
&lt;br /&gt;
==Byte angles==&lt;br /&gt;
This is a value between 0 and 255 representing a direction and is used with some line specials. Some useful values are:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}} width=&amp;quot;300&amp;quot;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;96&#039;&#039;&#039;&amp;lt;br/&amp;gt;Northwest||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;64&#039;&#039;&#039;&amp;lt;br/&amp;gt;North||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;32&#039;&#039;&#039;&amp;lt;br/&amp;gt;Northeast&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;128&#039;&#039;&#039;&amp;lt;br/&amp;gt;West||width=&amp;quot;100&amp;quot;|&amp;amp;nbsp;||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;0&#039;&#039;&#039;&amp;lt;br/&amp;gt;East&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;160&#039;&#039;&#039;&amp;lt;br/&amp;gt;Southwest||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;192&#039;&#039;&#039;&amp;lt;br/&amp;gt;South||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;224&#039;&#039;&#039;&amp;lt;br/&amp;gt;Southeast&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Fixed point angles==&lt;br /&gt;
&lt;br /&gt;
These angles are similar to above but the value lies between 0.0 and 1.0 and is represented as a [[fixed point number]]. This means the value lies between 0 and 65536, with 0 representing 0.0 and 65536 representing 1.0. It is therefore possible to represent these angles as decimals (e.g. 0.5 is west, 0.25 is north), and use [[FixedMul]] and other commands on them.&lt;br /&gt;
&lt;br /&gt;
=== Converting angles ===&lt;br /&gt;
&lt;br /&gt;
To convert fixed point angles to byte angles, you can use the following formula:&lt;br /&gt;
&lt;br /&gt;
 byte_angle = fixed_point_angle &amp;gt;&amp;gt; 8 &lt;br /&gt;
&lt;br /&gt;
And to convert byte to fixed point angles you use the opposite:&lt;br /&gt;
&lt;br /&gt;
 fixed_point_angle = byte_angle &amp;lt;&amp;lt; 8&lt;br /&gt;
&lt;br /&gt;
==Sprite angles==&lt;br /&gt;
See [[Sprite]] article&lt;br /&gt;
&lt;br /&gt;
==Byte pitches==&lt;br /&gt;
Pitches can be represented in byte form, as they only have a range of 180°, rather than 360°. The pitch is a value between 0 and 255 representing vertical pitch and is used with some actors. The number is actually in degrees, and is &#039;&#039;&#039;&#039;&#039;equal to the angle subtracted from 256&#039;&#039;&#039;&#039;&#039;. 0 is level, 1-89 is down, and 166-255 is up.&lt;br /&gt;
Some useful values are:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}} width=&amp;quot;200&amp;quot;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;210&#039;&#039;&#039;&amp;lt;br/&amp;gt;45° up||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;166&#039;&#039;&#039;&amp;lt;br/&amp;gt;Straight up&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;0&#039;&#039;&#039;&amp;lt;br/&amp;gt;Level&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;45&#039;&#039;&#039;&amp;lt;br/&amp;gt;45° down||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;89&#039;&#039;&#039;&amp;lt;br/&amp;gt;Straight down&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Units of time==&lt;br /&gt;
;{{LE|Tic}}&lt;br /&gt;
:A time interval of 1/35 second. Actor logic (state duration) is based on tics.&lt;br /&gt;
;{{LE|Octic}}&lt;br /&gt;
:A time interval of 1/8 second. Sector logic (speed and wait for crushers, doors, lifts, raising stairs, etc.) is based on octics, as well as {{Class|InterpolationPoint|interpolation points}} for {{Class|MovingCamera|moving cameras}} and {{Class|ActorMover|actor movers}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Because of a loss of precision with integer division, the duration of a tic is of 28 milliseconds (instead of 28.5714287514...), which means that 35 tics actually make up only 0.98 seconds. There are therefore actually 35.7142857142857... tics in one second. Likewise, octics are internally derived from tics (one octic being 35 tics divided by 8), and the duration of an octic is 122 milliseconds (instead of 122.5 based on the tic, or of 125 based on the second), which means that 8 octics actually make up only 0.976 seconds. There are therefore 8.192721311475409... octics in one second.&lt;br /&gt;
[[Category:Glossary|*000000000000]]&lt;br /&gt;
&lt;br /&gt;
==Sector movement speed==&lt;br /&gt;
Many specials take a &#039;&#039;speed&#039;&#039; argument, which is usually in eighths of a unit per tic.  That is, a value of 8 means to move by one unit per tic, or 35 units per second.  A value of 0 will generally not do anything useful.&lt;br /&gt;
&lt;br /&gt;
For reference, the standard Doom and Boom speeds are as follows.  Boom uses a standard set of &amp;quot;slow, normal, fast, turbo&amp;quot; speeds for many generalized specials, but they have different meanings for doors, platforms (including moving floors, ceilings, and crushers), and stair building.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! Value !! Boom doors !! Boom platforms !! Boom stairs !! Doom&lt;br /&gt;
|-&lt;br /&gt;
| 2 ||  ||  || Slow || Standard stairs&lt;br /&gt;
|-&lt;br /&gt;
| 4 ||  ||  || Normal || Raising and perpetual platforms; [[Floor_Donut|donut]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 ||  || Slow ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Slow || Normal || Fast || Standard doors&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Normal || Fast || Turbo || Standard platforms; blazing stairs&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Fast || Turbo ||  || Blazing doors; blazing platforms&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Turbo ||  ||  ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Definitions&amp;diff=40628</id>
		<title>Definitions</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Definitions&amp;diff=40628"/>
		<updated>2016-01-03T00:33:46Z</updated>

		<summary type="html">&lt;p&gt;Eevee: dashes are annoying actually&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Fixed point numbers==&lt;br /&gt;
ZDoom commonly represents fixed point numbers as 32-bit integers with the integer part of the represented number stored in the top 16 bits, and with the fractional part (65536ths) stored the lower 16 bits.&lt;br /&gt;
&lt;br /&gt;
In other words, the fixed point representation of a number = that number * 65536.&lt;br /&gt;
&lt;br /&gt;
See [[Fixed point numbers]] for more information.&lt;br /&gt;
&lt;br /&gt;
==Byte angles==&lt;br /&gt;
This is a value between 0 and 255 representing a direction and is used with some line specials. Some useful values are:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}} width=&amp;quot;300&amp;quot;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;96&#039;&#039;&#039;&amp;lt;br/&amp;gt;Northwest||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;64&#039;&#039;&#039;&amp;lt;br/&amp;gt;North||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;32&#039;&#039;&#039;&amp;lt;br/&amp;gt;Northeast&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;128&#039;&#039;&#039;&amp;lt;br/&amp;gt;West||width=&amp;quot;100&amp;quot;|&amp;amp;nbsp;||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;0&#039;&#039;&#039;&amp;lt;br/&amp;gt;East&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;160&#039;&#039;&#039;&amp;lt;br/&amp;gt;Southwest||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;192&#039;&#039;&#039;&amp;lt;br/&amp;gt;South||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;224&#039;&#039;&#039;&amp;lt;br/&amp;gt;Southeast&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Fixed point angles==&lt;br /&gt;
&lt;br /&gt;
These angles are similar to above but the value lies between 0.0 and 1.0 and is represented as a [[fixed point number]]. This means the value lies between 0 and 65536, with 0 representing 0.0 and 65536 representing 1.0. It is therefore possible to represent these angles as decimals (e.g. 0.5 is west, 0.25 is north), and use [[FixedMul]] and other commands on them.&lt;br /&gt;
&lt;br /&gt;
=== Converting angles ===&lt;br /&gt;
&lt;br /&gt;
To convert fixed point angles to byte angles, you can use the following formula:&lt;br /&gt;
&lt;br /&gt;
 byte_angle = fixed_point_angle &amp;gt;&amp;gt; 8 &lt;br /&gt;
&lt;br /&gt;
And to convert byte to fixed point angles you use the opposite:&lt;br /&gt;
&lt;br /&gt;
 fixed_point_angle = byte_angle &amp;lt;&amp;lt; 8&lt;br /&gt;
&lt;br /&gt;
==Sprite angles==&lt;br /&gt;
See [[Sprite]] article&lt;br /&gt;
&lt;br /&gt;
==Byte pitches==&lt;br /&gt;
Pitches can be represented in byte form, as they only have a range of 180°, rather than 360°. The pitch is a value between 0 and 255 representing vertical pitch and is used with some actors. The number is actually in degrees, and is &#039;&#039;&#039;&#039;&#039;equal to the angle subtracted from 256&#039;&#039;&#039;&#039;&#039;. 0 is level, 1-89 is down, and 166-255 is up.&lt;br /&gt;
Some useful values are:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}} width=&amp;quot;200&amp;quot;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;210&#039;&#039;&#039;&amp;lt;br/&amp;gt;45° up||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;166&#039;&#039;&#039;&amp;lt;br/&amp;gt;Straight up&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;0&#039;&#039;&#039;&amp;lt;br/&amp;gt;Level&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;45&#039;&#039;&#039;&amp;lt;br/&amp;gt;45° down||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;89&#039;&#039;&#039;&amp;lt;br/&amp;gt;Straight down&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Units of time==&lt;br /&gt;
;{{LE|Tic}}&lt;br /&gt;
:A time interval of 1/35 second. Actor logic (state duration) is based on tics.&lt;br /&gt;
;{{LE|Octic}}&lt;br /&gt;
:A time interval of 1/8 second. Sector logic (speed and wait for crushers, doors, lifts, raising stairs, etc.) is based on octics, as well as {{Class|InterpolationPoint|interpolation points}} for {{Class|MovingCamera|moving cameras}} and {{Class|ActorMover|actor movers}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Because of a loss of precision with integer division, the duration of a tic is of 28 milliseconds (instead of 28.5714287514...), which means that 35 tics actually make up only 0.98 seconds. There are therefore actually 35.7142857142857... tics in one second. Likewise, octics are internally derived from tics (one octic being 35 tics divided by 8), and the duration of an octic is 122 milliseconds (instead of 122.5 based on the tic, or of 125 based on the second), which means that 8 octics actually make up only 0.976 seconds. There are therefore 8.192721311475409... octics in one second.&lt;br /&gt;
[[Category:Glossary|*000000000000]]&lt;br /&gt;
&lt;br /&gt;
==Sector movement speed==&lt;br /&gt;
Many specials take a &#039;&#039;speed&#039;&#039; argument, which is usually in eighths of a unit per tic.  That is, a value of 8 means to move by one unit per tic, or 35 units per second.&lt;br /&gt;
&lt;br /&gt;
For reference, the standard Doom and Boom speeds are as follows.  Boom uses a standard set of &amp;quot;slow, normal, fast, turbo&amp;quot; speeds for many generalized specials, but they have different meanings for doors, platforms (including moving floors, ceilings, and crushers), and stair building.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! Value !! Boom doors !! Boom platforms !! Boom stairs !! Doom&lt;br /&gt;
|-&lt;br /&gt;
| 2 ||  ||  || Slow || Standard stairs&lt;br /&gt;
|-&lt;br /&gt;
| 4 ||  ||  || Normal || Raising and perpetual platforms; [[Floor_Donut|donut]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 ||  || Slow ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Slow || Normal || Fast || Standard doors&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Normal || Fast || Turbo || Standard platforms; blazing stairs&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Fast || Turbo ||  || Blazing doors; blazing platforms&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Turbo ||  ||  ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Definitions&amp;diff=40627</id>
		<title>Definitions</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Definitions&amp;diff=40627"/>
		<updated>2016-01-03T00:32:21Z</updated>

		<summary type="html">&lt;p&gt;Eevee: add a table of standard sector movement speeds&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Fixed point numbers==&lt;br /&gt;
ZDoom commonly represents fixed point numbers as 32-bit integers with the integer part of the represented number stored in the top 16 bits, and with the fractional part (65536ths) stored the lower 16 bits.&lt;br /&gt;
&lt;br /&gt;
In other words, the fixed point representation of a number = that number * 65536.&lt;br /&gt;
&lt;br /&gt;
See [[Fixed point numbers]] for more information.&lt;br /&gt;
&lt;br /&gt;
==Byte angles==&lt;br /&gt;
This is a value between 0 and 255 representing a direction and is used with some line specials. Some useful values are:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}} width=&amp;quot;300&amp;quot;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;96&#039;&#039;&#039;&amp;lt;br/&amp;gt;Northwest||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;64&#039;&#039;&#039;&amp;lt;br/&amp;gt;North||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;32&#039;&#039;&#039;&amp;lt;br/&amp;gt;Northeast&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;128&#039;&#039;&#039;&amp;lt;br/&amp;gt;West||width=&amp;quot;100&amp;quot;|&amp;amp;nbsp;||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;0&#039;&#039;&#039;&amp;lt;br/&amp;gt;East&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;160&#039;&#039;&#039;&amp;lt;br/&amp;gt;Southwest||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;192&#039;&#039;&#039;&amp;lt;br/&amp;gt;South||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;224&#039;&#039;&#039;&amp;lt;br/&amp;gt;Southeast&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Fixed point angles==&lt;br /&gt;
&lt;br /&gt;
These angles are similar to above but the value lies between 0.0 and 1.0 and is represented as a [[fixed point number]]. This means the value lies between 0 and 65536, with 0 representing 0.0 and 65536 representing 1.0. It is therefore possible to represent these angles as decimals (e.g. 0.5 is west, 0.25 is north), and use [[FixedMul]] and other commands on them.&lt;br /&gt;
&lt;br /&gt;
=== Converting angles ===&lt;br /&gt;
&lt;br /&gt;
To convert fixed point angles to byte angles, you can use the following formula:&lt;br /&gt;
&lt;br /&gt;
 byte_angle = fixed_point_angle &amp;gt;&amp;gt; 8 &lt;br /&gt;
&lt;br /&gt;
And to convert byte to fixed point angles you use the opposite:&lt;br /&gt;
&lt;br /&gt;
 fixed_point_angle = byte_angle &amp;lt;&amp;lt; 8&lt;br /&gt;
&lt;br /&gt;
==Sprite angles==&lt;br /&gt;
See [[Sprite]] article&lt;br /&gt;
&lt;br /&gt;
==Byte pitches==&lt;br /&gt;
Pitches can be represented in byte form, as they only have a range of 180°, rather than 360°. The pitch is a value between 0 and 255 representing vertical pitch and is used with some actors. The number is actually in degrees, and is &#039;&#039;&#039;&#039;&#039;equal to the angle subtracted from 256&#039;&#039;&#039;&#039;&#039;. 0 is level, 1-89 is down, and 166-255 is up.&lt;br /&gt;
Some useful values are:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}} width=&amp;quot;200&amp;quot;&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;210&#039;&#039;&#039;&amp;lt;br/&amp;gt;45° up||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;166&#039;&#039;&#039;&amp;lt;br/&amp;gt;Straight up&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;0&#039;&#039;&#039;&amp;lt;br/&amp;gt;Level&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;45&#039;&#039;&#039;&amp;lt;br/&amp;gt;45° down||width=&amp;quot;100&amp;quot;|&#039;&#039;&#039;89&#039;&#039;&#039;&amp;lt;br/&amp;gt;Straight down&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Units of time==&lt;br /&gt;
;{{LE|Tic}}&lt;br /&gt;
:A time interval of 1/35 second. Actor logic (state duration) is based on tics.&lt;br /&gt;
;{{LE|Octic}}&lt;br /&gt;
:A time interval of 1/8 second. Sector logic (speed and wait for crushers, doors, lifts, raising stairs, etc.) is based on octics, as well as {{Class|InterpolationPoint|interpolation points}} for {{Class|MovingCamera|moving cameras}} and {{Class|ActorMover|actor movers}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Because of a loss of precision with integer division, the duration of a tic is of 28 milliseconds (instead of 28.5714287514...), which means that 35 tics actually make up only 0.98 seconds. There are therefore actually 35.7142857142857... tics in one second. Likewise, octics are internally derived from tics (one octic being 35 tics divided by 8), and the duration of an octic is 122 milliseconds (instead of 122.5 based on the tic, or of 125 based on the second), which means that 8 octics actually make up only 0.976 seconds. There are therefore 8.192721311475409... octics in one second.&lt;br /&gt;
[[Category:Glossary|*000000000000]]&lt;br /&gt;
&lt;br /&gt;
==Sector movement speed==&lt;br /&gt;
Many specials take a &#039;&#039;speed&#039;&#039; argument, which is usually in eighths of a unit per tic.  That is, a value of 8 means to move by one unit per tic, or 35 units per second.&lt;br /&gt;
&lt;br /&gt;
For reference, the standard Doom and Boom speeds are as follows.  Boom uses a standard set of &amp;quot;slow, normal, fast, turbo&amp;quot; speeds for many generalized specials, but they have different meanings for doors, platforms (including moving floors, ceilings, and crushers), and stair building.&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
! Value !! Boom, doors !! Boom, platforms !! Boom, stairs !! Doom&lt;br /&gt;
|-&lt;br /&gt;
| 2 || — || — || Slow || Standard stairs&lt;br /&gt;
|-&lt;br /&gt;
| 4 || — || — || Normal || Raising and perpetual platforms; [[Floor_Donut|donut]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || — || Slow || — ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Slow || Normal || Fast || Standard doors&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Normal || Fast || Turbo || Standard platforms; blazing stairs&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Fast || Turbo || — || Blazing doors; blazing platforms&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Turbo || — || — ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Slope&amp;diff=40623</id>
		<title>Slope</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Slope&amp;diff=40623"/>
		<updated>2016-01-02T02:00:13Z</updated>

		<summary type="html">&lt;p&gt;Eevee: bah, plane equations are dev only&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Slopes&#039;&#039;&#039; were added to ZDoom back in the 1.23 beta days. Originally the only way to create a sloped sector was with the [[Plane_Align]] special.  However, new ways were added involving the use of special slope things.&lt;br /&gt;
&lt;br /&gt;
==Plane_Align==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;181:[[Plane_Align]]&#039;&#039;&#039; is fairly simple to use once you get the hang of it.  It takes two arguments: floor sector and ceiling sector. For both, a value of 1 means &amp;quot;front sector&amp;quot;, a value of 2 means &amp;quot;back sector&amp;quot;, and a value of 0 means &amp;quot;none&amp;quot;. It requires to be two-sided to work, with the back sector different from the front.&lt;br /&gt;
&lt;br /&gt;
So, let&#039;s say you have two sectors adjacent to one another, one with a floor height of 64, the other with a floor height of 0 and the linedef&#039;s front side is facing the sector with a floor height of 0.  If you give that line a [[Plane_Align]] special with the first argument 1 (for the front) then the sector with floor height of 0 will be sloped upwards to meet the floor with a height of 64.  If you were to put in an argument of 2 instead of 1, then the sector with floor height of 64 would be sloped down to meet the sector with a height of 0.  Once you get the hang of it, it&#039;s actually very simple.&lt;br /&gt;
&lt;br /&gt;
The second argument works in the exact same way (1 for front, 2 for back) except the sloping is applied to the ceiling.  Play around with it for a while, try to make things like arches or sloped railings next to stairs until you fully understand it.&lt;br /&gt;
&lt;br /&gt;
==Plane_Copy==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;118:[[Plane_Copy]]&#039;&#039;&#039; is quite simple as well. If you have already defined a slope in a sector, and you want to share it in another sector, then you can simply copy it. The first two arguments concern the front sector, for the floor and ceiling respectively. If an argument is non-zero, then the slope from the first sector with that tag will be copied for the equivalent plane in the front sector.&lt;br /&gt;
&lt;br /&gt;
The last three arguments are only valid if the line has a back sector as well. The third and fourth work just like the first and second, but concern the back sector&#039;s floor and ceiling respectively instead. Again, they take for argument a tag.&lt;br /&gt;
&lt;br /&gt;
The last argument allows to share a slope across the line. A value of 1 or 2 copies the floor slope from the front to the back, or vice-versa. A value of 4 or 8 copies the ceiling slope in the same way. It is possible to combine a floor and a ceiling value.&lt;br /&gt;
&lt;br /&gt;
==Slope things==&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve mastered [[Plane_Align]] you may become aware that, even though it adds a whole new dimension to Doom editing, it still has limits.  For instance what if you want to slope the same sector two ways (slope it from low to high but also tilt it to the side a bit, perhaps making a pipe that goes upwards)?  Or what if you have a sloped ceiling but you put a new sector within it (for a floor platform or similar)?  Then there&#039;s no way to match the ceiling slope to the surrounding sector.  The slope things will solve your problems.&lt;br /&gt;
&lt;br /&gt;
For all following things, the first editor number correspond to a floor slope, and the second to a ceiling slope.&lt;br /&gt;
&lt;br /&gt;
;1500/1501 &amp;amp;mdash; Vavoom slope things&lt;br /&gt;
:They are used to describe a slope. They work together with the line of the sector in which they are placed having Arg1 equal to the thing&#039;s TID number. The plane is defined with 3 points - the thing&#039;s position and the line ending vertexes at the sector&#039;s floor or ceiling height. This method of setting up slopes originates from [[Vavoom]], hence the name.&lt;br /&gt;
&lt;br /&gt;
;1504/1505 &amp;amp;mdash; Vertex height things&lt;br /&gt;
:They can be used to define explicit heights at each vertex for triangular sectors. This is especially useful for terrain generation. The thing&#039;s z-position is used as the absolute height of each touching triangular sector at a vertex. These things have to be placed at the same position as the vertex they are supposed to affect. Please note that these things have no effect on sectors with more than 3 touching vertices. In [[UDMF]] maps, these things are redundant as vertices can have their floor height and ceiling height set directly in the editor.&lt;br /&gt;
&lt;br /&gt;
;9500/9501 &amp;amp;mdash; Line slope things&lt;br /&gt;
:They take a single argument, a line id. These can be placed anywhere (they don&#039;t need to be in the sector you want sloped) and will slope a sector starting at the specified line id and slope the sector up or down to the thing based on its Z height.  Only the sector on the side of the line facing the thing will be sloped.&lt;br /&gt;
&lt;br /&gt;
;9502/9503 &amp;amp;mdash; Sector tilt things&lt;br /&gt;
:They are useful if you just want to make a simple slope without bothering with any action specials. These also take a single argument, the angle of the tilt. The first argument is relative to 90 which means no slope (90 degrees from the vertical), so the further from 90 a value is the more sloped a sector will be. The angle of the thing also determines the direction of the slope, and the floor or ceiling height will be adjusted so it passes through the thing (based on the Z height relative to the floor/ceiling height). You&#039;ll need to play around with thing positions and values a bit, but, as with [[Plane_Align]], once you get the hang of it, it will become fairly easy to use.&lt;br /&gt;
&lt;br /&gt;
;9510/9511 &amp;amp;mdash; Slope copy things&lt;br /&gt;
:They take one argument, a sector tag. This will easily fix the latter problem mentioned above. Simply tag a sector and then place one of these in the sector you want to copy the slope of the tagged sector and ZDoom will do the rest. Very simple, but also quite effective.&lt;br /&gt;
&lt;br /&gt;
==UDMF==&lt;br /&gt;
&lt;br /&gt;
[[UDMF]] has two ways to create slopes directly.&lt;br /&gt;
&lt;br /&gt;
Vertices can be given explicit floor and ceiling heights with the &amp;lt;code&amp;gt;zfloor&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;zceiling&amp;lt;/code&amp;gt; properties.  This works exactly like vertex height things: it only applies to triangular sectors, and if only some of the vertices have a height given, the others will use the &amp;quot;native&amp;quot; height of the sector.&lt;br /&gt;
&lt;br /&gt;
Sectors can also be given plane equations of the form &#039;&#039;ax + by + cz + d = 0&#039;&#039; directly, using the properties &amp;lt;code&amp;gt;floorplane_a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;floorplane_b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;floorplane_c&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;floorplane_d&amp;lt;/code&amp;gt; (or their &amp;lt;code&amp;gt;ceiling&amp;lt;/code&amp;gt; counterparts).  This is the least human-friendly way to specify a slope by far, and is most likely useful in editors. {{git|47a9dab}}&lt;br /&gt;
&lt;br /&gt;
==Finally==&lt;br /&gt;
&lt;br /&gt;
Slopes are set up in this order:&lt;br /&gt;
&lt;br /&gt;
# UDMF sector plane equations&lt;br /&gt;
# [[Plane_Align]], in line order&lt;br /&gt;
# Line slope things, sector tilt things, and Vavoom slope things, in thing order and all in the same pass&lt;br /&gt;
# Slope copy things&lt;br /&gt;
# Vertex height things and UDMF vertex heights (note that a vertex height thing will overwrite a UDMF prop)&lt;br /&gt;
# [[Plane_Copy]]&lt;br /&gt;
&lt;br /&gt;
If two mechanisms target the same sector, the earlier one will be applied, then the later one will overwrite it.  Note that in some cases, the earlier one may affect the later one — for example, a [[Plane_Align]] may change the height of a sector tilt thing which applies later.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that all slopes are processed during map initialization.  You may still raise and lower a sloped sector, but the actual slope cannot be changed dynamically.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Using slopes]]&lt;br /&gt;
* [[Sector_Set3dFloor]]&lt;br /&gt;
&lt;br /&gt;
== Forum threads ==&lt;br /&gt;
* {{Forum|t=28383|AI traversing slopes}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* {{plainlink|[http://www.zdoom.org/files/examples/slopes2.zip Example WAD]}}&lt;br /&gt;
* {{plainlink|[https://github.com/biwa/3dfloormode/releases 3D plugin by boris]}}&lt;br /&gt;
[[Category:Features]][[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Slope&amp;diff=40622</id>
		<title>Slope</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Slope&amp;diff=40622"/>
		<updated>2016-01-02T01:57:51Z</updated>

		<summary type="html">&lt;p&gt;Eevee: just use &amp;lt;code&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Slopes&#039;&#039;&#039; were added to ZDoom back in the 1.23 beta days. Originally the only way to create a sloped sector was with the [[Plane_Align]] special.  However, new ways were added involving the use of special slope things.&lt;br /&gt;
&lt;br /&gt;
==Plane_Align==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;181:[[Plane_Align]]&#039;&#039;&#039; is fairly simple to use once you get the hang of it.  It takes two arguments: floor sector and ceiling sector. For both, a value of 1 means &amp;quot;front sector&amp;quot;, a value of 2 means &amp;quot;back sector&amp;quot;, and a value of 0 means &amp;quot;none&amp;quot;. It requires to be two-sided to work, with the back sector different from the front.&lt;br /&gt;
&lt;br /&gt;
So, let&#039;s say you have two sectors adjacent to one another, one with a floor height of 64, the other with a floor height of 0 and the linedef&#039;s front side is facing the sector with a floor height of 0.  If you give that line a [[Plane_Align]] special with the first argument 1 (for the front) then the sector with floor height of 0 will be sloped upwards to meet the floor with a height of 64.  If you were to put in an argument of 2 instead of 1, then the sector with floor height of 64 would be sloped down to meet the sector with a height of 0.  Once you get the hang of it, it&#039;s actually very simple.&lt;br /&gt;
&lt;br /&gt;
The second argument works in the exact same way (1 for front, 2 for back) except the sloping is applied to the ceiling.  Play around with it for a while, try to make things like arches or sloped railings next to stairs until you fully understand it.&lt;br /&gt;
&lt;br /&gt;
==Plane_Copy==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;118:[[Plane_Copy]]&#039;&#039;&#039; is quite simple as well. If you have already defined a slope in a sector, and you want to share it in another sector, then you can simply copy it. The first two arguments concern the front sector, for the floor and ceiling respectively. If an argument is non-zero, then the slope from the first sector with that tag will be copied for the equivalent plane in the front sector.&lt;br /&gt;
&lt;br /&gt;
The last three arguments are only valid if the line has a back sector as well. The third and fourth work just like the first and second, but concern the back sector&#039;s floor and ceiling respectively instead. Again, they take for argument a tag.&lt;br /&gt;
&lt;br /&gt;
The last argument allows to share a slope across the line. A value of 1 or 2 copies the floor slope from the front to the back, or vice-versa. A value of 4 or 8 copies the ceiling slope in the same way. It is possible to combine a floor and a ceiling value.&lt;br /&gt;
&lt;br /&gt;
==Slope things==&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve mastered [[Plane_Align]] you may become aware that, even though it adds a whole new dimension to Doom editing, it still has limits.  For instance what if you want to slope the same sector two ways (slope it from low to high but also tilt it to the side a bit, perhaps making a pipe that goes upwards)?  Or what if you have a sloped ceiling but you put a new sector within it (for a floor platform or similar)?  Then there&#039;s no way to match the ceiling slope to the surrounding sector.  The slope things will solve your problems.&lt;br /&gt;
&lt;br /&gt;
For all following things, the first editor number correspond to a floor slope, and the second to a ceiling slope.&lt;br /&gt;
&lt;br /&gt;
;1500/1501 &amp;amp;mdash; Vavoom slope things&lt;br /&gt;
:They are used to describe a slope. They work together with the line of the sector in which they are placed having Arg1 equal to the thing&#039;s TID number. The plane is defined with 3 points - the thing&#039;s position and the line ending vertexes at the sector&#039;s floor or ceiling height. This method of setting up slopes originates from [[Vavoom]], hence the name.&lt;br /&gt;
&lt;br /&gt;
;1504/1505 &amp;amp;mdash; Vertex height things&lt;br /&gt;
:They can be used to define explicit heights at each vertex for triangular sectors. This is especially useful for terrain generation. The thing&#039;s z-position is used as the absolute height of each touching triangular sector at a vertex. These things have to be placed at the same position as the vertex they are supposed to affect. Please note that these things have no effect on sectors with more than 3 touching vertices. In [[UDMF]] maps, these things are redundant as vertices can have their floor height and ceiling height set directly in the editor.&lt;br /&gt;
&lt;br /&gt;
;9500/9501 &amp;amp;mdash; Line slope things&lt;br /&gt;
:They take a single argument, a line id. These can be placed anywhere (they don&#039;t need to be in the sector you want sloped) and will slope a sector starting at the specified line id and slope the sector up or down to the thing based on its Z height.  Only the sector on the side of the line facing the thing will be sloped.&lt;br /&gt;
&lt;br /&gt;
;9502/9503 &amp;amp;mdash; Sector tilt things&lt;br /&gt;
:They are useful if you just want to make a simple slope without bothering with any action specials. These also take a single argument, the angle of the tilt. The first argument is relative to 90 which means no slope (90 degrees from the vertical), so the further from 90 a value is the more sloped a sector will be. The angle of the thing also determines the direction of the slope, and the floor or ceiling height will be adjusted so it passes through the thing (based on the Z height relative to the floor/ceiling height). You&#039;ll need to play around with thing positions and values a bit, but, as with [[Plane_Align]], once you get the hang of it, it will become fairly easy to use.&lt;br /&gt;
&lt;br /&gt;
;9510/9511 &amp;amp;mdash; Slope copy things&lt;br /&gt;
:They take one argument, a sector tag. This will easily fix the latter problem mentioned above. Simply tag a sector and then place one of these in the sector you want to copy the slope of the tagged sector and ZDoom will do the rest. Very simple, but also quite effective.&lt;br /&gt;
&lt;br /&gt;
==UDMF==&lt;br /&gt;
&lt;br /&gt;
[[UDMF]] has two ways to create slopes directly.&lt;br /&gt;
&lt;br /&gt;
Vertices can be given explicit floor and ceiling heights with the &amp;lt;code&amp;gt;zfloor&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;zceiling&amp;lt;/code&amp;gt; properties.  This works exactly like vertex height things: it only applies to triangular sectors, and if only some of the vertices have a height given, the others will use the &amp;quot;native&amp;quot; height of the sector.&lt;br /&gt;
&lt;br /&gt;
Sectors can also be given plane equations of the form &#039;&#039;ax + by + cz + d = 0&#039;&#039; directly, using the properties &amp;lt;code&amp;gt;floorplane_a&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;floorplane_b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;floorplane_c&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;floorplane_d&amp;lt;/code&amp;gt; (or their &amp;lt;code&amp;gt;ceiling&amp;lt;/code&amp;gt; counterparts).  This is the least human-friendly way to specify a slope by far, and is most likely useful in editors.&lt;br /&gt;
&lt;br /&gt;
==Finally==&lt;br /&gt;
&lt;br /&gt;
Slopes are set up in this order:&lt;br /&gt;
&lt;br /&gt;
# UDMF sector plane equations&lt;br /&gt;
# [[Plane_Align]], in line order&lt;br /&gt;
# Line slope things, sector tilt things, and Vavoom slope things, in thing order and all in the same pass&lt;br /&gt;
# Slope copy things&lt;br /&gt;
# Vertex height things and UDMF vertex heights (note that a vertex height thing will overwrite a UDMF prop)&lt;br /&gt;
# [[Plane_Copy]]&lt;br /&gt;
&lt;br /&gt;
If two mechanisms target the same sector, the earlier one will be applied, then the later one will overwrite it.  Note that in some cases, the earlier one may affect the later one — for example, a [[Plane_Align]] may change the height of a sector tilt thing which applies later.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that all slopes are processed during map initialization.  You may still raise and lower a sloped sector, but the actual slope cannot be changed dynamically.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Using slopes]]&lt;br /&gt;
* [[Sector_Set3dFloor]]&lt;br /&gt;
&lt;br /&gt;
== Forum threads ==&lt;br /&gt;
* {{Forum|t=28383|AI traversing slopes}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* {{plainlink|[http://www.zdoom.org/files/examples/slopes2.zip Example WAD]}}&lt;br /&gt;
* {{plainlink|[https://github.com/biwa/3dfloormode/releases 3D plugin by boris]}}&lt;br /&gt;
[[Category:Features]][[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Slope&amp;diff=40621</id>
		<title>Slope</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Slope&amp;diff=40621"/>
		<updated>2016-01-02T01:51:50Z</updated>

		<summary type="html">&lt;p&gt;Eevee: mention udmf plane equations, fix the order&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Slopes&#039;&#039;&#039; were added to ZDoom back in the 1.23 beta days. Originally the only way to create a sloped sector was with the [[Plane_Align]] special.  However, new ways were added involving the use of special slope things.&lt;br /&gt;
&lt;br /&gt;
==Plane_Align==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;181:[[Plane_Align]]&#039;&#039;&#039; is fairly simple to use once you get the hang of it.  It takes two arguments: floor sector and ceiling sector. For both, a value of 1 means &amp;quot;front sector&amp;quot;, a value of 2 means &amp;quot;back sector&amp;quot;, and a value of 0 means &amp;quot;none&amp;quot;. It requires to be two-sided to work, with the back sector different from the front.&lt;br /&gt;
&lt;br /&gt;
So, let&#039;s say you have two sectors adjacent to one another, one with a floor height of 64, the other with a floor height of 0 and the linedef&#039;s front side is facing the sector with a floor height of 0.  If you give that line a [[Plane_Align]] special with the first argument 1 (for the front) then the sector with floor height of 0 will be sloped upwards to meet the floor with a height of 64.  If you were to put in an argument of 2 instead of 1, then the sector with floor height of 64 would be sloped down to meet the sector with a height of 0.  Once you get the hang of it, it&#039;s actually very simple.&lt;br /&gt;
&lt;br /&gt;
The second argument works in the exact same way (1 for front, 2 for back) except the sloping is applied to the ceiling.  Play around with it for a while, try to make things like arches or sloped railings next to stairs until you fully understand it.&lt;br /&gt;
&lt;br /&gt;
==Plane_Copy==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;118:[[Plane_Copy]]&#039;&#039;&#039; is quite simple as well. If you have already defined a slope in a sector, and you want to share it in another sector, then you can simply copy it. The first two arguments concern the front sector, for the floor and ceiling respectively. If an argument is non-zero, then the slope from the first sector with that tag will be copied for the equivalent plane in the front sector.&lt;br /&gt;
&lt;br /&gt;
The last three arguments are only valid if the line has a back sector as well. The third and fourth work just like the first and second, but concern the back sector&#039;s floor and ceiling respectively instead. Again, they take for argument a tag.&lt;br /&gt;
&lt;br /&gt;
The last argument allows to share a slope across the line. A value of 1 or 2 copies the floor slope from the front to the back, or vice-versa. A value of 4 or 8 copies the ceiling slope in the same way. It is possible to combine a floor and a ceiling value.&lt;br /&gt;
&lt;br /&gt;
==Slope things==&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve mastered [[Plane_Align]] you may become aware that, even though it adds a whole new dimension to Doom editing, it still has limits.  For instance what if you want to slope the same sector two ways (slope it from low to high but also tilt it to the side a bit, perhaps making a pipe that goes upwards)?  Or what if you have a sloped ceiling but you put a new sector within it (for a floor platform or similar)?  Then there&#039;s no way to match the ceiling slope to the surrounding sector.  The slope things will solve your problems.&lt;br /&gt;
&lt;br /&gt;
For all following things, the first editor number correspond to a floor slope, and the second to a ceiling slope.&lt;br /&gt;
&lt;br /&gt;
;1500/1501 &amp;amp;mdash; Vavoom slope things&lt;br /&gt;
:They are used to describe a slope. They work together with the line of the sector in which they are placed having Arg1 equal to the thing&#039;s TID number. The plane is defined with 3 points - the thing&#039;s position and the line ending vertexes at the sector&#039;s floor or ceiling height. This method of setting up slopes originates from [[Vavoom]], hence the name.&lt;br /&gt;
&lt;br /&gt;
;1504/1505 &amp;amp;mdash; Vertex height things&lt;br /&gt;
:They can be used to define explicit heights at each vertex for triangular sectors. This is especially useful for terrain generation. The thing&#039;s z-position is used as the absolute height of each touching triangular sector at a vertex. These things have to be placed at the same position as the vertex they are supposed to affect. Please note that these things have no effect on sectors with more than 3 touching vertices. In [[UDMF]] maps, these things are redundant as vertices can have their floor height and ceiling height set directly in the editor.&lt;br /&gt;
&lt;br /&gt;
;9500/9501 &amp;amp;mdash; Line slope things&lt;br /&gt;
:They take a single argument, a line id. These can be placed anywhere (they don&#039;t need to be in the sector you want sloped) and will slope a sector starting at the specified line id and slope the sector up or down to the thing based on its Z height.  Only the sector on the side of the line facing the thing will be sloped.&lt;br /&gt;
&lt;br /&gt;
;9502/9503 &amp;amp;mdash; Sector tilt things&lt;br /&gt;
:They are useful if you just want to make a simple slope without bothering with any action specials. These also take a single argument, the angle of the tilt. The first argument is relative to 90 which means no slope (90 degrees from the vertical), so the further from 90 a value is the more sloped a sector will be. The angle of the thing also determines the direction of the slope, and the floor or ceiling height will be adjusted so it passes through the thing (based on the Z height relative to the floor/ceiling height). You&#039;ll need to play around with thing positions and values a bit, but, as with [[Plane_Align]], once you get the hang of it, it will become fairly easy to use.&lt;br /&gt;
&lt;br /&gt;
;9510/9511 &amp;amp;mdash; Slope copy things&lt;br /&gt;
:They take one argument, a sector tag. This will easily fix the latter problem mentioned above. Simply tag a sector and then place one of these in the sector you want to copy the slope of the tagged sector and ZDoom will do the rest. Very simple, but also quite effective.&lt;br /&gt;
&lt;br /&gt;
==UDMF==&lt;br /&gt;
&lt;br /&gt;
[[UDMF]] has two ways to create slopes directly.&lt;br /&gt;
&lt;br /&gt;
Vertices can be given explicit floor and ceiling heights with the &#039;&#039;zfloor&#039;&#039; and &#039;&#039;zceiling&#039;&#039; properties.  This works exactly like vertex height things: it only applies to triangular sectors, and if only some of the vertices have a height given, the others will use the &amp;quot;native&amp;quot; height of the sector.&lt;br /&gt;
&lt;br /&gt;
Sectors can also be given plane equations of the form &#039;&#039;ax + by + cz + d = 0&#039;&#039; directly, using the properties &#039;&#039;floorplane_a&#039;&#039;, &#039;&#039;floorplane_b&#039;&#039;, &#039;&#039;floorplane_c&#039;&#039;, and &#039;&#039;floorplane_d&#039;&#039; (or their &#039;&#039;ceiling&#039;&#039; counterparts).  This is the least human-friendly way to specify a slope by far, and is most likely useful in editors.&lt;br /&gt;
&lt;br /&gt;
==Finally==&lt;br /&gt;
&lt;br /&gt;
Slopes are set up in this order:&lt;br /&gt;
&lt;br /&gt;
# UDMF sector plane equations&lt;br /&gt;
# [[Plane_Align]], in line order&lt;br /&gt;
# Line slope things, sector tilt things, and Vavoom slope things, in thing order and all in the same pass&lt;br /&gt;
# Slope copy things&lt;br /&gt;
# Vertex height things and UDMF vertex heights (note that a vertex height thing will overwrite a UDMF prop)&lt;br /&gt;
# [[Plane_Copy]]&lt;br /&gt;
&lt;br /&gt;
If two mechanisms target the same sector, the earlier one will be applied, then the later one will overwrite it.  Note that in some cases, the earlier one may affect the later one — for example, a [[Plane_Align]] may change the height of a sector tilt thing which applies later.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that all slopes are processed during map initialization.  You may still raise and lower a sloped sector, but the actual slope cannot be changed dynamically.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Using slopes]]&lt;br /&gt;
* [[Sector_Set3dFloor]]&lt;br /&gt;
&lt;br /&gt;
== Forum threads ==&lt;br /&gt;
* {{Forum|t=28383|AI traversing slopes}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* {{plainlink|[http://www.zdoom.org/files/examples/slopes2.zip Example WAD]}}&lt;br /&gt;
* {{plainlink|[https://github.com/biwa/3dfloormode/releases 3D plugin by boris]}}&lt;br /&gt;
[[Category:Features]][[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Plat_DownWaitUpStayLip&amp;diff=40605</id>
		<title>Plat DownWaitUpStayLip</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Plat_DownWaitUpStayLip&amp;diff=40605"/>
		<updated>2015-12-30T05:51:53Z</updated>

		<summary type="html">&lt;p&gt;Eevee: mention default doom delay&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Plat_DownWaitUpStayLip}}&lt;br /&gt;
{{Special|206|tag, speed, delay, lip, sound|Platform|DownWaitUpStayLip}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;tag&#039;&#039;: Tag of affected sector &lt;br /&gt;
* &#039;&#039;speed&#039;&#039;: Speed of move &lt;br /&gt;
* &#039;&#039;delay&#039;&#039;: Tics before going back up.  Vanilla Doom lifts waited for 3 seconds, or 105 tics.&lt;br /&gt;
* &#039;&#039;lip&#039;&#039;: Amount of floor to leave showing when platform is lowered &lt;br /&gt;
* &#039;&#039;sound&#039;&#039;: if 0 the platform sound is used, if 1 the moving floor sound is used&lt;br /&gt;
&lt;br /&gt;
Lowers a platform, waits, and then raises it back to its original position. If &#039;&#039;tag&#039;&#039; is 0, then the sector on the line&#039;s back side is used.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
{{noexamples}}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Plat_DownWaitUpStay&amp;diff=40604</id>
		<title>Plat DownWaitUpStay</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Plat_DownWaitUpStay&amp;diff=40604"/>
		<updated>2015-12-30T05:51:30Z</updated>

		<summary type="html">&lt;p&gt;Eevee: mention default doom delay&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Plat_DownWaitUpStay}}&lt;br /&gt;
{{Special|62|tag, speed, delay|Platform|DownWaitUpStay}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;tag&#039;&#039;: Tag of affected sector&lt;br /&gt;
* &#039;&#039;speed&#039;&#039;: Speed of move&lt;br /&gt;
* &#039;&#039;delay&#039;&#039;: Tics before going back up.  Vanilla Doom lifts waited for 3 seconds, or 105 tics.&lt;br /&gt;
&lt;br /&gt;
Lowers a platform, waits, and then raises it back to its original position. This is the same as using [[Plat_DownWaitUpStayLip]] with a lip of 8. If &#039;&#039;tag&#039;&#039; is 0, then the [[sector]] on the line&#039;s back side is used.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
{{noexamples}}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Slope&amp;diff=40278</id>
		<title>Slope</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Slope&amp;diff=40278"/>
		<updated>2015-07-25T11:02:35Z</updated>

		<summary type="html">&lt;p&gt;Eevee: clarify line slope things&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Slopes&#039;&#039;&#039; were added to ZDoom back in the 1.23 beta days. Originally the only way to create a sloped sector was with the [[Plane_Align]] special.  However, new ways were added involving the use of special slope things.&lt;br /&gt;
&lt;br /&gt;
==Plane_Align==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;181:[[Plane_Align]]&#039;&#039;&#039; is fairly simple to use once you get the hang of it.  It takes two arguments: floor sector and ceiling sector. For both, a value of 1 means &amp;quot;front sector&amp;quot;, a value of 2 means &amp;quot;back sector&amp;quot;, and a value of 0 means &amp;quot;none&amp;quot;. It requires to be two-sided to work, with the back sector different from the front.&lt;br /&gt;
&lt;br /&gt;
So, let&#039;s say you have two sectors adjacent to one another, one with a floor height of 64, the other with a floor height of 0 and the linedef&#039;s front side is facing the sector with a floor height of 0.  If you give that line a [[Plane_Align]] special with the first argument 1 (for the front) then the sector with floor height of 0 will be sloped upwards to meet the floor with a height of 64.  If you were to put in an argument of 2 instead of 1, then the sector with floor height of 64 would be sloped down to meet the sector with a height of 0.  Once you get the hang of it, it&#039;s actually very simple.&lt;br /&gt;
&lt;br /&gt;
The second argument works in the exact same way (1 for front, 2 for back) except the sloping is applied to the ceiling.  Play around with it for a while, try to make things like arches or sloped railings next to stairs until you fully understand it.&lt;br /&gt;
&lt;br /&gt;
==Plane_Copy==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;118:[[Plane_Copy]]&#039;&#039;&#039; is quite simple as well. If you have already defined a slope in a sector, and you want to share it in another sector, then you can simply copy it. The first two arguments concern the front sector, for the floor and ceiling respectively. If an argument is non-zero, then the slope from the first sector with that tag will be copied for the equivalent plane in the front sector.&lt;br /&gt;
&lt;br /&gt;
The last three arguments are only valid if the line has a back sector as well. The third and fourth work just like the first and second, but concern the back sector&#039;s floor and ceiling respectively instead. Again, they take for argument a tag.&lt;br /&gt;
&lt;br /&gt;
The last argument allows to share a slope across the line. A value of 1 or 2 copies the floor slope from the front to the back, or vice-versa. A value of 4 or 8 copies the ceiling slope in the same way. It is possible to combine a floor and a ceiling value.&lt;br /&gt;
&lt;br /&gt;
==Slope things==&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve mastered [[Plane_Align]] you may become aware that, even though it adds a whole new dimension to Doom editing, it still has limits.  For instance what if you want to slope the same sector two ways (slope it from low to high but also tilt it to the side a bit, perhaps making a pipe that goes upwards)?  Or what if you have a sloped ceiling but you put a new sector within it (for a floor platform or similar)?  Then there&#039;s no way to match the ceiling slope to the surrounding sector.  The slope things will solve your problems.&lt;br /&gt;
&lt;br /&gt;
For all following things, the first editor number correspond to a floor slope, and the second to a ceiling slope.&lt;br /&gt;
&lt;br /&gt;
;1500/1501 &amp;amp;mdash; Vavoom slope things&lt;br /&gt;
:They are used to describe a slope. They work together with the line of the sector in which they are placed having Arg1 equal to the thing&#039;s TID number. The plane is defined with 3 points - the thing&#039;s position and the line ending vertexes at the sector&#039;s floor or ceiling height. This method of setting up slopes originates from [[Vavoom]], hence the name.&lt;br /&gt;
&lt;br /&gt;
;1504/1505 &amp;amp;mdash; Vertex height things&lt;br /&gt;
:They can be used to define explicit heights at each vertex for triangular sectors. This is especially useful for terrain generation. The thing&#039;s z-position is used as the absolute height of each touching triangular sector at a vertex. These things have to be placed at the same position as the vertex they are supposed to affect. Please note that these things have no effect on sectors with more than 3 touching vertices.&lt;br /&gt;
&lt;br /&gt;
;9500/9501 &amp;amp;mdash; Line slope things&lt;br /&gt;
:They take a single argument, a line id. These can be placed anywhere (they don&#039;t need to be in the sector you want sloped) and will slope a sector starting at the specified line id and slope the sector up or down to the thing based on its Z height.  Only the sector on the side of the line facing the thing will be sloped.&lt;br /&gt;
&lt;br /&gt;
;9502/9503 &amp;amp;mdash; Sector tilt things&lt;br /&gt;
:They are useful if you just want to make a simple slope without bothering with any action specials. These also take a single argument, the angle of the tilt. The first argument is relative to 90 which means no slope (90 degrees from the vertical), so the further from 90 a value is the more sloped a sector will be. The angle of the thing also determines the direction of the slope, and the floor or ceiling height will be adjusted so it passes through the thing (based on the Z height relative to the floor/ceiling height). You&#039;ll need to play around with thing positions and values a bit, but, as with [[Plane_Align]], once you get the hang of it, it will become fairly easy to use.&lt;br /&gt;
&lt;br /&gt;
;9510/9511 &amp;amp;mdash; Slope copy things&lt;br /&gt;
:They take one argument, a sector tag. This will easily fix the latter problem mentioned above. Simply tag a sector and then place one of these in the sector you want to copy the slope of the tagged sector and ZDoom will do the rest. Very simple, but also quite effective.&lt;br /&gt;
&lt;br /&gt;
==Finally==&lt;br /&gt;
&lt;br /&gt;
Slopes are set up in this order: first, [[Plane_Align]] slopes are set up, then Vavoom slope things, followed by line slope things, allowing you to further adjust slopes. Afterwards are processed sector tilt things, slope copy things, vertex height things, and finally [[Plane_Copy]]. Keep in mind that all slope things and linedefs are processed during initialization, it is therefore not possible to have dynamic slopes.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Using slopes]]&lt;br /&gt;
* [[Sector_Set3dFloor]]&lt;br /&gt;
&lt;br /&gt;
== Forum threads ==&lt;br /&gt;
* {{Forum|t=28383|AI traversing slopes}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* {{plainlink|[http://www.zdoom.org/files/examples/slopes2.zip Example WAD]}}&lt;br /&gt;
[[Category:Features]][[Category:Glossary]]&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Sector_Set3dFloor&amp;diff=40209</id>
		<title>Sector Set3dFloor</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Sector_Set3dFloor&amp;diff=40209"/>
		<updated>2015-06-09T22:04:39Z</updated>

		<summary type="html">&lt;p&gt;Eevee: mention friction transfer, palette blending&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Sector_Set3dFloor}}&lt;br /&gt;
{{Special|160|tag, type, flags, alpha, hi-tag/line ID|Renderer|use=line}}&lt;br /&gt;
&lt;br /&gt;
Draws a 3D floor. Use this with a [[control sector]] in the same fashion as [[Transfer_Heights]].&lt;br /&gt;
&lt;br /&gt;
The ceiling of the control sector will be the floor of the 3D floor and the floor of the control sector will be the bottom of the 3d floor. The texture used on this line type will be the texture used for the sides of the 3D floor. The height of the 3D floor will be that of the distance between floor and ceiling.&lt;br /&gt;
&lt;br /&gt;
Normally the lighting (including light color) of the control sector is transferred to the volume of the 3D floor (if transparent) and the space below it down to the next lower 3D floor.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
* &#039;&#039;tag:&#039;&#039; Tag of affected sectors.&lt;br /&gt;
* &#039;&#039;type:&#039;&#039; The type of 3D floor to create.&lt;br /&gt;
* &#039;&#039;flags:&#039;&#039; The flags to apply to the 3D floor.&lt;br /&gt;
* &#039;&#039;alpha:&#039;&#039; Specifies the translucency of the 3D-floor: 0 = invisible, 255 = opaque.&lt;br /&gt;
* &#039;&#039;hi-tag/line ID:&#039;&#039; If type has the value 8 added to it this will give the control linedef a line ID. Otherwise this parameter serves as a high-byte for the sector tag in order to allow more than 256 3D floor definitions. This parameter is completely unnecessary in [[UDMF]] and should not be used in that format.&lt;br /&gt;
&lt;br /&gt;
=== Types ===&lt;br /&gt;
* &#039;&#039;0:&#039;&#039; Defines a Vavoom-style 3D-floor. See the [[Vavoom]] [http://www.vavoom-engine.com/wiki/index.php?title=Sector_Set3DFloor Wiki] for further information.&lt;br /&gt;
* &#039;&#039;1:&#039;&#039; Defines a solid 3D floor.&lt;br /&gt;
* &#039;&#039;2:&#039;&#039; Defines a [[swimmable]] 3D “floor”.&lt;br /&gt;
* &#039;&#039;3:&#039;&#039; Defines a non-solid 3D-floor.&lt;br /&gt;
* &#039;&#039;4:&#039;&#039; If you add 4 to the type the inside will also be rendered. Normally this is only done for liquids. This does not work for the Vavoom type. Using 4 alone is an &amp;quot;undocumented hack type that can be used to patch some missing texture hacks the engine can&#039;t detect&amp;quot;.&lt;br /&gt;
* &#039;&#039;16:&#039;&#039; If you add 16 to the type the visibility rules will be inverted. Monsters can see through solid 3D floors but not through non-solid ones. This does not work for the Vavoom type.&lt;br /&gt;
* &#039;&#039;32:&#039;&#039; If you add 32 to the type the shootability rules will be inverted. You can shoot through solid 3D floors but not through non-solid ones. This does not work for the Vavoom type.&lt;br /&gt;
&lt;br /&gt;
=== Flags ===&lt;br /&gt;
* &#039;&#039;1:&#039;&#039; Disables any lighting effects created by this 3D-floor.&lt;br /&gt;
* &#039;&#039;2:&#039;&#039; Restricts the lighting properties into the area between the 3D floor&#039;s top and bottom. Logically this is only useful if the 3D floor is not solid.&lt;br /&gt;
* &#039;&#039;4:&#039;&#039; &#039;Fog&#039; effect. This is not real fog though, it just draws some translucent colored polygons on the outside of the 3D-floor.&lt;br /&gt;
* &#039;&#039;8:&#039;&#039; Ignores the bottom height of the model sector and draws top and bottom of the 3D floor at the model sector&#039;s ceiling height.&lt;br /&gt;
* &#039;&#039;16:&#039;&#039; Uses a sidedef&#039;s upper texture to draw the sides of the 3D floor instead of the transfer linedef&#039;s mid texture.&lt;br /&gt;
* &#039;&#039;32:&#039;&#039; Uses a sidedef&#039;s lower texture to draw the sides of the 3D floor instead of the transfer linedef&#039;s mid texture. &lt;br /&gt;
* &#039;&#039;64:&#039;&#039; Renders the 3D floor using additive translucency.&lt;br /&gt;
&lt;br /&gt;
== Important notes ==&lt;br /&gt;
* Sloped 3D floors are not available in the software renderer.&lt;br /&gt;
* Additive translucency for 3D floors is {{new}}&lt;br /&gt;
* Sloped translucent 3D floors &#039;&#039;cannot&#039;&#039; be defined. They can be either sloped or translucent, not both.&lt;br /&gt;
* When making a sloped 3D sector make sure that the control sectors are aligned with the in-game sectors on the editing grid. Odd results may happen if they are not aligned.&lt;br /&gt;
* Translucent 3D floors may create glitches in the display of XY-billboarded sprites.&lt;br /&gt;
* A same sector cannot have both a 3D floor and a [[Transfer_Heights]] effect.&lt;br /&gt;
* 3D floors can move up and down by moving the model sector&#039;s floor and ceiling. But due to the way the Doom engine is doing this, it does not work for the Vavoom-type!&lt;br /&gt;
* [[Sector damage]] on the control sector is transferred to the target sectors.  [[TERRAIN]]-based damage and friction are transferred as well {{git|2b59a35}}.&lt;br /&gt;
* If the control sector has a fade color, it will be used as the [[palette blend]] within and underneath the 3D floor.&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Generic_Lift&amp;diff=40187</id>
		<title>Generic Lift</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Generic_Lift&amp;diff=40187"/>
		<updated>2015-05-31T05:50:59Z</updated>

		<summary type="html">&lt;p&gt;Eevee: mention &amp;quot;default&amp;quot; delay&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Generic_Lift}}&lt;br /&gt;
{{Special|203|tag, speed, delay, type, height|General BOOM linetype|Lift|type2=Platform}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;tag&#039;&#039;: Tag of affected sector&lt;br /&gt;
* &#039;&#039;speed&#039;&#039;: Speed of move&lt;br /&gt;
* &#039;&#039;delay&#039;&#039;: Octics before reversing direction.  Vanilla Doom lifts waited for 3 seconds, or 24 octics.&lt;br /&gt;
* &#039;&#039;type&#039;&#039;: Specifies what type of platform this is&lt;br /&gt;
* &#039;&#039;height&#039;&#039;: Distance to move if target is 0.&lt;br /&gt;
&lt;br /&gt;
This special encapsulates [[Boom]]&#039;s generalized lifts. Type can be one of the following values:&lt;br /&gt;
&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
!Value!!Target!!Default [[sound sequence]]&lt;br /&gt;
|-&lt;br /&gt;
|0||[[Plat_UpByValue]]||Platform&lt;br /&gt;
|-&lt;br /&gt;
|1||[[Plat_DownWaitUpStay]]||Platform&lt;br /&gt;
|-&lt;br /&gt;
|2||Plat_DownToNearestFloor (does not exist as an explicit action special)||Platform&lt;br /&gt;
|-&lt;br /&gt;
|3||Plat_DownToLowestCeiling (does not exist as an explicit action special)||Platform&lt;br /&gt;
|-&lt;br /&gt;
|4||[[Plat_PerpetualRaise]]||Floor&lt;br /&gt;
|}&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
{{noexamples}}&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
	<entry>
		<id>https://zdoom.org/w/index.php?title=Generic_Door&amp;diff=37679</id>
		<title>Generic Door</title>
		<link rel="alternate" type="text/html" href="https://zdoom.org/w/index.php?title=Generic_Door&amp;diff=37679"/>
		<updated>2014-02-18T07:37:59Z</updated>

		<summary type="html">&lt;p&gt;Eevee: &amp;quot;1 units&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Generic_Door}}&lt;br /&gt;
{{Special|202|tag, speed, kind, delay, lock|General BOOM linetype|Door|type2=Door}}&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;tag&#039;&#039;: Tag of affected sector &lt;br /&gt;
* &#039;&#039;speed&#039;&#039;: How quickly the door moves, in eighths of a unit per tic&lt;br /&gt;
* &#039;&#039;kind&#039;&#039;: What type of door this is &lt;br /&gt;
* &#039;&#039;delay&#039;&#039;: [[Octic#Units of time|Octics]] until door is automatically closed/opened &lt;br /&gt;
* &#039;&#039;lock&#039;&#039;: Required key, if any (see [[Key types]]) &lt;br /&gt;
&lt;br /&gt;
This special encapsulates [[Boom]]&#039;s generalized doors.&lt;br /&gt;
&lt;br /&gt;
As a reference point, vanilla Doom has four speeds of door:&lt;br /&gt;
&lt;br /&gt;
* Slow doors move at 1 unit per tic (&#039;&#039;speed&#039;&#039; = 8)&lt;br /&gt;
* Normal doors move at 2 units per tic (&#039;&#039;speed&#039;&#039; = 16)&lt;br /&gt;
* Fast doors move at 4 units per tic (&#039;&#039;speed&#039;&#039; = 32)&lt;br /&gt;
* Turbo doors move at 8 units per tic (&#039;&#039;speed&#039;&#039; = 64)&lt;br /&gt;
&lt;br /&gt;
Vanilla Doom doors stay open for 150 tics (just over four seconds), roughly equivalent to a &#039;&#039;delay&#039;&#039; of 34.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Kind&#039;&#039; can be one of four values:&lt;br /&gt;
&lt;br /&gt;
* 0&amp;amp;nbsp;&amp;amp;mdash; Raise door and close it after delay octics &lt;br /&gt;
* 1&amp;amp;nbsp;&amp;amp;mdash; Open door and leave it open &lt;br /&gt;
* 2&amp;amp;nbsp;&amp;amp;mdash; Close door and open it after delay octics &lt;br /&gt;
* 3&amp;amp;nbsp;&amp;amp;mdash; Close door and leave it closed&lt;br /&gt;
&lt;br /&gt;
If 64 is added to the &#039;&#039;kind&#039;&#039; parameter, the door is not retriggerable even if it is a manual door. This is consistent with Boom&#039;s behavior for generalized door.&lt;br /&gt;
&lt;br /&gt;
If 128 is added to the &#039;&#039;kind&#039;&#039; parameter, the tag is used as a light tag, not a door tag. In this case, this special only opens the door on the line&#039;s back side.&lt;br /&gt;
Instead, a gradual lighting effect is done in the tagged sectors. The light is gradually changed between the darkest neighboring sector when the door is fully closed and the brightest neighboring sector when the door is fully open.&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;tag&#039;&#039; is 0, then the sector on the line&#039;s back side is used.&lt;/div&gt;</summary>
		<author><name>Eevee</name></author>
	</entry>
</feed>