Commit graph

820 commits

Author SHA1 Message Date
Ricardo Luís Vaz Silva
d55409645f iterate over non-thinking statnums for static models 2025-06-11 22:46:31 +08:00
Ricardo Luís Vaz Silva
af653e8b67 bone getters part 2.5 2025-05-26 13:33:51 +02:00
Magnus Norddahl
990ce7c6c9 Render scene with indexed textures for vid_rendermode 2 2025-05-19 05:55:03 +02:00
nashmuhandes
783a3524ed Remove Linearity from A_AttachLight for now as it goes over the kFuncArgCount limit in the JIT (TODO: struct-ify A_AttachLight in future) 2025-05-18 03:43:07 +08:00
nashmuhandes
051751220b Add SoftShadowRadius and Linearity to GLDEFS and A_AttachLight 2025-05-18 02:08:37 +08:00
nashmuhandes
af7c9db9c5 GLDEFS light intensity and A_AttachLight intensity, VKDoom edition 2025-05-17 21:43:47 +08:00
Ricardo Luís Vaz Silva
a8810a16a8 shadowmap lights that don't hit one-sided walls if raytraced lights are enabled 2025-05-17 04:35:18 +02:00
RaveYard
27f0bea2bc Prevent levelmesh updates when ceiling/floor is moving at a zero speed 2025-05-13 01:50:41 +02:00
Magnus Norddahl
6cf3cdb871 Make LevelMeshUpdater responsible for updating the tiles (playsim tells the mesh updater, the level mesh tells the tiles) 2025-05-11 20:11:18 +02:00
Magnus Norddahl
bfb37a89c3 Fix deactivated lightmap light not working 2025-05-11 17:58:07 +02:00
Ricardo Luís Vaz Silva
4bdc3ee28d fix CalcModelFrame/SetBone/GetBone/SetAnimation not grabbing smf from modeldata for decoupled anims 2025-05-11 10:46:43 +08:00
Ricardo Luís Vaz Silva
d5f5c71d67 Bone Getters Part 2/3, plus fixed warnings for MSVC
* add getters for frame poses

* fix missing joint in GetJointPose

* clean up models_iqm.cpp

* clean up usage of I_GetTimeFrac, split out matrix calculation into its own function

* clean up SetModelBoneRotationInternal

* clean up a few float <-> double and unsigned <-> signed warnings

* fix more warnings

* further clean up warnings

* split mode ObjectToWorldMatrix stuff

* initial work on bone getters, matrix hell

