Christoph Oelckers
f0e8e860f1
Merge branch 'master' into json
2016-09-22 09:09:48 +02:00
raa-eruanna
bc0624e3b2
Fixed my error where I was using a local session variable rather than the proper user info for the weapon bob speed.
2016-09-22 08:42:59 +02:00
raa-eruanna
780d672b25
Adds user-definable weapon bob speed
2016-09-22 08:42:59 +02:00
Christoph Oelckers
f93e4813d1
- removed farchive.cpp and .h
2016-09-22 00:48:22 +02:00
Christoph Oelckers
af6404f763
- all DObjects converted.
...
- cleaned out some old cruft that's no longer needed.
2016-09-20 10:27:53 +02:00
Leonard2
c0d3eb997a
Fixed: the instant weapon switch flag didn't work anymore
2016-07-30 23:50:14 +02:00
Leonard2
5907ff662d
Added a new state that the weapon jumps to when it is lowered all the way and the player is currently dead
...
The state is undefined by default to preserve the original behavior of having the weapon layer deleted which modders can now avoid by defining it properly
2016-07-28 17:42:22 +02:00
MajorCooke
1322ef2449
Renamed NODEATHJUMP to NODEATHDESELECT.
2016-07-28 08:29:47 +02:00
Leonard2
797f3aec0a
Added a weapon flag to ignore a player's input when dead
...
The reason this is not set by default is because before that anyone could call A_WeaponReady within their Deselect state which would have allowed players to fire even when dead
2016-07-28 08:29:46 +02:00
Leonard2
bcb18cf7d8
Added a flag to prevent the weapon from jumping to its Deselect state when the player dies
2016-07-28 08:29:46 +02:00
Leonard2
446bc1018c
Fixed: weapons didn't clear their flash layer when the player died
2016-07-17 17:28:45 +02:00
Leonard2
e482a54389
Fixed a crash with A_ClearOverlays
2016-07-17 14:27:56 +02:00
Leonard2
05d1df3571
Fixed crashes with the A_CrispyPlayer and A_HandLower action functions
...
Simply using FindPSprite in those functions wouldn't be enough because if a mod is using the firehands layer when they are called this would go very wrong
2016-07-13 13:01:32 +02:00
Leonard2
3ea70980f9
Fixed: the strife firehands were interpolated if a mod used the layer before them
...
The flags were also already reset, no need to do it twice
2016-07-13 13:01:32 +02:00
Leonard2
da6e12d5bc
Fixed: the weapon layer offsets were interpolated even after the player switched his weapon
2016-07-13 13:01:32 +02:00
Leonard2
75cb8c00a6
Fixed: the flags weren't properly reset if a mod used the old layers before the code used them
2016-07-13 13:01:32 +02:00
MajorCooke
41d20fa6cf
Fixed freeze with A_ClearOverlays.
2016-06-29 12:46:50 +02:00
MajorCooke
e02ed3a6f7
Take in the targeter layers if someone disables the safety and uses 0 for start and stop.
2016-06-20 01:15:51 +02:00
MajorCooke
ecfa7415b3
This small change was left out by mistake.
2016-06-20 01:15:51 +02:00
MajorCooke
30880aab79
And a bit more optimization...
2016-06-20 01:15:50 +02:00
MajorCooke
2b91db7b3a
Refactored A_ClearOverlays.
2016-06-20 01:15:50 +02:00
MajorCooke
dd410876cf
Added A_ClearOverlays(int start, int stop, bool safety).
...
- Clears a set of overlays in ranges [start,stop]. If unspecified, wipes all non-hardcoded layers. Safety determines whether to affect core layers or not (i.e. weapon). Returns the number of layers cleared.
Added no override boolean to A_Overlay and a boolean return type.
- If true, and a layer already has an active layer, the function returns false. Otherwise, sets the layer and returns true.
2016-06-20 01:15:49 +02:00
Edoardo Prezioso
574f2936d4
- Fixed GCC/Clang compiler errors and warnings.
2016-06-17 10:19:03 +02:00
Christoph Oelckers
cfaa3e3fa9
- changed action function interface so that callers can be identified directly, instead of guessing it from looking at the parameters.
...
With arbitrary PSP layers the old method was no longer safe because the layer ID was not available in the action function.
2016-06-16 16:16:27 +02:00
MajorCooke
c9f4620702
Reimplemented P_SetPsprite.
2016-06-16 07:24:00 -05:00
Leonard2
0b88bae458
The strife firehands now make proper use of the psprite layers
2016-06-03 19:46:31 +02:00
Leonard2
afa708c138
Allow psprite layers to be manipulated directly from the player's own body
2016-06-03 19:18:58 +02:00
Leonard2
eeff17c550
Account for this on the renderer's side instead
...
This fixes the weapon's layer behaving differently when called from
A_Overlay (the flag would be set in this case breaking the offsets)
2016-06-03 00:50:12 +02:00
Leonard2
543414d31f
Added 2 new layer flags: PSPF_CVARFAST and PSPF_POWDOUBLE
...
These flags allowed to easily restore a lost part of the targeter layers
behavior
2016-06-03 00:50:11 +02:00
Leonard2
e1f139ddcd
The targeter layers now use a proper Caller
...
This will avoid having to check for certain stuff and also allow them to not be destroyed when the ReadyWeapon is null like before
2016-06-03 00:50:10 +02:00
Leonard2
8244d2c844
Make sure never to call GetPSprite when the ReadyWeapon is null
2016-06-03 00:37:55 +02:00
Leonard2
9ee5e57340
Call GetPSprite here to update the ReadyWeapon but avoid doing so if it
...
is null
TickPSprites will take care of destroying the weapon/flash layers if the
ReadyWeapon is null
2016-06-03 00:37:54 +02:00
Leonard2
f14a840777
The ReadyWeapon is now assumed to not be null
2016-06-03 00:37:54 +02:00
Leonard2
8668719bbc
Revert "- re-added P_SetPSrite."
...
This reverts commit e6d89b9f71
.
2016-06-02 20:02:03 +02:00
Leonard2
360ad7a844
Replaced every remaining instances of the old layer names
2016-05-28 01:19:42 +02:00
Leonard2
2f5ae3b51e
Changed the default layer indices and renamed them
...
Note that this doesn't compile yet
2016-05-28 01:19:41 +02:00
Leonard2
c82620129c
Added A_OverlayFlags
...
Allows psprites to follow the weapon and/or the player's bobbing
2016-05-28 01:19:40 +02:00
Leonard2
8f360f3bea
Small refactor
2016-05-27 23:37:35 +02:00
Leonard2
b220db4ebe
Fixed: a layer's movements weren't interpolated in some cases
...
The old position members would be incorrectly updated if a layer sets another layer's offsets and this layer ticks before the other
2016-05-27 23:37:34 +02:00
Leonard2
bca9829950
Fixed: a few members weren't properly initialized
...
This could go wrong if a layer had only one state of -1 tics
2016-05-27 22:58:27 +02:00
Leonard2
599fa7cfd1
Fixed: it was no longer possible to set the flash state in the very first
...
weapon's state
This was due to an oversight in my first commit
2016-05-27 22:31:18 +02:00
Christoph Oelckers
e6d89b9f71
- re-added P_SetPSprite.
...
For debugging purposes it's better to have this as a function.
2016-05-24 13:05:43 +02:00
Christoph Oelckers
d767d10322
- made PSprites submission GC aware.
2016-05-21 13:11:43 +02:00
Leonard2
8c205ebac3
Added A_OverlayOffset
...
Like A_WeaponOffset except it can access any psprites
2016-05-20 17:04:45 +02:00
Leonard2
1ecfb5897b
Added A_Overlay
2016-05-20 17:04:45 +02:00
Leonard2
1966b61b8f
Generalized the psprites implementation
2016-05-20 17:04:44 +02:00
MajorCooke
115dbd0b58
- Added A_WeaponOffset(x = 0, y = 32, flags).
...
- Places the weapon offset by the defined x and y. Both are floats. This stacks with weapon bobbing.
- WOF_KEEPX: Don't change the X offset.
- WOF_KEEPY: Don't change the Y offset.
- WOF_ADD: Add onto instead of replacing the coordinates.
2016-05-18 11:19:24 +02:00
Christoph Oelckers
7ebb961917
- added weapon bobbing interpolation.
...
This was so ridiculously simple that I really fail to understand why the previous attempt was so overcomplicated that it just failed for that.
2016-04-07 11:48:23 +02:00
Christoph Oelckers
7f23a91488
- fixed: smooth bobbing uses the full angular range to calculate its position.
2016-04-07 11:14:39 +02:00
Christoph Oelckers
21340c6eba
- floatified the rest of thingdef_codeptr.cpp and got rid of the remaining fixed_t and angle_t parameters in VM-accessed function. The VM should now be free of those types completely.
2016-03-25 12:57:22 +01:00
Christoph Oelckers
6557f3b8c8
- floatified quake and weapon code
2016-03-23 20:45:48 +01:00
Christoph Oelckers
2d2eeb49f0
- make weapon sprite offsets floats.
2016-03-21 01:16:34 +01:00
Christoph Oelckers
51b05d331d
- replaced AActor::vel and player_t::Vel with a floating point version.
...
- Converted P_MovePlayer and all associated variables to floating point because this wasn't working well with a mixture between float and fixed.
Like the angle commit this has just been patched up to compile, the bulk of work is yet to be done.
2016-03-20 00:54:18 +01:00
Christoph Oelckers
f332a098cd
- reworked calls to P_SpawnPlayerMissile, P_AimLineAttack and P_LineAttack to use floating point angles.
2016-03-18 00:43:05 +01:00
Christoph Oelckers
671291227e
- first stage of converting actor angles to float complete
...
Patched up everything so that it compiles without errors again. This only addresses code related to some compile error. A large portion of the angle code still uses angle_t and converts back and forth.
2016-03-16 12:41:26 +01:00
Randy Heit
55142078d8
Normalize line endings
2016-03-01 09:47:10 -06:00
Christoph Oelckers
b4a002a07f
- preparations for allowing hitscans through portals.
...
To allow processing the hit through an arbitrary portal without reference to the portal group table, P_AimLineAttack and P_LineAttack need to pass some more info than just the linetarget.
We need the relative positions of shooter and target within the visual reference of the other to calculate proper angles and we need to know if such a portal was crossed at all, because a few things, e.g. seeker missiles won't work with them.
- fixed setup of target acquisition for the Mage Staff.
The pre-acquired seeker target was never passed to the spawned projectiles.
2016-03-01 16:39:31 +01:00
Randy Heit
b2ccd0bd28
Use action function return value to make state jumps happen
...
- The A_Jump family of action functions now return the state to jump
to (NULL if no jump is to be taken) instead of jumping directly.
It is the caller's responsibility to handle the jump. This will
make it possible to use their results in if statements and
do something other than jump.
- DECORATE return statements can now return the result of a function
(but not any random expression--it must be a function call). To
make a jump happen from inside a multi-action block, you must
return the value of an A_Jump function. e.g.:
{ return A_Jump(128, "SomeState"); }
- The VMFunction class now contains its prototype instead of storing
it at a higher level in PFunction. This is so that
FState::CallAction can easily tell if a function returns a state.
- Removed the FxTailable class because with explicit return
statements, it's not useful anymore.
2016-02-18 20:39:40 -06:00
Randy Heit
b3b0886b64
Merge branch 'scripting'
...
Conflicts:
src/actor.h
src/g_doom/a_doomweaps.cpp
src/g_hexen/a_blastradius.cpp
src/p_enemy.cpp
src/p_enemy.h
src/thingdef/thingdef.h
src/thingdef/thingdef_codeptr.cpp
wadsrc/static/actors/constants.txt
2016-02-04 15:17:22 -06:00
rheit
56359b6f23
Merge pull request #342 from marrub--/fastweaponsfix
...
sv_fastweapons extension
2016-02-04 13:31:47 -06:00
Braden Obrzut
88a616da75
- Removed what appears to be a debug breakpoint.
...
- Cleared some GCC and Clang warnings. Mostly static analysis false positives, but one of them generated a pretty massive warning in a release build.
- Use -Wno-unused-result since I doubt we're going to address those unless they actually prove to be a problem (and they only appear in release builds).
2016-01-23 19:36:13 -05:00
Christoph Oelckers
cfcd2668cc
Merge commit '772a5724313f2ad0bd6828fcc28545a9ee5e6068' into scripting
...
Conflicts:
src/p_pspr.cpp
src/thingdef/thingdef_codeptr.cpp
2016-01-17 20:00:45 +01:00
MajorCooke
77013877d1
A_WeaponReady Fix
...
- Zoom and Reload keys triggered the other states instead of themselves (i.e. zoom keybind triggered reload states instead of zoom)
2016-01-02 11:27:02 -06:00
Randy Heit
1d759283c0
Cleanup the zoom/reload/userX handling for A_WeaponReady
...
- There was lots of code duplication. Consolidated it.
- Renamed WRF_UserX to WRF_AllowUserX for consistancy.
2015-12-31 16:46:19 -06:00
MajorCooke
3566d3157a
Use | instead of +.
2015-12-31 16:46:17 -06:00
MajorCooke
eed6680a67
Added support for weapon states User#.
...
- Added keybinds for the user state triggering.
- Added WRF_USER# flags which must be specified in order to use.
- # can be 1-4.
2015-12-31 16:46:16 -06:00
Christoph Oelckers
b613db4ae5
Revert "Merge pull request #359 from Leonard2/master"
...
This reverts commit 364ca11b43
, reversing
changes made to dae0e217d1
.
Conflicts:
src/r_data/r_interpolate.cpp
2015-09-18 17:41:16 +02:00
Leonard
86e9504d04
Added weapon interpolation.
2015-08-19 15:59:54 +02:00
Marrub
08e9d75538
removed sv_fastweapons 4 as it may cause issues
2015-06-27 15:00:31 -04:00
Marrub
4208993f22
use sv_fastweapons 3 and 4 instead
2015-06-27 08:26:48 -04:00
Marrub
873ef3fea8
that works better
2015-06-25 10:15:40 -04:00
Marrub
bbc3173629
yep
2015-06-25 09:47:37 -04:00
Christoph Oelckers
bfc10f4c5e
Merge branch 'master' into scripting
2015-05-05 11:24:43 +02:00
Christoph Oelckers
535102ae6e
- fixed: NULLing the flash state in P_BringUpWeapon should be done before setting the main weapon state so that it doesn't cancel any flash state effects that get initiated there.
2015-05-05 11:23:41 +02: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
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
ChillyDoom
db323643f8
- Renamed FBot to DBot and made it inherit from DThinker.
...
- Fixed: Bots added by players other than the net arbitrator did not have their skill set.
2014-10-14 19:57:11 +01:00
ChillyDoom
83d84eaae9
- Moved bot related variables from player_t into a new FBot class.
2014-10-13 18:40:25 +01:00
Christoph Oelckers
ee6e87d94b
- use a separate counter from AActor::special1 to count weapon use with some Hexen weapons. special1 is used for some other purposes as well, and when using a separate counter it can be reset to 0 when changing weapons, preventing counting errors.
2014-09-13 12:38:16 +02:00
Christoph Oelckers
261bc77846
- fixed: when bringing up a new weapon the current flash state needs to be removed.
...
Especially when dropping the current weapon it can still be active, this is most easily observed with Strife's crossbow which loops the flash state, but it also can happen with other weapons, right after shooting.
2014-05-20 10:29:27 +02:00
Randy Heit
459ad5abff
- Updated scripting branch to latest version in trunk.
...
SVN r4337 (scripting)
2013-06-07 03:31:30 +00:00
Randy Heit
445bc148b7
- Fixed: r4067 completely disabled weapon switching via A_ReFire.
...
SVN r4157 (trunk)
2013-02-22 02:42:42 +00:00
Randy Heit
e0c751114f
- Fixed: A TITLEMAP defined with SpawnWithWeaponRaised set caused a crash.
...
SVN r4156 (trunk)
2013-02-22 01:51:35 +00:00
Randy Heit
619e65ad6f
- Allow negative parameters to A_Light.
...
SVN r4144 (trunk)
2013-02-19 02:25:20 +00:00
Randy Heit
cdfd671dff
- P_MovePsprites() should now always call P_CheckWeaponSwitch(), because the latter function
...
now has its own WF_WEAPONSWITCHOK check in the correct place.
SVN r4068 (trunk)
2013-02-07 20:42:24 +00:00
Randy Heit
2cf141e914
- In A_ReFire, allow refiring when a weapon is pending, but weapon switching is not okay at this time.
...
SVN r4067 (trunk)
2013-02-07 20:38:41 +00:00
Randy Heit
87b8b6201c
- Added WRF_DISABLESWITCH flag for A_WeaponReady to indicate that any attempts to switch the weapon
...
should be discarded.
SVN r4062 (trunk)
2013-02-05 02:27:35 +00:00
Randy Heit
f0bc2fdc53
- Fixed CF_DOUBLEFIRINGSPEED is in player->cheats, not player->WeaponState.
...
SVN r4061 (trunk)
2013-02-05 01:45:23 +00:00
Randy Heit
61322cc33b
- Fixed: A_Lower needs to check player->cheats for WF_INSTANTWEAPSWITCH, not player->WeaponState.
...
SVN r4055 (trunk)
2013-01-27 04:08:00 +00:00
Randy Heit
a2f55c8067
- Well, poo. WRF_NoFire is two bits, not just one.
...
SVN r4054 (trunk)
2013-01-27 03:02:00 +00:00
Randy Heit
ed8a33aeaf
- Use P_DropWeapon() everywhere it makes sense.
...
SVN r4045 (trunk)
2013-01-25 03:32:49 +00:00
Randy Heit
5dca935305
- If this was a git repository, I wouldn't have needed to just make three broken commits in a row.
...
SVN r4044 (trunk)
2013-01-25 03:32:20 +00:00
Randy Heit
1c999d9d55
- Be more concise for WRF_NoFire in A_WeaponReady.
...
SVN r4043 (trunk)
2013-01-25 03:25:32 +00:00
Randy Heit
9d43ba39fc
- Using the proper container for weapon state flags would be good.
...
SVN r4042 (trunk)
2013-01-25 03:18:45 +00:00
Randy Heit
281ac3a49a
- Separate the player weapon state flags from the other player "cheat" flags.
...
SVN r4041 (trunk)
2013-01-25 03:09:17 +00:00
Randy Heit
ea81d3638d
- Revert WRF_NOSWITCH changes from r4024.
...
SVN r4039 (trunk)
2013-01-25 02:05:48 +00:00
Braden Obrzut
76b5757dab
- Fixed: 0 duration A_Lower loops could cause an infinite loop since A_Lower checked if the player was dead in two different ways and returned before the second one.
...
SVN r4029 (trunk)
2013-01-18 18:19:05 +00:00
Randy Heit
3111b6e7b0
- Do not clear the CF_WEAPONSWITCHOK flag each tic, so that the last setting from A_WeaponReady
...
will carry over until the next A_WeaponReady. Changed P_CheckWeaponSwitch() to clear any
pending weapon requests while weapon switching is disabled.
SVN r4024 (trunk)
2013-01-11 02:53:11 +00:00
Randy Heit
787c338871
- Added MAPINFO flag "SpawnWithWeaponRaised".
...
SVN r4013 (trunk)
2013-01-03 02:08:08 +00:00
Randy Heit
562cf04db2
- Update scripting branch to trunk.
...
SVN r3758 (scripting)
2012-07-14 03:04:41 +00:00