Commit graph

165 commits

Author SHA1 Message Date
Randy Heit
a71b2210a1 - Fixed: Do not override the player's sprite if it's TNT1 and the player is uncrouched without
a specific crouch sprite defined by both the player class and skin.

SVN r3722 (trunk)
2012-07-01 03:33:49 +00:00
Christoph Oelckers
3a24790056 - fixed: The newly added checks for printing weapon obituaries failed if the weapon used a puff with a special damage type. To handle this, P_DamageMobj will now pass the damage flags to AActor::Die and from there to ClientObituary so that P_LineAttack - which is a better place to decide this - can flag an attack as coming from a player weapon.
- 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)
2012-05-13 07:54:44 +00:00
Randy Heit
da08b14895 - Moved the regeneration powerup's effect out of P_PlayerThink() and into APowerRegeneration::DoEffect().
SVN r3640 (trunk)
2012-05-11 04:05:55 +00:00
Christoph Oelckers
75dc6cb0b2 - changed damage screen blending code so that the same version can be used by any renderer.
- added GZDoom's version of blending for Strife's hazard sectors as an option to the paletteflash CVAR.


SVN r3613 (trunk)
2012-05-01 11:27:54 +00:00
Randy Heit
118e513d03 - Fixed: The player's position was only predicted during the duration of R_SetupFrame().
Consequently, if somebody used the chasecam while predicting, they would appear to lag
  behind the camera, because their actor would be at its unpredicted position by the time
  sprites were processed.

SVN r3603 (trunk)
2012-04-28 03:04:21 +00:00
Randy Heit
fc6d55c508 - Fixed: PowerTimeFreezer needs to use different bits to mark timefreezing initiated by different
players, or overlapping uses of PowerTimeFreezer will malfunction.

SVN r3599 (trunk)
2012-04-27 01:40:50 +00:00
Randy Heit
f19a6a2a29 - Fixed: Do not play skinned sounds when the player has the NOSKIN flag set.
SVN r3561 (trunk)
2012-04-14 03:10:07 +00:00
Randy Heit
d0bba7c3c3 - Added another flag to P_FindFloorCeiling() to get it to do its standard processing but
without resetting the actor's sector. The 3D floor checks in P_NightmareRespawn() and
  A_RestoreSpecialPosition now use this.
- Fixed: P_NightmareRespawn() did its Z clamping before checking for 3D floors.
- Fixed: Respawning actors were not clamped to the ceiling.

SVN r3542 (trunk)
2012-04-08 05:39:46 +00:00
Randy Heit
c5a3d846dd - Implement multitick viewpitch centering logic.
SVN r3512 (trunk)
2012-04-03 04:09:30 +00:00
Randy Heit
49ea87f8bc - Fixed: Poison damage lost damage type information if the poisoner was destroyed before poisoncount
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)
2012-03-23 20:57:10 +00:00
Randy Heit
096725503c - Fixed: Bots did not process KEYCONF weapons. As far as I know, this is only relevant for the
owned-weapons display on the status bar.

SVN r3466 (trunk)
2012-03-22 22:29:25 +00:00
Randy Heit
77c663a9b8 - In conjunction with all the below changes, attempt to fix A_CheckSightOrRange and A_CheckSight
for multiplayer: They now always check through the eyes of every player. For players whose
  cameras are not players, they also check through the eyes of those cameras.
- Using spynext/spyprev to switch from a non-player to a player now writes a command to the
  network stream and lets Net_DoCommand() take care of it later. The logic here is that if
  a player is viewing from something that isn't another player, then every player needs to know
  about it for sync purposes. Consequently, when they stop viewing from a non-player and switch
  to a player, everybody needs to know about that too. But if they are viewing from a
  player, it doesn't matter which player it is, so they can spynext/spyprev all they want
  without letting the other players know about it (and without potentially breaking demos--due
  to the above-mentioned two codepointers--while doing it during demo playback).
- Replaced the instances of checking players[consoleplayer].camera for a valid pointer to
  ones that do it for every player.
- Fixed: Upon changing levels, all players but the consoleplayer would have their cameras NULLed.
- Fixed: player_t::FixPointers() needs to bypass the read barriers, or it won't be able to
  do substitutions of old objects that are pending deletion.

SVN r3448 (trunk)
2012-03-17 00:52:33 +00:00
Randy Heit
58f7e72d1b - Restored savegame compatibility that was removed in r3427.
SVN r3435 (trunk)
2012-03-13 02:43:24 +00:00
Christoph Oelckers
e4880d162f - added Xaser's submission for accessing accuracy and stamina from DECORATE and ACS.
- added DECORATE properties for accuracy and stamina.
- Since these changes move properties from player_t to AActor all savegame compatibility code was removed and the min. savegame version bumped.


SVN r3427 (trunk)
2012-03-11 09:08:35 +00:00
Christoph Oelckers
d3981197c5 - moved the FRenderer::StateChanged call from AActor::StaticSpawn to AActor::PostBeginPlay.
- ensured that all classes reach AActor's PostBeginPlay method. Some were missing a Super call.


SVN r3404 (trunk)
2012-03-07 01:03:56 +00:00
Randy Heit
d9713669f1 - Fixed: Totally freezing a player did not ignore crouch toggling.
SVN r3341 (trunk)
2012-01-22 00:31:42 +00:00
Randy Heit
7279e2ad62 - Fixed: Player pitch limits were reset to 0 when changing levels and loading
saved games.



SVN r3332 (trunk)
2011-12-14 00:16:19 +00:00
Randy Heit
b41dbf8a52 - A_SetPitch now clamps the player's pitch within the valid range. It can
be made to clamp other actors' pitches to within the range (-90,+90)
  degrees with the SPF_FORCECLAMP flag.
- Transmit the local viewpitch limits to the other players.



SVN r3323 (trunk)
2011-12-06 01:25:37 +00:00
Randy Heit
f00f5d2304 - Allow subclasses when checking for PowerWeaponLevel2.
SVN r3314 (trunk)
2011-11-07 00:43:41 +00:00
Braden Obrzut
bb1b825f24 - Backported kgsws's weapon dropitem changes from Skulltag.
SVN r3289 (trunk)
2011-09-08 00:55:47 +00:00
Christoph Oelckers
5bfcaab25c - separation of software renderer from the rest of the code complete. All external access to the renderer is routed through the FRenderer interface class now, with two exceptions (2D texture drawing to a canvas and polymost testing code) that are handled by #defines.
SVN r3263 (trunk)
2011-07-07 15:37:47 +00:00
Christoph Oelckers
163301dcd5 - took all includes of farchive.h out of headers. This file will have to be included explicitly in each source file that needs it.
SVN r3259 (trunk)
2011-07-06 14:20:54 +00:00
Christoph Oelckers
03177090c0 - removed some unnecessary r_ header #includes.
SVN r3257 (trunk)
2011-07-06 10:55:04 +00:00
Christoph Oelckers
e90b86acce - added 'player.flechettetype' property so that the appropriate flechette type can be set per player class.
- bumped savegame version for flechette type changes.

SVN r3085 (trunk)
2011-01-01 11:16:46 +00:00
Christoph Oelckers
770a879f6a - fixed: The TouchedActors array in the Dehacked parser was not freed after parsing was done.
- Initialize the alt HUD explicitly in D_DoomMain.
- don't let S_UnloadReverbDef leave a broken list of sound environments behind.
- Added more code to explicitly delete data before initializing it.

SVN r3039 (trunk)
2010-12-15 00:09:31 +00:00
Christoph Oelckers
0715b7dfc6 - cleaned up switch code and fixed several problems:
* savegames stored an index in the switch table and performed no validation when loading a savegame.
  * setting of a random switch animation duration was broken.
  * separated the 2 values stored in the Time variable into 2 separate variables.
  * defining a switch with one texture already belonging to another switch could leave broken definitions in the switch table.
- added function for serializing switch and door animation pointers.
- bumped min. savegame versions due to changes to DButtonThinker and removed all current savegame compatibility code.


SVN r3030 (trunk)
2010-12-12 15:43:35 +00:00
Randy Heit
ad200d8a56 - Tweaked jumpTics again. As before, it now counts down whenever it is non-zero. If the player
is on the ground and it counts below -18, it is zeroed so that the player can jump again. This
  handles cases where either the player did not actually jump when they pressed +jump (because
  there was a ceiling in the way) or when they land on something other than the floor.

SVN r2979 (trunk)
2010-11-04 02:19:34 +00:00
Randy Heit
92d11da8a5 - Revised usage of jumpTics. In Hexen, it went like this:
* When you jump, it gets set to 18.
  * When you land, it gets set to 7.
  * As long as it is non-zero, it counts down, and you cannot jump.
  Of note here, is that setting it to 18 upon jumping seems useless, since you can't jump unless
  you're on the ground, and when you reach the ground, it will always be set to 7. With that in
  mind, the new behavior is:
  * When you jump, it gets set to -1.
  * When you land, if it is less than zero or you fall far enough to squat, jumpTics will
    be set to 7. Otherwise, jumpTics is left alone.
  * If jumpTics is positive, it will count down each tic.
  * As long as JumpTics is non-zero, you cannot jump.

SVN r2970 (trunk)
2010-11-03 02:07:56 +00:00
Christoph Oelckers
d9970ab9b6 - merged finale branch back into trunk.
SVN r2911 (trunk)
2010-10-06 10:44:03 +00:00
Christoph Oelckers
583cbd49a6 - try to encapsulate access to the player class's display name for printing purposes.
SVN r2839 (trunk)
2010-09-21 09:43:54 +00:00
Christoph Oelckers
9a8a446840 - added player class definition through the GAMEINFO section in MAPINFO. Also added a NOMENU flag that can be set for a player class. This means that the use of KEYCONF is now deprecated except for its original purpose: To define mod specific key binding options.
SVN r2832 (trunk)
2010-09-19 08:27:20 +00:00
Christoph Oelckers
3662bf8a15 - reverted r2783 because it was causing problems.
SVN r2792 (trunk)
2010-09-16 06:51:42 +00:00
Christoph Oelckers
a0d7693f33 - added Spleen's fix for not running 2 frames of the weapon when the player spawns.
SVN r2783 (trunk)
2010-09-15 14:09:48 +00:00
Christoph Oelckers
e9211aaad3 - added some NULL pointer checks to the kill CCMD and APlayerPawn::PostBeginPlay.
SVN r2697 (trunk)
2010-09-05 20:51:13 +00:00
Randy Heit
a2573e4bb3 - Fixes to compile with GCC 4.5.0.
SVN r2660 (trunk)
2010-09-01 03:30:18 +00:00
Randy Heit
08a40b22be - BOOM compatibility fix: Allow voodoo dolls to spawn inside narrow pits.
SVN r2641 (trunk)
2010-08-29 17:57:10 +00:00
Christoph Oelckers
b452bec0ee - merge USDF branch into trunk.
- add USDF spexs.


SVN r2561 (trunk)
2010-08-20 12:20:51 +00:00
Randy Heit
5b63fd0675 - Added an optional parameter to DamageScreenColor to scale the amount of damage for pain
flash calculations. This can range from 0.0 to 1.0.

SVN r2435 (trunk)
2010-07-16 03:46:20 +00:00
Christoph Oelckers
6ff2abc53d - fixed: Setting +NOCLIP for a player class did not work.
SVN r2371 (trunk)
2010-06-13 10:44:06 +00:00
Christoph Oelckers
0569d948df - added a 'player.clearcolorset' property so that inherited color sets can be removed.
- fixed: Player color sets were not inheritable.


SVN r2202 (trunk)
2010-03-07 09:13:41 +00:00
Randy Heit
e78fd195d8 - Added support for the original games' player translations, including Hexen's table-based ones.
SVN r2193 (trunk)
2010-03-06 02:51:23 +00:00
Randy Heit
870628dda5 - Split conversation initiation out of P_UseTraverse() and into a separate function. It no
longer piggy-backs off of Hexen's puzzle item traversal but instead works like Strife,
  using P_AimLineAttack() to find something to talk to and includes some slight left and right
  "autoaim". I can think of a few consequences of this:
  * Using puzzle items on actors has been restored to its original range of 64.
  * Since talking now depends on P_AimLineAttack() instead of a line use traversal, you can
    probably set up situations where you can talk to somebody that you couldn't talk to before
    because some special line was in the way.
  * You don't need to stick a guard flush against the wall to block players from using a switch
    behind them, because now the autoaim will get the player.

SVN r2102 (trunk)
2010-01-06 04:36:38 +00:00
Christoph Oelckers
9b5c2c81f1 - Added full sound definitions for Heretic's ChickenPlayer and Hexen's
PigPlayer (submitted by NeuralStunner.)
- Added unmorph fix by Gez.


SVN r2056 (trunk)
2009-12-28 22:41:14 +00:00
Christoph Oelckers
abd9c62983 - fixed usedown code from this morning.
SVN r2049 (trunk)
2009-12-25 16:22:57 +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
Randy Heit
f667e68c94 - Fixed: P_CheckPlayerSprites() ignored the MF4_NOSKIN flag. It now also sets
the X scale, so switching skins while morphed does not produce weird
  stretching upon unmorphing.


SVN r2042 (trunk)
2009-12-25 01:02:19 +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
Christoph Oelckers
cc2b0b0dcf - made max. view pitch a property of the renderer so that it's overridable without
changing game code.
- made SpawningMapThing an argument of AActor::StaticSpawn instead of a global
  variable.
- added a stub to the DECORATE parser for defining dynamic lights directly
  in DECORATE. This is needed so that ZDoom remains compatible with any DECORATE 
  which uses this GZDoom feature in the future.


SVN r1935 (trunk)
2009-10-25 15:26:19 +00:00
Christoph Oelckers
4add2809a3 - fixed: Savegames stored the global fixed light levels when saving a player.
SVN r1893 (trunk)
2009-10-02 09:21:37 +00:00
Randy Heit
b8eb530a0d - Fixed: Wall drawing handled fixed light levels improperly (but did not
completely ignore them, either).
- Separated light level fixing out of player_t's fixedcolormap parameter.
  Using a fixed light level (e.g. PowerTorch) will no longer wipe out
  colored lighting.
- Moved the blending rectangle drawing into a separate discrete stage, since
  doing it while copying the 3D view window to the display now blends
  underneath the weapon instead of on top of it.
- Consolidated the special colormaps into a single 2D table.
- Tweaked the special colormaps slightly to make the true color results more
  closely match the paletted approximations.
- fb_d3d9_shaders.h was getting unwieldy, so I moved the shaders out of the
  executable and into zdoom.pk3. Shaders are still precompiled so I don't need
  to pull in a dependancy on D3DX.
- Added a few more shaders to accomodate drawing weapons with all the in-game
  lighting models. These are accessed with the new DrawTexture tags
  DTA_SpecialColormap and DTA_ColormapStyle.
- Player weapon sprites are now drawn using Direct3D and receive all the
  benefits thereof.


SVN r1858 (trunk)
2009-09-20 03:50:05 +00:00