diff --git a/src/d_clisrv.c b/src/d_clisrv.c index 5668ab6b3..aca37df1d 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -611,6 +611,11 @@ static inline void resynch_write_player(resynch_pak *rsp, const size_t i) rsp->health = LONG(players[i].mo->health); rsp->angle = (angle_t)LONG(players[i].mo->angle); +#ifdef ROTSPRITE + rsp->rollangle = (angle_t)LONG(players[i].mo->rollangle); +#else + rsp->rollangle = 0; +#endif rsp->x = LONG(players[i].mo->x); rsp->y = LONG(players[i].mo->y); rsp->z = LONG(players[i].mo->z); @@ -761,6 +766,9 @@ static void resynch_read_player(resynch_pak *rsp) //At this point, the player should have a body, whether they were respawned or not. P_UnsetThingPosition(players[i].mo); players[i].mo->angle = (angle_t)LONG(rsp->angle); +#ifdef ROTSPRITE + players[i].mo->rollangle = (angle_t)LONG(rsp->rollangle); +#endif players[i].mo->eflags = (UINT16)SHORT(rsp->eflags); players[i].mo->flags = LONG(rsp->flags); players[i].mo->flags2 = LONG(rsp->flags2); diff --git a/src/d_clisrv.h b/src/d_clisrv.h index b85bbfab6..7313c7355 100644 --- a/src/d_clisrv.h +++ b/src/d_clisrv.h @@ -255,6 +255,7 @@ typedef struct INT32 health; angle_t angle; + angle_t rollangle; fixed_t x; fixed_t y; fixed_t z; diff --git a/src/p_inter.c b/src/p_inter.c index b0a401b10..0c707f837 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -3002,6 +3002,10 @@ static inline void P_NiGHTSDamage(mobj_t *target, mobj_t *source) P_SetPlayerMobjState(target, S_PLAY_NIGHTS_STUN); S_StartSound(target, sfx_nghurt); +#ifdef ROTSPRITE + player->mo->rollangle = 0; +#endif + if (oldnightstime > 10*TICRATE && player->nightstime < 10*TICRATE) { diff --git a/src/p_user.c b/src/p_user.c index 2a8eb9602..342a754f2 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -636,6 +636,10 @@ static void P_DeNightserizePlayer(player_t *player) player->marebonuslap = 0; player->flyangle = 0; player->anotherflyangle = 0; +#ifdef ROTSPRITE + player->mo->rollangle = 0; +#endif + P_SetTarget(&player->mo->target, NULL); P_SetTarget(&player->axis1, P_SetTarget(&player->axis2, NULL)); @@ -762,6 +766,9 @@ void P_NightserizePlayer(player_t *player, INT32 nighttime) player->secondjump = 0; player->flyangle = 0; player->anotherflyangle = 0; +#ifdef ROTSPRITE + player->mo->rollangle = 0; +#endif player->powers[pw_shield] = SH_NONE; player->powers[pw_super] = 0;