New
- New ACS functions:
- GetPlayerInfo (playernumber, infotype);
- ChangeLevel (mapname, position, flags, skill);
- SectorDamage (tag, amount, type, protection_item, flags);
- ReplaceTextures (oldtexturename, newtexturename, flags);
- New DECORATE functions:
- A_PlaySoundEx ("sound_name", "channel" [, bLooping])
- A_StopSoundEx("channel")
- The vid_nowidescreen cvar can be used to disable widescreen aspect ratio correction.
- More supported texture formats:
- Truecolor and interlaced PNGs
- JPEG
- PCX
- TGA
- DDS with DXT1, DXT3, and DXT5 compression
- A_SpawnDebris and A_SpawnItem can optional transfer the caller's color translation to the newly spawned item.
- New morphing artifacts can be created by subclassing the MorphProjectile and MorphedMonster classes.
- A_FireCustomMissile has a new parameter: Previously it always aimed straight ahead and altered the projectile's angle according to the resulting direction. If the 6th parameter is 1 now it will aim at the specified angle directly.
- Users can now define their own text colors, and there are several new standard ones.
- The fourth parameter of Polyobj_StartLine and the fifth parameter of Polyobj_ExplicitLine now set the line's ID.
- DECORATE explosion parameters are no longer considered deprecated.
- Calling Radius_Quake, Thing_Activate, or Thing_Remove with a tid of 0 now operates the activator.
- Strife's PhosphorousFire now does completely thrustless damage.
- An actor'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 parantheses, and the normal Doom damage calculation will be bypassed. For example, to do exactly 6 damage:To deal normal Doom missile damage:
Code: Select all
Damage (6)
Code: Select all
Damage (random(1,8)*6)
- Passing a negative script number to the puke console command now runs the script with ACS_ExecuteAlways instead of ACS_Execute.
- Polyobjects defined with Polyobj_ExplicitLine are no longer limited to 64 segs.
- Starting a new game or reloading an old one no longer resets the chasecam.
- The automap background is now a regular texture.
- Frozen corpses of stealth monsters were invisible.
- Starting a game without the skill menu always started the first episode.
- Random sounds that recursively refer to themselves caused a stack overflow.
- Resurrecting a morphed player caused a crash.
- Morphing did not clear the weapon's flash sprite.
- Using a negative index to access a global or world ACS array crashed the game with an out of memory error.
- Newly spawned monsters did not automatically chase their spawner's target.
- P_RunEffects used the consoleplayer's camera without checking its validity.
- The pickup message for Hexen's fighter's axe was assigned to the AxePuff, not the weapon itself.
- Using a map ACS script without strings in conjuction with an ACS library with strings could crash.
- Skin sounds weren't properly restored after a SNDINFO reset.
- CheckActorInventory stored the return value in the wrong address on the ACS stack.
- P_CheckOnMobjZ returned the first thing an actor could stand on, not the highest possible.
- Writing named screenshots didn't work.
- FMultiPatchTexture::CheckForHacks blindly assumed that all patches were FPatchTextures.
- Flats were only auto-scaled when in Doom flat format.
- The cell pack had the incorrect spawn ID.
- Multiple-choice sound sequences could not be assigned IDs for use with polyobjects and the sound sequence selector things.
- callstatechain didn't check for NULL code pointers
- P_LoadSegs() checked for invalid vertices too late.