Commit graph

82 commits

Author SHA1 Message Date
Boondorl
c622c63127 Added PSpriteTick virtual 2024-04-21 04:45:32 -04:00
Boondorl
b0137e50ee Exported FTeam getters 2024-04-21 04:44:54 -04:00
Boondorl
bcd6c6170e
Reapply "Improvements to death and cheat handling"
This reverts commit c7bba2a126.
2024-04-20 01:15:46 -04:00
Rachael Alexanderson
c7bba2a126
Revert "Improvements to death and cheat handling"
This reverts commit 3033fafaa7.

Revert "Improved ZScript interface for morphing"

This reverts commit 6c64a4403c.

Revert "Further morphing clean up"

This reverts commit 12dc5c1506.

Revert "Fixed inconsistencies between player and monster morphing"

This reverts commit 30730647fe.

Revert "Reworked Morphing"

This reverts commit 2c09a443b4.

- fix compile
2024-04-17 17:55:24 -04:00
jekyllgrim
0055042112 Add ApplyAirControl 2024-04-16 20:37:14 -03:00
Boondorl
29a2ca0b13 Added co-op option to remember last used weapon when respawning 2024-03-28 15:48:56 -04:00
Boondorl
3033fafaa7 Improvements to death and cheat handling
Extra safety to ensure dummy Actor deaths properly emulate a real death and aren't duplicate called. Fixed a crash when using the kill command while set to unmorph on death. Super morphing is now possible while using the morphme cheat if passing the morph class directly. Added a flag to ignore player invulnerability completely when morphing.
2024-03-01 08:35:31 -05:00
Boondorl
6c64a4403c Improved ZScript interface for morphing
Added getter and setter functions for handling whether or not the player fields should be gotten/set. Added MRF_KEEPARMOR flag to prevent stripping armor on morph. Optimized unmorphed Actor by setting it to NoInteraction and removing it from the blockmap and sector lists.
2024-03-01 08:35:31 -05:00
Boondorl
12dc5c1506 Further morphing clean up
Players will now use their Alternative field to check if they're morphed instead of their MorphTics. This makes the current state of morphing more reliable, otherwise setting this to 0 manually without unmorphing could have very odd results. Both monsters and players consider 0 morph time to mean infinite now (previously this only applied to monsters). Player unmorphs no longer die in the case of a failed unmorph on death. Removed inventory swapping on player pointer substitution as it's too messy to do here.
2024-03-01 08:35:31 -05:00
Boondorl
30730647fe Fixed inconsistencies between player and monster morphing
The Tome of Power and Chaos Device will now work on non-players. The STAYMORPHED flag will now work on players.
2024-03-01 08:35:31 -05:00
Boondorl
2c09a443b4 Reworked Morphing
Removed StaticPointerSubstitution in favor of a much safer function that only changes select pointers. As a result the ability to properly modify morphing has been opened back up to ZScript. Many missing virtual callbacks were amended and MorphedDeath has been reworked to only be called back on an actual morphed death. MorphedMonster is no longer required to morph an Actor. CheckUnmorph virtual added that gets called back on morphed Actors. Fixed numerous bugs related to morph behavior.
2024-03-01 08:35:31 -05:00
Dileep V. Reddy
25f1407228 Cleaning up implementation of isometric camera with optional orthographic projection.
All CVars, mapinfo variables, and playerinfo/playerpawn variables are gone.
A Camera actor named 'SpectatorCamera' is defined in warsrc/static/zscript/actors/shared/camera.zs

The following new flag bits were defined in the 'DViewPosition' struct for use with actor->ViewPos in src/playsim/actor.h:
	VPSF_ALLOWOUTOFBOUNDS =		1 << 3,			// Allow viewpoint to go out of bounds (hardware renderer only).
	VPSF_ORTHOGRAPHIC =		1 << 4,			// Use orthographic projection.
	VPSF_ISOMETRICSPRITES =		1 << 5,			// Displace sprites towards camera and don't billboard (drawn from isometric perspective).

Basically, spawn a SpectatorCamera actor with the appropriate flags and set it to player.camera.
See example template: https://www.mediafire.com/file/fv8rytayjt9l6g1/isometric_actor_wads.zip/file

Has been tested with multiplayer death and disconnection (and respawns). Not tested with portals.
Still only works with hardware renderer (mostly). But should be compatible with older mods and libraries.
2024-02-01 08:43:34 -05:00
Dileep V. Reddy
d3405837ce Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars. 2024-01-21 12:13:42 -05:00
Dileep V. Reddy
08b03e6b19 Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom. 2024-01-21 12:13:42 -05:00
Rachael Alexanderson
af08413e10
- reverting pull request #2361 - apparently pull request #2364 changed some behaviour and these two do not play nice together. One or the other unfortunately has to be rolled back to allow GZDoom to build properly again.
Revert "Restored r_orthographic behavior."

This reverts commit 26908f5bc5.

Revert "Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars."

This reverts commit dc897eacc0.

Revert "Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom."

This reverts commit d2c2c93cf1.
2024-01-21 08:18:16 -05:00
Dileep V. Reddy
dc897eacc0 Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars. 2024-01-21 03:34:00 -05:00
Dileep V. Reddy
d2c2c93cf1 Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom. 2024-01-21 03:34:00 -05:00
nashmuhandes
a04f909d06 Add sv_coopsharekeys - in coop, picking up a key will distribute it to all online players 2023-11-11 20:50:31 -05:00
Christoph Oelckers
f0c9b1765e gave translations a dedicated scripted type.
This is needed for implementing reliable serialization of custom translations. As long as they are merely ints they cannot be restored on loading a savegame because the serialization code does not know that these variables are special.
2023-11-09 23:04:10 +01:00
jekyllgrim
d354d7332f Allow viewbob speed adjustment through properties
This adds ViewBobSpeed to PlayerPawn that is passed in CalcHeight() instead of the value of 20 and can be adjusted with the Player.ViewBobSpeed variable. This will let modders dynamically adjust how to only how far the camera bobs up and down, but also how *quickly* it does that, which allows to easily convey a feeling of a heavy, slow-moving character whose view might bob a lot but would do it slowly.
2023-09-15 22:40:14 +02:00
Major Cooke
44623daafe Fixed wrong pointer being used in PlayerFinishLevel, causing wrong inventory items to be destroyed. 2023-08-28 19:33:46 +02:00
Ricardo Luís Vaz Silva
1589afb46e Add Voodoo Zombie Compatflag 2023-05-14 08:14:47 +02:00
Boondorl
0d23816179 Added FlyBob Multiplier for Player 2023-01-02 08:14:24 +01:00
Boondorl
73159dac3e Added WaterClimbSpeed Property to Players 2023-01-02 08:13:13 +01:00
Boondorl
0d4d5587b5 Added FOV Interpolation 2022-12-18 08:23:19 +01:00
Rachael Alexanderson
b08295e7e1 - fix spacing 2022-12-16 20:40:05 -05:00
CandiceJoy
0fdb740ac7
Added toggle control for weapon bob while flying 2022-12-16 17:12:03 -06:00
Ricardo Luís Vaz Silva
de65d1b96f Misc Fixes for BobWeapon3D
- Fix inverted Y axis for offset/old BobWeapon
- finish adding PSPF_MIRROR
- fix missing pivot
2022-12-12 15:23:12 +01:00
Ricardo Luís Vaz Silva
46d36cf5c7 add BobWeapon3D 2022-12-09 21:49:38 +01:00
Christoph Oelckers
ef8dd4d01e - fixed and consolidated artifact check in cheat code. 2022-07-15 07:56:22 +02:00
Christoph Oelckers
b719ab53f8 - weapons are not artifacts. 2022-07-14 00:12:20 +02:00
Christoph Oelckers
aae1d1439a - reverted AActor::scale to a DVector2.
This was causing comparison precision issues with existing script code.
2022-07-11 12:20:34 +02:00
Christoph Oelckers
2397b9c117 - missed a ZScript declaration. 2022-06-16 08:23:09 +02:00
Christoph Oelckers
7ba2585490 - exclude keys from ‚artifact‘ cheats 2022-05-24 00:01:51 +02:00
Christoph Oelckers
05260d8e8a - don't let "give weapons" hand out abstract weapons. 2022-04-16 22:19:38 +02:00
Rachael Alexanderson
36245ae598 - allow artifacts that do not automatically activate to be given by the 'give artifacts' cheat 2022-04-11 15:59:20 -04:00
Xaser Acheron
bfb79e5b32 Merge branch 'master' into feature_weaponscale 2022-01-23 20:01:59 -06:00
Christoph Oelckers
be103bd9dc - fixed: the powerup item for respawn invulnerability was never given to the player. 2022-01-07 00:39:22 +01:00
Xaser Acheron
0b93aef776 add WeaponScaleX/WeaponScaleY properties for applying global scaling to a weapon's PSprites 2021-11-14 23:21:07 -06:00
Marisa Kirisame
d5ad8b28ec PreTravelled virtual for player and inventory. 2021-10-15 17:37:19 +02:00
Christoph Oelckers
3c961a2aa2 - avoid multiple Dehacked mappings to the same function.
Due to some MBF21 related changes these would cause interference.
Instead the two affected functions, A_NailBomb and A_RadiusDamage are now separate script functions that just call A_Explode with the correct parameters.
2021-10-03 18:16:37 +02:00
Blue Shadow
3b31dda6b8 - resolved a VM abort upon morphing while the tome of power is active 2021-09-24 13:34:35 +02:00
Christoph Oelckers
73f73cdf7c - added a null check to CheckWeaponChange. 2021-08-12 20:28:04 +02:00
Christoph Oelckers
c700682a36 - MBF21: ported the code pointers to ZScript.
So far it's just the functions and some initial changes to Dehacked's parser. None of this is usable yet.
2021-07-01 00:53:15 +02:00
Christoph Oelckers
1a0398ae59 - MBF21: new weapon flags.
Except for NOAUTOSWITCHTO all remappings to existing features.
2021-06-30 17:19:38 +02:00
Christoph Oelckers
28dab3889b - moved the handling of ending PowerWeaponLevel2 into PlayerPawn.Tick and restored the immediate weapon switch.
This got changed because switching weapons in EndPowerup is not safe - this can be called from weapon states where the player can end up with a different weapon being active than the one running the state.
The actual weapon switch has to be delayed until the state processing has ended.
2021-05-19 17:59:44 +02:00
Christoph Oelckers
97b8c0ccfb Revert "- fixed some uses of postincre,ment/decrements on narrow types."
This reverts commit 668f8f2cf6.

Revert "- added a proper error message when '--' or '++' gets used on 8 or 16 bit values."

This reverts commit a94f5dd1b3.

None of this was necessary - the triggered assert was bogus and had to be removed.
2021-05-17 18:13:30 +02:00
Christoph Oelckers
668f8f2cf6 - fixed some uses of postincre,ment/decrements on narrow types.
THe VM has no opcode for this, all these places produced code with undefined behavior.
2021-05-17 12:42:22 +02:00
Blue Shadow
acd553aa6f - account for KEEPDEPLETED flag when destroying items with InterHubAmount of 0 upon leaving a level 2021-03-19 20:10:25 +01:00
nashmuhandes
c7edb9d22f Add a null check in PlayerPawn::CheckFOV 2021-02-28 20:01:59 +01:00