diff --git a/source/exhumed/src/osdcmds.cpp b/source/exhumed/src/osdcmds.cpp index b163f52be..34ec72d51 100644 --- a/source/exhumed/src/osdcmds.cpp +++ b/source/exhumed/src/osdcmds.cpp @@ -34,6 +34,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. BEGIN_PS_NS +static bool gamesetinput = false; + static int osdcmd_warptocoords(CCmdFuncPtr parm) { if (parm->numparms < 3 || parm->numparms > 5) @@ -110,10 +112,16 @@ static int osdcmd_third_person_view(CCmdFuncPtr parm) { bCamera = !bCamera; - if (bCamera) + if (bCamera && !cl_syncinput) + { + gamesetinput = cl_syncinput = true; GrabPalette(); + } + } + if (gamesetinput && !bCamera) + { + gamesetinput = cl_syncinput = false; } - cl_syncinput = bCamera; return CCMD_OK; } diff --git a/source/sw/src/player.cpp b/source/sw/src/player.cpp index 4355a6161..39d272e58 100644 --- a/source/sw/src/player.cpp +++ b/source/sw/src/player.cpp @@ -2836,7 +2836,10 @@ DoPlayerMoveVehicle(PLAYERp pp) } // force synchronised input here for now. - gamesetinput = cl_syncinput = true; + if (!cl_syncinput) + { + gamesetinput = cl_syncinput = true; + } if (PLAYER_MOVING(pp) == 0) RESET(pp->Flags, PF_PLAYER_MOVED);