- set_int_zvel

This commit is contained in:
Christoph Oelckers 2022-09-01 00:28:40 +02:00
parent 81fc066a5e
commit 6ddfd8e97a
33 changed files with 172 additions and 184 deletions

View file

@ -1285,7 +1285,7 @@ void bounce(DDukeActor* actor)
zvect -= MulScale(daz, k, 16);
}
actor->spr.zvel = zvect;
actor->set_int_zvel(zvect);
actor->spr.xvel = ksqrt(DMulScale(xvect, xvect, yvect, yvect, 8));
actor->spr.angle = VecToAngle(xvect, yvect);
}
@ -1558,7 +1558,7 @@ void forcesphere(DDukeActor* actor, int forcesphere)
k->spr.cstat = CSTAT_SPRITE_BLOCK_ALL | CSTAT_SPRITE_YCENTER;
k->spr.clipdist = 64;
k->set_int_ang(j);
k->spr.zvel = bsin(l, -5);
k->set_int_zvel(bsin(l, -5));
k->spr.xvel = bcos(l, -9);
k->SetOwner(actor);
}
@ -2214,7 +2214,7 @@ bool jibs(DDukeActor *actor, int JIBS6, bool timeout, bool callsetsprite, bool f
{
if (actor->int_zvel() < 1024)
actor->spr.zvel += 48;
else actor->spr.zvel = 1024;
else actor->set_int_zvel(1024);
}
else actor->spr.zvel += gs.gravity - 50;
}
@ -2418,7 +2418,7 @@ void glasspieces(DDukeActor* actor)
makeitfall(actor);
if (actor->int_zvel() > 4096) actor->spr.zvel = 4096;
if (actor->int_zvel() > 4096) actor->set_int_zvel(4096);
if (!actor->insector())
{
deletesprite(actor);
@ -2427,7 +2427,7 @@ void glasspieces(DDukeActor* actor)
if (actor->spr.pos.Z == actor->floorz - FOURSLEIGHT_F && actor->temp_data[0] < 3)
{
actor->spr.zvel = -((3 - actor->temp_data[0]) << 8) - (krand() & 511);
actor->set_int_zvel(-((3 - actor->temp_data[0]) << 8) - (krand() & 511));
if (sectp->lotag == 2)
actor->spr.zvel >>= 1;
actor->spr.xrepeat >>= 1;
@ -3316,7 +3316,7 @@ void handle_se05(DDukeActor* actor, int FIRELASER)
actor->SetOwner(Owner);
if (!Owner) return; // Undefined case - was not checked.
actor->spr.zvel = Sgn(Owner->spr.pos.Z - actor->spr.pos.Z) << 4;
actor->set_int_zvel(Sgn(Owner->spr.pos.Z - actor->spr.pos.Z) << 4);
}
if (ldist(Owner, actor) < 1024)
@ -4186,7 +4186,7 @@ void handle_se21(DDukeActor* actor)
if (actor->temp_data[0] == 1) //Decide if the sector should go up or down
{
actor->spr.zvel = Sgn(actor->int_pos().Z - lp) * (actor->spr.yvel << 4);
actor->set_int_zvel(Sgn(actor->int_pos().Z - lp) * (actor->spr.yvel << 4));
actor->temp_data[0]++;
}
@ -4848,10 +4848,10 @@ void makeitfall(DDukeActor* actor)
if( actor->spr.pos.Z < actor->floorz - FOURSLEIGHT_F)
{
if( actor->sector()->lotag == 2 && actor->int_zvel() > 3122 )
actor->spr.zvel = 3144;
actor->set_int_zvel(3144);
if(actor->int_zvel() < 6144)
actor->spr.zvel += c;
else actor->spr.zvel = 6144;
else actor->set_int_zvel(6144);
actor->add_int_z(actor->int_zvel());
}
if (actor->spr.pos.Z >= actor->floorz - FOURSLEIGHT_F)
@ -5082,7 +5082,7 @@ void fall_common(DDukeActor *actor, int playernum, int JIBS6, int DRONE, int BLO
actor->spr.zvel += c;
actor->add_int_z(actor->int_zvel());
if (actor->int_zvel() > 6144) actor->spr.zvel = 6144;
if (actor->int_zvel() > 6144) actor->set_int_zvel(6144);
}
else
{

View file

@ -750,7 +750,7 @@ void movefallers_d(void)
if (act->spr.lotag <= 0)
{
act->spr.xvel = (32 + (krand() & 63));
act->spr.zvel = -(1024 + (krand() & 1023));
act->set_int_zvel(-(1024 + (krand() & 1023)));
}
}
else
@ -774,7 +774,7 @@ void movefallers_d(void)
{
act->spr.zvel += x;
if (act->int_zvel() > 6144)
act->spr.zvel = 6144;
act->set_int_zvel(6144);
act->add_int_z(act->int_zvel());
}
if ((sectp->floorz - act->spr.pos.Z) < 16)
@ -1315,7 +1315,7 @@ static bool movefireball(DDukeActor* actor)
ball->spr.xvel = actor->spr.xvel;
ball->spr.yvel = actor->spr.yvel;
ball->spr.zvel = actor->int_zvel();
ball->set_int_zvel(actor->int_zvel());
if (actor->temp_data[0] > 1)
{
if (trail)
@ -1324,7 +1324,7 @@ static bool movefireball(DDukeActor* actor)
ball->spr.pos = trail->temp_pos;
ball->spr.xvel = proj->vel.X;
ball->spr.yvel = proj->vel.Y;
ball->spr.zvel = proj->vel.Z;
ball->set_int_zvel(proj->vel.Z);
}
}
ball->spr.yrepeat = ball->spr.xrepeat = (uint8_t)(actor->spr.xrepeat * siz);
@ -1557,7 +1557,7 @@ static void weaponcommon_d(DDukeActor* proj)
if (proj->spr.pos.Z < proj->ceilingz)
{
coll.setSector(proj->sector());
proj->spr.zvel = -1;
proj->set_int_zvel(-1);
}
else
if ((proj->spr.pos.Z > proj->floorz && proj->sector()->lotag != 1) ||
@ -1565,7 +1565,7 @@ static void weaponcommon_d(DDukeActor* proj)
{
coll.setSector(proj->sector());
if (proj->sector()->lotag != 1)
proj->spr.zvel = 1;
proj->set_int_zvel(1);
}
}
@ -2489,14 +2489,14 @@ static void flamethrowerflame(DDukeActor *actor)
if (actor->spr.pos.Z < actor->ceilingz)
{
coll.setSector(actor->sector());
actor->spr.zvel = -1;
actor->set_int_zvel(-1);
}
else if ((actor->spr.pos.Z > actor->floorz && actor->sector()->lotag != 1)
|| (actor->spr.pos.Z > actor->floorz + 16 && actor->sector()->lotag == 1))
{
coll.setSector(actor->sector());
if (actor->sector()->lotag != 1)
actor->spr.zvel = 1;
actor->set_int_zvel(1);
}
}
@ -2584,7 +2584,7 @@ static void heavyhbomb(DDukeActor *actor)
{
if (actor->spr.yvel > 0 || (actor->spr.yvel == 0 && actor->floorz == sectp->floorz))
S_PlayActorSound(PIPEBOMB_BOUNCE, actor);
actor->spr.zvel = -((4 - actor->spr.yvel) << 8);
actor->set_int_zvel(-((4 - actor->spr.yvel) << 8));
if (actor->sector()->lotag == 2)
actor->spr.zvel >>= 2;
actor->spr.yvel++;
@ -3069,7 +3069,7 @@ void moveexplosions_d(void) // STATNUM 5
case MONEY + 1:
case MAIL + 1:
case PAPER + 1:
act->spr.zvel = act->floorz = getflorzofslopeptrf(act->sector(), act->spr.pos.X, act->spr.pos.Y);
act->set_int_zvel(act->floorz = getflorzofslopeptrf(act->sector(), act->spr.pos.X, act->spr.pos.Y));
break;
case MONEY:
case MAIL:

View file

@ -668,7 +668,7 @@ void movefallers_r(void)
{
act->spr.lotag -= 3;
act->spr.xvel = ((64 + krand()) & 127);
act->spr.zvel = -(1024 + (krand() & 1023));
act->set_int_zvel(-(1024 + (krand() & 1023)));
}
else
{
@ -692,7 +692,7 @@ void movefallers_r(void)
{
act->spr.zvel += x;
if (act->int_zvel() > 6144)
act->spr.zvel = 6144;
act->set_int_zvel(6144);
act->add_int_z(act->int_zvel());
}
if ((sectp->floorz - act->spr.pos.Z) < 16)
@ -1213,7 +1213,7 @@ static void weaponcommon_r(DDukeActor *proj)
if (!isRRRA()) break;
if (proj->spr.extra)
{
proj->spr.zvel = -(proj->spr.extra * 250);
proj->set_int_zvel(-(proj->spr.extra * 250));
proj->spr.extra--;
}
else
@ -1246,14 +1246,14 @@ static void weaponcommon_r(DDukeActor *proj)
if (proj->spr.pos.Z < proj->ceilingz)
{
coll.setSector(proj->sector());
proj->spr.zvel = -1;
proj->set_int_zvel(-1);
}
else
if (proj->spr.pos.Z > proj->floorz)
{
coll.setSector(proj->sector());
if (proj->sector()->lotag != 1)
proj->spr.zvel = 1;
proj->set_int_zvel(1);
}
}
@ -2362,7 +2362,7 @@ static void heavyhbomb(DDukeActor *actor)
goto DETONATEB;
}
}
actor->spr.zvel = -((4 - actor->spr.yvel) << 8);
actor->set_int_zvel(-((4 - actor->spr.yvel) << 8));
if (actor->sector()->lotag == 2)
actor->spr.zvel >>= 2;
actor->spr.yvel++;
@ -3838,7 +3838,7 @@ static int fallspecial(DDukeActor *actor, int playernum)
if (actor->spr.picnum != APLAYER && (badguy(actor) || actor->spr.picnum == HEN || actor->spr.picnum == COW || actor->spr.picnum == PIG || actor->spr.picnum == DOGRUN || actor->spr.picnum == RABBIT) && (!isRRRA() || actor->spriteextra < 128))
{
actor->spr.pos.Z = actor->floorz - FOURSLEIGHT_F;
actor->spr.zvel = 8000;
actor->set_int_zvel(8000);
actor->spr.extra = 0;
actor->spriteextra++;
sphit = 1;

View file

@ -1245,7 +1245,7 @@ void DoActor(bool bSet, int lVar1, int lLabelID, int lVar2, DDukeActor* sActor,
else SetGameVarID(lVar2, act->spr.yvel, sActor, sPlayer);
break;
case ACTOR_ZVEL:
if (bSet) act->spr.zvel = lValue;
if (bSet) act->set_int_zvel(lValue);
else SetGameVarID(lVar2, act->int_zvel(), sActor, sPlayer);
break;
case ACTOR_LOTAG:

View file

@ -618,7 +618,7 @@ void playerisdead(int snum, int psectlotag, int fz, int cz)
else
{
actor->spr.pos.Z -= 2;
actor->spr.zvel = -348;
actor->set_int_zvel(-348);
}
Collision coll;

View file

@ -196,7 +196,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->spr.zvel = (short)(zvel * zworldtoint);
spawned->set_int_zvel(zvel * 256);
}
spawned->spr.pos = spos + (sang + DAngle::fromBuild(112)).ToVector() * 7;

View file

@ -677,7 +677,7 @@ static void shootrpg(DDukeActor* actor, int p, int sx, int sy, int sz, int sa, i
if (atwith == RRTILE1790)
{
spawned->spr.extra = 10;
spawned->spr.zvel = -(10 << 8);
spawned->set_int_zvel(-(10 << 8));
}
else if (atwith == RPG2)
{

View file

@ -72,7 +72,7 @@ DDukeActor* CreateActor(sectortype* whatsectp, const DVector3& pos, int s_pn, in
act->set_int_ang(s_a);
act->spr.xvel = s_ve;
act->spr.zvel = s_zv;
act->set_int_zvel(s_zv);
act->spr.xoffset = 0;
act->spr.yoffset = 0;
act->spr.yvel = 0;
@ -440,7 +440,7 @@ void initshell(DDukeActor* actj, DDukeActor* act, bool isshell)
act->temp_data[0] = krand() & 1;
act->spr.pos.Z = 3 + ps[snum].pos.Z + ps[snum].pyoff - (ps[snum].horizon.sum().asbuildf() * (1/16.)) + (!isshell ? 3 : 0);
act->spr.zvel = -(krand() & 255);
act->set_int_zvel(-(krand() & 255));
}
else
{
@ -1005,9 +1005,9 @@ void spawneffector(DDukeActor* actor, TArray<DDukeActor*>* actors)
{
actor->temp_pos.XY() = actor->spr.pos.XY();
if (actor->spr.shade == sectp->floorshade) //UP
actor->spr.zvel = -256;
actor->set_int_zvel(-256);
else
actor->spr.zvel = 256;
actor->set_int_zvel(256);
actor->spr.shade = 0;
}

View file

@ -203,7 +203,7 @@ DDukeActor* spawninit_d(DDukeActor* actj, DDukeActor* act, TArray<DDukeActor*>*
if (actj)
act->spr.angle = actj->spr.angle;
act->spr.pos.Z -= gs.playerheight;
act->spr.zvel = 256 - (krand() & 511);
act->set_int_zvel(256 - (krand() & 511));
act->spr.xvel = 64 - (krand() & 127);
ChangeActorStat(act, 4);
break;
@ -519,7 +519,7 @@ DDukeActor* spawninit_d(DDukeActor* actj, DDukeActor* act, TArray<DDukeActor*>*
act->spr.cstat = 0;
act->spr.extra = 1;
act->spr.xvel = 292;
act->spr.zvel = 360;
act->set_int_zvel(360);
[[fallthrough]];
case RESPAWNMARKERRED:
case BLIMP:
@ -658,7 +658,7 @@ DDukeActor* spawninit_d(DDukeActor* actj, DDukeActor* act, TArray<DDukeActor*>*
{
act->spr.xrepeat = actj->spr.xrepeat;
act->spr.yrepeat = actj->spr.yrepeat;
act->spr.zvel = 128;
act->set_int_zvel(128);
if (act->sector()->lotag != 2)
act->spr.cstat |= CSTAT_SPRITE_INVISIBLE;
}
@ -1001,7 +1001,7 @@ DDukeActor* spawninit_d(DDukeActor* actj, DDukeActor* act, TArray<DDukeActor*>*
{
act->spr.lotag = 0;
act->spr.pos.Z -= 32;
act->spr.zvel = -1024;
act->set_int_zvel(-1024);
ssp(act, CLIPMASK0);
if (krand() & 4) act->spr.cstat |= CSTAT_SPRITE_XFLIP;
}

View file

@ -285,7 +285,7 @@ DDukeActor* spawninit_r(DDukeActor* actj, DDukeActor* act, TArray<DDukeActor*>*
if (actj)
act->spr.angle = actj->spr.angle;
act->spr.pos.Z -= gs.playerheight;
act->spr.zvel = 256 - (krand() & 511);
act->set_int_zvel(256 - (krand() & 511));
act->spr.xvel = 64 - (krand() & 127);
ChangeActorStat(act, 4);
break;
@ -548,7 +548,7 @@ DDukeActor* spawninit_r(DDukeActor* actj, DDukeActor* act, TArray<DDukeActor*>*
act->spr.cstat = 0;
act->spr.extra = 1;
act->spr.xvel = 292;
act->spr.zvel = 360;
act->set_int_zvel(360);
[[fallthrough]];
case RESPAWNMARKERRED:
if (act->spr.picnum == RESPAWNMARKERRED)
@ -663,7 +663,7 @@ DDukeActor* spawninit_r(DDukeActor* actj, DDukeActor* act, TArray<DDukeActor*>*
{
act->spr.xrepeat = actj->spr.xrepeat;
act->spr.yrepeat = actj->spr.yrepeat;
act->spr.zvel = 128;
act->set_int_zvel(128);
if (act->sector()->lotag != 2)
act->spr.cstat |= CSTAT_SPRITE_INVISIBLE;
}
@ -1156,7 +1156,7 @@ DDukeActor* spawninit_r(DDukeActor* actj, DDukeActor* act, TArray<DDukeActor*>*
if (act->spr.picnum != BOWLINGBALLSPRITE)
{
act->spr.pos.Z -= 32;
act->spr.zvel = -(4 << 8);
act->set_int_zvel(-(4 << 8));
}
else
{

View file

@ -55,7 +55,7 @@ DExhumedActor* BuildBubble(const DVector3& pos, sectortype* pSector)
pActor->set_int_ang(inita);
pActor->spr.xvel = 0;
pActor->spr.yvel = 0;
pActor->spr.zvel = -1200;
pActor->set_int_zvel(-1200);
pActor->spr.hitag = -1;
pActor->spr.extra = -1;
pActor->spr.lotag = runlist_HeadRun() + 1;

View file

@ -231,7 +231,7 @@ void BulletHitsSprite(Bullet *pBullet, DExhumedActor* pBulletActor, DExhumedActo
pHitActor->spr.xvel = bcos(nAngle, 1);
pHitActor->spr.yvel = bsin(nAngle, 1);
pHitActor->spr.zvel = (-(RandomSize(3) + 1)) << 8;
pHitActor->set_int_zvel((-(RandomSize(3) + 1)) << 8);
}
else
{

View file

@ -57,7 +57,7 @@ void BuildFishLimb(DExhumedActor* pActor, int anim)
pChunkActor->spr.yrepeat = 64;
pChunkActor->spr.xoffset = 0;
pChunkActor->spr.yoffset = 0;
pChunkActor->spr.zvel = (-(RandomByte() + 512)) * 2;
pChunkActor->set_int_zvel((-(RandomByte() + 512)) * 2);
seq_GetSeqPicnum(kSeqFish, pChunkActor->nCount, 0);
@ -114,7 +114,7 @@ void AIFishLimb::Tick(RunListEvent* ev)
}
else if ((pActor->spr.pos.Z - FloorZ) > 0)
{
pActor->spr.zvel = 1024;
pActor->set_int_zvel(1024);
}
}
else
@ -193,17 +193,17 @@ void IdleFish(DExhumedActor* pActor, int edx)
pActor->nAction = 0;
pActor->nFrame = 0;
pActor->spr.zvel = RandomSize(9);
pActor->set_int_zvel(RandomSize(9));
if (!edx)
{
if (RandomBit()) {
pActor->spr.zvel = -pActor->int_zvel();
pActor->set_int_zvel(-pActor->int_zvel());
}
}
else if (edx < 0)
{
pActor->spr.zvel = -pActor->int_zvel();
pActor->set_int_zvel(-pActor->int_zvel());
}
}
@ -340,7 +340,7 @@ void AIFish::Tick(RunListEvent* ev)
pActor->nFrame = 0;
int nAngle = getangle(pTargetActor->spr.pos - pActor->spr.pos);
pActor->spr.zvel = bsin(nAngle, -5);
pActor->set_int_zvel(bsin(nAngle, -5));
pActor->nCount = RandomSize(6) + 90;
}
@ -382,7 +382,7 @@ void AIFish::Tick(RunListEvent* ev)
pActor->spr.yvel = 0;
}
pActor->spr.zvel = int((pTargetActor->spr.pos.Z - pActor->spr.pos.Z) * zworldtoint / 8);
pActor->set_int_zvel(int((pTargetActor->spr.pos.Z - pActor->spr.pos.Z) * zworldtoint / 8));
}
break;
}

View file

@ -73,7 +73,7 @@ void ThrowGrenade(int nPlayer, int, int, int ecx, int push1)
int nVel = PlayerList[nPlayer].totalvel << 5;
pActor->nTurn = ((90 - pActor->nIndex2) * (90 - pActor->nIndex2)) + nVel;
pActor->spr.zvel = (-64 * push1) - 4352;
pActor->set_int_zvel((-64 * push1) - 4352);
auto nMov = movesprite(pActor, bcos(nAngle) * (pPlayerActor->spr.clipdist << 3), bsin(nAngle) * (pPlayerActor->spr.clipdist << 3), ecx, 0, 0, CLIPMASK1);
if (nMov.type == kHitWall)
@ -85,7 +85,7 @@ void ThrowGrenade(int nPlayer, int, int, int ecx, int push1)
else
{
pActor->nTurn = 0;
pActor->spr.zvel = pPlayerActor->int_zvel();
pActor->set_int_zvel(pPlayerActor->int_zvel());
}
pActor->x = bcos(nAngle, -4) * pActor->nTurn;
@ -299,7 +299,7 @@ void AIGrenade::Tick(RunListEvent* ev)
D3PlayFX(StaticSound[kSound3], pActor);
pActor->spr.zvel = -(zVel >> 1);
pActor->set_int_zvel(-(zVel >> 1));
if (pActor->int_zvel() > -1280)
{

View file

@ -365,7 +365,7 @@ void StartRegenerate(DExhumedActor* pActor)
{
// ?? CHECKME
pActor->spr.xvel = pActor->spr.xrepeat;
pActor->spr.zvel = pActor->spr.shade;
pActor->set_int_zvel(pActor->spr.shade);
pActor->spr.yvel = pActor->spr.pal;
}
else

View file

@ -47,7 +47,7 @@ DExhumedActor* BuildLavaLimb(DExhumedActor* pActor, int move, int ebx)
pLimbActor->spr.pal = 1;
pLimbActor->spr.xvel = (RandomSize(5) - 16) << 8;
pLimbActor->spr.yvel = (RandomSize(5) - 16) << 8;
pLimbActor->spr.zvel = 2560 - (RandomSize(5) << 8);
pLimbActor->set_int_zvel(2560 - (RandomSize(5) << 8));
pLimbActor->spr.xoffset = 0;
pLimbActor->spr.yoffset = 0;
pLimbActor->spr.xrepeat = 90;

View file

@ -376,7 +376,7 @@ void AILion::Tick(RunListEvent* ev)
pActor->nCount--;
if (pActor->nCount <= 0)
{
pActor->spr.zvel = -4000;
pActor->set_int_zvel(-4000);
pActor->nCount = 0;
int nCheckDist = 0x7FFFFFFF;
@ -473,7 +473,7 @@ void AILion::Tick(RunListEvent* ev)
pActor->set_int_ang((RandomSize(9) + (pActor->int_ang() + 768)) & kAngleMask);
}
pActor->spr.zvel = -1000;
pActor->set_int_zvel(-1000);
pActor->nAction = 6;
pActor->spr.xvel = bcos(pActor->int_ang()) - bcos(pActor->int_ang(), -3);

View file

@ -399,7 +399,7 @@ Collision movespritez(DExhumedActor* pActor, int z, int height, int, int clipdis
runlist_DamageEnemy(loHit.actor(), pActor, nDamage << 1);
}
pActor->spr.zvel = -z;
pActor->set_int_zvel(-z);
}
else
{
@ -605,7 +605,7 @@ void Gravity(DExhumedActor* pActor)
{
pActor->spr.zvel += 512;
if (pActor->int_zvel() > 16384) {
pActor->spr.zvel = 16384;
pActor->set_int_zvel(16384);
}
}
}
@ -1152,7 +1152,7 @@ Collision AngleChase(DExhumedActor* pActor, DExhumedActor* pActor2, int ebx, int
nAngle = (nAngDelta + pActor->int_ang()) & kAngleMask;
int nAngDeltaD = AngleDelta(pActor->int_zvel(), var_18, 24);
pActor->spr.zvel = (pActor->int_zvel() + nAngDeltaD) & kAngleMask;
pActor->set_int_zvel((pActor->int_zvel() + nAngDeltaD) & kAngleMask);
}
pActor->set_int_ang(nAngle);
@ -1316,7 +1316,7 @@ DExhumedActor* BuildCreatureChunk(DExhumedActor* pSrc, int nPic, bool bSpecial)
pActor->spr.xvel = (RandomSize(5) - 16) << 7;
pActor->spr.yvel = (RandomSize(5) - 16) << 7;
pActor->spr.zvel = (-(RandomSize(8) + 512)) << 3;
pActor->set_int_zvel((-(RandomSize(8) + 512)) << 3);
if (bSpecial)
{
@ -1381,7 +1381,7 @@ void AICreatureChunk::Tick(RunListEvent* ev)
{
pActor->spr.xvel >>= 1;
pActor->spr.yvel >>= 1;
pActor->spr.zvel = -pActor->int_zvel();
pActor->set_int_zvel(-pActor->int_zvel());
return;
}
else if (nVal.type == kHitSprite)

View file

@ -1393,7 +1393,7 @@ DExhumedActor* BuildSpark(DExhumedActor* pActor, int nVal)
pSpark->spr.yvel = bsin(nAngle, -6);
}
pSpark->spr.zvel = -(RandomSize(4) << 7);
pSpark->set_int_zvel(-(RandomSize(4) << 7));
pSpark->spr.picnum = kTile985 + nVal;
}

View file

@ -851,7 +851,7 @@ void AIPlayer::Tick(RunListEvent* ev)
int z = (pPlayerActor->spr.zvel * 4) >> 2;
if (pPlayerActor->int_zvel() > 8192)
pPlayerActor->spr.zvel = 8192;
pPlayerActor->set_int_zvel(8192);
if (PlayerList[nPlayer].bIsMummified)
{
@ -896,7 +896,7 @@ void AIPlayer::Tick(RunListEvent* ev)
pPlayerActor->spr.pos.XY() = spr_pos.XY();
if (zVel < pPlayerActor->int_zvel()) {
pPlayerActor->spr.zvel = zVel;
pPlayerActor->set_int_zvel(zVel);
}
}
@ -2252,14 +2252,14 @@ sectdone:
{
if (bUnderwater)
{
pPlayerActor->spr.zvel = -2048;
pPlayerActor->set_int_zvel(-2048);
nActionB = 10;
}
else if (bTouchFloor)
{
if (nAction < 6 || nAction > 8)
{
pPlayerActor->spr.zvel = -3584;
pPlayerActor->set_int_zvel(-3584);
nActionB = 3;
}
}
@ -2270,7 +2270,7 @@ sectdone:
{
if (bUnderwater)
{
pPlayerActor->spr.zvel = 2048;
pPlayerActor->set_int_zvel(2048);
nActionB = 10;
}
else

View file

@ -325,7 +325,7 @@ Collision QueenAngleChase(DExhumedActor* pActor, DExhumedActor* pActor2, int val
nAngle = (nAngDelta + pActor->int_ang()) & kAngleMask;
pActor->spr.zvel = (AngleDelta(pActor->int_zvel(), var_14, 24) + pActor->int_zvel()) & kAngleMask;
pActor->set_int_zvel((AngleDelta(pActor->int_zvel(), var_14, 24) + pActor->int_zvel()) & kAngleMask); // not really avelocity
}
pActor->set_int_ang(nAngle);
@ -446,7 +446,7 @@ void BuildQueenEgg(int nQueen, int nVal)
pActor2->spr.yrepeat = 30;
pActor2->spr.xvel = bcos(pActor2->int_ang());
pActor2->spr.yvel = bsin(pActor2->int_ang());
pActor2->spr.zvel = -6000;
pActor2->set_int_zvel(-6000);
pActor2->spr.cstat = 0;
}
else
@ -455,7 +455,7 @@ void BuildQueenEgg(int nQueen, int nVal)
pActor2->spr.yrepeat = 60;
pActor2->spr.xvel = 0;
pActor2->spr.yvel = 0;
pActor2->spr.zvel = -2000;
pActor2->set_int_zvel(-2000);
pActor2->spr.cstat = CSTAT_SPRITE_BLOCK_ALL;
}
@ -606,7 +606,7 @@ void AIQueenEgg::Tick(RunListEvent* ev)
pActor->norm_ang();
pActor->spr.xvel = bcos(pActor->int_ang(), -3);
pActor->spr.yvel = bsin(pActor->int_ang(), -3);
pActor->spr.zvel = -RandomSize(5);
pActor->set_int_zvel(-RandomSize(5));
break;
}
@ -619,7 +619,7 @@ void AIQueenEgg::Tick(RunListEvent* ev)
if (nMov.exbits & kHitAux2)
{
pActor->spr.zvel = -(pActor->spr.zvel - 256);
pActor->set_int_zvel(-(pActor->spr.zvel - 256));
if (pActor->int_zvel() < -512)
{
pActor->set_int_zvel(0);
@ -701,7 +701,7 @@ void BuildQueenHead(int nQueen)
nVelShift = 2;
SetHeadVel(pActor2);
pActor2->spr.zvel = -8192;
pActor2->set_int_zvel(-8192);
pActor2->spr.lotag = runlist_HeadRun() + 1;
pActor2->spr.hitag = 0;
pActor2->spr.extra = -1;
@ -797,7 +797,7 @@ void AIQueenHead::Tick(RunListEvent* ev)
}
else if (nMov.exbits == kHitAux2)
{
pActor->spr.zvel = -(pActor->int_zvel() >> 1);
pActor->set_int_zvel(-(pActor->int_zvel() >> 1));
if (pActor->int_zvel() > -256)
{
@ -885,7 +885,7 @@ void AIQueenHead::Tick(RunListEvent* ev)
pActor->add_int_ang(RandomSize(9) + 768);
pActor->norm_ang();
pActor->spr.zvel = (-20) - RandomSize(6);
pActor->set_int_zvel((-20) - RandomSize(6));
SetHeadVel(pActor);
}

View file

@ -347,13 +347,13 @@ void AIRex::Tick(RunListEvent* ev)
auto nPlayer = GetPlayerFromActor(nMov.actor());
PlayerList[nPlayer].nDamage.X += (xVel << 4);
PlayerList[nPlayer].nDamage.Y += (yVel << 4);
pHitActor->spr.zvel = -3584;
pHitActor->set_int_zvel(-3584);
}
else
{
pHitActor->spr.xvel += (xVel >> 3);
pHitActor->spr.yvel += (yVel >> 3);
pHitActor->spr.zvel = -2880;
pHitActor->set_int_zvel(-2880);
}
}

View file

@ -1660,7 +1660,7 @@ int runlist_CheckRadialDamage(DExhumedActor* pActor)
pActor->spr.zvel -= edi * 24;
if (pActor->int_zvel() < -3584) {
pActor->spr.zvel = -3584;
pActor->set_int_zvel(-3584);
}
}
}

View file

@ -373,7 +373,7 @@ void AIScorp::Tick(RunListEvent* ev)
pSpiderActor->spr.xvel = bcos(pSpiderActor->int_ang(), -8) * nVel;
pSpiderActor->spr.yvel = bsin(pSpiderActor->int_ang(), -8) * nVel;
pSpiderActor->spr.zvel = (-(RandomSize(5) + 3)) << 8;
pSpiderActor->set_int_zvel((-(RandomSize(5) + 3)) << 8);
}
return;

View file

@ -107,7 +107,7 @@ void BuildSoul(DExhumedActor* pSet)
pActor->set_int_ang(RandomSize(11));
pActor->spr.xvel = 0;
pActor->spr.yvel = 0;
pActor->spr.zvel = (-256) - RandomSize(10);
pActor->set_int_zvel((-256) - RandomSize(10));
pActor->spr.pos = DVector3(pSet->spr.pos.XY(), RandomSize(8) + 32 + pActor->sector()->ceilingz - GetActorHeightF(pActor));
//pActor->spr.hitag = nSet;
@ -512,11 +512,11 @@ void AISet::Tick(RunListEvent* ev)
{
if (pActor->nIndex)
{
pActor->spr.zvel = -10000;
pActor->set_int_zvel(-10000);
}
else
{
pActor->spr.zvel = -(PlotCourseToSprite(pActor, pTarget));
pActor->set_int_zvel(-(PlotCourseToSprite(pActor, pTarget)));
}
pActor->nAction = 8;

View file

@ -180,7 +180,7 @@ void AISpider::Tick(RunListEvent* ev)
if (pSector->ceilingstat & CSTAT_SECTOR_SKY)
{
spp->spr.cstat ^= CSTAT_SPRITE_YFLIP;
spp->spr.zvel = 1;
spp->set_int_zvel(1);
spp->nAction = 3;
spp->nFrame = 0;
@ -207,12 +207,12 @@ void AISpider::Tick(RunListEvent* ev)
if (spp->spr.cstat & CSTAT_SPRITE_YFLIP)
{
spp->spr.cstat ^= CSTAT_SPRITE_YFLIP;
spp->spr.zvel = 1;
spp->set_int_zvel(1);
spp->spr.pos.Z = spp->sector()->ceilingz+ GetActorHeightF(spp);
}
else
{
spp->spr.zvel = -5120;
spp->set_int_zvel(-5120);
}
spp->nAction = 3;

View file

@ -161,7 +161,7 @@ void AIWasp::Damage(RunListEvent* ev)
pActor->nVel = 3000;
pActor->spr.zvel = (-20) - RandomSize(6);
pActor->set_int_zvel((-20) - RandomSize(6));
}
else
{
@ -174,7 +174,7 @@ void AIWasp::Damage(RunListEvent* ev)
SetWaspVel(pActor);
pActor->spr.zvel = 512;
pActor->set_int_zvel(512);
nCreaturesKilled++;
}
@ -226,7 +226,7 @@ void AIWasp::Tick(RunListEvent* ev)
case 0:
{
pActor->spr.zvel = bsin(pActor->nAngle, -4);
pActor->set_int_zvel(bsin(pActor->nAngle, -4));
pActor->nAngle += pActor->nAngle2;
pActor->nAngle &= kAngleMask;
@ -306,7 +306,7 @@ void AIWasp::Tick(RunListEvent* ev)
{
pActor->add_int_ang(RandomSize(9) + 768);
pActor->norm_ang();
pActor->spr.zvel = (-20) - RandomSize(6);
pActor->set_int_zvel((-20) - RandomSize(6));
pActor->nAction = 1;
pActor->nVel = 3000;
@ -321,7 +321,7 @@ void AIWasp::Tick(RunListEvent* ev)
{
pActor->spr.xvel = 0;
pActor->spr.yvel = 0;
pActor->spr.zvel = 1024;
pActor->set_int_zvel(1024);
pActor->nAction = 5;
pActor->nFrame = 0;
}

View file

@ -522,7 +522,7 @@ DSWActor* CopySprite(sprt const* tsp, sectortype* newsector)
actorNew->spr.angle = tsp->angle;
actorNew->spr.xvel = tsp->xvel;
actorNew->spr.yvel = tsp->yvel;
actorNew->spr.zvel = tsp->zvel;
actorNew->spr.inittype = tsp->inittype;
actorNew->spr.shade = tsp->shade;
actorNew->spr.cstat &= ~(CSTAT_SPRITE_BLOCK | CSTAT_SPRITE_BLOCK_HITSCAN);

View file

@ -269,13 +269,13 @@ int DoWallBloodDrip(DSWActor* actor)
}
else
{
actor->spr.zvel = (300+RandomRange(2300)) >> 1;
actor->set_int_zvel((300+RandomRange(2300)) >> 1);
actor->add_int_z(actor->int_zvel());
}
}
else
{
actor->spr.zvel = (300+RandomRange(2300)) >> 1;
actor->set_int_zvel((300+RandomRange(2300)) >> 1);
actor->add_int_z(actor->int_zvel());
}
@ -1173,12 +1173,12 @@ int SpawnRadiationCloud(DSWActor* actor)
{
actorNew->user.Radius = 2000;
actorNew->user.change.XY() = MOVExy(actorNew->spr.xvel >> 2, actorNew->spr.angle);
actorNew->spr.zvel = Z(1) + RANDOM_P2(Z(2));
actorNew->set_int_zvel(Z(1) + RANDOM_P2(Z(2)));
}
else
{
UpdateChangeXY(actorNew);
actorNew->spr.zvel = Z(4) + RANDOM_P2(Z(4));
actorNew->set_int_zvel(Z(4) + RANDOM_P2(Z(4)));
actorNew->user.Radius = 4000;
}
@ -1248,7 +1248,7 @@ int PlayerInitChemBomb(PLAYER* pp)
if (pp->Flags & (PF_DIVING) || SpriteInUnderwaterArea(actorNew))
actorNew->user.Flags |= (SPR_UNDERWATER);
actorNew->spr.zvel = -pp->horizon.horiz.asq16() >> 9;
actorNew->set_int_zvel(-pp->horizon.horiz.asq16() >> 9);
oclipdist = plActor->spr.clipdist;
plActor->spr.clipdist = 0;
@ -1294,7 +1294,7 @@ int InitSpriteChemBomb(DSWActor* actor)
actorNew->spr.cstat |= (CSTAT_SPRITE_YCENTER);
actorNew->spr.cstat |= (CSTAT_SPRITE_BLOCK);
actorNew->spr.zvel = short(-RandomRange(100) * HORIZ_MULT);
actorNew->set_int_zvel(short(-RandomRange(100) * HORIZ_MULT));
actorNew->spr.clipdist = 80L >> 2;
@ -1330,7 +1330,7 @@ int InitChemBomb(DSWActor* actor)
if (SpriteInUnderwaterArea(actorNew))
actorNew->user.Flags |= (SPR_UNDERWATER);
actorNew->spr.zvel = short(-RandomRange(100) * HORIZ_MULT);
actorNew->set_int_zvel(short(-RandomRange(100) * HORIZ_MULT));
actorNew->spr.clipdist = 0;
if (actor->user.ID == MUSHROOM_CLOUD || actor->user.ID == 3121 || actor->user.ID == SUMO_RUN_R0) // 3121 == GRENADE_EXP
@ -1600,7 +1600,7 @@ int PlayerInitCaltrops(PLAYER* pp)
// They go out at different angles
// spawnedActor->spr.ang = NORM_ANGLE(pp->angle.ang.Buildang() + (RandomRange(50) - 25));
actorNew->spr.zvel = -pp->horizon.horiz.asq16() >> 9;
actorNew->set_int_zvel(-pp->horizon.horiz.asq16() >> 9);
oclipdist = plActor->spr.clipdist;
plActor->spr.clipdist = 0;
@ -1644,7 +1644,7 @@ int InitCaltrops(DSWActor* actor)
actorNew->user.floor_dist = (3);
actorNew->user.Counter = 0;
actorNew->spr.zvel = short(-RandomRange(100) * HORIZ_MULT);
actorNew->set_int_zvel(short(-RandomRange(100) * HORIZ_MULT));
// spawnedActor->spr.clipdist = 80L>>2;
@ -1684,7 +1684,7 @@ int InitPhosphorus(DSWActor* actor)
actorNew->user.floor_dist = (3);
actorNew->user.Counter = 0;
actorNew->spr.zvel = short(-RandomRange(100) * HORIZ_MULT);
actorNew->set_int_zvel(short(-RandomRange(100) * HORIZ_MULT));
UpdateChange(actorNew, 0.5);
@ -1749,7 +1749,7 @@ int InitBloodSpray(DSWActor* actor, bool dogib, short velocity)
actorNew->user.floor_dist = (3);
actorNew->user.Counter = 0;
actorNew->spr.zvel = short((-10 - RandomRange(50)) * HORIZ_MULT);
actorNew->set_int_zvel(short((-10 - RandomRange(50)) * HORIZ_MULT));
UpdateChange(actorNew, 0.5);
@ -2098,7 +2098,7 @@ int SpawnShell(DSWActor* actor, int ShellNum)
auto actorNew = SpawnActor(STAT_SKIP4, id, p, actor->sector(), ActorVectOfMiddle(actor), actor->spr.angle, 64);
actorNew->spr.zvel = -(velocity);
actorNew->set_int_zvel(-(velocity));
if (actor->user.PlayerP)
{

View file

@ -353,8 +353,7 @@ int SetupWashGirl(DSWActor* actor)
actor->spr.xrepeat = 28;
actor->spr.yrepeat = 24;
actor->spr.xvel = actor->spr.yvel = 0;
actor->set_int_zvel(0);
actor->spr.xvel = actor->spr.yvel = 0; actor->set_int_zvel(0);
actor->spr.lotag = WASHGIRL_R0;
actor->user.FlagOwner = 0;
actor->user.ID = WASHGIRL_R0;
@ -421,8 +420,7 @@ int DoWashGirl(DSWActor* actor)
// take damage from environment
DoActorSectorDamage(actor);
actor->spr.xvel = actor->spr.yvel = 0;
actor->set_int_zvel(0);
actor->spr.xvel = actor->spr.yvel = 0; actor->set_int_zvel(0);
return 0;
}
@ -549,8 +547,7 @@ int SetupTrashCan(DSWActor* actor)
actor->spr.xrepeat = 46;
actor->spr.yrepeat = 42;
actor->spr.xvel = actor->spr.yvel = 0;
actor->set_int_zvel(0);
actor->spr.xvel = actor->spr.yvel = 0; actor->set_int_zvel(0);
actor->user.ID = TRASHCAN;
actor->user.Flags &= ~(SPR_XFLIP_TOGGLE);
@ -570,8 +567,7 @@ int DoTrashCan(DSWActor* actor)
KeepActorOnFloor(actor);
}
actor->spr.xvel = actor->spr.yvel = 0;
actor->set_int_zvel(0);
actor->spr.xvel = actor->spr.yvel = 0; actor->set_int_zvel(0);
return 0;
}
@ -642,8 +638,7 @@ int SetupPachinkoLight(DSWActor* actor)
actor->user.RotNum = 0;
actor->user.ID = PACHINKOLIGHT_R0;
actor->spr.xvel = actor->spr.yvel = 0;
actor->set_int_zvel(0);
actor->spr.xvel = actor->spr.yvel = 0; actor->set_int_zvel(0);
actor->spr.lotag = TAG_PACHINKOLIGHT;
actor->spr.shade = -2;
actor->user.spal = actor->spr.pal;
@ -1041,6 +1036,7 @@ int SetupPachinko4(DSWActor* actor)
actor->user.RotNum = 0;
actor->user.ID = PACHINKO4;
actor->spr.yvel = 0;
actor->set_int_zvel(0);
actor->spr.lotag = PACHINKO4;
@ -1148,8 +1144,7 @@ int SetupCarGirl(DSWActor* actor)
actor->spr.xrepeat = 29;
actor->spr.yrepeat = 25;
actor->spr.xvel = actor->spr.yvel = 0;
actor->set_int_zvel(0);
actor->spr.xvel = actor->spr.yvel = 0; actor->set_int_zvel(0);
actor->spr.lotag = CARGIRL_R0;
actor->user.FlagOwner = 0;
actor->user.ID = CARGIRL_R0;
@ -1199,8 +1194,7 @@ int DoCarGirl(DSWActor* actor)
// take damage from environment
DoActorSectorDamage(actor);
actor->spr.xvel = actor->spr.yvel = 0;
actor->set_int_zvel(0);
actor->spr.xvel = actor->spr.yvel = 0; actor->set_int_zvel(0);
return 0;
}
@ -1351,8 +1345,7 @@ int SetupMechanicGirl(DSWActor* actor)
actor->spr.xrepeat = 27;
actor->spr.yrepeat = 26;
actor->spr.xvel = actor->spr.yvel = 0;
actor->set_int_zvel(0);
actor->spr.xvel = actor->spr.yvel = 0; actor->set_int_zvel(0);
actor->spr.lotag = MECHANICGIRL_R0;
actor->user.FlagOwner = 0;
actor->user.ID = MECHANICGIRL_R0;
@ -1401,8 +1394,7 @@ int DoMechanicGirl(DSWActor* actor)
// take damage from environment
DoActorSectorDamage(actor);
actor->spr.xvel = actor->spr.yvel = 0;
actor->set_int_zvel(0);
actor->spr.xvel = actor->spr.yvel = 0; actor->set_int_zvel(0);
return 0;
}
@ -1553,8 +1545,7 @@ int SetupSailorGirl(DSWActor* actor)
actor->spr.xrepeat = 28;
actor->spr.yrepeat = 26;
actor->spr.xvel = actor->spr.yvel = 0;
actor->set_int_zvel(0);
actor->spr.xvel = actor->spr.yvel = 0; actor->set_int_zvel(0);
actor->spr.lotag = SAILORGIRL_R0;
actor->user.FlagOwner = 0;
actor->user.ID = SAILORGIRL_R0;
@ -1608,8 +1599,7 @@ int DoSailorGirl(DSWActor* actor)
// take damage from environment
DoActorSectorDamage(actor);
actor->spr.xvel = actor->spr.yvel = 0;
actor->set_int_zvel(0);
actor->spr.xvel = actor->spr.yvel = 0; actor->set_int_zvel(0);
return 0;
}
@ -1749,8 +1739,7 @@ int SetupPruneGirl(DSWActor* actor)
actor->spr.xrepeat = 33;
actor->spr.yrepeat = 28;
actor->spr.xvel = actor->spr.yvel = 0;
actor->set_int_zvel(0);
actor->spr.xvel = actor->spr.yvel = 0; actor->set_int_zvel(0);
actor->spr.lotag = PRUNEGIRL_R0;
actor->user.FlagOwner = 0;
actor->user.ID = PRUNEGIRL_R0;
@ -1815,8 +1804,7 @@ int DoPruneGirl(DSWActor* actor)
// take damage from environment
DoActorSectorDamage(actor);
actor->spr.xvel = actor->spr.yvel = 0;
actor->set_int_zvel(0);
actor->spr.xvel = actor->spr.yvel = 0; actor->set_int_zvel(0);
return 0;
}

View file

@ -2403,7 +2403,8 @@ void SpriteSetup(void)
break;
case DEMO_CAMERA:
actor->spr.yvel = actor->spr.zvel = 100; //attempt horiz control
actor->spr.yvel = 100;
actor->set_int_zvel(100); //attempt horiz control
change_actor_stat(actor, STAT_DEMO_CAMERA);
break;
@ -3493,7 +3494,7 @@ void SetupItemForJump(DSWActor* spawner, DSWActor* actor)
actor->user.Counter = 0;
actor->spr.xvel = (int)SP_TAG7(spawner)<<2;
actor->spr.zvel = -(((int)SP_TAG8(spawner))<<5);
actor->set_int_zvel(-(((int)SP_TAG8(spawner))<<5));
UpdateChange(actor);
}

View file

@ -3332,7 +3332,7 @@ bool ActorTrackDecide(TRACK_POINT* tpoint, DSWActor* actor)
actor->user.Flags |= (SPR_CLIMBING);
NewStateGroup(actor, actor->user.ActorActionSet->Climb);
actor->spr.zvel = -Z(1);
actor->set_int_zvel(-Z(1));
}
break;
@ -3433,7 +3433,7 @@ int ActorFollowTrack(DSWActor* actor, short locktics)
// (velocity * difference between the target and the object) /
// distance
actor->spr.zvel = (int) -((actor->spr.xvel * (actor->spr.pos.Z - tpoint->pos.Z)) / dist);
actor->set_int_zvel((int) -((actor->spr.xvel * (actor->spr.pos.Z - tpoint->pos.Z)) / dist));
}
}
else

