Commit graph

459 commits

Author SHA1 Message Date
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
Christoph Oelckers
36974431ba Merge branch 'master' into scripting
Conflicts:
	src/thingdef/thingdef_codeptr.cpp
2015-08-01 09:42:31 +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
Christoph Oelckers
d8ea128f38 Merge branch 'master' into scripting
Conflicts:
	src/p_effect.cpp
	src/p_effect.h
	src/p_local.h
	src/p_map.cpp
	src/thingdef/thingdef_codeptr.cpp
2015-07-16 20:37:17 +02:00
Edward Richardson
2a69ae2a43 Change all float calcs in rails to doubles 2015-06-25 13:57:36 +12:00
Christoph Oelckers
7ba577e1b0 Merge branch 'master' into scripting
Conflicts:
	src/g_heretic/a_hereticweaps.cpp
	src/thingdef/thingdef_codeptr.cpp
2015-06-07 09:43:54 +02: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
Christoph Oelckers
8c5cc45dbe Merge branch 'master' into scripting
Conflicts:
	src/thingdef/thingdef_codeptr.cpp
2015-05-04 09:29:46 +02:00
MajorCooke
6639f871c6 - Fixed A_SetRipMin/Max not working properly. 2015-05-03 17:55:01 -05:00
Christoph Oelckers
6996a15235 - fixed some overlooked merging problem. 2015-05-02 23:44:54 +02:00
Christoph Oelckers
48ae605b7d Merge branch 'master' into scripting
Conflicts:
	src/thingdef/thingdef_codeptr.cpp
2015-05-02 22:44:31 +02: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
Christoph Oelckers
1b29c3b6cf Merge branch 'master' into scripting
Conflicts:
	src/p_interaction.cpp
	tools/lemon/lemon.c
2015-04-30 16:13:32 +02: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
d96edb5c68 Merge branch 'master' into scripting
Conflicts:
	src/thingdef/thingdef_codeptr.cpp
2015-04-30 12:32:50 +02:00
Christoph Oelckers
50a3f8a3d2 - fixed copy/paste error. 2015-04-30 12:31:47 +02:00
Christoph Oelckers
5f1c4d157c Merge branch 'master' into scripting
Conflicts:
	src/g_shared/a_sharedglobal.h
	src/thingdef/thingdef_codeptr.cpp
	src/thingdef/thingdef_data.cpp
2015-04-30 12:30:36 +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
Christoph Oelckers
7b6b473ec4 - some GCC fixed by Edward-san. 2015-04-29 11:28:04 +02:00
Christoph Oelckers
646c135eff Merge branch 'master' into scripting
Conflicts:
	src/m_cheat.cpp
	src/p_acs.cpp
	src/thingdef/thingdef_codeptr.cpp
	src/thingdef/thingdef_properties.cpp
2015-04-28 23:04: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
Christoph Oelckers
2e0f999fea Merge branch 'master' into scripting
Conflicts:
	src/p_effect.cpp
	src/p_effect.h
	src/p_local.h
	src/p_map.cpp
	src/thingdef/thingdef_codeptr.cpp
	wadsrc/static/actors/actor.txt
	wadsrc/static/actors/shared/inventory.txt
	zdoom.vcproj
2015-04-28 14:45:13 +02:00
Christoph Oelckers
8447990889 Merge commit '2719ce86dc07c9f7b1ad6d61a9a49c974896abf2' into scripting
Conflicts:
	src/info.h
	src/thingdef/thingdef_codeptr.cpp

(until right before the main work for multiple tags.)
2015-04-28 13:32:50 +02:00
Christoph Oelckers
065c0a79cd Merge commit '4f7ec3ad891d556c0d3f680e209a120ed38e9cdb' into scripting
Conflicts:
	src/d_main.cpp
	src/info.cpp
	src/info.h
	src/p_acs.cpp
	src/p_interaction.cpp
	src/p_mobj.cpp
	src/thingdef/thingdef_codeptr.cpp
	src/thingdef/thingdef_properties.cpp

(scripting branch update part 5)
2015-04-28 12:48:33 +02:00
Christoph Oelckers
792cad89b3 Merge commit '3849cb86231ce24131a86e9c29795a8cf3706a3d' into scripting
Conflicts:
	src/g_hexen/a_clericstaff.cpp
	src/g_hexen/a_hexenspecialdecs.cpp
	src/p_acs.cpp
	src/p_enemy.cpp
	src/p_interaction.cpp
	src/thingdef/thingdef_codeptr.cpp
	src/thingdef/thingdef_expression.cpp

(Scripting branch update part 4)
2015-04-28 11:59:33 +02:00
Christoph Oelckers
d6e3fc0567 Merge commit 'fb9231a38db2025eb77bfd246f36d985cbbccd2e' into scripting
Conflicts:
	src/info.cpp
	src/thingdef/thingdef_expression.cpp
	wadsrc/static/actors/constants.txt

(Scripting branch update part 2)
2015-04-28 09:57:01 +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
Randy Heit
dca5f0e908 Added QF_SINE
- Squashed commit of the following:

commit bc45fe3263d34ef5f746f524687999c19bf7b779
Author: Randy Heit <rheit@users.noreply.github.com>
Date:   Sun Mar 1 18:51:05 2015 -0600

    wave scale -> wave speed

commit ff96388b128c724c1198757bfa52f1935a263356
Author: Randy Heit <rheit@users.noreply.github.com>
Date:   Sun Mar 1 18:45:32 2015 -0600

    More sine quake fixes

commit 2a89749a6fe6d271b9fbdc218779f680afcf4cb6
Merge: 719dfbe 5456074
Author: MajorCooke <paul.growney22@gmail.com>
Date:   Sat Feb 28 20:37:22 2015 -0600

    Added QF_WAVE to A_QuakeEx.
    - Changes the random quakes into a sine wave (see Shadow Warrior/Rise of the Triad reboots, Hard Reset, etc.)
    - Added 3 properties to control waves per second along each individual axis. Only works with QF_WAVE.
    - Intensity X/Y/Z property becomes the amplitude of the wave.
    - Stacks with regular quakes, allowing shaking along the camera which must be called using A_QuakeEx WITHOUT the flag, or the other quaking functions.
    - Uses the youngest quake's time for positioning.

commit 54560741581e8d15cc7060e8e068cf85e9a4b432
Author: MajorCooke <paul.growney22@gmail.com>
Date:   Sat Feb 28 20:21:19 2015 -0600

    Recommitted recommended changes by Randi, with some modifications. Now, we should be finished!

commit 6f4473013411686d88fc185bdc1cc58b1035b0f1
Author: MajorCooke <paul.growney22@gmail.com>
Date:   Sat Feb 28 12:52:57 2015 -0600

    Finish this revert.

commit 467e53f9400f588a2ada9b32e7634cb1f4ad5066
Author: MajorCooke <paul.growney22@gmail.com>
Date:   Sat Feb 28 12:46:02 2015 -0600

    Reverted back to what was working.

commit da9de56a67efda08036e481fd5fccd5392ce6810
Author: MajorCooke <paul.growney22@gmail.com>
Date:   Thu Feb 26 18:53:20 2015 -0600

    Forgot this bit, for testing.

commit c5093d9bb97caf8478cefc32abc56a036feeea58
Author: MajorCooke <paul.growney22@gmail.com>
Date:   Thu Feb 26 18:52:46 2015 -0600

    Some more progress, but...
    - This did not solve anything. In fact, it did the opposite -- completely broke wave quakes. Now they only happen whenever a random quake is in progress.
    - Left in the commented code on purpose so Randi can test it.

commit 7e526405d2127cbb279f66008c8f8e55a5d497f3
Author: MajorCooke <paul.growney22@gmail.com>
Date:   Wed Feb 25 17:50:42 2015 -0600

    - Use newest waveform timer, not oldest.

commit 1356443609dbc6c7f46e081d0846816dc0836124
Author: MajorCooke <paul.growney22@gmail.com>
Date:   Wed Feb 25 17:32:09 2015 -0600

    - Got regular quakes to multiply onto sine quakes, but the vice versa needs fixing too.

commit d95796c94c70cd0229d4a6d30f69e3a7568b9588
Author: MajorCooke <paul.growney22@gmail.com>
Date:   Wed Feb 25 16:46:21 2015 -0600

    - Last hurdle. Now just need to figure out how to properly scale up and down.

