Commit graph

323 commits

Author SHA1 Message Date
MajorCooke
75855dc64a A_FaceVelocity(offset, flags, ptr)
- Changes the caller's angle and pitch according to the direction of velocity they're travelling.
- FVF_NOPITCH and FVF_NOANGLE disable changing of pitch/angle respectively and should be counted as mutually exclusive, or the function does nothing.
- FVF_INTERPOLATE - Interpolate's the angle and pitch changes.
- FVF_RESETPITCH will, if there's no z velocity, reset the pitch to 0. Otherwise, the pitch remains unchanged.
2015-11-25 01:44:19 -06:00
Braden Obrzut
a8ac748123 Merge commit 'e2d874e343da34df6edfad0bb47370cbe10f4bae' 2015-10-25 15:00:43 -04:00
Edoardo Prezioso
4cd793ca2f - Fixed broken projectile firing projectiles code.
This went unnoticed since ZDoom 2.0.90, which introduced the bug. Discovered with the recent TFlags improvements.
2015-10-13 09:13:37 +02:00
Edoardo Prezioso
6678c3550e - Improve the TFlags code and fix the new errors.
The previous version didn't detect some real mistakes in code which used operator& with the wrong flagset (for now 'converted' to the correcly equivalent counterpart, waiting for the proper fix).
2015-10-13 00:30:06 +02:00
coelckers
c1496ea1bf Merge pull request #390 from MajorCooke/SetPainThreshold
- Added A_SetPainThreshold for the calling actor('s pointer).
2015-10-11 15:55:32 +02:00
MajorCooke
21dc45bdec This did not save out properly... 2015-10-10 15:30:18 -05:00
MajorCooke
455b70630d - Added A_JumpIfCloser NoZ boolean. Disables Z distance checking if true. 2015-10-10 10:11:59 -05:00
MajorCooke
2f3b69e770 Optimize a little more... 2015-10-04 16:12:35 -05:00
MajorCooke
154e023800 - Added A_CheckBlock(state block, int flags, int ptr).
- Performs a jump if an actor or a line is in the way.
- Can be used without a jump state if the desire is only to have a pointer change.
- CBF_NOLINES disables jumping if a line is involved.
- CBF_SET* flags set the target, master or tracer to whoever is blocking, for the actor calling the function.
- CBF_SETONPTR causes the pointer changing flags to apply to the pointed actor instead of itself.
2015-10-04 16:00:40 -05:00
MajorCooke
af9478f818 - Added Warp properties RadiusOffset and Pitch.
- RadiusOffset is a multiplier of the target actor's radius added onto the offsets x and y.
- Pitch is added to the warping actor's current pitch, provided WARPF_USEPITCH is supplied.
- Fixed WARPF_TOFLOOR not working as intended.
2015-10-03 17:28:54 -05:00
MajorCooke
6730525855 - Added A_SetPainThreshold for the calling actor('s pointer). 2015-09-17 09:07:13 -05:00
Xaser Acheron
5afbe8ca00 Fixed compiler warning for FPF_NOAUTOAIM flag check 2015-09-09 18:54:49 -05:00
Xaser Acheron
8948f5dc2b Added FPF_NOAUTOAIM to A_FireCustomMissile 2015-09-08 10:40:21 -05:00
MajorCooke
143a4c78a9 - Added A_SetFloatSpeed.
- Sets the FloatSpeed of the actor/pointer.
2015-09-06 19:57:43 -05:00
Christoph Oelckers
0a8255f34b Merge branch 'master' of https://github.com/rheit/zdoom 2015-08-27 12:49:23 +02:00
Christoph Oelckers
d87b6d6337 Merge branch 'WarpHeightOffset' of https://github.com/MajorCooke/zdoom 2015-08-26 08:46:20 +02:00
MajorCooke
2731643200 Removed stricmp checks, as they're not needed. 2015-08-25 08:15:23 -05:00
MajorCooke
f9e70a82c6 - Added A_SetSpecies(<species>,<pointer>). 2015-08-24 12:45:10 -05:00
Christoph Oelckers
b06770cb92 - fixed: A_Respawn did not reset the actor's radius. 2015-08-11 17:12:16 +02:00
MajorCooke
ad14caa800 - Added A_Warp heightoffset property. Only has an effect by two flags.
- WARPF_ADDHEIGHT adds the pointed actor's height to heightoffset, and adds to the pointed actor's z position.
- WARPF_MULHEIGHT multiplies the pointed actor's height by heightoffset, and adds to the pointed actor's z position. Overridden by ADDHEIGHT.
2015-08-10 11:19:54 -05:00
MajorCooke
fcf1d56b1a - Added SXF_IS<TARGET/MASTER/TRACER>.
- The spawned actor becomes the calling actor's specified pointers respectively.
2015-08-09 14:06:22 -05:00
Christoph Oelckers
58870d4871 - fixed: SingleActorFromTid wasn't declared in thingdef_codeptr.cpp 2015-08-01 23:17:06 +02:00
Benjamin Moir
efce2a200c Added WARPF_USETID to A_Warp 2015-07-31 22:24:01 +09:30
Christoph Oelckers
701fc374f7 - consolidated A_Warp and ACS Warp code into a subfunction. 2015-07-31 08:40:33 +02:00
MajorCooke
9319854590 Small bugfixes
- Fixed a couple tiny bugs with A_ScaleVelocity and A_ChangeVelocity using self instead of ref.
2015-07-27 12:20:32 -05:00
MajorCooke
ce1037af95 - Missing check for RGF_PLAYERS/VOODOO. 2015-07-24 13:48:46 -05:00
MajorCooke
41b4df71c2 Use IsKindOf instead of MF_SPECIAL to check for an inventory item. 2015-07-22 17:12:42 -05:00
MajorCooke
b4f05ee89b - Significant A_RadiusGive update.
- Added filter and species parameter.
- Added new flags: RGF_INCLUSIVE, RGF_ITEMS, RGF_KILLED, RGF_EXFILTER, RGF_EXSPECIES, and RGF_EITHER.
- RGF_ITEMS: Items can receive inventory.
- RGF_KILLED: Actors who are truly dead might not be corpses, and vice versa.
- RGF_EXFILTER: Blacklists the specified actor filter. All but the filtered actor can receive the item.
- RGF_EXSPECIES: Blacklists the specified species. All but the filtered species can receive the item.
- RGF_EITHER: The actor can receive the item if it satisfies either the filter or the species. Only useful when both are used.
- RGF_INCLUSIVE: An actor marked as more than one pointer to the calling actor can ignore the exclusion pointers, but only if at least one is missing. I.e. an actor who is a target and tracer of the calling actor can still receive the item, if the calling actor doesn't pass RGF_NOTARGET and NOTRACER at the same time. RGF_INCLUSIVE only works with the pointer filtering flags. By default, if not specified, the actor will not be loopholed the item if they are under any one of the three filters.
- Fixed discrepancies and dependencies upon several flags and actor conditions which caused the function to fail.
2015-07-22 16:46:14 -05:00
Edward Richardson
2a69ae2a43 Change all float calcs in rails to doubles 2015-06-25 13:57:36 +12:00
Edoardo Prezioso
4546df7dc3 - Fixed SetActorPitch and ChangeActorPitch issue.
The code did not take into account the player's limited pitch.
2015-05-28 00:41:07 +02:00
MajorCooke
6639f871c6 - Fixed A_SetRipMin/Max not working properly. 2015-05-03 17:55:01 -05:00
MajorCooke
dc00d61f4d - Added TF_OVERRIDE to A_Teleport.
- Overrides the NOTELEPORT flag so actors with velocity don't need to disable it in order to perform A_Teleport, which could be screwed up by a teleporting line or sudden ACS interference.
- Ensure that the result is set to false if it fails prematurely. Wasn't sure if this was needed, but with the upcoming if/else statements, better safe than sorry.
2015-05-01 08:32:07 -05:00
MajorCooke
1ecc048441 - Change the pointer to be at the end instead of the start. 2015-04-30 08:28:41 -05:00
MajorCooke
492ef1b716 - Added A_JumpIfHigherOrLower.
- (int ptr = AAPTR_TARGET, state high, state low, float offsethigh = 0, float offsetlow = 0, bool includeHeight = true)
- Jumps if the pointer of the calling actor is higher or lower than itself, adding offsethigh or offsetlow depending on the circumstance.
- includeHeight works twofold.
- Includes the height of the calling actor if the pointer is higher to truly determine if they are completely above them or not.
- Includes the height of the pointer if the pointer is lower.
- Disable it to only check z differences without adding height.
2015-04-30 08:15:48 -05:00
Christoph Oelckers
50a3f8a3d2 - fixed copy/paste error. 2015-04-30 12:31:47 +02:00
Christoph Oelckers
84351419a3 Merge branch 'master' of https://github.com/crimsondusk/zdoom
Conflicts:
	src/actor.h
2015-04-30 10:03:50 +02:00
coelckers
c2e91293d2 Merge pull request #310 from MajorCooke/telefogfix
- Allow teleport fogs to set the teleporting actors as their targets, so...
2015-04-30 09:02:10 +02:00
Edoardo Prezioso
b51fac344d Little TakeInventory refactoring.
Introduce AActor::TakeInventory, which unifies DoTakeInv from ACS and DoTakeInventory from Decorate, and AInventory::DepleteOrDestroy, which is extracted from the DoTakeInv core function, and use both where they're needed.
I don't know if the differences between DoTakeInv and DoTakeInventory were intentional, so I kept both behaviors.
2015-04-28 15:45:11 +02:00
Chronos Ouroboros
6a6836b1e7 Added SpiralOffset to railgun functions. 2015-04-23 15:11:54 -03:00
Christoph Oelckers
db61c1cb57 - allow multiple line IDs as well using the same method as for sector tags. 2015-04-19 17:51:34 +02:00
Christoph Oelckers
203f88ce6e - some sanitizing of sector tag/line id management:
* make setting the line ID with P_TranslateLineDef explicit because there's one FraggleScript function that needs to work around the changes caused by this. There's also some functions setting only a temporary linedef. These would inevitably cause problems if the underlying data gets changed.
* remove FS function 'ChangeTag'. Fortunately this was just some long forgotten test stuff that can be removed without affecting any maps, but the feature would cause some serious problems in a more complex system.

With these changes it is guaranteed that after map setup the tag/ids won't change anymore.
2015-04-15 20:10:27 +02:00
MajorCooke
1799ae91c9 - Allow teleport fogs to set the teleporting actors as their targets, so modders can create interactions between the two.
- Fixed: P_MoveThing had source and destination fog spawning backwards.
- Fixed a case where the NOTELEPORT flag would be ignored on A_Teleport.
- Added pointer selection to A_Teleport. Defaults to AAPTR_DEFAULT (calling actor). State jumps will only be done by the calling actor.
2015-04-07 11:14:02 -05:00
Teemu Piippo
ca012bc9be - adapted AActor to use TFlags 2015-04-04 19:40:43 +03:00
Christoph Oelckers
4d59190446 - redit commit 5f56fb5a16 without altering the line endings throughout thingdef_codeptr.cpp.
* Changed the behavior of SetActorTeleFog.
- Don't force "null" to resolve to no actor since "none" is already defined as NULL (via FindClass). (This change also applies to the decorate properties.)
- Passing an empty actor name will keep the existing fog since there's otherwise no way set only one fog. Since "none" works to remove the fog, I see no reason not to have this option.
2015-03-31 09:24:16 +02:00
Christoph Oelckers
164d523eca - fixed incorrect flags word access. 2015-03-27 16:58:21 +01:00
Christoph Oelckers
19cea0f626 - fixed: DoCheckSpecies got an actor's species by directly reading the 'species' variable, bypassing initialization in GetSpecies.
- cleaned up DoCheckSpecies and DoCheckFilter which both contained several redundant checks and renamed DoCheckFilter to DoCheckClass.
2015-03-27 09:57:33 +01:00
Christoph Oelckers
602f541e31 - use '|', not '+' to combine flags.
There's probably going to be more of these coming...
2015-03-27 09:40:47 +01:00
Christoph Oelckers
16ad440adb - fixed: The distance check in A_RadiusGive could overflow for large distances. 2015-03-15 09:51:57 +01:00
Kyle Evans
bc206f21af A_FireCustomMissile's useammo parameter should NOT use ammo if not called from a weapon 2015-03-11 14:24:31 -05:00
Randy Heit
156d1e61fd Use sub-tic accuracy for smooth sine quakes
- Converting the wave speed back to floats, since I'm using sin() instead
  of the finesine table now.
- Pre-shift the quake intensities to avoid extra shifting in GetModIntensity.
- Loading old saves will shift the intensities to fixed point but will not
  convert the fixed wave speeds to floats. The chances of this
  being in a savegame where the speeds are non-zero is pretty much nil,
  and int and floating point 0 are bitwise identical (not counting -0.0).
2015-03-02 19:23:24 -06:00