accounting. Also, if the poisoner is a missile, remembering it is pretty pointless, since it's
likely to be gone before the player ever dies from the poison.
SVN r4040 (trunk)
can perform based on the amount of damage actually taken after all modifications are done to
it. However, if the damage is canceled away, blood will still spawn for the original damage
amount rather than the modified amount.
SVN r4012 (trunk)
- fixed: The same rules that are used for deciding if a weapon attack took place should be used when checking the PIERCEARMOR flag in P_LineAttack: It should be ignored if the attack doesn't originate from the weapon.
SVN r3649 (trunk)
overridden in custom player classes by changing their Obituary property to something else.
- ClientObituary() now only looks up the obituary message from the killing player's weapon if the
damage type was 'Melee' or 'Hitscan'.
- Gave P_GunShot() and A_FireBullets the new damage type 'Hitscan'.
- Switched A_Saw and A_CustomPunch to the 'Melee' damage type.
SVN r3646 (trunk)
reached 0.
- Fixed: Poisoners without a PainType should use their own DamageType to pick the Pain state
to make the target enter, not the target's DamageType.
SVN r3475 (trunk)
* the sprite used for 'pause'.
* the factor with which a monster's health is multiplied to decide if it's supposed to be gibbed,
* the decision to make monsters run faster in nightmare mode.
- moved the hard coded lock messages for lock types 102 and 103 into the language lump.
- fixed: Raven's fast monsters could become slower in Nightmare if they had very short walking states.
SVN r2834 (trunk)
player does not immediately activate switches. oldbuttons was not usable
for this. This also required that CopyPlayer preserves this info.
- Fixed: When restarting the music there was a NULL pointer check missing
so it crashed when the game was started wi
- Fixed: If the Use key is used to respawn the player it must be cleared
so that it doesn't trigger any subsequent actions after respawning.
- Fixed: Resurrecting a monster did not restore flags5 and flags6.
- Fixed: Projectiles which killed a non-monster were unable to determine
what precisely they hit because MF_CORPSE is only valid for monsters.
A new flag, MF6_KILLED that gets set for all objects that die, was added
for this case.
- Added a generic A_Weave function that exposes all possible options of
A_BishopMissileWeave and A_CStaffMissileSlither. These 2 functions are
no longer needed from DECORATE and therefore deprecated.
SVN r2045 (trunk)
But that's insufficient because it doesn't factor in any subsequent velocity
change that happens between the damaging and the next call to A_FreezeDeathChunks.
- fixed: The TimeFreezer did not freeze other players' controls in a
multiplayer game.
- fixed: DECORATE's 'gravity' property incorrectly messed around with the
NOGRAVITY flag.
- fixed: Hitscan attacks didn't check the puff's replacement for damage types.
SVN r2026 (trunk)
- fixed: When a blasted actor collided with another one this other actor's
DONTBLAST flag was not checked.
- added a global DamageFactor actor property. All damage this actor takes is multiplied
by this factor in addition to damage type specific damage factors.
SVN r1915 (trunk)
- Cleaned up A_LookEx code and merged most of it with the base functions.
The major difference was a common piece of code that was repeated 5 times
throughout the code so I moved it into a subfunction.
- Changed P_BlockmapSearch to pass a user parameter to its callback so that
A_LookEx does not need to store its info inside the actor itself.
SVN r1846 (trunk)
- Added more things from Gez's experimental build:
* MBF grenade and bouncing code.
* Arch Vile ghosts emulation (only for compatibility.txt.)
* Several MBF related compatibility options.
SVN r1821 (trunk)
* info CCMD to print extended actor information (not fully implemented yet)
* summonmbf CCMD.
* Beta BFG code pointer (but not the related missiles yet.)
* PowerInvisibility enhancements.
* ScoreItem with one significant change: Added a score variable that can be
checked through ACS and DECORATE. The engine itself will do nothing with it.
* Nailgun option for A_Explode.
* A_PrintBold and A_Log.
* A_SetSpecial.
SVN r1819 (trunk)
that were changed some time ago.
- fixed: The damage inflictor for a rail attack was the shooter, not the puff.
- Fixed: Floor and ceiling huggers may not change their z-velocity when seeking.
- Fixed: UDMF set the secret sector flag before parsing the sector's properties,
resulting in it always being false.
- Renamed sector's oldspecial variable to secretsector to better reflect its
only use.
- Fixed: A_BrainSpit stored as the SpawnShot's target the intended BossTarget,
not itself contrarily to other projectile spawning functions.
A_SpawnFly then used the target for CopyFriendliness, thinking it'll be the
BossEye when in fact it wasn't.
- Added Gez's submission for a DEHACKED hack introduced by Boom.
(using code pointers of the form 'Pointer 0 (x statenumber)'.
- fixed: Attaching 3DMidtex lines by sector tag did not work because lines
were marked by index in the sector's line list but needed to be marked by
line index in the global array.
- fixed: On Linux ZDoom was creating a directory called "~.zdoom" for
save files because of a missing slash.
- fixed: UDMF was unable to read floating point values in exponential format
because the C Mode scanner was missing a definition for them.
- fixed: The recent changes for removing pointer aliasing got the end sequence
info from an incorrect variable. To make this more robust the sequence index
is now stored as a hexadecimal string to avoid storing binary data in a string.
Also moved end sequence lookup from f_finale.cpp to the calling code so that
the proper end sequences can be retrieved for secret exits, too.
SVN r1777 (trunk)
1000 as the threshold for god mode damage to use it instead. (Players with
MF2_INVULNERABLE set already used 1000000 as their threshold.)
SVN r1755 (trunk)
missiles.) Also added PPF_NOTHRUSTWHILEINVUL to prevent invulnerable players
from being thrusted while taking damage. (Non-players were already
unthrusted.)
SVN r1695 (trunk)
velocity, and now it's known as such. The actor variables momx/momy/momz
are now known as velx/vely/velz, and the ACS functions GetActorMomX/Y/Z
are now known as GetActorVelX/Y/Z. For compatibility, momx/momy/momz will
continue to work as aliases from DECORATE. The ACS functions, however,
require you to use the new name, since they never saw an official release
yet.
SVN r1689 (trunk)
a Minotaur couldn't spawn floor flames when standing in water having its
feet clipped.
- added vid_vsync to display options.
- fixed: Animations of type 'Range' must be disabled if the textures don't
come from the same definition unit (i.e both containing file and use type
are identical.)
- changed: Item pushing is now only done once per P_XYMovement call.
- Increased the push factor of Heretic's pod to 0.5 so that its behavior
more closely matches the original which depended on several bugs in the engine.
- Removed damage thrust clamping in P_DamageMobj and changed the thrust calculation
to use floats to prevent overflows. The prevention of the overflows was the
only reason the clamping was done.
- Added Raven's dagger-like vector sprite for the player to the automap code.
SVN r1668 (trunk)
regardless of pain chance.
- Changed screenblocks CVAR to be settable per game.
- Added SpawnSpotForced and SpawnSpotFacingForced ACS functions.
- Added pushfactor actor property.
SVN r1638 (trunk)
- Changed bounce flags into a property and added real bouncing sound properties.
Compatibility modes to preserve use of the SeeSound are present and the old
flags map to these.
SVN r1599 (trunk)
typedef'ed anonymous structs.
- Fixed: P_AutoUseHealth() used autousemodes 0 and 1 instead of 1 and 2.
- Fixed: SBARINFO did not recognize 5:4 aspect ratio.
- Fixed: screenshot_dir was ignored.
SVN r1505 (trunk)
- Fixed: Gravity application was not correct. For actors with no vertical
momentum the initial pull is supposed to be twice as strong as when
vertical movement already takes place.
- added invquery CCMD like in Strife. Also removed all underscores from the
tag strings so that they can be printed properly.
- Fixed: Skill baby was missing 'autousehealth' for all games.
- Added a new CVAR: sv_disableautohealth
- Autouse of health items is no longer hardwired to the default item classes.
There's a new property HealthPickup.Autouse. 0 means no autouse, 1 a small
Raven health item, 2 a large Raven health item and 3 a Strife item.
SVN r1452 (trunk)
- fixed: The nextmap and nextsecret CCMDs need to call G_DeferedInitNew instead of G_InitNew.
- merged MAPINFO branch back into trunk.
SVN r1393 (trunk)
- Changed WI_drawPercent() when wi_percents is false so that the total
display is optional, and it formats it like Heretic's intermission, with
a slash and a fixed-width right column.
- Font is no longer a property of the screen object. Pass the font to
DrawText and DrawChar directly instead.
- Doom's intermission characters are now collected together as a font
so they can be colorized.
SVN r1294 (trunk)
internal actor classes which no longer exist.
- Changed the state structure so that the Tics value doesn't need to be hacked
into misc1 with SF_BIGTIC anymore.
- Changed sprite processing so that sprite names are converted to indices
during parsing so that an additional postprocessing step is no longer needed.
- Fixed: Sprite names in DECORATE were case sensitive.
- Exported AActor's defaults to DECORATE and removed all code for the
internal property parser which is no longer needed.
SVN r1146 (trunk)
- Changed PoisonCloud and Lightning special treatment in P_DamageMobj to use damage
types instead to keep dependencies on specific actor types out of the main engine code.
- Added Korax DECORATE conversion by Gez and a few others by Karate Chris.
SVN r1130 (trunk)
occurences in the code that depended on it were changed accordingly.
Invulnerability colormaps are now being set by the items exclusively.
- Changed many checks for the friendly Minotaur to a new flag MF5_SUMMONEDMONSTER
so that it can hopefully be generalized to be usable elsewhere later.
- Added Gez's submission for converting the Minotaur to DECORATE.
SVN r1120 (trunk)
surprised if this doesn't build in Linux right now. The CMakeLists.txt
were checked with MinGW and NMake, but how they fair under Linux is an
unknown to me at this time.
- Converted most sprintf (and all wsprintf) calls to either mysnprintf or
FStrings, depending on the situation.
- Changed the strings in the wbstartstruct to be FStrings.
- Changed myvsnprintf() to output nothing if count is greater than INT_MAX.
This is so that I can use a series of mysnprintf() calls and advance the
pointer for each one. Once the pointer goes beyond the end of the buffer,
the count will go negative, but since it's an unsigned type it will be
seen as excessively huge instead. This should not be a problem, as there's
no reason for ZDoom to be using text buffers larger than 2 GB anywhere.
- Ripped out the disabled bit from FGameConfigFile::MigrateOldConfig().
- Changed CalcMapName() to return an FString instead of a pointer to a static
buffer.
- Changed startmap in d_main.cpp into an FString.
- Changed CheckWarpTransMap() to take an FString& as the first argument.
- Changed d_mapname in g_level.cpp into an FString.
- Changed DoSubstitution() in ct_chat.cpp to place the substitutions in an
FString.
- Fixed: The MAPINFO parser wrote into the string buffer to construct a map
name when given a Hexen map number. This was fine with the old scanner
code, but only a happy coincidence prevents it from crashing with the new
code
- Added the 'B' conversion specifier to StringFormat::VWorker() for printing
binary numbers.
- Added CMake support for building with MinGW, MSYS, and NMake. Linux support
is probably broken until I get around to booting into Linux again. Niceties
provided over the existing Makefiles they're replacing:
* All command-line builds can use the same build system, rather than having
a separate one for MinGW and another for Linux.
* Microsoft's NMake tool is supported as a target.
* Progress meters.
* Parallel makes work from a fresh checkout without needing to be primed
first with a single-threaded make.
* Porting to other architectures should be simplified, whenever that day
comes.
- Replaced the makewad tool with zipdir. This handles the dependency tracking
itself instead of generating an external makefile to do it, since I couldn't
figure out how to generate a makefile with an external tool and include it
with a CMake-generated makefile. Where makewad used a master list of files
to generate the package file, zipdir just zips the entire contents of one or
more directories.
- Added the gdtoa package from netlib's fp library so that ZDoom's printf-style
formatting can be entirely independant of the CRT.
SVN r1082 (trunk)
and vice versa.
- Fixed: In deathmatch specral missiles spawned by players should hurt other
players.
- Fixed: SpectralLightningBigBall didn't set the proper owner for the lightning
projectiles it spawned.
- Changed the EntityBoss's attack function to call the equivalent spectre
functions instead of duplicating their code.
- Gave many of Strife's code pointers that only had a number as name more
meaningful names.
- Fixed: All spectral attacks must set 'health' first before P_CheckMissileSpawn
is called.
SVN r1071 (trunk)
- Fixed: The internal definition of Floor_LowerToNearest had incorrect parameter
settings.
- Fixed: Heretic's ActivatedTimeBomb had the same spawn ID as the inventory item.
- fixed: Heretic's mace did not have its spawn ID set.
SVN r1052 (trunk)
capturing the mouse.
- Changed: Telefragging should not thrust the victim if it isn't in precisely the
same position as the killer.
- fixed: A_SpawnItemEx must call P_TeleportMove before checking the spawned
object's position.
SVN r1014 (trunk)
(actors being forced to the ground by instantly moving sectors, strife
railing handling and shooting lines with a non-zero but unassigned tag.)
With UDMF such semantics have to be handled diffently.
- finalized UDMF 1.0 implementation.
- Added Martin Howe's latest morph update.
SVN r987 (trunk)
that the drivers will treat a BackBufferCount of 0 as a request for
double buffering.
- Fixed: Unsetting a cvar did not remove it from the list of tab
completions.
- Added "" as a synonym for "nullimage" in SBARINFO.
- Fixed: MAKESAVESIG's stringifier in version.h did not work as expected.
It stringified the passed macro name, not the value of the macro.
- Moved DCajunMaster off the DObject hierarchy.
- Changed DCajunMaster::getspawned into a TArray of FStrings. It was
mysteriously being left pointing to uninitialized memory during the
final GC at exit and crashing.
- Fixed: The code that removed hexdd.wad from the list of IWADs when
hexen.wad was not present did not work.
SVN r861 (trunk)
high to pass through two-sided lines, but not ones that were too low.
- Fixed: SBARINFO couldn't detect the extreme death damage type for the
player face animation.
SVN r782 (trunk)
private slots if the one currently used is a player range.
- Fixed: Changing the fraglimit during the middle of a game would not trigger
a level change if somebody was already over the new limit.
SVN r599 (trunk)
resulting in missile attacks not working.
- Fixed: Hitscan attacks used the puff's position to calculate the trajectory for
weapon kickback.
SVN r568 (trunk)
or scripts. ColorSetter (#9038) sets the sector's color and FadeSetter (#9039)
sets the fog color.
- added new flags MF5_ALWAYSFAST and MF5_NEVERFAST. These flags unconditionally
enable or disable fast movement logic, regardless of skill settings.
- added an abstraction layer for skill related settings. This is a preparation
for implementing custom skill definitions but right now all it does is
returning the original values but keeping the related information all in one
place
SVN r557 (trunk)
- Fixed: DECORATE color translations with explicit colors didn't work because the
code treated byte values as fixed point.
- Fixed: LEVEL_NOALLIES must clear MF_FRIENDLY off any spawned actor except players.
Otherwise it doesn't work properly.
- Fixed: Entering a backslash in the player's name box caused a crash because
the code analyzing the string was missing a NULL pointer check.
- Fixed: Thing_Hate and Teleport_ZombieChanger unconditionally made state jumps,
even for dead monsters.
- Fixed: The palette flash for item pickup was not reset upon a player's death.
- Fixed: P_DamageMobj tried to get damage multiplier information from the
damage inflictor, not the attacker.
- Fixed: PowerTimeFreezer::DoEffect did not call its superclass method.
- fixed: When morphed monsters died they tried to set MF3_STAYMORPHED for the
attacker, not themselves. This caused a crash when they were killed by a crusher.
SVN r539 (trunk)
as a counter by the Hexen fighter's fist weapon.
- Fixed: The Wraithwerge's spirits shouldn't attack friends.
- Fixed: The Heresiarch's balls must not adjust their z-position after the
Heresiarch dies.
- Added damage type specific pain chances and an MF5_NOPAIN flag that can be used
to suppress entering the pain state altogether.
- Changed font initialization so that you can define replacements for the default
fonts in FONTDEFS.
- Removed the 'add a bot' menu option since bots are beyond repair and therefore
mostly useless.
- Fixed: Hitscan attacks must always spawn a puff so that it and its properties
can be used as damage inflictor.
SVN r534 (trunk)
powerup.
- Changed: Weapons are no longer checked for the EXTREMEDEATH and NOEXTREMEDEATH flags.
For all damage related actions it will always be the projectile (or puff for hitscan
attacks) that is treated as the damage inflictor.
- Fixed: Hexen's fourth weapons made extreme death depend on the weapon the player
is holding, not the projectile that did the kill. The WIF_EXTREME_DEATH flag
no longer exists as a result.
- Expanded PowerSpeed so that subclasses can be derived that alter the speed factor.
- Added an MF5_USESPECIAL flag that allows using things to execute their specials.
- added MF4_FORCERADIUSDMG flag so that exploding items can be created which
are able to hurt boss monsters.
- moved ML_BLOCK_PLAYERS to the value 0x4000 to bring it in line with Skulltag's
implementation.
SVN r530 (trunk)
- Fixed: Resurrecting a player must restore all flags words, not just the first one.
- Fixed: APowerWeaponLevel2::EndEffect must check PendingWeapon for WP_NOCHANGE.
- added Skulltag's high jump rune as a powerup
- Added Skulltag's Drain and Regeneration runes as powerups and used specific player
sounds for their sound effects instead of using misc/i_pkup.
(If I ever decide to implement runes it will be in a way that can use the regular
powerups instead of having to define specific classes for them.)
- Added Skulltag's PowerQuadDamage and PowerQuarterDamage as more customizable
PowerDamage and PowerProtection. These new powerups allow free customization of
the damage modification per damage type by inheriting from these classes and
setting specific values. Such derived damage/protection powerups will be considered
as separate powers so that for example a QuadDamage and a DoubleDamage item can be
stacked which would result in 8x damage.
- merged player_t::cheats and player_t::Powers into one variable.
SVN r529 (trunk)
to specific damage types.
- Changed Dehacked parser to use the DECORATE symbol tables for code pointers
instead of creating its own ones.
- Removed the HandleNoSector hack and changed A_Look so that it uses the sector's
sound target for actors with MF_NOSECTOR regardless of compatibility settings.
- Moved initialization of weapon slots after the actor initialization.
With default weapons exported to DECORATE it can't be done earlier.
- Converted Doom weapons to DECORATE.
- Changed backpack definition so that Doom's backpack is no longer the base
class that implements its functionality. Now there is an abstract base class
all backpack-like items derive from. Also moved the actual definition of Doom's
backpack to DECORATE.
SVN r519 (trunk)
- Removed the constraint that all $playerreserve SNDINFO commands must come
before the other $player commands.
- Fixed: TArray::Reserve did not construct its newly allocated entries.
- Changed the damage type for drowning from 'Water' to 'Drowning'.
SVN r466 (trunk)