From 36037bc8dd974eaa5dd01762e9977ce69e3fbed9 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sat, 24 Jan 2026 15:33:57 -0500 Subject: [PATCH 1/2] move hitem victim and timer to client side effects --- src/d_player.h | 5 ++--- src/k_kart.c | 14 +++++++------- src/lua_playerlib.c | 12 ------------ src/p_saveg.c | 3 --- 4 files changed, 9 insertions(+), 25 deletions(-) diff --git a/src/d_player.h b/src/d_player.h index 543bce1b7..5fa403e74 100644 --- a/src/d_player.h +++ b/src/d_player.h @@ -203,6 +203,8 @@ typedef enum khud_enginesnd, // Engine sound offset this player is using. khud_voices, // Used to stop the player saying more voices than it should khud_tauntvoices, // Used to specifically stop taunt voice spam + khud_confirmvictim, // Player ID that you dealt damage to + khud_confirmvictimdelay, // Delay before playing the sound // Battle khud_cardanimation, // Used to determine the position of some full-screen Battle Mode graphics @@ -696,9 +698,6 @@ struct player_t SINT8 lastjawztarget; // (-1 to 15) - Last person you target with jawz, for playing the target switch sfx UINT8 jawztargetdelay; // (0 to 5) - Delay for Jawz target switching, to make it less twitchy - UINT8 confirmVictim; // Player ID that you dealt damage to - UINT8 confirmVictimDelay; // Delay before playing the sound - UINT8 dashRingPullTics; // Timer during which the player is pulled towards a dash ring UINT8 dashRingPushTics; // Timer during which the player displays effects and has no gravity after being thrust by a dash ring UINT8 dashRainbowPogo; // Determines when to disable pogospring extra gravity after using a rainbow dash ring diff --git a/src/k_kart.c b/src/k_kart.c index 7fa7252dd..be75b9d76 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -2087,8 +2087,8 @@ void K_TryHurtSoundExchange(mobj_t *victim, mobj_t *attacker) return; } - attacker->player->confirmVictim = (victim->player - players); - attacker->player->confirmVictimDelay = TICRATE/2; + attacker->player->karthud[khud_confirmvictim] = (victim->player - players); + attacker->player->karthud[khud_confirmvictimdelay] = TICRATE/2; if (attacker->player->follower != NULL) { @@ -2109,20 +2109,20 @@ void K_PlayPowerGloatSound(mobj_t *source) static void K_HandleDelayedHitByEm(player_t *player) { - if (player->confirmVictimDelay == 0) + if (player->karthud[khud_confirmvictimdelay] == 0) { return; } - player->confirmVictimDelay--; + player->karthud[khud_confirmvictimdelay]--; - if (player->confirmVictimDelay == 0) + if (player->karthud[khud_confirmvictimdelay] == 0) { mobj_t *victim = NULL; - if (player->confirmVictim < MAXPLAYERS && playeringame[player->confirmVictim]) + if (player->karthud[khud_confirmvictim] < MAXPLAYERS && playeringame[player->karthud[khud_confirmvictim]]) { - player_t *victimPlayer = &players[player->confirmVictim]; + player_t *victimPlayer = &players[player->karthud[khud_confirmvictim]]; if (victimPlayer != NULL && victimPlayer->spectator == false) { diff --git a/src/lua_playerlib.c b/src/lua_playerlib.c index 20d9c8020..7a1622492 100644 --- a/src/lua_playerlib.c +++ b/src/lua_playerlib.c @@ -924,12 +924,6 @@ static int player_get(lua_State *L) case player_jawztargetdelay: lua_pushinteger(L, plr->jawztargetdelay); break; - case player_confirmvictim: - lua_pushinteger(L, plr->confirmVictim); - break; - case player_confirmvictimdelay: - lua_pushinteger(L, plr->confirmVictimDelay); - break; case player_dashringpulltics: lua_pushinteger(L, plr->dashRingPullTics); break; @@ -1713,12 +1707,6 @@ static int player_set(lua_State *L) case player_jawztargetdelay: plr->jawztargetdelay = luaL_checkinteger(L, 3); break; - case player_confirmvictim: - plr->confirmVictim = luaL_checkinteger(L, 3); - break; - case player_confirmvictimdelay: - plr->confirmVictimDelay = luaL_checkinteger(L, 3); - break; case player_dashringpulltics: plr->dashRingPullTics = luaL_checkinteger(L, 3); break; diff --git a/src/p_saveg.c b/src/p_saveg.c index 422446d38..b188baaa7 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -728,9 +728,6 @@ static void P_NetSyncPlayers(savebuffer_t *save) SYNC(players[i].lastjawztarget); SYNC(players[i].jawztargetdelay); - SYNC(players[i].confirmVictim); - SYNC(players[i].confirmVictimDelay); - SYNC(players[i].interpoints); SYNC(players[i].roundscore); SYNC(players[i].emeralds); From fa596d321dc77d9b70fc21435ff69273bf4c1e0e Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sat, 24 Jan 2026 15:38:16 -0500 Subject: [PATCH 2/2] client side v1 hitem sound --- src/k_kart.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/k_kart.c b/src/k_kart.c index be75b9d76..28d7b3f64 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -2088,7 +2088,15 @@ void K_TryHurtSoundExchange(mobj_t *victim, mobj_t *attacker) } attacker->player->karthud[khud_confirmvictim] = (victim->player - players); - attacker->player->karthud[khud_confirmvictimdelay] = TICRATE/2; + + if (cv_karthitemdialog.value) + { + attacker->player->karthud[khud_confirmvictimdelay] = TICRATE/2; + } + else + { + K_PlayHitEmSound(attacker->player->mo, victim); + } if (attacker->player->follower != NULL) {