- lots of repeats in Exhumed

This commit is contained in:
Christoph Oelckers 2022-10-07 19:26:23 +02:00
parent 558eaf38e1
commit 42679d58bb
12 changed files with 36 additions and 51 deletions

View file

@ -484,6 +484,12 @@ struct spritetypebase
yrepeat = uint8_t(y * scaletoint);
}
void SetScale(const DVector2& p)
{
xrepeat = uint8_t(p.X * scaletoint);
yrepeat = uint8_t(p.Y * scaletoint);
}
void SetScaleX(double x)
{
xrepeat = uint8_t(x * scaletoint);

View file

@ -347,8 +347,8 @@ int MoveBullet(int nBullet)
{
if (pBullet->field_E < 8)
{
pActor->spr.xrepeat -= 1;
pActor->spr.yrepeat += 8;
pActor->spr.AddScaleX(-REPEAT_SCALE);
pActor->spr.AddScaleY(0.125);
pBullet->vect.Z -= 200/256.;
@ -367,8 +367,8 @@ int MoveBullet(int nBullet)
}
else
{
pActor->spr.xrepeat += 4;
pActor->spr.yrepeat += 4;
pActor->spr.AddScaleX(0.0625);
pActor->spr.AddScaleY(0.0625);
}
}

View file

@ -457,8 +457,7 @@ void StartRegenerate(DExhumedActor* pActor)
}
pActor->spr.cstat = CSTAT_SPRITE_INVISIBLE;
pActor->spr.xrepeat = 1;
pActor->spr.yrepeat = 1;
pActor->spr.SetScale(REPEAT_SCALE, REPEAT_SCALE);
pActor->spr.pal = 1;
Regenerates.Push(pActor);
@ -492,8 +491,8 @@ void DoRegenerates()
{
if (pActor->spr.xrepeat < pActor->spr.xint)
{
pActor->spr.xrepeat += 2;
pActor->spr.yrepeat += 2;
pActor->spr.AddScaleX(0.03125);
pActor->spr.AddScaleY(0.03125);
continue;
}
}

View file

@ -50,8 +50,7 @@ DExhumedActor* BuildLavaLimb(DExhumedActor* pActor, int move, double height)
pLimbActor->vel.Z = 10 - RandomSize(5);
pLimbActor->spr.xoffset = 0;
pLimbActor->spr.yoffset = 0;
pLimbActor->spr.xrepeat = 90;
pLimbActor->spr.yrepeat = 90;
pLimbActor->spr.SetScale(1.40625, 1.40625);
pLimbActor->spr.picnum = (move & 3) % 3;
pLimbActor->spr.hitag = 0;
pLimbActor->spr.lotag = runlist_HeadRun() + 1;
@ -114,8 +113,7 @@ void BuildLava(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector,
}
pActor->spr.cstat = CSTAT_SPRITE_INVISIBLE;
pActor->spr.xrepeat = 200;
pActor->spr.yrepeat = 200;
pActor->spr.SetScale(3.125, 3.125);
pActor->spr.shade = -12;
pActor->spr.pal = 0;
pActor->clipdist = 31.75;

View file

