From 2a8a6d6ccc63264c6d1c171399fae6e371193c34 Mon Sep 17 00:00:00 2001 From: Lat Date: Mon, 18 Sep 2023 01:24:19 +0200 Subject: [PATCH] rideroid: player vars --- src/d_player.h | 14 +++++++++++++- src/p_saveg.c | 20 +++++++++++++++++++- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/d_player.h b/src/d_player.h index 1bc0d07e6..85be7c772 100644 --- a/src/d_player.h +++ b/src/d_player.h @@ -717,7 +717,19 @@ struct player_t tic_t spheredigestion; SINT8 glanceDir; // Direction the player is trying to look backwards in - + + ////////////// + // rideroid // + ////////////// + boolean rideroid; // on rideroid y/n + boolean rdnodepull; // being pulled by rideroid node. mo target is set to the node while this is true. + angle_t rideroidangle; // angle the rideroid is going at. This doesn't change once we're on it. + fixed_t rideroidspeed; // speed the rideroid is to be moving at. + fixed_t rideroidrollangle; // rollangle while turning + fixed_t rdaddmomx; // some speed variables to smoothe things out without fighting with the regular momentum system. + fixed_t rdaddmomy; + fixed_t rdaddmomz; + // SINT8 lives; diff --git a/src/p_saveg.c b/src/p_saveg.c index 7f2410694..4af1c0b33 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -553,7 +553,16 @@ static void P_NetArchivePlayers(savebuffer_t *save) WRITEUINT8(save->p, players[i].ringboxdelay); WRITEUINT8(save->p, players[i].ringboxaward); WRITEFIXED(save->p, players[i].outrun); - + + WRITEUINT8(save->p, players[i].rideroid); + WRITEUINT8(save->p, players[i].rdnodepull); + WRITEANGLE(save->p, players[i].rideroidangle); + WRITEFIXED(save->p, players[i].rideroidspeed); + WRITEANGLE(save->p, players[i].rideroidrollangle); + WRITEFIXED(save->p, players[i].rdaddmomx); + WRITEFIXED(save->p, players[i].rdaddmomy); + WRITEFIXED(save->p, players[i].rdaddmomz); + // respawnvars_t WRITEUINT8(save->p, players[i].respawn.state); WRITEUINT32(save->p, K_GetWaypointHeapIndex(players[i].respawn.wp)); @@ -1028,6 +1037,15 @@ static void P_NetUnArchivePlayers(savebuffer_t *save) players[i].ringboxdelay = READUINT8(save->p); players[i].ringboxaward = READUINT8(save->p); players[i].outrun = READFIXED(save->p); + + players[i].rideroid = READUINT8(save->p); + players[i].rdnodepull = READUINT8(save->p); + players[i].rideroidangle = READANGLE(save->p); + players[i].rideroidspeed = READFIXED(save->p); + players[i].rideroidrollangle = READANGLE(save->p); + players[i].rdaddmomx = READFIXED(save->p); + players[i].rdaddmomy = READFIXED(save->p); + players[i].rdaddmomz = READFIXED(save->p); // respawnvars_t players[i].respawn.state = READUINT8(save->p);