From e89c34ac7484b8daf9a0eadee1eb6ef93c345895 Mon Sep 17 00:00:00 2001 From: James R <justsomejames2@gmail.com> Date: Wed, 22 Nov 2023 18:43:24 -0800 Subject: [PATCH] player_t: add icecubevars_t --- src/d_player.h | 11 +++++++++++ src/p_saveg.c | 14 ++++++++++++++ src/typedef.h | 1 + 3 files changed, 26 insertions(+) diff --git a/src/d_player.h b/src/d_player.h index 85d30355fd..328fd321df 100644 --- a/src/d_player.h +++ b/src/d_player.h @@ -551,6 +551,16 @@ struct powerupvars_t { mobj_t *barrier; }; +// player_t struct for Frozen Production ice cube state +struct icecubevars_t { + tic_t hitat; // last tic player properly touched frost + + boolean frozen; // frozen in an ice cube + UINT8 wiggle; // number of times player wiggled so far + tic_t frozenat; // tic that player was frozen + UINT8 shaketimer; // while it counts down, ice cube shakes +}; + // player_t struct for all alternative viewpoint variables struct altview_t { @@ -965,6 +975,7 @@ struct player_t sonicloopvars_t loop; roundconditions_t roundconditions; powerupvars_t powerup; + icecubevars_t icecube; level_tally_t tally; }; diff --git a/src/p_saveg.c b/src/p_saveg.c index ea80ea855d..9d727cdcc9 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -771,6 +771,13 @@ static void P_NetArchivePlayers(savebuffer_t *save) WRITEUINT8(save->p, players[i].tally.showGrade); WRITEUINT8(save->p, players[i].tally.done); } + + // icecubevars_t + WRITEUINT32(save->p, players[i].icecube.hitat); + WRITEUINT8(save->p, players[i].icecube.frozen); + WRITEUINT8(save->p, players[i].icecube.wiggle); + WRITEUINT32(save->p, players[i].icecube.frozenat); + WRITEUINT8(save->p, players[i].icecube.shaketimer); } } @@ -1329,6 +1336,13 @@ static void P_NetUnArchivePlayers(savebuffer_t *save) players[i].tally.done = (boolean)READUINT8(save->p); } + // icecubevars_t + players[i].icecube.hitat = READUINT32(save->p); + players[i].icecube.frozen = READUINT8(save->p); + players[i].icecube.wiggle = READUINT8(save->p); + players[i].icecube.frozenat = READUINT32(save->p); + players[i].icecube.shaketimer = READUINT8(save->p); + //players[i].viewheight = P_GetPlayerViewHeight(players[i]); // scale cannot be factored in at this point } } diff --git a/src/typedef.h b/src/typedef.h index b32d4b9748..82b2bd7b4c 100644 --- a/src/typedef.h +++ b/src/typedef.h @@ -52,6 +52,7 @@ TYPEDEF (roundconditions_t); TYPEDEF (skybox_t); TYPEDEF (itemroulette_t); TYPEDEF (powerupvars_t); +TYPEDEF (icecubevars_t); TYPEDEF (altview_t); TYPEDEF (player_t); -- GitLab