commit 4bc3458e689155ce72c09776604d9eb4fa73d8be
Author: MajorCooke <paul.growney22@gmail.com>
Date:   Tue Feb 24 23:18:03 2015 -0600

    - Fixed the quakes being unstackable.

commit b51012d6d4ea065bf7f6fc9c1a0472966491f7af
Author: MajorCooke <paul.growney22@gmail.com>
Date:   Mon Feb 23 23:48:34 2015 -0600

    QF_WAVE renamed from SINE.
    - Lots of ground covered, but still more to go.
    - Still need to figure out how to make the camera properly shudder.

commit 427e4893193470bbf45415ffec70a0b69b8cccfd
Author: MajorCooke <paul.growney22@gmail.com>
Date:   Sun Feb 22 16:52:30 2015 -0600

    - Begin the groundworks for QF_SINE.
    - Need to figure out how to rework and manipulate the sine wave to move faster, and to allow going below 0 without breaking it too much.
2015-03-01 18:53:34 -06:00
Christoph Oelckers
8fd08c2acc - removed debug code 2015-02-26 15:46:01 +01:00
Randy Heit
5aba252b87 Simplify NoDelay implementation
- All NoDelay needs to do is call the current state's function. Calling
  SetState() is excessive.
2015-02-24 20:37:58 -06:00
Randy Heit
2d4f02c560 Merge branch 'MajorCooke-quakeex' 2015-02-18 15:01:45 -06:00
MajorCooke
0f4bca8607 - Added SXF_TRANSFERROLL. 2015-02-14 16:51:05 -06:00
MajorCooke
7050d03222 Added A_QuakeEx(intensity x, y, z, duration, damrad, tremrad, sound, flags)
- Unlocks the full potential of using quakes, including the Z axis. Each intensity applies to X/Y/Z planes whenever a player is experiencing it.
- Flags:
- QF_RELATIVE - Adjusts the quaking of the camera to go in the direction its aiming (X: forward/backward. Y: Left/right.)
- Plans for including pitch will be implemented in the future for the Z axis with relativity.
2015-02-14 15:58:39 -06:00
MajorCooke
b37a98689a - Added SXF_TRANSFERSPRITEFRAME. Now it's possible to make starting frames that start with "####" "#" 0 in Spawn.
- Fixed a compile warning with FAF_NODISTFACTOR.
2015-02-07 10:04:33 -06:00
Randy Heit
775e33ede7 Merge branch 'master' into scripting
Conflicts:
	src/actor.h
	src/g_doom/a_archvile.cpp
	src/g_shared/a_morph.cpp
	src/p_enemy.h
	src/p_local.h
	src/p_mobj.cpp
	src/sc_man_tokens.h
	src/thingdef/thingdef_codeptr.cpp
	src/thingdef/thingdef_exp.h
	src/thingdef/thingdef_expression.cpp
	src/thingdef/thingdef_states.cpp
	wadsrc/static/actors/actor.txt
2015-01-29 20:53:08 -06:00
Randy Heit
b69edbbec1 Redo commit a4c07a9
- Line endings are inconsistant in this file, but at least the commit
  doesn't touch the whole file.
2015-01-29 19:50:52 -06:00
Randy Heit
d828173ce3 Revert "- fixed: Since A_Give/TaketoChildren/siblings use the same code as A_Give/TakeInventory but do not use the third parameter this must be ignored by the code. This is merely a band-aid fix, because this problem doesn't exist in the same form in the scripting branch."
This reverts commit a4c07a9ee3.

- This commit touched every line of thingdef_codeptr.cpp, which would make
  merging it into the scripting branch a pain in the ass.