View file

@ -7675,7 +7675,7 @@ int MissileSeek(DSWActor* actor, int16_t delay_tics, int16_t aware_range/*, int1
double zh = ActorZOfTop(actor) + (ActorSizeZ(actor) * 0.25);
auto vel = clamp((zh - actor->spr.pos.Z)* 0.5, -16., 16.);
actor->spr.zvel = vel * zworldtoint;
actor->set_int_zvel(vel * zworldtoint);
UpdateChange(actor);
}
@ -9291,7 +9291,7 @@ int SpawnExtraMicroMini(DSWActor* actor)
actorNew->spr.cstat = actor->spr.cstat;
actorNew->set_int_ang(NORM_ANGLE(actorNew->int_ang() + RandomRange(64) - 32));
actorNew->spr.zvel = actor->int_zvel();
actorNew->set_int_zvel(actor->int_zvel());
actorNew->spr.zvel += RandomRange(Z(16)) - Z(8);
UpdateChange(actorNew);
@ -9319,7 +9319,7 @@ int DoMicro(DSWActor* actor)
actorNew->spr.xrepeat = 20;
actorNew->spr.yrepeat = 20;
actorNew->opos = actor->opos;
actorNew->spr.zvel = actor->int_zvel();
actorNew->set_int_zvel(actor->int_zvel());
actorNew->spr.cstat |= (CSTAT_SPRITE_YCENTER);
actorNew->spr.cstat &= ~(CSTAT_SPRITE_BLOCK|CSTAT_SPRITE_BLOCK_HITSCAN);
@ -10887,8 +10887,7 @@ bool MissileSetPos(DSWActor* actor, ANIMATOR* DoWeapon, int dist)
// make missile move in smaller increments
actor->spr.xvel = short((dist * 6) / MISSILEMOVETICS);
//actor->spr.zvel = (actor->spr.zvel*4) / MISSILEMOVETICS;
actor->spr.zvel = short((actor->spr.zvel*6) / MISSILEMOVETICS);
actor->set_int_zvel(short((actor->spr.zvel*6) / MISSILEMOVETICS));
// some Weapon Animators use this
UpdateChange(actor);
@ -10901,7 +10900,7 @@ bool MissileSetPos(DSWActor* actor, ANIMATOR* DoWeapon, int dist)
// reset values
actor->user.change = oldc;
actor->spr.xvel = oldvel;
actor->spr.zvel = oldzvel;
actor->set_int_zvel(oldzvel);
// update for interpolation
actor->backuppos();
@ -10921,7 +10920,6 @@ bool TestMissileSetPos(DSWActor* actor, ANIMATOR* DoWeapon, int dist, int zvel)
// make missile move in smaller increments
actor->spr.xvel = short((dist * 6) / MISSILEMOVETICS);
//actor->spr.zvel = (actor->spr.zvel*4) / MISSILEMOVETICS;
zvel = short((zvel*6) / MISSILEMOVETICS);
// some Weapon Animators use this
@ -10936,7 +10934,7 @@ bool TestMissileSetPos(DSWActor* actor, ANIMATOR* DoWeapon, int dist, int zvel)
// reset values
actor->user.change = oldc;
actor->spr.xvel = oldvel;
actor->spr.zvel = oldzvel;
actor->set_int_zvel(oldzvel);
// update for interpolation
actor->backuppos();
@ -11203,7 +11201,7 @@ void SetZVelFromTarget(DSWActor* actorNew, DSWActor* actor, bool setchange = fal
{
double zdist = (ActorUpperZ(actor->user.targetActor) - actorNew->spr.pos.Z - offset) / dist;
double change = zdist * actorNew->spr.xvel * inttoworld;
actorNew->spr.zvel = (change * zworldtoint);
actorNew->set_int_zvel((change * zworldtoint));
if (setchange) actorNew->user.change.Z = change;
}
}
@ -11339,7 +11337,7 @@ int InitSerpRing(DSWActor* actor)
actorNew->spr.xrepeat = 64;
actorNew->spr.yrepeat = 64;
actorNew->spr.yvel = 2*RINGMOVETICS;
actorNew->spr.zvel = Z(3);
actorNew->set_int_zvel(Z(3));
actorNew->spr.pal = 0;
actorNew->spr.pos.Z = ActorZOfTop(actor) - 20;
@ -11417,7 +11415,7 @@ void InitSpellNapalm(PLAYER* pp)
actor->spr.xrepeat = 32;
actor->spr.yrepeat = 32;
actor->spr.clipdist = 0;
actor->spr.zvel = -pp->horizon.horiz.asq16() >> 9;
actor->set_int_zvel(-pp->horizon.horiz.asq16() >> 9);
actor->spr.cstat |= (CSTAT_SPRITE_TRANSLUCENT | CSTAT_SPRITE_YCENTER);
actor->spr.cstat &= ~(CSTAT_SPRITE_BLOCK | CSTAT_SPRITE_BLOCK_HITSCAN);
actor->user.Flags2 |= (SPR2_BLUR_TAPER_FAST);
@ -11537,7 +11535,7 @@ int InitSpellMirv(PLAYER* pp)
actorNew->spr.xrepeat = 72;
actorNew->spr.yrepeat = 72;
actorNew->spr.clipdist = 32 >> 2;
actorNew->spr.zvel = -pp->horizon.horiz.asq16() >> 9;
actorNew->set_int_zvel(-pp->horizon.horiz.asq16() >> 9);
actorNew->spr.cstat |= (CSTAT_SPRITE_TRANSLUCENT | CSTAT_SPRITE_YCENTER);
actorNew->spr.cstat &= ~(CSTAT_SPRITE_BLOCK | CSTAT_SPRITE_BLOCK_HITSCAN);
@ -12178,7 +12176,7 @@ int WeaponAutoAim(DSWActor* actor, DSWActor* mislActor, short ang, bool test)
else
zh = tos + (siz * 0.25);
mislActor->spr.zvel = int((mislActor->spr.xvel * (zh - mislActor->spr.pos.Z)) / dist) * (zworldtoint / worldtoint);
mislActor->set_int_zvel(int((mislActor->spr.xvel * (zh - mislActor->spr.pos.Z)) / dist) * (zworldtoint / worldtoint));
}
return 0;
}
@ -12397,7 +12395,7 @@ int InitStar(PLAYER* pp)
// zvel had to be tweaked alot for this weapon
// MissileSetPos seemed to be pushing the sprite too far up or down when
// the horizon was tilted. Never figured out why.
actorNew->spr.zvel = zvel >> 1;
actorNew->set_int_zvel(zvel >> 1);
if (MissileSetPos(actorNew, DoStar, 1000))
{
KillActor(actorNew);
@ -12437,7 +12435,7 @@ int InitStar(PLAYER* pp)
actorNew2->user.Flags |= SPR_UNDERWATER;
zvel = -MulScale(pp->horizon.horiz.asq16(), HORIZ_MULT+STAR_HORIZ_ADJ, 16);
actorNew2->spr.zvel = zvel >> 1;
actorNew2->set_int_zvel(zvel >> 1);
if (MissileSetPos(actorNew2, DoStar, 1000))
{
@ -12480,7 +12478,7 @@ void InitHeartAttack(PLAYER* pp)
actorNew->spr.xrepeat = 52;
actorNew->spr.yrepeat = 52;
actorNew->spr.clipdist = 0;
actorNew->spr.zvel = -pp->horizon.horiz.asq16() >> 9;
actorNew->set_int_zvel(-pp->horizon.horiz.asq16() >> 9);
actorNew->spr.cstat &= ~(CSTAT_SPRITE_BLOCK | CSTAT_SPRITE_BLOCK_HITSCAN);
actorNew->user.Flags2 |= (SPR2_DONT_TARGET_OWNER);
actorNew->spr.cstat |= (CSTAT_SPRITE_INVISIBLE);
@ -12782,7 +12780,7 @@ int InitLaser(PLAYER* pp)
actorNew->spr.clipdist = 64L>>2;
// the slower the missile travels the less of a zvel it needs
actorNew->spr.zvel = -pp->horizon.horiz.asq16() >> 11;
actorNew->set_int_zvel(-pp->horizon.horiz.asq16() >> 11);
actorNew->user.WeaponNum = actor->user.WeaponNum;
actorNew->user.Radius = 200;
@ -12913,7 +12911,7 @@ int InitRail(PLAYER* pp)
actor->spr.clipdist = oclipdist;
actorNew->spr.zvel = zvel >> 1;
actorNew->set_int_zvel(zvel >> 1);
if (WeaponAutoAim(pp->actor, actorNew, 32, false) == -1)
{
actorNew->set_int_ang(NORM_ANGLE(actorNew->int_ang() - 4));
@ -12981,7 +12979,7 @@ int InitZillaRail(DSWActor* actor)
actor->spr.clipdist = oclipdist;
actorNew->spr.zvel = zvel >> 1;
actorNew->set_int_zvel(zvel >> 1);
if (WeaponAutoAim(actor, actorNew, 32, false) == -1)
{
actorNew->spr.angle -= DAngle::fromBuild(4);
@ -13090,7 +13088,7 @@ int InitRocket(PLAYER* pp)
actor->spr.clipdist = oclipdist;
actorNew->spr.zvel = zvel >> 1;
actorNew->set_int_zvel(zvel >> 1);
if (WeaponAutoAim(pp->actor, actorNew, 32, false) == -1)
{
actorNew->set_int_ang(NORM_ANGLE(actorNew->int_ang() - 5));
@ -13194,7 +13192,7 @@ int InitBunnyRocket(PLAYER* pp)
actor->spr.clipdist = oclipdist;
actorNew->spr.zvel = zvel >> 1;
actorNew->set_int_zvel(zvel >> 1);
if (WeaponAutoAim(pp->actor, actorNew, 32, false) == -1)
{
actorNew->set_int_ang(NORM_ANGLE(actorNew->int_ang() - 5));
@ -13286,7 +13284,7 @@ int InitNuke(PLAYER* pp)
actor->spr.clipdist = oclipdist;
actorNew->spr.zvel = zvel >> 1;
actorNew->set_int_zvel(zvel >> 1);
if (WeaponAutoAim(pp->actor, actorNew, 32, false) == -1)
{
actorNew->set_int_ang(NORM_ANGLE(actorNew->int_ang() - 5));
@ -13362,7 +13360,7 @@ int InitEnemyNuke(DSWActor* actor)
// enable smoke trail
actorNew->user.Counter = 0;
actorNew->spr.zvel = zvel >> 1;
actorNew->set_int_zvel(zvel >> 1);
if (WeaponAutoAim(actor, actorNew, 32, false) == -1)
{
actorNew->set_int_ang(NORM_ANGLE(actorNew->int_ang() - 5));
@ -13426,7 +13424,7 @@ int InitMicro(PLAYER* pp)
actorNew->spr.yrepeat = 24;
actorNew->spr.xrepeat = 24;
actorNew->spr.shade = -15;
actorNew->spr.zvel = -pp->horizon.horiz.asq16() >> 9;
actorNew->set_int_zvel(-pp->horizon.horiz.asq16() >> 9);
actorNew->spr.clipdist = 64L>>2;
// randomize zvelocity
@ -13479,7 +13477,7 @@ int InitMicro(PLAYER* pp)
if (dist != 0)
{
double zh = ActorZOfTop(picked) + (ActorSizeZ(picked) * 0.25);
actorNew->spr.zvel = (actorNew->spr.xvel * (zh - actorNew->spr.pos.Z) * zworldtoint) / dist;
actorNew->set_int_zvel((actorNew->spr.xvel * (zh - actorNew->spr.pos.Z) * zworldtoint) / dist);
}
actorNew->user.WpnGoalActor = ts->actor;
@ -14470,7 +14468,6 @@ int InitTracerUzi(PLAYER* pp)
actorNew->spr.xrepeat = 10;
actorNew->spr.shade = -40;
actorNew->set_int_zvel(0);
//actorNew->spr.zvel = -pp->horizon.horiz.asq16() >> 9;
actorNew->spr.clipdist = 32 >> 2;
actorNew->user.WeaponNum = actor->user.WeaponNum;
@ -14498,7 +14495,7 @@ int InitTracerUzi(PLAYER* pp)
return 0;
}
actorNew->spr.zvel = int(-pp->horizon.horiz.asbuildf() * actorNew->spr.xvel * (1. / 8.));
actorNew->set_int_zvel(int(-pp->horizon.horiz.asbuildf() * actorNew->spr.xvel * (1. / 8.)));
plActor->spr.clipdist = oclipdist;
@ -14539,7 +14536,7 @@ int InitTracerTurret(DSWActor* actor, DSWActor* Operator, fixed_t q16horiz)
actorNew->spr.cstat |= (CSTAT_SPRITE_YCENTER);
actorNew->spr.cstat |= (CSTAT_SPRITE_INVISIBLE);
actorNew->spr.zvel = int(-MulScaleF(q16horiz, actorNew->spr.xvel * (1. / 8.), 16));
actorNew->set_int_zvel(int(-MulScaleF(q16horiz, actorNew->spr.xvel * (1. / 8.), 16)));
WeaponAutoAim(actor, actorNew, 32, false);
@ -14924,7 +14921,7 @@ int InitTankShell(DSWActor* actor, PLAYER* pp)
actorNew->spr.cstat |= (CSTAT_SPRITE_YCENTER);
actorNew->spr.cstat |= (CSTAT_SPRITE_INVISIBLE);
actorNew->spr.zvel = int(-pp->horizon.horiz.asbuildf() * actorNew->spr.xvel * (1. / 8.));
actorNew->set_int_zvel(int(-pp->horizon.horiz.asbuildf() * actorNew->spr.xvel * (1. / 8.)));
WeaponAutoAim(actor, actorNew, 64, false);
// a bit of randomness
@ -14990,7 +14987,7 @@ int InitTurretMicro(DSWActor* actor, PLAYER* pp)
actorNew->spr.yrepeat = 24;
actorNew->spr.xrepeat = 24;
actorNew->spr.shade = -15;
actorNew->spr.zvel = -pp->horizon.horiz.asq16() >> 9;
actorNew->set_int_zvel(-pp->horizon.horiz.asq16() >> 9);
actorNew->spr.clipdist = 64L>>2;
// randomize zvelocity
@ -15017,7 +15014,7 @@ int InitTurretMicro(DSWActor* actor, PLAYER* pp)
if (dist != 0)
{
double zh = ActorZOfTop(picked) + (ActorSizeZ(picked) * 0.25);
actorNew->spr.zvel = (actorNew->spr.xvel * (zh - actorNew->spr.pos.Z) * zworldtoint) / dist;
actorNew->set_int_zvel((actorNew->spr.xvel * (zh - actorNew->spr.pos.Z) * zworldtoint) / dist);
}
actorNew->user.WpnGoalActor = ts->actor;
@ -15056,7 +15053,7 @@ int InitTurretRocket(DSWActor* actor, PLAYER* pp)
actorNew->user.Flags2 |= (SPR2_SO_MISSILE);
actorNew->spr.cstat |= (CSTAT_SPRITE_YCENTER);
actorNew->spr.zvel = int(-pp->horizon.horiz.asbuildf() * actorNew->spr.xvel * (1. / 8.));
actorNew->set_int_zvel(int(-pp->horizon.horiz.asbuildf() * actorNew->spr.xvel * (1. / 8.)));
WeaponAutoAim(actor, actorNew, 64, false);
// a bit of randomness
@ -15090,7 +15087,7 @@ int InitTurretFireball(DSWActor* actor, PLAYER* pp)
actorNew->user.Flags2 |= (SPR2_SO_MISSILE);
actorNew->spr.cstat |= (CSTAT_SPRITE_YCENTER);
actorNew->spr.zvel = int(-pp->horizon.horiz.asbuildf() * actorNew->spr.xvel * (1. / 8.));
actorNew->set_int_zvel(int(-pp->horizon.horiz.asbuildf() * actorNew->spr.xvel * (1. / 8.)));
WeaponAutoAim(actor, actorNew, 64, false);
// a bit of randomness
@ -15122,7 +15119,7 @@ int InitTurretRail(DSWActor* actor, PLAYER* pp)
actorNew->spr.yrepeat = 52;
actorNew->spr.xrepeat = 52;
actorNew->spr.shade = -15;
actorNew->spr.zvel = -pp->horizon.horiz.asq16() >> 9;
actorNew->set_int_zvel(-pp->horizon.horiz.asq16() >> 9);
actorNew->user.RotNum = 5;
NewStateGroup(actorNew, &sg_Rail[0]);
@ -15164,7 +15161,7 @@ int InitTurretLaser(DSWActor* actor, PLAYER* pp)
actorNew->spr.shade = -15;
// the slower the missile travels the less of a zvel it needs
actorNew->spr.zvel = -pp->horizon.horiz.asq16() >> 11;
actorNew->set_int_zvel(-pp->horizon.horiz.asq16() >> 11);
actorNew->user.Radius = 200;
actorNew->user.ceiling_dist = (1);
@ -15894,7 +15891,7 @@ int InitGrenade(PLAYER* pp)
if (pp->Flags & (PF_DIVING) || SpriteInUnderwaterArea(actorNew))
actorNew->user.Flags |= (SPR_UNDERWATER);
actorNew->spr.zvel = -pp->horizon.horiz.asq16() >> 9;
actorNew->set_int_zvel(-pp->horizon.horiz.asq16() >> 9);
auto oclipdist = actor->spr.clipdist;
actor->spr.clipdist = 0;
@ -15915,7 +15912,7 @@ int InitGrenade(PLAYER* pp)
{
auto_aim = true;
}
actorNew->spr.zvel = zvel;
actorNew->set_int_zvel(zvel);
UpdateChange(actorNew);
@ -15962,8 +15959,7 @@ int InitSpriteGrenade(DSWActor* actor)
actorNew->spr.cstat |= (CSTAT_SPRITE_BLOCK);
//actorNew->spr.zvel = (-RandomRange(100) * HORIZ_MULT);
actorNew->spr.zvel = -2000;
actorNew->set_int_zvel(-2000);
UpdateChange(actorNew);
@ -16007,7 +16003,7 @@ int InitMine(PLAYER* pp)
actorNew->spr.xrepeat = 32;
actorNew->spr.shade = -15;
actorNew->spr.clipdist = 128L>>2;
actorNew->spr.zvel = -pp->horizon.horiz.asq16() >> 9;
actorNew->set_int_zvel(-pp->horizon.horiz.asq16() >> 9);
actorNew->user.WeaponNum = actor->user.WeaponNum;
actorNew->user.Radius = 200;
actorNew->user.ceiling_dist = (5);
@ -16158,7 +16154,7 @@ int InitFireball(PLAYER* pp)
actor->spr.clipdist = oclipdist;
actorNew->spr.zvel = zvel >> 1;
actorNew->set_int_zvel(zvel >> 1);
if (WeaponAutoAimZvel(pp->actor, actorNew, &zvel, 32, false) == -1)
{
actorNew->set_int_ang(NORM_ANGLE(actorNew->int_ang() - 9));
@ -16230,15 +16226,18 @@ int InitEnemyFireball(DSWActor* actor)
// (velocity * difference between the target and the throwing star) /
// distance
if (dist != 0)
actorNew->user.set_int_change_z(actorNew->spr.zvel = (GORO_FIREBALL_VELOCITY * (targ_z - actorNew->int_pos().Z)) / dist);
{
actorNew->set_int_zvel((GORO_FIREBALL_VELOCITY * (targ_z - actorNew->int_pos().Z)) / dist);
actorNew->user.set_int_change_z(actorNew->int_zvel());
}
// back up first one
lastvel = actorNew->int_zvel();
}
else
{
// use the first calculations so the balls stay together
actorNew->user.set_int_change_z(actorNew->spr.zvel = lastvel);
actorNew->user.set_int_change_z(lastvel);
actorNew->set_int_zvel(lastvel);
}
}
@ -16644,7 +16643,7 @@ DSWActor* SpawnBubble(DSWActor* actor)
actorNew->user.floor_dist = 1;
actorNew->spr.shade = actor->sector()->floorshade - 10;
actorNew->user.WaitTics = 120 * 120;
actorNew->spr.zvel = 512;
actorNew->set_int_zvel(512);
actorNew->spr.clipdist = 12 >> 2;
actorNew->spr.cstat |= (CSTAT_SPRITE_YCENTER);
actorNew->user.Flags |= (SPR_UNDERWATER);
@ -16688,7 +16687,7 @@ int SpawnVehicleSmoke(DSWActor* actor)
actorNew->spr.angle = RANDOM_ANGLE();
actorNew->spr.xvel = RANDOM_P2(32);
UpdateChangeXY(actorNew);
actorNew->spr.zvel = Z(4) + RANDOM_P2(Z(4));
actorNew->set_int_zvel(Z(4) + RANDOM_P2(Z(4)));
return false;
}
@ -16712,7 +16711,7 @@ int SpawnSmokePuff(DSWActor* actor)
actorNew->spr.angle = RANDOM_ANGLE();
actorNew->spr.xvel = RANDOM_P2(32);
UpdateChangeXY(actorNew);
actorNew->spr.zvel = Z(1) + RANDOM_P2(Z(2));
actorNew->set_int_zvel(Z(1) + RANDOM_P2(Z(2)));
return false;
}
@ -16724,7 +16723,7 @@ int DoBubble(DSWActor* actor)
actor->spr.zvel += 32;
if (actor->int_zvel() > 768)
actor->spr.zvel = 768;
actor->set_int_zvel(768);
// notreallypos
actor->user.pos.X += 1;