Commit graph

320 commits

Author SHA1 Message Date
Christoph Oelckers
be1a00c537 Merge branch 'maint' 2013-08-12 20:42:21 +02:00
Christoph Oelckers
e14590d8ce - moved NOTELESTOMP to flags7. When committing I was accidentally on maint instead of master and in master flags6 was already full. 2013-08-12 20:41:33 +02:00
Christoph Oelckers
44a1b94ad9 - added MF6_NOTELESTOMP flag that prevents an actor from telefragging under all possible circumstances. 2013-08-12 20:23:54 +02:00
Christoph Oelckers
25ec3fb8fe - added MF6_RELATIVETOFLOOR flag. 2013-08-10 09:32:55 +02:00
Christoph Oelckers
6a07118ea4 - added ML_BLOCKHITSCAN line flag. 2013-08-09 20:35:10 +02:00
Christoph Oelckers
83bd8ba1b8 - added NeuralStunner's player.userange submission, but changed it to use the value directly from the PlayerPawn data.
- bumped savegame version for addition of APlayerPawn::userange.
2013-07-22 22:37:50 +02:00
Christoph Oelckers
394f21f71e - fixed: Draining health from a victim must check for damage reduction before awarding the health to the player. This affected Heretic's gauntlets, A_Saw and A_CustomPunch.
- added a DONTDRAIN flag that prevents the above attacks from draining any health at all.
2013-06-24 16:42:43 +02:00
Braden Obrzut
f436c02a43 - Fixed more possible NULL derefs from r4264
SVN r4290 (trunk)
2013-05-26 20:56:20 +00:00
Braden Obrzut
5007571732 - Fixed: Possible NULL deref in P_RailAttack.
SVN r4274 (trunk)
2013-05-20 20:47:55 +00:00
Randy Heit
b418f7de8d - Fixed possible NULL pointer derefs in P_LineAttack()
SVN r4264 (trunk)
2013-05-13 02:30:55 +00:00
Randy Heit
20d0cc717b - Fix previous fix: Don't zero the velocity when a missile steps up and bounces.
SVN r4262 (trunk)
2013-05-12 19:05:00 +00:00
Randy Heit
0ef00cdf6e - Fixed: Missiles with STEPMISSILE set should probably be able to bounce off the floor they step up onto.
SVN r4261 (trunk)
2013-05-12 19:02:15 +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
d2ef6d81da - P_RailAttack() now checks the puff's MF3_FOILINVUL flag.
SVN r4230 (trunk)
2013-04-28 03:45:19 +00:00
Randy Heit
449bf216fa - Stop storing rail hits in a global variable, and consolidate the two railgun callbacks into a single function.
SVN r4202 (trunk)
2013-03-23 03:05:01 +00:00
Randy Heit
dcf50ab6cb - Added an enum for the values a Trace callback function can return.
- Added a userdata parameter to pass to the Trace callback function.

SVN r4200 (trunk)
2013-03-23 02:54:13 +00:00
Randy Heit
044616a86f - Fixed: Don't return false from PIT_CheckThing when a shootable missile hits a nonmonster and
infighting is disabled; let the normal conditions apply. Otherwise, you end up with situations
  where monster-fired projectiles can collide with pickups.

SVN r4198 (trunk)
2013-03-21 22:58:37 +00:00
Randy Heit
53e73783e0 - Added spawnofs_z parameter to A_RailAttack and A_CustomRailgun.
SVN r4191 (trunk)
2013-03-20 03:36:45 +00:00
Randy Heit
de20936b13 - Allow negative force for A_RadiusThrust.
SVN r4187 (trunk)
2013-03-20 02:41:59 +00:00
Christoph Oelckers
33f363f4c6 - added TheFortuneTeller's NORANDOMPUFFZ submission.
SVN r4170 (trunk)
2013-02-27 10:35:44 +00:00
Braden Obrzut
356bfe81e3 - Cleared GCC warnings.
SVN r4159 (trunk)
2013-02-22 18:16:23 +00:00
Randy Heit
6eb10a8079 - Fixed: r4160 inadvertently inverted the damage check for thrusting in P_RadiusAttack().
SVN r4158 (trunk)
2013-02-22 03:06:00 +00:00
Braden Obrzut
facbca3619 - Fixed: If you hit a wall at the right moment you would some times come out of a teleporter with sliding velocity.
SVN r4137 (trunk)
2013-02-14 23:27:09 +00:00
Randy Heit
0a2e42c090 - Skip the MF2_PASSMOBJ height checks in PIT_CheckThing() for ripper missiles.
SVN r4135 (trunk)
2013-02-14 04:40:29 +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
6a91335841 - Turned A_Explode's affectsource parameter into a flags parameter and added XF_NOTMISSILE
and RTF_NOTMISSILE so that you can use A_Explode and A_RadiusThrust with non-missiles without
  them telling P_RadiusAttack() that the target is the source.

