From ba22dabfe2fb9d20d700b2200e6d0419639fa780 Mon Sep 17 00:00:00 2001 From: Antonio Martinez Date: Sun, 15 Sep 2024 21:23:40 -0700 Subject: [PATCH] Transfer polish --- src/d_player.h | 1 + src/k_kart.c | 28 +++++++++------------------- src/lua_playerlib.c | 4 ++++ src/p_saveg.c | 2 ++ 4 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/d_player.h b/src/d_player.h index 0d932aab5..a63a145b6 100644 --- a/src/d_player.h +++ b/src/d_player.h @@ -1054,6 +1054,7 @@ struct player_t fixed_t outrun; // Milky Way road effect fixed_t transfer; // Tired of Ramp Park fastfalls + boolean transfersound; uint8_t public_key[PUBKEYLENGTH]; diff --git a/src/k_kart.c b/src/k_kart.c index 868655caf..89be80a67 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -9043,8 +9043,11 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) if (player->itemtype == KITEM_NONE) player->itemflags &= ~IF_HOLDREADY; - if (onground) + if (onground || player->transfer < 10*player->mo->scale) + { player->transfer = 0; + player->transfersound = false; + } if (player->transfer) { @@ -9059,11 +9062,13 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) if ((player->mo->momz > 0) == (transferclamp > 0)) { - if (!S_SoundPlaying(player->mo, sfx_ggfall)) - S_StartSound(player->mo, sfx_ggfall); - fuckfactor = FRACUNIT/2; } + else if (!player->transfersound) + { + S_StartSound(player->mo, sfx_ggfall); + player->transfersound = true; + } fixed_t sx, sy; sx = P_RandomRange(PR_DECORATION, -48, 48)*FRACUNIT; @@ -10181,21 +10186,6 @@ void K_KartResetPlayerColor(player_t *player) goto finalise; } - if (player->transfer && (leveltime & 1)) - { - player->mo->colorized = true; - fullbright = true; - player->mo->color = player->skincolor; - goto finalise; - } - else if (player->transfer) - { - player->mo->colorized = true; - fullbright = true; - player->mo->color = SKINCOLOR_WHITE; - goto finalise; - } - if (player->ringboost && (leveltime & 1)) // ring boosting { player->mo->colorized = true; diff --git a/src/lua_playerlib.c b/src/lua_playerlib.c index 6c585cb12..e96a2db13 100644 --- a/src/lua_playerlib.c +++ b/src/lua_playerlib.c @@ -264,6 +264,8 @@ static int player_get(lua_State *L) lua_pushboolean(L, plr->analoginput); else if (fastcmp(field,"transfer")) lua_pushboolean(L, plr->transfer); + else if (fastcmp(field,"transfersound")) + lua_pushboolean(L, plr->transfersound); else if (fastcmp(field,"markedfordeath")) lua_pushboolean(L, plr->markedfordeath); else if (fastcmp(field,"incontrol")) @@ -860,6 +862,8 @@ static int player_set(lua_State *L) plr->analoginput = luaL_checkboolean(L, 3); else if (fastcmp(field,"transfer")) plr->transfer = luaL_checkboolean(L, 3); + else if (fastcmp(field,"transfersound")) + plr->transfersound = luaL_checkboolean(L, 3); else if (fastcmp(field,"markedfordeath")) plr->markedfordeath = luaL_checkboolean(L, 3); else if (fastcmp(field,"dotrickfx")) diff --git a/src/p_saveg.c b/src/p_saveg.c index ad99621d4..8497b4506 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -656,6 +656,7 @@ static void P_NetArchivePlayers(savebuffer_t *save) WRITEFIXED(save->p, players[i].outrun); WRITEFIXED(save->p, players[i].transfer); + WRITEUINT8(save->p, players[i].transfersound); WRITEUINT8(save->p, players[i].rideroid); WRITEUINT8(save->p, players[i].rdnodepull); @@ -1281,6 +1282,7 @@ static void P_NetUnArchivePlayers(savebuffer_t *save) players[i].outrun = READFIXED(save->p); players[i].transfer = READFIXED(save->p); + players[i].transfersound = READUINT8(save->p); players[i].rideroid = (boolean)READUINT8(save->p); players[i].rdnodepull = (boolean)READUINT8(save->p);