mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-20 18:42:26 +00:00
- several s().
This commit is contained in:
parent
1e938e2b44
commit
9ad23631f5
10 changed files with 66 additions and 87 deletions
|
@ -587,12 +587,11 @@ int AutoBreakWall(WALLp wallp, int hit_x, int hit_y, int hit_z, int ang, int typ
|
|||
vec3_t hit_pos = { hit_x, hit_y, hit_z };
|
||||
// need correct location for spawning shrap
|
||||
auto breakActor = insertActor(0, STAT_DEFAULT);
|
||||
auto bsp = &breakActor->s();
|
||||
bsp->cstat = 0;
|
||||
bsp->extra = 0;
|
||||
bsp->ang = ang;
|
||||
bsp->picnum = ST1;
|
||||
bsp->xrepeat = bsp->yrepeat = 64;
|
||||
breakActor->spr.cstat = 0;
|
||||
breakActor->spr.extra = 0;
|
||||
breakActor->spr.ang = ang;
|
||||
breakActor->spr.picnum = ST1;
|
||||
breakActor->spr.xrepeat = breakActor->spr.yrepeat = 64;
|
||||
SetActorZ(breakActor, &hit_pos);
|
||||
SpawnShrap(breakActor, nullptr, -1, break_info);
|
||||
KillActor(breakActor);
|
||||
|
|
|
@ -351,113 +351,112 @@ void PreCacheActor(void)
|
|||
SWSpriteIterator it;
|
||||
while (auto actor = it.Next())
|
||||
{
|
||||
auto pUsr = actor->u();
|
||||
auto pSpr = &actor->s();
|
||||
if (pSpr->statnum >= MAXSTATUS)
|
||||
int pal = actor->spr.pal;
|
||||
if (actor->spr.statnum >= MAXSTATUS)
|
||||
continue;
|
||||
|
||||
if (pUsr)
|
||||
pic = pUsr->ID;
|
||||
if (actor->hasU())
|
||||
pic = actor->user.ID;
|
||||
else
|
||||
pic = pSpr->picnum;
|
||||
pic = actor->spr.picnum;
|
||||
|
||||
switch (pic)
|
||||
{
|
||||
case COOLIE_RUN_R0:
|
||||
PreCacheCoolie(pSpr->pal);
|
||||
PreCacheCoolie(pal);
|
||||
break;
|
||||
|
||||
case NINJA_RUN_R0:
|
||||
case NINJA_CRAWL_R0:
|
||||
PreCacheNinja(pSpr->pal);
|
||||
PreCacheNinja(pal);
|
||||
break;
|
||||
|
||||
case GORO_RUN_R0:
|
||||
PreCacheGuardian(pSpr->pal);
|
||||
PreCacheGuardian(pal);
|
||||
break;
|
||||
|
||||
case 1441:
|
||||
case COOLG_RUN_R0:
|
||||
PreCacheGhost(pSpr->pal);
|
||||
PreCacheGhost(pal);
|
||||
break;
|
||||
|
||||
case EEL_RUN_R0:
|
||||
PreCacheEel(pSpr->pal);
|
||||
PreCacheEel(pal);
|
||||
break;
|
||||
|
||||
case SUMO_RUN_R0:
|
||||
PreCacheZilla(pSpr->pal);
|
||||
PreCacheZilla(pal);
|
||||
break;
|
||||
|
||||
case ZILLA_RUN_R0:
|
||||
PreCacheSumo(pSpr->pal);
|
||||
PreCacheSumo(pal);
|
||||
break;
|
||||
|
||||
case TOILETGIRL_R0:
|
||||
PreCacheToiletGirl(pSpr->pal);
|
||||
PreCacheToiletGirl(pal);
|
||||
break;
|
||||
|
||||
case WASHGIRL_R0:
|
||||
PreCacheWashGirl(pSpr->pal);
|
||||
PreCacheWashGirl(pal);
|
||||
break;
|
||||
|
||||
case CARGIRL_R0:
|
||||
PreCacheCarGirl(pSpr->pal);
|
||||
PreCacheCarGirl(pal);
|
||||
break;
|
||||
|
||||
case MECHANICGIRL_R0:
|
||||
PreCacheMechanicGirl(pSpr->pal);
|
||||
PreCacheMechanicGirl(pal);
|
||||
break;
|
||||
|
||||
case SAILORGIRL_R0:
|
||||
PreCacheSailorGirl(pSpr->pal);
|
||||
PreCacheSailorGirl(pal);
|
||||
break;
|
||||
|
||||
case PRUNEGIRL_R0:
|
||||
PreCachePruneGirl(pSpr->pal);
|
||||
PreCachePruneGirl(pal);
|
||||
break;
|
||||
|
||||
case TRASHCAN:
|
||||
PreCacheTrash(pSpr->pal);
|
||||
PreCacheTrash(pal);
|
||||
break;
|
||||
|
||||
case BUNNY_RUN_R0:
|
||||
PreCacheBunny(pSpr->pal);
|
||||
PreCacheBunny(pal);
|
||||
break;
|
||||
|
||||
case RIPPER_RUN_R0:
|
||||
PreCacheRipper(pSpr->pal);
|
||||
PreCacheRipper(pal);
|
||||
break;
|
||||
|
||||
case RIPPER2_RUN_R0:
|
||||
PreCacheRipper2(pSpr->pal);
|
||||
PreCacheRipper2(pal);
|
||||
break;
|
||||
|
||||
case SERP_RUN_R0:
|
||||
PreCacheSerpent(pSpr->pal);
|
||||
PreCacheSerpent(pal);
|
||||
break;
|
||||
|
||||
case LAVA_RUN_R0:
|
||||
break;
|
||||
|
||||
case SKEL_RUN_R0:
|
||||
PreCacheSkel(pSpr->pal);
|
||||
PreCacheSkel(pal);
|
||||
break;
|
||||
|
||||
case HORNET_RUN_R0:
|
||||
PreCacheHornet(pSpr->pal);
|
||||
PreCacheHornet(pal);
|
||||
break;
|
||||
|
||||
case SKULL_R0:
|
||||
PreCacheSkull(pSpr->pal);
|
||||
PreCacheSkull(pal);
|
||||
break;
|
||||
|
||||
case BETTY_R0:
|
||||
PreCacheBetty(pSpr->pal);
|
||||
PreCacheBetty(pal);
|
||||
break;
|
||||
|
||||
case GIRLNINJA_RUN_R0:
|
||||
PreCacheNinjaGirl(pSpr->pal);
|
||||
PreCacheNinjaGirl(pal);
|
||||
break;
|
||||
|
||||
case 623: // Pachinko win light
|
||||
|
@ -465,11 +464,11 @@ void PreCacheActor(void)
|
|||
case PACHINKO2:
|
||||
case PACHINKO3:
|
||||
case PACHINKO4:
|
||||
PreCachePachinko(pSpr->pal);
|
||||
PreCachePachinko(pal);
|
||||
break;
|
||||
|
||||
default:
|
||||
markTileForPrecache(pic, pSpr->pal);
|
||||
markTileForPrecache(pic, pal);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -453,8 +453,7 @@ int DoBloodSpray(DSWActor* actor)
|
|||
}
|
||||
else
|
||||
{
|
||||
auto bsp = &bldActor->s();
|
||||
if (FAF_Sector(bsp->sector()) || FAF_ConnectArea(bsp->sector()))
|
||||
if (FAF_Sector(bldActor->spr.sector()) || FAF_ConnectArea(bldActor->spr.sector()))
|
||||
{
|
||||
KillActor(actor);
|
||||
return 0;
|
||||
|
@ -462,8 +461,8 @@ int DoBloodSpray(DSWActor* actor)
|
|||
|
||||
actor->spr.xvel = actor->spr.yvel = u->xchange = u->ychange = 0;
|
||||
actor->spr.xrepeat = actor->spr.yrepeat = 70 - RandomRange(25);
|
||||
actor->spr.pos.X = bsp->pos.X;
|
||||
actor->spr.pos.Y = bsp->pos.Y;
|
||||
actor->spr.pos.X = bldActor->spr.pos.X;
|
||||
actor->spr.pos.Y = bldActor->spr.pos.Y;
|
||||
|
||||
// !FRANK! bit of a hack
|
||||
// yvel is the hit_wall
|
||||
|
|
|
@ -2358,7 +2358,6 @@ void InitPlayerSprite(PLAYERp pp)
|
|||
pp->pos.Y, pp->pos.Z, pp->angle.ang.asbuild(), 0);
|
||||
|
||||
pp->actor = actor;
|
||||
sp = &actor->s();
|
||||
pp->pnum = pnum;
|
||||
|
||||
SET(actor->spr.cstat, CSTAT_SPRITE_BLOCK | CSTAT_SPRITE_BLOCK_HITSCAN);
|
||||
|
|
|
@ -521,17 +521,15 @@ int DoSlidor(DSWActor* actor)
|
|||
// if heading for the OFF (original) position and should NOT CRUSH
|
||||
if (TEST_BOOL3(sp) && r->tgt == 0)
|
||||
{
|
||||
SPRITEp bsp;
|
||||
USERp bu;
|
||||
bool found = false;
|
||||
|
||||
SWSectIterator it(sp->sector());
|
||||
while (auto itActor = it.Next())
|
||||
{
|
||||
bsp = &itActor->s();
|
||||
bu = itActor->u();
|
||||
|
||||
if (bu && TEST(bsp->cstat, CSTAT_SPRITE_BLOCK) && TEST(bsp->extra, SPRX_PLAYER_OR_ENEMY))
|
||||
if (bu && TEST(itActor->spr.cstat, CSTAT_SPRITE_BLOCK) && TEST(itActor->spr.extra, SPRX_PLAYER_OR_ENEMY))
|
||||
{
|
||||
// found something blocking so reverse to ON position
|
||||
ReverseSlidor(actor);
|
||||
|
|
|
@ -365,17 +365,15 @@ int DoSpike(DSWActor* actor)
|
|||
// if heading for the OFF (original) position and should NOT CRUSH
|
||||
if (TEST_BOOL3(sp) && u->z_tgt == u->oz)
|
||||
{
|
||||
SPRITEp bsp;
|
||||
USERp bu;
|
||||
bool found = false;
|
||||
|
||||
SWSectIterator it(actor->spr.sector());
|
||||
while (auto itActor = it.Next())
|
||||
{
|
||||
bsp = &actor->s();
|
||||
bu = actor->u();
|
||||
|
||||
if (bu && TEST(bsp->cstat, CSTAT_SPRITE_BLOCK) && TEST(bsp->extra, SPRX_PLAYER_OR_ENEMY))
|
||||
if (bu && TEST(actor->spr.cstat, CSTAT_SPRITE_BLOCK) && TEST(actor->spr.extra, SPRX_PLAYER_OR_ENEMY))
|
||||
{
|
||||
ReverseSpike(actor);
|
||||
found = true;
|
||||
|
|
|
@ -481,19 +481,17 @@ int DoVator(DSWActor* actor)
|
|||
if (TEST_BOOL3(sp) && u->z_tgt == u->oz)
|
||||
{
|
||||
int i;
|
||||
SPRITEp bsp;
|
||||
USERp bu;
|
||||
bool found = false;
|
||||
|
||||
SWSectIterator it(sp->sector());
|
||||
while (auto itActor = it.Next())
|
||||
{
|
||||
bsp = &itActor->s();
|
||||
bu = itActor->u();
|
||||
|
||||
if (bsp->statnum == STAT_ENEMY)
|
||||
if (itActor->spr.statnum == STAT_ENEMY)
|
||||
{
|
||||
if (labs(sectp->ceilingz - sectp->floorz) < GetSpriteSizeZ(bsp))
|
||||
if (labs(sectp->ceilingz - sectp->floorz) < ActorSizeZ(itActor))
|
||||
{
|
||||
InitBloodSpray(itActor, true, -1);
|
||||
UpdateSinglePlayKills(itActor);
|
||||
|
@ -502,7 +500,7 @@ int DoVator(DSWActor* actor)
|
|||
}
|
||||
}
|
||||
|
||||
if (bu && TEST(bsp->cstat, CSTAT_SPRITE_BLOCK) && TEST(bsp->extra, SPRX_PLAYER_OR_ENEMY))
|
||||
if (bu && TEST(itActor->spr.cstat, CSTAT_SPRITE_BLOCK) && TEST(itActor->spr.extra, SPRX_PLAYER_OR_ENEMY))
|
||||
{
|
||||
// found something blocking so reverse to ON position
|
||||
ReverseVator(actor);
|
||||
|
@ -534,16 +532,12 @@ int DoVator(DSWActor* actor)
|
|||
}
|
||||
else
|
||||
{
|
||||
SPRITEp bsp;
|
||||
|
||||
SWSectIterator it(sp->sector());
|
||||
while (auto itActor = it.Next())
|
||||
{
|
||||
bsp = &itActor->s();
|
||||
|
||||
if (bsp->statnum == STAT_ENEMY)
|
||||
if (itActor->spr.statnum == STAT_ENEMY)
|
||||
{
|
||||
if (labs(sectp->ceilingz - sectp->floorz) < GetSpriteSizeZ(bsp))
|
||||
if (labs(sectp->ceilingz - sectp->floorz) < ActorSizeZ(itActor))
|
||||
{
|
||||
InitBloodSpray(itActor, true, -1);
|
||||
UpdateSinglePlayKills(itActor);
|
||||
|
|
|
@ -86,15 +86,13 @@ int DoWallMove(DSWActor* actor)
|
|||
short dang;
|
||||
bool SOsprite = false;
|
||||
|
||||
auto sp = &actor->s();
|
||||
|
||||
dist = SP_TAG13(actor);
|
||||
ang = SP_TAG4(sp);
|
||||
picnum1 = SP_TAG5(sp);
|
||||
picnum2 = SP_TAG6(sp);
|
||||
shade1 = SP_TAG7(sp);
|
||||
shade2 = SP_TAG8(sp);
|
||||
dang = ((int)SP_TAG10(sp)) << 3;
|
||||
ang = SP_TAG4(actor);
|
||||
picnum1 = SP_TAG5(actor);
|
||||
picnum2 = SP_TAG6(actor);
|
||||
shade1 = SP_TAG7(actor);
|
||||
shade2 = SP_TAG8(actor);
|
||||
dang = ((int)SP_TAG10(actor)) << 3;
|
||||
|
||||
if (dang)
|
||||
ang = NORM_ANGLE(ang + (RandomRange(dang) - dang/2));
|
||||
|
@ -104,7 +102,7 @@ int DoWallMove(DSWActor* actor)
|
|||
|
||||
for(auto& wal : wall)
|
||||
{
|
||||
if (wal.pos.X == sp->pos.X && wal.pos.Y == sp->pos.Y)
|
||||
if (wal.pos.X == actor->spr.pos.X && wal.pos.Y == actor->spr.pos.Y)
|
||||
{
|
||||
found = true;
|
||||
|
||||
|
@ -119,7 +117,7 @@ int DoWallMove(DSWActor* actor)
|
|||
}
|
||||
else
|
||||
{
|
||||
wal.move(sp->pos.X + nx, sp->pos.Y + ny);
|
||||
wal.move(actor->spr.pos.X + nx, actor->spr.pos.Y + ny);
|
||||
}
|
||||
|
||||
if (shade1)
|
||||
|
@ -136,8 +134,8 @@ int DoWallMove(DSWActor* actor)
|
|||
}
|
||||
}
|
||||
|
||||
SP_TAG9(sp)--;
|
||||
if ((int8_t)SP_TAG9(sp) <= 0)
|
||||
SP_TAG9(actor)--;
|
||||
if ((int8_t)SP_TAG9(actor) <= 0)
|
||||
{
|
||||
KillActor(actor);
|
||||
}
|
||||
|
@ -151,8 +149,8 @@ int DoWallMove(DSWActor* actor)
|
|||
}
|
||||
else
|
||||
{
|
||||
sp->pos.X += nx;
|
||||
sp->pos.Y += ny;
|
||||
actor->spr.pos.X += nx;
|
||||
actor->spr.pos.Y += ny;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -163,18 +161,15 @@ bool CanSeeWallMove(DSWActor* caller, int match)
|
|||
{
|
||||
int i;
|
||||
bool found = false;
|
||||
SPRITEp sp;
|
||||
|
||||
SWStatIterator it(STAT_WALL_MOVE_CANSEE);
|
||||
while (auto actor = it.Next())
|
||||
{
|
||||
sp = &actor->s();
|
||||
|
||||
if (SP_TAG2(actor) == match)
|
||||
{
|
||||
found = true;
|
||||
|
||||
if (cansee(caller->spr.pos.X, caller->spr.pos.Y, caller->spr.pos.Z, caller->spr.sector(), sp->pos.X, sp->pos.Y, sp->pos.Z, sp->sector()))
|
||||
if (cansee(caller->spr.pos.X, caller->spr.pos.Y, caller->spr.pos.Z, caller->spr.sector(), actor->spr.pos.X, actor->spr.pos.Y, actor->spr.pos.Z, actor->spr.sector()))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -167,26 +167,24 @@ DSWActor* WarpToArea(DSWActor* sp_from, int32_t* x, int32_t* y, int32_t* z, sect
|
|||
SWStatIterator it(STAT_WARP);
|
||||
while (auto actor = it.Next())
|
||||
{
|
||||
auto spi = &actor->s();
|
||||
|
||||
if (spi->lotag == match && actor != sp_from)
|
||||
if (actor->spr.lotag == match && actor != sp_from)
|
||||
{
|
||||
// exp: WARP_CEILING or WARP_CEILING_PLANE
|
||||
if (spi->hitag == to_tag)
|
||||
if (actor->spr.hitag == to_tag)
|
||||
{
|
||||
if (!spi->insector())
|
||||
if (!actor->spr.insector())
|
||||
return nullptr;
|
||||
|
||||
// determine new x,y,z position
|
||||
*x = spi->pos.X + xoff;
|
||||
*y = spi->pos.Y + yoff;
|
||||
*z = spi->pos.Z + zoff;
|
||||
*x = actor->spr.pos.X + xoff;
|
||||
*y = actor->spr.pos.Y + yoff;
|
||||
*z = actor->spr.pos.Z + zoff;
|
||||
|
||||
// make sure you warp outside of warp plane
|
||||
*z += z_adj;
|
||||
|
||||
// get new sector
|
||||
*sect = spi->sector();
|
||||
*sect = actor->spr.sector();
|
||||
updatesector(*x, *y, sect);
|
||||
|
||||
return actor;
|
||||
|
|
|
@ -12423,7 +12423,7 @@ int InitSwordAttack(PLAYERp pp)
|
|||
|
||||
int InitFistAttack(PLAYERp pp)
|
||||
{
|
||||
auto plActor = pp->actor;
|
||||
DSWActor* plActor = pp->actor;
|
||||
USERp u = plActor->u(),tu;
|
||||
auto psp = &plActor->s();
|
||||
unsigned stat;
|
||||
|
|
Loading…
Reference in a new issue