Commit graph

98 commits

Author SHA1 Message Date
Major Cooke
7477dfa922 Converted scale and pivot to vectors, and rotation to an angle. 2020-10-25 15:42:12 +01:00
Major Cooke
a6bbddf167 Finished implementing PSprite interpolation for vertices.
- Setting WOF_INTERPOLATE on any of the functions with flags (except A_OverlayFlags) will enable one tic for interpolating.
- Setting PSPF_INTERPOLATE with A_OverlayFlags will permanently enable it for that layer, but requires manual calling.
2020-10-25 15:42:11 +01:00
Major Cooke
7c4c0163a3 Added A_OverlayPivotAlign and A_OverlayVertexOffset.
A_OverlayPivotAlign(int layer, int halign, int valign)
- Aligns the pivot point origin to a corner of the PSprite before applying offsets.
- - halign: Horizontal. Applicable constants are PSPA_<LEFT/CENTER/RIGHT>.
- - valign: Vertical. Applicable constants are PSPA_<TOP/CENTER/BOTTOM>.
- - Default is top left.

A_OverlayVertexOffset(int layer, int index, double x, double y, int flags)
- Allows offsetting the corners of the psprite, granting modders the ability to skew weapon sprites as they see fit.
- - index: The index of the vertice. Valid ranges are between [0,3].
- - x/y: Offsets of vertices.
- - flags: Takes WOF_ flags.

Other changes:
- Removed pivot point interpolation since it's pointless.
- Removed PSPF_PIVOTSCREEN due to complications with it having relativity. This will be revisited either later or in another submission.
- Added ResetPSprite() to be called with BringUpWeapon(), A_Lower(), and morph weapon raising to reset all the new properties to 0.

