diff --git a/regamedll/dlls/player.cpp b/regamedll/dlls/player.cpp index 0d971983..7980a73c 100644 --- a/regamedll/dlls/player.cpp +++ b/regamedll/dlls/player.cpp @@ -2881,8 +2881,13 @@ void CBasePlayer::WaterMove() if (pev->movetype == MOVETYPE_NOCLIP || pev->movetype == MOVETYPE_NONE) return; +#ifdef REGAMEDLL_FIXES + if (!IsAlive()) + return; +#else if (pev->health < 0.0f) return; +#endif // waterlevel 0 - not in water // waterlevel 1 - feet in water @@ -4482,7 +4487,6 @@ void CBasePlayer::CheckTimeBasedDamage() { int i; byte bDuration = 0; - static float gtbdPrev = 0.0; if (!(m_bitsDamageType & DMG_TIMEBASED)) return; @@ -5180,6 +5184,11 @@ void EXT_FUNC CBasePlayer::__API_VHOOK(Spawn)() pev->dmg_take = 0; pev->dmg_save = 0; +#ifdef REGAMEDLL_FIXES + pev->watertype = CONTENTS_EMPTY; + pev->waterlevel = 0; +#endif + m_bitsHUDDamage = -1; m_bitsDamageType = 0; m_afPhysicsFlags = 0; diff --git a/regamedll/pm_shared/pm_shared.cpp b/regamedll/pm_shared/pm_shared.cpp index 7106bef0..55643c77 100644 --- a/regamedll/pm_shared/pm_shared.cpp +++ b/regamedll/pm_shared/pm_shared.cpp @@ -1351,6 +1351,12 @@ qboolean PM_InWater() // Sets pmove->waterlevel and pmove->watertype values. qboolean PM_CheckWater() { +#ifdef REGAMEDLL_FIXES + // do not check for dead + if (pmove->dead || pmove->deadflag != DEAD_NO) + return FALSE; +#endif + vec3_t point; int cont; int truecont;