Commit graph

4795 commits

Author SHA1 Message Date
jekyllgrim
99c058d168
Added WorldHitscanFired and WorldHitscanPreFired (#2432)
* Added WorldHitscan events

* DVector3 → const DVector3&
2024-11-20 10:26:00 -05:00
Boondorl
ab9b6320cb Allow easier piece weapon replacing
Checks for replacements on weapons instead of using the given weapon class as is (also verifies said replacement is a weapon).
2024-11-15 23:58:39 -03:00
Boondorl
268dad18f7 Discs no longer blast players with collision disabled 2024-11-15 23:58:28 -03:00
Boondorl
597b06ae52 Added CRandom functions
Unique RNG namespace for client-side effects and HUDs. Identifiers for these cannot clash with identifiers that affect the playsim making them completely safe to use in HUD elements. They also won't be saved.
2024-11-15 23:56:23 -03:00
Rachael Alexanderson
ccd38afbcb
- revert adding in the sprite/frame support for visual thinkers 2024-11-13 16:16:36 -05:00
Rachael Alexanderson
ad40299da4 - add sprite/frame support for VisualThinkers 2024-11-13 14:39:40 -05:00
Ricardo Luís Vaz Silva
d94a596bc2 move crucial functions out of Tick, so that light custom tick overrides can be done without calling super.Tick for non-moving visualthinkers 2024-11-13 15:47:22 -03:00
Ricardo Luís Vaz Silva
3622e2bb2a Compress visualthinker bools into a flags field 2024-11-13 15:47:22 -03:00
nashmuhandes
ea7ea182ed Add missing CHANF_ constants and fix the styling of the comments for better readability 2024-11-11 23:27:22 -03:00
Blue Shadow
a145eac056 added constants for the most recently added level flags 2024-11-11 06:59:43 -05:00
Rachael Alexanderson
2bc561d135
- add automap default markers for all games (can be overridden) 2024-11-11 06:51:30 -05:00
Boondorl
04cdbd1898 Fixed CreateCopy being broken on HexenArmor 2024-11-09 12:32:51 -03:00
Major Cooke
3d4dccd650 And the variable. 2024-11-04 16:23:34 -03:00
Major Cooke
ceb2de36d3 Change function from private to protected by request. 2024-11-04 16:23:34 -03:00
Major Cooke
1620d405c6 Added OrthographicCamera actor. Arguments are:
- 0: Offset. This pushes the camera further away, going behind the camera. Default is 1.0 (converted to negative - the value cannot go lower than that).
2024-11-04 16:23:34 -03:00
Kaelan
275635adc5 add set/get plane reflectivity 2024-10-26 00:21:16 -03:00
Ricardo Luís Vaz Silva
d0e6bce4e6 add CVar to control footstep volume 2024-10-21 14:53:53 -03:00
Ricardo Luís Vaz Silva
d07d08ce9f Add velocity/distance based footsteps 2024-10-21 14:53:53 -03:00
Ricardo Luís Vaz Silva
3a88281c10 time footsteps with duration of movement, not with actor age 2024-10-21 14:53:53 -03:00
inkoalawetrust
34dc204517
Re-added sector damage for non-players. (#2773)
* Re-add non-player sector damage.

Reimplements SECMF_HURTMONSTERS and SECMF_HARMINAIR.

* Fixed 3D floor handling for sector damage.

Fixes sector damage to either monsters or players not working on (non-)solid 3D floors.
2024-10-20 07:51:36 -04:00
nashmuhandes
12c6d1361a Move no-mipmapping from actor renderflag/particle flag, to a material property in GLDEFS, where it makes more sense. The feature was introduced in the short-lived engine version of 4.13 which was deemed too broken and needed to be replaced with a newer version anyway, so might as well perform an API-breaking change at this point in time. Note that this currently only works for sprites (its primary targeted use case) -- walls, flats and models can be patched in later. 2024-10-19 18:35:54 -04:00
Rachael Alexanderson
4ba53e34e4
Revert "Added SECMF_HURTMONSTERS, SECMF_HARMINAIR and NOSECTORDAMAGE."
This reverts commit 391f496512.
2024-10-19 10:25:03 -04:00
Rachael Alexanderson
c2fd99a24d
Revert "- Actor.GetSpecies() is a non-destructive function"
This reverts commit ee5442c06b.
2024-10-17 21:28:52 -04:00
Kaelan
9d725276ac Add manual config saving to CVar struct
Allows for calling to save custom cvars manually to ensure they're reliably stored. As is, the only way to ensure that cvars are saved is to safely/manually close out GZDoom, meaning if a crash occurs, that data is lost.

THis is very detrimental to mods/standalone projects that rely on CVars for storing custom data, and or data that transcends save games.
2024-10-16 00:39:32 -03:00
Rachael Alexanderson
ee5442c06b
- Actor.GetSpecies() is a non-destructive function 2024-10-14 17:31:18 -04:00
Major Cooke
fa467073eb Added (SPF_)STRETCHPIXELS.
This counteracts the squaring implied by rolling sprites.
2024-10-14 16:14:25 -04:00
inkoalawetrust
9df656a9cf
Added LookForEnemiesEx() for returning all enemies in an area. (#2753)
* Compartmentalized the LookForEnemiesInBlock checks

* Added LookForEnemiesEx().

This function allows for ZScript code to get an array with all enemies of the caller found in range. Using similar sight logic as functions like LookForEnemies().

* Added noPlayers parameter to LookForEnemiesEx().

This parameter allows the function to also find players around it.

* Added VM abort to LookForEnemiesEx().

Prevent crashes by passing a null array by reference.
2024-10-14 03:47:53 -04:00
inkoalawetrust
12d1afcc4e
Fixed WalkStepTics & RunStepTics in terrain parser
Fixed the discrepancy where WalkStepTics and RunStepTics were called, well, that. In the terrain struct in both C++ and ZScript. While the terrain parser looked for WALKINGSTEPTIME and RUNNINGSTEPTIME instead.
Also made the parse not multiply these time values by the ticrate to treat them as seconds instead of tics.

Added flags for P_HitWater().

Added optional overridable footsteps for players.

Added an overridable MakeFootsteps() virtual in PlayerPawn. Which allows for adding totally custom footstep logic for players. By default, it comes with a basic footstep system that uses the footstep properties of whatever terrain the pawn is standing on. bMakeFootsteps must be enabled on the pawn for the virtual to run.

Added generic StepSound TERRAIN property.

Added a generic step sound TERRAIN property, for defining foot-agnostic step sounds. Used by the built-in footstep system over the individual foot ones.

Simplified MakeFootsteps().

Also removed a leftover debug message.
2024-10-14 03:47:02 -04:00
Rachael Alexanderson
de64ffbf11
- define dither shader in a way that is compatible with Apple's GLSL-to-metal compiler 2024-10-12 04:22:45 -04:00
Rachael Alexanderson
4cb60265be
- language update 2024-10-12 01:04:18 -04:00
inkoalawetrust
23d131f6c2 Made GetMidTexturePosition() const. 2024-10-05 23:10:45 -03:00
Christoph Oelckers
2e795bebb4 added a menu option for switching module players. 2024-10-05 12:53:21 +02:00
Blue Shadow
6b5be653dc - set a default value of 1.0 for MissileChanceMult property 2024-10-05 11:43:44 +02:00
Christoph Oelckers
5b1f0fdc86 bFriendly should not be set from scripts because this omits needed bookkeeping. 2024-10-04 18:32:06 +02:00
Christoph Oelckers
b667b930a3 fixed logic bug with HitFriend and Refire functions.
The old code was essentially ineffective and useless, this is how MBF had it and how it was supposed to be.
2024-10-03 22:30:09 +02:00
Christoph Oelckers
3798fd815f the MISSILE(EVEN)MORE flags still need to be accessible by ZScript for backwards compatibility.
Since these do not exist anymore an internal interface to Handle/CheckDeprecatedFlags was added.
2024-10-03 12:32:09 +02:00
Christoph Oelckers
8354c4a5c3 Replaced MISSILE(EVEN)MORE with a real property and added related Dehacked options from Crispy Doom.
This also adds proper deprecation messages to the deprecated flags which were missing due to a bad definition macro.
2024-10-03 12:24:16 +02:00
Professor Hastig
2decf10863 add missing 'author' and 'label' UMAPINFO fields. 2024-10-01 12:23:27 -04:00
jekyllgrim
1392db2f5b Made DamageSource and bIsPuff readonly 2024-10-01 11:53:11 -03:00
jekyllgrim
83165dccbf Add damagesource 2024-10-01 11:53:11 -03:00
Cacodemon345
e88d912892 ID24 interlevel lumps implementation 2024-10-01 16:48:07 +02:00
Rachael Alexanderson
18c068fd1f
Revert "- fix some issues with ClearInventory() that sometimes caused script errors"
This reverts commit 41c69736b1.

This introduced more bugs and so the fix was not valid.
2024-09-30 03:28:15 -04:00
Rachael Alexanderson
41c69736b1
- fix some issues with ClearInventory() that sometimes caused script errors 2024-09-30 01:52:51 -04:00
Jon Heard
4c27b55eb9 SetSkin and GetSkinCount added to PlayerInfo class 2024-09-29 18:14:52 -04:00
inkoalawetrust
391f496512 Added SECMF_HURTMONSTERS, SECMF_HARMINAIR and NOSECTORDAMAGE.
- Added SECMF_HURTMONSTERS, which allows monsters in the flagged sector to be hurt with the same behavior as players (i.e damage leaking).
- Added SECMF_HARMINAIR, which allows players (And monsters with SECMF_HURTMONSTERS) to be hurt when they're inside the sector in general, instead of only when they're walking on it. Replicates the behavior of the DAMAGE_IN_AIR flag that SectorDamage() uses.
- Added NOSECTORDAMAGE, which makes actors with the flag immune to any harmful floors.
2024-09-29 18:12:30 -04:00
Rachael Alexanderson
bbeaea1ea7
- implement anamorphesis proof-of-concept (#2431)
Co-authored-by: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
2024-09-29 18:09:07 -04:00
RaveYard
a4c98d8dd9 Add RADF_CIRCULARTHRUST and matching XF_/RTF_ flags 2024-09-29 17:56:41 -04:00
Boondorl
1e96ed31aa Exported DPrintf
Allows for custom debug message handling using the built-in
2024-09-29 17:56:16 -04:00
jekyllgrim
994078feae Added FloatBobFactor
This adds a new actor property: `FloatBobFactor` (default 1.0). This will be a multiplier for level.time in `AActor::GetBobOffset`, which finally allows to control not only the range of float bobbing (which is FloatBobStrength) but also the frequency of bobbing.
2024-09-29 16:08:02 -04:00
Boondorl
8c10ac6f38 Added GetDecalName() 2024-09-24 23:38:43 -04:00
Rachael Alexanderson
3524d06813 - export FFont::GetChar() to ZScript 2024-09-20 20:00:01 +02:00
Chris Cowan
c8fbe43dc0 Fix load/save menus not starting scrolled to the selected entry
Fixes https://github.com/ZDoom/gzdoom/issues/2645
2024-09-16 17:25:19 -04:00
Chris Cowan
faead1c733 Fix bug where down arrow does nothing after clicking the main menu
This issue was previously fixed in 0c2ed71cdd, but that change added a bug that would trigger an infinite loop on scrolling in a list without any selectable items. Then 4fdbe81a13 restored the old behavior, reintroducing the issue.

This new fix does handle lists without any selectable items correctly.
2024-09-16 16:40:43 -04:00
Ricardo Luís Vaz Silva
afcd38907c add SpawnMultiCoopOnly mapinfo flag to spawn **only** coop spawns in single-player 2024-09-08 17:10:33 -03:00
jekyllgrim
4d18380956 Made itemcls optional
And removed the invalid character on line 710
2024-08-17 15:17:19 -03:00
jekyllgrim
108ad7736a Added itemcls to HasReceived
CallTryPickup will cache the item's class and pass it to HasReceived, so the latter will know what item was received even if the item has been destroyed by the time it's called.
2024-08-17 15:17:19 -03:00
Boondorl
1b20c92ca5 Fixed counters not clearing when using shared/local pickups 2024-08-17 10:12:34 -04:00
Boondorl
0d43272c8f Allow for Basic and Hexen armor replacing 2024-08-17 01:14:07 -04:00
nashmuhandes
8043370ef1 Export PlayDiveOrSurfaceSounds to ZScript and made it virtual for mods to customize the diving and surfacing sounds 2024-08-11 14:34:53 -04:00
dileepvr
95b264bdb6
Isometric Mode and Robin (#2618)
* Feature-complete isometric mode fork.

* Dithered transparency condition tweaks.

* Dithered transparency for non-corpse monsters only (and missiles).

* SpectatorCamera vertical shift.

* Including math.h in hw_sprites.cpp to keep visual studio happy (it couldn't find M_SQRT2 definition).

* Defining MY_SQRT2 in hw_sprites.cpp to keep visual studio happy (it couldn't find M_SQRT2 definition).

* Defining MY_SQRT2 in r_utility.cpp also to keep visual studio happy.

* retrigger checks

* Have correct sprite angle-frame face the camera with orthographic projection enabled.

* Dithered Transparency now works properly on 3D floors. Moved that dither-trans flag setting code within hw_bsp.cpp to handle double-processing of linedefs. Added helper functions to FRenderViewpoint class 'bool IsOrtho()' and 'bool IsAllowedOoB()' to clean up checks everywhere in the code.

* Fixed indents. Added bbox property to subsector struct and use it instead of BSP nodes and Clippers (creating a bbox around viewpoint and checking for overlap) in orthographic mode when no fog of war is active. Turns out to be much faster. Though you need really big maps (Winter's Fury MAP01) to see a difference in fps.

* Non-linux checks don't like uint. Changed to unsigned int.

* Small change of a float to camera.zs. Ignore for testing. Should make no difference.

* Update actor.h to remain mergeable

RF2_NOMIPMAP was introduced, so I had to displace RF_ISOMETRICSPRITES to next bit.
2024-08-11 10:04:40 -04:00
Ricardo Luís Vaz Silva
1655f7e3b7 Allow XInput joysticks to work while the game is unfocused 2024-08-09 18:04:51 -03:00
Xaser Acheron
01e7859e1f fix MBF21 A_RadiusDamage crash/broken 'distance' arg 2024-08-09 14:32:35 -03:00
Ashley Miller-Jelfs
7ce6f2214c Fix Specular not using Material definition for Glossiness and Level 2024-08-08 07:23:00 -04:00
nashmuhandes
593e1c0225 Add SPF_NOMIPMAP to force actor sprites or particles to have no mipmaps. This makes tiny sprites/particles look more crisp and legible in the distance. Mipmapping causes the sprites/particles to have an inconsistent look where they'd sometimes be clearly visible and sometimes less visible depending on camera distance and movement. 2024-08-03 18:45:48 -03:00
Boondorl
10d0f94972 Misc network fixes
Fixed missing teleport specials when predicting. Added rubberband limit; if too far away from the predicted position, will instead instantly snap the player's view to their new spot. Deprecated cl_noprediction; this was pointless as you'd never not want to predict your position/angles. Fixed angle targets not being backed up. Fixed oldbuttons not being set. Updated menu
2024-07-07 01:33:37 -03:00
Ricardo Luís Vaz Silva
ddbf90389b add total chaos retro and full maps to compatibility.txt 2024-06-24 17:23:08 -04:00
Major Cooke
3e91d38582 Fixed Pre(Un)Morph being called out of order.
- This had broken several mods that relied on the inventory being in place before the switch, which was the intended way to begin with.
2024-06-24 10:37:12 -04:00
Major Cooke
5fc3d44ba5 Added SPF_ROLLCENTER for particles and visual thinkers. 2024-06-23 11:09:29 -04:00
Major Cooke
c56d70f2b1 Added SPF_(NO)FACECAMERA flagst for specifying camera facing on particles and visual thinkers.
- This also adds ensures facing camera is applied to these via the option menu.
2024-06-23 10:07:22 -04:00
Ricardo Luís Vaz Silva
c693e3b073 Fix A_SetAnimation 2024-06-05 19:43:25 -03:00
nashmuhandes
ae28eeae94 Scriptified the view squatting. 2024-05-26 21:06:20 -03:00
Boondorl
ab20b75c14 Added missing player retranslation
Play-scoped team changing function.
2024-05-26 20:31:50 -03:00
Boondorl
53270f0bc8 Added ChangeTeam function for teamplay
Also removes the TeamLibrary global since all it did was call what should've been static functions.
2024-05-26 20:31:50 -03:00
Boondorl
3d6e508d67 Network messages will now show usernames instead of just numbers
Gives more useful feedback as it's not obvious which node belongs to who.

Added line breaks to network messages for cases where a large amount of players are desynced.
2024-05-26 20:29:23 -03:00
Boondorl
4c191f4bf5 Inventory item spawn fixes
Default player items and shared items are no longer capable of being duplicated regardless of item flags. Shared items now give a true copy of the item. Fixed incorrect effects playing from item copies. Dropped items can no longer be shared.
2024-05-26 20:29:14 -03:00
Xaser Acheron
a6e1114d3c add mbf21 and mbf21 (strict) compatibility presets 2024-05-02 07:46:34 +02:00
Ricardo Luís Vaz Silva
c03f7889bf restore old fadestep behavior if SPF_NEGATIVE_FADESTEP is not passed in 2024-04-29 04:51:13 -04:00
Boondorl
27eb78f437 Fixed weapon slots not resetting on unmorph
Important for any morphed pawns that set custom weapon slots.
2024-04-28 22:08:52 -03:00
Boondorl
48eb848433 Fixed ViewPos not properly backing up when predicting
Also now forcibly creates the object on players when they spawn so their pointer won't get lost when predicting.
2024-04-28 21:20:20 -03:00
Boondorl
2643a4a167 Fixed desync in Heretic 2024-04-28 21:20:04 -03:00
Christoph Oelckers
a768d6c177 text update 2024-04-27 12:36:10 +02:00
Christoph Oelckers
f7a15bc5f9 added emulation of Final Doom's teleporter z glitch and activate it for Saturnia MAP10 2024-04-27 10:46:29 +02:00
jekyllgrim
861a557d92 Add graycheckVal, expose hud_oldscale/hud_scalefactor to the menu
Add graycheckVal to OptionMenu items
Add menu elements for hud_oldscale and hud_scalefactor to menudef.txt
2024-04-26 21:37:01 -03:00
Boondorl
b43c440552 Added ShouldShareItem virtual
Allows for easier customizing of whether or not an item should be shared with players upon pickup in co-op (e.g. it allows it to be expanded to weapons with custom cvars).
2024-04-26 21:28:47 -03:00
Christoph Oelckers
7c9c7fa1f7 fixed: AActor's members must all be native.
The morph code added 4 scripted ones, but AActor's size must be known at compile time.
2024-04-25 18:15:47 +02:00
Rachael Alexanderson
f6c02d459d
- minor language update 2024-04-21 10:17:58 -04:00
Boondorl
e6df94ca76 Fixed local copies of items not respecting their Amount value 2024-04-21 10:05:46 -04:00
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
f4a42dae1d Added pistol start gameplay option
Automatically resets the player's inventory and health when changing maps.
2024-04-21 03:21:08 -04:00
Boondorl
8d0d130dc9
New API for assigning unique network ids to objects 2024-04-20 19:14:29 -04:00
Boondorl
5ed4f477ed
Fixed PowerMorph setting wrong Owner
Also sets default flash effects.
2024-04-20 01:15:47 -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
7a1342188a
- add cvar cl_restartondeath - bypasses autoloading savegame when pressing +use after dying - added https://github.com/ZDoom/gzdoom/issues/1563 2024-04-18 04:51:38 -04:00
jplebreton
9c01738b86
- add level compatibility fixes for Eternal Doom III 2024-04-18 03:39:11 -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
Rachael Alexanderson
5346ec81db
- language update 2024-04-17 16:18:36 -04:00
Rachael Alexanderson
ef10467ff8
- revert changes in backend code which will not sync properly with raze
This is a combination of 2 commits.

Revert "New API for assigning unique network ids to objects"

This reverts commit e37c19b5b4.

 This is the commit message #2:

Revert "Fix for Morph virtual"

This reverts commit 0ef042562e.
2024-04-17 14:48:02 -04:00
jekyllgrim
0055042112 Add ApplyAirControl 2024-04-16 20:37:14 -03:00
Ricardo Luís Vaz Silva
7c93cfa97b Decoupled Animation fixes and improvements
* fixes looping that uses `loopFrame`
* adds `endFrame`
* adds `SAF_NOOVERRIDE`
* fixes crash on SetAnimation if a BaseFrame isn't defined
2024-04-16 20:27:44 -03:00