SVN r3860 (trunk)
2012-08-30 04:01:50 +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
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
5e2b4bddda - Make floatbobbing a purely cosmetic effect that does not alter an actor's real position in the world.
SVN r3744 (trunk)
2012-07-06 03:42:03 +00:00
Randy Heit
70c11f7568 - Added RGF_CENTERZ to spawn a rail from the actor's center instead of offsetting it upward.
- Merged all the multiple bool parameters to the railgun functions into a single flags parameter.

SVN r3706 (trunk)
2012-06-22 03:56:08 +00:00
Christoph Oelckers
37d9519673 - added Xaser's submission for no impact damage from blasting.
SVN r3693 (trunk)
2012-06-16 09:01:05 +00:00
Christoph Oelckers
3d7c6811c1 - The bouncing check from r3643 cannot be applied retroactively to the existing DOOMBOUNCE flag because mods depend on the old behavior. Instead of modifying BOUNCE_OnOff's behavior the correct way of doing this has to be implemented as a separate flag in order to avoid problems.
SVN r3685 (trunk)
2012-06-10 10:17:49 +00:00
Christoph Oelckers
9e31ff0799 - fixed: CheckForPushSpecial's window check must also check 3D floors in the back sector.
SVN r3674 (trunk)
2012-05-31 10:07:30 +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
Christoph Oelckers
3e41382d63 - fixed: P_LineAttack needs to check for 'Hitscan' damage, too, when deciding if using the damage type from the puff is appropriate.
SVN r3648 (trunk)
2012-05-13 07:14:54 +00:00
Randy Heit
f8e64a13af - On second thought, using FloorBounceMissile() for bouncing off the top of an actor might not
be the best idea.

SVN r3598 (trunk)
2012-04-26 03:50:11 +00:00
Randy Heit
9276e6138e - Fixed: All missiles could climb steps in P_TryMove() because of an extra ampersand turning & into &&.
SVN r3578 (trunk)
2012-04-22 02:30:26 +00:00
Randy Heit
86842bc1da - Fixed: P_TestMobjZ() should not let missile shooters block their missiles.
SVN r3571 (trunk)
2012-04-19 02:50:43 +00:00
Christoph Oelckers
93694dadc1 - fixed: The rail attack did not check the BLOODLESSIMPACT flag.
SVN r3568 (trunk)
2012-04-15 07:59:50 +00:00
Randy Heit
280ca05554 - In P_SpawnMapThing(), pass the same flags to P_FindFloorCeiling() as the respawn functions do.
- Rename FFCF_3DMIDTEXRESTRICT to FF_3DRESTRICT and make it work with 3D floors too.

SVN r3562 (trunk)
2012-04-14 03:55:46 +00:00
Randy Heit
7bfd551f27 - Xaser's fix for XDeath states not working for rail puffs.
SVN r3553 (trunk)
2012-04-11 04:50:23 +00:00
Randy Heit
a85b751f7a - Fix warnings warned by GCC.
SVN r3552 (trunk)
2012-04-11 04:44:12 +00:00
Randy Heit
da21075480 - Fixed: The onlyspawnpos handling in P_FindFloorCeiling would fail to adjust an actor's floorz
(and related) to a 3D midtex beneath its Z if it also touched a 3D midtex above its Z.

SVN r3548 (trunk)
2012-04-10 03:18:04 +00:00
Christoph Oelckers
d81542752a - fixed: P_FindFloorCeiling may not use the floorsector returned by P_LineOpening when only checking 3D-floors because it will be NULL.
SVN r3547 (trunk)
2012-04-09 09:01:25 +00:00
Randy Heit
837126ae57 - Fixed: Do not interpolate from an actor's despawned position to its spawned position when it
respawns.
- Use doubles instead of floats, as appropriate, in PIT_FindFloorCeiling().
- Fixed: The second call to P_FindFloorCeiling() in A_RestoreSpecialPosition and P_NightmareRespawn()
  must only consider 3D floors and midtexes.

