diff --git a/src/d_clisrv.c b/src/d_clisrv.c index e982400e330c4d7e6667d5ab6ae652ef01577c3d..d185efd8fcc16037eb8a805499dd28073e96e5e3 100755 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -5368,15 +5368,15 @@ static void RunSimulations() for (int i = 0; i < numToSimulate; i++) { // // control other players (just use their previous control for now) - // here you can do all sorts of player predictions. we don't do any because, hey, we just use what we know already + // here you can do all sorts of player predictions. // - // for (int j = 0; j < MAXPLAYERS; j++) - // { - // if (playeringame[j] && j != consoleplayer) - // //simtic+1 это для херни со smoothedTic - // //use Memcpy or G_CopyTiccmd for that - // netcmds[gametic % BACKUPTICS][j] = gameTicBuffer[(min(simtic + 1, gametic) + MAXSIMULATIONS) % MAXSIMULATIONS][j]; - // } + for (int j = 0; j < MAXPLAYERS; j++) + { + if (playeringame[j] && j != consoleplayer) + //simtic+1 это для херни со smoothedTic + //use Memcpy or G_CopyTiccmd for that + netcmds[gametic % BACKUPTICS][j] = gameTicBuffer[(min(simtic + 1, gametic) + MAXSIMULATIONS) % MAXSIMULATIONS][j]; + } // control the local player if (simtic + i < gametic) // game is smoothed, take tics from the _actual_ received state diff --git a/src/p_spec.c b/src/p_spec.c index 0bb12cf585069b70d2a955eabdc5dcdbfc42477c..b583c9d169da21752c812f8d6ae149b734140cd7 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -7223,21 +7223,30 @@ void T_Scroll(scroll_t *s) TAG_ITER_DECLARECOUNTER(0); case sc_side: // scroll wall texture - side = sides + s->affectee; - side->textureoffset += dx; - side->rowoffset += dy; + if (!issimulation) + { + side = sides + s->affectee; + side->textureoffset += dx; + side->rowoffset += dy; + } break; case sc_floor: // scroll floor texture - sec = sectors + s->affectee; - sec->floor_xoffs += dx; - sec->floor_yoffs += dy; + if (!issimulation) + { + sec = sectors + s->affectee; + sec->floor_xoffs += dx; + sec->floor_yoffs += dy; + } break; case sc_ceiling: // scroll ceiling texture - sec = sectors + s->affectee; - sec->ceiling_xoffs += dx; - sec->ceiling_yoffs += dy; + if (!issimulation) + { + sec = sectors + s->affectee; + sec->ceiling_xoffs += dx; + sec->ceiling_yoffs += dy; + } break; case sc_carry: diff --git a/src/p_user.c b/src/p_user.c index 36ca5ee05b91a4ad8f120e63652ebdf28cfded66..1787422a065eddd354419c97df195ce07a6304d0 100755 --- a/src/p_user.c +++ b/src/p_user.c @@ -3588,17 +3588,17 @@ static void P_DoClimbing(player_t *player) } #define CLIMBCONEMAX FixedAngle(90*FRACUNIT) - if (!demoplayback || P_ControlStyle(player) == CS_LMAOGALOG) - { - if (canSimulate && (finaltargetsimtic == simtic) || !canSimulate) - { - angle_t angdiff = P_GetLocalAngle(player) - player->mo->angle; - if (angdiff < ANGLE_180 && angdiff > CLIMBCONEMAX) - P_SetLocalAngle(player, player->mo->angle + CLIMBCONEMAX); - else if (angdiff > ANGLE_180 && angdiff < InvAngle(CLIMBCONEMAX)) - P_SetLocalAngle(player, player->mo->angle - CLIMBCONEMAX); - } - } + // if (!demoplayback || P_ControlStyle(player) == CS_LMAOGALOG) + // { + // if (canSimulate && (finaltargetsimtic == simtic) || !canSimulate) + // { + // angle_t angdiff = P_GetLocalAngle(player) - player->mo->angle; + // if (angdiff < ANGLE_180 && angdiff > CLIMBCONEMAX) + // P_SetLocalAngle(player, player->mo->angle + CLIMBCONEMAX); + // else if (angdiff > ANGLE_180 && angdiff < InvAngle(CLIMBCONEMAX)) + // P_SetLocalAngle(player, player->mo->angle - CLIMBCONEMAX); + // } + // } if (player->climbing == 0) P_SetPlayerMobjState(player->mo, S_PLAY_JUMP); @@ -12930,14 +12930,17 @@ void P_SetPlayerAngle(player_t *player, angle_t angle) void P_SetLocalAngle(player_t *player, angle_t angle) { - INT16 delta = (INT16)((angle - P_GetLocalAngle(player)) >> 16); + if (!issimulation) + { + INT16 delta = (INT16)((angle - P_GetLocalAngle(player)) >> 16); - P_ForceLocalAngle(player, P_GetLocalAngle(player) + (angle_t)(delta << 16)); + P_ForceLocalAngle(player, P_GetLocalAngle(player) + (angle_t)(delta << 16)); - if (player == &players[consoleplayer]) - ticcmd_oldangleturn[0] += delta; - else if (player == &players[secondarydisplayplayer]) - ticcmd_oldangleturn[1] += delta; + if (player == &players[consoleplayer]) + ticcmd_oldangleturn[0] += delta; + else if (player == &players[secondarydisplayplayer]) + ticcmd_oldangleturn[1] += delta; + } } angle_t P_GetLocalAngle(player_t *player) @@ -12952,7 +12955,7 @@ angle_t P_GetLocalAngle(player_t *player) void P_ForceLocalAngle(player_t *player, angle_t angle) { - if (canSimulate && (finaltargetsimtic == simtic) || !canSimulate) + if (!issimulation) { angle = angle & ~UINT16_MAX;