(the matrix/vec3 multiplications are probably wrong af, just gotta add more stuff 'till i can test it)

* clean up matrix math

* GetBone/TransformByBone

* fix GetBoneFramePose

* fix ObjectToWorldMatrix

* fix missing array resize

* raw matrix getters (for use with gutamatics/etc)

* reverse matrix mult order

* replace GetBoneLength/GetBoneDir with GetBoneBaseTRS

* fix GetBonePosition, remove GetBoneWorldMatrix as it's useless

* GetBonePosition

* deduplicate code

* rename GetBonePosition to GetBoneBasePosition to avoid confusion

* GetBoneBaseRotation

* GetBonePosition helper function

* forgot include_offsets
2025-05-10 08:42:20 +08:00
Ricardo Luís Vaz Silva
9aa44fa13b Merge branch '4.14.2' into gz_merge 2025-05-02 17:15:41 -03:00
Ricardo Luís Vaz Silva
8833126801 Bone Manip part 1 - bone setters
* split frame info calculation from RenderFrameModels

* clean up fvec4 being used as quat in iqms

* initial work on bone setting

* implement bone setters

* clean up FindModelFrame

* refactor model overrides into its own function

* refactor frame rendering into RenderModelFrame

* split frame processing into ProcessModelFrame

* refactor BoneOverride in preparation for translation/scale overrides

* clean up macros

* SetBoneTranslation/SetBoneScaling

* GetBoneOffset

* fix compilation on linux/mac (fuck you MSVC)

* fix typo 😅

* make sure bone overrides are cleared on model switches, add ClearBoneOffsets to clear them manually

* bone info getters

* fix joint lengths, add joint dirs

* serialize bone overrides

* fix bone dir return type

* GetBoneIndex/GetBoneCount

* helper functions for working with non-quat angles

* add mode enum, add more helper functions

* fix up formatting
2025-05-01 15:47:38 +02:00
Ricardo Luís Vaz Silva
3befb3f5e7 limit light alpha mult to renderflag 2025-04-29 15:49:55 -03:00
MajorCooke
bf6f175305 SpawnBlood now returns an actor spawned by the function. 2025-04-29 07:56:20 -03:00
Boondorl
ce922225e7 Added OnLoad virtual
Allows for things to be reinitialized where needed for Thinkers. Moved hidden state of items over to OnLoad.
2025-04-29 07:56:19 -03:00
Boondorl
f5032b149b
Added missing return values in VM calls
These are not supported by the JIT and must always be passed.
2025-04-09 15:18:47 -04:00
Boondorl
5730719182
Fixed player respawning
Pass appropriate information to the VM
2025-04-09 15:18:30 -04:00
MajorCooke
9c1d45dd68 Added particle rendering to VisualThinkers.
To activate, use `SetParticleType(int type)`. To deactivate, use `DisableParticle()`.

Types are:
- PT_DEFAULT (default value; uses `gl_particles_style`)
- PT_SQUARE
- PT_ROUND
- PT_SMOOTH

While in this mode:
- `Texture` & `Translation` are ignored
- `Scale.X` sets the size
- `SColor` sets the color

Misc changes:
- Removed warning on textureless destruction
2025-04-09 14:30:04 -03:00
inkoalawetrust
89235ea15d Exposed DElevator to ZScript. 2025-04-09 14:29:05 -03:00
inkoalawetrust
a655f65b9b Exposed more of the Floor thinker. 2025-04-09 14:29:05 -03:00
inkoalawetrust
5503ec052d Exposed more of the Ceiling thinker.
- Exposed the rest of the ceiling member fields and getters.
- Added an IsCrusher() method.
- Added getOldDirection() getter.
- Fixed Door direction enum.
- Forgot to make Plat readonly on previous commit.
2025-04-09 14:29:05 -03:00
inkoalawetrust
0dc4c7db90 Exposed DPlat to ZScript. 2025-04-09 14:29:05 -03:00
inkoalawetrust
d924573d8a Exposed DDoor to ZScript.
Also added a ZScript-only enum for the movement direction..
2025-04-09 14:29:05 -03:00
nashmuhandes
799011d327 Merge branch '4.14.1' of https://github.com/ZDoom/gzdoom 2025-03-13 03:00:11 +08:00
Boondorl
a7d4d409a0 Added PlayerRespawning event
Allows denying player respawns for better control on special game modes e.g. Last Man Standing.
2025-02-14 03:49:56 -05:00
Boondorl
567a180d2b Added is3DFloor parameter to SpecialBounceHit
Allows for better plane bounce handling e.g. flipping the normal.
2025-02-11 20:49:39 -03:00
Ricardo Luís Vaz Silva
3f4c66681e more misc animation fixes 2025-02-09 01:48:31 +08:00
Ricardo Luís Vaz Silva
33bae944f7 allow optionally skipping initial wipe in in-game intermissions 2025-02-07 20:17:54 -03:00
Ricardo Luís Vaz Silva
eb7c99b34a more misc animation fixes 2025-02-04 18:08:30 -03:00
Magnus Norddahl
7a59234bb4 Add lm_dynlights CVAR for running dynamic lights entirely in lightmaps 2025-02-01 21:21:33 +01:00
Ricardo Luís Vaz Silva
ec42c77289 fix A_DoChase using the wrong type in non-jit 2025-02-01 10:45:26 -03:00
Boondorl
d527829ee3 Added NOAUTOOFFSKULLFLY flag
Disables resetting skullfly and state when velocity is zero while charging.
2025-01-30 13:33:33 -03:00
nashmuhandes
5bcbe1718b New "Translatable" property in DECALDEF which is just an alias for "OpaqueBlood" to reflect its general use, and also to support the new translation parameter of A_SprayDecal. "OpaqueBlood" should be considered deprecated. Note that specifying a translation directly in the DECALDEF will be added in future, in another commit. 2025-01-30 13:32:18 -03:00
Boondorl
864fe1f66f Added translation argument for A_SprayDecal 2025-01-30 13:32:18 -03:00
nashmuhandes
87bda3d8d4 Remove bone component cache, VKDoom Edition 2025-01-30 21:54:29 +08:00
nashmuhandes
aba5cbf768 Revert "fix for vkdoom"
This reverts commit 5eb9a1095e.

Revert "upload bones 😅"

This reverts commit cc766311f7.

Revert "remove bone component cache to decrease memory consumption"

This reverts commit e2908ce0a3.
2025-01-30 20:44:14 +08:00
Ricardo Luís Vaz Silva
e2908ce0a3 remove bone component cache to decrease memory consumption
caching this is entirely unnecessary, as it changes every frame
2025-01-30 20:37:08 +08:00
nashmuhandes
aae8c12cdf Add a particle flag to allow user shaders on the sprites 2025-01-29 17:00:12 -03:00
Adam Kaminski
162ab3c4ec Fixed ACS scripts executing a function from another library that cause a division/modulus of zero from aborting the game. 2025-01-27 21:27:39 -03:00
Boondorl
e0394ef16a Added flags for angle handling on bounce
Allows for keeping the current angle on bounce or modifying the pitch.
2025-01-27 21:27:03 -03:00
Ricardo Luís Vaz Silva
3d2f9e06ed remove bone component cache to decrease memory consumption
caching this is entirely unnecessary, as it changes every frame
2025-01-27 17:04:46 -03:00
Boondorl
3db1ee9a1e Improvements for VisualThinkers
Added BeginPlay virtual that's called after construction. Added getter for render style in ZScript.
2025-01-24 22:53:19 -05:00
nashmuhandes
27b6cb2f72 Allow passing sound volume to PlayBounceSound in ZScript 2025-01-23 13:54:26 -03:00
nashmuhandes
9e3db4f147 Added HasConversation 2025-01-22 13:18:45 -03:00
nashmuhandes
92dbdd3f39 Exported conversation behaviors 2025-01-22 13:18:45 -03:00
Boondorl
b68c7545cd Fixes for dynamic lights
Fixed released lights not unlinking in rare cases. Fixed first Actor in cache being missed when destruction checking. Fixed results cache not being cleared on update.
2025-01-21 21:19:03 +01:00
dpjudas
f127c2c164 Replace targSubsector with targSection as that is what it is nowadays 2025-01-21 01:54:53 +01:00
Ricardo Luís Vaz Silva
a7b20183f1 gpu actor tracing (NOT WORKING) 2025-01-20 16:45:08 +01:00