mirror of
https://github.com/ZDoom/Raze.git
synced 2025-03-23 17:31:14 +00:00
- Duke: Tidy up underwater()
.
This commit is contained in:
parent
95fe3d1bc4
commit
8db8d43f89
2 changed files with 20 additions and 27 deletions
|
@ -829,12 +829,10 @@ static void movement(int snum, ESyncBits actions, sectortype* psect, double floo
|
|||
|
||||
static void underwater(int snum, ESyncBits actions, double floorz, double ceilingz)
|
||||
{
|
||||
auto p = &ps[snum];
|
||||
auto pact = p->GetActor();
|
||||
const auto p = &ps[snum];
|
||||
const auto pact = p->GetActor();
|
||||
|
||||
// under water
|
||||
p->jumping_counter = 0;
|
||||
|
||||
p->pycount += 32;
|
||||
p->pycount &= 2047;
|
||||
p->pyoff = BobVal(p->pycount);
|
||||
|
@ -844,14 +842,12 @@ static void underwater(int snum, ESyncBits actions, double floorz, double ceilin
|
|||
|
||||
if (actions & SB_JUMP)
|
||||
{
|
||||
// jump
|
||||
if (p->vel.Z > 0) p->vel.Z = 0;
|
||||
p->vel.Z -= (348 / 256.);
|
||||
if (p->vel.Z < -6) p->vel.Z = -6;
|
||||
}
|
||||
else if (actions & SB_CROUCH)
|
||||
{
|
||||
// crouch
|
||||
if (p->vel.Z < 0) p->vel.Z = 0;
|
||||
p->vel.Z += (348 / 256.);
|
||||
if (p->vel.Z > 6) p->vel.Z = 6;
|
||||
|
@ -876,25 +872,24 @@ static void underwater(int snum, ESyncBits actions, double floorz, double ceilin
|
|||
if (p->vel.Z > 8)
|
||||
p->vel.Z *= 0.5;
|
||||
|
||||
p->GetActor()->spr.pos.Z += p->vel.Z;
|
||||
pact->spr.pos.Z += p->vel.Z;
|
||||
|
||||
if (p->GetActor()->getOffsetZ() > floorz - 15)
|
||||
p->GetActor()->spr.pos.Z += ((floorz - 15) - p->GetActor()->getOffsetZ()) * 0.5;
|
||||
if (pact->getOffsetZ() > floorz - 15)
|
||||
pact->spr.pos.Z += ((floorz - 15) - pact->getOffsetZ()) * 0.5;
|
||||
|
||||
if (p->GetActor()->getOffsetZ() < ceilingz + 4)
|
||||
if (pact->getOffsetZ() < ceilingz + 4)
|
||||
{
|
||||
p->GetActor()->spr.pos.Z = ceilingz + 4 + gs.playerheight;
|
||||
pact->spr.pos.Z = ceilingz + 4 + gs.playerheight;
|
||||
p->vel.Z = 0;
|
||||
}
|
||||
|
||||
if (p->scuba_on && (krand() & 255) < 8)
|
||||
{
|
||||
auto j = spawn(pact, DukeWaterBubbleClass);
|
||||
if (j)
|
||||
if (const auto j = spawn(pact, DukeWaterBubbleClass))
|
||||
{
|
||||
j->spr.pos += (p->GetActor()->spr.Angles.Yaw.ToVector() + DVector2(4 - (global_random & 8), 4 - (global_random & 8))) * 16;
|
||||
j->spr.pos += (pact->spr.Angles.Yaw.ToVector() + DVector2(4 - (global_random & 8), 4 - (global_random & 8))) * 16;
|
||||
j->spr.scale = DVector2(0.046875, 0.3125);
|
||||
j->spr.pos.Z = p->GetActor()->getOffsetZ() + 8;
|
||||
j->spr.pos.Z = pact->getOffsetZ() + 8;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1329,11 +1329,10 @@ static void movement(int snum, ESyncBits actions, sectortype* psect, double floo
|
|||
|
||||
static void underwater(int snum, ESyncBits actions, double floorz, double ceilingz)
|
||||
{
|
||||
auto p = &ps[snum];
|
||||
auto pact = p->GetActor();
|
||||
const auto p = &ps[snum];
|
||||
const auto pact = p->GetActor();
|
||||
|
||||
p->jumping_counter = 0;
|
||||
|
||||
p->pycount += 32;
|
||||
p->pycount &= 2047;
|
||||
p->pyoff = BobVal(p->pycount);
|
||||
|
@ -1372,25 +1371,24 @@ static void underwater(int snum, ESyncBits actions, double floorz, double ceilin
|
|||
if (p->vel.Z > 8)
|
||||
p->vel.Z *= 0.5;
|
||||
|
||||
p->GetActor()->spr.pos.Z += p->vel.Z;
|
||||
pact->spr.pos.Z += p->vel.Z;
|
||||
|
||||
if (p->GetActor()->getOffsetZ() > floorz - 15)
|
||||
p->GetActor()->spr.pos.Z += ((floorz - 15) - p->GetActor()->getOffsetZ()) * 0.5;
|
||||
if (pact->getOffsetZ() > floorz - 15)
|
||||
pact->spr.pos.Z += ((floorz - 15) - pact->getOffsetZ()) * 0.5;
|
||||
|
||||
if (p->GetActor()->getOffsetZ() < ceilingz + 4)
|
||||
if (pact->getOffsetZ() < ceilingz + 4)
|
||||
{
|
||||
p->GetActor()->spr.pos.Z = ceilingz + 4 + gs.playerheight;
|
||||
pact->spr.pos.Z = ceilingz + 4 + gs.playerheight;
|
||||
p->vel.Z = 0;
|
||||
}
|
||||
|
||||
if (p->scuba_on && (krand() & 255) < 8)
|
||||
{
|
||||
auto j = spawn(pact, DukeWaterBubbleClass);
|
||||
if (j)
|
||||
if (const auto j = spawn(pact, DukeWaterBubbleClass))
|
||||
{
|
||||
j->spr.pos += (p->GetActor()->spr.Angles.Yaw.ToVector() + DVector2(12 - (global_random & 8), 12 - (global_random & 8))) * 16;
|
||||
j->spr.pos += (pact->spr.Angles.Yaw.ToVector() + DVector2(12 - (global_random & 8), 12 - (global_random & 8))) * 16;
|
||||
j->spr.scale = DVector2(0.046875, 0.03125);
|
||||
j->spr.pos.Z = p->GetActor()->getOffsetZ() + 8;
|
||||
j->spr.pos.Z = pact->getOffsetZ() + 8;
|
||||
j->spr.cstat = CSTAT_SPRITE_TRANS_FLIP | CSTAT_SPRITE_TRANSLUCENT;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue