mirror of
https://github.com/ZDoom/Raze.git
synced 2025-03-13 20:42:11 +00:00
- pushmove wrapper and a few other replacements.
This commit is contained in:
parent
8482e66caa
commit
9cd57f4510
6 changed files with 29 additions and 17 deletions
|
@ -455,9 +455,7 @@ void moveplayers(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
p->__int_pos.X = act->int_pos().X;
|
||||
p->__int_pos.Y = act->int_pos().Y;
|
||||
p->__int_pos.Z = act->int_pos().Z - (20 << 8);
|
||||
p->getposfromactor(act, -20);
|
||||
|
||||
p->newOwner = nullptr;
|
||||
|
||||
|
@ -794,7 +792,7 @@ void movecrane(DDukeActor *actor, int crane)
|
|||
ps[p].__int_pos.X = actor->int_pos().X - bcos(ang, -6);
|
||||
ps[p].__int_pos.Y = actor->int_pos().Y - bsin(ang, -6);
|
||||
ps[p].__int_pos.Z = actor->int_pos().Z + (2 << 8);
|
||||
SetActor(ps[p].GetActor(), ps[p].__int_pos);
|
||||
SetActor(ps[p].GetActor(), ps[p].player_int_pos());
|
||||
ps[p].setCursector(ps[p].GetActor()->sector());
|
||||
}
|
||||
}
|
||||
|
@ -2685,7 +2683,7 @@ void handle_se00(DDukeActor* actor)
|
|||
ps[p].__int_pos.Z += zchange;
|
||||
|
||||
vec2_t res;
|
||||
rotatepoint(Owner->int_pos().vec2, ps[p].__int_pos.vec2, (q * l), &res);
|
||||
rotatepoint(Owner->int_pos().vec2, ps[p].player_int_pos().vec2, (q * l), &res);
|
||||
|
||||
ps[p].bobpos.X += res.X - ps[p].player_int_pos().X;
|
||||
ps[p].bobpos.Y += res.Y - ps[p].player_int_pos().Y;
|
||||
|
@ -2859,7 +2857,7 @@ void handle_se14(DDukeActor* actor, bool checkstat, int RPG, int JIBS6)
|
|||
|
||||
if (actor->sector() == psp->sector())
|
||||
{
|
||||
rotatepoint(actor->int_pos().vec2, ps[p].__int_pos.vec2, q, &ps[p].__int_pos.vec2);
|
||||
rotatepoint(actor->int_pos().vec2, ps[p].player_int_pos().vec2, q, &ps[p].__int_pos.vec2);
|
||||
|
||||
ps[p].__int_pos.X += m;
|
||||
ps[p].__int_pos.Y +=x;
|
||||
|
|
|
@ -247,4 +247,10 @@ inline ESpriteFlags randomXFlip()
|
|||
return CSTAT_SPRITE_XFLIP;
|
||||
}
|
||||
|
||||
inline int pushmove_p(player_struct* actor, sectortype** const sect, int32_t const walldist, int32_t const ceildist, int32_t const flordist,
|
||||
uint32_t const cliptype, bool clear = true)
|
||||
{
|
||||
return ::pushmove(&actor->__int_pos, sect, walldist, ceildist, flordist, cliptype, clear);
|
||||
}
|
||||
|
||||
END_DUKE_NS
|
||||
|
|
|
@ -631,7 +631,7 @@ void playerisdead(int snum, int psectlotag, int fz, int cz)
|
|||
|
||||
updatesector(p->player_int_pos().X, p->player_int_pos().Y, &p->cursector);
|
||||
|
||||
pushmove(&p->__int_pos, &p->cursector, 128L, (4 << 8), (20 << 8), CLIPMASK0);
|
||||
pushmove_p(p, &p->cursector, 128L, (4 << 8), (20 << 8), CLIPMASK0);
|
||||
|
||||
if (fz > cz + (16 << 8) && actor->spr.pal != 1)
|
||||
p->angle.rotscrnang = buildang(p->dead_flag + ((fz + p->player_int_pos().Z) >> 7));
|
||||
|
|
|
@ -2009,7 +2009,7 @@ int operateTripbomb(int snum)
|
|||
auto p = &ps[snum];
|
||||
HitInfo hit{};
|
||||
|
||||
hitscan(p->__int_pos, p->cursector, { p->angle.ang.bcos(), p->angle.ang.bsin(), -p->horizon.sum().asq16() >> 11 }, hit, CLIPMASK1);
|
||||
hitscan(p->player_int_pos(), p->cursector, { p->angle.ang.bcos(), p->angle.ang.bsin(), -p->horizon.sum().asq16() >> 11 }, hit, CLIPMASK1);
|
||||
|
||||
if (hit.hitSector == nullptr || hit.actor())
|
||||
return 0;
|
||||
|
@ -3083,7 +3083,7 @@ HORIZONLY:
|
|||
while (ud.clipping == 0)
|
||||
{
|
||||
int blocked;
|
||||
blocked = (pushmove(&p->__int_pos, &p->cursector, 164, (4 << 8), (4 << 8), CLIPMASK0) < 0 && furthestangle(p->GetActor(), 8) < 512);
|
||||
blocked = (pushmove_p(p, &p->cursector, 164, (4 << 8), (4 << 8), CLIPMASK0) < 0 && furthestangle(p->GetActor(), 8) < 512);
|
||||
|
||||
if (fabs(pact->floorz - pact->ceilingz) < 48 || blocked)
|
||||
{
|
||||
|
|
|
@ -3830,10 +3830,10 @@ HORIZONLY:
|
|||
if (wal->lotag < 44)
|
||||
{
|
||||
dofurniture(clip.hitWall, p->cursector, snum);
|
||||
pushmove(&p->__int_pos, &p->cursector, 172L, (4L << 8), (4L << 8), CLIPMASK0);
|
||||
pushmove_p(p, &p->cursector, 172L, (4L << 8), (4L << 8), CLIPMASK0);
|
||||
}
|
||||
else
|
||||
pushmove(&p->__int_pos, &p->cursector, 172L, (4L << 8), (4L << 8), CLIPMASK0);
|
||||
pushmove_p(p, &p->cursector, 172L, (4L << 8), (4L << 8), CLIPMASK0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3934,9 +3934,9 @@ HORIZONLY:
|
|||
{
|
||||
int blocked;
|
||||
if (pact->spr.clipdist == 64)
|
||||
blocked = (pushmove(&p->__int_pos, &p->cursector, 128, (4 << 8), (4 << 8), CLIPMASK0) < 0 && furthestangle(p->GetActor(), 8) < 512);
|
||||
blocked = (pushmove_p(p, &p->cursector, 128, (4 << 8), (4 << 8), CLIPMASK0) < 0 && furthestangle(p->GetActor(), 8) < 512);
|
||||
else
|
||||
blocked = (pushmove(&p->__int_pos, &p->cursector, 16, (4 << 8), (4 << 8), CLIPMASK0) < 0 && furthestangle(p->GetActor(), 8) < 512);
|
||||
blocked = (pushmove_p(p, &p->cursector, 16, (4 << 8), (4 << 8), CLIPMASK0) < 0 && furthestangle(p->GetActor(), 8) < 512);
|
||||
|
||||
if (fabs(pact->floorz - pact->ceilingz) < 48 || blocked)
|
||||
{
|
||||
|
@ -4048,8 +4048,7 @@ void OnMotorcycle(struct player_struct *p, DDukeActor* motosprite)
|
|||
{
|
||||
if (motosprite)
|
||||
{
|
||||
p->__int_pos.X = motosprite->int_pos().X;
|
||||
p->__int_pos.Y = motosprite->int_pos().Y;
|
||||
p->getxyfromactor(motosprite);
|
||||
p->angle.ang = buildang(motosprite->spr.ang);
|
||||
p->ammo_amount[MOTORCYCLE_WEAPON] = motosprite->saved_ammo;
|
||||
deletesprite(motosprite);
|
||||
|
@ -4128,8 +4127,7 @@ void OnBoat(struct player_struct *p, DDukeActor* boat)
|
|||
{
|
||||
if (boat)
|
||||
{
|
||||
p->__int_pos.X = boat->int_pos().X;
|
||||
p->__int_pos.Y = boat->int_pos().Y;
|
||||
p->getxyfromactor(boat);
|
||||
p->angle.ang = buildang(boat->spr.ang);
|
||||
p->ammo_amount[BOAT_WEAPON] = boat->saved_ammo;
|
||||
deletesprite(boat);
|
||||
|
|
|
@ -418,6 +418,16 @@ struct player_struct
|
|||
return { int(opos.X * worldtoint), int(opos.Y * worldtoint),int(opos.Z * zworldtoint) };
|
||||
}
|
||||
|
||||
void player_add_int_z(int z)
|
||||
{
|
||||
__int_pos.Z += z;
|
||||
}
|
||||
|
||||
void player_set_int_z(int z)
|
||||
{
|
||||
__int_pos.Z = z;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
struct Cycler
|
||||
|
|
Loading…
Reference in a new issue