Commit graph

408 commits

Author SHA1 Message Date
Braden Obrzut
27f6b3c9f3 Merge branch 'maint' of github.com:rheit/zdoom into maint 2014-01-18 16:23:06 -05:00
Braden Obrzut
e5d7077d74 - Fixed: Shareware games couldn't bother with the actor has no frames errors since we don't load mods.
- Fixed: Heretic shareware used a different border for the statusbar.
2014-01-18 15:09:12 -05:00
Edoardo Prezioso
2501dc6df6 Fixed signed overflow issue, which caused a non-intended aggressive optimization by GCC 4.8. Also, negative values of the 'limit' parameter in both ACS UniqueTID() and in 'utid' CCMD are ignored and replaced by 0. 2014-01-13 01:48:31 +01:00
Christoph Oelckers
f8899f98fc - fixed: The secret counter was not incremented for items that had the UDMF COUNTSECRET flag set. 2013-08-28 11:14:48 +02:00
Christoph Oelckers
0a258f95ea - added gravity property to UDMF things. Positive values are multiplied with the class's gravity property, negative values are used as their absolute. 2013-08-09 16:25:16 +02:00
Christoph Oelckers
7e6a5c1448 - added damage type specific extreme death and extreme crash states. Order of labels is 'Death.extreme.damagetype' ('XDeath.damagetype') and 'Crash.extreme.damagetype'.
- fixed: Damage of type 'extreme' did not get recorded as an extreme death for the mugshot code.
- changed: extreme deaths now only get recorded when an extreme death state was actually used, to ensure that the crash state being used is the correct one associated with the death state.
2013-07-01 11:02:35 +02:00
Christoph Oelckers
9f253ccae3 - fixed: Application of inflictor's death damage type was done too late and missed a few spots where it needed.
- fixed: DamageTypeReceived was not serialized.
- fixed: The check for unhandled damage type was rendered ineffective by the old code handling the DeathType.
2013-06-24 15:40:17 +02:00
Christoph Oelckers
d40d7f2e77 - fixed signed-ness issue with FloatBobPhase.
SVN r4310 (trunk)
2013-06-01 12:03:15 +00:00
Christoph Oelckers
0bca41c202 - replaced unused RNGs with pr_damagemobj for consistency checksum.
SVN r4297 (trunk)
2013-05-30 10:18:46 +00:00
Christoph Oelckers
a7c2346b32 - added a FloatBobPhase property for DECORATE. Now, if FloatBobPhase is anything but -1 it will be used directly as the initial phase, allowing to define actors that bob in sync. The allowed range of phases is 0 - 63. The main reason for this is that each actor spawn called the pr_spawnmobj RNG just to randomize this value which causes problems with non-interactive actors, in particular GZDoom's dynamic lights.
SVN r4296 (trunk)
2013-05-30 08:52:29 +00:00
Braden Obrzut
dabd48ab81 - Fixed: 4, 2, and 1 bit grayscale images weren't properly supported.
- Fixed: Valgrind uninitialized memory error and a signed/unsigned warning.

SVN r4288 (trunk)
2013-05-26 04:03:47 +00:00
Randy Heit
e8d8e67b56 - Fixed possible NULL pointer deref in P_SpawnPlayerMissile().
SVN r4257 (trunk)
2013-05-12 18:36:03 +00:00
Randy Heit
e130150af0 - Fixed possible NULL pointer deref in AActor::Grind().
SVN r4254 (trunk)
2013-05-12 18:29:28 +00:00
Randy Heit
2668988870 - Switched to a genericly extensible representation for userinfo.
- Fixed: The playerinfo CCMD did not range check the player number.

SVN r4253 (trunk)
2013-05-12 18:27:03 +00:00
Randy Heit
40f7abb8e9 - Added bounce states. Set the BOUNCE_UseBounceState flag to use them (+USEBOUNCESTATE via
DECORATE). Then you can use:
  * Bounce
  * Bounce.Floor
  * Bounce.Ceiling
  * Bounce.Wall
  * Bounce.Actor
  * Bounce.Actor.Creature
  Partial matches work just like Pain states, so if an actor bounces off a floor and you don't
  have a Bounce.Floor state, but you do have a Bounce state, it will use the Bounce state.
  Conversely, if you only have a Bounce.Floor state but no Bounce state, then the actor will
  only enter the Bounce.Floor state when it bounces on a floor; bouncing off anything else will
  not cause it to change state.

