PM_CategorizePosition: Do not stick to the ground of an OBSERVER or NOCLIP mode

This commit is contained in:
s1lentq 2024-01-12 09:27:40 +07:00
parent e636cbc8f5
commit c0f47949ec

View File

@ -1436,6 +1436,13 @@ void PM_CategorizePosition()
// water on each call, and the converse case will correct itself if called twice. // water on each call, and the converse case will correct itself if called twice.
PM_CheckWater(); PM_CheckWater();
// Do not stick to the ground of an OBSERVER or NOCLIP mode
if (pmove->movetype == MOVETYPE_NOCLIP || pmove->movetype == MOVETYPE_NONE)
{
pmove->onground = -1;
return;
}
point[0] = pmove->origin[0]; point[0] = pmove->origin[0];
point[1] = pmove->origin[1]; point[1] = pmove->origin[1];
point[2] = pmove->origin[2] - 2; point[2] = pmove->origin[2] - 2;
@ -3275,7 +3282,7 @@ void EXT_FUNC __API_HOOK(PM_Move)(struct playermove_s *ppmove, int server)
DbgAssert(pm_shared_initialized); DbgAssert(pm_shared_initialized);
pmove = ppmove; pmove = ppmove;
#ifdef REGAMEDLL_API #ifdef REGAMEDLL_API
pmoveplayer = UTIL_PlayerByIndex(pmove->player_index + 1)->CSPlayer(); pmoveplayer = UTIL_PlayerByIndex(pmove->player_index + 1)->CSPlayer();
#endif #endif