- floatified UpdatePlayerUnderSprite

This commit is contained in:
Christoph Oelckers 2022-08-31 18:55:56 +02:00
parent 19f5eac518
commit 138e200510

View file

@ -1654,7 +1654,7 @@ void UpdatePlayerUnderSprite(PLAYER* pp)
{ {
DSWActor* act_over = pp->actor; DSWActor* act_over = pp->actor;
int water_level_z, zdiff; double water_level_z, zdiff;
bool above_water, in_dive_area; bool above_water, in_dive_area;
if (Prediction) if (Prediction)
@ -1663,10 +1663,10 @@ void UpdatePlayerUnderSprite(PLAYER* pp)
ASSERT(act_over->hasU()); ASSERT(act_over->hasU());
// dont bother spawning if you ain't really in the water // dont bother spawning if you ain't really in the water
water_level_z = act_over->sector()->int_floorz(); // - Z(pp->WadeDepth); water_level_z = act_over->sector()->floorz; // - Z(pp->WadeDepth);
// if not below water // if not below water
above_water = (int_ActorZOfBottom(act_over) <= water_level_z); above_water = (ActorZOfBottom(act_over) <= water_level_z);
in_dive_area = SpriteInDiveArea(act_over); in_dive_area = SpriteInDiveArea(act_over);
// if not in dive area OR (in dive area AND above the water) - Kill it // if not in dive area OR (in dive area AND above the water) - Kill it
@ -1699,10 +1699,10 @@ void UpdatePlayerUnderSprite(PLAYER* pp)
// find z water level of the top sector // find z water level of the top sector
// diff between the bottom of the upper sprite and the water level // diff between the bottom of the upper sprite and the water level
zdiff = int_ActorZOfBottom(act_over) - water_level_z; zdiff = ActorZOfBottom(act_over) - water_level_z;
// add diff to ceiling // add diff to ceiling
act_under->set_int_z(act_under->sector()->int_ceilingz() + zdiff); act_under->spr.pos.Z = act_under->sector()->ceilingz + zdiff;
act_under->user.State = act_over->user.State; act_under->user.State = act_over->user.State;
act_under->user.Rot = act_over->user.Rot; act_under->user.Rot = act_over->user.Rot;