2006-04-12 01:50:09 +00:00
|
|
|
|
April 11, 2006
|
2006-04-12 03:03:58 +00:00
|
|
|
|
- Fixed: Compiling with mingw once again works, although savegame loading
|
|
|
|
|
problems are not yet fixed.
|
2006-04-12 01:50:09 +00:00
|
|
|
|
- Fixed: ACS improperly calculated the address of local variables when
|
|
|
|
|
returning from one function to another function when the function that
|
|
|
|
|
was called was used as part of an expression.
|
|
|
|
|
- Fixed: Using Thing_Hate with arg0 (hater) set to 0 from an open script
|
|
|
|
|
could crash.
|
|
|
|
|
- Fixed: Some items along ledges in Hexen's MAP32 (Orchard of Lamentations)
|
|
|
|
|
appeared at the bottom of the ledge (and consequently inside it) instead
|
|
|
|
|
of on top of it because the items were placed directly on the lines.
|
|
|
|
|
AActor::LinkToWorldForMapThing() needs to use the original R_PointOnLineSide()
|
|
|
|
|
code to handle situations like this. Previously, it just used the original
|
|
|
|
|
code for straight horizontal/vertical lines and used the new code for
|
|
|
|
|
diagonal lines.
|
|
|
|
|
- Fixed: FWadCollection::MergeLumps() used in incorrect realloc.
|
|
|
|
|
- Fixed: FPlayList::NextLine() did not properly handle blank lines in the
|
|
|
|
|
playlist.
|
|
|
|
|
- Changed: Decals now use lightweight thinkers instead of actors. (76 bytes
|
|
|
|
|
versus 396, so you save 320k if you have 1024 decals present.)
|
|
|
|
|
- Fixed: Wads added with pullin were loaded immediately after the IWAD.
|
|
|
|
|
Exec files are now processed immediately before -file but after autoloading
|
|
|
|
|
wads in D_DoomMain().
|
|
|
|
|
- Fixed: sdl/i_system.h unconditionally defined SHARE_DIR, preventing
|
|
|
|
|
redefinition from the command line.
|
|
|
|
|
- Fixed: The standard way to include SDL.h is <SDL.h>, not <SDL/SDL.h>.
|
|
|
|
|
- Fixed: Returned FActiveInterpolation::HashKey()'s return type to size_t,
|
|
|
|
|
avoiding a pointer truncation warning.
|
|
|
|
|
|
2006-04-11 08:36:23 +00:00
|
|
|
|
April 11, 2006 (Changes by Graf Zahl)
|
2006-04-11 16:27:41 +00:00
|
|
|
|
- Fixed: Strife's dialogs don't give weapons to the player he already has.
|
|
|
|
|
- Fixed: The INDIANA cheat in Hexen gives 25 of each item, not just 1.
|
|
|
|
|
- Fixed: The stair builder's compatibility mode must do a linear search
|
|
|
|
|
for sectors. Searching the hasch chain doesn't work here.
|
|
|
|
|
- Fixed: Any monster with a TakeSpecialDamage method should call the
|
|
|
|
|
super class's method instead of simply returning the damage amount.
|
|
|
|
|
- Fixed: Hexen's mash monsters cannot be frozen. No matter how you kill
|
|
|
|
|
them they just vanish. This means they need the NOICEDEATH flag.
|
|
|
|
|
- Fixed: Morphing a monster must also copy its translucency settings.
|
|
|
|
|
- Fixed: The first Macil must react to weapon fire, even though he
|
|
|
|
|
doesn't get hurt by it.
|
|
|
|
|
- Fixed: Anything with a raise state needs the MF_CORPSE flag when dying
|
|
|
|
|
because otherwise it can't be revived.
|
|
|
|
|
- Fixed: Player names in Heretic, Hexen nand Strife could only be 13
|
|
|
|
|
characters because the input routine did an unnecessary font size check.
|
|
|
|
|
- Added: After saving the game the savegame should be checked
|
|
|
|
|
and in case of an error an appropriate message be output.
|
|
|
|
|
- Fixed: The pig player had an initial health of 100, not 30.
|
|
|
|
|
- Fixed: Morphing a player removes the armor after transferring the
|
|
|
|
|
inventory to the morphed version - but it tried to remove it from the
|
|
|
|
|
unmorphed player instead.
|
|
|
|
|
- Fixed: Heretic uses Backspace to activate the Tome of Power by default.
|
|
|
|
|
- Fixed: 'Use all' should not try to use puzzle items.
|
|
|
|
|
- Made FileReader's methods virtual. Right now this isn't important
|
|
|
|
|
but when ZIP support will be added it is needed. Also added a
|
|
|
|
|
MemoryReader class that derives from FileReader.
|
|
|
|
|
- Added a pointer check to DI_Acquire and DI_Unacquire. GZDoom definitely
|
|
|
|
|
had problems with that so it might be a good idea to always check these
|
|
|
|
|
pointers.
|
|
|
|
|
- Added an engine signature to the savegame. The inability to distinguish
|
|
|
|
|
between ZDoom and GZDoom savegames constantly forced me to use some ugly
|
|
|
|
|
tricks which broke the versioning system. This may also be useful for
|
|
|
|
|
other derivates that have to save additional data in a savegame.
|
|
|
|
|
- Due to the savegame version bump I removed all compatibility code.
|
|
|
|
|
- I had to bump the minimum savegame version because I got some strange
|
|
|
|
|
effects with old savegames. On the positive side, this allows me to
|
|
|
|
|
do a few more radical changes to the savegame code. ;)
|
|
|
|
|
- Fixed: CanvasTextures weren't saved in a savegame.
|
|
|
|
|
- Fixed: Multiple warp commands for the same texture were cumulative.
|
|
|
|
|
- Changed FPatchTexture::MakeTexture and FIMGZTexture::MakeTexture so they
|
|
|
|
|
don't re-initialize the texture's size information repeatedly. This can
|
|
|
|
|
cause problems if code was added that manipulates these values after loading
|
|
|
|
|
the textures.
|
|
|
|
|
- Changed FPatchTexture::GetDimensions to use ReopenLumpNum instead of
|
|
|
|
|
OpenLumpNum. Once ZIP handling is added the current code won't work anymore
|
|
|
|
|
without adding a highly expensive copy operator to FWadLump.
|
|
|
|
|
- Added Transfer_WallLight special. This is similar to Transfer_Floor/Ceilinglight
|
|
|
|
|
but affects walls instead.
|
|
|
|
|
- Fixed: P_TestActivateLine must check whether a valid actor is trying
|
|
|
|
|
to activate the line.
|
|
|
|
|
- Added a check for MF2_NOTELEPORT to the special activation check for
|
|
|
|
|
Booms generic triggers. This excludes most items from activating these
|
|
|
|
|
lines that are not supposed to do that.
|
|
|
|
|
- Added a sv_dropstyle CVAR so that the way items are dropped is no longer
|
|
|
|
|
dependent on the game being played.
|
|
|
|
|
- Added MF4_FRIGHTENED flag from .96x.
|
|
|
|
|
- Added a CVAR that disables the automap background graphic in Heretic
|
|
|
|
|
and Hexen.
|
|
|
|
|
- Added more color options to the automap, including the option to show
|
|
|
|
|
secrets.
|
|
|
|
|
- Added menu option for the monster movement interpolation CVAR.
|
|
|
|
|
- Fixed: Strife's grenades don't make bouncing sounds.
|
|
|
|
|
- Fixed: Strife's grenades lose 50% of their momentum when bouncing,
|
|
|
|
|
not 30% like in Hexen.
|
|
|
|
|
- Fixed: HexenHack must be reset for each MAPINFO lump being parsed.
|
|
|
|
|
- Turned monster falling damage into a level flag so that it can be
|
|
|
|
|
used in all games, not just Hexen.
|
|
|
|
|
- Added the map's lump name to the savegame information. This is useful
|
|
|
|
|
for those who remember maps by their lump name and not the description.
|
|
|
|
|
- Added a total game time counter and made the total time display on
|
|
|
|
|
the intermission screen operrable. Also added an optional total time
|
|
|
|
|
display for the automap.
|
|
|
|
|
- Added support for full hub intermission statistics. To make this work
|
|
|
|
|
properly level.time is now being reset after changing hubs.
|
|
|
|
|
- Added GZDoom's local SNDINFO/SNDSEQ code. This was supposed to be in
|
|
|
|
|
.96x but that was cancelled before I had the chance.
|
|
|
|
|
- Made DCanvas::FlatFill virtual so it can be overridden by other
|
|
|
|
|
types of canvases (e.g. OpenGL.)
|
|
|
|
|
- Fixed: CR_UNTRANSLATED was uninitialized for FON2 fonts
|
|
|
|
|
- Fixed: Hexen uses a view height of 48, not 41.
|
|
|
|
|
- Changed: Multiplayer weapons will be spawned in coop games now
|
|
|
|
|
unless the player explicitly disables this. There are many WADs
|
|
|
|
|
out there that need the additional weapons in coop games.
|
|
|
|
|
- Added code that remaps MF_NOSECTOR to RF_INVISIBLE for all items
|
|
|
|
|
touched by Dehacked and for ABossEye. MF_NOSECTOR makes any
|
|
|
|
|
item completely deaf so it is very dangerous to use with monsters
|
|
|
|
|
or other things that depend on their sound target.
|
|
|
|
|
- Fixed: The Dehacked code cleared one of the translation flags.
|
|
|
|
|
- Fixed: The dehacked parser must set EnglishStrings to NULL after
|
|
|
|
|
freeing the memory.
|
|
|
|
|
- Copied a fix for restoring the weapon slots from 2.1.0.
|
|
|
|
|
- Fixed: APathFollower::Interpolate needs some NULL pointer checks.
|
|
|
|
|
- Added MF2_NOTELEPORT to ABlood and AIceChunk. Teleporting blood can
|
|
|
|
|
seriously mess up one-time teleporters - plus it looks just weird.
|
2006-04-11 08:36:23 +00:00
|
|
|
|
- Fixed: It was possible to use things through closed walls when the wall
|
|
|
|
|
was further away than 64 map units.
|
|
|
|
|
- Added a check for MF3_BLOODLESSIMPACT to P_LineAttack so that bloodless
|
|
|
|
|
hitscan attacks can be created.
|
|
|
|
|
- Added a check to P_CheckSlopeWalk that prevents sliding when hanging over
|
|
|
|
|
a sloped dropoff.
|
|
|
|
|
- Fixed: The line id hash chains used signed shorts to link their elements.
|
|
|
|
|
This completely broke line manipulation for linedef indices >= 32768.
|
|
|
|
|
- Fixed: Changed PL_SKYFLAT from 0x8000 to 0x10000 because otherwise it
|
|
|
|
|
doesn't work with linedef indices >= 32768. Also expanded sector_t::sky
|
|
|
|
|
from WORD to int to make this work.
|
|
|
|
|
- Added the flag parser fix from GZDoom. It was still incorrect.
|
|
|
|
|
- Added an escape flag to sc_man. This was necessary to parse the frame names
|
|
|
|
|
correctly which can contain backslashes so they must be excluded from
|
|
|
|
|
converting \" to ".
|
|
|
|
|
- Fixed: The 'ELVIS' cheat code wasn't terminated with 255.
|
|
|
|
|
- Fixed: When an object without any death state dies it has to be destroyed.
|
|
|
|
|
- Added 'nofog' parameter to Thing_Move
|
|
|
|
|
- Added a check for Teleport_ZombieChanger to P_TranslateTeleportThings.
|
|
|
|
|
- Fixed: Dumpmap crashed when the loaded map has GL nodes because it tried
|
|
|
|
|
to access the linedef of a miniseg. Needless to say, the BSP that is
|
|
|
|
|
written in this case is completely broken but at least it doesn't crash
|
|
|
|
|
anymore.
|
|
|
|
|
- Fixed: z-momentum application in P_ZMovement was incompatible with
|
|
|
|
|
the original method. Unless MF2_FLOATBOB is set it must be done before
|
|
|
|
|
applying gravity to momz.
|
|
|
|
|
- Fixed: AActor::Massacre caused an infinite loop when it wasn't able to
|
|
|
|
|
hurt the actor.
|
|
|
|
|
- Fixed: Due to movement interpolation the viewsector could be incorrect
|
|
|
|
|
if the actual camera's position and the interpolated position were not
|
|
|
|
|
in the same sector.
|
|
|
|
|
- Fixed: Assigning an empty string to a 'string' object NULLed
|
|
|
|
|
the Chars pointer. This cannot be done because it makes the
|
|
|
|
|
string object invalid.
|
|
|
|
|
- Fixed: Default intermission handling for E1-E3 should only happen when
|
|
|
|
|
playing Doom 1 and Heretic.
|
|
|
|
|
- Fixed: 'Give all' cheat must not try to give an item of type 'All'.
|
|
|
|
|
- Fixed: In rare circumstances DBoundingBox::AddToBox could produce
|
|
|
|
|
incorrect results.
|
|
|
|
|
- Fixed: The node builder still used NO_INDEX for initializing non-existent
|
|
|
|
|
sidedefs.
|
|
|
|
|
- Added MaxStepHeight and MaxDropoffHeight actor properties to DECORATE.
|
|
|
|
|
- Added new code pointers from GZDoom: A_FireAssaultGun, A_FadeIn and
|
|
|
|
|
the target inventory functions. Also added changes to several other
|
|
|
|
|
code pointers.
|
|
|
|
|
- Fixed: The FlameThrowerParts were missing the IF_INVBAR flag.
|
|
|
|
|
- Added a third parameter to A_BFGSpray to customize the amount of damage.
|
|
|
|
|
- Added A_DualPainAttack code pointer submitted by Justin for GZDoom.
|
|
|
|
|
- Fixed: AFatShot must have a height of 8, not 32.
|
|
|
|
|
- Fixed: AFighterPLayer::DoHealingRadius initialized the armor item
|
|
|
|
|
incorrectly so it was ineffective.
|
|
|
|
|
- Fixed: Strife's Brass Key needs a DoomEdNum of 39.
|
|
|
|
|
- Removed all the obsolete code and variables from the keys. With the
|
|
|
|
|
LOCKDEFS lump the original key numbers were deleted anyway and the
|
|
|
|
|
NeedKey messages are taken from the lump now.
|
|
|
|
|
|
2006-04-10 21:54:50 +00:00
|
|
|
|
April 10, 2006 (Changes by Graf Zahl)
|
2006-04-11 08:36:23 +00:00
|
|
|
|
- Fixed: The Teleporter Beacon was missing the pickup message.
|
2006-04-10 21:54:50 +00:00
|
|
|
|
- Made the IronLich's projectiles bright. Using them in non-bright state
|
|
|
|
|
in dark sectors looks truly odd.
|
|
|
|
|
- Fixed: Using bot_observer cleared the FRIENDLY flag off the player.
|
|
|
|
|
- Fixed: Changed some decals from DecalScorch to DecalScorchLower.
|
|
|
|
|
- Fixed: Added the missing intermission lumps and LOCKDEFS to zdoom.wad
|
|
|
|
|
- Changed the damage formula for Strife's dagger. This change has already
|
|
|
|
|
been added to the 2.1.0 source but not to the current version.
|
|
|
|
|
- Added a call to P_HitFriend to A_SentinelRefire to prevent it from shooting
|
|
|
|
|
at friends.
|
|
|
|
|
- Fixed: The Inquisitor's grenades should not teleport.
|
|
|
|
|
- Fixed: The Inquisitor isn't supposed to be thrust by damage so its mass
|
|
|
|
|
has to be increased.
|
|
|
|
|
- Fixed: Strife's Inquisitor can be hurt by radius damage as long as this
|
|
|
|
|
damage comes from a non-Inquisitor.
|
|
|
|
|
- Fixed: AArtiDarkServant::Use must always report successful use of the item.
|
|
|
|
|
This function cannot fail. It either spawns a Minotaur or a new artifact
|
|
|
|
|
but never nothing at all.
|
|
|
|
|
- Fixed: Hexen's temp flames have two spawn IDs each. Since ZDoom doesn't
|
|
|
|
|
support multiple spawn IDs per item I added copies of these objects
|
|
|
|
|
to assign the second set od IDs.
|
|
|
|
|
- Fixed: Hexen's wall torch was missing the MF4_FIXMAPTHINGPOS flag.
|
|
|
|
|
- Fixed: A_CStaffCheckBlink must call A_WeaponReady because otherwise the
|
|
|
|
|
weapon bobbing becomes slightly erratic.
|
|
|
|
|
- Fixed: AGoldWandPuff2 had incorrect values set for flags2.
|
|
|
|
|
- Clamped the vertical speed of Heretic's Mace's balls. When shot at a high
|
|
|
|
|
vertical angle their movement becomes erratic.
|
|
|
|
|
- Fixed: Doom's corpses must clear the MF3_ISMONSTER flag inherited from
|
|
|
|
|
their monster parents.
|
|
|
|
|
|
2006-04-09 19:34:35 +00:00
|
|
|
|
April 9, 2006
|
|
|
|
|
- Fixed: The strupr() implementation in w_wad.cpp relied on compiler-dependant
|
|
|
|
|
behavior.
|
|
|
|
|
- Fixed fix: ParseActorProperties() still wasn't sending + or - to
|
|
|
|
|
ActorFlagSetOrReset().
|
|
|
|
|
- Fixed: [GZ] An item without use state won't be removed when being picked up.
|
|
|
|
|
The call to GoAwayAndDie is missing.
|
|
|
|
|
- Fixed: [GZ] A_GiveInventory sets the amount to give to a value passed to
|
|
|
|
|
this function. This is ok for everything except Health items. They should
|
|
|
|
|
give their original amount multiplied with the passed parameter.
|
|
|
|
|
|
|
|
|
|
April 3, 2006
|
|
|
|
|
- Fixed: Potential buffer overrun when launching timidity.
|
|
|
|
|
|
- Fixed: ActorFlagSetOrReset() wasn't receiving the + or - character from
ParseActorProperties().
- Fixed: The decorate FindFlag() function returned flags from ActorFlags
instead of the passed flags set.
- Fixed: The CHT_CHAINSAW, CHT_POWER, CHT_HEALTH, and CHT_RESSURECT needed
NULL player->mo checks.
- Fixed: The "give all" command didn't give the backpack in Doom, and it
must give the backpack before giving ammo.
- Fixed: P_SetPsprite() must not call the action function if the player is
not attached to an actor. This can happen, for instance, if the level is
destroyed while the player is holding a powered-up Phoenix Rod. As part
of its EndPowerup() function, it sets the psprite to the regular version,
but the player actor has already been destroyed.
- Fixed: FinishThingdef() needs to check for valid names, because weapons
could have inherited valid pointers from their superclass.
- Fixed: fuglyname didn't work.
- Fixed: Redefining $ambient sounds leaked memory.
- Added Jim's crashcatcher.c fix for better shell support.
- VC7.1 seems to have no trouble distinguishing between passing a (const
TypeInfo *) reference to operator<< and the generic, templated (object *)
version, so a few places that can benefit from it now use it. I believe
VC6 had problems with this, which is why I didn't do it all along. The
function's implementation was also moved out of dobject.cpp and into
farchive.cpp.
- Fixed: UnpackPixels() unpacked all chunks in a byte, which is wrong for the
last byte in a row if the image width is not an even multiple of the number
pixels per byte.
- Fixed: P_TranslateLineDef() should only clear monster activation for secret
useable lines, not crossable lines.
- Fixed: Some leftover P_IsHostile() calls still needed to be rewritten.
- Fixed: AWeaponHolder::Serialize() wrote the class type in all circumstances.
SVN r20 (trunk)
2006-03-14 06:11:39 +00:00
|
|
|
|
March 13, 2006
|
|
|
|
|
- Fixed: ActorFlagSetOrReset() wasn't receiving the + or - character from
|
|
|
|
|
ParseActorProperties().
|
|
|
|
|
- Fixed: The decorate FindFlag() function returned flags from ActorFlags
|
|
|
|
|
instead of the passed flags set.
|
|
|
|
|
- Fixed: The CHT_CHAINSAW, CHT_POWER, CHT_HEALTH, and CHT_RESSURECT needed
|
|
|
|
|
NULL player->mo checks.
|
|
|
|
|
- Fixed: The "give all" command didn't give the backpack in Doom, and it
|
|
|
|
|
must give the backpack before giving ammo.
|
|
|
|
|
- Fixed: P_SetPsprite() must not call the action function if the player is
|
|
|
|
|
not attached to an actor. This can happen, for instance, if the level is
|
|
|
|
|
destroyed while the player is holding a powered-up Phoenix Rod. As part
|
|
|
|
|
of its EndPowerup() function, it sets the psprite to the regular version,
|
|
|
|
|
but the player actor has already been destroyed.
|
|
|
|
|
- Fixed: FinishThingdef() needs to check for valid names, because weapons
|
|
|
|
|
could have inherited valid pointers from their superclass.
|
|
|
|
|
- Fixed: fuglyname didn't work.
|
|
|
|
|
- Fixed: Redefining $ambient sounds leaked memory.
|
|
|
|
|
- Added Jim's crashcatcher.c fix for better shell support.
|
|
|
|
|
- VC7.1 seems to have no trouble distinguishing between passing a (const
|
|
|
|
|
TypeInfo *) reference to operator<< and the generic, templated (object *)
|
|
|
|
|
version, so a few places that can benefit from it now use it. I believe
|
|
|
|
|
VC6 had problems with this, which is why I didn't do it all along. The
|
|
|
|
|
function's implementation was also moved out of dobject.cpp and into
|
|
|
|
|
farchive.cpp.
|
|
|
|
|
- Fixed: UnpackPixels() unpacked all chunks in a byte, which is wrong for the
|
|
|
|
|
last byte in a row if the image width is not an even multiple of the number
|
|
|
|
|
pixels per byte.
|
|
|
|
|
- Fixed: P_TranslateLineDef() should only clear monster activation for secret
|
|
|
|
|
useable lines, not crossable lines.
|
|
|
|
|
- Fixed: Some leftover P_IsHostile() calls still needed to be rewritten.
|
|
|
|
|
- Fixed: AWeaponHolder::Serialize() wrote the class type in all circumstances.
|
|
|
|
|
|
2006-03-12 22:04:49 +00:00
|
|
|
|
March 12, 2006
|
|
|
|
|
- Fixed: A_SpawnItem() should use CopyFriendliness().
|
|
|
|
|
- Fixed: AExplosiveBarrel should have MF2_MCROSS set.
|
|
|
|
|
- Fixed: Passing 0 numrays to A_BFGSpray should default to 40.
|
|
|
|
|
- Fixed: New A_JumpIfCloser() function.
|
|
|
|
|
- Future-proofing: thingdef.cpp/FindState() allows the 2.1 names for
|
|
|
|
|
SwitchingDecorations.
|
|
|
|
|
- Fixed: ASwitchingDecoration declared itself as deriving from AActor instead of
|
|
|
|
|
ASwitchableDecoration.
|
|
|
|
|
|
|
|
|
|
March 9, 2006
|
|
|
|
|
- Fixed: AWeaponHolder::Serialize() did not call its supermethod.
|
|
|
|
|
|
2006-03-03 03:57:01 +00:00
|
|
|
|
March 1, 2006
|
|
|
|
|
- Rewrote MusicVolumes handling so it's a list and not an array.
|
|
|
|
|
- Removed I_SetMusicVolume(). It isn't used.
|
|
|
|
|
- Moved P_IsFriend(), P_IsHostile(), and P_GetSpecies() into AActor.
|
|
|
|
|
|
2006-02-24 04:48:15 +00:00
|
|
|
|
February 18, 2006
|
|
|
|
|
- Various fixes for compilation with GCC/Linux.
|
|
|
|
|
- Various fixes from Graf Zahl: Wrong blood color with P_BloodSplatter2() and
|
|
|
|
|
P_RipperBlood(). Wrong MF3_BLOODLESSIMPACT check in PIT_CheckThing().
|
|
|
|
|
P_BloodSplatter() used R_PointToAngle(). A_CPosRefire() did not check for
|
|
|
|
|
hitting a friend. A_CentaurDefend() did not clear the reflective flag.
|
|
|
|
|
DHUDMessage::ResetText() did not check for con_scaletext==2. Wrong Raven
|
|
|
|
|
scroller speeds for COMPATF_RAVENSCROLL off. P_Init() should call
|
|
|
|
|
P_InitKeyMessages(). Missing decorate decal code from decallib.cpp. New
|
|
|
|
|
FFontChar1 code only made it into 2.1.0 and not 2.0.x. Missing copy
|
|
|
|
|
constructor for FMusicVolume.
|
|
|
|
|
- Fixed: ACustomInventory::TryPickup() failed to call the superclass
|
|
|
|
|
implementation of the function.
|
|
|
|
|
- Fixed: Friendly pain elementals killed by a player shot friendly lost souls
|
|
|
|
|
that attacked the player. Now those lost souls aren't friendly.
|
|
|
|
|
|
|
|
|
|
February 6, 2006
|
|
|
|
|
- Fixed: Except for A_Explode512, all of Strife's A_Explode functions also call
|
|
|
|
|
P_RecursiveSound.
|
|
|
|
|
- SpectralLightningSpot's RenderStyle is now STYLE_Translucent. It isn't really
|
|
|
|
|
part of the lightning itself, so it should probably not be additive.
|
|
|
|
|
- Fixed: Macil2 and the Oracle are invulnerable to the first stage Sigil, and
|
|
|
|
|
the first Macil should be completely unkillable.
|
|
|
|
|
- Fixed: The FlameThrowerParts' spawn state was unset, and it used a generic
|
|
|
|
|
pickup message.
|
|
|
|
|
- Fixed: Strife step heights vary depending on the type of actor: If it bleeds
|
|
|
|
|
it can go up 16 unit steps, if it's a missile it can go up 4 unit steps, and
|
|
|
|
|
everything else can go up 24 unit steps. And everything can stand over a 32
|
|
|
|
|
unit dropoff. MaxStepHeight and MaxDropOffHeight are now actor properties.
|
|
|
|
|
- Fixed: Strife floating monsters are not blocked by monster blocking lines, so
|
|
|
|
|
they all need to have MF3_NOBLOCKMONST set.
|
|
|
|
|
- Fixed: APowerCoupling::Die() should destroy the unbroken coupling.
|
|
|
|
|
- Fixed: AActor::TakeSpecialDamage() should allow damage if the actor has
|
|
|
|
|
no death state at all. (Taken from GZDoom)
|
|
|
|
|
- Fixed: Killing something that drops an alarm with the second-stage mauler
|
|
|
|
|
would not show the alarm text if it was directly hit by the main torpedo.
|
|
|
|
|
Added a third argument to P_SpawnSubMissile() that indicates what the
|
|
|
|
|
new missile's "target" should be, so if the missile dies right away, it
|
|
|
|
|
has the correct target information.
|
|
|
|
|
- Fixed: Added Graf Zahl's fix for manually closing animated doors with
|
|
|
|
|
something inside them.
|
|
|
|
|
- Fixed: The A key should be bound to +jump by default in Strife.
|
|
|
|
|
- Fixed: F_BunnyScroll() should fill the widescreen border with black, not
|
|
|
|
|
the FinaleFlat.
|
|
|
|
|
- Fixed: Strife linetype 52 can be used to advance to the next map by setting
|
|
|
|
|
its tag to 0. It should also be flagged repeatable.
|
|
|
|
|
- Fixed: A_Look2() is supposed to randomly choose self->SpawnState + 3 if
|
|
|
|
|
MF4_STANDSTILL is unset, not + 4.
|
|
|
|
|
- A_AcolyteDie() now resets the acolyte's RenderStyle to turn off any shadow
|
|
|
|
|
effects they may have.
|
|
|
|
|
|
|
|
|
|
January 24, 2006 -- First changes of 2006! 1.5 months later! :(
|
|
|
|
|
- Added a new level.maptime variable that keeps track of the time you've been
|
|
|
|
|
on a single level and is unaffected by hubs.
|
|
|
|
|
- Fixed: ASoulsphere::Use() could reduce your health.
|
|
|
|
|
- Fixed: cht_Suicide() did not clear the MF2_INVULNERABLE flag.
|
|
|
|
|
- Increased the sidedef limit to 2^32-1.
|
|
|
|
|
- Fixed: Stacked sectors inside a skybox would be drawn from the player's
|
|
|
|
|
origin instead of the skybox's origin, which would easily lead to infinite
|
|
|
|
|
recursion because the engine would try to render the skybox again instead
|
|
|
|
|
of the other side of the stack. In order to avoid any other infinite
|
|
|
|
|
recursion problems, the maximum number of skybox visplanes per scene has now
|
|
|
|
|
been capped at 100.
|
|
|
|
|
- Changed the inventory flag IF_CHEATNOTWEAPON to the weapon flag
|
|
|
|
|
WIF_CHEATNOTWEAPON.
|
|
|
|
|
|
|
|
|
|
December 11, 2005
|
|
|
|
|
- Started integrating changes from 96x into 2.0.99.
|
|
|
|
|
|
|
|
|
|
December 10, 2005
|
|
|
|
|
- Fixed: GetFinaleText() did not null-terminate the string it retrieved.
|
|
|
|
|
- Fixed: When changing levels, sky1pos and sky2pos were not reset to 0.
|
|
|
|
|
- Removed the check for 26,26 at offset 33 in SPC files because somebody found
|
|
|
|
|
a file that had them as 0,0 instead, and some players played it fine.
|
|
|
|
|
- Fixed: Before resorting to "Person", the dialogue code should use the actor's
|
|
|
|
|
tag name as a default name.
|
|
|
|
|
- Increased the Entity's alpha value to 50% to make it more visible.
|
|
|
|
|
- Fixed: F_StartSlideshow() needs to reset any blending.
|
|
|
|
|
- When a Macil speech ends, the level's original music is now restored.
|
|
|
|
|
- Fixed: The music for Strife's slideshows is D_DARK and not D_SLIDE. Go figure.
|
|
|
|
|
|
|
|
|
|
December 4, 2005
|
|
|
|
|
- Removed the ancient and unused Fixed(Mul|Div)_(ASM|C) functions.
|
|
|
|
|
- Discovered the GCC outputs nice code for MulScale and friends, so I removed
|
|
|
|
|
the assembly for those routines in gccinlines.h. Alas, the same cannot be said
|
|
|
|
|
of DivScale's variants.
|
|
|
|
|
- Removed the assembly code for BigShort and BigLong and replaced it with
|
|
|
|
|
compiler intrinsics provided by VC++.
|
|
|
|
|
|
|
|
|
|
December 1, 2005
|
|
|
|
|
- Backported miscellaneous sc_man.cpp fixes from 2.1.0.
|
|
|
|
|
- Fixed: P_BobWeapon() checked flags instead of WeaponFlags for WIF_DONTBOB.
|
|
|
|
|
- R_ProjectSprite() now checks for NULL things passed to it.
|
|
|
|
|
- Fixed: The game crashed if a slope thing of type 9500 or 9501 was placed
|
|
|
|
|
directly on its target line. Now you get a warning in the console instead.
|
|
|
|
|
- Returned Berserk's behavior to giving you 100 health instead of 100% health.
|
|
|
|
|
- Changed: When no screenshot_dir is specified, the game now tries to save
|
|
|
|
|
screenshots to the program directory instead of the current directory. If
|
|
|
|
|
you really want screenshots to be saved to the current directory, you can
|
|
|
|
|
do so by setting screenshot_dir to "."
|
|
|
|
|
- Fixed: StringFormat::VWorker cleared the zero flag for numbers. (I know I
|
|
|
|
|
tested this, so I'm not sure when it went wrong.)
|
|
|
|
|
- Fixed: The game did not check if actors had pain states before putting them
|
|
|
|
|
in their pain states.
|
|
|
|
|
- Fixed: The shazam cheat could not deactivate the Tome of Power, nor did it
|
|
|
|
|
display any text informing you of its action.
|
|
|
|
|
- Added additional decals from Graf Zahl's DECALDEF.
|
|
|
|
|
- Updated the obituaries in english-us.txt for Heretic to reflect the published
|
|
|
|
|
names of various Heretic monsters.
|
|
|
|
|
- Fixed: There is no reason why the Heretic and Hexen status bars should clamp
|
|
|
|
|
the displayed health to a maximum of 100.
|
|
|
|
|
- Fixed: P_PlayerInSpecialSector() duplicated the damage done by
|
|
|
|
|
P_PlayerOnSpecialFlat().
|
|
|
|
|
- Fixed: The actor serializer was off by one when checking the number of
|
|
|
|
|
conversation nodes in a script.
|
|
|
|
|
- Fixed: In Strife dialogues, yes texts are printed even when it jumps
|
|
|
|
|
immediately to another dialogue node. I think this is bad design, and the
|
|
|
|
|
yes text should be part of the normal dialogue, but the person in the
|
|
|
|
|
east room of MAP27 abuses this, so I need to support it too. This also means
|
|
|
|
|
the notify text is no longer hidden when the menu is up. (Maybe they
|
|
|
|
|
mistakenly made it jump, and you were really supposed to try talking to him
|
|
|
|
|
again when he tells you the master doesn't like visitors.)
|
|
|
|
|
- Fixed: Anybody in Strife who does not have their name provided in their
|
|
|
|
|
dialogue script should use the default name "Person".
|
|
|
|
|
- Fixed: P_RecursiveSound() did not consider closed split doors as closed.
|
|
|
|
|
- Fixed: MummyFX1 and Whirlwind should have the MF2_SEEKERMISSILE flag set.
|
|
|
|
|
- Fixed: A_VileChase() did not clear the MF3_CRASHED flag.
|
|
|
|
|
- Fixed: P_SpawnPlayer() should always attach the StatusBar if the
|
|
|
|
|
consoleplayer is spawning.
|
|
|
|
|
- Fixed: HateTarget did not take damage due to its lack of a death state.
|
|
|
|
|
- Fixed: CheckInventory(), TakeInventory(), and GiveInventory need NULL type
|
|
|
|
|
checks.
|
|
|
|
|
- Fixed: SC_GetString() did not understand escaped quote characters in strings.
|
|
|
|
|
- Fixed: There were synchronization issues while drawing the console. Calls to
|
|
|
|
|
DrawTexture() can trigger input events to be processed, which can cause the
|
|
|
|
|
contents of the console to change WHILE THE CONSOLE IS BEING DRAWN. So now
|
|
|
|
|
any changes that would alter the contents of the console text buffer are
|
|
|
|
|
deferred until after the buffer is drawn, and a copy of the command line is
|
|
|
|
|
drawn instead of the real command line.
|
|
|
|
|
|
|
|
|
|
November 22, 2005
|
|
|
|
|
- Fixed: Dssswtchx and dspistol are obviously wrong choices for Strife menu
|
|
|
|
|
sounds. I don't think it uses anything for those sounds, but I picked analogs
|
|
|
|
|
for them anyway.
|
|
|
|
|
- Fixed: Merchants ignored attacks from "silent" weapons.
|
|
|
|
|
- Fixed: Strife humans did not play their "yeargh!" sound for their zap deaths.
|
|
|
|
|
- Added a new Travelled() method for inventory items. This is called each time
|
|
|
|
|
an item travels to a new map and gives it a chance to perform any needed
|
|
|
|
|
reinitialization. Specficially, PowerTargeter needs it to set the player's
|
|
|
|
|
psprites again.
|
|
|
|
|
- Fixed: Dropping coins should do so in increments of 50 if you have enough, not
|
|
|
|
|
increments of 1.
|
|
|
|
|
- Added IF_UNDROPPABLE to HealthTraining and GunTraining. Because HealthTraining
|
|
|
|
|
also gives GunTraining when picked up, you could cheat by dropping the
|
|
|
|
|
HealthTraining item and picking it up to get as many GunTraining upgrades as
|
|
|
|
|
you wanted. GunTraining doesn't really need to be undroppable; the flag is just
|
|
|
|
|
there for it for the sake of symmetry.
|
|
|
|
|
- Fixed: It looks like just about everything in Strife should have MF2_FLOORCLIP
|
|
|
|
|
set. Strife probably applied floorclip to everything without MF_NOGRAVITY set.
|
|
|
|
|
- Fixed: The perfectly vertical missile movement fix was backwards with regards
|
|
|
|
|
to damage values.
|
|
|
|
|
- Fixed: AddCommandString() scanned past terminating '\0's in unclosed
|
|
|
|
|
strings while searching for semicolons that break commands. Thus, if the
|
|
|
|
|
previous command added had a semicolon in just the right place, it could
|
|
|
|
|
try to add it again.
|
|
|
|
|
- Fixed: The fly cheat did not check to make sure you had a body.
|
|
|
|
|
|
|
|
|
|
November 18, 2005
|
|
|
|
|
- Fixed: You could create a chain reaction where merchants would continually
|
|
|
|
|
enter their pain state because there was a delay between the time when they
|
|
|
|
|
alerted and the time they alerted others.
|
|
|
|
|
- Fixed: If the Inquisitor died while flying, it would continue to play the
|
|
|
|
|
flying sound.
|
|
|
|
|
- Fixed: The LEGO cheat didn't check if the Sigil was successfully added and
|
|
|
|
|
would set the player to the NULL weapon if it wasn't (which happens with
|
|
|
|
|
the shareware).
|
|
|
|
|
- Fixed: Macil was alerted by water splashing.
|
|
|
|
|
- Reworded some of the compatibility options menu items so they fit on
|
|
|
|
|
the screen when playing Strife.
|
|
|
|
|
- Fixed: The Oracle's Death checked the wrong quest item to determine if
|
|
|
|
|
you had already killed Macil.
|
|
|
|
|
|
|
|
|
|
November 17, 2005
|
|
|
|
|
- Fixed: Various Strife actors had MF_COUNTKILL that didn't need it:
|
|
|
|
|
Beggar, KneelingGuy, Macil1, RatBuddy, and AcolyteToBe.
|
|
|
|
|
- Fixed: PowerMask and PowerShadow both need the IF_HUBPOWER flag.
|
|
|
|
|
- Fixed: The Strife quest log should be initialized with the text "Find
|
|
|
|
|
help".
|
|
|
|
|
|
|
|
|
|
November 14, 2005
|
|
|
|
|
- Fixed: ClientObituary() crashed if the killing player didn't have a
|
|
|
|
|
weapon.
|
|
|
|
|
- Fixed: The Touch functions assumed the toucher was a valid player and
|
|
|
|
|
crashed if it wasn't.
|
|
|
|
|
- Fixed: APlayerPawn::Die() assumed the actor was always associated with
|
|
|
|
|
a player and crashed if it wasn't and you had weapon dropping turned on.
|
|
|
|
|
- Fixed: There were two pfile variables defined in R_InitTextures().
|
|
|
|
|
|
|
|
|
|
November 13, 2005
|
|
|
|
|
- Fixed: The user-configurable BOOM startup strings were always printed,
|
|
|
|
|
even if they were empty.
|
|
|
|
|
|
|
|
|
|
November 8, 2005
|
|
|
|
|
- Fixed: APowerStrength::GetBlend()'s equation did not match Doom's.
|
|
|
|
|
- Fixed: If you have weapon sprites in a wad and try to use a frame from
|
|
|
|
|
that sprite that does not exist, the game accesses might crash. Fixing
|
|
|
|
|
this involves two things: Make the range checks in R_DrawPSprite()
|
|
|
|
|
unconditional, so they exist in both debug and release builds. Also add
|
|
|
|
|
a check for the Null texture to catch "holes" in the available frames.
|
|
|
|
|
- Fixed: Setmodeneeded is always true before starting a game, because it
|
|
|
|
|
only gets cleared when the StatusBar is around. The most obvious
|
|
|
|
|
manifestation of this problem is that you cannot move left and right
|
|
|
|
|
in the video modes menu before starting a game.
|
|
|
|
|
- Fixed: The "give all" cheat did not give a backpack, and the non-console
|
|
|
|
|
equivalents always gave you a backpack, even if you weren't playing Doom.
|
|
|
|
|
- Fixed: The "give armor" cheat gave you armor with a SavePercent of .5 in
|
|
|
|
|
Heretic. This would be correct for the others games, but not for Heretic,
|
|
|
|
|
where .5 is what the lesser armor provides.
|
|
|
|
|
|
|
|
|
|
November 7, 2005
|
|
|
|
|
- New: Games saved for different PWADs but the same IWAD now show up in
|
|
|
|
|
orange on the save/load menu.
|
|
|
|
|
- Fixed: R_RenderViewToCanvas() did nothing if viewactive was false. Thus,
|
|
|
|
|
savegame screenshots would be garbage if you saved while looking at the
|
|
|
|
|
automap.
|
|
|
|
|
- To avoid potential conflicts with the Windows headers, the LONG and SHORT
|
|
|
|
|
routines were renamed to LittleLong and LittleShort. BELONG and BESHORT
|
|
|
|
|
were also renamed to BigLong and BigShort to match.
|
|
|
|
|
- Fixed: S_ChangeMusic() had a cast from 'const char *' to 'char *' that was
|
|
|
|
|
missed by VC++ 7.1 and GCC, but not the latest VC++ 2005 beta.
|
|
|
|
|
- Fixed: Although bit 27 of the actor's flag is now used for something
|
|
|
|
|
different than in Doom, it's okay to specify it by number in a Dehacked
|
|
|
|
|
patch, because it's used to set the color translation. When the translation
|
|
|
|
|
is set, it will be 0'ed then.
|
|
|
|
|
- Fixed: FActorInfo::ApplyDefaults() should initialize datastr to NULL.
|
|
|
|
|
- Fixed: TArray::Delete's parameter should be unsigned.
|
|
|
|
|
- Fixed: The fix for rotating polyobjects broke polyobject doors.
|
|
|
|
|
- Fixed: Using the IDBEHOLDS cheat did not give you full health.
|
|
|
|
|
- Backported the fix for scrolling Heretic/Hexen/Strife specials from 2.1.0.
|
|
|
|
|
- Increased KneelingGuy's height to 17 so that you cannot step on top of the
|
|
|
|
|
projector without jumping.
|
|
|
|
|
- Added a confirmation screen for the menu choices that reset your options.
|
|
|
|
|
- Added a new automap menu underneath the display options menu. Moved all the
|
|
|
|
|
automap options into it and added a few new ones.
|
|
|
|
|
|
|
|
|
|
November 2, 2005
|
|
|
|
|
- Fixed: WIF_NOAUTOFIRE did not actually do anything.
|
|
|
|
|
- Added zloba's save/load console commands.
|
|
|
|
|
- Adjusted Static_Init:Init_Color so that you don't have to specify both
|
|
|
|
|
fog and color with it.
|
|
|
|
|
- Fixed: A_GenWizard() and A_SpawnBishop() did not decrement total_monsters if
|
|
|
|
|
the monster spawned inside something and needed to be destroyed.
|
|
|
|
|
- Fixed: Hexen monsters also move faster in nightmare mode.
|
|
|
|
|
- Added a map color customization menu.
|
|
|
|
|
- Renamed the "Standard map colors" option to "Use traditional Doom map colors".
|
|
|
|
|
- Fixed: Switching the MIDI device after a one-shot song had finished would
|
|
|
|
|
try to restart the song.
|
|
|
|
|
- Removed the BufferReturnEvent from music_midi_stream.cpp, since it was
|
|
|
|
|
unused.
|
|
|
|
|
|
|
|
|
|
October 26, 2005
|
|
|
|
|
- Merged in Chris's Linux patch.
|
|
|
|
|
- Fixed: Redefining a decal that had already been assigned to an actor would
|
|
|
|
|
not update the actor's reference to the decal.
|
|
|
|
|
- Fixed: CheckForPushSpecial() could pass a NULL actor to P_ActivateLine() if
|
|
|
|
|
a missile did not have an "owner."
|
|
|
|
|
- Fixed: snd_reset assumed GSnd was valid, but it wouldn't be if you passed
|
|
|
|
|
-nosound on the command line.
|
|
|
|
|
- Fixed: When a doll-spawned minotaur in Hexen died, it checked to see if any
|
|
|
|
|
other minotaur were still up for that player. It assumed there were no free-
|
|
|
|
|
standing minotaurs and crashed if there were.
|
|
|
|
|
|
|
|
|
|
October 24, 2005
|
|
|
|
|
- Added armor->BecomeItem() calls to ABasicArmorPickup::Use() and
|
|
|
|
|
ABasicArmorBonus::Use(). AActor::AddInventory() no longer calls BecomeItem()
|
|
|
|
|
itself.
|
|
|
|
|
|
|
|
|
|
October 22, 2005
|
|
|
|
|
- Fixed: FloorAndCeiling_LowerRaise would move one or the other but not both.
|
|
|
|
|
- Fixed: PIT_RadiusAttack() calculated negative distances for things exploding
|
|
|
|
|
directly above other things.
|
|
|
|
|
- Fixed: Ripper missiles ignored MF3_BLOODLESSIMPACT and always sprayed blood
|
|
|
|
|
onto the walls.
|
|
|
|
|
- Fixed: Firing a missile into a wall while standing right next to the wall
|
|
|
|
|
would not cause any specials to activate on that wall.
|
|
|
|
|
|
|
|
|
|
October 18, 2005
|
|
|
|
|
- Changed: DThinker::DestroyThinkersInList() performed a pointer cleanup after
|
|
|
|
|
destroying each and every thinker. The better thing to do is clean up in the
|
|
|
|
|
functions that call it: DestroyAllThinkers() and DestroyMostThinkers().
|
|
|
|
|
|
|
|
|
|
October 17, 2005
|
|
|
|
|
- Fixed: BloodySkull and IceChunkHead are supposed to subclass PlayerChunk, not
|
|
|
|
|
PlayerPawn.
|
|
|
|
|
- Fixed: Behaviors for Generic_Floor change types 2 and 3 were swapped.
|
|
|
|
|
- Fixed: Non-320x200 INTERPICs once again display properly.
|
|
|
|
|
- Changed drawing operations in F_BunnyScroller() so that non-320x200 background
|
|
|
|
|
images should work.
|
|
|
|
|
- Fixed: The m_Dist member of DPolyAction was declared signed when it should have
|
|
|
|
|
been unsigned.
|
|
|
|
|
- Fixed: SetScriptState() in p_acs.cpp did not check to make sure the ACS thinker
|
|
|
|
|
actually existed.
|
|
|
|
|
- Fixed: Crashing when travelling between maps in a hub. For some reason the list
|
|
|
|
|
of pointers for AActor used 12-byte-wide pointers-to-members. Every other class
|
|
|
|
|
(including those that derive from AActor) use 4-byte-wide values. This left
|
|
|
|
|
DObject::PointerSubstitution() and DObject::DestroyScan() able to identify only
|
|
|
|
|
the first pointer declared in AActor. Rather than try to figure out why
|
|
|
|
|
pointers-to-members of AActor are weird, I decided to revert to my original
|
|
|
|
|
implementation: An array of offsets into the class. GCC complained about this,
|
|
|
|
|
which is why I switched to a pointers-to-members implementation. But I found a
|
|
|
|
|
way to make GCC compile it without warning, so yay!
|
|
|
|
|
|
|
|
|
|
And since I was working with this code anyway, I decided to make a change that-
|
|
|
|
|
is hopefully a speed optimization. Rather than walking up the chain of TypeInfos
|
|
|
|
|
every time an object's pointers need to be checked, I now do this once and build
|
|
|
|
|
an array of every pointer in a class instance (as opposed to just those pointers
|
|
|
|
|
defined for that class and not any of its superclasses). This should mean fewer
|
|
|
|
|
scattered memory accesses and hence, better cache utilization.
|
|
|
|
|
|
|
|
|
|
(Question: Why did this problem show up in 2.0.97 and not 2.0.96? The only
|
|
|
|
|
relevant change to the code was a macro to make the array const for VC++ but not
|
|
|
|
|
for GCC, because some GCC optimizations tried to write to it at runtime despite
|
|
|
|
|
its constness.)
|
|
|
|
|
|
|
|
|
|
September 26, 2005
|
|
|
|
|
- Released this old code as 2.0.97.
|
|
|
|
|
- Backported the text-based LANGUAGE and IMF code from 2.1.0.
|
|
|
|
|
- Updated to zlib 1.2.3.
|
|
|
|
|
|
|
|
|
|
February 21, 2005
|
|
|
|
|
- Provided alternate versions of the TArray-related friend template functions for
|
|
|
|
|
the string and name classes. I have no idea which compiler is right, but VC++ is
|
|
|
|
|
certainly nicer about it.
|
|
|
|
|
|
|
|
|
|
February 19, 2005
|
|
|
|
|
- Fixed: In C mode, SC_GetString() would not consider '-' to be a token.
|
|
|
|
|
- Added a global name table.
|
|
|
|
|
|
|
|
|
|
February 18, 2005
|
|
|
|
|
- Added lots of explicit casts and changed some types to turn off 64-bit compatibility
|
|
|
|
|
warnings.
|
|
|
|
|
- Added a string class I've been playing with for a while now and made some
|
|
|
|
|
adjustments to TArray so that it can work with non-basic types.
|
|
|
|
|
|
|
|
|
|
February 11, 2005
|
|
|
|
|
- Removed the MOD_FIRE hack in PIT_RadiusAttack and replaced it with a new thrustless
|
|
|
|
|
flag to P_RadiusAttack.
|
|
|
|
|
- Removed the multiplayer check from AInventory::ShouldRespawn(). Now the dmflag is
|
|
|
|
|
always respected, even without alwaysapplydmflags.
|
|
|
|
|
- Added a check for a NULL StatusBar to PlayerIsGone() in d_net.cpp.
|
|
|
|
|
- Fixed: ADehackedPickup::TryPickup() set the MF_DROPPED flag. This flag is now set
|
|
|
|
|
by default, so it should clear it instead. This kept hacked weapons from staying
|
|
|
|
|
and respawning, because the RealPickup it tests against was always flagged as
|
|
|
|
|
dropped.
|
|
|
|
|
- Fixed: The MagePlayer used A_Scream instead of A_PlayerScream when he died.
|
|
|
|
|
- Fixed: The Heresiarch spawned new balls above its head after it killed its target
|
|
|
|
|
and re-entered its SpawnState.
|
|
|
|
|
- Fixed: Using chasecam while spying on another player would not show that player.
|
|
|
|
|
- Rewrote the spy code to not need displayplayer.
|
|
|
|
|
- Switched to the combination of DirectDrawCreate/QueryInterface to obtain an
|
|
|
|
|
IDirectDraw2 interface. That should be slightly more compatible, since
|
|
|
|
|
DirectDrawCreate can create an IDirectDraw interface even if it isn't properly
|
|
|
|
|
registered.
|
|
|
|
|
|
|
|
|
|
February 10, 2005
|
|
|
|
|
- Fixed: The screen fading ACS commands did not work when viewing through a camera
|
|
|
|
|
because FBaseStatusBar::BlendView() did not think there was a player to get those
|
|
|
|
|
values from. Now, the blend comes from either the player viewing from or the
|
|
|
|
|
console player if the current view is not from a player.
|
|
|
|
|
- Fixed: Returning to a previously visited level in a hub with fewer players than you
|
|
|
|
|
had when you left the level would result in "zombie" bodies from the former players.
|
|
|
|
|
The fix is in G_UnSnapshotLevel(): After restoring the level, any actors that point
|
|
|
|
|
to a player who is no longer in the game are destroyed.
|
|
|
|
|
- Fixed: P_ExplodeMissile() should zero the projectile's speed before putting it into
|
|
|
|
|
its DeathState, not after. Strife's flamethrower needs it like this, and I'm not
|
|
|
|
|
sure when or why it was moved to happen after the state change.
|
|
|
|
|
- Fixed: R_DrawSkyBoxes() needs to save and restory viewx and viewy as well as viewz
|
|
|
|
|
for drawing masked items.
|
|
|
|
|
- Fixed: P_MorphPlayer() did not properly transfer ownership of inventory items, so
|
|
|
|
|
when it destroyed the player's armor, it also unlinked anything after the armor in
|
|
|
|
|
the player's inventory.
|
|
|
|
|
- Fixed: The Hexen players should call A_FireScream() on the first frame of their
|
|
|
|
|
fire death, not the first shared frame of their fire death.
|
|
|
|
|
- Attached obituaries to the projectiles used by Doom's projectile weapons, so they
|
|
|
|
|
can have obituaries again. This is just something I put off finishing when I changed
|
|
|
|
|
from a means-of-death system to a damage type system.
|
|
|
|
|
- Fixed: Pain Elementals did not transfer their friendly flag to the Lost Souls
|
|
|
|
|
they spawn. And since I've got the same code doing this sort of thing in several
|
|
|
|
|
places, I replaced them all with a call to the new method AActor::CopyFriendliness.
|
|
|
|
|
- Fixed: Bots are idiots after co-op level changes because the CajunMaster forgets
|
|
|
|
|
about them and so doesn't tell them to do anything different from what they were
|
|
|
|
|
when the level change happened.
|
|
|
|
|
- Fixed: G_FinishTravel() needs to retrieve the next player before changing the
|
|
|
|
|
current one's statnum.
|
|
|
|
|
- Made some fixes to SDLVideo's Lock() and and Update() synchronization.
|
|
|
|
|
- Fixed: DSimpleCanvas::Lock() and ::Unlock() did not properly use the lock count.
|
|
|
|
|
- Fixed: In Strife, the fastCrushAndRaise ceilings (line types 6 and 77) are twice
|
|
|
|
|
as fast as their Doom counterparts.
|
|
|
|
|
- Fixed: Strife auto-uses the best ammo first, not the worst. I got confused because
|
|
|
|
|
in Strife ARM1 is the best armor, but in Doom it's ARM2 that is best.
|
|
|
|
|
- Fixed: Strife does not double ammo at it's highest skill level.
|
|
|
|
|
- New: Using Degnin Ore will drop it, similar to the Teleporter Beacon.
|
|
|
|
|
- Fixed: In nightmare skill, every actor is spawned with a reactiontime of 0. This
|
|
|
|
|
make's Strife's HE Grenades explode immediately, because they use their reactiontime
|
|
|
|
|
as a countdown timer. The solution: Only set the reactiontime to 0 for monsters.
|
|
|
|
|
(Strife may not do this at all. I'm not sure.)
|
|
|
|
|
|
|
|
|
|
February 9, 2005
|
|
|
|
|
- New feature: Missiles with negative damage now give you health.
|
|
|
|
|
- Changed P_GiveBody so that it works with any actor, not just players.
|
|
|
|
|
- Fixed: Picking up a BasicArmorPickup without any existing BasicArmor gave you
|
|
|
|
|
a new BasicArmor without calling BecomeItem to unlink it from the world. Since
|
|
|
|
|
there are probably other areas where this happens, and it's kind of easy to forget
|
|
|
|
|
- Added a division-by-0 check to the very end of P_HitSlideLine for the very rare
|
|
|
|
|
cases when inter3 ends up being 0.
|
|
|
|
|
- Clamped the upmove speed in P_PlayerThink() to avoid super fast speeds from
|
|
|
|
|
joystick users.
|
|
|
|
|
- Fixed: A_SorcererRaise() did not transfer friendliness info to the new D'Sparil.
|
|
|
|
|
- Added: Trying to use actors that have the UsePuzzleItem special now works just
|
|
|
|
|
like trying to use a wall with the same special: You use the item if you have it,
|
|
|
|
|
and you say "hmm" if you don't.
|
|
|
|
|
- Fixed: APuzzleItem::Use() should not remove the item from the inventory but let
|
|
|
|
|
the caller do it instead.
|
|
|
|
|
- Fixed: P_TranslateLineDef() should clear the ML_MONSTERSCANACTIVATE flag on lines
|
|
|
|
|
with ML_SECRET set. Otherwise, monsters can open otherwise secret doors in Doom
|
|
|
|
|
format maps.
|
|
|
|
|
- Renamed the Porkalator's missile sprite from EGGM to PRKM, so it doesn't have the
|
|
|
|
|
same name as the Morph Ovum's missile.
|
|
|
|
|
- Fixed: The warp cheat was always applied to the local player and not the player who
|
|
|
|
|
used it.
|
|
|
|
|
- TypeInfo::CreateDerivedClass() now initializes OwnedStates and NumOwnedStates for
|
|
|
|
|
actors.
|
|
|
|
|
- Fixed: PrepWall and PrepLWall clamped the final texture column so that it was not
|
|
|
|
|
visible unless it was fully visible.
|
|
|
|
|
- Fixed writing of RDosPlay raw songs. It was a very very very stupid mistake: I had
|
|
|
|
|
the order of the register and data bytes reversed. Now it works fine, and since it
|
|
|
|
|
took me a while to figure out the problem, ZDoom can now play raw OPL songs.
|
|
|
|
|
|
|
|
|
|
February 7, 2005
|
|
|
|
|
- Added the writeopl command to write a song in RDosPlay raw OPL format. It's usage is:
|
|
|
|
|
writeopl [songname] <filename>
|
|
|
|
|
If the currently playing song is a MUS song being played through the OPL emulation,
|
|
|
|
|
then you just need to specify the filename. Otherwise, you need to provide the
|
|
|
|
|
songname (such as D_E1M1) as well. Unfortunately, the result is unplayable with
|
|
|
|
|
AdPlug, so I must be doing something wrong.
|
|
|
|
|
|
|
|
|
|
February 4, 2005
|
|
|
|
|
- Merged in Graf Zahl's Caverns of Darkness patch.
|
|
|
|
|
- Fixed: Using the screenshot command to specify a filename without any extension
|
|
|
|
|
automatically adds the extension.
|
|
|
|
|
|
|
|
|
|
February 3, 2005
|
|
|
|
|
- Played around with polymost some more. The good: Wall projection is now totally
|
|
|
|
|
independant of the non-polymost code, so walls don't get clipped to what would have
|
|
|
|
|
been the screen boundaries without true look up/down. With the filled polygon mode,
|
|
|
|
|
it looks awesome. The bad: I'm getting precision problems when clipping the left
|
|
|
|
|
side of walls to SCISDIST. This problem is not present when clipping the right side,
|
|
|
|
|
and it's not present in jfDuke, so what am I doing wrong? Setting SCISDIST to a large
|
|
|
|
|
value like 128 makes the problem disappear, but that's much too large. Someday, when
|
|
|
|
|
it can handle doing a second pass to draw behind you, SCISDIST needs to be as small as
|
|
|
|
|
possible to avoid a visible gap between the front and back views.
|
|
|
|
|
|
|
|
|
|
February 2, 2005
|
|
|
|
|
- Added a damagetype parameter to AActor::TakeSpecialDamage(). The default implementation
|
|
|
|
|
of this function now uses it to reject damage if the actor doesn't have a matching
|
|
|
|
|
death state. (Meaning, you can leave an actor without a normal death state, and it will
|
|
|
|
|
only take damage from special attacks.) Since this negates the need for A_TreeDeath,
|
|
|
|
|
that function is gone.
|
|
|
|
|
- Fixed: The adjustment for negative y-offset, non-power-of-2-height textures is
|
|
|
|
|
now only done for textures aligned at the top and not the bottom.
|
|
|
|
|
- Fixed: APowerFlight::DrawPowerup() did not check if SPFLY0 actually existed before
|
|
|
|
|
using it.
|
|
|
|
|
- Fixed: P_SpeekerMissile() did not check for zero-speed actors, so you could get a
|
|
|
|
|
division by zero error if it needed to move vertically.
|
|
|
|
|
|
|
|
|
|
January 30, 2005
|
|
|
|
|
- Threw together a quicx mock-up of a polymost-based renderer. It is essentially
|
|
|
|
|
just the standard software renderer with some parts commented out and the clipping
|
|
|
|
|
done with polymost instead of a few one-dimensional arrays. The display itself is
|
|
|
|
|
just the standard view with the polymost view overlayed in wireframe.
|
|
|
|
|
|
|
|
|
|
January 29, 2005
|
|
|
|
|
- Fixed: BOOM-style carrying floors that use speeds values less than STOPSPEED
|
|
|
|
|
no longer change the actor's momx and momy but are passed as extra parameters
|
|
|
|
|
to P_XYMovement(). Faster speeds still change momx and momy, so conveyor belts
|
|
|
|
|
can fling objects off of them.
|
|
|
|
|
- Fixed: Items in inventory would "scroll" on scrolling floors.
|
|
|
|
|
- Fixed: Every place that copies the friendly flag from one actor to another also
|
|
|
|
|
needs to copy the FriendPlayer.
|
|
|
|
|
- Fixed: In A_Chase(), a friend's selection of target based on who last hurt the
|
|
|
|
|
player did not take into consideration that a friend may have accidentally hurt
|
|
|
|
|
the player.
|
|
|
|
|
- Fixed: P_NightmareRespawn() did not copy a monster's custom translation to
|
|
|
|
|
its new body.
|
|
|
|
|
- Fixed: FMODStreamCapsule::Play() did not record the channel the stream was
|
|
|
|
|
playing on, so you could not change its volume during playback.
|
|
|
|
|
- Added the sucktime mapinfo option. This is the time, in hours, that the
|
|
|
|
|
player must play before the intermission tells them their time sucks. If this
|
|
|
|
|
is 0, then they cannot suck. If they do suck, their time is still shown
|
|
|
|
|
(unlike Doom) in the normal spot, with the suck above it. I had to shift the
|
|
|
|
|
positions of the time displays in the Doom intermission a little so that there
|
|
|
|
|
was room for the hour field. This is also retrievable with the GetLevelInfo()
|
|
|
|
|
command by passing LEVELINFO_SUCK_TIME.
|
|
|
|
|
- Fixed: Using the suicide cheat on the "end of game hell hack" on E1M8 would
|
|
|
|
|
infinitely loop because that sector type actually prevents you from dying,
|
|
|
|
|
but the cheat code was waiting for you to die.
|
|
|
|
|
|
|
|
|
|
January 27, 2005
|
|
|
|
|
- Added mouse handling to the testpolymost screen so that I can actually drive
|
|
|
|
|
it. That let me find a few more bugs in my port of the code that needed to be
|
|
|
|
|
fixed.
|
|
|
|
|
|
|
|
|
|
January 26, 2005
|
|
|
|
|
- Changed the Puffy actor (used by Heretic's weredragon/beast's fireball trail)
|
|
|
|
|
to do 0 damage. Similarly, A_LastZap() now sets the projectile it spawns to
|
|
|
|
|
do 0 damage so it can be once again like Hexen.
|
|
|
|
|
- Fixed: Picking up an ammo item for the first time with more than the max
|
|
|
|
|
amount for that ammo type would let you get more than the max.
|
|
|
|
|
- Fixed: Specifying a defaultmap in MAPINFO disabled lax monster activation
|
|
|
|
|
checking instead of deducing it from the game's Hexen/not-Hexen status.
|
|
|
|
|
- Fixed: Mirrors were accumulated to the WallMirrors list while viewing the
|
|
|
|
|
automap, so after you turned the map off, a few thousand mirrors could be
|
|
|
|
|
processed, resulting in a noticable delay before the view became visible.
|
|
|
|
|
- Added support for using the Teleport_NewMap class of specials with title maps
|
|
|
|
|
so that you can use more than one map as a title map. Using the gametype()
|
|
|
|
|
ACS function will return GAME_TITLE_MAP if the map is being used for a title
|
|
|
|
|
display instead of regular play.
|
|
|
|
|
- Added a fourth parameter to ThrustThing to accept a TID of something to
|
|
|
|
|
thrust.
|
|
|
|
|
- Fixed: Deactivating an actor mover without activating it first reset its
|
|
|
|
|
target's flags to 0.
|
|
|
|
|
- Fixed: Picking up two or more berserk packs only gave the red tinting for
|
|
|
|
|
the first one.
|
|
|
|
|
- Fixed: Monsters following a path entered their see state whenever they
|
|
|
|
|
reached a patrol point. I don't know what I was thinking when I did that.
|
|
|
|
|
- Fixed: Since pre-2.0.90 demos no longer play back, they should be rejected
|
|
|
|
|
without even trying to play them. Similarly, new demos need to be
|
|
|
|
|
recorded indicating they won't play back with earlier game versions.
|
|
|
|
|
Unfortunately, I didn't bump the demo version between 2.0.63a and 2.0.90, so
|
|
|
|
|
anything pre-2.0.97 won't play with 2.0.97, even though there's probably
|
|
|
|
|
no changes that would cause desynching between 96 and 97. Oh well.
|
|
|
|
|
- Fixed FBaseStatusBar::DrBNumber(Outer) to work when some of the big number
|
|
|
|
|
graphics are missing.
|
|
|
|
|
|
|
|
|
|
January 15, 2005
|
|
|
|
|
- Fixed: ACS cos and sin were using signed shifts when calculating the fineangle.
|
|
|
|
|
|
|
|
|
|
January 13, 2005
|
|
|
|
|
- Fixed: Instead of assigning the empty sound a basepriority of -1000,
|
|
|
|
|
S_StartSound() should not even attempt to play it.
|
|
|
|
|
- Fixed: FCanvasTextureInfo::Add() did not change the FOV when reassigning an
|
|
|
|
|
existing camera->texture mapping.
|
|
|
|
|
- Fixed: SetCameraToTexture did not check if the texture name actually existed as
|
|
|
|
|
a texture. It just assumed it did.
|
|
|
|
|
|
|
|
|
|
January 10, 2005
|
|
|
|
|
- Fixed: P_MorphPlayer() needs to set the player's momx and momy to 0, because
|
|
|
|
|
morphing doesn't maintain the player's momentum.
|
|
|
|
|
- Fixed: The Cyberdemon, SpiderMastermind, AlienSpectre*, Crusader, and
|
|
|
|
|
Programmer need MF3_DONTMORPH set. Otherwise, morphing them and killing them
|
|
|
|
|
before they unmorph will skip any of their special death actions. Technically,
|
|
|
|
|
the Inquisitor doesn't need it set, but he's a boss monster, so it seems best
|
|
|
|
|
if he can't be morphed. (For that matter, should any of the mechanical monsters
|
|
|
|
|
in Strife be morphable, since they're not organic?)
|
|
|
|
|
- Redid: Invnext and invprev wrap around the inventory list.
|
|
|
|
|
- Unmorphing a player now removes the weapon(s) they received in their morphed
|
|
|
|
|
form.
|
|
|
|
|
- Redid the dehsupp fix from March 22, 2002.
|
|
|
|
|
|
|
|
|
|
January 8, 2005
|
|
|
|
|
- Fixed: Dead players could still be morphed, at least with the morphme cheat.
|
|
|
|
|
I'm not sure if morph projectiles did it or not, but now they definitely don't.
|
|
|
|
|
- Added a call to SN_StopAllSequences() inside S_StopAllChannels(). This
|
|
|
|
|
prevents moving sector sounds from playing during the finale (and any other
|
|
|
|
|
time when sound effects were supposed to have been stopped).
|
|
|
|
|
- Fixed: R_DetailDouble() must not do anything when viewactive is false.
|
|
|
|
|
|
|
|
|
|
January 7, 2005
|
|
|
|
|
- Ported the polymost visualization code from Ken's prototype so that I can
|
|
|
|
|
verify the correctness of my C++ port. Which was not quite correct. :-(
|
|
|
|
|
|
|
|
|
|
January 5, 2005
|
|
|
|
|
- Fixed: R_SetupBuffer() calculated ylookup for the height of the screen, and
|
|
|
|
|
not the height of the render target. This meant using camera textures taller
|
|
|
|
|
than the screen would probably crash. But wait! There's more! new_visplane
|
|
|
|
|
must also allocate top and bottom arrays wide enough for any view, not just
|
|
|
|
|
the screen. So I decided to just make it allocate enough for MAXWIDTH.
|
|
|
|
|
- Removed some possible unused variable warnings spewed by GCC.
|
|
|
|
|
- Fixed: The parser for DEM_SUMMON(FRIEND) tested if type was NULL when it
|
|
|
|
|
should have tested typeinfo instead.
|
|
|
|
|
- Changed the actor defaults for GCC to use a function to initialize the
|
|
|
|
|
default actors instead of an initializer list. With newer GCC versions, I
|
|
|
|
|
can no longer count on variables being emitted in the same order they are
|
|
|
|
|
defined, so using an initializer list is impossible. This looks like it adds
|
|
|
|
|
~300k to the executable, which I suppose isn't too bad.
|
|
|
|
|
|
|
|
|
|
January 4, 2005
|
|
|
|
|
- Changed the object pointer offset lists to not be const when compiling with
|
|
|
|
|
GCC. Some versions and options cause GCC to try to initialize them at
|
|
|
|
|
run-time, even though they are read-only and therefor protected from
|
|
|
|
|
writing.
|
|
|
|
|
- Added Makefiles for building with MinGW. Since Chris did the hard part by
|
|
|
|
|
posting a Makefile for the main exe on the forum, I only needed to make
|
|
|
|
|
Makefiles for the auxilliary projects. And then I spent some time porting
|
|
|
|
|
ccdv to Win32, so the make output will look pretty.
|
|
|
|
|
|
|
|
|
|
January 3, 2005
|
|
|
|
|
- Fixed: The self-modifying code in tmap3.nas was still in the .data section
|
|
|
|
|
instead of .rtext, so it couldn't be used with data-execution prevention
|
|
|
|
|
enabled.
|
|
|
|
|
|
|
|
|
|
January 1, 2005
|
|
|
|
|
- Fixed: ParseDecorate() needlessly allocated new TypeInfo objects.
|
|
|
|
|
- Fixed: The status bar constructor did not initialize CPlayer. Thus, when
|
|
|
|
|
the Doom status bar's AttachToPlayer method was called it would not do
|
|
|
|
|
the proper face initialization if the status bar was freed and then
|
|
|
|
|
reallocated in the exact same spot. This bug didn't show up in the debug
|
|
|
|
|
build, because the debug CRT automatically fills newly freed and allocated
|
|
|
|
|
memory.
|
|
|
|
|
- Fixed: P_SpawnMapThing() does not need a special check for the Lost Soul.
|
|
|
|
|
|
|
|
|
|
December 24, 2004
|
|
|
|
|
- New: Instead of using a static image as a title, you can now use a map.
|
|
|
|
|
Just create it as normal, being sure to do something interesting with
|
|
|
|
|
scripting, and rename it TITLEMAP. It will load just like a normal map,
|
|
|
|
|
but it will behave like a title picture.
|
|
|
|
|
- Fixed: The intermission did not compensate for non-4:3 aspect ratios.
|
|
|
|
|
- Fixed status bar border for widescreen ratios other than 16:9.
|
|
|
|
|
- Corrected clean scaling calculations for widescreens.
|
|
|
|
|
- Changed: Giving a BasicArmorBonus now also multiplies the original amount
|
|
|
|
|
by the specified amount instead of just using the specified amount.
|
|
|
|
|
- Fixed: When P_SpawnPlayer() transfers a voodoo doll's inventory to the new
|
|
|
|
|
player, it also needs to transfer the InventoryID property so that items
|
|
|
|
|
picked up later won't receive the same ID as an item they already have.
|
|
|
|
|
- Fixed: ArtiPoisonBag::BeginPlay() did not call the superclass's version of
|
|
|
|
|
the function.
|
|
|
|
|
- Changed A_FireScreamReplace to A_FireScream. Now it plays the sound itself.
|
|
|
|
|
On a related note, moved A_ClericBurnScream to the start of the ClericBoss's
|
|
|
|
|
flaming death and changed the old instance back to A_Scream.
|
|
|
|
|
- Fixed: Forgot to delete some old code in AActor::Tick().
|
|
|
|
|
- Fixed: The second sidedef-only constructor for DScroller did not set up an
|
|
|
|
|
interpolation.
|
|
|
|
|
- Fixed: R_DrawSkyBoxes() initialized the clipping drawseg's siz values to
|
|
|
|
|
1<<31, which is actually INT_MIN, not INT_MAX!
|
|
|
|
|
- Fixed: Some properties were not properly transferred when unmorphing an
|
|
|
|
|
actor.
|
|
|
|
|
- Fixed: You got HOM around the status bar in widescreen mode if you didn't
|
|
|
|
|
scale the status bar.
|
|
|
|
|
- Fixed: You could use the down arrow key to select blank entries on the last
|
|
|
|
|
line in the video mode menu if that line was not full.
|
|
|
|
|
- Fixed: The backpack handled pickups for everything after you got one.
|
|
|
|
|
|
|
|
|
|
December 23, 2004
|
|
|
|
|
- Made the bottom of the viewborder visible when the status bar doesn't cover
|
|
|
|
|
the full width of the screen and no border would normally be visible.
|
|
|
|
|
- Added SetAmmoCapacity (str typename, int maxamount) and
|
|
|
|
|
GetAmmoCapacity (str typename) ACS commands. Also added the ACS log command.
|
|
|
|
|
It is exactly like printbold, except it prints directly to the console instead
|
|
|
|
|
of the middle of the screen. BTW, ACS has static local variables ala C now.
|
|
|
|
|
They are exactly the same as map variables, except they can only be used in
|
|
|
|
|
the script or function that defines them.
|
|
|
|
|
- Fixed some fullscreen pages to work properly with non-4:3 aspect displays.
|
|
|
|
|
- Fixed DCanvas::DrawTexture() so that all virtual sizes (not just 320x200wide)
|
|
|
|
|
work with non-4:3 aspect screens. (So long as the virtual size is 4:3.)
|
|
|
|
|
|
|
|
|
|
December 22, 2004
|
|
|
|
|
- Fixed: The backpack was not added to the player's inventory, although there
|
|
|
|
|
was code present to handle removing it from the inventory.
|
|
|
|
|
- Loading a BEHAVIOR without any scripts but with other content crashed.
|
|
|
|
|
- More revelations with the sprite splitting experiment: Drawsegs are not
|
|
|
|
|
always created when you might think they are. Probably the biggest problem
|
|
|
|
|
is when you look at a line straight-on, so you see the sectors on each side
|
|
|
|
|
of it but not the line itself. I conceded defeat and stuck an #if 0 around
|
|
|
|
|
the related code. If I or someone else want to revisit it later, it's still
|
|
|
|
|
there but inactive. I don't think it's worth the effort to make it work
|
|
|
|
|
properly. A z-buffer would be much easier, more reliable, and possibly even
|
|
|
|
|
quicker when there are a lot of two-sided lines in view. So the solution
|
|
|
|
|
seems obvious: Use hardware acceleration and let it worry about sprite
|
|
|
|
|
clipping. Or stick with the way things are and ignore it. :-) (Community
|
|
|
|
|
Chest 2, MAP15, building number 4 makes a great test-case for this, BTW.)
|
|
|
|
|
|
|
|
|
|
December 21, 2004
|
|
|
|
|
- Messed around with splitting sprites along drawsegs some more. This is far
|
|
|
|
|
from being as straight forward as I had thought. One unexpected problem I
|
|
|
|
|
realized: Most (if not all) of the sprites that stand on the ground are
|
|
|
|
|
actually sunk into the ground, but splitting sprites is not a win unless you
|
|
|
|
|
clip them to the floor and ceiling. So I tried bumping the sprites up so that
|
|
|
|
|
they are aligned with the bottoms of their actor so I could clip them to the
|
|
|
|
|
floor. Now it looks much better. When it works. Unfortunately, there are
|
|
|
|
|
lots of cases that still don't work properly.
|
|
|
|
|
|
|
|
|
|
December 20, 2004
|
|
|
|
|
- Added some code to split sprites along drawsegs.
|
|
|
|
|
- Changed the sprite-in-front of drawseg calculations. Now it compares inverse
|
|
|
|
|
Z values in screen space.
|
|
|
|
|
- Fixed: The MinotaurFriend targetted friendlies other than itself.
|
|
|
|
|
- Fixed: An actor's floorpic was not serialized by name.
|
|
|
|
|
- Fixed: Each piece of Hexen armor only gave you one AC.
|
|
|
|
|
- Fixed: Morphing a monster didn't copy the original monster's friendliness and
|
|
|
|
|
TID hating to the morphed version.
|
|
|
|
|
|
|
|
|
|
December 18, 2004
|
|
|
|
|
- Fixed: Slideshows in Strife are supposed to change the music to D_SLIDE.
|
|
|
|
|
- Fixed: Merchants played their greeting animation in place of their "yes"
|
|
|
|
|
animation. (Or rather, the greeting was played immediately after starting the
|
|
|
|
|
"yes" one, so you only saw the greeting.)
|
|
|
|
|
- Fixed: The Strife health bar texture assumed that the vial level would always
|
|
|
|
|
be non-negative. It can go negative if the player dies then cheats to give
|
|
|
|
|
themself health, but not enough for their real health to go positive.
|
|
|
|
|
- Fixed: Creating a fade-in-out hudmessage with a fadetime of 0 crashed, because
|
|
|
|
|
it assumed the fade-in time would always be positive.
|
|
|
|
|
- Fixed: Instead of calling G_StartTravel(), idclev should set the player's
|
|
|
|
|
health to 0, so the player will do a complete spawn on the new level.
|
|
|
|
|
- Fixed: DrBNumberOuter(Font) and DrINumberOuter drew the shadow from one digit
|
|
|
|
|
on top of the next digit.
|
|
|
|
|
- Fixed: The Doom HUD drew the selected inventory item on top of the secondary
|
|
|
|
|
ammo if both were present.
|
|
|
|
|
- Moved the DrawPowerups() call out of FBaseStatusBar::Draw() and into
|
|
|
|
|
DrawTopStuff(), so the Doom HUD key display won't cover them up
|
|
|
|
|
- Fixed: If you started flying and then pressed the land key, you wouldn't be
|
|
|
|
|
able to fly again until the Wings of Wrath wore off. This was done by changing
|
|
|
|
|
several checks for a player with MF2_FLY into checks for a player with
|
|
|
|
|
MF_NOGRAVITY. MF2_FLY just indicates that the player is using the Wings;
|
|
|
|
|
for the player to fly, MF_NOGRAVITY must also be set. If MF_NOGRAVITY is not
|
|
|
|
|
set, but MF2_FLY is, then the pressing +moveup/down reactivates fly mode.
|
|
|
|
|
- Changed the receipt of BasicArmorPickup so that the SaveAmount is multiplied
|
|
|
|
|
by the given amount (via the give cheat or ACS giveinventory) in order to make
|
|
|
|
|
it compatible again with earlier versions of ZDoom.
|
|
|
|
|
- Fixed: Picking up an armor bonus after using up your armor left you with
|
|
|
|
|
useless armor until you picked up a full-fledged armor item.
|
|
|
|
|
- Fixed: Even though voodoo dolls couldn't pick up items, they could still touch
|
|
|
|
|
them without pretending to be a real player and mess things up in the player's
|
|
|
|
|
inventory.
|
|
|
|
|
- Fixed: Strife's alien spectres did not execute specials attached to them upon
|
|
|
|
|
death, because they have MF_SPECIAL set.
|
|
|
|
|
- Changed the inventory left/light gems (that indicate if you have more items in
|
|
|
|
|
that direction) to blink with gametic instead of level.time, so now they can
|
|
|
|
|
blink while the game is paused.
|
|
|
|
|
- Fixed: You could use items while the game was paused.
|
|
|
|
|
- I just noticed the fighter's fist doesn't meet the edge of the screen when you
|
|
|
|
|
swing it. What's a good, clean way to handle this situation?
|
|
|
|
|
- Brought over the startup log viewer I had added for my Duke port. Unlike my
|
|
|
|
|
Duke port, however, this window is normally hidden and only shows itself when
|
|
|
|
|
a fatal error occurs. Now if something goes wrong during the startup
|
|
|
|
|
sequence, you can review the console log to try and figure out why. I tried
|
|
|
|
|
making it show up at startup as a sort of revival of the way the startup
|
|
|
|
|
process worked once upon a time in DOS land, but too much of the code now
|
|
|
|
|
requires the video to be one of the first things initialized and it just isn't
|
|
|
|
|
practical to rearrange things to make it init later.
|
|
|
|
|
|
|
|
|
|
December 16, 2004
|
|
|
|
|
- New: ZDoom.wad is now managed along with the source code.
|
|
|
|
|
|
|
|
|
|
December 15, 2004
|
|
|
|
|
- Added support for letterboxing, so people without widescreen displays can still
|
|
|
|
|
use widescreen modes without running in a window. Note that if the video card
|
|
|
|
|
enumerates any widescreen displays, then the game will assume they are displayed
|
|
|
|
|
as widescreen, even if they really aren't. Letterbox modes are automatically
|
|
|
|
|
generated from the existing 4:3 modes, but if an existing resolution already has
|
|
|
|
|
the same size, then that resolution won't be available in letterbox form. The
|
|
|
|
|
video modes menu displays LB next to any modes that are letterboxed, so you can
|
|
|
|
|
tell them apart without trying each one.
|
|
|
|
|
- Corrected widescreen displays for non-90 degree FOVs.
|
|
|
|
|
|
|
|
|
|
December 14, 2004
|
|
|
|
|
- Added support for 16:10 and (if vid_tft is true) 5:4 displays. Also rearranged
|
|
|
|
|
the video modes menu, removing the depth choice and replacing it with an aspect
|
|
|
|
|
ratio choice.
|
|
|
|
|
|
|
|
|
|
December 13, 2004
|
|
|
|
|
- Rewrote the interpolators to use a hash table instead of a linear array, for
|
|
|
|
|
improved insertion and deletion performance.
|
|
|
|
|
- Added interpolation for scrolling floors, ceilings, and walls. Floors especially
|
|
|
|
|
need it, because the lack of interpolation really sticks out when you're being
|
|
|
|
|
carried along by a floor that only moves at 35 FPS.
|
|
|
|
|
- Resolutions are now sorted, and you can pick widescreen resolutions if you play
|
|
|
|
|
in a window even if your don't have any fullscreen widescreen modes. (Yep, 16:9
|
|
|
|
|
modes are now supported.)
|
|
|
|
|
|
|
|
|
|
December 11, 2004
|
|
|
|
|
- Decided it's time to bring the goodness of Polymost to ZDoom. Stage 1 complete:
|
|
|
|
|
Convert the clipper to a stand-alone C++ class. Stage 2 to be completed some
|
|
|
|
|
time in the indeterminate future. There's really other things that I should be
|
|
|
|
|
doing right now, ne?
|
|
|
|
|
|
|
|
|
|
December 9, 2004
|
|
|
|
|
- Fixed: APlayerPawn::BestWeapon() did not know about the Tome of Power, so
|
|
|
|
|
when you ran out of sufficient ammo for your tome'd weapon, it could select
|
|
|
|
|
the untome'd version of that weapon, which would turn into the tome'd version
|
|
|
|
|
when it was raised, so you would be stuck in a cycle until the tome ran out or
|
|
|
|
|
you picked a different weapon manually.
|
|
|
|
|
- Fixed AMinotaur::Die() should have used a thinker iterator instead of an
|
|
|
|
|
actor iterator to look for minotaurs that are still alive.
|
|
|
|
|
- Added Graf's deltaviewheight fix for climbing stairs made of actors.
|
|
|
|
|
- Fixed up the pickup ammo amount for the BFG. (Was 100, should be 40.)
|
|
|
|
|
- Merged in Jim's ACS character array printing support.
|
|
|
|
|
|
|
|
|
|
December 6, 2004
|
|
|
|
|
- Fixed: Fog boundaries flashed with gunfire. That's wrong because foggy
|
|
|
|
|
sectors don't flash.
|
|
|
|
|
- Fixed: Masked textures in a skybox would determine their height from the
|
|
|
|
|
viewz used for the last skybox drawn instead of the viewz for the skybox they
|
|
|
|
|
belong to.
|
|
|
|
|
- Fixed: "*fistgrunt" was undefined, so A_FPunchAttack() was unable to play it.
|
|
|
|
|
- Fixed: Hexen players did not play their burn death sounds. Neither did the
|
|
|
|
|
cleric boss.
|
|
|
|
|
- Fixed: Thingcount should not count items in somebody's inventory.
|
|
|
|
|
- Fixed: AInventory::BecomeItem() did not remove the item's TID, so it could
|
|
|
|
|
still be manipulated by scripts even after being picked up.
|
|
|
|
|
- Fixed: CheckBossDeath() should consider frozen corpses as not dead, because
|
|
|
|
|
A_BossDeath() is not called until the corpse shatters.
|
|
|
|
|
- Changed APlayerPawn::Die() to use P_DropItem() to spawn a new weapon when
|
|
|
|
|
weapondrop is turned on instead of dropping the player's actual weapon.
|
|
|
|
|
- Fixed: P_DropItem() needs to clear the MF_NOGRAVITY flag because some Hexen
|
|
|
|
|
items have it set.
|
|
|
|
|
- Fixed: ArtiTeleport::Use() called P_UndoPlayerMorph with its player instead of
|
|
|
|
|
its owner's player.
|
|
|
|
|
|
|
|
|
|
December 4, 2004
|
|
|
|
|
- Updated the libraries and moved them out of src and into the base directory.
|
|
|
|
|
Now zlib is at version 1.2.2, libFLAC is version 1.1.1, and src contains only
|
|
|
|
|
the ZDoom-specific files.
|
|
|
|
|
- Updated to zlib 1.2.2.
|
|
|
|
|
|
|
|
|
|
December 3, 2004
|
|
|
|
|
- Fixed: 256 entries per column is not enough for dc_tspans. Each column should
|
|
|
|
|
have MAXHEIGHT entries available, because a column that alternates drawn/not-
|
|
|
|
|
drawn pixels each row will need one entry per row.
|
|
|
|
|
|
|
|
|
|
December 2, 2004
|
|
|
|
|
- Fixed playback of SPCs when spc_8bit is true. SNESAPU renders them unsigned,
|
|
|
|
|
but we need them to be signed. Also fixed: Altering spc_stereo and spc_8bit
|
|
|
|
|
while a SPC was playing could crash.
|
|
|
|
|
- Added new stuff to the alternate sound renderer: MMX CopyAndClip routine,
|
|
|
|
|
interpolated mixers, FLAC sample loading, streams, and slightly tighter
|
|
|
|
|
inner. So now it's a bit more of a realistic alternative to FMOD. All it
|
|
|
|
|
really lacks is MP3, Vorbis, and MOD support. The snd_interpolate cvar can
|
|
|
|
|
even select between linear (1) and quadratic (2) interpolation, so it can
|
|
|
|
|
sound better than FMOD, which only does linear interpolation.
|
|
|
|
|
|
|
|
|
|
I'd like to compare the performance of the new code with FMOD, but
|
|
|
|
|
unfortunately, I can't seem to figure out a good way to calculate % CPU used
|
|
|
|
|
by the mixer. My attempts lead to numbers that fluctuate quite a lot for
|
|
|
|
|
relative constant environments. At least it ought to be attractive to the
|
|
|
|
|
Linux folks if it gets modified to support SDL as well as DirectSound, even
|
|
|
|
|
if I have no idea how well it performs.
|
|
|
|
|
|
|
|
|
|
December 1, 2004
|
|
|
|
|
- Reorganized the sound interface code to make it easier to target multiple
|
|
|
|
|
sound renderers.
|
|
|
|
|
|
|
|
|
|
November 29, 2004
|
|
|
|
|
- Added the CTRL-X keypress for clearing the current console command line.
|
|
|
|
|
- Changed tab completion to be more Bash-like: When there is more than one
|
|
|
|
|
possible completion, and they all have a common prefix longer than what
|
|
|
|
|
has been typed so far, the full prefix will be filled in for you. (e.g.
|
|
|
|
|
Typing "sn[TAB]" will append "d_" for you because every command that
|
|
|
|
|
starts with "sn" also starts with "snd_".) Note that this only works if
|
|
|
|
|
you have the completion list turned on (con_notablist is false).
|
|
|
|
|
- Fixed: Only the first berserk pack you picked up would give you health.
|
|
|
|
|
- Fixed: Soul sphere played the wrong pickup sound.
|
|
|
|
|
|
|
|
|
|
November 25, 2004
|
|
|
|
|
- Added render-to-texture support to the engine. Using it requires you do two
|
|
|
|
|
things:
|
|
|
|
|
(1) Define a texture that can be drawn into. You do this with a line in
|
|
|
|
|
ANIMDEFS:
|
|
|
|
|
|
|
|
|
|
cameratexture <texture name> <width> <heigth> [fit <width> <height>]
|
|
|
|
|
|
|
|
|
|
e.g.
|
|
|
|
|
|
|
|
|
|
cameratexture CAMTEX1 64 64
|
|
|
|
|
Creates a texture called CAMTEX1.
|
|
|
|
|
|
|
|
|
|
cameratexture CAMTEX2 100 50 fit 80 50
|
|
|
|
|
Creates a texture called CAMTEX2. Its actual dimensions are 100x50,
|
|
|
|
|
but it will be scaled to fit into an area 80x50 units large.
|
|
|
|
|
|
|
|
|
|
cameratexture STARTAN2 64 64
|
|
|
|
|
Replaces the existing texture STARTAN2 with a new one that can be
|
|
|
|
|
rendered into. Since no fit size was provided, this new texture will
|
|
|
|
|
be sized to occupy the same space as the old STARTAN2 texture, which
|
|
|
|
|
is 128x128.
|
|
|
|
|
|
|
|
|
|
cameratexture STARTAN2 64 64 fit 64 64
|
|
|
|
|
Replaces the existing texture STARTAN2, but leaves the texture
|
|
|
|
|
unscaled by specifying a fit size that matches the real size.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
(2) Use ACS to identify which camera renders to the texture:
|
|
|
|
|
|
|
|
|
|
SetCameraToTexture (<camera tid>, <texture name>, <FOV>);
|
|
|
|
|
|
|
|
|
|
e.g.
|
|
|
|
|
|
|
|
|
|
SetCameraToTexture (100, "CAMTEX1", 90);
|
|
|
|
|
|
|
|
|
|
November 24, 2004
|
|
|
|
|
- Expanded the definition of local for such things as "localambientsound" so
|
|
|
|
|
that players will still hear the sound if they are looking through a camera.
|
|
|
|
|
- Added the summonfriend command.
|
|
|
|
|
- Made P_RandomChaseDir() truely random. The only real randomness it had before
|
|
|
|
|
was in deciding whether monsters preferred to go east or southeast.
|
|
|
|
|
|
|
|
|
|
November 20, 2004
|
|
|
|
|
- Fixed: AInventory::BecomeItem() must remove the actor from all the touching
|
|
|
|
|
sector lists. Otherwise, you can get crashes if a floor or ceiling in a
|
|
|
|
|
sector touching the item moves later.
|
|
|
|
|
- Fixed: Patrols only went to the first goal and then got stuck.
|
|
|
|
|
- Fixed: Recurssion when an unloading script tries to change to a different
|
|
|
|
|
map. The map change is already under way, so the script cannot start another
|
|
|
|
|
map change.
|
|
|
|
|
- Moved BasicArmor's PostBeginPlay icon fixing into Tick, so it can cope with
|
|
|
|
|
the "give armor" cheat removing the icon when the player already has armor.
|
|
|
|
|
|
|
|
|
|
November 18, 2004
|
|
|
|
|
- New ACS stuff:
|
|
|
|
|
bool playeringame (int playernumber);
|
|
|
|
|
Returns true if the player [0..7] is in the game and false if not.
|
|
|
|
|
|
|
|
|
|
bool playerisbot (int playernumber);
|
|
|
|
|
Returns true if the player [0..7] is a bot and false if not.
|
|
|
|
|
|
|
|
|
|
script <x> unloading
|
|
|
|
|
{
|
|
|
|
|
...
|
|
|
|
|
}
|
|
|
|
|
Executed by the level just before it unloads because the players are
|
|
|
|
|
about to move to another one. Everything up until the first latent
|
|
|
|
|
function will have a chance to execute. If the script needs to wait,
|
|
|
|
|
it will continue execution when the players return to the map. Since
|
|
|
|
|
this type of script is executed with the equivalent of ACS_Execute
|
|
|
|
|
and not ACS_ExecuteAlways, it can block itself from executing the
|
|
|
|
|
next time the level is unloaded if it hasn't finished with its
|
|
|
|
|
business yet.
|
|
|
|
|
|
|
|
|
|
script <x> (int playernumber) disconnect
|
|
|
|
|
{
|
|
|
|
|
...
|
|
|
|
|
}
|
|
|
|
|
This type of script is executed when a player disconnects in a
|
|
|
|
|
multiplayer game (including bots). THIS SCRIPT IS EXECUTED BY THE
|
|
|
|
|
WORLD, NOT BY THE PLAYER WHO LEFT. By the time the script is run,
|
|
|
|
|
the player is already gone, so you can't do anything to that player.
|
|
|
|
|
The number of the player who left is passed as the only argument to
|
|
|
|
|
this script.
|
|
|
|
|
- Selecting a conversation choice that stays at the same dialogue node no
|
|
|
|
|
longer moves the current selection.
|
|
|
|
|
- Added a gold display when talking to merchants.
|
|
|
|
|
- Fixed: Poison bolts shouldn't kill merchants.
|
|
|
|
|
- Fixed: An ActorMover didn't prevent the renderer from interpolating the
|
|
|
|
|
actor when it was moved onto the path to start off.
|
|
|
|
|
- Fixed: AInterpolationPoint::ScanForLoop() got stuck if the path looped, but
|
|
|
|
|
the initial point wasn't part of the loop.
|
|
|
|
|
- Fixed: Giving an interpolation point the ambush flag in an editor would
|
|
|
|
|
cause it to not join a path.
|
|
|
|
|
- Added Graf Zahl's fix for shootable walls with invalid sector tags that
|
|
|
|
|
some wads use to make things you can break. Also added a parameter to the
|
|
|
|
|
GlassBreak special that you can set to 1 if you don't want it to throw out
|
|
|
|
|
any shards.
|
|
|
|
|
- Fixed: MF3_NOTARGET should only be respected my monsters of the same
|
|
|
|
|
friendliness.
|
|
|
|
|
- Fixed: D'Sparil and the Heresiarch always summoned hostile helpers even if
|
|
|
|
|
they were friendly.
|
|
|
|
|
- Fixed: DCajunMaster::ThinkForMove() needed more NULL checks for the
|
|
|
|
|
player's ready weapon.
|
|
|
|
|
- Fixed: When using the Tome of Power, only the first weapon in a slot could
|
|
|
|
|
be selected with the slot command, because FWeaponSlot::PickWeapon() didn't
|
|
|
|
|
consider the powered-up version as a match for the current weapon.
|
|
|
|
|
- Fixed: If a player is telefragged and drops a weapon (or anything else), it
|
|
|
|
|
can mess up the floor/ceiling determination in P_TeleportMove() thanks to
|
|
|
|
|
the heavy reliance on global variables in the physics code. Those make it
|
|
|
|
|
very much non-reentrant.
|
|
|
|
|
- Fixed: Monsters did not activate player-cross lines when strict checking
|
|
|
|
|
was turned off.
|
|
|
|
|
- Fixed divide by 0 in the Hexen status bar's DrawKeyBar() method when the
|
|
|
|
|
armor slot increments are 0.
|
|
|
|
|
- Changed the ACS random command so you can specify the max and min as either
|
|
|
|
|
parameter. This fixes a divide by 0 when the maximum is one less than the
|
|
|
|
|
minimum (because now the maximum cannot be less than the minimum).
|
|
|
|
|
- Fixed PROP_FLY with SetPlayerProperty.
|
|
|
|
|
- Removed MF_NOBLOCKMAP from IceChunk, IceChunkHead, the Heretic imp chunks,
|
|
|
|
|
Meat, and Junk.
|
|
|
|
|
- Removed LEVELINFO_START_TIME, since it's useless outside of timedemo.
|
|
|
|
|
- Fixed log HUD messages (and print statements) were logged to the console but
|
|
|
|
|
not to the log file.
|
|
|
|
|
- Fixed scrolling bounds when automap rotation is on and follow is off. Issues
|
|
|
|
|
remaining: The grid in rotation mode only works well if follow is on, and
|
|
|
|
|
rotation is relative to the player rather than the center of the screen. I'm
|
|
|
|
|
tempted to just rewrite the whole map package to be more rotation friendly
|
|
|
|
|
(and be more modular so there could be multiple instances on the HUD, as was
|
|
|
|
|
requested a couple of times in the past).
|
|
|
|
|
|
|
|
|
|
November 17, 2004
|
|
|
|
|
- Corrected movement of the automap background when map rotate and follow are
|
|
|
|
|
turned on.
|
|
|
|
|
|
|
|
|
|
November 16, 2004
|
|
|
|
|
- Separated the drawing of HUD messages from the main status bar pass. Now HUD
|
|
|
|
|
messages that are meant to be drawn on top of the status bar are drawn on top
|
|
|
|
|
of the status bar.
|
|
|
|
|
|
|
|
|
|
November 13, 2004
|
|
|
|
|
- Fixed: Dehacked's PatchThing() needs to translate the old damage type flags to
|
|
|
|
|
the new damage type value.
|
|
|
|
|
- Changed AActor::Die() so it doesn't reset the target if the source is NULL.
|
|
|
|
|
- Changed A_CustomBulletAttack() and A_BulletAttack() back to getting their damage
|
|
|
|
|
type from the puff, like they (indirectly) did before.
|
|
|
|
|
- Added division/modulus by zero checks to all the PCD_DIV/MOD* p-codes.
|
|
|
|
|
- New SNDINFO command to deal with several Strife sounds: $singular <sound name>.
|
|
|
|
|
Use this, and only one copy of the sound will play *anywhere*. This is different
|
|
|
|
|
from $limit, which is distance based and can stop currently playing sounds. There
|
|
|
|
|
are actually a lot of singular sounds in Strife. I only chose to make a few of
|
|
|
|
|
them singular, in particular the alarm. TBD: Should new singular sounds cut off
|
|
|
|
|
an already playing copy or not play at all?
|
|
|
|
|
- Klaxon tweaks: Now klaxons clear off the LastHeard property using the same
|
|
|
|
|
recursion that sets it (with P_NoiseAlert).
|
|
|
|
|
- Fixed: G_DoReborn() could only fake as players 5-8 when playing Doom or Heretic.
|
|
|
|
|
- Fixed: P_SpawnMapThing() calculated the player number wrong for player starts > 4.
|
|
|
|
|
- Fixed: AWeapon::AttachToOwner() did not call the status bar's
|
|
|
|
|
ReceivedWeapon method.
|
|
|
|
|
- Fixed: Even though I fixed the A_CallSpecial parsing, I broke its handling.
|
|
|
|
|
|
|
|
|
|
November 5, 2004
|
|
|
|
|
- Corrected the pickup sounds for Strife items.
|
|
|
|
|
- Added the MF3_NORADIUSDMG flag to the Inquisitor so he won't kill
|
|
|
|
|
himself so readily.
|
|
|
|
|
- Fixed: Armorer hair color was wrong. (Cyan instead of gray.)
|
|
|
|
|
- Fixed: Starting the game from a fullscreen console with fullscreen false
|
|
|
|
|
prevented anything from being drawn, becaues the primary surface would be
|
|
|
|
|
lost by the time DDrawFB::PaintToWindow() was reached.
|
|
|
|
|
|
|
|
|
|
November 4, 2004
|
|
|
|
|
- Fixed: The C span drawers all drew 64x64 textures in row-major order
|
|
|
|
|
instead of column-major order. (They were correct for other sizes, though.)
|
|
|
|
|
- Changed the Oracle's spectre (#3) to have MF_SPAWNCEILING and not bob in
|
|
|
|
|
its spawn states. Now it behaves more like the Strife original despite
|
|
|
|
|
being defined even less like it.
|
|
|
|
|
- Increased the opacity of alien spectres to 66%.
|
|
|
|
|
- Fixed: A_ExplodeParms() checked against the size of AttackList instead
|
|
|
|
|
of ExplodeList, and it had the distance and damage type parameters to
|
|
|
|
|
P_RadiusAttack() swapped.
|
|
|
|
|
- Fixed player morphing crashing when using the morphme command in a game
|
|
|
|
|
that doesn't normally have morphed players.
|
|
|
|
|
- Made the Strife burning player more correct: You can run around for a bit
|
|
|
|
|
before collapsing, and then you stop flailing your arms around.
|
|
|
|
|
- Fixed: I forgot to change the prototype for the Soulsphere's Use function,
|
|
|
|
|
so it did nothing.
|
|
|
|
|
- Fixed: The AFourthWeaponPiece class destroyed the fourth weapon after giving
|
|
|
|
|
it to you if weapon stay was off.
|
|
|
|
|
- Fixed: Picking up a torch or light amp while invulnerable cancelled out
|
|
|
|
|
the special colormap for the invulnerability effect.
|
|
|
|
|
- Fixed: In Doom, you didn't raise your weapon at the start of a new game if
|
|
|
|
|
you had neverswitchonpickup on.
|
|
|
|
|
- Added the ChangeSky ACS command so that I can remedy another slight Strife
|
|
|
|
|
problem: The sky on all maps should become gloomy after killing the
|
|
|
|
|
Programmer.
|
|
|
|
|
- Fixed: The post-closing Strife slideshow music should be D_FAST, not D_INTRO.
|
|
|
|
|
- Fixed: The opening Strife slideshow is supposed to play D_INTRO, not D_DARKER.
|
|
|
|
|
- Changed Ceiling_LowerAndCrush so that it uses the same speed for down and
|
|
|
|
|
"up", so crushers that stay down can slow down when they hit something. Fixes
|
|
|
|
|
the Templar crushers on Strife MAP12.
|
|
|
|
|
- Fixed: In Strife, crushing ceilings that don't go back up are supposed to
|
|
|
|
|
go to the floor.
|
|
|
|
|
- Fixed: Strife linetype 180 didn't copy the sector properties.
|
|
|
|
|
- Fixed: Strife instant death sectors were not implemented for the player, and
|
|
|
|
|
the damage done by sector type 4 (strobe and hurt) was wrong.
|
|
|
|
|
|
|
|
|
|
November 3, 2004
|
|
|
|
|
- Fixed: Talking to friendly PCs made them hate you.
|
|
|
|
|
- Fixed: When P_SpawnPlayer() moved a voodoo doll's inventory to the new
|
|
|
|
|
player, it didn't fix the items' Owner links.
|
|
|
|
|
- Fixed: AAmmo::HandlePickup() didn't check for a NULL ReadyWeapon when
|
|
|
|
|
picking up ammo that you had previously run out of.
|
|
|
|
|
- Fixed: New check in PlayerLandedOnThing() prevents both *grunt and *land
|
|
|
|
|
from being played if they are defined as the same sound.
|
|
|
|
|
- Fixed: The minimum velocity P_ZMovement() checks against to decide if your
|
|
|
|
|
view should be squatted should not vary with gravity. Same for grunting in
|
|
|
|
|
PlayerLandedOnThing().
|
|
|
|
|
- Fixed: The Archvile and Boss Brain did not transfer their friendliness.
|
|
|
|
|
- Fixed: Animated door Open/CloseSounds were left uninitialized if the
|
|
|
|
|
definition didn't specify them.
|
|
|
|
|
- Fixed: AMageStaffFX2::SpecialMissileHit() did the wrong damage type.
|
|
|
|
|
- Fixed: Forgot to change the prototype for the Megasphere's Use function.
|
|
|
|
|
|
|
|
|
|
November 2, 2004
|
|
|
|
|
- Added HUDMSG_FADEINOUT style HUD messages.
|
|
|
|
|
- Added the GetLevelInfo ACS command, which can be used to collect information
|
|
|
|
|
before jumping to an intermission-style map.
|
|
|
|
|
- Added support for loading 1, 2, and 4 bit PNG images.
|
|
|
|
|
- Merged in Graf Zahl's customizable animated doors submission.
|
|
|
|
|
- Added the sound effect for Strife's mask powerup.
|
|
|
|
|
- Reimplemented water-breathing with the iron feet.
|
|
|
|
|
- Fixed: Closing doors made frozen corpses disappear instead of shatter.
|
|
|
|
|
- Added fire and disintegration deaths for the Strife player.
|
|
|
|
|
- Removed MF2_ICEDAMAGE, MF2_FIREDAMAGE, and GetMod() from AActor in favor of
|
|
|
|
|
a DamageType property.
|
|
|
|
|
- Fixed: Masked textures visible through multiple skyboxes would be rendered
|
|
|
|
|
multiple times.
|
|
|
|
|
- Fixed: Skybox planes were drawn in front of any masked textures behind them.
|
|
|
|
|
- Fixed: Strife's armor is auto-activated when you pick it up only if you don't
|
|
|
|
|
already have some in your inventory.
|
|
|
|
|
- Fixed: The ACS ClearInventory command should leave undroppable items in place,
|
|
|
|
|
but there is a special exception to zero out the armor slots for a HexenArmor
|
|
|
|
|
item, which is almost the same as removing it.
|
|
|
|
|
|
|
|
|
|
November 1, 2004
|
|
|
|
|
- Fixed: ArtiBoostArmor didn't work in Hexen.
|
|
|
|
|
- Fixed: Hexen players need to start with HexenArmor in their inventory, or else
|
|
|
|
|
they won't get their class-specific armor bonuses until they pick up other armor.
|
|
|
|
|
Since each player must start with HexenArmor, that means I can make a fifth slot
|
|
|
|
|
to hold their class armor and get rid of GetAutoArmorSave(), GetArmorMax(),
|
|
|
|
|
and GetArmorIncrement() and make the armor handling somewhat more homogenous.
|
|
|
|
|
- Disabled left-right aiming when autoaim is 0.
|
|
|
|
|
- Added support for the newer version of the Strife Teaser that everybody but
|
|
|
|
|
me seems to have downloaded.
|
|
|
|
|
- Changed rail handling to be closer to Strife's: If you approach the rail from
|
|
|
|
|
the low side, you can jump "into" the railing. This is still better than
|
|
|
|
|
Strife's approach, which lets you jump into rails from either side. It's needed
|
|
|
|
|
to get out of an area on MAP04, and possible others as well. Unfortunately, it's
|
|
|
|
|
really ugly behavior and will probably be reported as a bug by somebody who
|
|
|
|
|
doesn't know why he got stuck in a rail.
|
|
|
|
|
- Fixed: P_ChangeSwitchTexture() did not set a value for *quest if no switch
|
|
|
|
|
textures were found on the sidedef, so you could get random stat increases in
|
|
|
|
|
Strife by breaking two-sided glass lines if only one side of the line had a
|
|
|
|
|
"switch" texture.
|
|
|
|
|
- Improved the wandering behavior of friendly monsters. Now they use the actual
|
|
|
|
|
chase states instead of the look states, so they animate naturally.
|
|
|
|
|
- Fixed: P_RandomChaseDir() thought angles were sorted in the wrong order, so it
|
|
|
|
|
never picked a random chase direction.
|
|
|
|
|
- Fixed: I forgot to flag the DoomPlayer as friendly.
|
|
|
|
|
- Added the friendly flag for use in DECORATE.
|
|
|
|
|
- Fixed: AWeapon::CreateTossable() let you drop sister weapons independantly from
|
|
|
|
|
each other. It should only create a tossable version of the primary weapon and
|
|
|
|
|
make the other one go "poof."
|
|
|
|
|
- Fixed: Shadow Armor used the same invisibility powerup as Doom. It should be
|
|
|
|
|
a separate one, because Strife doesn't have the fuzz effect.
|
|
|
|
|
- Fixed: Strife uses a LINEHEIGHT of 19 for its menus, not 16 like Doom. There are
|
|
|
|
|
also a few other positional differences between the menus.
|
|
|
|
|
- ZDoom now offers the exact same translation tables as Strife, which change the
|
|
|
|
|
colors for more than just the player's suit.
|
|
|
|
|
- Changed P_RadiusAttack() so that anything that does fire damage does not thrust
|
|
|
|
|
the thing it hurts vertically. This fixes the phosphorous grenades' fire.
|
|
|
|
|
- Fixed: The Strife grenades should have MF3_CANBOUNCEWATER set so they can bounce
|
|
|
|
|
off liquid flats. They're not like Heretic bouncers in this respect.
|
|
|
|
|
- Fixed: Strife liquid flats *do* clip sprites ala Heretic/Hexen. I did not
|
|
|
|
|
know that. That means the StickInWater also needs to have MF2_FLOORCLIP set.
|
|
|
|
|
That also explains why WaterfallSplash doesn't show up in Strife.
|
|
|
|
|
- Fixed: StrifePuff should use the same actor-hit animation as StrifeSpark. They
|
|
|
|
|
only differ by their non-actor-hit animations.
|
|
|
|
|
- Fixed: The surgery kit ought to give you full health, not 100 health.
|
|
|
|
|
- Fixed: Flying mini-missiles used the wrong states from StrifePuff.
|
|
|
|
|
- Fixed: G_PlayerReborn() only gives the default inventory to the first copy of a
|
|
|
|
|
player in a level, which means a voodoo doll can get the inventory, while the
|
|
|
|
|
real player gets nothing. P_SpawnPlayer() must check if the player already had
|
|
|
|
|
an actor spawned for it and if so, transfer the old actor's inventory to the new
|
|
|
|
|
actor.
|
|
|
|
|
- Fixed: R_InitFuzzTable() is the wrong place to initialize fuzzviewheight.
|
|
|
|
|
- Fixed: The "give armor" cheat gave you the wrong armor.
|
|
|
|
|
- Fixed: The Dehacked ammo parser didn't calculate new BackpackAmount and
|
|
|
|
|
BackpackMaxAmount values.
|
|
|
|
|
- Fixed: A_CheckReload() still had AltFire and PrimaryFire swapped.
|
|
|
|
|
- Fixed: The NULL weapon check in P_CheckWeaponFire() was in the wrong spot.
|
|
|
|
|
- Fixed: The give cheat gave you X number of item instances instead of just setting
|
|
|
|
|
the item's Amount field. The same goes for ACS's GiveInventory command.
|
|
|
|
|
|
|
|
|
|
October 30, 2004
|
|
|
|
|
- Fixed: G_StartTravel() should only affect living players. Otherwise, the body of a
|
|
|
|
|
dead player will replace the live body that was spawned on the new level and the
|
|
|
|
|
player will stay dead.
|
|
|
|
|
- Fixed: Strife line type 188 needs to be repeatable so you can cross over it without
|
|
|
|
|
QuestItem16 and then cross over it again later with the item for it to have effect.
|
|
|
|
|
This opens the door to the castle.
|
|
|
|
|
|
|
|
|
|
October 29, 2004
|
|
|
|
|
- Fixed: The idclev cheat needs to call G_StartTravel().
|
|
|
|
|
- Added a BackpackAmount and BackpackMaxAmount to the Ammo definition, so the amount of
|
|
|
|
|
ammo received with a backpack can differ from the amount picked up from a base ammo
|
|
|
|
|
item, and so the max amount can be configured too.
|
|
|
|
|
- Fixed: If you already had enough of something a merchant tried to give you, you would
|
|
|
|
|
get both the "enough" response and the affirmative response.
|
|
|
|
|
- Fixed: The Sigil was draining armor and not just health.
|
|
|
|
|
- Fixed: The Oracle's spectre wouldn't immediately chase after you if you killed the
|
|
|
|
|
Oracle with a dagger, and it wouldn't aggressively attack until you attacked it.
|
|
|
|
|
- Fixed: Strife floater blocking lines were not properly translated.
|
|
|
|
|
- AActor::DropInventory() now clears the MF_NOGRAVITY flag, since several Hexen items
|
|
|
|
|
had the flag set.
|
|
|
|
|
- Fixed: Not coop/deathmatch thing flags in BOOM maps did not work. MBF's friendly flag
|
|
|
|
|
wasn't handled either.
|
|
|
|
|
|
|
|
|
|
October 28, 2004
|
|
|
|
|
- Fixed: The player's inventory was wiped out when switching levels in deathmatch. The
|
|
|
|
|
player needs to be reborn every time they are spawned in a deathmatch game so that
|
|
|
|
|
they can get the default inventory.
|
|
|
|
|
- Fixed: P_ThingProjectile() should set the spawned thing's speed only if it is truely
|
|
|
|
|
a missile.
|
|
|
|
|
- Fixed: FindMostRecentWeapon() failed if a tome-ed weapon was ready.
|
|
|
|
|
- Fixed: AInventory::GoAway() returned false for items that should stay.
|
|
|
|
|
- Fixed: The flags for maplinedef2_t were signed. They were correctly unsigned for
|
|
|
|
|
maplinedef_t.
|
|
|
|
|
- Fixed: Ripper didn't set its death state.
|
|
|
|
|
- Fixed: GoldWandPuff2 should inherit from GoldWandFX1, not GoldWandPuff1.
|
|
|
|
|
- Fixed: AWeapon::CheckAmmo() thought you had enough ammo to use a weapon's alternate
|
|
|
|
|
fire mode if it didn't have an alternate fire. Hence, you could e.g. select the poison
|
|
|
|
|
crossbow right after receiving Strife's crossbow, even if you didn't have any poison
|
|
|
|
|
bolts.
|
|
|
|
|
- Fixed: The StrifePuff had the hit actor and hit wall states swapped.
|
|
|
|
|
- Fixed: APigPlayer::ActivateMorphWeapon() didn't check if you already had a snout.
|
|
|
|
|
- Fixed: The +moveup and +movedown keys only worked under water.
|
|
|
|
|
- Fixed: G_FinishTravel() needs to check for NULL duplicate players, which can happen if
|
|
|
|
|
a start spot doesn't exist for the player on the new map.
|
|
|
|
|
- Fixed: Puzzle items did not define their own use sound.
|
|
|
|
|
- Fixed: Most of the Doom powerups were stackable.
|
|
|
|
|
- Fixed: The fuzzy column drawer did not correctly clip the bottom of the posts to the
|
|
|
|
|
screen bottom of y-doubling was turned on.
|
|
|
|
|
- Fixed: The chainsaw's UpSound was mis-spelled as "weapos/sawup".
|
|
|
|
|
- Fixed: FindMostRecentWeapon() called P_SetPsprite to drop the old PendingWeapon.
|
|
|
|
|
But since it was a PendingWeapon, this meant it wasn't actually visible, so doing so
|
|
|
|
|
would change the weapon sprite. Worse, this function is only processed locally, so
|
|
|
|
|
it could mess up multiplayer and demos. Now A_Raise() checks for a pending weapon and
|
|
|
|
|
starts the current one dropping if it finds one.
|
|
|
|
|
- Added a NULL name check to FFont::FindFont() and FWadCollection::CheckNumForName() to
|
|
|
|
|
fix Daedalus crashing immediately. To fix it for real, the FBehavior constructor needs
|
|
|
|
|
to call UnencryptStrings() before calling FindLanguage(). Otherwise, none of the
|
|
|
|
|
strings are available.
|
|
|
|
|
- Fixed: Weapons you dropped magically had ammo, so you could cheat by dropping your
|
|
|
|
|
weapon and then picking it back up to give yourself more ammo.
|
|
|
|
|
- Fixed: DCanvas::DrawTexture() called NetUpdate() when a menu was open. This is bad
|
|
|
|
|
because it can cause menu keypresses to be processed during the menu's drawer
|
|
|
|
|
function. Specifically, the case that brought the badness of this to my attention
|
|
|
|
|
was the Strife conversation menu. If a choice was made while the menu was being drawn,
|
|
|
|
|
it would alter the data used for drawing the menu, and it could crash. This is probably
|
|
|
|
|
also why the screenshot in the load menu would sometimes disappear after selecting a
|
|
|
|
|
game.
|
|
|
|
|
|
|
|
|
|
October 27, 2004
|
|
|
|
|
- Fixed: AM_drawThings() drew bounding boxes in the wrong locations if am_rotate
|
|
|
|
|
was false.
|
|
|
|
|
- Did some miscellaneous GCC 3.4 cleanup.
|
|
|
|
|
- Moved the project files out of the src directory and into the base directory.
|
|
|
|
|
|
|
|
|
|
October 26, 2004
|
|
|
|
|
- Fixed: AHealth should have a default MaxAmount of 0, not 100, so it maxes out at
|
|
|
|
|
whatever the player's current max health is.
|
|
|
|
|
- Fixed: Using Dehacked to make an ammo-less weapon use ammo left the AmmoUse1
|
|
|
|
|
property at 0.
|
|
|
|
|
- Fixed: A_CallSpecial() parsing was broken.
|
|
|
|
|
- Fixed: The peasants are not all the same speed.
|
|
|
|
|
- Fixed: A_AcolyteDie() was incomplete.
|
|
|
|
|
- Fixed: Light green and blue acolytes are supposed to have 60 health, not 70.
|
|
|
|
|
- Fixed: Changing Dehacked MaxArmor did not update ArmorBonus. Changing Dehacked
|
|
|
|
|
MaxSoulsphere did not update HealthBonus.
|
|
|
|
|
|
|
|
|
|
October 25, 2004
|
|
|
|
|
- Fixed: A_KlaxonBlare() used threshold when it should have used reactiontime.
|
|
|
|
|
- Fixed: The KlaxonWarningLight from Strife should not have its initial tic randomized,
|
|
|
|
|
so all the klaxons in a level can stay synchronized.
|
|
|
|
|
- Fixed: A_ItBurnsItBurns() didn't set the death sound to the burning death sound.
|
|
|
|
|
- Fixed: The "peasant/death" sound no longer links to all three death sounds, just the
|
|
|
|
|
first one, because that's the only one Strife actually played.
|
|
|
|
|
- Fixed: AActor::DropInventory() needs to call P_TryMove() on the dropped item, or
|
|
|
|
|
sector information might not be filled out correctly.
|
|
|
|
|
- Fixed: After changing item dropping to start the item out as not-pickup-able,
|
|
|
|
|
A_Beacon() was no longer able to clear the MF_SPECIAL flag, because AInventory::Tick()
|
|
|
|
|
would set it again. A_Beacon() needs to set DropTime to 0 as well.
|
|
|
|
|
- Fixed: The final frame for ExplosiveBarrel2 was fullbright.
|
|
|
|
|
- Fixed: If a powerup was blinking and you used an item to restore it, APowerup::
|
|
|
|
|
HandlePickup() would restore the powerup without actually using the item.
|
|
|
|
|
- Fixed: AInventory::Tick() and AInventory::CreateTossable() now handle solid items
|
|
|
|
|
(specifically, the Degnin ore).
|
|
|
|
|
- Fixed: ASigil::SpecialDropAction() now gives a Sigil piece to every player in the
|
|
|
|
|
game. Previously, it tried giving it only to whoever the Sigil dropper was
|
|
|
|
|
targetting. If the monster was killed quickly enough, it was possible for it to
|
|
|
|
|
be targetting nothing at all. And there was also the possibility for it to be
|
|
|
|
|
targetting a non-player.
|
|
|
|
|
- Added a NULL player check to AWeapon::AttachToOwner().
|
|
|
|
|
- Added IF_ALWAYSPICKUP for auto-activated items that you can have a maximum of 0 of
|
|
|
|
|
(such as the armor bonus), so you can take them off the map even if you don't really
|
|
|
|
|
need them. AHealth::TryPickup() also uses it for the Doom health bonuses.
|
|
|
|
|
- Fixed: Doom HUD crashed when trying to draw an inventory item without a valid icon.
|
|
|
|
|
- Fixed: ArtiBoostArmor tried to give the player BasicArmor instead of a
|
|
|
|
|
BasicArmorBonus when not playing Hexen.
|
|
|
|
|
- Fixed: A_FireCGun() could crash if the weapon's state was before the first
|
|
|
|
|
attack state.
|
|
|
|
|
- Fixed: Monsters always activated player-cross lines.
|
|
|
|
|
- Changed ArtiInvisibility to give you the newly added PowerGhost instead of
|
|
|
|
|
PowerInvisibility. Now you can use both types of invisibility without being
|
|
|
|
|
restricted by whether or not you are playing Heretic.
|
|
|
|
|
- Fixed: I forgot to make PowerupGiver's EffectTics do anything. Also added
|
|
|
|
|
BlendColor to PowerupGiver at Graf's suggestion.
|
|
|
|
|
- Fixed: I forgot to add IF_PICKUPFLASH for the Speed Boots and Tome of Power.
|
|
|
|
|
- Changed P_DamageMobj() so that spectral entities are subject to non-spectral
|
|
|
|
|
damage if the damage amount is one million or more. This lets P_Massacre()
|
|
|
|
|
kill them.
|
|
|
|
|
- Fixed mobj_statenames[] array in thingdef.cpp
|
|
|
|
|
- Fixed: I forgot to add a case for ADEF_MinMissileChance in infodefaults.cpp.
|
|
|
|
|
|
|
|
|
|
October 21, 2004
|
|
|
|
|
- 2.0.91 time, just so people stop posting the same crash log.
|
|
|
|
|
- Added a pickup delay after dropping, but it still seems to be problematic.
|
|
|
|
|
- Fixed: Classic BEHAVIOR lumps weren't having their scripts sorted.
|
|
|
|
|
- Fixed: P_TestActivateLine() always returned false for SPAC_MCROSS lines if the
|
|
|
|
|
ML_MONSTERSCANACTIVATE line was not set.
|
|
|
|
|
- Fixed: A_Wander() now clears the MF4_INCOMBAT flag, so you can talk to peasants
|
|
|
|
|
after fighting in their vicinity. Strife does not clear this flag there, nor do
|
|
|
|
|
I know if it ever cleared it anywhere.
|
|
|
|
|
- Fixed: AInventory::GoAwayAndDie() left the MF_SPECIAL flag set, so it was possible
|
|
|
|
|
for a player to try to pick up the item in the next tic before it destroyed itself.
|
|
|
|
|
- Fixed: AHealthTraining::TryPickup() ignored its superclass's return value.
|
|
|
|
|
- Fixed: Intermission screen tried to show post-E3 maps in Heretic.
|
|
|
|
|
- Fixed: Now that FWadCollection::FindLump() ignores lumps outside the global
|
|
|
|
|
namespace, skins couldn't be loaded.
|
|
|
|
|
- Fixed: PROP_Weapon_YAdjust used an unsigned byte, so negative yadjusts didn't work.
|
|
|
|
|
- Changed the size boxes around actors in map cheat view into a real feature instead
|
|
|
|
|
of something I quickly threw in for debugging. It's now accessed with am_cheat 3
|
|
|
|
|
and works properly with rotating maps.
|
|
|
|
|
- Fixed: FActorInfo::BuildDefaults() checked ADEF_SkipSuper as a byte instead of
|
|
|
|
|
a word.
|
|
|
|
|
- Fixed: The artifact flash was not cleared from the Raven status bars when the
|
|
|
|
|
last item was used.
|
|
|
|
|
- Fixed: A_CustomBulletAttack tried to use A_CustomMissile instead.
|
|
|
|
|
- Fixed: New flag4 names in thingdef.cpp.
|
|
|
|
|
- Fixed: Cyberdemon was MF4_LONGMELEERANGE instead of MF4_MISSILEMORE.
|
|
|
|
|
- Fixed: Fullscreen inventory bar positions were wrong in Doom.
|
|
|
|
|
- Fixed: Hexen armor was quite broken.
|
|
|
|
|
- Fixed: S_StartSound() no longer tries to play sound ids below 0.
|
|
|
|
|
- Fixed: Terrain splash sounds were initialized to -1 instead of 0.
|
|
|
|
|
|
|
|
|
|
October 20, 2004
|
|
|
|
|
- Time to release 2.0.90, I think?
|
|
|
|
|
- Added some Strife keys to the controls menu.
|
|
|
|
|
- Did more work on the Strife status bar. I think it's feature complete now.
|
|
|
|
|
- Finished reimplementing the Heretic status bar.
|
|
|
|
|
- Made cholycount, mstaffcount, and flamecount local to the weapons that use them
|
|
|
|
|
instead of the players who fire them. The rain1 and rain2 members are now stored
|
|
|
|
|
in the shooter's inventory instead, so it should be safe to use the rain with
|
|
|
|
|
monsters.
|
|
|
|
|
|
|
|
|
|
October 19, 2004
|
|
|
|
|
- Added extrapolation for the Strife popscreen scrolling.
|
|
|
|
|
|
|
|
|
|
October 14, 2004
|
|
|
|
|
- Fixed: Using -warp with an ExMy game and only providing the map number only worked
|
|
|
|
|
if -warp wasn't the last parameter on the command line.
|
|
|
|
|
- Updated some powerup-related code for the new inventory system.
|
|
|
|
|
|
|
|
|
|
October 12, 2004
|
|
|
|
|
- Fixed: Quitting a game and returning to the title screen would not zero the
|
|
|
|
|
palette blend.
|
|
|
|
|
- Fixed: Missiles disappearing on horizon lines were still exploded.
|
|
|
|
|
|
|
|
|
|
October 8, 2004
|
|
|
|
|
- Added a scrolling effect for switching between pages in the keys pop screen.
|
|
|
|
|
|
|
|
|
|
October 6, 2004
|
|
|
|
|
- Fixed: Missiles with MF2_BOUNCE2 set did no normal damage.
|
|
|
|
|
- Added particle blood for the Heretic/Hexen blood functions.
|
|
|
|
|
- Added a fix for negative row offsets to non-power of 2 height textures.
|
|
|
|
|
- Continued my R_FakeFlat() fix from yesterday: It didn't copy the control sector's
|
|
|
|
|
lighting either.
|
|
|
|
|
- LEVEL_SWAPSKIES is now ignored if LEVEL_DOUBLESKY is set.
|
|
|
|
|
- Fixed a possible crash in SC_GetString() if whitespace is the last character(s)
|
|
|
|
|
in a script.
|
|
|
|
|
- Fixed the sliding along diagonal walls behavior in P_HitSlideLine() so that it
|
|
|
|
|
uses correct math. (from code submitted on the forum)
|
|
|
|
|
|
|
|
|
|
October 5, 2004
|
|
|
|
|
- Removed MF_NOBLOCKMAP from ColonGibs, SmallBloodPool, BrainStem, and BloodPool. I
|
|
|
|
|
can't see any good reason for them to have this flag set.
|
|
|
|
|
- Fixed: player_s::Serialize() set PendingWeapon to WP_NOCHANGE. I have no idea why.
|
|
|
|
|
- Added a playing of "minotaur/attack3" to A_MinotaurAtk3().
|
|
|
|
|
- Fixed: R_FakeFlat() did not set FakeSide to FAKED_BelowFloor when viewing a
|
|
|
|
|
fake plane with SECF_CLIPFAKEPLANES and SECF_FAKEFLOORONLY set and the fake floor
|
|
|
|
|
was above the real ceiling.
|
|
|
|
|
- Fixed: DArgs::GatherFiles() would hang on files with unexpected extensions.
|
|
|
|
|
- Autostarting games (i.e. co-op) of Hexen now use the map set as the first map,
|
|
|
|
|
so you can play co-op Deathkings without knowing Deathkings starts on MAP41.
|
|
|
|
|
- Added range checks to C_DoKey(), C_ChangeBinding(), and C_GetBinding().
|
|
|
|
|
- Fixed integer overflow in P_SetSlope() for very extreme slopes.
|
|
|
|
|
- Stopped outputting the exception information to the crash log for an
|
|
|
|
|
EXCEPTION_ACCESS_VIOLATION when run under a pre-NT kernel, because those seem to
|
|
|
|
|
fill it with 0xFF instead of anything meaningful.
|
|
|
|
|
|
|
|
|
|
October 4, 2004
|
|
|
|
|
- Fixed: The mace death ball did full damage to teammates.
|
|
|
|
|
- Fixed: The font translation builders counted the transparent color as a visible
|
|
|
|
|
color and erroneously included it in the calculations, making every range lighter
|
|
|
|
|
than they should have been.
|
|
|
|
|
- Fixed: Giving the player a weapon when they were not already using one would not
|
|
|
|
|
bring the weapon up. (Note: Not bringing the new weapon up if the player is
|
|
|
|
|
already using a weapon is normal behavior.)
|
|
|
|
|
- Fixed: PickNextWeapon() and PickPrevWeapon() crashed when the player had no
|
|
|
|
|
ready weapon.
|
|
|
|
|
- Changed MakeKey to return a value of 0xFFFFFFFF for NULL strings.
|
|
|
|
|
- Changed the centerview command to send a DEM_CENTERVIEW event instead of using the
|
|
|
|
|
ticcmd_t structure to do it. Now it works while the game is paused.
|
|
|
|
|
- Changed particle visibility calculations so they use r_SpriteVisibility instead of
|
|
|
|
|
a separate variable pre-multiplied by 2. So now there is no r_ParticleVisibility
|
|
|
|
|
to overflow.
|
|
|
|
|
- Removed the 3-digit restriction on large fullscreen HUD numbers.
|
|
|
|
|
- Fixed: G_LoadGame() did not check for a NULL name.
|
|
|
|
|
- Added the -nojoy command line parameter to disable the enumeration of joysticks,
|
|
|
|
|
effectively disabling joysticks regardless of the use_joystick cvar.
|
|
|
|
|
- Reduced the maximum FOV from 175 to 170.
|
|
|
|
|
- New: With the (non-overlayed) automap on, a cut-down rendering process is performed
|
|
|
|
|
so that the automap can update while you move around.
|
|
|
|
|
- Fixed the switch and animation parsers so they can use overridden textures.
|
|
|
|
|
- Changed the warp command so that it gets sent across the loopback device.
|
|
|
|
|
- Changed the default item respawning behavior so that the dmflag is observed in all
|
|
|
|
|
multiplayer games, not just deathmatch.
|
|
|
|
|
- Fixed: Thing_Projectile did not set the projectile's speed.
|
|
|
|
|
- Fixed: The banishment device did not work on non-monsters. Normally, that's okay,
|
|
|
|
|
but it didn't work on players either.
|
|
|
|
|
- Fixed: Ambient sounds in Doom-format maps could prevent players from spawning.
|
|
|
|
|
- Fixed: The scripted version of Scroll_Texture_Both now checks to make sure the
|
|
|
|
|
specified line side is valid.
|
|
|
|
|
- After P_SetupLevel() calls P_LoadThings(), it now sets the healths of the players
|
|
|
|
|
to match their actors, in case their voodoo dolls were were fragged during the
|
|
|
|
|
spawn process. (Plutonia MAP06)
|
|
|
|
|
- FindShortestTextureAround() and FindShortestUpperAround() now return the height of
|
|
|
|
|
the null texture if none of the sector's side have a corresponding texture.
|
|
|
|
|
- Changed the minotaur drops so that (1) Minotaur always drops and (2) MinotaurFriend
|
|
|
|
|
never drops.
|
|
|
|
|
- Added a dummy actor with doomednum 32000, so Doom Builder's camera won't show up
|
|
|
|
|
in maps.
|
|
|
|
|
- Added a minimum screen size of 320x200 to the Win32Video mode enumerator.
|
|
|
|
|
|
|
|
|
|
September 29, 2004
|
|
|
|
|
- Removed the bStaticName texture flag.
|
|
|
|
|
- Added support for autoactivating items with a MaxAmount of 0. This lets me use the
|
|
|
|
|
same armor classes for Strife (which can stack armor) and Doom/Heretic (which cannot
|
|
|
|
|
stack).
|
|
|
|
|
|
|
|
|
|
September 28, 2004
|
|
|
|
|
- Merged in my the old Linux changes I made just after releasing 2.0.63.
|
|
|
|
|
|
|
|
|
|
September 7, 2004
|
|
|
|
|
- Stopped "*** SOUND DEBUG INFO ***"'s flashing.
|
|
|
|
|
- Changed the default resolution from 320x200 to 640x480.
|
|
|
|
|
- Added some sound precaching now. Sounds that are stored in an Actor's members
|
|
|
|
|
are now loaded at level load time, and those that aren't are unloaded. Is this
|
|
|
|
|
enough or should I also scan scripts for strings that could be sounds?
|
|
|
|
|
- Fixed a bug I added when I fixed the palette scrambling just after switching to
|
|
|
|
|
fullscreen mode. The WM_PALETTECHANGED message could be received during a drawing
|
|
|
|
|
operation, but it was still handled immediately anyway. So after doing that, the
|
|
|
|
|
screen would no longer be locked, and drawing operations would be referencing a
|
|
|
|
|
NULL pointer. Now the reosurce freeing and restoring waits until the next Lock call.
|
|
|
|
|
|
|
|
|
|
August 31, 2004
|
|
|
|
|
- Fixed: The vampiric mode of the serpent staff brought you down to 100 health if you
|
|
|
|
|
were over it.
|
|
|
|
|
|
|
|
|
|
August 25, 2004
|
|
|
|
|
- Fixed: PIT_CeilingRaise would move overlapping things that did not have MF2_PASSMOBJ
|
|
|
|
|
set.
|
|
|
|
|
- Fixed: Selecting an episode not present in the shareware Heretic told you you needed
|
|
|
|
|
to buy Doom.
|
|
|
|
|
- Fixed: PTR_UseTraverse didn't consider ML_BLOCKEVERYTHING lines to be blocking.
|
|
|
|
|
- Fixed: PTR_AimTraverse didn't consider ML_BLOCKEVERYTHING lines to be blocking.
|
|
|
|
|
- Fixed: After pressing +use to load a save game after you die, +use would still be
|
|
|
|
|
down after the load finished, and you could open doors immediately. Nasty if there
|
|
|
|
|
was some mean thing behind the door all set to kill you.
|
|
|
|
|
- Fixed: Sector special transferring moving floors also copied a sector's secret flag.
|
|
|
|
|
- Changed the player setup menu to use the arrow cursor instead of the skull cursor.
|
|
|
|
|
- Changed FWarpTexture::MakeTexture() to allocate a temporary buffer instead of using
|
|
|
|
|
a fixed sized 256-byte one.
|
|
|
|
|
- Changed sprite flipping so it flips the sprite's left offset too.
|
|
|
|
|
- Fixed: You could use items on the intermission screens between levels.
|
|
|
|
|
- Changed the ACS thingsound command to use CHAN_AUTO like the other ACS functions.
|
|
|
|
|
- Fixed: Flying things could get stuck inside rising floors.
|
|
|
|
|
|
|
|
|
|
August 14, 2004
|
|
|
|
|
- Fixed sign problms with door light tags.
|
|
|
|
|
- Fixed: PIT_CheckOnmobjZ()'s "under thing" check used < instead of <=. This
|
|
|
|
|
is why falling stacks of monsters would get stuck and be unable to move.
|
|
|
|
|
|
|
|
|
|
August 10, 2004
|
|
|
|
|
- Added support for drawing masked and translucent flats that are part of
|
|
|
|
|
a stack. The amount of translucency is controlled by the first argument
|
|
|
|
|
of the 9077 and 9078 things. At the moment, this is only for unsloped flats.
|
|
|
|
|
|
|
|
|
|
July 29, 2004
|
|
|
|
|
- Added checks in AAmbientSound::(De)Activate so that you can't activate it
|
|
|
|
|
when it's already activated or deactivate it when it's already deactivated.
|
|
|
|
|
- Fixed: addmenukey did not ensure that the ControlsMenu.items pointed to the
|
|
|
|
|
first entry of CustomControlsItems, so if you added too many controls and the
|
|
|
|
|
array needed to resize, the ControlsMenu would no longer point to valid data.
|
|
|
|
|
- Did some fullscreen palette work now that I somehow ended up with a program
|
|
|
|
|
that _always_ blows up my palette within a second of switching to fullscreen
|
|
|
|
|
mode. Now when the game receives WM_PALETTECHANGED messages from other windows
|
|
|
|
|
while it's fullscreen, it immediately queues up a palette update event to
|
|
|
|
|
undo what the other window did. Other programs shouldn't be messing with
|
|
|
|
|
the palette when they don't even have the focus, but this obviously doesn't
|
|
|
|
|
stop them from doing it anyway. :-( Hopefully, this makes vid_palettehack
|
|
|
|
|
obsolete. Also added vid_showpalette cvar to draw the palette to the screen
|
|
|
|
|
for debugging purposes. Thanks to that, I can see that the first and last 10
|
|
|
|
|
colors are being kept at the standard system palette colors after some other
|
|
|
|
|
program alters the palette in fullscreen mode, and no amount of
|
|
|
|
|
IDirectDrawPalette::SetEntries() calls will change them. I need to release
|
|
|
|
|
and recreate my surfaces and palette, or I won't be able to touch them.
|
|
|
|
|
- Added separate rgamma, ggamma, and bgamma cvars to control the gamma of
|
|
|
|
|
individual color components in fullscreen mode. These are multiplied to
|
|
|
|
|
with the gamma cvar, so that cvar still controls the overall gamma. I need
|
|
|
|
|
this because my monitor is extra green, and the drivers don't gamma adjust
|
|
|
|
|
paletted displays for me.
|
|
|
|
|
|
|
|
|
|
July 28, 2004
|
|
|
|
|
- Stopped using FSOUND_Sample_Upload for everything. It seems to be even more
|
|
|
|
|
broken with the latest FMOD.
|
|
|
|
|
|
|
|
|
|
July 26, 2004
|
|
|
|
|
- Added a NULL pointer check to the main P_TraceBleed function that takes a
|
|
|
|
|
target, because D-ONAHD can cause this to happen some times when the imps
|
|
|
|
|
shoot their BFGs in A_BFGSpray. So linetarget also gets copied to a local
|
|
|
|
|
variable before being used in A_BFGSpray, since P_DamageMobj apparently can
|
|
|
|
|
change it.
|
|
|
|
|
- Updated the FakePickup and DehackedPickup classes so that they work with the
|
|
|
|
|
new inventory system.
|
|
|
|
|
- Added coop starts 5-8 for Strife because they're on the Bishop's Tower map
|
|
|
|
|
for some reason.
|
|
|
|
|
- Finally added the special deathmatch logic for the enemy-finding used by
|
|
|
|
|
rebels spawned from a teleporter beacon.
|
|
|
|
|
|
|
|
|
|
July 22, 2004
|
|
|
|
|
- Fixed the default Heretic MAPINFO: The episode 5 maps are supposed to play the
|
|
|
|
|
music from episode 2 (not 1), and the episode 6 maps didn't have any music at
|
|
|
|
|
all.
|
|
|
|
|
- Fixed: The Heretic ambient sounds were off by one.
|
|
|
|
|
- Changed the default for opl_freqeuncy to 49716, since that's the rate the
|
|
|
|
|
chip actually played at in SoundBlaster/AdLib cards, and the emulator performs
|
|
|
|
|
very poorly when it needs to downsample. Also added new OPL frequencies to
|
|
|
|
|
choose from in the menu.
|
|
|
|
|
- Fixed: OPLmusicBlock::ServiceStream could crash on non-looping songs, because
|
|
|
|
|
the return value FALSE was never passed along to tell FMOD to stop the stream.
|
|
|
|
|
|
|
|
|
|
July 19, 2004
|
|
|
|
|
- Changed DDrawFB::LockSurf so that a result of DDERR_UNSUPPORTEDMODE when
|
|
|
|
|
trying to recreate a surface is non-fatal. The game should now be able to
|
|
|
|
|
survive a screen saver and power suspend.
|
|
|
|
|
- Reimplemented the key display on Doom's status bar.
|
|
|
|
|
|
|
|
|
|
July 16, 2004
|
|
|
|
|
- Reimplemented the Hexen status bar's key bar. Also improved the status bar so
|
|
|
|
|
that it can show ammo from other games.
|
|
|
|
|
- Fixed the ammo and key displays for Heretic's status bar. Plus, now Heretic's
|
|
|
|
|
status bar will properly update when you lose a key, which it didn't before.
|
|
|
|
|
- Reimplemented the invulnerability powerup.
|
|
|
|
|
|
|
|
|
|
July 15, 2004
|
|
|
|
|
- Fixed: Morphing a monster and then using the kill monsters cheat would crash
|
|
|
|
|
because the original unmorphed version would be destroyed, then when the
|
|
|
|
|
morphed one died, it tried to destroy the original again, because the
|
|
|
|
|
pointer hadn't been set NULL yet. Since the actual crash is from unlinking the
|
|
|
|
|
actor twice, AActor::Destroy() now sets MF_NOSECTOR and MF_NOBLOCKMAP after
|
|
|
|
|
unlinking an actor.
|
|
|
|
|
- Fixed: Trying to use "-" as a sky with MBF's 271/272 linetypes crashed. Now
|
|
|
|
|
it ignores the control line and just draws a normal sky.
|
|
|
|
|
- Fixed: G_DoReborn() needs to do a complete new game, not just a reload of the
|
|
|
|
|
current map, if the player is dead and wants to respawn without a most recent
|
|
|
|
|
save.
|
|
|
|
|
- Changed FWadCollection::FindLump() so that it only returns lumps that are in
|
|
|
|
|
the global namespace. Now it won't return lumps that got moved into a skin
|
|
|
|
|
namespace. On a related note, FWadCollection::SkinHack() now prints a warning
|
|
|
|
|
when it thinks it finds a skin wad with maps in it.
|
|
|
|
|
- Fixed: The "you are here" marks on Heretic's inter-level maps were no longer
|
|
|
|
|
drawn.
|
|
|
|
|
- Updated to FMOD 3.73.
|
|
|
|
|
|
|
|
|
|
July 14, 2004
|
|
|
|
|
- Moved the full-screen HUD coordinate logic out of FBaseStatusBar and into
|
|
|
|
|
DCanvas::DrawTexture. This is so that powerups can draw their status icons
|
|
|
|
|
themselves without needing to hook into the status bar.
|
|
|
|
|
- Reimplemented the Tome of Power.
|
|
|
|
|
- Removed DCanvas::DrawPageBlock().
|
|
|
|
|
|
|
|
|
|
July 13, 2004
|
|
|
|
|
- Fixed positioning of ML_DONTPEGBOTTOM for lower textures. Putting a sky
|
|
|
|
|
ceiling on both sides of the line always makes unpegged positioning
|
|
|
|
|
relative to the back sector's ceiling, not just when the back ceiling is
|
|
|
|
|
above the front ceiling.
|
|
|
|
|
- Fixed: Saving a game would momentarily stop floatbobbers from bobbing.
|
|
|
|
|
Since actors have a FloatBobPhase member, their height doesn't need to be
|
|
|
|
|
adjusted when serializing them. (However, since the adjustment just gets
|
|
|
|
|
undone, I'm not sure why it was a problem.)
|
|
|
|
|
- Fixed 16-rotation sprites so that the rotation boundaries are where you would
|
|
|
|
|
expect them to be.
|
|
|
|
|
- Re-Fixed: CT_Drawer could try drawing the scoreboard when deathmatch is
|
|
|
|
|
true, but you hadn't started a game yet.
|
|
|
|
|
- Added the inverse video flash when firing the Sigil.
|
|
|
|
|
- I don't know why the Oracle's spectre is able to teleport across its
|
|
|
|
|
monster blocking lines, so I've given it the MF3_NOBLOCKMONST flag.
|
|
|
|
|
- Translucency of things in Strife has been corrected. Strife uses 25%/75%
|
|
|
|
|
translucency. Walls are 75% and it's flipped to 25% for sprites. However,
|
|
|
|
|
the spectres are really hard to see, so I've given them 33% translucency.
|
|
|
|
|
- Added genuine Strife falling damage. It is extremely unforgiving, so you'd
|
|
|
|
|
better try not to fall too far while playing Strife.
|
|
|
|
|
- Added the yellow and red colors for the Strife health bar when your health
|
|
|
|
|
drops to 20 and 10 respectively.
|
|
|
|
|
|
|
|
|
|
July 12, 2004
|
|
|
|
|
- Finished a play through of Strife, from beginning to end. (Woohoo! It works!)
|
|
|
|
|
Now to finish the things that aren't quite right...
|
|
|
|
|
- Miscellanoues Strife bug fixing.
|
|
|
|
|
|
|
|
|
|
July 10, 2004
|
|
|
|
|
- The eight SPAC type has now been assigned: SPAC_PTOUCH, for when projectiles
|
|
|
|
|
either impact or cross a line. Strife line type 182 needs this.
|
|
|
|
|
|
|
|
|
|
July 9, 2004
|
|
|
|
|
- Miscellaneous Strife fixing.
|
|
|
|
|
- Better support for not having a ready weapon at all.
|
|
|
|
|
- Changed the Sigil to use the normal weapon sprite instead of the flash
|
|
|
|
|
sprite to show how many pieces you have.
|
|
|
|
|
|
|
|
|
|
July 8, 2004
|
|
|
|
|
- Fixed: Interpolations were not cleared when loading a brand-new level.
|
|
|
|
|
- Added support for snesapu.dll 2.0, which happened to be as simple as
|
|
|
|
|
changing the version check, since none of the changes from 1.01 affect
|
|
|
|
|
the functions I use.
|
|
|
|
|
|
|
|
|
|
July 7, 2004
|
|
|
|
|
- "Fixed:" Missiles that moved perfectly vertical would do no damage. Now
|
|
|
|
|
missiles without any x/y velocity are given a very small x/y velocity so
|
|
|
|
|
that they are not quite moving vertical.
|
|
|
|
|
- Added the GetSigilPieces() ACS command, which returns the number of Sigil
|
|
|
|
|
pieces the activator has obtained.
|
|
|
|
|
- Added a third parameter to Teleport_NewMap that, when set to TRUE, will
|
|
|
|
|
cause the player to keep their current facing when they move to the new map.
|
|
|
|
|
- Added the Hexen intermission text between hubs that I had forgotten about.
|
|
|
|
|
- Added map redirects, so if a player is carrying a particular item, they go
|
|
|
|
|
to a different map instead. (Used for Strife maps 3 and 7.)
|
|
|
|
|
|
|
|
|
|
July 6, 2004
|
|
|
|
|
- Added support for the teaser version of Strife. It seems to be based on an
|
|
|
|
|
older version of Strife than the one that was released to retail, so the
|
|
|
|
|
mobjinfo list is different, the dialogues are slightly different, and some
|
|
|
|
|
items have different names. The Teaser is fully playable.
|
|
|
|
|
|
|
|
|
|
June 30, 2004
|
|
|
|
|
- Added Strife's fire and disruptor deaths.
|
|
|
|
|
- Corrected the missile attack chances for the Strife monsters.
|
|
|
|
|
|
|
|
|
|
June 26, 2004
|
|
|
|
|
- Added Strife's breaking glass.
|
|
|
|
|
|
|
|
|
|
June 25, 2004
|
|
|
|
|
- Added a fix for Strife's LASERB01 texture. The Doom renderer ignored patch
|
|
|
|
|
y offsets on masked mid-textures, so it got drawn as if the beam was at the
|
|
|
|
|
top of the texture instead of the bottom. The "fix" is to adjust the rowoffset
|
|
|
|
|
of the sides that it appears on.
|
|
|
|
|
|
|
|
|
|
June 24, 2004
|
|
|
|
|
- Made some corrections to the Strife blood and bullet puffs.
|
|
|
|
|
- Removed the global variable PuffType. It's now a parameter to those
|
|
|
|
|
functions that use it. HitPuffType is also gone, because giving a puff a
|
|
|
|
|
CrashState can make the same distinction.
|
|
|
|
|
- Added Strife's scanner.
|
|
|
|
|
- Added Strife's targeter, although it's kind of a useless item when the
|
|
|
|
|
player can just go to the options menu and turn on a crosshair.
|
|
|
|
|
|
|
|
|
|
June 23, 2004
|
|
|
|
|
- Added th IF_INVBAR flag so that only selected items show up on the inventory
|
|
|
|
|
bar.
|
|
|
|
|
|
|
|
|
|
June 21, 2004
|
|
|
|
|
- Removed the soundtarget sector property and made it an actor property. Now
|
|
|
|
|
newly spawned actors won't wake up if you happened to make noise near their
|
|
|
|
|
spawn point earlier.
|
|
|
|
|
|
|
|
|
|
June 20, 2004
|
|
|
|
|
- Fixed: A_FreezeDeathChunks could divide by zero for very small actors.
|
|
|
|
|
- Fixed: The EndPic "map" in mapinfo didn't work. It always tried to show the
|
|
|
|
|
graphic "endseq" instead of what was specified in MAPINFO.
|
|
|
|
|
|
|
|
|
|
June 19, 2004
|
|
|
|
|
- Finished adding all of Strife's slideshows.
|
|
|
|
|
|
|
|
|
|
June 18, 2004
|
|
|
|
|
- Removed F_DrawPatchCol, since DrawTexture can do its own clipping.
|
|
|
|
|
|
|
|
|
|
June 15, 2004
|
|
|
|
|
- Added the Sigil, except for the inverse colors when shooting it. Does anyone
|
|
|
|
|
else think its fourth mode really weak compared to the third and fifth?
|
|
|
|
|
|
|
|
|
|
June 10, 2004
|
|
|
|
|
- Moved the chicken speed mods out of P_MovePlayer and into
|
|
|
|
|
AChickenPlayer::TweakSpeeds.
|
|
|
|
|
- Added a check for NULL cameras to the very end of CT_Drawer() where it checks
|
|
|
|
|
to see if the scoreboard should be shown.
|
|
|
|
|
- Fixed: Trying to activate some manual types of specials would activate every
|
|
|
|
|
tag 0 sector in the map if the back sector was already moving.
|
|
|
|
|
- Added support for paths with . in them to DArgs::GatherFiles when it checks
|
|
|
|
|
if a file was specified with an extension or not.
|
|
|
|
|
- Added support for \ as a path seperator in DefaultExtension on Win32.
|
|
|
|
|
- Added the vid_displaybits cvar to control 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't support that or work better
|
|
|
|
|
with non-8-bit displays.
|
|
|
|
|
- The vid_attachedsurfaces cvar is now ignored unless you are running NT 4.
|
|
|
|
|
|
|
|
|
|
June 9, 2004
|
|
|
|
|
- Fixed: FDynamicColormap::BuildLights() did not check for a NULL Maps pointer.
|
|
|
|
|
- Fixed: Masked textures and sprites were not drawn correctly inside nested
|
|
|
|
|
skyboxes because they would be drawn in the front skybox before drawing the
|
|
|
|
|
second skybox, so the second skybox would cover up the ones in the first
|
|
|
|
|
skybox.
|
|
|
|
|
|
|
|
|
|
June 2, 2004
|
|
|
|
|
- Removed all the other network commands related to managing weapon slots.
|
|
|
|
|
Determination of which weapon to switch to is now done entirely on the
|
|
|
|
|
local machine and sent using DEM_INVUSE, so the slots don't need to be
|
|
|
|
|
replicated to the other players.
|
|
|
|
|
|
|
|
|
|
May 28, 2004
|
|
|
|
|
- Removed DEM_WEAPSEL as part of the inventory rewrite. DEM_INVUSE works
|
|
|
|
|
instead. This also means the weapon console command is no more.
|
|
|
|
|
|
|
|
|
|
May 18, 2004
|
|
|
|
|
- Added division/modulus by zero checks to the ACS VM.
|
|
|
|
|
- Implemented the ACS_ExecuteWithResult special so the Strife specials
|
|
|
|
|
implemented in ACS can function correctly.
|
|
|
|
|
|
|
|
|
|
May 17, 2004
|
|
|
|
|
- Removed the TeleportSide global variable and made it a line special parameter,
|
|
|
|
|
which it should have been from the very beginning.
|
|
|
|
|
- Increased the limit for local script variables from 20 to 65535.
|
|
|
|
|
|
|
|
|
|
May 11, 2004
|
|
|
|
|
- Added Strife's delayed damage sectors.
|
|
|
|
|
- M_ActivateMenuInput now resets the state of the game buttons, so +use will
|
|
|
|
|
work right away after talking to somebody.
|
|
|
|
|
- Added another validity check to FPatchTexture::MakeTexture to make sure the
|
|
|
|
|
column doesn't go past the end of the patch when fed bad data.
|
|
|
|
|
- Added Strife's merchant conversation animations.
|
|
|
|
|
|
|
|
|
|
May 7, 2004
|
|
|
|
|
- Added Strife's animated doors.
|
|
|
|
|
|
|
|
|
|
May 6, 2004
|
|
|
|
|
- Added support for clipping midtextures on all lines, because I think Strife
|
|
|
|
|
looks better that way. (Even though it looks like Strife does not do this.)
|
|
|
|
|
- Added Strife's railing and floater-blocking line flags.
|
|
|
|
|
- Add Strife's status bar popup screens.
|
|
|
|
|
|
|
|
|
|
May 5, 2004
|
|
|
|
|
- Moved artifacts to the new inventory system.
|
|
|
|
|
|
|
|
|
|
May 1, 2004
|
|
|
|
|
- Fixed: Build palette loading was unreliable after adding desaturation support
|
|
|
|
|
to Sector_SetColor.
|
|
|
|
|
|
|
|
|
|
April 30, 2004
|
|
|
|
|
- Did some work on Strife's status bar.
|
|
|
|
|
|
|
|
|
|
April 25, 2004
|
|
|
|
|
- Added Strife's title sequence.
|
|
|
|
|
|
|
|
|
|
April 21, 2004
|
|
|
|
|
- Added Degnin Ore.
|
|
|
|
|
|
|
|
|
|
April 20, 2004
|
|
|
|
|
- Added lots of Strife line specials, ~30 done entirely through ACS.
|
|
|
|
|
- New ACS p-codes:
|
|
|
|
|
PCD_CASEGOTOSORTED: Faster replacement for PCD_CASEGOTO.
|
|
|
|
|
PCD_LSPEC5RESULT: Same as PCD_LSPEC5, but the result of the special's
|
|
|
|
|
execution is left on the stack.
|
|
|
|
|
- New ACS internal functions:
|
|
|
|
|
int GetLineRowOffset ();
|
|
|
|
|
Returns the front side's rowoffset for the activating line.
|
|
|
|
|
|
|
|
|
|
fixed GetActorFloorZ (int tid);
|
|
|
|
|
Returns the highest floor point underneath the actor.
|
|
|
|
|
|
|
|
|
|
int GetActorAngle (int tid);
|
|
|
|
|
Returns the actor's angle. 65536 is 360 degrees.
|
|
|
|
|
|
|
|
|
|
fixed GetSectorFloorZ (int tag, int x, int y);
|
|
|
|
|
Returns the sector height (fixed point) at coordinates (x, y).
|
|
|
|
|
(x, y) are not fixed-point, so you should specify (32, 16)
|
|
|
|
|
instead of (32.0, 16.0).
|
|
|
|
|
|
|
|
|
|
fixed GetSectorCeilingZ (int tag, int x, int y);
|
|
|
|
|
Same as GetSectorFloorZ, except for ceilings.
|
|
|
|
|
|
|
|
|
|
void SetResultValue (int value);
|
|
|
|
|
Set's a script's "result value." Needs to be used before any
|
|
|
|
|
functions that make the script wait. ACS_ExecuteResult and
|
|
|
|
|
ACS_LockedExecuteResult will return this value.
|
|
|
|
|
|
|
|
|
|
April 12, 2004
|
|
|
|
|
- Changed the respawnmonsters flag into an int that holds the respawn
|
|
|
|
|
interval, since Strife respawns at 16 second intervals, and Doom uses
|
|
|
|
|
12 second intervals.
|
|
|
|
|
|
|
|
|
|
April 11, 2004
|
|
|
|
|
- Added Strife's Templar.
|
|
|
|
|
|
|
|
|
|
April 10, 2004
|
|
|
|
|
- Added Strife's Loremaster and Stalker.
|
|
|
|
|
|
|
|
|
|
April 9, 2004
|
|
|
|
|
- Added Strife's ceiling turret and fixed the alarm klaxon.
|
|
|
|
|
- Added the Strife quest items.
|
|
|
|
|
|
|
|
|
|
April 8, 2004
|
|
|
|
|
- Converted keys to the new inventory system and added Strife's.
|
|
|
|
|
|
|
|
|
|
April 7, 2004
|
|
|
|
|
- Added Strife door sounds.
|
|
|
|
|
|
|
|
|
|
April 6, 2004
|
|
|
|
|
- Added Macil.
|
|
|
|
|
|
|
|
|
|
April 2, 2004
|
|
|
|
|
- Converted the Heretic and Hexen artifacts to the new inventory system.
|
|
|
|
|
|
|
|
|
|
March 31, 2004
|
|
|
|
|
- Converted Doom's powerups to the new inventory system.
|
|
|
|
|
|
|
|
|
|
March 30, 2004
|
|
|
|
|
- Converted armor and health to the new inventory system.
|
|
|
|
|
|
|
|
|
|
March 26, 2004
|
|
|
|
|
- Fixed: The mauler's secondary fire had the wrong states.
|
|
|
|
|
- Started transitioning over to the Unreal-like inventory system, starting
|
|
|
|
|
with the easiest first: Puzzle items (since they basically just sit in your
|
|
|
|
|
inventory until used), then ammo and the backpack.
|
|
|
|
|
- Made the dialogues prettier with shadow boxes behind the text.
|
|
|
|
|
|
|
|
|
|
March 23, 2004
|
|
|
|
|
- More dialogue work: Now you can pick responses to the things NPCs tell you
|
|
|
|
|
and drive the conversations along further. You can also get items from the
|
|
|
|
|
responses. However, item checks aren't in yet, so no item-specific dialogue
|
|
|
|
|
branches work.
|
|
|
|
|
- P_NoiseAlert now sets a new object flag, OF_IsSoundTarget, so that
|
|
|
|
|
soundtarget clearing will work with non-players.
|
|
|
|
|
- Changed P_NoiseAlert( self, self->target ) in A_AlertMonsters() to
|
|
|
|
|
P_NoiseAlert( self->target, self ), so monsters will target the player
|
|
|
|
|
who shot the projectile instead of the projectile itself.
|
|
|
|
|
|
|
|
|
|
March 22, 2004
|
|
|
|
|
- Started work on the Strife conversation system. You can now +use things and
|
|
|
|
|
they will say something to you, but you can't do any sort of conversing yet.
|
|
|
|
|
Plus, Strife monsters now drop stuff when they die.
|
|
|
|
|
- Added autoloading of voices.wad when playing Strife.
|
|
|
|
|
|
|
|
|
|
March 17, 2004
|
|
|
|
|
- Changed COMPATF_NOTOSSDROPS behavior so that the items spawn at the monster's
|
|
|
|
|
feet instead of on the floor.
|
|
|
|
|
- Changed the maximum thrust in P_DamageMobj() to 10*FRACUNIT. (Previously, it
|
|
|
|
|
was only clamped to this if it was so large that it went negative.)
|
|
|
|
|
- Added AmmoPics for the Strife ammo types.
|
|
|
|
|
- Fixed: The phosphorus grenades used the HE grenades pickup message.
|
|
|
|
|
- Added some code from P_SpawnProjectile to P_Thing_Projectile so that it can
|
|
|
|
|
support floor/ceiling huggers.
|
|
|
|
|
|
|
|
|
|
March 13, 2004
|
|
|
|
|
- Fixed: ARealGib's PROP_SpawnState was accidentally deleted.
|
|
|
|
|
- Fixed: P_Thing_Projectile always returned false when spawning non-missiles,
|
|
|
|
|
and when spawning missiles, only returned the status of the last missile.
|
|
|
|
|
- Fixed: P_SpawnPlayerMissile used the original angle instead of the aimed
|
|
|
|
|
angle to rotate the projectile in the X-Y plane.
|
|
|
|
|
- Fixed: AHolySpirit::SpecialBlastHandling() compared "< BLAST_FULLSTRENGTH"
|
|
|
|
|
instead of "== BLAST_FULLSTRENGTH".
|
|
|
|
|
- Changed the parser for SS_CMD_VOLUME in s_sndseq.cpp to use a floating point
|
|
|
|
|
division instead of an integer division. (Whoops!)
|
|
|
|
|
- Fixed: Pressing backspace on a file in the save game menu and then answering
|
|
|
|
|
"no" when asked if you really want to delete the file would mess up the
|
|
|
|
|
savegame menu.
|
|
|
|
|
- Removed the WeaponNames array from p_acs.cpp, because wpnlev1info provides
|
|
|
|
|
the same information.
|
|
|
|
|
|
|
|
|
|
March 8, 2004
|
|
|
|
|
- Removed WIF_FIREDAMAGE, as it was unused.
|
|
|
|
|
- Changed AWeapon::OldStyleID() so that it is no longer virtual. Instead, it
|
|
|
|
|
searches the wpnlev1info array to find the info that points to that class.
|
|
|
|
|
- Replaced A_CallSpecial and A_Script keywords in the thingdef parser with
|
|
|
|
|
support for using specials by name. (e.g. Instead of using
|
|
|
|
|
A_CallSpecial (80,...) or A_Script (...) you use ACS_ExecuteAlways (...)
|
|
|
|
|
instead.
|
|
|
|
|
- Changed SC_ScriptError to be varargs, so passing parameters for the format
|
|
|
|
|
string is more straight-forward.
|
|
|
|
|
|
|
|
|
|
March 3, 2004
|
|
|
|
|
- Eliminated the CustomActor class by moving some of its data into class
|
|
|
|
|
metadata and the rest of it into function parameters. Now custom actors
|
|
|
|
|
can properly derive from built-in classes.
|
|
|
|
|
- Replaced A_Explode in thingdef.cpp with A_ExplodeParms, so the explosion
|
|
|
|
|
parameters can be a property of the state instead of a property of the
|
|
|
|
|
actor.
|
|
|
|
|
- Renamed __BIG_ENDIAN__ to WORDS_BIGENDIAN to match autoconf's name for the
|
|
|
|
|
#define.
|
|
|
|
|
|
|
|
|
|
March 2, 2004
|
|
|
|
|
- Added metadata support for TypeInfo, so classes can carry metadata around
|
|
|
|
|
with them. This is intended to allow actors in DECORATE to properly derive
|
|
|
|
|
from built-in actors. Whenever a scripting language for DECORATE gets
|
|
|
|
|
implemented so that everything can be defined there instead of in C++, the
|
|
|
|
|
metadata should no longer be needed.
|
|
|
|
|
|
|
|
|
|
February 10, 2004
|
|
|
|
|
- Upgraded to zlib 1.2.1.
|
|
|
|
|
- Merged in Graf Zahl's additions to thingdef.cpp.
|
|
|
|
|
- Fixed: Heretic wind specials would effect you while you were underwater.
|
|
|
|
|
Also turned off the Heretic wind for noclipping things.
|
|
|
|
|
- Added a check for empty subsectors to P_LoadSubsectors.
|
|
|
|
|
|
|
|
|
|
February 6, 2004
|
|
|
|
|
- Fixed: DObject::IsKindOf used StaticClass instead of GetClass.
|
|
|
|
|
- Added Graf Zahl's thingdef.cpp implementation and modified it to work with
|
|
|
|
|
a more C-like mode in sc_man.
|
|
|
|
|
- Fixed: P_CheckFakeFloorTriggers could crash if the action caused the player
|
|
|
|
|
to teleport to a new sector without any sector actions.
|
|
|
|
|
- Fixed the Hexen armor depletion so that it doesn't overflow on very large
|
|
|
|
|
damage amounts.
|
|
|
|
|
- Fixed: An extremely dead imp that crashes before executing A_ImpXDeath2 would
|
|
|
|
|
get stuck floating in the air.
|
|
|
|
|
- Changed menuactive into an enum and merged WaitingForKey into it. Now closing
|
|
|
|
|
the menu automatically disables the menu's key waiting mode. Also fixed,
|
|
|
|
|
C_ToggleConsole so that the console can never be dropped down while the menu
|
|
|
|
|
is open. Before, it was possible to do this by pressing Esc and ` during the
|
|
|
|
|
same tic.
|
|
|
|
|
|
|
|
|
|
February 5, 2004
|
|
|
|
|
- Altered the BOOM pusher/puller/current effects to apply to anything with
|
|
|
|
|
MF2_WINDTHRUST and removed the restriction that it doesn't apply to things
|
|
|
|
|
with MF_NOGRAVITY. To make it work, I also had to remove MF_NOBLOCKMAP from
|
|
|
|
|
all the wind-thrustable Heretic/Hexen projectiles.
|
|
|
|
|
- Fixed: Using the spray command with a non-existant decal crashed.
|
|
|
|
|
|
|
|
|
|
February 3, 2004
|
|
|
|
|
- Removed r_experimental.
|
|
|
|
|
|
|
|
|
|
January 29, 2004
|
|
|
|
|
- Added the -oldsprites command line argument to rename sprites in all
|
|
|
|
|
wads instead of just sprites in the IWAD.
|
|
|
|
|
- Changed Heretic's knight sounds to be prefaced by hknight/ instead of
|
|
|
|
|
knight/.
|
|
|
|
|
- Changed the Strife weapon names for the ACS inventory commands to match
|
|
|
|
|
their actor names.
|
|
|
|
|
- Added Hexen's water drip (spawnnum 95). Changed the Hexen WATR->UWAT
|
|
|
|
|
renaming to WATR->HWAT.
|
|
|
|
|
- Added a note to the map command that suggests you use changemap instead
|
|
|
|
|
while playing a network game.
|
|
|
|
|
- Fixed: Chat mode could not be used outside of an actual level.
|
|
|
|
|
- Fixed: The automap still tried to draw teleporters with custom colors even
|
|
|
|
|
when am_usecustomcolors was false.
|
|
|
|
|
- Fixed the Hexen armor saves so that it doesn't overflow on very large damage
|
|
|
|
|
amounts.
|
|
|
|
|
- Put back the AKey::TryPickup restriction on picking up more than one key of
|
|
|
|
|
the same type, but now it's restricted to multiplayer games only. Single
|
|
|
|
|
player will still be able to pick up more than one.
|
|
|
|
|
|
|
|
|
|
January 26, 2004
|
|
|
|
|
- Fixed: FLOATRANDZ overflowed when the space between ceiling and floor was
|
|
|
|
|
more than 297 units.
|
|
|
|
|
|
|
|
|
|
January 22, 2004
|
|
|
|
|
- Fixed: side_s::GetLightLevel() got the light of "sidedef" instead of "this".
|
|
|
|
|
- 2.0.61
|
|
|
|
|
- Optimized R_PrecacheLevel() so that it does not unload graphics that are
|
|
|
|
|
definitely used on the level.
|
|
|
|
|
- Optimized the primary loop in P_GroupLines() so that it is much faster on
|
|
|
|
|
large maps. It was previously O(m*n); now it is O(m+n), and Vrack 3 loads
|
|
|
|
|
in well under a second.
|
|
|
|
|
- Changed the Heretic's imp's sounds to use the himp/ prefix instead of imp/.
|
|
|
|
|
|
|
|
|
|
January 21, 2004
|
|
|
|
|
- Fixed: The Heresiarch's spell balls above his head did not update their
|
|
|
|
|
sector information as they rotated. Neither did his shield balls.
|
|
|
|
|
- Fixed silent teleporter orientation in EV_Teleport().
|
|
|
|
|
- Fixed calls to P_Teleport() in a_korax.cpp and a_teleportother.cpp that used
|
|
|
|
|
weird parameters.
|
|
|
|
|
- Changed FDecalLib::GetDecalByName() so that it does not call GetDecal() on
|
|
|
|
|
the decal it finds, so it can be used to get decal groups.
|
|
|
|
|
- Fixed: Saving a game on one version of a map, then adding a BEHAVIOR to it,
|
|
|
|
|
then reloading would not fully invalidate the player when starting a new
|
|
|
|
|
game after the resulting error message. (G_NewInit now initializes players
|
|
|
|
|
to PST_DEAD).
|
|
|
|
|
- Added a screenshot_dir cvar to allow automatically-named screenshots to be
|
|
|
|
|
saved somewhere other than the current directory.
|
|
|
|
|
- Fixed: M_ScreenShot left the display locked if it could not open the file to
|
|
|
|
|
write to.
|
|
|
|
|
- Added decals for the marine hitscan weapons. (I think it's funny that the
|
|
|
|
|
term "hitscan" has come to be used to describe Doom's instant-hit weapons
|
|
|
|
|
even though it comes from Build. :-)
|
|
|
|
|
|
|
|
|
|
January 17, 2004
|
|
|
|
|
- Fixed: PIT_CheckOnmobjZ would not let things stand on corpses.
|
|
|
|
|
- Fixed a bug in A_MinotaurLook where I forgot to convert a special1 reference
|
|
|
|
|
to a tracer reference.
|
|
|
|
|
- Fixed: Obituaries were shown when voodoo dolls died.
|
|
|
|
|
- Fixed: Light_Fade and Light_Glow divided by zero when using zero as the
|
|
|
|
|
tics argument.
|
|
|
|
|
- Fixed: Killing a PlayerPawn that isn't attached to a player crashed.
|
|
|
|
|
- Fixed: Summoning before starting a game crashed.
|
|
|
|
|
- Fixed: Block everything lines did not block railguns.
|
|
|
|
|
|
|
|
|
|
January 13, 2004
|
|
|
|
|
- Fixed: +moveup and +movedown did not work with the fly cheat.
|
|
|
|
|
- Fixed: The Sentinel was missing the MF_DROPOFF flag. Also reduced its
|
|
|
|
|
"bouncing" when it was in a float. I still wasn't satisfied with that, so
|
|
|
|
|
I took its MF_FLOAT bit away.
|
|
|
|
|
- Fixed: The Strife flamethrower's refire state wasn't using frame B.
|
|
|
|
|
- Fixed: Acolytes only used frames A and B in their chase states because I
|
|
|
|
|
forgot to change them when copying and pasting.
|
|
|
|
|
- Removed the nightmare warning when starting a bloodbath game in Strife.
|
|
|
|
|
- Fixed: Nightmare skill ignored the starting map defined with episodedef.
|
|
|
|
|
- Changed sv_fastweapon 2 handling so that it only applies to weapon
|
|
|
|
|
psprites and not flash psprites.
|
|
|
|
|
- Changed Thing_Activate/Deactivate so they can be used to prevent frozen
|
|
|
|
|
corpses from shattering automatically after a delay. (They can still be
|
|
|
|
|
shattered by shooting them or pushing them off a ledge, however.)
|
|
|
|
|
|
|
|
|
|
January 12, 2004
|
|
|
|
|
- Changed AKey::TryPickup so that it doesn't fail if the player already has a
|
|
|
|
|
key of the same type.
|
|
|
|
|
- Fixed: The TranslucentLine special could not used in a script if a line was
|
|
|
|
|
used to activate the script.
|
|
|
|
|
- Changed the damage amount for automatic death from 10 thousand to 1 million,
|
|
|
|
|
for people who like really strong monstres.
|
|
|
|
|
|
|
|
|
|
January 8, 2004
|
|
|
|
|
- Added some more player properties that let you add and remove player powers
|
|
|
|
|
through ACS.
|
|
|
|
|
- Renamed pw_shield and pw_health2 to pw_unused1 and pw_unused2 because Heretic
|
|
|
|
|
never used them. For the sake of savegame compatibility, they have not been
|
|
|
|
|
removed.
|
|
|
|
|
- Changed the dragon skin bracers so that when they're used outside of Hexen,
|
|
|
|
|
they add 50 points of armor. Also changed the armor bonus so that if you have
|
|
|
|
|
more than 200 armor points, picking one up won't drop you down to 200.
|
|
|
|
|
- Added the WIF_AMMO_OPTIONAL flag so that the fighter's hammer and axe can be
|
|
|
|
|
specified as using ammo so that they show up in Doom's fullscreen HUD.
|
|
|
|
|
- Changed masked texture drawing so that Y offsets behave like any other walls:
|
|
|
|
|
by texel unless the texture requests otherwise.
|
|
|
|
|
- Changed APuzzleItem::ActivateArti() so that it always plays *puzzfail if the
|
|
|
|
|
puzzle item could not be used.
|
|
|
|
|
- Fixed: Splashing on a fake floor with SECF_CLIPFAKEPLANES set would use the
|
|
|
|
|
main sector's floor terrain instead of the control sector's floor terrain.
|
|
|
|
|
- Moved even more functionality out of A_WeaponReady so that weapon ready
|
|
|
|
|
animations can use delays longer than one tic and still fire well.
|
|
|
|
|
- Fixed my September 25, 2003 "fix" of the massacre code so that it doesn't
|
|
|
|
|
make already dead bodies shootable.
|
|
|
|
|
- Changed P_SightCheckLine() so that it also uses the absence of ML_TWOSIDED as
|
|
|
|
|
an indicator to stop the search, as it did a long time ago.
|
|
|
|
|
- Fixed: A_M_Refire did not terminate the attack if the marine had no missile
|
|
|
|
|
attack and the target had moved out of range.
|
|
|
|
|
- Fixed: DTA_VirtualHeight scaled the texture's y location by the display's
|
|
|
|
|
width instead of its height.
|
|
|
|
|
- Added sprite renaming so that unique actors can use unique sprites. Only
|
|
|
|
|
sprites in the main IWAD are renamed, so if you want to supply a new sprite
|
|
|
|
|
in a PWAD, you need to use the sprite's new name instead of its old name.
|
|
|
|
|
Sprites are renamed as follows:
|
|
|
|
|
heretic.wad: HEAD -> LICH
|
|
|
|
|
|
|
|
|
|
hexen.wad: ARM1 -> AR_1
|
|
|
|
|
ARM2 -> AR_2
|
|
|
|
|
ARM3 -> AR_3
|
|
|
|
|
ARM4 -> AR_4
|
|
|
|
|
BARL -> ZBAR
|
|
|
|
|
CAND -> BCAN
|
|
|
|
|
GIBS -> POL5 (this makes it the same as Doom's gib sprite)
|
|
|
|
|
ROCK -> ROKK
|
|
|
|
|
SUIT -> ZSUI
|
|
|
|
|
TRE1 -> ZTRE
|
|
|
|
|
TRE2 -> TRES
|
|
|
|
|
WATR -> UWAT (unused, but Strife also has a WATR)
|
|
|
|
|
|
|
|
|
|
strife1.wad: ARM1 -> ARM3
|
|
|
|
|
ARM2 -> ARM4
|
|
|
|
|
BAR1 -> BARC
|
|
|
|
|
BARL -> BBAR
|
|
|
|
|
BLST -> MAUL
|
|
|
|
|
CNDL -> KNDL
|
|
|
|
|
LOGG -> LOGW
|
|
|
|
|
MISL -> SMIS
|
|
|
|
|
PMAP -> SMAP
|
|
|
|
|
POT1 -> MPOT
|
|
|
|
|
SHRD -> SHAR
|
|
|
|
|
SHT2 -> MPUF
|
|
|
|
|
SPID -> STLK
|
|
|
|
|
TLMP -> TECH
|
|
|
|
|
TRE1 -> TRET
|
|
|
|
|
TRCH -> TRHL
|
|
|
|
|
VASE -> VAZE
|
|
|
|
|
- Fixed: The Doom Allmap powerup played the normal item pickup sound instead of
|
|
|
|
|
the powerup pickup sound.
|
|
|
|
|
- Fixed: Fog boundaries were still drawn when using a fixed colormap.
|
|
|
|
|
|
|
|
|
|
January 6, 2004
|
|
|
|
|
- Fixed: R_InitTextures() did not ensure that the final TEXTURE1/TEXTURE2 lumps
|
|
|
|
|
had not already been read, so it could end up loading them with the wrong
|
|
|
|
|
PNAMES. The easiest example of this bug is to start the game with:
|
|
|
|
|
-iwad doom2 -file doom doom2
|
|
|
|
|
- Fixed: You could take Heretic keys but you couldn't check them with ACS. Also
|
|
|
|
|
added support for doing both with Hexen keys, since it was missing.
|
|
|
|
|
- Added some checks to A_SpawnFly to appease anybody who tries to break things
|
|
|
|
|
by using dehacked patches where they don't belong.
|
|
|
|
|
- Fixed: If you used spynext/spyprev to look through another player's eyes and
|
|
|
|
|
that player quit, the game would crash because it will still try to draw
|
|
|
|
|
through that player's eyes.
|
|
|
|
|
- Added a DEM_SINFCHANGEDXOR message for flag cvars that alter server settings
|
|
|
|
|
(i.e. all of them). The reason for this is because if you exec a script that
|
|
|
|
|
alters multiple flags, only the last change would take effect, because they
|
|
|
|
|
don't get processed until after the script finishes execution.
|
|
|
|
|
- Fixed: G_AddViewPitch() adjusted LocalViewPitch even when the dmflag
|
|
|
|
|
DF_NO_FREELOOK was set.
|
|
|
|
|
- Fixed: PIT_StompThing was missing the MF2_TELESTOMP check for Heretic/Hexen.
|
|
|
|
|
- Fixed: Starting a game with the dmflag DF_NO_FOV set would set everybody's
|
|
|
|
|
view to an FOV of 0 because the dmflags callback gets called before the
|
|
|
|
|
arbitrator's DesiredFOV is initialized.
|
|
|
|
|
|
|
|
|
|
January 2, 2004
|
|
|
|
|
- Changed P_FinishLoadingLineDefs so that it rounds the wall length to the
|
|
|
|
|
nearest integer when determining TexelLength instead of always round down.
|
|
|
|
|
- Fixed: Using an empty string with HUDMSG_TYPEON caused a crash.
|
|
|
|
|
- Fixed: A buried wraith could enter its pain state while rising from the
|
|
|
|
|
ground and not properly finish raising, so it's bottom portion would remain
|
|
|
|
|
clipped for the rest of its existance.
|
|
|
|
|
- Fixed: Using a switch to start a script on another map would not make the
|
|
|
|
|
switch switch.
|
|
|
|
|
- Fixed: Sliding along the backside of a blocking two-sided line was bad.
|
|
|
|
|
- Fixed: The second sky on a map defaulted to -NOFLAT- instead of the same
|
|
|
|
|
texture as the first sky.
|
|
|
|
|
- Moved the key blocks from Heretic's fullscreen HUD so that they don't overlap
|
|
|
|
|
the health vial.
|
|
|
|
|
|
|
|
|
|
December 13, 2003
|
|
|
|
|
- Added another case to ScanForFlatHack to fix darkhour.wad: F_START - flats -
|
|
|
|
|
FF_END - more flats - F_END. I'm surprised it worked before, but it did, so
|
|
|
|
|
I'm inclined to again make it work unmodified, even if the wad _is_ wrong.
|
|
|
|
|
|
|
|
|
|
December 12, 2003
|
|
|
|
|
- Added a hack check for Doom 1's BIGDOOR7 texture, which y offsets its patches
|
|
|
|
|
at -4. (Doom clamped all negative patch y offsets to 0, which is why it shows
|
|
|
|
|
up okay in Doom.)
|
|
|
|
|
- Added a fix to the blockmap tracers where all the blocks along the trace are
|
|
|
|
|
crossed on their corners.
|
|
|
|
|
- Fixed a potential crash in FBaseStatusBar::DrawMessages() when a HUD message
|
|
|
|
|
removes itself as part of its drawing process.
|
|
|
|
|
- Fixed: A few of the Strife weapons were erroneously defined with WIF_NOALERT.
|
|
|
|
|
- Fixed: Sky textures defaulted to 0 if a map had a MAPINFO that did not
|
|
|
|
|
specify the sky. Now they default to -NOFLAT- so you don't have to worry
|
|
|
|
|
about division by zero in R_DrawSkyStriped if the map tries to show a sky.
|
|
|
|
|
- Fixed: The floorLowerAndChange type for EV_DoFloor modified sec instead of
|
|
|
|
|
a temporary, which could cause crashes at worst and odd behavior at best
|
|
|
|
|
because sec is used again to determine whether a floor moved instantly.
|
|
|
|
|
- Changed a DivScale19 in R_RenderMaskedSegRange into a SafeDivScale19.
|
|
|
|
|
- Fixed: Trying to use the mdk command before starting a game caused a crash.
|
|
|
|
|
- Fixed: CreateFrameBuffer would not properly retry.
|
|
|
|
|
- Changed the maybedrawnow recursion inhibitter to use the current state
|
|
|
|
|
of the screen object instead of a local static variable.
|
|
|
|
|
|
|
|
|
|
December 8, 2003
|
|
|
|
|
- Fixed: If a wad had TEXTURE1 and TEXTURE2 lumps, then any duplicates in
|
|
|
|
|
TEXTURE2 took precedence over TEXTURE1. It is supposed to be the other way
|
|
|
|
|
around, with TEXTURE1 taking precedence over TEXTURE2.
|
|
|
|
|
- Prefixed the names of the Strife grenade launcher actors with "Strife".
|
|
|
|
|
- Fixed: DDoor did not serialize m_LightTag.
|
|
|
|
|
- Fixed the P_TranslateTeleportThings rewrite so that it sets the Teleport
|
|
|
|
|
special's TID to 1 instead of the tag.
|
|
|
|
|
- Added a check for MNTRZ0 to AT_GAME_SET(Minotaur).
|
|
|
|
|
- Fixed: The chaingun flash only showed frame one and not both frames one and
|
|
|
|
|
zero.
|
|
|
|
|
|
|
|
|
|
December 6, 2003
|
|
|
|
|
- Rewrote P_TranslateTeleportThings() so that it only assigns TIDs to things
|
|
|
|
|
in sectors with tag 0.
|
|
|
|
|
- Fixed: Teleporters by TID didn't work.
|
|
|
|
|
- Fixed: P_SpawnMissileXYZ spawned floor/ceiling huggers as if they could move
|
|
|
|
|
with a vertical component to their velocity. They can't, so it could result
|
|
|
|
|
in very slow moving projectiles when aiming at something nearby in the X/Y
|
|
|
|
|
plane but far away on the Z axis, because most of the projectile's speed would
|
|
|
|
|
try to go on the Z axis.
|
|
|
|
|
- Changed the Minotaur state fixup to be based on the presence of MNTRZ1
|
|
|
|
|
instead of the game type.
|
|
|
|
|
|
|
|
|
|
December 5, 2003
|
|
|
|
|
- Fixed: When I went back to the blockmap-based sight code, I forgot to bring
|
|
|
|
|
over the enhancements for block-everything lines I had made for the BSP-
|
|
|
|
|
based sight code.
|
|
|
|
|
- Added a second argument to Teleport and a third argument to Teleport_NoFog
|
|
|
|
|
specials. This is a sector tag to filter the teleport dests with. Only
|
|
|
|
|
dests in a sector with a matching tag will be selected if the tag parameter
|
|
|
|
|
is non-zero. If tid is zero and tag is non-zero, then the old (and slow)
|
|
|
|
|
teleport dest based on sector tag is used so that Mordeth's trick can work.
|
|
|
|
|
- Added support for the BOOM local door light effect by adding an additional
|
|
|
|
|
parameter to all the Door_* specials to serve as the lighttag parameter.
|
|
|
|
|
The first argument still determines the door to open, so unlike BOOM, you
|
|
|
|
|
can use the effect with remote doors if you like. In the case of the
|
|
|
|
|
Generic_Door special, OR the type (the third argument) with 128, and the
|
|
|
|
|
first argument will be used as the lighttag parameter instead of the tag
|
|
|
|
|
parameter.
|
|
|
|
|
- Fixed two bugs with using the ACS setfont call to create fonts from images:
|
|
|
|
|
GlobalKerning was left uninitialized, and they weren't added to the global
|
|
|
|
|
font list, so they were recreated every time they were setfont'ed.
|
|
|
|
|
|
|
|
|
|
December 4, 2003
|
|
|
|
|
- Fixed: Voodoo dolls would also trigger the teleport zoom.
|
|
|
|
|
- Added 2048x2048 as the maximum size for a patch as a simple sanity check.
|
|
|
|
|
- Added a fix to the console's maybedrawnow() function to prevent recursive
|
|
|
|
|
calls to it.
|
|
|
|
|
|
|
|
|
|
December 3, 2003
|
|
|
|
|
- Fixed: The transfer lights specials are supposed to copy the source sector's
|
|
|
|
|
light level instead of propagating along changes from other transfer lights
|
|
|
|
|
specials.
|
|
|
|
|
- Added an armor display to Heretic's fullscreen HUD to match Doom's.
|
|
|
|
|
- Added a check for a NULL spot to Earthquake::Tick() so that if somebody
|
|
|
|
|
removes an earthquake's spot before the quake is over, it won't crash.
|
|
|
|
|
- Fixed: The Boom use-through flag was only being translated to SPAC_USETHROUGH
|
|
|
|
|
for lines with generalized line types and not for lines with normal line types.
|
|
|
|
|
- Fixed: P_ActivateLine() did not consider SPAC_USETHROUGH lines when deciding
|
|
|
|
|
if it should flip a switch texture.
|
|
|
|
|
- Fixed: In EV_DoCeiling(), ceilLowerToNearest made the ceiling go up instead
|
|
|
|
|
of down.
|
|
|
|
|
- Fixed: PIT_AddThingIntercepts() did not add anything the trace started in,
|
|
|
|
|
because none of the thing's sides faced the start of the trace.
|
|
|
|
|
- Added a check to A_FireCGun() to try to catch Dehacked patches that do
|
|
|
|
|
naughty things to the chaingun's flash states.
|
|
|
|
|
- Fixed: The bNoDecals property was not copied to every texture in an
|
|
|
|
|
animation range.
|
|
|
|
|
- Added the "range" keyword to ANIMDEFS so that it can be a true replacement
|
|
|
|
|
for ANIMATED.
|
|
|
|
|
- Fixed: Crushers in Hexen made monsters disappear instead of turning them into
|
|
|
|
|
piles of giblets.
|
|
|
|
|
- Changed P_SpawnPlayer() so that it doesn't telefrag *everything* inside the
|
|
|
|
|
player. Only monsters and other players will be telefragged now.
|
|
|
|
|
- Fixed: Hurting a voodoo doll and then dying from something else didn't
|
|
|
|
|
completely kill you.
|
|
|
|
|
- Fixed: mouse_sensitivity was no longer affecting mouselooking.
|
|
|
|
|
|
|
|
|
|
November 26, 2003
|
|
|
|
|
- Fixed: Ceiling type ceilRaiseToLowest (used exclusively by Ceiling_Generic)
|
|
|
|
|
set the direction to -1 instead of 1.
|
|
|
|
|
- Fixed: P_TranslateLineDef() ignored the BOOM passthrough flag due to
|
|
|
|
|
bad ordering.
|
|
|
|
|
- Fixed: A_WeaponReady did not center the sprites in case they had been
|
|
|
|
|
repositioned earlier. (Only really an issue with Hexen.)
|
|
|
|
|
- Fixed kerning support in V_BreakLines.
|
|
|
|
|
|
|
|
|
|
November 24, 2003
|
|
|
|
|
- Moved the +mlook and +strafe button handling for joysticks into
|
|
|
|
|
DI_JoyCheck().
|
|
|
|
|
- Changed bots.cfg loading so that it is relative to progdir instead of the
|
|
|
|
|
current directory.
|
|
|
|
|
- Removed support for loading zdoom.ini from the user's profile directory
|
|
|
|
|
under Windows.
|
|
|
|
|
- Added Strife's acolytes.
|
|
|
|
|
- Added Strife's rebel(s).
|
|
|
|
|
- Added Strife's beggar(s).
|
|
|
|
|
- Added Strife's zombie spawner.
|
|
|
|
|
- Fixed: No map names were shown for custom maps in the intermissions.
|
|
|
|
|
- Added simple default kerning for fonts so that DBIGFONT can use it to
|
|
|
|
|
overlap the edges of two adjoining character cells. It does not support
|
|
|
|
|
per-character kerning pairs and probably never will.
|
|
|
|
|
- Added error checks to invnext, invprev, and useflechette so that they won't
|
|
|
|
|
crash if you try to use them before starting a game.
|
|
|
|
|
- Fixed: Picking up a DECORATE item would clear its special, so you wouldn't
|
|
|
|
|
be able to pick it up again if it respawned.
|
|
|
|
|
- Added translucency to lots of Heretic and Hexen actors.
|
|
|
|
|
- In PIT_CheckThing(), any checks against a bridge will treat the moving
|
|
|
|
|
actor as if it has MF2_PASSMOBJ set, even if it doesn't. This lets scrolling
|
|
|
|
|
floors carry scenery items underneath a bridge without causing the chaos
|
|
|
|
|
that removing MF2_PASSMOBJ globally would cause.
|
|
|
|
|
- Removed the dead player check from CheckIfExitIsGood() so that dead
|
|
|
|
|
players can exit a level, as they could in Doom.
|
|
|
|
|
- Added god mode and invulnerability as things that can replenish your air
|
|
|
|
|
supply, so you won't die almost immediately if you spend your time
|
|
|
|
|
underwater with them on and then they go away before you surface.
|
|
|
|
|
- Added checks to D_PostEvent so that it won't turn the players head when
|
|
|
|
|
the game is effectively paused.
|
|
|
|
|
- Added a new player flag, CF_WEAPONREADY, so that weapons which don't use
|
|
|
|
|
A_WeaponReady (like the fighter's axe) can still bob.
|
|
|
|
|
- Fixed: The savegame version number for 2.0.54/2.0.55 didn't get bumped
|
|
|
|
|
up. So the .55 update really only helps people who want to load pre-.52
|
|
|
|
|
savegames. :-(
|
|
|
|
|
|
|
|
|
|
November 23, 2003
|
|
|
|
|
- Oops. Quick update from 2.0.54 to 2.0.55 to let old savegames load again.
|
|
|
|
|
Hopefully nobody downloaded 2.0.54 in the hour it was available.
|
|
|
|
|
- The sector an actor resides in now gets stored in savegames, because
|
|
|
|
|
different rules are applied for things spawned at level start than for
|
|
|
|
|
things spawned afterward.
|
|
|
|
|
- Added calls to SetWindowLongPtr to take away the window's border in
|
|
|
|
|
fullscreen mode and put it back in windowed mode.
|
|
|
|
|
- Fixed FBaseStatusBar::RepositionCoords() so that LilWhiteMouse's Chosen
|
|
|
|
|
ammo icons appear on the fullscreen HUD again.
|
|
|
|
|
|
|
|
|
|
November 21, 2003
|
|
|
|
|
- Added Strife's "Becoming Acolyte".
|
|
|
|
|
- Added Strife's zombie.
|
|
|
|
|
- Added Strife's grenade launchers.
|
|
|
|
|
|
|
|
|
|
November 20, 2003
|
|
|
|
|
- Added Strife's merchants.
|
|
|
|
|
- Added a check for a NULL texture to the player setup drawer, even though
|
|
|
|
|
that should never happen.
|
|
|
|
|
- Fixed: GiveInventory would not let you have more than one puzzle item of a
|
|
|
|
|
certain kind because I thought Hexen restricted you that way.
|
|
|
|
|
- Fixed: Starting a non-deathmatch game, changing the deathmatch cvar to true,
|
|
|
|
|
and then starting a new game would still show the ARMS graphic on the
|
|
|
|
|
status bar because the status bar graphic was not reloaded.
|
|
|
|
|
- Changed the fast floor dropping behavior so that Hexen format maps use the
|
|
|
|
|
Hexen behavior and Doom format maps use the Doom behavior.
|
|
|
|
|
|
|
|
|
|
November 19, 2003
|
|
|
|
|
- Added Strife's peasants.
|
|
|
|
|
- Added the Strife translation tables.
|
|
|
|
|
- Changed dehacked parsing so that the "Far attack frame" for players cannot
|
|
|
|
|
be changed. Fixes insaned1.deh and insaned2.deh that come with insane.wad.
|
|
|
|
|
- Fixed: The intermission screen did not lookup level names.
|
|
|
|
|
- Added a check for a NULL target to A_FiredAttack.
|
|
|
|
|
- Fixed: Enter, respawn, and death scripts were run with the equivalent of
|
|
|
|
|
ACS_Execute instead of ACS_ExecuteAlways, preventing them from executing
|
|
|
|
|
for more than one player at once. This especially defeats the purpose of
|
|
|
|
|
enter scripts, because those are always run at the same time for each
|
|
|
|
|
player when the level starts, so only the first player would actually
|
|
|
|
|
run any enter scripts.
|
|
|
|
|
- Fixed: The read-modify-write map array ops in p_acs.cpp took the array
|
|
|
|
|
index from the world var store instead of the map var store.
|
|
|
|
|
|
|
|
|
|
November 18, 2003
|
|
|
|
|
- Added Strife's Sentinel.
|
|
|
|
|
- Adjusted P_SpawnMissileXYZ so that if a missile would normally shoot over
|
|
|
|
|
the player's head, it will be aimed slightly lower.
|
|
|
|
|
- Added the first half of Strife's Bishop.
|
|
|
|
|
- Added Strife's Crusader (minus its special death action).
|
|
|
|
|
|
|
|
|
|
November 17, 2003
|
|
|
|
|
- Added a check for bad sidedefs to P_SaveLineSpecial.
|
|
|
|
|
|
|
|
|
|
November 15, 2003
|
|
|
|
|
- Added Strife's high-explosive and white phosphorous grenades (but not the
|
|
|
|
|
grenade launchers).
|
|
|
|
|
- Fixed: AActor defined both reactiontime and ReactionTime.
|
|
|
|
|
- Moved weapon bobbing out of A_WeaponReady so that weapons can bob every
|
|
|
|
|
tic even if A_WeaponReady isn't called every tic. (Such was the case with
|
|
|
|
|
the mauler, and it looked really bad seeing it move jerkily only every six
|
|
|
|
|
or seven tics.)
|
|
|
|
|
- Added Strife's mauler, minus the disintegration.
|
|
|
|
|
- Added a few of Strife's cheat codes.
|
|
|
|
|
|
|
|
|
|
November 14, 2003
|
|
|
|
|
- Added the Light_Stop line special to stop a currently running light effect.
|
|
|
|
|
- Changed the Door_Raise speed checks for monsters in P_TestActivateLine()
|
|
|
|
|
so that they are consistant for cross, use, and push lines.
|
|
|
|
|
- Changed text lookups for map names and intermission text so that they
|
|
|
|
|
happen each time they are needed and not just when the MAPINFO is parsed.
|
|
|
|
|
- Added a check for the null texture to R_RenderBoundWallSprite.
|
|
|
|
|
- Added a check for non-positive-sized patches, so if one tries to load,
|
|
|
|
|
it gets replaced by the new -BADPATCH graphic I just added to zdoom.wad.
|
|
|
|
|
- Added support for flechette inventory graphics named ARTIPSB1, ARTIPSB2,
|
|
|
|
|
and ARTIPSB3 that can be used in place of ARTIPSBG to differentiate
|
|
|
|
|
between the different forms of the flechette when a script gives the
|
|
|
|
|
player specific ones.
|
|
|
|
|
- Cluster infos now get created the first time they are referenced by a
|
|
|
|
|
map. Without this, all Hexen maps were implicitly on the same hub (the
|
|
|
|
|
"default" one), because Hexen didn't use clusterdef MAPINFO entries.
|
|
|
|
|
- Brought back the blockmap-based P_CheckSight and fixed the iterator in
|
|
|
|
|
it and its equivalent in p_maputl.cpp so that it properly handles the
|
|
|
|
|
case where a trace crosses the corner of a block.
|
|
|
|
|
|
|
|
|
|
November 12, 2003
|
|
|
|
|
- Added Strife's flame thrower.
|
|
|
|
|
- Added Strife's mini-missile launcher.
|
|
|
|
|
- Added Strife's assault gun.
|
|
|
|
|
- Added Strife's electric and poison crossbows. However, the poison bolt
|
|
|
|
|
does not have any of its special properties implemented, so it currently
|
|
|
|
|
acts like a super high damage projectile.
|
|
|
|
|
- Added all the Strife ammo pickups.
|
|
|
|
|
- Added Strife's scrolling sector type.
|
|
|
|
|
- Added the Strife weapon preferences to the WeaponPrefs array.
|
|
|
|
|
- Added placeholder weapon and ammo slots for the Strife weapons so that
|
|
|
|
|
when/if I add more, I won't need to update the player_t serializer again
|
|
|
|
|
to maintain compatibility with old save games.
|
|
|
|
|
- Added StepHeight to gameinfo_t to indicate the maximum height step a
|
|
|
|
|
player can walk up. This is 24 in every game except Strife, which has it
|
|
|
|
|
lower at 16.
|
|
|
|
|
|
|
|
|
|
November 10, 2003
|
|
|
|
|
- Fixed: ANIMDEFS animations animated every frame in the animation instead
|
|
|
|
|
of just the base texture.
|
|
|
|
|
- Fixed: Texture animations defined in ANIMATED did not animate each frame
|
|
|
|
|
in the sequence properly.
|
|
|
|
|
|
|
|
|
|
November 2, 2003
|
|
|
|
|
- Stopped using validcount to keep track of which Actors have already been
|
|
|
|
|
checked by P_BlockThingsIterator. P_CheckSight and P_TraceBleed can both
|
|
|
|
|
make validcount go up, so it is totally useless for P_RadiusAttack, which
|
|
|
|
|
wound up doing damage to a thing for each block it touched that was in the
|
|
|
|
|
blast area.
|
|
|
|
|
- Added DTA_ClipTop, DTA_ClipLeft, and DTA_ClipRight so that FlatFill can now
|
|
|
|
|
use DrawTexture and draw the textures right-side-up again.
|
|
|
|
|
- Renamed negonearray to zeroarray to better reflect its contents.
|
|
|
|
|
- Changed PTR_TraceIterator() so that it will look at a line's flags and if
|
|
|
|
|
it doesn't have ML_TWOSIDED set, then it will pretend it doesn't have a
|
|
|
|
|
back side, even if it does.
|
|
|
|
|
- Fixed: BFG Marines could crash with a stack overflow during their refire
|
|
|
|
|
pause because A_M_BFGSound() switches the marine back to its chase state,
|
|
|
|
|
which tries to switch it back to its attack state. The solution: Make sure
|
|
|
|
|
the marine's MF_JUSTATTACKED bit is set as long as its special1 is non-zero.
|
|
|
|
|
Then A_Chase won't try to attack.
|
|
|
|
|
- Reduced the player's missile range from 20480 to 8192, because Doom's trace
|
|
|
|
|
code is too inaccurate for long traces.
|
|
|
|
|
|
|
|
|
|
November 1, 2003
|
|
|
|
|
- Removed the missile attack from the chainsaw marine.
|
|
|
|
|
- Fixed: The cast finale ignored the player's gender setting because it didn't
|
|
|
|
|
actually play the player's death sound from the player.
|
|
|
|
|
- Fixed: The Heretic episode 2 ending restored the palette in PLAYPAL instead
|
|
|
|
|
of the one computed from PLAYPAL at the start of the game.
|
|
|
|
|
- Removed gamma stuff from FPalette, since Win32Video is responsible for
|
|
|
|
|
handling gamma.
|
|
|
|
|
- Changed P_DoCrunch() so that it copies the render style from the crushed
|
|
|
|
|
thing to the gib actor.
|
|
|
|
|
- Changed PIT_FloorDrop() so that only Hexen will let things fall with gravity
|
|
|
|
|
when a floor quickly drops. The other games will yank them down.
|
|
|
|
|
- Changed missile attacks so that monsters behind block everything lines will
|
|
|
|
|
try to shoot through the lines if they are set for impact activation and
|
|
|
|
|
run a script. The assumption is that the script will remove the blocking
|
|
|
|
|
flag so they can shoot past the line on their next attack.
|
|
|
|
|
- Changed back to the BSP-based sight checking for better accuracy.
|
|
|
|
|
- Changed the automap so that it uses 12 bits of fractional precision instead
|
|
|
|
|
of 16 in order to display maps that are relatively close to the limits of
|
|
|
|
|
the possible map extents.
|
|
|
|
|
- Changed the STCFN121 hack so that instead of discarding STCFN121 if it's
|
|
|
|
|
in the IWAD, it will discard it if STCFN120 and STCFN 122 are not present.
|
|
|
|
|
This should accomodate wads that provide their own fonts and copied it as
|
|
|
|
|
an I instead of a y, and also wads that provide a real set of lower-case
|
|
|
|
|
characters.
|
|
|
|
|
- Changed the sector soundorg calculation so that it can't overflow.
|
|
|
|
|
|
|
|
|
|
October 31, 2003
|
|
|
|
|
- Added Strife's Reaver. Aside from it's unknown flag, it should be fully
|
|
|
|
|
functional.
|
|
|
|
|
- Added Strife's dagger-wielding fist. It has a chance of doing 0 damage,
|
|
|
|
|
which seems odd.
|
|
|
|
|
- Extended P_SpawnPuff() so that you can give a puff a crash state, and then
|
|
|
|
|
it will use that state if something was hit.
|
|
|
|
|
- Added a simple status bar for strife.
|
|
|
|
|
|
|
|
|
|
October 30, 2003
|
|
|
|
|
- Moved SKYFLATNAME into the gameinfo structure.
|
|
|
|
|
- Added a bunch more Strife things.
|
|
|
|
|
- Restricted the use of SPAC_OTHERCROSS to just the BOOM generalized line type
|
|
|
|
|
containers, since those are the only specials it's needed for.
|
|
|
|
|
- Fixed: Each level's intermission name was always drawn as text, even if
|
|
|
|
|
it had a graphic that was supposed to be displayed instead.
|
|
|
|
|
- Rewrote the flat hack used to make the flats in Gothic DM 2 load and
|
|
|
|
|
verified that it once again works.
|
|
|
|
|
|
|
|
|
|
October 29, 2003
|
|
|
|
|
- Added a few Strife things.
|
|
|
|
|
- Fixed another Doom bug/oversimplification: PIT_AddThingIntercepts() checked
|
|
|
|
|
the trace against a line running through the middle of the thing. Now it
|
|
|
|
|
checks against the thing's actual bounding box, so chainsawing big things
|
|
|
|
|
like the Spider Mastermind is much easier now. This also means
|
|
|
|
|
P_LineAttack() doesn't need to position puffs/bullet splats closer along the
|
|
|
|
|
trace since the hit location won't be inside the thing anymore.
|
|
|
|
|
- Changed blockmap thing linking so that things link to every block they touch
|
|
|
|
|
and not just the block at their center, fixing an old Doom bug.
|
|
|
|
|
- Changed the summon command so that it spawns things in front of you based on
|
|
|
|
|
their radius rather than a fixed 64 units away.
|
|
|
|
|
- Fixed: The joystick read rate was determined by the framerate instead of
|
|
|
|
|
being a constant 35 Hz.
|
|
|
|
|
|
|
|
|
|
October 28, 2003
|
|
|
|
|
- Changed: Decals are not allowed on warping textures by default. You can allow
|
|
|
|
|
them by appending "allowdecals" to the warp statement in ANIMDEFS. (e.g.
|
|
|
|
|
"warp texture foofoo allowdecals")
|
|
|
|
|
- Fixed: Bots whose teams were defined by name instead of numbers would always
|
|
|
|
|
be on the red team (team 0).
|
|
|
|
|
- Fixed: Puzzle items need to stick around in multiplayer games.
|
|
|
|
|
- Fixed: Saving in multiplayer games would try to save to the same full path
|
|
|
|
|
on all machines, even if the different machines had ZDoom installed in
|
|
|
|
|
different directories. The only one who was guaranteed to be able to save
|
|
|
|
|
because of this was the person who used the save command.
|
|
|
|
|
- Fixed: Poison damage in multiplayer games did not respect the teamdamage
|
|
|
|
|
setting.
|
|
|
|
|
- Added a minimum size limit of 1024 bytes for MOD/stream songs to work around
|
|
|
|
|
a bug in the current version of FMOD 3.70.
|
|
|
|
|
- Fixed: Sprites with weird rotation flipping (e.g. the Hell Knight) did not
|
|
|
|
|
display properly.
|
|
|
|
|
- Fixed: Even things that are not monsters could activate monster-allowed
|
|
|
|
|
lines in BOOM (and presumably DOOM).
|
|
|
|
|
- Fixed: Compat_useblocking also needs to block non-use lines with specials,
|
|
|
|
|
not just use lines.
|
|
|
|
|
- Fixed: Assigning a special to a line that would normally block the use of
|
|
|
|
|
lines behind it would enable those lines to be used.
|
|
|
|
|
- Fixed: If a texture had the bNoRemap0 flag set and it was part of an
|
|
|
|
|
animation sequence, the flag would not be propagated to the other
|
|
|
|
|
textures in the sequence.
|
|
|
|
|
- Added a check for a NULL SaveComment in the for loop that draws the comment
|
|
|
|
|
on the save/load menus.
|
|
|
|
|
- Fixed: Hexen does not always pass the three ACS script arguments as the
|
|
|
|
|
first three variables as a script. Instead, it looks at the number of
|
|
|
|
|
used arguments and only copies the arguments that are used, initializing
|
|
|
|
|
the rest to 0.
|
|
|
|
|
- Fixed the COLORMAP fixer so that it works correctly for palettes where
|
|
|
|
|
an exact match for color 0 does not exist.
|
|
|
|
|
- Added a check for empty VERTEXES lumps to the map loader.
|
|
|
|
|
|
|
|
|
|
October 27, 2003
|
|
|
|
|
- Fixed: You could not override the levelnums of the IWAD maps with levelnums
|
|
|
|
|
pointing to differently named maps because levelnums were search first to
|
|
|
|
|
last, and there was no check done to make sure that previous matching
|
|
|
|
|
levelnums were removed.
|
|
|
|
|
- Moved the R_Init() call before DecalLibray.ReadAllDecals() so that decals
|
|
|
|
|
can use any textures (including the plasma ball sprite).
|
|
|
|
|
- Fixed Heretic intermission problems: The maps were not shown because the
|
|
|
|
|
cluster numbers changed when I moved its MAPINFO into zdoom.wad, and the
|
|
|
|
|
"Now entering:" and "Finished" texts were incorrectly centered.
|
|
|
|
|
|
|
|
|
|
October 25, 2003
|
|
|
|
|
- Increased MAX_ACS_TRANSLATIONS to 255.
|
|
|
|
|
- Added APROP_Invulnerable.
|
|
|
|
|
- Changed savegames so that they store textures by name and usetype instead of
|
|
|
|
|
by index. Also removed support for loading save games created with ZDoom
|
|
|
|
|
versions earlier than 2.0.43 just for the purpose of removing obsolete code.
|
|
|
|
|
- Fixed: Unscaled skies taller than 128 were positioned incorrectly.
|
|
|
|
|
- Fixed: Redefining a clusterinfo with MAPINFO would not zero out the old
|
|
|
|
|
clusterinfo.
|
|
|
|
|
- Fixed: When a palette had no duplicate entries, it used the blue and green
|
|
|
|
|
parts of color 255 to pick a replacement for color 0.
|
|
|
|
|
|
|
|
|
|
October 24, 2003
|
|
|
|
|
- Added MF4_ACTLIKEBRIDGE flag.
|
|
|
|
|
- Fixed: Inventory items would fall through invisible bridges.
|
|
|
|
|
- Changed the P_TeleportMove() call in P_SpawnPlayer() so that it uses ONFLOORZ
|
|
|
|
|
instead of mobj->z, which fixes some stuckiness that can occur with start
|
|
|
|
|
spots that are too near a wall.
|
|
|
|
|
|
|
|
|
|
October 23, 2003
|
|
|
|
|
- Fixed: Overlapping bridge things would stand on each other.
|
|
|
|
|
- Changed TX_START/TX_END loading to load textures from first to last instead
|
|
|
|
|
of last to first, so ANIMDEFS animations that use them will behave as
|
|
|
|
|
expected.
|
|
|
|
|
- Fixed: m_filter did not average the mouse input. It just cut it in half.
|
|
|
|
|
- Fixed: Mouse pitch only changed in increments of 16.
|
|
|
|
|
- Fixed: ZDoom set the display mode twice at startup: Once at the very
|
|
|
|
|
beginning and again right after its initialization finished.
|
|
|
|
|
- Fixed: AImpactDecal::StaticCreate() checked the texture on a wall using
|
|
|
|
|
translation, so it would stick decals on animated textures unless the
|
|
|
|
|
first frame was showing.
|
|
|
|
|
- FMOD_File_SetCallbacks() does not seem to work with FMOD 3.70. Fortunately,
|
|
|
|
|
FMOD 3.70 also makes it obsolete for my purposes, so I can work around it.
|
|
|
|
|
(Okay, so it was fixed again in a later FMOD 3.70. But I already removed
|
|
|
|
|
the use of FMOD file callbacks, so I won't undo my changes now.)
|
|
|
|
|
|
|
|
|
|
October 22, 2003
|
|
|
|
|
- Rewrote my TAG_MORE handling to use va_list and make GCC happy.
|
|
|
|
|
- Fixed the default Heretic/Hexen automap wall colors so that they look
|
|
|
|
|
good on the parchment background.
|
|
|
|
|
- Fixed: FindShortestTextureAround() and FindShortestUpperAround() returned
|
|
|
|
|
their results as ints (without a fractional part) instead of fixed_ts.
|
|
|
|
|
- Changed the mapthing position fixing so that it only applies to those things
|
|
|
|
|
that request it (specifically, Heretic's WallTorch).
|
|
|
|
|
- Moved all the default MAPINFO out of the executable and into zdoom.wad.
|
|
|
|
|
As a side effect, Dehacked patches can no longer change the music played
|
|
|
|
|
on a map. (Do any patches actually do this?)
|
|
|
|
|
- Converted all the decals in zdoom.wad into PNGs. I was considering doing
|
|
|
|
|
the same for the crosshairs, but XHAIRB2 was the only one that got smaller
|
|
|
|
|
from the conversion from IMGZ to PNG.
|
|
|
|
|
|
|
|
|
|
October 20, 2003
|
|
|
|
|
- Added the CreateTexture() method to the texture manager. It checks the
|
|
|
|
|
contents of a lump to determine what type of image it contains, creates a
|
|
|
|
|
texture of the appropriate type, and adds it to the database. Everything
|
|
|
|
|
that was previously hard-coded to use patches now uses this instead. The
|
|
|
|
|
primary reason for this: PNG texture support. Just make sure your PNGs are
|
|
|
|
|
paletted. They do not need to have the exact same palette as the one
|
|
|
|
|
inside PLAYPAL, since they will be remapped to fit the game palette. ZDoom
|
|
|
|
|
also supports two proprietary PNG chunks:
|
|
|
|
|
grAb (8 bytes):
|
|
|
|
|
SIGNED DWORD x
|
|
|
|
|
SIGNED DWORD y
|
|
|
|
|
grAb stores the offset information and works just like the
|
|
|
|
|
equivalent information in a patch. The name is taken from the
|
|
|
|
|
ILBM GRAB chunk, which does the same thing for ILBMs.
|
|
|
|
|
alPh (0 bytes)
|
|
|
|
|
alPh is valid for grayscale images only (colortype 0). Its presence
|
|
|
|
|
signifies that the image data is really an alpha channel and contains
|
|
|
|
|
no color information. This is used by all of the decals in zdoom.wad.
|
|
|
|
|
- Added the m_filter cvar (false by default) to smooth out mouse movement for
|
|
|
|
|
those unfortunate enough to be stuck with a mouse sampling rate of just 40 Hz.
|
|
|
|
|
|
|
|
|
|
October 18, 2003
|
|
|
|
|
- Added super-preliminary support for playing Strife as an IWAD.
|
|
|
|
|
- Added fading "Read This!" screens.
|
|
|
|
|
- Morphed players are now allowed to predict their positions.
|
|
|
|
|
- Revisited the local player turning from October 10. My original
|
|
|
|
|
implementation had the players transmit the direction they wanted to face.
|
|
|
|
|
Unfortunately, this messes up the gauntlets and chainsaw, so I have reworked
|
|
|
|
|
it so that the players again send deltas. Any amount that accumulates between
|
|
|
|
|
packet sends is added to the player's local view angles. When they get sent,
|
|
|
|
|
they are zeroed.
|
|
|
|
|
|
|
|
|
|
October 17, 2003
|
|
|
|
|
- Fixed: GetLightLevel() used some globals instead of this to get the sidedef.
|
|
|
|
|
|
|
|
|
|
October 16, 2003
|
|
|
|
|
- Fixed: Using a cycling alias to rapidly change the player's color would
|
|
|
|
|
animate the player's status bar face at each color change.
|
|
|
|
|
|
|
|
|
|
October 15, 2003
|
|
|
|
|
- Updated to FMOD 3.70.
|
|
|
|
|
- Did more cleanup for GCC. Its "variable might be used uninitialized"
|
|
|
|
|
warnings are very annoying. Oh well.
|
|
|
|
|
- Did some cleanup so that Visual C++ 6 will compile without warnings. Alas,
|
|
|
|
|
it has some really weird errors where it complains about not being able
|
|
|
|
|
to #include .h files that are excluded inside an #ifdef block. They do not
|
|
|
|
|
effect the compilation any and seem to be generated before cl is even run;
|
|
|
|
|
it just looks untidy. Trivia, since I now have the opportunity to check:
|
|
|
|
|
When built with exactly the same settings, compared to the VC6 version, the
|
|
|
|
|
VC7 version is ~100k smaller, marginally faster, and takes slightly less
|
|
|
|
|
time to build from scratch.
|
|
|
|
|
- Added the MAPTEXF_WORLDPANNING flag to indicate that a maptexture wants to
|
|
|
|
|
be panned by world units instead of texels, so you can create high-res
|
|
|
|
|
drop-in replacements for existing textures.
|
|
|
|
|
- Fixed: The grid was not drawn properly on a rotated automap because the
|
|
|
|
|
x or y coordinates of the gridlines were not reset after being rotated. It
|
|
|
|
|
still looks bad if you turn off follow mode, but I'd rather not worry about
|
|
|
|
|
that.
|
|
|
|
|
- Fixed: Movement prediction did not preserve the ordering of blockmap links,
|
|
|
|
|
so the local player would always be the first entry in his blockmap cell.
|
|
|
|
|
The effects of this were first noticed as Pain Elementals reliably causing
|
|
|
|
|
the game go out of sync eventually. I imagine it probably caused desyncs in
|
|
|
|
|
other cases, too.
|
|
|
|
|
|
|
|
|
|
October 14, 2003
|
|
|
|
|
- Fixed: You could push actors with the MF2_PUSHABLE flag while doing movement
|
|
|
|
|
prediction, which would almost invariably make network games go out of sync.
|
|
|
|
|
- Uncommented the check that excluded the loading of STCFN121 only if it was
|
|
|
|
|
in the main IWAD. Note to anybody modding ZDoom who loads a resource wad
|
|
|
|
|
before the IWAD: This check in the FFont constructor assumes the IWAD is
|
|
|
|
|
at position 1. You will need to change this for your mod.
|
|
|
|
|
- Fixed: Pig players could still change back to their original weapons.
|
|
|
|
|
- Replaced the use A_BeakReady with A_WeaponReady. A_BeakReady was basically
|
|
|
|
|
just a stripped-down version of A_WeaponReady, so A_WeaponReady works just
|
|
|
|
|
as well.
|
|
|
|
|
- Added the ActivateMorphWeapon method to APlayerPawn as a replacement for
|
|
|
|
|
P_ActivateMorphWeapon().
|
|
|
|
|
|
|
|
|
|
October 13, 2003
|
|
|
|
|
- Improved the error-checking in FPatchTexture::MakeTexture() so that it will
|
|
|
|
|
detect overlapping spans.
|
|
|
|
|
- Fixed: Scaled, lower unpegged masked textures were positioned incorrectly
|
|
|
|
|
vertically.
|
|
|
|
|
- Fixed vertical positioning of scaled sky textures.
|
|
|
|
|
- Made MF_COUNTITEM actors dynamically counted like MF_COUNTKILL actors.
|
|
|
|
|
- Fixed: Morphed players returned to their player skin unless playing Hexen.
|
|
|
|
|
- Fixed: The chicken and pig players did not have MF3_NOBLOCKMONST set.
|
|
|
|
|
- Moved P_MorphPlayerThink() into an overridable method of PlayerPawn.
|
|
|
|
|
- Fixed: Colored sectors changed the color of the crosshair.
|
|
|
|
|
|
|
|
|
|
October 11, 2003
|
|
|
|
|
- Dropped MISSILERANGE back to its original value (2048 units) and added a new
|
|
|
|
|
PLAYERMISSILERANGE for player weapons, which is still at 20480 units.
|
|
|
|
|
|
|
|
|
|
October 10, 2003
|
|
|
|
|
- Fixed: Using the last inventory item in a Doom game would not redraw the
|
|
|
|
|
Doom guy's face on the status bar until the next time it animated.
|
|
|
|
|
- Fixed: The view was interpolated when switching in and out of chasecam mode.
|
|
|
|
|
- Changed player turning to be local. Also changed the mouse reading so that
|
|
|
|
|
it happens every frame instead of every tic. Together, these two changes
|
|
|
|
|
keep the mouse feeling responsive even when the framerate drops below 35 FPS.
|
|
|
|
|
It also helps a lot when playing with vsync enabled.
|
|
|
|
|
- Modified the interpolation system so that it knows what it is interpolation
|
|
|
|
|
(beyond being just a generic fixed_t *). Now it can be stored in save games.
|
|
|
|
|
- Fixed: Ceiling_CrushAndRaise and similar specials that passed a 0 height
|
|
|
|
|
to EV_DoCeiling/EV_DoFloor did not interpolate.
|
|
|
|
|
- Fixed: Thing_Projectile2 did not pop its parameters off the stack.
|
|
|
|
|
- Modified tab completion slightly. Pressing tab once now displays a list
|
|
|
|
|
of possible completions. Pressing tab multiple times will continue to
|
|
|
|
|
function as it did before.
|
|
|
|
|
- Added the fading notify text I had written for my Duke port.
|
|
|
|
|
|
|
|
|
|
October 8, 2003
|
|
|
|
|
- Changed titlepic and conback drawing to always be unmasked, because
|
|
|
|
|
2nd_enc.wad's TITLEPIC has holes in it.
|
|
|
|
|
- Stripped out a bunch of obsolete code from v_draw.cpp.
|
|
|
|
|
- Moved the state of the automap cheat into the am_cheat cvar.
|
|
|
|
|
- Changed P_TestActivateLine() so that monsters cannot activate Door_Raise
|
|
|
|
|
lines with speeds of 64 or above, in order to mimic Doom.
|
|
|
|
|
- Fixed: Vertical view doubling crashed.
|
|
|
|
|
- Made the secret wall color on the automap configurable through the
|
|
|
|
|
am_secretwallcolor cvar.
|
|
|
|
|
- Added a ga_togglemap gameaction, because the new parchment can cause
|
|
|
|
|
commands to dispatch while the background is drawing. If one of those
|
|
|
|
|
is togglemap and it gets handled right away, the mapback texture gets
|
|
|
|
|
unloaded, and AM_clearFB will crash.
|
|
|
|
|
- Added the parchment background used by the Heretic and Hexen automaps.
|
|
|
|
|
- Added some support for console fonts that don't use 8x8 character cells.
|
|
|
|
|
- Fixed: A_WraithMissile was missing a NULL target check.
|
|
|
|
|
- Fixed: The player did not make any noise during the cast finale.
|
|
|
|
|
- Added the player's attack sound to the finale.
|
|
|
|
|
- Added a check to the cast finale for monsters that have been dehacked to
|
|
|
|
|
have no attack states so that they won't crash the finale.
|
|
|
|
|
|
|
|
|
|
October 7, 2003
|
|
|
|
|
- Added DoomBounce, HereticBounce, and HexenBounce as valid properties for
|
|
|
|
|
DECORATE projectiles.
|
|
|
|
|
- Fixed: Monster telefrags still reported that the monster had killed the
|
|
|
|
|
player normally. (Note: The only time a monster will normally be able to
|
|
|
|
|
telefrag a player is on Doom2 MAP30, although this can be changed with
|
|
|
|
|
MAPINFO.)
|
|
|
|
|
- Made AM_changeWindowLoc scale the window movement so the automap will scroll
|
|
|
|
|
at the same rate no matter what resolution you play at.
|
|
|
|
|
- Fixed: Reopening a door while it was closing would not play the opening
|
|
|
|
|
sound.
|
|
|
|
|
- Fixed: You could still (de)activate dead monsters. Activating a dead monster
|
|
|
|
|
would make it disappear, because dead monsters usually have their next frame
|
|
|
|
|
set to NULL.
|
|
|
|
|
- Fixed an off-by-one error for the vertical positioning of the elements on
|
|
|
|
|
the Hexen status bar.
|
|
|
|
|
|
|
|
|
|
October 3, 2003
|
|
|
|
|
- Fixed: Missing TAG_DONE is WI_slamBackground().
|
|
|
|
|
- Fixed: ZDoom no longer tries to read non-V3.0 Dehacked patch files. Earlier
|
|
|
|
|
ones are apparently all binary, which has never been supported and could
|
|
|
|
|
make it crash.
|
|
|
|
|
|
|
|
|
|
October 1, 2003
|
|
|
|
|
- Added support for specifying animated texture sequences in ANIMDEFS by name
|
|
|
|
|
instead of by number. i.e. Instead of:
|
|
|
|
|
texture x_water1
|
|
|
|
|
pic 1 rand 5 12
|
|
|
|
|
pic 2 rand 5 12
|
|
|
|
|
pic 3 rand 5 12
|
|
|
|
|
pic 4 rand 5 12
|
|
|
|
|
|
|
|
|
|
You can write:
|
|
|
|
|
texture x_water1
|
|
|
|
|
pic x_water1 rand 5 12
|
|
|
|
|
pic x_water2 rand 5 12
|
|
|
|
|
pic x_water3 rand 5 12
|
|
|
|
|
pic x_water4 rand 5 12
|
|
|
|
|
- Added a check for the front sky layers of parallax skies so that the front
|
|
|
|
|
texture does not have color 0 remapped, because it really does use color 0
|
|
|
|
|
as transparent. (Note that since color 0 is now the transparent color for
|
|
|
|
|
everything, you can use normal transparent regions for front sky textures.)
|
|
|
|
|
|
|
|
|
|
September 27, 2003
|
|
|
|
|
- Changed the transparent color index from 255 back to 0. 0 is more convenient
|
|
|
|
|
because:
|
|
|
|
|
1) Images that are used as alpha masks (primarily decals) already
|
|
|
|
|
use color 0 as transparent, so they no longer need special processing.
|
|
|
|
|
2) PNG images need 255 fewer bytes to mark color 0 as transparent than they
|
|
|
|
|
need to mark color 255 as transparent. But this won't really be important
|
|
|
|
|
until I add support for PNG images (which will probably happen, but who
|
|
|
|
|
knows when).
|
|
|
|
|
The only reason I switched to 255 was because that was what BUILD used, so by
|
|
|
|
|
using the same transparent index, I could memory map its tiles read-only and
|
|
|
|
|
use them directly.
|
|
|
|
|
|
|
|
|
|
September 26, 2003
|
|
|
|
|
- Fixed: If a switch defined in a SWITCHES lump used the same "on" and "off"
|
|
|
|
|
graphics, the game would crash. Now it gets skipped, because it's not really
|
|
|
|
|
a switch if it doesn't change its image.
|
|
|
|
|
|
|
|
|
|
September 25, 2003
|
|
|
|
|
- Fixed: Using the MDK cheat always flung the dead things at you. Related, the
|
|
|
|
|
maximum thrust to have something fall forward on death is now 10 units/tic.
|
|
|
|
|
- Fixed: ClearInventory always crashed because using GiveInventory to give a
|
|
|
|
|
weapon afterward would not bring the weapon up, so the player's ready weapon
|
|
|
|
|
would be left as something that doesn't exist.
|
|
|
|
|
- Fixed: The overlayed automap showed statistics when not viewing through a
|
|
|
|
|
player's eyes.
|
|
|
|
|
- Increased MISSILERANGE to 20480 (was 2048).
|
|
|
|
|
- Changed the massacre code so that it sets the shootable bit for any monsters
|
|
|
|
|
that have it cleared (such as Serpents, usually), so they die too.
|
|
|
|
|
- Fixed: Masked midtextures beneath a fake floor (or above a fake ceiling)
|
|
|
|
|
only inheritted their light level and not their light color from the control
|
|
|
|
|
sector.
|
|
|
|
|
- Added code so that when a map thing is spawned directly on a line, it will
|
|
|
|
|
be moved 1/4 unit in toward the middle of the subsector so that it will be
|
|
|
|
|
clipped reliably by the renderer. See the torch right in front of the player
|
|
|
|
|
at the start of Heretic E1M1 for an example of this bad practice.
|
|
|
|
|
- Changed: MF2_FLOATBOB actors no longer splash on liquids.
|
|
|
|
|
- Fixed: P_AimLineAttack() clamped the player's vrange to 1 degree maximum
|
|
|
|
|
instead of 1 degree minimum, so it would not aim past any two-sided lines
|
|
|
|
|
if you were using 0 autoaim because the toppitch and bottompitch would be
|
|
|
|
|
the same before even entering PTR_AimTraverse. This was the cause of
|
|
|
|
|
chainsaw not always pulling you in and melee weapons sometimes missing
|
|
|
|
|
monsters that were clearly in range.
|
|
|
|
|
- Fixed: P_SpawnPuff() used linetarget instead of its hitthing parameter
|
|
|
|
|
to determine if it should play the puff's SeeSound or AttackSound.
|
|
|
|
|
- Improved(?) the Bloodscourge so that its initial target search only looks
|
|
|
|
|
in front of the player.
|
|
|
|
|
- Fixed: MStaffSpawn used linetarget, but P_AimLineAttack was never called
|
|
|
|
|
to set it.
|
|
|
|
|
- Fixed: P_CheckMissileSpawn would destroy ripping missiles if they spawned
|
|
|
|
|
inside something.
|
|
|
|
|
- Fixed: Dark servants could not be morphed in Hexen.
|
|
|
|
|
- Fixed: MageWandSmoke was not translucent.
|
|
|
|
|
- Combined all the WeaponPrefs list for each game into a single list.
|
|
|
|
|
- Added text skipping for the Hexen chess ending.
|
|
|
|
|
- Fixed: The chessboard finale drawer looked at userinfo.PlayerClass instead
|
|
|
|
|
of CurrentPlayerClass to decide which chess piece to draw, so random players
|
|
|
|
|
would always appear as the fighter.
|
|
|
|
|
- Fixed: When V_BreakLines() inserted newlines for word wraps, the default
|
|
|
|
|
text color was restored for the new lines. Now it adds color escape
|
|
|
|
|
sequences after any soft line breaks, but it leaves hard line breaks alone.
|
|
|
|
|
- Added support for marking scripts that are "safe for multiplayer". To do
|
|
|
|
|
this, add net after the script header but before the script body. e.g.:
|
|
|
|
|
script 1 (void) net { ... }
|
|
|
|
|
script 1 open net { ... }
|
|
|
|
|
script 1 enter net { ... }
|
|
|
|
|
etc.
|
|
|
|
|
- Added the sethudsize ACS command. It takes three parameters:
|
|
|
|
|
sethudsize (width, height, statusbar). The width and height is the size
|
|
|
|
|
of the screen that hudmessage thinks it's drawing on. If this is different
|
|
|
|
|
from the real screen size, the hudmessage will be scaled to make it fit.
|
|
|
|
|
If statusbar is 1, then the height parameter covers the status bar and you
|
|
|
|
|
can draw on top of the status bar. If it is 0, then the hud message will
|
|
|
|
|
be stretched differently depending on whether the status bar is visible or
|
|
|
|
|
not, because the height available to draw in is shorter when the status bar
|
|
|
|
|
is visible. (However, a value of 0 will still let you draw on the status
|
|
|
|
|
bar if the hud message extends below the height you specified.)
|
|
|
|
|
|
|
|
|
|
After using sethudsize, hudmessage coordinates also behave differently.
|
|
|
|
|
You now need to specify actual pixel coordinates and not numbers in the
|
|
|
|
|
[0.0, 1.0] range. However, they are still fixed point, so you need to keep
|
|
|
|
|
the decimal point. e.g. If you used SetHudSize (320, 200, 1); and want to
|
|
|
|
|
draw a hudmessage at the center of the screen, you should pass it the
|
|
|
|
|
coordinates (160.0, 100.0) and not (0.5, 0.5).
|
|
|
|
|
|
|
|
|
|
The fractional part of the coordinates effect what part of the hud message
|
|
|
|
|
you are positioning:
|
|
|
|
|
For x: .0 = positions center of box
|
|
|
|
|
.1 = positions left edge of box
|
|
|
|
|
.2 = positions right edge of box
|
|
|
|
|
.4 = centers text inside box
|
|
|
|
|
.4 can also be added to either .1 or .2 to get .5 or .6
|
|
|
|
|
|
|
|
|
|
For y: .0 = positions center of box
|
|
|
|
|
.1 = positions top edge of box
|
|
|
|
|
.2 = positions bottom edge of box
|
|
|
|
|
|
|
|
|
|
e.g. If you used SetHudSize (320, 200, 1);, then the coordinates (160.1, 100.1)
|
|
|
|
|
will position the upper-left corner of the hud message. The coordinates
|
|
|
|
|
(160.2, 100.2) will position its lower-right corner instead.
|
|
|
|
|
|
|
|
|
|
To make hudmessage behave as normal, use SetHudSize (0, 0, 0);.
|
|
|
|
|
|
|
|
|
|
In summary, use sethudsize for hud messages that are really graphics, and don't
|
|
|
|
|
use it for text (unless you want your text to appear the same size at all
|
|
|
|
|
resolutions, such as a title with a special font or something).
|
|
|
|
|
|
|
|
|
|
- Added the getcvar ACS command. It returns the value of a cvar as an int,
|
|
|
|
|
so scripts can alter their behavior based on cvars.
|
|
|
|
|
- Added the strlen ACS command. It behaves just like its C counterpart.
|
|
|
|
|
- Added support for loading compressed GL nodes when regular nodes are
|
|
|
|
|
unavailable.
|
|
|
|
|
- Fixed: You could pick up items above your head because P_CheckPosition()
|
|
|
|
|
added an extra 24 units of height to detect when you might step up inside
|
|
|
|
|
another actor. It still does, but now PIT_CheckThing() takes this into
|
|
|
|
|
consideration before touching it.
|
|
|
|
|
|
|
|
|
|
September 24, 2003
|
|
|
|
|
- Fixed a crash bug in A_SorcOffense2: It did not check for a NULL target.
|
|
|
|
|
- Added support for compressed nodes. Not only do they take up less space
|
|
|
|
|
on disk than regular nodes, but the also remove the limits on number of
|
|
|
|
|
segs, subsectors, and nodes that normal nodes have. They also store the
|
|
|
|
|
extra vertices as 16.16 fixed point numbers like GL nodes, so split segs
|
|
|
|
|
can have fractional end points.
|
|
|
|
|
|
|
|
|
|
September 23, 2003
|
|
|
|
|
- Finished switching from memory-mapped I/O to normal file I/O. Partly, this
|
|
|
|
|
was done for portability, because some systems don't support MMIO, but
|
|
|
|
|
mostly it was done because the in-memory format of textures no longer
|
|
|
|
|
matches their on-disk format, so I can't use the wads themselves as a
|
|
|
|
|
texture cache anymore. Since I can't do that anymore, there's not much
|
|
|
|
|
reason to dedicate any address space to them.
|
|
|
|
|
|
|
|
|
|
September 13, 2003
|
|
|
|
|
- Added r_skyboxes cvar so that skyboxes can be turned off.
|
|
|
|
|
- Fixed: Using noinventorybar in MAPINFO still showed the selected artifact
|
|
|
|
|
in the Doom status bar.
|
|
|
|
|
- Note to self: I am no longer using Whole Program Optimization because:
|
|
|
|
|
1. It makes the executable around 200k bigger right now.
|
|
|
|
|
2. Its performance improvements are debatable. In fact, ZDBSP is about
|
|
|
|
|
half a second slower on a big map when using it.
|
|
|
|
|
3. It makes the linking stage of a release build take a lot longer
|
|
|
|
|
(which would be worth it if it actually helped, but I haven't seen it).
|
|
|
|
|
- Changed the PNG reader so that it caches all basic chunk information in
|
|
|
|
|
memory the first time the file is scanned so that chunk searches can be
|
|
|
|
|
much quicker. This means that when you have a lot of .zds files, the save
|
|
|
|
|
and load menus should hopefully appear faster the first time you use them.
|
|
|
|
|
In the process of implementing this, I discovered a glaring bug:
|
|
|
|
|
G_DoLoadGame() never closed the file after loading all the data from it.
|
|
|
|
|
- Added a check to disallow predefined 2D images as textures on walls, floors,
|
|
|
|
|
and ceilings at map load time. I purposefully left this check out of ACS
|
|
|
|
|
because they *can* be useful, so it's nice to have some way to use them.
|
|
|
|
|
- Added TX_START/TX_END markers for new graphics. They can override existing
|
|
|
|
|
wall textures and flats.
|
|
|
|
|
|
|
|
|
|
September 9, 2003
|
|
|
|
|
- Fixed: STFBANY was not added to the texture manager, so multiplayer Doom
|
|
|
|
|
games crashed when the status bar tried to draw it.
|
|
|
|
|
- Fixed: Options menu titles were drawn using SmallFont instead of BigFont.
|
|
|
|
|
|
|
|
|
|
September 6, 2003
|
|
|
|
|
- Fixed: Trying to delay for 0 tics in a script would delay for 4294967296
|
|
|
|
|
tics instead.
|
|
|
|
|
|
|
|
|
|
September 2, 2003
|
|
|
|
|
- Fixed relative lighting was never applied to masked midtextures because I
|
|
|
|
|
had the check contingent upon the absence of a sector colormap. But every
|
|
|
|
|
sector always has a colormap; I should have been checking for a black
|
|
|
|
|
fade instead.
|
|
|
|
|
|
|
|
|
|
August 28, 2003
|
|
|
|
|
- Fixed: Spawning an item with ACS that was Dehacked would not transfer the
|
|
|
|
|
special or TID from the original item to the dehacked item.
|
|
|
|
|
- Fixed: AnimType was left uninitialized when parsing ANIMDEFS.
|
|
|
|
|
|
|
|
|
|
August 14, 2003
|
|
|
|
|
- Fog boundaries alone are no longer sufficient to clip a sprite.
|
|
|
|
|
|
|
|
|
|
August 13, 2003
|
|
|
|
|
- Fixed mirror flipping in R_ProjectSprite(). I was treating tx as if it were
|
|
|
|
|
in screen coordinates, but it's not. This was generally unnoticable because
|
|
|
|
|
tx has 16 fractional bits, so subtracting it from viewwidth was vear near
|
|
|
|
|
subtracting it from 0.
|
|
|
|
|
- Changed sprite clipping by slopes to be more like sprite clipping by unsloped
|
|
|
|
|
floors and ceilings.
|
|
|
|
|
- Removed the check for MF_SOLID in P_TestMobjZ(). Nonsolid things should
|
|
|
|
|
still be blocked by invisible bridges. (So no more corpses will fall through
|
|
|
|
|
invisible bridges.)
|
|
|
|
|
- Added the ability for monsters to walk on invisible bridges. Note that the
|
|
|
|
|
bridge's top must be below or at the monster's height. Bridges that require
|
|
|
|
|
even a slight step up will still be impassible to monsters. (For now. Maybe
|
|
|
|
|
some time in the future I will change that. Maybe.)
|
|
|
|
|
- Fixed: R_ProjectParticle() could project 0-width particles. This could cause
|
|
|
|
|
a single column of a fog boundary behind the particle to be drawn more than
|
|
|
|
|
once.
|
|
|
|
|
- Fixed a bug in R_RenderMaskedSegRange() that caused one-pixel wide ranges
|
|
|
|
|
to not be drawn when using r_columnmethod 1.
|
|
|
|
|
- Added support for extended ID666 amplification tags in SPC files. Doing so,
|
|
|
|
|
I discovered one change from snesapu 0.95 to 0.98: SetDSPAmp's scale has
|
|
|
|
|
12 more fractional bits in 0.98 than it did in the earlier versions.
|
|
|
|
|
- Updated SPC support for snesapu.dll version 1.01, meaning that I allowed for
|
|
|
|
|
a higher minimum version returned by SNESAPUInfo. Nothing else needed to
|
|
|
|
|
change, so I'm not sure why the minimum version got bumped. I did need to
|
|
|
|
|
change the mixer parameter of SetAPUOpt from 0 to -1, but 0 was also defined
|
|
|
|
|
as no mixer in snesapu 0.95, so I'm not sure why it worked with the older
|
|
|
|
|
DLL.
|
|
|
|
|
- Added a check for textures that try to reference a patch not in the PNAMES
|
|
|
|
|
lump.
|
|
|
|
|
|
|
|
|
|
August 11, 2003
|
|
|
|
|
- Removed the +1 from the damage calculations in PIT_RadiusAttack(). I'm not
|
|
|
|
|
sure what that was doing there.
|
|
|
|
|
- Changed the VirtualProtect() call that makes the self-modifying code
|
|
|
|
|
writable from PAGE_EXECUTE_WRITECOPY to PAGE_EXECUTE_READWRITE after
|
|
|
|
|
Timmie found out Win9x doesn't know what PAGE_EXECUTE_WRITECOPY is.
|
|
|
|
|
|
|
|
|
|
August 5, 2003
|
|
|
|
|
- Changed the ignoreInvisibility parameter of P_CheckSight() to a flags
|
|
|
|
|
parameter so that I can pass another flag (2) to indicate that the sight
|
|
|
|
|
check should see past "block everything" lines (the former default). By
|
|
|
|
|
default, sight checks no longer see past "block everything" lines, so
|
|
|
|
|
monsters will not be able to melee attack you through them, and explosions
|
|
|
|
|
will not be able to do splash damage through them.
|
|
|
|
|
- Fixed: Hitscan weapons always triggered the front side of an impact line,
|
|
|
|
|
even when they struck the back side.
|
|
|
|
|
- Added a fifth argument to Sector_SetColor to control how much the
|
|
|
|
|
palette should be desaturated. 0=leave it alone, and 255=shades of
|
|
|
|
|
gray. The palette is desaturated before it gets colored. The test color
|
|
|
|
|
console command can also take this parameter now.
|
|
|
|
|
- Added a new polyobject start spot (#9303) that causes the polyobject to
|
|
|
|
|
deal damage whenever it touches a player.
|
|
|
|
|
- Changed sprite loading so that you can have sprites with gaps in their
|
|
|
|
|
defined frame ranges again. (e.g. create frames A-D and H-N but not E-G)
|
|
|
|
|
- Fixed: Minisegs were messing up the polyobject seg detection code when
|
|
|
|
|
GL nodes were used.
|
|
|
|
|
- Fixed: Fullbright sprites would be drawn fullbright in levels with their
|
|
|
|
|
own fadtable (IOW, every foggy Hexen map) because g_level.cpp never made
|
|
|
|
|
a note for the renderer to look at discover that the level used a custom
|
|
|
|
|
fadetable.
|
|
|
|
|
- Added separate floor and ceiling skyboxes. Set the sky picker's second
|
|
|
|
|
argument according to what you want to set: 0=floor and ceiling,
|
|
|
|
|
1=ceiling only, or 2=floor only.
|
|
|
|
|
- Fixed: Undefined sky textures are once again replaced by the default
|
|
|
|
|
texture instead of the empty texture.
|
|
|
|
|
- Fixed: Shooting a railgun while standing on a ledge could make you fall
|
|
|
|
|
through the ledge because the railgun invisible moves you to the hit
|
|
|
|
|
point in case it needs to make a water splash, then moves you back to
|
|
|
|
|
your start spot. However, when it moved you back, it did not restore
|
|
|
|
|
some important variables like floorz.
|
|
|
|
|
- Changed the weaponless marines so that their spawn state does not cycle
|
|
|
|
|
between frames A and B. This holds even if you give them a weapon later
|
|
|
|
|
in a script, but it does not hold for marines that spawn with a weapon,
|
|
|
|
|
even if you take the weapon from them later.
|
|
|
|
|
- Fixed: The Heresiarch's orbiting balls did not have their floorz updated
|
|
|
|
|
when the Heresiarch's changed, so if the Heresiarch's head went below its
|
|
|
|
|
original floor height, its balls would rapidly jump between its head height
|
|
|
|
|
and the old floor height. Since it seemed relevant, I also did the same
|
|
|
|
|
for ceilingz. I also did it for the SorcFX2 effect (invulnerability
|
|
|
|
|
indicator).
|
|
|
|
|
- Added support for nested skyboxes. Now you can have one skybox look into
|
|
|
|
|
another skybox. The changes required were surprisingly minor.
|
|
|
|
|
|
|
|
|
|
August 2, 2003
|
|
|
|
|
- Fixed: Returning from one function to another function failed to take into
|
|
|
|
|
account the presence of the calling function's return info when it restored
|
|
|
|
|
its local variable pointer.
|
|
|
|
|
|
|
|
|
|
July 31, 2003
|
|
|
|
|
- Fixed a crash when using path followers with incomplete paths.
|
|
|
|
|
|
|
|
|
|
July 30, 2003
|
|
|
|
|
- Added CheckModified() method to FTexture for the benefit of ZDoomGL.
|
|
|
|
|
- Added nonexistant texture check to the warping texture setup.
|
|
|
|
|
|
|
|
|
|
July 28, 2003
|
|
|
|
|
- Removed the ScaleCopy canvas from FBaseStatusBar, because everything is now
|
|
|
|
|
drawn to the screen directly even when the status bar is scaled.
|
|
|
|
|
- Changed the pitch calculations in the DSimpleCanvas constructor to provide
|
|
|
|
|
better wall drawing performance at all resolutions.
|
|
|
|
|
- Corrected ::ST_Y calculation so that a scaled status bar does not have its
|
|
|
|
|
topmost line overwritten by the view window at certain resolutions.
|
|
|
|
|
|
|
|
|
|
July 25, 2003
|
|
|
|
|
- Added DTA_WindowLeft and DTA_WindowRight tags for DCanvas::DrawTexture
|
|
|
|
|
to restrict the portion of the source texture that gets drawn to the
|
|
|
|
|
screen. Changed doom_sbar.cpp to use these, keeping in mind that they don't
|
|
|
|
|
clip the vertical range of the texture.
|
|
|
|
|
- Improved the behavior of R_DrawMaskedColumn(Horiz) so that when using
|
|
|
|
|
non-integral scaling and drawing adjacent columns that end at different y
|
|
|
|
|
locations, the shorter column lines up better with the longer one.
|
|
|
|
|
- Fixed: R_SetSpanSize_ASM had the x and y sizes swapped when called in a
|
|
|
|
|
release build but not a debug build. To fix, I just removed its __regargs
|
|
|
|
|
entry point.
|
|
|
|
|
|
|
|
|
|
July 20, 2003
|
|
|
|
|
- Disabled interpolation for sliding polyobjects that complete their movement
|
|
|
|
|
in fewer than three tics. (The moving crate effect in Massmouth 2 this fixes
|
|
|
|
|
needs two tics to reloop the crate.)
|
|
|
|
|
- Turned off interpolation of instant movement floors and ceilings so as not
|
|
|
|
|
to ruin the fake moving sector effect used in a few wads.
|
|
|
|
|
- Added a call to R_SetupBuffer() at the end of R_RenderViewToCanvas so that
|
|
|
|
|
the ylookup table will be correct if the game was saved while watching the
|
|
|
|
|
automap.
|
|
|
|
|
- Fixed: Every two-sided line was storing midtexture information even if it
|
|
|
|
|
didn't have a midtexture.
|
|
|
|
|
- Changed ylookup into an array of ints instead of BYTE*s so that I can still
|
|
|
|
|
use the common column drawers for everything even when the viewwindow does
|
|
|
|
|
not start at (0,0). If you were using "dc_ylookup[y]" before, now you need to
|
|
|
|
|
use "dc_ylookup[y] + dc_destorg" to get the same value.
|
|
|
|
|
- Fixed: Skybox ceilings could sometimes be left undrawn if they were in the
|
|
|
|
|
same sector as a skybox floor because I was missing a check for plane height
|
|
|
|
|
in R_FindPlane. This only applies to skyboxes; the check was present for
|
|
|
|
|
normal skies.
|
|
|
|
|
|
|
|
|
|
July 19, 2003
|
|
|
|
|
- Fixed spacing of the characters on the finale text.
|
|
|
|
|
- Fixed clipping of scaled sprites in deep water.
|
|
|
|
|
|
|
|
|
|
July 18, 2003
|
|
|
|
|
- Fixed: remove was uninitialized in ParseEpisodeInfo().
|
|
|
|
|
|
|
|
|
|
July 17, 2003
|
|
|
|
|
- Moved the P_LoadBlockmap() call so that it occurs after the nodes are
|
|
|
|
|
processed, so if a node build is necessitated, the blockmap gets rebuilt too.
|
|
|
|
|
- Fixed detection of empty rejects.
|
|
|
|
|
- Stopped loading REJECTs that are too small. They're probably caused by an
|
|
|
|
|
outdated node build, so there contents are invalid and using them it is wrong.
|
|
|
|
|
- Added more checks for seg validity in P_LoadSegs().
|
|
|
|
|
|
|
|
|
|
July 2, 2003
|
|
|
|
|
- Removed the FROMCEILINGZ128 #define in p_local.h. I'm not sure what that was.
|
|
|
|
|
- Added support for properly tiling wall textures whose widths are not a power
|
|
|
|
|
of 2.
|
|
|
|
|
- Fixed: Heretic and Hexen status bars' artifact flash effect was tied to the
|
|
|
|
|
framerate instead of the ticrate.
|
|
|
|
|
- Changed the IMGZ loader so that it maps color 0 to 255 and color 255 to 254.
|
|
|
|
|
- Changed the cast finale so that it draws "our hero" using the player's suit
|
|
|
|
|
color instead of the default green.
|
|
|
|
|
- Changed the BOSSBACK drawing so you can make it some size other than 320x200
|
|
|
|
|
if you want.
|
|
|
|
|
- Moved StringWidth() out of DCanvas and into FFont, where it really belongs.
|
|
|
|
|
|
|
|
|
|
July 1, 2003
|
|
|
|
|
- Changed FPatchTexture::MakeTexture() so if it is loading a patch used by a
|
|
|
|
|
decal it remaps color 255 to 254 rather than to whatever is the closest
|
|
|
|
|
matching color in the palette. This is because decals are usually shade
|
|
|
|
|
maps rather than paletted graphics, so changing color 255 to something
|
|
|
|
|
in the middle of the palette looks bad. I also changed it so that it
|
|
|
|
|
contstructs spans from the existing column data instead of rescanning the
|
|
|
|
|
image for the transparent color, so it should be slightly faster, although
|
|
|
|
|
it probably doesn't matter, since each patch will only be loaded at most
|
|
|
|
|
once per level.
|
|
|
|
|
- Added a fix for sprites that have some, but not all, of their frames
|
|
|
|
|
defined. I found this one when I tried to play Doom Raider. Ironically,
|
|
|
|
|
it worked in 2.0.47 because I had a bug in the code that detected
|
|
|
|
|
undefined frames. To fix, any undefined frames are made into copies of
|
|
|
|
|
the first defined frame.
|
|
|
|
|
|
|
|
|
|
June 30, 2003
|
|
|
|
|
- Added a check to P_TestActivateLine() so that doors faster than 32 cannot
|
|
|
|
|
be opened by monsters.
|
|
|
|
|
- Fixed: If only the right-most texture column of a wall is visible, the
|
|
|
|
|
left-most texture column would be drawn instead.
|
|
|
|
|
- Added the ability for the SetFont ACS command to load normal pictures as
|
|
|
|
|
fonts. When used this way, it creates a new font with only the letter A
|
|
|
|
|
defined, and the letter A is drawn as whatever the picture is. This
|
|
|
|
|
effectively allows you to use HudMessage like a HudPic command. The
|
|
|
|
|
drawback to this method is that you cannot use any color translations, as
|
|
|
|
|
you can with real fonts.
|
|
|
|
|
|
|
|
|
|
June 28, 2003
|
|
|
|
|
- Removed i_remapkeypad cvar. The keypad is now always considered separate
|
|
|
|
|
from the main keyboard. This was really just something I had left over from
|
|
|
|
|
the very early days of ZDoom before it even had Quake-style keybinding.
|
|
|
|
|
- Added prioritization of HUD messages. Lower-numbered IDs are drawn in front
|
|
|
|
|
of higher-numbered IDs. An ID of -1 is identical to 0, except it gets drawn
|
|
|
|
|
behind everything else.
|
|
|
|
|
- Made the puke console command work across the network.
|
|
|
|
|
- Fixed a crash bug in the node builder when the back side of a line
|
|
|
|
|
shares endpoints with another seg, but the front side does not.
|
|
|
|
|
- Reimplemented texture warping for the new texture system. You should
|
|
|
|
|
even be able to warp sprites if you make their widths and heights
|
|
|
|
|
powers of 2, but I did not bother creating any such sprites to test
|
|
|
|
|
with.
|
|
|
|
|
- Added another BOOM fix I just now became aware of: Donuts in Doom would start
|
|
|
|
|
even if the pool sector was already moving.
|
|
|
|
|
|
|
|
|
|
June 26, 2003
|
|
|
|
|
- Removed all the masked block functions, since they are no longer used.
|
|
|
|
|
- Changed fonts into collections of textures.
|
|
|
|
|
- Extended my CPUID code to gather more information.
|
|
|
|
|
- Spent enough time with a P4 to find out which of the vlinetallasm4
|
|
|
|
|
routines works best with it. Answer: They are about the same, and both
|
|
|
|
|
are about 20% slower than the Athlon version running on an Athlon.
|
|
|
|
|
|
|
|
|
|
June 25, 2003
|
|
|
|
|
- Moved all the self-modifying code out of the .data section and into the
|
|
|
|
|
.rtext section. Unfortunately, NASM does not support creating writeable
|
|
|
|
|
code sections (even though the object file format does support this), so
|
|
|
|
|
I create them as regular read-only code sections in NASM and then modify
|
|
|
|
|
them to be writeable using VirtualProtect() at run-time.
|
|
|
|
|
- Tried unrolling vlinetallasm4 to see if I could eek out some more
|
|
|
|
|
performance from it. Unfortunately, it was slower at first and about the
|
|
|
|
|
same at best, so I decided not to keep the unrolled version.
|
|
|
|
|
|
|
|
|
|
June 23, 2003
|
|
|
|
|
- Tried writing an optimized version of DFrameBuffer::CopyFromBuff() using
|
|
|
|
|
prefetchnta and movntq, but it performed just as well as memcpy. Probably
|
|
|
|
|
because video memory is much slower than system memory, so you don't really
|
|
|
|
|
notice any of the inefficiencies of the rep movsd instruction that memcpy
|
|
|
|
|
uses.
|
|
|
|
|
- Modified vlinetallasm4 slightly so that it executes in about 65%-81% of the
|
|
|
|
|
time it used to take on my Athlon XP (depending on resolution) by reordering
|
|
|
|
|
the instructions for parallelism. Note that this is the exact same
|
|
|
|
|
optimization I tried earlier that reduced performance on a Pentium III-M.
|
|
|
|
|
Also, the old version of the function still uses fewer cycles on a P3 than
|
|
|
|
|
the new version uses on an Athlon XP. (7 cycles/pixel compared to 4.8
|
|
|
|
|
cycles/pixel at 800x600). I am curious which version a Pentium 4 likes more.
|
|
|
|
|
I will keep them both around and only select the new version for people with
|
|
|
|
|
AMD processors belonging to family 6 or higher. The K6 might also like the
|
|
|
|
|
Athlon version, but I don't have a K6 to test with, so I will leave it as
|
|
|
|
|
it is now.
|
|
|
|
|
|
|
|
|
|
June 21, 2003
|
|
|
|
|
- Modified R_DrawColumnP_ASM() so that it has an alternate version of the
|
|
|
|
|
inner loop without any writes to ch and hence, no partial register stalls.
|
|
|
|
|
- Removed the R_StretchColumn() function.
|
|
|
|
|
- Consolidated all the different patch drawing functions from DCanvas into a
|
|
|
|
|
single DrawTexture() function. Amiga-style tag lists are used to pass it
|
|
|
|
|
optional parameters to produce the same results as the old functions.
|
|
|
|
|
|
|
|
|
|
June 20, 2003
|
|
|
|
|
- Changed FImageCollection so that it is nothing more than an array of
|
|
|
|
|
texture indices.
|
|
|
|
|
|
|
|
|
|
June 19, 2003
|
|
|
|
|
- Finished moving everything to the new texture system. There is still a
|
|
|
|
|
little work yet to do, but at least the only place where patches are used
|
|
|
|
|
any more is in the texture loaders.
|
|
|
|
|
|
|
|
|
|
June 13, 2003
|
|
|
|
|
- BTW, with the new texture system, you don't need to have every single texture
|
|
|
|
|
defined in a single TEXTURE1 or TEXTURE2 lump. You do need to restrict
|
|
|
|
|
yourself to just one TEXTURE1 and/or TEXTURE2 lump per wad, but they don't
|
|
|
|
|
need to contain definitions for all the textures from the IWAD, since each
|
|
|
|
|
wad's texture definitions are loaded separately.
|
|
|
|
|
- Fixed decals for the new texture system.
|
|
|
|
|
- Added support for the rotation information Blood added to the art files.
|
|
|
|
|
|
|
|
|
|
June 12, 2003
|
|
|
|
|
- Changed screenshot capturing slightly so that it does not need to redraw the
|
|
|
|
|
screen, so now it can capture the framerate in the corner.
|
|
|
|
|
- Added support for animating Build tiles.
|
|
|
|
|
- Added a new thing to use for spawning sprites in Build maps.
|
|
|
|
|
- Got sprites working with the new texture system.
|
|
|
|
|
|
|
|
|
|
June 11, 2003
|
|
|
|
|
- Fixed X-Y scale of Build maps. I had it twice as big as it should have been.
|
|
|
|
|
- Fixed the assembly slope drawer to work with non-square textures.
|
|
|
|
|
|
|
|
|
|
June 10, 2003
|
|
|
|
|
- After putting it off for far too long, I finally started working on a unified
|
|
|
|
|
texture system that will let me treat sprites, flats, and wall textures all
|
|
|
|
|
the same. Sprites are not done yet, but now Build maps can be viewed with
|
|
|
|
|
the correct floors and ceilings. One consequence of this change is that flats
|
|
|
|
|
are now stored in column-major format instead of row-major format, so I had
|
|
|
|
|
to changed the span drawers to account for this.
|
|
|
|
|
- Added a new MAPINFO flag: NoInventoryBar - prevents the inventory bar from
|
|
|
|
|
ever appearing in a Doom map. Also changed the Doom inventory bar so that it
|
|
|
|
|
won't be drawn if you have no inventory items, even if you press the inventory
|
|
|
|
|
selection keys.
|
|
|
|
|
- Changed PTR_UseTraverse() to continue traversal when a backward-facing line
|
|
|
|
|
is encountered.
|
|
|
|
|
|
|
|
|
|
June 9, 2003
|
|
|
|
|
- Fixed: Batman Doom no longer crashes during the cast finale.
|
|
|
|
|
- Made the texture error checking slightly more lax. It seems there is some tool
|
|
|
|
|
that likes to write to unused areas of the texture directory meaninglessly.
|
|
|
|
|
- Fixed a prediction bug caused by moving between sectors with different friction
|
|
|
|
|
levels. P_GetFriction() is sensitive to the ordering of the touching_sectorlist,
|
|
|
|
|
so I need to preserve this ordering before and after prediction.
|
|
|
|
|
|
|
|
|
|
June 7, 2003
|
|
|
|
|
- Changed my transparent color from 0 to 255. An analysis of the original Doom,
|
|
|
|
|
Heretic, and Hexen graphics revealed that this color was never used. It was
|
|
|
|
|
probably going to be the transparent color before the Doom engine switched to
|
|
|
|
|
using spans. But the real reason for the switch is because 255 is the color
|
|
|
|
|
the Build engine uses for transparency, so I can draw its sprites without
|
|
|
|
|
doing anything special.
|
|
|
|
|
|
|
|
|
|
June 6, 2003
|
|
|
|
|
- Made a slight fix to the frame interpolation: The time when the game tic is
|
|
|
|
|
run is the base time I need to use for interpolation. Otherwise, the display
|
|
|
|
|
could glitch if a tic passes between the time the gametic is run and the time
|
|
|
|
|
it is displayed.
|
|
|
|
|
- Added a workaround for NT 4: Somebody goofed, and the default registry entry
|
|
|
|
|
for CLSID_DirectInput under NT 4 has the wrong GUID. Two of the hexits are
|
|
|
|
|
swapped so that it is stored in the registry as
|
|
|
|
|
{25E609E0-B259-11CF-BFC7-444535540000} instead of as
|
|
|
|
|
{25E609E0-B259-11CF-BFC7-444553540000}. You can fix this by running
|
|
|
|
|
"regsvr32 dinput.dll" from a command prompt, or you can bypass it by loading
|
|
|
|
|
dinput.dll and using DirectInputCreate to obtain an interface. Since I can't
|
|
|
|
|
expect everybody running NT 4 to run regsvr32, I have to do the latter. :-(
|
|
|
|
|
- Fixed: Killing a morphed monster left an inert copy of the original monster
|
|
|
|
|
around, so scripts that depended on being able to use thingcount() to determine
|
|
|
|
|
when all the monsters of a certain type are dead would fail.
|
|
|
|
|
- Changed the Pig's and Chicken's MF_COUNTKILL bit to MF3_ISMONSTER, so morphing
|
|
|
|
|
a monster does not add to the total number of monsters on the level.
|
|
|
|
|
- Fixed: FDoomStatusBar::DrawToSBar could create a partially transparent status
|
|
|
|
|
bar because it left color 0 alone. I use color 0 as a transparent color for
|
|
|
|
|
image blocks like this. (Though the status bar doesn't really need to be
|
|
|
|
|
drawn with transparent parts, it was convenient to do it that way.)
|
|
|
|
|
- Changed the tid and TIDtoHate members of AActor from unsigned to signed, so
|
|
|
|
|
that you can use negative tags with your teleporters.
|
|
|
|
|
|
|
|
|
|
June 2, 2003
|
|
|
|
|
- Fixed: Absolute lighting on walls was very dark. I don't think I have this
|
|
|
|
|
feature accessable through Doom/Hexen maps, so you only notice it if you
|
|
|
|
|
try to load a BUILD map.
|
|
|
|
|
- Added some command-line parameters to help make BUILD maps look better:
|
|
|
|
|
-art Specifies the directory with the TILESxxx.ART files.
|
|
|
|
|
-bpal Specifies the palette.dat file.
|
|
|
|
|
So if I want to look at the Blood maps, I can do this:
|
|
|
|
|
zdoom -art d:\games\blood -bpal d:\games\blood\palette.dat -file d:\games\blood\*.map
|
|
|
|
|
(assuming that I have already extracted all the maps from the RFF file).
|
|
|
|
|
Unfortunately, the tiles only show up on walls. I need to create a unified
|
|
|
|
|
texture system so that wall textures and flats can be used identically.
|
|
|
|
|
- Fixed: Bots would only move on the arbitrator's computer in a net game.
|
|
|
|
|
- Fixed: If foggy and non-foggy areas were visible simultaneously, gun
|
|
|
|
|
flashes would sometimes light the foggy area.
|
|
|
|
|
- Fixed: R_ResetViewInterpolation did not actually work.
|
|
|
|
|
- Fixed: Line-to-line teleporters did net reset the view interpolation.
|
|
|
|
|
- Fixed: The super-fast projectiles in Heretic and Hexen with custom Tickers
|
|
|
|
|
did not update their previous positions, so they could not be interpolated
|
|
|
|
|
correctly by the renderer.
|
|
|
|
|
|
|
|
|
|
May 31, 2003
|
|
|
|
|
- Added support for loading Blood maps. They are no more playable than
|
|
|
|
|
normal BUILD maps, but since I can already load Blood sounds and BUILD maps,
|
|
|
|
|
it seemed like the thing to do.
|
|
|
|
|
- Fixed: Loading BUILD maps was broken because they did not initialize
|
|
|
|
|
sectors' ZoneNumber.
|
|
|
|
|
- Changed the default for vid_vsync from true to false, because with the
|
|
|
|
|
unlimited framerate, no vsync actually produces better control.
|
|
|
|
|
|
|
|
|
|
May 30, 2003
|
|
|
|
|
- Added interpolation for moving polyobjects.
|
|
|
|
|
- Optimized SpawnPolyobj() and IterFindPolySegs() so that they are loads
|
|
|
|
|
faster.
|
|
|
|
|
|
|
|
|
|
May 29, 2003
|
|
|
|
|
- Fixed Dehacked support for patches that swap sprite names instead of
|
|
|
|
|
changing them to something completely new.
|
|
|
|
|
- Fixed the new net code to recover properly in situations where there is
|
|
|
|
|
high packet loss. Except for one instance: If a player quits with -netmode
|
|
|
|
|
1, and the packet with that quit notification gets dropped, it never gets
|
|
|
|
|
sent again, so any players left will hang waiting for tic updates for a
|
|
|
|
|
player who is no longer there.
|
|
|
|
|
- Rewrote D_ArbitrateNetStart() so that all data passes through the host.
|
|
|
|
|
This should allow computers on separate networks to play together as long
|
|
|
|
|
as they can all talk to the host and you use -netmode 1.
|
|
|
|
|
- Bumped BACKUPTICS up from 12 to 36.
|
|
|
|
|
- Finally finished decoupling -dup from the game ticker. Getting it to work
|
|
|
|
|
without consistancy failures was a lot more work than I expected.
|
|
|
|
|
Fortunately, I think it was worth it. I can notice little difference now
|
|
|
|
|
between -dup 5 and no -dup (aka -dup 1). Before, doing that would take
|
|
|
|
|
your framerate down to 7 FPS, rendering the game practically unplayable.
|
|
|
|
|
|
|
|
|
|
May 28, 2003
|
|
|
|
|
- Started decoupling -dup from the framerate.
|
|
|
|
|
- Fixed an obscure crash bug caused by drawing past the bottom of composite
|
|
|
|
|
textures whose heights are not powers of 2. If the composite texture was
|
|
|
|
|
constructed at the end of a page of memory, the game could read into the
|
|
|
|
|
next page, which is bad if the next page is not mapped in.
|
|
|
|
|
|
|
|
|
|
May 27, 2003
|
|
|
|
|
- Framerates above 35 FPS should now be done. Whether or not it's good in a
|
|
|
|
|
net game, I'm not sure, since they require rather precise timing to play
|
|
|
|
|
smoothly.
|
|
|
|
|
- Added interpolation for every actor in the game, after I watched a rocket
|
|
|
|
|
flying and it was obvious that its position was updating less often than
|
|
|
|
|
the view.
|
|
|
|
|
- Added functions from BUILD for interpolating floor and ceiling movement.
|
|
|
|
|
- Added some view interpolation to allow frame rates above 35 FPS. It looks
|
|
|
|
|
very nice (and playing at 35 FPS now looks very bad), _except_ it sometimes
|
|
|
|
|
misses a tic so you get an annoying hiccup that is worse than just keeping
|
|
|
|
|
things locked at 35 FPS. This is despite my sprinkling NetUpdate calls to
|
|
|
|
|
some of the most frequently used rendering functions. [edit: It seems the
|
|
|
|
|
hiccups were because I had a background program running; even at idle
|
|
|
|
|
priority, it still stole a little time away from ZDoom every now and then.]
|
|
|
|
|
|
|
|
|
|
May 23, 2003
|
|
|
|
|
- Got a crash in R_SetWindow() when it was setting the value of the r_viewsize
|
|
|
|
|
cvar. After recompiling with the _CRTDBG_CHECK_ALWAYS_DF flag, I could not
|
|
|
|
|
reproduce it to find out why it happened. Poo.
|
|
|
|
|
- Added player movement prediction to make network games feel more responsive
|
|
|
|
|
when gametic is lagging behind maketic. You can turn it off by setting
|
|
|
|
|
cl_noprediction to true.
|
|
|
|
|
- Fixed: Using -extratic with the packet server crashed because it tried
|
|
|
|
|
to send tic -1, which doesn't exist. I don't know why it didn't cause
|
|
|
|
|
problems with the regular peer mode.
|
|
|
|
|
- Stopped using all named RNGs to check game consistancy. I have too many
|
|
|
|
|
named ones that aren't all used in the gameplay loop. Now I just pick a
|
|
|
|
|
few key RNGs and use those.
|
|
|
|
|
- Added another byte to the packets sent from the master to the slaves that
|
|
|
|
|
contains the master's maketic. This is so that the slaves speed up or
|
|
|
|
|
slow down to match the master instead of each other.
|
|
|
|
|
|
|
|
|
|
May 22, 2003
|
|
|
|
|
- Corrected my misunderstanding of how the frameskip array is used in
|
|
|
|
|
d_net.cpp.
|
|
|
|
|
- I found out how to make three player games perform fine on XP: Set the
|
|
|
|
|
processor scheduling back from "Background services" to "Programs".
|
|
|
|
|
Here's a link to an article that explains the values for the
|
|
|
|
|
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\PriorityControl\
|
|
|
|
|
Win32PrioritySeparation key that this setting changes:
|
|
|
|
|
<http://www.mcpmag.com/columns/article.asp?EditorialsID=405>. I think
|
|
|
|
|
it's probably more the short time slices than anything else that makes
|
|
|
|
|
it perform well. Why had I changed it from "Programs" in the first place?
|
|
|
|
|
Because I was having trouble with background console programs sucking
|
|
|
|
|
up all the CPU time, so I wanted to give everything equal time slices.
|
|
|
|
|
I now have the registry key set to 0x20, which is short, fixed time slices.
|
|
|
|
|
Not quite the same as the "Programs" setting. - Using the release build
|
|
|
|
|
instead of the debug build obviously helps performance, too.
|
|
|
|
|
|
|
|
|
|
May 21, 2003
|
|
|
|
|
- Tried playing a multiplayer game on two machines for the first time in
|
|
|
|
|
ages, and it went out of sync very quickly. It turns out that my laptop
|
|
|
|
|
had genblockmap false, and my desktop had genblockmap true. Since this
|
|
|
|
|
obviously makes it go out of sync, I'll have to make it a server var.
|
|
|
|
|
Gennodes will need the same treatment, since it also implies genblockmap
|
|
|
|
|
even if genblockmap is false. For ZDoomGL, however... I suppose I'll need
|
|
|
|
|
to disable the blockmap regeneration if the nodes are only being built
|
|
|
|
|
to get GL information.
|
|
|
|
|
- Wrote some code to let the net arbitrator function as a packet server. It
|
|
|
|
|
makes everybody jerky, but that might just be because I'm running two
|
|
|
|
|
clients on XP, and XP seems to do much worse at dividing processor time
|
|
|
|
|
up equally between processes than NT 4. A two player game on one machine
|
|
|
|
|
runs fine after a second or two, but three players is crap.
|
|
|
|
|
[Okay, tried it on three separate machines, and it wasn't jerky, so that's
|
|
|
|
|
a relief. Gametic was lagging behind maketic by 4 on the host, however, so
|
|
|
|
|
it wasn't quite as responsive as I would have liked. That's opposite what
|
|
|
|
|
I would have expected, since the host gets the ticcmds from the other
|
|
|
|
|
players first. Maybe I need to investigate the code where it "speeds up
|
|
|
|
|
time" some more. Or maybe I need to have the master send as many tics as
|
|
|
|
|
it has for the other machines instead of the lowest common number of tics;
|
|
|
|
|
e.g. If it has 1 tic from one machine and 2 tics from another, it should
|
|
|
|
|
send all of them to a third machine instead of just 1 tic each from the
|
|
|
|
|
first two machines. For comparison, a 2 player game (which is effectively
|
|
|
|
|
always peer-to-peer even with packet server turned on), had gametic lag
|
|
|
|
|
behind maketic by 2.]
|
|
|
|
|
- Removed the names from these RNGs: pr_chainwiggle, pr_afx, pr_decal, and
|
|
|
|
|
pr_decalchoice. I don't know why it happens, but they can sometimes
|
|
|
|
|
disagree with each other in a network game, particularly pr_decal. Since
|
|
|
|
|
they don't have any real impact on game sync, removing their names keeps
|
|
|
|
|
them from affecting the sync check, but it also means they won't be
|
|
|
|
|
remembered across save games.
|
|
|
|
|
- Added DEM_EMPTYUSERCMD so that if a player's input doesn't change from one
|
|
|
|
|
tic to the next, I can save one byte in the network packet. That makes the
|
|
|
|
|
minimum packet size for one tic 5 bytes: 2 for the header, 2 for
|
|
|
|
|
consistancy, and 1 for the tic itself. I'd call that a big improvement over
|
|
|
|
|
the previous minimum size of 14 bytes (8 header, 2 to hold the list of
|
|
|
|
|
players in that packet, 2 for consistancy, and 2 for the tic).
|
|
|
|
|
- Fixed: Damaging a monster would not reset its threshold value, so it would
|
|
|
|
|
be more willing to switch targets than it should have been.
|
|
|
|
|
- Changed AActor::StaticSpawn() to not initialize the LastLook member for
|
|
|
|
|
non-monsters. This caused the game to go out of sync when non-essential
|
|
|
|
|
actors were spawned on one machine and not another (e.g. decals and bot
|
|
|
|
|
aiming helpers).
|
|
|
|
|
|
|
|
|
|
May 20, 2003
|
|
|
|
|
- Beefed up the consistancy checking so that it now considers more than just
|
|
|
|
|
the players' X positions.
|
|
|
|
|
|
|
|
|
|
May 19, 2003
|
|
|
|
|
- Optimized the size of the network packets some. The minimum header size is
|
|
|
|
|
now 2 bytes instead of 10. Note that I removed the checksum from the header.
|
|
|
|
|
The network transport should already be doing error checking and not provide
|
|
|
|
|
us with any corrupt packets. In the highly unlikely event that somebody ports
|
|
|
|
|
this back to DOS, they'll need to add a checksum in there. Also made some
|
|
|
|
|
corrections to the packets that get sent around before the game begins.
|
|
|
|
|
|
|
|
|
|
May 16, 2003
|
|
|
|
|
- Made active powerup colors customizable via dehacked misc section.
|
|
|
|
|
- Changed the netbuffer checksum to use CRC32 (which gets used like a CRC28
|
|
|
|
|
because the top 4 bits are chopped off to make room for some command bits).
|
|
|
|
|
I could probably get rid of the checksum entirely, since UDP packets
|
|
|
|
|
already include their own checksum field.
|
|
|
|
|
- Fixed: When one player in a network game unexpectedly quit, everybody else
|
|
|
|
|
would bomb out with ECONNRESET. Now the i_net.cpp code pretends that those
|
|
|
|
|
players sent out NCMD_EXIT packets. Why a connectionless protocol like UDP
|
|
|
|
|
would return a connection-oriented error code, I do not know.
|
|
|
|
|
- Starting a network game with the -join parameter before the host started
|
|
|
|
|
would fail with ECONNRESET. This is no longer an error, so you don't
|
|
|
|
|
need to start the host first anymore.
|
|
|
|
|
- Added MF2_NOTELEPORT to TeleportFog.
|
|
|
|
|
|
|
|
|
|
May 5, 2003
|
|
|
|
|
- Fixed: P_Move() used the actor's default speed instead of the actor's
|
|
|
|
|
speed.
|
|
|
|
|
|
|
|
|
|
May 2, 2003
|
|
|
|
|
- Added mousewheel support to the console.
|
|
|
|
|
|
|
|
|
|
April 26, 2003
|
|
|
|
|
- Uploaded 2.0.47.
|
|
|
|
|
- Added support for custom episode definitions (for all games, not just
|
|
|
|
|
those that are already divided into episodes).
|
|
|
|
|
- Fixed: Doom Shareware does not have an ENDPIC graphic, so don't try to
|
|
|
|
|
show it.
|
|
|
|
|
- Added a visible inventory bar for Doom.
|
|
|
|
|
|
|
|
|
|
April 25, 2003
|
|
|
|
|
- Added APROP_Ambush for Set/GetActorProperty.
|
|
|
|
|
- Added myasctime() function, which is equivalent to
|
|
|
|
|
asctime(localtime(&time(NULL))), except it doesn't crash when the current
|
|
|
|
|
time is before Jan 1, 1970 (which makes localtime return NULL).
|
|
|
|
|
|
|
|
|
|
April 20, 2003
|
|
|
|
|
- Added a NULL file check to M_NotifyNewSave(). I was sent a crash report
|
|
|
|
|
where this appears to have been the cause.
|
|
|
|
|
- Fixed: Using teleporters with actor hits ceiling/floor triggers was
|
|
|
|
|
problematic because the actor would still be clipped to its new ceiling
|
|
|
|
|
or floor even if the teleport made it unnecessary
|
|
|
|
|
- Finished Thing_ProjectileIntercept so that it works in three dimensions.
|
|
|
|
|
Big thanks to all those on the notgod phorum who helped me with the math.
|
|
|
|
|
|
|
|
|
|
April 16, 2003
|
|
|
|
|
- Extended my speedup trick for 1024x768 so that it also gets used for
|
|
|
|
|
2048x1536 and 512x384. I can now play the beginning of MAP01 in 2048x1536
|
|
|
|
|
at ~28 fps instead of 14 fps. 512x384 is so small that it doesn't really
|
|
|
|
|
matter, but I think it is a few tenths of a millisecond faster now. What
|
|
|
|
|
I think is going on: If the screen's pitch is a power of 2, then drawing
|
|
|
|
|
columns (which Doom does a lot of in its renderer unless you're looking at
|
|
|
|
|
the floor) will flush the cache lines a bunch and bring performance
|
|
|
|
|
plummetting, as it has to transfer much more data to and from main memory.
|
|
|
|
|
By making the pitch slightly larger so that it isn't a power of 2, the
|
|
|
|
|
cache gets utilized better, so performance goes up.
|
|
|
|
|
- Started adding Thing_ProjectileIntercept special (175). It is identical to
|
|
|
|
|
Thing_ProjectileAimed, except it leads the target.
|
|
|
|
|
- Fixed: Activating SoundEnvironment actors did not work, because I forgot
|
|
|
|
|
to include the AActor * parameter in the prototypes.
|
|
|
|
|
|
|
|
|
|
April 14, 2003
|
|
|
|
|
- Uploaded 2.0.46.
|
|
|
|
|
- Added support for adding new projectiles to DECORATE.
|
|
|
|
|
- Changed the summon cheat so that it can be used to shoot projectiles
|
|
|
|
|
and not just spawn them in place.
|
|
|
|
|
- Made the Lost Souls spawned by Pain Elementals inherit the Pain
|
|
|
|
|
Elementals' hate information.
|
|
|
|
|
- Fixed the poison dart's poison application.
|
|
|
|
|
- Added a NULL-actor check to P_DisconnectEffect(), because I received a
|
|
|
|
|
crash log where it was called with a NULL actor.
|
|
|
|
|
|
|
|
|
|
April 12, 2003
|
|
|
|
|
- Fixed: The calulation of secplane_t::ic was different in p_setup.cpp's
|
|
|
|
|
slope spawners than it was in secplane_t's serializer, so if a demo was
|
|
|
|
|
made on a level with slopes, and the game was saved during the course of
|
|
|
|
|
the demo, the demo would desync if the player went on a slope after the
|
|
|
|
|
save.
|
|
|
|
|
- Fixed: If a DirectInput 8 interface could not be obtained, the game would
|
|
|
|
|
hang while trying to read mouse input using the DirectInput 3 interface.
|
|
|
|
|
This is because DI8 has a DIDEVICEOBJECTDATA structure that is 4 bytes
|
|
|
|
|
larger than DI3's. Unfortunately, IDirectInputDevice::GetDeviceData() does
|
|
|
|
|
not do anything useful when passed a structure larger than it recognizes.
|
|
|
|
|
It leaves the buffer alone, does not touch *pdwInOut, and returns DI_OK,
|
|
|
|
|
which is quite misleading. I had to step into DirectInput before I
|
|
|
|
|
realized what was going on, although I could have also discovered it by
|
|
|
|
|
browsing dinput.h more thoroughly.
|
|
|
|
|
|
|
|
|
|
April 11, 2003
|
|
|
|
|
- Moved joystick reading out of I_GetEvent() and into I_StartFrame(). That's
|
|
|
|
|
where it was in the original DOS Doom, because reading a traditional
|
|
|
|
|
gameport can be an expensive operation (though I think USB is much faster).
|
|
|
|
|
|
|
|
|
|
April 9, 2003
|
|
|
|
|
- note to self: Remove BOOGA s
|
|
|
|
|
- Fixed: Thing_Projectile2 wasn't shifting the zspeed over.
|
|
|
|
|
- Fixed: The slopes created with P_SetSlope() had their orientations inverted.
|
|
|
|
|
- Time to upload 2.0.45.
|
|
|
|
|
- Made "cyborg" a synonym for the "other" gender, for compatibility reasons.
|
|
|
|
|
- Fixed: Forget "== 0" after stricmp (Line1, "No Ice Death").
|
|
|
|
|
|
|
|
|
|
April 8, 2003
|
|
|
|
|
- Uploaded 2.0.44.
|
|
|
|
|
- Changed A_FreezeDeathChunks() to not use S_FREETARGMOBJ. It just destroys
|
|
|
|
|
the actor instead. I should probably get rid of S_FREETARGMOBJ globally,
|
|
|
|
|
since it isn't really needed with my stale pointer cleanup code.
|
|
|
|
|
- Fixed lockups caused by changing the TID of an actor stored in another
|
|
|
|
|
actor's LastLook member because of Thing_Hate.
|
|
|
|
|
- Made MF4_NOICEDEATH accessible through Dehacked as "No Ice Death".
|
|
|
|
|
- Added "No Autofreeze" as a misc Dehacked setting.
|
|
|
|
|
- Fixed the "Entering Unnamed" text that could be seen when finishing a game.
|
|
|
|
|
- Fixed: Frozen things could not be shattered with radius damage, because the
|
|
|
|
|
thrust they got after the damage would reset their tic counters to 3 seconds.
|
|
|
|
|
- New: The marines now start with the same sprite scaling as the player, and
|
|
|
|
|
AScriptedMarine::SetSprite() now copies the scaling of the actor it's taking
|
|
|
|
|
the new sprite from.
|
|
|
|
|
- Added some code to check for fake floor/ceiling sector actions when an actor
|
|
|
|
|
moves up or down because of moving floors and ceilings.
|
|
|
|
|
- Fixed: SetActorProperty for APROP_Health assumed you were working with
|
|
|
|
|
players after I added the player fix for it.
|
|
|
|
|
- Fixed: The plasma ball still had MF2_ICEDAMAGE from my testing.
|
|
|
|
|
- Fixed: Gender selection in the menu was broken because I had changed to
|
|
|
|
|
"cyborg" to "other" in m_menu.cpp but not in d_netinfo.cpp. Justification:
|
|
|
|
|
You can have male and female cyborgs, so cyborg isn't a proper gender.
|
|
|
|
|
- Some files were missing from the VC6 and Dev-C++ projects, so fixed that.
|
|
|
|
|
|
|
|
|
|
April 7, 2003
|
|
|
|
|
- Uploaded 2.0.43.
|
|
|
|
|
- Fixed incorrect end-of-LevelInfos detection. Interestingly, it only crashed
|
|
|
|
|
when compiled with GCC.
|
|
|
|
|
- Updated the crash logger to display the exception information for an
|
|
|
|
|
access violation.
|
|
|
|
|
- Added Thing_Projectile2 ACS command. It's mostly a clone of the
|
|
|
|
|
Thing_Projectile and Thing_ProjectileGravity specials, but it lets you give
|
|
|
|
|
the projectile a TID.
|
|
|
|
|
- Added a newtid parameter to the Thing_ProjectileAimed special.
|
|
|
|
|
- Fixed flat warping so that it does not crash with flats smaller than 64x64.
|
|
|
|
|
- Fixed: The secondary frost shards shed by the mage's primary frost missile
|
|
|
|
|
could damage the player who shot them.
|
|
|
|
|
- Made the randomization of the starting tic count for missiles an actor flag.
|
|
|
|
|
This is so that Heretic and Hexen missiles can be better used in a Doom game.
|
|
|
|
|
|
|
|
|
|
April 6, 2003
|
|
|
|
|
- Added a check for NULL players to DCajunMaster::WhatToGet() because I got
|
|
|
|
|
a bug report where that happened.
|
|
|
|
|
- Fixed: MF3_NOTARGET only worked if the attackers's TID was non-0 or you used
|
|
|
|
|
Thing_Hate on the target.
|
|
|
|
|
- Fixed: The Heretic staff was able to damage ghost enemies, which it
|
|
|
|
|
isn't supposed to be able to do.
|
|
|
|
|
- Fixed: In their charge attack, Minotaurs could only do damage to other
|
|
|
|
|
monsters and not to players.
|
|
|
|
|
|
|
|
|
|
April 5, 2003
|
|
|
|
|
- Created a minimal FLAC distribution with just the parts ZDoom needs to
|
|
|
|
|
compile, so the lazy people who want to build don't need to grab the
|
|
|
|
|
library themselves.
|
|
|
|
|
- Changed A_FreezeDeathChunks() so that it spawns more ice chunks for large
|
|
|
|
|
things than it does for small things.
|
|
|
|
|
- Added a generic ice death, so things can turn to ice and shatter without
|
|
|
|
|
having a specific ice death. Now you can use bex to create a Doom missile
|
|
|
|
|
that does ice damage and watch Hexen's cool ice death.
|
|
|
|
|
- Fixed: Radius damage did more thrust as your distance from the bomb
|
|
|
|
|
source increased.
|
|
|
|
|
|
|
|
|
|
April 2, 2003
|
|
|
|
|
- Changed ripper projectiles to do damage per-tic and not per-step. This is
|
|
|
|
|
more intuitive and also makes for better Heretic/Hexen compatibility,
|
|
|
|
|
since those games don't adjust the step count with projectile size (unless
|
|
|
|
|
the radius > 15, but none of their ripping projectiles are that big).
|
|
|
|
|
- Fixed some weirdness that can happen when the listener is positioned
|
|
|
|
|
directly on a sound source in 3D sound mode by moving the listener
|
|
|
|
|
back slightly from its true location. It was especially pronounced with
|
|
|
|
|
the nForce but can also be heard with the Audigy depending on the
|
|
|
|
|
environment settings.
|
|
|
|
|
- Fixed: Sector sounds always played at Z coordinate 0, so they weren't
|
|
|
|
|
always audible when using 3D sound.
|
|
|
|
|
- Added all the EAX presets from UT2003 and verified that the SNDEAX parser
|
|
|
|
|
actually works. Also tweaked the EAX editor a bit.
|
|
|
|
|
|
|
|
|
|
April 1, 2003
|
|
|
|
|
- Updated to FMOD 3.62.
|
|
|
|
|
- Fixed: Loading more than one dehacked patch (through some means other
|
|
|
|
|
than an include statement) that altered state information would not work
|
|
|
|
|
because only the first one would be able to find the correct locations
|
|
|
|
|
of the original numbered states.
|
|
|
|
|
|
|
|
|
|
March 31, 2003
|
|
|
|
|
- Fixed: PCD_PRINTNAME with input values 1 through 8 did not work properly.
|
|
|
|
|
|
|
|
|
|
March 29, 2003
|
|
|
|
|
- Added support for normal, buring, and frozen deaths to decorations. Still
|
|
|
|
|
need to test these.
|
|
|
|
|
- Changed P_SeekerMissile() to aim at the center of targets when seeking
|
|
|
|
|
vertically, rather than at the targets' feet.
|
|
|
|
|
- Fixed: MF_ICECORPSE was not being set when things froze to death.
|
|
|
|
|
- Changed DCanvas::TextSWrapper() so that it can draw characters that are
|
|
|
|
|
clipped, since that was fixed in the underlying block drawers a long
|
|
|
|
|
time ago.
|
|
|
|
|
- Fixed: V_BreakLines() crashed if it encountered a character wider than the
|
|
|
|
|
width of the box used to break the text in.
|
|
|
|
|
|
|
|
|
|
March 27, 2003
|
|
|
|
|
- Added support for playing SLIGE-generated maps without running them through
|
|
|
|
|
a node builder first.
|
|
|
|
|
|
|
|
|
|
March 26, 2003
|
|
|
|
|
- Added support for FLAC music and sounds. See <http://flac.sourceforge.net>
|
|
|
|
|
for more information about what FLAC is. Since it's a lossless codec, I
|
|
|
|
|
don't really want to see people using it for music, but the option is
|
|
|
|
|
there none-the-less. All the sounds in zdoom.wad (sans DSEMPTY) have now
|
|
|
|
|
been compressed using FLAC.
|
|
|
|
|
- Added a fix for fonts that contain color 255 in their glyphs. LWM had some
|
|
|
|
|
fonts like this, and it counts as a bug in imagetool (which I have now
|
|
|
|
|
fixed).
|
|
|
|
|
|
|
|
|
|
March 22, 2003
|
|
|
|
|
- Made more flags available to decorations.
|
|
|
|
|
|
|
|
|
|
March 21, 2003
|
|
|
|
|
- Added Alt-Enter as a hotkey for toggling between fullscreen and windowed
|
|
|
|
|
modes, as is customary for Windows programs. Also discovered that I can't
|
|
|
|
|
seem to run fullscreen through the debugger anymore without the game
|
|
|
|
|
window minimizing. [Must have been something screwy going on then; I can
|
|
|
|
|
run it fullscreen under the debugger now.]
|
|
|
|
|
- Revamped the joystick menu to support axis mapping and multiple controllers.
|
|
|
|
|
Under Windows versions that send DBT_DEVNODES_CHANGED broadcasts, it even
|
|
|
|
|
updates itself automatically when you attach/detach USB controllers.
|
|
|
|
|
- Changed MF2_REFLECTIVE behavior so that missiles also get reflected
|
|
|
|
|
vertically.
|
|
|
|
|
- Changed all the weapon state functions' prototyes from (player_t*, pspdef_t*)
|
|
|
|
|
to (AActor*, pspdef_t*). Now they have the same first parameter as the
|
|
|
|
|
standard state functions, so bex/dehacked patches should be able to use the
|
|
|
|
|
standard code pointers with players, so long as they don't need a target
|
|
|
|
|
or something similar that player's don't maintain. It also means that weapon
|
|
|
|
|
functions that do very generic things like just playing a sound should work
|
|
|
|
|
with non-weapons.
|
|
|
|
|
- Changed AActor::UpdateWaterLevel to accurately reflect when a player's eyes
|
|
|
|
|
are underwater.
|
|
|
|
|
- Made setslot usable from KEYCONF lumps.
|
|
|
|
|
|
|
|
|
|
March 19, 2003
|
|
|
|
|
- Updated the joystick code to use DirectInput instead of the old multimedia
|
|
|
|
|
system.
|
|
|
|
|
- Removed dxcrap.cpp. I am linking with dinput(8).lib again.
|
|
|
|
|
- Fixed: If Trace() did not hit a wall in a sector with a fake floor before
|
|
|
|
|
the trace ran out, it would not set CrossedWater even if the trace crossed
|
|
|
|
|
below the fake floor.
|
|
|
|
|
- Altered P_LineAttack() so that it doesn't spawn bullet puffs on lines
|
|
|
|
|
using the Line_Horizon special.
|
|
|
|
|
|
|
|
|
|
March 17, 2003
|
|
|
|
|
- Added a check for a NULL lastenemy in A_LightningClip() because Mike B. had
|
|
|
|
|
a crash where this was NULL.
|
|
|
|
|
- Gave the fist and chainsaw AmmoUse values of 1, so dehacked patches that make
|
|
|
|
|
them ammo-using will use ammo without needing to specify a new AmmoUse.
|
|
|
|
|
- Added new sound sequences for the Heretic doors, because they don't have the
|
|
|
|
|
same sound usage as Doom's.
|
|
|
|
|
- Fixed: The powered-up phoenix rod would use ammo when a Tome of Power ran out
|
|
|
|
|
and infinite ammo was enabled.
|
|
|
|
|
- Added SpawnPoint initialization to AActor::StaticSpawn(), so things that get
|
|
|
|
|
spawned during the game can respawn someplace other than (0,0).
|
|
|
|
|
- Changed projectile impact lines so that the projectile's owner activates the
|
|
|
|
|
script instead of the projectile itself. Projectile cross lines will still be
|
|
|
|
|
activated by the projectile.
|
|
|
|
|
- Fixed: The window drew over the video window when WM_PAINT was received while
|
|
|
|
|
playing a movie in windowed mode.
|
|
|
|
|
- Fixed: Closing the window while a movie was playing would close the window
|
|
|
|
|
without quitting the game.
|
|
|
|
|
- Fixed: Fake inventory items cleared their special after being picked up.
|
|
|
|
|
- Added support for setting the player's speed using SetActorProperty()
|
|
|
|
|
and APROP_Speed. This speed gets multiplied to the player's normal
|
|
|
|
|
speed.
|
|
|
|
|
- Changed A_BrainSpit() so that it does not rely on a pointer to the
|
|
|
|
|
DBrainState in the BrainEye that calls it. This allows it to be used
|
|
|
|
|
by actors other than the eye, which is necessary because of Dehacked.
|
|
|
|
|
|
|
|
|
|
March 13, 2003
|
|
|
|
|
- Fixed: Loading a FON2 font without a space or N character would read
|
|
|
|
|
(essentially) undefined memory when calculating the width to use for the
|
|
|
|
|
space character.
|
|
|
|
|
|
|
|
|
|
March 11, 2003
|
|
|
|
|
- Removed the old midiStream-based code.
|
|
|
|
|
- Wrote a SNDEAX lump parser.
|
|
|
|
|
- Fixed: Aliases defined in KEYCONF lumps were still saved to the ini. They
|
|
|
|
|
could also override aliases stored in the ini. Now, if an alias is defined
|
|
|
|
|
in a KEYCONF, it will not be saved to the ini, and if there is an alias with
|
|
|
|
|
the same name already defined in the ini, the original alias will be kept in
|
|
|
|
|
the ini when you quit.
|
|
|
|
|
|
|
|
|
|
March 10, 2003
|
|
|
|
|
- Fixed: Defining an animation for a non-existant texture could stomp on memory.
|
|
|
|
|
- Added support for different sound zones with individual EAX settings. To assign
|
|
|
|
|
sectors to different zones, you either make them physically unconnected or you
|
|
|
|
|
use a Line_SetIdentification with the second parameter set to 1.
|
|
|
|
|
- Fixed: Changed FindLevelByWarpTrans() search order to return later warptrans
|
|
|
|
|
matches in favor of earlier ones, so you can start Hexen DK with the menu
|
|
|
|
|
again.
|
|
|
|
|
- Fixed: AZShrub2::GetExplodeParms() and AZXmasTree::GetExplodeParms() were
|
|
|
|
|
mis-named and had the wrong prototypes, so they were never called.
|
|
|
|
|
- Added a hack when playing Hexen so that the BLANK texture is permanently mapped
|
|
|
|
|
to the empty texture. The standard Hexen maps use it as an empty texture,
|
|
|
|
|
even though it isn't really empty.
|
|
|
|
|
|
|
|
|
|
March 8, 2003
|
|
|
|
|
- Changed sprite initialization so that TNT1 is always the first sprite. This
|
|
|
|
|
is what I wanted a long time ago, and I think it used to be like this but
|
|
|
|
|
got changed when I rearranged the sprite table initialization.
|
|
|
|
|
- Changed the TID target search so that it looks for actors in the same block
|
|
|
|
|
before it searches the actor chains. Helm's Deep's AI seems a bit quicker once
|
|
|
|
|
things get going now, but there are still bits of architecture (lots of masked
|
|
|
|
|
mid textures) that are going to slow it down, and it's still slow at the
|
|
|
|
|
beginning and when the second wave starts moving.
|
|
|
|
|
|
|
|
|
|
February 24, 2003
|
|
|
|
|
- Decided to take up the challenge and figure out how to load Strife textures.
|
|
|
|
|
It looks like they just removed some unused fields from the texture
|
|
|
|
|
directory. Now you can actually load strife1.wad and look at the maps, but
|
|
|
|
|
there are still plenty of oportunities to make it crash if you try to use
|
|
|
|
|
it as an iwad.
|
|
|
|
|
- Added a check for negative texture patchcounts to R_InitTextures(), just
|
|
|
|
|
for the people who try to use -iwad strife1.wad.
|
|
|
|
|
- Fixed: The game would hang when trying to overwrite an read-only savegame
|
|
|
|
|
for the same reason it used to hang when playing back a save operation
|
|
|
|
|
recorded in a demo: The save itself was cancelled, but the request to save
|
|
|
|
|
was not cancelled, so it would endlessly try to save the game.
|
|
|
|
|
- Fixed: P_BounceWall() would bounce every bounce type off of walls, but it
|
|
|
|
|
shouldn't have done anything for MT2_HERETICBOUNCE.
|
|
|
|
|
|
|
|
|
|
February 18, 2003
|
|
|
|
|
- Changed: P_RadiusAttack no longer tries to apply damage when distance is 0.
|
|
|
|
|
|
|
|
|
|
February 15, 2003
|
|
|
|
|
- Changed P_SetSlope() to scale by ANGLE_90 instead of ANGLE_180. Silly me;
|
|
|
|
|
Scale() works with signed ints, but ANGLE_180 is to big for that, so it
|
|
|
|
|
could overflow.
|
|
|
|
|
|
|
|
|
|
Feburary 13, 2003
|
|
|
|
|
- Changed: When locating a map by its warptrans number fails, it can now try
|
|
|
|
|
to locate it by map number instead. Apparently, an old version of the Hexen
|
|
|
|
|
demo did not have warptrans.
|
|
|
|
|
|
|
|
|
|
February 12, 2003
|
|
|
|
|
- 2.0.42 time.
|
|
|
|
|
- Fixed: If weapon drop was on and a player respawned before their body went
|
|
|
|
|
nonblocking, they wouldn't actually drop a weapon.
|
|
|
|
|
- Dehacked compatibility fix: MF3_ISMONSTER now copies the state of
|
|
|
|
|
MF_COUNTKILL for any actors that get patched.
|
|
|
|
|
- BOOM compatibility fix: Lines with a type of 0 still need their ID set to
|
|
|
|
|
their tag. P:AR's rotating light on E1M1 requires this for the teleport line
|
|
|
|
|
its voodoo doll uses.
|
|
|
|
|
- Added code to set the MIDI output device's volume to full for devices that
|
|
|
|
|
support it. That makes the full range of volumes available without having
|
|
|
|
|
to set the volume with the Windows mixer.
|
|
|
|
|
- Fixed: The GiveInventory command would give one inventory item if the amount
|
|
|
|
|
was 0.
|
|
|
|
|
- Fixed: Inventory items that were not present in a savegame were not reset to
|
|
|
|
|
0 when the savegame was loaded.
|
|
|
|
|
|
|
|
|
|
February 10, 2003
|
|
|
|
|
- Added wildcard support to the cmdlist and cvarlist commands, so you can look
|
|
|
|
|
at just a subset of the lists.
|
|
|
|
|
- Fixed: The total monster count reset when loading saved games so that it would
|
|
|
|
|
no longer include monsters that spawned after the start of the level.
|
|
|
|
|
- Uploaded 2.0.41.
|
|
|
|
|
- Fixed: When a MIDI or MUS song stopped because it reached the end of the song
|
|
|
|
|
(if it was nonlooping), the midiOut device would not be released.
|
|
|
|
|
- Removed the DirectMusic MIDI option because it wasn't working, and Timidity++
|
|
|
|
|
is a better sounding solution if you can't do hardware wavetable MIDI.
|
|
|
|
|
- Fixed: ProduceMIDI() crashed because it had the wrong header check.
|
|
|
|
|
- Fixed looping problems with the new MUS player because I accidentally moved
|
|
|
|
|
some code in the wrong place. The new MUS and MIDI players also had semi-
|
|
|
|
|
random default channel volumes for the same reason.
|
|
|
|
|
|
|
|
|
|
February 8, 2003
|
|
|
|
|
- Uploaded 2.0.40.
|
|
|
|
|
- Added support for Apogee's EMIDI controllers.
|
|
|
|
|
|
|
|
|
|
February 7, 2003
|
|
|
|
|
- Wrote new MUS and MIDI player routines that do not use MIDI streams. Instead,
|
|
|
|
|
they use a time critical thread and midiOutShortMsg to send MIDI messages to
|
|
|
|
|
the playback device. I have not tried this with a lesser OS like Win98, so I
|
|
|
|
|
hope it works okay there. I want to remove the old player code so I that I
|
|
|
|
|
just have one method to use for playing MIDI data. This approach offers two
|
|
|
|
|
advantages over the stream method as it was employed: 1) Minimal setup time,
|
|
|
|
|
so music changes can happen faster. 2) Volume support for everything that
|
|
|
|
|
supports channel volume controllers, which is everything I tried. I think I
|
|
|
|
|
might also add support for the Apogee Sound System's EMIDI files just because
|
|
|
|
|
I have some docs for it.
|
|
|
|
|
|
|
|
|
|
February 6, 2003
|
|
|
|
|
- Added mouse and joystick option menus. Also added an option not to
|
|
|
|
|
prescale the mouse movements. I've done this all along because it
|
|
|
|
|
feels like the vertical sensitivity is much higher than the horizontal
|
|
|
|
|
sensitivity, so the prescaling compensates for that perceived difference.
|
|
|
|
|
But it could be the reason some people gripe that "ZDoom's mouse feels
|
|
|
|
|
different from Doom's! It sux0rz delux0rz!" So now they can turn it off
|
|
|
|
|
with a single switch instead of messing with the various mouse sensitivities
|
|
|
|
|
to decompensate.
|
|
|
|
|
- Fixed: The game did not give up the mouse if use_mouse was false.
|
|
|
|
|
- Changed the default ID for lines without a Line_SetIdentification or
|
|
|
|
|
similar special to -1 instead of 0. This is so that you can use
|
|
|
|
|
Line_SetIdentification to give a line ID 0 and still tell it apart
|
|
|
|
|
from all the other lines on the map without IDs. This emulates standard
|
|
|
|
|
Hexen behavior and also fixes a bug on caldera.wad, MAP10 where almost
|
|
|
|
|
every line on the map would get set to a switch texture right after
|
|
|
|
|
you entered it.
|
|
|
|
|
- Added support for Hexen's warptrans mapinfo command. I see now that it
|
|
|
|
|
gets used to determine which map you start on for a new game.
|
|
|
|
|
- Changed MAPINFO parsing so that maps named ExMy will automatically get
|
|
|
|
|
their levelnum set to xy unless you specify something different. MAPxx
|
|
|
|
|
maps were already getting this treatment.
|
|
|
|
|
- Added a syntax error message if you don't specify a valid keyword for a
|
|
|
|
|
block in ANIMDEFS.
|
|
|
|
|
- Added a non-player check to the A_DoomSkinCheck and A_HereticSkinCheck
|
|
|
|
|
functions. I guess if somebody uses Dehacked to assign the player death
|
|
|
|
|
states to something else, they could get called by something that isn't
|
|
|
|
|
a player.
|
|
|
|
|
|
|
|
|
|
February 5, 2003
|
|
|
|
|
- Changed A_KeenDie() to search among whatever called it and not exclusively
|
|
|
|
|
among Keens.
|
|
|
|
|
|
|
|
|
|
February 4, 2003
|
|
|
|
|
- I can now build a fully working version of ZDoom with MinGW. Perheps now it
|
|
|
|
|
is time for me to turn my attention back to Linux.
|
|
|
|
|
|
|
|
|
|
February 3, 2003
|
|
|
|
|
- Fixed a stupid bug I added to the tl_tab calculations in fmopl.cpp.
|
|
|
|
|
- Fixed: Monsters that hated both players and monsters would crash if there
|
|
|
|
|
was more than one player in the game.
|
|
|
|
|
- It's 2003 now, isn't it?
|
|
|
|
|
|
|
|
|
|
February 2, 2003
|
|
|
|
|
- Uploaded 39.cab.
|
|
|
|
|
- Fixed: Dormant actors still bled.
|
|
|
|
|
- Added a PatrolSpecial actor (doomednum 9047). It works like
|
|
|
|
|
InterpolationSpecial, but for PatrolPoints instead of InterpolationPoints:
|
|
|
|
|
When a monster reaches a PatrolPoint, it will execute the specials of any
|
|
|
|
|
PatrolSpecials with the same TID as that PatrolPoint.
|
|
|
|
|
- Added a new ACS command: SetMarineSprite (tid, "otherClass"); You give it
|
|
|
|
|
TID of the marine(s) to change and the name of an actor class to get the
|
|
|
|
|
sprite from.
|
|
|
|
|
|
|
|
|
|
February 1, 2003
|
|
|
|
|
- Fixed a Heretic/Hexen bug: Actors with a crash state would not crash if
|
|
|
|
|
they died on the ground.
|
|
|
|
|
- Changed I_InitInput to request a DirectInput 3 interface instead of
|
|
|
|
|
whatever the header specifies. It should work with NT 4 again, now.
|
|
|
|
|
- Added checks to the marines' attacks to prevent crashes if their targets
|
|
|
|
|
unexpectedly disappear.
|
|
|
|
|
- Fixed: Monsters could start targetting themselves if they blew up a
|
|
|
|
|
nearby barrel (or pod).
|
|
|
|
|
- Changed A_VileAttack() so that the Archvile can't hurt itself with its
|
|
|
|
|
own fire.
|
|
|
|
|
- Fixed: In Hexen you can queue scripts for maps on other hubs. They don't
|
|
|
|
|
get cleared along with the world variables, as I had mistakenly believed.
|
|
|
|
|
|
|
|
|
|
January 31, 2003
|
|
|
|
|
- Removed the need to press D to set the default resolution at the video
|
|
|
|
|
modes menu. This seemed to be a common point of confusion (despite having
|
|
|
|
|
the directions right there in the menu), but more importantly it makes the
|
|
|
|
|
menu fit on one screen when using 9 pixels per row of text instead of 8.
|
|
|
|
|
Heretic and Hexen both look better with 9 pixels of room rather than 8.
|
|
|
|
|
- Fixed: Scrolling up past the top of the menu was hard-coded to assume
|
|
|
|
|
the Doom font when finding the bottom of a menu, so it didn't work
|
|
|
|
|
correctly for Heretic or Hexen.
|
|
|
|
|
- Fixed: When pressing up arrow to scroll the top of a menu, its scrollpos
|
|
|
|
|
could get set to -1.
|
|
|
|
|
- Removed the limit on the number of frames that can assigned to an
|
|
|
|
|
animation sequence with ANIMDEFS.
|
|
|
|
|
|
|
|
|
|
January 30, 2003
|
|
|
|
|
- Fixed: The old Thing_Hate behavior no longer worked.
|
|
|
|
|
- Added the Thing_ChangeTID(oldtid, newtid) special to change the TID of
|
|
|
|
|
anything with oldtid to newtid. If oldtid is zero, then whatever activates
|
|
|
|
|
it gets its TID changed to newtid.
|
|
|
|
|
- Added the ActivatorTID() ACS command to retrieve the TID of the actor
|
|
|
|
|
that activated a script.
|
|
|
|
|
- Added the PlayerNumber() ACS command for finding out which player is
|
|
|
|
|
executing a script. Returns 0-7 for an actual player and -1 for
|
|
|
|
|
anything else.
|
|
|
|
|
- At GooberMan's request, added bool as a synonym for int to ACC.
|
|
|
|
|
- Added support for a KEYCONF lump. This is a limited console script that
|
|
|
|
|
can only execute the commands alias, defaultbind, addkeysection,
|
|
|
|
|
addmenukey, weaponsection, and addslotdefault. Now a wad with custom
|
|
|
|
|
key and weapon bindings doesn't need a separate .cfg file to operate.
|
|
|
|
|
- Added weaponsection console command for specifying that the weapon slot
|
|
|
|
|
assignments go to some ini section other than the default.
|
|
|
|
|
- Fixed: Processing an ACS object's MINI chunk initialized one map variable
|
|
|
|
|
too many.
|
|
|
|
|
- Fixed: Map variables that were not stored in a savegame were not
|
|
|
|
|
zero'd when the game was loaded.
|
|
|
|
|
- Changed: Include directives in Dehacked patches will now look for the
|
|
|
|
|
specified file in the same directory as the patch they are used from
|
|
|
|
|
before they look in the current directory.
|
|
|
|
|
|
|
|
|
|
January 29, 2003
|
|
|
|
|
- Changed: Just loading a game is no longer enough to assign a quicksave
|
|
|
|
|
slot. You need to either save a game or quickload first.
|
|
|
|
|
- New: The pullin command now looks for wads in the same directory as the
|
|
|
|
|
script that executed it before it looks for them in the current directory.
|
|
|
|
|
- Fixed: Switch definitions in ANIMDEFS with an on state that ends on the same
|
|
|
|
|
texture it began on would crash instead of properly detecting the error
|
|
|
|
|
and quitting with a useful error message.
|
|
|
|
|
- Changed: Voodoo dolls no longer affect a player's deltaviewheight.
|
|
|
|
|
- Changed: Voodoo dolls can now be pushed around by damage even when the
|
|
|
|
|
player is invulnerable.
|
|
|
|
|
- Fixed a bug in P_DamageMobj() I introduced after some reformatting that
|
|
|
|
|
prevented voodoo dolls from being pushed around.
|
|
|
|
|
- Changed the final output of the OPL2 synth to look like this:
|
|
|
|
|
final_output = (chip_output * 1.5) - 18000
|
|
|
|
|
This is because most of the instruments the Doom games use create
|
|
|
|
|
waveforms that are primarily located in the upper half of the wave.
|
|
|
|
|
(Because, of the four basic waveforms of the OPL2, all but one of them
|
|
|
|
|
only use the upper half of a sine wave.)
|
|
|
|
|
- Fixed the assembly part of OPLmusicBlock::ServiceStream() to work with
|
|
|
|
|
odd-sized buffers.
|
|
|
|
|
- Fixed: When the player does not have the invisibility power active, the
|
|
|
|
|
weapon would always be drawn with STYLE_Normal instead of whatever style
|
|
|
|
|
the player had.
|
|
|
|
|
- Added the cleric and mage Icon of the Defender behavior.
|
|
|
|
|
|
|
|
|
|
January 27, 2003
|
|
|
|
|
- Fixed the finetuning of double-voice OPL2 instruments, so now the Heretic
|
|
|
|
|
musics don't sound like crap.
|
|
|
|
|
- Changed the OPL2 emulator to write data to the output buffer a voice at a
|
|
|
|
|
time instead of a sample at a time. The speedup isn't as great as I would
|
|
|
|
|
have liked, but it does let me avoid doing work for voices that aren't
|
|
|
|
|
playing anything, and it should make it easier to optimize in the future.
|
|
|
|
|
- Just a note: I think the OPL2 outputs samples at ~49716 Hz.
|
|
|
|
|
- Removed the x2 amplification from fmopl2.c's output, because some of the
|
|
|
|
|
Heretic songs made it overflow. Looking at sampled output however, it seems
|
|
|
|
|
most of the data is going only into the positive half of the wave, so perhaps
|
|
|
|
|
I could subtract some constant from the data and keep the amplification.
|
|
|
|
|
- Reduced the length of the OPL stream so that it gets filled fourteen times
|
|
|
|
|
each second, so that it interrupts the main thread more consistantly and
|
|
|
|
|
has less of an impact on the game's "smoothness".
|
|
|
|
|
|
|
|
|
|
January 25, 2003
|
|
|
|
|
- Changed the frequency calculations in the OPL2 player to match DMX's (or
|
|
|
|
|
so I think).
|
|
|
|
|
- Fixed an amplitude problem with the OPL2 synth I inadvertantly introduced
|
|
|
|
|
while trying to optimize it.
|
|
|
|
|
|
|
|
|
|
January 24, 2003
|
|
|
|
|
- Uploaded 38.cab.
|
|
|
|
|
- Added a fix to prevent you from becoming a zombie player when there are
|
|
|
|
|
voodoo dolls on a level, and each accumulates enough damage to kill you,
|
|
|
|
|
but none of the dolls receives enough damage individually to die.
|
|
|
|
|
- Changed monster patrols so that when a monster reaches the end of a path,
|
|
|
|
|
it looks in the same direction as the final patrol point.
|
|
|
|
|
- Fixed: PIT_RadiusAttack() ignored MF2_NODMGTHRUST, so Hexen's poison cloud
|
|
|
|
|
would push things away from it. I also used this to determine if that
|
|
|
|
|
function will spray blood splats, but perhaps a poison damage flag would
|
|
|
|
|
be better?
|
|
|
|
|
- Added the ACS commands SetPlayerProperty and GetPlayerProperty.
|
|
|
|
|
- Added different versions of the scripted marine that each use a different
|
|
|
|
|
weapon. There's also an ACS command to let you change their weapons at
|
|
|
|
|
any time.
|
|
|
|
|
|
|
|
|
|
January 23, 2003
|
|
|
|
|
- Added some more Thing_Hate types that can be used to make monsters that hunt
|
|
|
|
|
both monsters and players or to ignore players that attack them.
|
|
|
|
|
- Made Bishops spawned by Heresiarchs and Wizards spawned by D'Sparil inherit
|
|
|
|
|
their masters' hate preferences.
|
|
|
|
|
- Made Heresiarchs and Bishops ignore each other. I didn't check if this was
|
|
|
|
|
original Hexen behavior or not, but it seems stupid for a Heresiarch to kill
|
|
|
|
|
a Bishop it just summoned simply because the Bishop happened to hit it.
|
|
|
|
|
- Added a new invisible thing (#9076) that you can make monsters attack using
|
|
|
|
|
Thing_Hate. It's probably best to place this next to something solid, since
|
|
|
|
|
it blocks projectiles (including the player's) and affects the player's aim.
|
|
|
|
|
The angle you give it determines how much health it has, 1 degree is 10 hit
|
|
|
|
|
points, 2 degrees is 20 hit points, etc. Give it an angle of 0, and it never
|
|
|
|
|
dies. The angle field is used for this instead of one of the argument fields
|
|
|
|
|
so that it can still execute a death special.
|
|
|
|
|
- Fixed: P_NightmareRespawn() assigned the old body's spawn parameters to the
|
|
|
|
|
teleport flash instead of to the new body, so when the new body respawned,
|
|
|
|
|
it would respawn at (0,0) instead of its original location. Also set the
|
|
|
|
|
respawn chance back to ~1.6% instead of the 100% I had been using earlier
|
|
|
|
|
for testing.
|
|
|
|
|
|
|
|
|
|
January 22, 2003
|
|
|
|
|
- Uploaded 37.cab.
|
|
|
|
|
- Played with A_Chase() a bit more so that monsters that hate monster groups
|
|
|
|
|
will look for closer monsters on their way to a monster they can't see.
|
|
|
|
|
|
|
|
|
|
January 21, 2003
|
|
|
|
|
- Improved Thing_Hate with a third parameter. Now we have Thing_Hate (tid1,
|
|
|
|
|
tid2, type). If type is 0, it behaves just like before: Everything with tid1
|
|
|
|
|
chases after the first thing with tid2 and then promptly forgets their hate
|
|
|
|
|
once that thing dies. Set it to 1, and it's much like normal except instead
|
|
|
|
|
of looking for players everything with tid1 looks for something with tid2.
|
|
|
|
|
And if type is 2, it's just like type 1, except the monsters with tid1 don't
|
|
|
|
|
actually need to see any monsters with tid2 before they start chasing after
|
|
|
|
|
them, so it's somewhat closer to type 0 than type 1 is.
|
|
|
|
|
- Changed Hexen player jumping velocities from 9 to 9.75 because they weren't
|
|
|
|
|
jumping as high as they should have been, even though 9 is the value Hexen
|
|
|
|
|
uses. The 9.75 was arrived at by playing Hexen.exe, standing next to a wall
|
|
|
|
|
to see how far up the texture the player gets when he jumps, and then
|
|
|
|
|
tweaking until ZDoom was approximately the same. It is enough, at least, to
|
|
|
|
|
make the clock gear in hexdd MAP57 accessible without the Wings of Wrath.
|
|
|
|
|
|
|
|
|
|
January 20, 2003
|
|
|
|
|
- Fixed: Dormant monsters should not enter their SeeState when Thing_Hate is
|
|
|
|
|
used on them.
|
|
|
|
|
- Fixed: In Hexen, the Wings of Wrath do not expire at all in single player
|
|
|
|
|
games. I had erroneously believed that landing on the ground would
|
|
|
|
|
temporarily halt their timer until you started flying again (which is
|
|
|
|
|
incorrect).
|
|
|
|
|
- Fixed: At the easiest difficulty, P_DamageMobj halves damage. If the damage
|
|
|
|
|
was one, it would become zero. Now if the damage is one, it stays one.
|
|
|
|
|
|
|
|
|
|
January 18, 2003
|
|
|
|
|
- Added a PointerSubstitution() method to DObject to replace all pointers
|
|
|
|
|
to one object with pointers to another object. This is so that when
|
|
|
|
|
something morhps or unmorphs, enemies targetting that actor will be
|
|
|
|
|
targetting the correct actor instead of the stale one.
|
|
|
|
|
- Added: In Heretic, killing a player as a chicken turns you into a
|
|
|
|
|
"super chicken." ZDoom was missing this.
|
|
|
|
|
- Removed the redundant P_HealRadius() function.
|
|
|
|
|
- Fixed: Palette remapping isn't enough to make Doom skins work with Heretic
|
|
|
|
|
because the two games also use different death animations.
|
|
|
|
|
- Fixed: The Icon of the Defender gave the name of the Ring of Invincibility
|
|
|
|
|
when it was picked up.
|
|
|
|
|
- Fixed: The warp console command crashed if you didn't specify enough
|
|
|
|
|
parameters.
|
|
|
|
|
- Added means-of-death as a third parameter to Thing_Damage.
|
|
|
|
|
- Fixed: Items that had been dehacked would not have their MF_DROPPED bit set.
|
|
|
|
|
- Added a ShouldStay() method to ADehackedPickup() so that it can get
|
|
|
|
|
rerouted to the real pickup.
|
|
|
|
|
- Fixed: Single player demos played back with different RNG seeds than they
|
|
|
|
|
were recorded with.
|
|
|
|
|
|
|
|
|
|
January 16, 2003
|
|
|
|
|
- Fixed assignment of partner segs in FNodeBuilder::FixSplitSharers().
|
|
|
|
|
|
|
|
|
|
January 14, 2003
|
|
|
|
|
- Added NULL-actor checks to P_CheckSight().
|
|
|
|
|
|
|
|
|
|
January 13, 2003
|
|
|
|
|
- Fixed: Advancing to a new level would subtract the number of live monsters
|
|
|
|
|
on the old level from the total number of monsters on the new level.
|
|
|
|
|
- Fixed: The game tried to play the hall music when doing non-Hexen endings.
|
|
|
|
|
- Added world and global arrays for ACS. They are somewhat different from
|
|
|
|
|
map arrays: They are one-dimensional and you don't specify a size when
|
|
|
|
|
you declare them. Instead, they grow as-needed during normal use.
|
|
|
|
|
- Removed sp from DLevelScript, because the stack pointer is always 0 when
|
|
|
|
|
RunScript() returns.
|
|
|
|
|
- Fixed: PCD_INCMAPARRAY and PCD_DECMAPARRAY used the wrong stack value for
|
|
|
|
|
the array index.
|
|
|
|
|
|
|
|
|
|
January 11, 2003
|
|
|
|
|
- Assigned spawnid 154 to the Baron's fireball (to be added as T_BARONBALL
|
|
|
|
|
to zdefs.acs).
|
|
|
|
|
|
|
|
|
|
January 10, 2003
|
|
|
|
|
- Changed sectorsound to use CHAN_AUTO instead of CHAN_BODY. Otherwise, not
|
|
|
|
|
all the Hexen "puzzle" switches sound right.
|
|
|
|
|
- Fixed: The STREAM_ENUM macro in a_artifacts.h used call-by-value instead of
|
|
|
|
|
call-by-reference, so artifact types could be written to an archive, but
|
|
|
|
|
they couldn't be read back from it.
|
|
|
|
|
- Removed inventorySlotNum, as it was unused.
|
|
|
|
|
- Fixed: Reading strings with FArchive would never return NULL, and it left
|
|
|
|
|
copies of all the strings read behind in memory.
|
|
|
|
|
- Fixed: When sprites were renumbered in a recompile, the sprite scanner in
|
|
|
|
|
FArchive would find matching-named skin sprites instead of the real sprites.
|
|
|
|
|
- Added a "vapor" SaveVersion 205. This is a version 204 save written by
|
|
|
|
|
versions 2.0.33-2.0.36 because arti_pork was added in 2.0.33 and I did not
|
|
|
|
|
bump the version. There will be no savegames that are actually written as
|
|
|
|
|
version 205, because I changed the way artifacts are saved so I won't have
|
|
|
|
|
to worry about this particular problem again in the future.
|
|
|
|
|
- Uploaded 36.cab.
|
|
|
|
|
- Added a new player property for ACS (PROP_TOTALLYFROZEN #4). When active, it
|
|
|
|
|
won't let the player do anything but press +use, which is what PROP_FROZEN
|
|
|
|
|
was really supposed to be.
|
|
|
|
|
- Added MF_NOLIFTDROP flag for no-gravity things that should not move down
|
|
|
|
|
with lifts if they are standing on the lift. This is only used with the
|
|
|
|
|
various bridge actors because various ZDoom maps break if they move with the
|
|
|
|
|
lift, and the Hexen bridge has visual glitches if it moves so I doubt
|
|
|
|
|
anybody used this Hexen behavior.
|
|
|
|
|
- Got rid of the orbit table for Hexen's bridge balls. Now they move every tic
|
|
|
|
|
instead of every fifth tic and use the finecosine/finesine tables directly.
|
|
|
|
|
- Fixed: When a monster was spawned through a script but there was no room
|
|
|
|
|
for it, it would still count toward the total monsters on the level.
|
|
|
|
|
- Fixed: P_Thing_Spawn() set MF2_PASSMOBJ for flags instead of flags2, so it
|
|
|
|
|
was really setting MF_NOCLIP, and the P_TestMobjLocation() check would
|
|
|
|
|
always succeed.
|
|
|
|
|
|
|
|
|
|
January 9, 2003
|
|
|
|
|
- Added a new player property for ACS (PROP_FLY #3).
|
|
|
|
|
- Added a level flag to set monster death special behavior to the Hexen mode:
|
|
|
|
|
The things that die activate the specials; not the things that kill them.
|
|
|
|
|
You can use MAPINFO to turn this off in Hexen and turn it on in Heretic/Doom.
|
|
|
|
|
- Fixed: The Heresiarch used its death inflictor instead of itself as the
|
|
|
|
|
activator of its death script.
|
|
|
|
|
- Fixed: DLevelScript did not have its activator member recorded in its list
|
|
|
|
|
of object pointers.
|
|
|
|
|
- Fixed: Saving a game in a demo would cause the program to hang when that
|
|
|
|
|
point was reached in the demo.
|
|
|
|
|
- Made the game recover from failures during dearchiving thinkers so that
|
|
|
|
|
you can actually do more stuff without it crashing. Just needed to add
|
|
|
|
|
a try/catch block so that it can undo what was done before it failed.
|
|
|
|
|
- Added the -savedir option to specify where savegames are stored.
|
|
|
|
|
- Fixed a bug in PIT_FindFloorCeiling(): It used tmthing even though
|
|
|
|
|
P_FindFloorCeiling() didn't set it.
|
|
|
|
|
|
|
|
|
|
January 8, 2003
|
|
|
|
|
- Fixed: The hexen main menu showed the spinning skulls from Heretic instead
|
|
|
|
|
of the fire bulls.
|
|
|
|
|
|
|
|
|
|
January 7, 2003
|
|
|
|
|
- Uploaded 35.cab.
|
|
|
|
|
- Fixed the node builder to successfully create GL nodes with >64k segs.
|
|
|
|
|
- And now the node builder is fixed point again. (Undo is nice.) Making it
|
|
|
|
|
exclusively floating point made vrack2big3's BSP take 10 seconds longer to
|
|
|
|
|
build. Since the goal was to avoid the cost of int-to-float conversions
|
|
|
|
|
every time PointOnSide was called, I'd say it backfired miserably. With just
|
|
|
|
|
the change to PointOnSide, it's only about 1 second slower than 2.0.34.
|
|
|
|
|
- Okay, the node builder now uses floating point for all its calculations.
|
|
|
|
|
- Changed FNodeBuilder::PointOnSide() to use floating point to avoid overflow.
|
|
|
|
|
Methinks I should just change the node builder to use floating point
|
|
|
|
|
exclusively. Then it won't have to do int-to-float calculations repeatedly.
|
|
|
|
|
- Changed A_Tracer() to set the puff type before it calls A_SpawnPuff().
|
|
|
|
|
- Fixed: P_RecursiveSound crashed if it encountered a line that was marked
|
|
|
|
|
two-sided but lacked a second side.
|
|
|
|
|
- Fixed: The cursor in the Advanced Sound Options menu started one line too
|
|
|
|
|
high.
|
|
|
|
|
- Added Hexen support to giveinventory/takeinventory/checkinventory and made
|
|
|
|
|
them work with cross-game items.
|
|
|
|
|
- Fixed: Clock gear 3's inventory image was misspelled as ARLTIGER3.
|
|
|
|
|
|
|
|
|
|
January 4, 2003
|
|
|
|
|
- Fixed: findFreeChannel() in mlopl.cpp would try very high channels instead
|
|
|
|
|
of the correct ones and access undefined memory.
|
|
|
|
|
- Fixed: The Thing_Spawn special would fail to spawn things without
|
|
|
|
|
MF2_PASSMOBJ set if there was something already occuping their x,y space,
|
|
|
|
|
whatever that thing's z coordinate. This was problematic with the Hexen
|
|
|
|
|
bridges.
|
|
|
|
|
- Fixed: DDrawFB::PaintToWindow() can get called during the render process
|
|
|
|
|
when a WM_PAINT message is received. If the framebuffer was already locked,
|
|
|
|
|
this would overwrite the buffer pointer and pitch with those of the
|
|
|
|
|
physical screen. This is not normally a problem, but one way to get a
|
|
|
|
|
repeatable crash was to turn on any of the pixel doubling modes and switch
|
|
|
|
|
from fullscreen to windowed. Simple fix: PaintToWindow() does nothing if
|
|
|
|
|
the screen has a non-zero LockCount, and Update() zeros LockCount before
|
|
|
|
|
it calls PaintToWindow().
|
|
|
|
|
|
|
|
|
|
January 3, 2003
|
|
|
|
|
- Uploaded 34.cab.
|
|
|
|
|
- Added a parameter to AActor::LinkToWorld() to tell it to use the original
|
|
|
|
|
incorrect point-on-line side calculations of the Doom engine. This is just
|
|
|
|
|
so that the map spots in the emerald key room of Hexen MAP01 will spawn in
|
|
|
|
|
their intended sector and not the sector that is technically correct.
|
|
|
|
|
- Added a new compatibility option: compat_usewallblocking. Now I see that
|
|
|
|
|
there are wads that used non-use lines to block the player from activating
|
|
|
|
|
a use line.
|
|
|
|
|
- Changed AActor::StaticSpawn() again. When spawning map things, the floor
|
|
|
|
|
and ceiling z's are taken from the actor's center point. When spawning
|
|
|
|
|
things during gameplay, the true z's are found instead. So P:AR's player
|
|
|
|
|
starts are still working, non-players placed in the map will be able to
|
|
|
|
|
get stuck in the floor of a neighboring sector, and anything spawned
|
|
|
|
|
during the game with ACS (or otherwise) will have the "correct" behavior
|
|
|
|
|
and know what their true floor and ceiling z range is. TBD: Should this
|
|
|
|
|
be players-only? Decided: Yes, otherwise bullet puffs will appear on
|
|
|
|
|
window sills instead of the actual spot where the bullet hit.
|
|
|
|
|
- Changed P_FindFloorCeiling() to use different global variables than
|
|
|
|
|
P_CheckPosition(), because it can be called within P_CheckPosition().
|
|
|
|
|
Doom has too many global variables for its physics code.
|
|
|
|
|
|
|
|
|
|
January 2, 2003
|
|
|
|
|
- Uploaded 33.cab.
|
|
|
|
|
- Fixed A_RestoreSpecialPosition() for MF2_FLOATBOB actors.
|
|
|
|
|
- Fixed: Made the porkalator and morph ovum separate artifacts.
|
|
|
|
|
- Fixed: In Heretic and Hexen, MF2_FLOATBOB objects are always positioned
|
|
|
|
|
relative to the floor. In ZDoom, they bob around a central z height, so
|
|
|
|
|
they need to have gravity applied to them in order to best approximate
|
|
|
|
|
the orginal behavior.
|
|
|
|
|
- Created a new function (P_FindFloorCeiling) to find the floor and ceiling
|
|
|
|
|
for newly-spawned things. P_CheckPosition() has side effects, so I can't
|
|
|
|
|
use it. This is also used by P_TeleportMove() now.
|
|
|
|
|
- Uploaded 32.cab.
|
|
|
|
|
- Fixed: EV_DoCeiling() only set the crush value for the moving ceiling if it
|
|
|
|
|
had a crushing type, so BOOM generalized ceilings could not do crushing
|
|
|
|
|
damage.
|
|
|
|
|
- More GCC 3.2 cleanup. Everything compiles now--except for zdoom.rc. Windres
|
|
|
|
|
can't handle it so I had to settle with a precompiled version.
|
|
|
|
|
- Split off the system-specific code from w_wad.cpp into i_wad.cpp.
|
|
|
|
|
- Changed AActor::StaticSpawn() so that it uses P_CheckPosition() to get the
|
|
|
|
|
real floorz and ceilingz to use in case the actor overlaps a line.
|
|
|
|
|
- Gave the fatso's fireball spawnid 153. In zdefs.acs, T_CACODEMONSHOT was
|
|
|
|
|
incorrectly named T_MANCUBUSSHOT.
|
|
|
|
|
- Created one-parameter version of the W_MapLump functions that return pointers
|
|
|
|
|
to const data so that the compiler can be issue warnings if they get assigned
|
|
|
|
|
to non-const pointers.
|
|
|
|
|
- Added MF2_PUSHWALL to all the Heretic monsters.
|
|
|
|
|
- Put back MF2_PASSMOBJ because of the unexpected consequence removing it had:
|
|
|
|
|
Overlapping things would push each other to the ceiling. This was most
|
|
|
|
|
visible with the invisible bridges, which people have commonly overlapped.
|
|
|
|
|
I have taken a different approach to the situation that caused me to remove
|
|
|
|
|
it: Now you can't push anything without MF2_PASSMOBJ while riding a lift.
|
|
|
|
|
|
|
|
|
|
January 1, 2003
|
|
|
|
|
- Uploaded 30.cab. I hope I didn't break anything I haven't already caught by
|
|
|
|
|
getting rid of the zone heap and switching to memory-mapped files.
|
|
|
|
|
- Made more input cvars global config (such as m_pitch and m_yaw).
|
|
|
|
|
- Changed the sound rolloff factors for Heretic and Hexen.
|
|
|
|
|
- Fixed: Unlike Doom and Heretic, Hexen crushers do not continue to move if
|
|
|
|
|
there is something being crushed underneath them. Instead, they wait for the
|
|
|
|
|
thing underneath to either die or move out of the way. The crushing pillars
|
|
|
|
|
you find the first time you visit Hexen MAP03 do not actually kill you if
|
|
|
|
|
they don't wait for you to die before fully closing.
|
|
|
|
|
- Added support for "fake" lumps so that the music system can continue to play
|
|
|
|
|
on-disk music files without having to include them on the command line with
|
|
|
|
|
-file. These "fake" lumps are automatically unmapped when they are done being
|
|
|
|
|
used so that their memory can be decommitted, but their file handles remain
|
|
|
|
|
open because I don't want to deal with also removing lumps at runtime.
|
|
|
|
|
|
|
|
|
|
December 31, 2002
|
|
|
|
|
- Changed FRandom::StaticClearRandom() so that different seeds produce more
|
|
|
|
|
disparate results in the different RNGs.
|
|
|
|
|
- Fixed: FRandom::StaticClearRandom() was not being called after rngseed was
|
|
|
|
|
set at game startup.
|
|
|
|
|
- Changed the wad loader to use memory mapped files, so now I have better
|
|
|
|
|
caching than what the zone heap could hope for, since the VM system does all
|
|
|
|
|
the work for me.
|
|
|
|
|
- Added a fixup in R_InitTextures() for the Doom E1 sky, which has its patch's
|
|
|
|
|
y origin at -8 instead of 0.
|
|
|
|
|
- Added the F_EndFinale() function to clean up after the finale is over, since
|
|
|
|
|
I can't let the zone heap do it automatically anymore.
|
|
|
|
|
|
|
|
|
|
December 30, 2002
|
|
|
|
|
- Removed the zone heap. Everything is done using new/delete and malloc/free
|
|
|
|
|
now, so you don't have to worry about specifying a heap large enough.
|
|
|
|
|
- Fixed: The [.NetServerInfo] ini sections were still read in single player
|
|
|
|
|
games.
|
|
|
|
|
- Fixed: The player class filter in P_SpawnMapThing() used SinglePlayerClass[]
|
|
|
|
|
instead of player_t::CurrentPlayerClass.
|
|
|
|
|
- Put the FMUSIC loader back the way it was so that MODs in WADs work again.
|
|
|
|
|
- Changed EV_Teleport() so that if it can't find any teleport destinations,
|
|
|
|
|
it looks for a matching map spot instead. This fixes the southern teleporter
|
|
|
|
|
in Hexen MAP10.
|
|
|
|
|
- Added MF3_DONTMORPH to the Hexen boss monsters.
|
|
|
|
|
- Removed MF2_PASSMOBJ flag and made it standard behavior for all actors
|
|
|
|
|
because of a test map I received: If an actor with MF2_PASSMOBJ rides up
|
|
|
|
|
a lift underneath a non-MF2_PASSMOBJ actor, the top actor would fall inside
|
|
|
|
|
of the bottom one once the lift stops.
|
|
|
|
|
|
|
|
|
|
December 28, 2002
|
|
|
|
|
- Changed the nodebuilder timer to use I_MSTime() instead of clock/unclock,
|
|
|
|
|
because very large maps can make it exceed the 32-bit resolution of
|
|
|
|
|
the clock/unclock macros.
|
|
|
|
|
- Uploaded 29.cab.
|
|
|
|
|
- Moved the R_ClearParticles() call out of G_InitNew() and into P_SetupLevel().
|
|
|
|
|
- Experimented with the 3D sound parameters to find a rolloff factor that
|
|
|
|
|
best approximates the software sound.
|
|
|
|
|
- Updated to FMOD 3.61.
|
|
|
|
|
- Fixed: S_UpdateSounds() still multiplied the SoundCurve volume by 2, so
|
|
|
|
|
things decayed twice as quickly as they should have. I would like to get
|
|
|
|
|
rid of the SoundCurve use, but I'm not sure how Raven modelled the curve
|
|
|
|
|
for Heretic and Hexen.
|
|
|
|
|
|
|
|
|
|
December 27, 2002
|
|
|
|
|
- Fixed: The FireDemon could not be perceived to move except when strafing
|
|
|
|
|
because it still used PROP_SpeedLong instead of PROP_SpeedFixed. Because
|
|
|
|
|
this was the only place where PROP_SpeedLong was used, I got rid of it.
|
|
|
|
|
|
|
|
|
|
December 26, 2002
|
|
|
|
|
- Changed the internal subsector_t struct to use 32 bits to keep track of
|
|
|
|
|
segs instead of 16, and fixed the node builder up so that it works with
|
|
|
|
|
>64k segs.
|
|
|
|
|
- Changed the internal node_t struct to allow for more than 32768 subsectors
|
|
|
|
|
and nodes.
|
|
|
|
|
- Fixed: The fighter played PlayerFighterGrunt instead of FighterGrunt on his
|
|
|
|
|
third punch because I didn't realize the two sounds had different names.
|
|
|
|
|
- Changed PIT_FloorDrop() to more accurately reflect Hexen's behavior. Things
|
|
|
|
|
under gravity move down with the floor if the floor moves fewer than 9 units
|
|
|
|
|
in one tic (not 24), and no-gravity things always move down with the floor
|
|
|
|
|
(no matter how fast it drops) if they were standing on it.
|
|
|
|
|
- Changed forwardmove and sidemove scaling calculations in P_MovePlayer()
|
|
|
|
|
so that they won't overflow.
|
|
|
|
|
- Changed server vars so that only compatflags and forcewater are archived.
|
|
|
|
|
|
|
|
|
|
December 24, 2002
|
|
|
|
|
- Fixed: Autosave still worked when the player was dead.
|
|
|
|
|
- Fixed: The Quietus pieces had the wrong spawnids, so they were overriding
|
|
|
|
|
the stained glass shards. I'm not sure why they had the wrong numbers.
|
|
|
|
|
- Fixed: AZWingedStatueNoSkull and AZGemPedestal had their see and melee
|
|
|
|
|
states swapped, so they wouldn't change their appearance when activated.
|
|
|
|
|
- Uploaded 28.cab.
|
|
|
|
|
- Fixed: When "Monsters Ignore Each Other" was set, monsters could not be
|
|
|
|
|
hurt by ACS-spawned projectiles.
|
|
|
|
|
- Fixed: Underwater reverb did not work on Audigies anymore because FMOD was
|
|
|
|
|
only reporting them as supporting EAX3 reverb and not also EAX2 reverb.
|
|
|
|
|
- Fixed: Empty console command lines are not added to the history list.
|
|
|
|
|
- Added a new ini section so that select ServerInfo cvars can be remembered
|
|
|
|
|
across games. There is a different one for single player games and for net
|
|
|
|
|
games, and the net game version is only saved on the machine that acts as
|
|
|
|
|
host.
|
|
|
|
|
- Added useflechette command, which acts like "use ArtiPoisonBag1,2,or3"
|
|
|
|
|
depending on the player that uses it.
|
|
|
|
|
- Moved the default +showscores key in Hexen to Scroll Lock, because \ is
|
|
|
|
|
already used by "use ArtiHealth".
|
|
|
|
|
- Added the Hexen default keys for quick-use of inventory items.
|
|
|
|
|
- Added addslotdefault command to only put a weapon in a slot if it isn't
|
|
|
|
|
already assigned to a slot.
|
|
|
|
|
- Changed P_FindNamedInventory() to use the same names as the actors that
|
|
|
|
|
represent the inventory items, for consistancy.
|
|
|
|
|
- Gave the pod and explosive barrel MF3_DONTGIB flags so that if
|
|
|
|
|
- Changed the setslot and addslot commands so that you cannot have more than
|
|
|
|
|
one copy of a weapon in a single slot.
|
|
|
|
|
|
|
|
|
|
December 23, 2002
|
|
|
|
|
- Did some cleanup for GCC 3.2.
|
|
|
|
|
- Added a fix for wads that have things like FF_END immediately followed by
|
|
|
|
|
F_END.
|
|
|
|
|
|
|
|
|
|
December 22, 2002
|
|
|
|
|
- Fixed: ThrustFloorUp and ThrustFloorDown did not have spawnids, nor did they
|
|
|
|
|
override Activate() and Deactivate().
|
|
|
|
|
- Fixed: P_LoadBuildMap() read numsectors out of the Build map before checking
|
|
|
|
|
to make sure there was actually enough data for numsectors to be present.
|
|
|
|
|
|
|
|
|
|
December 21, 2002
|
|
|
|
|
- Changed pointer tracking in pointy classes to use pointers to members instead
|
|
|
|
|
of offsetof, as per GCC 3.2's suggestion.
|
|
|
|
|
|
|
|
|
|
December 20, 2002
|
|
|
|
|
- Turned the vertex and linedef indices in the map data structures into
|
|
|
|
|
unsigned words. Everything compiled without warning, so maybe big level
|
|
|
|
|
support really is that easy.
|
|
|
|
|
- Fixed: Maps with >32k unpacked sidedefs could not be loaded because
|
|
|
|
|
sidei_t::a.map in p_setup.cpp was still signed.
|
|
|
|
|
- Changed: REJECT lumps with 0 length won't even be loaded now. And REJECTs
|
|
|
|
|
that have some length but are nothing but 0s will be freed.
|
|
|
|
|
- Fixed: The sprintf in the first case of D_WriteUserInfoStrings() had an
|
|
|
|
|
extra comma, so it would crash, making demo recording impossible.
|
|
|
|
|
- Fixed: DArgs::CheckValue() did not check to ensure that value is valid.
|
|
|
|
|
(That is, that it does not begin with + or -).
|
|
|
|
|
- Fixed: Trying to add more bots than there are starts in a coop game would
|
|
|
|
|
leave the extra bots as "active", so you could not spawn them even after
|
|
|
|
|
removing the existing bots.
|
|
|
|
|
- Fixed: Players could not choose their weapons if they loaded a savegame
|
|
|
|
|
before starting a new game because weapon assignments were only transmitted
|
|
|
|
|
at the start of a new game.
|
|
|
|
|
- Added separate translation tables for the player corpses so that when a
|
|
|
|
|
player dies and comes back with a sprite that uses a different palette
|
|
|
|
|
translation range (i.e. a mage dies and is reincarnated as a fighter),
|
|
|
|
|
the corpse will retain the translation the player had at death. This also
|
|
|
|
|
means you can't change the color of your corpses anymore.
|
|
|
|
|
|
|
|
|
|
December 19, 2002
|
|
|
|
|
- Uploaded 27.cab.
|
|
|
|
|
- Fixed: The internal node builder was not setting bPolySeg, so segs would
|
|
|
|
|
be randomly marked as belonging to polyobjects if you used the internal
|
|
|
|
|
node builder.
|
|
|
|
|
- Uploaded 26.cab.
|
|
|
|
|
- Fixed: TELEFOGHEIGHT was not being used everywhere it needed to be.
|
|
|
|
|
- Changed: P_DropItem() uses the standard Doom drop for items that don't
|
|
|
|
|
have gravity (such as the Mage's lightning weapon).
|
|
|
|
|
- Changed: Dying puts you into chasecam mode.
|
|
|
|
|
- Fixed: The fighter's axe and hammer could not be picked up for mana by the
|
|
|
|
|
other classes.
|
|
|
|
|
- Moved the assignment to waitingforspawn inside SpawnBot() past the checks
|
|
|
|
|
to see if any bots are left to spawn.
|
|
|
|
|
|
|
|
|
|
December 18, 2002
|
|
|
|
|
- Fixed the "give armor" cheat for Hexen.
|
|
|
|
|
- Added artifacts and puzzlepieces as categories for the give cheat.
|
|
|
|
|
- Replaced Killough's blockmap builder with the one I had written for ZDBSP.
|
|
|
|
|
The MBF one was found to be incorrect near vertex 0 of Doom's E3M6. There
|
|
|
|
|
are probably other problem spots, but that's the one that was first
|
|
|
|
|
noticed.
|
|
|
|
|
- Fixed: Hexen_sbar.cpp had WPIECEM1 misspelled as WPEICEM1, so the top
|
|
|
|
|
part of the Bloodscourge would not appear in the status bar until you had
|
|
|
|
|
the complete weapon, which causes a different graphic to be drawn.
|
|
|
|
|
- Fixed the elusive hub crashing bug introduced by my November 26 but/hub
|
|
|
|
|
"fix". Parsing of NEW_PLR_OBJ and NEW_PLR_CLS_OBJ when m_HubTravel is
|
|
|
|
|
true would wait until the object had been parsed before mapping it to
|
|
|
|
|
an index. It needs to be mapped immediately after being created so that
|
|
|
|
|
any references to it in its stored data will actually refer to it and
|
|
|
|
|
not the next object in line.
|
|
|
|
|
- Fixed P_SetSectorFriction() so that using a friction amount of 100
|
|
|
|
|
calculates the standard movefactor 2048 instead of 255.
|
|
|
|
|
- Changed Sector_SetFriction so that when it's used from a script, it will
|
|
|
|
|
clear and set the sector's friction flag as needed.
|
|
|
|
|
- Fixed: The fighter's axe and hammer would still use mana when infinite
|
|
|
|
|
ammo was turned on.
|
|
|
|
|
- Fixed: P_SpawnPlayerMissile spawned missiles with a facing direction
|
|
|
|
|
slightly to the right of their real direction when there were no monsters
|
|
|
|
|
for it to autoaim at. Among other things, this made the frost cone fire
|
|
|
|
|
right of center.
|
|
|
|
|
- Fixed: Picking up a flechette would only give you the fighter's variety
|
|
|
|
|
because I forgot to uncomment some code after adding the other two player
|
|
|
|
|
classes.
|
|
|
|
|
|
|
|
|
|
December 13, 2002
|
|
|
|
|
- Uploaded 25.cab.
|
|
|
|
|
- Added a hack for 256-tall textures with patches that mark their post
|
|
|
|
|
lengths as 0. This lets pleiades.wad and its skies work.
|
|
|
|
|
- Multiplied the output of the OPL chips by two so that they aren't so
|
|
|
|
|
quiet.
|
|
|
|
|
- Gave opl_onechip a callback so that changes to it can take effect
|
|
|
|
|
immediately.
|
|
|
|
|
- Fixed: findFreeChannel() in mlopl.cpp could crash when going from two
|
|
|
|
|
chips to one, because it did not reset the value of last.
|
|
|
|
|
|
|
|
|
|
December 12, 2002
|
|
|
|
|
- Fixed an original Hexen bug: EV_RotatePoly() set the first polyobject's
|
|
|
|
|
special data to a rotator, then it created a new rotator and assigned it
|
|
|
|
|
to the mirror polyobject's specialdata, and then it also assigned the
|
|
|
|
|
second rotator to the first polyobject. This left the first rotator
|
|
|
|
|
forgotten, and if a player got in the way of one of the polyobjects so
|
|
|
|
|
the other one destroyed the rotator, it could crash.
|
|
|
|
|
- Uploaded 24.cab. Why cab? Because LZX compression is better than ZIP, and
|
|
|
|
|
I'm stuck uploading files with a 56k modem. That's why. The source code
|
|
|
|
|
archive alone is almost 700k smaller as a cab than as a zip. That's at
|
|
|
|
|
least four or five fewer minutes that I need to wait uploading it.
|
|
|
|
|
- Fixed: Bloodscourge projectiles would not pass through non-boss monsters
|
|
|
|
|
because AMageStaffFX2::SpecialMissileHit() was incomplete. It is a much
|
|
|
|
|
more dangerous weapon now.
|
|
|
|
|
- Fixed: ACircleFlame needed a GetExplodeParms() member function so that it
|
|
|
|
|
would do the correct damage and not harm the player.
|
|
|
|
|
- Uploaded 23.cab.
|
|
|
|
|
- Fixed: Dehacked weapon patches did not set the new FWeaponInfo::givingammo
|
|
|
|
|
field.
|
|
|
|
|
|
|
|
|
|
December 10, 2002
|
|
|
|
|
- Uploaded 22.cab.
|
|
|
|
|
- Fixed: If you had a bot with you in a co-op game and you switched levels,
|
|
|
|
|
the bot would come with you as normal, and it would also spawn a new copy
|
|
|
|
|
of itself later, so you would now have two bots instead of one.
|
|
|
|
|
- Moved the player name display for spying up slightly so that it isn't
|
|
|
|
|
obscured by the Hexen status bar.
|
|
|
|
|
- Added support for terrain-defined friction, so the Hexen ice flat can
|
|
|
|
|
behave like ice.
|
|
|
|
|
- Fixed: Weapon pieces were not behaving like weapons with sv_weaponstay on.
|
|
|
|
|
- Fixed: The spinning invulnerability and maulator icons that appear at the
|
|
|
|
|
top of the screen when they are active were not right-aligned.
|
|
|
|
|
- Fixed: The maulator artifact had the wrong status bar image.
|
|
|
|
|
- Fixed: Using Dragon Skin Bracers to get more than 100% armor would mess
|
|
|
|
|
up the armor display in Hexen's automap status bar.
|
|
|
|
|
- Now I know why I didn't direct hudmessage and print commands to the
|
|
|
|
|
screen of spying players. Changed it back to the way it used to be, so
|
|
|
|
|
it doesn't pay attention to the player's camera when deciding whether it
|
|
|
|
|
should take effect or not. One solution for this would be to have
|
|
|
|
|
separate status bars for each player and just route the messages to the
|
|
|
|
|
appropriate status bars. Probably too much effort at this point.
|
|
|
|
|
- Fixed: The player faces showed up on the scoreboard even when not playing
|
|
|
|
|
Hexen.
|
|
|
|
|
- Fixed: The extralight from your gunshots would be used if you weren't
|
|
|
|
|
looking through the eyes of a player.
|
|
|
|
|
- Uploaded 21.cab.
|
|
|
|
|
- Fixed an accidental problem when travelling between levels because
|
|
|
|
|
I mis-blocked some code in WI_End().
|
|
|
|
|
- Fixed: Using a flat as an intermission background instead of a full
|
|
|
|
|
graphic would not print any text.
|
|
|
|
|
- Fixed: FWeaponSlots::StreamInSlots() only cleared the even slots,
|
|
|
|
|
so weapnext/weapprev failed, and weapon selection in odd slots would
|
|
|
|
|
work wrong.
|
|
|
|
|
|
|
|
|
|
December 9, 2002
|
|
|
|
|
- Fixed: Dormant monsters would respawn when monster respawning is
|
|
|
|
|
enabled, losing their dormant state and any specials they were given.
|
|
|
|
|
- You can spy through your teammates' eyes in deathmatch now, and you
|
|
|
|
|
can also see them on the automap.
|
|
|
|
|
- Added face icons to the Hexen scoreboard.
|
|
|
|
|
- Gave the bots some minor knowledge of Hexen weapons.
|
|
|
|
|
- Fixed: The fighter would not get any mana when he picked up his axe
|
|
|
|
|
or hammer.
|
|
|
|
|
- Added the Hexen finale and intermission screens.
|
|
|
|
|
|
|
|
|
|
December 6, 2002
|
|
|
|
|
- Removed M_PBOX from zdoom.wad. M_DrawFrame() draws the box around the
|
|
|
|
|
player in the menu now, since it works with all games and not just Doom.
|
|
|
|
|
- Added some more choices to the sound options menu.
|
|
|
|
|
- Added support for setting player sounds by their real names in skins
|
|
|
|
|
(i.e. *xdeath instead of pspdiehi), and added a few more sound mappings
|
|
|
|
|
for the Legacy names.
|
|
|
|
|
- Added simple palette remapping for skins so that Doom skins can be used
|
|
|
|
|
while playing Heretic.
|
|
|
|
|
|
|
|
|
|
December 2, 2002
|
|
|
|
|
- Added software OPL2-synthesis for MUS music in order to mimic "the
|
|
|
|
|
good old days." I haven't had a soundcard with an OPL chip in six years,
|
|
|
|
|
so I don't know how accurate the sound is, but I think it's reasonable.
|
|
|
|
|
Pity it takes around 10% of the CPU time on my Athlon XP 1600 (at 44.1 KHz).
|
|
|
|
|
The MUS player part of it comes from Vladimir Arnost's MUS Lib, and the
|
|
|
|
|
OPL2 part of it is from MAME.
|
|
|
|
|
|
|
|
|
|
November 28, 2002
|
|
|
|
|
- Fixed the player setup menu to work with scaled sprites, and added an
|
|
|
|
|
option to skins so you can set the scale for more than just the base
|
|
|
|
|
sprite.
|
|
|
|
|
- Gave each player their own set of weapon slots, so custom slots can be
|
|
|
|
|
used in net games and demo playback.
|
|
|
|
|
- Added player translations for Hexen.
|
|
|
|
|
- Added player class filtering for the Hexen fourth weapon pieces.
|
|
|
|
|
|
|
|
|
|
November 26, 2002
|
|
|
|
|
- Added player class filtering for the Hexen weapons.
|
|
|
|
|
- Added the "Healing Radius" artifact.
|
|
|
|
|
- Fixed a hub travel bug when playing with bots. If there were more bots
|
|
|
|
|
in the level being travelled to than the one travelling from, the load
|
|
|
|
|
would fail.
|
|
|
|
|
- Fixed: ASorcBall::Serialize() did not call its super method.
|
|
|
|
|
- Fixed a hub travel bug introduced by the version tracking code:
|
|
|
|
|
SaveVersion would not be set before a game was actually saved or loaded,
|
|
|
|
|
so snapshots would not load back properly until that happened. Another
|
|
|
|
|
related problem is that somebody could load an old savegame with
|
|
|
|
|
multiple snapshots and then save it again without revisiting all the
|
|
|
|
|
snapshots. Thus, a savegame could have snapshots created with different
|
|
|
|
|
versions of the game, so each snapshot needs to carry version information
|
|
|
|
|
around with it.
|
|
|
|
|
|
|
|
|
|
November 25, 2002
|
|
|
|
|
- Changed the ACS print and hudmessage commands so that if a projectile
|
|
|
|
|
activates a script, they will print to the screen of whoever fired the
|
|
|
|
|
projectile instead of failing because the projectiles don't have a screen.
|
|
|
|
|
Also changed them so that they show up for anybody spying on the person
|
|
|
|
|
who activated the script.
|
|
|
|
|
- Added the pig.
|
|
|
|
|
- Disabled skins in Hexen, and changed the player setup menu to show class
|
|
|
|
|
instead of skin when playing Hexen.
|
|
|
|
|
- Added "random" as a choice in the Hexen class/new-game menu.
|
|
|
|
|
- Fixed: p_GiveArmor() gave the negative value of the desired armor, which is
|
|
|
|
|
effectively the same as always giving blue armor.
|
|
|
|
|
- Fixed the weapon slots so that they can accurately determine if a weapon
|
|
|
|
|
using both types of mana can be selected.
|
|
|
|
|
|
|
|
|
|
November 23, 2002
|
|
|
|
|
- Put Hexen's new game menus in place, although you still can't select a
|
|
|
|
|
player class.
|
|
|
|
|
- Disabled blood splats for players using the god mode cheat.
|
|
|
|
|
- Added palette flashes for Hexen's poison and ice damage and the Wraithverge
|
|
|
|
|
and Bloodscourge.
|
|
|
|
|
- Added the Bloodscourge and Wraithverge.
|
|
|
|
|
- Changed sound loading to use the heap instead of zone memory, so large sounds
|
|
|
|
|
can be used (although it's probably a bad idea nonetheless). Also added a
|
|
|
|
|
fallback mechanism so that sounds that are too big for hardware buffers will
|
|
|
|
|
be created in software instead.
|
|
|
|
|
- Fixed the Doom status bar so that removing a key from the player's inventory
|
|
|
|
|
will remove the key from the status bar without having to manually hide the
|
|
|
|
|
status bar first.
|
|
|
|
|
- Added FloorClip as a property for use with DECORATE.
|
|
|
|
|
|
|
|
|
|
November 22, 2002
|
|
|
|
|
- Added WAVE loading to the alternate mixer.
|
|
|
|
|
|
|
|
|
|
November 21, 2002
|
|
|
|
|
- Added an alternate sound mixer that bypasses FMOD and and does all the sound
|
|
|
|
|
mixing itself, feeding it to a DirectSound buffer directly. This is not
|
|
|
|
|
meant to be a complete replacement for FMOD, so it's pretty basic. It's not
|
|
|
|
|
even particularly optimized. I only wrote it in the hope that it alleviates
|
|
|
|
|
the BSODs a very few people got without -nosound.
|
|
|
|
|
|
|
|
|
|
November 19, 2002
|
|
|
|
|
- Changed ThrustThing to mimic the original P_XYMovement() MAXMOVE clamping.
|
|
|
|
|
Setting the third parameter 1 will let you use any thrust you want.
|
|
|
|
|
- Put back the maxmove restriction for underwater actors, but it should
|
|
|
|
|
probably be handled differently.
|
|
|
|
|
- Fixed: Respawning in single player would execute respawn scripts instead of
|
|
|
|
|
enter scripts, and travelling to a new map without being dead would not
|
|
|
|
|
execute respawn or enter scripts.
|
|
|
|
|
- Fixed: Only the first entry in each DECORATE lump would be processed.
|
|
|
|
|
- Fixed P_XYMovement() so that startx, starty, onestepx, and onestepy are
|
|
|
|
|
properly recalculated after sliding along a wall. This seems to have fixed
|
|
|
|
|
the ability to go through walls at corners when moving very quickly. I hope
|
|
|
|
|
there aren't any other bugs lurking in there.
|
|
|
|
|
- Fixed recording of compressed demos: The demobodyspot and democompspot
|
|
|
|
|
pointers were not being moved when demobuffer would get realloced, so
|
|
|
|
|
replacing the BODY chunk with compressed data would stomp on invalid memory.
|
|
|
|
|
- Fixed: P_SlideMove()'s stairstep case still used mo->momx instead of tryx.
|
|
|
|
|
- Fixed G_QueueBody() and the pointer cleanup in dobject.cpp so that it
|
|
|
|
|
doesn't try to destroy bodies that were already destroyed outside of
|
|
|
|
|
that function (such as by a crusher squishing the body).
|
|
|
|
|
|
|
|
|
|
November 15, 2002
|
|
|
|
|
- Added the Quietus.
|
|
|
|
|
|
|
|
|
|
November 13, 2002
|
|
|
|
|
- Hexen has a status bar now.
|
|
|
|
|
|
|
|
|
|
November 9, 2002
|
|
|
|
|
- Changed CheckIfExitIsGood() so that dead players cannot exit a level.
|
|
|
|
|
- Fixed: The ThrustThing special is supposed to add to the actor's velocity,
|
|
|
|
|
not set it.
|
|
|
|
|
|
|
|
|
|
November 8, 2002
|
|
|
|
|
- Imported the node builder fix that splits segs collinear with a splitter
|
|
|
|
|
with any events they cross. This is only necessary for bad maps that have
|
|
|
|
|
overlapping linedefs.
|
|
|
|
|
- Changed dehacked text replacement so that if a pickup sprite's name is
|
|
|
|
|
changed, the identification map used by DehackedPickup is also updated.
|
|
|
|
|
This lets you pick up Strain's shotgun, plasma rifle, and BFG replacements.
|
|
|
|
|
- Changed bot_observer mode so that it does not set the player's MF_SHADOW
|
|
|
|
|
bit.
|
|
|
|
|
- Changed P_LookForPlayer() so that it does not "find" players without the
|
|
|
|
|
MF_SHOOTABLE bit set.
|
|
|
|
|
- Added floorclip adjustments for sectors that have their floorpics changed
|
|
|
|
|
or move their floors.
|
|
|
|
|
- Fixed floorclipping so that it chops off the same amount of space for all
|
|
|
|
|
vertical sprite scales (as opposed to chopping off x rows from the bottom
|
|
|
|
|
of the source sprite).
|
|
|
|
|
|
|
|
|
|
November 6, 2002
|
|
|
|
|
- Removed the menu title graphics from zdoom.wad because they can just be
|
|
|
|
|
drawn using BigFont.
|
|
|
|
|
- Moved "Player Setup" into the options menu and removed the last vestiges
|
|
|
|
|
of the old fire effect for that menu.
|
|
|
|
|
- Extralights don't work with the release build. Oh well.
|
|
|
|
|
- #if-ed out the decal-out-of-range code again, because I think it should
|
|
|
|
|
finally be fixed thanks to the recent changes to PrepWall.
|
|
|
|
|
- Made some changes to allow for loading earlier format savegames. Right now,
|
|
|
|
|
that means ZDOOMSAVE200 games can still be loaded. Earlier versions won't be
|
|
|
|
|
supported.
|
|
|
|
|
- Added Dehacked Gravity and LowGravity code pointers.
|
|
|
|
|
- Made demo_compress a global config cvar.
|
|
|
|
|
- Changed the ini's location to be "$PROGDIR/zdoom-$USERNAME.ini" because
|
|
|
|
|
some people have multiple copies of ZDoom installed in different directories
|
|
|
|
|
for different IWADs, and they might want to use different configs with them.
|
|
|
|
|
- Fixed sector triangle finding for area-less sectors.
|
|
|
|
|
|
|
|
|
|
November 4, 2002
|
|
|
|
|
- Added more correctness checks to PrepWall() and PrepLWall() to check for
|
|
|
|
|
out-of-bounds texture columns. The very-near-a-decal-crashing problem should
|
|
|
|
|
be solved now.
|
|
|
|
|
|
|
|
|
|
November 2, 2002
|
|
|
|
|
- Restored the menu_gameplay command I had accidentally removed.
|
|
|
|
|
|
|
|
|
|
October 31, 2002
|
|
|
|
|
- Added a check to A_Lower() to ensure that the pendingweapon is not
|
|
|
|
|
wp_nochange.
|
|
|
|
|
- Fixed: The ACS SetWeapon command checked if there was enough weapon to use
|
|
|
|
|
the current weapon, not the one being switched to.
|
|
|
|
|
- Fixed: The FFont* serializer could only use already loaded fonts. It could
|
|
|
|
|
not load any new ones, so some FFont pointers could be initialized to NULL
|
|
|
|
|
after reloading a savegame from a previous session.
|
|
|
|
|
|
|
|
|
|
October 30, 2002
|
|
|
|
|
- Merged the separate floorcolormap and ceilingcolormap sector members back
|
|
|
|
|
into a single ColorMap member.
|
|
|
|
|
- "3D lights" can color floors and ceilings now.
|
|
|
|
|
|
|
|
|
|
October 29, 2002
|
|
|
|
|
- Decided to do something fun, so I added support for rendering "3D lights"
|
|
|
|
|
on walls.
|
|
|
|
|
- Changed HealThing special so that it does nothing if the actor's health
|
|
|
|
|
is already above the specified maximum.
|
|
|
|
|
- Fixed: The eyes crossing fake floor/ceiling special actions were only
|
|
|
|
|
checked when moving vertically. They also need to be implemented for
|
|
|
|
|
horizontal movement in case the fake floor/ceiling is sloped.
|
|
|
|
|
|
|
|
|
|
October 23, 2002
|
|
|
|
|
- Fixed: The MF3_GHOST flag was not cleared when the invisibility
|
|
|
|
|
artifact wore off.
|
|
|
|
|
|
|
|
|
|
October 21, 2002
|
|
|
|
|
- Added Ceiling_Waggle as special 38.
|
|
|
|
|
- Added a check for a 0 maxmove to P_XYMovement() because P_DoCrunch() sets
|
|
|
|
|
the gib's radius to 0.
|
|
|
|
|
|
|
|
|
|
October 15, 2002
|
|
|
|
|
- Restored the old x2 calculation in R_ProjectSprite and changed the
|
|
|
|
|
iscale calculation so that it is based on the x1, x2 values instead of
|
|
|
|
|
the inverse of xscale.
|
|
|
|
|
|
|
|
|
|
October 14, 2002
|
|
|
|
|
- Reenabled the error check in WallSpriteColumn() because it seems it can
|
|
|
|
|
still happen. Now it has a bunch more debug spew and exits with
|
|
|
|
|
I_FatalError().
|
|
|
|
|
- Changed the x2 calculation in R_ProjectSprite() because the old method
|
|
|
|
|
could cause a sprite to be drawn one pixel too wide under rare
|
|
|
|
|
circumstances.
|
|
|
|
|
- Fixed: R_ProjectSprite() did not add one to thing->xscale.
|
|
|
|
|
- Added a check to the node builder for maps without any lines so that
|
|
|
|
|
it can exit gracefully instead of crashing.
|
|
|
|
|
- Made Sector_SetFriction work from inside scripts.
|
|
|
|
|
- Changed Floor_RaiseByValueTxTy so that if it isn't activated by a line,
|
|
|
|
|
the target's sector type is set to 0, and its floor is left alone. This
|
|
|
|
|
should be much better than crashing.
|
|
|
|
|
|
|
|
|
|
October 12, 2002
|
|
|
|
|
- Imported all the changes from the standalone node builder to increase
|
|
|
|
|
accuracy and add support for GL nodes.
|
|
|
|
|
|
|
|
|
|
October 10, 2002
|
|
|
|
|
- Fixed the ordering of the WTSRegisterSessionNotification call so that it
|
|
|
|
|
(again) occurs after the window is created, so the message loop can
|
|
|
|
|
actually receive the messages.
|
|
|
|
|
- Replaced the %p and %I64x format specifiers I was using in i_crash.cpp to
|
|
|
|
|
equivalent %x replacements, because the Windows 9x version of wsprintf
|
|
|
|
|
does not understand them.
|
|
|
|
|
- Made MinotaurSpecial, DSparilSpecial, IronlichSpecial, and
|
|
|
|
|
SpecialAction_KillMonsters accessable through MAPINFO.
|
|
|
|
|
- Changed message handling in P_CheckKeys() so that the correct Heretic key
|
|
|
|
|
messages will show up even if you don't flag the keys as "either will do"--
|
|
|
|
|
a rather pointless thing for Heretic since it only has three unique keys.
|
|
|
|
|
|
|
|
|
|
October 1, 2002
|
|
|
|
|
- Fixed a bug in P_XYMovement() that could cause you to move exponentially
|
|
|
|
|
faster when running on a slope along a wall.
|
|
|
|
|
|
|
|
|
|
September 30, 2002
|
|
|
|
|
- Fixed the Doom status bar so that the ouch face will show up when it was
|
|
|
|
|
intended to.
|
|
|
|
|
|
|
|
|
|
September 27, 2002
|
|
|
|
|
- Removed Infight from DehInfo so that monster infighting can be completely
|
|
|
|
|
controlled by the cvar.
|
|
|
|
|
|
|
|
|
|
September 26, 2002
|
|
|
|
|
- Fixed FDoomEdMap so that it works with negative thing numbers without
|
|
|
|
|
crashing.
|
|
|
|
|
- Fixed dehacked text substitution trying to compare against a null music name
|
|
|
|
|
in the predefined mapinfos.
|
|
|
|
|
- Fixed "Monster Ignore Each Other" infighting mode so that player projectiles
|
|
|
|
|
can damage monsters.
|
|
|
|
|
- Changed P_SlideMove so that it can use the smaller steps from
|
|
|
|
|
P_XYMovement, so if something is moving very fast and slides along the wall,
|
|
|
|
|
it shouldn't be able to pass right through small obstacles next to the wall.
|
|
|
|
|
- Fixed: If a move was split into multiple steps and you went through a
|
|
|
|
|
teleporter, the remainder of the move would still be executed from your
|
|
|
|
|
original position, rendering the teleport useless.
|
|
|
|
|
|
|
|
|
|
September 21, 2002
|
|
|
|
|
- Played around with a 140 Hz TICRATE for a while. The high framerate was
|
|
|
|
|
nice, but there are too many places that implicitly depend on a 35 Hz TICRATE
|
|
|
|
|
(physics in particular) for me to try and truly fix the game for variable
|
|
|
|
|
TICRATEs before a final release.
|
|
|
|
|
- Removed the unused P_CalcSwing() function and its related global variables.
|
|
|
|
|
|
|
|
|
|
September 18, 2002
|
|
|
|
|
- Fixed the use of seg grouping in the node builder so it actually works as
|
|
|
|
|
intended. The mechanism GroupSegPlanes() uses to group segs was also
|
|
|
|
|
changed before I discovered the real problem with it: SelectSplitter()
|
|
|
|
|
was using r = pseg->planenum & 7; instead of r = 1 << (pseg->planenum & 7);
|
|
|
|
|
The new grouping scheme may not have been necessary, but it should be
|
|
|
|
|
faster at least.
|
|
|
|
|
|
|
|
|
|
September 17, 2002
|
|
|
|
|
- Removed playernumber from DCajunMaster. The only time it was used for
|
|
|
|
|
something non-local was in the ThinkForMove method, but its use there
|
|
|
|
|
was inconsistant with its other uses. Apparently, ThinkForMove expected it
|
|
|
|
|
to be the maximum player number plus one, but SpawnBot stored the most
|
|
|
|
|
recently spawned bot there instead. This could crash ThinkForMove if
|
|
|
|
|
the most recent bot spawned was player 0. Replacing its use in ThinkForMove
|
|
|
|
|
with MAXPLAYERS seems acceptable.
|
|
|
|
|
|
|
|
|
|
September 14, 2002
|
|
|
|
|
- Added optional logging of ACS hud messages.
|
|
|
|
|
- Upped the number of local script variables to 20 to match ACC 1.25.
|
|
|
|
|
|
|
|
|
|
September 12, 2002
|
|
|
|
|
- Changed ACS function importing so that imported functions cannot be
|
|
|
|
|
"chained" from one library to the next.
|
|
|
|
|
- Added code to properly tag string arrays.
|
|
|
|
|
- Fixed a hang that could occur when importing ACS arrays.
|
|
|
|
|
- Added a little more information to the crash report.
|
|
|
|
|
- Changed WndProc so that it only resets the language if the WM_SETTINGCHANGE
|
|
|
|
|
message was sent as the result of a locale change.
|
|
|
|
|
- Figured out how to make the crash collector work with secondary threads:
|
|
|
|
|
Using an UnhandledExceptionFilter, the information for that thread is
|
|
|
|
|
collected, the thread is put to sleep, and an APC is queued on the primary
|
|
|
|
|
thread. Once the APC executes, it raises a software exception that gets
|
|
|
|
|
caught by the outer-most __try block, and the primary thread shuts down
|
|
|
|
|
and shows the crash dialog. I think it would be better if I could raise
|
|
|
|
|
exceptions in any thread I wanted, but this will suffice. As long as
|
|
|
|
|
I_GetEvent() is called often enough to put the thread in an alertable state
|
|
|
|
|
using SleepEx, the APC should be able to execute without much delay.
|
|
|
|
|
|
|
|
|
|
September 11, 2002
|
|
|
|
|
- Finished the crash information collection code.
|
|
|
|
|
|
|
|
|
|
September 9, 2002
|
|
|
|
|
- Changed "give armor" cheat to give armor equivalent to blue armor, even when
|
|
|
|
|
Dehacked is used to modify the blue AC.
|
|
|
|
|
|
|
|
|
|
September 7, 2002
|
|
|
|
|
- Fixed: Imported libraries had their source libraries recorded wrong.
|
|
|
|
|
|
|
|
|
|
September 5, 2002
|
|
|
|
|
- Fixed hud messages so that they restore the screen's previous font instead
|
|
|
|
|
of always assuming the previous font was "SmallFont".
|
|
|
|
|
- Changed the node builder so that segs with the same front and back sector
|
|
|
|
|
can be a part of a subsector with segs from a different sector. Although the
|
|
|
|
|
result is not a proper subsector, it is okay because such segs can only add
|
|
|
|
|
masked mid textures to the scene, and those use the seg (not the subsector) to
|
|
|
|
|
find out which sector they belong to. This fixes the area by the fence in
|
|
|
|
|
tqtrust MAP04 when the internal node builder is used.
|
|
|
|
|
- Changed PTR_SlideTraverse so that blocking two-sided lines are treated like
|
|
|
|
|
one-sided lines.
|
|
|
|
|
- Fixed the nodebuilder so it works again without crashing.
|
|
|
|
|
- Fixed: ExtractFileBase did not understand files with a drive specifier but
|
|
|
|
|
no path. i.e. It would consider the base file name for d:myfile.foo as
|
|
|
|
|
d:myfile and not myfile.
|
|
|
|
|
|
|
|
|
|
September 3, 2002
|
|
|
|
|
- Changed the "This map has errors that must be fixed" message to be more
|
|
|
|
|
specific about what exactly needs to be fixed.
|
|
|
|
|
- Made MDK work only in non-deathmatch games, even if sv_cheats is true.
|
|
|
|
|
- Added the following contributions from Stevie-O:
|
|
|
|
|
+ Fixed: AImpactDecal::CloneSelf() would cause ImpactCount accounting to mess
|
|
|
|
|
up if the clone had to be destroyed because it hit the sv_maxdecals limit.
|
|
|
|
|
+ Fixed: Using MDK cheat would print blank lines to the console.
|
|
|
|
|
+ Fixed: Respawning monsters could spawn inside other things because
|
|
|
|
|
P_NightmareRespawn() was not changed to account for thing-over-thing.
|
|
|
|
|
+ Fixed: Telefragged players would still show the FX_RESPAWNINVUL effect if
|
|
|
|
|
it was active when they died.
|
|
|
|
|
+ When bot_observer is true, players can no longer fire their weapons.
|
|
|
|
|
+ Added sv_fastweapons cvar.
|
|
|
|
|
|
|
|
|
|
September 2, 2002
|
|
|
|
|
- Fixed: New-style behavior lumps without any scripts would crash the game.
|
|
|
|
|
|
|
|
|
|
August 31, 2002
|
|
|
|
|
- Made R_InitTextures more forgiving of errors.
|
|
|
|
|
- Changed DrawWrapper to clip columns to the patch's height. This "fixes"
|
|
|
|
|
malgnant.wad's corrupt titlepic that crashed the game.
|
|
|
|
|
|
|
|
|
|
August 26, 2002
|
|
|
|
|
- Added a workaround to the DObject::DestroyScan()s because the bglobal object
|
|
|
|
|
is not showing up in the Objects list.
|
|
|
|
|
- Added whereisini command to make finding the .ini easier for users.
|
|
|
|
|
- Removed MBF torque simulation. It made the corpses fall off the bridge
|
|
|
|
|
at the beginning of the Hexen MAP40, and it was also responsible for the
|
|
|
|
|
"boogying" chaingunners in the last room of Doom2 MAP22. I haven't checked
|
|
|
|
|
MBF to see if they do it in MAP22 there too, but I thought it best just
|
|
|
|
|
to remove it, since it was causing so many reports of anomalies--enough
|
|
|
|
|
reports that I probably copied something wrong. Okay, checking MAP22 with
|
|
|
|
|
PrBoom, the chaingunners do slide perpetually but nowhere near as bad as
|
|
|
|
|
they were doing with ZDoom before.
|
|
|
|
|
- Fixed: After drawing the underwater scene after Heretic E2M8, the normal
|
|
|
|
|
game palette was not being restored.
|
|
|
|
|
- Changed ASoundWaterfall's gametype from Raven to just Heretic. Although it
|
|
|
|
|
exists in Hexen, it cannot be spawned in a map because of conflicting
|
|
|
|
|
doomednums.
|
|
|
|
|
- Removed Linux -cdrom support because it's not needed.
|
|
|
|
|
- Used the new run-time subclassing abilities to add support for pickup items
|
|
|
|
|
that are identified by sprite instead of by class. For it to work, a
|
|
|
|
|
dehacked patch needs to modify an actor (in any way) with the pickup flag.
|
|
|
|
|
Any pickup items touched like this will cause a new class to be derived
|
|
|
|
|
from DehackedPickup. This class will clone the defaults of the original
|
|
|
|
|
actor, and the original actor will be modified so that it does nothing
|
|
|
|
|
but spawn the clone. DehackedPickup implements the functionality to spawn
|
|
|
|
|
a copy of the desired item just long enough to pick it up.
|
|
|
|
|
- Changed DDrawFB::LockSurf so that it retries the resource creation
|
|
|
|
|
multiple times if the error DDERR_UNSUPPORTEDMODE is returned (presumably
|
|
|
|
|
because the NT Security dialog was opened and then closed).
|
|
|
|
|
- Added a check for players without bodies to R_SetupFrame(). This should
|
|
|
|
|
never happen during normal play, but a dehacked patch could cause it to
|
|
|
|
|
happen.
|
|
|
|
|
|
|
|
|
|
August 23, 2002
|
|
|
|
|
- Added a console warning when multiple actors try to map to the same
|
|
|
|
|
doomednum.
|
|
|
|
|
- Removed Printf_Bold. Use Printf with a level of PRINT_BOLD instead. The
|
|
|
|
|
result is exactly the same.
|
|
|
|
|
- Fixed a demo sync bug. When the user alt-tabs away, the game is paused,
|
|
|
|
|
but the demo continues playing anyway. The fix is to change G_Ticker() so
|
|
|
|
|
that if the game is paused, and the demo didn't do it, don't fetch more
|
|
|
|
|
tic commands from the demo until the game becomes unpaused. Unfortunately,
|
|
|
|
|
hitting a breakpoint in debug mode will still mess up demo playback, so
|
|
|
|
|
I avoid pausing the game at all when the window is deactivated and a
|
|
|
|
|
demo is playing if _DEBUG is defined.
|
|
|
|
|
- Fixed: When a multi-step move is blocked in P_XYMovement, the move needs
|
|
|
|
|
to actually stop right away. This seems to be what caused wallrunning: In
|
|
|
|
|
the first step, the player hit the wall, so his movement got clipped to it.
|
|
|
|
|
In the next step, the player would continue in his original direction and
|
|
|
|
|
travel further along the wall. Since I know what causes wall running now,
|
|
|
|
|
I added the compat_wallrun cvar to enable it as desired.
|
|
|
|
|
- Reduced maxmove in P_XYMovement from (mo->radius*2 - FRACUNIT) to just
|
|
|
|
|
mo->radius. This brings back wallrunning (unexpected), but I'm hoping it
|
|
|
|
|
stops things shooting through walls when they're very fast. The original
|
|
|
|
|
maxmove I chose seems quite high. I don't know why I did that.
|
|
|
|
|
- Changed Megasphere back to being pickup-able even when you're already full
|
|
|
|
|
on health and armor.
|
|
|
|
|
- Fixed: Automap powerup did nothing.
|
|
|
|
|
|
|
|
|
|
August 22, 2002
|
|
|
|
|
- Fixed: Heretic's gauntlets are supposed to have their kickback set to 0 so
|
|
|
|
|
that they don't push monsters away.
|
|
|
|
|
- Updated the source for FMOD 3.60: Changed FSOUND_Sample_SetLoopMode to
|
|
|
|
|
FSOUND_Sample_SetMode and removed A3D support.
|
|
|
|
|
- Gave PTR_BounceTraverse() knowledge of ML_BLOCKEVERYTHING lines.
|
|
|
|
|
- Moved the check for MF2_BOUNCETYPE to the beginning of P_BounceWall().
|
|
|
|
|
- Added support for custom inventory classes. These are actors that behave
|
|
|
|
|
like an inventory item and execute their special when touched, but they
|
|
|
|
|
don't actually go in the inventory.
|
|
|
|
|
- Added a new field to DObject to record the object's real type. Now derived
|
|
|
|
|
types created at runtime can be detected. I am now one step closer to having
|
|
|
|
|
the scripting language in place. :-)
|
|
|
|
|
|
|
|
|
|
August 20, 2002
|
|
|
|
|
- Added support for custom decorative classes through the use of a
|
|
|
|
|
DECORATE lump. Currently, all objects generated like this are
|
|
|
|
|
recognized as being type Decoration instead of their real type.
|
|
|
|
|
This isn't really a problem, but I would like to figure out a way
|
|
|
|
|
to easily support objects that are identified as being of a
|
|
|
|
|
run-time-created type.
|
|
|
|
|
|
|
|
|
|
August 19, 2002
|
|
|
|
|
- Fixed: DumpHash would count all the aliases and commands, not just
|
|
|
|
|
the ones it counted.
|
|
|
|
|
|
|
|
|
|
August 16, 2002
|
|
|
|
|
- Added some new initialization code that was missing for old Hexen
|
|
|
|
|
behaviors.
|
|
|
|
|
- Fixed: World and global variables were not stored in save games.
|
|
|
|
|
- Changed sidedef indices to be unsigned, so now you can have up to
|
|
|
|
|
65535 of them in a level.
|
|
|
|
|
|
|
|
|
|
August 14, 2002
|
|
|
|
|
- Added support for 8 mouse buttons using DirectInput and at least 5
|
|
|
|
|
mouse buttons using standard Windows messages. I extrapolated from
|
|
|
|
|
Microsoft's docs for WM_XBUTTONDOWN/UP, so it will probably work with
|
|
|
|
|
up to 8 buttons if Microsoft ever releases a mouse with more buttons.
|
|
|
|
|
|
|
|
|
|
August 12, 2002
|
|
|
|
|
- Finished adding support for ACS libraries. Now I just need to test it
|
|
|
|
|
some more.
|
|
|
|
|
- Fixed: ACS arrays were not serialized.
|
|
|
|
|
|
|
|
|
|
August 3, 2002
|
|
|
|
|
- Added compressed demo support.
|
|
|
|
|
- Fixed: PCD_ASSIGNMAPARRAY accessed ACS_WorldVars instead of level.vars,
|
|
|
|
|
so storing to arrays was unpredictable unless you never touched any world
|
|
|
|
|
vars. In that case, it would always store to the first array declared.
|
|
|
|
|
|
|
|
|
|
July 31, 2002
|
|
|
|
|
- Fixed some stuff with local doors already performing a ceiling action.
|
|
|
|
|
In particular, if the ceiling was moving but not as a door, it's thinker
|
|
|
|
|
would be replaced with a door thinker instead of being left alone.
|
|
|
|
|
- Wallrunning seems to be gone. I don't know when it disappeared. I
|
|
|
|
|
certainly set out trying to fix it.
|
|
|
|
|
- Fixed: The stairstep case for stepping along the x-axis in P_SlideMove()
|
|
|
|
|
was the subject of some incomplete copy-and-paste, which is probably why
|
|
|
|
|
it was so easy to get stuck on diagonal walls.
|
|
|
|
|
|
|
|
|
|
July 30, 2002
|
|
|
|
|
- Added a third parameter to the TranslucentLine special to select the
|
|
|
|
|
translucency type. Currently it can be 0 for normal translucency or 1 for
|
|
|
|
|
additive translucency. Also updated the translators to handle Legacy's
|
|
|
|
|
284, 285, and 287 types.
|
|
|
|
|
- Made textures with patchless columns work.
|
|
|
|
|
|
|
|
|
|
July 29, 2002
|
|
|
|
|
- Finally did the math for the conversion of the SSG's vertical spread from
|
|
|
|
|
slope to pitch and discovered that I had it slightly too small.
|
|
|
|
|
- Added COMPATF_SILENTPICKUP flag to play item pickup sounds locally only.
|
|
|
|
|
- Moved NO_PASSMOBJ flag from dmflags to compatflags.
|
|
|
|
|
- Moved sv_ihatesounds into compatflags as COMPATF_MAGICSILENCE.
|
|
|
|
|
- Removed SNDCURVE from zdoom.wad. Playing Doom will now generate a sound
|
|
|
|
|
curve compatible with the Doom's original distance attenuation.
|
|
|
|
|
|
|
|
|
|
July 22, 2002
|
|
|
|
|
- Started work on an output class that using IDirect3D8 instead of
|
|
|
|
|
IDirectDraw2, but then I found out IDirect3D8 can't do paletted output.
|
|
|
|
|
I was hoping to get descent blitter support out of it, but if I have to
|
|
|
|
|
translate the image every frame, it might not be worth it. I could try
|
|
|
|
|
getting tricky with the hardware gamma ramp so that I need only copy
|
|
|
|
|
pixels out to the back buffer without doing any format conversion, but I
|
|
|
|
|
don't know if it's worth it.
|
|
|
|
|
|
|
|
|
|
July 17, 2002
|
|
|
|
|
- Fixed session notification mysteriously crashing the game with a release
|
|
|
|
|
build. Because the default calling convention for the release build is
|
|
|
|
|
set to __fastcall, I need to explicitly specify that the functions I
|
|
|
|
|
retrieved using GetProcAddress are __stdcall. (But that doesn't explain
|
|
|
|
|
why they worked with the debug build.)
|
|
|
|
|
|
|
|
|
|
July 11, 2002
|
|
|
|
|
- Fixed some bugs when I_MovieDisableSound() is called when there are
|
|
|
|
|
repeating sounds playing.
|
|
|
|
|
- Added some support for XP's session locking and fast user switching. Now
|
|
|
|
|
you can use either, and the window will be able to properly restore itself,
|
|
|
|
|
and it shuts down the sound when the session is locked. For some reason,
|
|
|
|
|
I cannot get MIDIs to play in my other account. I would blame stupid
|
|
|
|
|
Audigy bugs, but it doesn't work with Microsoft's GS synth either.
|
|
|
|
|
|
|
|
|
|
July 9, 2002
|
|
|
|
|
- Changed the behavior of MF_SPECIAL actors so that non-inventory actors
|
|
|
|
|
will execute their specials when touched.
|
|
|
|
|
|
|
|
|
|
July 2, 2002
|
|
|
|
|
- Changed sector_t::FindShortestTextureAround and ::FindShortestUpperAround
|
|
|
|
|
to not consider texture 0 for height determinations, so now they can return
|
|
|
|
|
lengths greater than 64 if any lines around the sector have an untextured
|
|
|
|
|
side. The compat_shortTex cvar can be used to get the original Doom
|
|
|
|
|
behavior back. These functions now know about scaled textures and always
|
|
|
|
|
return the result in world units.
|
|
|
|
|
|
|
|
|
|
June 25, 2002
|
|
|
|
|
- Made the C versions of the plane drawers work with non-64x64 flats.
|
|
|
|
|
- Added automatic scaling of 128x128 and 256x256 flats so that they get
|
|
|
|
|
treated as if they were only 64x64 world units in size. Also added support
|
|
|
|
|
for 8x8, 16x16, and 32x32 flats, which are not automatically scaled larger
|
|
|
|
|
to fit a 64x64 cell.
|
|
|
|
|
|
|
|
|
|
June 19, 2002
|
|
|
|
|
- Added support for 128x128 and 256x256 flats on slopes.
|
|
|
|
|
|
|
|
|
|
June 14, 2002
|
|
|
|
|
- Added support for 128x128 and 256x256 flats on normal planes.
|
|
|
|
|
|
|
|
|
|
June 13, 2002
|
|
|
|
|
- Fixed: When a player spawned, the local player's view would be reset to
|
|
|
|
|
whoever they spied through last.
|
|
|
|
|
- Fixed positioning of scaled pegged upper textures. I was not compensating
|
|
|
|
|
for the texture's scale.
|
|
|
|
|
- Fixed: Demo sequence would loop to DEMO2 instead of DEMO1.
|
|
|
|
|
- Fixed handling of PNG tEXt chunks. I misread the specs, thinking that the
|
|
|
|
|
keyword always occupied 80 bytes, but that's just the maximum size for the
|
|
|
|
|
keyword. It can be smaller and does not get padded with zeros.
|
|
|
|
|
|
|
|
|
|
June 12, 2002
|
|
|
|
|
- Fixed: When missiles destroyed themselves right away in their death state,
|
|
|
|
|
the game would crash if it tried to move them again (because their movement
|
|
|
|
|
was divided into multiple steps).
|
|
|
|
|
|
|
|
|
|
June 11, 2002
|
|
|
|
|
- Fixed: BestColor_MMX set ebx before saving it, and it did it after ecx
|
|
|
|
|
had already been shifted. I don't know why it worked at all.
|
|
|
|
|
- Changed the project settings to statically link to the CRT under VC7
|
|
|
|
|
because I don't want to redistribute MSVCR70.dll.
|
|
|
|
|
- Experimented with separating the various games into libraries but stopped
|
|
|
|
|
when I found out that I had no easy way to bring all the actor definitions
|
|
|
|
|
into the executable that I wanted.
|
|
|
|
|
- Removed lots of warnings when VC7 is set to look for 64-bit portability
|
|
|
|
|
complications.
|
|
|
|
|
- Added MF_COUNTKILL to ALostSoul and changed the monster counting to
|
|
|
|
|
happen in AActor::StaticSpawn instead of at map load time.
|
|
|
|
|
- Fixed stylization of console backgrounds that are derived from title pics
|
|
|
|
|
that are not 320x200.
|
|
|
|
|
- Added named thread support to the FHelperThread class.
|
|
|
|
|
- Moved zdoom.ini to the CSIDL_APPDATA directory so different users can have
|
|
|
|
|
different zdoom.ini files.
|
|
|
|
|
- Added -cdrom support under Linux courtesy of Hirogen2.
|
|
|
|
|
- Added the work-around to allow FBaseCVar::ToInt() to compile with GCC 2.95.
|
|
|
|
|
- Added XP visual styles support for the dialogs.
|
|
|
|
|
- Added more OS names to I_DetectOS().
|
|
|
|
|
- Removed PROP_STATE_BASE because I could not get it to compile with VC7.
|
|
|
|
|
All state sharing must now be done using inheritance.
|
|
|
|
|
- Changed the ALavaSomke definition to set the default alpha using an
|
|
|
|
|
AT_GAME_SET function. Aside from causing VC7 to gobble up all available
|
|
|
|
|
memory and crash horribly, using the PROP_Alpha macro in this situation is
|
|
|
|
|
incorrect because it depends on information that is not available at compile
|
|
|
|
|
time.
|
|
|
|
|
|
|
|
|
|
May 6, 2002
|
|
|
|
|
- Fixed spawn(spot) so that they only set MF_DROPPED for items and not
|
|
|
|
|
everything.
|
|
|
|
|
- Changed R_DrawColumnInCache() so that it correctly draws patches with
|
|
|
|
|
a negative originy.
|
|
|
|
|
- Added Thing_Hate special.
|
|
|
|
|
- Added a name string ("Unnamed") to the default level info so that using
|
|
|
|
|
changemap to switch between maps without an associated level info does
|
|
|
|
|
not crash (although it does prevent saving on those levels).
|
|
|
|
|
- Fixed the stringlist utility to sort string names case-insensitively
|
|
|
|
|
because the game uses a case-insensitive search to find them.
|
|
|
|
|
- Initialized air_finished in P_SpawnPlayer so that if you spawn underwater
|
|
|
|
|
after drowning in a multiplayer game, you won't start drowning immediately.
|
|
|
|
|
- Fixed: AArtiEgg and AGibs did not have spawn states so they could not be
|
|
|
|
|
placed on a map.
|
|
|
|
|
- Fixed: Say(_team) did not check that they were called with any parameters.
|
|
|
|
|
|
|
|
|
|
April 27, 2002
|
|
|
|
|
- Added more error checks when loading the BSP tree.
|
|
|
|
|
|
|
|
|
|
April 18, 2002
|
|
|
|
|
- Removed the bot things list because it couldn't handle items that had been
|
|
|
|
|
removed from the level.
|
|
|
|
|
- Changed movie playback to only exit when escape is pressed. Also disabled
|
|
|
|
|
Alt-Tabbing away from fullscreen movies so that I don't have to worry
|
|
|
|
|
about the messed-up state that can put things in.
|
|
|
|
|
- Fixed: When a movie was not found, I_PlayMovie could try to restore video
|
|
|
|
|
resources it never released because runningFull was not initialized right
|
|
|
|
|
away.
|
|
|
|
|
- Added a new Thing_ProjectileAimed special (178).
|
|
|
|
|
- Added MF2_SEEKERMISSILE to the RevenantTracer.
|
|
|
|
|
- Added slopes and aligned flats to the BUILD loader.
|
|
|
|
|
- Changed P_GivePower() to not check if the player already has the power
|
|
|
|
|
when playing Doom.
|
|
|
|
|
- Added pattern matching for the -file parameter.
|
|
|
|
|
|
|
|
|
|
April 17, 2002
|
|
|
|
|
- Added a loader for BUILD maps. It's not very useful since the Doom engine is
|
|
|
|
|
so much more limited than BUILD, but it's fun to be able to load them anyway.
|
|
|
|
|
- Added a NoAlert flag for splashes that you don't want monsters to hear.
|
|
|
|
|
- Removed the option of specifying multiple footstep sounds for terrain
|
|
|
|
|
because the $random SNDINFO command can do the job better. (And no, footsteps
|
|
|
|
|
are still not implemented.)
|
|
|
|
|
- Made splash sounds work even without a corresponding splash actor.
|
|
|
|
|
- Removed the MF3_VERYFAST flag. Any missiles with a speed of 100 or more will
|
|
|
|
|
automatically be offset closer to the originator than a normal missile.
|
|
|
|
|
|
|
|
|
|
April 16, 2002
|
|
|
|
|
- Changed P_XYMovement() to take smaller steps when moving faster than is good
|
|
|
|
|
for the actor's size.
|
|
|
|
|
|
|
|
|
|
April 15, 2002
|
|
|
|
|
- Changed floor bounces so that they properly reflect off of slopes.
|
|
|
|
|
- Added the CVAR_NOSAVE flag so that I can use it with sv_gravity and
|
|
|
|
|
sv_aircontrol to avoid archiving them with a savegame. If I do save them,
|
|
|
|
|
then reading them back will override the real settings for those variables
|
|
|
|
|
that are stored in the level structure.
|
|
|
|
|
- Added the Thing_Damage special (119). It's similar to DamageThing, except it
|
|
|
|
|
hurts things by TID instead of whoever activated it.
|
|
|
|
|
- Removed the LEVEL_NOSOUNDCLIPPING flag. When sounds are at maximum distance,
|
|
|
|
|
they are very quiet and hard to hear so it didn't seem worthwhile to keep
|
|
|
|
|
the code around for this.
|
|
|
|
|
|
|
|
|
|
April 9, 2002
|
|
|
|
|
- Fixed: Particles were not drawn in the color of their containing sectors
|
|
|
|
|
when using light amp goggles.
|
|
|
|
|
- Added code to make the pain elemental move down if it's too close to the
|
|
|
|
|
ceiling to successfully launch a lost soul.
|
|
|
|
|
|
|
|
|
|
April 6, 2002
|
|
|
|
|
- Fixed: P_TestMobjLocation() should test the central z of an actor with
|
|
|
|
|
float bob, not its current z.
|
|
|
|
|
- Fixed: Only the colormap stored in the wad was created with new. The rest
|
|
|
|
|
were still on the zone heap. There's also no reason why they need to be
|
|
|
|
|
aligned to 256 byte boundaries.
|
|
|
|
|
|
|
|
|
|
April 5, 2002
|
|
|
|
|
- Added SPC music support using snesapu.dll.
|
|
|
|
|
|
|
|
|
|
April 4, 2002
|
|
|
|
|
- Changed text scaling at 800x600 and similar resolutions to keep everything
|
|
|
|
|
square.
|
|
|
|
|
- Added two rotozoomers on top of the plasma to make it look more interesting.
|
|
|
|
|
- Fixed: Colors set with setcolor now carry over to new maps.
|
|
|
|
|
- Removed the sv_friction cvar because it was never used.
|
|
|
|
|
- Added a few substitutions for chat messages. Set chat_substitution to true,
|
|
|
|
|
and $health, $weapon, $armor, $ammo, and $ammocount will be replaced by
|
|
|
|
|
appropriate strings.
|
|
|
|
|
- Added /me support for chat messages.
|
|
|
|
|
- Changed the setweapon ACS command to disallow switching to a weapon the
|
|
|
|
|
player does not have enough ammo for.
|
|
|
|
|
- Changed S_ChangeMusic() so that an empty string will also stop the currently
|
|
|
|
|
playing music.
|
|
|
|
|
- Changed the announcements for player team and name to be shown only if the
|
|
|
|
|
new values are different from the old ones.
|
|
|
|
|
|
|
|
|
|
April 2, 2002
|
|
|
|
|
- Added another bounce flag so that the bounce type can be selected by actor
|
|
|
|
|
instead of by game.
|
|
|
|
|
- Fixed the [*.Autoload] ini sections so that they work with wildcards for
|
|
|
|
|
files that are not in the current directory.
|
|
|
|
|
- Replaced the fire in the player setup menu with a plasma.
|
|
|
|
|
- Moved thinkers off of the zone heap.
|
|
|
|
|
|
|
|
|
|
April 1, 2002
|
|
|
|
|
- Changed R_FreeTags to move the rover back to the beginning of the zone.
|
|
|
|
|
- Moved sprite frames off of the zone heap because they constituted a lot
|
|
|
|
|
of small locked blocks. Did the same for texture column directories,
|
|
|
|
|
colormaps, switches, terrain types, skins, sound sequences, msecnodes,
|
|
|
|
|
and SNDCURVE. The only things left on the heap now that are unpurgable
|
|
|
|
|
are the level data.
|
|
|
|
|
- Added a calling history to the zone heap when compiled with _DEBUG so I
|
|
|
|
|
can see where all the zone memory is going.
|
|
|
|
|
- Changed Z_Malloc so that it only throws away purgable blocks if doing so
|
|
|
|
|
will result in a block large enough for the requested allocation.
|
|
|
|
|
|
|
|
|
|
March 28, 2002
|
|
|
|
|
- Added an extra max parameter to HealThing. 0 will uses the creature's
|
|
|
|
|
spawn health as max. 1 will use the max soulsphere health as max. Anything
|
|
|
|
|
above that will be used as an absolute maximum.
|
|
|
|
|
|
|
|
|
|
March 25, 2002
|
|
|
|
|
- Made sky textures that are scaled vertically draw properly.
|
|
|
|
|
- Made the sky textures scalable horizontally.
|
|
|
|
|
- Verified that the PNG loader really can handle the different filters.
|
|
|
|
|
- Made the weapon slots configurable.
|
|
|
|
|
- Commented out the code that prevents people from using dehacked with
|
|
|
|
|
Heretic and Hexen.
|
|
|
|
|
- Changed the decision of whether or not to spawn puffs when a line attack
|
|
|
|
|
strikes an actor into an actor property.
|
|
|
|
|
- Added code to set PuffType for all the bullet attacks in Doom.
|
|
|
|
|
- Changed P_CheckMissileSpawn to not decrement the missile's first tics if
|
|
|
|
|
the tics are less than one. Now the Centaur Leader can shoot his missile
|
|
|
|
|
when spawned in Doom.
|
|
|
|
|
- Added the projectiles Hexen only spawns from scripts.
|
|
|
|
|
- Fixed: $pitchshift could not be used before defining a sound, so none
|
|
|
|
|
of the Hexen sounds that don't want to be shifted stayed unshifted.
|
|
|
|
|
- Fixed: ZXmasTree, ZBell, and ZSuitOfArmor had undefined mass.
|
|
|
|
|
- Fixed: ZPoisonShroom had undefined health and mass, and it didn't spawn
|
|
|
|
|
a poison cloud on death.
|
|
|
|
|
- Fixed: The Heretic snake did not have an attack sound.
|
|
|
|
|
|
|
|
|
|
March 23, 2002
|
|
|
|
|
- Fixed: PCD_SETTHINGSPECIAL fell through to PCD_THINGSOUND.
|
|
|
|
|
|
|
|
|
|
March 22, 2002
|
|
|
|
|
- Fixed: When the minotaur stops charging, he now properly turns off his
|
|
|
|
|
invulnerability.
|
|
|
|
|
- Fixed: The dehsupp utility was case-sensitive when adding names but not
|
|
|
|
|
when using them, so bex patches could not specify the NOGRAVITY flag by name
|
|
|
|
|
because it has the same name as the NoGravity function, and both versions
|
|
|
|
|
of the name were stored in the dehsupp lump.
|
|
|
|
|
- Using a dehacked patch to set the initial bullets to 0 will now cause the
|
|
|
|
|
player to start with their fist raised instead of the pistol.
|
|
|
|
|
- Changed the error message for switches with invalid second texture names
|
|
|
|
|
to a warning.
|
|
|
|
|
- Fixed: The fighter boss's extreme death crashed the game because it used
|
|
|
|
|
A_SkullPop, which assumed that the actor's player member was non-NULL.
|
|
|
|
|
- Gave the bots some knowledge of Heretic weapons so they don't slow things
|
|
|
|
|
down so bad in that game.
|
|
|
|
|
|
|
|
|
|
March 21, 2002
|
|
|
|
|
- Added a teamplay scoreboard.
|
|
|
|
|
- Added: Bots now join a random team if they aren't specifically assigned a
|
|
|
|
|
team in bots.cfg.
|
|
|
|
|
- Added: When teamplay is true, players (finally) use their team colors.
|
|
|
|
|
- Added a sector action that gets triggered when an actor hits the sector's
|
|
|
|
|
fake floor. (doomednum 9989)
|
|
|
|
|
- Added another flash state to the pistol so that if people want to use a
|
|
|
|
|
patch to make it behave like a railgun or plasma rifle (and keep the flash
|
|
|
|
|
states), it will work without crashing.
|
|
|
|
|
- Fixed: A_FireCGun() assumed that flash states were present. This is not
|
|
|
|
|
normally a problem, but dehacked patches can make this precondition false.
|
|
|
|
|
- Fixed: Ambient sounds saved their NextCheck time in gametics, so you
|
|
|
|
|
wouldn't be able to hear them after a load until the game had been running
|
|
|
|
|
at least as long as it had been running when you saved.
|
|
|
|
|
- Added support for encrypting ACS strings, and added the ACS_ExecuteWait
|
|
|
|
|
shortcut to ACC. ACS_ExecuteWait(x, ...) is equivalent to ACS_Execute(x,...);
|
|
|
|
|
ScriptWait(x); It uses the existing p-codes instead of introducing more of
|
|
|
|
|
its own. Think of it as syntactic sugar.
|
|
|
|
|
|
|
|
|
|
March 20, 2002
|
|
|
|
|
- Added code to the node builder to group segs by their line equations so that
|
|
|
|
|
when there are several segs that would create the same partition line, only
|
|
|
|
|
one of them needs to be checked to see if it is a good splitter.
|
|
|
|
|
|
|
|
|
|
March 19, 2002
|
|
|
|
|
- Changed polyobj container detection in the node builder to work the same
|
|
|
|
|
way it does in the game: A polyobject's subsector is determined by its
|
|
|
|
|
center after it gets translated to its start spot--not by the start spot
|
|
|
|
|
itself. One case where this distinction is important is the polyobject north
|
|
|
|
|
of the dining room in Hexen MAP33; its start spot is in a sector different
|
|
|
|
|
from where it appears.
|
|
|
|
|
|
|
|
|
|
March 18, 2002
|
|
|
|
|
- Fixed: When I inlined the point-on-line-side functions, I messed up and
|
|
|
|
|
counted being right on the line as being behind it, when it should count
|
|
|
|
|
as being in front of the line.
|
|
|
|
|
- Changed polyobject container detection to just mark the segs that form
|
|
|
|
|
a loop around the polyobject spawn spot instead of all the segs in the
|
|
|
|
|
sector. This helps keep the BSP from getting too deep around containers
|
|
|
|
|
in nonconvex sectors and is also necessary for Hexen, MAP39 to build
|
|
|
|
|
correctly.
|
|
|
|
|
- Improved the polyobject container splitting avoidance so that splitters
|
|
|
|
|
colinear with the segs of the container are valid.
|
|
|
|
|
|
|
|
|
|
March 16, 2002
|
|
|
|
|
- Added code to the node builder to detect sectors polyobjects appear
|
|
|
|
|
within and try hard to avoid using splitters that touch their segs.
|
|
|
|
|
- Improved the node builder so that it can split up convex areas with
|
|
|
|
|
segs from different sectors so that each subsector only references
|
|
|
|
|
one sector.
|
|
|
|
|
- Added support for loading maps without nodes or a reject matrix.
|
|
|
|
|
- Tweaked the heuristic used by the node builder to give more weight to
|
|
|
|
|
splitters that split few lines.
|
|
|
|
|
|
|
|
|
|
March 15, 2002
|
|
|
|
|
- Fixed the console ticker so the node builder can use it.
|
|
|
|
|
- Changed subsector_t's firstline and numlines members to be unsigned,
|
|
|
|
|
doubling the maximum number of segs a map can have. The built-in node
|
|
|
|
|
builder doesn't try very hard to minimize splits.
|
|
|
|
|
- Added an internal node builder so that if any 0-length lines are removed,
|
|
|
|
|
the nodes will still be valid. This may or may not actually be necessary
|
|
|
|
|
depending on the node builder originally used; it's just to be safe. I
|
|
|
|
|
make no attempt to fix convex areas belonging to more than one sector, so
|
|
|
|
|
it's still a good idea to fix the map and use a better node builder. At
|
|
|
|
|
least this one seems pretty fast: I can rebuild Vrack2's nodes in just a
|
|
|
|
|
few seconds using a debug build.
|
|
|
|
|
|
|
|
|
|
March 14, 2002
|
|
|
|
|
- Lines of 0 length are now removed entirely from the map. Massmouth had
|
|
|
|
|
invalid front sector references only on its 0-length lines, so removing
|
|
|
|
|
them conveniantly lets it run again despite the beefed-up error checking.
|
|
|
|
|
- Removed the angle member from seg_t because it isn't really needed.
|
|
|
|
|
- Undid Killough's relayout of R_PointToAngle2 so that I can actually read it
|
|
|
|
|
and do some optimization. Its compiled size is now 256 bytes less than
|
|
|
|
|
before.
|
|
|
|
|
|
|
|
|
|
March 11, 2002
|
|
|
|
|
- Added the mage's first weapon.
|
|
|
|
|
- Changed A_SpawnFly to play "brain/spawn" instead of "misc/teleport".
|
|
|
|
|
Changed the spawn cube explosion sound to "brain/cubeboom".
|
|
|
|
|
- Changed $ambient point attenuation parsing to use IsFloat() to check if
|
|
|
|
|
the attenuation is present.
|
|
|
|
|
- Changed SNDINFO parsing so that non-male players can use random sounds.
|
|
|
|
|
- Did some space tuning to R_RenderBoundWallSprite() and R_DrawVisSprite().
|
|
|
|
|
- Fixed R_ProjectSprite() to calculate the correct left and right edges for
|
|
|
|
|
horizontally scaled sprites.
|
|
|
|
|
- Changed the sound limit for Heretic's horn rod.
|
|
|
|
|
- Added LEVEL_SPECKILLMONSTERS to the definitions for Heretic's ExM8, where
|
|
|
|
|
x >= 2, so killing the boss monsters will kill the rest of the levels'
|
|
|
|
|
monsters, as it should.
|
|
|
|
|
- Fixed: The minotaur would stay invulnerable if his charge was interrupted
|
|
|
|
|
before his one-second charge time was up (i.e. he hit something or went into
|
|
|
|
|
his pain state).
|
|
|
|
|
|
|
|
|
|
March 10, 2002
|
|
|
|
|
- Fixed: If you visited Doom E2M9, saved, and then reloaded after quitting and
|
|
|
|
|
restarting, the game would crash at the intermission because it would try
|
|
|
|
|
to draw the Fortress of Mystery without loading its graphic first. This
|
|
|
|
|
would also happen if you started with -warp 2 9.
|
|
|
|
|
|
|
|
|
|
March 9, 2002
|
|
|
|
|
- Added the cleric's first three weapons and the mage's second and third
|
|
|
|
|
weapons.
|
|
|
|
|
|
|
|
|
|
March 8, 2002
|
|
|
|
|
- Added the fighter's axe and hammer.
|
|
|
|
|
- Added Hexen's cleric and mage bosses and Korax.
|
|
|
|
|
- Fixed: PTR_AimTraverse crashed when non-players aimed at ghosts.
|
|
|
|
|
|
|
|
|
|
March 7, 2002
|
|
|
|
|
- Added Hexen's puzzle items, boots of speed, krater of might, and fighter
|
|
|
|
|
boss.
|
|
|
|
|
|
|
|
|
|
March 6, 2002
|
|
|
|
|
- Added Hexen's armor, bat spawner, and teleport other and dark servant
|
|
|
|
|
artifacts.
|
|
|
|
|
|
|
|
|
|
March 5, 2002
|
|
|
|
|
- Added Hexen's wraiths, fog patches, flames, disc of repulsion, and dragon.
|
|
|
|
|
- Changed EttinMace, CentaurShield, and CentaurSword to use a crash state
|
|
|
|
|
instead of A_CheckFloor. Now I can get rid of A_CheckFloor.
|
|
|
|
|
|
|
|
|
|
March 4, 2002
|
|
|
|
|
- Fixed: SendWeaponSlot and SendWeaponChoice need to be initialized to 255 at
|
|
|
|
|
compile time. If they're left at 0, then weapon switch commands will be
|
|
|
|
|
generated for the very first tic run if the level has not been loaded yet.
|
|
|
|
|
This happens when playing demos from the command line, because they tic
|
|
|
|
|
before loading anything (including themselves).
|
|
|
|
|
- Changed the health bonus's spawn id to 152 so that it isn't the same as the
|
|
|
|
|
scripted marine's.
|
|
|
|
|
- Fixed: GetWordSpace in d_dehacked.cpp only allocated half as much memory
|
|
|
|
|
as was needed. (But since x86 processors are fine with unaligned accesses,
|
|
|
|
|
I don't really need to allocate memory. Ah well.)
|
|
|
|
|
|
|
|
|
|
March 2, 2002
|
|
|
|
|
- Fixed TossChunks() to toss the demons' chunks out in the correct directions.
|
|
|
|
|
- Finished migrating the code to the new RNG system. In the process, I
|
|
|
|
|
discovered that constructors for static objects local to a function will
|
|
|
|
|
not be called until the first time the function containing it is called.
|
|
|
|
|
So all FRandom objects need to have global scope or else loading a savegame
|
|
|
|
|
won't find any RNGs that haven't been used yet.
|
|
|
|
|
|
|
|
|
|
February 28, 2002
|
|
|
|
|
- Changed the random number generator system to use objects to represent
|
|
|
|
|
different generators instead of array indices. Why? Because it makes
|
|
|
|
|
adding new RNGs quicker--I just create a new FRandom object, and nothing
|
|
|
|
|
else that uses random numbers needs to be recompiled.
|
|
|
|
|
|
|
|
|
|
February 27, 2002
|
|
|
|
|
- Changed the PNG reader and writer to use zlib streams directly without
|
|
|
|
|
wrapper functions in order to use less memory. As part of this, I was
|
|
|
|
|
able to test the case where a PNG has multiple IDATs to ensure that it
|
|
|
|
|
gets read correctly, and ZDoom might now write a PNG with multiple IDATs.
|
|
|
|
|
- Fixed problems with the impact decal serializing: 1) The list of impact
|
|
|
|
|
decals was messed up when loading a game. 2) Too many impact decals would
|
|
|
|
|
cause a stack overflow because each impact decal would cause the next
|
|
|
|
|
decal to write itself out before it finished writing itself, because it
|
|
|
|
|
had to follow the list maintained in the tracer field.
|
|
|
|
|
- Extended the changemap command so that it can take an optional position
|
|
|
|
|
number for maps that have multiple player starts.
|
|
|
|
|
|
|
|
|
|
February 26, 2002
|
|
|
|
|
- Fixed saving games without savepics. (Technically, because PNG is now used
|
|
|
|
|
to store savegames, setting storesavepic to false will still leave an image
|
|
|
|
|
in the savegame, because we need to create a valid PNG--but the image is
|
|
|
|
|
only a 1x1 black grayscale pixel, so it adds just a few bytes to the file.
|
|
|
|
|
- Made savepics slightly taller to 162 pixels so that they look right when
|
|
|
|
|
viewed with square pixels and no stretching.
|
|
|
|
|
- Fixed CRC calculations for extra PNG chunks so IE can be used to look at
|
|
|
|
|
savegames, and there shouldn't be any problems loading them into image
|
|
|
|
|
editors.
|
|
|
|
|
- Changed sprite serialization to save the sprite names instead of indices
|
|
|
|
|
so that simply adding more sprites won't break savegames.
|
|
|
|
|
|
|
|
|
|
February 22, 2002
|
|
|
|
|
- Renamed snd_dolby cvar to snd_matrix.
|
|
|
|
|
- Made a few more general-purpose action functions accessible through BEX.
|
|
|
|
|
- Changed particles' right and bottom edges back to being inclusive instead
|
|
|
|
|
of exclusive.
|
|
|
|
|
- Fixed: Shadowed masked blocks that were clipped drew the shadow on top of
|
|
|
|
|
the regular image. The window when the clipping versions of the routine
|
|
|
|
|
were used was also slightly smaller than needed.
|
|
|
|
|
- Fixed: Network games didn't work because the game forgot it was running a
|
|
|
|
|
network game before it even loaded the map.
|
|
|
|
|
- Fixed the spawn and spawnspot ACS commands.
|
|
|
|
|
|
|
|
|
|
February 20, 2002
|
|
|
|
|
- Changed the savegame format to use PNG as a container. The use of chunks
|
|
|
|
|
for different types of data helps reduce the need for introducing a new
|
|
|
|
|
savegame version every time I change some little thing in what the
|
|
|
|
|
savegames store, but the primary purpose for the switch is so that you
|
|
|
|
|
can load the savegame into a paint program and see the savepic without
|
|
|
|
|
having to do any extra work (except possibly changing the file extension
|
|
|
|
|
to .png). It also gives launcher writers a public standard to use for
|
|
|
|
|
loading the savegame pictures if they want to do so.
|
|
|
|
|
- Added the png_gamma cvar to control the gamma saved to PNG
|
|
|
|
|
screenshots. Setting it to 0 will use the same gamma as the screen.
|
|
|
|
|
|
|
|
|
|
February 19, 2002
|
|
|
|
|
- Added support for writing PNG screenshots. PCX is still available as an
|
|
|
|
|
option because it takes longer to create a PNG even at minimum compression.
|
|
|
|
|
|
|
|
|
|
February 18, 2002
|
|
|
|
|
- Changed LeftOffset and TopOffset in FTileSizes to signed words so that
|
|
|
|
|
they can handle negative offsets (like they're supposed to).
|
|
|
|
|
|
|
|
|
|
February 16, 2002
|
|
|
|
|
- Changed actors' active sounds so that they only play if the actor is not
|
|
|
|
|
already playing something on its voice channel.
|
|
|
|
|
- Removed the MF3_SEEISALSOACTIVE flag. Random sounds do the job better.
|
|
|
|
|
- P_SpawnPlayer() now clears spreecount, multicount, and listkilltime.
|
|
|
|
|
- Fixed: Spying through a bots eyes and then removing the bot would crash.
|
|
|
|
|
- Added \movebob\.25 as a default for bots.
|
|
|
|
|
- Fixed: P_SpawnPlayer() could not use the Hexen player 5-8 starts.
|
|
|
|
|
- Fixed: The view could still bob when you were dead if stillbob was non-0.
|
|
|
|
|
- Fixed an NT 4.0 waveout heap corruption bug that appeared with FMOD 3.5.
|
|
|
|
|
I don't know if it's FMOD's fault, NT's fault, or the Audigy's drivers
|
|
|
|
|
fault, but I have to initialize FMOD with FSOUND_OUTPUT_DSOUND before
|
|
|
|
|
using FSOUND_OUTPUT_WINMM, or a heap used by the sound card's drivers
|
|
|
|
|
will be corrupted when FSOUND_Close() is called.
|
|
|
|
|
- Updated the reverb code for FMOD 3.5.
|
|
|
|
|
|
|
|
|
|
February 14, 2002
|
|
|
|
|
- Added the friendly minotaur for Hexen.
|
|
|
|
|
- Added Hexen's flechette.
|
|
|
|
|
- Changed the Heresiarch's bishops so that they will automatically target
|
|
|
|
|
whatever the Heresiarch is targetting.
|
|
|
|
|
|
|
|
|
|
February 13, 2002
|
|
|
|
|
- Added Hexen's keys.
|
|
|
|
|
- Changed P_BounceWall to take advantage of the BlockingLine global and use
|
|
|
|
|
that as the line to bounce off of, if non-NULL.
|
|
|
|
|
- Added support for loading hexdd.wad as an IWAD, which really just means that
|
|
|
|
|
hexen.wad is automatically loaded before it.
|
|
|
|
|
|
|
|
|
|
February 12, 2002
|
|
|
|
|
- Added Hexen's Heresiarch (Sorcerer).
|
|
|
|
|
- Fixed: Decals on an upper side used the lower texture to determine if decals
|
|
|
|
|
are allowed and vice versa.
|
|
|
|
|
|
|
|
|
|
February 11, 2002
|
|
|
|
|
- The player_s struct now serializes the camera. Before, it always set it to
|
|
|
|
|
mo when loading. I'm not sure why I did that, because it meant you lost your
|
|
|
|
|
camera view when loading a game saved from a different camera.
|
|
|
|
|
- Fixed: SetWeapon only worked if passed the name of a Doom weapon. Anything
|
|
|
|
|
else would make it crash.
|
|
|
|
|
- Changed HealThing so that it can max out at 200 for players.
|
|
|
|
|
- Added error checks for loading maps that don't have their BSP built.
|
|
|
|
|
- Added back "Health" as an item for checkinventory and "Armor" for
|
|
|
|
|
checkinventory, takeinventory, and giveinventory.
|
|
|
|
|
- Fixed: The status bar face background was not translated to the player's
|
|
|
|
|
current color. If you were playing a botmatch, the colored background would
|
|
|
|
|
also not appear until you changed your color or respawned.
|
|
|
|
|
- Fixed: Loading a game before starting one would reset the skill to 0.
|
|
|
|
|
- Removed mouse grabbing from the Win32 I_InitInput. That happens later
|
|
|
|
|
when the in_input cvar's callback is executed. This solves the problem of
|
|
|
|
|
the mouse still being grabbed when startup fails.
|
|
|
|
|
- Changed startup handling so that if the game gets into its loop in the
|
|
|
|
|
GS_STARTUP state, it will switch to GS_FULLCONSOLE so that the console will
|
|
|
|
|
be useable. This can happen, for instance, if you specify an invalid file
|
|
|
|
|
for -loadgame.
|
|
|
|
|
- Changed -loadgame to automatically append .zds to the specified file if it
|
|
|
|
|
isn't already present.
|
|
|
|
|
- Fixed: DamageThing(0) did nothing instead of killing the activator.
|
|
|
|
|
- Fixed a potential crash when an alias causes itself to be removed as part of
|
|
|
|
|
its execution.
|
|
|
|
|
- Fixed: Thanks to some left-over code when I changed the realiasing of
|
|
|
|
|
existing aliases, the alias would be realiased, deleted, and then recreated.
|
|
|
|
|
It should have just been realiased and not deleted.
|
|
|
|
|
- Fixed: Respawning after getting your head blown off (in Heretic or Hexen)
|
|
|
|
|
would crash multiplayer games and could occasionally crash single player
|
|
|
|
|
games as well. Those games set special2 to 666 when the player pressed
|
|
|
|
|
space to respawn, and the severed head used this as a signal to remove
|
|
|
|
|
itself. Because ZDoom cleans up stale pointers, this would leave the player
|
|
|
|
|
without a valid camera for at least one frame before the player actually
|
|
|
|
|
respawned, and the game would crash when it tried to draw the view. Now the
|
|
|
|
|
severed heads wait until their player field becomes NULL before they destroy
|
|
|
|
|
themselves.
|
|
|
|
|
- Fixed: BloodySkull and IceChunkHead would appear using the player's sprites
|
|
|
|
|
because they were attached to players and inherited the skin. The fix is to
|
|
|
|
|
add a dummy first state with a different sprite so that SetState will use
|
|
|
|
|
the correct sprite.
|
|
|
|
|
- Added snd_fpumixer cvar.
|
|
|
|
|
|
|
|
|
|
February 8, 2002
|
|
|
|
|
- Added a new line to the miscellaneous dehacked section: "Monsters Ignore
|
|
|
|
|
Each Other" will cause monsters never to target other monsters.
|
|
|
|
|
|
|
|
|
|
February 7, 2002
|
|
|
|
|
- Fixed: deh.MaxHealth was unused.
|
|
|
|
|
- Fixed: Operator<< for podoortype_t was call-by-value instead of call-by-
|
|
|
|
|
reference, so polyobject doors could not be loaded properly.
|
|
|
|
|
- Changed sound code again so that unpositioned sounds do not call
|
|
|
|
|
S_StopSoundID.
|
|
|
|
|
- Added A_SetFloorClip and A_UnSetFloorClip action functions for use by the
|
|
|
|
|
cacodemon when it dies/resurrects.
|
|
|
|
|
- Added MF2_FLOORCLIP to the HellKnight.
|
|
|
|
|
- Moved the P_RunEffects() call so that it can be frozen in freeze mode.
|
|
|
|
|
- Added some new SNDINFO commands. $limit controls how many copies of a sound
|
|
|
|
|
S_StopSoundID will allow. $pitchshiftrange controls how much a sound's
|
|
|
|
|
pitch can change when using pitched sounds. And $pitchshift allows control
|
|
|
|
|
of pitch shifting for a single sound.
|
|
|
|
|
|
|
|
|
|
February 5, 2002
|
|
|
|
|
- Did away with the longest-playing change to S_StopSoundID because it made
|
|
|
|
|
looping sounds of the same type near each other fight for precedence, and
|
|
|
|
|
the result sounded horrible. Now I use distance to limit the set of sounds
|
|
|
|
|
considered for stopping. Only sounds within 256 units of the new sound will
|
|
|
|
|
possibly be stopped by this function. Also removed sound tags because they
|
|
|
|
|
served the same purpose as the distance comparison.
|
|
|
|
|
- Added $playercompat SNDINFO command to create special aliases from the old
|
|
|
|
|
SNDINFO player sounds to the new ones. These are special in that after they
|
|
|
|
|
get created, any attempts to modify them will modify there target instead.
|
|
|
|
|
- Added the addrocketexplosion cvar. If true, then rockets use additive
|
|
|
|
|
translucency when the explode. Otherwise, they use normal translucency. This
|
|
|
|
|
can still be overridden with a Dehacked patch.
|
|
|
|
|
|
|
|
|
|
February 4, 2002
|
|
|
|
|
- Realized that because I now project particles as their subsectors are
|
|
|
|
|
entered, I have enough information to clip the particles when they are
|
|
|
|
|
projected. By changing my code to take advantage of this, I can avoid
|
|
|
|
|
running through all the drawsegs for each particle on-screen. When there are
|
|
|
|
|
many drawsegs and particles on-screen at once, the improvement is quite
|
|
|
|
|
impressive--far better than I expected.
|
|
|
|
|
|
|
|
|
|
February 2, 2002
|
|
|
|
|
- Added MF2_FLOORCLIP to many of the Doom monsters so that they can have their
|
|
|
|
|
feet cut off when standing in shallow water, provided that the appropriate
|
|
|
|
|
terrain definitions exist.
|
|
|
|
|
- Put back the limit of two identical sounds playing at once from Heretic and
|
|
|
|
|
Hexen in order to prevent the SSG from making super loud splashes that drown
|
|
|
|
|
out everything else. Tweaked S_StopSoundID so that it will use oldest time
|
|
|
|
|
for selecting a sound to stop if it can't find any with lower priority.
|
|
|
|
|
- Set all the puffs except BeakPuff back to their default masses.
|
|
|
|
|
- Changed splashes so that if a fake flat has a terrain with a splash, you can
|
|
|
|
|
shoot or drop below it and leave a splash.
|
|
|
|
|
- Fixed anomalies with the way the railgun made splashes.
|
|
|
|
|
- Added code to group particles into subsectors so that I can subject them to
|
|
|
|
|
the same fake floor clipping as normal sprites. I also found a problem with
|
|
|
|
|
lighting of particles in fake sectors and fixed it.
|
|
|
|
|
|
|
|
|
|
January 31, 2002
|
|
|
|
|
- Fixed: Fog boundaries could be erroneously drawn in underwater areas because
|
|
|
|
|
R_FakeFlat did not change the fake sector's colormap when calculating the
|
|
|
|
|
back side of a line.
|
|
|
|
|
- Fixed: Using -skill at the command line always set skill to 0.
|
|
|
|
|
- Added a check for freeze mode around P_ThinkParticles and the various
|
|
|
|
|
decal animator tickers.
|
|
|
|
|
- Fixed .cfg file parsing so that if comments appear on the same line as a
|
|
|
|
|
command, the command will still be executed.
|
|
|
|
|
- Fixed ParseCommandLine to work with unterminated quotes.
|
|
|
|
|
- Added "proper" support for tall textures by introducing a different patch
|
|
|
|
|
format that uses words instead of bytes to store column lengths and offsets.
|
|
|
|
|
All tall and multipatch textures get converted to this format at runtime, so
|
|
|
|
|
tall textures work equally well on one-sided and two-sided lines, and I
|
|
|
|
|
don't have to worry about sliding windows while generating the composite
|
|
|
|
|
textures.
|
|
|
|
|
|
|
|
|
|
January 30, 2002
|
|
|
|
|
- Fixed: Addkeysection did not load bindings from the ini.
|
|
|
|
|
- Fixed: Quicksave did not quicksave.
|
|
|
|
|
- Fixed: Savegames could be listed in the menu twice, once with the full path
|
|
|
|
|
and again with just the file name.
|
|
|
|
|
- Fixed: Suiciding and giving stuff to a player without an actor crashed.
|
|
|
|
|
- Fixed: Loading savegames was broken.
|
|
|
|
|
|
|
|
|
|
January 28, 2002
|
|
|
|
|
- Fixed: Using allowdecals in ANIMDEFS was broken.
|
|
|
|
|
- Added more ways to create slopes, all of which are thing-based:
|
|
|
|
|
|
|
|
|
|
Things 9500 and 9501: The first argument to these things is a line id.
|
|
|
|
|
For each matching line, the sector on the same side of the line
|
|
|
|
|
has its floor or ceiling sloped so that it passes through this thing.
|
|
|
|
|
The thing does not necessarily need to be in the sector(s) being
|
|
|
|
|
sloped. 9500 slopes the floor, and 9501 slopes the ceiling.
|
|
|
|
|
Things 9502 and 9503: Set the plane equation for the sector they are in
|
|
|
|
|
directly. The first argument determines how far it tilts from
|
|
|
|
|
horizontal and is measured in degrees. 90 degrees is perfectly
|
|
|
|
|
horizontal. Values close to 90 have less slope than values further
|
|
|
|
|
from 90. The thing's angle is used to determine what direction the
|
|
|
|
|
slope faces. The floor or ceiling will be adjusted so that it passes
|
|
|
|
|
through this thing. 9502 slopes the floor, and 9503 slopes the
|
|
|
|
|
ceiling.
|
|
|
|
|
Things 9510 and 9511: The first argument to these is a sector tag. The
|
|
|
|
|
plane equation from the first sector with a matching tag will be
|
|
|
|
|
copied to the sector that this thing is in. 9510 copies the floor
|
|
|
|
|
plane, and 9511 copies the ceiling plane.
|
|
|
|
|
|
|
|
|
|
Things 9500-9503 are processed after slopes created with linedef specials,
|
|
|
|
|
so they can be used to further adjust the resultant slope. Things 9510
|
|
|
|
|
and 9511 are processed after all other slopes are set up, so they override
|
|
|
|
|
any slopes that might have been created in their sectors already.
|
|
|
|
|
|
|
|
|
|
January 26, 2002
|
|
|
|
|
- Assigned spawn numbers to most of the Heretic actors and added one for
|
|
|
|
|
Doom's health bonus.
|
|
|
|
|
- Added ChangeSkill special (#179).
|
|
|
|
|
- Changed A_FireRailgun to use the ammouse field to determine how much ammo
|
|
|
|
|
to eat up.
|
|
|
|
|
- Added a minammo member to FWeaponInfo and made it dehacked-settable.
|
|
|
|
|
- Fixed: Savegames went in the current directory instead of the program
|
|
|
|
|
directory.
|
|
|
|
|
- Fixed: Aliases could not realias themselves reliably.
|
|
|
|
|
- Fixed: Particle drawing was erratic in sectors with fake floors.
|
|
|
|
|
- Improved detection of windows into below-deep-floor areas to have fewer
|
|
|
|
|
false positives with complex geometry. It works for all the test cases I
|
|
|
|
|
have now, so hopefully all the false positives have been eliminated.
|
|
|
|
|
|
|
|
|
|
January 25, 2002
|
|
|
|
|
- Because I can't figure out what's going wrong with the blitter, when loading
|
|
|
|
|
an ini from a previous ZDoom version, vid_noblitter will now be reset to
|
|
|
|
|
true, because I'm not sure it's benefiting anyone.
|
|
|
|
|
- Removed DFrameBuffer::PartialUpdate.
|
|
|
|
|
- Added more debugging spew and tried different blit techniques, and blits
|
|
|
|
|
still take too long. They're supposed to be asynchronous, but my timings
|
|
|
|
|
indicate otherwise--the blit times are proportional to the size of the
|
|
|
|
|
blit, BltFast almost never returned DDBLT_WASSTILLDRAWING when I removed the
|
|
|
|
|
_WAIT flag, and a 1600x1200 blit takes ~15 ms to complete (memcpy only needs
|
|
|
|
|
~4 ms to do the same thing). It seems like it's not using DMA at all but
|
|
|
|
|
some lame software emulation instead, so I tried obtaining an
|
|
|
|
|
IDirectDrawSurface2 interface and PageLocking the blitter surface, but it
|
|
|
|
|
made no difference. Why did it work before but it doesn't now?
|
|
|
|
|
- Removed the unlock/lock around D_NetUpdate when rendering. This is only
|
|
|
|
|
needed when a video memory surface is locked under Win9x. Since my
|
|
|
|
|
experiment with writing directly to video memory is gone, this never
|
|
|
|
|
happens.
|
|
|
|
|
- Fixed: Alt-tabbing away and back when using the blitter would fail to
|
|
|
|
|
restore the lost surfaces, because system memory surfaces don't normally
|
|
|
|
|
get lost from such a situation, so the LockSurf call would return ok, and
|
|
|
|
|
the BltFast in Update would fail later.
|
|
|
|
|
|
|
|
|
|
January 24, 2002
|
|
|
|
|
- Added heapsize cvar so you don't need to use -heapsize if you always want
|
|
|
|
|
to use a heap other than 8 megabytes. Moved Z_Init to happen after loading
|
|
|
|
|
the config file so that the cvar is available when it gets called.
|
|
|
|
|
- Lines with sky on the front and back are no longer considered fog
|
|
|
|
|
boundaries. As long as fog does not effect the sky, it looks bad to be
|
|
|
|
|
drawing the boundaries of different fogs in outdoor areas.
|
|
|
|
|
- Fixed: R_ProjectParticle() did not set vis->cx, so R_DrawSprite() was
|
|
|
|
|
unable to properly determine if a drawseg was in front of a particle or
|
|
|
|
|
not.
|
|
|
|
|
- Added a #wadauthor switch to ACC to cause it to create dummy scripts for
|
|
|
|
|
all the real scripts in the map so WadAuthor's error checking will know
|
|
|
|
|
about them. I had to change my ACSe detection to no longer look for scripts
|
|
|
|
|
that appear to have 0 scripts and strings. Since the standard ACC will
|
|
|
|
|
never generate object files with the ACSe tag, this should be safe.
|
|
|
|
|
- I think I must have messed up the blitter code somewhere, because now it
|
|
|
|
|
slows down the machine it used to speed up. I don't see anything wrong
|
|
|
|
|
though! Changed the default for vid_noblitter to true until I can figure
|
|
|
|
|
out what's going on.
|
|
|
|
|
- Added vid_vsync cvar to control whether or not vsync is used when flipping
|
|
|
|
|
the display. Since the framerate gets clamped well below the refresh rate,
|
|
|
|
|
turning off vsync is probably useless.
|
|
|
|
|
|
|
|
|
|
January 23, 2002
|
|
|
|
|
- Fixed: Deleting the most recently saved game and then dying would crash
|
|
|
|
|
because the game would try to load that game and fail because it no longer
|
|
|
|
|
exists.
|
|
|
|
|
- Added disableautosave cvar to control when autosaves happen. At 0, autosaves
|
|
|
|
|
always happen. At 1, they only happen when an autosave special is activated.
|
|
|
|
|
At 2, they never happen. Also disabled autosaving when starting a new game.
|
|
|
|
|
Autosaves now happen only when advancing to a new map.
|
|
|
|
|
- Fixed: Exiting a level in Heretic crashed.
|
|
|
|
|
- Fixed: FSOUND_OUTPUT_WINMM was always used if snd_output was not set to
|
|
|
|
|
dsound. Also added "directsound" as a synonym for "dsound" when used with
|
|
|
|
|
this cvar.
|
|
|
|
|
|
|
|
|
|
January 22, 2002
|
|
|
|
|
- Changed the in-game priority class to normal so ZDoom won't give itself
|
|
|
|
|
a high priority when running.
|
|
|
|
|
- Added "Ammo use" field for dehacked weapon modifications.
|
|
|
|
|
- Fixed palette translation through Dehacked again. While I was at it, I
|
|
|
|
|
decided to remove translation control from the actor's flags member
|
|
|
|
|
entirely and just rely on the Translation member.
|
|
|
|
|
- Fixed: Bouncing a missile off a floor/ceiling near a wall could crash if
|
|
|
|
|
no missiles had already bounced off a wall.
|
|
|
|
|
- Fixed: PIT_RadiusAttack() only pushed things in directions with positive
|
|
|
|
|
x and y.
|
|
|
|
|
- Gave names to the anonymous structs in p_setup.cpp/sidei_t so that it
|
|
|
|
|
compiles with GCC 2.95.3.
|
|
|
|
|
- Rearranged FBaseCVar::ToInt() to try and compile it with GCC 2.95.3.
|
|
|
|
|
|
|
|
|
|
January 20, 2002
|
|
|
|
|
- Fixed: Picking items up when item respawn is enabled would mess up collision
|
|
|
|
|
detection because the items would move themselves back to their original
|
|
|
|
|
positions, and the collision detection code is not reentrant. They now
|
|
|
|
|
relocate themselves as the result of a state change later on.
|
|
|
|
|
- Made some changes to the renderer to support drawing textures with different
|
|
|
|
|
scales on the same wall and to also support obtaining textures scaling from
|
|
|
|
|
some of the previously unused bytes in the maptexture_t structs stored in
|
|
|
|
|
the wad.
|
|
|
|
|
|
|
|
|
|
January 19, 2002
|
|
|
|
|
- Added support for DeePsea's tall patches.
|
|
|
|
|
- Fixed: Sky textures wider than 1024 could not scroll properly because the
|
|
|
|
|
sky position was always clamped past 255.
|
|
|
|
|
|
|
|
|
|
January 17, 2002
|
|
|
|
|
- Added a new player property: PROP_INSTANTWEAPONSWITCH (2). When set, the
|
|
|
|
|
player can switch weapons instantly without lowering and raising them.
|
|
|
|
|
|
|
|
|
|
January 16, 2002
|
|
|
|
|
- Fixed: Autoaim could mess up. Same reason as PTR_SightTraverse below.
|
|
|
|
|
- Changed giveinventory when giving a weapon so that the weapon will not be
|
|
|
|
|
brought up automatically if the player did not have it already. If this is
|
|
|
|
|
desired, it can be simulated with setweapon.
|
|
|
|
|
- Disabled drawing of the crosshair when the camera is not a player.
|
|
|
|
|
- Fixed a problem under NT4 when using waveout for sound effects and playing
|
|
|
|
|
MIDI music: A memory block would be modified after being freed. The fix is
|
|
|
|
|
a 50 ms delay between stopping the song and shutting down the sound.
|
|
|
|
|
- Added "waveout" as a synonym for "winmm" for the snd_output cvar.
|
|
|
|
|
- Added CheckWeapon and SetWeapon ACS commands.
|
|
|
|
|
- Added support for a -1 translation in Thing_SetTranslation to set the
|
|
|
|
|
target's translation to that of the activator's.
|
|
|
|
|
|
|
|
|
|
January 14, 2002
|
|
|
|
|
- Fixed a bug in PTR_SightTraverse() that could cause it to think something
|
|
|
|
|
was visible when it really wasn't.
|
|
|
|
|
- Fixed: Masked mid textures in foggy areas could be drawn with the wrong
|
|
|
|
|
light level, because they checked the foggy flag to determine if they were
|
|
|
|
|
in a foggy area. This flag is not set when drawing masked mid textures.
|
|
|
|
|
- Added a tx cvar to test different horizontal wall texture scales.
|
|
|
|
|
- Fixed some errors GCC found and added GetFlashedPalette() to SDLVideo
|
|
|
|
|
so that ZDoom compiles under Linux again.
|
|
|
|
|
|
|
|
|
|
January 12, 2002
|
|
|
|
|
- Added a ty cvar to test different vertical wall texture scales.
|
|
|
|
|
|
|
|
|
|
January 10, 2002
|
|
|
|
|
- Added a vid_noblitter cvar to force memcpy to be used for copying from
|
|
|
|
|
system to video memory, even when the blitter is available to do the job.
|
|
|
|
|
On my P3-866 with a GeForce2 Go, the blitter is about twice as fast as
|
|
|
|
|
memcpy. On my Athlon XP 1600+ with GeForce2 MX, memcpy is about three
|
|
|
|
|
times faster than the blitter. I need more data before I can decide what
|
|
|
|
|
a reasonable default for different systems is, but right now it defaults
|
|
|
|
|
to false.
|
|
|
|
|
- Fixed: The blitter surfaces would only flip when logging was enabled
|
|
|
|
|
because I had the Flip call enclosed inside a LOG1 macro.
|
|
|
|
|
- Fixed the case where the video driver reported it could blit from system
|
|
|
|
|
to video memory, but the blitter surfaces could not be allocated. When this
|
|
|
|
|
happened, the screen would not update.
|
|
|
|
|
|
|
|
|
|
January 9, 2002
|
|
|
|
|
- Changed P_CheckSlopeWalk() to return false if the actor's floorsector is
|
|
|
|
|
different from the actor's sector. It seems to fix the problem with the
|
|
|
|
|
"push pad". The whole Doom collision detection/movement code is a mess and
|
|
|
|
|
deserves to be rewritten from the ground up.
|
|
|
|
|
- Changed sky texture positioning to match older versions. It should be based
|
|
|
|
|
on the height of the screen, not the height of the texture.
|
|
|
|
|
- Commented out a check at the beginning of wallscan(), because sky boxes can
|
|
|
|
|
make the check invalid.
|
|
|
|
|
|
|
|
|
|
January 8, 2002
|
|
|
|
|
- By default, animated textures will no longer have decals drawn on top of
|
|
|
|
|
them. This can be changed by adding "allowdecals" to the animation sequence
|
|
|
|
|
in ANIMDEFS.
|
|
|
|
|
- Moved the SpawnableThings/DoomEdMap initialization out of
|
|
|
|
|
FActorInfo::StaticGameSet() into ::StaticSetActorNums() so that Dehacked
|
|
|
|
|
patches that change doomednums will work as expected.
|
|
|
|
|
|
|
|
|
|
January 7, 2002
|
|
|
|
|
- Added an error message for switches that have more than one sound for their
|
|
|
|
|
on or off states.
|
|
|
|
|
- Fixed: Creating a switch with a valid start texture but an invalid second
|
|
|
|
|
texture would crash when you tried to use the switch. Now you get an error
|
|
|
|
|
when the ANIMDEFS is parsed.
|
|
|
|
|
|
|
|
|
|
January 5, 2002
|
|
|
|
|
- Wrote some code for Convert24(). Since my video card does not support 24-bit
|
|
|
|
|
displays, I had to test it using a 32-bit display instead, but it seems to
|
|
|
|
|
be working.
|
|
|
|
|
- Removed the special case for writing to 8-bit windowed displays in
|
|
|
|
|
win32video.cpp.
|
|
|
|
|
- Added turnspeeds command to adjust the keyboard turning rate.
|
|
|
|
|
- Added sin, cos, and vectorangle ACS functions. They use 16-bit angles. 0 is
|
|
|
|
|
0 degrees, and 65536 would be 360 degrees if it didn't wrap to 0.
|
|
|
|
|
|
|
|
|
|
January 4, 2002
|
|
|
|
|
- Fixed: CheckIWAD() would consider as valid any files that were present in
|
|
|
|
|
the search, even if they weren't IWADs. Hence, something like
|
|
|
|
|
"zdoom -iwad zdoom.exe" would be accepted and cause a crash.
|
|
|
|
|
|
|
|
|
|
January 3, 2002
|
|
|
|
|
- Got rid of the divide in P_AdjustLine when it calculated the slopetype for
|
|
|
|
|
diagonal lines. Because only the sign of the result is significant, a
|
|
|
|
|
simple xor is enough. Did the same for UpdateSegBBox.
|
|
|
|
|
- Turned R_PointOnSide into a simple inlining of DivScale32. Multiplies are
|
|
|
|
|
cheaper than mispredicted branches, so I took out the special cases for
|
|
|
|
|
perfectly horizontal and vertical lines. Also made similar changes to
|
|
|
|
|
P_PointOnLineSide and P_PointOnDivlineSide, which are exactly the same
|
|
|
|
|
thing, except they use different line representations. Also inlined
|
|
|
|
|
P_MakeDivline, because it's so simple.
|
|
|
|
|
|
|
|
|
|
January 2, 2002
|
|
|
|
|
- Moved cl_bobscale and cl_stillbob into userinfo (and renamed them to
|
|
|
|
|
movebob and stillbob). There are sector actions that depend on the player's
|
|
|
|
|
eye height, so these values need to be sent across the network.
|
|
|
|
|
- Optimized R_DrawFogBoundary() by drawing horizontal spans instead of
|
|
|
|
|
vertical strips.
|
|
|
|
|
|
|
|
|
|
December 24, 2001
|
|
|
|
|
- Added a check for sectors without any lines in p_setup.cpp. If any are
|
|
|
|
|
found, their tags are set to 0 so that they cannot be used by most specials.
|
|
|
|
|
|
|
|
|
|
December 22, 2001
|
|
|
|
|
- Fixed: If you saved over a savegame from a different ZDoom version, the menu
|
|
|
|
|
would still list it as being from a different version until you quit and
|
|
|
|
|
restarted the game.
|
|
|
|
|
- Added the CreateTranslation ACS command and Thing_SetTranslation special to
|
|
|
|
|
allow changing the translation used by any actor.
|
|
|
|
|
- Added a ScriptedMarine actor. It looks just like the player but wears indigo
|
|
|
|
|
and acts like a monster (except its attacks don't actually do anything).
|
|
|
|
|
Doomednum 9100, spawnable #151.
|
|
|
|
|
|
|
|
|
|
December 21, 2001
|
|
|
|
|
- Added function and array support to ZDoom's ACS VM.
|
|
|
|
|
|
|
|
|
|
December 18, 2001
|
|
|
|
|
- Fixed: Player corpses would revert to the default skin if the player
|
|
|
|
|
respawned before their death animation finished.
|
|
|
|
|
- Changed the Doom weapons so that they use the ammouse member of FWeaponInfo.
|
|
|
|
|
This way, when a deh patch sets a weapon to no ammo, I can set its ammouse to
|
|
|
|
|
0, and nothing will change when the weapon is fired..
|
|
|
|
|
- Changed video code so that if the blitter is not being used to copy the
|
|
|
|
|
frame from system memory, all the drawing will still happen in system memory
|
|
|
|
|
because the processor has faster access to it than video memory.
|
|
|
|
|
- Changed video code so that it works with drivers that do not support
|
|
|
|
|
FLIP_NOVSYNC.
|
|
|
|
|
|
|
|
|
|
December 16, 2001
|
|
|
|
|
- Changed the SSG flash to not last longer than the associated weapon frame.
|
|
|
|
|
|
|
|
|
|
December 8, 2001
|
|
|
|
|
- Fixed: CheckIfExitIsGood() always returned false if self was NULL. This
|
|
|
|
|
meant open scripts could not change the level.
|
|
|
|
|
- Fixed: Exit_Normal and Exit_Secret specials ignored their position
|
|
|
|
|
arguments and always used position 0.
|
|
|
|
|
|
|
|
|
|
December 7, 2001
|
|
|
|
|
- Changed PIT_RadiusAttack() to be closer to the original behavior. Doom does
|
|
|
|
|
radius damage in a square pattern, not a circle. Oops!
|
|
|
|
|
|
|
|
|
|
November 23, 2001
|
|
|
|
|
- Changed translationtables into an array of translation tables and fixed a
|
|
|
|
|
bug with the serialization of decals with custom translations in the
|
|
|
|
|
process.
|
|
|
|
|
- Added the CreateTranslation command to ACC.
|
|
|
|
|
- Redesigned the layout of ACSe/ACSE files so that they can be included with
|
|
|
|
|
editors other than ZETH. The new format looks like a normal ACS\0 file with
|
|
|
|
|
some junk in the string area but no actual scripts or strings. The old
|
|
|
|
|
ACSe/ACSE format is still supported for people who took the time to compile
|
|
|
|
|
the ACC 1.16 source I had posted.
|
|
|
|
|
|
|
|
|
|
November 22, 2001
|
|
|
|
|
- Changed the translation member of AActor to an index into the
|
|
|
|
|
translationtables array.
|
|
|
|
|
- Added the Thing_SpawnFacing special. It works like Thing_Spawn(NoFog)
|
|
|
|
|
except the angle of the new actor is taken from the spot where it spawns at.
|
|
|
|
|
- Corrected the xspeed and yspeed arrays in p_enemy.cpp so that they better
|
|
|
|
|
reflect diagonal movement at the correct speed of 1.
|
|
|
|
|
|
|
|
|
|
November 20, 2001
|
|
|
|
|
- More tool work: Added IMGZ, FON1, and FON2 loading support and ILBM, PCX,
|
|
|
|
|
and BMP writing support to imagetool. It loads FON1 and FON2 as images, not
|
|
|
|
|
fonts, so converting to/from FON1 and FON2 requires extra work on the user's
|
|
|
|
|
part. However, it does make it possible to obtain an editable image for
|
|
|
|
|
the font that can be used to create another font of the same type. It also
|
|
|
|
|
makes imagetool usable as a general-purpose image conversion program, which
|
|
|
|
|
is fitting considering that it was spawned from an ILBM to PCX converter I
|
|
|
|
|
had written earlier.
|
|
|
|
|
|
|
|
|
|
November 19, 2001
|
|
|
|
|
- Changed FFont to construct a font whose glyphs are all the same height so
|
|
|
|
|
that I don't need to keep track of the height and y-offset of individual
|
|
|
|
|
characters.
|
|
|
|
|
- Fixed the FONTA63 character in zdoom.wad to be a proper copy of the
|
|
|
|
|
underscore character for Heretic/Hexen.
|
|
|
|
|
- Fixed: The Beak's weapon infos did not have their type member filled in.
|
|
|
|
|
|
|
|
|
|
November 15, 2001
|
|
|
|
|
- Changed fog boundary handling so that black fog is treated like diminishing
|
|
|
|
|
light rather than fog, so it will not appear on a boundary.
|
|
|
|
|
- Fixed: The Fortress of Mystery appeared on the intermission map when
|
|
|
|
|
entering E2M8 instead of E2M9. It will also stay on the map after you
|
|
|
|
|
finish it now.
|
|
|
|
|
- Fixed: When using the changemap command to switch episodes in Doom 1, only
|
|
|
|
|
the episode just finished would be shown during the intermission.
|
|
|
|
|
- Renamed CONCHARS to CONFONT.
|
|
|
|
|
- Merged all of the FONTB?? graphics in zdoom.wad into a single DBIGFONT
|
|
|
|
|
lump, partly to save space but mostly because I wanted an example font to
|
|
|
|
|
include with imagetool when I distribute it.
|
|
|
|
|
- After inspiration struck, I added some code to make fog boundaries look
|
|
|
|
|
better: At a two-sided line where the front fog is different from the back
|
|
|
|
|
fog, draw a solid-colored window of varying translucency in the color of
|
|
|
|
|
the front fog color. This is effectively what creating a new colormap for
|
|
|
|
|
each fog color already does for sprites and one-sided lines.
|
|
|
|
|
|
|
|
|
|
November 13, 2001
|
|
|
|
|
- Added FON2 creation support to imagetool. Like FON1, this is a font format,
|
|
|
|
|
but this one supports characters of varying widths and a custom palette.
|
|
|
|
|
|
|
|
|
|
November 12, 2001
|
|
|
|
|
- Tool work: Added pcx, bmp, and patch loading support to imagetool.
|
|
|
|
|
- Fixed: Screen shots did not capture the palette blend.
|
|
|
|
|
- Added the ability for HUD messages to resize themselves when the screen
|
|
|
|
|
size changes.
|
|
|
|
|
- Removed precachefonts command from ACC, as I decided it was not needed.
|
|
|
|
|
|
|
|
|
|
November 10, 2001
|
|
|
|
|
- Implemented the setfont command.
|
|
|
|
|
- Fixed: HUD messages were not saved with save games.
|
|
|
|
|
- Added decal teleporting support to TeleportInSector so that decals can move
|
|
|
|
|
between the different shafts of a fake 3D elevator. Then I commented it out
|
|
|
|
|
because doing it right is too hard.
|
|
|
|
|
|
|
|
|
|
November 9, 2001
|
|
|
|
|
- Added the ACS functions setfloortrigger, setceilingtrigger, getactorx,
|
|
|
|
|
getactory, and getactorz. The first two are to make convincing fake 3D
|
|
|
|
|
lifts possible. The last three are there because they have been requested
|
|
|
|
|
a lot.
|
|
|
|
|
|
|
|
|
|
November 8, 2001
|
|
|
|
|
- Fixed: Elevators did not set floordata or ceilingdata, so you could not
|
|
|
|
|
tagwait on them.
|
|
|
|
|
- Improved sprite clipping by fake flats further. Now you can look into an
|
|
|
|
|
underwater area through a window, and the sprites in it will still show
|
|
|
|
|
when your view is above water.
|
|
|
|
|
|
|
|
|
|
November 7, 2001
|
|
|
|
|
- Fixed: Autosaves do not become the default quicksave if the player has not
|
|
|
|
|
saved a game manually yet.
|
|
|
|
|
- FMOD 3.33 also has some division by zero issues, so now I'm back to using
|
|
|
|
|
FMOD 3.40--but this one was updated with some more checks that seem to be
|
|
|
|
|
keeping the division errors away. Unfortunately, the updated FMOD 3.40
|
|
|
|
|
isn't available for Linux yet.
|
|
|
|
|
- Fixed: G_InitNew() was calling StaticGameSet(), but that only needs to be
|
|
|
|
|
called during startup. Calling it again later can cause some Dehacked
|
|
|
|
|
changes to be undone.
|
|
|
|
|
- Fixed: Swimming into a one-sided line while in water would try to jump you
|
|
|
|
|
out of the water. Since there's nothing on the other side of the line,
|
|
|
|
|
that's rather pointless.
|
|
|
|
|
- Made R_DrawSkyBoxes() set the camera properly.
|
|
|
|
|
- Changed most instances of camera->Sector in the renderer with viewsector
|
|
|
|
|
so that deep water clipping can behave as expected when using a chase
|
|
|
|
|
camera that moves out of the same sector as the camera.
|
|
|
|
|
- Improved clipping of sprites by sloped fake floors. To be completely
|
|
|
|
|
correct, the clip line should be sloped with the floor, but it's still
|
|
|
|
|
horizontal because I am feeling lazy right now. At least things don't
|
|
|
|
|
appear and disappear as you move around underneath a sloped fake floor.
|
|
|
|
|
- Added a sound to A_HeadAttack() so that the Cacodemon can be given a melee
|
|
|
|
|
sound through SNDINFO.
|
|
|
|
|
- Changed A_CPosAttack() to use self->AttackSound instead of hard-coding it
|
|
|
|
|
to "chainguy/attack". Now the WolfSS can have a different attack sound.
|
|
|
|
|
- Fixed: secplane_t::FlipVert() was wrong. It needs to negate everything, not
|
|
|
|
|
just c and d. This prevented sloped fake floors and ceilings from
|
|
|
|
|
displaying properly.
|
|
|
|
|
|
|
|
|
|
November 6, 2001
|
|
|
|
|
- Added things 9983 and 9982 to perform actions when going below and above
|
|
|
|
|
fake ceilings.
|
|
|
|
|
- Added some more Transfer_Heights modifiers: 16 causes the control sector
|
|
|
|
|
to have no effect at all on the target sector. With this modifier, it is
|
|
|
|
|
used solely for triggering sector actions. 32 causes the control sector to
|
|
|
|
|
not effect the lighting in the target sector.
|
|
|
|
|
- Added two new sector actions: SecActEyesDive (9993) and SecActEyesSurface
|
|
|
|
|
(9992). When used in conjunction with TeleportGroup, these can produce the
|
|
|
|
|
Duke3D silent teleport to and from underwater sectors effect.
|
|
|
|
|
- Changed TeleportGroup so that if group_tid is 0, it treats the activator
|
|
|
|
|
as the group.
|
|
|
|
|
|
|
|
|
|
November 3, 2001
|
|
|
|
|
- Made some changes to P_ExplodeMissile() so that missiles exploding on a
|
|
|
|
|
corner are more likely to leave behind decals.
|
|
|
|
|
- Added the cvars cl_bobscale and cl_stillbob to control the amount of view
|
|
|
|
|
bob when moving and standing still, respectively.
|
|
|
|
|
|
|
|
|
|
November 2, 2001
|
|
|
|
|
- Improved the accuracy of EV_SilentLineTeleport(). The original function was
|
|
|
|
|
written as if the actor was always exactly on the line, so it calculated a
|
|
|
|
|
destination position directly on the line and fudged with it to get the
|
|
|
|
|
player on the correct side. It's better to find the closest point on the
|
|
|
|
|
source line and the corresponding point on the destination line and then
|
|
|
|
|
offset off of the destination line so that the actor is in the same
|
|
|
|
|
relative position as it is to the source line. This eliminates the need for
|
|
|
|
|
fudging, and I can't get stuck in the wall when teleporting in a sample
|
|
|
|
|
level anymore.
|
|
|
|
|
- Why does the Doom map format have to store sectors only implicitly? Because
|
|
|
|
|
of this, people can create maps with oodles of unclosed sectors. I've
|
|
|
|
|
already had to modify my P_Trace() function because of this. Now I found
|
|
|
|
|
out that they can cause problems if I don't always divide front space in
|
|
|
|
|
R_RenderBSPNode(): I made it conditional because I assumed it was
|
|
|
|
|
unconditional because of precision problems with using polar coordinates to
|
|
|
|
|
perform the transformations. When sectors are well formed (and most are),
|
|
|
|
|
having the check causes no visible problems. But when sectors are badly
|
|
|
|
|
formed, it is possible that sprites in the sectors will not be drawn because
|
|
|
|
|
the sectors do not actually get visited, even though the space they occupy
|
|
|
|
|
is drawn.
|
|
|
|
|
- Changed the Doom fullscreen HUD so that health and armor counts are drawn
|
|
|
|
|
at a location based on the actual font height.
|
|
|
|
|
- Fixed: DCanvas::DrawShadowedMaskedBlock and ::ScaleShadowedMaskedBlock did
|
|
|
|
|
not check to make sure the shadow was drawn inside the screen. Now they do,
|
|
|
|
|
and if the shadow lies partially off the surface, the image and shadow get
|
|
|
|
|
drawn in two passes instead of one.
|
|
|
|
|
|
|
|
|
|
October 31, 2001
|
|
|
|
|
- Fixed: The bloodbath announcer was not entirely silent in single player
|
|
|
|
|
games.
|
|
|
|
|
- Fixed AImpactDecal::SpreadLeft() and SpreadRight() so that they can spread
|
|
|
|
|
across adjacent loops without getting stuck in an infinite loop.
|
|
|
|
|
- Fixed: Corpses can fall to the bottom of deep water now.
|
|
|
|
|
- Fixed a bug in P_Trace() when the trace is on the floor or ceiling and it
|
|
|
|
|
hits a two sided line that blocks it.
|
|
|
|
|
- New: Instant hit weapons can make splashes in liquids, even deep ones.
|
|
|
|
|
The size of the splash is determined by the weapon's puff's mass, so I set
|
|
|
|
|
several of the puff actors to have masses of 5 so their trails only leave
|
|
|
|
|
small splashes instead of big ones.
|
|
|
|
|
- Renamed DThinker::RunThink() to Tick().
|
|
|
|
|
|
|
|
|
|
October 30, 2001
|
|
|
|
|
- Finally added a playmovie command to ACS.
|
|
|
|
|
- Fixed: FDecalLibrary::GetDecalByNum() would only find the decal if it was
|
|
|
|
|
on the right-most branch of the tree.
|
|
|
|
|
- Changed the subsector pointer in AActor to a sector pointer. The only place
|
|
|
|
|
where it wasn't used to get the actor's containing sector was an early-out
|
|
|
|
|
in P_CheckSight(). Since the sight checking in ZDoom uses the blockmap
|
|
|
|
|
instead of the BSP, I doubt it provided much benefit, especially since it
|
|
|
|
|
was rarely taken.
|
|
|
|
|
|
|
|
|
|
October 29, 2001
|
|
|
|
|
- Put back some code that lets you see underwater areas through windows. It
|
|
|
|
|
is not perfect and cannot be used at the same time that you can see the
|
|
|
|
|
abovewater area of any deep sectors.
|
|
|
|
|
- Fixed: The back side of a mirror could clip sprites in front of it because
|
|
|
|
|
the determination of which side of a line a sprite is on was being done in
|
|
|
|
|
world space. The solution is to use camera space for the determination
|
|
|
|
|
instead. Since I was already calculating all the necessary values, the
|
|
|
|
|
solution mostly involved extending vissprite_t and drawseg_t to hold the
|
|
|
|
|
extra information.
|
|
|
|
|
- Fixed: Sectors set to drop their ceilings after 30 seconds would not go
|
|
|
|
|
back to their original height if they were blocked while closing.
|
|
|
|
|
- Added the con_ctrl_d cvar so that I can set it to "quit" and press Ctrl-D
|
|
|
|
|
at an empty console prompt to quit the game.
|
|
|
|
|
- Added the exit command as a synonym for quit.
|
|
|
|
|
- Added the defaultbind command.
|
|
|
|
|
|
|
|
|
|
October 27, 2001
|
|
|
|
|
- Made a slight optimization for sprite drawing by moving the floorclip
|
|
|
|
|
clipping out of R_DrawMaskedColumn and into R_DrawSprite.
|
|
|
|
|
- Fixed: Spawning objects in a swimmable water area would create a splash on
|
|
|
|
|
the water surface.
|
|
|
|
|
- Fixed: Passing +map at startup just prints a warning to the console instead
|
|
|
|
|
of quitting altogether if the map could not be found.
|
|
|
|
|
- Added new options to Transfer_Heights: By setting the second argument to 2,
|
|
|
|
|
only the deep water effect will be created. By setting it to 4, the fake
|
|
|
|
|
floor and/or ceiling will only show if it is "inside" the sector, but only
|
|
|
|
|
if the real sector's and the control sector's corresponding planes are not
|
|
|
|
|
sloped. This also effects the texturing in that the control sector's
|
|
|
|
|
textures are used for both the top and bottom of the surface they correspond
|
|
|
|
|
to, and the sector being faked keeps its textures for its normal range.
|
|
|
|
|
Set the first argument to 8, and it will be made into water even without a
|
|
|
|
|
WaterZone actor in the control sector. These can be added together to
|
|
|
|
|
combine effects. So Transfer_Heights (tag, 12) should produce an effect
|
|
|
|
|
similar to Doom Legacy's 280 linetype.
|
|
|
|
|
- Added the test and eval console commands. Test is like if/then/else, and
|
|
|
|
|
eval evaluates an expression, possibly storing the result in a variable.
|
|
|
|
|
This should take care of all the major functionality the console was
|
|
|
|
|
missing before.
|
|
|
|
|
|
|
|
|
|
October 26, 2001
|
|
|
|
|
- Made the atexit cvar a command that registers different commands to
|
|
|
|
|
execute when the game quits.
|
|
|
|
|
- Cfg files listed at the start of the command line now get executed as if
|
|
|
|
|
they had appeared after +exec. (i.e. "zdoom foo.cfg" works just like
|
|
|
|
|
"zdoom +exec foo.cfg")
|
|
|
|
|
- Added the pullin command so that .cfg scripts loaded at startup can cause
|
|
|
|
|
one or more wads to be loaded. (They "pull in" the wads they need.)
|
|
|
|
|
- Changed the exec command so that it can execute more than one file.
|
|
|
|
|
- Added the addkeysection and addmenukey commands for people writing console
|
|
|
|
|
scripts.
|
|
|
|
|
|
|
|
|
|
October 25, 2001
|
|
|
|
|
- Added ACS commands fadeto, faderange, and cancelfade to do some palette
|
|
|
|
|
blending stuff under scripted control.
|
|
|
|
|
- Added BloodSplash, BloodSplashBase, SlimeSplash, and SlimeChunk classes
|
|
|
|
|
for anyone who wants to use them in a TERRAIN lump.
|
|
|
|
|
- Added the atexit cvar. It gets executed like an alias when the game quits.
|
|
|
|
|
- Added archivecvar command to force user-defined cvars to save themselves
|
|
|
|
|
in the config file.
|
|
|
|
|
- Added snd_waterreverb cvar to disable the use of underwater reverb.
|
|
|
|
|
- Added support for specials with variable argument counts to ACC so that
|
|
|
|
|
specials which have had parameters added (such as Thing_Spawn) can still
|
|
|
|
|
be used without the extra parameter.
|
|
|
|
|
- Added TeleportOther (76) and TeleportGroup (77) specials.
|
|
|
|
|
- Added autosave capabilities. Up to four autosaves are kept at a time,
|
|
|
|
|
and they get created whenever a player enters a map. The level designer
|
|
|
|
|
can also place them at strategic locations in the level using special
|
|
|
|
|
15 or linetypes 348/349.
|
|
|
|
|
|
|
|
|
|
October 24, 2001
|
|
|
|
|
- Fixed: The level name shown on the automap included the hours of the
|
|
|
|
|
current time if the map was in a hub.
|
|
|
|
|
- Added Line_Horizon to DOOMX/HERETICX as linetype 337.
|
|
|
|
|
- Added am_showitems cvar to show the item count on the automap.
|
|
|
|
|
- Added pattern matching support to D_AddConfigWads().
|
|
|
|
|
- Fixed: Variable substitution only worked for the last argument of a
|
|
|
|
|
command line.
|
|
|
|
|
- Removed FCommandLine::AllButFirstArg(). It did not handle variable
|
|
|
|
|
substitution, and since you can escape quotes inside strings, it's not
|
|
|
|
|
really neccessary, either.
|
|
|
|
|
- Added a generator line for the Spider Mastermind to DECALDEF.
|
|
|
|
|
- Added some division-by-zero checks to the projection calculations in
|
|
|
|
|
R_AddLine(), R_CheckBBox(), and R_RenderBoundWallSprite().
|
|
|
|
|
|
|
|
|
|
October 23, 2001
|
|
|
|
|
- Added Scale and Decal properties to Dehacked thing sections. Added Decal
|
|
|
|
|
property to Dehacked weapon sections.
|
|
|
|
|
- Changed the scalars in DECALDEF to be 1-based instead of 64-based. This
|
|
|
|
|
lets me silently expand its range in the future without breaking existing
|
|
|
|
|
decal definitions.
|
|
|
|
|
- Fixed: fixedlightlev was being applied to skies. It looks weird to see a
|
|
|
|
|
torch lighting up the entire sky, so skies should ignore the setting of
|
|
|
|
|
fixedlightlev.
|
|
|
|
|
- Fixed the scaled status bar. I was simply forgetting to add the image
|
|
|
|
|
offsets in FBaseStatusBar::DrawImage() before calling CopyToScreen().
|
|
|
|
|
- Added code to let decals move with sliding and rotating polyobjects.
|
|
|
|
|
- Fixed: The wait console command waited one tic too few.
|
|
|
|
|
- Fixed a resizing problem with playing movies windowed.
|
|
|
|
|
- I think checkinventory, giveinventory, and takeinventory are fully working
|
|
|
|
|
now.
|
|
|
|
|
- Made checkinventory not crash in open scripts.
|
|
|
|
|
- Made AInventory::TryPickup() public so that I can use it with
|
|
|
|
|
giveinventory and avoid printing a message about the pickup.
|
|
|
|
|
- Passing an amount of 0 to takeinventory now removes all of that item
|
|
|
|
|
from the player's inventory.
|
|
|
|
|
- Made TakeInventory work in open scripts.
|
|
|
|
|
- Removed the Health option from GiveInventory.
|
|
|
|
|
- Changed DamageThing so that negative damages cause it to act like
|
|
|
|
|
HealThing.
|
|
|
|
|
- Added OldStyleID() methods to AFist, APistol, AStaff, and AGoldWand.
|
|
|
|
|
|
|
|
|
|
October 22, 2001
|
|
|
|
|
- Made clearinventory work in open scripts.
|
|
|
|
|
- Made ambientsound use CHAN_AUTO instead of CHAN_BODY, so you can have
|
|
|
|
|
multiple overlapping ambientsounds.
|
|
|
|
|
- Fixed: Setplayerproperty was using the set property as the who property.
|
|
|
|
|
- Fixed: Closing the console when the overlay automap is active and the view
|
|
|
|
|
window does not cover the width of the screen would not redraw the border.
|
|
|
|
|
- Fixed: The overlay automap did not center itself inside the view window.
|
|
|
|
|
- Fixed: When neverswitchonpickup was changed during a game, it would always
|
|
|
|
|
become false in the playerinfo struct.
|
|
|
|
|
- Made the rocket explosion style modifiable through dehacked in the misc
|
|
|
|
|
section. Use the keys "Rocket Explosion Style" and "Rocket Explosion Alpha"
|
|
|
|
|
to change it.
|
|
|
|
|
- Changed the sky drawer so that it properly tiles skies of any height and
|
|
|
|
|
not just those that are a power of 2.
|
|
|
|
|
- Changed R_InitSkyMap() so that tall skies will always be aligned at the
|
|
|
|
|
top of the screen when looking all the way up. Now 240-tall skies will
|
|
|
|
|
actually be useful, since so many people seem to think skies need to be
|
|
|
|
|
that tall to be considered "tall" even though anything taller than 128
|
|
|
|
|
pixels is "tall".
|
|
|
|
|
- Fixed: Files specified at the start of the command line were treated as
|
|
|
|
|
if they were listed after a -bot parameter.
|
|
|
|
|
- Modified DArgs::GatherFiles() so that it can handle files listed after
|
|
|
|
|
multiple instances of the same parameter (e.g. "-file 1.wad -file 2.wad")
|
|
|
|
|
- Changed ConsiderPatches() so that it tries appending both .deh and .bex to
|
|
|
|
|
files listed after both -deh and -bex parameters, which means the two
|
|
|
|
|
parameters now behave identically and are just synonyms for each other.
|
|
|
|
|
- Made a fix to BaseFileSearch() when it retries with an extension.
|
|
|
|
|
|
|
|
|
|
October 20, 2001
|
|
|
|
|
- Added range checks to R_SetVisibility to prevent visual glitches caused by
|
|
|
|
|
too high visibility/fov combinations.
|
|
|
|
|
- Made r_visibility unchangeable in netgames.
|
|
|
|
|
- Made FOV changes get sent through the net interface, so they can be
|
|
|
|
|
recorded in demos, and also so that they can be restricted with the new
|
|
|
|
|
sv_nofov cvar.
|
|
|
|
|
- Fixed: Bool cvars (such as sv_nomonsters) would change their associated
|
|
|
|
|
serverinfo var without going through the network.
|
|
|
|
|
- Fixed: The Doom status bar would not update the arms/frags area when the
|
|
|
|
|
deathmatch cvar is changed during the game.
|
|
|
|
|
- Fixed: Player corpses could still make the grunt sound when they hit the
|
|
|
|
|
ground.
|
|
|
|
|
- Fixed: StreamSong would always play at full volume until snd_musicvolume
|
|
|
|
|
changed because it kept its own internal copy of the volume that was not
|
|
|
|
|
updated with the actual volume until the cvar was changed.
|
|
|
|
|
- Made crushing ceilings call PlayCeilingSound() again, but only if the
|
|
|
|
|
ceiling is not playing a looping sound. This fixes the almost silent crusher
|
|
|
|
|
in Doom2 MAP04 that had become totally silent.
|
|
|
|
|
- Fixed: The weapon sprite did not flash when invisibility was about to run
|
|
|
|
|
out.
|
|
|
|
|
- Made DECALDEF generators support using "None" to remove decals from actors.
|
|
|
|
|
- Added fullbright flag to the BFG lightning and plasma scorch decals.
|
|
|
|
|
- Fixed: Ambient things could not be spawned silent, because they start
|
|
|
|
|
themselves with PostBeginPlay, which gets called after Deactivate
|
|
|
|
|
when their dormant bit is set. So they would stop themselves and then
|
|
|
|
|
immediately start again. Using BeginPlay fixes this, since it gets
|
|
|
|
|
called before the dormant Deactivate.
|
|
|
|
|
- Fixed: S_RelinkSound() should not be able to move repeating sounds to
|
|
|
|
|
positioned sounds. This fixes removing continuous ambient sound things
|
|
|
|
|
from not stopping the sound immediately.
|
|
|
|
|
- Fixed: Deactivating a continuous ambient sound thing would not stop the
|
|
|
|
|
sound until it was either overridden by more important sounds or disappeared
|
|
|
|
|
out of range.
|
|
|
|
|
- Fixed: The bex include directive ignored the file name if it appeared in
|
|
|
|
|
files that mark line endings with CR/LF instead of just LF. (AFAIK, that's
|
|
|
|
|
all bex files that exist.) For files that just use LF, it would try to
|
|
|
|
|
include the file but crash.
|
|
|
|
|
- Win32Video::EnumDDModesCB() now rejects modes whose widths are not
|
|
|
|
|
multiples of 8, because there are various places in the source that assume
|
|
|
|
|
this to be true, and I have no alternative code (or desire to write such
|
|
|
|
|
code) to handle cases when this is not true. I don't know of any standard
|
|
|
|
|
modes that would be rejected by this, but it's better to be safe than sorry.
|
|
|
|
|
- Fixed: Viewwindows with widths that are not divisible by 16 could crash
|
|
|
|
|
when doubling pixels horizontally, because the MMX routines write to
|
|
|
|
|
quadwords at a time. Now the non-MMX code is always used in such cases,
|
|
|
|
|
since they are rare (only when the window is the full width of the screen
|
|
|
|
|
and the screen width is not a multiple of 16).
|
|
|
|
|
- Removed vid_bufferarea and related code to switch between buffered and
|
|
|
|
|
unbuffered display based on translucent areas visible in the last frame.
|
|
|
|
|
- Fixed: Savegames did not remember which levels had been marked visited for
|
|
|
|
|
the Doom 1 intermission screen.
|
|
|
|
|
- Fixed: Actors' alphacolor was not serialized.
|
|
|
|
|
- Fixed vid_setmode not always resizing the window to a reasonable size under
|
|
|
|
|
Win ME because the OS sends out WM_GETMINMAXINFO before performing the
|
|
|
|
|
resize with SetWindowPos().
|
|
|
|
|
|
|
|
|
|
October 19, 2001
|
|
|
|
|
- Added the ability for DDrawFB to draw to a system memory surface and then
|
|
|
|
|
blit it to the primary surface. This can greatly improve performance, both
|
|
|
|
|
because the video card can write to its own memory faster than the CPU, but
|
|
|
|
|
also because the next frame can start rendering in a separate surface while
|
|
|
|
|
the blit is underway. The net result is that drawing to system memory is
|
|
|
|
|
only a little slower than drawing directly to video memory (if at all), and
|
|
|
|
|
there is really no reason for me to support writing directly to the primary
|
|
|
|
|
surface any more. I can even run 1400x1050 at 35 fps, though it is somewhat
|
|
|
|
|
jumpy, and it does get slower if the scene is too complicated. But just
|
|
|
|
|
being able to run it full speed at all at that high a resolution rocks! Even
|
|
|
|
|
a 300 MHz P2 can run the standard levels at a full 35 fps at 800x600, which
|
|
|
|
|
it couldn't before.
|
|
|
|
|
|
|
|
|
|
October 18, 2001
|
|
|
|
|
- Need to fix windowed 256 color updating for systems that cannot lock the
|
|
|
|
|
primary surface. (result is DDERR_CANTLOCKSURFACE when you try)
|
|
|
|
|
- Added a performance counter for blitting the frame buffer to the screen and
|
|
|
|
|
discovered that it is a real performance sink. When no pixel format
|
|
|
|
|
conversion is involved, it should be no slower than wall drawing, right? Well,
|
|
|
|
|
it's about twice as slow.
|
|
|
|
|
- Improved performance at 1024x768 by using a pitch larger than the width for
|
|
|
|
|
the underlying SimpleCanvas at that resolution (so that successive pixels
|
|
|
|
|
drawn in columns are not exactly 1k apart and can make better use of the
|
|
|
|
|
cache). The result is that wall pixels take about 5.4 cycles to draw, which
|
|
|
|
|
is in line with what the other resolutions manage.
|
|
|
|
|
|
|
|
|
|
October 17, 2001
|
|
|
|
|
- Did some performance tests at different resolutions and discovered something
|
|
|
|
|
very weird: up to and including 800x600, wall drawing ranges between 4.5 and
|
|
|
|
|
5.2 cycles/pixel. But at 1024x768, it jumps up to a whopping 18 cycles per
|
|
|
|
|
pixel. Even stranger, 1280x1024 only uses 7 cycles/pixel, and 1400x1050 takes
|
|
|
|
|
just 5.5 cycles/pixel. (These numbers include all overhead such as traversing
|
|
|
|
|
the BSP and creating visplanes, not just the time actually spent stuffing
|
|
|
|
|
pixels to the framebufer.)
|
|
|
|
|
- Changed the mode iterator to allow resolutions taller than 1024 pixels,
|
|
|
|
|
since there is nowhere in the source that this restriction exists. (There
|
|
|
|
|
is a limit of 1200 pixels tall, but this is easily changed with a #define.)
|
|
|
|
|
- Massaged the assembly output of vlinec4 to produce vlinetallasm4. This
|
|
|
|
|
new function is about 7% faster than provlineasm4 and is not limited to
|
|
|
|
|
256 pixel tall columns, so I stopped using provlineasm4. I don't know
|
|
|
|
|
how it compares to vlineasm4 on a Pentium, but my guess is that vlineasm4
|
|
|
|
|
is faster on such a machine. It's probably worth also noting that contrary
|
|
|
|
|
to my initial belief, self-modifying code was essential to getting this
|
|
|
|
|
function to perform well. Also, I did not even bother trying to optimize
|
|
|
|
|
it for a Pentium, just Pentium Pro and above. Moving things around to help
|
|
|
|
|
pairing on a Pentium actually reduced performance on this P3-M.
|
|
|
|
|
|
|
|
|
|
October 15, 2001
|
|
|
|
|
- Wrote C versions of vlineasm1 and vlineasm4. On a P3, vlinec4 performs
|
|
|
|
|
about half way between vlineasm4 and provlineasm4. P2 performance is
|
|
|
|
|
probably similar.
|
|
|
|
|
- Got rid of all the 2-column drawers. Whatever performance improvements
|
|
|
|
|
they might have been able to offer was negated by the complexity of the
|
|
|
|
|
code neccessary to use them. This let me greatly clean up rt_draw4cols()
|
|
|
|
|
and actually make it readable.
|
|
|
|
|
|
|
|
|
|
October 12, 2001
|
|
|
|
|
- Fixed: I_InitMusic() was not called if -nosound or -nosfx was passed.
|
|
|
|
|
- Changed visplanes so that the bottom array stores the pixels just below
|
|
|
|
|
the plane--a simple semantic change that lends itself to a few more
|
|
|
|
|
optimization chances elsewhere in the engine, since it unifies the way
|
|
|
|
|
top and bottom arrays are handled everywhere.
|
|
|
|
|
- Enhanced wallscan so that it can get a texture column using any function.
|
|
|
|
|
This lets me use it for layered skies.
|
|
|
|
|
|
|
|
|
|
October 10, 2001
|
|
|
|
|
- Drawing of a single sky layer now uses wallscan.
|
|
|
|
|
- Removed the use of dc_mask from all of the non-wallscan column drawers,
|
|
|
|
|
since they are only used for masked columns, which never repeat and hence
|
|
|
|
|
never need masking.
|
|
|
|
|
- Tried out the new code on a P2-300. It is also slightly faster. Drawing a
|
|
|
|
|
wall covering the entire screen is about 10ms faster at 800x600 on it. This
|
|
|
|
|
made me decide to do away with BlastColumn, R_RenderSegLoop1, and
|
|
|
|
|
R_RenderSegLoop2. There is just one R_RenderSegLoop now, using vlineasm4.
|
|
|
|
|
|
|
|
|
|
October 9, 2001
|
|
|
|
|
- Added Build's vlineasm4 and associated code to speed up wall drawing.
|
|
|
|
|
Surprisingly, it only offers a marginal improvement on this P3-866 equipped
|
|
|
|
|
notebook: The higher resolutions are only a few FPS faster than
|
|
|
|
|
r_columnmethod 1. When I get a new monitor, I will have to try it out with
|
|
|
|
|
my main system, since it still has a P2-350. I think the biggest benefit
|
|
|
|
|
should be for people with Pentium-class or less processors.
|
|
|
|
|
Since it is faster, I'll keep it. I also improved it so that it works with
|
|
|
|
|
textures taller than 256 pixels (or should, I haven't tested).
|
|
|
|
|
|
|
|
|
|
October 4, 2001
|
|
|
|
|
- Fixed fullscreen video playback so that it does not minimize the game
|
|
|
|
|
window immediately after the video is stopped.
|
|
|
|
|
- Improved dragging the ZDoom window around by making the window procedure
|
|
|
|
|
pay attention to WM_PAINT messages and redraw the screen as needed. Making
|
|
|
|
|
WM_SIZE invalidate the client rect also lets it redraw as the window is
|
|
|
|
|
shrinking.
|
|
|
|
|
|
|
|
|
|
October 3, 2001
|
|
|
|
|
- Fixed DDrawFB::CreateSurfacesComplex() so that it can retry without
|
|
|
|
|
requesting video memory. This lets it work with Mode X, so presumably it
|
|
|
|
|
will also let it work with old video cards that lack proper DirectDraw
|
|
|
|
|
support.
|
|
|
|
|
- Commented out the GammaControl stuff in win32video.cpp. Too many people
|
|
|
|
|
complained about not being able to compile it (get a newer DX SDK!), and
|
|
|
|
|
it does not provide me much benefit when working with paletted displays
|
|
|
|
|
anyway. Nor was it ever actually implemented.
|
|
|
|
|
|
|
|
|
|
October 2, 2001
|
|
|
|
|
- Fixed: DROPPED bit was defined twice in DEHSUPP.
|
|
|
|
|
- Updated my source files with the new BSD-ish license.
|
|
|
|
|
- Renamed p_spark.cpp to g_shared/a_spark.cpp.
|
|
|
|
|
- Removed d_items.cpp and d_items.h. They have been obsolete ever since I
|
|
|
|
|
changed the give command to accept class names.
|
|
|
|
|
- Changed the randomized sound names in DEHSUPP from their individual names
|
|
|
|
|
to their new base name. (i.e. grunt/sight1, 2, and 3 all become grunt/sight)
|
|
|
|
|
- Fixed a typo in DEHSUPP: gatso/death should have been fatso/death.
|
|
|
|
|
|
|
|
|
|
October 1, 2001
|
|
|
|
|
- Added a playmovie command to play a file using DirectShow. Currently, it
|
|
|
|
|
works best with windowed mode.
|
|
|
|
|
|
|
|
|
|
September 27, 2001
|
|
|
|
|
- Added Line_Horizon special to extend a sector's floor and ceiling to
|
|
|
|
|
infinity--should be useful for skyboxes. It is not meant for use with
|
|
|
|
|
slopes, so don't do that.
|
|
|
|
|
- Fixed: ceilingclip/floorclip generation in R_DrawSkyBoxes was wrong for
|
|
|
|
|
unused portions of the sky box's visplane (when pl->top[x] == 0xffff).
|
|
|
|
|
This could cause problems when taking the snapshot for savegames.
|
|
|
|
|
- Fixed: Quicksaving would continue to ask for a save slot until a normal
|
|
|
|
|
save had been done.
|
|
|
|
|
- Fixed: Bad decal texture coordinates could crash the game. These were
|
|
|
|
|
generated when the camera gets extremely close to a decal, so I chose to
|
|
|
|
|
use the same tactic I used with masked mid textures and not render them
|
|
|
|
|
at all if they get too close. I think the only time something like this
|
|
|
|
|
becomes a real issue is when somebody is noclipping around the level.
|
|
|
|
|
|
|
|
|
|
September 26, 2001
|
|
|
|
|
- Fixed P_LoopSides() to not trash memory when loading a map with a
|
|
|
|
|
single-sided line that does not attach to anything at its right end. (E1M3
|
|
|
|
|
is one such map.)
|
|
|
|
|
- Fixed decals not drawing their full height except when they were on upper
|
|
|
|
|
textures; BlastColumn was storing wallbottom wrong.
|
|
|
|
|
- Fixed inconsistant usage of ceilingclip. It is supposed to store the top
|
|
|
|
|
good y, but some places still treated it as the y just above the first good
|
|
|
|
|
y, as it was in the original renderer.
|
|
|
|
|
- Fixed the GCC version of qinterpolatedown16short(). It wrote 2 more
|
|
|
|
|
entries than it was supposed to and could start writing one entry before
|
|
|
|
|
it was supposed to.
|
|
|
|
|
- Previous log entries were accidentally lost when I was improving the
|
|
|
|
|
todos/fromdos scripts. Now only the files that have changed get copied
|
|
|
|
|
across, and I can avoid rebuilding every source file each time I transfer
|
|
|
|
|
the code between partitions. Under Linux, this is a big deal, because GCC
|
|
|
|
|
is so slow.
|
|
|
|
|
|
|
|
|
|
September 17, 2001
|
|
|
|
|
- Added cl_missiledecals cvar to turn off decals left behind by missile
|
|
|
|
|
explosions.
|
|
|
|
|
- Added cl_bloodsplats cvar to turn off blood splats while leaving other
|
|
|
|
|
decals alone.
|
|
|
|
|
- Added -timerdelay parameter to specify how fast the game timer tics (in
|
|
|
|
|
milliseconds). This is just here so that when I occasionally get demos
|
|
|
|
|
illustrating problems, I can easily fast forward through them.
|
|
|
|
|
- Made A3D the default for snd_3d again, because A3D has one more hardware
|
|
|
|
|
channel than DirectSound on my Vortex2 and because it seems to work
|
|
|
|
|
better than DirectSound.
|
|
|
|
|
- Changed I_StartSound3D() so that it starts sounds on a specific channel
|
|
|
|
|
instead of using FSOUND_FREE, because it loses sounds with DirectSound
|
|
|
|
|
if I let FMOD pick a channel. Oddly, FSOUND_FREE with A3D works fine.
|
|
|
|
|
[Nevermind, that doesn't work with DirectSound, either. It seemed to be
|
|
|
|
|
working the first time I tried it, but when I tried again later, it
|
|
|
|
|
was not working anymore.] [Another footnote: A3D seems to position the
|
|
|
|
|
sounds wrong that DirectSound does not play. What's going on?]
|
|
|
|
|
- Let I_SetChannels() change the number of channels available so that all
|
|
|
|
|
the available hardware channels can be used if using 3D audio.
|
|
|
|
|
- Made CPU speed detection more accurate.
|
|
|
|
|
- Added underwater reverb for hardware 3D sound.
|
|
|
|
|
- Updated sound code for FMOD 3.4.
|
|
|
|
|
- Fixed timer resolution checking in WinMain--my parentheses were misplaced.
|
|
|
|
|
- Put SectorSilencer back at doomednum 9082. I don't know why I had changed
|
|
|
|
|
it to 9002.
|
|
|
|
|
|
|
|
|
|
September 15, 2001
|
|
|
|
|
- Fixed: Monsters that reached the end of a patrol path did not have their
|
|
|
|
|
reactiontime reset, so they would wait a very long time before attacking.
|
|
|
|
|
- Fixed: STYLE_Shaded ignored special colormaps like invulnerability.
|
|
|
|
|
- Added support for autoloading wads through the config file. Create a
|
|
|
|
|
section called [Game.Autoload] and place "Path=<file>" beneath it for each
|
|
|
|
|
file to be automatically loaded. They are loaded after the files in the
|
|
|
|
|
skins directory and before any files on the command line. Game can be
|
|
|
|
|
Global to load the files for any game. Global files are added before game-
|
|
|
|
|
specific files.
|
|
|
|
|
- Fixed StreamSong when using 3D sound: The stream was not created with
|
|
|
|
|
FSOUND_2D, so it was being positioned in the world.
|
|
|
|
|
|
|
|
|
|
September 14, 2001
|
|
|
|
|
- Made the ACS spawn and spawnspot commands automatically prepend A to their
|
|
|
|
|
type names. They remain untested, however.
|
|
|
|
|
- Added decals for all remaining Doom things. Heretic is next.
|
|
|
|
|
- Fixed pitch calculation in P_TraceBleed() when a missile's velocity is used
|
|
|
|
|
to determine pitch.
|
|
|
|
|
|
|
|
|
|
September 12, 2001
|
|
|
|
|
- Added decal stretchers, sliders, combiners, and colorchangers. Also added
|
|
|
|
|
a few more decals.
|
|
|
|
|
|
|
|
|
|
September 11, 2001
|
|
|
|
|
- Fixed FDecalLib::GetDecalByNum() and ::GetDecalByName() so that they do not
|
|
|
|
|
crash if the decal is not found.
|
|
|
|
|
- Tried putting back in the BSP-based sight checking code that was in the
|
|
|
|
|
Linux Doom 1.10 source, and the result was quite surprising. Using the BSP
|
|
|
|
|
to check sight was actually slower than using the blockmap, sometimes
|
|
|
|
|
significantly so--Vrack 2 spent between 4 and 6 times as much time checking
|
|
|
|
|
site using the BSP as it did without. In the best case, the BSP routines
|
|
|
|
|
were about as fast as the blockmap ones, so I took the BSP routines back
|
|
|
|
|
out, because they offer no benefit over the Hexen code I had been using for
|
|
|
|
|
some time now.
|
|
|
|
|
- Fixed: Maps with starts for players 5-8 would trample over memory
|
|
|
|
|
when saving the starts for those players.
|
|
|
|
|
- Added blood splats for instant hit weapons.
|
|
|
|
|
|
|
|
|
|
September 10, 2001
|
|
|
|
|
- Made alpha affect STYLE_Shade.
|
|
|
|
|
- Fixed: rt_shaded4cols sometimes drew texels too dark because it
|
|
|
|
|
calculated the value of fill wrong.
|
|
|
|
|
- Fixed: Decals that used picnums (i.e. all of them) could not be flipped
|
|
|
|
|
horizontally.
|
|
|
|
|
- Stopped using actors' memory locations as their phase shift for float
|
|
|
|
|
bob motion. This works fine for single player, but in multiplayer,
|
|
|
|
|
there's no way to ensure that the same actor will have the same phase
|
|
|
|
|
on different machines. Now I use the random number generator instead.
|
|
|
|
|
|
|
|
|
|
September 8, 2001
|
|
|
|
|
- Added decal faders so that decals that are likely to bog things down
|
|
|
|
|
(such as the plasma rifle's) can disappear sooner than if they wait for
|
|
|
|
|
cl_maxdecals to be hit and get cycled out. [Edit: I only use these for
|
|
|
|
|
special effect decals right now.]
|
|
|
|
|
- Added the ability for missiles to leave behind decals on walls.
|
|
|
|
|
- Fixed a sub-pixel alignment problem for vertically flipped sprites.
|
|
|
|
|
- Fixed: Adding bots and then changing the map could crash because the bot's
|
|
|
|
|
"player" was still carrying around the actor from the previous level.
|
|
|
|
|
- Bumped the barrel respawn time back up to 1050 tics--forgot I had dropped
|
|
|
|
|
it down to 50 for testing.
|
|
|
|
|
- Added support for loading sounds from RFF files so that I can have the
|
|
|
|
|
Bloodbath announcer.
|
|
|
|
|
|
|
|
|
|
September 7, 2001
|
|
|
|
|
- Fixed: Dehacked patches that set weapons to ammo type 5 (what was once
|
|
|
|
|
am_noammo) would use am_crossbow, because that is type 5 now.
|
|
|
|
|
|
|
|
|
|
September 5, 2001
|
|
|
|
|
- Fixed: Trying to alias a command through the .ini file would crash
|
|
|
|
|
because the game would actually try to do it instead of giving a warning.
|
|
|
|
|
|
|
|
|
|
September 4, 2001
|
|
|
|
|
- Added the falling splat sound to A_PlayerScream().
|
|
|
|
|
- Changed skin semantics in AActor::SetState() again so that players can
|
|
|
|
|
actually burn because the burn states use the FDTH sprite instead of
|
|
|
|
|
the normal player sprite. Now, if the actor is not a player, or the
|
|
|
|
|
player does not have a skin, or the state's sprite is not the same as
|
|
|
|
|
the sprite the player was spawned with, the state's sprite will be
|
|
|
|
|
used. Otherwise, the skin's sprite will be used.
|
|
|
|
|
- Fixed burning and icy deaths to not crash.
|
|
|
|
|
- Fixed a stack overflow in Heretic/Hexen that could happen after death
|
|
|
|
|
because A_Chase and A_Look would repeatedly cause the other function
|
|
|
|
|
to execute, ad nauseum.
|
|
|
|
|
- Added Hexen's Ice Guy/Ice Golem.
|
|
|
|
|
- The SkyboxViewPoint's angle is now used to adjust the yaw when drawing
|
|
|
|
|
a skybox. This means you can rotate a skybox by rotating its viewpoint
|
|
|
|
|
(which is courrently only possible with an actor mover and several
|
|
|
|
|
overlapping interpolation points).
|
|
|
|
|
- Added simple Dolby Pro Logic surround support to s_sound.cpp using code
|
|
|
|
|
from a post on the message board.
|
|
|
|
|
|
|
|
|
|
September 3, 2001
|
|
|
|
|
- Fixed: The alias command will no longer try to set or remove aliases for
|
|
|
|
|
normal console commands.
|
|
|
|
|
- Fixed an error in C_RemoveTabCommand() that moved one extra name down
|
|
|
|
|
at the end of the array.
|
|
|
|
|
- Added Hexen's Serpent/Water Lurker, Centaur, Demons, and mana.
|
|
|
|
|
|
|
|
|
|
September 1, 2001
|
|
|
|
|
- Reintroduced MF_CRASHED, this time as MF3_CRASHED, so that I don't need a
|
|
|
|
|
special case to crash FireDemons that die on the floor.
|
|
|
|
|
- Added Hexen's FireDemon/Fire Gargoyle/Imp, just because it's been so long
|
|
|
|
|
since I added anything from Hexen.
|
|
|
|
|
|
|
|
|
|
August 29, 2001
|
|
|
|
|
- Changed ADecal::StickToWall() to add decals to the end of the list so that
|
|
|
|
|
new decals get drawn on top of old ones.
|
|
|
|
|
- Fixed: Actors with STYLE_None were still being projected to the screen,
|
|
|
|
|
needlessly wasting time.
|
|
|
|
|
|
|
|
|
|
August 28, 2001
|
|
|
|
|
- Fixed: Quicksaving into an existing slot would rename the quicksave to the
|
|
|
|
|
name of whatever was saved most recently instead of keeping the name
|
|
|
|
|
of the quicksave slot unchanged.
|
|
|
|
|
- Fixed: PWADs that replaced sprite frames that originally only had a rotation
|
|
|
|
|
0 with multiple rotations would only show the first rotation.
|
|
|
|
|
- Fixed: When the light to dark part of R_CalcTiltedLighting() clamped the
|
|
|
|
|
end of the range, it set lightfiller to a value calculated with
|
|
|
|
|
(NUMCOLORMAPS-1)<<FRACBITS. FRACBITS should have been COLORMAPSHIFT. The
|
|
|
|
|
result was strange colors at best and crashes at worst.
|
|
|
|
|
- Fixed: Shuffling playlists crashed because I failed to clamp the result
|
|
|
|
|
of rand() to the number of songs in the playlist. Whoops!
|
|
|
|
|
- Changed R_SetupFrame() so that the chasecam will only be used if the
|
|
|
|
|
current camera has an image.
|
|
|
|
|
- Changed Win32 mouse grabbing so that when the mouse becomes ungrabbed,
|
|
|
|
|
it will return to the same place it was at before being grabbed.
|
|
|
|
|
- Changed win32/i_input.cpp so that deactivating the window will pause the
|
|
|
|
|
game if the player is not in a network game.
|
|
|
|
|
- Fixed Thing_Destroy to just hurt things enough to kill them instead of
|
|
|
|
|
giving them 10000 damage like massacre does. (This is the way it is
|
|
|
|
|
supposed to be.) For people who liked the accidental behavior, I added a
|
|
|
|
|
second argument that can be used to enable the massacre-like effect.
|
|
|
|
|
- Fixed some entries to doomxlat.txt: Generalized floors and ceilings
|
|
|
|
|
can be set to allow monster activation now. Changed the delays for
|
|
|
|
|
generalized doors so that they more closely match the actual tic counts
|
|
|
|
|
used by BOOM instead of rounding them to the nearest second.
|
|
|
|
|
- Fixed: Palette flashes were not carried over when creating a new frame
|
|
|
|
|
buffer. Also fixed palette flashes being gamma adjusted multiple times
|
|
|
|
|
whenever the framebuffer resources need to be recreated.
|
|
|
|
|
- Fixed: After adding 16 sprite rotations, the player setup menu showed
|
|
|
|
|
the side view instead of the back view.
|
|
|
|
|
|
|
|
|
|
August 20, 2001
|
|
|
|
|
- Fixed: Sprite frames beyond P were always flipped.
|
|
|
|
|
|
|
|
|
|
August 18, 2001
|
|
|
|
|
- Fixed some sizes in Net_SkipCommand()--should elimate some out of sync
|
|
|
|
|
errors.
|
|
|
|
|
- Reimplemented "give weapons" by having it silently spawn each weapon under
|
|
|
|
|
the player and faking a touch so that the player picks it up. Similarly,
|
|
|
|
|
the give command can now be passed actor names and will function like a
|
|
|
|
|
summon that automatically picks up the item spawned.
|
|
|
|
|
- Changed Win32Video::GoFullscreen() and Win32Video::CreateFrameBuffer() so
|
|
|
|
|
that they try harder to allow the game to continue without putting up an
|
|
|
|
|
error. This is not tested very well, because I never had any problems with
|
|
|
|
|
it. Hopefully it will work as desired.
|
|
|
|
|
- Changed DDrawFB::Update() and DDrawFB::Unlock() so that calling Update() when
|
|
|
|
|
the LockCount is greater than 1 no longer bombs out with an error. Instead,
|
|
|
|
|
it sets a flag that tells Unlock() to call Update() the next time LockCount
|
|
|
|
|
would drop from 1 to 0. This allows Update() to be safely used as an Unlock()
|
|
|
|
|
when the image on screen is desired to be updated but it cannot be
|
|
|
|
|
guaranteed that there is only one lock on the surface.
|
|
|
|
|
- Changed R_SetupFrame() to not use floorz and ceilingz to clip viewz, because
|
|
|
|
|
not everything that can be viewed through sets these. (Specifically, moving
|
|
|
|
|
cameras do not touch them, and there's really no reason to bother setting
|
|
|
|
|
them, because they're more for physics than rendering.
|
|
|
|
|
- New: DDrawFB::LockSurf() is not required to successfully lock the frame
|
|
|
|
|
buffer. This should help computers where Alt-Tab did not work before (though
|
|
|
|
|
I cannot test it myself, because I never had problems with it).
|
|
|
|
|
- Remembered why I didn't use DIK_PAUSE as the pause key. DirectInput support
|
|
|
|
|
for the pause key is not universal, so I have to use the standard Windows
|
|
|
|
|
messages to detect it. Moved KEY_PAUSE back to 255, where I had it before.
|
|
|
|
|
- Fixed: Quickload crashed if a game had not previously been quicksaved in the
|
|
|
|
|
same session.
|
|
|
|
|
|
|
|
|
|
August 16, 2001
|
|
|
|
|
- S_StartSound() keeps track of the sound id passed to it before it
|
|
|
|
|
follows links, so now S_GetSoundPlayingInfo() can use that to determine if
|
|
|
|
|
a sound is playing or not without having to resolve links.
|
|
|
|
|
- Changed GrabMouse_Win32() to restrict the pointer to the window's client
|
|
|
|
|
rect and not the window's entire rect so the user can't accidentally click
|
|
|
|
|
buttons in the window's title bar while moving the mouse rapidly.
|
|
|
|
|
- WndProc() now catches WM_MOVE and WM_SIZE messages to better ease
|
|
|
|
|
transitions to/from fullscreen when not using DirectInput.
|
|
|
|
|
- Fixed: The mouse was not being grabbed if DirectInput was selected with
|
|
|
|
|
in_mouse. I just added "NativeMouse = true;" to the beginning of
|
|
|
|
|
I_InitInput() to force I_CheckNativeMouse() to grab the mouse when it
|
|
|
|
|
gets called.
|
|
|
|
|
- Fixed: A_CorpseExplode used the exploding actor as the base for CorpseBit
|
|
|
|
|
frames and not the CorpseBit itself.
|
|
|
|
|
|
|
|
|
|
August 15, 2001
|
|
|
|
|
- Fixed: The wind sound in Hexen played wrong because it used
|
|
|
|
|
S_GetSoundPlayingInfo(), which has no way of following sound links. And now
|
|
|
|
|
that I have random sounds, I can't think of an easy way to make it work with
|
|
|
|
|
those. Fixed it by adding S_IsActorPlayingSomething() and using that
|
|
|
|
|
instead. Changed a few other places that called S_GetSoundPlayingInfo() to
|
|
|
|
|
match.
|
|
|
|
|
- Fixed: Animating flats with an ANIMDEFS lump was broken.
|
|
|
|
|
- Fixed: The values returned by MakeKey() changed with each rebuild because
|
|
|
|
|
I was using the address of get_crc_table() as the CRC table instead of
|
|
|
|
|
actually calling the function to get the CRC table's location. Now klook and
|
|
|
|
|
mlook hash uniquely without any need for twiddling the return value from
|
|
|
|
|
the CRC routine.
|
|
|
|
|
- Changed falling damage so that it can't kill you if you have god mode on.
|
|
|
|
|
- Added the filterstarts mapinfo flag to enable filtering out player starts
|
|
|
|
|
based on skill/gametype.
|
|
|
|
|
- Fixed: Redefining sounds with a random list (whether it had one before or
|
|
|
|
|
not) would cause problems because I was still sorting the S_rnd array--a
|
|
|
|
|
remnant from the time when random lists were found by using binary search
|
|
|
|
|
on S_rnd instead of by following the sound's link field.
|
|
|
|
|
- Added the sv_ihatesounds cvar for people who think they should be able
|
|
|
|
|
to shut up the BFG by landing on the ground. It forces all sounds to
|
|
|
|
|
use channel 1 instead of their preferred channel.
|
|
|
|
|
- Changed crushing ceilings to not restart their sound sequences each time
|
|
|
|
|
they reach the top or bottom of their path.
|
|
|
|
|
- Added a tag argument to S_StopSoundID() so that it only stops sounds in
|
|
|
|
|
a certain group. For my purposes, a group is currently defined as "any
|
|
|
|
|
sectors with the same tag." Actors do not utilise sound groups.
|
|
|
|
|
- Removed S_CheckSound().
|
|
|
|
|
- Added entries to DOOMX and HERETICX to make mirrors and slopes possible
|
|
|
|
|
without using the Hexen map format. Also added some of EDGE's default
|
|
|
|
|
linetypes for scrolling, translucency, and 2-unit floor raising.
|
|
|
|
|
|
|
|
|
|
August 12, 2001
|
|
|
|
|
- Changed the algorithm in W_LumpNameHash() and MakeKey() to a CRC32
|
|
|
|
|
algorithm because it hashes better. The only problem was that using a CRC,
|
|
|
|
|
klook and mlook both have the same CRC value, so I had to twiddle MakeKey
|
|
|
|
|
a little to give them unique keys.
|
|
|
|
|
|
|
|
|
|
August 11, 2001
|
|
|
|
|
- Added support for sprite frames with 16 rotations ala EDGE. The assignment
|
|
|
|
|
of rotations is the same as for EDGE: 1,9,2,A,3,B,4,C,5,D,6,E,7,F,8,G.
|
|
|
|
|
- Changed the music streamers to use FSOUND_Stream_Play3DAttrib because of a
|
|
|
|
|
report that they were actually being positioned with snd_3d true. I can't
|
|
|
|
|
use snd_3d under NT, where I do most of my development, so I don't know if
|
|
|
|
|
it made a difference or not.
|
|
|
|
|
- Fixed music recognition so that wave files can be played as music.
|
|
|
|
|
- Fudged about with slope handling in AActor::RunThink and P_CheckSlopeWalk
|
|
|
|
|
in an effort to let the player walk on some steep slopes that are not very
|
|
|
|
|
far off the surrounding ground. It is a big hack. I do not like it.
|
|
|
|
|
|
|
|
|
|
August 10, 2001
|
|
|
|
|
- Fixed drawing of rotated, scaled, and sloped flats.
|
|
|
|
|
- Fixed: PCD_PRINTNUMBER did not update the stack pointer.
|
|
|
|
|
|
|
|
|
|
August 8, 2001
|
|
|
|
|
- Fixed drawing of scaled and sloped flats.
|
|
|
|
|
- Restored the default radius and height for AInvisibleBridge, since it can no
|
|
|
|
|
longer inherit them from ABridge (which sets them at game start time).
|
|
|
|
|
|
|
|
|
|
August 4, 2001
|
|
|
|
|
- The alwaysfake modification for R_FakeFlat() did not work as intended, so I
|
|
|
|
|
removed it. The changes Lee Killough made for MBF seem to be good enough.
|
|
|
|
|
- Added new Thing_Destroy semantics: a tid of 0 will kill all monsters in the
|
|
|
|
|
level, just like the massacre cheat.
|
|
|
|
|
- Changed the friendly fire check in P_DamageMobj from (target != source) to
|
|
|
|
|
(target->player != source->player). This is just so that voodoo doll damage
|
|
|
|
|
cannot be reduced by turning on teamplay and changing teamdamage.
|
|
|
|
|
|
|
|
|
|
August 2, 2001
|
|
|
|
|
- Fixed: Items were respawning at the location where they were picked up when
|
|
|
|
|
they should have respawned where the level author placed them on the map.
|
|
|
|
|
- Changed the criteria for executing thing death specials from MF_COUNTKILL to
|
|
|
|
|
!MF_SPECIAL. Now you can give a barrel a special, and it will be executed when
|
|
|
|
|
the barrel is destroyed.
|
|
|
|
|
- Added the print command to print a string from the string table.
|
|
|
|
|
- Added the contributed Italian translation.
|
|
|
|
|
- Fixed: OB_UNDEAD said "revevant" instead of "revenant".
|
|
|
|
|
- Added names for all the new keys I found when looking at the dinput.h from
|
|
|
|
|
the DX8 SDK.
|
|
|
|
|
- Fixed: Bindings for kp= would not save in the ini file properly.
|
|
|
|
|
- Added rebind command to change the binding of the key that activated it.
|
|
|
|
|
This is intended to allow the creation of generic sequential aliases. (That
|
|
|
|
|
is, a series of aliases that do something, then bind a key to the next alias
|
|
|
|
|
in the sequence.) Like this:
|
|
|
|
|
alias dumb1 "echo one; rebind dumb2"
|
|
|
|
|
alias dumb2 "echo two; rebind dumb1"
|
|
|
|
|
|
|
|
|
|
July 26, 2001
|
|
|
|
|
- Fixed the TMulScale<x> definitions for GCC.
|
|
|
|
|
|
|
|
|
|
July 25, 2001
|
|
|
|
|
- In I_InitSound(), A3D is no longer the default if snd_3d is true.
|
|
|
|
|
- Moved s_sfxvolume, s_midivolume, and s_musicvolume into their appropriate
|
|
|
|
|
i_* files and integrated them with the functions they called. Also made
|
|
|
|
|
their ranges uniform at [0.0,1.0].
|
|
|
|
|
|
|
|
|
|
July 23, 2001
|
|
|
|
|
- Added some more checks to p_setup.cpp to catch bad maps. In this
|
|
|
|
|
case, the checks were added for ma_sincity.wad, which has two one-
|
|
|
|
|
sided linedefs that have -1 as their front sector and will crash if
|
|
|
|
|
you look at them.
|
|
|
|
|
|
|
|
|
|
June 8, 2001
|
|
|
|
|
- Fixed: Single files added with -file were recorded with their lump
|
|
|
|
|
names instead of the file names so if they got closed, they could
|
|
|
|
|
not be reopened.
|
|
|
|
|
|
|
|
|
|
June 3, 2001
|
|
|
|
|
- Finished TiMidity++ support for the Win32 version. It has two modes
|
|
|
|
|
of operations: 1) Just play as normal. This only works if the sound
|
|
|
|
|
card can play multiple wave streams at a time. 2) The default, have
|
|
|
|
|
TiMidity output wave data through a pipe and use that to fill an
|
|
|
|
|
FMOD stream. This will work with all sound cards and offers a little
|
|
|
|
|
more control over the output. The only problem I could not figure out
|
|
|
|
|
how to solve was how to make TiMidity quit (safely) when ZDoom wants
|
|
|
|
|
it to without modifying TiMidity. The solution I ended up using was to
|
|
|
|
|
have TiMidity start a thread that waits on a special named event and
|
|
|
|
|
calls exit when the event becomes signalled.
|
|
|
|
|
Ironically, the whole purpose of being able to use TiMidity for music
|
|
|
|
|
was that it could provide better music support under Linux, yet the
|
|
|
|
|
Linux side of things has not even been done yet. When I do write it, it
|
|
|
|
|
should work fine with an unmodified TiMidity.
|
|
|
|
|
|
|
|
|
|
June 1, 2001
|
|
|
|
|
- Put back the "<type> operator *()" members of the different cvar
|
|
|
|
|
classes because VC++ always uses a bitwise copy when passing a class
|
|
|
|
|
to a varargs function EVEN IF THE COPY CONSTRUCTOR IS DEFINED. This
|
|
|
|
|
means that something like printf ("%d", dmflags); will actually copy
|
|
|
|
|
dmflags to the stack instead of just dmflag's value. To make it work
|
|
|
|
|
as expected, you need to use printf ("%d", (int)dmflags);. Since
|
|
|
|
|
printf ("%d", *dmflags); is more compact, I decided operator * is
|
|
|
|
|
useful after all.
|
|
|
|
|
I just hope the timidity cvars are the only ones I used with printf
|
|
|
|
|
style functions. I did not see any others when I scanned the source,
|
|
|
|
|
but that doesn't mean I didn't miss any. :-(
|
|
|
|
|
- Changed the name of the variable passed to cvar callbacks from "var"
|
|
|
|
|
to "self" to make its use more obvious.
|
|
|
|
|
- Changed the "<type> operator *()" of the different cvar types to
|
|
|
|
|
"operator <type> ()" so that fetching a cvar's value looks just like
|
|
|
|
|
fetching any other variable's value.
|
|
|
|
|
|
|
|
|
|
May 30, 2001
|
|
|
|
|
- Added snd_midiprecache cvar so that people without GUSes can turn off
|
|
|
|
|
the precaching.
|
|
|
|
|
- Fixed: snd_surround was ignored.
|
|
|
|
|
- Fixed: snd_reset turned off MIDI.
|
|
|
|
|
- Added assembly routines for the different r_detail settings.
|
|
|
|
|
|
|
|
|
|
May 28, 2001
|
|
|
|
|
- Fixed: LEVEL_SPECOPENDOOR opened the door at a speed of 8*TICRATE instead
|
|
|
|
|
of 8*FRACUNIT, about 1872 times slower than it should have been.
|
|
|
|
|
|
|
|
|
|
May 26, 2001
|
|
|
|
|
- Fixed the positioning of y-doubled view windows and changed the x-doubling
|
|
|
|
|
so that it works with the optimized column drawer and does not need the
|
|
|
|
|
columnofs table.
|
|
|
|
|
- Fixed: M_FindResponseFile had a poor parser that considered lots of things
|
|
|
|
|
to be white space that weren't and did not treat quotes specially. Now it
|
|
|
|
|
uses essentially the same parser as the console.
|
|
|
|
|
- Fixed Heretic/Hexen wind specials so that they can apply even when an
|
|
|
|
|
actor's current velocity is 0.
|
|
|
|
|
- Added MF3_NOBLOCKMONST flag to indicate which things can cross
|
|
|
|
|
ML_BLOCKMONSTERS lines (because this is a better way than writing a
|
|
|
|
|
special case for Heretic's APod).
|
|
|
|
|
- Removed MaxSpecialCross, since it isn't needed anymore.
|
|
|
|
|
|
|
|
|
|
May 25, 2001
|
|
|
|
|
- Fixed: ATreeDestructible's default list was missing the mass property.
|
|
|
|
|
- Added Hexen's falling damage code and made the two types of falling damage
|
|
|
|
|
(ZDoom or Hexen) selectable from the level and dmflags. The dmflags falling
|
|
|
|
|
damage selector can now be used to enable falling damage but not to disable
|
|
|
|
|
it to avoid cheating in levels meant to be played with falling damage.
|
|
|
|
|
- Added a new dmflag (sv_nopassover) to make thing z-checking work as it
|
|
|
|
|
did in Doom (that is, not at all, except for missiles).
|
|
|
|
|
- Fixed: Chat macros did not work because Windows sends WM_SYSCHAR instead of
|
|
|
|
|
WM_CHAR when ALT is held down.
|
|
|
|
|
|
|
|
|
|
May 14, 2001
|
|
|
|
|
- Added decal groups and generators to DECALDEF.
|
|
|
|
|
- Fixed potential crash when defining decals with SpawnIDs.
|
|
|
|
|
|
|
|
|
|
May 3, 2001
|
|
|
|
|
- Added lightning scripts, which get executed whenever lightning strikes in
|
|
|
|
|
a level.
|
|
|
|
|
- Added the OutdoorLightning sector special (197) so that skyboxes can
|
|
|
|
|
flash outdoor (as opposed to indoor) lightning without fancy scripts.
|
|
|
|
|
|
|
|
|
|
May 2, 2001
|
|
|
|
|
- Fixed: When teleporting in a non-hub environment, the level's snapshot
|
|
|
|
|
would stay around if the player had saved while in it. This was especially
|
|
|
|
|
obvious if the player was moving to the same map he just left.
|
|
|
|
|
- Enabled key repeating in the menus.
|
|
|
|
|
- Added Hexen's lightning and fixed a bug in Hexen's code: It is not safe
|
|
|
|
|
to assume that the number of sectors that lightning can apply to will
|
|
|
|
|
remain constant through the level (thanks to ACS).
|
|
|
|
|
|
|
|
|
|
May 1, 20001
|
|
|
|
|
- Fixed: The SkyBox member of sector_t was not serialized.
|
|
|
|
|
|
|
|
|
|
April 26, 2001
|
|
|
|
|
- Fixed: When loading savegames, bobbing actors would have semi-random
|
|
|
|
|
heights because they get loaded in a different memory address than they
|
|
|
|
|
were saved at. The actor's address is used to determine its phase shift
|
|
|
|
|
compared to other bobbing actors, so when the actor was restored there
|
|
|
|
|
was no way to restore the original cycle. The solution is to take out the
|
|
|
|
|
bob offset before saving and add it back in when restoring.
|
|
|
|
|
- Added some DrawChar functions to DCanvas.
|
|
|
|
|
- Fixed DCanvas::StringWidth() for high ASCII characters.
|
|
|
|
|
- Changed the arrangement of codes in ESpecialGUIKeys to document the
|
|
|
|
|
standard ASCII codes in the range [1,31].
|
|
|
|
|
- Changed text color escape character from 0x81 to 0x1c, because 0x81 is a
|
|
|
|
|
printable character (though most Windows fonts seem to leave it undefined).
|
|
|
|
|
- Added support for WM_CHAR messages (they get fired off as EV_GUI_Char), so
|
|
|
|
|
now you can do all the standard Windows text manipulation stuff when typing
|
|
|
|
|
text at the console or elsewhere.
|
|
|
|
|
- Fixed: Decals were being saved to savegames but were not restored properly.
|
|
|
|
|
I think this was also causing crash problems after loading savegames.
|
|
|
|
|
- Changed mouse pointer hiding to change the cursor to an invisible cursor
|
|
|
|
|
instead of changing its visibility. This is to ensure that it works
|
|
|
|
|
correctly all the time instead of just most of the time.
|
|
|
|
|
- Removed testing for WM_ACTIVATE in the window procedure. Looking for
|
|
|
|
|
input focus is what we really want to do where the window's active status
|
|
|
|
|
was being checked.
|
|
|
|
|
- Got rid of I_Pause/ResumeMouse() and let the code in i_input.cpp decide
|
|
|
|
|
whether or not the pointer should be visible.
|
|
|
|
|
|
|
|
|
|
April 25, 2001
|
|
|
|
|
- Changed action command handling so that multiple keys bound to the same
|
|
|
|
|
action can coexist peacefully. That is, if you are pressing two keys bound
|
|
|
|
|
to the same action and release one of them, the action will still persist
|
|
|
|
|
until the second key is also released. This is like Quake.
|
|
|
|
|
- Added a check for key bindings to check if a binding contains the substring
|
|
|
|
|
"bind". Only if it does is the binding copied before being executed.
|
|
|
|
|
Previously, the command was always copied, even if it was unneccessary.
|
|
|
|
|
- Changed C_DoCommand()'s argument to a const char *.
|
|
|
|
|
|
|
|
|
|
April 24, 2001
|
|
|
|
|
- Changed command line handling for console commands so that argv and argc
|
|
|
|
|
are not calculated until the first time they are needed.
|
|
|
|
|
|
|
|
|
|
April 23, 2001
|
|
|
|
|
- Added shuffle parameter to playlist command.
|
|
|
|
|
|
|
|
|
|
April 22, 2001
|
|
|
|
|
- Added playlistprev and playlistnext commands.
|
|
|
|
|
- Pressing F1 at the save/load menu replaces the comment with the actual
|
|
|
|
|
file name of the savegame.
|
|
|
|
|
- Added GK_ entries for the function keys.
|
|
|
|
|
- Fixed: Quicksaving without saving/loading first crashed.
|
|
|
|
|
- Added reverse tab-completion to the console, when pressing Shift-Tab.
|
|
|
|
|
|
|
|
|
|
April 21, 2001
|
|
|
|
|
- Fixed: P_GiveAmmo() did not check userinfo.neverswitch before setting the
|
|
|
|
|
pendingweapon.
|
|
|
|
|
- Got rid of P_GiveWeapon() and moved its functionality into AWeapon::
|
|
|
|
|
TryPickup() and added some more AWeapon member functions just so that
|
|
|
|
|
picking up a weapon with sv_weaponstay true will produce all the standard
|
|
|
|
|
pickup feedback. This breaks the "give weapons" cheat, but you can still
|
|
|
|
|
summon them, so how bad is that really?
|
|
|
|
|
- Changed P_GroupLines() to warn about lines that lack frontsectors instead of
|
|
|
|
|
crashing.
|
|
|
|
|
|
|
|
|
|
April 20, 2001
|
|
|
|
|
- Fixed: In Heretic and Hexen, things are supposed to gib at negative half
|
|
|
|
|
their original health.
|
|
|
|
|
|
|
|
|
|
April 17, 2001
|
|
|
|
|
- Fixed: It was possible to stand at the very edge of a steep slope and not
|
|
|
|
|
fall off of it. It is still possible to "balance" by running away from the
|
|
|
|
|
edge, but I think that will take more time to fix than it's work (especially
|
|
|
|
|
if I really do go ahead and rewrite the level geometry collision detection.)
|
|
|
|
|
- Added in-air friction that depends on aircontrol: The greater aircontrol is,
|
|
|
|
|
the more friction affects things. Only affects players.
|
|
|
|
|
- Made level gravity and aircontrol accessible through MAPINFO as well as ACS.
|
|
|
|
|
- Disabled migration of zdoom.cfg. Perhaps it is better to make a clean break
|
|
|
|
|
from the old format than to try and import it if zdoom.ini is not found.
|
|
|
|
|
- Fixed: When the status bar face graphic changed and the status bar was
|
|
|
|
|
scaled, only the area enclosing the new graphic was updated to the screen.
|
|
|
|
|
It should update the entire face box.
|
|
|
|
|
- Fixed: When a dehacked/bex patch changed a level's name, the change was not
|
|
|
|
|
reflected in the level infos, so it did not actually become visible.
|
|
|
|
|
|
|
|
|
|
April 14, 2001
|
|
|
|
|
- Modified S_LookupPlayerSound() to detect player sounds which were defined
|
|
|
|
|
but did not have any valid lumps and automatically try again using male.
|
|
|
|
|
- Added storesavepic cvar.
|
|
|
|
|
- Added sorting to the savegame menus.
|
|
|
|
|
- Finally tested the savegame menus to make sure that they work with more
|
|
|
|
|
save games than are visible and discovered that they didn't, so I fixed
|
|
|
|
|
them so they do work.
|
|
|
|
|
- DCanvas::StringWidth() now knows about '\n' characters and returns the
|
|
|
|
|
length of the longest line.
|
|
|
|
|
- Changed the savegame menus to display games saved with an incompatible
|
|
|
|
|
ZDoom version so that the user has a more convenient means of deleting them
|
|
|
|
|
than by opening the savegames in a hex editor to find out which version each
|
|
|
|
|
one was saved with.
|
|
|
|
|
- Added "name" support to archives. Basically, names are just managed strings
|
|
|
|
|
that allow duplicates to be stored by index instead of duplicating the
|
|
|
|
|
string.
|
|
|
|
|
|
|
|
|
|
April 13, 2001
|
|
|
|
|
- Fixed: Particles were rendered as if they were being drawn to the main
|
|
|
|
|
frame buffer, even when they weren't.
|
|
|
|
|
- Fixed: After deleting the last save game, the menu would think you still
|
|
|
|
|
had a game selected and crashed if you tried to delete again.
|
|
|
|
|
- Discovered the problem with some of Tei Tenga's cameras: They have invalid
|
|
|
|
|
heights that put them above/below the sector. Copied the viewz clamping
|
|
|
|
|
from P_CalcHeight() into R_SetupFrame() to compensate. I don't know why
|
|
|
|
|
they worked in earlier versions.
|
|
|
|
|
- Moved zvox.wad loading to happen after loading the IWAD. There are certain
|
|
|
|
|
places where the IWAD is assumed to be the second wad loaded.
|
|
|
|
|
|
|
|
|
|
April 12, 2001
|
|
|
|
|
- Added a new game menu for Hexen that explains you cannot start Hexen from
|
|
|
|
|
a menu yet.
|
|
|
|
|
- Made the names stored in DEHSUPP case-insensitive.
|
|
|
|
|
- Fixed: R_RenderViewToCanvas() did not lower the Heretic weapons to the
|
|
|
|
|
bottom of the rendered area.
|
|
|
|
|
- Fixed positioning of the save/load menu titles and the save game cursor
|
|
|
|
|
at high resolutions.
|
|
|
|
|
- Fixed: Many ammo types were derived from AInventory and not AAmmo, so
|
|
|
|
|
they did not play the dedicated ammo-pickup sound.
|
|
|
|
|
- Fixed AAmbientSound::Activate() to check that the ambient sound assigned
|
|
|
|
|
to it actually exists. If not, it destroys itself.
|
|
|
|
|
- Changed doomtype.h to use the ANSI <limits.h> instead of defining its
|
|
|
|
|
own limits.
|
|
|
|
|
|
|
|
|
|
April 10, 2001
|
|
|
|
|
- Fixed: FindNextFileA() returns 0 on failure, which is the opposite of
|
|
|
|
|
_findnext(), and I did not realise that when I changed I_FindNext()
|
|
|
|
|
to use the Win32 API function.
|
|
|
|
|
|
|
|
|
|
April 9, 2001
|
|
|
|
|
- Made some code changes to allow for compilation with GCC again
|
|
|
|
|
(specifically, Cygwin's GCC). Fixed a few latent bugs in the process,
|
|
|
|
|
thanks to GCC's more stringent default warnings.
|
|
|
|
|
- Fixed: FHelperThread must have a virtual destructor, which might
|
|
|
|
|
explain why I was having so much trouble with it before.
|
|
|
|
|
|
|
|
|
|
April 7, 2001
|
|
|
|
|
- Added r_drawtrans cvar to allow disabling the drawing of translucent
|
|
|
|
|
things.
|
|
|
|
|
- Fixed: The stretched Doom status bar would not properly clear away the
|
|
|
|
|
big ammo count when switching to a weapon that does not use ammo.
|
|
|
|
|
- Fixed: At certain screen heights, scaled status bars would not touch the
|
|
|
|
|
bottom of the screen because of inaccuracy in the calculation of ::ST_Y
|
|
|
|
|
in FBaseStatusBar::SetScaled().
|
|
|
|
|
- Added separate pickup sounds for health, armor, and ammo items.
|
|
|
|
|
- Improved sound link resolution in S_StartSound() so that regular sounds
|
|
|
|
|
can alias player sounds.
|
|
|
|
|
- Reimplemented idmypos in a more useful manner.
|
|
|
|
|
|
|
|
|
|
April 3, 2001
|
|
|
|
|
- Fixed: DLevelScript::RunScript() sets TeleportSide according to its
|
|
|
|
|
lineSide property instead of assuming that it is already set correctly.
|
|
|
|
|
- Fixed: ASectorAction::CheckTrigger() should set TeleportSide to 0 so that
|
|
|
|
|
teleports always work.
|
|
|
|
|
|
|
|
|
|
March 29, 2001
|
|
|
|
|
- Added language cvar.
|
|
|
|
|
- Fixed: Float bobbing objects would warp to the floor when on a rising
|
|
|
|
|
platform.
|
|
|
|
|
- Fixed: "Torque" should not be applied to float bob objects. (Hexen MAP11
|
|
|
|
|
is a good example of why not.)
|
|
|
|
|
- Fixed: Spree messages should only be shown in deathmatch.
|
|
|
|
|
- Changed sound effect loading to try the sound as DMX format first instead
|
|
|
|
|
of last. (FMOD was recognizing CHICPK2 in heretic.wad as some compressed
|
|
|
|
|
format.)
|
|
|
|
|
- Made skins work with the new player sound system.
|
|
|
|
|
|
|
|
|
|
March 28, 2001
|
|
|
|
|
- Changed player sounds to exist separately from the main sound list (sort
|
|
|
|
|
of). The generic player sounds (e.g. "*death") now exist as actual sound
|
|
|
|
|
entries, but they only serve as a context for getting an index into a
|
|
|
|
|
separate list of class/gender specific sounds which index back into the
|
|
|
|
|
main sound list and provide the actual sound to play. This also reduces
|
|
|
|
|
the total number of sounds that need to be registered. Several new SNDINFO
|
|
|
|
|
commands were introduced to support this.
|
|
|
|
|
- Fixed: When the tomed phoenix rod ran out of flame, the weapon disappeared.
|
|
|
|
|
- Fixed: Intensity calculations in InitPalette() could overflow and cause
|
|
|
|
|
the invulnerability colormap to be wrong.
|
|
|
|
|
|
|
|
|
|
March 27, 2001
|
|
|
|
|
- Made the Ambients array in s_advsound.cpp a list of pointers to
|
|
|
|
|
AmbientSounds instead of a container of AmbientSounds, since the array is
|
|
|
|
|
usually nowhere near full and just wasting memory.
|
|
|
|
|
|
|
|
|
|
March 26, 2001
|
|
|
|
|
- Fixed: Using sound names in a dehacked Thing section works again.
|
|
|
|
|
- Enhanced the soundlist command to show links and random lists.
|
|
|
|
|
- Added an overloaded Printf() that does not take a print level, but just
|
|
|
|
|
prints at PRINT_HIGH.
|
|
|
|
|
- Added the $random SNDINFO command.
|
|
|
|
|
- Moved the template functions into templates.h and added the BinarySearch
|
|
|
|
|
template function.
|
|
|
|
|
- Fixed: The spectre had sounds defined in SNDINFO, but its defaults didn't
|
|
|
|
|
specify any sounds, so it used the demon's sounds instead.
|
|
|
|
|
- Implemented a suggestion from the message board to A_VileChase so that
|
|
|
|
|
negative speed archviles do not run away from corpses.
|
|
|
|
|
|
|
|
|
|
March 24, 2001
|
|
|
|
|
- Fixed: Monsters following a patrol path would not have their reactiontime
|
|
|
|
|
reset to 0 if they heard a player before seeing her.
|
|
|
|
|
- Fixed: Picking up a thing by walking over it would remove it from the
|
|
|
|
|
blocklist and make it possible to walk into another thing near it, because
|
|
|
|
|
the P_BlockThingsIterator would not find anymore actors in that block for
|
|
|
|
|
that call.
|
|
|
|
|
- Tried making DThinker::Delete() private so as to enforce the "use Destroy
|
|
|
|
|
with thinkers" rule, but it didn't work. If the object's constructor can
|
|
|
|
|
throw an exception, the caller of new needs to be able to call delete in
|
|
|
|
|
order to remove the partially constructed object. However, I did change
|
|
|
|
|
the definition of DECLARE_STATELESS_ACTOR so that all actors have nothrow
|
|
|
|
|
constructors (since they're not allowed to use a constructor), which should
|
|
|
|
|
help reduce the size of a lot of the CreateObject()s.
|
|
|
|
|
- Split the Thinkers list into two in order to guarantee that every thinker
|
|
|
|
|
will have a chance to think during the same tic when it is created.
|
|
|
|
|
- Fixed: A thinker that destroyed itself in PostBeginPlay() would block the
|
|
|
|
|
ticks for all actors after it for that game tic.
|
|
|
|
|
|
|
|
|
|
March 23, 2001
|
|
|
|
|
- Fixed: Float bobbing was not properly centered around the object's "ideal"
|
|
|
|
|
height.
|
|
|
|
|
- Added A_SPosAttackUseAtkSound(). This is the same as A_SPosAttack(), except
|
|
|
|
|
it plays the actor's attack sound instead of being hardcoded to play
|
|
|
|
|
"shotguy/attack". Now changing spider/attack in SNDINFO can have an effect.
|
|
|
|
|
|
|
|
|
|
March 22, 2001
|
|
|
|
|
- Wrote a fully-functional gccinlines.h compatible with GCC 2.95.
|
|
|
|
|
|
|
|
|
|
March 20, 2001
|
|
|
|
|
- Undid: When I made float bobbing work for variable heights, I started
|
|
|
|
|
clamping bobbing objects to the floor/ceiling. Heretic and Hexen do not do
|
|
|
|
|
this, so I stopped clamping them.
|
|
|
|
|
- Fixed: P_BloodSplatter() should only be called for Raven's games, not Doom.
|
|
|
|
|
- Changed sound ID 0 to mean "no sound" instead of -1.
|
|
|
|
|
- Changed actor default sounds from strings to IDs so that I don't have to
|
|
|
|
|
worry about tracking a bunch of pointers when loading/saving games, because
|
|
|
|
|
this information gets saved out now.
|
|
|
|
|
- Fixed: Midtextures on two-sided lines are not drawn if they pass too close
|
|
|
|
|
to the player. What is considered "too close" was determined empirically.
|
|
|
|
|
- Fixed typo: Wizard's spawnhealth should be 180, not 100.
|
|
|
|
|
- Turned off monsters killing other monsters when the player is dead and
|
|
|
|
|
the game is Doom.
|
|
|
|
|
- Added global ACS variables. These are like world variables, except they
|
|
|
|
|
do not get cleared when moving to a new hub.
|
|
|
|
|
- Reduced the ACS stack size from 200 to 64.
|
|
|
|
|
|
|
|
|
|
March 19, 2001
|
|
|
|
|
- Added a list of needed wads to savegames.
|
|
|
|
|
- Moved the SAVESTRINGSIZE definition into version.h so that I can be
|
|
|
|
|
sure all the files that use it use the same value. One file had it
|
|
|
|
|
at 32, and the rest used 24, which was causing crashes when switching
|
|
|
|
|
levels after saving a game.
|
|
|
|
|
- Fixed a Doom bug: If a boss eye tried to shoot a cube at a boss target
|
|
|
|
|
with the same y-coordinate as itself, the game would crash with a divide
|
|
|
|
|
by 0 because only the difference in y-coordinates was used to determine
|
|
|
|
|
how long it would take for the cube to reach the target.
|
|
|
|
|
|
|
|
|
|
March 17, 2001
|
|
|
|
|
- Rewrote the save and load menus to support the new savegame features and
|
|
|
|
|
to also support far more files than before.
|
|
|
|
|
- Fixed: The patch drawers in v_draw.cpp crashed with patches that had
|
|
|
|
|
useless 0-length posts.
|
|
|
|
|
- Fixed: Sound sequence SS_CMD_END was being generated wrong.
|
|
|
|
|
- Fixed: Sound sequences with no current sound were archived wrong.
|
|
|
|
|
|
|
|
|
|
March 16, 2001
|
|
|
|
|
- Added screenshots to save games, ala all the Build games I've played.
|
|
|
|
|
Also added comments that currently just indicate the time when the game
|
|
|
|
|
was saved.
|
|
|
|
|
- Added R_RenderViewToCanvas() and rearranged r_main.cpp a little to
|
|
|
|
|
accomodate it.
|
|
|
|
|
|
|
|
|
|
March 15, 2001
|
|
|
|
|
- Added page up/down support for long options menus (i.e. controls menu).
|
|
|
|
|
- Changed console paging keys: Ctrl-Home and Ctrl-End now move to top/bottom
|
|
|
|
|
of console buffer, and Shift-PageUp and Shift-PageDown move up/down by
|
|
|
|
|
pages.
|
|
|
|
|
- Fixed: Trace() picked PT_ADDTHINGS based on ActorMask instead of actorMask.
|
|
|
|
|
The most obvious consequence of this was that hitscan weapons worked
|
|
|
|
|
sporadicly with the chasecam on.
|
|
|
|
|
- Fixed: Backpack was only giving one of each ammo type instead of one clip
|
|
|
|
|
of each ammo type.
|
|
|
|
|
|
|
|
|
|
March 14, 2001
|
|
|
|
|
- Added MBF "torque" to fix "The items that the monsters drop when they die
|
|
|
|
|
sometimes float in the air (happens very often when the monsters die in
|
|
|
|
|
stairs)." Although it does fix this, I think it looks goofy to see ammo
|
|
|
|
|
clips go careening down the stairs at the beginning of MAP01. The better
|
|
|
|
|
solution to this particular situation would probably be to adjust the
|
|
|
|
|
pickupable items' radii to accurately reflect their physical sizes, but
|
|
|
|
|
I fear that might make them harder to grab. Maybe if they were noclip?
|
|
|
|
|
- Fixed dumpmapthings command.
|
|
|
|
|
- Space tuning: Shrank FState from 28 to 16 bytes.
|
|
|
|
|
- Fixed spree and multikill messages to correctly display the killer.
|
|
|
|
|
- Fixed DPusher::ChangeValues() to properly convert from byte angles to
|
|
|
|
|
fineangles.
|
|
|
|
|
- Added PROP_STATE_BASE to AMaceFX3's defaults, so that it gets the right
|
|
|
|
|
death state.
|
|
|
|
|
|
|
|
|
|
March 11, 2001
|
|
|
|
|
- Changed bex string section handling to simulate old death messages
|
|
|
|
|
(without %o and %k).
|
|
|
|
|
- Added support for international characters to the FFont class and also
|
|
|
|
|
added some corresponding characters to zdoom.wad.
|
|
|
|
|
- Changed Heretic/Hexen font loading to use name plates like Doom fonts
|
|
|
|
|
instead of FONTA/FONTB markers, because templates allow for gaps in the
|
|
|
|
|
character set.
|
|
|
|
|
- Tweaked string loading so that variant-neutral strings are loaded before
|
|
|
|
|
loading strings from any variant of the specified language.
|
|
|
|
|
- Toned down the alpha on BFG and plasma projectiles.
|
|
|
|
|
- Changed rocket explosions back to STYLE_Translucent.
|
|
|
|
|
- Fixed ADEF_SkipSuper handling, though I wonder if it wouldn't be better
|
|
|
|
|
to rework the situations that use it, so it isn't needed at all.
|
|
|
|
|
- Fixed: Music for Doom 1 was wrong.
|
|
|
|
|
- Fixed: The cast finale was messed up.
|
|
|
|
|
- Fixed: The new actor members were not being serialized.
|
|
|
|
|
- Fixed: None of the new actor fields were being serialized.
|
|
|
|
|
- Fixed: The FState * serializer did not use TAutoSegIterator.
|
|
|
|
|
- Fixed: Dehacked monsters could be really slow, because monsters speeds
|
|
|
|
|
are now fixed point but weren't before.
|
|
|
|
|
- Fixed: M_QuitDOOM() was not getting DOSY through GStrings.
|
|
|
|
|
- Fixed: Stringlist did not write out enough information in the name table,
|
|
|
|
|
so FStringTable could not figure out which index belonged to which name.
|
|
|
|
|
- Fixed: String names were not loaded before using a bex string section.
|
|
|
|
|
|
|
|
|
|
March 9, 2001
|
|
|
|
|
- Added PCD_SETTHINGSPECIAL and its analagous Skull Tag special,
|
|
|
|
|
Thing_SetSpecial.
|
|
|
|
|
- Added obituary messages for the Heretic monsters.
|
|
|
|
|
- Added %o and %k substitutions for obituaries, ala Unreal.
|
|
|
|
|
- Fixed: Player obituaries were not being displayed unless it was a player
|
|
|
|
|
who did the killing.
|
|
|
|
|
- Extended SexMessage() to handle %o and %k.
|
|
|
|
|
- Fixed: tmfloorsector was being calculated wrong, which could cause
|
|
|
|
|
problems moving around in slopy areas.
|
|
|
|
|
- Replaced all the DivScale30() calls in WallMost() to SafeDivScale30().
|
|
|
|
|
|
|
|
|
|
March 8, 2001
|
|
|
|
|
- Wrote support for the string tables into the game, which shrank it 28k
|
|
|
|
|
(but only because the text data got moved into the wad).
|
|
|
|
|
|
|
|
|
|
March 7, 2001
|
|
|
|
|
- Wrote a tool to compile localized string tables.
|
|
|
|
|
|
|
|
|
|
March 5, 2001
|
|
|
|
|
- Fixed: PTR_TraceIterator expected to be able to cross closed sectors. That
|
|
|
|
|
is, when it stepped across a two-sided line, it assumed that the next line
|
|
|
|
|
in sequence would belong to the sector it had stepped into.
|
|
|
|
|
- Fixed: P_SightTraverseIntercepts() needs to set up openbottom and opentop
|
|
|
|
|
before calling PTR_SightTraverse so that the results of P_CheckSight()
|
|
|
|
|
are always defined.
|
|
|
|
|
- Fixed: Using include in bex patches caused the DehSupp data to be freed
|
|
|
|
|
prematurely.
|
|
|
|
|
- Got the code to fully compile again with default lists. The executable is
|
|
|
|
|
only 104k smaller than before (I had hoped for something more dramatic),
|
|
|
|
|
but at least now it only takes one minute to link the release build.
|
|
|
|
|
|
|
|
|
|
February 28, 2001
|
|
|
|
|
- Changed the console command implementation so that new commands do not
|
|
|
|
|
require subclasses (and all the function overhead that goes with them).
|
|
|
|
|
- Finished building default lists for every actor.
|
|
|
|
|
|
|
|
|
|
February 27, 2001
|
|
|
|
|
- Began the tedious process of converting to actor default lists.
|
|
|
|
|
- Simplified the IMPLEMENT_CLASS macros to not require the parent type
|
|
|
|
|
because that information can be derived thanks to the DECLARE_CLASS macros.
|
|
|
|
|
- Removed the distinction between serializable and non-serializable DObjects
|
|
|
|
|
so only objects that do some specific serialization actually need
|
|
|
|
|
Serialize() methods.
|
|
|
|
|
- Fixed: Teleport_EndGame works again.
|
|
|
|
|
- Added WALLF_NOAUTODECALS flag to sidedefs, so certain lines will not
|
|
|
|
|
get impact decals (bullet holes) on them, specifically: scrolling walls.
|
|
|
|
|
- Increased the precision of P_InterceptVectors so that it can handle longer
|
|
|
|
|
lines.
|
|
|
|
|
|
|
|
|
|
February 26, 2001
|
|
|
|
|
- Added limitpainelemental cvar to control whether or not Pain Elementals
|
|
|
|
|
will limit their attacks based on the number of Lost Souls in the level.
|
|
|
|
|
|
|
|
|
|
Feburary 24, 2001
|
|
|
|
|
- Fixed some class serializers that did not call their superfunction.
|
|
|
|
|
|
|
|
|
|
February 23, 2001
|
|
|
|
|
- Changed P_DropItem() so that negative special values will not be stored in
|
|
|
|
|
the item's health field. This is primarily to support exoteric DeHackEd
|
|
|
|
|
patches, as it doesn't matter under normal circumstances.
|
|
|
|
|
|
|
|
|
|
February 22, 2001
|
|
|
|
|
- Removed the ClassInit class, and made TypeInfo constructors register
|
|
|
|
|
themselves, saving around 20k.
|
|
|
|
|
- Fixed: Places that use P_SpawnMissile() and then manipulate the missile
|
|
|
|
|
somehow now check for NULL returns.
|
|
|
|
|
- Fixed: AMovingCamera::Serialize() did not call its superfunction.
|
|
|
|
|
This is an oversight I keep making, so I added some code to DObject and
|
|
|
|
|
FArchive to look for this error.
|
|
|
|
|
|
|
|
|
|
February 20, 2001
|
|
|
|
|
- Fixed: Normal skies did not reflect in mirrors, and sky boxes mostly failed
|
|
|
|
|
to be drawn at all in mirrors.
|
|
|
|
|
|
|
|
|
|
February 19, 2001
|
|
|
|
|
- Added PCD_PUSHBYTES and PCD_PUSHxBYTES p-codes to ACS, since PCD_PUSHBYTE
|
|
|
|
|
was a fairly common sequence.
|
|
|
|
|
|
|
|
|
|
February 17, 2001
|
|
|
|
|
- Made G_DoLoadLevel() remove any existing HUD messages.
|
|
|
|
|
- Made BLOCKMAP lumps optional (sort of--the lump still needs to be there,
|
|
|
|
|
but it can be length 0).
|
|
|
|
|
- Rearranged P_SetupLevel() so that a map's behavior is loaded before
|
|
|
|
|
anything else (in order to make enter scripts work when a map is just
|
|
|
|
|
loaded).
|
|
|
|
|
- Changed I_RegisterSong() to not bother loading a song if -nomusic.
|
|
|
|
|
- Added support for these Skull Tag script types: Death, Enter, and Respawn.
|
|
|
|
|
- Added cl_showsprees and cl_showmultikills cvars.
|
|
|
|
|
- Fixed: A_Look made stealth monsters visible.
|
|
|
|
|
- Fixed: BlurSphere needs to be STYLE_Translucent for the pulse to be
|
|
|
|
|
visible.
|
|
|
|
|
- Fixed: StealthDemon was STYLE_Add instead of STYLE_Translucent.
|
|
|
|
|
- Fixed: Col2RGB8_2 needs to have cover most entries from Col2RGB8, not just
|
|
|
|
|
half of them..
|
|
|
|
|
- Fixed: Net_SkipCommand() was still calculating the length of
|
|
|
|
|
DEM_SINFCHANGED based on the old semantics.
|
|
|
|
|
- Changed startup command processing again. Now, all commands are processed
|
|
|
|
|
at once, but ones considered "not safe" to be executed before everything
|
|
|
|
|
is set up will have their execution delayed.
|
|
|
|
|
|
|
|
|
|
February 15, 2001
|
|
|
|
|
- Changed autoexec.cfg parsing to be similar to command line parsing.
|
|
|
|
|
All sets are run as soon as possible, then other commands are executed
|
|
|
|
|
later after all the subsystems are initialized.
|
|
|
|
|
- Changed BEGIN_CUSTOM_CVAR/END_CUSTOM_CVAR pair to CUSTOM_CVAR.
|
|
|
|
|
- Changed BEGIN_STAT/END_STAT pair to ADD_STAT.
|
|
|
|
|
- Changed BEGIN_COMMAND/END_COMMAND pair to CCMD.
|
|
|
|
|
- Added detection for Windows 2000, so the sound code will default to
|
|
|
|
|
DirectSound under that OS instead of WinMM.
|
|
|
|
|
|
|
|
|
|
February 12, 2001
|
|
|
|
|
- Changed Die for missiles set as shootable so that they explode instead
|
|
|
|
|
of doing a regular death.
|
|
|
|
|
- Changed MF2_FLOATBOB handling to not use health or special1. (So now
|
|
|
|
|
it works with monsters.)
|
|
|
|
|
- Sorted the list of skins for a more user-friendly experience in the
|
|
|
|
|
player setup menu and to make R_FindSkin() faster.
|
|
|
|
|
- Removed all traces of COM_Parse().
|
|
|
|
|
- Added support for ACS scripts that store p-codes and certain other values
|
|
|
|
|
in bytes instead of dwords. This can offer considerable space savings.
|
|
|
|
|
Also tweaked the interpreter to help keep the program counter and stack
|
|
|
|
|
pointer in registers.
|
|
|
|
|
|
|
|
|
|
February 11, 2001
|
|
|
|
|
- Fixed: I_ShutdownMusic() should call S_StopMusic() so that the general
|
|
|
|
|
sound code knows the song no longer exists. Having it free the song itself
|
|
|
|
|
could crash if the game lost and regained focus while quitting.
|
|
|
|
|
|
|
|
|
|
February 8, 2001
|
|
|
|
|
- Added Anubis cheat.
|
|
|
|
|
- Really fixed rotated flats on sloped planes. The previous fix only affected
|
|
|
|
|
floors at certain angles and did nothing for ceilings.
|
|
|
|
|
|
|
|
|
|
February 5, 2001
|
|
|
|
|
- Fixed: FPS meter with vid_fps was always 0.
|
|
|
|
|
- Fixed: Tilted floors/ceilings did not rotate properly.
|
|
|
|
|
- Fixed: Mirrors did not reflect slopes properly.
|
|
|
|
|
- Changed P_ProcessSwitchDef() so that not specifying a game name is the
|
|
|
|
|
same as specifying "any".
|
|
|
|
|
- Fixed: Typo in zdoom.animdefs prevented SW1STRTN/SW2STRTN from switching.
|
|
|
|
|
- Fixed: -iwad did not work with wads that included a path.
|
|
|
|
|
- Tweaked P_TestActivateLine() so that only actual missiles will be promoted
|
|
|
|
|
to activate player cross teleports.
|
|
|
|
|
- Did away with I_SetGUICapture(). It was too prone to error. Now the input
|
|
|
|
|
code checks what kind of events it should generate each time I_StartTic()
|
|
|
|
|
is called.
|
|
|
|
|
- Fixed: "Screenshot" mis-spelled as "screeshot" in controls menu.
|
|
|
|
|
- Fixed: The cursor in the option menus was one pixel too low.
|
|
|
|
|
- Fixed: Standard automap colors were all black if the game was started with
|
|
|
|
|
am_overlay set to true.
|
|
|
|
|
- Fixed a typo in P_CheckKeys() that prevented the yellow skull and cards
|
|
|
|
|
from being equivalent for 3-key doors. While I was at it, I rewrote the
|
|
|
|
|
function, although it's still not what I would consider very readable. :-(
|
|
|
|
|
- Removed cheat-changing Dehacked support.
|
|
|
|
|
- I think I've got the problems with changing a thing's MF_SHADOW bit with
|
|
|
|
|
Dehacked worked out now.
|
|
|
|
|
|
|
|
|
|
February 3, 2001
|
|
|
|
|
- Added "Alpha" and "Render Style" lines to Thing sections of dehacked
|
|
|
|
|
patches.
|
|
|
|
|
- Fixed: Changing a thing's doomednum with dehacked would not update the
|
|
|
|
|
DoomEdMap hash table, so it would have no effect.
|
|
|
|
|
- Fixed: Changing a thing's doomednum also changed its scale.
|
|
|
|
|
- Fixed: Modifying a hanging ceiling thing with dehacked would usually not
|
|
|
|
|
reset the height to its Doom default. (Was using sizeof(OrgHeights)
|
|
|
|
|
instead of NumOrgHeights.)
|
|
|
|
|
- Changed actor's translucency variable to alpha to reflect that it
|
|
|
|
|
controls the alpha value for more than just translucency.
|
|
|
|
|
- Centralized column drawer selection to make adding more render styles
|
|
|
|
|
in the future more convenient. The function is R_SetPatchStyle(). The
|
|
|
|
|
selection of fg2rgb and bg2rgb has also been moved out of the various
|
|
|
|
|
column drawers and into R_SetBlendFunc() so that they can be more
|
|
|
|
|
generalized. What was a translucent column drawer is now blending without
|
|
|
|
|
clamping, and what was an additive column drawer is now blending with
|
|
|
|
|
clamping. Their names have been changed to reflect this.
|
|
|
|
|
- Changed WallMost()'s frac bits back to 30, but now it uses SafeDivScale.
|
|
|
|
|
Now it should never crash there.
|
|
|
|
|
- Fixed: -playdemo did not like to use files in other directories.
|
|
|
|
|
|
|
|
|
|
February 1, 2001
|
|
|
|
|
- Fixed: Particles would not draw properly if a mirror was visible.
|
|
|
|
|
- Fixed: Viewing decals in mirrors could crash because PrepWall() only knew
|
|
|
|
|
about non-mirrored surfaces when it clipped the lwall values.
|
|
|
|
|
- Changed the number of frac bits in WallMost() when clipping a line to 28
|
|
|
|
|
instead of 30 to (better) avoid possible integer overflow.
|
|
|
|
|
- Fixed: Hub travel would hang when visiting a previously visited level.
|
|
|
|
|
- Got rid of linear.nas. It was only there to try and make things better for
|
|
|
|
|
486s, and as I care even less about 486s now, there didn't seem to be much
|
|
|
|
|
point in having it around wasting space in the executable.
|
|
|
|
|
- Removed RF_FORCECENTER renderflag and added a new RenderStyle actor member
|
|
|
|
|
that's used to specify the render style instead of renderflags. Some
|
|
|
|
|
styles are just aliases to other styles based on cvars (r_drawfuzz and
|
|
|
|
|
transsouls), and others are styles that specify drawing. I also added a
|
|
|
|
|
new style: STYLE_Add (additive blending) and made many of the DOOM
|
|
|
|
|
projectiles that I had previously made translucent use it instead.
|
|
|
|
|
|
|
|
|
|
January 30, 2001
|
|
|
|
|
- Fixed xtoviewangle generation in R_InitTextureMapping(). (It was phase
|
|
|
|
|
shifted 90 degrees)
|
|
|
|
|
- Removed R_ScaleFromGlobalAngle(), rw_distance, rw_angle1, and
|
|
|
|
|
rw_normalangle.
|
|
|
|
|
|
|
|
|
|
January 27, 2001
|
|
|
|
|
- Fixed: Things made fuzzy with dehacked appeared no different when
|
|
|
|
|
r_drawfuzz is false, because they also need to have their translucency set.
|
|
|
|
|
- Set the default for vid_bufferarea to 0, because large translucent areas
|
|
|
|
|
suddenly coming into view (such as firing the BFG) can cause a very
|
|
|
|
|
noticeable slowdown. I may take out the support for unbuffered output
|
|
|
|
|
entirely.
|
|
|
|
|
- Fixed: Demons in nightmare mode would end up with 0 tic chase states.
|
|
|
|
|
- Fixed: A_BFGSpray() was using the player's autoaim setting for finding
|
|
|
|
|
things to spray.
|
|
|
|
|
|
|
|
|
|
January 19, 2001
|
|
|
|
|
- Fixed some text prompts (e.g. "Do you want to quit?") so that they properly
|
|
|
|
|
release the input code from GUI mode.
|
|
|
|
|
- Fixed ABossEye::Serialize() and DBrainState::Serialize().
|
|
|
|
|
- Extended Dehacked thing sound replacements so that you can use any sound
|
|
|
|
|
defined in a SNDINFO lump.
|
|
|
|
|
- Fixed Dehacked thing sound replacements -- a 0 sound index means "no sound"
|
|
|
|
|
and should not be treated as an offset into the sound list.
|
|
|
|
|
- Fixed translation table selection in R_ProjectSprite when using flags to
|
|
|
|
|
specify a translation.
|
|
|
|
|
- Fixed HeadsOnAStick to be solid.
|
|
|
|
|
|
|
|
|
|
January 18, 2001
|
|
|
|
|
- Added some invisible bridge things.
|
|
|
|
|
- Fixed the sky around the tunnel in E1M1.
|
|
|
|
|
- Fixed P_DrawSplash2 not centering splashes around their point of origin.
|
|
|
|
|
- Fixed assignment of codepointers in [CODEPTR] sections of bex files.
|
|
|
|
|
|
|
|
|
|
December 24, 2000
|
|
|
|
|
- Added the firstvissprite and firstdrawseg variables so that I can restrict
|
|
|
|
|
the vissprites and drawsegs drawn in skyboxes without changing their base
|
|
|
|
|
pointers, which could move when they get realloced.
|
|
|
|
|
|
|
|
|
|
December 19, 2000
|
|
|
|
|
- Fixed Ceiling_LowerByValue acting like Ceiling_RaiseInstant.
|
|
|
|
|
- Fixed game grabbing the mouse during startup when the IWAD dialog
|
|
|
|
|
is shown.
|
|
|
|
|
- Fixed dmflags not changing in gameplay menu.
|
|
|
|
|
- Fixed standard Doom colors not showing up on automap if the game was
|
|
|
|
|
started with am_usecustomcolors 0.
|
|
|
|
|
- Fixed demons moving very slowly in nightmare mode.
|
|
|
|
|
- Fixed dehacked patches not setting bright frames properly.
|
|
|
|
|
- Fixed dehacked patches that change the player sprite's name.
|
|
|
|
|
- Fixed dehacked patches setting a thing's fuzzy property.
|
|
|
|
|
- Moved lots of supplementary dehacked data into zdoom.wad so that it's
|
|
|
|
|
only in memory when it's needed.
|
|
|
|
|
|
|
|
|
|
December 18, 2000
|
|
|
|
|
- Fixed my sidedefs decompressor so that it works with maps that have
|
|
|
|
|
unused sidedefs. As a consequence of this, the ordering of sidedefs in
|
|
|
|
|
memory may be completely different from their ordering on disk.
|
|
|
|
|
- Fixed P_LoadSectors() to clamp each sector's light to the range [0,255]
|
|
|
|
|
instead of ignoring the high byte stored in the wad.
|
|
|
|
|
- Fixed rendering of shaded decals when the light amp is on.
|
|
|
|
|
- Fixed the generation of the shading tables in R_InitTranslationTables() to
|
|
|
|
|
not create values > 64.
|
|
|
|
|
- Gave spawnids to some things that were missing them.
|
|
|
|
|
- Reduced the default for vid_bufferarea to 6000.
|
|
|
|
|
- Reread the description of the SAL/SAR/SHL/SHR instructions. The OF
|
|
|
|
|
flag is undefined for shifts other than 1--not unchanged. Rewrote
|
|
|
|
|
the stretchers in blocks.nas to correct for this. On my Pentium II,
|
|
|
|
|
the OF flag is left unchanged, so I got the desired result, but
|
|
|
|
|
other processors can change it. :-(
|
|
|
|
|
- Added back triple buffering, because double buffering can be
|
|
|
|
|
(but is not always) significantly slower.
|
|
|
|
|
- Fixed up the sound code for the new FMOD 3.3 API.
|
|
|
|
|
|
|
|
|
|
December 15, 2000
|
|
|
|
|
- Fixed fourth and fifth episodes not appearing in the menu for the
|
|
|
|
|
extended Heretic IWAD.
|
|
|
|
|
- Reorganized DCajunMaster::WhatToGet() so that Reachable() is called
|
|
|
|
|
less often.
|
|
|
|
|
- Fixed multikill messages appearing for everyone and not just whoever
|
|
|
|
|
got it.
|
|
|
|
|
- Divided thinkers into thinking and non-thinking classes. By default,
|
|
|
|
|
a FThinkerIterator will not iterate through non-thinking classes.
|
|
|
|
|
Those must be specified explicitly. Made the decals non-thinking so
|
|
|
|
|
the think code doesn't waste any time on them.
|
|
|
|
|
- Fixed bots not being able to spawn in deathmatch mode if there are
|
|
|
|
|
not enough coop starts.
|
|
|
|
|
- Added support for compressed SIDEDEFS lumps.
|
|
|
|
|
- Made the splash bases MF_NOGRAVITY so that they stay at the surface
|
|
|
|
|
of BOOM deep water instead of sinking into it.
|
|
|
|
|
- Made splashes work as expected in sectors with the BOOM deep water
|
|
|
|
|
effect (and set as a water zone).
|
|
|
|
|
- Fixed positioning of weapon sprite. (Was one pixel too high.)
|
|
|
|
|
- Fixed vertical aiming on railgun being swapped.
|
|
|
|
|
- Fixed SUBCLASS_NS macro in a_doomdecorations.cpp. It was using radius
|
|
|
|
|
as the height.
|
|
|
|
|
|
|
|
|
|
December 14, 2000
|
|
|
|
|
- Fixed lines not being considered for rendering when at least one side
|
|
|
|
|
is sloped but the heights on each side of the line are identical at
|
|
|
|
|
both ends.
|
|
|
|
|
- Fixed physics and rendering of non-horizontal slopes. They were both
|
|
|
|
|
messed up because I had been subtracting b*y in the ZatPoint
|
|
|
|
|
calculations when I should have added it. Clipping the right edge of
|
|
|
|
|
non-horizontal slopes to the screen was also wrong because I was
|
|
|
|
|
subtracting from x instead of y for the y component of the point
|
|
|
|
|
intersecting the screen.
|
|
|
|
|
- Fixed automap being all black when am_usecustomcolors is false.
|
|
|
|
|
- Updated Heretic status bar for unbuffered output.
|
|
|
|
|
- Stopped creating the primary surface as a complex flipping surface so
|
|
|
|
|
that I can set colors 0 and 255 under NT.
|
|
|
|
|
- Made the video code better able to cope with different surface lost
|
|
|
|
|
conditions.
|
|
|
|
|
- Fixed alt-tab killing the program by listening to WM_ACTIVATEAPP and
|
|
|
|
|
forcing buffering (that never gets flushed to the screen) when the app
|
|
|
|
|
goes inactive.
|
|
|
|
|
- Moved the palette change to occur immediately after the page blit.
|
|
|
|
|
- Fixed GUI capture being lost when the demo cycle returns to the title
|
|
|
|
|
screen and the menu is active.
|
|
|
|
|
- Fixed being able to get stuck in the edges of sloped ceilings. In
|
|
|
|
|
PIT_CheckLine(), I was using the actor's current position instead of its
|
|
|
|
|
desired position to calculate the nearest point on the line.
|
|
|
|
|
- Fixed skyboxes so that sprites seen through multiple visplanes are visible
|
|
|
|
|
in all the visplanes and not just the first one.
|
|
|
|
|
- Made a bunch of changes to slope walking to try to make walking along the
|
|
|
|
|
very edge of a slope work better. This included adding a floorsector field
|
|
|
|
|
to AActor that records the sector that the floorz field came from.
|
|
|
|
|
- Changed the nearest point on line calculation in PIT_CheckLine() to use
|
|
|
|
|
floats, because ints aren't large enough for the intermediate calculations.
|
|
|
|
|
- Changed S_StopSoundID() to not stop sounds with the same priority.
|
|
|
|
|
- Fixed normal mace balls so that they fall down after some distance.
|
|
|
|
|
Apparently, in Heretic MF2_LOGRAV has precedence over MF_NOGRAVITY.
|
|
|
|
|
- Fixed sky boxes so they are not lit by extralight.
|
|
|
|
|
|
|
|
|
|
December 13, 2000
|
|
|
|
|
- Fixed image collections not remapping any instances of color 0 in a patch
|
|
|
|
|
to a different color. This was most evident in the multiplayer status bar
|
|
|
|
|
where the background could be seen through the player's eyes and eyebrows.
|
|
|
|
|
- Made normal skies work with animations found in an ANIMDEFS lump.
|
|
|
|
|
- Made screen melts work by forcing them to use buffered output.
|
|
|
|
|
- Reimplemented screenshot command.
|
|
|
|
|
- Changed DCanvas::Dim() to read and write four pixels at a time so that
|
|
|
|
|
the first frame dimmed before buffering is forced only takes about 1/4th
|
|
|
|
|
the time to draw as it would if single pixels were read and written.
|
|
|
|
|
- Made shaded and fuzzy decals count toward transparent area.
|
|
|
|
|
- Fixed not being able to pick up a Megasphere if your armor is already full.
|
|
|
|
|
- Fixed Dehacked patches not being able to clear a frame's fullbright
|
|
|
|
|
property.
|
|
|
|
|
|
|
|
|
|
December 12, 2000
|
|
|
|
|
- Renamed zdoom.cfg to zdoom.ini so that old versions can coexist in the
|
|
|
|
|
same directory as this one with less hassle.
|
|
|
|
|
- Reimplemented decals.
|
|
|
|
|
- Changed the player setup menu to use number instead of named teams.
|
|
|
|
|
- Fixed stack overflow caused by floating point imprecision when setting
|
|
|
|
|
turbo out of range.
|
|
|
|
|
- Fixed DGlow not working properly because lightlevels are now unsigned.
|
|
|
|
|
- Fixed the second DScroller constructor not setting m_vdx and m_vdy.
|
|
|
|
|
- Changed R_SetDefaultColormap() to look in the colormaps namespace before
|
|
|
|
|
looking in the global namespace.
|
|
|
|
|
- Fixed fade MAPINFO command not working.
|
|
|
|
|
- Fixed picking up the green armor showing the generic pickup message.
|
|
|
|
|
- Fixed massacre cheat to not let pain elementals spew out lost souls upon
|
|
|
|
|
their death. This also fixes massacre from crashing if the dead lost soul
|
|
|
|
|
was patched to actually stick around in a map.
|
|
|
|
|
- Separated AGibs into ARealGibs and AGibs. ARealGibs is what gets spawned
|
|
|
|
|
automatically when something gets crushed. AGibs is what gets spawned when
|
|
|
|
|
gibs are explicitly placed on a map.
|
|
|
|
|
- Fixed C_BackupCVars() recording the specific value of a cvar instead of
|
|
|
|
|
making a copy of that value.
|
|
|
|
|
|
|
|
|
|
December 11, 2000
|
|
|
|
|
- Fixed generic ceilings with texture/type changes from using model floor
|
|
|
|
|
sectors instead of model ceiling sectors if they had type raise to highest
|
|
|
|
|
ceiling or type lower to highest ceiling.
|
|
|
|
|
- Fixed elevators.
|
|
|
|
|
|
|
|
|
|
December 9, 2000
|
|
|
|
|
- Made old Doom level translation programmable through the use of simple
|
|
|
|
|
precompiled scripts that the game loads from a wad.
|
|
|
|
|
|
|
|
|
|
December 6, 2000
|
|
|
|
|
- Restored Doom's original 50-element fuzzoffset table and rewrote the
|
|
|
|
|
fuzz drawers to accomodate it while still using as few branches as I
|
|
|
|
|
thought reasonable.
|
|
|
|
|
|
|
|
|
|
December 5, 2000
|
|
|
|
|
- Got the display mostly up and running again without PTC. The new design
|
|
|
|
|
allows for automatic switching between buffered and unbuffered modes
|
|
|
|
|
based on how many transparent pixels were visible in the previous frame,
|
|
|
|
|
similar to Build. Unlike Build, the cutoff is always a specific amount
|
|
|
|
|
of pixels (cvar-controlled) instead of one-eighth the total area of the
|
|
|
|
|
screen.
|
|
|
|
|
|
|
|
|
|
November 28, 2000
|
|
|
|
|
- Removed the use of PTC and returned to my rudimentary DirectDraw support.
|
|
|
|
|
- Got rid of all the funky multiple palette handling stuff in v_palette.cpp.
|
|
|
|
|
Paletted textures haven't been realized yet, and if they ever are, the way
|
|
|
|
|
I had things set up probably isn't the way to utilize them.
|
|
|
|
|
|
|
|
|
|
November 25, 2000
|
|
|
|
|
- Fixed BossTargets automatically destroying themselves.
|
|
|
|
|
- Got rid of the global brain state and moved it into a thinker that gets
|
|
|
|
|
spawned if any BrainEyes are present on the level.
|
|
|
|
|
- Made PIT_RadiusAttack() calculate damage based on distance from the
|
|
|
|
|
thing's bounding cylinder instead of its center point.
|
|
|
|
|
- Made thinkers use Exec-style lists because of their simple insertion and
|
|
|
|
|
deletion code.
|
|
|
|
|
- Made R_TextureNumForName() return 1 instead of 0 for missing textures so
|
|
|
|
|
levels that lack textures are easier to navigate.
|
|
|
|
|
- Changed ADecal's doomednum to 9200 to deconflict with Hexen coop start 5.
|
|
|
|
|
- Created an MMX version of the color picker routine. Building a fade table
|
|
|
|
|
with it is about 15% faster than with the straight C version. Not exactly
|
|
|
|
|
a stunning speed increase, but on slower machines, the speedup should at
|
|
|
|
|
least be slightly noticable.
|
|
|
|
|
|
|
|
|
|
November 24, 2000
|
|
|
|
|
- #ifdef'ed out most of the FColorMatcher class. Too many colors are
|
|
|
|
|
visibly off when building fog with it. :-(
|
|
|
|
|
- Simplified the calculations in DoBlending() and created an MMX version.
|
|
|
|
|
|
|
|
|
|
November 20, 2000
|
|
|
|
|
- Implemented Scroll_Floor and Scroll_Ceiling specials for ACS scripts.
|
|
|
|
|
- Fixed drawing of masked midtextures that are used as special effects (i.e.
|
|
|
|
|
invisible platforms).
|
|
|
|
|
- Updated R_AddLine() to only treat as solid two-sided lines if the upper or
|
|
|
|
|
lower tier (whichever is appropriate) actually has a texture.
|
|
|
|
|
- Made doors close to the current floor height instead of whatever the floor
|
|
|
|
|
was at when the door started lowering.
|
|
|
|
|
- Rearranged P_DoCrunch() somewhat so that non-shootable things do not block
|
|
|
|
|
moving floors/ceilings. (Same behavior as Doom.)
|
|
|
|
|
- Fixed model sector changes in EV_DoFloor() and EV_DoCeiling().
|
|
|
|
|
- Added mdk command to kill whatever the player is aiming at.
|
|
|
|
|
- Added the BOOM fix to getNextSector() so that lines that have the same
|
|
|
|
|
sector on both sides and are also part of the sector will not return
|
|
|
|
|
that sector.
|
|
|
|
|
- Fixed PathFollower not initializing PrevNode and CurrNode when it is
|
|
|
|
|
spawned.
|
|
|
|
|
|
|
|
|
|
November 18, 2000
|
|
|
|
|
- Added per-sidedef lighting control. Also added two new mapinfo fields
|
|
|
|
|
(vertwallshade and horizwallshade) to control the relative light of
|
|
|
|
|
vertical/horizontal walls with the sectors. Evenlighting is now obsolete.
|
|
|
|
|
|
|
|
|
|
November 17, 2000
|
|
|
|
|
- Added a new thing (SectorSilencer) to prevent actors from making noise in
|
|
|
|
|
specific sectors, in case anybody wants to use noisy actors in their
|
|
|
|
|
sky boxes.
|
|
|
|
|
- Fixed skyboxes to draw all visplanes with a skybox and not just the first
|
|
|
|
|
one.
|
|
|
|
|
- Added tilted floor physics. Actors can walk around on floors with slopes
|
|
|
|
|
as large as 45 degrees. For anything steeper than that, they slide down.
|
|
|
|
|
Monsters will treat steep floors like drop offs and avoid getting on them.
|
|
|
|
|
|
|
|
|
|
November 16, 2000
|
|
|
|
|
- Added a bForceSlide parameter to P_XYMovement() to force actors to slide
|
|
|
|
|
against walls when blocked, even if they don't specify MF2_SLIDE. This
|
|
|
|
|
allows for better operation of conveyor belts with corners.
|
|
|
|
|
- Fixed volcano sounds in Heretic.
|
|
|
|
|
- Revised carrying sectors again. Removed sc_carry_players. Each thing
|
|
|
|
|
checks the sectors it is standing on to see if they have any carry
|
|
|
|
|
properties. If they do, it adds those values to its momx and momy.
|
|
|
|
|
Thinkers are still used to set the carry properties, which are reset
|
|
|
|
|
to 0 at the beginning of each tic. In order to make sure all carry
|
|
|
|
|
properties have been set before any actors think, I introduced the
|
|
|
|
|
concept of statnums for DThinkers ala Build. DScrollers have lower statnums
|
|
|
|
|
than actors, so they all get executed before actors.
|
|
|
|
|
All carriers for a single sector are cumulative. If an actor is straddling
|
|
|
|
|
multiple sectors with carry properties, then those properties are averaged.
|
|
|
|
|
(X and Y components are averaged separately.) This should give the best
|
|
|
|
|
compromise between BOOM carry behavior and realistic behavior at sector
|
|
|
|
|
boundaries.
|
|
|
|
|
|
|
|
|
|
November 15, 2000
|
|
|
|
|
- Made A_WaterfallSound() and A_WindSound() play looped sounds.
|
|
|
|
|
- Fixed spelling error in SNDINFO: Heretic's waterfall sound is
|
|
|
|
|
waterfl, not watrfl.
|
|
|
|
|
- Changed P_ActivateLine() to call P_TestActivateLine() and changed
|
|
|
|
|
P_TestActivateLine() to allow missiles to activate regular teleporters.
|
|
|
|
|
This is neccessary for the Mace's Death Ball.
|
|
|
|
|
- Took the momz and tics setting out of P_SpawnPuff(). It is the
|
|
|
|
|
responsibility of the spawned puff to set these things as desired. I had
|
|
|
|
|
meant to do it a long time ago but forgot all about it.
|
|
|
|
|
- Changed deferred scripts to remember the player who triggered them.
|
|
|
|
|
|
|
|
|
|
November 14, 2000
|
|
|
|
|
- Removed the code for F*CVar::GetRealType() from c_cvars.h and moved it
|
|
|
|
|
into c_cvars.cpp. Virtual inline functions are not inlined and cause the
|
|
|
|
|
function to be generated for every source file the class is used in.
|
|
|
|
|
- Fixed bug with Transfer_CeilingLight special. I was or'ing CeilingLight
|
|
|
|
|
with SECF_ABSLIGHTING instead of CeilingFlags.
|
|
|
|
|
|
|
|
|
|
November 11, 2000
|
|
|
|
|
- Slopes don't work in mirrors. :-(
|
|
|
|
|
- Removed the viewangletox table and rewrote R_InitTextureMapping() to
|
|
|
|
|
generate xtoviewangle without it.
|
|
|
|
|
- Added support for per-skybox control of visibility.
|
|
|
|
|
|
|
|
|
|
November 10, 2000
|
|
|
|
|
- Implemented sky boxes. Total time: ~40 minutes. :-) Should probably test
|
|
|
|
|
it some more, though.
|
|
|
|
|
|
|
|
|
|
November 9, 2000
|
|
|
|
|
- Fixed a sprite clipping bug at the right edge of mirrors.
|
|
|
|
|
|
|
|
|
|
November 8, 2000
|
|
|
|
|
- Reimplemented mirrors.
|
|
|
|
|
- Improved positioning of masked mid textures.
|
|
|
|
|
|
|
|
|
|
November 7, 2000
|
|
|
|
|
- Increased the fractional precision of swall calculations.
|
|
|
|
|
- Removed all references to Doom's light tables.
|
|
|
|
|
|
|
|
|
|
November 6, 2000
|
|
|
|
|
- Moved the lighting calculation out of the main loop in R_MapTiltedPlane()
|
|
|
|
|
(and its assembly equivalent) into a separate function, since it can now
|
|
|
|
|
be linearly interpolated. This does away with the use of CMOVs in the
|
|
|
|
|
assembly code, so now I won't need to write a non-CMOV version of it. It's
|
|
|
|
|
also somewhat faster, especially in the non-assembly version.
|
|
|
|
|
|
|
|
|
|
November 3, 2000
|
|
|
|
|
- Tweaked the brown color range for console fonts to actually look brown.
|
|
|
|
|
- Generalized FFont::BuildTranslations() some so it's not so big. Did the
|
|
|
|
|
same for the FConsoleFont version.
|
|
|
|
|
|
|
|
|
|
November 1, 2000
|
|
|
|
|
- Got the tilted plane lighting working without the LUT in 320x200. Also
|
|
|
|
|
removed the divide from the nontilted version.
|
|
|
|
|
|
|
|
|
|
October 31, 2000
|
|
|
|
|
- Got the plane light calculation without using zlight to match the light
|
|
|
|
|
when using zlight (aside from the finer gradiation). Woohoo! Now to get
|
|
|
|
|
rid of the divide...
|
|
|
|
|
- Fixed creation of large (>64k) blockmaps. Also replaced the Boom version
|
|
|
|
|
of P_CreateBlockMap() with the MBF version.
|
|
|
|
|
|
|
|
|
|
October 17, 2000
|
|
|
|
|
- Tried to remove the use of the zlight lookup for plane mapping, but I'm
|
|
|
|
|
having a hard time actually duplicating its results. (Nevermind that I
|
|
|
|
|
should be able to derive the properly formula without difficulty...)
|
|
|
|
|
- Noticed distant sprites were way too jumpy. At first, I thought it was
|
|
|
|
|
because I was only using 8 bits of precision, so I temporarily upped it
|
|
|
|
|
back to 16 bits, and the problem persisted. It was caused by calculating
|
|
|
|
|
1/z in R_ProjectSprite() (as a fixed 16.16) and multiplying by that.
|
|
|
|
|
Dividing by z instead fixed the problem.
|
|
|
|
|
|
|
|
|
|
October 16, 2000
|
|
|
|
|
- I think I have all the sector movers set to properly handle tilty areas.
|
|
|
|
|
- Set P_SpawnDoorCloseIn30() and P_SpawnDoorRaiseIn5Mins() to set the
|
|
|
|
|
thinker's m_BotDist.
|
|
|
|
|
- Upped the fractional bits of precision for view space coordinates to 12.
|
|
|
|
|
This drops the upper FOV limit to ~172.8.
|
|
|
|
|
|
|
|
|
|
October 10, 2000
|
|
|
|
|
- Fixed pillar floors using the ceiling plane for calculations.
|
|
|
|
|
- Changed P_Thing_Spawn() and P_Thing_Projectile() to only set MF_DROPPED
|
|
|
|
|
for special things, so spawned monsters can be crushed to gibs.
|
|
|
|
|
- Added carrymomx, carrymomy, and carrycount members to AActor. DScroller
|
|
|
|
|
now effects these rather than momx and momy. Slow scrollers work now,
|
|
|
|
|
and there's no possibility of drift caused by friction.
|
|
|
|
|
- Changed earthquake behavior to match Hexen's.
|
|
|
|
|
|
|
|
|
|
October 9, 2000
|
|
|
|
|
- Added Unreal teleport zoom effect controlled by the telezoom cvar.
|
|
|
|
|
- Reduced the renderer's precision along the (x,y) plane in view space to
|
|
|
|
|
8 bits of fractional precision in order to accomodate large FOVs.
|
|
|
|
|
|
|
|
|
|
October 7, 2000
|
|
|
|
|
- Fixed lighting to not vary with different FOVs.
|
|
|
|
|
- Changed the initialization of finetangent to not phase shift the table,
|
|
|
|
|
as I did previously for finesine.
|
|
|
|
|
|
|
|
|
|
October 6, 2000
|
|
|
|
|
- Added support for panning, scaling, and rotating of tilted flats.
|
|
|
|
|
|
|
|
|
|
October 5, 2000
|
|
|
|
|
- Added FloorLight and CeilingLight members to sector_t. Changed
|
|
|
|
|
Transfer_FloorLight and Transfer_CeilingLight to use a thinker to copy
|
|
|
|
|
light levels over to these fields.
|
|
|
|
|
- Fixed serialization of sectors: The ceiling's xoffs was stored twice
|
|
|
|
|
instead of storing both xoffs and yoffs.
|
|
|
|
|
|
|
|
|
|
October 4, 2000
|
|
|
|
|
- Added back the "too far off side?" check to R_ProjectSprite(), since
|
|
|
|
|
sprites are now projected into a view space with a constant 90 degree FOV.
|
|
|
|
|
Also added a test for sprites above/below the screen. This test is
|
|
|
|
|
different from Lee Killough's test in Boom, which I never managed to get
|
|
|
|
|
working right with freelook (not that I tried very hard, either...).
|
|
|
|
|
|
|
|
|
|
October 2, 2000
|
|
|
|
|
- Added an optimization to R_AddLine(): 2-sided lines that cannot be seen
|
|
|
|
|
past because their openings are off-screen will be marked as solid.
|
|
|
|
|
- Changed the pointers in drawseg_t to ptrdiff_t so the "fun" stuff in
|
|
|
|
|
R_StoreWallRange for expanding the openings array and adjusting
|
|
|
|
|
pointers is unnecessary.
|
|
|
|
|
- Did the changes I talked about on September 23, except the calculations
|
|
|
|
|
are still associated with R_StoreWallRange() so they don't need to be
|
|
|
|
|
performed if the wall is entirely clipped (but they only get done once
|
|
|
|
|
per wall, no matter how many ranges it gets clipped to).
|
|
|
|
|
|
|
|
|
|
September 27, 2000
|
|
|
|
|
- Moved wall texture calculation (i.e. prepwall) back to floats, just to be
|
|
|
|
|
safe as far as integer overflow goes.
|
|
|
|
|
|
|
|
|
|
September 26, 2000
|
|
|
|
|
- All right, I've caved in. I'm now using some Build code. Build already does
|
|
|
|
|
everything necessary for good quality rendering, and it seems a shame to
|
|
|
|
|
needlessly duplicate all of Ken's work.
|
|
|
|
|
|
|
|
|
|
September 23, 2000
|
|
|
|
|
- After trying to get slopes to look nicer, I have come to the following sad
|
|
|
|
|
conclusion. Clipping walls into pieces and then doing all the drawing
|
|
|
|
|
calculations in R_StoreWallRange() is not the way to go when you have
|
|
|
|
|
slopes, since all fractional precision is lost at the edges of the
|
|
|
|
|
drawsegs, making an accurate calculation of (x,y) for slope calculations
|
|
|
|
|
impossible. So my plan for now is: Move most of the functionality of
|
|
|
|
|
R_StoreWallRange() into R_AddLine(), and leave R_StoreWallRange() around as
|
|
|
|
|
a function that just creates drawsegs and calls the texture mapping
|
|
|
|
|
routines.
|
|
|
|
|
- Made solidsegs a fixed-size array that is big enough. (It was not actually
|
|
|
|
|
growing before, so it might as well have been fixed!)
|
|
|
|
|
|
|
|
|
|
September 21, 2000
|
|
|
|
|
- Fixed C_WriteCVars() so that it doesn't delete the strings it gets
|
|
|
|
|
using GetGenericRep().
|
|
|
|
|
- Reduced the FOV range to [5,175] to combat integer overflow with extreme
|
|
|
|
|
values.
|
|
|
|
|
- Removed excess precision from texturecolumn calculations in BlastColumn,
|
|
|
|
|
since it was overflowing occasionally.
|
|
|
|
|
|
|
|
|
|
September 20, 2000
|
|
|
|
|
- Removed the offset field from r_segs, as it is no longer necessary. (Walls
|
|
|
|
|
are now mapped based on their linedefs, not their individual segs.)
|
|
|
|
|
- Bumped the wall mapper down to only 4 bits of fractional precision. The
|
|
|
|
|
results look just as good as floats, and don't overflow so easily--a wall
|
|
|
|
|
15296 units long didn't overflow. (I didn't check any longer, since walls
|
|
|
|
|
that long are highly unlikely to occur in any Doom map, because the
|
|
|
|
|
original Doom engine would render them with horrible jitter.)
|
|
|
|
|
|
|
|
|
|
In the process, I decided to go the Build route and give walls a texture
|
|
|
|
|
width (the number of texels that fit across the wall). When arbitrarily
|
|
|
|
|
moveable walls are implemented, I think it will be more useful to maintain
|
|
|
|
|
a constant spread of texels across a wall than to maintain a constant
|
|
|
|
|
texel width. Without moveable walls, this approach just makes diagonal
|
|
|
|
|
walls align nicer.
|
|
|
|
|
|
|
|
|
|
September 19, 2000
|
|
|
|
|
- Swapped the meanings of the m and n vectors for the wall texture mapper
|
|
|
|
|
and got the correct vectors to use. Unfortunately, under most
|
|
|
|
|
circumstances, they generate values too big for 16.16 fixed point.
|
|
|
|
|
|
|
|
|
|
September 18, 2000
|
|
|
|
|
- Changed R_RenderBSPNode() to check against the bbox for front nodes as
|
|
|
|
|
well as back. Must remember to be on the lookout for drawing errors this
|
|
|
|
|
might cause, since the old R_CheckBBox() was too inaccurate for this.
|
|
|
|
|
- Tried to change wall texture mapping to use the same "magic" vectors that
|
|
|
|
|
I use for tilted planes, but I don't trust the vectors I derived: The
|
|
|
|
|
u/z vector depended on (x,y), but v/z depended only on x, just the opposite
|
|
|
|
|
of what it should be.
|
|
|
|
|
- About the adjacent wall problem, that was caused by a subsector with a
|
|
|
|
|
single seg viewed almost head-on. Changing R_CheckBBox() to use the same
|
|
|
|
|
transforms as R_AddLine() fixed the problem.
|
|
|
|
|
- Fixed some bad cases for my clipping code in R_AddLine(). Although I had
|
|
|
|
|
already used it in my prototype engine with several Build maps, I found
|
|
|
|
|
problems in Doom2 MAP02 that needed fixing.
|
|
|
|
|
|
|
|
|
|
September 16, 2000
|
|
|
|
|
- Changed wall projection in r_bsp.cpp to use more standard 1/z perspective
|
|
|
|
|
projections instead of polar coordinates and got the desired result: no
|
|
|
|
|
more excessively jiggly walls. Now I need to do it with the wall texture
|
|
|
|
|
mapper, so that wall textures don't jiggle either. One minor problem:
|
|
|
|
|
Adjacent walls can sometimes be one pixel apart. (Why?)
|
|
|
|
|
|
|
|
|
|
September 13, 2000
|
|
|
|
|
- Added the 181 special to slope floors/ceilings at two-sided walls.
|
|
|
|
|
- Fixed sporadic rendering problems with masked mid textures caused by
|
|
|
|
|
not ensuring sprflipvert was false.
|
|
|
|
|
- Added "world" as a valid ambient sound type, for consistancy with the
|
|
|
|
|
other types. Ambient sounds without a type specified still default to
|
|
|
|
|
world.
|
|
|
|
|
- Change P_AimLineAttack() to return a pitch instead of slope. It also
|
|
|
|
|
returns the actor's pitch instead of 0, if nothing to aim at was found.
|
|
|
|
|
Also changed it to be responsible for limiting the player's autoaim,
|
|
|
|
|
since this is a more logical place than in the routines that call it.
|
|
|
|
|
This simplified P_SpawnPlayerMissile() and P_BulletSlope().
|
|
|
|
|
|
|
|
|
|
September 12, 2000
|
|
|
|
|
- Created a generic Trace() function.
|
|
|
|
|
|
|
|
|
|
September 11, 2000
|
|
|
|
|
- Finished the assembly plane drawer. Or, rather, the Pentium Pro and higher
|
|
|
|
|
version, since it uses CMOV instructions.
|
|
|
|
|
- Things to do:
|
|
|
|
|
Create a Pentium version of the plane drawer.
|
|
|
|
|
Create a trace function that knows about planes and replace all the
|
|
|
|
|
redundant code in the different traversal iterators.
|
|
|
|
|
Fix the bots so they understand planes.
|
|
|
|
|
Fix movement code so that planes are treated as planes and not as a
|
|
|
|
|
bunch of discrete steps.
|
|
|
|
|
|
|
|
|
|
September 9, 2000
|
|
|
|
|
- Started work on the assembly plane drawer. It's your standard subdividing
|
|
|
|
|
affine mapper using the overlapped FDIV trick, but with Doom-style lighting.
|
|
|
|
|
It's about four times faster than the previous C version, and at high enough
|
|
|
|
|
resolutions, it's even faster than the wall drawer. But it's not complete:
|
|
|
|
|
It doesn't draw incomplete subspans at the end of a span.
|
|
|
|
|
|
|
|
|
|
September 6, 2000
|
|
|
|
|
- Made some optimizations to the plane renderer. It now runs nearly 13 times
|
|
|
|
|
faster than before (in the debug build). Adding some inline assembly to
|
|
|
|
|
R_MapTiltedPlane() to convert floats to ints (instead of using (int) to
|
|
|
|
|
cast it) sped it up to 20% of its original time. Most of the rest was
|
|
|
|
|
achieved through the standard technique of splitting it up into spans and
|
|
|
|
|
using affine mapping for those spans. Interestingly, in the debug build,
|
|
|
|
|
the span-based approach is only about half the speed of the "perfect"
|
|
|
|
|
implementation and no faster. ("Perfect" is in quotes because there is
|
|
|
|
|
some error built up by using deltas between pixels instead of calculating
|
|
|
|
|
1/z, u/z, and v/z anew each pixel, so it's not really perfect, but it is
|
|
|
|
|
very close.) Hopefully converting this to assembly will give another good
|
|
|
|
|
speed up.
|
|
|
|
|
|
|
|
|
|
September 5, 2000
|
|
|
|
|
- Finished preliminary renderer for planes. They draw properly, but very
|
|
|
|
|
slowly. (With one divide, seven multiplies, and three compiler-generated
|
|
|
|
|
calls to ftol per pixel, that's to be expected.)
|
|
|
|
|
|
|
|
|
|
September 4, 2000
|
|
|
|
|
- Continued work on planes.
|
|
|
|
|
|
|
|
|
|
September 2, 2000
|
|
|
|
|
- Moved R_DoorClosed() into R_AddLine() so it can use the already-calculated
|
|
|
|
|
ceiling/floor heights without making them global variables.
|
|
|
|
|
|
|
|
|
|
September 1, 2000
|
|
|
|
|
- Continued work on planes.
|
|
|
|
|
-Removed tsilheight and bsilheight from drawseg_t, since they're not
|
|
|
|
|
particularly useful when the floor or ceiling isn't at a constant height.
|
|
|
|
|
|
|
|
|
|
August 30, 2000
|
|
|
|
|
- Continued work on planes.
|
|
|
|
|
|
|
|
|
|
August 29, 2000
|
|
|
|
|
- Started work on adding real floor/ceiling planes. (And I do mean planes,
|
|
|
|
|
not just slopes.)
|
|
|
|
|
|
|
|
|
|
August 28, 2000
|
|
|
|
|
- Removed the "too far off the side?" check from R_ProjectSprite(). The fix
|
|
|
|
|
for wide FOVs made sprites disappear when they weren't very far away.
|
|
|
|
|
- Started work on extended skins by writing the spec notes in skins.cpp.
|
|
|
|
|
|
|
|
|
|
August 24, 2000
|
|
|
|
|
- Fixed memory corruption when trying to add more coop bots than there are
|
|
|
|
|
enough single player starts for: DoAddBot needs to check for the start,
|
|
|
|
|
not PlayerThink. Otherwise, when DoAddBot calls G_DoReborn, it thinks
|
|
|
|
|
the player is -1, because it gets the player number from the player start
|
|
|
|
|
for the index passed instead of using the index itself.
|
|
|
|
|
- Tried to prevent drawing areas behind mirrors through a mirror. If no
|
|
|
|
|
segs cross the line defined by the mirror, no walls will be drawn
|
|
|
|
|
through the mirror. However, things can still show up through the mirror.
|
|
|
|
|
Another issue is that gaps can be seen through the junction of two
|
|
|
|
|
adjoining mirrors. I can live with this; A mirror with restrictions is still
|
|
|
|
|
better than no mirror at all, right?
|
|
|
|
|
- Added proper view positioning for mirrors at any angle.
|
|
|
|
|
|
|
|
|
|
August 23, 2000
|
|
|
|
|
- Made mirrors actually flip the view. I still need to handle mirroring
|
|
|
|
|
around arbitrary mirrors instead of just horizontal/vertical ones.
|
|
|
|
|
|
|
|
|
|
August 21, 2000
|
|
|
|
|
- Started working on mirrors by adding semi-portals.
|
|
|
|
|
- Simplified P_InitAnimDefs() by getting rid of the explicit state machine
|
|
|
|
|
and using a separate function to parse flat and texture animations.
|
|
|
|
|
- Fixed sprite clipping for high FOVs.
|
|
|
|
|
- Changed R_DrawPlanes() to calculate texture coordinates relative to the
|
|
|
|
|
middle of the screen instead of the left edge of the screen. Thanks to
|
|
|
|
|
this change, I was able to remove the distscale variable, as it is no
|
|
|
|
|
longer needed. Flats now line up with walls as perfectly as they're going
|
|
|
|
|
to get, given the jiggly nature of wall rendering.
|
|
|
|
|
|
|
|
|
|
August 19, 2000
|
|
|
|
|
- Added support for animating switches and extended the ANIMDEFS lump to
|
|
|
|
|
support defining them. Converted the ANIMATED lump in zdoom.wad to an
|
|
|
|
|
ANIMDEFS lump, and changed the code to support multiple ANIMDEFS lumps.
|
|
|
|
|
|
|
|
|
|
August 15, 2000
|
|
|
|
|
- Added more consistant sorting for sprites in the same (x,y) location: In
|
|
|
|
|
the event of a tie, the sprites' tops are used for sorting. If that is
|
|
|
|
|
insufficient, the sort order is undefined, as before.
|
|
|
|
|
- Removed all references to CALC_TABLES. The game will always generate the
|
|
|
|
|
tables on startup now.
|
|
|
|
|
- Changed finecosine to a class with a single inline operator[] member.
|
|
|
|
|
Now cosine lookups are just as fast as sine lookups, because it's not
|
|
|
|
|
necessary to dereference a pointer.
|
|
|
|
|
- Changed ylookup, columnofs, r_dsclipbot, r_dscliptop, floorclip,
|
|
|
|
|
walltop, wallbottom, negonearray, screenheightarray, xtoviewangle,
|
|
|
|
|
ceilingclip, yslope, and spanend back into fixed-size arrays. Their
|
|
|
|
|
maximum possible values aren't *that* big, and the compiler can generate
|
|
|
|
|
more efficient code when it always knows where the array will be.
|
|
|
|
|
- Another optimization: The renderer no longer draws underneath the console.
|
|
|
|
|
- Thanks to the span renderer's improved accuracy, I have been able to do
|
|
|
|
|
some optimizations to bring R_MapPlane() down to five multiplies per span.
|
|
|
|
|
This is better than the previous eight and also better than the original
|
|
|
|
|
Doom's worst case of six multiplies per span. Doom also used a cache that
|
|
|
|
|
could give it a best case of just three multiplies per span, but I'm not
|
|
|
|
|
sure doing so is really worthwhile.
|
|
|
|
|
|
|
|
|
|
As an added bonus, visplanes with the same orientation will line up with
|
|
|
|
|
each other no matter where they are on screen. Now I just need to fix the
|
|
|
|
|
wall jittering... (That may be too much to ask from the Doom engine.)
|
|
|
|
|
|
|
|
|
|
As part of the optimizations, I:
|
|
|
|
|
- Removed the distscale array and replaced it with a single value.
|
|
|
|
|
- Renamed spanstart to spanend to reflect the fact that it now holds the
|
|
|
|
|
right edges of spans instead of their left edges. Also changed it to an
|
|
|
|
|
array of shorts.
|
|
|
|
|
- Made R_DrawPlanes() responsible for maintaining the texture coordinates.
|
|
|
|
|
Now all R_MapPlane() has to do is scale and pan them.
|
|
|
|
|
- Removed most of my comments from R_DrawPlanes(), since the texture
|
|
|
|
|
coordinates are no longer calculated in a single location.
|
|
|
|
|
|
|
|
|
|
August 14, 2000
|
|
|
|
|
- Added code in w_wad.cpp to limit the number of open wads to some preset
|
|
|
|
|
amount instead of keeping all the wads open at a time, in case the user
|
|
|
|
|
has more wads s/he wants to use than there are file handles available.
|
|
|
|
|
- Figured out the crash from the other day: Decals were only being cached
|
|
|
|
|
if their sizes were unknown; they were not recached if they had been
|
|
|
|
|
flushed.
|
|
|
|
|
|
|
|
|
|
August 12, 2000
|
|
|
|
|
- Added bullet holes. It crashed once in testing when I was foolishly
|
|
|
|
|
running fullscreen, so now I am trying to replicate the problem. The
|
|
|
|
|
error occured in WallSpriteColumn() where it called drawfunc() and was
|
|
|
|
|
an access violation.
|
|
|
|
|
- Implemented RF_FULLBRIGHT for wall sprites.
|
|
|
|
|
- Moved most virtual function bodies that were in header files out of the
|
|
|
|
|
headers so that the compiler wouldn't generate code for them for every
|
|
|
|
|
derived class that didn't supply their own versions.
|
|
|
|
|
- Added FDecalLib and supporting classes.
|
|
|
|
|
|
|
|
|
|
August 10, 2000
|
|
|
|
|
- Removed the MF3_CARRIED flag and replaced it with the carrysec member. The
|
|
|
|
|
intent of MF3_CARRIED was to prevent neighboring sectors from having an
|
|
|
|
|
accelerative effect on actors (an undesirable effect in at least one of
|
|
|
|
|
Heretic's maps), but it also prevented multiple carriers in a single sector
|
|
|
|
|
from having a cumulative effect on the player.
|
|
|
|
|
- Optimized R_DrawSprite() to initialize the sprite clipping arrays to their
|
|
|
|
|
largest possible range instead of initializing them to a special "not
|
|
|
|
|
clipped" value. This saves the time needed to set "not clipped" columns
|
|
|
|
|
to valid values later. It also saves the trouble of making any passes for
|
|
|
|
|
clipping sprites in fake floor/ceiling sectors. Also redid the clipping
|
|
|
|
|
loops so that VC++ produces more optimal code for them.
|
|
|
|
|
- Fixed R_InitTables() to produce an accurate sine table instead of a sine
|
|
|
|
|
table that was slightly off. Also implemented the optimization suggestion
|
|
|
|
|
that was in the code.
|
|
|
|
|
- Moved the << 10 scaling out of R_MapPlane() and into the calculation of
|
|
|
|
|
xscale and yscale in R_DrawPlanes() with the intent to speed up plane
|
|
|
|
|
mapping slightly. As a bonus, adjacent visplanes with the same texture
|
|
|
|
|
now match up far better than before, so it was worth it even if it didn't
|
|
|
|
|
give a huge speedup.
|
|
|
|
|
|
|
|
|
|
August 8, 2000
|
|
|
|
|
- Changed FHelperThread() to use MsgWaitForMultipleObjects() instead of
|
|
|
|
|
MsgWaitForMultipleObjectsEx(), because the latter is not available under
|
|
|
|
|
Windows 95. I also had to change FCDThread to not use QueueUserAPC() to
|
|
|
|
|
handle play finished notifications, since MsgWaitForMultipleObjects() is
|
|
|
|
|
not an alertable function. Fortunately, the reason I used an APC in the
|
|
|
|
|
first place no longer applies, because the CD_WndProc will always be
|
|
|
|
|
called from the helper thread's context, since the window is now being
|
|
|
|
|
created in the thread's context. (See my July 14 log; I don't know why
|
|
|
|
|
it even worked under 98.)
|
|
|
|
|
- Fixed FHelperThread() to call Init() from within the context of the newly-
|
|
|
|
|
created thread, as it should.
|
|
|
|
|
- Eliminated BestColor() from the game and replaced its use with
|
|
|
|
|
ColorMatcher. Then I found a bug in R_BuildPlayerTranslation(): RGB values
|
|
|
|
|
were not clipped to the range [0,255].
|
|
|
|
|
|
|
|
|
|
August 7, 2000
|
|
|
|
|
- Wrote the FColorMatcher class to do color matching much quicker than
|
|
|
|
|
BestColor() with nearly the same quality.
|
|
|
|
|
|
|
|
|
|
August 5, 2000
|
|
|
|
|
- Changed the command parser in c_dispatch.cpp to something simpler, but
|
|
|
|
|
which also allows for using \" inside quoted strings.
|
|
|
|
|
|
|
|
|
|
August 2, 2000
|
|
|
|
|
- Implemented RF_ALPHASHADED for wall sprites.
|
|
|
|
|
|
|
|
|
|
August 1, 2000
|
|
|
|
|
- Implemented RF_REL* flags. They use the texture pegging flags of the linedef
|
|
|
|
|
to keep them in line with the underlying textures if the sector height
|
|
|
|
|
changes.
|
|
|
|
|
|
|
|
|
|
July 29, 2000
|
|
|
|
|
- Implemented RF_CLIPUPPER and RF_CLIPLOWER. RF_CLIPFULL also works for
|
|
|
|
|
one-sided lines, since that was the first case I did when I added the
|
|
|
|
|
bound wall sprites.
|
|
|
|
|
- Added vertical flipping for wall sprites.
|
|
|
|
|
|
|
|
|
|
July 28, 2000
|
|
|
|
|
- Made fullbright a separate field in FState instead of merging it with
|
|
|
|
|
the frame index.
|
|
|
|
|
|
|
|
|
|
July 27, 2000
|
|
|
|
|
- Added these fields to AActor: renderflags, picnum, and alphacolor, although
|
|
|
|
|
they still need to actually be implemented. Also changed the sizes of the
|
|
|
|
|
sprite and frame fields.
|
|
|
|
|
- Started work on wall sprites bound to walls (i.e. decals). Right now, it
|
|
|
|
|
can clip the sprite to one-sided walls.
|
|
|
|
|
- Fixed hotkeys not selecting appropriate item(s) in the menus.
|
|
|
|
|
|
|
|
|
|
July 22, 2000
|
|
|
|
|
- Fixed console drawing extra lines above the top of the screen.
|
|
|
|
|
- Added IWADPaths section to the config file to indicate a default set of
|
|
|
|
|
directories to search for IWADs.
|
|
|
|
|
- Added screenshot_quiet cvar to prevent the screenshot command from
|
|
|
|
|
displaying any messages when a screenshot is captured.
|
|
|
|
|
- Added wait and unset console commands.
|
|
|
|
|
- Changed C_DoKey() to execute a copy of the command bound to a key instead
|
|
|
|
|
of the original, because the key might rebind itself and mess up the
|
|
|
|
|
parser if the original command is executed.
|
|
|
|
|
|
|
|
|
|
July 21, 2000
|
|
|
|
|
- Changed FindSprite() in d_dehacked.cpp to use DWORDs for comparisons.
|
|
|
|
|
- Added Thing_Move and ThrustThingZ specials from Skull Tag. Also added
|
|
|
|
|
Skull Tag's newtid parameter to Thing_Spawn(NoFog).
|
|
|
|
|
- Changed blocked pillars to stay in one place until not blocked, because
|
|
|
|
|
they had stopped doing that, probably because of something I did for
|
|
|
|
|
stacked things on moving sectors.
|
|
|
|
|
|
|
|
|
|
July 20, 2000
|
|
|
|
|
- Removed the use of memmoves in R_ClipWallSegment(). VC++ generates more
|
|
|
|
|
optimal code using for loops, because memmove generated a function call.
|
|
|
|
|
- Fixed R_DrawVisSprite() not always drawing the full width of a sprite when
|
|
|
|
|
using r_columnmethod 1.
|
|
|
|
|
- Added x and y thing scaling factors. Range is 0-255, and 63 is the default.
|
|
|
|
|
Actual scale is (scale+1)/64.
|
|
|
|
|
- Changed R_DrawSprite() to clip sprites against drawsegs based on depth
|
|
|
|
|
and not vertical scale. Also added an extra parameter to
|
|
|
|
|
R_ScaleFromGlobalAngle() that receives the depth of the passed angle.
|
|
|
|
|
- Fixed Heretic's bloody skull transitioning to one of the player's states.
|
|
|
|
|
- Removed MF3_SKINNED flag and added a skin field for every actor.
|
|
|
|
|
- Made -host 1 not start a multiplayer game without starting the network,
|
|
|
|
|
because I currently have no TCP/IP stack installed on my computer.
|
|
|
|
|
- Fixed players being able to gib infinitely under a crusher.
|
|
|
|
|
- Changed crushing ceilings to behave more like Doom again: Things that were
|
|
|
|
|
on the floor stay on the floor, and things above the floor get pushed into
|
|
|
|
|
it.
|
|
|
|
|
- Fixed "jiggly" sprites where each columns' textures were not aligned
|
|
|
|
|
properly. Also fixed a bug in rt_map4cols_asm1() and rt_map4cols_asm2()
|
|
|
|
|
that was less obvious with the jiggly sprites: The right 2 pixels of
|
|
|
|
|
odd-length runs were swapped.
|
|
|
|
|
- Fixed bug in R_DrawColumnHorizP_C(): Mapped one pixel too many.
|
|
|
|
|
- Condensed R_ClipSolidWallSegment() and R_ClipPassWallSegment() into
|
|
|
|
|
R_ClipWallSegment(), since they were nearly identical.
|
|
|
|
|
|
|
|
|
|
July 19, 2000
|
|
|
|
|
- Fixed WritePCXfile(). I was writing two extra header bytes.
|
|
|
|
|
- Added assembly versions of the scaling masked block drawers and made them
|
|
|
|
|
support clipping the block to the screen.
|
|
|
|
|
|
|
|
|
|
July 17, 2000
|
|
|
|
|
- Added assembly versions of the non-scaling masked block drawers and made
|
|
|
|
|
them support clipping the block to the screen.
|
|
|
|
|
|
|
|
|
|
July 15, 2000
|
|
|
|
|
- Slightly optimized parallax sky drawing.
|
|
|
|
|
- Changed the controls menu to only grab the mouse when it's waiting for a
|
|
|
|
|
key to bind to an action.
|
|
|
|
|
- Changed the DirectInput keyboard reader in i_input.cpp to read the entire
|
|
|
|
|
keyboard state and generate events based on the differences between that
|
|
|
|
|
state and the previous one. Reading key transitions with GetDeviceData()
|
|
|
|
|
was more efficient (I assume), but it was too easy for NT to miss
|
|
|
|
|
transitions if CPU time got tight.
|
|
|
|
|
- Added an absolute parameter to I_SetGUICapture to force the setting of
|
|
|
|
|
GUI capturing to a specific setting instead of adjusting a counter. This
|
|
|
|
|
is necessary for proper recovery when catching a recoverable error, and
|
|
|
|
|
GUI capturing was already enabled.
|
|
|
|
|
- Finished CD code (at least I hope I did). Under NT, it can even loop a
|
|
|
|
|
track without bringing the game to a halt. (Yay!) Unfortunately, that
|
|
|
|
|
seems unavoidable under 9x. Oh well.
|
|
|
|
|
|
|
|
|
|
July 14, 2000
|
|
|
|
|
- Under NT, APC calls do not seem to work when there is an outstanding MCI
|
|
|
|
|
notification. Now FHelperThread uses an event to signal the thread to quit.
|
|
|
|
|
- Here's a mean difference between NT and 98 (as far as I can tell): Under
|
|
|
|
|
98, each thread has its own message queue. Under NT, each thread shares
|
|
|
|
|
a single queue for the entire process. Now I use an APC call to restart
|
|
|
|
|
playback, because I don't know what context the WndProc is runnning in.
|
|
|
|
|
(I could check the OS version and work accordingly, but then I'd have two
|
|
|
|
|
methods to do the same thing, and I have no guarantee Microsoft won't
|
|
|
|
|
change things in a future version of Windows.)
|
|
|
|
|
- Changed autoexec handling so now you can run any number console scripts
|
|
|
|
|
automatically.
|
|
|
|
|
- Added a new config file format that can store information for multiple
|
|
|
|
|
games (i.e. Doom, Heretic, and Hexen) and keep the appropriate settings
|
|
|
|
|
separate. This is your basic ini-style file, rather than a list of
|
|
|
|
|
console commands.
|
|
|
|
|
|
|
|
|
|
July 11, 2000
|
|
|
|
|
- Removed an I_PauseMouse() call from Win32Video::SetMode() that was
|
|
|
|
|
preventing the game from grabbing the mouse in windowed mode at startup.
|
|
|
|
|
(Why was that in there?)
|
|
|
|
|
- Implemented localized ACS strings in the game. It's even smart enough to
|
|
|
|
|
detect when the user changes the regional settings!
|
|
|
|
|
|
|
|
|
|
July 8, 2000
|
|
|
|
|
- Created enhanced ACS format (ACSE) and used it to add string localization
|
|
|
|
|
support to the language.
|
|
|
|
|
- Added InterpolationSpecial (#9075) whose special is activated whenever
|
|
|
|
|
a PathFollower reaches an InterpolationPoint with the same special.
|
|
|
|
|
- Fixed stack overflows when all the patrol points in a path are so close
|
|
|
|
|
together that a monster can touch them all at once, by setting
|
|
|
|
|
MF_JUSTATTACKED when the monster reaches one point to force it to move
|
|
|
|
|
when SetState() is called instead of cycling to the next point.
|
|
|
|
|
- Renamed AWayPoint to APatrolPaint.
|
|
|
|
|
|
|
|
|
|
July 5, 2000
|
|
|
|
|
- Moved the StatusBar->Tick() call inside P_Ticker() so that the status bar
|
|
|
|
|
doesn't tick when the game is paused.
|
|
|
|
|
- Reworked the string-building p-codes in p_acs.cpp so that the string gets
|
|
|
|
|
built as each p-code is encountered instead of waiting until the end p-code.
|
|
|
|
|
This is safe because a properly-generated script will never enter a wait
|
|
|
|
|
state between the begin and end p-codes (which I initially thought it
|
|
|
|
|
might).
|
|
|
|
|
- Changed the meaning of some HUD message X coordinates:
|
|
|
|
|
[ 0.0, 1.0]: Position between left and right edge valid box locations
|
|
|
|
|
[-1.0, 0.0): Position between left and right edge of screen
|
|
|
|
|
( 1.0, 2.0]: Same as [0.0,1.0], but center each line inside box
|
|
|
|
|
[-2.0, 1.0): Same as [-1.0,0.0), but center each line inside box
|
|
|
|
|
- Added FHUDMessageTypeOnFadeOut class.
|
|
|
|
|
- Added an id for use with Attach/DetachMessage(). The status bar can now
|
|
|
|
|
keep track of HUD messages for you and automatically deletes an old version
|
|
|
|
|
of a message when a newer one is attached. An id of 0 means not to track
|
|
|
|
|
the message.
|
|
|
|
|
- Added the hudmessage ACS command.
|
|
|
|
|
- Tried improving the accuracy of span drawing by increasing precision (i.e.
|
|
|
|
|
a>>6 is better than (a>>16)<<10), but it didn't seem to do any good. Still,
|
|
|
|
|
as a remnant of that there is now a function FixedMulDiv(a,b,c) that
|
|
|
|
|
calculates the fixed point result of a*b/c. Even if it's not much more
|
|
|
|
|
precise than FixedDiv(FixedMul(a,b),c), it's at least marginally faster,
|
|
|
|
|
since it does no shifts.
|
|
|
|
|
- Changed APathFollower::Activate() to reposition itself to the first node so
|
|
|
|
|
that it doesn't briefly appear at its old location when activated.
|
|
|
|
|
- Changed AInterpolationPoint::PostBeginPlay() to FormChain(). Now it's called
|
|
|
|
|
whenever something that uses the path wants to get on the path. Thus, we can
|
|
|
|
|
be sure that the path is actually completed when the thing wants to get on
|
|
|
|
|
it (at level start), which it wouldn't be if the thing was placed on the map
|
|
|
|
|
before all the points of the path.
|
|
|
|
|
- Simplified AInterpolationPoint::ScanForLoop().
|
|
|
|
|
|
|
|
|
|
July 4, 2000
|
|
|
|
|
- Added sector actions for players landing on floor, hitting ceiling, entering
|
|
|
|
|
a sector, leaving a sector, hitting use inside a sector, or hitting use on
|
|
|
|
|
a sector's wall. The way this is exposed to level designers is the same as
|
|
|
|
|
Skull Tag's 9999 thing (action taken whenever the player is on the floor),
|
|
|
|
|
but is more flexible because it supports multiple activation types and you
|
|
|
|
|
can have multiple actions in a single sector.
|
|
|
|
|
|
|
|
|
|
July 3, 2000
|
|
|
|
|
- Added an effect for respawn protection.
|
|
|
|
|
- Added dmflags2 cvar, and consolidated weapondrop and nobfgaim into it. Also
|
|
|
|
|
implemented Skull Tag's respawn protection and barrel respawning into it.
|
|
|
|
|
- Added the FFlagCVar class. This just maps onto a FIntCVar (i.e. dmflags)
|
|
|
|
|
and allows a more meaningful way for the user to manipulate it than by
|
|
|
|
|
changing bit values directly.
|
|
|
|
|
|
|
|
|
|
June 27, 2000
|
|
|
|
|
- Removed the restriction in ChangeCamera that it can only change the
|
|
|
|
|
player's view to SecurityCameras. Now the proper way to activate a
|
|
|
|
|
moving camera is to use both ChangeCamera and Thing_Activate. ChangeCamera
|
|
|
|
|
sets the player's view to the camera, and Thing_Activate gets it moving.
|
|
|
|
|
- Changed the automap so that changes to the am_*color cvars take effect
|
|
|
|
|
immediately instead of the next time the automap is toggled.
|
|
|
|
|
|
|
|
|
|
June 26, 2000
|
|
|
|
|
- Got rid of cvar_t and switched to a subclassable FBaseCVar class. Now the
|
|
|
|
|
game actively recognizes different cvar types.
|
|
|
|
|
|
|
|
|
|
June 14, 2000
|
|
|
|
|
- The -iwad parameter can now specify a directory, as in BOOM.
|
|
|
|
|
- Changed -warp parameter so that using -warp x with ExMx games will use
|
|
|
|
|
episode 1, map x instead of episode x, map unknown.
|
|
|
|
|
- Added a dialog box to select the IWAD to use if the game finds more than
|
|
|
|
|
one.
|
|
|
|
|
- Switched the compression library from mini-LZO to zlib. Zlib gives better
|
|
|
|
|
compression, but still seems pretty fast (hard to judge on a P2-350 :-).
|
|
|
|
|
More importantly, zlib is not GPL (it has a BSD-style license) and I can't
|
|
|
|
|
have something so relatively minor as a compression library trying to attach
|
|
|
|
|
its license terms to the included Heretic and Hexen source, which are not
|
|
|
|
|
GPL.
|
|
|
|
|
|
|
|
|
|
June 10, 2000
|
|
|
|
|
- Modified FindLevelByNum() to check that a map exists before returning a
|
|
|
|
|
level with that number, because I have Doom 1 and 2 using the same levelnums
|
|
|
|
|
for different maps.
|
|
|
|
|
|
|
|
|
|
June 7, 2000
|
|
|
|
|
- Added MF3_SKINNED flag to prevent sprite changing when calling SetState().
|
|
|
|
|
- Added fallingdamage and nofallingdamage MAPINFO flags.
|
|
|
|
|
- Added support for RIFF CDDA files.
|
|
|
|
|
- Added support for CD tracks as music. The cdtrack and cdid MAPINFO keys can
|
|
|
|
|
be used to select it for a specific map.
|
|
|
|
|
|
|
|
|
|
June 6, 2000
|
|
|
|
|
- Added the CVAR_NOINITCALL flag to allow for cvars with callbacks that
|
|
|
|
|
aren't called automatically during initialization.
|
|
|
|
|
|
|
|
|
|
June 5, 2000
|
|
|
|
|
- Moved all the CD-related MCI calls into a separate thread in an attempt to
|
|
|
|
|
avoid pauses when looping a CD track. A ring buffer is used to send
|
|
|
|
|
commands from the main thread to the helper thread. Unfortunately, the game
|
|
|
|
|
still stalls on MCI_PLAY commands. Apparently, every thread in the process
|
|
|
|
|
calling mciSendCommand() is halted until the play has begun. :-( Even
|
|
|
|
|
though the separate thread turned out to be useless, I'm keeping this
|
|
|
|
|
architecture, because if there is someway to avoid the pause, it probably
|
|
|
|
|
won't be by using the game thread for CD control.
|
|
|
|
|
|
|
|
|
|
June 3, 2000
|
|
|
|
|
- Started work on CD support after (finally) finding information about using
|
|
|
|
|
different CD drives hidden in the Microsoft Knowledgebase.
|
|
|
|
|
- Added Win32 clipboard support (copy & paste) to the console and chat mode.
|
|
|
|
|
|
|
|
|
|
May 29, 2000
|
|
|
|
|
- Implemented some spiffy interpolated path stuff: APathFollower,
|
|
|
|
|
AMovingCamera, and AActorMover.
|
|
|
|
|
- SetPlayerProperty should work in open scripts now. Needed to make sure it
|
|
|
|
|
was non-NULL.
|
|
|
|
|
|
|
|
|
|
May 24, 2000
|
|
|
|
|
- Did a release build under Win98, and it took ~4.25 minutes to link--about
|
|
|
|
|
twice as long as NT. Ack!
|
|
|
|
|
- Fixed improperly freeing a MUSSong after playing a MIDI. I guess
|
|
|
|
|
redefined virtual member functions for subclasses don't work in a
|
|
|
|
|
superclass's destructor. (Which makes sense, since the subclass's stuff
|
|
|
|
|
is already gone by the time any classes it's derived from destruct.) So
|
|
|
|
|
I replaced MIDISong::IsMUS() with a variable MUSSong::m_IsMUS.
|
|
|
|
|
|
|
|
|
|
May 2, 2000
|
|
|
|
|
- Seem to have fixed 3D sound crashes; listener position and velocity were
|
|
|
|
|
being calculated using FLOAT2FIXED instead of FIXED2FLOAT, so they were
|
|
|
|
|
very big and apparently overflowed the drivers. Unfortunately, the sounds
|
|
|
|
|
are really noisy.
|
|
|
|
|
|
|
|
|
|
April 28, 2000
|
|
|
|
|
- Revised the event system by creating a generic EV_GUI_Event type in
|
|
|
|
|
anticipation of creating at least a minimal windowing system. The console
|
|
|
|
|
now uses this system for input, which will hopefully resolve certain
|
|
|
|
|
console key down misses under NT. (Running 98 right now, so can't check.)
|
|
|
|
|
|
|
|
|
|
April 27, 2000
|
|
|
|
|
- Tried to add 3D sound support. Gave up after several nasty crashes that
|
|
|
|
|
left me with no clue what I was doing wrong.
|
|
|
|
|
|
|
|
|
|
April 13, 2000
|
|
|
|
|
- Fixed P_DamageMobj not pushing things if the source was a player.
|
|
|
|
|
|
|
|
|
|
April 11, 2000
|
|
|
|
|
- Increased map and world variable counts to the amounts Ty Halderman raised
|
|
|
|
|
them to in acc.
|
|
|
|
|
- Implemented clearinventory, checkinventory, giveinventory, and takeinventory
|
|
|
|
|
ACS functions. Still need to test them.
|
|
|
|
|
- Added support for playing a specific order of a MOD and changing the song
|
|
|
|
|
from ACS.
|
|
|
|
|
|
|
|
|
|
April 10, 2000
|
|
|
|
|
- Skins with sounds that precede the S_SKIN identifier now work. A side-effect
|
|
|
|
|
of this is that skin wads can no longer replace non-skin resources. (This is
|
|
|
|
|
intentional.)
|
|
|
|
|
- Added the sc_carry_players type to DScroller, which only carries players
|
|
|
|
|
(hence the name), to match Heretic and Hexen.
|
|
|
|
|
- Added an MF3_CARRIED flag to keep track of which actors have been pushed
|
|
|
|
|
by a DScroller, so that adjacent small sectors with the same scrolliness
|
|
|
|
|
do not have cumulative effects on a thing.
|
|
|
|
|
- Changed I_StartSound to let FMOD pick a free channel at the suggestion
|
|
|
|
|
someone e-mailed to me. It still seems to work for me, and hopefully it
|
|
|
|
|
will work for everyone else now, too.
|
|
|
|
|
|
|
|
|
|
April 4, 2000
|
|
|
|
|
- Why did I decide to use the MFC names for the macros RUNTIME_TYPE and
|
|
|
|
|
RUNTIME_CLASS? It's confusing. _TYPE: Return the TypeInfo for an existing
|
|
|
|
|
instance of an object. _CLASS: Return the TypeInfo for a class.
|
|
|
|
|
- Fixed running with -nosfx crashing the game when trying to play a MOD/MP3.
|
|
|
|
|
|
|
|
|
|
April 3, 2000
|
|
|
|
|
- Change P_Move() again so that monsters stepping down steps move down
|
|
|
|
|
immediately instead of falling under gravity because it looks better.
|
|
|
|
|
- Changed FMOD initialization sequence to be more tolerant of failure.
|
|
|
|
|
- Added checks for self->target to the A_FatAttack? routines.
|
|
|
|
|
|
|
|
|
|
March 29, 2000
|
|
|
|
|
- Fixed dehacked patches changing "BFG Cells/Shot".
|
|
|
|
|
- Fixed PickPrevWeapon to properly wrap from low to slot 0 to 9.
|
|
|
|
|
|
|
|
|
|
March 28, 2000
|
|
|
|
|
- Added the ACS internal functions spawn and spawnspot. Also added support
|
|
|
|
|
internal functions with optional parameters to acc.
|
|
|
|
|
- Fixed console not maintaining correct text color when splitting lines.
|
|
|
|
|
|
|
|
|
|
March 27, 2000
|
|
|
|
|
- Fixed ACS sound commands only supporting volumes 0 and 127 (was not
|
|
|
|
|
converting to float when dividing).
|
|
|
|
|
- Changed the status bar number drawers to round down to the closest "good"
|
|
|
|
|
number if the space allocated for the number's display is too small.
|
|
|
|
|
- Changed friendly fire so that it is a scaler like UT, and not a simple
|
|
|
|
|
on-off dmflag. Of course, this means it's a cvar now.
|
|
|
|
|
- Changed teamplay so you can still hurt yourself even if you can't hurt your
|
|
|
|
|
teammates. You can also telefrag teammates now in those instances where you
|
|
|
|
|
happen to respawn where a teammate is standing.
|
|
|
|
|
- Added MF3_NOTARGET flag so that Heretic bosses can be ignored if they happen
|
|
|
|
|
to hurt something, but Doom bosses are not.
|
|
|
|
|
- Added a playerinfo command to peek at the userinfo for any player in
|
|
|
|
|
the game.
|
|
|
|
|
- Fixed D_ReadUserInfoStrings() ignoring the last value in a compacted
|
|
|
|
|
userinfo list, causing neverswitchonpickup to not be replicated during
|
|
|
|
|
netgame startup.
|
|
|
|
|
|
|
|
|
|
March 25, 2000
|
|
|
|
|
- Skins with no frames get removed from the list.
|
|
|
|
|
- Duplicate skins get renamed to avoid conflicts.
|
|
|
|
|
|
|
|
|
|
March 24, 2000
|
|
|
|
|
- Fixed crash when running with +set developer 1.
|
|
|
|
|
- Fixed savegame slots drawn too high in the Doom menus. (I unwittingly
|
|
|
|
|
raised them at some point.)
|
|
|
|
|
- Turend off auto-monster respawning on skill 4 when not playing Doom.
|
|
|
|
|
- Fixed locked, repeatable, local doors being translated with their tags
|
|
|
|
|
intact (should be 0).
|
|
|
|
|
- Disabled highlighting of teleport lines if their activation type is
|
|
|
|
|
monster cross.
|
|
|
|
|
- Added support for Doom maps that use teleport dests in sectors with 0 tags.
|
|
|
|
|
- Fixed Heretic stair speeds (was 1/4 too slow, because they were going at
|
|
|
|
|
Doom speed).
|
|
|
|
|
- Fixed cursor drawn in wrong column on video modes menu. (184 is not the
|
|
|
|
|
same as 104.)
|
|
|
|
|
|
|
|
|
|
March 13, 2000
|
|
|
|
|
- Linking the release build now takes 2:35. :-(
|
|
|
|
|
- Added some more debug output to i_sound.cpp.
|
|
|
|
|
- Added a hack to PIT_RadiusAttack() to make the Romero head easier to hit.
|
|
|
|
|
- Fixed rippers doing no damage because P_CreateSecNodList() altered tmthing.
|
|
|
|
|
- Fixed the holdatkstate used by the powered-up phoenix rod.
|
|
|
|
|
- Fixed "bouncing" problems when standing still on the waggly muck in
|
|
|
|
|
Hexen map08.
|
|
|
|
|
- Discovered only players were having their z velocity reset to 0 when they
|
|
|
|
|
hit the floor. Fixed. Now I don't need the MF_CRASHED flag I added earlier.
|
|
|
|
|
- Made demon scroller more efficient.
|
|
|
|
|
- Fixed bunny scroller showing end screen for first 230 tics.
|
|
|
|
|
- Changed quit message for non-Doom games.
|
|
|
|
|
|
|
|
|
|
March 8, 2000
|
|
|
|
|
- Fixed New Game menu not displaying properly with Ultimate Doom.
|
|
|
|
|
- Made FImageCollection::Uninit() more complete to avoid potential problems
|
|
|
|
|
when turning off the crosshair.
|
|
|
|
|
|
|
|
|
|
March 6, 2000
|
|
|
|
|
- Stepping out of a floorclipping sector now adjusts the player's viewheight.
|
|
|
|
|
- Added the Hexen decorations.
|
|
|
|
|
|
|
|
|
|
March 5, 2000
|
|
|
|
|
- Tweaked P_CheckPosition() some more.
|
|
|
|
|
- Changed DThinker::DestroyAllThinkers() to call EndFrame() after each
|
|
|
|
|
thinker gets destroyed.
|
|
|
|
|
|
|
|
|
|
March 2, 2000
|
|
|
|
|
- Fixed console not showing top line of its buffer.
|
|
|
|
|
- Made some DeHackEd compatibility fixes.
|
|
|
|
|
- Fixed stealth Hell Knight having same doomednum as stealth Baron.
|
|
|
|
|
- Changed sound code to not override sounds with the same priority. Fixes
|
|
|
|
|
continuous ambient sounds fighting for the same channel in low channel
|
|
|
|
|
environments. (e.g. only one sfx channel)
|
|
|
|
|
- Fixed the monster morphers to transfer tids and specials to the morphed
|
|
|
|
|
monsters.
|
|
|
|
|
- Fixed ambient sounds replaying too soon (i.e. one tic after they start).
|
|
|
|
|
- Changed DoLoad in i_sound.cpp to use FSOUND_Sample_Upload instead of
|
|
|
|
|
FSOUND_Sample_Lock. Hopefully will fix sound problems on some cards.
|
|
|
|
|
- Fixed PatchAmmo() not checking to make sure a weapon is present before
|
|
|
|
|
checking its ammo member.
|
|
|
|
|
|
|
|
|
|
March 1, 2000
|
|
|
|
|
- Added dummy entries for the splash sounds to the Doom section of zdoom.wad's
|
|
|
|
|
SNDINFO to avoid warnings when starting Doom.
|
|
|
|
|
- Set BaronOfHell to proper mass.
|
|
|
|
|
- Modified DObject::DestroyScan (both versions) to scan each sector's
|
|
|
|
|
soundtarget field if a destroyed object is a PlayerPawn and clear
|
|
|
|
|
matching fields.
|
|
|
|
|
- Made jumping velocity a PlayerPawn property
|
|
|
|
|
- Set MF3_DONTSPLASH for chicken feathers.
|
|
|
|
|
- Fixed Heretic secret level exits.
|
|
|
|
|
- Fixed imps/lost souls slamming into things and crashing because they
|
|
|
|
|
ended up calling P_CheckPosition recursively.
|
|
|
|
|
- Fixed crashing when trying to scroll past the top of options menus that
|
|
|
|
|
fit entirely on the screen.
|
|
|
|
|
- Added Hexen cheats. (Note that not all Heretic and Hexen cheats are
|
|
|
|
|
implemented, because I didn't feel it was worth reimplementing their
|
|
|
|
|
behavior--such as Heretic's gimme or Hexen's version of the same).
|
|
|
|
|
|
|
|
|
|
February 29, 2000
|
|
|
|
|
- Redid cheat parser and added Heretic cheats.
|
|
|
|
|
- Added heretic.wad, heretic1.wad, and hexen.wad to the list of iwads
|
|
|
|
|
searched for.
|
|
|
|
|
- Fixed to properly detect and use shareware heretic1.wad.
|
|
|
|
|
- Fixed morphed player making normal player pain sounds.
|
|
|
|
|
- Fixed P_MorphPlayer not setting camera and morphTics.
|
|
|
|
|
- Fixed activated monsters not triggering SPAC_MCROSS lines, because
|
|
|
|
|
AActor::Activate was clearing everything in flags2. (Used ! instead of ~).
|
|
|
|
|
- Fixed mapthings being spawned with wrong angles due to round-off error.
|
|
|
|
|
- FWeaponSlot::AddWeapon no longer adds a single weapon to a slot more than
|
|
|
|
|
once. Fixes nextweap not working with fast monsters. They were added once
|
|
|
|
|
at init time, and again when fast monsters were set.
|
|
|
|
|
- Added LeavingIntermission state for intermission to avoid trying to draw
|
|
|
|
|
after the graphics have been freed.
|
|
|
|
|
- Loaded BigFont for Doom game.
|
|
|
|
|
|
|
|
|
|
February 27, 2000
|
|
|
|
|
- Implemented infinite ammo option for Heretic weapons.
|
|
|
|
|
- Set particle fountain heights back to 0 (missed them during conversion).
|
|
|
|
|
- Added option to flip player view in player setup menu between front
|
|
|
|
|
and back.
|
|
|
|
|
- Fixed stepping onto a thing and getting stuck inside another thing
|
|
|
|
|
above you.
|
|
|
|
|
- Fixed crash when starting with -loadgame.
|
|
|
|
|
- Fixed moving into walls when on top of things (such as when killing
|
|
|
|
|
something next to a wall with gauntlets and being pulled forward on top
|
|
|
|
|
of the dead thing before it clears MF_SOLID).
|
|
|
|
|
- Fixed text aligned improperly at high resolutions on the intermission's
|
|
|
|
|
"now entering" screen.
|
|
|
|
|
- Fixed missiles climbing up steps before exploding (very noticeable with
|
|
|
|
|
mace balls.)
|
|
|
|
|
- Gave AMaceFX1 MF_DROPOFF. (It was missing it.)
|
|
|
|
|
- Fixed P_HitFloor to return true/false based on the floor's liquid status.
|
|
|
|
|
- Fixed Heretic weapons drawn too high at high resolutions with st_scale 0.
|
|
|
|
|
- Fixed mummies not attacking you. Forgot to uncomment some stuff I had
|
|
|
|
|
commented out for checking the collision detection.
|
|
|
|
|
|
|
|
|
|
February 25, 2000
|
|
|
|
|
- Did a release build and timed it as ~70 seconds spent linking.
|
|
|
|
|
- Disabled messagemode when confirmation messages are up.
|
|
|
|
|
- Switched to the console font to display key names in the controls menu,
|
|
|
|
|
because the Raven fonts don't have enough characters for all the keys.
|
|
|
|
|
|
|
|
|
|
February 24, 2000
|
|
|
|
|
- Gave the Heretic imp chunks masses of 5 so they make small splashes.
|
|
|
|
|
- Made the color for locked doors default to green.
|
|
|
|
|
- Added more items to the controls menu and made it scrollable.
|
|
|
|
|
- Doom, Heretic, and Hexen now use separate config files.
|
|
|
|
|
|
|
|
|
|
February 23, 2000
|
|
|
|
|
- Added support for a TERRAIN lump.
|
|
|
|
|
|
|
|
|
|
February 22, 2000
|
|
|
|
|
- Added translations for Heretic's skullrod rain, lifegem, and player cape.
|
|
|
|
|
|
|
|
|
|
February 21, 2000
|
|
|
|
|
- Tried making the chasecam use the player's viewheight to smoothly move
|
|
|
|
|
itself up when the player stepped up, but it looked odd to see the player
|
|
|
|
|
jump up while the camera moved smoothly, so I took it out.
|
|
|
|
|
- Wrote 4 different iterators for P_ChangeSector that should be able to
|
|
|
|
|
properly handle moving things standing on top of other things. Such
|
|
|
|
|
situations were completely ignored before.
|
|
|
|
|
- Removed limit on intercepts.
|
|
|
|
|
|
|
|
|
|
February 20, 2000
|
|
|
|
|
- Fixed setting skill from menu when fullscreen console is active.
|
|
|
|
|
|
|
|
|
|
February 18, 2000
|
|
|
|
|
- Fixed annoying screen "jiggling" when jumping up onto ledges.
|
|
|
|
|
- Fixed Plat_DownByValue handling.
|
|
|
|
|
- Fixed a lockup problem in situations where stairs are triggered and then
|
|
|
|
|
retriggered, but from the opposite end.
|
|
|
|
|
|
|
|
|
|
February 15, 2000
|
|
|
|
|
- Fixed the display of the player's name on spynext/prev.
|
|
|
|
|
- Added the FHUDMessage class and change C_MidPrint to use it. This class
|
|
|
|
|
can be used to display text at any location on-screen and is patterned
|
|
|
|
|
after Half-Life's text messages. Additional effects besides plain on and
|
|
|
|
|
off are accomplished by subclassing it.
|
|
|
|
|
- Reimplemented Doom's status bar.
|
|
|
|
|
- Fixed instances when bots were not respawning themselves.
|
|
|
|
|
- Fixed bodyque so that it is actually used again.
|
|
|
|
|
- Fixed an (obscure?) error when a thinker destroys the next thinker
|
|
|
|
|
scheduled for thinking while it thinks. The problem can be reproduced
|
|
|
|
|
with the following steps using a deathmatch map with only one start, one
|
|
|
|
|
player, and weapondrop on: 1. You spawn. 2. You spawn a bot without moving.
|
|
|
|
|
3. The bot telefrags you. 4. You drop a clip, then the bot picks it up
|
|
|
|
|
when it moves and destroys it. 5. Because DThinker::RunThinkers() had cached
|
|
|
|
|
the next thinker, it doesn't know the clip was destroyed and tries to make
|
|
|
|
|
it think. The clip thinks, and relinks itself into the world, and causes a
|
|
|
|
|
whole bunch of problems.
|
|
|
|
|
|
|
|
|
|
February 14, 2000
|
|
|
|
|
- Tried separating the different game directories into static libraries to
|
|
|
|
|
see if that would reduce the link time. It didn't seem to have made
|
|
|
|
|
much of a difference, and some classes weren't being linked into the
|
|
|
|
|
executable, so I went back to linking everything together into a single
|
|
|
|
|
executable without any intermediate libraries. The different game
|
|
|
|
|
directories stayed, though, since I like the organization.
|
|
|
|
|
|
|
|
|
|
February 13, 2000
|
|
|
|
|
- Made the Heretic and Hexen scrollers accurately mimic their counterparts
|
|
|
|
|
from those games.
|
|
|
|
|
- Added more endgame types, including a customizable picture viewer.
|
|
|
|
|
|
|
|
|
|
February 12, 2000
|
|
|
|
|
- Also in the way of movement code, I fixed a problem that caused the
|
|
|
|
|
player's view to jump drastically when jumping onto another thing,
|
|
|
|
|
because I was using the player's z in two places where it should have
|
|
|
|
|
been the other thing's z.
|
|
|
|
|
- After much juggling, I believe I finally have the movement code fixed so
|
|
|
|
|
that floating monsters won't float themselves into other monsters. Testing
|
|
|
|
|
was done in Heretic E1M1 by summoning a bunch of mummies and wizards.
|
|
|
|
|
I also cleaned up P_FakeZMovement() so that it's much leaner. I was able
|
|
|
|
|
to find the following causes of the problem: 1. When monsters went up
|
|
|
|
|
steps, they didn't check to make sure there was nothing in the way above
|
|
|
|
|
them. 2. When P_CheckOnmobj() found a monster's move to be blocked, the
|
|
|
|
|
monster could still float down inside the head of it's blocker, causing
|
|
|
|
|
the blocking monster to get stuck until it floated up again.
|
|
|
|
|
|
|
|
|
|
February 9, 2000
|
|
|
|
|
- Added fixeddiv, fixedmul, setgravity, and setaircontrol commands to acs.
|
|
|
|
|
- Added floorclipping from Hexen/Heretic.
|
|
|
|
|
- Moved the turn180 code over to P_PlayerThink.
|
|
|
|
|
|
|
|
|
|
February 2, 2000
|
|
|
|
|
- Got ZDoom to link against ELK and run. While trying to get a setup that
|
|
|
|
|
worked properly with the Scheme reset procedure, I accidentally got a
|
|
|
|
|
setup where Scheme code was calling the main loop every tic. The result
|
|
|
|
|
was that it had to garbage collect a lot. And then I realized that
|
|
|
|
|
Scheme is not the way to go for implementing a real-time game scripting
|
|
|
|
|
language. If the GC has to work a lot when we only call a single
|
|
|
|
|
procedure 35 times a second, think how horrible it would be if 100
|
|
|
|
|
different procedures were called that often (for 100 different actors).
|
|
|
|
|
Ugh. I think I'll do something with ACS instead.
|
|
|
|
|
|
|
|
|
|
February 1, 2000
|
|
|
|
|
- Got ELK (Extension Language Kit) to compile into a usable library. The
|
|
|
|
|
idea was to use it as a simple way for the end user to create new action
|
|
|
|
|
functions for actors.
|
|
|
|
|
|
|
|
|
|
January 1, 2000
|
|
|
|
|
- Fixed P_FakeZMovement so it knows about underwater movement.
|
|
|
|
|
- Added a workaround for the imps continuosly performing their crashstate.
|
|
|
|
|
When P_ZMovement sets the crashstate, it also sets a MF_CRASHED flag, so
|
|
|
|
|
it knows not to do it again. I can't see why Heretic doesn't exhibit
|
|
|
|
|
the same problem. :-(
|
|
|
|
|
|
|
|
|
|
December 30, 1999
|
|
|
|
|
- Changed the changemap command to return harmlessly if called without an
|
|
|
|
|
instigator.
|
|
|
|
|
- Tried adding the Heretic Imp, and it worked, kind of; the imps continuosly
|
|
|
|
|
spew chunks of flesh when they hit the ground after death.
|
|
|
|
|
|
|
|
|
|
December 29, 1999
|
|
|
|
|
- Changed mobjinfo handling so they get set by a class' SetDefaults() method.
|
|
|
|
|
This means that every actor needs to have its own class, but they get more
|
|
|
|
|
control over their defaults depending on the game mode, and it also
|
|
|
|
|
condenses code some, because they only need to list the values different
|
|
|
|
|
from the actor defaults.
|
|
|
|
|
|
|
|
|
|
December 17, 1999
|
|
|
|
|
- Added the dumpmapthings command.
|
|
|
|
|
- Removed the testgibs cvar.
|
|
|
|
|
- Added angle and speed parameters to security cameras, so now they can turn
|
|
|
|
|
like Duke's. Also add pitch parameter.
|
|
|
|
|
- Made ambient sounds recognize activate and deactivate.
|
|
|
|
|
- In DCajunMaster::FakeFire(), the maximum distance a bot will trace is now
|
|
|
|
|
SAFE_SELF_MISDIST. Since they will fire if the trace would have hit
|
|
|
|
|
something past this, there's no sense in wasting time going further if the
|
|
|
|
|
trace hasn't hit anything by the time it gets that far away.
|
|
|
|
|
|
|
|
|
|
December 16, 1999
|
|
|
|
|
- Set the default for fullscreen under Win32 back to 1. Not sure why I had
|
|
|
|
|
it at 0.
|
|
|
|
|
- Made mobjinfos dynamic so they don't need to be in one monolithic info.cpp.
|
|
|
|
|
Now they can be in the file with their related code, and subclassing AActor
|
|
|
|
|
is useful.
|
|
|
|
|
|
|
|
|
|
December 12, 1999
|
|
|
|
|
- Changed DPolyAction::m_Dist to be signed. I'm not sure why I changed it
|
|
|
|
|
to unsigned, because there are lots of places where it gets checked if
|
|
|
|
|
it's less than zero.
|
|
|
|
|
- Added sorting of the cvars that get sent during netgame arbitration. In
|
|
|
|
|
the old system, they were sent out in whatever order they were registered,
|
|
|
|
|
which was compiler-dependant. This worked fine when playing against a copy
|
|
|
|
|
built with the same compiler, but broke when trying to play a version
|
|
|
|
|
built with a different compiler. Thus, Windows, Linux, and OSF/1 versions
|
|
|
|
|
could not play each other.
|
|
|
|
|
|
|
|
|
|
December 11, 1999
|
|
|
|
|
- Made some changes to get the code to compile and run without
|
|
|
|
|
unaligned accesses on Alpha processors. ZDoom will now compile and run
|
|
|
|
|
under OSF/1. It appears to play ordinary Doom levels properly. Levels
|
|
|
|
|
with Hexen features will crash it, and savegames seem to have problems,
|
|
|
|
|
too. (Some of which, I think, is attributable to using LZO for
|
|
|
|
|
compression. It apparently isn't 64-bit friendly.)
|
|
|
|
|
|
|
|
|
|
November 30, 1999
|
|
|
|
|
- Made the Scroll_Texture_Both and TranslucentLine specials dynamic.
|
|
|
|
|
That is, they can be used from inside the game after the level is
|
|
|
|
|
loaded.
|
|
|
|
|
|
|
|
|
|
November 26, 1999
|
|
|
|
|
- Added the hud_scale cvar to control scaling of the fullscreen hud.
|
|
|
|
|
- Removed targettic from AActor, because it's no longer meaningful (and
|
|
|
|
|
hasn't been for quite a while). Replaced it with dummies in the
|
|
|
|
|
AActor serializer so that savegame compatibility can be retained.
|
|
|
|
|
- Fixed a next thinker determination problem in DThinker::RunThinkers().
|
|
|
|
|
A thinker can destroy itself during its RunThink(), so the next thinker
|
|
|
|
|
to run needs to be determined before we run the current thinker, not
|
|
|
|
|
after.
|
|
|
|
|
- Added calls to I_FinishUpdateNoBlit() and I_BeginUpdate() at
|
|
|
|
|
strategic locations in R_RenderPlayerView().
|
|
|
|
|
|
|
|
|
|
November 25, 1999
|
|
|
|
|
- Removed the outer layer of compression from savegames. Since all
|
|
|
|
|
the snapshots in the savegame are already compressed, compressing
|
|
|
|
|
them again will do little good.
|
|
|
|
|
- Fixed archiving of defered ACS scripts. There were actually two
|
|
|
|
|
problems here. One, if there were any, it would get stuck in an
|
|
|
|
|
infinite loop. Two, they were being saved in a format different
|
|
|
|
|
from what they were being loaded as.
|
|
|
|
|
- Fixed the operation of FLZOMemFile's serializer so that it restores
|
|
|
|
|
to the state it was archived in (e.g. an imploded file stored in
|
|
|
|
|
m_ImplodedBuffer, as opposed to an uncompressed file stored in
|
|
|
|
|
m_BUffer).
|
|
|
|
|
|
|
|
|
|
November 24, 1999
|
|
|
|
|
- Fixed BOOM generalized locked doors so that the open/close type will
|
|
|
|
|
actually close.
|
|
|
|
|
|
|
|
|
|
November 23, 1999
|
|
|
|
|
- Machines that use -join will now select their port automatically.
|
|
|
|
|
- Here's another problem the bots helped me catch: DThinker::
|
|
|
|
|
DestroyAllThinkers() was still deleting each thinker. The correct
|
|
|
|
|
approach now is to call Destroy() on each thinker, and then call
|
|
|
|
|
DObject::EndFrame() to perform the actual deletion.
|
|
|
|
|
- Those bots are great for stress testing. Thanks to them, I was able to
|
|
|
|
|
find and correct a problem with my Destroy() implementation: DThinker
|
|
|
|
|
also needs to implement Destroy() to get the object out of the thinker
|
|
|
|
|
list. Otherwise, you can do things like destroy an actor, then have
|
|
|
|
|
the thinking code move it before it gets removed from the thinker list,
|
|
|
|
|
which leaves the block and/or sector pointers messed up and causes all
|
|
|
|
|
sorts of odd and nasty behavior.
|
|
|
|
|
|
|
|
|
|
October 27, 1999
|
|
|
|
|
- Added my own fixes for -host and -join to handle aborts better.
|
|
|
|
|
- Tweaked underwater friction in P_GetFriction().
|
|
|
|
|
- Added Jeffrey Cuenco's fixes for the -host and -join parameters.
|
|
|
|
|
|
|
|
|
|
October 26, 1999
|
|
|
|
|
- Added a check in A_Scream() to make sure the actor has a death sound.
|
|
|
|
|
- Fixed demo sync problems caused by playing demos back with a cl_pufftype
|
|
|
|
|
different from what they were recorded with. I have no idea why it should
|
|
|
|
|
make a difference, since the puffs are supposed to be inert, but spawning
|
|
|
|
|
them and keeping them hidden when cl_pufftype is 1 fixes the problem.
|
|
|
|
|
- Implemented stale pointer cleaning. If you want to remove an object now,
|
|
|
|
|
call its Destroy() method instead of deleting it. The object will be
|
|
|
|
|
placed in a queue. At the end of the frame, all objects will be scanned
|
|
|
|
|
for references to objects in the queue, and any references that are found
|
|
|
|
|
will be NULLed. Then the objects will be deleted.
|
|
|
|
|
|
|
|
|
|
Any objects that have (DObject *) (or some subclass of DObject) members
|
|
|
|
|
need to be implemented with the IMPLEMENT_POINTY_SERIAL or
|
|
|
|
|
IMPLEMENT_POINTY_CLASS macros. See the implementation of AActor in
|
|
|
|
|
p_mobj.cpp for an example of their use.
|
|
|
|
|
|
|
|
|
|
September 15, 1999
|
|
|
|
|
- Fixed a nasty bug when saving big games. FArchive used pointers into the
|
|
|
|
|
m_ObjectMap array when mapping objects to indices. Now it uses indices
|
|
|
|
|
all the way through so that they will still remain valid if m_ObjectMap
|
|
|
|
|
has to grow.
|
|
|
|
|
- Reduced the rate at which arbitration packets are sent out to 4 times per
|
|
|
|
|
second. Combined with their reduced size, this will hopefully solve
|
|
|
|
|
problems I understand some people were having using 1.18 with DoomServ.
|
|
|
|
|
(Based on the assumption that their problems were caused by the lack of
|
|
|
|
|
bandwidth offered by modems.)
|
|
|
|
|
- Reduced the size of netgame arbitration packets by removing the names of
|
|
|
|
|
the cvars the values represent. When playing with the same copy of the
|
|
|
|
|
executable, these are implicit in the order in which the values appear in
|
|
|
|
|
the stream, so storing the name of the key is essentially redundant.
|
|
|
|
|
- Pulled out the original 1.18a source and fixed loading of savegames before
|
|
|
|
|
a new game is begun. The problem was in DCajunMaster::RemoveAllBots(),
|
|
|
|
|
where the consoleplayer's camera is restored to the console player if
|
|
|
|
|
viewing a bot. Before the game begins, the camera field is NULL. Also
|
|
|
|
|
changed caught recoverable errors so that bots are removed and level
|
|
|
|
|
snapshots are deleted.
|
|
|
|
|
|
|
|
|
|
September 12, 1999
|
|
|
|
|
- Made actor movement floating-point based. I had already done the fp time
|
|
|
|
|
system (to an extent) before I had to pull out the 1.18 source and fix
|
|
|
|
|
bugs. Gravity seems to be inversely proportional to the ticrate. Can't
|
|
|
|
|
figure out why.
|
|
|
|
|
|
|
|
|
|
Okay, I was stupid. I accidentally erased the version of the log file that
|
|
|
|
|
contained my changes from 1.18 to 1.18a.
|
|
|
|
|
|
|
|
|
|
September 5, 1999
|
|
|
|
|
- The +moveup and +movedown commands finally do something.
|
|
|
|
|
- Added a fly cheat.
|
|
|
|
|
- Changed the handling of action commands so that they increment and
|
|
|
|
|
decrement numbers in an array instead of setting and clearing bits in an
|
|
|
|
|
int.
|
|
|
|
|
- Fixed R_AlignFlat(). Apparently, I broke it sometime (or it never worked
|
|
|
|
|
properly in the first place). Also made it simpler.
|
|
|
|
|
|
|
|
|
|
September 3, 1999
|
|
|
|
|
- Added localambientsound and activatorsound ACS commands.
|
|
|
|
|
- Fixed the DLevelScript constructor to place new scripts in the array of
|
|
|
|
|
RunningScripts (if not ACS_ExecuteAlways).
|
|
|
|
|
|
|
|
|
|
September 2, 1999
|
|
|
|
|
- Replaced the error abort in FArchive.cpp when an attempt is made to store
|
|
|
|
|
a DObject, with a NULL object save instead. There are conditions that will
|
|
|
|
|
come up during regular gameplay that will result in dangling pointers.
|
|
|
|
|
Example: A lost soul attacks a monster. The attacked monster then sets its
|
|
|
|
|
target field to the lost soul. Something kills the lost soul, and it
|
|
|
|
|
destroys itself. The other monster is now left with a pointer to nowhere.
|
|
|
|
|
The only reasonable solution to this problem I can think of is to collect
|
|
|
|
|
a list of all objects that want to destroy themselves. At the end of each
|
|
|
|
|
tic, they get destroyed, *and* all thinkers are searched for pointers to
|
|
|
|
|
those object. If any pointers are found, they get NULLed.
|
|
|
|
|
|
|
|
|
|
September 1, 1999
|
|
|
|
|
- Significantly cleaned up G_ParseMapInfo(). It's easier to follow what it's
|
|
|
|
|
doing, and now it's smart enough to give you an error message if you make
|
|
|
|
|
a mistake in your MAPINFO lump instead of hanging.
|
|
|
|
|
- Added a flat warping effect similar to Quake's liquid textures.
|
|
|
|
|
|
|
|
|
|
August 31, 1999
|
|
|
|
|
- Added swimmable water. The forcewater cvar can be used to make all BOOM
|
|
|
|
|
deep water swimmable.
|
|
|
|
|
- C_MidPrint() now adds messages to the console as well as the middle of
|
|
|
|
|
the screen.
|
|
|
|
|
- Fixed the "you need a key" messages to only appear for the player who
|
|
|
|
|
tries to activate the locked door.
|
|
|
|
|
- Restored the code for storing server cvars in savegames.
|
|
|
|
|
|
|
|
|
|
August 30, 1999
|
|
|
|
|
- Made items respawn the default for -deathmatch.
|
|
|
|
|
- After creating some huge log files, I believe I finally fixed the demo
|
|
|
|
|
and network sync with bots. The bots use P_CheckPosition() to determine
|
|
|
|
|
if a spot is free. This function can also causes items to be picked up.
|
|
|
|
|
Thus, on the arbitrator's machine, bots pick up items before they do
|
|
|
|
|
on the other machines, and they can also pick up items that they decide
|
|
|
|
|
not to touch (and so don't pick them up on other machines). To fix, I
|
|
|
|
|
made a wrapper for the bots that turns off their MF_PICKUP flag before
|
|
|
|
|
performing the check and then sets it back after the check is made.
|
|
|
|
|
- Fixed the loading of the "straight-ahead" status bar graphics for skins.
|
|
|
|
|
The corresponding patches weren't being moved into the skin's namespace.
|
|
|
|
|
|
|
|
|
|
August 28, 1999
|
|
|
|
|
- Fixed the bot's FakeFire() so that it doesn't do damage to anything
|
|
|
|
|
that it might hit, by adding another thing instead of using MT_HEADSHOT.
|
|
|
|
|
- Another cause of the sync problem is in P_CheckSight(). If a monster
|
|
|
|
|
is invisible, a random number is used to determine if the thing
|
|
|
|
|
should be reported as not visible.
|
|
|
|
|
- Found part of the problem with bot sync: P_SpawnPlayerMissile() used
|
|
|
|
|
a special routine when a bot wanted to fire. The routine aimed at
|
|
|
|
|
whatever the bot's enemy was set at. Only on the arbitrary (and not
|
|
|
|
|
during demo playback), can enemy ever be non-NULL. Changed this to
|
|
|
|
|
just disable autoaim for bots. Should be effectively the same.
|
|
|
|
|
- Changed P_SpawnPlayerMissile() so that if a player has autoaim set to
|
|
|
|
|
0, it doesn't try adjusting the angle left and right.
|
|
|
|
|
- Fixed projectile velocities by using vector math. Doom calculated the
|
|
|
|
|
velocity on a 2D plane, then added in the vertical component.
|
|
|
|
|
- Fixed the bot's vertical aiming.
|
|
|
|
|
- Rewrote the parts of the Cajun that used degrees to use binary angles
|
|
|
|
|
instead.
|
|
|
|
|
- Changed the Cajun's TurnToAng() function to let it turn both left and
|
|
|
|
|
right, depending on which results in a shorter distance.
|
|
|
|
|
|
|
|
|
|
August 27, 1999
|
|
|
|
|
- Added the Cajun 0.97 code. Needs work yet: Bot looks up/down too far,
|
|
|
|
|
always turns right, demos don't stay in sync, and networking with bots
|
|
|
|
|
probably doesn't work either.
|
|
|
|
|
|
|
|
|
|
August 14, 1999
|
|
|
|
|
- Cleaned out a lot of the no longer relevant docs from the docs dir that
|
|
|
|
|
came from the Linux source.
|
|
|
|
|
- Changed IdentifyVersion() so that it can look for an IWAD in one of four
|
|
|
|
|
directories: current, program, $DOOMWADDIR, and $HOME. (The same search
|
|
|
|
|
order used by BOOM.)
|
|
|
|
|
|
|
|
|
|
August 13, 1999
|
|
|
|
|
- Fixed the DLevelScript constructor. (Using local vars with the same names
|
|
|
|
|
as member vars still isn't a good thing. :-)
|
|
|
|
|
|
|
|
|
|
August 12, 1999
|
|
|
|
|
- Made the vertical calculations in the renderer subpixel-accurate. This
|
|
|
|
|
negates some of the work I did on the 10th. A pity. Something also needs to
|
|
|
|
|
be done about the walls--they are horribly jittery.
|
|
|
|
|
- Moved the calculation of the initial texture coordinate out of the column
|
|
|
|
|
drawers and into their callers. Besides making the column drawers simpler,
|
|
|
|
|
it also allows for some optimizations of masked texture/sprite rendering,
|
|
|
|
|
where the initial coordinate is almost always 0.
|
|
|
|
|
- Added variable field of view. Use the fov command to change it.
|
|
|
|
|
|
|
|
|
|
August 11, 1999
|
|
|
|
|
- When using -nosound, MIDAS's dsmClearBufferFloat() sometimes tries to free
|
|
|
|
|
memory that isn't allocated (apparently already freed). To compensate, I
|
|
|
|
|
avoid initializing MIDAS when -nosound or -nosfx is specified instead of
|
|
|
|
|
setting MIDAS's nosound option.
|
|
|
|
|
- Found that when a stat display is active when the game is quit, a pure
|
|
|
|
|
virtual function call was being made. Unfortunately, when I tried to track
|
|
|
|
|
it down, the problem stopped.
|
|
|
|
|
- Optimized away two multiplies I had added to R_MapPlane() earlier. Oddly,
|
|
|
|
|
performance seems unaffected.
|
|
|
|
|
|
|
|
|
|
August 10, 1999
|
|
|
|
|
- Did some performance tuning for the yslope movement loop in
|
|
|
|
|
R_SetupFrame(). memmove() is not an intrinsic function, so I wrote some
|
|
|
|
|
loops that VC++ optimizes nicely. (Other optimizing compilers should be
|
|
|
|
|
able to do the job just as well.) I also split up the loop that calculates
|
|
|
|
|
the yslope values into three cases so that the body of the loop can be as
|
|
|
|
|
simple as possible.
|
|
|
|
|
It probably wasn't worth the effort...
|
|
|
|
|
- Changed P_SpawnPlayer to set player_t::attacker to NULL so that invalid
|
|
|
|
|
attackers aren't carried over across levels, which can cause the problems
|
|
|
|
|
if you try to save your game before being attacked on the new level.
|
|
|
|
|
- Finished reimplementing hub travel. The new code in FArchive worked
|
|
|
|
|
properly on the first try. (Yay!)
|
|
|
|
|
|
|
|
|
|
August 7, 1999
|
|
|
|
|
- Added some code to FArchive that distinguishes player-controlled actors
|
|
|
|
|
(but not voodoo dolls) so that the stored actors can be overridden by
|
|
|
|
|
explicitly spawned ones when travelling between levels in a hud. Untested,
|
|
|
|
|
but I think it should work.
|
|
|
|
|
- For curiosity's sake, a did a comparison of savegame sizes with 1.17c and
|
|
|
|
|
test9. The map tested was map29, just after spawning. The 1.17c snapshot
|
|
|
|
|
for the level was 99542 bytes uncompressed (20659 compressed). The test9
|
|
|
|
|
snapshot was 111786 bytes uncompressed (14824 compressed). So the new
|
|
|
|
|
archive format is bigger but compresses better, which I'll consider to be
|
|
|
|
|
a good thing, because snapshots are normally stored in memory in their
|
|
|
|
|
compressed state.
|
|
|
|
|
|
|
|
|
|
August 6, 1999
|
|
|
|
|
- Changed the tag changing behavior of W_CacheLumpNum(). Before, it would
|
|
|
|
|
always change a block's tag. Now, it will only change the tag if the new
|
|
|
|
|
one is less than the previous. This way, a block can be promoted from
|
|
|
|
|
PU_CACHE to PU_STATIC, but not the other way around. This was the cause
|
|
|
|
|
of intermittant bugs that were visible in st_new.cpp. ST_New uses some
|
|
|
|
|
graphics that also serve as sprite graphics. When those sprites are drawn,
|
|
|
|
|
their tags were changed to PU_CACHE, and with enough spawning, their data
|
|
|
|
|
could be overwritten, and st_new would never know.
|
|
|
|
|
|
|
|
|
|
August 5, 1999
|
|
|
|
|
- Changed M_Drawer() to use V_BreakLines() to split lines for prompt
|
|
|
|
|
messages, because it wasn't working right. Also fixed a bug in
|
|
|
|
|
V_BreakLines() so that now it will recognize blank lines.
|
|
|
|
|
- Added nofilecompression cvar to prevent compression of LZO files.
|
|
|
|
|
- Fixed savegames.
|
|
|
|
|
- Made the thinkers the first thing that gets serialized in a level
|
|
|
|
|
snapshot (instead of sectors and walls), because a sector's specialdata
|
|
|
|
|
fields might cause a thinker to be serialized. But when
|
|
|
|
|
DThinker::SerializeAll is called, it destroys all existing thinkers,
|
|
|
|
|
including the ones that were created while reading the sectors. Storing
|
|
|
|
|
the thinkers before anything else avoids this.
|
|
|
|
|
- Moved the serialization of player data into G_SerializeLevel. The bots
|
|
|
|
|
use pointers to some actors in their player_s, so we need to keep the
|
|
|
|
|
player data in the same context as the actors they reference. (i.e. They
|
|
|
|
|
need to go in the level snapshot instead of outside of them as was done
|
|
|
|
|
previously.)
|
|
|
|
|
- Also fixed a bug with FLZOFile::Write. If a large write request was made,
|
|
|
|
|
it would only double the amount of memory to store the file in, which
|
|
|
|
|
might not have been enough. Now it doubles it until the buffer is large
|
|
|
|
|
enough to store the new data.
|
|
|
|
|
- Figured out what was wrong with storing FLZOMemFiles in an archive: I was
|
|
|
|
|
forgetting to add the 8 bytes of header to the size of the block to write
|
|
|
|
|
out.
|
|
|
|
|
|
|
|
|
|
August 4, 1999
|
|
|
|
|
- Hubs somewhat work. Level data is properly stored on exit and loaded when
|
|
|
|
|
reentering the level. I just need to fix the player spawning. Savegames
|
|
|
|
|
are another matter. I seem to be having trouble embedding an FLZOMemFile
|
|
|
|
|
inside an archive. It appears to be getting saved properly, but trying to
|
|
|
|
|
decompress it crashes.
|
|
|
|
|
- Got the FArchive class working. It is now able to write out objects and
|
|
|
|
|
reconstruct them, filling in pointers as appropriate. Cool.
|
|
|
|
|
|
|
|
|
|
August 3, 1999
|
|
|
|
|
- Instead of relying on Z_FreeTags to remove all thinkers when a new level
|
|
|
|
|
is started, I now call DThinker::RemoveAllThinkers, so that any subclasses
|
|
|
|
|
of DThinker that have custom destructors can have them called. Currently,
|
|
|
|
|
the only one with a destructor is DACSThinker, which destroys all the
|
|
|
|
|
active scripts.
|
|
|
|
|
- Created a thinker responsible for running the ACS scripts, because it
|
|
|
|
|
makes serializing them easier.
|
|
|
|
|
- Moved some of the mobj handling functions into the AActor class. Most
|
|
|
|
|
notably, P_SpawnMobj and P_RemoveMobj are gone. Use the new and delete
|
|
|
|
|
operators instead. AActor has a constructor that takes the same parameters
|
|
|
|
|
as P_SpawnMobj, so converting old code to use new is easy enough.
|
|
|
|
|
|
|
|
|
|
August 1, 1999
|
|
|
|
|
- Changed the code in i_music.cpp to use a simple class hierarchy for
|
|
|
|
|
defining music formats and how to play them. This removed some (messy)
|
|
|
|
|
switch statements and the nameless unions (that I guess mingw32 chokes on).
|
|
|
|
|
- Rearranged the atterm functions so that I_ShutdownMusic() is called before
|
|
|
|
|
I_ShutdownSound() to prevent crashes when a MOD is playing at shutdown time.
|
|
|
|
|
|
|
|
|
|
July 31, 1999
|
|
|
|
|
- Removed the lists of active ceilings and plats, mainly because it makes
|
|
|
|
|
the serialization code simpler, but also because the same result can be
|
|
|
|
|
achieved (albeit more slowly) by searching the list of thinkers for each
|
|
|
|
|
instance of DCeiling or DPlat.
|
|
|
|
|
- Made the active buttons (button_t) and earthquakes (quake_t) subclasses of
|
|
|
|
|
DThinker (DActiveButton and DEarthquake, respectively).
|
|
|
|
|
- Created a TThinkerIterator template class to manage iterating through the
|
|
|
|
|
list of active thinkers.
|
|
|
|
|
|
|
|
|
|
July 28, 1999
|
|
|
|
|
- Ever since I added the extra network commands (like say) around a year ago,
|
|
|
|
|
I have been executing them the instant they arrived from the network. I
|
|
|
|
|
have only now figured out that this is wrong. They should be stored and
|
|
|
|
|
only executed when the gametic they arrived with is executed. With commands
|
|
|
|
|
like say, the timing is unimportant. With other commands, like changemap,
|
|
|
|
|
it can be vital that all machines execute the command on the same gametic.
|
|
|
|
|
- Made some changes to the ticcmd building code in d_net.cpp to compensate
|
|
|
|
|
for ticdups greater than 1 by dividing pitch and yaw deltas by the ticdup
|
|
|
|
|
value so that the end result of moving the mouse a certain distance is the
|
|
|
|
|
same as if a ticdup of 1 were used. This is also necessary to make bots
|
|
|
|
|
work with ticdups other than 1.
|
|
|
|
|
- Fixed the crazy bot turning. The cause? I was calculating angle deltas for
|
|
|
|
|
the bots' ticcmds based on their yaw when their think routine was called.
|
|
|
|
|
This is incorrect, because that yaw can incorrectly reflect the state of
|
|
|
|
|
the current gametic, because maketic can be more than 1 tic in advance of
|
|
|
|
|
gametic. The correct way is to take the bot's current yaw, add all the
|
|
|
|
|
deltas that haven't been played yet to it, and using the resulting yaw as
|
|
|
|
|
the base for the current maketic's yaw delta. In some ways, this is exactly
|
|
|
|
|
what you would also do for player prediction.
|
|
|
|
|
|
|
|
|
|
July 26, 1999
|
|
|
|
|
- Removed G_InitPlayer(). It was never used and just called G_PlayerReborn().
|
|
|
|
|
|
|
|
|
|
July 23, 1999
|
|
|
|
|
- Spent too many hours tracking down a circular #include dependancy I had
|
|
|
|
|
inadvertantly created yesterday.
|
|
|
|
|
|
|
|
|
|
July 22, 1999
|
|
|
|
|
- Did some work with the savegame serialization.
|
|
|
|
|
|
|
|
|
|
July 21, 1999
|
|
|
|
|
- Changed P_SpawnMapThing() to silently reject mapthings of type -1.
|
|
|
|
|
- Fixed kill command to restore player's MF_SHOOTABLE flag before doing the
|
|
|
|
|
damage.
|
|
|
|
|
- Changed bot observer mode to use noclip instead of noblockmap. Otherwise,
|
|
|
|
|
the player is unable to ride lifts while observing.
|
|
|
|
|
- The bot code spawns bglobal.body1 and bglobal.body2 actors to help with
|
|
|
|
|
aiming. The original code would carry pointers to these over between
|
|
|
|
|
levels, even though all actors disappear when travelling between levels.
|
|
|
|
|
Not a good thing. Fixed.
|
|
|
|
|
|
|
|
|
|
July 20, 1999
|
|
|
|
|
- Changed the network code so that now bots work in network games. Their
|
|
|
|
|
ticcmds are sent along with the arbitrator's to the other players in the
|
|
|
|
|
game. This way, only one computer is responsible for doing the bot
|
|
|
|
|
thinking. (BOOM's random number generator was extremely useful for this.)
|
|
|
|
|
Unfortunately, the bots seem to have trouble aiming with more than one
|
|
|
|
|
live player and often end up spinning wildly.
|
|
|
|
|
- Made weapondrop a server variable.
|
|
|
|
|
- Fixed bots so that they can be recorded in savegames. There were two things
|
|
|
|
|
preventing it before: 1) The bots ticcmd was being written directly to the
|
|
|
|
|
player structure instead of netcmds, so the demo writer never had a change
|
|
|
|
|
to see the bot's commands. 2) There are several places in the bot code that
|
|
|
|
|
fiddle with the bot's angle directly. The quick (and acceptable) fix was to
|
|
|
|
|
keep the fiddling in, but use the new angle to calculate the bot's ucmd.yaw
|
|
|
|
|
value and set its angle back to what it was before being fiddled.
|
|
|
|
|
- Delayed the call to I_InitMusic() in I_InitSound() until after MIDAS
|
|
|
|
|
is initialized. Also removed the call to I_ShutdownMusic() in I_InitSound(),
|
|
|
|
|
since I_ShutdownMusic() will be called automatically at exit.
|
|
|
|
|
|
|
|
|
|
July 19, 1999
|
|
|
|
|
- Made the network arbitrator changeable, so that if player 1 leaves the game,
|
|
|
|
|
someone will still be able to control things.
|
|
|
|
|
- Moved the call to I_FinishClockCalibration() before D_CheckNetGame().
|
|
|
|
|
|
|
|
|
|
July 17, 1999
|
|
|
|
|
- Changed several references in am_map.cpp from plr to the console player's
|
|
|
|
|
camera. Also added colors for inter- and intra-level teleporters.
|
|
|
|
|
- Changed P_PlayerThink() so that the game doesn't die if you try to add more
|
|
|
|
|
bots than there are coop starts (in a coop game, of course).
|
|
|
|
|
- Fixed removebots command so that if you are looking through a bot's eyes
|
|
|
|
|
when you remove the bots, your vision is restored to your own head.
|
|
|
|
|
|
|
|
|
|
July 16, 1999
|
|
|
|
|
- Fixed the rotation of player arrows in the rotating automap in coop games.
|
|
|
|
|
- Changed wipe_initBurn to allocate FIREHEIGHT+5 rows. Apparently FIREHEIGHT+4
|
|
|
|
|
wasn't enough.
|
|
|
|
|
- Fixed SN_StartSequence so that it doesn't attempt to play nonassigned
|
|
|
|
|
sequences. I had broken it when I separated part of the code into a
|
|
|
|
|
separate TwiddleSeqNum function.
|
|
|
|
|
|
|
|
|
|
July 14, 1999
|
|
|
|
|
- Moved the "VectorCopy (RailEnd, end);" line in P_RailAttack() in front of
|
|
|
|
|
the for loop.
|
|
|
|
|
|
|
|
|
|
July 12, 1999
|
|
|
|
|
- Enclosed the bot thinking code inside if (bglobal.botnum) {} blocks so that
|
|
|
|
|
no bot thinking occurs when there are no bots. Also defaulted bot_calcnodes
|
|
|
|
|
to 0. If a bot is spawned, and there are no nodes loaded, bot_calcnodes
|
|
|
|
|
will automatically be set to 1. Now the bots don't eat up any time if none
|
|
|
|
|
are present in the world.
|
|
|
|
|
- Added a generic FStat class. Different statistics can be measured and
|
|
|
|
|
reported by subclassing it. The console command "stat" provides the
|
|
|
|
|
interface to select which stats to view.
|
|
|
|
|
- You cannot directly call a constructor from inside another constructor to
|
|
|
|
|
help do initialization. Instead, you end up with a temporary object that
|
|
|
|
|
is destroyed immediately when the second constructor finishes. This was
|
|
|
|
|
causing crashes with wall scrollers, because their constructor was calling
|
|
|
|
|
the constructor for more general scrollers.
|
|
|
|
|
|
|
|
|
|
July 11, 1999
|
|
|
|
|
- Changed the bot code so that it doesn't go into multiplayer mode until
|
|
|
|
|
after a bot is spawned, so the game won't be in coop mode when players have
|
|
|
|
|
no intention of playing with bots.
|
|
|
|
|
|
|
|
|
|
July 10, 1999
|
|
|
|
|
- Changed ReplaceString() function to properly handle the case where the
|
|
|
|
|
string being replaced is the same as the new one.
|
|
|
|
|
- Cajun bot now runs under ZDoom, although some things aren't perfect (such
|
|
|
|
|
as skin color).
|
|
|
|
|
|
|
|
|
|
July 9, 1999
|
|
|
|
|
- Received the Cajun bot source. Started moving it to ZDoom.
|
|
|
|
|
|
|
|
|
|
July 7, 1999
|
|
|
|
|
- The sky can now scale horizontally as well as vertically (when using
|
|
|
|
|
r_stretchsky), so its aspect ratio is preserved when stretched.
|
|
|
|
|
- Redid the Wu line drawer to support 64 intensity levels and wrote a version
|
|
|
|
|
that used the translucency tables so that it could look good in overlayed
|
|
|
|
|
mode. Also cleaned up the code to make it more readable (to me anyway) and
|
|
|
|
|
removed the use of short ints.
|
|
|
|
|
|
|
|
|
|
July 6, 1999
|
|
|
|
|
- Restored Cmd_Exec to it's 1.17c version. I'm not sure what I was trying to
|
|
|
|
|
accomplish with the changes I made, but they broke it under certain
|
|
|
|
|
situations.
|
|
|
|
|
|
|
|
|
|
July 5, 1999
|
|
|
|
|
- Added Heretic's anti-aliased Wu line drawer to the automap.
|
|
|
|
|
- Delayed the execution of cvar callbacks until the video subsystem has been
|
|
|
|
|
initialized.
|
|
|
|
|
|
|
|
|
|
July 3, 1999
|
|
|
|
|
- ST_Start() now sets the status bar dimensions.
|
|
|
|
|
- Fixed some of the DCanvas member functions that used width and height as
|
|
|
|
|
parameters. Having two function parameters with the same names as two
|
|
|
|
|
member variables is not a good thing...
|
|
|
|
|
|
|
|
|
|
July 2, 1999
|
|
|
|
|
- Converted screen_t to class DCanvas and moved a bunch of the screen drawing
|
|
|
|
|
functions into it. This let me catch a few instances where the screen
|
|
|
|
|
dimensions were being referenced before they were initialized.
|
|
|
|
|
- Found this code in i_input.cpp under WM_ACTIVATE:
|
|
|
|
|
if (Fullscreen)
|
|
|
|
|
{
|
|
|
|
|
extern int DisplayWidth, DisplayHeight, DisplayBits;
|
|
|
|
|
I_SetMode (DisplayWidth, DisplayHeight, DisplayBits);
|
|
|
|
|
}
|
|
|
|
|
Apparently, I added it when converting the video code to OpenPTC and
|
|
|
|
|
completely forgot about it. I still don't remember adding it. This was
|
|
|
|
|
probably the cause of problems starting up in fullscreen mode with some
|
|
|
|
|
chipsets. (Banshee and Voodoo3 are the two I know about.)
|
|
|
|
|
- Changed refreshDisplay() in i_video.cpp to not do anything during startup.
|
|
|
|
|
- Added a WM_GETMINMAXINFO handler to prevent the user from shrinking the
|
|
|
|
|
window smaller than the surface.
|
|
|
|
|
|
|
|
|
|
July 1, 1999
|
|
|
|
|
- Added default aliases for idclip and idspispopd that point to noclip.
|
|
|
|
|
- Further fleshed out the DConsoleCommand and DConsoleAlias classes. Commands
|
|
|
|
|
and aliases are now hashed in the same array, and aliases get saved to the
|
|
|
|
|
config file again.
|
|
|
|
|
- Changed PIT_ChangeSector() to not call P_DamageMobj() if the crushing damage
|
|
|
|
|
is 0. This is the way it used to be in Doom (so I hear; I don't feel like
|
|
|
|
|
checking), but not in Hexen.
|
|
|
|
|
- Added a check to P_SpawnMapThing() to not bother checking mapthings of
|
|
|
|
|
type 0. Apparently, some maps in Final Doom actually have these.
|
|
|
|
|
- DActor.movecount needs to be signed; there are places in p_enemy.cpp that
|
|
|
|
|
test if it is < 0. I had changed it to unsigned. Making it signed again
|
|
|
|
|
fixed the problem in test1 that made monsters act as if they had "bad
|
|
|
|
|
vision."
|
|
|
|
|
- Changed P_AimLineAttack to calculate the top and bottom slope based on a
|
|
|
|
|
spherical 64 degree vertical field of view instead of just adding some
|
|
|
|
|
values to the center slope. With things that look straight ahead, the
|
|
|
|
|
result is the same as the original Doom. With things that don't, the result
|
|
|
|
|
is more correct than before. Also fixes the BFG problem in test1.
|
|
|
|
|
|
|
|
|
|
June 30, 1999
|
|
|
|
|
- Did some cleanup. Released 118test1.
|
|
|
|
|
|
|
|
|
|
June 29, 1999
|
|
|
|
|
- Made the actor's pitch member variable represent an angle between -ANGLE_90
|
|
|
|
|
and +ANGLE_90 exclusive instead of a screen sliding amount. Now the same
|
|
|
|
|
representation can be used for the current engine and any possible future
|
|
|
|
|
ones that offer true 6 DOF. This also makes the relationship between pitch
|
|
|
|
|
and all the slope values Doom uses for collision detection more apparent--
|
|
|
|
|
just take the tangent of the pitch instead of multiplying it by a magic
|
|
|
|
|
number.
|
|
|
|
|
|
|
|
|
|
June 23, 1999
|
|
|
|
|
- Moved the multiplication by lightscalexmul out of the inner wall
|
|
|
|
|
rendering loop so that it can be stepped instead, saving all the time I
|
|
|
|
|
used to be spending multiplying.
|
|
|
|
|
- Finished converting all cvars to a cvar_t class. Use the macros defined in
|
|
|
|
|
c_cvars.h for declaring them. One (possibly significant for mods) change
|
|
|
|
|
is that callback functions are now always called when a cvar is created.
|
|
|
|
|
If callback depends on something else being initialized to work properly
|
|
|
|
|
(see snd_mididevice in i_music.cpp), either make sure the callback only
|
|
|
|
|
does its thing once the stuff it needs has been initialized, or don't
|
|
|
|
|
create any instances of the cvar until the initialization has finished.
|
|
|
|
|
|
|
|
|
|
June 17, 1999
|
|
|
|
|
- Added flat scaling, manual panning, and rotation.
|
|
|
|
|
- Fixed a problem with PCD_UNARYMINUS. It was popping the result off the
|
|
|
|
|
stack, so any calculations that used it were wrong and could potentially
|
|
|
|
|
crash.
|
|
|
|
|
|
|
|
|
|
June 15, 1999
|
|
|
|
|
- Got the program to compile and link as C++ code. Some structs have been
|
|
|
|
|
transformed into classes, and savegames are disabled until I can get
|
|
|
|
|
serialization to work.
|
|
|
|
|
|
|
|
|
|
June 11, 1999
|
|
|
|
|
- Found an interesting problem with EV_StartLightFlickering. It takes two
|
|
|
|
|
parameters describing the light levels, but they were completely ignored.
|
|
|
|
|
Fixed.
|
|
|
|
|
|
|
|
|
|
June 7, 1999
|
|
|
|
|
- Changed R_FakeFlat to optionally not care about whether or not the camera's
|
|
|
|
|
current sector is also in a sector referenced by a Transfer_Heights special.
|
|
|
|
|
- Changed all numspechit loops in the code to test against (numspechit > 0)
|
|
|
|
|
instead of (numspechit--).
|
|
|
|
|
- Changed Thing_Projectile(Gravity) so that it should work properly with any
|
|
|
|
|
non-missiles.
|
|
|
|
|
- Fixed a bug in P_NightmareRespawn caused by mindlessly cutting-and-pasting
|
|
|
|
|
from P_SpawnMapThing.
|
|
|
|
|
- Found a bug in the translation of BOOM generalized floors/ceilings. One
|
|
|
|
|
of my bit shifts was off by one. Also fixed the code in zwadconv.
|
|
|
|
|
- Changed the boss brain's height back to 16 for compatibility with
|
|
|
|
|
Strain MAP20.
|
|
|
|
|
- A few days ago, I tried sorting the edges of polyobjects at runtime to
|
|
|
|
|
support concave polys at any rotation. It didn't work. I'll probably
|
|
|
|
|
have to use a span buffer.
|
|
|
|
|
- Stuck in my new span drawer. I actually wrote it about two months ago.
|
|
|
|
|
Now it's finally going to be in a release version of ZDoom. It's about
|
|
|
|
|
6 fps (~23%) faster at 1024x768. Also removed ds_colshift (because it is
|
|
|
|
|
no longer used) and the unrolled span drawer in linear.nas.
|
|
|
|
|
- The turbo cvar's callback wasn't being called when it was set. Fixed.
|
|
|
|
|
- This a huge gap between log entries. Sorry, but I've been too lazy to
|
|
|
|
|
write anything here.
|
|
|
|
|
|
|
|
|
|
March 15, 1999
|
|
|
|
|
- Added support for custom ambient sound attenuations. This is an optional
|
|
|
|
|
floating point value that follows the point keyword.
|
|
|
|
|
- For 1.17, I had changed the sound volumes in s_sound.c to floats
|
|
|
|
|
*except* for the ambient sounds which were still being treated as byte
|
|
|
|
|
values between 0-255, so they would always play at full volume. Fixed.
|
|
|
|
|
|
|
|
|
|
March 14, 1999
|
|
|
|
|
- Discovered a savegame bug: An mobj's translation table was being saved
|
|
|
|
|
improperly and could point to invalid memory on reload. Fixed.
|
|
|
|
|
- Added another dmflag, DF_RESPAWN_SUPER, to cause invulnerability and
|
|
|
|
|
invisibility to respawn. No room in menu, so you have to set it by hand.
|
|
|
|
|
- Added an alwaysapplydmflags cvar that can be used to cause dmflags that
|
|
|
|
|
normally only affect deathmatch to apply to single player and coop games
|
|
|
|
|
as well.
|
|
|
|
|
- Changed P_Thing_Spawn() so that it can spawns things anywhere and not
|
|
|
|
|
just at map spots. (Useful for making it look like a monster was carrying
|
|
|
|
|
an item.)
|
|
|
|
|
- Added support for MBF's sky texture transfer linedefs. Also added support
|
|
|
|
|
for Hexen's Sky2 sector special.
|
|
|
|
|
- In r_plane.c, spanstop was never used anywhere. Removed it.
|
|
|
|
|
|
|
|
|
|
March 10, 1999
|
|
|
|
|
- Made the network code "better." htons is used in the appropriate places,
|
|
|
|
|
and the port a packet is sent from is used to determine which node sent
|
|
|
|
|
a packet (so now I can test more than two-player games on my machine).
|
|
|
|
|
- Added an event-driven timer routine. Instead of busy waiting for a new tic,
|
|
|
|
|
I can wait on an event and give other processes some CPU time. This makes
|
|
|
|
|
two-player games on one machine run much more smoothly on Windows 95/98.
|
|
|
|
|
(It was already smooth for the foreground player on NT.)
|
|
|
|
|
|
|
|
|
|
March 8, 1999
|
|
|
|
|
- Fixed a problem with R_DrawPSprite. It was leaving vis->translucency unset,
|
|
|
|
|
which could produce odd results depending on the contents of the stack.
|
|
|
|
|
|
|
|
|
|
March 7, 1999
|
|
|
|
|
- Discovered a big problem with my linked list of ceiling_t's implementation.
|
|
|
|
|
Fixed.
|
|
|
|
|
|
|
|
|
|
March 6, 1999
|
|
|
|
|
- Added two new screen wipes: burn and crossfade.
|
|
|
|
|
- The mid-screen message gets cleared out on level load now.
|
|
|
|
|
- Stopped using the zone heap to store level snapshots.
|
|
|
|
|
- Enhanced the stealth monsters so that they will take advantage of all
|
|
|
|
|
translucency levels available.
|
|
|
|
|
- Fixed the damage for A_MonsterRail. I guess DOOM doesn't copy the damage
|
|
|
|
|
amount out of the mobjinfo when an mobj is spawned.
|
|
|
|
|
- Added a check to the fullscreen HUD to prevent it from going outside the
|
|
|
|
|
array of armor pictures if the AC was above 2.
|
|
|
|
|
- The DeHackEd code was setting the Blue AC for max soulsphere health. Fixed.
|
|
|
|
|
- Tried out Rick Clark's toxplant.wad and discovered a bug with the
|
|
|
|
|
particles: They were colored by whichever sector was drawn last and not
|
|
|
|
|
the sector they were in. Fixed.
|
|
|
|
|
- Pulled the old info.h from the 1.17a source so I could get things in a
|
|
|
|
|
working state to put up a fixed DeHackEd version for the Ground Zero TC.
|
|
|
|
|
|
|
|
|
|
March 4, 1999
|
|
|
|
|
- Word of advice: When you have 2847 states and 399 mobjinfos (from Hexen)
|
|
|
|
|
to reformat, don't try to do it all by hand. I was smart enough to use a
|
|
|
|
|
program to convert all the states into the multigen format, but I thought
|
|
|
|
|
I could handle the mobjs myself. Ha ha ha ha ha ha! After a few hours,
|
|
|
|
|
my arm was aching, and I had only done about one fourth of the mobjinfos.
|
|
|
|
|
Then I wrote a program to convert the ones from Hexen's info.c into
|
|
|
|
|
multigen format, and all I had to do was drag them to the correct place
|
|
|
|
|
with my mouse. Much easier, and much less strenuous. (Also much less
|
|
|
|
|
error-prone.)
|
|
|
|
|
|
|
|
|
|
For comparison, Heretic has 161 mobjinfos and 1205 states.
|
|
|
|
|
Doom 2 has a mere 137 mobjinfos and 967 states.
|
|
|
|
|
|
|
|
|
|
March 3, 1999
|
|
|
|
|
- Had a change of plans about how I want to implement multiple games in a
|
|
|
|
|
single executable. All the data in info.c and info.h will be moved to an
|
|
|
|
|
external data file whose format is based on that used by multigen (the
|
|
|
|
|
tool id used to generate info.c). The list of spawnable things will also
|
|
|
|
|
be moved out of p_things.c and into this file.
|
|
|
|
|
|
|
|
|
|
This means that everything I did in info.h on March 1 was wasted. Oh well.
|
|
|
|
|
|
|
|
|
|
March 1, 1999
|
|
|
|
|
- Pasted labels for the Heretic and Hexen things into info.c. Had to
|
|
|
|
|
shuffle a few of them around:
|
|
|
|
|
|
|
|
|
|
--- Things renamed ---
|
|
|
|
|
MT_MISC* -> MT_DMISC* (if Doom)
|
|
|
|
|
MT_HMISC* (if Heretic)
|
|
|
|
|
MT_XMISC* (if Hexen)
|
|
|
|
|
MT_BARREL -> MT_HBARREL (for Heretic)
|
|
|
|
|
MT_DBARREL (for Doom)
|
|
|
|
|
MT_TFOG -> MT_DTFOG, MT_HTFOG, MT_XTFOG
|
|
|
|
|
created a new MT_TFOG elsewhere. the others should be
|
|
|
|
|
copied on top of it as appropriate.
|
|
|
|
|
MT_HEAD -> renamed Doom's to MT_CACODEMON
|
|
|
|
|
MT_KNIGHT -> renamed Doom's to MT_HELLKNIGHT
|
|
|
|
|
MT_FIREBOMB -> MT_HFIREBOMB, MT_XFIREBOMB
|
|
|
|
|
|
|
|
|
|
--- Things moved into common Heretic/Hexen section ---
|
|
|
|
|
MT_ARTIFLY
|
|
|
|
|
MT_ARTIINVULNERABILITY -> ditto
|
|
|
|
|
MT_ARTIEGG -> ditto
|
|
|
|
|
MT_EGGFX -> ditto
|
|
|
|
|
MT_ARTISUPERHEAL -> ditto
|
|
|
|
|
MT_ARTITELEPORT -> ditto
|
|
|
|
|
MT_SPLASH
|
|
|
|
|
MT_SPLASHBASE
|
|
|
|
|
MT_LAVASPLASH
|
|
|
|
|
MT_LAVASMAKE
|
|
|
|
|
MT_SLUDGECHUNK
|
|
|
|
|
MT_SLUDGESPLASH
|
|
|
|
|
MT_BLOODSPLATTER
|
|
|
|
|
MT_BLOODYSKULL
|
|
|
|
|
MT_MNTRFX1
|
|
|
|
|
MT_MNTRFX2 (deathsound is sfx_phohit in Heretic, no sound in Hexen)
|
|
|
|
|
MT_MNTRFX3
|
|
|
|
|
MT_SOUNDWATERFALL
|
|
|
|
|
|
|
|
|
|
--- Things moved to global section ---
|
|
|
|
|
MT_BLOOD (note that Hexen's blood has mass 5, not 100. was #38)
|
|
|
|
|
MT_TELEPORTMAN (was #41)
|
|
|
|
|
MT_PLAYER (was #0) Hexen's is name differently, so it didn't move.
|
|
|
|
|
|
|
|
|
|
(Hexen things renamed)
|
|
|
|
|
MT_MINOTAUR -> MT_MAULATOR
|
|
|
|
|
MT_SOUNDWIND -> MT_XSOUNDWIND
|
|
|
|
|
|
|
|
|
|
- Added a pulsating effect for the invisibility powerup that slowly
|
|
|
|
|
"pulses" it in and out of visibility, but never going below 25%, so it's
|
|
|
|
|
never totally invisible.
|
|
|
|
|
- Spent a few hours with the DOSDoom translucency code. I think the
|
|
|
|
|
greenness of it is probably more the fault of DOOM's limited palette,
|
|
|
|
|
particularly after comparing the 25% translucency table from before
|
|
|
|
|
with 25% translucency now. Very low levels of translucency with one
|
|
|
|
|
of the colors being dark are still too green, though.
|
|
|
|
|
|
|
|
|
|
February 28, 1999
|
|
|
|
|
- Added DOSDoom 0.65's translucency code. I'm not sure if it was really
|
|
|
|
|
worth it, though. I tried Allegro's RGB table code to speed up the
|
|
|
|
|
generation of the translucency table, but it didn't seem to produce
|
|
|
|
|
very satisfactory results, so I use BestColor to find palette colors
|
|
|
|
|
to use. The results are satisfactory, but they seem a bit too green.
|
|
|
|
|
- Delayed gathering of data on a sprite's patches (width, topoffset, and
|
|
|
|
|
offset) until it is needed (either when the level is precached, or when
|
|
|
|
|
the sprite is first seen). Game startup is a great deal quicker without
|
|
|
|
|
any noticable performance hit elsewhere. Cool.
|
|
|
|
|
|
|
|
|
|
February 27, 1999
|
|
|
|
|
- Note: Hexen's friction is roughly equivalent to a Sector_SetFriction of
|
|
|
|
|
171 (ends up as 0xf909, Hexen uses 0xf900). Player movement thrust should
|
|
|
|
|
be halved at this level. Changed the calculation of sector->movefactor
|
|
|
|
|
accordingly. (With the BOOM code, player thrust was nearly one fourth
|
|
|
|
|
normal with that level of friction.)
|
|
|
|
|
- Discovered that MBF's code to affect monsters with friction doesn't
|
|
|
|
|
work without the change it made to how mobjs are linked into the blockmap.
|
|
|
|
|
|
|
|
|
|
February 24, 1999
|
|
|
|
|
- Stopped using stdio in w_wad.c.
|
|
|
|
|
- Had left some calls to W_Profile in W_InitMultipleFiles(). Removed.
|
|
|
|
|
|
|
|
|
|
February 21, 1999
|
|
|
|
|
- Added support for real looping sounds, because Herian 2 used so many of
|
|
|
|
|
them, and the old method sounded pretty bad with them.
|
|
|
|
|
- Found a problem with sliding polyobj doors: If, when they try to close,
|
|
|
|
|
they can't move anywhere from their open position, they would move
|
|
|
|
|
slightly further open and leave a gap when they managed to close. Fixed.
|
|
|
|
|
- Added support for auto-loading of skins if they're in a skins directory
|
|
|
|
|
in the same directory as the executable.
|
|
|
|
|
- Added support for C-style formatting codes to ACS print statements.
|
|
|
|
|
- Fixed a problem where, when a player turns into a pile of bloody gibs
|
|
|
|
|
(from e.g. a crushing ceiling), they would assume their standing position.
|
|
|
|
|
This is because the gibs are a different sprite, and I wasn't letting
|
|
|
|
|
player mobjs change their sprite.
|
|
|
|
|
- Fixed ceilings so that they stop making noise when they get put in stasis.
|
|
|
|
|
- PIT_ChangeSector() can spawn particle blood now.
|
|
|
|
|
- Fixed R_DrawSplash2() so that it doesn't draw all the particles to the
|
|
|
|
|
left of the impact point.
|
|
|
|
|
- Added an A_MonsterRail function so monsters can shoot a railgun too.
|
|
|
|
|
- Fixed the railgun sound when you're not the one shooting it. My algorithm
|
|
|
|
|
for finding the closest point on the line was wrong and still should
|
|
|
|
|
remnants from when I was calculating the distance from the line.
|
|
|
|
|
- Fixed some player bobbing problems.
|
|
|
|
|
|
|
|
|
|
February 20, 1999
|
|
|
|
|
- Changed sparks to play with static attenuation.
|
|
|
|
|
- Found out why pickup messages would sometimes seemingly print several
|
|
|
|
|
times for a single item. Some maps have several of the same item on top
|
|
|
|
|
of each other so that a player can get more than they would normally
|
|
|
|
|
without even realizing it. I get around this by disallowing two identical
|
|
|
|
|
pickup messages from being printed back-to-back in a single tic.
|
|
|
|
|
- Fixed transsouls. I wasn't calling its callback at initialization, so it
|
|
|
|
|
wouldn't take effect until the next time it was changed at the console.
|
|
|
|
|
- Recompiled PTC with DDFLIP_WAIT enabled. I had accidentally left it off
|
|
|
|
|
from my testing run on January 8.
|
|
|
|
|
- Dug up the DirectDraw code from 1.12 and used it to add DirectDraw support
|
|
|
|
|
back into the game. Now even people who can't get PTC to work should be
|
|
|
|
|
able to use it.
|
|
|
|
|
One interesting thing I noticed is that IDirectDrawSurface's Blt method
|
|
|
|
|
is horribly slow for blitting between system and video memory. I tried it,
|
|
|
|
|
thinking it would be optimized, but it wasn't even close.
|
|
|
|
|
- Added the A_Die, A_Detonate, and A_Mushroom routines from MBF.
|
|
|
|
|
- Removed the screens array and replaced it with a single variable named
|
|
|
|
|
(oddly enough) screen.
|
|
|
|
|
- Added a V_SetBlend() to F_StartFinale() to get rid of any palette flashes
|
|
|
|
|
that might have been on screen (such as after finishing E1M8).
|
|
|
|
|
- Discovered the real reason why the brain shooter wasn't working. DOOM
|
|
|
|
|
doesn't explode noclip missiles when they go above the ceiling or below
|
|
|
|
|
the floor; it just adjusts their positions. Hexen doesn't have that check
|
|
|
|
|
for noclip, so it will explode/remove it. I guess I didn't check MAP30
|
|
|
|
|
after adding Hexen's z-checking.
|
|
|
|
|
|
|
|
|
|
February 19, 1999
|
|
|
|
|
- Finally got around to fixing V_DrawPatchFlipped(). Wow, that was easy. I
|
|
|
|
|
wonder why I was having so much trouble with it the last time I touched it
|
|
|
|
|
many months ago.
|
|
|
|
|
- Changed the item pickup sounds to play with a NULL entity for the local
|
|
|
|
|
player (like before), but still play on CHAN_ITEM for other players.
|
|
|
|
|
- Fixed the problem of monster names not being drawn in the cast finale: I
|
|
|
|
|
was still xoring each character with 0x80 to make it red under the old
|
|
|
|
|
text system.
|
|
|
|
|
- Changed the keyboard code so that the keypad isn't translated into number
|
|
|
|
|
keys in full console mode with the menu active.
|
|
|
|
|
- Fixed the Read This! sequence of menus in Ultimate Doom. When it's
|
|
|
|
|
finished, it's supposed to re-enable the skull and empty the stack.
|
|
|
|
|
- Fixed a problem with raise doors. In Doom, you can close them prematurely
|
|
|
|
|
by activating them again. I had the right idea:
|
|
|
|
|
if (GET_SPAC(line->flags) == SPAC_PUSH)
|
|
|
|
|
but it should have been
|
|
|
|
|
if (GET_SPAC(line->flags) != SPAC_PUSH)
|
|
|
|
|
|
|
|
|
|
February 18, 1999
|
|
|
|
|
- Release 1.17 again, hopefully this time for good.
|
|
|
|
|
- Fixed some problems that were already found with 1.17:
|
|
|
|
|
* The cubes spawned by the boss on DOOM2/MAP30 would be in the ceiling and
|
|
|
|
|
disappear right away. (All I can say is that it worked before; I don't
|
|
|
|
|
know why it stopped.)
|
|
|
|
|
* Because of my quick hack for voodoo doll obituaries, getting killed by
|
|
|
|
|
the world would crash.
|
|
|
|
|
* Open scripts above 255 wouldn't properly restart when the level
|
|
|
|
|
reloaded because the game thought they were still running.
|
|
|
|
|
|
|
|
|
|
February 17, 1999
|
|
|
|
|
- Made a final "final" compile of 1.17.
|
|
|
|
|
- Removed the hack that could transform normal exits into Teleport_NewMaps
|
|
|
|
|
during the level translation process.
|
|
|
|
|
- Realized I had forgotten to do the following, so I did them:
|
|
|
|
|
* Support the MF_TRANSLATION bits for DeHackEd patches that use them.
|
|
|
|
|
* Add a TRANSLUC75 .bex mnemonic for symmetry.
|
|
|
|
|
* Add a defaultmap entry for MAPINFO lumps.
|
|
|
|
|
* Make r_columnmethod 1 the default.
|
|
|
|
|
* Add a neverswitchonpickup cvar.
|
|
|
|
|
* Extralight and fullbright need to be ignored in foggy areas.
|
|
|
|
|
|
|
|
|
|
February 16, 1999
|
|
|
|
|
- Did a final compile for 1.17 under both DOS and Win32. This will be the
|
|
|
|
|
first release where I release versions for both operating systems
|
|
|
|
|
simultaneously. Eventually, I'll have to abandon DOS if I want to keep
|
|
|
|
|
progressing, but for now it's nice to be able to do this.
|
|
|
|
|
- Removed the limit on the number of sound sequences that can be loaded.
|
|
|
|
|
There's still a limit on the number of translation slots, and I think
|
|
|
|
|
it's good to leave it that way.
|
|
|
|
|
- Added a menu stack, so that pressing escape to back out of a menu only
|
|
|
|
|
backs up through the menus the user has visited.
|
|
|
|
|
- Tried adding some code to djgpp/i_video.cpp so that it could write
|
|
|
|
|
directly to VGA memory. Then I found out that regular VGA mode 13h
|
|
|
|
|
doesn't support page flipping, so I took it out.
|
|
|
|
|
|
|
|
|
|
February 14, 1999
|
|
|
|
|
- Added some #ifdef's to i_sound.c so that it works equally well with
|
|
|
|
|
both VC++ and DJGPP.
|
|
|
|
|
- Added support for Hexen's parallax skies. I'm not sure why I thought
|
|
|
|
|
the front one was a normal masked texture. (It uses color 0 to indicate
|
|
|
|
|
transparency instead.) I also removed R_DrawMaskedSky() and added the
|
|
|
|
|
restriction that both sky textures must be the same height.
|
|
|
|
|
|
|
|
|
|
February 13, 1999
|
|
|
|
|
- Tried boomedit.wad, and it turns out I was wrong about ML_PASSUSE. Non-
|
|
|
|
|
use lines could and did eat uses. Changed it so that only SPAC_USE
|
|
|
|
|
does now.
|
|
|
|
|
- Moved the functionality of the ML_PASSUSE flag into a new activation
|
|
|
|
|
type: SPAC_USETHROUGH. The flag was only applicable to use activation
|
|
|
|
|
lines, so it seemed sensely to have it wasting a bit for all other
|
|
|
|
|
types. Now I have a free linedef flag if I need it.
|
|
|
|
|
- Removed the hack to allow players to move if they were currently stuck.
|
|
|
|
|
With it in, polyobjects could push players through walls, which is even
|
|
|
|
|
more undesirable. Since I'm now using MBF's momentum code (which, like
|
|
|
|
|
Doom's but not Boom's, allows players to build up enough momentum to
|
|
|
|
|
escape from walls if they're trivially inside them), I don't really need
|
|
|
|
|
the "fix" anyway.
|
|
|
|
|
- Added a revert argument to the ChangeCamera special that causes the camera
|
|
|
|
|
to move back inside the player's head if he moves.
|
|
|
|
|
- Added a SetPlayerProperty special.
|
|
|
|
|
- Created things for the particle fountains and sparks.
|
|
|
|
|
- Created sound sequences for the appropriate Doom sector movements. I also
|
|
|
|
|
had to expand on the language as defined by Hexen a bit.
|
|
|
|
|
- Replaced my floor waggling code with Hexen's, so now it's right.
|
|
|
|
|
- Added three new level flags:
|
|
|
|
|
* evenlighting
|
|
|
|
|
* noautosequences
|
|
|
|
|
* forcenoskystretch
|
|
|
|
|
- Added a progress indicator for the translucency table building process.
|
|
|
|
|
|
|
|
|
|
February 12, 1999
|
|
|
|
|
- Removed the round-robin assignment of virtual channels in i_sound.c. Since
|
|
|
|
|
we're no longer letting MIDAS pick the sfx channels for us, this is
|
|
|
|
|
pointless (and potentially hazard-prone if many sounds are being played
|
|
|
|
|
very frequently).
|
|
|
|
|
- Added support for sound sequences, so now the polyobjects aren't silent
|
|
|
|
|
when they move.
|
|
|
|
|
|
|
|
|
|
February 11, 1999
|
|
|
|
|
- Added "support" for 0-length sounds. (Meaning they get replaced by dsempty
|
|
|
|
|
instead of crashing when malloc tries to alloc 4 gigs for them.)
|
|
|
|
|
|
|
|
|
|
February 10, 1999
|
|
|
|
|
- Adopted Hexen's script parsing code (sc_man.c). It lends itself toward
|
|
|
|
|
much cleaner script handling code. [no association with ACS]
|
|
|
|
|
|
|
|
|
|
February 7, 1999
|
|
|
|
|
- Incorporated MBF's friction code in place of BOOM's. (Incidentally, I also
|
|
|
|
|
discovered that I had left out some of BOOM's. No matter now.)
|
|
|
|
|
- Added a hack to P_XYMovement() so that players will still be able to move
|
|
|
|
|
if they get stuck inside a line or another thing.
|
|
|
|
|
|
|
|
|
|
February 6, 1999
|
|
|
|
|
- Played some deathmatch with gothicdm2 and noticed two problems:
|
|
|
|
|
* On rare occasions, I would spawn and be stuck.
|
|
|
|
|
* Weapon pickup messages would sometimes print more than once. (Was I
|
|
|
|
|
picking them up more than once when I ran over them? Not sure.)
|
|
|
|
|
* Once when the other player died, he didn't turn into a corpse.
|
|
|
|
|
- Added the ability to activate scripts by picking up items.
|
|
|
|
|
- Changed the polyobject functions called from p_lnspec.c so that they take
|
|
|
|
|
individual paremeters rather than a byte array of args.
|
|
|
|
|
- Demos can now be played from disk without first loading them with the
|
|
|
|
|
-file parameter.
|
|
|
|
|
- The automap will now follow the console player's camera rather than the
|
|
|
|
|
console player himself.
|
|
|
|
|
- Added a notice warning that a demo will go out of sync if it was recorded
|
|
|
|
|
with a different version of the game.
|
|
|
|
|
- Added playdemo and timedemo commands.
|
|
|
|
|
- Added colored text support and different message levels. This was
|
|
|
|
|
planned for several months, and now I've finally written the code for it.
|
|
|
|
|
|
|
|
|
|
February 4, 1999
|
|
|
|
|
- Modified C_AddNotifyString() so that it properly supports lines
|
|
|
|
|
ending with '\r' or '\n' instead of assuming that they all end with
|
|
|
|
|
'\n' and starting each on a new line.
|
|
|
|
|
- Fixed a problem with PTR_CameraTraverse() that could position the
|
|
|
|
|
chasecam inside a two-sided wall.
|
|
|
|
|
- Removed the handling for ANIM_RANDOM from wi_stuff.c since it wasn't
|
|
|
|
|
used anywhere.
|
|
|
|
|
|
|
|
|
|
February 3, 1999
|
|
|
|
|
- Removed the use of screens[1] in wi_stuff.c by allocating a new screen
|
|
|
|
|
just big enough to hold the background image and then blitting that to
|
|
|
|
|
the screen each frame.
|
|
|
|
|
- Changed the demo loop a bit so that it will automatically try to play
|
|
|
|
|
any number of demos beginning with DEMO1 and continuing up in sequence.
|
|
|
|
|
(Of course, since I removed the ability to play old-style demos, it's
|
|
|
|
|
only of use for wads that provide their own demos.)
|
|
|
|
|
- Did a bunch of miscellaneous cleanup from the Hexen source.
|
|
|
|
|
- Fixed player extreme deaths playing "*gibbed" instead of "*xdeath1".
|
|
|
|
|
- When a player leaves a network game, their body is now removed.
|
|
|
|
|
- Removed the check against monsters crossing secret lines. They *can*
|
|
|
|
|
cross secret lines and activate them, they just don't use/push secret
|
|
|
|
|
lines.
|
|
|
|
|
|
|
|
|
|
January 31, 1999
|
|
|
|
|
- Linedef type 134 was being improperly translated to require a blue key.
|
|
|
|
|
It should have been red.
|
|
|
|
|
- Fixed a round-off problem in P_ZMovement() that could cause the player's
|
|
|
|
|
landing sound to play when the player wasn't falling fast enough. For
|
|
|
|
|
some reason, converting the floating point minimum momz to an it was
|
|
|
|
|
subtracting one (even though it was already integral). So, for normal
|
|
|
|
|
gravity, it was comparing the player's z momentum against -524287
|
|
|
|
|
instead of -524288.
|
|
|
|
|
- Fixed a crash bug in M_LoadDefaults() when migrating from a pre-1.14
|
|
|
|
|
config file without any binding for F5.
|
|
|
|
|
|
|
|
|
|
January 30, 1999
|
|
|
|
|
- Added blood, gunshot, and grenade particle effects.
|
|
|
|
|
|
|
|
|
|
January 29, 1999
|
|
|
|
|
- Fixed up the handling of .bex thing mnemonics and added the names for
|
|
|
|
|
the second set of flags (albeit, not many are actually implemented).
|
|
|
|
|
|
|
|
|
|
January 27, 1999
|
|
|
|
|
- Created a new traversal function for the rail gun.
|
|
|
|
|
- Finally figured out why so many lost souls spawned by pain elementals
|
|
|
|
|
were getting stuck. I was spawning two lost souls in the same spot (where
|
|
|
|
|
there should have been only one). Oops.
|
|
|
|
|
- Found a case where the sight-checking code could trace a line that missed
|
|
|
|
|
its ending cell and continue off the edge of the map, thus crashing the
|
|
|
|
|
game. Made some changes to compensate: When the ending column or row is
|
|
|
|
|
reached, mapxstep or mapystep will be set to 0 to prevent it from
|
|
|
|
|
traversing any further in that direction.
|
|
|
|
|
- Using spynext and spyprev now briefly display the name of the player
|
|
|
|
|
you switched to.
|
|
|
|
|
|
|
|
|
|
January 25, 1999
|
|
|
|
|
- Added armor and keys to the fullscreen HUD.
|
|
|
|
|
|
|
|
|
|
January 24, 1999
|
|
|
|
|
- Imported Hexen's z-checking code in place of my own. Hopefully it will
|
|
|
|
|
work better. Also added a few other Hexenism while I was at it, like
|
|
|
|
|
bouncy objects.
|
|
|
|
|
- Sped up wipes on tall screens so they should be about the same speed as
|
|
|
|
|
one 200 pixels tall.
|
|
|
|
|
- Fixed plats so that they properly rebound off the ceiling. I was
|
|
|
|
|
checking if the plat's crush field was non-zero when I should have been
|
|
|
|
|
checking that it wasn't -1.
|
|
|
|
|
- Made some more improvements to D_ErrorLoop().
|
|
|
|
|
- Fixed some problems with the lighting with different r_detail values.
|
|
|
|
|
- columnofs[] was being constructed wrong for horizontally stretched
|
|
|
|
|
detailed modes (too far to the right). Fixed.
|
|
|
|
|
- Added some unrolled drawers based off the Hexen source for 320x200
|
|
|
|
|
and 320x240. I don't expect anything but a 386/486 to benefit from them.
|
|
|
|
|
|
|
|
|
|
January 23, 1999
|
|
|
|
|
- Fixed the light-amp so that it doesn't turn off colored lighting.
|
|
|
|
|
- Added positional sounds. Now that I have them, I also removed the
|
|
|
|
|
temporary switch mobj that was used to provide a place to play the
|
|
|
|
|
switch sounds.
|
|
|
|
|
- During demo playback, the chase command will now let you switch to
|
|
|
|
|
and from the chasecam, so chasedemo isn't really needed unless you want
|
|
|
|
|
to start the demo in chasecam mode.
|
|
|
|
|
- Added the player's score to the fullscreen HUD in deathmatch.
|
|
|
|
|
- Fixed the spynext/spyprev commands so that they properly update the
|
|
|
|
|
status bar when you switch to another player. Also fixed it so the
|
|
|
|
|
camera doesn't stay in a dead player's corpse if you're not watching
|
|
|
|
|
the person who recorded the demo.
|
|
|
|
|
- Fixed the alignment of the scores display at high resolutions and also
|
|
|
|
|
added a level countdown timer if timelimit is in effect (ala Lithium).
|
|
|
|
|
- Removed Hexen's solution for getting the player to produce more than
|
|
|
|
|
one sound and adopted Quake's: each mobj has 8 channels with some of
|
|
|
|
|
them set aside for predefined uses.
|
|
|
|
|
|
|
|
|
|
January 21, 1999
|
|
|
|
|
- Stopped using MIDAS's auto effect channels and started using the ones
|
|
|
|
|
calculated by the game's own sound code. This seems to have fixed all
|
|
|
|
|
the previous problems with sounds cutting out prematurely.
|
|
|
|
|
|
|
|
|
|
January 20, 1999
|
|
|
|
|
- Adjusted the WEAPONTOP #define in p_pspr.c so that the player sprites
|
|
|
|
|
will meet the bottom of the screen at higher resolutions instead of
|
|
|
|
|
leaving a gap.
|
|
|
|
|
|
|
|
|
|
January 17, 1999
|
|
|
|
|
- Added a chasedemo cvar. When it's true, the demo is played back in
|
|
|
|
|
chasecam mode.
|
|
|
|
|
- Fixed a memory leak when the game had to generate a translucency table.
|
|
|
|
|
(out was not being freed.)
|
|
|
|
|
- Stopped using Z_Malloc() for temporary compression buffers and switched
|
|
|
|
|
to the libc functions. (libc has a bigger memory pool.)
|
|
|
|
|
- Fixed problem with skins that used sounds in the IWAD.
|
|
|
|
|
- Fixed a bug that could crash the game if something went amiss during
|
|
|
|
|
the startup process but after setjmp() was called. Now D_ErrorLoop()
|
|
|
|
|
explicitly enters the GS_FULLCONSOLE state before doing anything else.
|
|
|
|
|
|
|
|
|
|
January 16, 1999
|
|
|
|
|
- Added particle fountain effects with the following colors:
|
|
|
|
|
red, green, blue, yellow, purple, black, and white
|
|
|
|
|
- Got rocket trails into a state I think looks nice.
|
|
|
|
|
- Improved the particle system further by making the particle sizes
|
|
|
|
|
adjustable, letting particles fade out over time, and moving all of
|
|
|
|
|
the particle thinking out of the renderer and into the play simulation.
|
|
|
|
|
- Imported some of Hexen's sound code to limit the total number of same
|
|
|
|
|
sounds playing and also to allow players to make more than one noise
|
|
|
|
|
at a time.
|
|
|
|
|
- Fixed the operation of FloorAndCeiling_(Raise/Lower)ByValue. Contrary
|
|
|
|
|
to what the Hexen specs state, they do not multiply their height
|
|
|
|
|
argument by 8.
|
|
|
|
|
|
|
|
|
|
January 14, 1999
|
|
|
|
|
- Switched to the p_sight.c of Hexen. This is benefitial for two reasons:
|
|
|
|
|
1. It knows about polyobjects.
|
|
|
|
|
2. It doesn't traverse the BSP tree. Yes, I know this means it's slower,
|
|
|
|
|
but it also means I can use it with a portal engine, which doesn't
|
|
|
|
|
even have a BSP tree.
|
|
|
|
|
- Moved the locating of the polyobj spots out of PO_Init() and into
|
|
|
|
|
P_SpawnMapThing().
|
|
|
|
|
|
|
|
|
|
January 12, 1999
|
|
|
|
|
- Added the polyobject stuff from Hexen.
|
|
|
|
|
- Copied Hexen's earthquake viewshifting code into R_SetupFrame().
|
|
|
|
|
- Changed P_Thing_Projectile() so that it can play a thing's sight sound
|
|
|
|
|
and sets some other values properly.
|
|
|
|
|
- Added a delay to open and deferred scripts of one second after seeing
|
|
|
|
|
that the Hexen code does it (and it's a good way of avoiding delays in
|
|
|
|
|
open scripts to get past the screen wipe).
|
|
|
|
|
- Fixed a bug in P_StartScript() that would cause it to crash if someone
|
|
|
|
|
tried to start a nonexistant script.
|
|
|
|
|
|
|
|
|
|
January 11, 1999
|
|
|
|
|
- Added an r_drawflat cvar to draw segs as flat colors instead of textures.
|
|
|
|
|
- In R_StoreWallRange(), changed the lighting calculation so that lines will
|
|
|
|
|
have the same amount of light no matter what their orientation if a
|
|
|
|
|
non-black fade is applied to them (otherwise the fog effect looks dumb).
|
|
|
|
|
|
|
|
|
|
January 10, 1999
|
|
|
|
|
- Added a rocket trail using the particle system.
|
|
|
|
|
- Added a particle system.
|
|
|
|
|
- Added support for PWADs like Gothic DM2 that used a hack to get sprites-in-
|
|
|
|
|
a-pwad with regular Doom by making some changes to W_MergeLumps().
|
|
|
|
|
|
|
|
|
|
January 9, 1999
|
|
|
|
|
- Added a progress-meter to the console.
|
|
|
|
|
- Made a fix (submitted by John Cole) to the height-checking code so that if a
|
|
|
|
|
player stands on another player, the player on the bottom doesn't get
|
|
|
|
|
stuck.
|
|
|
|
|
- Changed P_GiveWeapon() to check if there are any graphics for a weapon. If
|
|
|
|
|
there aren't, then it won't give the player the weapon. Also changed "give
|
|
|
|
|
weapons" to call P_GiveWeapon() so that it won't give the player a weapon
|
|
|
|
|
that doesn't exist in the current iwad (like the ssg with doom.wad).
|
|
|
|
|
- Fixed psprites so that the muzzleflash has the same visibility (fuzz) flags
|
|
|
|
|
as the weapon sprite.
|
|
|
|
|
- Added the setting of YourColor when am_usecustomcolors is 0. It should have
|
|
|
|
|
been there a long time ago.
|
|
|
|
|
|
|
|
|
|
January 8, 1999
|
|
|
|
|
- Since the new column rendering code is essentially done (unless I decide
|
|
|
|
|
that it's actually worth the hassle to draw columns in bunches of 8--4 was
|
|
|
|
|
enough bother), I took some timings with the new and old routines. These
|
|
|
|
|
are for looking directly at a wall, the worst-case scenario for the old
|
|
|
|
|
routines. I tried disabling vbl wait, but DirectDraw always seems to do it
|
|
|
|
|
even when I don't tell it to, so the numbers for the low resolutions aren't
|
|
|
|
|
very informative since they cap at the screen's refresh rate. Rates from
|
|
|
|
|
two Build games under similar conditions are also given for comparison.
|
|
|
|
|
This is on my PII-350:
|
|
|
|
|
|
|
|
|
|
mode old new Blood Duke3D
|
|
|
|
|
320x200 70 70 212 324
|
|
|
|
|
320x240 60 60 174 274
|
|
|
|
|
400x300 60 60 120 212
|
|
|
|
|
480x360 60 60 91 147
|
|
|
|
|
512x384 40 60 80 128
|
|
|
|
|
640x400 32 64 60 96
|
|
|
|
|
640x480 27 57 51 83
|
|
|
|
|
800x600 27 42 34 51
|
|
|
|
|
960x720 12 27 24 37
|
|
|
|
|
1024x768 8 21 21 33
|
|
|
|
|
1152x864 9 19 17 23
|
|
|
|
|
1280x1024 6 15 12 17
|
|
|
|
|
|
|
|
|
|
It looks like the new routines are about twice as fast as the old ones. It
|
|
|
|
|
also looks like I can draw walls faster than Blood but not Duke. For
|
|
|
|
|
rendering a real scene that consists of more than just a single wall, ZDoom
|
|
|
|
|
beats them both, since a single wall is the best-case scenario for Build.
|
|
|
|
|
Frame rates in ZDoom seem to be pretty even now, which is nice since the
|
|
|
|
|
old routines were significantly slower at drawing walls than anything else.
|
|
|
|
|
|
|
|
|
|
- Put in a check in R_RenderSegLoop1() and R_RenderSegLoop2() for NULL
|
|
|
|
|
walllights. Right after starting a level, it seems walllights isn't
|
|
|
|
|
getting set properly, but it appears to work fine afterward. Hmm...
|
|
|
|
|
- Got back to school and had a chance to try the new routines on my machine
|
|
|
|
|
and, wow! I can now do a steady 35 fps at 800x600. 960x720 hovers around
|
|
|
|
|
27 fps. 1024x768 is around 20 fps. Not bad.
|
|
|
|
|
|
|
|
|
|
January 6, 1999
|
|
|
|
|
- Wrote a better assembly version of R_DrawColumnHoriz() with no partial
|
|
|
|
|
register stalls and presumably no AGI stalls on regular Pentiums. If it's
|
|
|
|
|
faster than the C code, it's not much faster. (At least it's not
|
|
|
|
|
significantly slower, anyway.)
|
|
|
|
|
|
|
|
|
|
January 5, 1999
|
|
|
|
|
- Tried an assembly version of R_DrawColumnHoriz(). It was actually
|
|
|
|
|
slower than the C code by about 8 fps. Probably because of all the
|
|
|
|
|
partial register stalls. I guess they really can kill performance.
|
|
|
|
|
Stupid Intel processors. :-)
|
|
|
|
|
- Continued work on the optimized column drawers so that they have
|
|
|
|
|
analogues of all the regular column drawers and can also be used to
|
|
|
|
|
draw sprites. On this P-II 300, 720x480 runs at a pretty consistent
|
|
|
|
|
35 fps. 864x480 isn't much worse, either. (Yeah, weird modes, I know.)
|
|
|
|
|
800x600 runs at about 25 fps. Not bad, considering that this is all
|
|
|
|
|
C code.
|
|
|
|
|
- Added R_StretchColumn() and R_DrawTlatedLucentColumn() functions.
|
|
|
|
|
|
|
|
|
|
January 4, 1999
|
|
|
|
|
- Recompiled everything with __fastcall as the default parameter-passing
|
|
|
|
|
convention. Is it better? Not sure, but the exe did shrink by 11k. I
|
|
|
|
|
think the framerate may have risen by 0.5 fps, too.
|
|
|
|
|
|
|
|
|
|
January 3, 1999
|
|
|
|
|
- Added support for using RIFF WAVEs as sound lumps.
|
|
|
|
|
|
|
|
|
|
January 2, 1999
|
|
|
|
|
- Fixed EV_StopPlat() so that it doesn't get stuck looping on the first
|
|
|
|
|
plat because I had forgot to advance scan inside the while loop.
|
|
|
|
|
- Fixed P_LineAttack() so that it can still spawn bullet puffs on the
|
|
|
|
|
floor or ceiling even if the bullet path never hits a line within range.
|
|
|
|
|
|
|
|
|
|
January 1, 1999
|
|
|
|
|
- Worked some more with the cache optimized column drawers. Now they work
|
|
|
|
|
for masked walls and skies as well as solid walls.
|
|
|
|
|
|
|
|
|
|
December 28, 1998
|
|
|
|
|
- Added some C code to do "interleaved column drawing" (the method that
|
|
|
|
|
proved to be the fastest in my test two days ago). Wall drawing is about
|
|
|
|
|
twice as fast at 1024x768. Lower resolutions show less, but still
|
|
|
|
|
measurable, improvement. Hopefully converting it to assembly will
|
|
|
|
|
result in a further speedup.
|
|
|
|
|
- Fixed problem with monsters continuing to attack their target even after
|
|
|
|
|
they had killed it.
|
|
|
|
|
- Adjusted the minimum distance between the chasecam and a wall/floor/
|
|
|
|
|
ceiling.
|
|
|
|
|
|
|
|
|
|
December 27, 1998
|
|
|
|
|
- Added a chasecam. Use the chase command to turn it on and off.
|
|
|
|
|
|
|
|
|
|
December 26, 1998
|
|
|
|
|
- Ran a simple texturing test drawing a 128-pixel tall texture into a
|
|
|
|
|
1024x768 block using several different methods. The methods and
|
|
|
|
|
average times for one pass of each method are:
|
|
|
|
|
> drawing it directly to the buffer: 94.18 ms
|
|
|
|
|
> drawing four columns into a temp array and then merging
|
|
|
|
|
them into the buffer: 24.456 ms
|
|
|
|
|
> interleaving four columns into a temp array and then copying them
|
|
|
|
|
into the buffer as a series of longword writes: 24.338 ms
|
|
|
|
|
> interleaving four columns into a temp array and then colormapping them
|
|
|
|
|
as they get copied to the buffer: 21.71 ms
|
|
|
|
|
|
|
|
|
|
using variations of the fourth method for translated columns:
|
|
|
|
|
> translating during the copy to the buffer: 21.684 ms
|
|
|
|
|
> translation during the mapping to the temp array: 24.29 ms
|
|
|
|
|
|
|
|
|
|
using variations of the third and fourth method for translucent columns:
|
|
|
|
|
> colormapping into the temp array: 31.75 ms
|
|
|
|
|
> colormapping during the copy to the buffer: 30.42 ms
|
|
|
|
|
|
|
|
|
|
using variations of the third and fourth method for translated,
|
|
|
|
|
translucent columns:
|
|
|
|
|
> translating into the temp array: 32.58 ms
|
|
|
|
|
> translating during the copy to the buffer: 31.45 ms
|
|
|
|
|
|
|
|
|
|
These tests give me an idea of what I need to do to improve the game's
|
|
|
|
|
renderer.
|
|
|
|
|
|
|
|
|
|
- Added an extension to normal exit lines during translation so that if a
|
|
|
|
|
map has a MAPINFO entry, then it gets translated to Teleport_NewMap
|
|
|
|
|
instead of Exit_Normal. The levelnum is (tag % 1000) and position is
|
|
|
|
|
(tag / 1000). Thus, you can create hubs with regular Doom maps provided
|
|
|
|
|
that they have MAPINFO entries.
|
|
|
|
|
- The video drivers on this machine at home have a weird bug. Apparently at
|
|
|
|
|
random, when the palette is changed, random colors will have their blue
|
|
|
|
|
values set to the opposite of what they should be. I can't see any way to
|
|
|
|
|
work around it. Ah well. It's not my machine anyway... :-)
|
|
|
|
|
- Fixed togglemap so that it does nothing if the player isn't in a level.
|
|
|
|
|
(Could have crashed if used on the title screen.)
|
|
|
|
|
|
|
|
|
|
December 25, 1998
|
|
|
|
|
- Added Static_Init special (190) to handle BOOM-like control linedefs for
|
|
|
|
|
setting sector properties (at the moment: color, fog, damage, and gravity)
|
|
|
|
|
at level load time.
|
|
|
|
|
|
|
|
|
|
December 24, 1998
|
|
|
|
|
- Fixed a problem in G_CheckSpot() where a corpse would get moved vertically
|
|
|
|
|
to check for collisions in a spawn spot, but then it wouldn't be restored
|
|
|
|
|
to its original height after the check.
|
|
|
|
|
- Fixed a problem I had introduced in P_LookForPlayers(). I had been
|
|
|
|
|
operating under the assumption that whenever it was called, actor->target
|
|
|
|
|
was NULL. Thus, I thought that assigning actor->goal to actor->target was
|
|
|
|
|
safe even if actor->goal was NULL. This isn't the case. In coop, this
|
|
|
|
|
function can be called with a valid actor->target. Setting it to NULL can
|
|
|
|
|
then play havoc with P_NewChaseDir(), which can get called immediately
|
|
|
|
|
afterward in A_Chase(). Now it only sets actor->target to actor->goal if
|
|
|
|
|
actor->target is already NULL.
|
|
|
|
|
|
|
|
|
|
December 22, 1998
|
|
|
|
|
- Fixed the thing spawners so that they don't spawn monsters if the
|
|
|
|
|
nomonsters dmflag is set.
|
|
|
|
|
- Changed the imp fireball to be 75% opaque.
|
|
|
|
|
- Replaced the am_key?color cvars with am_lockedcolor. Finally rewrote the
|
|
|
|
|
code in the automap that uses it, too. (Up until now, it was still using
|
|
|
|
|
the old Doom specials to determine locked doors, even though they all get
|
|
|
|
|
converted into Door_LockedRaise before the automap ever sees the line.
|
|
|
|
|
|
|
|
|
|
December 21, 1998
|
|
|
|
|
- Added ML_BLOCKEVERYTHING linedef flag.
|
|
|
|
|
|
|
|
|
|
December 20, 1998
|
|
|
|
|
- Added support for a ChangeCamera special.
|
|
|
|
|
|
|
|
|
|
December 19, 1998
|
|
|
|
|
- Added a fire effect to the player setup menu (which I had wanted to do
|
|
|
|
|
ever since I saw Unreal).
|
|
|
|
|
|
|
|
|
|
December 15, 1998
|
|
|
|
|
- Went through commands.txt, and documented new commands and cvars (and also
|
|
|
|
|
some that I had missed from 1.14). I still count 4 undocumented commands,
|
|
|
|
|
but I can't figure out what they are even when I compare it with the output
|
|
|
|
|
of the cmdlist command.
|
|
|
|
|
- Fixed problem with V_BreakLines() not properly setting the pixels width
|
|
|
|
|
of lines that were broken.
|
|
|
|
|
- Fixed problem of Plat_UpByValue not going back down.
|
|
|
|
|
|
|
|
|
|
December 13, 1998
|
|
|
|
|
- Fixed problem of lighting in hires modes lightening too quickly.
|
|
|
|
|
- Added outsidefog key to MAPINFO lump parser to set the fog color for
|
|
|
|
|
any sectors with sky ceilings.
|
|
|
|
|
- Removed the translucency on health bonuses.
|
|
|
|
|
- Improved some of the error-handling code in the midi playback routines,
|
|
|
|
|
and the problem seems to have gone away.
|
|
|
|
|
|
|
|
|
|
December 12, 1998
|
|
|
|
|
- Started experiencing a strange midi problem: it works with the debug
|
|
|
|
|
build but not the release.
|
|
|
|
|
- Added soundlist command to display the assignment of sounds.
|
|
|
|
|
- Added dynamic sound linking so that sounds that refer to the same lump
|
|
|
|
|
use the same copy of the sound. Added the soundlinks command to view
|
|
|
|
|
the linking of sounds.
|
|
|
|
|
- Fixed problem of punching someone to death being treated as an
|
|
|
|
|
unknown means of death in the obituaries.
|
|
|
|
|
- Spawning players now telefrag things standing at their spawnpoint, so
|
|
|
|
|
it's no longer possible to get stuck inside another player when
|
|
|
|
|
spawning. Also relaxed the restriction on deathmatch starts so that
|
|
|
|
|
only one is needed to start a game.
|
|
|
|
|
- Added nobfgaim cvar to disable freeaiming of the bfg. (suggested by
|
|
|
|
|
Tony Fabris)
|
|
|
|
|
- Was trying to figure out why weapnext and weapprev only worked for
|
|
|
|
|
player 0 in network games, when they suddenly started working.
|
|
|
|
|
Hopefully it's permanent... [Now that I've thought about it a little
|
|
|
|
|
more, I probably just wasn't getting the mouse captured when I alt-tabbed
|
|
|
|
|
to the other player's window.]
|
|
|
|
|
- Rewrote weapnext and weapprev commands to use the inventory "system."
|
|
|
|
|
- Added a dir command.
|
|
|
|
|
- Added support for the second joystick device because my joystick somehow
|
|
|
|
|
got assigned to it (and made me aware that it exists :-). Also added
|
|
|
|
|
joy_xthreshold, joy_ythreshold, joy_xsensitivity, joy_ysensitivity, and
|
|
|
|
|
joy_speedmultiplier cvars.
|
|
|
|
|
- Added support for double bindings (for double clicking, but it works with
|
|
|
|
|
all keys, not just the mouse buttons) to C_DoKey() and some associated
|
|
|
|
|
console commands.
|
|
|
|
|
- Changed C_DoKey() so that it takes an event as input.
|
|
|
|
|
- Added some code to PTR_ShootTraverse so that bullet puffs can appear on
|
|
|
|
|
floors and ceilings.
|
|
|
|
|
|
|
|
|
|
December 6, 1998
|
|
|
|
|
- Fixed problem of monsters being slow to attack a player if they were
|
|
|
|
|
on a route: Their reactiontime was too high.
|
|
|
|
|
- Added a gender option to the player setup menu.
|
|
|
|
|
- If getsfx() tries to load a sexed sound, and it doesn't exist, it will
|
|
|
|
|
try to load a male version of the sound.
|
|
|
|
|
- Added an empty sound (dsempty).
|
|
|
|
|
- Changed sound handling slightly so that sounds are now loaded when
|
|
|
|
|
they are first used instead of during I_InitSound(). They still stick
|
|
|
|
|
around forever after that.
|
|
|
|
|
- Changed the names of every sound in SNDINFO. It's no longer Hexen-
|
|
|
|
|
compatible, but it should at least be compatible with what I want to
|
|
|
|
|
do eventually. I also redid the way skin sounds are handled to better
|
|
|
|
|
fit my new sound naming conventions: Any gender/skin-specific sounds
|
|
|
|
|
can be used by prefacing them with a '*' and passing a player mobj to
|
|
|
|
|
a sound function. (If a player mobj is not passed, it defaults to male).
|
|
|
|
|
- Fixed the problem of button sounds being played in the wrong place
|
|
|
|
|
when they're deactivated. For some reason, I had this line in
|
|
|
|
|
P_UpdateSpecials():
|
|
|
|
|
S_StartSound ((mobj_t *)&button->soundorg, "Switch1", 78);
|
|
|
|
|
but button->soundorg is an mobj_t *. I'm surprised it didn't crash.
|
|
|
|
|
- Changed P_Thing_Spawn() and P_Thing_Projectile() so that they will only
|
|
|
|
|
spawn things at map spots and not just anything with a matching tid.
|
|
|
|
|
- Fixed P_Thing_Projectile() so that it will still spawn missiles even if
|
|
|
|
|
there is something at their spawn spot.
|
|
|
|
|
|
|
|
|
|
December 4, 1998
|
|
|
|
|
- Was playing a dark level and noticed that the fog isn't "thick"
|
|
|
|
|
enough at higher resolutions: It transitions from darkness to fullbright
|
|
|
|
|
far too quickly.
|
|
|
|
|
- Tweaked the falling damage some more using some code from Q2.
|
|
|
|
|
- Rearranged the startup sequence slightly so that I_Init() gets called
|
|
|
|
|
before I_InitGraphics() (like it was before).
|
|
|
|
|
- Added support for gendered death messages.
|
|
|
|
|
- Rewrote portions of d_dehack.c so that it takes less space when compiled
|
|
|
|
|
and also added .bex support. (Tried it with a few .bex files, but didn't
|
|
|
|
|
do any extensive testing. Assuming it works. :-)
|
|
|
|
|
- Added a check in Printf() to avoid drawing to the console too rapidly
|
|
|
|
|
during startup, because that can slow it down.
|
|
|
|
|
- Changed P_LoadSegs so that it clears a line's ML_TWOSIDED flag if an
|
|
|
|
|
associated sidedef doesn't point to a back sector (otherwise the game
|
|
|
|
|
could crash in p_sight.c when the line came into view).
|
|
|
|
|
- Removed foreign language "support." It's been broken for a while and was
|
|
|
|
|
too hard to add new strings.
|
|
|
|
|
- Moved string names out of d_dehack.c and into dstrings.c (which is where
|
|
|
|
|
they should have been in the first place.)
|
|
|
|
|
|
|
|
|
|
November 30, 1998
|
|
|
|
|
- Had a flash of insight for how I could speed up the rendering of walls. A
|
|
|
|
|
quick test shows that filling the screen with columns of shorts is about
|
|
|
|
|
twice as fast as filling it with columns of bytes. If I draw wall columns
|
|
|
|
|
into memory in consecutive bytes, and then copy them to the screen in
|
|
|
|
|
another pass, I should be able to combine the writing of two or more
|
|
|
|
|
columns together, obtaining a speed boost that should, at the very least,
|
|
|
|
|
let me maintain 35 fps at 800x600 on my machine. I'll have to try it and
|
|
|
|
|
see if it actually works in practice. The overhead of writing the walls
|
|
|
|
|
twice might kill any performance boost this could offer. On 486s and slow
|
|
|
|
|
Pentiums, this will almost certainly be more of a hinderance than a help,
|
|
|
|
|
and it's not needed at low resolutions anyway, so I plan on keeping it
|
|
|
|
|
optional if it turns out to be benefitial.
|
|
|
|
|
|
|
|
|
|
November 29, 1998
|
|
|
|
|
- Tested a theory, and I was right. :-( Drawing vertical columns is
|
|
|
|
|
inherantly slower than drawing horizontal spans, probably because drawing
|
|
|
|
|
them vertically results in a whole lot more cache misses. What I did to
|
|
|
|
|
test it was replace most of D_Display() with a loop that filled the screen
|
|
|
|
|
a solid color. At 800x600, filling the screen by columns was no faster than
|
|
|
|
|
if I textured the walls (23 fps). Filling by rows, I could get 35 fps.
|
|
|
|
|
Apparently, any further optimizations in the renderer will have to focus
|
|
|
|
|
on drawing walls by rows instead of colums.
|
|
|
|
|
|
|
|
|
|
November 28, 1998
|
|
|
|
|
- Did some slight performance tuning in R_RenderSegLoop() by making more
|
|
|
|
|
variables local to only certain blocks in the function. In 800x600,
|
|
|
|
|
looking straight at a wall now gives ~23 fps vs ~20 fps before. (I really
|
|
|
|
|
wasn't expecting such a marked improvement. It might be worthwhile to try
|
|
|
|
|
and tweak this in assembly.)
|
|
|
|
|
- Pulled some blending addition code from the Q2 DLL. I had been trying to
|
|
|
|
|
do the same thing myself, but couldn't quite manage it until I found
|
|
|
|
|
id's code.
|
|
|
|
|
|
|
|
|
|
November 26, 1998
|
|
|
|
|
- Added support for cancelling messagemode by pressing escape.
|
|
|
|
|
- On the automap, a player with invulnerability is drawn with a color
|
|
|
|
|
slightly off from the background rather than being hard-coded to palette
|
|
|
|
|
entry 246 (which is almost black with the normal Doom palette).
|
|
|
|
|
- Finally got around to working out the bugs in teamplay. (Missiles would
|
|
|
|
|
still hurt you even with friendly fire on.)
|
|
|
|
|
- Disabled intermission texts in deathmatch.
|
|
|
|
|
- Pretty sure I got a non-fatal version of I_Error working now. It uses
|
|
|
|
|
setjmp() and longjmp() to do its magic.
|
|
|
|
|
- Removed the check for -statcopy in d_main.c.
|
|
|
|
|
- Removed the system menu from the ZDoom window. Unfortunately, this also
|
|
|
|
|
means it doesn't get a minimize box. Oh well.
|
|
|
|
|
- Removed the restriction on using messagemode only during a netgame.
|
|
|
|
|
- Added mouse wheel support. Under Win95, it ought to work with DirectInput.
|
|
|
|
|
Under NT 4.0 and 98, it should always works.
|
|
|
|
|
|
|
|
|
|
November 23, 1998
|
|
|
|
|
- Changed the startup code so that the graphics mode is initialized as early
|
|
|
|
|
as possible, allowing us to use the in-game console for most startup text.
|
|
|
|
|
- Moved all the functionality of I_StartGraphics() into I_InitGraphics()
|
|
|
|
|
because the game starts up in a fullscreen console now.
|
|
|
|
|
- Added endgame to quit out of a game and drop to the fullscreen console.
|
|
|
|
|
- Removed the ormask parameter from V_PrintStr() and V_PrintStr2(). It was
|
|
|
|
|
almost never used, and in those cases where it was, it was easy enough to
|
|
|
|
|
just or the string beforehand.
|
|
|
|
|
- Adjusted the colors of the CONCHARS lumps and changed a few special
|
|
|
|
|
characters. With the fullscreen console, it was obvious that they were
|
|
|
|
|
all too dark.
|
|
|
|
|
- Added a fullscreen console.
|
|
|
|
|
- Changed handling of WM_DESTROY messages in i_input.c to call exit()
|
|
|
|
|
directly, because the WM_QUIT message didn't seem to be making its way
|
|
|
|
|
into the message stream.
|
|
|
|
|
- Removed some unused #defines from doomdef.h
|
|
|
|
|
- Removed the store demo check from D_ProcessEvents().
|
|
|
|
|
|
|
|
|
|
November 22, 1998
|
|
|
|
|
- Fixed saving of monster goals (was referencing the tracer field instead).
|
|
|
|
|
- Made one-sided lines pushable.
|
|
|
|
|
- Made P_PushSpecialLine aware of the side of the line that was pushed.
|
|
|
|
|
- Moved the execution of deferred scripts out of P_StartOpenScripts so
|
|
|
|
|
that going to a level with a saved snapshot would not terminate the
|
|
|
|
|
script prematurely when the snapshot was loaded.
|
|
|
|
|
|
|
|
|
|
November 21, 1998
|
|
|
|
|
- Teleport_EndGame and Teleport_NewMap no longer execute if crossed
|
|
|
|
|
along a linedef's back side.
|
|
|
|
|
- Discovered I had missed implementing Teleport_EndGame, so I added it.
|
|
|
|
|
- Fixed problem with level snapshots where plats and ceilings that were
|
|
|
|
|
in stasis were saved incorrectly.
|
|
|
|
|
|
|
|
|
|
November 15, 1998
|
|
|
|
|
- Just tried listening to D_RUNNIN after a clean boot, and it didn't work
|
|
|
|
|
the first time. :-( At least it plays properly after I use iwinit now...
|
|
|
|
|
|
|
|
|
|
November 14, 1998
|
|
|
|
|
- Bumped the height of the three small torches up from 34 to 37 units so
|
|
|
|
|
that the player can't jump on top of them.
|
|
|
|
|
- Tweaked the thing auto step up in PIT_CheckThing some more so that it
|
|
|
|
|
will only do the auto step up if you're not in the air. It seemed funny
|
|
|
|
|
to be able to jump on top of most monsters. Never mind. I can't seem to
|
|
|
|
|
get it to work only when I'm not jumping. :-(
|
|
|
|
|
- Added code to mus2strm.c so that it generates a tempo event at the
|
|
|
|
|
beginning of the song. (The tempo used appears to be the default for
|
|
|
|
|
midiStreamOpen, but I felt like being safe anyway.) AddEventToStream() in
|
|
|
|
|
mid2strm.c also keeps track of all instruments used in a song now. This
|
|
|
|
|
way I can get around what appears to be a bug in the GUS PnP drivers
|
|
|
|
|
that would cause it not to play some instruments if they weren't already
|
|
|
|
|
loaded in the card's RAM. Just before I start playing the actual song, I
|
|
|
|
|
play each instrument very briefly and very quietly to get the instruments
|
|
|
|
|
into the card's RAM.
|
|
|
|
|
|
|
|
|
|
November 2, 1998
|
|
|
|
|
- Added snd_mididevice cvar to allow the user to select which MIDI device
|
|
|
|
|
to use and a snd_listmididevices cvar to enumerate the available devices.
|
|
|
|
|
- Added MIDI volume cvar snd_midivolume and a corresponding menu item.
|
|
|
|
|
- Finished mus2strm.c and made a few cleanups to the MIDI streaming code.
|
|
|
|
|
Now I just need to switch to MikMod, and I won't have to use temporary
|
|
|
|
|
files anywhere. (MIDAS can only load MODs from disk and not from memory.)
|
|
|
|
|
|
|
|
|
|
November 1, 1998
|
|
|
|
|
- Started cleaning up qmus2mid.c and transforming it into mus2strm.c.
|
|
|
|
|
|
|
|
|
|
October 31, 1998
|
|
|
|
|
- Took the mid2strm sample from the dx5sdk and used it to redo my MIDI
|
|
|
|
|
support so that I can use the MIDI stream API now, the primary benefit
|
|
|
|
|
being that it lets me set the MIDI volume for just that stream and not the
|
|
|
|
|
entire system.
|
|
|
|
|
- Changed I_DetectOS() so that it doesn't identify Windows 98 as Windows 95.
|
|
|
|
|
|
|
|
|
|
October 24, 1998
|
|
|
|
|
- Discovered the blockmap generation wasn't actually working. Can't figure
|
|
|
|
|
out why, since the same code works just fine in BOOM...
|
|
|
|
|
- Incorporated several of the changes from BOOM 2.02 such as "loose files",
|
|
|
|
|
fire trail elimination, and automatic blockmap generation for large maps.
|
|
|
|
|
|
|
|
|
|
October 17, 1998
|
|
|
|
|
- Implemented the Radius_Quake line special.
|
|
|
|
|
- Removed limit on the size of recordable demos.
|
|
|
|
|
- Changed P_SpawnPlayer() so that it always spawns players on the ground.
|
|
|
|
|
- Created an MT_TELEPORTMAN2 that can be used to teleport things to points
|
|
|
|
|
above the ground and fixed MT_TELEPORTMAN so that it teleports things onto
|
|
|
|
|
the ground.
|
|
|
|
|
- Updated the teleport code so that it finds destinations using P_FindGoal()
|
|
|
|
|
instead of searching through all the active thinkers.
|
|
|
|
|
- Fixed a memory allocation problem with the -iwad parameter.
|
|
|
|
|
|
|
|
|
|
October 16, 1998
|
|
|
|
|
- Rewrote IdentifyVersion() so that it identifies IWADs by their contents
|
|
|
|
|
instead of their names. (except for tnt.wad and plutonia.wad, since I
|
|
|
|
|
don't know of any other way to distinguish them from doom2.wad)
|
|
|
|
|
- Doors that needed yellow skull keys to be opened said they needed yellow
|
|
|
|
|
cards instead. Fixed.
|
|
|
|
|
- Finally added proper support for substituting translucency for the fuzz
|
|
|
|
|
effect. Instead of using a NULL colormap to represent fuzz, it takes
|
|
|
|
|
advantage of the vissprite's flags field and sets MF_SHADOW. Then the
|
|
|
|
|
colormap points to the colormap that would be used if the sprite wasn't
|
|
|
|
|
shadow, so that it can be properly shaded when r_drawfuzz is 0.
|
|
|
|
|
- Got the colormaps code working. I just wasn't allocating enough space for
|
|
|
|
|
the realcolormaps array. Oopsy.
|
|
|
|
|
|
|
|
|
|
October 15, 1998
|
|
|
|
|
- Decided to support changing of colormaps via Boom's 242 linedef after all
|
|
|
|
|
instead of just changing the blend, so I started adding some code to
|
|
|
|
|
support that. Unfortunately, now it doesn't work without any C_START/C_END
|
|
|
|
|
colormaps. :-( Will fix tomorrow.
|
|
|
|
|
|
|
|
|
|
October 14, 1998
|
|
|
|
|
- Added a callback for the splashfactor cvar that prevents it from being
|
|
|
|
|
set to illegal non-positive values and also computes the inverse of the
|
|
|
|
|
cvar for scaling of the thrust felt by things that chew on their own
|
|
|
|
|
missiles. That way, a player will always rocket jump the same height no
|
|
|
|
|
matter what their splashfactor is set to.
|
|
|
|
|
- Fixed a problem with continuous sounds that prevented them from being
|
|
|
|
|
played. When I had consolidated to using a single mobj thinker for all
|
|
|
|
|
sounds instead of splitting them up as I had previously, I was erroneously
|
|
|
|
|
setting the activation time for continuous sounds to 0 because I wanted
|
|
|
|
|
their thinkers to get called right away. But the mobj thinker decrements
|
|
|
|
|
the tic counter and *then* compares it with 0, so it would decrement the
|
|
|
|
|
0, see -1, and then never doing anything with that mobj again.
|
|
|
|
|
|
|
|
|
|
October 10, 1998
|
|
|
|
|
- The button list gets saved in level snapshots now.
|
|
|
|
|
- Added full support for activation types of projectile cross, projectile
|
|
|
|
|
hit, and push. Also added support for a few linedef types to be
|
|
|
|
|
monster-activatable depending on their activation type even if
|
|
|
|
|
ML_MONSTERSCANACTIVATE is not set. (So that, e.g. a monster can still
|
|
|
|
|
open a local door of type Door_Raise without the level designer
|
|
|
|
|
having to do anything special.)
|
|
|
|
|
- Removed the MAXBUTTONS limit and also fixed a problem with the sound
|
|
|
|
|
origin used when activating switches/buttons.
|
|
|
|
|
- Changed the error messages in V_DrawWrapper() and V_DrawSWrapper() to
|
|
|
|
|
use DPrintf() instead of Printf().
|
|
|
|
|
- Fixed problem with invulnerability I introduced yesterday. (Walls were
|
|
|
|
|
still being drawn with the normal colormap.)
|
|
|
|
|
|
|
|
|
|
October 9, 1998
|
|
|
|
|
- Spent about an hour changing the rendering code so that each sector can
|
|
|
|
|
have its own colormap. The light tables are now indices into a colormap
|
|
|
|
|
rather than pointers into one. Spent about half an hour afterward
|
|
|
|
|
figuring out why it seemed to be merging visplanes that were alike in
|
|
|
|
|
everyway except for colormap. All in all, it was easier than I had
|
|
|
|
|
expected. Unfortunately, it's also too slow to build a colormap in the
|
|
|
|
|
middle of gameplay, so I guess an open script will have to be used to
|
|
|
|
|
build any colormaps before the level starts if anyone wants to change a
|
|
|
|
|
sector's color on the fly.
|
|
|
|
|
|
|
|
|
|
Ocober 8, 1998
|
|
|
|
|
- I had earlier changed PIT_RadiusAttack() to do only half damage to targets
|
|
|
|
|
that originated the explosion, so that rocket jumping didn't hurt so much.
|
|
|
|
|
The scale factor has now been moved into the cvar splashfactor and
|
|
|
|
|
defaults to 1.0. The former behavior can be restored by setting it to 0.5.
|
|
|
|
|
|
|
|
|
|
October 5, 1998
|
|
|
|
|
- Spent about 15 minutes writing a routine to build a colormap for non-
|
|
|
|
|
white lights. Tested it using an orange light for the entire level. It
|
|
|
|
|
worked nicely, so now I just need to make it possible to set the light
|
|
|
|
|
color on a sector-by-sector basis.
|
|
|
|
|
- Issue: Teleport destinations need to be flush with the floor instead of
|
|
|
|
|
remembering the position they are spawned at. Discovered this while
|
|
|
|
|
playing MAP20. A teleport destination lowers a great distance the first
|
|
|
|
|
time you land on it. Going on it again will teleport you to its original
|
|
|
|
|
height, and you fall from there. Maybe another type for destinations that
|
|
|
|
|
remember their height, then?
|
|
|
|
|
|
|
|
|
|
October 4, 1998
|
|
|
|
|
- Added say_team and messagemode2 commands and team and teamplay cvars.
|
|
|
|
|
- Externalized the obituary messages and added a "Strings" section to the
|
|
|
|
|
dehacked code. Since I'm pretty sure I'll be switching to scripted code
|
|
|
|
|
ala Quake, this is only temporary (along with everything else dehacked).
|
|
|
|
|
- Added support for showing both skull and card keys in the status bar
|
|
|
|
|
ala Boom.
|
|
|
|
|
- Added Sector_SetDamage and Sector_SetGravity line specials.
|
|
|
|
|
- Added another mobj flag (MF2_NOADJUST) so that you can walk on floating
|
|
|
|
|
bridges without worrying about them getting bumped up above your head.
|
|
|
|
|
- Adjused PIT_CheckThing() so that it allows stepping up on top of things
|
|
|
|
|
if their tops are no more than 24 units above the thing moving.
|
|
|
|
|
|
|
|
|
|
October 3, 1998
|
|
|
|
|
- Added an MT_AMBIENT mobj (doomed #14065). Its first argument determines
|
|
|
|
|
which ambient sound it represents. (And is valid in the range 0-255.) It
|
|
|
|
|
also subsumes the earlier MT_AMBIENT0 - MT_AMBIENT63 mobjs (doomed
|
|
|
|
|
#14001 - 14064), and P_SpawnMapThing translates them into an
|
|
|
|
|
instance of MT_AMBIENT. Also merged the world ambient thinker into the
|
|
|
|
|
mobj thinker so that all ambient sounds are controlled with a single
|
|
|
|
|
thinker function and not two.
|
|
|
|
|
- Removed sounds.h. Everything necessary to use sounds is now found in
|
|
|
|
|
s_sound.h
|
|
|
|
|
- Disabled the recognition of any display modes other than INDEX8 in
|
|
|
|
|
i_video.cpp. I'm no longer sure high/true color is such a good thing.
|
|
|
|
|
Without a major loss of performance, I can't see any way to avoid a
|
|
|
|
|
huge memory loss with more than a few palettes in those modes. :-(
|
|
|
|
|
- Did some work with ARGB8888 modes: I_Blit can now blit from INDEX8 to
|
|
|
|
|
ARGB8888 surfaces. The console font now gets drawn on ARGB8888 surfaces
|
|
|
|
|
(pretty sure it was before, but it stopped working sometime).
|
|
|
|
|
- Fixed the cast drawer so that the names don't get squashed together in
|
|
|
|
|
resolutions at least 640 pixels wide.
|
|
|
|
|
- Fixed bug where pressing a key with a menu active would move the cursor
|
|
|
|
|
to a blank line if it wasn't assigned as a hotkey.
|
|
|
|
|
- Added support for actually seeing skins as well as setting them in the
|
|
|
|
|
player setup menu.
|
|
|
|
|
- Fixed bug with player colors for players 5-8.
|
|
|
|
|
|
|
|
|
|
October 1, 1998
|
|
|
|
|
- Continued work with "skins." Everything works now except actually
|
|
|
|
|
seeing them.
|
|
|
|
|
- Did away with the spriteoffset[], spritewidth[], and spritetopoffset[]
|
|
|
|
|
arrays and moved their contents into the sprite frame structure.
|
|
|
|
|
|
|
|
|
|
September 30, 1998
|
|
|
|
|
- Started work on supporting Doom Legacy "skins." (Personally, I think
|
|
|
|
|
skin is a misnomer, but I'm afraid the term's probably here to stay.)
|
|
|
|
|
- Removed the maskdraw_t structure from r_things.c since it wasn't used
|
|
|
|
|
anywhere. Here it is preserved for history:
|
|
|
|
|
typedef struct {
|
|
|
|
|
int x1, x2;
|
|
|
|
|
int column;
|
|
|
|
|
int topclip, bottomclip;
|
|
|
|
|
} maskdraw_t;
|
|
|
|
|
Wonder what it was for.
|
|
|
|
|
|
|
|
|
|
September 27, 1998
|
|
|
|
|
- Fixed long-standing bug in R_DrawSprite that could cause sprites to be
|
|
|
|
|
drawn through the floor of a cliff if you look down just the right amount
|
|
|
|
|
(when the top edge of the floor is exactly two pixels above the top of
|
|
|
|
|
the screen).
|
|
|
|
|
- Added hacked-in support for colormaps with the Transfer_LightsHeights
|
|
|
|
|
special. ZDoom actually sets the blending through this special instead
|
|
|
|
|
of changing the colormap. To accomodate BOOM levels that use colormaps,
|
|
|
|
|
it will average all the colors in the colormap together and derive a
|
|
|
|
|
blend from that. Alternatively, you set the blend directly by setting
|
|
|
|
|
the appropriate texture name to a hex string of the format AARRGGBB.
|
|
|
|
|
- Fixed barrels (again) so that barrel traps work as expected. Not sure if
|
|
|
|
|
this problem existed in 1.14a or not, but it's gone now.
|
|
|
|
|
- Added ignoreInvisibility parameter to P_CheckSight(), because it is
|
|
|
|
|
occasionally used to determine if there is an unblocked line between two
|
|
|
|
|
things (not if one can see the other).
|
|
|
|
|
- Switched to using a logarithmic scale for pain flashes.
|
|
|
|
|
- Added support for Boom's push/pullers, wind, current, and friction effects.
|
|
|
|
|
|
|
|
|
|
September 26, 1998
|
|
|
|
|
- Saw this at the Team TNT message board:
|
|
|
|
|
|
|
|
|
|
the bug has been found and fixed. What was happening was that the fake
|
|
|
|
|
sector was being passed instead of the real one, and this messed up
|
|
|
|
|
the check for whether a sector had had its sprites added to the view
|
|
|
|
|
already. As a result each sprite generated was being added once per
|
|
|
|
|
subsector rather than just once.
|
|
|
|
|
|
|
|
|
|
So I went looking around in the code some and found this in R_Subsector():
|
|
|
|
|
"R_AddSprites (frontsector)". I replaced frontsector with sub->sector, and
|
|
|
|
|
that seems to have done the trick. A test level I made went from 15 fps to
|
|
|
|
|
35 fps (the max) with this fix.
|
|
|
|
|
|
|
|
|
|
September 23, 1998
|
|
|
|
|
- Using -cdrom creates the directory if it doesn't exist (like it used to).
|
|
|
|
|
- When used with -cdrom, screenshots now get saved to C:\ZDOOMDAT instead of
|
|
|
|
|
the game directory.
|
|
|
|
|
- Put back support for taking screenshots by pressing F1 with -devparm
|
|
|
|
|
active, since some people probably won't read the docs and realize there's
|
|
|
|
|
a screenshot command bound to the "Print Screen" key by default.
|
|
|
|
|
- Added "ticker" cvar to control display of the -devparm ticker at the
|
|
|
|
|
bottom of the display (so that -devparm is now totally useless).
|
|
|
|
|
- Changed the directory for -cdrom from C:\DOOMDATA to C:\ZDOOMDAT and added
|
|
|
|
|
support for using that directory to store zdoom.cfg.
|
|
|
|
|
- Fixed bug that caused using -devparm or -cdrom to crash the game during
|
|
|
|
|
startup. (They referenced the Strings[] table before it was fully
|
|
|
|
|
initialized.)
|
|
|
|
|
|
|
|
|
|
September 19, 1998
|
|
|
|
|
- Turned off screenwiping when moving between levels in a hub (but only if
|
|
|
|
|
the level the player just left has LEVEL_NOINTERMISSION set).
|
|
|
|
|
- Fixed a savegame bug I had added with hubs that caused the game to
|
|
|
|
|
forget the player's state.
|
|
|
|
|
- Added noise cvar to control display of sound debugging info.
|
|
|
|
|
- Added turn180 command to quickly turn the player around.
|
|
|
|
|
- Added support for the ACS thingsound(), sectorsound(), and ambientsound()
|
|
|
|
|
commands.
|
|
|
|
|
- Changed every reference to S_StartSound so that they refer to sounds
|
|
|
|
|
by name rather than id and specify priority information (since it's
|
|
|
|
|
no longer a part of the sfxinfo).
|
|
|
|
|
|
|
|
|
|
September 18, 1998
|
|
|
|
|
- Finished S_ParseSndInfo so that it has no maximum number of sounds it
|
|
|
|
|
can define and works with more than just ambient sounds.
|
|
|
|
|
- Changed w_wad.c back to using the buffered I/O functions again. (I had
|
|
|
|
|
done this a long time ago, but thanks to some mistakes on my part, I
|
|
|
|
|
ended up putting taking it out. Now it's back for good. :-) It doesn't
|
|
|
|
|
seem to have any effect on disk performance, but it will let me use
|
|
|
|
|
MikMod functions to load samples and MODs directly from the wad.
|
|
|
|
|
- Played around with MikMod some. With the assembly mixer, its
|
|
|
|
|
performance seems to be about the same as MIDAS', so I will
|
|
|
|
|
probably switch to it at some point.
|
|
|
|
|
|
|
|
|
|
September 17, 1998
|
|
|
|
|
- Improved support for analog joysticks by using their full range of
|
|
|
|
|
motion instead of treating them like digital devices.
|
|
|
|
|
|
|
|
|
|
September 15, 1998
|
|
|
|
|
- Added support for world vars and controlling scripts on other maps.
|
|
|
|
|
- Added the hub clusterdef flag and supporting code.
|
|
|
|
|
- Figured out what the problem with hub savegames was: Instead
|
|
|
|
|
of writing out a copy of the snapshots for each level with one,
|
|
|
|
|
I wrote out a copy of the current level's snapshot for each
|
|
|
|
|
level with a snapshot. Whoops! Easy fix.
|
|
|
|
|
|
|
|
|
|
September 14, 1998
|
|
|
|
|
- Worked with supporting hubs. For maps that belong to a hub,
|
|
|
|
|
whenever you exit the level, the game makes a mini-savegame
|
|
|
|
|
of the level. When you return, the world state is based on
|
|
|
|
|
the mini-savegame. Theoretically, saving games to disk should
|
|
|
|
|
be as simple as storing each of these "snapshots" along with
|
|
|
|
|
some extra info, but I couldn't get it to work. The current
|
|
|
|
|
level worked, but trying to go to a previously visited level
|
|
|
|
|
after loading the savegame crashed the game.
|
|
|
|
|
|
|
|
|
|
September 13, 1998
|
|
|
|
|
- Redid my ACS code a bit so that scripts are now kept track of
|
|
|
|
|
through a private linked list rather than thinkers. The only
|
|
|
|
|
real advantage this offers is that I have complete control
|
|
|
|
|
over when scripts get executed, so a script that executes a
|
|
|
|
|
scriptwait command will be guaranteed to run in the same tic
|
|
|
|
|
that the script it's waiting on terminates.
|
|
|
|
|
|
|
|
|
|
September 12, 1998
|
|
|
|
|
- Replaced my visplanes code with Lee Killough's hashing method
|
|
|
|
|
and got a noticable performance boost in high visplane areas
|
|
|
|
|
(even those with <128!).
|
|
|
|
|
|
|
|
|
|
September 4, 1998
|
|
|
|
|
- Added weapnext and weapprev commands courtesy of
|
|
|
|
|
Papst Johannes J<>rg IV. [which were later completely
|
|
|
|
|
rewritten by me]
|
|
|
|
|
- Add support for suspending and resuming scripts (easy when
|
|
|
|
|
you know you can only have one copy running at a time).
|
|
|
|
|
- Added checks to ensure that only one instance of a script is
|
|
|
|
|
running at a time (like Hexen).
|
|
|
|
|
|
|
|
|
|
September 3, 1998
|
|
|
|
|
- Took out the stuff for sliding doors. You want it, then
|
|
|
|
|
fake it with a script.
|
|
|
|
|
- Ran around in hexen.wad for a while and fixed a few bugs.
|
|
|
|
|
- Added support for ACS scripts (except for the sound p-codes
|
|
|
|
|
and polywait).
|
|
|
|
|
|
|
|
|
|
September 2, 1998
|
|
|
|
|
- Added support for monsters remembering their previous target
|
|
|
|
|
from BOOM.
|
|
|
|
|
- Made the mobj's targettic a counter that decrements to zero
|
|
|
|
|
instead of a time relative to gametic (so that it works properly
|
|
|
|
|
across savegames).
|
|
|
|
|
- Added more mobj flags bits and consolidated invisible into it.
|
|
|
|
|
- Implemented all the Thing_* line specials.
|
|
|
|
|
- Added support for stairs that reset and/or have delays and the
|
|
|
|
|
sync stair builders.
|
|
|
|
|
|
|
|
|
|
September 1, 1998
|
|
|
|
|
- Fixed problem with several plat types that didn't deactivate
|
|
|
|
|
themselves.
|
|
|
|
|
- Fixed bug that caused Plat_UpWaitDownStay to act like
|
|
|
|
|
Plat_PerpetualRaise.
|
|
|
|
|
- Made NOINTERMISSION levels work by moving the check for it later
|
|
|
|
|
in G_DoCompleted().
|
|
|
|
|
- Added HealThing special to match DamageThing.
|
|
|
|
|
- Added full support for the Teleport_NewMap special. Levelnum is
|
|
|
|
|
actually used for something in the MAPINFO now, too.
|
|
|
|
|
|
|
|
|
|
August 31, 1998
|
|
|
|
|
- Implemented Hexen's thing specials that don't use tids.
|
|
|
|
|
|
|
|
|
|
August 30, 1998
|
|
|
|
|
- Added support for Hexen pillars.
|
|
|
|
|
- Finished ceilings.
|
|
|
|
|
- Finished floors.
|
|
|
|
|
- Added compression of .tch files and significantly rewrote the
|
|
|
|
|
associated part of v_video.c in the process. Not quite the savings
|
|
|
|
|
I would have liked: only about 57%.
|
|
|
|
|
- Tried using the LZ(77?) code from the Doom utilities to compress save
|
|
|
|
|
games, but it was too slow to be practical. I now use minilzo which
|
|
|
|
|
seems to compress about the same but is a *lot* faster. As an example
|
|
|
|
|
of the kind of savings this offers, the size of a savegame on one
|
|
|
|
|
level shrank to 20% of its original size.
|
|
|
|
|
- Used BOOM's code to remove the savegame size limit and fix some other
|
|
|
|
|
savegame bugs.
|
|
|
|
|
- Used Killough's global boss brain state.
|
|
|
|
|
- Tweaked I_FatalError() so that if something really bad happens, you
|
|
|
|
|
shouldn't end up in an infinite recursion sequence because Printf()
|
|
|
|
|
gets called somewhere during the exit sequence.
|
|
|
|
|
- Implemented Floor_Waggle. Unfortunately, it's not the same as Hexen's
|
|
|
|
|
since I couldn't find any decent documentation about it and also had
|
|
|
|
|
a hard time determining just how every different parameter affected it
|
|
|
|
|
by watching it in a test level. It's close, but not the same.
|
|
|
|
|
|
|
|
|
|
August 29, 1998
|
|
|
|
|
- Added support for normal (not sync) Hexen stairs.
|
|
|
|
|
- Added support for Hexen's phased lighting.
|
|
|
|
|
|
|
|
|
|
August 26, 1998
|
|
|
|
|
- Continued on floors.
|
|
|
|
|
|
|
|
|
|
August 25, 1998
|
|
|
|
|
- Started getting moving floors working again.
|
|
|
|
|
|
|
|
|
|
August 21, 1998
|
|
|
|
|
- Got plats working again.
|
|
|
|
|
- Switched to using a linked list to keep track of active ceilings and
|
|
|
|
|
plats. This is similar to the way BOOM does it, except I store the
|
|
|
|
|
list pointers in the active entities themselves rather than seperately.
|
|
|
|
|
|
|
|
|
|
August 20, 1998
|
|
|
|
|
- Fixed a savegame bug I had introduced. They got saved as "version 115"
|
|
|
|
|
instead of zdoomsv?.dsg.
|
|
|
|
|
|
|
|
|
|
August 8, 1998 - August 15, 1998
|
|
|
|
|
- Did some work converting to Hexen-like line specials. Sorry, I was too
|
|
|
|
|
lazy to record the specific changes.
|
|
|
|
|
|
|
|
|
|
August 7, 1998
|
|
|
|
|
- Incorporated BOOM's Pain Elemental Lost Soul shooting fix.
|
|
|
|
|
- Incorporated some of BOOM's changes to p_map.c.
|
|
|
|
|
- Incorporated Killough's changes to p_sight.c.
|
|
|
|
|
|
|
|
|
|
August 6, 1998
|
|
|
|
|
- Added snd_surround cvar to control use of surround sounds. If "0", then
|
|
|
|
|
anything that would otherwise have been played surround is played
|
|
|
|
|
identically from both speakers instead.
|
|
|
|
|
- Added cvar_defflags variable to hold any flags automatically applied to
|
|
|
|
|
new cvars, the intended purpose being to allow all cvars in a config
|
|
|
|
|
file to be flagged as CVAR_ARCHIVE. Useful if one port of ZDoom has cvars
|
|
|
|
|
that another doesn't, but you still want them to share the same config
|
|
|
|
|
file.
|
|
|
|
|
|
|
|
|
|
August 5, 1998
|
|
|
|
|
- Finished keyboard handler and tried to create a mouse handler for the
|
|
|
|
|
DOS port.
|
|
|
|
|
- Switched to using PTC Mode IDs to describe video modes instead of
|
|
|
|
|
bpp since the DOS version of PTC has multiple modes with the same bpp.
|
|
|
|
|
|
|
|
|
|
August 4, 1998
|
|
|
|
|
- Created partial keyboard handler for DOS port.
|
|
|
|
|
|
|
|
|
|
July 28, 1998
|
|
|
|
|
- Fixed use of config files in paths containing spaces. (I had forgotten to
|
|
|
|
|
enclose the pathname in quotes when constructing the exec command string.)
|
|
|
|
|
- Added calls to FixPathSeperator() in a bunch of places where it was needed.
|
|
|
|
|
|
|
|
|
|
July 27, 1998
|
|
|
|
|
- Uploaded a quick fix to 1.14a that lets it load save games again.
|
|
|
|
|
- Renamed the project and workspace to zdoom (rather than doom).
|
|
|
|
|
- Created a version info resource for ZDoom and moved the system-specific
|
|
|
|
|
files into a new win32 directory in the code tree.
|
|
|
|
|
|
|
|
|
|
July 26, 1998
|
|
|
|
|
- Uploaded 1.14a to notgod.com along with a source patch for 1.14->1.14a.
|
|
|
|
|
- If FONTA?? is available, it is now used in deference to STCFN??? (i.e.
|
|
|
|
|
-file heretic)
|
|
|
|
|
- Renamed all the WICHAR?? in zdoom.wad to FONTB?? to match the naming
|
|
|
|
|
convention used by Heretic and Hexen.
|
|
|
|
|
|
|
|
|
|
July 23, 1998
|
|
|
|
|
- I must be an idiot! I took a fix from BOOM for freeing the lnames array too
|
|
|
|
|
soon and stuck it into ZDoom without really thinking about it. In BOOM (and
|
|
|
|
|
DOOM) lnames[] is dynamically allocated. In ZDoom, it's static since it
|
|
|
|
|
only needs to contain two items (the patch of the level just left and the
|
|
|
|
|
patch of the level being entered). Fixed.
|
|
|
|
|
- Using the changemap command no longer says you are leaving the map you're
|
|
|
|
|
entering when no title patch is provided. (Unless they're one and the same.)
|
|
|
|
|
|
|
|
|
|
July 22, 1998
|
|
|
|
|
- Added a z parameter to P_TeleportMove() to properly handle checks in the
|
|
|
|
|
third dimension. Previously, I was checking for this, too, but against the
|
|
|
|
|
thing's original position. Now I check against the desired z location. This
|
|
|
|
|
prevents monsters from teleporting inside of each other.
|
|
|
|
|
|
|
|
|
|
July 19, 1998
|
|
|
|
|
- Improved handling of international keymaps (such as the French one) by
|
|
|
|
|
moving all responsibility for determining the shifted state of keys into
|
|
|
|
|
i_input.c. C_consol.c no longer maintains a ShiftLOT since .data3 of the
|
|
|
|
|
key event will contain a character that is sensitive of the current state
|
|
|
|
|
of modifier keys. (i.e. .data3 contains 'a' when the A key is pressed and
|
|
|
|
|
'A' when SHIFT-A is pressed.)
|
|
|
|
|
- Made some changes to D_DoAdvanceDemo() and G_CheckDemoStatus() so that
|
|
|
|
|
using the player setup menu during demo playback is now safe.
|
|
|
|
|
- Added a check to C_BackupCVars() so that it doesn't back up CVAR_LATCH
|
|
|
|
|
cvars are not saved. This is unnecessary since they don't actually
|
|
|
|
|
change until a new game anyway. The primary advantage of this is that
|
|
|
|
|
starting a new game during demo playback now uses the selected skill
|
|
|
|
|
level (again).
|
|
|
|
|
- Anything spawned by a boss shooter will now always telefrag even if
|
|
|
|
|
LEVEL_MONSTERSTELEFRAG is not set.
|
|
|
|
|
- Modifed PIT_RadiusAttack() (again) so that when a barrel is doing the
|
|
|
|
|
exploding, the original damage code is used.
|
|
|
|
|
- Removed the bitwise and against 0xff for angle in R_DrawSky() and
|
|
|
|
|
R_DrawMaskedSky(). Some skies in various PWADs are wider than this, and
|
|
|
|
|
R_GetColumn() masks it to the proper width for us anyway.
|
|
|
|
|
|
|
|
|
|
July 18, 1998
|
|
|
|
|
- Changed the unknown thing to have no gravity so that it stays at the
|
|
|
|
|
height it was spawned at (useful with Hexen).
|
|
|
|
|
- Discovered the source of a memory leak: When I added the thing_list code
|
|
|
|
|
from BOOM, I left out some from P_UnsetThingPosition(), so
|
|
|
|
|
P_SetThingPosition() was always creating a new thing_list and letting the
|
|
|
|
|
old one waste space. Conveyors even work now! Yay!
|
|
|
|
|
- Removed support for repeating the left and right arrow keys in m_menu.c
|
|
|
|
|
since some people had trouble with it.
|
|
|
|
|
- Changed D_DoServerInfoChange() so that it doesn't print messages in
|
|
|
|
|
single player games.
|
|
|
|
|
|
|
|
|
|
July 16, 1998
|
|
|
|
|
- Added entries for Heretic to SWITCHES and ANIMATED lumps (because I can).
|
|
|
|
|
- Did equivalent things for BOOM SWITCHES lumps.
|
|
|
|
|
- Removed MAXANIMS limit by scanning through the AnimDefs array to find out
|
|
|
|
|
how many entries it contains and then allocating that many anim_t's. Also
|
|
|
|
|
added support for BOOM ANIMATED lumps.
|
|
|
|
|
- Reduced the Revenant's height from 80 back to 56 to fix a problem with a
|
|
|
|
|
trap on DOOM2 MAP27. The new height caused the revenants heads to get
|
|
|
|
|
stuck in the ceiling, so the platforms they were on wouldn't lower. Since
|
|
|
|
|
there are probably other situations like this elsewhere, I went and gave
|
|
|
|
|
all the monsters their original heights back.
|
|
|
|
|
- Fixed a problem with BOOM's openings limit removal. Pointers to openings
|
|
|
|
|
get stored in drawsegs, and the realloc() of the openings didn't bother
|
|
|
|
|
to adjust those pointers. A simple fix in r_segs.c once I figured out what
|
|
|
|
|
the problem was.
|
|
|
|
|
- Incorporated BOOM's Medusa fix.
|
|
|
|
|
|
|
|
|
|
July 15, 1998
|
|
|
|
|
- Added Lee Killough's generalized scrollers from BOOM.
|
|
|
|
|
- Added Rand Phares' thing list stuff from BOOM.
|
|
|
|
|
- Finished support for BOOM's multiple sector thinkers and threw in the
|
|
|
|
|
elevator code in the process (but nothing that calls it).
|
|
|
|
|
|
|
|
|
|
July 14, 1998
|
|
|
|
|
- Started adding support for BOOM's multiple actions per sector.
|
|
|
|
|
- Uploaded the 1.14 binaries and source to notgod.com.
|
|
|
|
|
- Fixed bug that caused the bunny scroller to crash: Using 0 instead of
|
|
|
|
|
&screens[0] in the calls to F_DrawPatchCol().
|
|
|
|
|
- Added support for the ML_PASSUSE flag from BOOM.
|
|
|
|
|
- Decided using a default texture for unknowns was too complicated to bother
|
|
|
|
|
with at this point, so I took it back out. (Left in for flats, though.)
|
|
|
|
|
|
|
|
|
|
July 13, 1998
|
|
|
|
|
- Fixed IDKFA cheat to give the correct amount of armor.
|
|
|
|
|
- Slightly updated and reformated editing.txt and updated it to use
|
|
|
|
|
the new ambient thing numbers.
|
|
|
|
|
- Reformatted and updated zdoom.txt.
|
|
|
|
|
- Created red and blue checkerboards that get substituted for unknown textures
|
|
|
|
|
and flats.
|
|
|
|
|
|
|
|
|
|
July 12, 1998
|
|
|
|
|
- Created a new thing that gets substituted for unknown things in a map and
|
|
|
|
|
things that are known but have no sprite frames (such as Doom II monsters
|
|
|
|
|
using a DOOM I IWAD).
|
|
|
|
|
- Kill and kill monsters commands now get sent over the network.
|
|
|
|
|
- Reformatted commands.txt to make it fit on a 76-column display and hopefully
|
|
|
|
|
be more readable.
|
|
|
|
|
|
|
|
|
|
July 11, 1998
|
|
|
|
|
- Renumbered the ambient things to the range 14001-14064.
|
|
|
|
|
|
|
|
|
|
July 10, 1998
|
|
|
|
|
- Renamed -nosound to -nosfx to be more compatible with most other Dooms.
|
|
|
|
|
- Adjusted the autoaim values used by the player setup menu to not use
|
|
|
|
|
such a large range (0-5000 with big steppings in-between).
|
|
|
|
|
- During another deathmatch session, discovered a problem on MAP03 with
|
|
|
|
|
spawn farthest. No matter what, the dead player would always spawn at
|
|
|
|
|
the spawn spot near the beginning of the level. Realized that deathmatch
|
|
|
|
|
spawn spots weren't recorded as 16.16 fixed point, so I adjusted
|
|
|
|
|
PlayersRangeFromSpot accordingly.
|
|
|
|
|
- Was playing around in a deathmatch a little when I tried the changemap
|
|
|
|
|
command and the game bombed out in Z_Free() because the block being freed
|
|
|
|
|
didn't have a ZONEID. So I added a wrapper around Z_Free() to pass it
|
|
|
|
|
the source file and line number of the caller in case this happens again.
|
|
|
|
|
- Discovered that I had forgotten to add the server var sending/reading
|
|
|
|
|
to the netgame arbitration process, so I added it.
|
|
|
|
|
- Added changemap command which should be able to change the level during
|
|
|
|
|
netgames and demos.
|
|
|
|
|
- Added support for cheat network commands so that they can work in netgames
|
|
|
|
|
and demos (if desired).
|
|
|
|
|
- Added hack to DeHackEd support to use the original Doom thing height's
|
|
|
|
|
if the thing hangs from the ceiling but the patch doesn't set its height.
|
|
|
|
|
|
|
|
|
|
July 9, 1998
|
|
|
|
|
- Improved wi_stuff.c so that it can still draw the level name even if a
|
|
|
|
|
patch hasn't been designed for it.
|
|
|
|
|
|
|
|
|
|
July 8, 1998
|
|
|
|
|
- Fixed aiming. This consisted of two things: First, I needed to change
|
|
|
|
|
the way I generated yslopetab and looked into it so that fullscreen
|
|
|
|
|
windows and non-fullscreen had the same relative range. (Side effect:
|
|
|
|
|
When the status bar is visible, you get a larger freelook range than
|
|
|
|
|
before.) Second, I had to adjust my calculation of view pitch->slope
|
|
|
|
|
from 0.5 to 0.75 times. I arrived at this value by standing on a cliff
|
|
|
|
|
and firing a rocket launcher with different multipliers until I found one
|
|
|
|
|
that looked good.
|
|
|
|
|
- Fixed sky scaling with different r_detail settings.
|
|
|
|
|
- Fixed spacing of the ammo count numbers on the fullscreen HUD.
|
|
|
|
|
- Hacked around in i_video.cpp and PTC's idirectx.cpp a little to support
|
|
|
|
|
Mode X modes under Windows 95.
|
|
|
|
|
- Changed C_Drawer() so that it doesn't call C_EraseLines() if the automap
|
|
|
|
|
is active, since it just creates junk on top of the automap.
|
|
|
|
|
- Changed the notify text drawer to use Doom's standard red text instead
|
|
|
|
|
of white.
|
|
|
|
|
|
|
|
|
|
July 7, 1998
|
|
|
|
|
- Made several changes to the code to make it more portable and removed
|
|
|
|
|
a few unused variables. DJGPP can now compile the machine-independant
|
|
|
|
|
parts with only minimal warnings with -Wall.
|
|
|
|
|
- Thank's to gcc's -Wall, I figured out why togglemessages didn't
|
|
|
|
|
work: I had left out the parentheses in Cmd_ToggleMessages
|
|
|
|
|
when I wanted to call M_ChangeMessages(). Oops.
|
|
|
|
|
- Tried compiling r_draw.c with DJGPP and discovered that it doesn't
|
|
|
|
|
like long file names, so I renamed everything to fit the 8.3 format.
|
|
|
|
|
(Stupid MS-DOS! Grr!)
|
|
|
|
|
- Changed the midprinter to use the hu_font instead of the console font
|
|
|
|
|
since it looks better and also means that the "You need a * key..."
|
|
|
|
|
messages don't need special treatment in the DeHackEd code.
|
|
|
|
|
- Changed C_AddNotifyString() to use V_BreakLines().
|
|
|
|
|
|
|
|
|
|
July 6, 1993
|
|
|
|
|
- Created V_BreakLines() and V_FreeBrokenLines() to handle splitting of
|
|
|
|
|
text into multiple lines. Unlike the code I had in C_AddNotifyString(),
|
|
|
|
|
these will properly break lines at whitespace if possible instead of
|
|
|
|
|
the middle of a word.
|
|
|
|
|
- Stopped using the pitch field of the S_sfx table to store the sounds'
|
|
|
|
|
playback frequencies so that I can handle pitched sounds properly ala
|
|
|
|
|
some magic I found in BOOM.
|
|
|
|
|
|
|
|
|
|
July 3, 1998
|
|
|
|
|
- Went ahead and took some code from BOOM for "kill monsters" command
|
|
|
|
|
since it also kills losts souls spawned by a pain elemntal's death.
|
|
|
|
|
- Used BOOM's P_SetMobjState() since it has nifty state cycle detection.
|
|
|
|
|
- Removed a lot of stuff from cmdlib.c that I didn't actually use. (Kept
|
|
|
|
|
the CRC code around since I *might* use it.)
|
|
|
|
|
- Discovered that taking screenshots directly inside the screenshot command
|
|
|
|
|
was a bad thing because it can be called during the middle of a screen
|
|
|
|
|
draw. Fixed to delay using ga_screenshot.
|
|
|
|
|
- Changed the gamma command into a cvar and removed the code for
|
|
|
|
|
"floaters" from the options menu, since that was all they were used for.
|
|
|
|
|
- Fixed bug in alias code: New aliases would not properly clear the
|
|
|
|
|
next field if they were the first one in a bucket.
|
|
|
|
|
- Aliases now get saved to the config file.
|
|
|
|
|
- Added "Always Mouselook" to the Options menu. I thought it was already
|
|
|
|
|
there, but... It wasn't.
|
|
|
|
|
|
|
|
|
|
July 2, 1998
|
|
|
|
|
- Added autoexec cvar to determine the autoexec file (partially because
|
|
|
|
|
Doom Legacy decided they wanted to use autoexec.cfg--just like they
|
|
|
|
|
used config.cfg).
|
|
|
|
|
- Renamed menu_video to menu_display and added menu_video, menu_player,
|
|
|
|
|
and menu_gameplay commmands.
|
|
|
|
|
- Moved I_WaitVBL() into i_system.c and changed it to make a simple Sleep()
|
|
|
|
|
call because that's what it's really used for.
|
|
|
|
|
- Changed C_DrawNotifyText() to not draw when the menu is up.
|
|
|
|
|
- Added proper support for usejoystick and usemouse cvars in i_input.c
|
|
|
|
|
- Cleaned up the Convert() table in i_input.c by reformatting it.
|
|
|
|
|
|
|
|
|
|
July 1, 1998
|
|
|
|
|
- Tweaked PIT_RadiusAttack() to be more realistic.
|
|
|
|
|
- Fixed PCX writing code so that it properly indicates that the image is in
|
|
|
|
|
color.
|
|
|
|
|
|
|
|
|
|
June 30, 1998
|
|
|
|
|
- Added Gameplay Options menu for setting dmflags.
|
|
|
|
|
|
|
|
|
|
June 29, 1998
|
|
|
|
|
- Documented the map command. (How did I miss this?)
|
|
|
|
|
- Changed the map command so that it doesn't die fatally if the specified lump
|
|
|
|
|
doesn't exist.
|
|
|
|
|
- Borrowed some of NTDOOM's mouse input code (using Win32 functions instead of
|
|
|
|
|
DirectInput), and the mouse seems smoother under NT. Use the in_mouse cvar
|
|
|
|
|
to select which method of input to use.
|
|
|
|
|
- Added I_DetectOS() function and in_mouse cvar.
|
|
|
|
|
|
|
|
|
|
June 27, 1998
|
|
|
|
|
- Added DF_NO_JUMP and DF_NO_FREELOOK dmflags.
|
|
|
|
|
- Made -turbo parameter a normal cvar.
|
|
|
|
|
|
|
|
|
|
June 26, 1998
|
|
|
|
|
- Spent most of the day trying to beat MineSweeper at expert difficulty.
|
|
|
|
|
Sorry. :-)
|
|
|
|
|
|
|
|
|
|
June 25, 1998
|
|
|
|
|
- Implemented fraglimit and timelimit cvars.
|
|
|
|
|
- deathmatch is also a cvar now.
|
|
|
|
|
- Added q2-like dmflags cvar. It adds some new deathmatch options and also
|
|
|
|
|
takes over the duties of the g_falldamage and g_unlimitedammo cvars as well
|
|
|
|
|
as the -fast, -respawn, and -nomonsters.
|
|
|
|
|
- Added one second delay until respawning after death is allowed (so that when
|
|
|
|
|
noexit is active, and you hit an exit switch, you don't instantly respawn).
|
|
|
|
|
|
|
|
|
|
June 24, 1998
|
|
|
|
|
- Changes to serverinfo cvars now get transmitted properly in netgames, and
|
|
|
|
|
only the key player can change them.
|
|
|
|
|
- Finally added cvarlist command and removed the multiple variations of "set".
|
|
|
|
|
- Added support for 8 players. Using more should now be as simple as increasing
|
|
|
|
|
the MAXPLAYERS #define.
|
|
|
|
|
- Created brighter faceback graphics that better represent the player's
|
|
|
|
|
chosen color.
|
|
|
|
|
|
|
|
|
|
June 23, 1998
|
|
|
|
|
- Added spynext and spyprev commands. Spynext is equivalent to pressing F12
|
|
|
|
|
in the original Doom.
|
|
|
|
|
- Added +showscores action. It gets bound to \ by default.
|
|
|
|
|
- Save games now hold copies of every serverinfo cvar and the level locals.
|
|
|
|
|
With Doom 1, they also contain a list of visited levels.
|
|
|
|
|
- The game now keeps a cumulative frag count for each player which is the same
|
|
|
|
|
as what gets displayed on the status bar during a deathmatch.
|
|
|
|
|
- Removed "Next Weapon" from the controls menu. I need to get the inventory
|
|
|
|
|
system working before I can implement it, and I don't feel like doing that
|
|
|
|
|
right now.
|
|
|
|
|
- With a little help from BOOM, sounds in spy mode now center around the
|
|
|
|
|
displayplayer rather than the consoleplayer.
|
|
|
|
|
|
|
|
|
|
June 22, 1998
|
|
|
|
|
- Got dynamic player translation tables up-and-running. Status bar also uses
|
|
|
|
|
the translation table for the faceback instead of different patches. Automap
|
|
|
|
|
now uses the player's chosen color in netgames instead of a fixed array
|
|
|
|
|
of color values.
|
|
|
|
|
- Left and right arrow keys now repeat in the menus (for sliders).
|
|
|
|
|
- Continued work on player setup menu.
|
|
|
|
|
- Fixed C_AddNotifyString() so that it doesn't crash if passed a string with
|
|
|
|
|
a newline in the middle but not at the end of the string.
|
|
|
|
|
- m_menu.c's text input routine now uses the user's preferred keymap.
|
|
|
|
|
|
|
|
|
|
June 20, 1998
|
|
|
|
|
- Continued work on player setup menu.
|
|
|
|
|
- Fixed a bug in V_Clear(): 8-bit modes ignored left parameter.
|
|
|
|
|
- Upped number of savegame slots to 8.
|
|
|
|
|
- Removed all alloca() calls by replacing them with Z_Malloc()/Z_Free() pairs.
|
|
|
|
|
|
|
|
|
|
June 19, 1998
|
|
|
|
|
- Compiled with warning level 4 and caught a few problems and potential
|
|
|
|
|
problems as well as some code that was never executed. (Thanks, Grant.)
|
|
|
|
|
- Fixed uppercopy so that it doesn't always copy 8-chars even if the passed
|
|
|
|
|
string is shorter.
|
|
|
|
|
- Removed <windows.h>, <io.h>, <direct.h>, and <errno.h>
|
|
|
|
|
#includes from d_main.c.
|
|
|
|
|
|
|
|
|
|
June 18, 1998
|
|
|
|
|
- Removed R_OK #define from one of the source files and changed the typedef
|
|
|
|
|
for BOOL in doomtype.h. Also created dxcrap.c which holds some information
|
|
|
|
|
from dinput.lib and dxguid.lib since Microsoft seems to have left most of
|
|
|
|
|
the Watcom DX libraries out of its DX 5 SDK.
|
|
|
|
|
- Started work on player setup menu.
|
|
|
|
|
|
|
|
|
|
June 17, 1998
|
|
|
|
|
- Got GNU diff and patch to compile under Win32. I intend to use them to
|
|
|
|
|
distribute my changes to the PTC source along with the rest of the ZDoom
|
|
|
|
|
source.
|
|
|
|
|
|
|
|
|
|
June 13, 1998
|
|
|
|
|
- Fixed a shutdown bug in the new sound code.
|
|
|
|
|
|
|
|
|
|
June 12, 1998
|
|
|
|
|
- Changed i_sound.c to something inspired by BOOM. It now uses MIDAS's
|
|
|
|
|
auto effect channels instead of a bunch of junk left over from the
|
|
|
|
|
Linux port to determine which channel to play a sound on. As a result,
|
|
|
|
|
it doesn't seem to lose the player's weapon fire anymore. (Yay!)
|
|
|
|
|
Also, the snd_channels cvar is now useful.
|
|
|
|
|
- Made spawning of unknown things in maps a warning instead of an error.
|
|
|
|
|
- Changed R_CheckTextureNumForName() around to use a hash table
|
|
|
|
|
instead of a linear search.
|
|
|
|
|
|
|
|
|
|
June 11, 1998
|
|
|
|
|
- Added support for BOOM's -fastdemo parameter.
|
|
|
|
|
- Made MIDAS initialization failure a non-fatal error.
|
|
|
|
|
- Did a small change to R_InitSpriteDefs() so that it scans the list of
|
|
|
|
|
sprites backwards.
|
|
|
|
|
- Rewrote R_PrecacheLevel() based on BOOM's.
|
|
|
|
|
- Found a better way to trap Alt-Space: I listen for WM_SYSCOMMAND messages
|
|
|
|
|
and filter out any for SC_KEYMENU events.
|
|
|
|
|
|
|
|
|
|
June 10, 1998
|
|
|
|
|
- Removed Martin Howe's sprite rotation fix in R_InstallSpriteLump()
|
|
|
|
|
and replaced it with something from BOOM.
|
|
|
|
|
- Discovered the Win32 function RegisterHotKey() and used it to trap
|
|
|
|
|
Alt-Space so that it doesn't open the window's system menu. Alas,
|
|
|
|
|
it doesn't seem to work with DirectDraw. :-(
|
|
|
|
|
- Added RGB->HSV and HSV->RGB functions to v_palette.c.
|
|
|
|
|
|
|
|
|
|
June 9, 1998
|
|
|
|
|
- Removed WS_POPUP style from the ZDoom window.
|
|
|
|
|
- Integrated the changes in PTC 0.73b with mine, and PTC stopped working
|
|
|
|
|
with DirectX (again). Thankfully, I managed to get it working again.
|
|
|
|
|
(Sometimes I wonder if using PTC is more trouble than it's worth...)
|
|
|
|
|
|
|
|
|
|
June 8, 1998
|
|
|
|
|
- Each machine now broadcasts its userinfo in D_ArbitrateNetStart() ala
|
|
|
|
|
Doom Legacy 1.11.
|
|
|
|
|
- Userinfo settings are now properly set at game startup.
|
|
|
|
|
- Modified D_ArbitrateNetStart() to use the stream reading and writing
|
|
|
|
|
functions for setting and retrieving some game info.
|
|
|
|
|
- Changed the global var startmap to be the actual name of the desired map
|
|
|
|
|
and got rid of startepisode global var.
|
|
|
|
|
- Chat messages now get sent using special "ticcmds" instead of char-by-char
|
|
|
|
|
in a normal ticcmd.
|
|
|
|
|
- Layed the foundation for special network commands besides user movement.
|
|
|
|
|
- Pressing escape in a menu now backs up one menu instead exiting the menu
|
|
|
|
|
system entirely. (And backspace is now used to clear key bindings in the
|
|
|
|
|
configure controls menu.)
|
|
|
|
|
- Menu now displays messages that don't expect any specific input without
|
|
|
|
|
quickly hiding them away.
|
|
|
|
|
- Changed some stuff so that ZDoom doesn't grab the mouse when a menu is
|
|
|
|
|
active and it's running in a window.
|
|
|
|
|
- Added some code so that during a demo, if a key is bound to toggleconsole,
|
|
|
|
|
menu_*, sizeup, or sizedown, it will execute that command instead of
|
|
|
|
|
activate the menu.
|
|
|
|
|
- Removed F1 screenshot hack from m_menu.c. (Use screenshot command.)
|
|
|
|
|
- Removed support for picking menu items with the joystick and mouse.
|
|
|
|
|
- Integrated the changes in PTC 0.73a with my own.
|
|
|
|
|
|
|
|
|
|
June 6, 1998
|
|
|
|
|
- Added -config option in GetConfigPath().
|
|
|
|
|
- Added messagemode and say console commands.
|
|
|
|
|
- Fixed C_AddNotifyString() so that it breaks lines without losing characters.
|
|
|
|
|
- Changed chat code to use whatever the user's selected keymap is instead of
|
|
|
|
|
always Qwerty. Did the same for the console.
|
|
|
|
|
- Made it possible to actually send chat messages.
|
|
|
|
|
- Added check for chat_on to C_DoKey() so that we don't try to do something
|
|
|
|
|
while the player is typing a message.
|
|
|
|
|
- Removed French stuff from hu_stuff.c.
|
|
|
|
|
- Discovered big booboo on my part. Chat hasn't been working since version
|
|
|
|
|
1.11 has it? I was comparing ev->data1 with 't' in hu_stuff.c, but data1
|
|
|
|
|
is a scancode, not ASCII.
|
|
|
|
|
- Removed RCS ID lines from all the source files. I only have RCS on my Amiga,
|
|
|
|
|
and that's not the machine I'm using to develop this.
|
|
|
|
|
|
|
|
|
|
June 5, 1998
|
|
|
|
|
- Created some new pr_* classes for the gib throwing code.
|
|
|
|
|
- Removed RNG shuffling from P_Random() since it was screwing up sync in
|
|
|
|
|
demos and network games.
|
|
|
|
|
|
|
|
|
|
June 4, 1998
|
|
|
|
|
- Made network ticcmd's variable length using the demo packing.
|
|
|
|
|
- Removed reference to turbomesage in G_Ticker().
|
|
|
|
|
- Simplified RefreshPalette() so that generating the invulnerability colormap
|
|
|
|
|
uses fewer multipilies and no divides.
|
|
|
|
|
|
|
|
|
|
June 3, 1998
|
|
|
|
|
- Fixed P_InitSwitchList() so that the retail version is treated like the
|
|
|
|
|
registered version instead of the shareware.
|
|
|
|
|
- Removed Martin Howe's code from w_wad.c and replaced it with a combination
|
|
|
|
|
of code written by me and code from Boom. (Using hash tables speeds up
|
|
|
|
|
level loading a *lot*--far more than I expected!)
|
|
|
|
|
- Added key repeating to the console. (So easy, I should have done it sooner.)
|
|
|
|
|
|
|
|
|
|
June 2, 1998
|
|
|
|
|
- Removed DEVONLY macro and added DPrintf() function.
|
|
|
|
|
|
|
|
|
|
June 1, 1998
|
|
|
|
|
- Fixed a bug in C_InitConsole when it reformats the console buffer. I had
|
|
|
|
|
been using Printf (string); to reformat the text, but if string contained
|
|
|
|
|
any sequences like "%s" I would be in big trouble. So now I use
|
|
|
|
|
Printf ("%s", string);
|
|
|
|
|
- Fixed a problem with the invulnerability color map being wrong. I had
|
|
|
|
|
been subtracting from 4278190080 when I calculated the inverse.
|
|
|
|
|
(Don't know where I got that number from!) Also discovered my other
|
|
|
|
|
stuff wouldn't work, so I just went and switched to fp like dcolors.c uses.
|
|
|
|
|
- Fixed a bug in the DeHackEd text replacement code I had introduced when
|
|
|
|
|
I added support for ambient sounds. It was checking the names of all
|
|
|
|
|
sound effects, but the ambient sounds start out with no names, so I
|
|
|
|
|
ended up dereferencing a null pointer once I reached sfx_ambient0.
|
|
|
|
|
|
|
|
|
|
May 30, 1998
|
|
|
|
|
- Replaced lots of constant 35's with TICRATE (when measuring time).
|
|
|
|
|
- Switched to the BOOM random number generator.
|
|
|
|
|
- Added onfloor parameter to P_SpawnMobj() for when I actually support
|
|
|
|
|
Hexen-style maps (which have a z parameter for Things).
|
|
|
|
|
- Changed to using mapthing2_t's internally instead of mapthing_t's.
|
|
|
|
|
- Created entries for Hexen-style maps in doomdata.c.
|
|
|
|
|
- Added a repeat byte to DEM_USERCMDCLONE to shrink demos even more.
|
|
|
|
|
|
|
|
|
|
May 29, 1998
|
|
|
|
|
- While recording a demo, discovered that I can't telefrag monsters.
|
|
|
|
|
Must investigate.
|
|
|
|
|
- Added DEM_USERCMDCLONE command to indicate that this user command in the
|
|
|
|
|
demo is the same as the previous one. Drastically reduced demo sizes.
|
|
|
|
|
- Scrapped support for my previous ZDEM format completely and adopted
|
|
|
|
|
an IFF FORM instead.
|
|
|
|
|
- Changed all SVC_* labels to DEM_* since they have nothing to do with
|
|
|
|
|
server-to-client communication and everything to do with demos.
|
|
|
|
|
|
|
|
|
|
May 28, 1998
|
|
|
|
|
- Got ZDEM recording and playback working again.
|
|
|
|
|
- Got idea from Boom: Rewrote all occurences of P_Random()-P_Random() that
|
|
|
|
|
I could find so that they don't make assumptions about the order of
|
|
|
|
|
execution. Old demo playback improved noticably (but it still gets out
|
|
|
|
|
of sync easily). Even better, ZDEMs now appear to play back properly in
|
|
|
|
|
both the release and debug builds.
|
|
|
|
|
|
|
|
|
|
May 26, 1998 - May 27, 1998
|
|
|
|
|
- Studied the code generated by the Hexen utility ACC and wrote a utility
|
|
|
|
|
capable of disassembling BEHAVIOR lumps.
|
|
|
|
|
|
|
|
|
|
*******
|
|
|
|
|
|
|
|
|
|
May 25, 1998
|
|
|
|
|
- Released ZDoom 1.13
|
|
|
|
|
- Made gibs toggleable with testgibs cvar.
|
|
|
|
|
- Created zdoom.wcf file.
|
|
|
|
|
- Wrote some more documentation.
|
|
|
|
|
- Finished demo.wad
|
|
|
|
|
- Finished ambient sound support:
|
|
|
|
|
Point random and periodic.
|
|
|
|
|
World (& surround) continuous, random, and periodic.
|
|
|
|
|
Limited SNDINFO lump support.
|
|
|
|
|
- Added the new level flags to the MAPINFO parser.
|
|
|
|
|
|
|
|
|
|
May 23, 1998
|
|
|
|
|
- Continued work on ambient sounds:
|
|
|
|
|
Positional sounds with specific volumes work.
|
|
|
|
|
- Fixed intermission maps for Doom I. (I had broken them when I stopped
|
|
|
|
|
identifying maps by episode and level numbers.)
|
|
|
|
|
- Added some more level flags to generalize behavior that had previously
|
|
|
|
|
been restricted certain levels. Also removed LEVEL_SECRET and didsecret
|
|
|
|
|
references, since I can now mimic them using LEVEL_VISITED.
|
|
|
|
|
|
|
|
|
|
May 22, 1998
|
|
|
|
|
- Started support for ambient sounds:
|
|
|
|
|
Positional, continuous sounds work.
|
|
|
|
|
- Fixed coop intermission stats.
|
|
|
|
|
- Fixed bug in I_FinishUpdate() that could cause it to crash if the
|
|
|
|
|
fps meter was up and it was called in very quick succession.
|
|
|
|
|
- Tried the following to fix the NT mouse bug:
|
|
|
|
|
Read the mouse after reading the keyboard.
|
|
|
|
|
Poll the mouse's position using GetDeviceState().
|
|
|
|
|
Both methods failed to fix the problem. :-(
|
|
|
|
|
- Fixed handling of secret levels in G_WorldDone().
|
|
|
|
|
- Fixed problem with finale writer showing the full text of a message
|
|
|
|
|
during wipes.
|
|
|
|
|
- Fixed display of cluster entry text in G_WorldDone().
|
|
|
|
|
- Discovered that R_DrawMaskedSky() doesn't work for sky textures that
|
|
|
|
|
are actually masked (probably due to the way the composite texture
|
|
|
|
|
generator works, but I could easily be wrong). Will investigate
|
|
|
|
|
further later.
|
|
|
|
|
- Discovered that DITerm() was never being called, so I threw a call to
|
|
|
|
|
it into I_ShutdownGraphics().
|
|
|
|
|
- Failure to specify a next map in the MAPINFO now repeats the current
|
|
|
|
|
map instead of crashing.
|
|
|
|
|
- Added support for maps without music specified in their MAPINFO.
|
|
|
|
|
|
|
|
|
|
May 21, 1998
|
|
|
|
|
- Finished MAPINFO parser, began work on demo (and test) wad.
|
|
|
|
|
|
|
|
|
|
May 20, 1998
|
|
|
|
|
- Started work on a parser for MAPINFO lumps.
|
|
|
|
|
|
|
|
|
|
May 19, 1998
|
|
|
|
|
- Changed ST_doPaletteStuff() to be dynamic and use a larger range of
|
|
|
|
|
blendings.
|
|
|
|
|
- Added W_FindLump() command.
|
|
|
|
|
- Changed W_CacheLumpNum() so that it allocates an extra zero byte after
|
|
|
|
|
the end of the lump.
|
|
|
|
|
- Modified dehacked code to parse the patch file from memory so that
|
|
|
|
|
they can be stored inside a wad file.
|
|
|
|
|
- Added limits command to list the state of all dynamic limits.
|
|
|
|
|
- Added default binding to the SysRq (Print Screen) key: "screenshot".
|
|
|
|
|
- Discovered the pause key wasn't getting bound by default. Fixed.
|
|
|
|
|
- Changed .cfg comments to anything starting with '//' rather than lines
|
|
|
|
|
starting with ';'.
|
|
|
|
|
- Changed the default config file to zdoom.cfg and added the -config
|
|
|
|
|
parameter to choose alternate ones. (Blargh! Doom Legacy decided to
|
|
|
|
|
use config.cfg as it's default config file, when I've been using it
|
|
|
|
|
all along!)
|
|
|
|
|
|
|
|
|
|
May 18, 1998
|
|
|
|
|
- Tried adding support for saving TGA screenshots and discovered that PTC's
|
|
|
|
|
image class doesn't actually do anything for a save.
|
|
|
|
|
- Changed M_ScreenShot() to accept a filename (if desired) and added a
|
|
|
|
|
screenshot console command that can be used to specify one.
|
|
|
|
|
- Changed WritePCXFile to use ARGB values instead of RGB triples so that
|
|
|
|
|
I can pass it the colors array from a palette_t.
|
|
|
|
|
- Bumped the screenshot limit in M_ScreenShot up to 10000 different
|
|
|
|
|
images (properly this time); changed the I_Error to a simple error
|
|
|
|
|
message (no reason to kill the program if you can't take a screenshot);
|
|
|
|
|
and added support for dumping true color files.
|
|
|
|
|
|
|
|
|
|
May 16, 1998
|
|
|
|
|
- Removed the MAXSPECIALCROSS limit.
|
|
|
|
|
- Made palette blending dynamic and added the testblend command to
|
|
|
|
|
make sure that it actually works properly.
|
|
|
|
|
- Moved the gamma correction stuff from v_video.c into v_palette.c.
|
|
|
|
|
- Fixed the color of the red player in the automap.
|
|
|
|
|
- Changed I_SetPalette() to take a pointer to an array of uints instead
|
|
|
|
|
of RGB triples and avoid gamma correction since that should be done
|
|
|
|
|
before the call to I_SetPalette().
|
|
|
|
|
|
|
|
|
|
May 15, 1998
|
|
|
|
|
- Added V_Clear() function to set a rectangle to a solid color.
|
|
|
|
|
- Added dmflags, fraglimit, and timelimit cvars. Alas, they are just
|
|
|
|
|
placeholders for the moment.
|
|
|
|
|
|
|
|
|
|
May 14, 1998
|
|
|
|
|
- Discovered a bug in Doom Legacy's assembly R_DrawColumn while I was
|
|
|
|
|
in the process of rewriting it: They were calculating (centery-dc_yl)
|
|
|
|
|
when it should have been (dc_yl-centery).
|
|
|
|
|
- Rearranged FixedDiv_ASM() to make it pair better on a Pentium and
|
|
|
|
|
aligned the main division code to a 16 byte boundary.
|
|
|
|
|
|
|
|
|
|
May 13, 1998
|
|
|
|
|
- Removed the next and prev links from the definition of a vissprite_t
|
|
|
|
|
since they were used only for the bubble sort.
|
|
|
|
|
- Changed R_SortVisSprites() to use the stdlib qsort() function instead
|
|
|
|
|
of a bubblesort, the end result being that scenes with a lot of sprites
|
|
|
|
|
are a *lot* faster than before. For means of comparison, I played DOOM2
|
|
|
|
|
MAP30 until I got MaxVisSprites up to 1824, and the lowest my framerate
|
|
|
|
|
ever went was 13 fps. That's compared to my earlier run where a mere 992
|
|
|
|
|
sprites slowed me down to about 3 fps.
|
|
|
|
|
- Fixed bug in the C-based R_DrawFuzzColumn?()s: I wasn't properly
|
|
|
|
|
masking fuzzpos when I added 3 to it at the end.
|
|
|
|
|
- Added preliminary C-based ARGB drawers to r_draw.c. They work, but
|
|
|
|
|
slower than I would like.
|
|
|
|
|
- Changed the main column drawers in r_draw.c into pointers that can
|
|
|
|
|
point to different routines depending on the screen depth (and/or
|
|
|
|
|
presence of assembly/MMX routines). This is essentially the route
|
|
|
|
|
DOSDoom takes, except I didn't split r_draw.c into two files.
|
|
|
|
|
|
|
|
|
|
May 12, 1998
|
|
|
|
|
- Fixed the below bug. I now set dc_mask to 0xff at the beginning of
|
|
|
|
|
R_DrawVisSprite() since it wasn't always large enough. A nice side
|
|
|
|
|
benefit of this is that it allows for taller sprites than before.
|
|
|
|
|
(Considering that I added dc_mask a few weeks ago, I'm surprised it
|
|
|
|
|
took me so long to notice this!)
|
|
|
|
|
- Discovered a weird bug. Things were occasionally being drawn with their
|
|
|
|
|
heads being repeated near their feet but still clipping to the original
|
|
|
|
|
shape of the thing. In DPaint, I could do this by drawing the thing once,
|
|
|
|
|
then turning the background into a stencil so I can't draw over it and
|
|
|
|
|
drawing the thing lower but in the same horizontal position.
|
|
|
|
|
|
|
|
|
|
May 11, 1998
|
|
|
|
|
- Started adding gibs (sprite grouping in w_wad.c is always enabled now).
|
|
|
|
|
- Started adding support for RGB modes in various spots.
|
|
|
|
|
- Separated all the V_DrawPatch* functions into various wrappers and
|
|
|
|
|
column drawers. This makes it easy to use the same function for both
|
|
|
|
|
indexed and direct color modes and to add more (which I have done)
|
|
|
|
|
without too much work.
|
|
|
|
|
- Created R_DrawSky() out of first part of R_DrawPlanes() for
|
|
|
|
|
double sky drawing. Created R_DrawMaskedSky() that draws masked
|
|
|
|
|
sky textures (i.e. the front one for a double sky); it can also
|
|
|
|
|
properly tile any height sky but at a performance hit.
|
|
|
|
|
- Moved definition of skyiscale from r_things.c int r_sky.c and split
|
|
|
|
|
it into sky1iscale and sky2iscale. Also created their inverses:
|
|
|
|
|
sky1scale and sky2scale.
|
|
|
|
|
- Added r_stretchsky cvar to stretch the sky if it isn't taller than
|
|
|
|
|
128 pixels.
|
|
|
|
|
- Rewrote DimScreenPLoop() so that it should be slightly faster now.
|
|
|
|
|
Still has lots of AGI stalls, though. :-(
|
|
|
|
|
|
|
|
|
|
May 8, 1998
|
|
|
|
|
- Added detail mode setting to display options menu.
|
|
|
|
|
- Implemented horizontal pixel doubling.
|
|
|
|
|
- Added ds_colshift to go along with ds_colsize.
|
|
|
|
|
- Changed R_ExecuteSetViewSize() so that the view window it creates is
|
|
|
|
|
always a multiple of 16 bytes wide.
|
|
|
|
|
- Moved definition of rowbytes out of tmap.nas and into r_draw.c and
|
|
|
|
|
renamed it dc_pitch. Also created ds_colsize variable. Renamed
|
|
|
|
|
ASM_PatchRowBytes() to ASM_PatchPitch() and created ASM_PatchColSize().
|
|
|
|
|
- Moved the call to I_BeginUpdate() in D_Display() after the call to
|
|
|
|
|
R_ExecuteSetViewSize(). This lets it update the display pitch
|
|
|
|
|
properly based on any changes to detailyshift. Previously, it would
|
|
|
|
|
use the old pitch for one frame before switching over, which is why
|
|
|
|
|
it was crashing yesterday.
|
|
|
|
|
|
|
|
|
|
May 7, 1998
|
|
|
|
|
- Started adding detail modes back in. Got vertical doubling working
|
|
|
|
|
although I ran into a few unexpected problems. Also crashes when I
|
|
|
|
|
switch from doubled to non-doubled. :-(
|
|
|
|
|
- Added fullscreen option to video modes menu.
|
|
|
|
|
- Created a "Video Modes" patch and changed the "Video Options" patch
|
|
|
|
|
to "Display Options."
|
|
|
|
|
|
|
|
|
|
May 6, 1998
|
|
|
|
|
- Fixed the drawing of the faceback on the status bar in network games.
|
|
|
|
|
(I can't believe I messed that up!)
|
|
|
|
|
- Added fragcount to player quit (netgame) messages.
|
|
|
|
|
- Added -noidle parameter to disable lowering of ZDoom's priority to
|
|
|
|
|
the idle class when the window loses the focus (so that running a
|
|
|
|
|
netgame on a single machine doesn't slow down too much because one of
|
|
|
|
|
the sessions only receives processor time during idle moments).
|
|
|
|
|
- Removed the need for the leading . in IP addresses for -net.
|
|
|
|
|
- Added support for different ports per machine in network code.
|
|
|
|
|
- Changed i_net.c so that Win32 platforms now print descriptive errors.
|
|
|
|
|
- Fixed -net parameter so that address list can end at +commands.
|
|
|
|
|
- Added player obituaries.
|
|
|
|
|
|
|
|
|
|
May 5, 1998
|
|
|
|
|
- Adjusted options menu code so that pressing ENTER, T, and D always do
|
|
|
|
|
their special functions when in the video modes menu and not just when
|
|
|
|
|
the current item is of type screenres.
|
|
|
|
|
- Hacked double buffering into PTC's idirectx.cpp. Why? Because it
|
|
|
|
|
improves compatibility with a lot of video cards under NT (like my
|
|
|
|
|
old one) that don't support locking the primary surface directly.
|
|
|
|
|
- Mucked around in PTC's idirectx.cpp for several hours and finally got
|
|
|
|
|
it to work properly in fullscreen. Yay! (I really hope a future release
|
|
|
|
|
has proper support for this built in.)
|
|
|
|
|
|
|
|
|
|
May 4, 1998
|
|
|
|
|
- Changed (PTC's) idirectx.cpp so that it allows Ctrl-Alt-Del in
|
|
|
|
|
exclusive mode.
|
|
|
|
|
- Looked through V_PrintStr2() and finally realized why it was crashing
|
|
|
|
|
on non-MMX machines: I failed to check the status of UseMMX before
|
|
|
|
|
calling EndMMX().
|
|
|
|
|
|
|
|
|
|
May 1, 1998
|
|
|
|
|
- Downloaded PTC 0.72. It still gets slow on the blits, but at least now
|
|
|
|
|
I have the source code for it.
|
|
|
|
|
- Tried using PTC's BitBlt() inside I_Blit() and came across a weird
|
|
|
|
|
problem: The more blits I do, the slower they get. That sucks.
|
|
|
|
|
- Changed the focus-losing and gaining mechanism in i_input.c. Instead
|
|
|
|
|
of sending pause events, it just pauses the sound. Changing fullscreen
|
|
|
|
|
video modes caused the window to lose and regain its focus a bunch, and
|
|
|
|
|
it was messing up the pause sending code, sometimes leaving the game
|
|
|
|
|
paused after a mode change.
|
|
|
|
|
- Changed R_PlaneInitData() so that it allocates the fixed_t arrays
|
|
|
|
|
separately instead of all together.
|
|
|
|
|
- Played Blood for a little bit. That, and a prior suggestion concerning
|
|
|
|
|
rocket jumping made me decide to make a slight tweak to the freelook
|
|
|
|
|
code: You can now look down twice as far as before.
|
|
|
|
|
|
|
|
|
|
April 30, 1998
|
|
|
|
|
- Figured out why PTC clipping windowed modes larger than 512x384:
|
|
|
|
|
They were larger than the initial window size! I work around it
|
|
|
|
|
by resizing the window and then reinitializing PTC.
|
|
|
|
|
- Moved some variable declarations out of i_input.h and into
|
|
|
|
|
i_input.c, eliminating some in the process.
|
|
|
|
|
- Realized that C_AddNotifyString() really *was* perpetuating changes
|
|
|
|
|
to its input string. Now I make a copy of that and work with it to
|
|
|
|
|
save myself some headaches. Plus, the const identifier is now 100%
|
|
|
|
|
correct.
|
|
|
|
|
|
|
|
|
|
April 29, 1998
|
|
|
|
|
- Changed R_DrawColumn_ASM() and R_DrawTranslucentColumn_ASM() so
|
|
|
|
|
that they check the size of the column *before* looking into
|
|
|
|
|
ylookup and columnofs (thus avoiding the occasional page fault).
|
|
|
|
|
- Discovered that R_ExecuteSetViewSize() could be called outside of
|
|
|
|
|
D_Display(). In this case it was in G_DoLoadGame(), and that
|
|
|
|
|
messed things up when I used the -loadgame parameter on the command
|
|
|
|
|
line. Now R_InitBuffer() locks the screen before grabbing the
|
|
|
|
|
buffer pointer and pitch.
|
|
|
|
|
|
|
|
|
|
April 28, 1998
|
|
|
|
|
- Changed cvar() function so that if a cvar of the specified name
|
|
|
|
|
exists, it still changes the cvars flags. (i.e. it gets loaded from
|
|
|
|
|
the config file before this function is called.)
|
|
|
|
|
- Added win_stretchx and win_stretchy cvars to stretch the windowed
|
|
|
|
|
display.
|
|
|
|
|
- Fixed hang at shutdown: wasn't decrementing counter in I_WaitVBL().
|
|
|
|
|
- Received and installed 128 MB of RAM and a 32x CD-ROM drive. :-)
|
|
|
|
|
- Got ZDoom working in a window through PTC. It doesn't do fullscreen
|
|
|
|
|
yet, but that's only because I haven't written any code to handle it
|
|
|
|
|
yet. It also gets into an infinite loop during shutdown. (Should be
|
|
|
|
|
easy to fix.)
|
|
|
|
|
|
|
|
|
|
April 25, 1998
|
|
|
|
|
- Started working on PTC-ized i_video.cpp.
|
|
|
|
|
- Weird palette problem now. When switching modes, ZDoom will only
|
|
|
|
|
very rarely set the palette properly. Me guessing it's a Win95
|
|
|
|
|
problem, since I didn't see this under NT. Shouldn't really matter
|
|
|
|
|
since I'm switching to PTC anyway.
|
|
|
|
|
- Fixed fuzzoffset[] initialization. I was using screen[0]'s pitch
|
|
|
|
|
without first locking it to ensure that the value stored in the
|
|
|
|
|
screen was valid.
|
|
|
|
|
|
|
|
|
|
April 24, 1998
|
|
|
|
|
- Discovered I have a problem adjusting the fuzzoffset[] table
|
|
|
|
|
dynamically. Looks like it still keeps its old values. Will
|
|
|
|
|
investigate further tomorrow.
|
|
|
|
|
- Finished the video modes menu. My options menu code is nowhere near
|
|
|
|
|
as neat as I would have liked. Oh well...
|
|
|
|
|
- Implemented mode testing from the video modes menu. D_ProcessEvents()
|
|
|
|
|
was hacked to make it work. (There might be a better place, but this
|
|
|
|
|
was the first function I saw, and it works.)
|
|
|
|
|
- Figured it out: I wasn't reallocating negonearray when I resized the
|
|
|
|
|
screen. Doh! Moved its initialization from R_InitSprites() into
|
|
|
|
|
R_MultiresInit(). For consistancy, I now allocate screenheightarray
|
|
|
|
|
and xtoviewangle in R_MultiresInit() instead of V_SetResolution(), too.
|
|
|
|
|
- Noticed I seem to have a problem with the playersprites now. Some
|
|
|
|
|
columns aren't getting drawn completely. Which ones and how much is
|
|
|
|
|
missing seems to vary depending on the game state. This is worse the
|
|
|
|
|
wider the sprite is drawn. At 320 wide, I can't detect it, although
|
|
|
|
|
if it covered the entire width of the screen, it would probably pop
|
|
|
|
|
up. Don't know what's going on here, since it worked fine before.
|
|
|
|
|
When did this happen?
|
|
|
|
|
|
|
|
|
|
April 23, 1998
|
|
|
|
|
- Discovered that the boolean being used in i_video.c was only a byte,
|
|
|
|
|
so I looked through the standard header files, and it looks like
|
|
|
|
|
rpcndr.h is the culprit with this line:
|
|
|
|
|
typedef unsigned char boolean;
|
|
|
|
|
Went through all my files where I've defined __BYTEBOOL__ by hand and
|
|
|
|
|
changed all occurances of boolean to BOOL. Then I found out that that
|
|
|
|
|
caused problems with variables that had been declared as boolean in
|
|
|
|
|
header files, so I changed all the remaining instances of boolean to
|
|
|
|
|
BOOL.
|
|
|
|
|
- Started work on the video modes menu.
|
|
|
|
|
|
|
|
|
|
April 22, 1998
|
|
|
|
|
- Discovered I wasn't locking the back buffer in wi_stuff.c when
|
|
|
|
|
I wrote drew the background on it. Fixed.
|
|
|
|
|
- Added code to actual change the screen resolution and discovered I
|
|
|
|
|
wasn't reallocating the VisPlanes' top and bottom arrays, so you
|
|
|
|
|
couldn't switch to a screen larger than what you started with. Fixed.
|
|
|
|
|
|
|
|
|
|
April 21, 1998
|
|
|
|
|
- Started work on dynamic resolution changing. Most of it was already
|
|
|
|
|
done when I added the multires support. Just need to change the size
|
|
|
|
|
of the display surface now; everything else seems to works.
|
|
|
|
|
- Fixed evil bug in V_SetResolution(): I had been allocating
|
|
|
|
|
xtoviewangle[] with one too few angle_t's. Ouch.
|
|
|
|
|
- Fixed a bug in AddToHash() that caused it to "forget" the previous
|
|
|
|
|
contents of a bucket when a new entry was added to the beginning
|
|
|
|
|
of the bucket.
|
|
|
|
|
- Added a callback to the screenblocks cvar, so that ZDoom will sense
|
|
|
|
|
changes to it and adjust the screen as needed.
|
|
|
|
|
- ...I now allocate two screens for the status bar. If it's not scaled
|
|
|
|
|
I continue drawing to the screen as before and pretty much ignore the
|
|
|
|
|
second buffer. However, if the status bar is scaled, then I draw all
|
|
|
|
|
the changes into the second buffer and then blit the entire thing onto
|
|
|
|
|
the screen. It works, but it's also slower.
|
|
|
|
|
- Added support for scaling the status bar (use st_scale cvar). When I
|
|
|
|
|
did this, I noticed that V_DrawPatchStretched() looks horrid when it
|
|
|
|
|
draws multi-post columns, because it doesn't line them up properly.
|
|
|
|
|
Plus, the areas that got updated weren't being drawn in exactly the
|
|
|
|
|
same spot as what appeared on the screen, so...
|
|
|
|
|
- Changed status bar code so that widget coordinates are relative to
|
|
|
|
|
the status bar instead of the screen, which makes the next change
|
|
|
|
|
easier...
|
|
|
|
|
|
|
|
|
|
April 20, 1998
|
|
|
|
|
- Changed the status bar code so that the status bar surface is only as
|
|
|
|
|
wide as the status bar and not the underlying screen.
|
|
|
|
|
- Fixed the wipe: Inside wipe_doMelt(), I had neglected to account for
|
|
|
|
|
the fact that pitch desribed bytes, but d described shorts.
|
|
|
|
|
- Removed the use of DDraw's blitter inside I_Blit() since I was still
|
|
|
|
|
having problems with it. Now I do it myself, and it works.
|
|
|
|
|
- Fixed blitting: needed to make sure both surfaces were unlocked.
|
|
|
|
|
- Got the program running again. Blitting surfaces doesn't work yet. :-(
|
|
|
|
|
Neither do the wipes. (They skip every other line.)
|
|
|
|
|
- Removed the fractional part from the fps display.
|
|
|
|
|
- Got the code to a point where it builds again.
|
|
|
|
|
|
|
|
|
|
April 18, 1998
|
|
|
|
|
- Added new functions and changed some code in i_video.c to handle
|
|
|
|
|
screens as DDraw surfaces.
|
|
|
|
|
- Changed R_VideoErase() to take a rect as a parameter and call V_Blit().
|
|
|
|
|
|
|
|
|
|
April 17, 1998
|
|
|
|
|
- Removed SCREENPITCH, SCREENWIDTH, and SCREENHEIGHT variables from
|
|
|
|
|
doomdef.c. Now I need to remove all references to them.
|
|
|
|
|
- Cleaned up v_video.c somewhat in preparation of integrating PTC with
|
|
|
|
|
the video code: created a screen_t structure; transferred SCREENWIDTH,
|
|
|
|
|
SCREENHEIGHT, and SCREENPITCH into the screen_t; added some SHORT()
|
|
|
|
|
macros where I had omitted them; and fixed some spots where I had
|
|
|
|
|
left SCREENWIDTH intact from the original Linux code when it was really
|
|
|
|
|
referring to screen pitch. Also added a small amount of code to handle
|
|
|
|
|
different bit depths.
|
|
|
|
|
- Moved registration of vid_* commands out of c_commands.c and into
|
|
|
|
|
i_video.c where they belong.
|
|
|
|
|
- Fixed Printf() routine in c_console.c so that it doesn't apply
|
|
|
|
|
printxormask to control characters.
|
|
|
|
|
|
|
|
|
|
April 16, 1998
|
|
|
|
|
- Added code to i_input.c so that it puts the game in the idle priority
|
|
|
|
|
class when the user switches to another window. It also pauses single
|
|
|
|
|
player games now, too.
|
|
|
|
|
- Added some code to scroll the sky lixe Hexen. Still need to make it
|
|
|
|
|
configurable, but at least I know it works.
|
|
|
|
|
- Tried making some taller (good-looking) skies. I sucked at it.
|
|
|
|
|
- Fixed R_DrawFuzzColumn_ASM so that it never draws columns slightly too
|
|
|
|
|
tall. (When drawing the odd pixels before the loop, I had been using
|
|
|
|
|
ebx and bl for two very different tasks. Now I use bh and bl instead.)
|
|
|
|
|
|
|
|
|
|
April 15, 1998
|
|
|
|
|
- Removed tutti-frutti effect for textures 1, 2, 4, 8, 16, 32, and 64
|
|
|
|
|
units tall. Also allow textures taller than 128 units now.
|
|
|
|
|
- Tried holding the sky's vertical position constant when freelooking.
|
|
|
|
|
IMO, it's actually worse than letting it move: You can still see it
|
|
|
|
|
wrapping, and it looks weird, too. I guess I'll just have to draw
|
|
|
|
|
some taller skypics if I want something that really looks nice.
|
|
|
|
|
- Adjusted P_FindFloor() and P_FindCeiling() to check the health of
|
|
|
|
|
corpses intead of their tics to determine if they have been raised.
|
|
|
|
|
- Set the MT_SKULL height back to 56 units from the 30 I had previously
|
|
|
|
|
set it at, since they were occasionally getting stuck in the floor.
|
|
|
|
|
|
|
|
|
|
April 14, 1998
|
|
|
|
|
- Stayed on MAP30 for about 1.5 hours. MaxVisSprites got bumped all
|
|
|
|
|
the way up to 992, and it was slooowwww (except in the corners). Also
|
|
|
|
|
noticed that the plats would sometimes get stuck going up, and I
|
|
|
|
|
shot right through the resurrected corpses. Must fix tomorrow.
|
|
|
|
|
Me go bed now.
|
|
|
|
|
- Adjusted the heights of most things to make them better match
|
|
|
|
|
their image sizes. Some were okay as they were, while others were
|
|
|
|
|
way off.
|
|
|
|
|
- Did a very quick netgame to see how things looked. Some things are
|
|
|
|
|
too short (like the torches) and others are too tall (like the
|
|
|
|
|
barrels).
|
|
|
|
|
- For all intents and purposes, 3D collision detection is now done.
|
|
|
|
|
There is only one potential problem I can foresee: With enough
|
|
|
|
|
vertical velocity, an object could pass right through another
|
|
|
|
|
object in midair. I don't think situations like this will arise very
|
|
|
|
|
often (if at all), so I'm not going to bother rewriting all my new
|
|
|
|
|
code to fix it. At any rate, it's still a lot better than it used
|
|
|
|
|
to be.
|
|
|
|
|
- Added targettic to mobj_t to create a delay before missiles can
|
|
|
|
|
impact the thing that shot them. This fixes the problem of missiles
|
|
|
|
|
exploding in the shooter's face before they get anywhere.
|
|
|
|
|
- Adjusted P_FindFloor() to search neighboring blocks in the blockmap.
|
|
|
|
|
This solved the problem of occasionally falling into things. Did the
|
|
|
|
|
same thing to P_FindCeiling().
|
|
|
|
|
|
|
|
|
|
April 13, 1998
|
|
|
|
|
- Worked on more thorough 3D collision detection code than my
|
|
|
|
|
previous attempt. (At least it doesn't crash now!) FIXME:
|
|
|
|
|
Missiles are often exploding right in front of the shooter's face.
|
|
|
|
|
It's still possible to land inside of monsters sometimes.
|
|
|
|
|
- PIT_RadiusAttack() can now throw things around in three dimensions.
|
|
|
|
|
The only real benefit of this is that it allows for rocket jumping.
|
|
|
|
|
(Which is still pretty cool and well worth the effort of coding it.)
|
|
|
|
|
- Made health bonuses and muzzle flashes translucent.
|
|
|
|
|
- Fixed bug with Arch-Vile resurrecting a 25% or 75% translucent
|
|
|
|
|
monster. Did equivalent thing for exploding missiles.
|
|
|
|
|
- Put idmus cheat and command back.
|
|
|
|
|
- Added CVAR_CALLBACK flag for non-latching cvars.
|
|
|
|
|
- Added map command to the console.
|
|
|
|
|
- Modified G_InitNew() and associated code to use skill cvar.
|
|
|
|
|
- Implemented proper cvar latching.
|
|
|
|
|
- Hooked localization code into g_level.c. This also cleaned up
|
|
|
|
|
the text patching code in d_dehack.c somewhat, since level names
|
|
|
|
|
and cluster messages are no longer special cases.
|
|
|
|
|
|
|
|
|
|
April 12, 1998
|
|
|
|
|
- Multi-language support is pretty much done. A nice benefit of this
|
|
|
|
|
is that it makes DeHackEd text replacement support easier.
|
|
|
|
|
- -iwad and -deh parameters now automatically append the appropriate
|
|
|
|
|
extension (.wad or .deh) if none is specified with them.
|
|
|
|
|
- IdentifyVersion() now sets gamemission according to which IWAD
|
|
|
|
|
it finds.
|
|
|
|
|
- Removed -shdev, -regdev, and -comdev parameters.
|
|
|
|
|
- Fixed inadvertant bug in st_new.c that prevented ZDoom from
|
|
|
|
|
working with the shareware IWAD. I had previously been loading
|
|
|
|
|
the ammo patches with W_CacheLumpName() which bombs out if it
|
|
|
|
|
can't find a named lump (like CELLA0 which isn't in the shareware
|
|
|
|
|
WAD). Now I check for the presence of the lump before I try to
|
|
|
|
|
load it.
|
|
|
|
|
|
|
|
|
|
April 11, 1998
|
|
|
|
|
- Created strutil utility to create string lumps for ZDoom. Also
|
|
|
|
|
created source files for strutil containing the English and French
|
|
|
|
|
translations. (Though English will still be stored in the
|
|
|
|
|
executable as a fallback and to assist with DeHackEd patch text
|
|
|
|
|
replacement.)
|
|
|
|
|
|
|
|
|
|
April 10, 1998
|
|
|
|
|
Not much done today:
|
|
|
|
|
- Added g_unlimitedammo cvar.
|
|
|
|
|
- Added optional fall damage code originally created by Andy Kempling.
|
|
|
|
|
|
|
|
|
|
April 9, 1998
|
|
|
|
|
- Fixed the pickup of health bonuses. Before, the bonuses maxed
|
|
|
|
|
out at deh_MaxHealth. Now they max out at deh_MaxSoulsphere.
|
|
|
|
|
- Added I_SetTitleString() so that we can once again display the
|
|
|
|
|
game banner at startup.
|
|
|
|
|
- Removed -wart parameter.
|
|
|
|
|
- Completely rewrote the tab completion code. :-) It still works
|
|
|
|
|
the same from the end-user's point of view, but now the code is
|
|
|
|
|
a whole lot cleaner and more flexible.
|
|
|
|
|
|
|
|
|
|
April 8, 1998
|
|
|
|
|
- Implemented tab completion for the console. The associated code
|
|
|
|
|
is really convoluted, but at least it works.
|
|
|
|
|
- Implemented monster infighting for DeHackEd patches. It
|
|
|
|
|
was really easy once I looked in the DeHackEd source and
|
|
|
|
|
figured out that it was modifying PIT_CheckThing(). Too bad
|
|
|
|
|
I didn't do this a day earlier...
|
|
|
|
|
|
|
|
|
|
April 7, 1998
|
|
|
|
|
- Updated the documentation and uploaded 1.12 to cdrom.com.
|
|
|
|
|
- Put the integer divide code back in FixedDiv_ASM().
|
|
|
|
|
I'm pretty sure the real problem was with my overflow
|
|
|
|
|
detection code, which I fixed yesterday when I put in
|
|
|
|
|
the float code. It works properly now and always
|
|
|
|
|
rounds down. (Some code such as the sprite drawer assumed
|
|
|
|
|
that this was the case, but using floats rounded to the
|
|
|
|
|
nearest integer.) I just don't understand why the problem
|
|
|
|
|
didn't show up much sooner.
|
|
|
|
|
|
|
|
|
|
April 6, 1998
|
|
|
|
|
- Added am_showsecrets, am_showmonsters, and
|
|
|
|
|
am_showtime cvars.
|
|
|
|
|
- Added V_DrawPatchTranslatedCleanNoMove() and
|
|
|
|
|
V_DrawTextClean(). Changed console notify text
|
|
|
|
|
code and automap text code to clean scale their
|
|
|
|
|
text.
|
|
|
|
|
- Made a change to P_CrossSubsector() that ought
|
|
|
|
|
to speed things up marginally.
|
|
|
|
|
- Fixed a small bug in P_DivlineSide() that was
|
|
|
|
|
in the original id code.
|
|
|
|
|
- Rewrote FixedDiv_ASM() to use floating point
|
|
|
|
|
math, and it worked. Also removed division by
|
|
|
|
|
zero check, since it appears it's still being
|
|
|
|
|
called with b==0. It looks like DOOM doesn't
|
|
|
|
|
ensure that it never divides by zero and makes
|
|
|
|
|
an assumption about the way FixedDiv() will
|
|
|
|
|
handle these cases.
|
|
|
|
|
- #defined NOASM to disable the use of assembly
|
|
|
|
|
routines, and it seemed to run fine. Recompiled
|
|
|
|
|
with assembly routines except FixedDiv_ASM() and
|
|
|
|
|
it still worked.
|
|
|
|
|
|
|
|
|
|
April 3, 1998
|
|
|
|
|
- This crashing stuff is getting even weirder. At
|
|
|
|
|
first, if I disabled optimization in the release
|
|
|
|
|
build, it went away. Now it's showing up under
|
|
|
|
|
all configurations, and I haven't done anything
|
|
|
|
|
to the code. I'm at a loss as to what to do. :-(
|
|
|
|
|
- Fixed an obscure bug in FixedDiv_ASM(). When it
|
|
|
|
|
overflowed, it was popping esi instead of ebx.
|
|
|
|
|
Also added a check for division by zero.
|
|
|
|
|
|
|
|
|
|
April 2, 1998
|
|
|
|
|
- Did some bug hunting. The problem is happening in
|
|
|
|
|
P_CrossSubsector(), so it's likely something that
|
|
|
|
|
happens before then, since I never touched that
|
|
|
|
|
function.
|
|
|
|
|
- Moved the FPS drawer in I_FinishUpdate() before
|
|
|
|
|
the -devparm dot drawer.
|
|
|
|
|
|
|
|
|
|
April 1, 1998
|
|
|
|
|
- Added Andy Baker's stealth monsters code. Upon
|
|
|
|
|
tessting, a discovered the release build was still
|
|
|
|
|
crashing even without loading a .deh file. My guess
|
|
|
|
|
is that this is the same problem I had on the P60,
|
|
|
|
|
and adding the DeHackEd code just reorganized things
|
|
|
|
|
enough for the problem to show up on my machine too.
|
|
|
|
|
- Changed P_TouchSpecialThing() so that picking up a
|
|
|
|
|
power plays a surround sound.
|
|
|
|
|
- Continued DeHackEd support. Most text strings now
|
|
|
|
|
get replaced, and almost all miscellaneous info is
|
|
|
|
|
supported as well. Still crashes in the release build.
|
|
|
|
|
|
|
|
|
|
March 31, 1998
|
|
|
|
|
- Continued work on DeHackEd support. Everything except
|
|
|
|
|
miscellaneous info and text changing is supported.
|
|
|
|
|
Unfortunately, my release build is experiencing crash
|
|
|
|
|
problems not present in the debug build now. :-(
|
|
|
|
|
- Ripped the MHFX_LAXSPRITEROTATIONS fix out of
|
|
|
|
|
DOSDoom's r_things.c.
|
|
|
|
|
|
|
|
|
|
March 30, 1998
|
|
|
|
|
- Started work on DeHackEd support: things, frames,
|
|
|
|
|
and weapons done. Sounds mostly done.
|
|
|
|
|
- Added minimal code to handle changes to userinfo cvars.
|
|
|
|
|
- Changed player movement code to allow for very minimal
|
|
|
|
|
corrections to momentum while in mid-air.
|
|
|
|
|
- Did a quick test of z-checking for collisions. Needs
|
|
|
|
|
more work; disabled for now.
|
|
|
|
|
- Optimized FixedDiv_ASM() further using a neat absolute
|
|
|
|
|
value trick I discovered on a website somewhere.
|
|
|
|
|
- Did the same thing for P_BulletSlope(). One unexpected
|
|
|
|
|
twist: bullets always hit walls no matter what their slope.
|
|
|
|
|
- Added shoot up/down for projectile weapons with a
|
|
|
|
|
quick hack to P_SpawnPlayerMissile().
|
|
|
|
|
- Moved ysheer out of player_t and into mobj_t as pitch.
|
|
|
|
|
- Changed P_ExplodeMissile() to set missile explosion
|
|
|
|
|
sprites translucent.
|
|
|
|
|
- Changed D_DoomMain() so that it always loads zdoom.wad
|
|
|
|
|
first instead of second.
|
|
|
|
|
- Added m_alloc.(c|h) so that I can finally check to
|
|
|
|
|
make sure I get all the memory I ask for with malloc().
|
|
|
|
|
- Finished automap overlay. Use am_overlay cvar.
|
|
|
|
|
- Moved automap framebuffer boundary determination out of
|
|
|
|
|
AM_LevelInit() and into AM_Drawer(). Did other mucking
|
|
|
|
|
about in the automap code so it clips the automap to the
|
|
|
|
|
view window when the map is overlayed on top of it.
|
|
|
|
|
|
|
|
|
|
March 29, 1998
|
|
|
|
|
- Jotted down some code for truecolor routines.
|
|
|
|
|
|
|
|
|
|
March 28, 1998
|
|
|
|
|
- Worked on automap overlay.
|
|
|
|
|
- Changed C_DoKey() to return true if the key generated a
|
|
|
|
|
command, and false if it didn't.
|
|
|
|
|
- Automap can now rotate. Use am_rotate cvar to control it.
|
|
|
|
|
- Finished new HUD (for now). It gets the job done, and it's not
|
|
|
|
|
too cluttered.
|
|
|
|
|
|
|
|
|
|
March 27, 1998
|
|
|
|
|
- Continued work on new options menu: Removed old sound menu.
|
|
|
|
|
Created new menu title patches. Created controls menu.
|
|
|
|
|
Created video menu.
|
|
|
|
|
|
|
|
|
|
March 26, 1998
|
|
|
|
|
- Started work on the new options menu.
|
|
|
|
|
- Created binddefaults command.
|
|
|
|
|
- Created a bunch of menu_* commands to access the different
|
|
|
|
|
menus directly. Also added some of them to the default
|
|
|
|
|
bindings string.
|
|
|
|
|
- Fixed sky height bug. The key is that skytexturemid is NOT
|
|
|
|
|
resolution-dependant. It is a constant.
|
|
|
|
|
- Changed yesterday's sky height fix so that it is based on Doom
|
|
|
|
|
Legacy's aspect ratio correction rather than what DOSDoom did.
|
|
|
|
|
(BTW, this was not done in the 1.11 Doom Legacy source. :-)
|
|
|
|
|
|
|
|
|
|
March 25, 1998
|
|
|
|
|
- Fixed sky height with a little help from DOSDoom.
|
|
|
|
|
- Started work on the new HUD. Not yet sure what I like.
|
|
|
|
|
- Created the C version of Print2CharP_MMX. It sucks. I know there
|
|
|
|
|
must be a clever way to do it using bit shifts and masking, but
|
|
|
|
|
I don't feel like persuing it right now, since I have an MMX
|
|
|
|
|
machine, and MMX makes it very easy to do.
|
|
|
|
|
|
|
|
|
|
March 24, 1998
|
|
|
|
|
- Ran ZDoom on the Pentium 60 sitting next to me. It crashed whenever
|
|
|
|
|
I tried to enter a level. Some testing is obviously called for. :-(
|
|
|
|
|
- Added code to check for the presence of MMX support.
|
|
|
|
|
- Created misc.nas and moved the assembly versions of FixedMul() and
|
|
|
|
|
FixedDiv() into it. Also created an assembly inner loop for
|
|
|
|
|
V_DimScreen(). Also created an assembly routine to plot one conchar
|
|
|
|
|
to the screen (Print1CharP) and an MMX version that doubles the
|
|
|
|
|
conchar in size.
|
|
|
|
|
- Made command parameters in commands.txt consistant with other
|
|
|
|
|
parameter lists. (<> for required params, [] for ones that aren't.)
|
|
|
|
|
Also added brief descriptions of the different cvar types at the.
|
|
|
|
|
- Removed idmypos command. It was redundant with the
|
|
|
|
|
"toggle idmypos" command.
|
|
|
|
|
|
|
|
|
|
March 23, 1998
|
|
|
|
|
- Added dimamount and dimcolor (defaults to gold) cvars for
|
|
|
|
|
V_DimScreen() so that it can shade the screen to any color instead
|
|
|
|
|
of just darkening it (although it will revert to its old behavior if
|
|
|
|
|
translucency is disabled).
|
|
|
|
|
- Added assembly version of R_DrawFuzzColumn as well as a proper
|
|
|
|
|
assembly version of R_DrawTranslucentColumn().
|
|
|
|
|
- Changed fuzztable in r_draw.c from 50 to 64 entries so that I can
|
|
|
|
|
use a simple mask in R_DrawFuzzColumn() instead of conditionals.
|
|
|
|
|
This should speed up that loop significantly (especially once it's
|
|
|
|
|
in assembly). Also removed references to frac and fracstep from
|
|
|
|
|
R_DrawFuzzColumn() since they weren't needed.
|
|
|
|
|
- Can't seem to get V_DrawPatchFlipped() to position patches properly
|
|
|
|
|
(they keep getting drawn too far to the left and up), so for now,
|
|
|
|
|
it just calls V_DrawPatchIndirect().
|
|
|
|
|
- Added special case to V_DrawPatchStretched for full-screen patches.
|
|
|
|
|
Also added a scrn parameter to F_DrawPatchCol to accomodate this.
|
|
|
|
|
- Changed cyberdemon and spider mastermind sight and death sounds
|
|
|
|
|
in the cast finale to surround.
|
|
|
|
|
- Changed brain's pain sound to use ORIGIN_SURROUND2. That way, the
|
|
|
|
|
things it throws out won't override it.
|
|
|
|
|
- Added ORIGIN_AMBIENT3-4 and ORIGIN_SURROUND2-4 to s_sound.(c|h).
|
|
|
|
|
|
|
|
|
|
March 19, 1998
|
|
|
|
|
- Fixed UpdateCursorPosition() in i_input.c so that mouse
|
|
|
|
|
sensitivity is independent of the framerate.
|
|
|
|
|
- Increased speed of text wipe in f_finale.c.
|
|
|
|
|
- Added V_DrawRedTextClean(), V_DrawWhiteTextClean(), and
|
|
|
|
|
V_DrawTranslatedPatchStretched(), and V_DrawTranslatedPatchClean()
|
|
|
|
|
to v_video.c.
|
|
|
|
|
- Fixed bug in V_DrawPatchStretched(). Was using unsigned ints where
|
|
|
|
|
I should have used signed ints.
|
|
|
|
|
- Rewrote F_Ticker().
|
|
|
|
|
- Specifying -nomusic no longer causes I_InitSound() to allocate
|
|
|
|
|
channels for MOD music.
|
|
|
|
|
- Changed several V_DrawPatch()es and V_DrawPatchDirect()s to
|
|
|
|
|
V_DrawPatchClean() and V_DrawPatchIndirect() in various source files.
|
|
|
|
|
- Added V_DrawPatchIndirect(), V_DrawPatchClean(), and
|
|
|
|
|
V_DrawPatchCleanNoMove() to v_video.c.
|
|
|
|
|
- Made lots of changes relating to level and cluster handling.
|
|
|
|
|
- Fixed problem in wi_stuff.c that prevented par times from appearing
|
|
|
|
|
on Doom II levels 12 and above.
|
|
|
|
|
|
|
|
|
|
March 18, 1998
|
|
|
|
|
- Changed idmus command to changemus. Now it expects its input
|
|
|
|
|
to be an actual song name. (Consquently, the idmus cheat is gone.)
|
|
|
|
|
- Moved stuff from S_music[] into LevelInfos[];
|
|
|
|
|
- Changed all references to leveltime, totalsecret, totalkills, and
|
|
|
|
|
totalitems to level.time, level.total_secrets, level.total_monsters,
|
|
|
|
|
and level.total_items respectively. levelstarttic was never used;
|
|
|
|
|
got rid of it.
|
|
|
|
|
- Removed mapnames* arrays from hu_stuff.c and some ST_MAP* #defines
|
|
|
|
|
in st_stuff.c.
|
|
|
|
|
- Moved drawing of level name in automap out of hu_stuff.c into am_map.c.
|
|
|
|
|
|
|
|
|
|
March 17, 1998
|
|
|
|
|
- Started laying the framework for better customizability of maps.
|
|
|
|
|
(Any lump can be a map, use any map for the next and secret maps,
|
|
|
|
|
give custom maps a name, custom par times, etc.)
|
|
|
|
|
- Played at 640x480 for about 1.5 hours trying to get my machine
|
|
|
|
|
to crash. I have had a report of intermittant crashing possibly
|
|
|
|
|
related to high resolutions, but have been unable to duplicate
|
|
|
|
|
the problem on my machine. On a side note, 640x480 is way too slow.
|
|
|
|
|
Doom95 does ~32 fps at 640x400, and Duke 3D does ~25 fps at 640x480.
|
|
|
|
|
I get ~10 fps at 640x480 and ~12 fps at 640x400. Wish I knew how
|
|
|
|
|
they do it...
|
|
|
|
|
|
|
|
|
|
March 16, 1998
|
|
|
|
|
- Hacked in some code into S_ChangeMusic() to allow it to play songs
|
|
|
|
|
stored as individual files on disk. Added primarily because I
|
|
|
|
|
have a large collection of MODs, and I don't want to be forced
|
|
|
|
|
to pick which ones I want to listen to when I start the game
|
|
|
|
|
(by specifying them with the -file parameter).
|
|
|
|
|
- Discovered the Win32 Demo Programming FAQ. Now I can disable
|
|
|
|
|
code segment protection so self-modifying code can stay in
|
|
|
|
|
the same segment as all the other code instead of hiding in
|
|
|
|
|
the data segment.
|
|
|
|
|
- Put in the R_DrawColumn code from Doom Legacy. Took me awhile to
|
|
|
|
|
realize that ylookup and columnofs are now pointers instead of
|
|
|
|
|
arrays.
|
|
|
|
|
|
|
|
|
|
March 14, 1998
|
|
|
|
|
- mb_used changed to a float, so the heap doesn't need to be an
|
|
|
|
|
integral number of megs in size.
|
|
|
|
|
- Added -heapsize parameter to set size of zone heap at run time.
|
|
|
|
|
- Increased size of demoname[] from 32 to 256 chars.
|
|
|
|
|
- Rewrote snippets of -playdemo code so that demos can be played
|
|
|
|
|
from any directory and with any path.
|
|
|
|
|
- Removed all references to basedefault, since it's been replaced
|
|
|
|
|
by configfile.
|
|
|
|
|
- Fixed a really dumb bug in FixPathSeperator. Was initializing
|
|
|
|
|
c to progdir instead of path. Now you can add lumps in different
|
|
|
|
|
directories, and still refer to them by name.
|
|
|
|
|
- Reformatted w_wad.c for 4 character tabs.
|
|
|
|
|
- Looked through the PTC archive. It needs better documentation, but
|
|
|
|
|
I think I'll probably switch to it for the third release of ZDoom.
|
|
|
|
|
|
|
|
|
|
March 13, 1998
|
|
|
|
|
- Added back some of the stuff I had originally added to w_wad.c.
|
|
|
|
|
- Borrowed BT_JUMP and BT_DUCK from DOSDoom. Also added jumping code.
|
|
|
|
|
- IDFA and IDKFA now include the backpack.
|
|
|
|
|
- Downloaded Prometheus Truecolor. Trying to decide if I should use it
|
|
|
|
|
for high- and true-color support.
|
|
|
|
|
- Added support for caching the translucency tables to disk.
|
|
|
|
|
(TODO: Compress this file.)
|
|
|
|
|
- Added support for 25% and 75% translucency (because DOSDoom 0.60
|
|
|
|
|
has it.)
|
|
|
|
|
- Copied w_wad.c and w_wad.h from DOSDoom 0.60. (decided not to
|
|
|
|
|
bother trying to get PACK support in)
|
|
|
|
|
- Moved ConChars data into zdoom.wad as an ordinary patch. zDoom now
|
|
|
|
|
generates the neccessary data on the fly.
|
|
|
|
|
- Removed MAXCEILINGS limit. (was 30)
|
|
|
|
|
- Removed MAX_DEATHMATCH_STARTS limit. (was 10)
|
|
|
|
|
- Removed MAXPLATS limit. (was 30)
|
|
|
|
|
|
|
|
|
|
March 12, 1998
|
|
|
|
|
- Rewrote P_FindNextHighestFloor() so that it doesn't use an internal
|
|
|
|
|
array (thus also removing the MAX_ADJOINING_SECTORS limit).
|
|
|
|
|
- Removed some files from the code directory I had added but never used.
|
|
|
|
|
- Removed MAXSEGS limit. (was 32.. What are solidsegs anyway?)
|
|
|
|
|
- Removed MAXDRAWSEGS limit. (was 256)
|
|
|
|
|
- Now allocate R_DrawSprite()'s clipbot and cliptop arrays inside
|
|
|
|
|
R_MultiresInit() instead of each time the function is called. Should
|
|
|
|
|
have done this in the first place, but I obviously wasn't thinking.
|
|
|
|
|
One particularly sprite-laden scene went from ~25 fps to almost 35 fps.
|
|
|
|
|
- Created R_MultiresInit() function. Now V_SetResolution() calls it, and
|
|
|
|
|
it calls the various R_*() functions related to supporting multiple
|
|
|
|
|
resolutions.
|
|
|
|
|
- Changed the default am_gridcolor to a decent color that actually fits
|
|
|
|
|
with the rest of the color scheme.
|
|
|
|
|
- Took a cue from WinDoom and split my keyboard handler between the
|
|
|
|
|
DirectInput code and the window's message handler. Ugly, but at least
|
|
|
|
|
now it handles Pause and Alt-Tab properly. (The original problem with
|
|
|
|
|
Alt-Tab, incidentally, was that I was failing to reacquire the keyboard
|
|
|
|
|
when I regained the input focus.)
|
|
|
|
|
- Inserting text at the command line in the console now works properly.
|
|
|
|
|
- Pressing ` to hide the console now clears the command line. This is
|
|
|
|
|
the same behavior as Quake, but previously only Escape would clear the
|
|
|
|
|
command line in ZDoom. I found that to be too annoying.
|
|
|
|
|
- Pressing up and down arrow keys in the console to scroll through the
|
|
|
|
|
history now ensures that the cursor is always visible.
|
|
|
|
|
- Changed BuildString() so that if it is called with argc==1, it just
|
|
|
|
|
returns a copy of the string unmodified instead of sticking it in
|
|
|
|
|
quotes if it contains a space.
|
|
|
|
|
- Renamed setcolorbyname to setcolor. The former was just too long.
|
|
|
|
|
- Added setcolorbyname command and corresponding V_GetColorStringByName()
|
|
|
|
|
function and X11R6RGB lump listing a bunch of named colors.
|
|
|
|
|
|
|
|
|
|
March 11, 1998
|
|
|
|
|
- Added crosshair cvar and corresponding code to draw the crosshair.
|
|
|
|
|
Put some cheezy crosshairs in zdoom.wad, too. (Now if only you could
|
|
|
|
|
actually aim up and down...)
|
|
|
|
|
- Added V_DrawLucentPatch() function to draw translucent patches.
|
|
|
|
|
- Added freelook, lookspring, lookstrafe, m_pitch, m_yaw, m_forward,
|
|
|
|
|
and m_side cvars.
|
|
|
|
|
|
|
|
|
|
March 10, 1998
|
|
|
|
|
- Added invertmouse cvar.
|
|
|
|
|
- Put the colon back into the "startskill..." message in d_net.c.
|
|
|
|
|
- ylookup[] and columnofs[] tables in r_draw.c are now allocated
|
|
|
|
|
dynamically based on screen size. Hacked this into R_InitFuzzTable().
|
|
|
|
|
- Status bar finally properly draws borders to the left and right
|
|
|
|
|
of itself if the screen is wider than it is.
|
|
|
|
|
- Added documentation for am_* and developer cvars in commands.txt.
|
|
|
|
|
- Discovered that lines not yet seen but visible thanks to the
|
|
|
|
|
automap powerup were not color-configurable. Changed it.
|
|
|
|
|
- Changed all color #defines in am_map.c into ints that get
|
|
|
|
|
initialized from color values in cvars each time
|
|
|
|
|
AM_initVariables is called. Also added back support for the
|
|
|
|
|
original automap color scheme regardless of what the user's colors are
|
|
|
|
|
through the am_usecustomcolors cvar.
|
|
|
|
|
- In single player, automap can now draw the player's arrow using
|
|
|
|
|
any color and not just WHITE.
|
|
|
|
|
- Removed all references to lightlev in am_map.c, including the
|
|
|
|
|
AM_updateLightLev() function. The "strobe" effect was really cheap
|
|
|
|
|
anyway, never used, and will be fairly difficult to implement
|
|
|
|
|
cleanly when I make the automap colors customizable.
|
|
|
|
|
- Changed I_Error() call in ParseHex() to a Printf() call.
|
|
|
|
|
- Removed "extern byte *demo_p;" from d_protocol.c. It didn't need to
|
|
|
|
|
be there anyway.
|
|
|
|
|
- Added V_GetColorFromString() to v_video.c.
|
|
|
|
|
- Changed BASEYCENTER #define in r_things.c from
|
|
|
|
|
(100-((SCREENHEIGHT-200)/12)) to (100). PlayerSprites are now drawn
|
|
|
|
|
in approximately the same location at all resolutions.
|
|
|
|
|
|
|
|
|
|
March 9, 1998
|
|
|
|
|
- Seem to have finally fixed the problem with my visplane growing
|
|
|
|
|
code. Using calloc() in PrepVisPlanes() instead of malloc() seems
|
|
|
|
|
to have solved all my woes. Now on to something else!
|
|
|
|
|
- Boy do I feel dumb. Found a bug in C_DrawConsole () where the
|
|
|
|
|
revealed variable wasn't always being set before it was used.
|
|
|
|
|
Now I rewrote it so that it doesn't need to calculate
|
|
|
|
|
revealed at all. It ought to be marginally faster, too (although
|
|
|
|
|
it probably won't make a bit of difference during gameplay).
|
|
|
|
|
|
|
|
|
|
March 7, 1998
|
|
|
|
|
- Still working on MaxVisPlanes bug. This is proving to be more
|
|
|
|
|
elusive than I had expected, since VC++ is being most unhelpful.
|
|
|
|
|
The bug doesn't show up in the debug build (heap checking doesn't
|
|
|
|
|
even catch anything), and I can't use the debugger on the release
|
|
|
|
|
build where the bug does show up! Grrr!
|
|
|
|
|
|
|
|
|
|
March 6, 1998
|
|
|
|
|
|
|
|
|
|
- Started changing MAXVISPLANES constant into the growing integer
|
|
|
|
|
MaxVisPlanes. Moved some code from R_PlaneInitData() to
|
|
|
|
|
R_InitPlanes() and added the GetMoreVisPlanes() function to
|
|
|
|
|
allocate more planes. Strange crashing bugs in release but not
|
|
|
|
|
debug builds. Probably stomping on memory somewhere.
|
|
|
|
|
- Fixed stupid bug in I_ShutdownSound: was calling MIDASfreeSample()
|
|
|
|
|
when I should have been calling MIDASfreeChannel(). Also moved
|
|
|
|
|
freeing of channels to another for loop (probably not necessary, but...).
|
|
|
|
|
- Fixed -file parameter to work with console commands on the
|
|
|
|
|
command line.
|
|
|
|
|
- Changed MAXVISSPRITES constant into the integer MaxVisSprites,
|
|
|
|
|
which is the size of the vissprites[] array. This value can now
|
|
|
|
|
grow as needed to accomodate more vissprites.
|
|
|
|
|
- Added developer cvar and DEVONLY macro.
|
|
|
|
|
- Functions in i_music.c now pay attention to the looping flag.
|
|
|
|
|
- C_AddNotifyString() now pays attention to show_messages cvar.
|
|
|
|
|
- Added support for specifying console commands on the command line.
|