From ba044ac2f4113a4102f69c6309d872f71920c082 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Thu, 1 Sep 2022 16:45:28 +0200 Subject: [PATCH] - first bunch of wrapping xvel. --- source/games/duke/src/actors.cpp | 32 +++++++++++----------- source/games/duke/src/actors_d.cpp | 4 +-- source/games/duke/src/actors_r.cpp | 8 +++--- source/games/duke/src/animatesprites_d.cpp | 2 +- source/games/sw/src/actor.cpp | 4 +-- source/games/sw/src/ai.cpp | 12 ++++---- source/games/sw/src/bunny.cpp | 4 +-- source/games/sw/src/coolg.cpp | 4 +-- source/games/sw/src/girlninj.cpp | 4 +-- source/games/sw/src/hornet.cpp | 8 +++--- source/games/sw/src/ninja.cpp | 4 +-- source/games/sw/src/ripper.cpp | 4 +-- source/games/sw/src/ripper2.cpp | 4 +-- source/games/sw/src/sector.cpp | 12 ++++---- source/games/sw/src/skull.cpp | 2 +- source/games/sw/src/swactor.h | 2 +- source/games/sw/src/weapon.cpp | 10 +++---- 17 files changed, 60 insertions(+), 60 deletions(-) diff --git a/source/games/duke/src/actors.cpp b/source/games/duke/src/actors.cpp index 6e0c34d00..60947d717 100644 --- a/source/games/duke/src/actors.cpp +++ b/source/games/duke/src/actors.cpp @@ -225,8 +225,8 @@ int ssp(DDukeActor* const actor, unsigned int cliptype) //The set sprite functio Collision c; return movesprite_ex(actor, - MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14), - MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14), actor->int_zvel(), + MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14), + MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14), actor->int_zvel(), cliptype, c) == kHitNone; } @@ -1257,8 +1257,8 @@ void movecanwithsomething(DDukeActor* actor) void bounce(DDukeActor* actor) { - int xvect = MulScale(actor->spr.xvel, bcos(actor->int_ang()), 10); - int yvect = MulScale(actor->spr.xvel, bsin(actor->int_ang()), 10); + int xvect = MulScale(actor->int_xvel(), bcos(actor->int_ang()), 10); + int yvect = MulScale(actor->int_xvel(), bsin(actor->int_ang()), 10); int zvect = actor->int_zvel(); auto sectp = actor->sector(); @@ -1464,8 +1464,8 @@ bool queball(DDukeActor *actor, int pocket, int queball, int stripeball) auto sect = actor->sector(); auto pos = actor->spr.pos; int j = clipmove(pos, §, - (MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14) * TICSPERFRAME) << 11, - (MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14) * TICSPERFRAME) << 11, + (MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14) * TICSPERFRAME) << 11, + (MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14) * TICSPERFRAME) << 11, 24, (4 << 8), (4 << 8), CLIPMASK1, coll); actor->spr.pos = pos;; actor->setsector(sect); @@ -2219,7 +2219,7 @@ bool jibs(DDukeActor *actor, int JIBS6, bool timeout, bool callsetsprite, bool f else actor->add_int_zvel( gs.gravity - 50); } - actor->add_int_pos({ MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14), MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14), 0 }); + actor->add_int_pos({ MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14), MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14), 0 }); actor->spr.pos.Z += actor->float_zvel(); if (floorcheck && actor->spr.pos.Z >= actor->sector()->floorz) @@ -2494,7 +2494,7 @@ void scrap(DDukeActor* actor, int SCRAP1, int SCRAP6) } } if (actor->float_zvel() < 16) actor->add_int_zvel( gs.gravity - 50); - actor->add_int_pos({ MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14), MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14), actor->int_zvel()}); + actor->add_int_pos({ MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14), MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14), actor->int_zvel()}); } else { @@ -2824,8 +2824,8 @@ void handle_se14(DDukeActor* actor, bool checkstat, int RPG, int JIBS6) } } - int m = MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14); - x = MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14); + int m = MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14); + x = MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14); double mm = m * inttoworld; double xx = x * inttoworld; @@ -2983,8 +2983,8 @@ void handle_se30(DDukeActor *actor, int JIBS6) if (actor->spr.xvel) { - int l = MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14); - int x = MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14); + int l = MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14); + int x = MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14); if ((sc->floorz - sc->ceilingz) < 108) if (ud.clipping == 0) @@ -3134,8 +3134,8 @@ void handle_se02(DDukeActor* actor) else sc->setfloorslope(sc->getfloorslope() + (Sgn(actor->temp_data[5] - sc->getfloorslope()) << 4)); } - int m = MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14); - int x = MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14); + int m = MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14); + int x = MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14); for (int p = connecthead; p >= 0; p = connectpoint2[p]) @@ -4118,8 +4118,8 @@ void handle_se20(DDukeActor* actor) if (actor->spr.xvel) //Moving { - int x = MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14); - int l = MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14); + int x = MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14); + int l = MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14); actor->temp_data[3] += actor->spr.xvel; diff --git a/source/games/duke/src/actors_d.cpp b/source/games/duke/src/actors_d.cpp index 301f088d9..8aa9d0c2a 100644 --- a/source/games/duke/src/actors_d.cpp +++ b/source/games/duke/src/actors_d.cpp @@ -2598,8 +2598,8 @@ static void heavyhbomb(DDukeActor *actor) Collision coll; movesprite_ex(actor, - MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14), - MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14), + MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14), + MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14), actor->int_zvel(), CLIPMASK0, coll); if (actor->sector()->lotag == 1 && actor->float_zvel() == 0) diff --git a/source/games/duke/src/actors_r.cpp b/source/games/duke/src/actors_r.cpp index 676a9ec44..06885dfa5 100644 --- a/source/games/duke/src/actors_r.cpp +++ b/source/games/duke/src/actors_r.cpp @@ -2375,8 +2375,8 @@ static void heavyhbomb(DDukeActor *actor) Collision coll; movesprite_ex(actor, - MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14), - MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14), + MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14), + MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14), actor->int_zvel(), CLIPMASK0, coll); if (actor->sector()->lotag == 1 && actor->float_zvel() == 0) @@ -2563,8 +2563,8 @@ static int henstand(DDukeActor *actor) makeitfall(actor); Collision coll; movesprite_ex(actor, - MulScale(bcos(actor->int_ang()), actor->spr.xvel, 14), - MulScale(bsin(actor->int_ang()), actor->spr.xvel, 14), + MulScale(bcos(actor->int_ang()), actor->int_xvel(), 14), + MulScale(bsin(actor->int_ang()), actor->int_xvel(), 14), actor->int_zvel(), CLIPMASK0, coll); if (coll.type) { diff --git a/source/games/duke/src/animatesprites_d.cpp b/source/games/duke/src/animatesprites_d.cpp index 723d327bc..a6d5b6ff4 100644 --- a/source/games/duke/src/animatesprites_d.cpp +++ b/source/games/duke/src/animatesprites_d.cpp @@ -216,7 +216,7 @@ void animatesprites_d(tspriteArray& tsprites, int x, int y, int a, int smoothrat case BURNING2: if (OwnerAc && OwnerAc->spr.statnum == STAT_PLAYER) { - if (display_mirror == 0 && OwnerAc->spr.yvel == screenpeek && ps[screenpeek].over_shoulder_on == 0) + if (display_mirror == 0 && OwnerAc->PlayerIndex() == screenpeek && ps[screenpeek].over_shoulder_on == 0) t->xrepeat = 0; else { diff --git a/source/games/sw/src/actor.cpp b/source/games/sw/src/actor.cpp index 8d38466ca..27c7bf43a 100644 --- a/source/games/sw/src/actor.cpp +++ b/source/games/sw/src/actor.cpp @@ -773,8 +773,8 @@ int DoActorDeathMove(DSWActor* actor) DoActorFall(actor); } - nx = MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14); - ny = MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14); + nx = MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14); + ny = MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14); actor->spr.clipdist = (128+64)>>2; move_actor(actor, nx, ny, 0); diff --git a/source/games/sw/src/ai.cpp b/source/games/sw/src/ai.cpp index 45c16eaf1..43b893c1f 100644 --- a/source/games/sw/src/ai.cpp +++ b/source/games/sw/src/ai.cpp @@ -805,8 +805,8 @@ int DoActorMoveCloser(DSWActor* actor) { int nx, ny; - nx = MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14); - ny = MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14); + nx = MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14); + ny = MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14); // if cannot move the sprite if (!move_actor(actor, nx, ny, 0)) @@ -1282,8 +1282,8 @@ int DoActorMoveJump(DSWActor* actor) // Move while jumping - nx = MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14); - ny = MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14); + nx = MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14); + ny = MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14); move_actor(actor, nx, ny, 0L); @@ -1590,8 +1590,8 @@ int DoActorReposition(DSWActor* actor) { int nx, ny; - nx = MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14); - ny = MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14); + nx = MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14); + ny = MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14); // still might hit something and have to handle it. if (!move_actor(actor, nx, ny, 0L)) diff --git a/source/games/sw/src/bunny.cpp b/source/games/sw/src/bunny.cpp index 8732f7252..668055028 100644 --- a/source/games/sw/src/bunny.cpp +++ b/source/games/sw/src/bunny.cpp @@ -866,8 +866,8 @@ int DoBunnyMoveJump(DSWActor* actor) int nx, ny; // Move while jumping - nx = MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14); - ny = MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14); + nx = MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14); + ny = MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14); move_actor(actor, nx, ny, 0L); diff --git a/source/games/sw/src/coolg.cpp b/source/games/sw/src/coolg.cpp index f8395bea7..14fea11f3 100644 --- a/source/games/sw/src/coolg.cpp +++ b/source/games/sw/src/coolg.cpp @@ -706,8 +706,8 @@ int DoCoolgCircle(DSWActor* actor) actor->set_int_ang(NORM_ANGLE(actor->int_ang() + actor->user.Counter2)); - nx = MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14); - ny = MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14); + nx = MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14); + ny = MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14); if (!move_actor(actor, nx, ny, 0L)) { diff --git a/source/games/sw/src/girlninj.cpp b/source/games/sw/src/girlninj.cpp index b57aeee2a..1e6cee5a8 100644 --- a/source/games/sw/src/girlninj.cpp +++ b/source/games/sw/src/girlninj.cpp @@ -779,8 +779,8 @@ int GirlNinjaJumpActionFunc(DSWActor* actor) int nx, ny; // Move while jumping - nx = MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14); - ny = MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14); + nx = MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14); + ny = MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14); // if cannot move the sprite if (!move_actor(actor, nx, ny, 0L)) diff --git a/source/games/sw/src/hornet.cpp b/source/games/sw/src/hornet.cpp index 220318fa7..0e9791afb 100644 --- a/source/games/sw/src/hornet.cpp +++ b/source/games/sw/src/hornet.cpp @@ -439,8 +439,8 @@ int DoHornetCircle(DSWActor* actor) actor->set_int_ang(NORM_ANGLE(actor->int_ang() + actor->user.Counter2)); - nx = MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14); - ny = MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14); + nx = MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14); + ny = MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14); if (!move_actor(actor, nx, ny, 0L)) { @@ -449,8 +449,8 @@ int DoHornetCircle(DSWActor* actor) // try moving in the opposite direction actor->user.Counter2 = -actor->user.Counter2; actor->spr.angle += DAngle180; - nx = MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14); - ny = MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14); + nx = MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14); + ny = MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14); if (!move_actor(actor, nx, ny, 0)) { diff --git a/source/games/sw/src/ninja.cpp b/source/games/sw/src/ninja.cpp index 5858f413c..dc912a47f 100644 --- a/source/games/sw/src/ninja.cpp +++ b/source/games/sw/src/ninja.cpp @@ -2036,8 +2036,8 @@ int NinjaJumpActionFunc(DSWActor* actor) int nx, ny; // Move while jumping - nx = MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14); - ny = MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14); + nx = MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14); + ny = MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14); // if cannot move the sprite if (!move_actor(actor, nx, ny, 0L)) diff --git a/source/games/sw/src/ripper.cpp b/source/games/sw/src/ripper.cpp index 81f1535c5..da93c6c67 100644 --- a/source/games/sw/src/ripper.cpp +++ b/source/games/sw/src/ripper.cpp @@ -979,8 +979,8 @@ int DoRipperMoveHang(DSWActor* actor) int nx, ny; // Move while jumping - nx = MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14); - ny = MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14); + nx = MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14); + ny = MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14); // if cannot move the sprite if (!move_actor(actor, nx, ny, 0L)) diff --git a/source/games/sw/src/ripper2.cpp b/source/games/sw/src/ripper2.cpp index 11d98ae4f..a7137ed49 100644 --- a/source/games/sw/src/ripper2.cpp +++ b/source/games/sw/src/ripper2.cpp @@ -993,8 +993,8 @@ int DoRipper2MoveHang(DSWActor* actor) int nx, ny; // Move while jumping - nx = MulScale(actor->spr.xvel, bcos(actor->int_ang()), 14); - ny = MulScale(actor->spr.xvel, bsin(actor->int_ang()), 14); + nx = MulScale(actor->int_xvel(), bcos(actor->int_ang()), 14); + ny = MulScale(actor->int_xvel(), bsin(actor->int_ang()), 14); // if cannot move the sprite if (!move_actor(actor, nx, ny, 0L)) diff --git a/source/games/sw/src/sector.cpp b/source/games/sw/src/sector.cpp index b91aaedfe..a855df320 100644 --- a/source/games/sw/src/sector.cpp +++ b/source/games/sw/src/sector.cpp @@ -2602,8 +2602,8 @@ void DoPanning(void) { sectp = actor->sector(); - nx = MulScale(actor->spr.xvel, bcos(actor->int_ang()), 20); - ny = MulScale(actor->spr.xvel, bsin(actor->int_ang()), 20); + nx = MulScale(actor->int_xvel(), bcos(actor->int_ang()), 20); + ny = MulScale(actor->int_xvel(), bsin(actor->int_ang()), 20); sectp->addfloorxpan((float)nx); sectp->addfloorypan((float)ny); @@ -2614,8 +2614,8 @@ void DoPanning(void) { sectp = actor->sector(); - nx = MulScale(actor->spr.xvel, bcos(actor->int_ang()), 20); - ny = MulScale(actor->spr.xvel, bsin(actor->int_ang()), 20); + nx = MulScale(actor->int_xvel(), bcos(actor->int_ang()), 20); + ny = MulScale(actor->int_xvel(), bsin(actor->int_ang()), 20); sectp->addceilingxpan((float)nx); sectp->addceilingypan((float)ny); @@ -2626,8 +2626,8 @@ void DoPanning(void) { wallp = actor->tempwall; - nx = MulScale(actor->spr.xvel, bcos(actor->int_ang()), 20); - ny = MulScale(actor->spr.xvel, bsin(actor->int_ang()), 20); + nx = MulScale(actor->int_xvel(), bcos(actor->int_ang()), 20); + ny = MulScale(actor->int_xvel(), bsin(actor->int_ang()), 20); wallp->addxpan((float)nx); wallp->addypan((float)ny); diff --git a/source/games/sw/src/skull.cpp b/source/games/sw/src/skull.cpp index 1104f3a59..4471068d3 100644 --- a/source/games/sw/src/skull.cpp +++ b/source/games/sw/src/skull.cpp @@ -252,7 +252,7 @@ int SetupSkull(DSWActor* actor) int DoSkullMove(DSWActor* actor) { - auto vect = MOVExy(actor->spr.xvel, actor->spr.angle); + auto vect = MOVExy(actor->int_xvel(), actor->spr.angle); double daz = actor->float_zvel(); actor->user.coll = move_missile(actor, DVector3(vect, daz), 16, 16, CLIPMASK_MISSILE, ACTORMOVETICS); diff --git a/source/games/sw/src/swactor.h b/source/games/sw/src/swactor.h index f76aa556d..a96f2da06 100644 --- a/source/games/sw/src/swactor.h +++ b/source/games/sw/src/swactor.h @@ -38,7 +38,7 @@ public: inline void UpdateChangeXY(DSWActor* actor) { - actor->user.change.XY() = MOVExy(actor->spr.xvel, actor->spr.angle); + actor->user.change.XY() = MOVExy(actor->int_xvel(), actor->spr.angle); } inline void UpdateChange(DSWActor* actor, double zfactor = 1.0) diff --git a/source/games/sw/src/weapon.cpp b/source/games/sw/src/weapon.cpp index cd637a9cf..fa1c85456 100644 --- a/source/games/sw/src/weapon.cpp +++ b/source/games/sw/src/weapon.cpp @@ -7920,7 +7920,7 @@ int DoPlasma(DSWActor* actor) auto oldv = actor->spr.pos; DoBlurExtend(actor, 0, 4); - auto vec = MOVExy(actor->spr.xvel, actor->spr.angle); + auto vec = MOVExy(actor->int_xvel(), actor->spr.angle); double daz = actor->float_zvel(); actor->user.coll = move_missile(actor, DVector3(vec, daz), 16, 16, CLIPMASK_MISSILE, MISSILEMOVETICS); @@ -8849,7 +8849,7 @@ int DoBoltThinMan(DSWActor* actor) { DoBlurExtend(actor, 0, 4); - auto vec = MOVExy(actor->spr.xvel, actor->spr.angle); + auto vec = MOVExy(actor->int_xvel(), actor->spr.angle); double daz = actor->float_zvel(); actor->user.coll = move_missile(actor, DVector3(vec, daz), CEILING_DIST, FLOOR_DIST, CLIPMASK_MISSILE, MISSILEMOVETICS); @@ -9420,7 +9420,7 @@ int DoBoltSeeker(DSWActor* actor) MissileSeek(actor, 30, 768/*, 4, 48, 6*/); DoBlurExtend(actor, 0, 4); - auto vec = MOVExy(actor->spr.xvel, actor->spr.angle); + auto vec = MOVExy(actor->int_xvel(), actor->spr.angle); double daz = actor->float_zvel(); actor->user.coll = move_missile(actor, DVector3(vec, daz), CEILING_DIST, FLOOR_DIST, CLIPMASK_MISSILE, MISSILEMOVETICS); @@ -9459,7 +9459,7 @@ int DoElectro(DSWActor* actor) if (actor->user.Counter > 0) MissileSeek(actor, 30, 512/*, 3, 52, 2*/); - auto vec = MOVExy(actor->spr.xvel, actor->spr.angle); + auto vec = MOVExy(actor->int_xvel(), actor->spr.angle); double daz = actor->float_zvel(); actor->user.coll = move_missile(actor, DVector3(vec, daz), CEILING_DIST, FLOOR_DIST, CLIPMASK_MISSILE, MISSILEMOVETICS); @@ -16081,7 +16081,7 @@ int HelpMissileLateral(DSWActor* actor, int dist) actor->spr.xvel = dist; - auto vec = MOVExy(actor->spr.xvel, actor->spr.angle); + auto vec = MOVExy(actor->int_xvel(), actor->spr.angle); actor->spr.clipdist = 32L >> 2;