SVN r3545 (trunk)
2012-04-08 21:12:14 +00:00
Randy Heit
9451b7c1d3 - I think this is what this comment is supposed to say. It had 匤 for me, and with Western character encodings, it was complete garbage.
SVN r3544 (trunk)
2012-04-08 20:20:39 +00:00
Randy Heit
22a0c92ab8 - Fixed crash when teleporting. P_TeleportMove() must not pass FFCF_ONLYSPAWNPOS to
P_GetFloorCeilingZ(). I got confused because its bool parameter's meaning had been the
  opposite of P_FindFloorCeiling()'s bool parameter before they got changed to flags.

SVN r3543 (trunk)
2012-04-08 20:01:43 +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
4d6447a55b - Don't call secfriction() twice in the normal part of P_GetFriction().
- Fixed: The 3D floors part of P_GetFriction() did not check for friction still being set to
  ORIG_FRICTION, so it only worked with lower frictions.

SVN r3538 (trunk)
2012-04-08 04:43:19 +00:00
Christoph Oelckers
34820aacd2 - added Xaser's modified version of kgsws's railgun enhancements patch.
SVN r3529 (trunk)
2012-04-07 12:57:44 +00:00
Christoph Oelckers
83620fca1f - added Gez's NOTAUTOAIMED patch but did not set it for Heretic's pod.
SVN r3527 (trunk)
2012-04-07 12:40:50 +00:00
Christoph Oelckers
35f0b32a7f - fixed: The bounce on actors check handled infinite bouncers (bouncecount == 0) incorrectly.
SVN r3521 (trunk)
2012-04-07 08:21:44 +00:00
Randy Heit
5358fd594b - Fixed: A_Respawn and P_NightmareRespawn() should not check for collision with world geometry.
The initial spawn did not, so this can prevent respawns of things that were initially
  spawned if they happen to intersect a wall.
- Fixed: Don't respawn actors inside the floor.
- Fixed: The final calls to P_FindFloorCeiling() in P_NightmareRespawn() and A_RestoreSpecialPosition
  also need to pass true as the second parameter. (Because this parameter is onlyspawnpos, not
  onlymidtex.)

SVN r3518 (trunk)
2012-04-06 04:46:45 +00:00
Christoph Oelckers
8dbfd21d91 - fixed wrong flag check from r3490.
SVN r3516 (trunk)
2012-04-03 15:13:55 +00:00
Christoph Oelckers
92a8f8518c fixed: bouncing on actors neither checked nor changed mo->bouncecount.
SVN r3506 (trunk)
2012-04-01 11:02:05 +00:00
Randy Heit
7783aec8a9 - Fixed: Missiles with MF6_STEPMISSILE set would be allowed to cross lines they could step over,
but their Z position would not actually be moved up, so the subsequent call to P_ZMovement()
  would destroy it because it was in the floor.

SVN r3491 (trunk)
2012-03-29 05:23:04 +00:00
Randy Heit
37a322e46b - Fixed: Teleports that were not initiated by walking would not trigger sector actions.
SVN r3455 (trunk)
2012-03-18 03:52:18 +00:00
Randy Heit
e6a0fbe4db - Fixed: Missiles that exploded on a wall because they exhausted their bounce count did not leave decals.
SVN r3445 (trunk)
2012-03-16 01:17:12 +00:00
Randy Heit
10eb15fab9 - Fixed: Standing inside a "window" with a pushable exterior wall would trigger that wall if
your movement was blocked, even if it wasn't that wall that blocked you. Note that this is just
  a Z check against the actor and the floor and ceiling heights; it might still be possible to
  goof it up, but the common case is fixed.

SVN r3414 (trunk)
2012-03-09 01:49:26 +00:00
Randy Heit
1e21ebad5d - Let puke and pukename take up to four script parameters.
- Pass ACS_ExecuteWithResult's fifth argument as a fourth script parameter.
- Simplify P_StartScript()'s usage.

SVN r3394 (trunk)
2012-02-26 03:36:05 +00:00
Randy Heit
2918a87479 - Added Gez's thrupushups fix.
SVN r3378 (trunk)
2012-02-21 20:50:38 +00:00
Christoph Oelckers
893455ef61 - sync source with latest GZDoom:
Includes:
- Made the move tried from checking missile spawns ignore drop off height. This solves the Voodoo Gun ghostly civilian issue.
- Fixed: the NOTELEPORT flag is removed from Dehacked missiles which lose the MISSILE flag. This caused problems with certain special effects based on dehacked spawn cubes.
- Fixed: all Boom silent teleporters preserve relative height.
- support for palette independent particle colors if the renderer can handle them.


SVN r3329 (trunk)
2011-12-06 08:36:28 +00:00
Randy Heit
48c7423fbf - Added flag ALF_NOFRIENDS and a friend-basis pointer to P_AimLineAttack().
A_DeathBallImpact uses these to avoid aiming at friends when the death ball
  bounces. (The pointer is needed because the missile itself does the aiming,
  not the player that shot it, and missiles are nobody's friends.)



SVN r3315 (trunk)
2011-11-07 01:23:23 +00:00
Christoph Oelckers
a0bb1c2546 - added Gez's patch for proper splash checks with 3D-floors.
SVN r3295 (trunk)
2011-09-21 19:39:12 +00:00
Christoph Oelckers
d8ea5cdad9 - fixed: BlockLinesIterator::Next could get stuck in rare situations where validcount was altered while the iterator was still running. This should probably be dealt with by using another marking method but at least this prevents the engine from freezing.
SVN r3268 (trunk)
2011-07-07 22:09:09 +00:00
Christoph Oelckers
fbff5ca932 - moved r_interpolate.cpp and r_translate.cpp to r_data.
- merged r_jpeg.h into jpegtexture.cpp because that's the only place where it's ever used.


SVN r3255 (trunk)
2011-07-06 08:50:15 +00:00
Christoph Oelckers
e4455c293f - added DavidPH's DOHARMSPECIES submission.
SVN r3236 (trunk)
2011-06-13 10:43:07 +00:00
Christoph Oelckers
44921297d3 - added DavidPH's PoisonDamageType submission.
SVN r3235 (trunk)
2011-06-13 10:39:14 +00:00
Christoph Oelckers
a587ffed57 - added DavidPH's submission for allowing a special state on puffs when hitting bleeding actors.
SVN r3234 (trunk)
2011-06-13 10:34:46 +00:00
Christoph Oelckers
4a7567107f - added DavifPH's submission for allowing THRUGHOST on puffs.
SVN r3232 (trunk)
2011-06-13 10:27:24 +00:00
Randy Heit
91f3f61ead SVN r3201 (trunk) 2011-05-11 04:29:19 +00:00
Randy Heit
44a3e94003 - Fixed: P_CheckPosition() should checks all lines contacted by the actor. Stopping once it finds
one blocking line will prevent any further lines with specials from activating their specials.

SVN r3198 (trunk)
2011-05-08 16:58:53 +00:00
Randy Heit
fd225e168c - Fixed: PIT_CheckLine() always called CheckForPushSpecial() with the front of the line, even if
the actor was hitting it from the back.

SVN r3188 (trunk)
2011-04-22 03:38:09 +00:00
Christoph Oelckers
1ea5cc8bd8 - added a function to execute action specials and changed all calls to use this function. This was done to make it easier to check such calls.
SVN r3152 (trunk)
2011-02-13 10:18:28 +00:00
Christoph Oelckers
a8167b3110 - fixed: 3DMidtextures did not work correctly in sectors with slopes.
SVN r3120 (trunk)
2011-01-23 09:03:55 +00:00
Christoph Oelckers
622d1ebe6a - fixed: Spawning things abuve a 3D midtexture did not provess the 'is above midtexture' state properly.
- fixed: When teleporting an actor the destination must be checked with the new z position, not the old one.


SVN r3111 (trunk)
2011-01-20 11:40:05 +00:00
Christoph Oelckers
5ad9e0c3b8 - added code submission for printing secret information.
- added missing TRXTCOLOR_CYAN #define.
- changed bridge things to be completely immobile towards sector plane movement. This problem again reared its ugly head in 007LTSD where the oversized bridges got messed up by some opening doors and lowering lifts. Now any plane trying to move such a thing will get blocked. Moving these things by other means still works normally, of course

SVN r3013 (trunk)
2010-11-30 08:18:11 +00:00
Christoph Oelckers
7dd8a0fce9 - replaced all calls to sqrtf with sqrt. Also changed P_RadiusAttack to use doubles for all floating point calculations.
SVN r2989 (trunk)
2010-11-07 14:39:09 +00:00
Christoph Oelckers
40c75b811d - fixed: When used on non-projectiles A_Explode ignored the HurtSource flag.
SVN r2963 (trunk)
2010-10-23 23:05:56 +00:00
Christoph Oelckers
6789b8936c - fixed: When moving a sector plane P_CheckPosition must do the same anti-overlap checks for monsters like P_Move to avoid monster pile-ups.
SVN r2801 (trunk)
2010-09-16 20:15:44 +00:00
Christoph Oelckers
a3c8e0c042 - fixed: P_LineAttack mixed up two flags variables.
SVN r2627 (trunk)
2010-08-28 20:25:52 +00:00
Christoph Oelckers
9102200771 - added: Let the kill CCMD also kill replacements of the monster that is specified.
- add a GetReplacement method to PClass to clean up some really ugly code
- Who wrote the 'kill' CCMD? The way it checked if two classes were identical was horrendously overcomplicated.

SVN r2601 (trunk)
2010-08-26 20:59:15 +00:00
Christoph Oelckers
185bd2f15d - backported some 3D floor changes from GZDoom.
SVN r2517 (trunk)
2010-08-12 07:05:31 +00:00
Christoph Oelckers
30ffffd904 - fixed: Checks for poison damage were not correct.
SVN r2469 (trunk)
2010-07-29 06:53:20 +00:00
Christoph Oelckers
37f55c6539 - added DavidPH's A_RailAttack extension submission.
SVN r2454 (trunk)
2010-07-24 06:27:13 +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
Randy Heit
551f0d3148 - Remove fakedblocker, since it was unused.
SVN r2391 (trunk)
2010-06-27 20:49:02 +00:00
Christoph Oelckers
e535b40a9e - fixed: All melee attack functions only used the target acquired by P_AimLineAttack for all subsequent calculations, not the actual victim of the attack.
SVN r2373 (trunk)
2010-06-13 11:14:01 +00:00
Christoph Oelckers
eadc539bc6 - fixed: Poison clouds spawned by the PoisonShroom should not be pushable by the Disc of Repulsion.
SVN r2350 (trunk)
2010-05-30 20:12:32 +00:00
Christoph Oelckers
6c4d070095 - restored original Doom behavior for hitscans to only check actors which have their center in the blockmap cells being checked, compatibility optioned by COMPATF_HITSCAN.
SVN r2341 (trunk)
2010-05-28 21:07:45 +00:00
Christoph Oelckers
8f881be0fb - added a Boom (strict) compatibility mode.
- Restored some original Doom behavior that received complaints from users:
* reactivated the old sliding against diagonal walls code and compatibility optioned it with COMPATF_WALLRUN.
* re-added the original hitscan checking code using a cross-section of the actor instead of the bounding box, compatibility optioned with COMPATF_HITSCAN.


SVN r2340 (trunk)
2010-05-28 11:15:05 +00:00
Randy Heit
709414e606 - Fixed: Animated doors should only leave ML_BLOCKING set if the door was created with it set.
Otherwise, monsters will be unable to open it after it has been used once if it isn't set
  for push activation.

SVN r2336 (trunk)
2010-05-25 03:40:37 +00:00
Christoph Oelckers
bdc5d941c2 - added a new 'playeruseback' linedef trigger type that allows using lines from the bxck side.
SVN r2302 (trunk)
2010-04-25 07:21:35 +00:00
Christoph Oelckers
1436f0a4fa - Fixed: It was no longer possible to talk to non-shootable NPCs. Also took
the opportunity to merge the various boolean parameters to P_AimLineAttack into one flag parameter.



SVN r2254 (trunk)
2010-03-28 10:51:35 +00:00
Christoph Oelckers
a357a70f82 - fixed: Explosions directly under a water surface would not hurt any actor directly above this surface.
- cleaned up P_CheckSight flag handling.


SVN r2249 (trunk)
2010-03-27 07:42:31 +00:00
Christoph Oelckers
a2cfbec3cf - added a CrushPainSound actor property for Strife.
- fixed memory leaks in SBARINFO and WAD loading code.
- added GetBloodColor and GetBloodType inline functions to AActor to wrap the GetMeta calls used for this.


SVN r2234 (trunk)
2010-03-21 08:09:45 +00:00
Christoph Oelckers
113a438b01 - Fixed: Voodoo dolls must not check reactiontime in P_SlideMove.
SVN r2153 (trunk)
2010-02-11 17:10:01 +00:00
Christoph Oelckers
fc2f95da0e - revert accidental commit.
SVN r2146 (trunk)
2010-01-30 19:28:41 +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