Skip to content

feat: better gibs#65

Open
WofWca wants to merge 23 commits intoec-:masterfrom
WofWca:baseq3a-all-gibs-mrs
Open

feat: better gibs#65
WofWca wants to merge 23 commits intoec-:masterfrom
WofWca:baseq3a-all-gibs-mrs

Conversation

@WofWca
Copy link
Contributor

@WofWca WofWca commented Jan 9, 2026

This MR includes (and thus supersedes) the following MRs:

When this is tentatively approved, I'll need to double check whether I documented all the new CVARs.

As requested in https://github.com/ec-/baseq3a/pull/63#issuecomment-3726169552, I'm submitting all my gibs improvements in one MR.
I recommend not doing a squash merge.

@WofWca WofWca force-pushed the baseq3a-all-gibs-mrs branch 4 times, most recently from f67e43c to ff43b62 Compare January 15, 2026 10:50
@WofWca WofWca force-pushed the baseq3a-all-gibs-mrs branch 2 times, most recently from a46bf96 to 774d842 Compare January 25, 2026 14:30
@WofWca WofWca force-pushed the baseq3a-all-gibs-mrs branch from 774d842 to d40ef7f Compare February 2, 2026 11:41
WofWca added 23 commits February 7, 2026 18:48
This is a follow-up to
ad81db1
(https://github.com/ec-/baseq3a/pull/49).
This brings the game balance closer to the original game.
For discussions, see
OpenArena/gamecode#349.
This is in preparation to some gibs improvements.
In the original game, all gibs start flying from one single point
(i.e. `playerOrigin`), which is sometimes noticeable.
Let's position the gibs closer to where they are supposed to be
anatomically. That is, legs go lower, head goes higher.
The previous commit added proper initial positions
to each individual gib.
And now it's time to also make sure
that they're facing the right direction.
To be more precise, preserve the player velocity,
most importantly, including the velocity they get from knockback.
It's more "physically accurate" to decide whether to leave a mark
based on velocity.
This allows gibs to leave multiple marks,
should they keep high velocity after the first impact.
Allow playing the gib sound more than once,
and keep leaving the blood trail even if the gib
already hit something.
This makes the gibs feel more "dead" and less frog-like.
This will let us handle non-0 pitch values.
Before this commit we positioned gibs
close to where the player model's part are located,
but only assuming that the body is in an upright position.
That resulted in dead bodies' gibs getting launched
from pretty far away from where the model is actually located.
This commit fixes that.
This increases memory usage by 216 kB,
but makes blood marks not forcefully disappear as new ones are made.
Note that this changes the network protocol.
But it's still compatible with vanilla.
See new comment in `g_combat.c`.

We had to move the code that resets
`damage_blood`, `damage_armor`, `damage_knockback`
because otherwise they would stop getting reset
when the player dies,
because `P_DamageFeedback` early-returns when `PM_DEAD`.
@WofWca WofWca force-pushed the baseq3a-all-gibs-mrs branch from d40ef7f to 8e5636d Compare February 7, 2026 14:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant