ChangeLog for EDGE 1.26Type: Full release
Date: AUGUST 17th 2001
Bugs fixed: - improved keyboard/mouse handling under Win32. - a few issues with the Win32 console not updating correctly. - re-implemented MUS music under DOS and Win32. - fixed a problem with '-infight' and changing levels. - improved volume and panning for sounds under Win32. - an ugly effect of invisible extrafloors in 8 bit mode fixed. - weirdness using both mouse/keyboard in Linux is gone. - improved sprite drawing in TrueBSP renderer. - onesided lines with the TWOSIDED flag reduced to a warning. - linux sound code now plays non-11KHz sounds properly. - sound panning now works in the linux sound code. - fixed translucent + remapped sprites in TrueBSP code. - the "slide really fast along walls" bug fixed. - monsters can no longer see you behind a large (but 2S) wall. - "voodoo dolls" now work as they should. - the ugly cracks/lines on translucent water are now gone. - nailed down one slime-trail producing bug. - fixed GL weapon sprite when the light goggles are in effect. - monsters no longer get stuck on the edge of a rising lift. - fixed the medusa effect. - a bug making certain switches/doors really loud fixed. - fixed a bug allowing jumping really high out of water regions. - the player's initial health comes from DDF. - better detection of wads with missing nodes. - bouncing missiles now bounce off most 2S walls properly. - archviles can no longer raise monsters on unreachable extrafloors. - fixed a bug with TRACKER attacks that could crash EDGE. - fixed the bug not executing the first action in a DDF thing. - blockmap generation code no longer crashes on certain levels. - the infrared goggles powerup no longer overrides watery colmaps. - fixed some problems with looping sounds. - a problem when quickly mlooking up/down fixed. - the sound/music sliders in the main option menu now work properly. - single frames of a sprite can now exist in a PWAD.
General Improvements: - complete support for GL rendering. - support for playing MP3 music, both as external files and as lumps within a PWAD. It is used via PLAYLIST.DDF with the new "MP3" music type, for example:  MUSICINFO=MP3:FILE:"DUHAST.MP3"; - EDGE can now run in a window under Win32. - BeOS mouse support was improved. - supports "V2 GL Nodes" that glBSP 1.91 generates. This should completely eliminate slimetrails for good. - new options for linux sound code: -freq [value] Sets the desired sample rate of the sound card. -mono Disables stereo sound. - new -version option, shows the version of EDGE and quits. - new -strict option. Most problems in DDF/RTS no longer crash out with an error message, but display a warning instead. This provides better backwards compatibility, since unknown commands will be ignored (with a warning). The -strict option makes EDGE do what it did before: crash out on the first DDF/RTS error. Good for TC authors who want to catch every single mistake/problem that occurs. - new -nowarn option turns off warning messages. When using a TC designed for an older version of EDGE, there may be a huge number of warnings. This option can be used to prevent seeing them all. - new -noobsolete option turns off the messages when obsolete DDF or RTS commands are used. - new -blockmap option will generate the blockmap in EDGE instead of using the one in the PWAD. - automap colours can be controlled via COLMAP.DDF, the AUTOMAP_NORMAL entry is for the normal automap, and AUTOMAP_OVERLAY entry is for the overlaid version. - there are four new ammo types: PELLETS, NAILS, GRENADES, GAS. These names are fairly arbitrary -- use them for whatever you want. - Pseudo-Shadows, drawn under things. Use the -shadows option to enable them. They can be controlled in DDF either with the NOSHADOW special, or the SHADOW_TRANSLUCENCY command (which takes a percentage). Shadows can be enabled/disabled on a level-by-level basis using the level specials "SHADOWS" and "NOSHADOWS". - Crouching (aka Ducking). Uses the `Move Down' key. The CROUCH_HEIGHT command in THINGS.DDF controls how low a player crouches. The level special "NOCROUCHING" disables crouching for the level. - mipmapping in the software and GL renderers. Use the -nomipmap option to turn it off, or change it in the Video option menu. The software version is not optimal yet. Note too that setting it to "TriLinear" in the GL version can produce strange results (seems to be a driver problem). - EDGE now contains a special cut-down version of GLBSP, and will build the GWA files automatically when they GL-Friendly nodes are absent. - support for an extra 8 sprite rotations. A sprite with all 16 rotations goes like this: 1,9,2,A,3,B,4,C,5,D,6,E,7,F,8,G. Good for sprites where 8 rots aren't enough. The old flipping thing will work with these too, e.g. TROOA9AG, TROOAAAF, TROOABAE, TROOACAD.
Features removed: - the "MISSILE" tag for the ACTIVATORS line in lines.ddf. The rule now is that missiles can activate _any_ TYPE=SHOOT linedef (but only missiles from players can trigger player-only lines, etc).
New DDF features: - new STATS command for LEVELS.DDF, determines the type of stats shown in the intermission. Possible values are "DOOM" (normal) and "NONE" (skips the stats altogether). Other types may be added in the future. - new LIGHTING command for LEVELS.DDF determines the type of lighting used (TrueBSP only). Possible values are "DOOM" (normal), "DOOMISH" (same as DOOM, but without the special effect on N/S/E/W walls), and "FLAT" for flat lighting (i.e. no distance-based shading). Other types may be added in the future. - the RIDE_FRICTION command for THINGS.DDF determines how ridable an object is, 0.0 would make things (e.g. you) slip off right away, up to 1.0 which is perfect ridability. - new commands VIEW_HEIGHT and SHOT_HEIGHT for players in THINGS.DDF. They take percentages (of the full height), and control where the view is drawn from, and where bullet shots come from. - for WEAPONS.DDF, the "SHOW_CLIP=TRUE" command causes the ammo field in the status bar to show the current clip size, instead of the total ammo. - new DROPITEM() action for DDF for dropping stuff. The name of the item to drop should be placed in the brackets. - scenery items can be made to block bullets, give them the BLOCK_SHOTS special. - new TUNNEL thing special, causes missiles to pass through enemies rather than blowing up on impact. Still damaging them though, but only once. - monsters can be made immune to certain attacks. Firstly, each attack can be given a "class", which is a letter from `A' to `Z', using the ATTACK_CLASS command. Three classes are already used by EDGE: `M' is the default class for missiles, `B' is the default class for bullet attacks, and `C' is for close-combat attacks. Secondly, each monster can use the IMMUNITY_CLASS command to specify which attack classes it is immune to. For example, IMMUNITY_CLASS=B would make the monster immune to all bullet weapons. IMMUNITY_CLASS=M makes the monster immune to all the missiles. The letters can be combined, e.g. IMMUNITY_CLASS=BM makes the monster (or player) immune to _both_ bullets and missiles -- you'd need the fist/chainsaw to kill it. Example: say you created a flame-thrower weapon. You could put this in attacks.ddf: [FLAME_ATTACK] ... ATTACK_CLASS=F; // `F' for Flames and then add this to the archvile in things.ddf: [ARCHVILE] ... IMMUNITY_CLASS=F; and voila, the archvile will be immune to the flamethrower. - arbitrary sounds can now be used in THINGS.DDF and WEAPONS.DDF. The PLAYSOUND() action takes the name of the sound in the brackets. The KILLSOUND() action will stop any currently played sound. - implemented thin horizontal sliding doors. Thin means they are just a mid-masked texture on a two-sided linedef, but one that opens and closes. The following commands are used in LINES.DDF: SLIDER.TYPE = LEFT; // also RIGHT and CENTER SLIDER.SPEED = 2; // open/close speed (distance per tic) SLIDER.PAUSE_TIME = 150T; // time to pause after opening SLIDER.SEE_THROUGH = FALSE; // texture is see-through or not SLIDER.SFX_START = XXX; // sound made when door starts moving SLIDER.SFX_OPEN = XXX; // sound made while door opens SLIDER.SFX_CLOSE = XXX; // sound made while door closes SLIDER.SFX_STOP = XXX; // sound made when door stops moving - new ACTIVATE_SOUND command for LINES.DDF, when the line is activated then this sound is played. If the line is a switch, then this command overrides the normal switch sound. - removed many hard-coded sounds. The following new commands in GAMES.DDF are available: ACCEL_SOUND="SLOP"; FRAG_SOUND="PLDETH"; Plus the following new commands for players in THINGS.DDF: NOWAY_SOUND="NOWAY"; OOF_SOUND="OOF"; - user-defined states can now be used in DDF with the STATES() command, e.g.: STATES(FOO)=FOOJ:A:5:NORMAL:NOTHING,#FOO; This is mostly useful when combined with the JUMP() action, or when using damage overrides or THING_EVENT above. - new lines.ddf commands SECTOR_EFFECT and LINE_EFFECT, which take a comma-separated list of keywords that enable certain property transfers. LINE_EFFECT is for line -> line effects, and SECTOR_EFFECT is for line -> sector effects. The affected lines/sectors are those with the same tag as the special line. (See below about LINE_PARTS too). These commands are used for BOOM compatibility, the LINE_EFFECT keywords TRANSLUCENT, VECTOR_SCROLL and OFFSET_SCROLL handle linetypes #260, #254 and #255. The SECTOR_EFFECT keywords LIGHT_FLOOR, LIGHT_CEILING, SCROLL_FLOOR, SCROLL_CEILING and PUSH_THINGS handle linetypes #213, #261, and #250 to #253. - New DDF thing actions for rotating and self-propulsion: FACE(angle) // turn to face the absolute [angle] TURN(angle) // turn by [angle] degrees TURN_RANDOM(angle) // turn between 0 and [angle] degrees MLOOK_FACE(angle) // mlook to the absolute [angle] MLOOK_TURN(angle) // mlook turn by [angle] degrees MOVE_FWD(amount) // move forwards/backwards by [amount] MOVE_RIGHT(amount) // move right/left by [amount] MOVE_UP(amount) // move up/down by [amount] STOP // stop moving The FACE and TURN action ideas were copied from MBF. For all these actions, if the [angle] or [amount] is omitted, then 0 is used (not usually useful). For the move actions, use a negative value to go the opposite way. NOTE: the amount in the move actions is a _momentum_ value, not a distance. Objects that are not affected by friction or gravity will keep moving in the direction until they hit something solid or perform another movement action (e.g. STOP).
New RTS features: - improved RTS tip system, with the following new commands: TIP_SLOT [num] // Sets the current "slot" that future tip functions will use. // Each slot can display a single tip, but multiple slots can be // active at any one time. Slots are numbered from 1 to 40, // where 1 is the default slot. Slots 1 to 9 have fixed // properties and don't respond to the TIP_SET_XXX commands, use // slot 10 or greater if you want to set your own properties. TIP_SET_POS [x] [y] // Change the positioning for the current slot. X and Y are // _percentages_ for the on-screen position. Default position // is "50% 50%" which is the center of the screen. For // graphical tips, X and Y specify the top/left corner position // of the image. TIP_SET_ALIGN [alignment] // Change the alignmet, which must be either "CENTER" or "LEFT". // CENTER causes multi-line tips to be centered horizontally // (the default mode), and LEFT causes left alignment. Text // tips are always centered vertically. TIP_SET_COLOUR [colourmap] // Changes the colouring for the current slot. The name must // refer to an entry in COLMAP.DDF, for example "TEXT_YELLOW". TIP_SET_TRANS [translucency] ( time ) // Changes the translucency for the current slot (which is // normally 100%, fully opaque). It is a percentage from 0% to // 100%. The second value is optional, and gives a time value, // causing the tip to fade towards the new translucency (e.g. // "5" for five second fade). - new RTS command for changing textures on lines or sectors. It looks like this: CHANGE_TEX [where] [texname] [tag] ( subtag ) the `where' part is one of: RIGHT_UPPER, RIGHT_MIDDLE, RIGHT_LOWER, LEFT_UPPER, LEFT_MIDDLE, LEFT_LOWER (these change line textures), FLOOR or CEILING (for sector flats) or lastly SKY (for changing the sky texture). The `texname' is the name of the texture or flat. The `tag' specified what tag the lines or sectors have, all lines/sectors with the same tag are affected. The optional `subtag' part allows more control over what is affected: for line changers, only the sidedefs whose sector has tag = subtag is changed. For sector changers, only the sectors that border a line with tag = subtag are changed. - new RTS command THING_EVENT which makes all things that are within the radius go into a specified state. It is used like this: THING_EVENT [thing type] [state] where the thing type can be a name (e.g. OUR_HERO) or a number (e.g. 3001). The idea behind it is to allow "events" where certain scripted actions take place (e.g. to play out the story). - Rectangle Triggers are a new variation on Radius Triggers, where the trigger area can be a rectangle (e.g. wide horizontally and narrow vertically). They are defined like this: RECT_TRIGGER [x1] [y1] [x2] [y2] ( [z1] [z2] ) ... normal scripting stuff ... END_RADIUSTRIGGER x1,y1 is the lower left corner (on the map) and x2,y2 is the upper right corner. The height range z1,z2 is optional. - new PLAYSOUND_BOSSMAN command for RTS. The sound is heard at full volume from any point on the map. Takes the same parameters as the regular PLAYSOUND command. - new CHANGE_MUSIC command for RTS. It takes a single parameter: a number which references an entry in PLAYLIST.DDF. - the TAGGED_REPEATABLE command for RTS now accepts no parameters, which means infinite repeats and zero delay.