- set_int_xvel

This commit is contained in:
Christoph Oelckers 2022-09-01 16:57:55 +02:00
parent fb1a9881e3
commit ec88d1ea6c
39 changed files with 172 additions and 188 deletions

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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:

View file

@ -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();

View file

@ -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()));

View file

@ -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()));

View file

@ -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)

View file

@ -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));
}

View file

@ -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)

View file

@ -204,7 +204,7 @@ DDukeActor* spawninit_d(DDukeActor* actj, DDukeActor* act, TArray<DDukeActor*>*
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<DDukeActor*>*
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<DDukeActor*>*
[[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<DDukeActor*>*
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<DDukeActor*>*
act->spr.pal = 0;
act->SetOwner(act);
ChangeActorStat(act, STAT_STANDABLE);
act->spr.xvel = 8;
act->set_int_xvel(8);
ssp(act, CLIPMASK0);
break;

View file

@ -286,7 +286,7 @@ DDukeActor* spawninit_r(DDukeActor* actj, DDukeActor* act, TArray<DDukeActor*>*
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<DDukeActor*>*
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<DDukeActor*>*
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<DDukeActor*>*
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<DDukeActor*>*
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<DDukeActor*>*
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<DDukeActor*>*
}
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<DDukeActor*>*
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<DDukeActor*>*
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<DDukeActor*>*
act->spr.pal = 0;
act->SetOwner(act);
ChangeActorStat(act, STAT_STANDABLE);
act->spr.xvel = 8;
act->set_int_xvel(8);
ssp(act, CLIPMASK0);
break;

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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

View file

@ -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;
}

View file

@ -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);
}

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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);
}

View file

@ -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)

View file

@ -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));
}

View file

@ -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);
}

View file

@ -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;

View file

@ -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);
}

View file

@ -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)

View file

@ -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;

View file

@ -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;
}

View file

@ -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());
}

View file

@ -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;

View file

@ -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]);
}
/*

View file

@ -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));

View file

@ -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

View file

@ -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;

View file

@ -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))
{

View file

@ -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);

View file

@ -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);

View file

@ -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);
}

View file

@ -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)));