Nearly ready now. Just some final testing needed.
2020-10-25 15:42:11 +01:00
Major Cooke
4a3a5c3877 Replaced PSPF_PIVOTOFFSETREL with WOF_RELATIVE.
The idea behind this is to outright remove the relative position adding from the engine side and let it happen with A_OverlayOffset instead. Still more work to do.
2020-10-25 15:42:09 +01:00
Major Cooke
8f74cebd44 Added code for rotating the PSprite, courtesy of IvanDobrovski.
- However, the XY offsets are relative as a result.This must be made toggleable.
2020-10-25 15:42:09 +01:00
Major Cooke
e5ca3caa6c Setting everything up. 2020-10-25 15:42:08 +01:00
Major Cooke
60f0d35477 Added ThruBits. 2020-10-17 09:51:24 +02:00
Nash Muhandes
cfbf115c4b
Change A_OverlayTranslation to accept a named translation instead. (#1215)
For more advanced use cases, the Translation member of PSprite can be written to directly.
2020-10-12 11:43:37 -04:00
Nash Muhandes
7bea14e6b2
- Add A_OverlayTranslation to set PSprite translations (#1202)
- Added PSPF_PLAYERTRANSLATED support to the software renderer
2020-10-11 17:14:06 -04:00
Player701
ffb4c52c96 - Added NORANDOMPUFFZ flag to A_Saw 2020-10-04 08:07:13 +02:00
nashmuhandes
56a387ac82 - Fix weapon bobbing interpolation
There was a visual issue where the weapon bobbing would only start interpolating after the player's movement velocity exceeds a certain value.

(Thanks to @Doom2fan for the solution)
2020-10-04 08:06:34 +02:00
Christoph Oelckers
c1e04b29d1 - AActor size reduction
* a few shorter fields were moved into alignment gaps
* the visible angles are now stored as floats. Since these are only used for rendering the loss of precision is negligible, but this shortens AActor by 16 bytes alone.
2020-10-03 08:23:36 +02:00
Nikolay Ambartsumov
a72fdd7e3e Add MaxSlopeSteepness actor property 2020-10-03 07:53:55 +02:00
makise-homura
5720a54da4 Add species parameter to A_RadiusThrust
This is the last parameter for A_RadiusThrust() DECORATE function.
If it is omitted or none, then A_RadiusThrust will behave as usual.

If it is set for some species name, it witt thrust only that species.
Of course, these species should be +VULNERABLE to be thrustable.
2020-09-27 13:58:22 +02:00
Marisa Kirisame
58f5c030fe
Add Travelled virtual for PlayerPawn, akin to the same function for Inventory. (#1169) 2020-09-02 06:12:58 -04:00
Marisa Kirisame
e0aa8db616 Add Pre/PostTeleport virtuals, for special handling of actor teleportation. 2020-09-02 12:02:09 +02:00
MajorCooke
eaba63e13b
View Angles (Part 1 - Redux) (#1002)
* Added ViewAngle/Pitch/Roll properties to actors.

- These are offsets for camera angles that allow turning the camera without affecting aim or movement direction.
- Added A_SetView<Angle/Pitch/Roll>, which will set the view direction.
- Added ABSVIEWANGLES flag, used to make the view absolute instead of an offset.

* Converted functions to be direct-native.
2020-08-27 13:03:06 -04:00
MajorCooke
85759e3bd0
Added A_SpriteOffset. (#895)
- Coordinates work akin to A_OverlayOffset: +X shifts to the right, +Y shifts down.
2020-08-27 12:43:09 -04:00
alexey.lysiuk
c20a7f53c9 - do not report missing camera target if its TID is zero
This handles the case with setting TID of thing to follow after camera spawning, e.g. via ACS

https://forum.zdoom.org/viewtopic.php?t=69690
2020-08-27 11:57:25 +03:00
Blue Shadow
7179eaacda - fixed: the minotaur spawned its floor flames regardless of the setting of compat_minotaur
A_MinotaurAtk3 was checking against the CVAR instead of the compatibility flag constant.
2020-07-28 12:25:35 +02:00
Rachael Alexanderson
383f3e5fd6 - change recent /0 fix to conform to UDMF specs 2020-06-25 09:30:52 -04:00
Christoph Oelckers
486e07300c - fixed: Inventory items that are terminated by GoAwayAndDie must be removed from the blockmap and sector lists.
Since they were just scheduled for delayed deletion any map related action they can trigger is unwanted.
2020-06-16 01:11:08 +02:00
Christoph Oelckers
d739587f6b - let blastradius work without an effect actor. 2020-06-12 23:14:58 +02:00
Kevin Caccamo
79426c028b Fix Bag of Holding not increasing Firemace ammo capacity 2020-06-08 15:07:31 +03:00
Alexander Kromm
928c738e19 make various getter and pure-math methods clearscope, and where applicable, const
Original PR: https://github.com/coelckers/gzdoom/pull/532

Status of the original PR

1. Actor
- [already in] deltaangle
- [already in] absangle
- [already in] AngleToVector
- [already in] RotateVector
- [already in] Normalize180
- [already in] BobSin
- [already in] GetDefaultSpeed
- [this PR] GetBobOffset
- [this PR] InStateSequence
- [already in] FindState
- [already in] GetDropItems
- [this PR] DistanceBySpeed
- [this PR] AccuracyFactor
- [not in original PR, for PlayerInfo.isTotallyFrozen] isFrozen

2. PlayerInfo
- [this PR] GetUserName
- [this PR] GetColor
- [this PR] GetDisplayColor
- [this PR] GetColorSet
- [this PR] GetPlayerClassNum
- [this PR] GetSkin
- [this PR] GetNeverSwitch
- [this PR] GetGender
- [this PR] GetTeam
- [this PR] GetAutoaim
- [this PR] GetNoAutostartMap
- [this PR] GetClassicFlight
- [this PR] IsTotallyFrozen

3. C++ methods, to match ZScript:

- [scriptified] AActor::AccuracyFactor() to Actor.AccuracyFactor
- [this PR] AActor::DistanceBySpeed(AActor *, double) — it is a combination of getter and pure math
- [this PR] AActor::Distance2D(AActor *, bool) — called by DistanceBySpeed
- [this PR] AActor::Distance2D(AActor *, double, double, bool) — called by DistanceBySpeed
- [not in original PR, for PlayerInfo.isTotallyFrozen] AActor::isFrozen
2020-06-07 09:39:30 +02:00
Christoph Oelckers
1d1331289a - there is no mace ammo in the bag of holding. 2020-06-06 16:19:11 +02:00
Hugo Locurcio
80c5b4d37b Add a cvar to control weapon bobbing while firing
This simulates a feature found in Crispy Doom, which keeps the
weapon bobbing while firing. This leads to a "smoother" appearance
which may look a bit prettier to some people.

The default value of 0 preserves the old behavior.
2020-05-31 23:12:11 +02:00
Christoph Oelckers
6444a7535c - fixed use of Powerup.Strength in PowerInvisibility.
An integer division made the feature useless.
2020-05-25 16:43:01 +02:00
alexey.lysiuk
1fd2ea46d2 - fixed aiming camera that didn't follow target
https://forum.zdoom.org/viewtopic.php?t=68600
2020-05-18 14:00:48 +03:00
alexey.lysiuk
0631670a66 - restored warning about missing aiming camera target 2020-05-18 13:58:22 +03:00
Major Cooke
079e7ee4e9 Enforce the reflective flag as well. 2020-05-10 10:48:32 +02:00
Major Cooke
b70bc2b152 Fixed an issue where multiple invulnerability powerups could cancel each other out from just one expiring. 2020-05-10 10:48:32 +02:00
Mekboss
4807f4240b Fix MSVS compile bug and add offset parameter for SprayDecal 2020-05-07 09:35:48 +02:00
Mekboss
0e9ca3c850 Replace function variables to DVector3 2020-05-07 09:35:48 +02:00
Mekboss
ba43244764 Add optional direction parameters for SprayDecal and its A_SprayDecal zscript counterpart 2020-05-07 09:35:48 +02:00
Cacodemon345
4b4ff8dd0e
Fix bouncing missiles not dealing damage when hitting top/bottom (#1068)
* Fix bouncing missiles not dealing damage when hitting top/bottom
2020-04-30 08:55:09 +02:00
Christoph Oelckers
4fb6b7c7d4 - block off the Substitute function by making it private to the 3 classes that really need it. 2020-04-19 21:08:24 +02:00
Major Cooke
a56177f178 Begin TICRATE conversion.
- Moved TICRATE from Thinker to Object in ZScript so status bars have access to it.
2020-04-12 22:43:33 +02:00
nashmuhandes
cb6514cc05 Added Actor.CopyBloodColor to copy another existing actor's blood color. 2020-03-23 21:04:59 +01:00
nashmuhandes
7a141f3aa3 Add help messages for most of the deprecated stuff in ZScript. 2020-03-14 12:56:03 +02:00
alexey.lysiuk
f46e80e2b4 - fixed FLineTraceData scripting definition
https://forum.zdoom.org/viewtopic.php?t=67795
2020-03-14 12:51:06 +02:00
Christoph Oelckers
4201c4fbb5 - fixed A_FireCGun. 2020-03-11 19:47:23 +01:00
Christoph Oelckers
a638cfbd6e - fixed: player_t::GetPSprite cannot guarantee success
As a consequence it must return null in the failure case instead of asserting and all calls to this function must check for the failure case.
2020-03-11 00:56:29 +01:00
Major Cooke
70f9b649aa Changed Pre/Post(Un)Morph to take the other actor and a boolean indicating direction.
- 'current' is true for the actor that is the new body, false for the old body.
2020-03-08 15:29:09 +01:00
Major Cooke
33b343ef31 Added Pre(Un)Morph and Post(Un)Morph functions.
- cls: The other class's cast type which the actor is transitioning from/to.
2020-03-08 15:29:09 +01:00
Rachael Alexanderson
3d3a29979b - remove addition from deprecated A_PlaySound 2020-03-02 22:15:37 +01:00
Rachael Alexanderson
1b80b7bf2f - ported over Nash's startTime for A_StartSound 2020-03-02 22:15:37 +01:00
Major Cooke
4cf7c6351d Added A_StopSounds(int chanmin, int chanmax).
- If both channels are 0, completely silences the actor.
- Adapted A_StopAllSounds to call A_StopSounds(0,0);
2020-03-01 19:42:21 +01:00
Major Cooke
55284d46bf Added A_StopAllSounds. 2020-02-29 19:19:51 +01:00
Chronos Ouroboros
bb42d58427 Revert "Added support for standard DamageFactor property on Armor, PowerProtection and PowerDamage items."
This reverts commit e781cb4043.
2020-02-10 15:38:12 -03:00