mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 08:52:00 +00:00
- wrapped most clipdist assignments
This commit is contained in:
parent
d664f50240
commit
1ba20c7dce
26 changed files with 105 additions and 102 deletions
|
@ -508,7 +508,7 @@ DEFINE_FIELD_NAMED(DCoreActor, spr.extra, extra)
|
||||||
DEFINE_FIELD_NAMED(DCoreActor, spr.detail, detail)
|
DEFINE_FIELD_NAMED(DCoreActor, spr.detail, detail)
|
||||||
DEFINE_FIELD_NAMED(DCoreActor, spr.shade, shade)
|
DEFINE_FIELD_NAMED(DCoreActor, spr.shade, shade)
|
||||||
DEFINE_FIELD_NAMED(DCoreActor, spr.pal, pal)
|
DEFINE_FIELD_NAMED(DCoreActor, spr.pal, pal)
|
||||||
DEFINE_FIELD_NAMED(DCoreActor, spr.clipdist, clipdist)
|
DEFINE_FIELD_NAMED(DCoreActor, spr. clipdist, clipdist)
|
||||||
DEFINE_FIELD_NAMED(DCoreActor, spr.blend, blend)
|
DEFINE_FIELD_NAMED(DCoreActor, spr.blend, blend)
|
||||||
DEFINE_FIELD_NAMED(DCoreActor, spr.xrepeat, xrepeat)
|
DEFINE_FIELD_NAMED(DCoreActor, spr.xrepeat, xrepeat)
|
||||||
DEFINE_FIELD_NAMED(DCoreActor, spr.yrepeat, yrepeat)
|
DEFINE_FIELD_NAMED(DCoreActor, spr.yrepeat, yrepeat)
|
||||||
|
|
|
@ -268,7 +268,7 @@ public:
|
||||||
|
|
||||||
double fClipdist() const
|
double fClipdist() const
|
||||||
{
|
{
|
||||||
return spr.clipdist * 0.25;
|
return spr. clipdist * 0.25;
|
||||||
}
|
}
|
||||||
|
|
||||||
int int_clipdist()
|
int int_clipdist()
|
||||||
|
@ -281,6 +281,11 @@ public:
|
||||||
spr. clipdist = val;
|
spr. clipdist = val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int native_clipdist()
|
||||||
|
{
|
||||||
|
return spr. clipdist;
|
||||||
|
}
|
||||||
|
|
||||||
void set_const_clipdist(int val) // only for searching purposes
|
void set_const_clipdist(int val) // only for searching purposes
|
||||||
{
|
{
|
||||||
spr. clipdist = val;
|
spr. clipdist = val;
|
||||||
|
|
|
@ -305,7 +305,7 @@ static void ReadSpriteV7(FileReader& fr, spritetype& spr, int& secno)
|
||||||
spr.picnum = fr.ReadInt16();
|
spr.picnum = fr.ReadInt16();
|
||||||
spr.shade = fr.ReadInt8();
|
spr.shade = fr.ReadInt8();
|
||||||
spr.pal = fr.ReadUInt8();
|
spr.pal = fr.ReadUInt8();
|
||||||
spr.clipdist = fr.ReadUInt8();
|
spr. clipdist = fr.ReadUInt8();
|
||||||
spr.blend = fr.ReadUInt8();
|
spr.blend = fr.ReadUInt8();
|
||||||
spr.xrepeat = fr.ReadUInt8();
|
spr.xrepeat = fr.ReadUInt8();
|
||||||
spr.yrepeat = fr.ReadUInt8();
|
spr.yrepeat = fr.ReadUInt8();
|
||||||
|
@ -334,7 +334,7 @@ static void ReadSpriteV6(FileReader& fr, spritetype& spr, int& secno)
|
||||||
spr.cstat = ESpriteFlags::FromInt(fr.ReadUInt16());
|
spr.cstat = ESpriteFlags::FromInt(fr.ReadUInt16());
|
||||||
spr.shade = fr.ReadInt8();
|
spr.shade = fr.ReadInt8();
|
||||||
spr.pal = fr.ReadUInt8();
|
spr.pal = fr.ReadUInt8();
|
||||||
spr.clipdist = fr.ReadUInt8();
|
spr. clipdist = fr.ReadUInt8();
|
||||||
spr.xrepeat = fr.ReadUInt8();
|
spr.xrepeat = fr.ReadUInt8();
|
||||||
spr.yrepeat = fr.ReadUInt8();
|
spr.yrepeat = fr.ReadUInt8();
|
||||||
spr.xoffset = fr.ReadInt8();
|
spr.xoffset = fr.ReadInt8();
|
||||||
|
@ -389,7 +389,7 @@ static void ReadSpriteV5(FileReader& fr, spritetype& spr, int& secno)
|
||||||
spr.pal = sec->floorpal;
|
spr.pal = sec->floorpal;
|
||||||
|
|
||||||
spr.blend = 0;
|
spr.blend = 0;
|
||||||
spr.clipdist = 32;
|
spr. clipdist = 32;
|
||||||
spr.xoffset = 0;
|
spr.xoffset = 0;
|
||||||
spr.yoffset = 0;
|
spr.yoffset = 0;
|
||||||
spr.detail = 0;
|
spr.detail = 0;
|
||||||
|
|
|
@ -2383,7 +2383,7 @@ static void actInitThings()
|
||||||
// but what if it have voxel model...?
|
// but what if it have voxel model...?
|
||||||
if (!gModernMap)
|
if (!gModernMap)
|
||||||
#endif
|
#endif
|
||||||
act->spr.clipdist = thingInfo[nType].clipdist;
|
act->set_native_clipdist(thingInfo[nType].clipdist);
|
||||||
|
|
||||||
act->spr.flags = thingInfo[nType].flags;
|
act->spr.flags = thingInfo[nType].flags;
|
||||||
if (act->spr.flags & kPhysGravity) act->spr.flags |= kPhysFalling;
|
if (act->spr.flags & kPhysGravity) act->spr.flags |= kPhysFalling;
|
||||||
|
@ -2480,12 +2480,12 @@ static void actInitDudes()
|
||||||
if (gModernMap) break;
|
if (gModernMap) break;
|
||||||
[[fallthrough]];
|
[[fallthrough]];
|
||||||
default:
|
default:
|
||||||
act->spr.clipdist = dudeInfo[nType].clipdist;
|
act->set_native_clipdist(dudeInfo[nType].clipdist);
|
||||||
act->spr.cstat |= CSTAT_SPRITE_BLOOD_BIT1 | CSTAT_SPRITE_BLOCK_ALL;
|
act->spr.cstat |= CSTAT_SPRITE_BLOOD_BIT1 | CSTAT_SPRITE_BLOCK_ALL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
act->spr.clipdist = dudeInfo[nType].clipdist;
|
act->set_native_clipdist(dudeInfo[nType].clipdist);
|
||||||
act->spr.cstat |= CSTAT_SPRITE_BLOOD_BIT1 | CSTAT_SPRITE_BLOCK_ALL;
|
act->spr.cstat |= CSTAT_SPRITE_BLOOD_BIT1 | CSTAT_SPRITE_BLOCK_ALL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -4183,7 +4183,7 @@ static void checkCeilHit(DBloodActor* actor)
|
||||||
}
|
}
|
||||||
if (mass1 > mass2)
|
if (mass1 > mass2)
|
||||||
{
|
{
|
||||||
int dmg = abs((mass1 - mass2) * (actor2->spr.clipdist - actor->spr.clipdist));
|
int dmg = abs((mass1 - mass2) * (actor2->native_clipdist()) - actor->native_clipdist());
|
||||||
if (actor2->IsDudeActor())
|
if (actor2->IsDudeActor())
|
||||||
{
|
{
|
||||||
if (dmg > 0) actDamageSprite(actor2, actor, (Chance(0x2000)) ? kDamageFall : (Chance(0x4000)) ? kDamageExplode : kDamageBullet, dmg);
|
if (dmg > 0) actDamageSprite(actor2, actor, (Chance(0x2000)) ? kDamageFall : (Chance(0x4000)) ? kDamageExplode : kDamageBullet, dmg);
|
||||||
|
@ -4347,7 +4347,7 @@ static void checkFloorHit(DBloodActor* actor)
|
||||||
if ((actor2->IsPlayerActor() && Chance(0x500)) || !actor2->IsPlayerActor())
|
if ((actor2->IsPlayerActor() && Chance(0x500)) || !actor2->IsPlayerActor())
|
||||||
actKickObject(actor, actor2);
|
actKickObject(actor, actor2);
|
||||||
|
|
||||||
int dmg = (mass1 - mass2) + actor->spr.clipdist;
|
int dmg = (mass1 - mass2) + actor->native_clipdist();
|
||||||
if (dmg > 0) actDamageSprite(actor, actor2, (Chance(0x2000)) ? kDamageFall : kDamageBullet, dmg);
|
if (dmg > 0) actDamageSprite(actor, actor2, (Chance(0x2000)) ? kDamageFall : kDamageBullet, dmg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6245,7 +6245,7 @@ DBloodActor* actSpawnDude(DBloodActor* source, int nType, int a3, int a4)
|
||||||
SetActor(spawned, pos);
|
SetActor(spawned, pos);
|
||||||
|
|
||||||
spawned->spr.cstat |= CSTAT_SPRITE_BLOCK_ALL | CSTAT_SPRITE_BLOOD_BIT1;
|
spawned->spr.cstat |= CSTAT_SPRITE_BLOCK_ALL | CSTAT_SPRITE_BLOOD_BIT1;
|
||||||
spawned->spr.clipdist = getDudeInfo(nDude + kDudeBase)->clipdist;
|
spawned->set_native_clipdist(getDudeInfo(nDude + kDudeBase)->clipdist);
|
||||||
spawned->xspr.health = getDudeInfo(nDude + kDudeBase)->startHealth << 4;
|
spawned->xspr.health = getDudeInfo(nDude + kDudeBase)->startHealth << 4;
|
||||||
spawned->xspr.respawn = 1;
|
spawned->xspr.respawn = 1;
|
||||||
if (getSequence(getDudeInfo(nDude + kDudeBase)->seqStartID))
|
if (getSequence(getDudeInfo(nDude + kDudeBase)->seqStartID))
|
||||||
|
@ -6303,7 +6303,7 @@ DBloodActor* actSpawnThing(sectortype* pSector, int x, int y, int z, int nThingT
|
||||||
assert(actor->hasX());
|
assert(actor->hasX());
|
||||||
const THINGINFO* pThingInfo = &thingInfo[nType];
|
const THINGINFO* pThingInfo = &thingInfo[nType];
|
||||||
actor->xspr.health = pThingInfo->startHealth << 4;
|
actor->xspr.health = pThingInfo->startHealth << 4;
|
||||||
actor->spr.clipdist = pThingInfo->clipdist;
|
actor->set_native_clipdist(pThingInfo->clipdist);
|
||||||
actor->spr.flags = pThingInfo->flags;
|
actor->spr.flags = pThingInfo->flags;
|
||||||
if (actor->spr.flags & 2) actor->spr.flags |= 4;
|
if (actor->spr.flags & 2) actor->spr.flags |= 4;
|
||||||
actor->spr.cstat |= pThingInfo->cstat;
|
actor->spr.cstat |= pThingInfo->cstat;
|
||||||
|
@ -6392,12 +6392,12 @@ DBloodActor* actFireThing(DBloodActor* actor, int a2, int a3, int a4, int thingT
|
||||||
int x = actor->int_pos().X + MulScale(a2, Cos(actor->int_ang() + 512), 30);
|
int x = actor->int_pos().X + MulScale(a2, Cos(actor->int_ang() + 512), 30);
|
||||||
int y = actor->int_pos().Y + MulScale(a2, Sin(actor->int_ang() + 512), 30);
|
int y = actor->int_pos().Y + MulScale(a2, Sin(actor->int_ang() + 512), 30);
|
||||||
int z = actor->int_pos().Z + a3;
|
int z = actor->int_pos().Z + a3;
|
||||||
x += MulScale(actor->spr.clipdist, Cos(actor->int_ang()), 28);
|
x += MulScale(actor->native_clipdist(), Cos(actor->int_ang()), 28);
|
||||||
y += MulScale(actor->spr.clipdist, Sin(actor->int_ang()), 28);
|
y += MulScale(actor->native_clipdist(), Sin(actor->int_ang()), 28);
|
||||||
if (HitScan(actor, z, x - actor->int_pos().X, y - actor->int_pos().Y, 0, CLIPMASK0, actor->spr.clipdist) != -1)
|
if (HitScan(actor, z, x - actor->int_pos().X, y - actor->int_pos().Y, 0, CLIPMASK0, actor->native_clipdist()) != -1)
|
||||||
{
|
{
|
||||||
x = gHitInfo.int_hitpos().X - MulScale(actor->spr.clipdist << 1, Cos(actor->int_ang()), 28);
|
x = gHitInfo.int_hitpos().X - MulScale(actor->native_clipdist() << 1, Cos(actor->int_ang()), 28);
|
||||||
y = gHitInfo.int_hitpos().Y - MulScale(actor->spr.clipdist << 1, Sin(actor->int_ang()), 28);
|
y = gHitInfo.int_hitpos().Y - MulScale(actor->native_clipdist() << 1, Sin(actor->int_ang()), 28);
|
||||||
}
|
}
|
||||||
auto fired = actSpawnThing(actor->sector(), x, y, z, thingType);
|
auto fired = actSpawnThing(actor->sector(), x, y, z, thingType);
|
||||||
fired->SetOwner(actor);
|
fired->SetOwner(actor);
|
||||||
|
@ -6505,7 +6505,7 @@ DBloodActor* actFireMissile(DBloodActor* actor, int a2, int a3, int a4, int a5,
|
||||||
int x = actor->int_pos().X + MulScale(a2, Cos(actor->int_ang() + 512), 30);
|
int x = actor->int_pos().X + MulScale(a2, Cos(actor->int_ang() + 512), 30);
|
||||||
int y = actor->int_pos().Y + MulScale(a2, Sin(actor->int_ang() + 512), 30);
|
int y = actor->int_pos().Y + MulScale(a2, Sin(actor->int_ang() + 512), 30);
|
||||||
int z = actor->int_pos().Z + a3;
|
int z = actor->int_pos().Z + a3;
|
||||||
int clipdist = pMissileInfo->clipDist + actor->spr.clipdist;
|
int clipdist = pMissileInfo->clipDist + actor->native_clipdist();
|
||||||
x += MulScale(clipdist, Cos(actor->int_ang()), 28);
|
x += MulScale(clipdist, Cos(actor->int_ang()), 28);
|
||||||
y += MulScale(clipdist, Sin(actor->int_ang()), 28);
|
y += MulScale(clipdist, Sin(actor->int_ang()), 28);
|
||||||
int hit = HitScan(actor, z, x - actor->int_pos().X, y - actor->int_pos().Y, 0, CLIPMASK0, clipdist);
|
int hit = HitScan(actor, z, x - actor->int_pos().X, y - actor->int_pos().Y, 0, CLIPMASK0, clipdist);
|
||||||
|
@ -6530,7 +6530,7 @@ DBloodActor* actFireMissile(DBloodActor* actor, int a2, int a3, int a4, int a5,
|
||||||
spawned->spr.type = nType;
|
spawned->spr.type = nType;
|
||||||
spawned->spr.shade = pMissileInfo->shade;
|
spawned->spr.shade = pMissileInfo->shade;
|
||||||
spawned->spr.pal = 0;
|
spawned->spr.pal = 0;
|
||||||
spawned->spr.clipdist = pMissileInfo->clipDist;
|
spawned->set_native_clipdist(pMissileInfo->clipDist);
|
||||||
spawned->spr.flags = 1;
|
spawned->spr.flags = 1;
|
||||||
spawned->spr.xrepeat = pMissileInfo->xrepeat;
|
spawned->spr.xrepeat = pMissileInfo->xrepeat;
|
||||||
spawned->spr.yrepeat = pMissileInfo->yrepeat;
|
spawned->spr.yrepeat = pMissileInfo->yrepeat;
|
||||||
|
|
|
@ -144,11 +144,11 @@ void SpidBirthSeqCallback(int, DBloodActor* actor)
|
||||||
if (target->IsPlayerActor() && pDudeExtraE->birthCounter < 10)
|
if (target->IsPlayerActor() && pDudeExtraE->birthCounter < 10)
|
||||||
{
|
{
|
||||||
if (nDist < 0x1a00 && nDist > 0x1400 && abs(actor->int_ang() - nAngle) < pDudeInfo->periphery)
|
if (nDist < 0x1a00 && nDist > 0x1400 && abs(actor->int_ang() - nAngle) < pDudeInfo->periphery)
|
||||||
spawned = actSpawnDude(actor, kDudeSpiderRed, actor->spr.clipdist, 0);
|
spawned = actSpawnDude(actor, kDudeSpiderRed, actor->native_clipdist(), 0);
|
||||||
else if (nDist < 0x1400 && nDist > 0xc00 && abs(actor->int_ang() - nAngle) < pDudeInfo->periphery)
|
else if (nDist < 0x1400 && nDist > 0xc00 && abs(actor->int_ang() - nAngle) < pDudeInfo->periphery)
|
||||||
spawned = actSpawnDude(actor, kDudeSpiderBrown, actor->spr.clipdist, 0);
|
spawned = actSpawnDude(actor, kDudeSpiderBrown, actor->native_clipdist(), 0);
|
||||||
else if (nDist < 0xc00 && abs(actor->int_ang() - nAngle) < pDudeInfo->periphery)
|
else if (nDist < 0xc00 && abs(actor->int_ang() - nAngle) < pDudeInfo->periphery)
|
||||||
spawned = actSpawnDude(actor, kDudeSpiderBrown, actor->spr.clipdist, 0);
|
spawned = actSpawnDude(actor, kDudeSpiderBrown, actor->native_clipdist(), 0);
|
||||||
|
|
||||||
if (spawned)
|
if (spawned)
|
||||||
{
|
{
|
||||||
|
|
|
@ -243,7 +243,7 @@ void genDudeAttack1(int, DBloodActor* actor)
|
||||||
else if (pExtra->weaponType == kGenDudeWeaponSummon)
|
else if (pExtra->weaponType == kGenDudeWeaponSummon)
|
||||||
{
|
{
|
||||||
DBloodActor* spawned = nullptr;
|
DBloodActor* spawned = nullptr;
|
||||||
int dist = actor->spr.clipdist << 4;
|
int dist = actor->native_clipdist() << 4;
|
||||||
if (pExtra->slaveCount <= gGameOptions.nDifficulty)
|
if (pExtra->slaveCount <= gGameOptions.nDifficulty)
|
||||||
{
|
{
|
||||||
if ((spawned = actSpawnDude(actor, pExtra->curWeapon, dist + Random(dist), 0)) != NULL)
|
if ((spawned = actSpawnDude(actor, pExtra->curWeapon, dist + Random(dist), 0)) != NULL)
|
||||||
|
@ -489,7 +489,7 @@ static void unicultThinkChase(DBloodActor* actor)
|
||||||
// so i use fake velocity with fixed value and pass it as argument.
|
// so i use fake velocity with fixed value and pass it as argument.
|
||||||
auto velocity = actor->vel;
|
auto velocity = actor->vel;
|
||||||
if (inAttack(actor->xspr.aiState))
|
if (inAttack(actor->xspr.aiState))
|
||||||
velocity.X = velocity.Y = FixedToFloat(ClipLow(actor->spr.clipdist >> 1, 1));
|
velocity.X = velocity.Y = FixedToFloat(ClipLow(actor->native_clipdist() >> 1, 1));
|
||||||
|
|
||||||
//aiChooseDirection(actor,getangle(dx, dy));
|
//aiChooseDirection(actor,getangle(dx, dy));
|
||||||
aiGenDudeChooseDirection(actor, VecToAngle(dx, dy), velocity);
|
aiGenDudeChooseDirection(actor, VecToAngle(dx, dy), velocity);
|
||||||
|
@ -1881,7 +1881,7 @@ DBloodActor* genDudeSpawn(DBloodActor* source, DBloodActor* actor, int nDist)
|
||||||
spawned->spr.angle = actor->spr.angle;
|
spawned->spr.angle = actor->spr.angle;
|
||||||
SetActor(spawned, pos);
|
SetActor(spawned, pos);
|
||||||
spawned->spr.cstat |= CSTAT_SPRITE_BLOCK_ALL | CSTAT_SPRITE_BLOOD_BIT1;
|
spawned->spr.cstat |= CSTAT_SPRITE_BLOCK_ALL | CSTAT_SPRITE_BLOOD_BIT1;
|
||||||
spawned->spr.clipdist = dudeInfo[nType - kDudeBase].clipdist;
|
spawned->set_native_clipdist(dudeInfo[nType - kDudeBase].clipdist);
|
||||||
|
|
||||||
// inherit weapon, seq and sound settings.
|
// inherit weapon, seq and sound settings.
|
||||||
spawned->xspr.data1 = source->xspr.data1;
|
spawned->xspr.data1 = source->xspr.data1;
|
||||||
|
@ -2262,7 +2262,7 @@ bool genDudePrepare(DBloodActor* actor, int propId)
|
||||||
pExtra->moveSpeed = getGenDudeMoveSpeed(actor, 0, true, false);
|
pExtra->moveSpeed = getGenDudeMoveSpeed(actor, 0, true, false);
|
||||||
pExtra->initVals[0] = actor->spr.xrepeat;
|
pExtra->initVals[0] = actor->spr.xrepeat;
|
||||||
pExtra->initVals[1] = actor->spr.yrepeat;
|
pExtra->initVals[1] = actor->spr.yrepeat;
|
||||||
pExtra->initVals[2] = actor->spr.clipdist;
|
pExtra->initVals[2] = actor->native_clipdist();
|
||||||
if (propId) break;
|
if (propId) break;
|
||||||
[[fallthrough]];
|
[[fallthrough]];
|
||||||
|
|
||||||
|
@ -2476,7 +2476,7 @@ bool genDudePrepare(DBloodActor* actor, int propId)
|
||||||
if (!(actor->sector()->floorstat & CSTAT_SECTOR_SKY))
|
if (!(actor->sector()->floorstat & CSTAT_SECTOR_SKY))
|
||||||
actor->add_int_z(ClipHigh(actor->sector()->int_floorz() - zBot, 0));
|
actor->add_int_z(ClipHigh(actor->sector()->int_floorz() - zBot, 0));
|
||||||
|
|
||||||
actor->spr.clipdist = ClipRange((actor->spr.xrepeat + actor->spr.yrepeat) >> 1, 4, 120);
|
actor->set_native_clipdist(ClipRange((actor->spr.xrepeat + actor->spr.yrepeat) >> 1, 4, 120));
|
||||||
if (propId) break;
|
if (propId) break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -302,7 +302,7 @@ void Respawn(DBloodActor* actor, sectortype*) // 9
|
||||||
|
|
||||||
switch (actor->spr.type) {
|
switch (actor->spr.type) {
|
||||||
default:
|
default:
|
||||||
actor->spr.clipdist = getDudeInfo(nType + kDudeBase)->clipdist;
|
actor->set_native_clipdist(getDudeInfo(nType + kDudeBase)->clipdist);
|
||||||
if (getSequence(getDudeInfo(nType + kDudeBase)->seqStartID))
|
if (getSequence(getDudeInfo(nType + kDudeBase)->seqStartID))
|
||||||
seqSpawn(getDudeInfo(nType + kDudeBase)->seqStartID, actor, -1);
|
seqSpawn(getDudeInfo(nType + kDudeBase)->seqStartID, actor, -1);
|
||||||
break;
|
break;
|
||||||
|
@ -317,7 +317,7 @@ void Respawn(DBloodActor* actor, sectortype*) // 9
|
||||||
actor->SetTarget(nullptr);
|
actor->SetTarget(nullptr);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
actor->spr.clipdist = getDudeInfo(nType + kDudeBase)->clipdist;
|
actor->set_native_clipdist(getDudeInfo(nType + kDudeBase)->clipdist);
|
||||||
actor->xspr.health = getDudeInfo(nType + kDudeBase)->startHealth << 4;
|
actor->xspr.health = getDudeInfo(nType + kDudeBase)->startHealth << 4;
|
||||||
if (getSequence(getDudeInfo(nType + kDudeBase)->seqStartID))
|
if (getSequence(getDudeInfo(nType + kDudeBase)->seqStartID))
|
||||||
seqSpawn(getDudeInfo(nType + kDudeBase)->seqStartID, actor, -1);
|
seqSpawn(getDudeInfo(nType + kDudeBase)->seqStartID, actor, -1);
|
||||||
|
@ -454,7 +454,7 @@ void fxBloodBits(DBloodActor* actor, sectortype*) // 14
|
||||||
if (!actor) return;
|
if (!actor) return;
|
||||||
int ceilZ, floorZ;
|
int ceilZ, floorZ;
|
||||||
Collision floorColl, ceilColl;
|
Collision floorColl, ceilColl;
|
||||||
GetZRange(actor, &ceilZ, &ceilColl, &floorZ, &floorColl, actor->spr.clipdist, CLIPMASK0);
|
GetZRange(actor, &ceilZ, &ceilColl, &floorZ, &floorColl, actor->native_clipdist(), CLIPMASK0);
|
||||||
int top, bottom;
|
int top, bottom;
|
||||||
GetActorExtents(actor, &top, &bottom);
|
GetActorExtents(actor, &top, &bottom);
|
||||||
actor->add_int_z(floorZ - bottom);
|
actor->add_int_z(floorZ - bottom);
|
||||||
|
@ -513,7 +513,7 @@ void fxBouncingSleeve(DBloodActor* actor, sectortype*) // 16
|
||||||
int ceilZ, floorZ;
|
int ceilZ, floorZ;
|
||||||
Collision floorColl, ceilColl;
|
Collision floorColl, ceilColl;
|
||||||
|
|
||||||
GetZRange(actor, &ceilZ, &ceilColl, &floorZ, &floorColl, actor->spr.clipdist, CLIPMASK0);
|
GetZRange(actor, &ceilZ, &ceilColl, &floorZ, &floorColl, actor->native_clipdist(), CLIPMASK0);
|
||||||
int top, bottom; GetActorExtents(actor, &top, &bottom);
|
int top, bottom; GetActorExtents(actor, &top, &bottom);
|
||||||
actor->add_int_z(floorZ - bottom);
|
actor->add_int_z(floorZ - bottom);
|
||||||
|
|
||||||
|
@ -641,7 +641,7 @@ void fxPodBloodSplat(DBloodActor* actor, sectortype*) // 19
|
||||||
int ceilZ, floorZ;
|
int ceilZ, floorZ;
|
||||||
Collision floorColl, ceilColl;
|
Collision floorColl, ceilColl;
|
||||||
|
|
||||||
GetZRange(actor, &ceilZ, &ceilColl, &floorZ, &floorColl, actor->spr.clipdist, CLIPMASK0);
|
GetZRange(actor, &ceilZ, &ceilColl, &floorZ, &floorColl, actor->native_clipdist(), CLIPMASK0);
|
||||||
int top, bottom;
|
int top, bottom;
|
||||||
GetActorExtents(actor, &top, &bottom);
|
GetActorExtents(actor, &top, &bottom);
|
||||||
actor->add_int_z(floorZ - bottom);
|
actor->add_int_z(floorZ - bottom);
|
||||||
|
|
|
@ -328,8 +328,8 @@ void fxSpawnPodStuff(DBloodActor* actor, int)
|
||||||
|
|
||||||
void fxSpawnEjectingBrass(DBloodActor* actor, int z, int a3, int a4)
|
void fxSpawnEjectingBrass(DBloodActor* actor, int z, int a3, int a4)
|
||||||
{
|
{
|
||||||
int x = actor->int_pos().X + MulScale(actor->spr.clipdist - 4, Cos(actor->int_ang()), 28);
|
int x = actor->int_pos().X + MulScale(actor->native_clipdist() - 4, Cos(actor->int_ang()), 28);
|
||||||
int y = actor->int_pos().Y + MulScale(actor->spr.clipdist - 4, Sin(actor->int_ang()), 28);
|
int y = actor->int_pos().Y + MulScale(actor->native_clipdist() - 4, Sin(actor->int_ang()), 28);
|
||||||
x += MulScale(a3, Cos(actor->int_ang() + 512), 30);
|
x += MulScale(a3, Cos(actor->int_ang() + 512), 30);
|
||||||
y += MulScale(a3, Sin(actor->int_ang() + 512), 30);
|
y += MulScale(a3, Sin(actor->int_ang() + 512), 30);
|
||||||
auto pBrass = gFX.fxSpawnActor((FX_ID)(FX_37 + Random(3)), actor->sector(), x, y, z, 0);
|
auto pBrass = gFX.fxSpawnActor((FX_ID)(FX_37 + Random(3)), actor->sector(), x, y, z, 0);
|
||||||
|
@ -353,8 +353,8 @@ void fxSpawnEjectingBrass(DBloodActor* actor, int z, int a3, int a4)
|
||||||
|
|
||||||
void fxSpawnEjectingShell(DBloodActor* actor, int z, int a3, int a4)
|
void fxSpawnEjectingShell(DBloodActor* actor, int z, int a3, int a4)
|
||||||
{
|
{
|
||||||
int x = actor->int_pos().X + MulScale(actor->spr.clipdist - 4, Cos(actor->int_ang()), 28);
|
int x = actor->int_pos().X + MulScale(actor->native_clipdist() - 4, Cos(actor->int_ang()), 28);
|
||||||
int y = actor->int_pos().Y + MulScale(actor->spr.clipdist - 4, Sin(actor->int_ang()), 28);
|
int y = actor->int_pos().Y + MulScale(actor->native_clipdist() - 4, Sin(actor->int_ang()), 28);
|
||||||
x += MulScale(a3, Cos(actor->int_ang() + 512), 30);
|
x += MulScale(a3, Cos(actor->int_ang() + 512), 30);
|
||||||
y += MulScale(a3, Sin(actor->int_ang() + 512), 30);
|
y += MulScale(a3, Sin(actor->int_ang() + 512), 30);
|
||||||
auto pShell = gFX.fxSpawnActor((FX_ID)(FX_40 + Random(3)), actor->sector(), x, y, z, 0);
|
auto pShell = gFX.fxSpawnActor((FX_ID)(FX_40 + Random(3)), actor->sector(), x, y, z, 0);
|
||||||
|
|
|
@ -277,7 +277,7 @@ static DBloodActor* nnExtSpawnDude(DBloodActor* sourceactor, DBloodActor* origin
|
||||||
pDudeActor->set_int_ang(angle);
|
pDudeActor->set_int_ang(angle);
|
||||||
|
|
||||||
pDudeActor->spr.cstat |= CSTAT_SPRITE_BLOOD_BIT1 | CSTAT_SPRITE_BLOCK_ALL;
|
pDudeActor->spr.cstat |= CSTAT_SPRITE_BLOOD_BIT1 | CSTAT_SPRITE_BLOCK_ALL;
|
||||||
pDudeActor->spr.clipdist = getDudeInfo(nType)->clipdist;
|
pDudeActor->set_native_clipdist(getDudeInfo(nType)->clipdist);
|
||||||
|
|
||||||
pDudeActor->xspr.respawn = 1;
|
pDudeActor->xspr.respawn = 1;
|
||||||
pDudeActor->xspr.health = getDudeInfo(nType)->startHealth << 4;
|
pDudeActor->xspr.health = getDudeInfo(nType)->startHealth << 4;
|
||||||
|
@ -1412,7 +1412,7 @@ void sfxPlayVectorSound(DBloodActor* actor, int vectorId)
|
||||||
|
|
||||||
int getSpriteMassBySize(DBloodActor* actor)
|
int getSpriteMassBySize(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
int mass = 0; int seqId = -1; int clipDist = actor->spr.clipdist;
|
int mass = 0; int seqId = -1; int clipDist = actor->native_clipdist();
|
||||||
if (!actor->hasX())
|
if (!actor->hasX())
|
||||||
{
|
{
|
||||||
I_Error("getSpriteMassBySize: actor->spr.hasX == false");
|
I_Error("getSpriteMassBySize: actor->spr.hasX == false");
|
||||||
|
@ -1461,7 +1461,7 @@ int getSpriteMassBySize(DBloodActor* actor)
|
||||||
picnum = actor->spr.picnum;
|
picnum = actor->spr.picnum;
|
||||||
}
|
}
|
||||||
|
|
||||||
clipDist = ClipLow(actor->spr.clipdist, 1);
|
clipDist = ClipLow(actor->native_clipdist(), 1);
|
||||||
int x = tileWidth(picnum);
|
int x = tileWidth(picnum);
|
||||||
int y = tileHeight(picnum);
|
int y = tileHeight(picnum);
|
||||||
int xrepeat = actor->spr.xrepeat;
|
int xrepeat = actor->spr.xrepeat;
|
||||||
|
@ -1524,7 +1524,7 @@ int getSpriteMassBySize(DBloodActor* actor)
|
||||||
cached->yrepeat = actor->spr.yrepeat;
|
cached->yrepeat = actor->spr.yrepeat;
|
||||||
cached->picnum = actor->spr.picnum;
|
cached->picnum = actor->spr.picnum;
|
||||||
cached->seqId = seqId;
|
cached->seqId = seqId;
|
||||||
cached->clipdist = actor->spr.clipdist;
|
cached->clipdist = actor->native_clipdist();
|
||||||
|
|
||||||
return cached->mass;
|
return cached->mass;
|
||||||
}
|
}
|
||||||
|
@ -4605,7 +4605,7 @@ bool condCheckSprite(DBloodActor* aCond, int cmpOp, bool PUSH)
|
||||||
case 5: return condCmp(objActor->spr.statnum, arg1, arg2, cmpOp);
|
case 5: return condCmp(objActor->spr.statnum, arg1, arg2, cmpOp);
|
||||||
case 6: return ((objActor->spr.flags & kHitagRespawn) || objActor->spr.statnum == kStatRespawn);
|
case 6: return ((objActor->spr.flags & kHitagRespawn) || objActor->spr.statnum == kStatRespawn);
|
||||||
case 7: return condCmp(spriteGetSlope(objActor), arg1, arg2, cmpOp);
|
case 7: return condCmp(spriteGetSlope(objActor), arg1, arg2, cmpOp);
|
||||||
case 10: return condCmp(objActor->spr.clipdist, arg1, arg2, cmpOp);
|
case 10: return condCmp(objActor->native_clipdist(), arg1, arg2, cmpOp);
|
||||||
case 15:
|
case 15:
|
||||||
if (!objActor->GetOwner()) return false;
|
if (!objActor->GetOwner()) return false;
|
||||||
else if (PUSH) condPush(aCond, objActor->GetOwner());
|
else if (PUSH) condPush(aCond, objActor->GetOwner());
|
||||||
|
@ -5597,13 +5597,13 @@ bool modernTypeOperateSector(sectortype* pSector, const EVENT& event)
|
||||||
|
|
||||||
void useCustomDudeSpawn(DBloodActor* pSource, DBloodActor* pActor)
|
void useCustomDudeSpawn(DBloodActor* pSource, DBloodActor* pActor)
|
||||||
{
|
{
|
||||||
genDudeSpawn(pSource, pActor, pActor->spr.clipdist << 1);
|
genDudeSpawn(pSource, pActor, pActor->native_clipdist() << 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void useDudeSpawn(DBloodActor* pSource, DBloodActor* pActor)
|
void useDudeSpawn(DBloodActor* pSource, DBloodActor* pActor)
|
||||||
{
|
{
|
||||||
if (randomSpawnDude(pSource, pActor, pActor->spr.clipdist << 1, 0) == nullptr)
|
if (randomSpawnDude(pSource, pActor, pActor->native_clipdist() << 1, 0) == nullptr)
|
||||||
nnExtSpawnDude(pSource, pActor, pActor->xspr.data1, pActor->spr.clipdist << 1, 0);
|
nnExtSpawnDude(pSource, pActor, pActor->xspr.data1, pActor->native_clipdist() << 1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
@ -7897,7 +7897,7 @@ bool aiPatrolMarkerReached(DBloodActor* actor)
|
||||||
auto markeractor = actor->GetTarget();
|
auto markeractor = actor->GetTarget();
|
||||||
if (markeractor && markeractor->spr.type == kMarkerPath)
|
if (markeractor && markeractor->spr.type == kMarkerPath)
|
||||||
{
|
{
|
||||||
int okDist = ClipLow(markeractor->spr.clipdist << 1, 4);
|
int okDist = ClipLow(markeractor->native_clipdist() << 1, 4);
|
||||||
int oX = abs(markeractor->int_pos().X - actor->int_pos().X) >> 4;
|
int oX = abs(markeractor->int_pos().X - actor->int_pos().X) >> 4;
|
||||||
int oY = abs(markeractor->int_pos().Y - actor->int_pos().Y) >> 4;
|
int oY = abs(markeractor->int_pos().Y - actor->int_pos().Y) >> 4;
|
||||||
|
|
||||||
|
@ -7905,7 +7905,7 @@ bool aiPatrolMarkerReached(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (spriteIsUnderwater(actor) || pExtra->flying)
|
if (spriteIsUnderwater(actor) || pExtra->flying)
|
||||||
{
|
{
|
||||||
okDist = markeractor->spr.clipdist << 4;
|
okDist = markeractor->native_clipdist() << 4;
|
||||||
int ztop, zbot, ztop2, zbot2;
|
int ztop, zbot, ztop2, zbot2;
|
||||||
GetActorExtents(actor, &ztop, &zbot);
|
GetActorExtents(actor, &ztop, &zbot);
|
||||||
GetActorExtents(markeractor, &ztop2, &zbot2);
|
GetActorExtents(markeractor, &ztop2, &zbot2);
|
||||||
|
@ -9223,7 +9223,7 @@ void callbackUniMissileBurst(DBloodActor* actor, sectortype*) // 22
|
||||||
}
|
}
|
||||||
|
|
||||||
burstactor->spr.pal = actor->spr.pal;
|
burstactor->spr.pal = actor->spr.pal;
|
||||||
burstactor->spr.clipdist = actor->spr.clipdist / 4;
|
burstactor->set_native_clipdist(actor->native_clipdist() / 4);
|
||||||
burstactor->spr.flags = actor->spr.flags;
|
burstactor->spr.flags = actor->spr.flags;
|
||||||
burstactor->spr.xrepeat = actor->spr.xrepeat / 2;
|
burstactor->spr.xrepeat = actor->spr.xrepeat / 2;
|
||||||
burstactor->spr.yrepeat = actor->spr.yrepeat / 2;
|
burstactor->spr.yrepeat = actor->spr.yrepeat / 2;
|
||||||
|
|
|
@ -694,7 +694,7 @@ void playerSetRace(PLAYER* pPlayer, int nLifeMode)
|
||||||
pPlayer->lifeMode = nLifeMode;
|
pPlayer->lifeMode = nLifeMode;
|
||||||
|
|
||||||
// By NoOne: don't forget to change clipdist for grow and shrink modes
|
// By NoOne: don't forget to change clipdist for grow and shrink modes
|
||||||
pPlayer->actor->spr.clipdist = pDudeInfo->clipdist;
|
pPlayer->actor->set_native_clipdist(pDudeInfo->clipdist);
|
||||||
|
|
||||||
for (int i = 0; i < 7; i++)
|
for (int i = 0; i < 7; i++)
|
||||||
pDudeInfo->damageVal[i] = MulScale(Handicap[gSkill], pDudeInfo->startDamage[i], 8);
|
pDudeInfo->damageVal[i] = MulScale(Handicap[gSkill], pDudeInfo->startDamage[i], 8);
|
||||||
|
@ -812,7 +812,7 @@ void playerStart(int nPlayer, int bNewLevel)
|
||||||
actor->set_int_ang(pStartZone->ang);
|
actor->set_int_ang(pStartZone->ang);
|
||||||
pPlayer->angle.ang = actor->spr.angle;
|
pPlayer->angle.ang = actor->spr.angle;
|
||||||
actor->spr.type = kDudePlayer1 + nPlayer;
|
actor->spr.type = kDudePlayer1 + nPlayer;
|
||||||
actor->spr.clipdist = pDudeInfo->clipdist;
|
actor->set_native_clipdist(pDudeInfo->clipdist);
|
||||||
actor->spr.flags = 15;
|
actor->spr.flags = 15;
|
||||||
actor->xspr.burnTime = 0;
|
actor->xspr.burnTime = 0;
|
||||||
actor->SetBurnSource(nullptr);
|
actor->SetBurnSource(nullptr);
|
||||||
|
@ -1758,7 +1758,7 @@ void ProcessInput(PLAYER* pPlayer)
|
||||||
if (pPlayer->handTime <= 0 && pPlayer->hand)
|
if (pPlayer->handTime <= 0 && pPlayer->hand)
|
||||||
{
|
{
|
||||||
DBloodActor* pactor = pPlayer->actor;
|
DBloodActor* pactor = pPlayer->actor;
|
||||||
auto spawned = actSpawnDude(pactor, kDudeHand, pPlayer->actor->spr.clipdist << 1, 0);
|
auto spawned = actSpawnDude(pactor, kDudeHand, pPlayer->actor->native_clipdist() << 1, 0);
|
||||||
if (spawned)
|
if (spawned)
|
||||||
{
|
{
|
||||||
spawned->set_int_ang((pPlayer->actor->int_ang() + 1024) & 2047);
|
spawned->set_int_ang((pPlayer->actor->int_ang() + 1024) & 2047);
|
||||||
|
|
|
@ -2575,7 +2575,7 @@ void handle_se00(DDukeActor* actor)
|
||||||
actor->tempang += 4;
|
actor->tempang += 4;
|
||||||
if (actor->tempang >= 256)
|
if (actor->tempang >= 256)
|
||||||
callsound(actor->sector(), actor, true);
|
callsound(actor->sector(), actor, true);
|
||||||
if (actor->spr.clipdist) l = 1;
|
if (actor->native_clipdist()) l = 1;
|
||||||
else l = -1;
|
else l = -1;
|
||||||
}
|
}
|
||||||
else actor->tempang = 256;
|
else actor->tempang = 256;
|
||||||
|
@ -2603,7 +2603,7 @@ void handle_se00(DDukeActor* actor)
|
||||||
actor->tempang -= 4;
|
actor->tempang -= 4;
|
||||||
if (actor->tempang <= 0)
|
if (actor->tempang <= 0)
|
||||||
callsound(actor->sector(), actor, true);
|
callsound(actor->sector(), actor, true);
|
||||||
if (actor->spr.clipdist) l = -1;
|
if (actor->native_clipdist()) l = -1;
|
||||||
else l = 1;
|
else l = 1;
|
||||||
}
|
}
|
||||||
else actor->tempang = 0;
|
else actor->tempang = 0;
|
||||||
|
|
|
@ -1097,7 +1097,7 @@ static bool weaponhitwall(DDukeActor *proj, walltype* wal, const DVector3& oldpo
|
||||||
j->spr.yrepeat = 8;
|
j->spr.yrepeat = 8;
|
||||||
j->spr.cstat = CSTAT_SPRITE_ALIGNMENT_WALL;
|
j->spr.cstat = CSTAT_SPRITE_ALIGNMENT_WALL;
|
||||||
j->set_int_ang((j->int_ang() + 512) & 2047);
|
j->set_int_ang((j->int_ang() + 512) & 2047);
|
||||||
j->spr.clipdist = MulScale(proj->spr.xrepeat, tileWidth(proj->spr.picnum), 7);
|
j->set_native_clipdist(MulScale(proj->spr.xrepeat, tileWidth(proj->spr.picnum), 7));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
deletesprite(proj);
|
deletesprite(proj);
|
||||||
|
@ -1878,7 +1878,7 @@ static void rrra_specialstats()
|
||||||
{
|
{
|
||||||
act->spr.xrepeat >>= 1;
|
act->spr.xrepeat >>= 1;
|
||||||
act->spr.yrepeat >>= 1;
|
act->spr.yrepeat >>= 1;
|
||||||
act->spr.clipdist = MulScale(act->spr.xrepeat, tileHeight(act->spr.picnum), 7);
|
act->set_native_clipdist(MulScale(act->spr.xrepeat, tileHeight(act->spr.picnum), 7));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1196,8 +1196,8 @@ void DoActor(bool bSet, int lVar1, int lLabelID, int lVar2, DDukeActor* sActor,
|
||||||
else SetGameVarID(lVar2, act->spr.pal, sActor, sPlayer);
|
else SetGameVarID(lVar2, act->spr.pal, sActor, sPlayer);
|
||||||
break;
|
break;
|
||||||
case ACTOR_CLIPDIST:
|
case ACTOR_CLIPDIST:
|
||||||
if (bSet) act->spr.clipdist = lValue;
|
if (bSet) act->set_native_clipdist(lValue);
|
||||||
else SetGameVarID(lVar2, act->spr.clipdist, sActor, sPlayer);
|
else SetGameVarID(lVar2, act->native_clipdist(), sActor, sPlayer);
|
||||||
break;
|
break;
|
||||||
case ACTOR_DETAIL:
|
case ACTOR_DETAIL:
|
||||||
if (bSet) act->spriteextra = lValue;
|
if (bSet) act->spriteextra = lValue;
|
||||||
|
@ -2190,7 +2190,7 @@ int ParseState::parse(void)
|
||||||
break;
|
break;
|
||||||
case concmd_clipdist:
|
case concmd_clipdist:
|
||||||
insptr++;
|
insptr++;
|
||||||
g_ac->spr.clipdist = (uint8_t) *insptr;
|
g_ac->set_native_clipdist( (uint8_t) *insptr);
|
||||||
insptr++;
|
insptr++;
|
||||||
break;
|
break;
|
||||||
case concmd_cstat:
|
case concmd_cstat:
|
||||||
|
|
|
@ -3398,7 +3398,7 @@ void processinput_r(int snum)
|
||||||
|
|
||||||
shrunk = (pact->spr.yrepeat < 8);
|
shrunk = (pact->spr.yrepeat < 8);
|
||||||
int tempfz;
|
int tempfz;
|
||||||
if (pact->spr.clipdist == 64)
|
if (pact->native_clipdist() == 64)
|
||||||
{
|
{
|
||||||
getzrange(p->player_int_pos(), psectp, &cz, chz, &fz, clz, 163L, CLIPMASK0);
|
getzrange(p->player_int_pos(), psectp, &cz, chz, &fz, clz, 163L, CLIPMASK0);
|
||||||
tempfz = getflorzofslopeptr(psectp, p->player_int_pos().X, p->player_int_pos().Y);
|
tempfz = getflorzofslopeptr(psectp, p->player_int_pos().X, p->player_int_pos().Y);
|
||||||
|
@ -3932,7 +3932,7 @@ HORIZONLY:
|
||||||
while (ud.clipping == 0)
|
while (ud.clipping == 0)
|
||||||
{
|
{
|
||||||
int blocked;
|
int blocked;
|
||||||
if (pact->spr.clipdist == 64)
|
if (pact->native_clipdist() == 64)
|
||||||
blocked = (pushmove(p->pos, &p->cursector, 128, (4 << 8), (4 << 8), CLIPMASK0) < 0 && furthestangle(p->GetActor(), 8) < 512);
|
blocked = (pushmove(p->pos, &p->cursector, 128, (4 << 8), (4 << 8), CLIPMASK0) < 0 && furthestangle(p->GetActor(), 8) < 512);
|
||||||
else
|
else
|
||||||
blocked = (pushmove(p->pos, &p->cursector, 16, (4 << 8), (4 << 8), CLIPMASK0) < 0 && furthestangle(p->GetActor(), 8) < 512);
|
blocked = (pushmove(p->pos, &p->cursector, 16, (4 << 8), (4 << 8), CLIPMASK0) < 0 && furthestangle(p->GetActor(), 8) < 512);
|
||||||
|
|
|
@ -136,7 +136,7 @@ public:
|
||||||
|
|
||||||
void setClipDistFromTile()
|
void setClipDistFromTile()
|
||||||
{
|
{
|
||||||
spr.clipdist = MulScale(spr.xrepeat, tileWidth(spr.picnum), 7);
|
set_native_clipdist(MulScale(spr.xrepeat, tileWidth(spr.picnum), 7));
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -355,7 +355,7 @@ int MoveBullet(int nBullet)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
coll = movesprite(pActor, pBullet->vect, pActor->spr.clipdist >> 1, pActor->spr.clipdist >> 1, CLIPMASK1);
|
coll = movesprite(pActor, pBullet->vect, pActor->native_clipdist() >> 1, pActor->native_clipdist() >> 1, CLIPMASK1);
|
||||||
|
|
||||||
MOVEEND:
|
MOVEEND:
|
||||||
if (coll.type || coll.exbits)
|
if (coll.type || coll.exbits)
|
||||||
|
|
|
@ -75,7 +75,7 @@ void ThrowGrenade(int nPlayer, int, int, int ecx, int push1)
|
||||||
pActor->nTurn = ((90 - pActor->nIndex2) * (90 - pActor->nIndex2)) + nVel;
|
pActor->nTurn = ((90 - pActor->nIndex2) * (90 - pActor->nIndex2)) + nVel;
|
||||||
pActor->set_int_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);
|
auto nMov = movesprite(pActor, bcos(nAngle) * (pPlayerActor->native_clipdist() << 3), bsin(nAngle) * (pPlayerActor->native_clipdist() << 3), ecx, 0, 0, CLIPMASK1);
|
||||||
if (nMov.type == kHitWall)
|
if (nMov.type == kHitWall)
|
||||||
{
|
{
|
||||||
nAngle = GetWallNormal(nMov.hitWall);
|
nAngle = GetWallNormal(nMov.hitWall);
|
||||||
|
@ -280,7 +280,7 @@ void AIGrenade::Tick(RunListEvent* ev)
|
||||||
int zVel = pActor->int_zvel();
|
int zVel = pActor->int_zvel();
|
||||||
|
|
||||||
Gravity(pActor);
|
Gravity(pActor);
|
||||||
auto nMov = movesprite(pActor, pActor->x, pActor->y, pActor->int_zvel(), pActor->spr.clipdist >> 1, pActor->spr.clipdist >> 1, CLIPMASK1);
|
auto nMov = movesprite(pActor, pActor->x, pActor->y, pActor->int_zvel(), pActor->native_clipdist() >> 1, pActor->native_clipdist() >> 1, CLIPMASK1);
|
||||||
|
|
||||||
if (!nMov.type && !nMov.exbits)
|
if (!nMov.type && !nMov.exbits)
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -635,8 +635,8 @@ loc_flag:
|
||||||
DAngle nAngle = pPlayerActor->spr.angle;
|
DAngle nAngle = pPlayerActor->spr.angle;
|
||||||
auto thePos = pPlayerActor->spr.pos;
|
auto thePos = pPlayerActor->spr.pos;
|
||||||
|
|
||||||
int ebp = nAngle.Cos() * (1 << 14) * (pPlayerActor->spr.clipdist << 3);
|
int ebp = nAngle.Cos() * (1 << 14) * (pPlayerActor->native_clipdist() << 3);
|
||||||
int ebx = nAngle.Sin() * (1 << 14) * (pPlayerActor->spr.clipdist << 3);
|
int ebx = nAngle.Sin() * (1 << 14) * (pPlayerActor->native_clipdist() << 3);
|
||||||
|
|
||||||
if (WeaponInfo[nWeapon].c)
|
if (WeaponInfo[nWeapon].c)
|
||||||
{
|
{
|
||||||
|
|
|
@ -812,7 +812,7 @@ void CreatePushBlock(sectortype* pSector)
|
||||||
|
|
||||||
sBlockInfo[nBlock].field_8 = mindist * worldtoint;
|
sBlockInfo[nBlock].field_8 = mindist * worldtoint;
|
||||||
|
|
||||||
pActor->spr.clipdist = (int(mindist * worldtoint) & 0xFF) << 2;
|
pActor->set_native_clipdist( (int(mindist * worldtoint) & 0xFF) << 2);
|
||||||
pSector->extra = nBlock;
|
pSector->extra = nBlock;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -956,7 +956,7 @@ void MoveSector(sectortype* pSector, int nAngle, int *nXVel, int *nYVel)
|
||||||
pos.Y = pActor->int_pos().Y;
|
pos.Y = pActor->int_pos().Y;
|
||||||
pSectorB = pSector;
|
pSectorB = pSector;
|
||||||
|
|
||||||
clipmove(pos, &pSectorB, -xvect, -yvect, 4 * pActor->spr.clipdist, 0, 0, CLIPMASK0, scratch);
|
clipmove(pos, &pSectorB, -xvect, -yvect, 4 * pActor->native_clipdist(), 0, 0, CLIPMASK0, scratch);
|
||||||
|
|
||||||
if (pSectorB) {
|
if (pSectorB) {
|
||||||
ChangeActorSect(pActor, pSectorB);
|
ChangeActorSect(pActor, pSectorB);
|
||||||
|
@ -973,9 +973,9 @@ void MoveSector(sectortype* pSector, int nAngle, int *nXVel, int *nYVel)
|
||||||
pSectorB = pNextSector;
|
pSectorB = pNextSector;
|
||||||
|
|
||||||
clipmove(pos, &pSectorB,
|
clipmove(pos, &pSectorB,
|
||||||
-xvect - (bcos(nAngle) * (4 * pActor->spr.clipdist)),
|
-xvect - (bcos(nAngle) * (4 * pActor->native_clipdist())),
|
||||||
-yvect - (bsin(nAngle) * (4 * pActor->spr.clipdist)),
|
-yvect - (bsin(nAngle) * (4 * pActor->native_clipdist())),
|
||||||
4 * pActor->spr.clipdist, 0, 0, CLIPMASK0, scratch);
|
4 * pActor->native_clipdist(), 0, 0, CLIPMASK0, scratch);
|
||||||
|
|
||||||
|
|
||||||
if (pSectorB != pNextSector && (pSectorB == pSector || pNextSector == pSector))
|
if (pSectorB != pNextSector && (pSectorB == pSector || pNextSector == pSector))
|
||||||
|
@ -989,8 +989,8 @@ void MoveSector(sectortype* pSector, int nAngle, int *nXVel, int *nYVel)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
movesprite(pActor,
|
movesprite(pActor,
|
||||||
(xvect << 14) + bcos(nAngle) * pActor->spr.clipdist,
|
(xvect << 14) + bcos(nAngle) * pActor->native_clipdist(),
|
||||||
(yvect << 14) + bsin(nAngle) * pActor->spr.clipdist,
|
(yvect << 14) + bsin(nAngle) * pActor->native_clipdist(),
|
||||||
0, 0, 0, CLIPMASK0);
|
0, 0, 0, CLIPMASK0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1018,7 +1018,7 @@ void MoveSector(sectortype* pSector, int nAngle, int *nXVel, int *nYVel)
|
||||||
if (pActor->spr.statnum >= 99 && nZVal == pActor->int_pos().Z && !(pActor->spr.cstat & CSTAT_SPRITE_INVISIBLE))
|
if (pActor->spr.statnum >= 99 && nZVal == pActor->int_pos().Z && !(pActor->spr.cstat & CSTAT_SPRITE_INVISIBLE))
|
||||||
{
|
{
|
||||||
pSectorB = pSector;
|
pSectorB = pSector;
|
||||||
clipmove(pActor->spr.pos, &pSectorB, xvect, yvect, 4 * pActor->spr.clipdist, 5120, -5120, CLIPMASK0, scratch);
|
clipmove(pActor->spr.pos, &pSectorB, xvect, yvect, 4 * pActor->native_clipdist(), 5120, -5120, CLIPMASK0, scratch);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2053,7 +2053,7 @@ inline double ActorSizeToTop(DSWActor* a)
|
||||||
|
|
||||||
inline void SetActorSizeX(DSWActor* sp)
|
inline void SetActorSizeX(DSWActor* sp)
|
||||||
{
|
{
|
||||||
sp->spr.clipdist = MulScale(tileWidth(sp->spr.picnum), sp->spr.xrepeat, 6);
|
sp->set_native_clipdist(MulScale(tileWidth(sp->spr.picnum), sp->spr.xrepeat, 6));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool Facing(DSWActor* actor1, DSWActor* actor2)
|
inline bool Facing(DSWActor* actor1, DSWActor* actor2)
|
||||||
|
|
|
@ -1291,13 +1291,13 @@ int PlayerInitChemBomb(PLAYER* pp)
|
||||||
|
|
||||||
actorNew->vel.Z -= pp->horizon.horiz.asbuildf() * HORIZ_MULTF;
|
actorNew->vel.Z -= pp->horizon.horiz.asbuildf() * HORIZ_MULTF;
|
||||||
|
|
||||||
oclipdist = plActor->spr.clipdist;
|
oclipdist = plActor->native_clipdist();
|
||||||
plActor->set_const_clipdist(0);
|
plActor->set_const_clipdist(0);
|
||||||
actorNew->set_const_clipdist(0);
|
actorNew->set_const_clipdist(0);
|
||||||
|
|
||||||
MissileSetPos(actorNew, DoChemBomb, 1000);
|
MissileSetPos(actorNew, DoChemBomb, 1000);
|
||||||
|
|
||||||
plActor->spr.clipdist = oclipdist;
|
plActor->set_native_clipdist(oclipdist);
|
||||||
actorNew->set_const_clipdist(80 >> 2);
|
actorNew->set_const_clipdist(80 >> 2);
|
||||||
|
|
||||||
UpdateChange(actorNew, 0.5);
|
UpdateChange(actorNew, 0.5);
|
||||||
|
@ -1655,13 +1655,13 @@ int PlayerInitCaltrops(PLAYER* pp)
|
||||||
|
|
||||||
actorNew->vel.Z -= pp->horizon.horiz.asbuildf() * 0.5;
|
actorNew->vel.Z -= pp->horizon.horiz.asbuildf() * 0.5;
|
||||||
|
|
||||||
oclipdist = plActor->spr.clipdist;
|
oclipdist = plActor->native_clipdist();
|
||||||
plActor->set_const_clipdist(0);
|
plActor->set_const_clipdist(0);
|
||||||
actorNew->set_const_clipdist(0);
|
actorNew->set_const_clipdist(0);
|
||||||
|
|
||||||
MissileSetPos(actorNew, DoCaltrops, 1000);
|
MissileSetPos(actorNew, DoCaltrops, 1000);
|
||||||
|
|
||||||
plActor->spr.clipdist = oclipdist;
|
plActor->set_native_clipdist(oclipdist);
|
||||||
actorNew->set_const_clipdist(80 >> 2);
|
actorNew->set_const_clipdist(80 >> 2);
|
||||||
|
|
||||||
UpdateChange(actorNew, 0.5);
|
UpdateChange(actorNew, 0.5);
|
||||||
|
@ -1736,7 +1736,7 @@ int InitPhosphorus(DSWActor* actor)
|
||||||
actorNew->spr.shade = -15;
|
actorNew->spr.shade = -15;
|
||||||
// !FRANK - clipbox must be <= weapon otherwise can clip thru walls
|
// !FRANK - clipbox must be <= weapon otherwise can clip thru walls
|
||||||
if (actor->spr.clipdist > 0)
|
if (actor->spr.clipdist > 0)
|
||||||
actorNew->spr.clipdist = actor->spr.clipdist-1;
|
actorNew->set_native_clipdist(actor->spr.clipdist-1);
|
||||||
else
|
else
|
||||||
actorNew->copy_clipdist(actor);
|
actorNew->copy_clipdist(actor);
|
||||||
actorNew->user.WeaponNum = actor->user.WeaponNum;
|
actorNew->user.WeaponNum = actor->user.WeaponNum;
|
||||||
|
|
|
@ -3559,7 +3559,7 @@ int DoPlayerWadeSuperJump(PLAYER* pp)
|
||||||
if (hit.hitSector != nullptr && abs(hit.hitSector->floorz - pp->pos.Z) < 50)
|
if (hit.hitSector != nullptr && abs(hit.hitSector->floorz - pp->pos.Z) < 50)
|
||||||
{
|
{
|
||||||
double dist = (pp->pos.XY() - hit.hitpos.XY()).Length();
|
double dist = (pp->pos.XY() - hit.hitpos.XY()).Length();
|
||||||
double comp = ((((int)pp->actor->spr.clipdist)<<2) + 256) * inttoworld;
|
double comp = (pp->actor->fClipdist() + 16);
|
||||||
if (dist < comp)
|
if (dist < comp)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1263,20 +1263,18 @@ void KillMatchingCrackSprites(short match)
|
||||||
|
|
||||||
void WeaponExplodeSectorInRange(DSWActor* wActor)
|
void WeaponExplodeSectorInRange(DSWActor* wActor)
|
||||||
{
|
{
|
||||||
int radius;
|
|
||||||
|
|
||||||
SWStatIterator it(STAT_SPRITE_HIT_MATCH);
|
SWStatIterator it(STAT_SPRITE_HIT_MATCH);
|
||||||
while (auto actor = it.Next())
|
while (auto actor = it.Next())
|
||||||
{
|
{
|
||||||
// test to see if explosion is close to crack sprite
|
// test to see if explosion is close to crack sprite
|
||||||
double dist = (wActor->spr.pos - actor->spr.pos).Length();
|
double dist = (wActor->spr.pos - actor->spr.pos).Length();
|
||||||
|
|
||||||
if (actor->spr.clipdist == 0)
|
if (actor->native_clipdist() == 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
radius = (((int)actor->spr.clipdist) << 2) * 8;
|
double radius = actor->fClipdist() * 8;
|
||||||
|
|
||||||
if (dist > ((wActor->user.Radius/2) + radius) * inttoworld)
|
if (dist > (wActor->user.fRadius()/2) + radius)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!FAFcansee(wActor->spr.pos, wActor->sector(), actor->spr.pos, actor->sector()))
|
if (!FAFcansee(wActor->spr.pos, wActor->sector(), actor->spr.pos, actor->sector()))
|
||||||
|
|
|
@ -1843,7 +1843,7 @@ void SpriteSetup(void)
|
||||||
{
|
{
|
||||||
sectp->u_defined = true;
|
sectp->u_defined = true;
|
||||||
sectp->number = actor->spr.lotag;
|
sectp->number = actor->spr.lotag;
|
||||||
if (actor->spr.clipdist == 1)
|
if (actor->native_clipdist() == 1)
|
||||||
sectp->flags |= (SECTFU_CANT_SURFACE);
|
sectp->flags |= (SECTFU_CANT_SURFACE);
|
||||||
change_actor_stat(actor, STAT_UNDERWATER2);
|
change_actor_stat(actor, STAT_UNDERWATER2);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1048,7 +1048,7 @@ void SetupSectorObject(sectortype* sectp, short tag)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SPAWN_SPOT:
|
case SPAWN_SPOT:
|
||||||
if (actor->spr.clipdist == 3)
|
if (actor->native_clipdist() == 3)
|
||||||
{
|
{
|
||||||
change_actor_stat(actor, STAT_NO_STATE);
|
change_actor_stat(actor, STAT_NO_STATE);
|
||||||
SpawnUser(actor, 0, nullptr);
|
SpawnUser(actor, 0, nullptr);
|
||||||
|
@ -1118,7 +1118,7 @@ void SetupSectorObject(sectortype* sectp, short tag)
|
||||||
else
|
else
|
||||||
sop->max_damage = actorNew->user.MaxHealth;
|
sop->max_damage = actorNew->user.MaxHealth;
|
||||||
|
|
||||||
switch (actor->spr.clipdist)
|
switch (actor->native_clipdist()) // notreallyclipdist
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
break;
|
break;
|
||||||
|
@ -2562,7 +2562,7 @@ void VehicleSetSmoke(SECTOR_OBJECT* sop, ANIMATOR* animator)
|
||||||
{
|
{
|
||||||
|
|
||||||
case SPAWN_SPOT:
|
case SPAWN_SPOT:
|
||||||
if (actor->spr.clipdist == 3)
|
if (actor->native_clipdist() == 3)
|
||||||
{
|
{
|
||||||
if (animator)
|
if (animator)
|
||||||
{
|
{
|
||||||
|
|
|
@ -45,8 +45,8 @@ Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms
|
||||||
|
|
||||||
BEGIN_SW_NS
|
BEGIN_SW_NS
|
||||||
|
|
||||||
#define RESTORE_CLIP actor->spr.clipdist = oclipdist
|
#define RESTORE_CLIP actor->set_native_clipdist(oclipdist)
|
||||||
#define SAVE_CLIP auto oclipdist = actor->spr.clipdist
|
#define SAVE_CLIP auto oclipdist = actor->native_clipdist()
|
||||||
|
|
||||||
struct MISSILE_PLACEMENT
|
struct MISSILE_PLACEMENT
|
||||||
{
|
{
|
||||||
|
@ -5412,7 +5412,7 @@ int GetDamage(DSWActor* actor, DSWActor* weapActor, int DamageNdx)
|
||||||
|
|
||||||
// take off the box around the player or else you'll never get
|
// take off the box around the player or else you'll never get
|
||||||
// the max_damage;
|
// the max_damage;
|
||||||
dist -= (((int)actor->spr.clipdist)<<(2));
|
dist -= (((int)actor->native_clipdist())<(2));
|
||||||
|
|
||||||
if (dist < 0) dist = 0;
|
if (dist < 0) dist = 0;
|
||||||
|
|
||||||
|
@ -12072,7 +12072,7 @@ void InitSpellNapalm(PLAYER* pp)
|
||||||
actor->user.ceiling_dist = (1);
|
actor->user.ceiling_dist = (1);
|
||||||
actor->user.Dist = 12.5;
|
actor->user.Dist = 12.5;
|
||||||
|
|
||||||
auto oclipdist = plActor->spr.clipdist;
|
auto oclipdist = plActor->native_clipdist();
|
||||||
plActor->set_const_clipdist(1);
|
plActor->set_const_clipdist(1);
|
||||||
|
|
||||||
if (mp[i].dist_over != 0)
|
if (mp[i].dist_over != 0)
|
||||||
|
@ -12086,7 +12086,7 @@ void InitSpellNapalm(PLAYER* pp)
|
||||||
|
|
||||||
if (MissileSetPos(actor, DoNapalm, mp[i].dist_out))
|
if (MissileSetPos(actor, DoNapalm, mp[i].dist_out))
|
||||||
{
|
{
|
||||||
plActor->spr.clipdist = oclipdist;
|
plActor->set_native_clipdist(oclipdist);
|
||||||
KillActor(actor);
|
KillActor(actor);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -12094,7 +12094,7 @@ void InitSpellNapalm(PLAYER* pp)
|
||||||
if (pp->Flags & (PF_DIVING) || SpriteInUnderwaterArea(actor))
|
if (pp->Flags & (PF_DIVING) || SpriteInUnderwaterArea(actor))
|
||||||
actor->user.Flags |= (SPR_UNDERWATER);
|
actor->user.Flags |= (SPR_UNDERWATER);
|
||||||
|
|
||||||
plActor->spr.clipdist = oclipdist;
|
plActor->set_native_clipdist(oclipdist);
|
||||||
|
|
||||||
actor->user.Counter = 0;
|
actor->user.Counter = 0;
|
||||||
|
|
||||||
|
@ -12204,13 +12204,13 @@ int InitSpellMirv(PLAYER* pp)
|
||||||
actorNew->user.Dist = 12.5;
|
actorNew->user.Dist = 12.5;
|
||||||
|
|
||||||
DSWActor* plActor = pp->actor;
|
DSWActor* plActor = pp->actor;
|
||||||
auto oclipdist = plActor->spr.clipdist;
|
auto oclipdist = plActor->native_clipdist();
|
||||||
plActor->set_const_clipdist(0);
|
plActor->set_const_clipdist(0);
|
||||||
|
|
||||||
UpdateChange(actorNew);
|
UpdateChange(actorNew);
|
||||||
|
|
||||||
MissileSetPos(actorNew, DoMirv, 600);
|
MissileSetPos(actorNew, DoMirv, 600);
|
||||||
plActor->spr.clipdist = oclipdist;
|
plActor->set_native_clipdist(oclipdist);
|
||||||
|
|
||||||
actorNew->user.Counter = 0;
|
actorNew->user.Counter = 0;
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -13179,14 +13179,14 @@ void InitHeartAttack(PLAYER* pp)
|
||||||
actorNew->user.ceiling_dist = (1);
|
actorNew->user.ceiling_dist = (1);
|
||||||
actorNew->user.Dist = 12.5;
|
actorNew->user.Dist = 12.5;
|
||||||
|
|
||||||
auto oclipdist = plActor->spr.clipdist;
|
auto oclipdist = plActor->native_clipdist();
|
||||||
plActor->set_const_clipdist(1);
|
plActor->set_const_clipdist(1);
|
||||||
|
|
||||||
UpdateChange(actorNew);
|
UpdateChange(actorNew);
|
||||||
|
|
||||||
MissileSetPos(actorNew, DoBloodWorm, mp[i].dist_out);
|
MissileSetPos(actorNew, DoBloodWorm, mp[i].dist_out);
|
||||||
|
|
||||||
plActor->spr.clipdist = oclipdist;
|
plActor->set_native_clipdist(oclipdist);
|
||||||
actorNew->user.Counter = 0;
|
actorNew->user.Counter = 0;
|
||||||
actorNew->user.Counter2 = 0;
|
actorNew->user.Counter2 = 0;
|
||||||
actorNew->user.Counter3 = 0;
|
actorNew->user.Counter3 = 0;
|
||||||
|
@ -15344,7 +15344,7 @@ int InitTracerUzi(PLAYER* pp)
|
||||||
actorNew->spr.cstat |= (CSTAT_SPRITE_INVISIBLE);
|
actorNew->spr.cstat |= (CSTAT_SPRITE_INVISIBLE);
|
||||||
|
|
||||||
DSWActor* plActor = pp->actor;
|
DSWActor* plActor = pp->actor;
|
||||||
auto oclipdist = plActor->spr.clipdist;
|
auto oclipdist = plActor->native_clipdist();
|
||||||
plActor->set_const_clipdist(0);
|
plActor->set_const_clipdist(0);
|
||||||
|
|
||||||
actorNew->spr.angle += DAngle90;
|
actorNew->spr.angle += DAngle90;
|
||||||
|
@ -15356,14 +15356,14 @@ int InitTracerUzi(PLAYER* pp)
|
||||||
|
|
||||||
if (MissileSetPos(actorNew, DoTracerStart, 800))
|
if (MissileSetPos(actorNew, DoTracerStart, 800))
|
||||||
{
|
{
|
||||||
plActor->spr.clipdist = oclipdist;
|
plActor->set_native_clipdist(oclipdist);
|
||||||
KillActor(actorNew);
|
KillActor(actorNew);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
actorNew->vel.Z = -pp->horizon.horiz.asbuildf() * actorNew->vel.X * (1. / 128.);
|
actorNew->vel.Z = -pp->horizon.horiz.asbuildf() * actorNew->vel.X * (1. / 128.);
|
||||||
|
|
||||||
plActor->spr.clipdist = oclipdist;
|
plActor->set_native_clipdist(oclipdist);
|
||||||
|
|
||||||
WeaponAutoAim(pp->actor, actorNew, DAngle22_5 / 4, false);
|
WeaponAutoAim(pp->actor, actorNew, DAngle22_5 / 4, false);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue