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