Commit Graph

96 Commits

Author SHA1 Message Date
Christoph Oelckers d45262f96b - fixed: With the Buddha cheat active the health of the real player actor was not synchronized with the player data if a voodoo doll received damage that would have killed it.
SVN r2978 (trunk)
2010-11-03 23:43:34 +00:00
Christoph Oelckers 74525ab1d6 - moved some info into the GAMEINFO section:
* 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)
2010-09-19 10:39:34 +00:00
Christoph Oelckers f430881a54 - Added DavidPH's Poison damage extension but changed it so that the metadata can be removed.
SVN r2450 (trunk)
2010-07-23 21:36:17 +00:00
Christoph Oelckers 1b0756e170 - added a am_showalllines cheat CVAR as countermeasure for maps that intentionally disable the full automap.
SVN r2307 (trunk)
2010-05-01 17:29:25 +00:00
Randy Heit 0ca693771b - Keep all damage factors in the table, even those that are 1.0.
- 256 is a valid pain chance, so clamp to that, not 255.

SVN r2237 (trunk)
2010-03-22 21:18:54 +00:00
Christoph Oelckers 24a12a04b4 - added a minimum threshold for damage thrust to avoid micro-velocities being set for actors.
- fixed: Strife's Oracle is not a living thing and needs the NOBLOOD flag.
- fixed: Chex Quest's finale pic was wrong.


SVN r2143 (trunk)
2010-01-30 13:48:44 +00:00
Christoph Oelckers 85c683e0c7 - Reintroduced Doom.exe's player_t::usedown variable so that respawning a
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)
2009-12-25 11:09:56 +00:00
Christoph Oelckers fdec06ff9b - fixed:P_DamageMobj just set an ice corpse's velocity to 0 to make it shatter.
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)
2009-12-16 16:09:48 +00:00
Randy Heit 28c23edb2f - Added a DMG_NO_FACTOR flag for P_DamageMobj(). A_KillChildren, A_KillMaster,
and A_KillSiblings now use it.


SVN r2024 (trunk)
2009-12-13 05:04:12 +00:00
Randy Heit df317801bf - Fixed: Do not exit P_DamageMobj early if damage is 0, so we can still get
the side effects from it. PainThreshold also needs to be inclusive, as
  the docs already state.


SVN r1943 (trunk)
2009-10-28 23:14:20 +00:00
Christoph Oelckers ce2e85c7b2 - added ACS CheckActprClass function
- 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)
2009-10-15 20:09:22 +00:00
Christoph Oelckers 819158a8fe - Added Gez's thing activation submission.
SVN r1904 (trunk)
2009-10-09 20:35:07 +00:00
Christoph Oelckers 0c2288a010 - Added a PainThreshold actor property.
SVN r1900 (trunk)
2009-10-08 17:43:50 +00:00
Christoph Oelckers 9aab795c18 - Added BHS's death special flags submission.
SVN r1887 (trunk)
2009-09-28 15:59:20 +00:00
Christoph Oelckers f2c77c5f08 - Fixed: Floor and ceiling huggers' velocity was wrong when used with
P_SpawnPlayerMissile.
- Fixed: When hitting a voodoo doll the real player needs to be checked for 
  invulnerability.


SVN r1885 (trunk)
2009-09-27 20:54:46 +00:00
Christoph Oelckers dc292caaa3 - Added some pieces of MBF's friendly AI.
- 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)
2009-09-16 15:54:04 +00:00
Christoph Oelckers ea8c94d637 - Fixed: Argument count for UsePuzzleItem was wrong.
- 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)
2009-09-14 20:47:53 +00:00
Christoph Oelckers 238d4c3fac - More things from Gez's experimental build:
* 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)
2009-09-14 19:44:14 +00:00
Randy Heit 38780d2d2a - Fixed: If a damaged actor has negative mass, it needs to have its damage
thrust set to maximum instead of 0. See Action Doom's broken glass
  "CommanderKeens".


SVN r1816 (trunk)
2009-09-11 01:00:01 +00:00
Christoph Oelckers ba28749df7 - fixed: WIF_STAFF2_KICKBACK did not work anymore because it depended on conditions
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)
2009-08-30 10:43:51 +00:00
Randy Heit f9088bd2cf - Added buddha cheat.
SVN r1756 (trunk)
2009-08-07 04:08:38 +00:00
Randy Heit 16846fe36d - Added TELEFRAG_DAMAGE constant, and changed the two places that still used
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)
2009-08-07 03:57:03 +00:00
Christoph Oelckers 635d71e660 - Added code submissions for non-piercing railguns and new skill options.
SVN r1706 (trunk)
2009-07-04 18:17:44 +00:00
Randy Heit f2b7417020 - MF2_NODMGTHRUST now works with players, too. (Previously, it was only for
missiles.) Also added PPF_NOTHRUSTWHILEINVUL to prevent invulnerable players
  from being thrusted while taking damage. (Non-players were already
  unthrusted.)