2015-01-29 19:30:26 -06:00
Christoph Oelckers
a4c07a9ee3 - fixed: Since A_Give/TaketoChildren/siblings use the same code as A_Give/TakeInventory but do not use the third parameter this must be ignored by the code. This is merely a band-aid fix, because this problem doesn't exist in the same form in the scripting branch. 2015-01-25 20:15:58 +01:00
Christoph Oelckers
d1cca79c31 - Use SpawnHealth() when calling A_ResetHealth. 2015-01-23 20:29:38 +01:00
MajorCooke
301c061ec3 - Added pointer for A_SetRoll. 2015-01-23 10:24:23 -06:00
MajorCooke
19b43d4752 - Added A_ResetHealth(ptr). Defaults to AAPTR_DEFAULT (the action caller).
- Added pointers to the following functions, all of them set to AAPTR_DEFAULT:
- A_SetAngle
- A_SetPitch
- A_SetScale
- A_SetSpeed
- A_ScaleVelocity
2015-01-23 09:26:34 -06:00
Christoph Oelckers
ae282eea53 Merge branch 'sethealthredux' of https://github.com/MajorCooke/zdoom 2015-01-22 13:59:59 +01:00
MajorCooke
4fd87a1ce9 - Redid A_SetHealth.
- This function will not take the actor's health below 1, and any attempts to do so will simply set it to 1 in its place.
2015-01-20 22:54:30 -06:00
MajorCooke
105a62cc20 - Added pointer field to A_ChangeVelocity.
- Defaults to AAPTR_DEFAULT, otherwise known as the calling actor.
2015-01-19 14:54:20 -06:00
MajorCooke
643d37ab7c - Added A_SetFloatBobPhase(int). Takes a number between 0 and 63. If it's outside that range, it does nothing.
- Added A_Warp flags:
- WARPF_BOB: Gets the bob offset of actor pointer with the FLOATBOB flag.
- WARPF_MOVEPTR: The function is inversed to move the pointed actor with applied flags, but only the original caller will make the success/jump.
2015-01-06 11:55:41 -06:00
nashmuhandes
2b12db153b New functions to manipulate an actor's roll.
- DECORATE functions: A_SetRoll code pointer.
- DECORATE expressions: "roll" variable.
- ACS functions: SetActorRoll, GetActorRoll.
2015-01-05 17:51:32 +08:00
Blue-Shadow
ba3988290c Added an option to A_Check[SightOr]Range to be able to perform a 2D-based distance check. 2015-01-01 22:16:51 +03:00
Randy Heit
85a2042394 Reimplement CheckClass and IsPointerEqual functions
- The definition of FxGlobalFunctionCall_CheckClass was big and scary. I
  would say this is a big improvement, since now it gets to leverage the
  same framework that action functions use.
