ChangeLog for EDGE 1.29Type: Full release
Date: JULY 2007
Bugs fixed: + crash loading a savegame with dynamic lights when D/L disabled. + fixed crash when starting a level in deathmatch mode. + quotes (") usable in response files (for filenames with spaces). + fixed "jerk up/down" when player steps onto a lowering lift. - Arch-vile no longer resurrects monsters into itself. - don't display "Entering" on intermission when map is last one. - fix for ONCONDITION-WEAPON in RTS scripts. - fix for teleport on MAP06 (going to wrong place). - boss brain can now be hurt from rocket explosions. - DDF parser will catch angles over 360 degrees. - watching a moving monster while dead is now smoother. - allow KEY_GREENCARD and KEY_GREENSKULL in DDF. - berserk strength now lasts the whole level. - night vision wasn't affecting the sky, fixed. - damage over 1000 no longer hurts invulnerable players. - monsters on different sides now attack each other. - problems mlooking up/down while zoomed are fixed. - sides of extrafloors would not scroll properly, fixed. - autorun is remembered in the config file again. - fixed some missing mid-masked textures (Eternal MAP28). - smoking tracers sometimes wouldn't produce smoke. - Revenant missiles fixed to match the original. - Archvile flame fixed to play the crackle sounds. - fixed stair-building bug (e.g. TNT MAP16). - some problems handling the mouse-wheel were fixed. - rotated automap could omit parts of a map, fixed. - fixed an issue with window positioning on Win32. - fixed MUS playback on certain devices in Win32 - some continuous floors had wrong heights, fixed. - '+' syntax for KEYS in DDF was finally fixed. - the CAPSLOCK and NUMLOCK keys work a bit better. - improved spawning of voodoo dolls (Darren Salt). - fixed old deathmatch mode so weapons stay on the map. - fixed 'detuning' problem with MUS playback on Win32.
General improvements + drag and drop support. You no longer have to use the -file option to specify filenames (wad files etc). Everything before the first option is considered a filename to add. This allows you to drag a (self-contained) WAD onto the EDGE executable to play it. + improved BOOM compatibility: - handle the ELEVATOR linetypes. - support for Current/Wind/Push/Pull forces. - support for Icy/Muddy floors. - handle BOOM colormaps. - load the SWITCHES and ANIMATED lumps. - support for line-to-line teleporters. - support for platform toggle linetypes. - always allow generalised sector types. + native support for DeHackEd and BEX patches, both as normal files (with .DEH or .BEX extension), and also as DEHACKED lump in a wad. Patch files can be added with the -deh option (like in other Doom engines). EDGE converts the patches to DDF, and stores the result in files with the .HWA extension, which are loaded automatically. + support for OGG/Vorbis Music playing. OGG/Vorbis is music format similar to MP3, but is free from patents and does not require any royalty fees. You can use them as normal files, or as lumps in a WAD file, as these examples (for playlist.ddf) show:  MUSICINFO=OGG:FILE:"d_runnin.ogg";  MUSICINFO=OGG:LUMP:"OGGRULEZ"; - ability to use 32-bit screen modes (16.7 million colours). You may need to change your desktop to 32-bit mode for this to work. - new startup, with progress bar. The console window that used to appear (Win32) is gone, and under Linux messages are no longer printed to the terminal. When GL-Nodes must be built for a wad, this is also done during startup. - video startup: new -directx, -gdi and -videodriver options for better control over what SDL video driver to use. - sound startup: try hard to find a working sound mode. Also support for specifying the SDL audio driver, with new -waveout, -dsound and -audiodriver options. - Linux: fatal errors produce a pop-up dialog box. EDGE can now be run by double clicking the executable. Support for CD music. - GWA and HWA files are stored in a separate cache folder, allowing EDGE to run wads from read-only media (CDROM) or from read-only locations (/usr/share). - support V3 and V5 GL-NODES. EDGE now includes glBSP 2.22, which can handle very complex levels (which overflow the old limits), e.g. Deus Vult MAP05. - the DeathBot is back! He is still pretty dumb though. Use the option "-bots #" (where # is the number of bots) to add bots to a deathmatch game. - source code uses more C++ features, and more of the EPI (Edge Platform Interface). The "Zone" memory manager has mostly been replaced. - emulation for Doom's original lighting (optional). - can toggle window/fullscreen mode in set-resolution screen. - new gameplay option to disable automatic weapon switches. - sky looks a bit better, with a stretch option in Video menu. - the old "sky flooding" mapping trick is now emulated. - option 'Shoot-thru Scenery' emulates old missile behaviour. - emulate the FRIEND bit on things in the map. - missing wad files (given with -file) now produce an error. - monster spawning will keep the parent's AMBUSH status. - night vision and god-mode effects use colour from colourmap. - correct map names for TNT Evilution and Plutonia Experiment. - detects and repairs TNT's MAP31 bug (missing yellow key). - can use numbers with -warp and IDCLEV cheats again. - can use mouse-wheel in automap and in menus. - intermission text screens can now be skipped. - console now slides up/down, smaller font. - can disable mouse-look in the gameplay options. - support for 16 players in a multiplayer game. - limit the number of skulls from pain elementals. - number of RTS tip slots has increased to 45. - RTS tip messages are shown on the console. - fixes for 64-bit architectures (Darren Salt).
Features removed / changed + software rendering has been removed. We don't have the time to maintain the software renderer anymore, and keeping two renderers means that adding new features (like slopes and models) needs twice as much work (if not more -- doing things with OpenGL is usually a lot easier than doing it with software). + the demo format has changed, and previously recorded demos won't work anymore. The new format has the ".EDM" extension (but omit this when using the -record and -playdemo options). + looping sounds have changed. To keep a sound looping, it must be continally replayed (in addition to having LOOP=TRUE line in SOUNDS.DDF). A good rule of thumb is to wait half the length of the sound, e.g. if the sound lasts 1.6 seconds then replay it every 0.8 seconds (28 ticks) to guarantee that it loops continuously. - the EDGE-specific sector types have been renumbered to the range 4400-4499. This may affect old mods, which can be made to work using the new -ecompat option. - screenshots are now available in JPEG or PNG format. New "screenshot" console command (Note: it does not capture the console itself). Screenshots are now placed in a folder called "screenshots". - Set Resolution menu: removed 'TEST RESOLUTION' button. - renamed -debugfile option to -debug, and the filename is now hardcoded as "debug.txt" (stored in same place as "edge.log"). - the "CONSTANT" dynamic lighting type (in DDF) was removed. - replaced the [DOG] sprites and sounds in EDGE.WAD with a colormapped demon, due to copyright/license concerns.
New DDF features: + can load DDF files (with ".ddf" or ".ldf" extension) directly from the command line. Drag and dropping them should also work. + new IMAGES.DDF file. The corresponding wad lump is DDFIMAGE. You can define any type of images in this file (textures, flats, sprites and screen patches), and they will override any from the WAD file with the same name. There are three supported types so far: solid colours, image files, and built-in types, as follows: IMAGE_DATA = COLOUR:#FF7F00; IMAGE_DATA = BUILTIN:QUADRATIC; IMAGE_DATA = FILE:"retex/startan3.png"; IMAGE_DATA = LUMP:JPG:"JFLOOR48"; The built-in types are only used to create special images for dynamic lighting and shadows. The FILE and LUMP types are the most useful, and support both PNG and JPG images. NOTE: When using filenames, directories must be separated by / instead of the \ character which is normally used under Windows. The reason is because the \ character has a special meaning in DDF: it is the escape character, and "\n" is used to put newlines into DDF strings. The following commands are also available: X_OFFSET = 10; // specify the X and Y offset, e.g. sprites. Y_OFFSET = 20; // SCALE = 2.0; // scaling and aspect. Bigger scale makes the ASPECT = 1.0; // image bigger (cover more space). Bigger aspect // makes the image wider (height is unchanged). SPECIAL = XXX, YYY; The following general purpose specials are available: CROSSHAIR // for weapon crosshair sprites: center it on screen + new FONTS.DDF file. The equivalent wad lump is DDFFONT. This is used to define fonts (the set of character images for drawing text). The following example shows the available features: [FOO] TYPE=PATCH; // PATCH is the only type so far PATCHES=FONTP33("!"), // put a character in "" quotes FONTP65("A":"Z"); // use : for a range of characters MISSING_PATCH=FONTP00; where the FONTPxx names above are the patch names. When using ranges, the name (e.g. FONTP65) is for the first character. It must end with digits so that EDGE can work out the other patches properly (FONTP66 will be "B", etc). The missing patch is optional. Having a patch for a space (" ") is also optional. - new STYLES.DDF file. THIS IS EXPERIMENTAL !! The idea is to define the background colour/image and text font/colour/scaling information (and sounds too) for various parts of EDGE's user interface. It may undergo significant changes (without keeping compatibility), and it might even be scrapped! USE AT OWN RISK. - RELOAD states for monsters. This is controlled by the new command RELOAD_SHOTS and the new action RELOAD_CHECK, which increases the monster's shot count and if the limit has been reached, it enters the RELOAD states. RELOAD_RESET will reset the shot count to zero (not normally needed, but could be handy for special effects). For players, RELOAD states are used whenever their weapon reloads. They are optional though. - new SEQUENCE command for ANIMS.DDF. Use it to specify the full animation sequence. Names cannot be used twice. For example: SEQUENCE = TEX1, TEX2, TEX3, TEX5, TEX8; - PICKUP_EFFECT = SWITCH_WEAPON(xxx). The standard POWERUP_BERSERK will use this automatically to change to the FIST, there is also a new keyword POWERUP_BARE_BERSERK which doesn't do that. - able to specify a colour directly in COLMAP.DDF, without needing any wad lumps. The command is: GL_COLOUR = #FF9030; // orange - NOTARGET attack special, causes the bullet or missile to go straight ahead and ignore the monster/player being aimed at. - ULTRA_LOYAL thing special. Friendly monsters don't turn into enemies when hurt by your weapon fire. - SIDE_IMMUNE thing special. Friendly monsters are completely immune from your weapon fire. - support for "Ghosts", which means that a bullet or projectile attack will pass straight through an enemy. The new things.ddf GHOST_CLASS command takes a set of letter flags (just like IMMUNITY_CLASS). The new SIDE_GHOST special is similar to SIDE_IMMUNE, except that it makes bullets/missiles from "friendly fire" pass straight through. - EXPLODE_RADIUS command for things and attacks. Normally the explosion radius is the same as the damage caused, but this command forces the explosion radius to a particular value (e.g. 200). The amount of damage is not affected. - EXPLODE_IMMUNE and ALWAYS_LOUD thing specials. These attributes are both set by the BOSSMAN special, but now they can be specified individually. - NOZBUFFER thing special for "particles" (smoke puffs etc) which prevents visual glitches when many are floating near each other. - HOVER thing special, like in Heretic. Sprite must be above the ground for it to work properly. - BERSERK_MULTIPLY for attacks.ddf controls how much damage the attack causes when the player has the Berserk powerup. - SILENT_TO_MONSTERS is now an attack special too. - FORCE_PICKUP special for thing.ddf (items). - DIE action for things and attacks (mainly for BEX compatibility). - WHEN_APPEAR in DDF and RTS now accepts simpler values. You can use a range for the skill (e.g. "3-5"), you can omit the skill or the netmode part (e.g. "DM" means deathmatch on any skill, and "3" means Hurt-Me-Plenty on any netmode). Finally, you can add the '!' character to the beginning to negate it, e.g. "!SP" means never in single-player, and "!4:5" means never in skills 4 or 5.
New RTS features: + new RTS menu system: SHOW_MENU title choice1 choice2 ... SHOW_MENU_LDF title choice1 choice2 ... JUMP_ON MENU label1 label2 ... MENU_STYLE style_name The RTS menu will pause the game (including all scripts) until the user presses a valid number key (or SPACE/ENTER when less than two choices). Savegames are disabled while the RTS menu is shown. Once the menu is finished, the JUMP_ON command will test the result, and jump to the matching label. It will fail to jump if there aren't enough labels, or if the user cancels (with 'Q' or 'X' keys). The title can contain newlines (given by "\n"), to make multi-line titles. Newlines don't work in the choices however. The MENU_STYLE command sets the style for the next SHOW_MENU command. If you don't specify a style, the default style is [RTS_MENU]. + "ALL" keyword for the START_MAP line, which causes the script to be spawned on every map. - each thing in the level can have a "tag number" (like the TID in Hexen). The RTS SPAWN_THING command can specify the tag number to give a new thing, and the DAMAGE_MONSTERS and THING_EVENT commands can take a tag number to limit what they apply to. Tag numbers are given to these commands by using 'TAG=xxxx' (where xxxx is the number) at the end of the command. NOTE: there must not be any spaces before or after the '='. Some examples: SPAWN_THING Cacodemon 1376 3040 TAG=1234 DAMAGE_MONSTERS ANY 200 TAG=1234 THING_EVENT ANY PAIN TAG=1234 - new BLOCK_LINES command, does the opposite of UNBLOCK_LINES. - lines in RTS scripts can be extended over two (or more) actual lines by placing the \ character at the end. A silly example: SHOW_MENU "title" \ "choice one" \ "choice two" \ "choice three" Note: there must not be any spaces after the \ character.
New weapon stuff + weapon handling has been generally improved (especially the way clips work). Anything using the CLIPSIZE command is considered a "clip weapon", and will store ammo inside of its clip, even when not selected. + support for manual reloading (new key in Keyboard Options), and also next-weapon and previous-weapon keys. + eight new ammo types, AMMO9, AMMO10 ... upto AMMO16. The old ammo types can (optionally) be called AMMO1 ... AMMO8. The limit on holdable weapons has also been increased from 32 to 64. - there are many new specials. The following new command is used to give specials for the secondary attack: SEC_SPECIAL = xxx; The ones in the plain "SPECIAL" command apply to the primary attack (some might apply to the whole weapon). The following specials are available: SILENT_TO_MONSTERS : don't wake up those demons ANIMATED : UP and DOWN states are animated NO_SWITCH : don't switch to new weapon if ammo runs out NO_TRIGGER : prevent reloading by pressing fire button FRESH : reload empty clip when fresh ammo is picked up NO_MANUAL : disable manual reloading key NO_PARTIAL : manual reload: clip must be empty to refill it When using the ANIMATED special, the weapon sprite doesn't raise up or lower down. Instead the UP and DOWN states should show an animation. The RAISE and LOWER commands _must_ occur once, in the very last frame. - there are now empty states. These are shown (instead of ready states) when the primary attack runs out of ammo. You must use the "EMPTY" action in the empty states, for example: STATES(EMPTY) = ABCD:E:1:NORMAL:EMPTY; - there are also WARMUP and SECWARMUP states. These will be entered when firing the weapon from the READY states (not for refiring). These states jump to the ATTACK and SECATTACK states when finished (i.e. you don't need #ATTACK at the end). - Edge now supports IDLE states. These are entered from the READY or EMPTY states after a certain time has elapsed. The minimum time is given with the IDLE_WAIT command. There is also an IDLE_CHANCE command which is the chance to enter the idle states when the timer runs out. If the timer runs out and the random test fails, then the timer is reset to 1/10th of IDLE_WAIT. For example, "IDLE_WAIT=20" means that the random test occurs at 20 seconds, 22 seconds, 24 seconds, and so forth, until it succeeds. If the chance is 100%, is succeeds on the first try. - Crosshair actions have been re-enabled. The following actions are now available. SETCROSS(FRAME) : crosshair jumps to the given frame TARGET_JUMP(FRAME) : crosshair jumps IF player has a target FRIEND_JUMP(FRAME) : crosshair jumps IF player target is a friend SETCROSS can be used anywhere, but TARGET_JUMP and FRIEND_JUMP can only be used in the crosshair states. The old "TARGET" action (disabled for a long time) has been made obsolete. - SHOW_CLIP weapons: the HUD shows clip divided by ammopershot. - Finally, there are now DISCARD and SECDISCARD states. They are similar to the PARTIAL special: if you press the reload key with a half-empty clip (i.e. neither empty nor full), then the clip is discarded and the DISCARD states are entered. These states must end with the CHECKRELOAD action to cause the weapon to reload.
New command-line options | console variables -videodriver [name] Specify what SDL video driver to use. -directx The -directx and -gdi options are shortcuts -gdi for using -videodriver with the same names. The 'gdi' driver is the default on WIN32. -audiodriver [name] Specify what SDL audio driver to use. -waveout The -waveout and -dsound options are shortcuts -dsound for using -audiodriver with the same names. The 'dsound' driver is the default on WIN32. -sound16 Try to use 16-bit sound output. -sound8 Try to use 8-bit sound output. -deh [file] Specify a DeHackEd (or BEX) patch file. You can have multiple patch files after the -deh option. -gamma [n] Give a gamma setting to use (from 0 to 4). -nocdmusic Disable CD music. -nearclip [n] NEARCLIP Control the OpenGL distance clipping. -farclip [n] FARCLIP Increasing farclip allows a huge level to be fully seen, but decreases depth accuracy (may cause glitches). -(no)hqscale HQSCALE Turn on/off "High Quality" image scaling. -(no)hqall HQALL Use HQ2X on _all_ images (textures and sprites). Normally only the HUD gfx are scaled. This option can slow things down, since it needs 4 times more video memory. -(no)smoothmap SMOOTHMAP Turn on/off anti-aliasing of automap. -(no)diskicon DISKICON Turn on/off the flashing disk icon. -(no)fadepower FADEPOWER Turn on/off fading of powerup effects. -(no)hogcpu HOGCPU Turn on/off the behaviour of hogging the CPU. When enabled, gameplay may be smoother, but disabling it gives more time for other programs to run.