Commit graph

4725 commits

Author SHA1 Message Date
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