- The definition of FxGlobalFunctionCall_IsPointerEqual was not so big and
  scary, so this can't be called so much of an improvement as
  CheckClass was. (Which is not to say that it isn't better anyway.)
2014-12-30 23:36:56 -06:00
MajorCooke
4ddfd0f46a - Added 3 new properties and 3 functions to control them.
- Rippers will rip through anything with an equivalent ripper level, or if their level is between or on the min and max ranges.
- If no min or max is defined, it simply checks if the monster's ripper level is lower than the missiles.
- Functions: A_SetRipperLevel(int level), A_SetRipMin(int min), A_SetRipMax(int max)
- Properties: RipperLevel, RipLevelMin, and RipLevelMax.
- RipperLevel: Applicable to monsters and projectiles.
- RipLevelMin and RipLevelMax are only useful on monsters.
- By default, all are 0.
2014-12-30 19:59:31 -06:00
MajorCooke
f2551dceda - Corrected the species checking. 2014-12-24 17:49:58 -06:00
rheit
bfb94f13d2 Merge pull request #198 from MajorCooke/filters
- Added name filtering to all A_Damage/Kill/Remove functions.
2014-12-23 21:42:31 -06:00
Randy Heit
d7d022144e Call A_Face() directly from A_CustomBullletAttack 2014-12-23 21:30:24 -06:00
Randy Heit
b5e4153c78 Merge branch 'master' into gonesolong
Conflicts:
	src/CMakeLists.txt
	src/b_think.cpp
	src/g_doom/a_doomweaps.cpp
	src/g_hexen/a_clericstaff.cpp
	src/g_hexen/a_fighterplayer.cpp
	src/namedef.h
	src/p_enemy.cpp
	src/p_local.h
	src/p_mobj.cpp
	src/p_teleport.cpp
	src/sc_man_tokens.h
	src/thingdef/thingdef_codeptr.cpp
	src/thingdef/thingdef_function.cpp
	src/thingdef/thingdef_parse.cpp
	wadsrc/static/actors/actor.txt
	wadsrc/static/actors/constants.txt
	wadsrc/static/actors/shared/inventory.txt

- Added register reuse to VMFunctionBuilder for FxPick's code emitter.
- Note to self: Need to reimplement IsPointerEqual and CheckClass, which
  were added to thingdef_function.cpp over the past year, as this file no
  longer exists in this branch.
2014-12-21 21:15:11 -06:00
MajorCooke
91bfe4cceb - Added pointers for A_CustomMissile and A_CustomBulletAttack. 2014-12-21 12:29:19 -06:00
MajorCooke
2c7a3f2eba - Optimized DoDamage and DoKill.
- Do a filter and species check first to save time.
- Added DMSS/KILS/RMVF_EITHER, which means if the actor is of type or species, it counts.
- A_DamageTarget(20,"Normal",DMSS_EITHER,"DoomImp","CyberdemonSpecies")
- This affects actor DoomImp, and anything that's of species CyberdemonSpecies.
- Added a little more documentation via comments.
2014-12-21 10:38:51 -06:00
MajorCooke
5a472e815b - Added species checking.
- Added two more flags for each of the functions, EXFILTER and EXSPECIES.
- Stands for "exclude filter/species" and makes the function not take them into account.
- Cleaned up the code and placed all the checking in their own subfunctions.
2014-12-21 09:31:24 -06:00
MajorCooke
c168761eda - Couple additional fixes:
- The wiki said the minimum distance to teleport defaults to 0, actor.txt on the other hand said otherwise. I was wondering why it was still broken somewhat...
- Prevent stickiness from happening, a.k.a. getting stuck in ceiling or floor and letting the engine unstick the actor. This caused velocity loss.
2014-12-20 22:51:43 -06:00
Randy Heit
2d87eb0ba2 Merge branch 'master' into gonesolong
Conflicts:
	src/CMakeLists.txt
	src/actor.h
	src/g_heretic/a_hereticmisc.cpp
	src/g_heretic/a_hereticweaps.cpp
	src/g_heretic/a_ironlich.cpp
	src/info.h
	src/namedef.h
	src/p_buildmap.cpp
	src/p_enemy.cpp
	src/p_map.cpp
	src/p_mobj.cpp
	src/thingdef/thingdef_codeptr.cpp
	zdoom.vcproj
2014-12-20 19:13:14 -06:00
MajorCooke
e5a41a1358 - Added name filtering to all A_Damage/Kill/Remove functions.
- A_DamageChildren(20,"Normal",0,"DoomImp") for example will only target actors of DoomImp specifically.
2014-12-20 16:57:00 -06:00
Christoph Oelckers
2a53ebb6b9 - fixed state checking in A_Teleport. 2014-12-20 14:48:22 +01:00
Christoph Oelckers
a19f0219c5 Merge branch 'master' of https://github.com/Blue-Shadow/zdoom 2014-12-20 11:36:10 +01:00
MajorCooke
86b0065c0b - Added a multitude of flags for A_Teleport.
- TF_KEEPVELOCITY: Keep the velocity after teleporting.
- TF_KEEPANGLE: Don't use the special spot's angle.
- TF_USESPOTZ: Normally, this function
- TF_NOSRCFOG: Don't leave fog at the previous location.
- TF_NODESTFOG: Don't leave fog at the arriving location.
- TF_USEACTORFOG: Use the actor's TeleFogSourceType and TeleFogDestType properties.
- TF_NOJUMP: Don't require or cause a jump. In this case, put 0 (or "") in for the jump destination when using CustomInventory items to teleport actors around.
2014-12-19 12:37:02 -06:00
Blue-Shadow
a150e0686c Added 'lifestealmax' parameter and STEALARMOR flag to A_Saw and A_CustomPunch. 2014-12-18 23:05:59 +03:00
MajorCooke
dcab57b236 - Allow NULL.
- Instead of reverting the teleport fog back to defaults, if there wasn't a class or if the class failed to be found, set it to NULL.
- P_SpawnTeleportFog will not spawn anything if it's NULL.
- Added "" so it can be used to mean 'don't change anything' for A_SetTeleFog.
2014-12-18 09:19:39 -06:00
MajorCooke
93ca8502dd - Rewrote a bunch of things for stability. 2014-12-17 21:47:00 -06:00
MajorCooke
30acb72006 - Added per-actor teleport fog modifications.
- New properties include TeleFogSourceType and TeleFogDestType.
- TeleFogSourceType is the fog left behind where the actor teleported away from.
- TeleFogDestType is the fog the actor sees when it arrives at its destination.
- Added A_SetTeleFog(<oldpos>,<newpos>) -- oldpos sets TeleFogSourceType, newpos sets TeleFogDestType.
2014-12-17 16:11:07 -06:00
MajorCooke
465d9ab89a - Added flags for A_CheckLOF:
- CLOFF_SETTARGET | CLOFF_SETMASTER | CLOFF_SETTRACER
- An actor that causes A_CheckLOF (and only an actor) to succeed will set the intercepting actor as its target, master, and/or tracer, respectively.
2014-12-15 14:50:35 -06:00
MajorCooke
94f08aa593 - Added: Boolean to specify if A_Raise functions should perform CopyFriendliness based upon who raised it. By default, this is false. 2014-11-27 15:12:33 -06:00
MajorCooke
08570ec48e - Added flags for A_Fade functions:
- FTF_REMOVE: Removes the actor when the alpha hits a certain level.
- - A_FadeIn - 1.0
- - A_FadeOut - 0.0
- - A_FadeTo - Alpha target level reached
- FTF_CLAMP: Automatically fixes the alpha so it won't leave the range [0.0, 1.0].
2014-11-25 13:24:35 -06:00
Edoardo Prezioso
fd354dbe9a - Added CPF_NOTURN flag for A_CustomPunch. 2014-11-14 12:18:46 +01:00
Christoph Oelckers
22b5d0af8a Merge branch 'hotfix' of https://github.com/MajorCooke/zdoom 2014-11-09 12:13:13 +01:00
MajorCooke
87207bdb6d - Fixed: The mask didn't incorporate RGF_MISSILES, causing it to fail. 2014-11-09 00:16:10 -06:00
Edoardo Prezioso
8b85e6d00b - Port an empty version of 'A_FaceConsolePlayer'.
Hissies will be happy now.
2014-11-08 18:49:16 +01:00
Christoph Oelckers
c28c0b8f0b Revert "Backport 'A_FaceConsolePlayer' from zandronum."
This reverts commit eab971500b.

As Edward850 pointed out, this feature is broken by design and therefore completely useless.
2014-11-08 08:53:32 +01:00
Edoardo Prezioso
eab971500b Backport 'A_FaceConsolePlayer' from zandronum.
By Dusk, who authorized me to do this.
2014-11-08 00:31:16 +01:00
MajorCooke
938b54ccb5 - Added TF_FORCED for A_Teleport. Forces the actor to move to the spot. 2014-10-31 15:51:15 -05:00
Christoph Oelckers
31611c17d5 - fixed RGF_NOSIGHT checking for A_RadiusGive. 2014-10-29 22:00:15 +01:00
MajorCooke
165d2887fd - Added: A_GiveToChildren
- Added: A_TakeFromChildren
- Added: A_GiveToSiblings
- Added: A_TakeFromSiblings
- Added the following flags for A_RadiusGive:
- RGF_NOSIGHT: Exclude sight check from distance.
- RGF_MISSILES: Missiles can take inventory items.
2014-10-29 14:01:31 -05:00
MajorCooke
c01d1a8003 - Added DMSS_NOPROTECT.
Bypasses PowerProtection inventory items.
2014-10-27 22:29:10 -05:00
MajorCooke
a19620968d - Follow-up of the previous commit.
- Cleaned up the DoDamage and DoKill functionality.
- Added DMSS_FOILBUDDHA and KILS_FOILBUDDHA.
2014-10-25 09:39:10 +02:00
Christoph Oelckers
1c500cead6 - fixed: A_Respawn did not restore the flags6 and flags7 fields. 2014-10-25 01:27:34 +02:00
Christoph Oelckers
b6f4862024 - fixed: A_Warp didn't initialize oldx/y/z in all situations. 2014-10-25 00:05:52 +02:00
Christoph Oelckers
0f19356e24 Merge branch 'master' of https://github.com/MajorCooke/zdoom
Conflicts:
	wadsrc/static/actors/constants.txt
2014-10-12 08:43:46 +02:00
MajorCooke
f766a1ab38 - Added SXF_ORIGINATOR.
- Only useful for missiles.

By default, missiles cannot set themselves as the master when spawning
actors.
2014-10-11 16:15:42 -05:00
MajorCooke
47029a3efc DoKill bug
-Fixed: DoKill did not target 'killtarget' for missiles, causing crashes and making the function not work properly.
2014-10-07 11:33:08 -05:00
MajorCooke
f54a59fdf8 - Added JLOSF_CHECKTRACER for A_JumpIfTargetInLOS.
- CHECKTRACER doesn't need to be a missile or have the SEEKERMISSILE
flag.
2014-10-02 17:00:17 -05:00
MajorCooke
5030832df0 - Added DMSS_NOFACTOR for all A_Damage functions. 2014-10-02 11:48:07 -05:00
MajorCooke
96c6e7d9bf Minor fix; didn't mean to include that flag check. 2014-09-28 08:20:27 -05:00
MajorCooke
43b86288c7 - Added A_Remove(int pointer, int flags).
- RMVF_MISSILES removes missiles.
- RMVF_NOMONSTERS ignores monsters.
- RMVF_MISC includes non-monsters and missiles.
- RMVF_EVERYTHING disregards all checks and remove it.

These flags now apply to the following in addition to the new function:

-A_RemoveTarget
-A_RemoveMaster
-A_RemoveTracer
-A_RemoveChildren
-A_RemoveSiblings
2014-09-28 08:15:00 -05:00
MajorCooke
97d5d614c4 - Fixed: SXF_NOPOINTERS didn't clear LastHeard, causing monsters to spawn with targets. 2014-09-27 16:50:24 -05:00
MajorCooke
68a5db3c8c - Added SXF_NOPOINTERS for A_SpawnItemEx.
- Added WARPF_ABSOLUTEPOSITION for A_Warp.
2014-09-27 13:22:14 -05:00
Christoph Oelckers
e025f40902 - more redundancy removal: Consolidated the common part of the A_Kill* functions into a subfunction. 2014-09-27 08:54:18 +02:00
Christoph Oelckers
afaa88a460 - consolidated the common portion of the 6 different A_Damage* functions into a subfunction. 2014-09-27 08:48:36 +02:00
MajorCooke
0735cb9550 - Updated many functions.
- Added A_KillTarget(damagetype, int flags).
- Added A_KillTracer(damagetype, int flags).
- Added A_RemoveTarget.
- Added A_RemoveTracer.

A_Kill (Master/Target/Tracer/Children/Siblings):
- KILS_FOILINVUL: foils invulnerability.
- KILS_KILLMISSILES: destroys projectiles. Does not work on invulnerable
projectiles without KILS_FOILINVUL, and doesn't work at all on missiles
with NODAMAGE flag.
- KILS_NOMONSTERS: actors that are monsters will not be killed.

A_Damage (Self/Target/Master/Tracer/Children/Siblings):
- DMSS_FOILINVUL: foils invulnerability.
- DMSS_AFFECTARMOR: damages the actor's armor instead of bypassing it
entirely.
- DMSS_KILL: damages the actor by its remaining health (useful for
modular DECORATE programming).

- Added A_SpawnItemEx flags:
- SXF_SETTARGET: sets the calling actor as the target.
- SXF_SETTRACER: sets the calling actor as the tracer.
Both of these functions take priority similar to SXF_SETMASTER over
SXF_TRANSFERPOINTERS.
2014-09-27 00:10:31 -05:00
MajorCooke
5b71ce6dcb - Added FDARI's A_JumpIfHealthLower patch.
Now with pointer accessibility.
2014-09-26 11:48:20 -05:00
MajorCooke
422e83a1b9 - Added more A_Damage functions:
- A_DamageTarget
- A_DamageTracer
-Both take a number for how much damage to deal and the damagetype to
inflict. Negative numbers means healing.
2014-09-25 23:12:25 -05:00
MajorCooke
b1f87295b8 - Added A_DamageSelf.
- A_DamageSelf(int amount, name damagetype)
2014-09-25 16:47:41 -05:00
MajorCooke
44683657f2 - Added jpalomo's A_SetSpeed patch. 2014-09-20 17:34:57 -05:00
MajorCooke
5c4ad9be68 Added Blue Shadow's A_SpawnItemEx changes: (1/2)
SXF_TRANSFERALPHA and SXF_TRANSFERRENDERSTYLE
2014-09-19 14:15:31 -05:00
MajorCooke
7a62459c00 Allow SXF_SETMASTER to work on non-monsters. 2014-09-18 17:58:06 -05:00
Christoph Oelckers
2be3b776d8 - fixed: A_CustomMissile should not jump to the See state for dead monsters when using CMF_CHECKTARGETDEAD. 2014-09-13 10:15:09 +02:00
Christoph Oelckers
7d7f146ce1 - fixed: transferring a translation to a missile needs to check if the missile was spawned successfully. 2014-06-28 15:21:19 +02:00
Christoph Oelckers
e56e525d0f - A_FireCustomMissile transfer tranlsation flag, code submission by jpalomo 2014-06-22 08:55:21 +02:00
Christoph Oelckers
63a0e01c6a Merge branch 'interpview_optin' 2014-05-08 09:17:00 +02:00
Christoph Oelckers
67ebbe3ed4 made some changes to turn the CF_INTERPVIEW flag when changing angles into an op-in feature instead of making it automatic. 2014-05-08 09:15:56 +02:00
Gaerzi
18f2644162 A_Log formatted text
Make DECORATE version of Log consistent with ACS version.
2014-02-22 04:09:52 +13:00
Randy Heit
1f723c10ae Add CF_INTERPVIEW for players.
- Added CF_INTERPVIEW flag for players. A_SetPitch/A_SetAngle and the
  similar ACS APROPs set this when changing an angle. This forces the
  renderer to interpolate the view angles instead of updating with the
  latest mouse positions. The effect lasts one tick.
2013-10-09 21:50:24 -05:00
Randy Heit
fc843c28ba Merge branch 'maint' 2013-09-18 22:06:31 -05:00
Randy Heit
a7a7d5d6b3 Add missing prantheses for A_CustomPunch's puffFlags calculation
- Fixed: Need parentheses for precedence when setting puffFlags in
  A_CustomPunch. Otherwise, it's completely broken.
2013-09-18 21:25:00 -05:00
Christoph Oelckers
251cdacf26 Merge branch 'master' into scripting
Conflicts:
	src/g_shared/a_randomspawner.cpp
	src/g_strife/a_strifeweapons.cpp
	src/thingdef/thingdef_parse.cpp
	wadsrc/static/actors/constants.txt
2013-09-03 09:01:28 +02:00
Randy Heit
33ee8f9fef Merge branch 'maint' 2013-08-29 22:27:49 -05:00
Randy Heit
7143ae49e1 Fixed: CheckPlayerCamera not sync safe
-  If a player is spying through another player, CheckPlayerCamera will
   return the TID of the player you are "spying", but as coopspy isn't a
   net command, this wont be reflected by all nodes. So to fix this,
   CheckPlayerCamera now returns -1 if a player's camera is that of any
   player at all. (thanks edward850)
2013-08-29 21:45:37 -05:00
Randy Heit
aac0de3e48 Fixed: Make A_SetTics work with weapons.
- When A_SetTics is called from a weapon, we need to set the tics for the
  psprite instead of the actor itself.
2013-08-29 21:40:01 -05:00
Randy Heit
01822c002f Use PField instead of PSymbolVariable for A_SetUserVar/Array 2013-08-21 22:58:12 -05:00
Randy Heit
6198c000af Fix A_DropItem from merge 2013-08-21 22:31:40 -05:00
Christoph Oelckers
3e4678765b Merge branch 'master' into scripting
Conflicts:
	src/actor.h
	src/thingdef/thingdef_codeptr.cpp
2013-08-18 12:18:59 +02:00
Christoph Oelckers
61c94648dc - added ACS CheckFlag function. 2013-08-12 22:38:52 +02:00
Christoph Oelckers
c0174ea7cd - Added A_DropItem for DECORATE. 2013-08-11 20:48:08 +02:00
Christoph Oelckers
909ec2e35a Merge branch 'maint' into scripting 2013-07-28 10:47:17 +02:00
Christoph Oelckers
cbc0b70e7c - TransferStencilColor A_SpawnItemEx patch / by Ryan Cordell. 2013-07-24 20:15:17 +02:00
Randy Heit
9c86f1c220 Merge branch 'master' into scripting for plugged userinfo memory leak
Conflicts:
	src/d_player.h
	src/p_interaction.cpp
	src/thingdef/thingdef_codeptr.cpp
2013-07-23 21:01:13 -05:00