- did some more.

This commit is contained in:
Christoph Oelckers 2022-02-06 22:45:47 +01:00
parent 95bc8a173f
commit 9d4e467268
3 changed files with 32 additions and 34 deletions

View file

@ -1317,10 +1317,8 @@ void movetongue(DDukeActor *actor, int tongue, int jaw)
} }
actor->spr.ang = Owner->spr.ang; actor->spr.ang = Owner->spr.ang;
actor->spr.pos.X = Owner->spr.pos.X; actor->spr.pos = Owner->spr.pos.plusZ(Owner->isPlayer() ? -34 : 0);
actor->spr.pos.Y = Owner->spr.pos.Y;
if (Owner->isPlayer())
actor->spr.pos.Z = Owner->spr.pos.Z - 34;
for (int k = 0; k < actor->temp_data[0]; k++) for (int k = 0; k < actor->temp_data[0]; k++)
{ {
auto q = EGS(actor->sector(), auto q = EGS(actor->sector(),
@ -2243,7 +2241,7 @@ bool jibs(DDukeActor *actor, int JIBS6, bool timeout, bool callsetsprite, bool f
actor->add_int_pos({ MulScale(actor->spr.xvel, bcos(actor->spr.ang), 14), MulScale(actor->spr.xvel, bsin(actor->spr.ang), 14), 0 }); actor->add_int_pos({ MulScale(actor->spr.xvel, bcos(actor->spr.ang), 14), MulScale(actor->spr.xvel, bsin(actor->spr.ang), 14), 0 });
actor->add_int_z(actor->spr.zvel); actor->add_int_z(actor->spr.zvel);
if (floorcheck && actor->int_pos().Z >= actor->sector()->int_floorz()) if (floorcheck && actor->spr.pos.Z >= actor->sector()->floorz)
{ {
deletesprite(actor); deletesprite(actor);
return false; return false;
@ -2454,7 +2452,7 @@ void glasspieces(DDukeActor* actor)
actor->spr.xrepeat >>= 1; actor->spr.xrepeat >>= 1;
actor->spr.yrepeat >>= 1; actor->spr.yrepeat >>= 1;
if (rnd(96)) if (rnd(96))
SetActor(actor, actor->int_pos()); SetActor(actor, actor->spr.pos);
actor->temp_data[0]++;//Number of bounces actor->temp_data[0]++;//Number of bounces
} }
else if (actor->temp_data[0] == 3) else if (actor->temp_data[0] == 3)
@ -2490,7 +2488,7 @@ void scrap(DDukeActor* actor, int SCRAP1, int SCRAP6)
if (actor->spr.zvel > 1024 && actor->spr.zvel < 1280) if (actor->spr.zvel > 1024 && actor->spr.zvel < 1280)
{ {
SetActor(actor, actor->int_pos()); SetActor(actor, actor->spr.pos);
sectp = actor->sector(); sectp = actor->sector();
} }
@ -2604,20 +2602,20 @@ void handle_se00(DDukeActor* actor)
} }
else actor->tempang = 256; else actor->tempang = 256;
if (sect->int_floorz() > actor->int_pos().Z) //z's are touching if (sect->floorz > actor->spr.pos.Z) //z's are touching
{ {
sect->add_int_floorz(-512); sect->add_int_floorz(-512);
zchange = -512; zchange = -512;
if (sect->int_floorz() < actor->int_pos().Z) if (sect->floorz < actor->spr.pos.Z)
sect->set_int_floorz(actor->int_pos().Z); sect->floorz = actor->spr.pos.Z;
} }
else if (sect->int_floorz() < actor->int_pos().Z) //z's are touching else if (sect->floorz < actor->spr.pos.Z) //z's are touching
{ {
sect->add_int_floorz(512); sect->add_int_floorz(512);
zchange = 512; zchange = 512;
if (sect->int_floorz() > actor->int_pos().Z) if (sect->floorz > actor->spr.pos.Z)
sect->set_int_floorz(actor->int_pos().Z); sect->floorz = actor->spr.pos.Z;
} }
} }
else if (actor->spr.extra == 3) else if (actor->spr.extra == 3)
@ -2791,7 +2789,7 @@ void handle_se14(DDukeActor* actor, bool checkstat, int RPG, int JIBS6)
Owner = actor->GetOwner(); Owner = actor->GetOwner();
if (actor->spr.xvel) if (actor->spr.xvel)
{ {
int x = getangle(Owner->int_pos().X - actor->int_pos().X, Owner->int_pos().Y - actor->int_pos().Y); int x = getangle(Owner->spr.pos.XY() - actor->spr.pos.XY());
int q = getincangle(actor->spr.ang, x) >> 3; int q = getincangle(actor->spr.ang, x) >> 3;
actor->temp_data[2] += q; actor->temp_data[2] += q;
@ -2908,7 +2906,7 @@ void handle_se14(DDukeActor* actor, bool checkstat, int RPG, int JIBS6)
ms(actor); ms(actor);
// I have no idea why this is here, but the SE's sector must never, *EVER* change, or the map will corrupt. // I have no idea why this is here, but the SE's sector must never, *EVER* change, or the map will corrupt.
//SetActor(actor, actor->int_pos()); //SetActor(actor, actor->spr.pos);
if ((sc->int_floorz() - sc->int_ceilingz()) < (108 << 8)) if ((sc->int_floorz() - sc->int_ceilingz()) < (108 << 8))
{ {
@ -3068,7 +3066,7 @@ void handle_se30(DDukeActor *actor, int JIBS6)
} }
ms(actor); ms(actor);
//SetActor(actor, actor->int_pos()); //SetActor(actor, actor->spr.pos);
if ((sc->floorz - sc->ceilingz) < 108) if ((sc->floorz - sc->ceilingz) < 108)
{ {
@ -3182,7 +3180,7 @@ void handle_se02(DDukeActor* actor)
} }
} }
ms(actor); ms(actor);
//SetActor(actor, actor->int_pos()); //SetActor(actor, actor->spr.pos);
} }
} }
@ -3389,7 +3387,7 @@ void handle_se05(DDukeActor* actor, int FIRELASER)
sc->add_int_ceilingz(actor->spr.zvel); sc->add_int_ceilingz(actor->spr.zvel);
sector[actor->temp_data[0]].add_int_ceilingz(actor->spr.zvel); sector[actor->temp_data[0]].add_int_ceilingz(actor->spr.zvel);
ms(actor); ms(actor);
//SetActor(actor, actor->int_pos()); //SetActor(actor, actor->spr.pos);
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@ -3546,7 +3544,7 @@ void handle_se11(DDukeActor *actor)
actor->temp_data[2] += k; actor->temp_data[2] += k;
actor->temp_data[4] += k; actor->temp_data[4] += k;
ms(actor); ms(actor);
//SetActor(actor, actor->int_pos()); //SetActor(actor, actor->spr.pos);
for(auto& wal : wallsofsector(sc)) for(auto& wal : wallsofsector(sc))
{ {
@ -3559,7 +3557,7 @@ void handle_se11(DDukeActor *actor)
actor->temp_data[2] -= k; actor->temp_data[2] -= k;
actor->temp_data[4] -= k; actor->temp_data[4] -= k;
ms(actor); ms(actor);
//SetActor(actor, actor->int_pos()); //SetActor(actor, actor->spr.pos);
return; return;
} }
} }
@ -3570,7 +3568,7 @@ void handle_se11(DDukeActor *actor)
actor->temp_data[4] = 0; actor->temp_data[4] = 0;
actor->temp_data[2] &= 0xffffff00; actor->temp_data[2] &= 0xffffff00;
ms(actor); ms(actor);
//SetActor(actor, actor->int_pos()); //SetActor(actor, actor->spr.pos);
} }
} }
} }
@ -3760,7 +3758,7 @@ void handle_se15(DDukeActor* actor)
} }
ms(actor); ms(actor);
//SetActor(actor, actor->int_pos()); //SetActor(actor, actor->spr.pos);
} }
} }
@ -3804,7 +3802,7 @@ void handle_se16(DDukeActor* actor, int REACTOR, int REACTOR2)
else sc->add_int_ceilingz(-512); else sc->add_int_ceilingz(-512);
ms(actor); ms(actor);
//SetActor(actor, actor->int_pos()); //SetActor(actor, actor->spr.pos);
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@ -4293,7 +4291,7 @@ void handle_se26(DDukeActor* actor)
} }
ms(actor); ms(actor);
//SetActor(actor, actor->int_pos()); //SetActor(actor, actor->spr.pos);
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@ -5020,7 +5018,7 @@ void alterang(int ang, DDukeActor* actor, int playernum)
// NOTE: looks like 'Owner' is set to target sprite ID... // NOTE: looks like 'Owner' is set to target sprite ID...
if (holoduke && cansee(holoduke->int_pos().X, holoduke->int_pos().Y, holoduke->int_pos().Z, holoduke->sector(), actor->int_pos().X, actor->int_pos().Y, actor->int_pos().Z, actor->sector())) if (holoduke && cansee(holoduke->spr.pos, holoduke->sector(), actor->spr.pos, actor->sector()))
actor->SetOwner(holoduke); actor->SetOwner(holoduke);
else actor->SetOwner(ps[playernum].GetActor()); else actor->SetOwner(ps[playernum].GetActor());
@ -5028,7 +5026,7 @@ void alterang(int ang, DDukeActor* actor, int playernum)
if (Owner->isPlayer()) if (Owner->isPlayer())
goalang = getangle(actor->ovel.X - actor->int_pos().X, actor->ovel.Y - actor->int_pos().Y); goalang = getangle(actor->ovel.X - actor->int_pos().X, actor->ovel.Y - actor->int_pos().Y);
else else
goalang = getangle(Owner->int_pos().X - actor->int_pos().X, Owner->int_pos().Y - actor->int_pos().Y); goalang = getangle(Owner->spr.pos.XY() - actor->spr.pos.XY());
if (actor->spr.xvel && actor->spr.picnum != TILE_DRONE) if (actor->spr.xvel && actor->spr.picnum != TILE_DRONE)
{ {

View file

@ -443,7 +443,7 @@ int movesprite_ex_d(DDukeActor* actor, int xchange, int ychange, int zchange, un
{ {
actor->add_int_pos({ (xchange * TICSPERFRAME) >> 2, (ychange * TICSPERFRAME) >> 2, (zchange * TICSPERFRAME) >> 2 }); actor->add_int_pos({ (xchange * TICSPERFRAME) >> 2, (ychange * TICSPERFRAME) >> 2, (zchange * TICSPERFRAME) >> 2 });
if (bg) if (bg)
SetActor(actor, actor->int_pos()); SetActor(actor, actor->spr.pos);
return result.setNone(); return result.setNone();
} }
@ -941,13 +941,13 @@ static void movetripbomb(DDukeActor *actor)
actor->temp_data[3] = actor->int_pos().X; actor->temp_data[3] = actor->int_pos().X;
actor->temp_data[4] = actor->int_pos().Y; actor->temp_data[4] = actor->int_pos().Y;
actor->add_int_pos({ bcos(actor->temp_data[5], -9), bsin(actor->temp_data[5], -9), -(3 << 8) }); actor->add_int_pos({ bcos(actor->temp_data[5], -9), bsin(actor->temp_data[5], -9), -(3 << 8) });
SetActor(actor, actor->int_pos()); SetActor(actor, actor->spr.pos);
x = hitasprite(actor, nullptr); x = hitasprite(actor, nullptr);
actor->set_int_xy(actor->temp_data[3], actor->temp_data[4]); actor->set_int_xy(actor->temp_data[3], actor->temp_data[4]);
actor->add_int_z(3 << 8); actor->add_int_z(3 << 8);
SetActor(actor, actor->int_pos()); SetActor(actor, actor->spr.pos);
if (actor->ovel.X != x && lTripBombControl & TRIPBOMB_TRIPWIRE) if (actor->ovel.X != x && lTripBombControl & TRIPBOMB_TRIPWIRE)
{ {
@ -2146,7 +2146,7 @@ static void greenslime(DDukeActor *actor)
return; return;
} }
SetActor(actor, actor->int_pos()); SetActor(actor, actor->spr.pos);
actor->spr.ang = ps[p].angle.ang.asbuild(); actor->spr.ang = ps[p].angle.ang.asbuild();
@ -3555,7 +3555,7 @@ void move_d(DDukeActor *actor, int playernum, int xvel)
if ((badguy(actor) && actor->spr.extra <= 0) || (actor->opos.X != actor->spr.pos.X) || (actor->opos.Y != actor->spr.pos.Y)) if ((badguy(actor) && actor->spr.extra <= 0) || (actor->opos.X != actor->spr.pos.X) || (actor->opos.Y != actor->spr.pos.Y))
{ {
actor->backupvec2(); actor->backupvec2();
SetActor(actor, actor->int_pos()); SetActor(actor, actor->spr.pos);
} }
return; return;
} }

View file

@ -372,7 +372,7 @@ int movesprite_ex_r(DDukeActor* actor, int xchange, int ychange, int zchange, un
{ {
actor->add_int_pos({ (xchange * TICSPERFRAME) >> 2, (ychange * TICSPERFRAME) >> 2, (zchange * TICSPERFRAME) >> 2 }); actor->add_int_pos({ (xchange * TICSPERFRAME) >> 2, (ychange * TICSPERFRAME) >> 2, (zchange * TICSPERFRAME) >> 2 });
if (bg) if (bg)
SetActor(actor, actor->int_pos()); SetActor(actor, actor->spr.pos);
return result.setNone(); return result.setNone();
} }
@ -397,7 +397,7 @@ int movesprite_ex_r(DDukeActor* actor, int xchange, int ychange, int zchange, un
actor->spr.ang = (krand() & 2047); actor->spr.ang = (krand() & 2047);
else if ((actor->temp_data[0] & 3) == 1) else if ((actor->temp_data[0] & 3) == 1)
actor->spr.ang = (krand() & 2047); actor->spr.ang = (krand() & 2047);
SetActor(actor, actor->int_pos()); SetActor(actor, actor->spr.pos);
if (dasectp == nullptr) dasectp = &sector[0]; if (dasectp == nullptr) dasectp = &sector[0];
return result.setSector(dasectp); return result.setSector(dasectp);
} }
@ -3599,7 +3599,7 @@ void move_r(DDukeActor *actor, int pnum, int xvel)
if ((badguy(actor) && actor->spr.extra <= 0) || (actor->opos.X != actor->spr.pos.X) || (actor->opos.Y != actor->spr.pos.Y)) if ((badguy(actor) && actor->spr.extra <= 0) || (actor->opos.X != actor->spr.pos.X) || (actor->opos.Y != actor->spr.pos.Y))
{ {
actor->backupvec2(); actor->backupvec2();
SetActor(actor, actor->int_pos()); SetActor(actor, actor->spr.pos);
} }
if (badguy(actor) && actor->spr.extra <= 0) if (badguy(actor) && actor->spr.extra <= 0)
{ {