@ -62,8 +62,7 @@ void BuildMummy(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector,
pActor->vel.X = 0;
pActor->vel.Y = 0;
pActor->vel.Z = 0;
pActor->spr.xrepeat = 42;
pActor->spr.yrepeat = 42;
pActor->spr.SetScale(0.65625, 0.65625);
pActor->spr.pal = pActor->sector()->ceilingpal;
pActor->spr.xoffset = 0;
pActor->spr.yoffset = 0;

View file

@ -1410,13 +1410,11 @@ DExhumedActor* BuildSpark(DExhumedActor* pActor, int nVal)
if (nVal == 3)
{
pSpark->spr.xrepeat = 120;
pSpark->spr.yrepeat = 120;
pSpark->spr.SetScale(1.875, 1.875);
}
else
{
pSpark->spr.xrepeat = pActor->spr.xrepeat + 15;
pSpark->spr.yrepeat = pActor->spr.xrepeat + 15;
pSpark->spr.SetScale(pActor->spr.Scale() + DVector2(0.234375, 0.234375));
}
}
else
@ -1467,7 +1465,7 @@ void AISpark::Tick(RunListEvent* ev)
if (pActor->spr.ScaleX() >= 0.0625 && pActor->spr.shade <= 100)
{
pActor->spr.yrepeat -= 2;
pActor->spr.AddScaleY(-0.03125);
// calling BuildSpark() with 2nd parameter as '1' will set kTile986
if (pActor->spr.picnum == kTile986 && (pActor->spr.xrepeat & 2))

View file

@ -338,8 +338,7 @@ void RestartPlayer(int nPlayer)
pActor->spr.lotag = runlist_HeadRun() + 1;
pDActor->spr.pos = pActor->spr.pos;
pDActor->spr.xrepeat = pActor->spr.xrepeat;
pDActor->spr.yrepeat = pActor->spr.yrepeat;
pDActor->spr.CopyScale(&pActor->spr);
pDActor->spr.xoffset = 0;
pDActor->spr.yoffset = 0;
pDActor->spr.shade = pActor->spr.shade;

View file

@ -425,8 +425,7 @@ void BuildTail()
pTailActor->spr.hitag = 0;
pTailActor->spr.cstat = 0;
pTailActor->clipdist = 25;
pTailActor->spr.xrepeat = 80;
pTailActor->spr.yrepeat = 80;
pTailActor->spr.SetScale(1.25, 1.25);
pTailActor->spr.picnum = 1;
pTailActor->spr.pal = pTailActor->sector()->ceilingpal;
pTailActor->spr.xoffset = 0;
@ -478,16 +477,14 @@ void BuildQueenEgg(int nQueen, int nVal)
if (!nVal)
{
pActor2->spr.xrepeat = 30;
pActor2->spr.yrepeat = 30;
pActor2->spr.SetScale(0.46875, 0.46875);
pActor2->vel.XY() = pActor2->spr.angle.ToVector() * 1024;
pActor2->vel.Z = -6000 / 256.;
pActor2->spr.cstat = 0;
}
else
{
pActor2->spr.xrepeat = 60;
pActor2->spr.yrepeat = 60;
pActor2->spr.SetScale(0.9375, 0.9375);
pActor2->vel.X = 0;
pActor2->vel.Y = 0;
pActor2->vel.Z = -2000 / 256.;
@ -749,8 +746,7 @@ void BuildQueenHead(int nQueen)
pActor2->spr.pos.XY() = pActor->spr.pos.XY();
pActor2->spr.pos.Z = pSector->floorz;
pActor2->clipdist = 17.5;
pActor2->spr.xrepeat = 80;
pActor2->spr.yrepeat = 80;
pActor2->spr.SetScale(1.25, 1.25);
pActor2->spr.cstat = 0;
pActor2->spr.picnum = 1;
pActor2->spr.shade = -12;
@ -1182,8 +1178,7 @@ void BuildQueen(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector,
pActor->spr.pal = 0;
pActor->spr.shade = -12;
pActor->clipdist = 25;
pActor->spr.xrepeat = 80;
pActor->spr.yrepeat = 80;
pActor->spr.SetScale(1.25, 1.25);
pActor->spr.xoffset = 0;
pActor->spr.yoffset = 0;
pActor->spr.picnum = 1;
@ -1451,15 +1446,13 @@ void AIQueen::Tick(RunListEvent* ev)
auto pChunkActor = BuildCreatureChunk(pActor, seq_GetSeqPicnum(kSeqQueen, 57, 0));
pChunkActor->spr.picnum = kQueenChunk + (i % 3);
pChunkActor->spr.xrepeat = 100;
pChunkActor->spr.yrepeat = 100;
pChunkActor->spr.SetScale(1.5625, 1.5625);
}
auto pChunkActor = BuildCreatureChunk(pActor, seq_GetSeqPicnum(kSeqQueen, 57, 0));
pChunkActor->spr.picnum = kTile3126;
pChunkActor->spr.yrepeat = 100;
pChunkActor->spr.xrepeat = 100;
pChunkActor->spr.SetScale(1.5625, 1.5625);
PlayFXAtXYZ(
StaticSound[kSound40],

View file

@ -117,8 +117,7 @@ void InitSpiritHead()
}
pSpiritSpr->spr.yrepeat = 140;
pSpiritSpr->spr.xrepeat = 140;
pSpiritSpr->spr.SetScale(2.1875, 2.1875);
pSpiritSpr->spr.picnum = kTileRamsesWorkTile;
nHeadStage = 0;

View file

@ -61,8 +61,7 @@ void BuildScorp(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector,
pActor->spr.cstat = CSTAT_SPRITE_BLOCK_ALL;
pActor->clipdist = 17.5;
pActor->spr.shade = -12;
pActor->spr.xrepeat = 80;
pActor->spr.yrepeat = 80;
pActor->spr.SetScale(1.25, 1.25);
pActor->spr.picnum = 1;
pActor->spr.pal = pActor->sector()->ceilingpal;
pActor->spr.xoffset = 0;

View file

@ -643,8 +643,7 @@ int seq_PlotSequence(int nSprite, int16_t edx, int16_t nFrame, int16_t ecx)
tsp->shade = shade;
tsp->pal = pTSprite->pal;
tsp->xrepeat = pTSprite->xrepeat;
tsp->yrepeat = pTSprite->yrepeat;
tsp->CopyScale(pTSprite);
tsp->angle = pTSprite->angle;
tsp->ownerActor = pTSprite->ownerActor;
tsp->sectp = pTSprite->sectp;
@ -691,8 +690,7 @@ int seq_PlotSequence(int nSprite, int16_t edx, int16_t nFrame, int16_t ecx)
pTSprite->cstat = CSTAT_SPRITE_ALIGNMENT_FLOOR | CSTAT_SPRITE_TRANSLUCENT;
pTSprite->pos.Z = pSector->floorz;
pTSprite->yrepeat = (uint8_t)edx;
pTSprite->xrepeat = (uint8_t)edx;
pTSprite->SetScale(edx * REPEAT_SCALE, edx * REPEAT_SCALE);
pTSprite->statnum = -3;
pTSprite->pal = 0;
}

View file

@ -65,8 +65,7 @@ void BuildSet(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, D
pActor->vel.X = 0;
pActor->vel.Y = 0;
pActor->vel.Z = 0;
pActor->spr.xrepeat = 87;
pActor->spr.yrepeat = 96;
pActor->spr.SetScale(1.359375, 1.5);
pActor->spr.pal = pActor->sector()->ceilingpal;
pActor->spr.xoffset = 0;
pActor->spr.yoffset = 0;
@ -109,8 +108,7 @@ void BuildSoul(DExhumedActor* pSet)
pActor->spr.cstat = CSTAT_SPRITE_INVISIBLE;
pActor->spr.shade = -127;
pActor->spr.xrepeat = 1;
pActor->spr.yrepeat = 1;
pActor->spr.SetScale(REPEAT_SCALE, REPEAT_SCALE);
pActor->spr.pal = 0;
pActor->clipdist = 1.25;
pActor->spr.xoffset = 0;
@ -148,8 +146,8 @@ void AISoul::Tick(RunListEvent* ev)
if (pActor->spr.ScaleX() < 0.5)
{
pActor->spr.xrepeat++;
pActor->spr.yrepeat++;
pActor->spr.AddScaleX(REPEAT_SCALE);
pActor->spr.AddScaleY(REPEAT_SCALE);
}
pActor->spr.extra += (pActor->nPhase & 0x0F) + 5;
@ -165,8 +163,7 @@ void AISoul::Tick(RunListEvent* ev)
if (!pSet) return;
pActor->spr.cstat = 0;
pActor->spr.yrepeat = 1;
pActor->spr.xrepeat = 1;
pActor->spr.SetScale(REPEAT_SCALE, REPEAT_SCALE);
pActor->spr.pos = pSet->spr.pos.plusZ(-GetActorHeight(pSet) * 0.5);
ChangeActorSect(pActor, pSet->sector());
return;