diff --git a/source/games/duke/src/actors.cpp b/source/games/duke/src/actors.cpp index edb4b3c39..2172b01d4 100644 --- a/source/games/duke/src/actors.cpp +++ b/source/games/duke/src/actors.cpp @@ -496,7 +496,7 @@ void moveplayers(void) if (act->spr.extra < 8) { - act->spr.xvel = 128; + act->set_int_xvel(128); act->spr.angle = p->angle.ang; act->spr.extra++; ssp(act, CLIPMASK0); @@ -1000,7 +1000,7 @@ void movemasterswitch(DDukeActor *actor) void movetrash(DDukeActor *actor) { - if (actor->int_xvel() == 0) actor->spr.xvel = 1; + if (actor->int_xvel() == 0) actor->set_int_xvel(1); if (ssp(actor, CLIPMASK0)) { makeitfall(actor); @@ -1286,7 +1286,7 @@ void bounce(DDukeActor* actor) } actor->set_int_zvel(zvect); - actor->spr.xvel = ksqrt(DMulScale(xvect, xvect, yvect, yvect, 8)); + actor->set_int_xvel(ksqrt(DMulScale(xvect, xvect, yvect, yvect, 8))); actor->spr.angle = VecToAngle(xvect, yvect); } @@ -1519,8 +1519,8 @@ bool queball(DDukeActor *actor, int pocket, int queball, int stripeball) if (act2 == nullptr) { if (actor->spr.pal == 12) - actor->spr.xvel = 164; - else actor->spr.xvel = 140; + actor->set_int_xvel(164); + else actor->set_int_xvel(140); actor->set_int_ang(ps[p].angle.ang.Buildang()); ps[p].toggle_key_flag = 2; } @@ -1530,7 +1530,7 @@ bool queball(DDukeActor *actor, int pocket, int queball, int stripeball) if (x < 512 && actor->sector() == ps[p].cursector) { actor->spr.angle = VecToAngle(actor->spr.pos.XY() - ps[p].pos.XY()); - actor->spr.xvel = 48; + actor->set_int_xvel(48); } } return true; @@ -1559,7 +1559,7 @@ void forcesphere(DDukeActor* actor, int forcesphere) k->spr.clipdist = 64; k->set_int_ang(j); k->set_int_zvel(bsin(l, -5)); - k->spr.xvel = bcos(l, -9); + k->set_int_xvel(bcos(l, -9)); k->SetOwner(actor); } } @@ -1638,7 +1638,7 @@ void recon(DDukeActor *actor, int explosion, int firelaser, int attacksnd, int p if ((actor->temp_data[2] & 3) == 0) spawn(actor, explosion); getglobalz(actor); actor->add_int_ang(96); - actor->spr.xvel = 128; + actor->set_int_xvel(128); int j = ssp(actor, CLIPMASK0); if (j != 1 || actor->spr.pos.Z > actor->floorz) { @@ -2095,7 +2095,7 @@ bool money(DDukeActor* actor, int BLOODPOOL) { auto sectp = actor->sector(); - actor->spr.xvel = (krand() & 7) + bsin(actor->temp_data[0], -9); + actor->set_int_xvel((krand() & 7) + bsin(actor->temp_data[0], -9)); actor->temp_data[0] += (krand() & 63); if ((actor->temp_data[0] & 2047) > 512 && (actor->temp_data[0] & 2047) < 1596) { @@ -2646,7 +2646,7 @@ void handle_se00(DDukeActor* actor) else l = 1; if (actor->temp_data[3] == 0) actor->temp_data[3] = ldist(actor, Owner); - actor->spr.xvel = actor->temp_data[3]; + actor->set_int_xvel(actor->temp_data[3]); actor->spr.pos.XY() = Owner->spr.pos.XY(); actor->add_int_ang((l * q)); actor->temp_data[2] += (l * q); @@ -3112,7 +3112,7 @@ void handle_se02(DDukeActor* actor) { actor->temp_data[0]++; - actor->spr.xvel = 3; + actor->set_int_xvel(3); if (actor->temp_data[0] > 96) { @@ -3329,7 +3329,7 @@ void handle_se05(DDukeActor* actor, int FIRELASER) return; } - else actor->spr.xvel = 256; + else actor->set_int_xvel(256); x = getangle(Owner->spr.pos.XY() - actor->spr.pos.XY()); int q = getincangle(actor->int_ang(), x) >> 3; @@ -3708,7 +3708,7 @@ void handle_se15(DDukeActor* actor) { if (actor->temp_data[4]) { - actor->spr.xvel = 16; + actor->set_int_xvel(16); if (actor->temp_data[4] == 1) //Opening { @@ -4113,8 +4113,8 @@ void handle_se20(DDukeActor* actor) auto sc = actor->sector(); if (actor->temp_data[0] == 0) return; - if (actor->temp_data[0] == 1) actor->spr.xvel = 8; - else actor->spr.xvel = -8; + if (actor->temp_data[0] == 1) actor->set_int_xvel(8); + else actor->set_int_xvel(-8); if(actor->float_xvel() != 0) //Moving { @@ -4237,7 +4237,7 @@ void handle_se26(DDukeActor* actor) auto sc = actor->sector(); double zvel = actor->float_zvel(); - actor->spr.xvel = 32; + actor->set_int_xvel(32); DVector2 vect = 2 * actor->spr.angle.ToVector(); // was: (32 * bsin) >> 14 actor->spr.shade++; @@ -4515,7 +4515,7 @@ void handle_se35(DDukeActor *actor, int SMALLSMOKE, int EXPLOSION2) auto spawned = spawn(actor, SMALLSMOKE); if (spawned) { - spawned->spr.xvel = 96 + (krand() & 127); + spawned->set_int_xvel(96 + (krand() & 127)); ssp(spawned, CLIPMASK0); SetActor(spawned, spawned->spr.pos); if (rnd(16)) @@ -4608,7 +4608,7 @@ void handle_se130(DDukeActor *actor, int countmax, int EXPLOSION2) k->spr.xrepeat = k->spr.yrepeat = 2 + (krand() & 7); k->set_int_z(sc->int_floorz() - (krand() % x)); k->add_int_ang(256 - (krand() % 511)); - k->spr.xvel = krand() & 127; + k->set_int_xvel(krand() & 127); ssp(k, CLIPMASK0); } } @@ -4786,14 +4786,14 @@ void getglobalz(DDukeActor* actor) if( actor->spr.statnum != STAT_PROJECTILE) { actor->spr.cstat2 |= CSTAT2_SPRITE_NOSHADOW; // No shadows on actors - actor->spr.xvel = -256; + actor->set_int_xvel(-256); ssp(actor, CLIPMASK0); } } else if(lz.actor()->isPlayer() && badguy(actor) ) { actor->spr.cstat2 |= CSTAT2_SPRITE_NOSHADOW; // No shadows on actors - actor->spr.xvel = -256; + actor->set_int_xvel(-256); ssp(actor, CLIPMASK0); } else if(actor->spr.statnum == STAT_PROJECTILE && lz.actor()->isPlayer() && actor->GetOwner() == actor) diff --git a/source/games/duke/src/actors_d.cpp b/source/games/duke/src/actors_d.cpp index 526607695..ad292d348 100644 --- a/source/games/duke/src/actors_d.cpp +++ b/source/games/duke/src/actors_d.cpp @@ -749,7 +749,7 @@ void movefallers_d(void) act->spr.lotag-=3; if (act->spr.lotag <= 0) { - act->spr.xvel = (32 + (krand() & 63)); + act->set_int_xvel((32 + (krand() & 63))); act->set_int_zvel(-(1024 + (krand() & 1023))); } } @@ -832,7 +832,7 @@ static void movetripbomb(DDukeActor *actor) if (spawned) { spawned->spr.angle = actor->spr.angle; - spawned->spr.xvel = 348; + spawned->set_int_xvel(348); ssp(spawned, CLIPMASK0); } @@ -1313,7 +1313,7 @@ static bool movefireball(DDukeActor* actor) { actor->temp_actor = ball; - ball->spr.xvel = actor->int_xvel(); + ball->set_int_xvel(actor->int_xvel()); ball->spr.yvel = actor->spr.yvel; ball->set_int_zvel(actor->int_zvel()); if (actor->temp_data[0] > 1) @@ -1322,7 +1322,7 @@ static bool movefireball(DDukeActor* actor) { FireProj* proj = &trail->fproj; ball->spr.pos = trail->temp_pos; - ball->spr.xvel = proj->vel.X; + ball->set_int_xvel(proj->vel.X); ball->spr.yvel = proj->vel.Y; ball->set_int_zvel(proj->vel.Z); } @@ -1980,7 +1980,7 @@ void movetransports_d(void) auto k = spawn(act2, WATERSPLASH2); if (k && sectlotag == 1 && act2->spr.statnum == 4) { - k->spr.xvel = act2->spr.xvel >> 1; + k->set_int_xvel(act2->spr.xvel >> 1); k->spr.angle = act2->spr.angle; ssp(k, CLIPMASK0); } @@ -2375,7 +2375,7 @@ static void greenslime(DDukeActor *actor) else { if (actor->int_xvel() < 32) actor->spr.xvel += 4; - actor->spr.xvel = 64 - bcos(actor->temp_data[1], -9); + actor->set_int_xvel(64 - bcos(actor->temp_data[1], -9)); actor->add_int_ang(getincangle(actor->int_ang(), getangle(ps[p].pos.XY() - actor->spr.pos.XY())) >> 3); @@ -3172,17 +3172,17 @@ void handle_se06_d(DDukeActor* actor) if (actor->temp_data[4] < ((k >> 1) - (k >> 3))) { actor->temp_data[4] = 0; - actor->spr.xvel = k; + actor->set_int_xvel(k); } } - else actor->spr.xvel = k; + else actor->set_int_xvel(k); DukeStatIterator it(STAT_EFFECTOR); while (auto act2 = it.Next()) { if ((act2->spr.lotag == 14) && (sh == act2->spr.hitag) && (act2->temp_data[0] == actor->temp_data[0])) { - act2->spr.xvel = actor->int_xvel(); + act2->set_int_xvel(actor->int_xvel()); //if( actor->temp_data[4] == 1 ) { if (act2->temp_data[5] == 0) diff --git a/source/games/duke/src/actors_r.cpp b/source/games/duke/src/actors_r.cpp index 0da647725..9086082a4 100644 --- a/source/games/duke/src/actors_r.cpp +++ b/source/games/duke/src/actors_r.cpp @@ -667,7 +667,7 @@ void movefallers_r(void) if (act->spr.lotag > 0) { act->spr.lotag -= 3; - act->spr.xvel = ((64 + krand()) & 127); + act->set_int_xvel(((64 + krand()) & 127)); act->set_int_zvel(-(1024 + (krand() & 1023))); } else @@ -1657,7 +1657,7 @@ void movetransports_r(void) auto spawned = spawn(act2, WATERSPLASH2); if (spawned && sectlotag == 1 && act2->spr.statnum == 4) { - spawned->spr.xvel = act2->spr.xvel >> 1; + spawned->set_int_xvel(act2->spr.xvel >> 1); spawned->spr.angle = act2->spr.angle; ssp(spawned, CLIPMASK0); } @@ -2583,7 +2583,7 @@ static int henstand(DDukeActor *actor) deletesprite(hitact); if (ns) { - ns->spr.xvel = 32; + ns->set_int_xvel(32); ns->spr.lotag = 40; ns->spr.angle = actor->spr.angle; } @@ -3159,7 +3159,7 @@ void handle_se06_r(DDukeActor *actor) if (actor->temp_data[4] < ((k >> 1) - (k >> 3))) { actor->temp_data[4] = 0; - actor->spr.xvel = k; + actor->set_int_xvel(k); if ((!isRRRA() || lastlevel) && hulkspawn) { hulkspawn--; @@ -3194,7 +3194,7 @@ void handle_se06_r(DDukeActor *actor) } else { - actor->spr.xvel = k; + actor->set_int_xvel(k); DukeSectIterator it(actor->sector()); while (auto a2 = it.Next()) { @@ -3234,7 +3234,7 @@ void handle_se06_r(DDukeActor *actor) { if ((act2->spr.lotag == 14) && (sh == act2->spr.hitag) && (act2->temp_data[0] == actor->temp_data[0])) { - act2->spr.xvel = actor->int_xvel(); + act2->set_int_xvel(actor->int_xvel()); // if( actor->temp_data[4] == 1 ) { if (act2->temp_data[5] == 0) diff --git a/source/games/duke/src/gameexec.cpp b/source/games/duke/src/gameexec.cpp index 051686952..990ed7754 100644 --- a/source/games/duke/src/gameexec.cpp +++ b/source/games/duke/src/gameexec.cpp @@ -1237,7 +1237,7 @@ void DoActor(bool bSet, int lVar1, int lLabelID, int lVar2, DDukeActor* sActor, else SetGameVarID(lVar2, act->spr.intowner, sActor, sPlayer); break; case ACTOR_XVEL: - if (bSet) act->spr.xvel = lValue; + if (bSet) act->set_int_xvel(lValue); else SetGameVarID(lVar2, act->int_xvel(), sActor, sPlayer); break; case ACTOR_YVEL: @@ -1612,7 +1612,7 @@ int ParseState::parse(void) case concmd_rndmove: g_ac->set_int_ang(krand() & 2047); - g_ac->spr.xvel = 25; + g_ac->set_int_xvel(25); insptr++; break; case concmd_mamatrigger: diff --git a/source/games/duke/src/player.cpp b/source/games/duke/src/player.cpp index f10462743..c5f5b14e1 100644 --- a/source/games/duke/src/player.cpp +++ b/source/games/duke/src/player.cpp @@ -1056,7 +1056,7 @@ void shootbloodsplat(DDukeActor* actor, int p, int sx, int sy, int sz, int sa, i auto spawned = spawn(actor, atwith); if (spawned) { - spawned->spr.xvel = -12; + spawned->set_int_xvel(-12); spawned->set_int_ang(getangle(-hit.hitWall->delta()) + 512); // note the '-' sign here! spawned->spr.pos = hit.hitpos; spawned->spr.cstat |= randomXFlip(); diff --git a/source/games/duke/src/player_d.cpp b/source/games/duke/src/player_d.cpp index b43826f7f..d361cba7e 100644 --- a/source/games/duke/src/player_d.cpp +++ b/source/games/duke/src/player_d.cpp @@ -195,7 +195,7 @@ static void shootflamethrowerflame(DDukeActor* actor, int p, DVector3 spos, DAng { spawned = spawn(actor, FLAMETHROWERFLAME); if (!spawned) return; - spawned->spr.xvel = (short)(vel * worldtoint); + spawned->set_int_xvel(vel * worldtoint); spawned->set_int_zvel(zvel * 256); } @@ -297,7 +297,7 @@ static void shootknee(DDukeActor* actor, int p, int sx, int sy, int sz, int sa) { splash->spr.pos.XY() = hit.hitpos.XY(); splash->spr.angle = ps[p].angle.ang; // Total tweek - splash->spr.xvel = 32; + splash->set_int_xvel(32); ssp(actor, CLIPMASK0); splash->clear_xvel(); } @@ -442,7 +442,7 @@ static void shootweapon(DDukeActor *actor, int p, int sx, int sy, int sz, int sa if (jib) { jib->spr.pos.Z += 4; - jib->spr.xvel = 16; + jib->set_int_xvel(16); jib->spr.xrepeat = jib->spr.yrepeat = 24; jib->add_int_ang(64 - (krand() & 127)); } @@ -512,7 +512,7 @@ static void shootweapon(DDukeActor *actor, int p, int sx, int sy, int sz, int sa auto hole = spawn(spark, BULLETHOLE); if (hole) { - hole->spr.xvel = -1; + hole->set_int_xvel(-1); hole->set_int_ang(getangle(-hit.hitWall->delta()) + 512); ssp(hole, CLIPMASK0); hole->spr.cstat2 |= CSTAT2_SPRITE_DECAL; @@ -648,9 +648,9 @@ static void shootstuff(DDukeActor* actor, int p, int sx, int sy, int sz, int sa, if (actor->spr.picnum == BOSS2) { l = spawned->spr.xvel; - spawned->spr.xvel = 1024; + spawned->set_int_xvel(1024); ssp(spawned, CLIPMASK0); - spawned->spr.xvel = l; + spawned->set_int_xvel(l); spawned->add_int_ang(128 - (krand() & 255)); } } @@ -885,7 +885,7 @@ static void shootlaser(DDukeActor* actor, int p, int sx, int sy, int sz, int sa) ud.bomb_tag = (ud.bomb_tag + 1) & 32767; bomb->spr.hitag = ud.bomb_tag; S_PlayActorSound(LASERTRIP_ONWALL, bomb); - bomb->spr.xvel = -20; + bomb->set_int_xvel(-20); ssp(bomb, CLIPMASK0); bomb->spr.cstat = CSTAT_SPRITE_ALIGNMENT_WALL; auto delta = hit.hitWall->delta(); @@ -1064,7 +1064,7 @@ void shoot_d(DDukeActor* actor, int atwith) k->setsector(sect); k->spr.pos = spos; k->spr.angle = sang; - k->spr.xvel = 500; + k->set_int_xvel(500); k->clear_zvel(); } return; @@ -2862,7 +2862,7 @@ void processinput_d(int snum) p->playerweaponsway(pact->spr.xvel); - pact->spr.xvel = int(clamp((p->pos.XY() - p->bobpos).Length(), 0., 32.) * worldtoint); + pact->set_int_xvel(int(clamp((p->pos.XY() - p->bobpos).Length(), 0., 32.) * worldtoint)); if (p->on_ground) p->bobcounter += p->GetActor()->spr.xvel >> 1; p->backuppos(ud.clipping == 0 && ((p->insector() && p->cursector->floorpicnum == MIRROR) || !p->insector())); diff --git a/source/games/duke/src/player_r.cpp b/source/games/duke/src/player_r.cpp index 2b798d032..02cbe077a 100644 --- a/source/games/duke/src/player_r.cpp +++ b/source/games/duke/src/player_r.cpp @@ -187,7 +187,7 @@ static void shootmelee(DDukeActor *actor, int p, int sx, int sy, int sz, int sa, { splash->spr.pos.XY() = hit.hitpos.XY(); splash->spr.angle = ps[p].angle.ang; // Total tweek - splash->spr.xvel = 32; + splash->set_int_xvel(32); ssp(actor, 0); splash->clear_xvel(); } @@ -335,7 +335,7 @@ static void shootweapon(DDukeActor* actor, int p, int sx, int sy, int sz, int sa if (l) { l->spr.pos.Z += 4; - l->spr.xvel = 16; + l->set_int_xvel(16); l->spr.xrepeat = l->spr.yrepeat = 24; l->add_int_ang(64 - (krand() & 127)); } @@ -409,7 +409,7 @@ static void shootweapon(DDukeActor* actor, int p, int sx, int sy, int sz, int sa auto hole = spawn(spark, BULLETHOLE); if (hole) { - hole->spr.xvel = -1; + hole->set_int_xvel(-1); hole->set_int_ang(getangle(-hit.hitWall->delta()) + 512); ssp(hole, CLIPMASK0); hole->spr.cstat2 |= CSTAT2_SPRITE_DECAL; @@ -891,7 +891,7 @@ void shoot_r(DDukeActor* actor, int atwith) auto j = spawn(actor, atwith); if (j) { - j->spr.xvel = 32; + j->set_int_xvel(32); j->spr.angle = actor->spr.angle; j->spr.pos.Z -= 5; } @@ -902,7 +902,7 @@ void shoot_r(DDukeActor* actor, int atwith) auto j = spawn(actor, atwith); if (j) { - j->spr.xvel = 250; + j->set_int_xvel(250); j->spr.angle = actor->spr.angle; j->spr.pos.Z -= 15; } @@ -3581,7 +3581,7 @@ void processinput_r(int snum) p->playerweaponsway(pact->spr.xvel); - pact->spr.xvel = int(clamp((p->pos.XY() - p->bobpos).Length(), 0., 32.) * worldtoint); + pact->set_int_xvel(int(clamp((p->pos.XY() - p->bobpos).Length(), 0., 32.) * worldtoint)); if (p->on_ground) p->bobcounter += p->GetActor()->spr.xvel >> 1; p->backuppos(ud.clipping == 0 && ((p->insector() && p->cursector->floorpicnum == MIRROR) || !p->insector())); diff --git a/source/games/duke/src/sectors_d.cpp b/source/games/duke/src/sectors_d.cpp index 1f00774f4..b36576286 100644 --- a/source/games/duke/src/sectors_d.cpp +++ b/source/games/duke/src/sectors_d.cpp @@ -1040,7 +1040,7 @@ void checkhitsprite_d(DDukeActor* targ, DDukeActor* proj) case STRIPEBALL: if (proj->spr.picnum == QUEBALL || proj->spr.picnum == STRIPEBALL) { - proj->spr.xvel = (targ->spr.xvel >> 1) + (targ->spr.xvel >> 2); + proj->set_int_xvel((targ->spr.xvel >> 1) + (targ->spr.xvel >> 2)); proj->add_int_ang(-((targ->int_ang() << 1) + 1024)); targ->set_int_ang(getangle(targ->int_pos().X - proj->int_pos().X, targ->int_pos().Y - proj->int_pos().Y) - 512); if (S_CheckSoundPlaying(POOLBALLHIT) < 2) @@ -1050,7 +1050,7 @@ void checkhitsprite_d(DDukeActor* targ, DDukeActor* proj) { if (krand() & 3) { - targ->spr.xvel = 164; + targ->set_int_xvel(164); targ->spr.angle = proj->spr.angle; } else @@ -1367,7 +1367,7 @@ void checkhitsprite_d(DDukeActor* targ, DDukeActor* proj) if (proj->spr.pal == 6) spawned->spr.pal = 6; spawned->spr.pos.Z += 4; - spawned->spr.xvel = 16; + spawned->set_int_xvel(16); spawned->spr.xrepeat = spawned->spr.yrepeat = 24; spawned->add_int_ang(32 - (krand() & 63)); } @@ -1388,7 +1388,7 @@ void checkhitsprite_d(DDukeActor* targ, DDukeActor* proj) { if ((targ->spr.cstat & CSTAT_SPRITE_ALIGNMENT_MASK) == 0) targ->set_int_ang((proj->int_ang() + 1024) & 2047); - targ->spr.xvel = -(proj->spr.extra << 2); + targ->set_int_xvel(-(proj->spr.extra << 2)); auto sp = targ->sector(); pushmove(targ, &sp, 128L, (4 << 8), (4 << 8), CLIPMASK0); if (sp != targ->sector() && sp != nullptr) diff --git a/source/games/duke/src/sectors_r.cpp b/source/games/duke/src/sectors_r.cpp index 7d8f0dfe4..bd01e8dd7 100644 --- a/source/games/duke/src/sectors_r.cpp +++ b/source/games/duke/src/sectors_r.cpp @@ -2063,7 +2063,7 @@ void checkhitsprite_r(DDukeActor* targ, DDukeActor* proj) EGS(targ->sector(), targ->int_pos().X, targ->int_pos().Y, targ->int_pos().Z - (8 << 8), SCRAP6 + (krand() & 15), -8, 48, 48, krand() & 2047, (krand() & 63) + 64, -(krand() & 4095) - (targ->int_zvel() >> 2), targ, 5); break; case BOWLINGBALL: - proj->spr.xvel = (targ->spr.xvel >> 1) + (targ->spr.xvel >> 2); + proj->set_int_xvel((targ->spr.xvel >> 1) + (targ->spr.xvel >> 2)); proj->add_int_ang(-(krand() & 16)); S_PlayActorSound(355, targ); break; @@ -2076,7 +2076,7 @@ void checkhitsprite_r(DDukeActor* targ, DDukeActor* proj) case HENSTAND + 1: if (proj->spr.picnum == QUEBALL || proj->spr.picnum == STRIPEBALL) { - proj->spr.xvel = (targ->spr.xvel >> 1) + (targ->spr.xvel >> 2); + proj->set_int_xvel((targ->spr.xvel >> 1) + (targ->spr.xvel >> 2)); proj->add_int_ang(-((targ->int_ang() << 1) + 1024)); targ->set_int_ang(getangle(targ->int_pos().X - proj->int_pos().X, targ->int_pos().Y - proj->int_pos().Y) - 512); if (S_CheckSoundPlaying(POOLBALLHIT) < 2) @@ -2084,14 +2084,14 @@ void checkhitsprite_r(DDukeActor* targ, DDukeActor* proj) } else if (proj->spr.picnum == BOWLINGPIN || proj->spr.picnum == BOWLINGPIN + 1) { - proj->spr.xvel = (targ->spr.xvel >> 1) + (targ->spr.xvel >> 2); + proj->set_int_xvel((targ->spr.xvel >> 1) + (targ->spr.xvel >> 2)); proj->add_int_ang(-(((targ->int_ang() << 1) + krand()) & 64)); targ->set_int_ang((targ->int_ang() + krand()) & 16); S_PlayActorSound(355, targ); } else if (proj->spr.picnum == HENSTAND || proj->spr.picnum == HENSTAND + 1) { - proj->spr.xvel = (targ->spr.xvel >> 1) + (targ->spr.xvel >> 2); + proj->set_int_xvel((targ->spr.xvel >> 1) + (targ->spr.xvel >> 2)); proj->add_int_ang(-(((targ->int_ang() << 1) + krand()) & 16)); targ->set_int_ang((targ->int_ang() + krand()) & 16); S_PlayActorSound(355, targ); @@ -2100,7 +2100,7 @@ void checkhitsprite_r(DDukeActor* targ, DDukeActor* proj) { if (krand() & 3) { - targ->spr.xvel = 164; + targ->set_int_xvel(164); targ->spr.angle = proj->spr.angle; } } @@ -2332,7 +2332,7 @@ void checkhitsprite_r(DDukeActor* targ, DDukeActor* proj) if (proj->spr.pal == 6) spawned->spr.pal = 6; spawned->spr.pos.Z += 4; - spawned->spr.xvel = 16; + spawned->set_int_xvel(16); spawned->spr.xrepeat = spawned->spr.yrepeat = 24; spawned->add_int_ang(32 - (krand() & 63)); } diff --git a/source/games/duke/src/spawn.cpp b/source/games/duke/src/spawn.cpp index 50d0d4fb8..4cb42efb3 100644 --- a/source/games/duke/src/spawn.cpp +++ b/source/games/duke/src/spawn.cpp @@ -71,7 +71,7 @@ DDukeActor* CreateActor(sectortype* whatsectp, const DVector3& pos, int s_pn, in act->spr.pal = 0; act->set_int_ang(s_a); - act->spr.xvel = s_ve; + act->set_int_xvel(s_ve); act->set_int_zvel(s_zv); act->spr.xoffset = 0; act->spr.yoffset = 0; @@ -328,7 +328,7 @@ void spawntransporter(DDukeActor *actj, DDukeActor* act, bool beam) act->spr.cstat = CSTAT_SPRITE_YCENTER | CSTAT_SPRITE_TRANSLUCENT; act->spr.angle = actj->spr.angle; - act->spr.xvel = 128; + act->set_int_xvel(128); ChangeActorStat(act, STAT_MISC); ssp(act, CLIPMASK0); SetActor(act, act->spr.pos); @@ -456,12 +456,12 @@ void initshell(DDukeActor* actj, DDukeActor* act, bool isshell) { // to the right, with feeling act->spr.angle = ang + DAngle90; - act->spr.xvel = 30; + act->set_int_xvel(30); } else { act->spr.angle = ang - DAngle90; - act->spr.xvel = 20; + act->set_int_xvel(20); } act->spr.xrepeat = act->spr.yrepeat = isRR() && isshell? 2 : 4; @@ -534,7 +534,7 @@ void initwaterdrip(DDukeActor* actj, DDukeActor* actor) } else actor->spr.pos.Z -= 13; actor->spr.angle = VecToAngle(ps[connecthead].pos.XY() - actor->spr.pos.XY()); - actor->spr.xvel = 48 - (krand() & 31); + actor->set_int_xvel(48 - (krand() & 31)); ssp(actor, CLIPMASK0); } else if (!actj) diff --git a/source/games/duke/src/spawn_d.cpp b/source/games/duke/src/spawn_d.cpp index cfa8d1bce..fc476567c 100644 --- a/source/games/duke/src/spawn_d.cpp +++ b/source/games/duke/src/spawn_d.cpp @@ -204,7 +204,7 @@ DDukeActor* spawninit_d(DDukeActor* actj, DDukeActor* act, TArray* act->spr.angle = actj->spr.angle; act->spr.pos.Z -= gs.playerheight; act->set_int_zvel(256 - (krand() & 511)); - act->spr.xvel = 64 - (krand() & 127); + act->set_int_xvel(64 - (krand() & 127)); ChangeActorStat(act, 4); break; case NATURALLIGHTNING: @@ -336,7 +336,7 @@ DDukeActor* spawninit_d(DDukeActor* actj, DDukeActor* act, TArray* ud.bomb_tag = (ud.bomb_tag + 1) & 32767; act->spr.hitag = ud.bomb_tag; - act->spr.xvel = 16; + act->set_int_xvel(16); ssp(act, CLIPMASK0); act->temp_data[0] = 17; act->temp_data[2] = 0; @@ -515,10 +515,9 @@ DDukeActor* spawninit_d(DDukeActor* actj, DDukeActor* act, TArray* [[fallthrough]]; case DUKECAR: case HELECOPT: - // if(act->spr.picnum == HELECOPT || act->spr.picnum == DUKECAR) act->spr.xvel = 1024; act->spr.cstat = 0; act->spr.extra = 1; - act->spr.xvel = 292; + act->set_int_xvel(292); act->set_int_zvel(360); [[fallthrough]]; case RESPAWNMARKERRED: @@ -1108,7 +1107,7 @@ DDukeActor* spawninit_d(DDukeActor* actj, DDukeActor* act, TArray* act->spr.angle = actj->spr.angle; act->spr.cstat = CSTAT_SPRITE_ALIGNMENT_WALL | CSTAT_SPRITE_YCENTER | CSTAT_SPRITE_TRANSLUCENT; act->spr.xrepeat = act->spr.yrepeat = 1; - act->spr.xvel = -8; + act->set_int_xvel(-8); ssp(act, CLIPMASK0); } [[fallthrough]]; @@ -1163,7 +1162,7 @@ DDukeActor* spawninit_d(DDukeActor* actj, DDukeActor* act, TArray* act->spr.pal = 0; act->SetOwner(act); ChangeActorStat(act, STAT_STANDABLE); - act->spr.xvel = 8; + act->set_int_xvel(8); ssp(act, CLIPMASK0); break; diff --git a/source/games/duke/src/spawn_r.cpp b/source/games/duke/src/spawn_r.cpp index de4184eac..1b7e81dfb 100644 --- a/source/games/duke/src/spawn_r.cpp +++ b/source/games/duke/src/spawn_r.cpp @@ -286,7 +286,7 @@ DDukeActor* spawninit_r(DDukeActor* actj, DDukeActor* act, TArray* act->spr.angle = actj->spr.angle; act->spr.pos.Z -= gs.playerheight; act->set_int_zvel(256 - (krand() & 511)); - act->spr.xvel = 64 - (krand() & 127); + act->set_int_xvel(64 - (krand() & 127)); ChangeActorStat(act, 4); break; case TRANSPORTERSTAR: @@ -487,7 +487,7 @@ DDukeActor* spawninit_r(DDukeActor* actj, DDukeActor* act, TArray* act->spr.clipdist = 8; act->spr.xrepeat = 32; act->spr.yrepeat = 26; - act->spr.xvel = 32; + act->set_int_xvel(32); ChangeActorStat(act, 1); break; case RRTILE3120: @@ -495,7 +495,7 @@ DDukeActor* spawninit_r(DDukeActor* actj, DDukeActor* act, TArray* act->spr.clipdist = 8; act->spr.xrepeat = 12; act->spr.yrepeat = 10; - act->spr.xvel = 32; + act->set_int_xvel(32); ChangeActorStat(act, 1); break; case RRTILE3122: @@ -503,7 +503,7 @@ DDukeActor* spawninit_r(DDukeActor* actj, DDukeActor* act, TArray* act->spr.clipdist = 2; act->spr.xrepeat = 8; act->spr.yrepeat = 6; - act->spr.xvel = 16; + act->set_int_xvel(16); ChangeActorStat(act, 1); break; case RRTILE3123: @@ -511,7 +511,7 @@ DDukeActor* spawninit_r(DDukeActor* actj, DDukeActor* act, TArray* act->spr.clipdist = 8; act->spr.xrepeat = 13; act->spr.yrepeat = 13; - act->spr.xvel = 16; + act->set_int_xvel(16); ChangeActorStat(act, 1); break; case RRTILE3124: @@ -519,7 +519,7 @@ DDukeActor* spawninit_r(DDukeActor* actj, DDukeActor* act, TArray* act->spr.clipdist = 8; act->spr.xrepeat = 17; act->spr.yrepeat = 12; - act->spr.xvel = 32; + act->set_int_xvel(32); ChangeActorStat(act, 1); break; case RRTILE3132: @@ -547,7 +547,7 @@ DDukeActor* spawninit_r(DDukeActor* actj, DDukeActor* act, TArray* } act->spr.cstat = 0; act->spr.extra = 1; - act->spr.xvel = 292; + act->set_int_xvel(292); act->set_int_zvel(360); [[fallthrough]]; case RESPAWNMARKERRED: @@ -1277,7 +1277,7 @@ DDukeActor* spawninit_r(DDukeActor* actj, DDukeActor* act, TArray* act->spr.xrepeat = 11; act->spr.yrepeat = 11; act->spr.yvel = 4; - act->spr.xvel = 32; + act->set_int_xvel(32); break; case RPGSPRITE: act->spr.xrepeat = 16; @@ -1358,7 +1358,7 @@ DDukeActor* spawninit_r(DDukeActor* actj, DDukeActor* act, TArray* act->spr.angle = actj->spr.angle; act->spr.cstat = CSTAT_SPRITE_ALIGNMENT_WALL | CSTAT_SPRITE_YCENTER | CSTAT_SPRITE_TRANSLUCENT; act->spr.xrepeat = act->spr.yrepeat = 1; - act->spr.xvel = -8; + act->set_int_xvel(-8); ssp(act, CLIPMASK0); } [[fallthrough]]; @@ -1400,7 +1400,7 @@ DDukeActor* spawninit_r(DDukeActor* actj, DDukeActor* act, TArray* act->spr.pal = 0; act->SetOwner(act); ChangeActorStat(act, STAT_STANDABLE); - act->spr.xvel = 8; + act->set_int_xvel(8); ssp(act, CLIPMASK0); break; diff --git a/source/games/exhumed/src/anubis.cpp b/source/games/exhumed/src/anubis.cpp index ba04685ed..58bf6a12a 100644 --- a/source/games/exhumed/src/anubis.cpp +++ b/source/games/exhumed/src/anubis.cpp @@ -157,7 +157,7 @@ void AIAnubis::Tick(RunListEvent* ev) ap->nFrame = 0; ap->pTarget = pTarget; - ap->spr.xvel = bcos(ap->int_ang(), -2); + ap->set_int_xvel(bcos(ap->int_ang(), -2)); ap->spr.yvel = bsin(ap->int_ang(), -2); } } @@ -170,7 +170,7 @@ void AIAnubis::Tick(RunListEvent* ev) PlotCourseToSprite(ap, pTarget); int nAngle = ap->int_ang() & 0xFFF8; - ap->spr.xvel = bcos(nAngle, -2); + ap->set_int_xvel(bcos(nAngle, -2)); ap->spr.yvel = bsin(nAngle, -2); } @@ -194,7 +194,7 @@ void AIAnubis::Tick(RunListEvent* ev) case kHitWall: { ap->set_int_ang((ap->int_ang() + 256) & kAngleMask); - ap->spr.xvel = bcos(ap->int_ang(), -2); + ap->set_int_xvel(bcos(ap->int_ang(), -2)); ap->spr.yvel = bsin(ap->int_ang(), -2); break; } @@ -258,7 +258,7 @@ void AIAnubis::Tick(RunListEvent* ev) { ap->nAction = 1; - ap->spr.xvel = bcos(ap->int_ang(), -2); + ap->set_int_xvel(bcos(ap->int_ang(), -2)); ap->spr.yvel = bsin(ap->int_ang(), -2); ap->nFrame = 0; } diff --git a/source/games/exhumed/src/bullet.cpp b/source/games/exhumed/src/bullet.cpp index 4be561bc6..22aae904e 100644 --- a/source/games/exhumed/src/bullet.cpp +++ b/source/games/exhumed/src/bullet.cpp @@ -229,7 +229,7 @@ void BulletHitsSprite(Bullet *pBullet, DExhumedActor* pBulletActor, DExhumedActo { int nAngle = (pActor->int_ang() + 256) - RandomSize(9); - pHitActor->spr.xvel = bcos(nAngle, 1); + pHitActor->set_int_xvel(bcos(nAngle, 1)); pHitActor->spr.yvel = bsin(nAngle, 1); pHitActor->set_int_zvel((-(RandomSize(3) + 1)) << 8); } @@ -238,12 +238,12 @@ void BulletHitsSprite(Bullet *pBullet, DExhumedActor* pBulletActor, DExhumedActo int xVel = pHitActor->int_xvel(); int yVel = pHitActor->spr.yvel; - pHitActor->spr.xvel = bcos(pActor->int_ang(), -2); + pHitActor->set_int_xvel(bcos(pActor->int_ang(), -2)); pHitActor->spr.yvel = bsin(pActor->int_ang(), -2); MoveCreature(pHitActor); - pHitActor->spr.xvel = xVel; + pHitActor->set_int_xvel(xVel); pHitActor->spr.yvel = yVel; } diff --git a/source/games/exhumed/src/fish.cpp b/source/games/exhumed/src/fish.cpp index 2c558daa1..d640fbdbf 100644 --- a/source/games/exhumed/src/fish.cpp +++ b/source/games/exhumed/src/fish.cpp @@ -51,7 +51,7 @@ void BuildFishLimb(DExhumedActor* pActor, int anim) pChunkActor->spr.cstat = 0; pChunkActor->spr.shade = -12; pChunkActor->spr.pal = 0; - pChunkActor->spr.xvel = (RandomSize(5) - 16) << 8; + pChunkActor->set_int_xvel((RandomSize(5) - 16) << 8); pChunkActor->spr.yvel = (RandomSize(5) - 16) << 8; pChunkActor->spr.xrepeat = 64; pChunkActor->spr.yrepeat = 64; @@ -187,7 +187,7 @@ void IdleFish(DExhumedActor* pActor, int edx) pActor->add_int_ang((256 - RandomSize(9)) + 1024); pActor->norm_ang(); - pActor->spr.xvel = bcos(pActor->int_ang(), -8); + pActor->set_int_xvel(bcos(pActor->int_ang(), -8)); pActor->spr.yvel = bsin(pActor->int_ang(), -8); pActor->nAction = 0; @@ -373,7 +373,7 @@ void AIFish::Tick(RunListEvent* ev) if (z <= nHeight) { - pActor->spr.xvel = bcos(pActor->int_ang(), -5) - bcos(pActor->int_ang(), -7); + pActor->set_int_xvel(bcos(pActor->int_ang(), -5) - bcos(pActor->int_ang(), -7)); pActor->spr.yvel = bsin(pActor->int_ang(), -5) - bsin(pActor->int_ang(), -7); } else diff --git a/source/games/exhumed/src/lavadude.cpp b/source/games/exhumed/src/lavadude.cpp index 6c5625b2e..d73058bfa 100644 --- a/source/games/exhumed/src/lavadude.cpp +++ b/source/games/exhumed/src/lavadude.cpp @@ -45,7 +45,7 @@ DExhumedActor* BuildLavaLimb(DExhumedActor* pActor, int move, int ebx) pLimbActor->spr.cstat = 0; pLimbActor->spr.shade = -127; pLimbActor->spr.pal = 1; - pLimbActor->spr.xvel = (RandomSize(5) - 16) << 8; + pLimbActor->set_int_xvel((RandomSize(5) - 16) << 8); pLimbActor->spr.yvel = (RandomSize(5) - 16) << 8; pLimbActor->set_int_zvel(2560 - (RandomSize(5) << 8)); pLimbActor->spr.xoffset = 0; @@ -264,7 +264,7 @@ void AILavaDude::Tick(RunListEvent* ev) PlotCourseToSprite(pActor, pTarget); - pActor->spr.xvel = bcos(pActor->int_ang()); + pActor->set_int_xvel(bcos(pActor->int_ang())); pActor->spr.yvel = bsin(pActor->int_ang()); if (pTarget && !RandomSize(1)) @@ -288,7 +288,7 @@ void AILavaDude::Tick(RunListEvent* ev) pActor->spr.pos = pos; pActor->set_int_ang((pActor->int_ang() + ((RandomWord() & 0x3FF) + 1024)) & kAngleMask); - pActor->spr.xvel = bcos(pActor->int_ang()); + pActor->set_int_xvel(bcos(pActor->int_ang())); pActor->spr.yvel = bsin(pActor->int_ang()); break; } @@ -300,7 +300,7 @@ void AILavaDude::Tick(RunListEvent* ev) if (coll.type == kHitWall) { pActor->set_int_ang((pActor->int_ang() + ((RandomWord() & 0x3FF) + 1024)) & kAngleMask); - pActor->spr.xvel = bcos(pActor->int_ang()); + pActor->set_int_xvel(bcos(pActor->int_ang())); pActor->spr.yvel = bsin(pActor->int_ang()); break; } diff --git a/source/games/exhumed/src/lion.cpp b/source/games/exhumed/src/lion.cpp index d058339fd..9ebc02671 100644 --- a/source/games/exhumed/src/lion.cpp +++ b/source/games/exhumed/src/lion.cpp @@ -236,7 +236,7 @@ void AILion::Tick(RunListEvent* ev) pActor->nAction = 2; pActor->nFrame = 0; - pActor->spr.xvel = bcos(pActor->int_ang(), -1); + pActor->set_int_xvel(bcos(pActor->int_ang(), -1)); pActor->spr.yvel = bsin(pActor->int_ang(), -1); pActor->pTarget = pTarget; return; @@ -252,7 +252,7 @@ void AILion::Tick(RunListEvent* ev) if (RandomBit()) { pActor->set_int_ang(RandomWord() & kAngleMask); - pActor->spr.xvel = bcos(pActor->int_ang(), -1); + pActor->set_int_xvel(bcos(pActor->int_ang(), -1)); pActor->spr.yvel = bsin(pActor->int_ang(), -1); } else @@ -278,12 +278,12 @@ void AILion::Tick(RunListEvent* ev) if (pActor->spr.cstat & CSTAT_SPRITE_INVISIBLE) { - pActor->spr.xvel = bcos(nAng, 1); + pActor->set_int_xvel(bcos(nAng, 1)); pActor->spr.yvel = bsin(nAng, 1); } else { - pActor->spr.xvel = bcos(nAng, -1); + pActor->set_int_xvel(bcos(nAng, -1)); pActor->spr.yvel = bsin(nAng, -1); } } @@ -292,7 +292,7 @@ void AILion::Tick(RunListEvent* ev) { // loc_378FA: pActor->set_int_ang((pActor->int_ang() + 256) & kAngleMask); - pActor->spr.xvel = bcos(pActor->int_ang(), -1); + pActor->set_int_xvel(bcos(pActor->int_ang(), -1)); pActor->spr.yvel = bsin(pActor->int_ang(), -1); break; } @@ -323,7 +323,7 @@ void AILion::Tick(RunListEvent* ev) { // loc_378FA: pActor->set_int_ang((pActor->int_ang() + 256) & kAngleMask); - pActor->spr.xvel = bcos(pActor->int_ang(), -1); + pActor->set_int_xvel(bcos(pActor->int_ang(), -1)); pActor->spr.yvel = bsin(pActor->int_ang(), -1); break; } @@ -409,7 +409,7 @@ void AILion::Tick(RunListEvent* ev) pActor->set_int_ang(nAngle); pActor->nAction = 6; - pActor->spr.xvel = bcos(pActor->int_ang()) - bcos(pActor->int_ang(), -3); + pActor->set_int_xvel(bcos(pActor->int_ang()) - bcos(pActor->int_ang(), -3)); pActor->spr.yvel = bsin(pActor->int_ang()) - bsin(pActor->int_ang(), -3); D3PlayFX(StaticSound[kSound24], pActor); } @@ -448,7 +448,7 @@ void AILion::Tick(RunListEvent* ev) { // loc_378FA: pActor->set_int_ang((pActor->int_ang() + 256) & kAngleMask); - pActor->spr.xvel = bcos(pActor->int_ang(), -1); + pActor->set_int_xvel(bcos(pActor->int_ang(), -1)); pActor->spr.yvel = bsin(pActor->int_ang(), -1); break; } @@ -476,7 +476,7 @@ void AILion::Tick(RunListEvent* ev) pActor->set_int_zvel(-1000); pActor->nAction = 6; - pActor->spr.xvel = bcos(pActor->int_ang()) - bcos(pActor->int_ang(), -3); + pActor->set_int_xvel(bcos(pActor->int_ang()) - bcos(pActor->int_ang(), -3)); pActor->spr.yvel = bsin(pActor->int_ang()) - bsin(pActor->int_ang(), -3); D3PlayFX(StaticSound[kSound24], pActor); } diff --git a/source/games/exhumed/src/move.cpp b/source/games/exhumed/src/move.cpp index fd7baf260..dd53ddad4 100644 --- a/source/games/exhumed/src/move.cpp +++ b/source/games/exhumed/src/move.cpp @@ -638,7 +638,7 @@ Collision MoveCreatureWithCaution(DExhumedActor* pActor) ChangeActorSect(pActor, pSectorPre); pActor->set_int_ang((pActor->int_ang() + 256) & kAngleMask); - pActor->spr.xvel = bcos(pActor->int_ang(), -2); + pActor->set_int_xvel(bcos(pActor->int_ang(), -2)); pActor->spr.yvel = bsin(pActor->int_ang(), -2); Collision c; c.setNone(); @@ -1314,7 +1314,7 @@ DExhumedActor* BuildCreatureChunk(DExhumedActor* pSrc, int nPic, bool bSpecial) pActor->spr.shade = -12; pActor->spr.pal = 0; - pActor->spr.xvel = (RandomSize(5) - 16) << 7; + pActor->set_int_xvel((RandomSize(5) - 16) << 7); pActor->spr.yvel = (RandomSize(5) - 16) << 7; pActor->set_int_zvel((-(RandomSize(8) + 512)) << 3); @@ -1401,7 +1401,7 @@ void AICreatureChunk::Tick(RunListEvent* ev) int nSqrt = lsqrt(((pActor->spr.yvel >> 10) * (pActor->spr.yvel >> 10) + (pActor->spr.xvel >> 10) * (pActor->spr.xvel >> 10)) >> 8); - pActor->spr.xvel = bcos(nAngle) * (nSqrt >> 1); + pActor->set_int_xvel(bcos(nAngle) * (nSqrt >> 1)); pActor->spr.yvel = bsin(nAngle) * (nSqrt >> 1); return; } diff --git a/source/games/exhumed/src/mummy.cpp b/source/games/exhumed/src/mummy.cpp index 84c8c25e3..7fe5cf7cc 100644 --- a/source/games/exhumed/src/mummy.cpp +++ b/source/games/exhumed/src/mummy.cpp @@ -176,7 +176,7 @@ void AIMummy::Tick(RunListEvent* ev) pActor->nAction = 1; pActor->nCount = 90; - pActor->spr.xvel = bcos(pActor->int_ang(), -2); + pActor->set_int_xvel(bcos(pActor->int_ang(), -2)); pActor->spr.yvel = bsin(pActor->int_ang(), -2); } } @@ -218,7 +218,7 @@ void AIMummy::Tick(RunListEvent* ev) // loc_2B5A8 if (!pActor->nFrame) { - pActor->spr.xvel = bcos(pActor->int_ang(), -1); + pActor->set_int_xvel(bcos(pActor->int_ang(), -1)); pActor->spr.yvel = bsin(pActor->int_ang(), -1); } @@ -260,7 +260,7 @@ void AIMummy::Tick(RunListEvent* ev) case kHitWall: { pActor->set_int_ang((pActor->int_ang() + ((RandomWord() & 0x3FF) + 1024)) & kAngleMask); - pActor->spr.xvel = bcos(pActor->int_ang(), -2); + pActor->set_int_xvel(bcos(pActor->int_ang(), -2)); pActor->spr.yvel = bsin(pActor->int_ang(), -2); return; } diff --git a/source/games/exhumed/src/object.cpp b/source/games/exhumed/src/object.cpp index 288ba3ed6..a464cb7b2 100644 --- a/source/games/exhumed/src/object.cpp +++ b/source/games/exhumed/src/object.cpp @@ -1384,12 +1384,12 @@ DExhumedActor* BuildSpark(DExhumedActor* pActor, int nVal) if (nVal) { - pSpark->spr.xvel = bcos(nAngle, -5); + pSpark->set_int_xvel(bcos(nAngle, -5)); pSpark->spr.yvel = bsin(nAngle, -5); } else { - pSpark->spr.xvel = bcos(nAngle, -6); + pSpark->set_int_xvel(bcos(nAngle, -6)); pSpark->spr.yvel = bsin(nAngle, -6); } diff --git a/source/games/exhumed/src/player.cpp b/source/games/exhumed/src/player.cpp index b0fb77a3b..35186d70c 100644 --- a/source/games/exhumed/src/player.cpp +++ b/source/games/exhumed/src/player.cpp @@ -747,7 +747,7 @@ void AIPlayer::Tick(RunListEvent* ev) PlayerList[nPlayer].horizon.resetadjustment(); PlayerList[nPlayer].oeyelevel = PlayerList[nPlayer].eyelevel; - pPlayerActor->spr.xvel = sPlayerInput[nPlayer].xVel >> 14; + pPlayerActor->set_int_xvel(sPlayerInput[nPlayer].xVel >> 14); pPlayerActor->spr.yvel = sPlayerInput[nPlayer].yVel >> 14; if (sPlayerInput[nPlayer].nItem > -1) diff --git a/source/games/exhumed/src/queen.cpp b/source/games/exhumed/src/queen.cpp index a78a78edf..99ae35307 100644 --- a/source/games/exhumed/src/queen.cpp +++ b/source/games/exhumed/src/queen.cpp @@ -280,7 +280,7 @@ void SetHeadVel(DExhumedActor* pActor) { int nAngle = pActor->int_ang(); - pActor->spr.xvel = bcos(nAngle, nVelShift); + pActor->set_int_xvel(bcos(nAngle, nVelShift)); pActor->spr.yvel = bsin(nAngle, nVelShift); } @@ -444,7 +444,7 @@ void BuildQueenEgg(int nQueen, int nVal) { pActor2->spr.xrepeat = 30; pActor2->spr.yrepeat = 30; - pActor2->spr.xvel = bcos(pActor2->int_ang()); + pActor2->set_int_xvel(bcos(pActor2->int_ang())); pActor2->spr.yvel = bsin(pActor2->int_ang()); pActor2->set_int_zvel(-6000); pActor2->spr.cstat = 0; @@ -571,7 +571,7 @@ void AIQueenEgg::Tick(RunListEvent* ev) } pActor->set_int_ang(nAngle); - pActor->spr.xvel = bcos(nAngle, -1); + pActor->set_int_xvel(bcos(nAngle, -1)); pActor->spr.yvel = bsin(nAngle, -1); } @@ -604,7 +604,7 @@ void AIQueenEgg::Tick(RunListEvent* ev) case kHitWall: pActor->set_int_ang((RandomSize(9) + 768)); pActor->norm_ang(); - pActor->spr.xvel = bcos(pActor->int_ang(), -3); + pActor->set_int_xvel(bcos(pActor->int_ang(), -3)); pActor->spr.yvel = bsin(pActor->int_ang(), -3); pActor->set_int_zvel(-RandomSize(5)); break; @@ -1128,7 +1128,7 @@ void BuildQueen(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, void SetQueenSpeed(DExhumedActor* pActor, int nSpeed) { - pActor->spr.xvel = bcos(pActor->int_ang(), -(2 - nSpeed)); + pActor->set_int_xvel(bcos(pActor->int_ang(), -(2 - nSpeed))); pActor->spr.yvel = bsin(pActor->int_ang(), -(2 - nSpeed)); } diff --git a/source/games/exhumed/src/rat.cpp b/source/games/exhumed/src/rat.cpp index db4575a97..5485e6573 100644 --- a/source/games/exhumed/src/rat.cpp +++ b/source/games/exhumed/src/rat.cpp @@ -69,7 +69,7 @@ void InitRats() void SetRatVel(DExhumedActor* pActor) { - pActor->spr.xvel = bcos(pActor->int_ang(), -2); + pActor->set_int_xvel(bcos(pActor->int_ang(), -2)); pActor->spr.yvel = bsin(pActor->int_ang(), -2); } diff --git a/source/games/exhumed/src/rex.cpp b/source/games/exhumed/src/rex.cpp index a8068e4ec..5c623eee1 100644 --- a/source/games/exhumed/src/rex.cpp +++ b/source/games/exhumed/src/rex.cpp @@ -221,7 +221,7 @@ void AIRex::Tick(RunListEvent* ev) pActor->nAction = 1; pActor->nFrame = 0; - pActor->spr.xvel = bcos(pActor->int_ang(), -2); + pActor->set_int_xvel(bcos(pActor->int_ang(), -2)); pActor->spr.yvel = bsin(pActor->int_ang(), -2); D3PlayFX(StaticSound[kSound48], pActor); @@ -255,7 +255,7 @@ void AIRex::Tick(RunListEvent* ev) if (((PlotCourseToSprite(pActor, pTarget) >> 8) >= 60) || pActor->nCount > 0) { int nAngle = pActor->int_ang() & 0xFFF8; - pActor->spr.xvel = bcos(nAngle, -2); + pActor->set_int_xvel(bcos(nAngle, -2)); pActor->spr.yvel = bsin(nAngle, -2); } else @@ -287,7 +287,7 @@ void AIRex::Tick(RunListEvent* ev) case kHitWall: { pActor->set_int_ang((pActor->int_ang() + 256) & kAngleMask); - pActor->spr.xvel = bcos(pActor->int_ang(), -2); + pActor->set_int_xvel(bcos(pActor->int_ang(), -2)); pActor->spr.yvel = bsin(pActor->int_ang(), -2); pActor->nAction = 1; pActor->nFrame = 0; @@ -306,7 +306,7 @@ void AIRex::Tick(RunListEvent* ev) { PlotCourseToSprite(pActor, pTarget); - pActor->spr.xvel = bcos(pActor->int_ang(), -1); + pActor->set_int_xvel(bcos(pActor->int_ang(), -1)); pActor->spr.yvel = bsin(pActor->int_ang(), -1); auto nMov = MoveCreatureWithCaution(pActor); @@ -319,7 +319,7 @@ void AIRex::Tick(RunListEvent* ev) pActor->nCount = 60; pActor->set_int_ang((pActor->int_ang() + 256) & kAngleMask); - pActor->spr.xvel = bcos(pActor->int_ang(), -2); + pActor->set_int_xvel(bcos(pActor->int_ang(), -2)); pActor->spr.yvel = bsin(pActor->int_ang(), -2); pActor->nAction = 1; pActor->nFrame = 0; diff --git a/source/games/exhumed/src/roach.cpp b/source/games/exhumed/src/roach.cpp index 1c4b94d85..01ab2717c 100644 --- a/source/games/exhumed/src/roach.cpp +++ b/source/games/exhumed/src/roach.cpp @@ -91,7 +91,7 @@ void BuildRoach(int nType, DExhumedActor* pActor, const DVector3& pos, sectortyp void GoRoach(DExhumedActor* pActor) { - pActor->spr.xvel = bcos(pActor->int_ang(), -1) - bcos(pActor->int_ang(), -3); + pActor->set_int_xvel(bcos(pActor->int_ang(), -1) - bcos(pActor->int_ang(), -3)); pActor->spr.yvel = bsin(pActor->int_ang(), -1) - bsin(pActor->int_ang(), -3); } diff --git a/source/games/exhumed/src/scorp.cpp b/source/games/exhumed/src/scorp.cpp index 48f658c92..4c9f4f9d5 100644 --- a/source/games/exhumed/src/scorp.cpp +++ b/source/games/exhumed/src/scorp.cpp @@ -217,7 +217,7 @@ void AIScorp::Tick(RunListEvent* ev) D3PlayFX(StaticSound[kSound41], pActor); pActor->nFrame = 0; - pActor->spr.xvel = bcos(pActor->int_ang()); + pActor->set_int_xvel(bcos(pActor->int_ang())); pActor->spr.yvel = bsin(pActor->int_ang()); pActor->nAction = 1; @@ -302,7 +302,7 @@ void AIScorp::Tick(RunListEvent* ev) { pActor->nAction = 1; - pActor->spr.xvel = bcos(pActor->int_ang()); + pActor->set_int_xvel(bcos(pActor->int_ang())); pActor->spr.yvel = bsin(pActor->int_ang()); pActor->nFrame = 0; @@ -371,7 +371,7 @@ void AIScorp::Tick(RunListEvent* ev) int nVel = RandomSize(5) + 1; - pSpiderActor->spr.xvel = bcos(pSpiderActor->int_ang(), -8) * nVel; + pSpiderActor->set_int_xvel(bcos(pSpiderActor->int_ang(), -8) * nVel); pSpiderActor->spr.yvel = bsin(pSpiderActor->int_ang(), -8) * nVel; pSpiderActor->set_int_zvel((-(RandomSize(5) + 3)) << 8); } @@ -410,7 +410,7 @@ void AIScorp::Effect(RunListEvent* ev, DExhumedActor* pTarget, int mode) pActor->add_int_ang(RandomSize(7) - 63); pActor->norm_ang(); - pActor->spr.xvel = bcos(pActor->int_ang()); + pActor->set_int_xvel(bcos(pActor->int_ang())); pActor->spr.yvel = bsin(pActor->int_ang()); } if (mode <= 1) diff --git a/source/games/exhumed/src/set.cpp b/source/games/exhumed/src/set.cpp index 761ecba58..02faa43c2 100644 --- a/source/games/exhumed/src/set.cpp +++ b/source/games/exhumed/src/set.cpp @@ -295,7 +295,7 @@ void AISet::Tick(RunListEvent* ev) pActor->nFrame = 0; pActor->pTarget = pTarget; - pActor->spr.xvel = bcos(pActor->int_ang(), -1); + pActor->set_int_xvel(bcos(pActor->int_ang(), -1)); pActor->spr.yvel = bsin(pActor->int_ang(), -1); } } @@ -389,7 +389,7 @@ void AISet::Tick(RunListEvent* ev) // loc_338E2 int nAngle = pActor->int_ang() & 0xFFF8; - pActor->spr.xvel = bcos(nAngle, -1); + pActor->set_int_xvel(bcos(nAngle, -1)); pActor->spr.yvel = bsin(nAngle, -1); if (pActor->nIndex2) @@ -419,7 +419,7 @@ void AISet::Tick(RunListEvent* ev) } pActor->set_int_ang((pActor->int_ang() + 256) & kAngleMask); - pActor->spr.xvel = bcos(pActor->int_ang(), -1); + pActor->set_int_xvel(bcos(pActor->int_ang(), -1)); pActor->spr.yvel = bsin(pActor->int_ang(), -1); break; } @@ -522,7 +522,7 @@ void AISet::Tick(RunListEvent* ev) pActor->nAction = 8; pActor->nFrame = 0; - pActor->spr.xvel = bcos(pActor->int_ang()); + pActor->set_int_xvel(bcos(pActor->int_ang())); pActor->spr.yvel = bsin(pActor->int_ang()); } return; diff --git a/source/games/exhumed/src/spider.cpp b/source/games/exhumed/src/spider.cpp index aece31580..c274741ef 100644 --- a/source/games/exhumed/src/spider.cpp +++ b/source/games/exhumed/src/spider.cpp @@ -142,7 +142,7 @@ void AISpider::Tick(RunListEvent* ev) spp->nFrame = 0; spp->pTarget = pTarget; - spp->spr.xvel = bcos(spp->int_ang()); + spp->set_int_xvel(bcos(spp->int_ang())); spp->spr.yvel = bsin(spp->int_ang()); return; } @@ -193,7 +193,7 @@ void AISpider::Tick(RunListEvent* ev) if (RandomSize(3)) { - spp->spr.xvel = bcos(spp->int_ang()); + spp->set_int_xvel(bcos(spp->int_ang())); spp->spr.yvel = bsin(spp->int_ang()); } else @@ -300,7 +300,7 @@ void AISpider::Tick(RunListEvent* ev) case kHitWall: { spp->set_int_ang((spp->int_ang() + 256) & 0x7EF); - spp->spr.xvel = bcos(spp->int_ang()); + spp->set_int_xvel(bcos(spp->int_ang())); spp->spr.yvel = bsin(spp->int_ang()); return; } diff --git a/source/games/exhumed/src/wasp.cpp b/source/games/exhumed/src/wasp.cpp index 0c055acfe..d6847d03f 100644 --- a/source/games/exhumed/src/wasp.cpp +++ b/source/games/exhumed/src/wasp.cpp @@ -36,7 +36,7 @@ static actionSeq WaspSeq[] = { void SetWaspVel(DExhumedActor* pActor) { - pActor->spr.xvel = bcos(pActor->int_ang()); + pActor->set_int_xvel(bcos(pActor->int_ang())); pActor->spr.yvel = bsin(pActor->int_ang()); } diff --git a/source/games/sw/src/actor.cpp b/source/games/sw/src/actor.cpp index 27c7bf43a..93b780630 100644 --- a/source/games/sw/src/actor.cpp +++ b/source/games/sw/src/actor.cpp @@ -155,7 +155,7 @@ int DoActorDie(DSWActor* actor, DSWActor* weapActor, int meansofdeath) ChangeState(actor, actor->user.StateEnd); actor->user.RotNum = 0; actor->user.ActorActionFunc = nullptr; - actor->spr.xvel = 200 + RandomRange(200); + actor->set_int_xvel(200 + RandomRange(200)); actor->user.jump_speed = -200 - RandomRange(250); DoActorBeginJump(actor); actor->spr.angle = weapActor->spr.angle; @@ -223,12 +223,12 @@ int DoActorDie(DSWActor* actor, DSWActor* weapActor, int meansofdeath) // Rippers still gotta jump or they fall off walls weird if (actor->user.ID == RIPPER_RUN_R0 || actor->user.ID == RIPPER2_RUN_R0) { - actor->spr.xvel = 75 + RandomRange(100); + actor->set_int_xvel(75 + RandomRange(100)); actor->user.jump_speed = -100 - RandomRange(150); } else { - actor->spr.xvel = 100 + RandomRange(200); + actor->set_int_xvel(100 + RandomRange(200)); actor->user.jump_speed = -100 - RandomRange(250); } DoActorBeginJump(actor); @@ -256,7 +256,7 @@ int DoActorDie(DSWActor* actor, DSWActor* weapActor, int meansofdeath) ChangeState(actor, actor->user.StateEnd); actor->user.RotNum = 0; actor->user.ActorActionFunc = nullptr; - actor->spr.xvel = 300 + RandomRange(400); + actor->set_int_xvel(300 + RandomRange(400)); actor->user.jump_speed = -300 - RandomRange(350); DoActorBeginJump(actor); actor->spr.angle = weapActor->spr.angle; diff --git a/source/games/sw/src/ai.cpp b/source/games/sw/src/ai.cpp index 43b893c1f..1dab2d1ef 100644 --- a/source/games/sw/src/ai.cpp +++ b/source/games/sw/src/ai.cpp @@ -115,9 +115,9 @@ void DoActorSetSpeed(DSWActor* actor, uint8_t speed) actor->user.speed = speed; if (ActorFlaming(actor)) - actor->spr.xvel = actor->user.Attrib->Speed[speed] + (actor->user.Attrib->Speed[speed] >> 1); + actor->set_int_xvel(actor->user.Attrib->Speed[speed] + (actor->user.Attrib->Speed[speed] >> 1)); else - actor->spr.xvel = actor->user.Attrib->Speed[speed]; + actor->set_int_xvel(actor->user.Attrib->Speed[speed]); } /* diff --git a/source/games/sw/src/bunny.cpp b/source/games/sw/src/bunny.cpp index 668055028..708b3cb56 100644 --- a/source/games/sw/src/bunny.cpp +++ b/source/games/sw/src/bunny.cpp @@ -1195,7 +1195,7 @@ DSWActor* BunnyHatch2(DSWActor* actor) { PickJumpMaxSpeed(actorNew, -600-RandomRange(600)); actorNew->spr.xrepeat = actorNew->spr.yrepeat = 64; - actorNew->spr.xvel = 150 + RandomRange(1000); + actorNew->set_int_xvel(150 + RandomRange(1000)); actorNew->user.Health = 1; // Easy to pop. Like shootn' skeet. actorNew->add_int_ang(-RandomRange(128)); actorNew->add_int_ang(RandomRange(128)); diff --git a/source/games/sw/src/hornet.cpp b/source/games/sw/src/hornet.cpp index ee44145bb..371f54d75 100644 --- a/source/games/sw/src/hornet.cpp +++ b/source/games/sw/src/hornet.cpp @@ -413,7 +413,7 @@ int InitHornetCircle(DSWActor* actor) DoActorSetSpeed(actor, FAST_SPEED); // set to really fast - actor->spr.xvel = 400; + actor->set_int_xvel(400); // angle adjuster actor->user.Counter2 = actor->spr.xvel/3; // random angle direction diff --git a/source/games/sw/src/jweapon.cpp b/source/games/sw/src/jweapon.cpp index 4d217debd..1eee8dab6 100644 --- a/source/games/sw/src/jweapon.cpp +++ b/source/games/sw/src/jweapon.cpp @@ -1164,7 +1164,7 @@ int SpawnRadiationCloud(DSWActor* actor) //actorNew->spr.cstat |= (CSTAT_SPRITE_YFLIP); actorNew->spr.angle = RANDOM_ANGLE(); - actorNew->spr.xvel = RANDOM_P2(32); + actorNew->set_int_xvel(RANDOM_P2(32)); actorNew->user.Counter = 0; actorNew->user.Counter2 = 0; diff --git a/source/games/sw/src/player.cpp b/source/games/sw/src/player.cpp index 704fec34b..d70cee9d1 100644 --- a/source/games/sw/src/player.cpp +++ b/source/games/sw/src/player.cpp @@ -2001,7 +2001,7 @@ void DoPlayerMove(PLAYER* pp) if (labs(pp->vect.X) < 12800 && labs(pp->vect.Y) < 12800) pp->vect.X = pp->vect.Y = 0; - actor->spr.xvel = FindDistance2D(pp->vect.X,pp->vect.Y)>>14; + actor->set_int_xvel(FindDistance2D(pp->vect.X,pp->vect.Y)>>14); if (pp->Flags & (PF_CLIP_CHEAT)) { diff --git a/source/games/sw/src/skull.cpp b/source/games/sw/src/skull.cpp index 8bf2ad5c2..4adcc5229 100644 --- a/source/games/sw/src/skull.cpp +++ b/source/games/sw/src/skull.cpp @@ -456,7 +456,7 @@ int DoSkullWait(DSWActor* actor) if (dist < 8000) { actor->spr.angle = VecToAngle(actor->user.targetActor->spr.pos - actor->spr.pos); - actor->spr.xvel = 128 + (RANDOM_P2(256<<8)>>8); + actor->set_int_xvel(128 + (RANDOM_P2(256<<8)>>8)); actor->user.jump_speed = -700; NewStateGroup(actor, sg_SkullJump); DoBeginJump(actor); @@ -818,7 +818,7 @@ int DoBettyWait(DSWActor* actor) if (dist < 8000) { actor->spr.angle = VecToAngle(actor->user.targetActor->spr.pos - actor->spr.pos); - actor->spr.xvel = 128 + (RANDOM_P2(256<<8)>>8); + actor->set_int_xvel(128 + (RANDOM_P2(256<<8)>>8)); actor->user.jump_speed = -700; NewStateGroup(actor, sg_BettyJump); DoBeginJump(actor); diff --git a/source/games/sw/src/sprite.cpp b/source/games/sw/src/sprite.cpp index 8b3d1e671..6278c4e62 100644 --- a/source/games/sw/src/sprite.cpp +++ b/source/games/sw/src/sprite.cpp @@ -894,7 +894,7 @@ DSWActor* SpawnActor(int stat, int id, STATE* state, sectortype* sect, const DVe spawnedActor->spr.xrepeat = 64; spawnedActor->spr.yrepeat = 64; spawnedActor->spr.angle = init_ang; - spawnedActor->spr.xvel = vel; + spawnedActor->set_int_xvel(vel); return spawnedActor; } @@ -1829,7 +1829,7 @@ void SpriteSetup(void) if (TEST_BOOL1(actor)) actor->clear_xvel(); else - actor->spr.xvel = actor->spr.lotag; + actor->set_int_xvel(actor->spr.lotag); StartInterpolation(actor->sector(), Interp_Sect_FloorPanX); StartInterpolation(actor->sector(), Interp_Sect_FloorPanY); @@ -1843,7 +1843,7 @@ void SpriteSetup(void) if (TEST_BOOL1(actor)) actor->clear_xvel(); else - actor->spr.xvel = actor->spr.lotag; + actor->set_int_xvel(actor->spr.lotag); StartInterpolation(actor->sector(), Interp_Sect_CeilingPanX); StartInterpolation(actor->sector(), Interp_Sect_CeilingPanY); change_actor_stat(actor, STAT_CEILING_PAN); @@ -1869,7 +1869,7 @@ void SpriteSetup(void) if (TEST_BOOL1(actor)) actor->clear_xvel(); else - actor->spr.xvel = actor->spr.lotag; + actor->set_int_xvel(actor->spr.lotag); actor->set_int_ang(SP_TAG6(actor)); // attach to the sector that contains the wall ChangeActorSect(actor, hit.hitSector); @@ -2845,21 +2845,6 @@ KeyMain: case FIRE_FLY0: - /* - * SpawnUser(actor, FIRE_FLY0, nullptr); - * - * actor->user.State = actor->user.StateStart = &s_FireFly[0]; actor->user.RotNum = 0; - * - * actor->spr.angle = 0; actor->spr.xvel = 4; - * - * if (labs(actor->spr.z - actor->sector()->int_floorz()) < Z(32)) actor->spr.z = - * actor->sector()->int_floorz() - Z(32); - * - * actor->user.sz = actor->spr.z; - * - * change_actor_stat(actor, STAT_MISC); - */ - break; case ICON_REPAIR_KIT: @@ -3492,7 +3477,7 @@ void SetupItemForJump(DSWActor* spawner, DSWActor* actor) actor->user.floor_dist = (0); actor->user.Counter = 0; - actor->spr.xvel = (int)SP_TAG7(spawner)<<2; + actor->set_int_xvel((int)SP_TAG7(spawner)<<2); actor->set_int_zvel(-(((int)SP_TAG8(spawner))<<5)); UpdateChange(actor); diff --git a/source/games/sw/src/track.cpp b/source/games/sw/src/track.cpp index a07fd781e..73f5ccf93 100644 --- a/source/games/sw/src/track.cpp +++ b/source/games/sw/src/track.cpp @@ -3448,7 +3448,7 @@ int ActorFollowTrack(DSWActor* actor, short locktics) } // update the real velocity - actor->spr.xvel = (actor->user.track_vel) >> 8; + actor->set_int_xvel((actor->user.track_vel) >> 8); } else if (actor->user.Flags & (SPR_SLOW_DOWN)) { @@ -3458,7 +3458,7 @@ int ActorFollowTrack(DSWActor* actor, short locktics) actor->user.Flags &= ~(SOBJ_SLOW_DOWN); } - actor->spr.xvel = (actor->user.track_vel) >> 8; + actor->set_int_xvel((actor->user.track_vel) >> 8); } diff --git a/source/games/sw/src/weapon.cpp b/source/games/sw/src/weapon.cpp index 8cc34e0d7..ecc406a30 100644 --- a/source/games/sw/src/weapon.cpp +++ b/source/games/sw/src/weapon.cpp @@ -3765,7 +3765,7 @@ AutoShrap: actor->spr.pal = actor->user.spal = uint8_t(shrap_pal); - actor->spr.xvel = p->min_vel*2; + actor->set_int_xvel(p->min_vel*2); actor->spr.xvel += RandomRange(p->max_vel - p->min_vel); actor->user.floor_dist = 2; @@ -4129,7 +4129,7 @@ int SpawnBlood(DSWActor* actor, DSWActor* weapActor, DAngle hit_angle, const DVe actorNew->spr.pal = actorNew->user.spal = uint8_t(shrap_pal); - actorNew->spr.xvel = p->min_vel; + actorNew->set_int_xvel(p->min_vel); actorNew->spr.xvel += RandomRange(p->max_vel - p->min_vel); // special case @@ -10885,7 +10885,7 @@ bool MissileSetPos(DSWActor* actor, ANIMATOR* DoWeapon, int dist) oldzvel = actor->int_zvel(); // make missile move in smaller increments - actor->spr.xvel = short((dist * 6) / MISSILEMOVETICS); + actor->set_int_xvel(short((dist * 6) / MISSILEMOVETICS)); actor->set_int_zvel(short((actor->int_zvel() * 6) / MISSILEMOVETICS)); // some Weapon Animators use this @@ -10898,7 +10898,7 @@ bool MissileSetPos(DSWActor* actor, ANIMATOR* DoWeapon, int dist) // reset values actor->user.change = oldc; - actor->spr.xvel = oldvel; + actor->set_int_xvel(oldvel); actor->set_int_zvel(oldzvel); // update for interpolation @@ -10918,7 +10918,7 @@ bool TestMissileSetPos(DSWActor* actor, ANIMATOR* DoWeapon, int dist, int zvel) oldzvel = actor->int_zvel(); // make missile move in smaller increments - actor->spr.xvel = short((dist * 6) / MISSILEMOVETICS); + actor->set_int_xvel(short((dist * 6) / MISSILEMOVETICS)); zvel = short((zvel*6) / MISSILEMOVETICS); // some Weapon Animators use this @@ -10932,7 +10932,7 @@ bool TestMissileSetPos(DSWActor* actor, ANIMATOR* DoWeapon, int dist, int zvel) // reset values actor->user.change = oldc; - actor->spr.xvel = oldvel; + actor->set_int_xvel(oldvel); actor->set_int_zvel(oldzvel); // update for interpolation @@ -11058,7 +11058,7 @@ void InitSpellRing(PLAYER* pp) auto actorNew = SpawnActor(STAT_MISSILE_SKIP4, FIREBALL1, s_Ring, pp->cursector, pp->pos, DAngle::fromBuild(ang), 0); actorNew->spr.hitag = LUMINOUS; //Always full brightness - actorNew->spr.xvel = 500; + actorNew->set_int_xvel(500); SetOwner(pp->actor, actorNew); actorNew->spr.shade = -40; actorNew->spr.xrepeat = 32; @@ -11170,7 +11170,7 @@ int DoSerpRing(DSWActor* actor) extern STATE* sg_SkullJump[]; actor->user.ID = SKULL_R0; actor->spr.angle = VecToAngle(actor->user.targetActor->spr.pos.XY() - actor->spr.pos.XY()); - actor->spr.xvel = dist>>5; + actor->set_int_xvel(dist>>5); actor->spr.xvel += (actor->spr.xvel >> 1); actor->spr.xvel += (RANDOM_P2(128<<8)>>8); actor->user.jump_speed = -800; @@ -11330,7 +11330,7 @@ int InitSerpRing(DSWActor* actor) { auto actorNew = SpawnActor(STAT_SKIP4, SKULL_SERP, &s_SkullRing[0][0], actor->sector(), actor->spr.pos, DAngle::fromBuild(ang), 0); - actorNew->spr.xvel = 500; + actorNew->set_int_xvel(500); SetOwner(actor, actorNew); actorNew->spr.shade = -20; actorNew->spr.xrepeat = 64; @@ -12031,7 +12031,7 @@ int InitSumoSkull(DSWActor* actor) auto actorNew = SpawnActor(STAT_ENEMY, SKULL_R0, &s_SkullWait[0][0], actor->sector(), DVector3(actor->spr.pos, ActorZOfMiddle(actor)), actor->spr.angle, 0); - actorNew->spr.xvel = 500; + actorNew->set_int_xvel(500); SetOwner(actor, actorNew); actorNew->spr.shade = -20; actorNew->spr.xrepeat = 64; @@ -16079,7 +16079,7 @@ int HelpMissileLateral(DSWActor* actor, int dist) auto old_xvel = actor->int_xvel(); auto old_clipdist = actor->spr.clipdist; - actor->spr.xvel = dist; + actor->set_int_xvel(dist); auto vec = MOVExy(actor->int_xvel(), actor->spr.angle); @@ -16087,7 +16087,7 @@ int HelpMissileLateral(DSWActor* actor, int dist) actor->user.coll = move_missile(actor, DVector3(vec, 0), 16, 16, 0, 1); - actor->spr.xvel = old_xvel; + actor->set_int_xvel(old_xvel); actor->spr.clipdist = old_clipdist; actor->backuppos(); @@ -16683,7 +16683,7 @@ int SpawnVehicleSmoke(DSWActor* actor) actorNew->spr.cstat |= (CSTAT_SPRITE_YFLIP); actorNew->spr.angle = RANDOM_ANGLE(); - actorNew->spr.xvel = RANDOM_P2(32); + actorNew->set_int_xvel(RANDOM_P2(32)); UpdateChangeXY(actorNew); actorNew->set_int_zvel(Z(4) + RANDOM_P2(Z(4))); @@ -16707,7 +16707,7 @@ int SpawnSmokePuff(DSWActor* actor) actorNew->spr.cstat |= (CSTAT_SPRITE_YFLIP); actorNew->spr.angle = RANDOM_ANGLE(); - actorNew->spr.xvel = RANDOM_P2(32); + actorNew->set_int_xvel(RANDOM_P2(32)); UpdateChangeXY(actorNew); actorNew->set_int_zvel(Z(1) + RANDOM_P2(Z(2)));