SVN r4250 (trunk)
2013-05-04 22:52:37 +00:00
Randy Heit
163d8ba3e6 - Fixed crash when an actor's spawn state ends by destroying the actor and the first state has
NoDelay set and it only consists of 0-tic states.

SVN r4245 (trunk)
2013-05-02 00:07:56 +00:00
Randy Heit
cadc16293e - Fixed: r4234 moved tic decrementing to the wrong spot.
SVN r4243 (trunk)
2013-05-01 02:21:43 +00:00
Randy Heit
0e19a0e330 - Added a NODELAY state flag. This is only valid for a state immediately following a Spawn label.
When set, the actor will run this state during its first tick. This means Spawn
  states may now run an action function if you set this flag. Note that this action function
  is executed during the actor's first tick, which is not the same as when it is spawned.

SVN r4240 (trunk)
2013-04-30 04:20:09 +00:00
Braden Obrzut
10934f4d70 - Lets try fixing the extra tic issue by evaluating the zero delay states at PostBeginPlay. This requires delaying the state cycling until the next tick.
SVN r4234 (trunk)
2013-04-29 21:12:57 +00:00
Braden Obrzut
90b4480bcd - Try that last fix again. This time check to see if we enter an infinite duration state and break out of the loop.
SVN r4233 (trunk)
2013-04-28 18:55:55 +00:00
Braden Obrzut
81487f4a69 - Fixed: noextratic fix skipped over infinite duration states.
SVN r4232 (trunk)
2013-04-28 18:00:41 +00:00
Randy Heit
4bc60ec900 - Added Blzut3's noextratic fix.
SVN r4231 (trunk)
2013-04-28 03:55:31 +00:00
Randy Heit
a5d770b433 - Dropped items with the DONTGIB flag set will no longer be destroyed by crushers.
SVN r4215 (trunk)
2013-04-16 17:55:17 +00:00
Randy Heit
4cf3a4a1cf - Always spawn RocketSmokeTrail and GrenadeSmokeTrail actors, and make them invisible for players
who don't want to see them. This is needed for multiplayer sync between players with different
  settings for cl_rockettrails.

SVN r4206 (trunk)
2013-03-28 01:01:19 +00:00
Randy Heit
0c6c78517b - Always at least halve the advance vector in P_CheckMissileSpawn().
SVN r4197 (trunk)
2013-03-21 22:23:42 +00:00
Randy Heit
2874d927b1 - Random spawners no longer move the missile forward when spawning them, because presumably
whatever spawned the random spawner already took care of this.
- Added a maxdist parameter to P_CheckMissileSpawn() to help ensure that it doesn't completely 
  move the spawned missile outside of its shooter (and potentially beyond a wall the shooter
  might happen to be standing next to).

SVN r4194 (trunk)
2013-03-21 03:06:04 +00:00
Randy Heit
fc4b0ffe68 - Use a missile's MaxTargetRange property as the range for P_AimLineAttack() inside P_SpawnPlayerMissile().
SVN r4189 (trunk)
2013-03-20 03:19:02 +00:00
Randy Heit
e240d24abe - Fixed: P_SpawnPlayerMissile() should not 0 the pitch for weapons that don't autoaim.
This allows A_FireOldBFG to work properly when freelook is disabled.

SVN r4178 (trunk)
2013-03-13 02:56:54 +00:00
Christoph Oelckers
33f363f4c6 - added TheFortuneTeller's NORANDOMPUFFZ submission.
SVN r4170 (trunk)
2013-02-27 10:35:44 +00:00
Randy Heit
70fa9e7b84 - Fixed: info CCMD listed bounce flags twice, under separate names.
SVN r4134 (trunk)
2013-02-14 03:56:34 +00:00
Randy Heit
2f3dd8d959 - Moved MF4_BOSSSPAWNED flag copying from A_PainShootSkull to AActor::CopyFriendliness().
SVN r4063 (trunk)
2013-02-05 02:33:11 +00:00
Braden Obrzut
dcb1a3c8bd - GCC warning cleanup
SVN r4031 (trunk)
2013-01-21 22:30:30 +00:00
Randy Heit
787c338871 - Added MAPINFO flag "SpawnWithWeaponRaised".
SVN r4013 (trunk)
2013-01-03 02:08:08 +00:00
Randy Heit
549712e719 - P_DamageMobj() now returns the amount of damage actually done so that the bleed functions
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)
2013-01-02 04:39:59 +00:00
Randy Heit
efbaab3440 - Never set the player actor's scale to the skin's directly. Only do it indirectly through
P_CheckPlayerSprite().

SVN r4005 (trunk)
2013-01-02 02:26:22 +00:00
Randy Heit
c4859261ab - Reformatted the info ccmd to be less verbose.
SVN r3866 (trunk)
2012-09-09 02:36:53 +00:00
Randy Heit
ef55ce8684 - Fixed: P_SpawnBlood() would set Strife's Blood to the Spray state and then promptly go about setting it right back to the Spawn state.
SVN r3862 (trunk)
2012-09-01 22:39:11 +00:00
Randy Heit
111b5c60c1 - Fixed: The check in P_SpawnBlood() to avoid advancing the state to something not owned by
the spawned blood actor was backwards and would only advance to state's NOT owned by it.

SVN r3861 (trunk)
2012-09-01 22:34:09 +00:00
Randy Heit
3a6806942c - Fixed: Horizontal movement should not trigger bump specials while predicting.
SVN r3855 (trunk)
2012-08-28 02:52:53 +00:00
Randy Heit
625482aaeb - Added actors' BounceSound, WallBounceSound, and CrushPainSound to preloading.
- Moved marking of actor sounds for precaching into a virtual Actor function.

SVN r3838 (trunk)
2012-08-22 23:17:49 +00:00
Randy Heit
a505352da3 - Added noclip2 cheat. This is similar to noclip, except it also adds nogravity and the ability to fly through 3D floors.
SVN r3832 (trunk)
2012-08-22 21:31:48 +00:00
Randy Heit
100391507e - Added two new PlayerPawn properties:
* GruntSpeed: The minimum speed a player must be falling at the time of landing to play *grunt.
  * FallingScreamSpeed: When a player is falling within this range of speeds, they will play *falling.

SVN r3829 (trunk)
2012-08-14 03:24:59 +00:00
Randy Heit
7a8ccaad97 - Clear the shootable flag in P_ExplodeMissile().
SVN r3827 (trunk)
2012-08-14 02:50:29 +00:00
Randy Heit
8c465df44e - Added ACS function IsTIDUsed(tid): It returns whether any actors using the given TID exist. This
is more efficient than ThingCount(tid, T_NONE), because it only needs to check for one actor
  with the TID and not all of them. It also makes no distinction between dead things and live
  things like ThingCount does.
- Added ACS function UniqueTID(tid, limit): It returns a new TID that is not currently used by
  any actors. It has two modes of operation. If tid is non-zero, then it checks TIDs one-by-one
  starting at the given tid until if finds a free one. If tid is zero, then it returns a completely
  random TID. If limit is non-zero, then it will only check that many times for a free TID, so
  it might not find a free one. If no free TID is found, 0 is returned. If limit is zero, then
  the search is effectively unlimited.

SVN r3798 (trunk)
2012-08-01 03:12:43 +00:00
Randy Heit
9c0b0dc774 - Add the bob offset to the missiles spawned by P_SpawnMissile(), P_SpawnMissileAngle(), P_SpawnMissileAngleSpeed(), A_MissileAttack, A_ComboAttack, A_BasicAttack, A_CustomMissile, A_CustomComboAttack, A_ThrowGrenade, A_SpawnDebris, and A_Burst.
- Add the bob offset to the value returned by GetActorZ.

SVN r3795 (trunk)
2012-07-30 00:05:24 +00:00
Randy Heit
ba00e3a185 - Remove FloatBobOffsets[], since it's just a mini-finesine[] table multiplied by 8.
SVN r3753 (trunk)
2012-07-11 02:50:13 +00:00
Randy Heit
26e65b26a1 - Remove FloatBobDiffs[] table, as it is now unused.
SVN r3752 (trunk)
2012-07-11 01:43:07 +00:00
Randy Heit
0c8e4c37d9 - The complete FMapThing is overkill for storing player starts, so use a new minimal structure for them.
SVN r3750 (trunk)
2012-07-08 02:18:15 +00:00
Randy Heit
71601f91d1 - Added MAPINFO flag RandomPlayerStarts. In this mode, no voodoo dolls are spawned. Instead, all
player starts are added to a pool, and players spawn at a random spot.

SVN r3749 (trunk)
2012-07-08 01:43:47 +00:00
Randy Heit
390fd5dd6c - Pass playernum as a parameter to P_SpawnPlayer(). Now P_SpawnMapThing() is the only thing
that uses the MapThing's type to determine the which player is spawning.

SVN r3748 (trunk)
2012-07-07 22:52:37 +00:00