ChangeLog for EDGE 1.25-WIP
Type: WIP "Work in Progress" releaseDate: FEBRUARY 19th 2001
Bugs fixed: - fixed the extreme bobbing that was in the WIP-1. - bouncing objects in WIP-1 didn't enter bounce states -- fixed. - SINGLESIDED tag is now respected for bullet/missile activation. - fixed some possible crashes when using certain DDF actions. - some subtle DDF searching issues (e.g. CASTORDER) fixed. - removed a thin slither at the top of some weapons in GLEDGE. - fixed numerous problems with sprite scaling (both renderers). - flat-lighting weapon-too-dark problem in sofware mode fixed. - problems with continuous floors (e.g. end of MAP12) fixed. - DDF/RTS errors in win32 pop-up box now show full context. - infinite loop when no episodes are defined fixed. - fixed problem causing error with read-only IWADs. - bug with "ACTIVATE_LINETYPE 138" fixed. - thin horizontally sliding doors now work in GL. - fixed a bug not auto-aiming at monsters lower than you. - fixed monsters seeing you through thick extrafloors. - bug causing the wrong switches to light up sometimes fixed. - problems with some intermission screens (e.g. bunny) fixed.
Features Removed / Changed:
- the NOAMMO attack special from DDF is gone. It's only useful
purpose was for ejecting shells, but the EJECT() code pointer
is good for that (and doesn't use ammo).
- removed the "SAVE" command in RTS, not useful, even dangerous.
- the "BITS" and "STEREO" commands from sounds.ddf are gone.
They never did anything.
- the colmap.ddf "NOSKY" special and "PRIORITY" command were
removed.
- RANDOMJUMP action has been removed. The new JUMP() code pointer
should be used instead, like this:
TROO:A:5:NORMAL:JUMP(Label) // jumps always to label
TROO:A:5:NORMAL:JUMP(Label,50%) // jumps randomly to label
where Label is the name of a state, either a plain name like
"CHASE", or a name followed by a ":" and a number like "IDLE:3".
- the ALTERTRANSLUC, ALTERVISIBILITY, LESSVISIBLE and MOREVISIBLE
actions have been replaced with new ones:
TRANS_SET(30%) : set it immediately to new value
TRANS_FADE(95%) : fades to new value over a second or two
TRANS_MORE(10%) : increase translucency
TRANS_LESS(10%) : decrease translucency
TRANS_ALTERNATE(10%) : alternate between visible and invisible
values range from 0% (invisible) to 100% (opaque). The parameters
are optional: for TRANS_SET, the default is 100%. For TRANS_FADE,
the default is 0%. For the last three, the default is 5%.
Note: TRANS_SET() and TRANS_FADE() can also be used in weapon
frames.
- the way damage (for attacks, etc) is expressed has changed. The
old ddf commands DAMAGE, DAMAGE_RANGE, DAMAGE_MULTI, plus the
things.ddf counterparts (which begin with EXPLOD_ (and still do))
have been replaced with the following:
// simple damage, amount is constant (20)
DAMAGE.VAL=20;
// linear damage, amount is a random value in the range 10-40
DAMAGE.VAL=10;
DAMAGE.MAX=40;
// weighted error damage, amount is a random value near the base
// value (64), which can get as far away as the error value. In
// this example, the full range is 32-96, but values near 64 are
// much more likely than values near 32 or 96.
DAMAGE.VAL=64;
DAMAGE.ERROR=32;
and the other fields:
DAMAGE.DELAY=10T;
// delay time between applying damaging. Only used for sector
// damage (slime), where it replaces the old DAMAGETIME command.
DAMAGE.PAIN_STATE=BURN_PAIN;
DAMAGE.DEATH_STATE=DROWNED;
DAMAGE.OVERKILL_STATE=ALL_CRISPY;
// if the applied damage causes pain/death/overkill, and the
// damaged thing has the state/label specified by these
// commands, then those states are used instead of the default
// ones. This allows attacks, explosions and sector damage to
// make their victims enter special states -- this could be
// used, for example, to make monsters that go all crispy when
// shot with a flamethrower, or players make a gurgling noise
// when dying at the bottom of a slime-filled pit.
- EXPLOD_DAMAGE is now spelled EXPLODE_DAMAGE.
- SWITCH.DDF has been updated, firstly the SOUND command has been
renamed to "ON_SOUND". Secondly, there is a new "OFF_SOUND" that
the switch makes when the button texture changed back (previously
the off sound was hardcoded). Thirdly, there is a new "TIME"
command that specifies how long the button waits before changing
back (defaults to 1 second).
- the SOUND command in LINES.DDF and SECTORS.DDF has been renamed to
"AMBIENT_SOUND", better describing what it does (starts an ambient
sound).
- the EXIT command in LINES.DDF and SECTORS.DDF has changed,
acceptable values are now "NORMAL" and "SECRET".
- LIGHT_PROBABILITY in LINES.DDF and SECTORS.DDF has been renamed to
LIGHT_CHANCE and now takes a percentage value.
- TRANSLUCENCY now takes a percentage value, from 0% to 100%.
- EXTRAFLOOR_TRANSLUCENCY in lines.ddf should be replaced with the
simpler TRANSLUCENCY.
- the (rarely used) #XDEATH redirector is now #OVERKILL.
- the [FUZZSHADOW] colourmap was renamed to just [FUZZY], and EDGE
now requires a colourmap called [SHADOW].
- weapons that contain PRIORITY=-1 (e.g. rocket launcher) should now
have a normal priority value, and should be given the new command
"DANGEROUS=TRUE".
- the GIB command in DDF has been removed, in favour of using
STATES(GIB).
New Features:
- Ladders. They are linedef based, if you are sitting on a ladder
linedef (two-sided line) and the heights match, then pressing
MoveUp/Down lets you climb the ladder. The following LINES.DDF
command defines a ladder:
LADDER.HEIGHT = 128;
which gives the height of the ladder, which should match the
texture used. The ladder linetype should be a two sided line that
has the same sector on both sides, and about 24 units away from the
actual ladder texture. Ladders normally start on the ground, but
can be raised by setting the Y_OFFSET in the first sidedef.
- MOVE_SECTOR and LIGHT_SECTOR RTS commands replace SECTORV/L.
They take the same arguments, except that the sector number is a
_tag_ number instead of an absolute sector reference. This allows
you to affect many sectors at once, and is more robust (sector
numbers can change just by editing the level).
- Support for both fullscreen mode and in-a-window mode. The default is
fullscreen. The -windowed option and the -fullscreen option can be
used to change it, as well as the "windowed" line in the EDGE.CFG
file. Changing it with the "Set Resolution" menu is not possible
yet, but is planned.
- Dithering for GLEDGE, with -dither option (or line in config file).
Can give slight improvement in image quality (depending on driver).
- New SEC_NOFIRE_RETURN action for weapons.ddf, works just like
NOFIRE_RETURN but for the second attack.
- The DEST_REF command for lines.ddf and sectors.ddf accepts an
optional tag after the normal reference tag. The optional tag is
either "INCLUDE" or "EXCLUDE". Examples:
FLOOR.DEST_REF = LOSURROUNDINGFLOOR, EXCLUDE;
CEIL.DEST_REF = HISURROUNDINGFLOOR, INCLUDE;
The INCLUDE tag means include the moving sector in the calculation,
whereas the EXCLUDE tag means don't include it. All the normal
refs (HISURROUNDINGCEILING etc) have EXCLUDE by default, *except*
LOSURROUNDINGFLOOR which (for compatibility) has INCLUDE by
default.
- New commands OTHER_REF and OTHER_OFFSET for lines.ddf and
sectors.ddf. These are just like the DEST_REF and DEST_OFFSET
commands, but are used for CONTINUOUS floor/ceiling types and
specify the other height that is moved to while bouncing up and
down. The default value keeps the normal DOOM behaviour.
- New -hom command line option and `IDHOM' cheat code. Shows HOM as
areas of bright green (both renderers).
- New DRAG command for LINES.DDF and SECTORS.DDF. It is a companion
for the GRAVITY, FRICTION and VISCOSITY commands. DRAG means "air
friction" -- it is how much objects get slowed down by the air when
they are airborne (i.e. not touching the ground). The default
value (0.99) provides backwards compat. Lower values (e.g. 0.91)
makes liquids more "sticky".
- New sector SPECIAL "SWIM". When you're in such a sector or liquid,
then it activates "swimming mode". In swimming mode you can swim
up/down, plus moving forwards swims in the MLOOK direction. Also
the jump key works differently. For swimming mode to work well,
the sectortype should a low GRAVITY value (e.g. 0), and have
FRICTION and DRAG values the same and around 0.9 or so. Viscosity
is an optional extra :-).
- Support for breathing under water. The sector SPECIAL "AIRLESS"
denotes the sector as not containing air, and while player is in
it, they use up air in their lungs. The things.ddf command
LUNG_CAPACITY determines how long (seconds) the player can stay
underwater before choking. Choking is controlled by the
CHOKE_DAMAGE command in things.ddf -- it sets the damage amount,
delay and override pain/death states (See Damage system above).
Default LUNG_CAPACITY is 20 seconds.
When the player leaves the airless sector, they will usually gasp
for air. The new GASP_SOUND command specifies the sound, and
GASP_START specifies a minimum time the player must be in the water
before making the sound. Default GASP_START is 2 seconds.
There is a new powerup "SCUBA" that gives the player another source
of air (e.g. oxygen tank). While the powerup remains in effect,
the player won't start choking.
Finally, an air indicator is shown while the player is underwater.
Twenty one patches are used: AIRBAR01, AIRBAR02, ..., AIRBAR21,
They are placed on the screen just like weapon sprites.
- The #CLEARALL directive can be used in DDF files. It must occur
after the <XXXX> file tag and before the first entry. It will
clear out all previous entries for that file type (e.g. THINGS).
Mainly useful for TCs, and then mainly with the GAMES.DDF and
WEAPONS.DDF files.
- Ten new keys were added: GREENCARD, GREENSKULL, GOLDKEY, SILVERKEY,
BRASSKEY, COPPERKEY, STEELKEY, WOODENKEY, FIREKEY and WATERKEY.
That brings the total to 16.
- Better compatibility with BOOM maps. Use the -boom option or the
"Boom Line/Sec Types" entry in the gameplay menu, which enables
support for the BOOM generalised linetypes and sectortypes. Not
all of the features are supported, e.g. reversable stairs, and
there are many bugs in the code.
Disable this option when playing EDGE-designed maps and TCs,
otherwise the BOOM sectortypes (and maybe linetypes) will interfere
with any new ones defined in DDF.
- New RTS command ONCONDITION, which is like ONDEATH and ONHEIGHT:
the trigger will not run unless the condition is satisfied. Used
like this:
ONCONDITION [condition]
Where condition is something that the player is holding or is
doing. It is one of these:
HEALTH(num)
BULLETS(num) // and the other ammo names
GREEN_ARMOUR(num) // and the other armours
KEY_BLUECARD // and the other keys
CHAINGUN // and the other weapons
POWERUP_PARTINVIS // and the other powerups
JUMPING ATTACKING
CROUCHING RAMPAGING
SWIMMING USING
The brackets on health, ammo and armour conditions are optional,
when present they are a minimum needed, e.g. HEALTH(50) requires
health 50 or higher to run. Without the brackets, they mean "any
above zero".
Those words can be prefixed with "NOT_", which negates the
condition, e.g. NOT_KEY_REDSKULL means that the trigger will only
run when the player *doesn't* have the red skull key.
Multiple ONCONDITION lines can be used in each trigger script, and
they _all_ have to be satisfied before the trigger will run.
- New RTS command RETRIGGER. Can only be used in TAGGED_INDEPENDENT
scripts, and causes the conditions that activated the trigger to
be re-checked (possibly pausing the trigger again). Most useful
used at the bottom of a TAGGED_REPEATABLE sleep-less script.
- New LOSE_BENEFIT command for things.ddf (pickups). Like
PICKUP_BENEFIT but the player _loses_ the items instead.
Also, PICKUP_BENEFIT and LOSE_BENEFIT are available as RTS
commands. They take one parameter: the benefit to give the player
or take away.
- JUMP_DELAY command for things.ddf. Determines how long soon after
jumping the player can jump again. Default: one second (previously
hard-coded).
- New LINE_EFFECT "LIGHT_WALL", works like the floor/ceiling lighting
transfers, except that all lines with the same tag are affected:
they will be lit using the tagging line's front sector properties.
SCROLL_PARTS can be used to affect specific parts of tagged lines.
- New LINE_PARTS command for lines.ddf. Should be used with the
LINE_EFFECT command, and gives fine-grain control on what parts
of the wall(s) are affected. Takes the same keywords as the
SCROLL_PARTS command (e.g. "RIGHT_MIDDLE").
- Dynamic lighting. Currently this is GLEDGE only. The following
commands can be used in things.ddf and attacks.ddf to make an
object throw light on neighbouring walls/floors/objects:
DLIGHT.TYPE = QUADRATIC; // "LINEAR" is the other type
DLIGHT.INTENSITY = 300; // higher is brighter
DLIGHT.COLOUR = #FFFF00; // colour of lighting, HTML format
Note: objects must be in a BRIGHT state frame to light up stuff
around them. When in a NORMAL state frame, nothing happens.
There are two DDF actions:
DLIGHT_SET(amount) // set the intensity to new value
DLIGHT_FADE(amount) // fade intensity over time to new value
Dynamic lighting can be enabled or disabled through the Video
Options menu, or by running EDGE with the -dlights option.