SVN r1695 (trunk)
2009-06-30 23:23:12 +00:00
Randy Heit e4af82ae96 - Enough with this "momentum" garbage. What Doom calls "momentum" is really
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)
2009-06-30 20:57:51 +00:00
Christoph Oelckers db0a924fc9 - Reintroduced damage thrust clamping but with a higher threshold. The clamping
is now also done in floating point before any fixed point overflows can occur.


SVN r1670 (trunk)
2009-06-16 22:04:26 +00:00
Christoph Oelckers 3ab370b6ee - added a compatibility option to restore the original Heretic bug where
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)
2009-06-14 13:47:38 +00:00
Christoph Oelckers 16bf1ef6d0 - fixed FORCEPAIN logic.
SVN r1650 (trunk)
2009-06-07 17:04:40 +00:00
Christoph Oelckers 93742aca31 - Added Karate Chris's poison cloud fix.
SVN r1647 (trunk)
2009-06-07 09:41:22 +00:00
Christoph Oelckers d30e304a7f - Added MF6_FORCEPAIN flag that forces the target to go into the pain state
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)
2009-06-05 21:44:34 +00:00
Randy Heit 0a310b9832 - Fixed compilation on MinGW.
SVN r1612 (trunk)
2009-05-26 22:33:02 +00:00
Christoph Oelckers e61b4b3c76 - Fixed: A_CountdownArg and A_Die must ensure a certain kill.
- 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)
2009-05-23 08:30:36 +00:00
Christoph Oelckers b55ca6ffaa - Fixed: Monsters should not check the inventory for damage absorbtion when
they have the MF5_NODAMAGE flag set.
- Added patch for saving automap zoom.


SVN r1587 (trunk)
2009-05-15 22:06:44 +00:00
Randy Heit ccd3b2a6e1 - Fixed: UseHealthItems() gave you health equal to the number of items in
the stack of health items, rather than the item's proper amount.


SVN r1518 (trunk)
2009-04-03 01:25:06 +00:00
Randy Heit 854097ba03 - Changed gameinfo_t and gameborder_t to be named structs instead of
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)
2009-03-26 02:06:14 +00:00
Christoph Oelckers 18b4577bbd - Fixed: S_StopSound may not assume that after stopping a sound channel
its link to the next item in the list is still valid.
- Fixed typo in src/CMakeLists.txt.
- Fixed: Armor only worked for players.


SVN r1489 (trunk)
2009-03-19 22:48:55 +00:00
Christoph Oelckers 42ac64d964 - Fixed: Strife's quest based line actions also work in Deathmatch.
- 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)
2009-02-28 21:38:20 +00:00
Christoph Oelckers d91f0c4090 - Added GCC headers for intptr_t to tarray.h.
- Added MF5_PAINLESS flag for projectiles that don't make the target go into
  the pain state.


SVN r1446 (trunk)
2009-02-24 21:19:10 +00:00
Christoph Oelckers 4bcd3faef8 - moved all code related to global ACS variables to p_acs.cpp where it belongs.
- fixed: The nextmap and nextsecret CCMDs need to call G_DeferedInitNew instead of G_InitNew.
- merged MAPINFO branch back into trunk.

SVN r1393 (trunk)
2009-02-03 19:11:43 +00:00
Christoph Oelckers c11f1a7fdc - Fixed: The damage factor for 'normal' damage is supposed to be applied to
all damage types that don't have a specific damage factor.


SVN r1388 (trunk)
2009-02-01 09:11:05 +00:00
Christoph Oelckers 8f686a5e02 - Added Karate Chris's new DMFlags submission.
SVN r1333 (trunk)
2008-12-28 09:49:15 +00:00
Randy Heit 6e83d231fe - The co-op summary screen now has a totals row at the bottom (if it fits).
- 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)
2008-11-27 17:43:36 +00:00
Christoph Oelckers b07542ddd6 More header cleanup.
SVN r1225 (trunk)
2008-09-15 00:47:31 +00:00
Christoph Oelckers db5723997c - Cleaned up some include dependencies.
SVN r1224 (trunk)
2008-09-14 23:54:38 +00:00
Christoph Oelckers dbcc246cf3 - Added Blzut3's patch for a real Chex Quest game mode.
SVN r1188 (trunk)
2008-08-30 19:44:19 +00:00
Christoph Oelckers 30685c3a74 - Added Gez's patch for removing MF4_FIRERESIST.
SVN r1177 (trunk)
2008-08-19 19:38:39 +00:00
Christoph Oelckers f4c07c45ec - Removed DECORATE's ParseClass because it was only used to add data to fully
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)
2008-08-10 14:19:47 +00:00
Christoph Oelckers e010561088 - Changed increased lightning damage for Centaurs into a damage factor.
- 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)
2008-08-08 15:18:23 +00:00
Christoph Oelckers bf281a4372 - Removed AT_GAME_SET(PowerInvulnerable) due to the problems it caused. The two
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)
2008-08-06 19:25:59 +00:00
Christoph Oelckers d5cc9e01d0 - Converted the PhoenixRod and associated classes to DECORATE to make
the Heretic conversion complete.


SVN r1110 (trunk)
2008-08-04 22:30:45 +00:00