mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-28 14:11:06 +00:00
- xsprite in animatesprite.cpp.
This commit is contained in:
parent
773d7d118f
commit
91214b5350
2 changed files with 21 additions and 28 deletions
|
@ -131,9 +131,8 @@ static tspritetype *viewAddEffect(tspritetype* tsprite, int& spritesortcnt, int
|
||||||
switch (nViewEffect)
|
switch (nViewEffect)
|
||||||
{
|
{
|
||||||
case kViewEffectSpotProgress: {
|
case kViewEffectSpotProgress: {
|
||||||
XSPRITE* pXSprite = &owneractor->x();
|
int perc = (100 * owneractor->xspr.data3) / kMaxPatrolSpotValue;
|
||||||
int perc = (100 * pXSprite->data3) / kMaxPatrolSpotValue;
|
int width = (94 * owneractor->xspr.data3) / kMaxPatrolSpotValue;
|
||||||
int width = (94 * pXSprite->data3) / kMaxPatrolSpotValue;
|
|
||||||
|
|
||||||
int top, bottom;
|
int top, bottom;
|
||||||
GetSpriteExtents(pTSprite, &top, &bottom);
|
GetSpriteExtents(pTSprite, &top, &bottom);
|
||||||
|
@ -520,16 +519,11 @@ void viewProcessSprites(tspritetype* tsprite, int& spritesortcnt, int32_t cX, in
|
||||||
{
|
{
|
||||||
tspritetype *pTSprite = &tsprite[nTSprite];
|
tspritetype *pTSprite = &tsprite[nTSprite];
|
||||||
auto owneractor = static_cast<DBloodActor*>(pTSprite->ownerActor);
|
auto owneractor = static_cast<DBloodActor*>(pTSprite->ownerActor);
|
||||||
XSPRITE *pTXSprite = NULL;
|
|
||||||
if (owneractor->spr.detail > gDetail)
|
if (owneractor->spr.detail > gDetail)
|
||||||
{
|
{
|
||||||
pTSprite->xrepeat = 0;
|
pTSprite->xrepeat = 0;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (owneractor->hasX())
|
|
||||||
{
|
|
||||||
pTXSprite = &owneractor->x();
|
|
||||||
}
|
|
||||||
int nTile = pTSprite->picnum;
|
int nTile = pTSprite->picnum;
|
||||||
if (nTile < 0 || nTile >= kMaxTiles)
|
if (nTile < 0 || nTile >= kMaxTiles)
|
||||||
{
|
{
|
||||||
|
@ -553,14 +547,14 @@ void viewProcessSprites(tspritetype* tsprite, int& spritesortcnt, int32_t cX, in
|
||||||
int nAnim = 0;
|
int nAnim = 0;
|
||||||
switch (picanm[nTile].extra & 7) {
|
switch (picanm[nTile].extra & 7) {
|
||||||
case 0:
|
case 0:
|
||||||
if (pTXSprite == nullptr) break;
|
if (!owneractor->hasX()) break;
|
||||||
switch (pTSprite->type) {
|
switch (pTSprite->type) {
|
||||||
case kSwitchToggle:
|
case kSwitchToggle:
|
||||||
case kSwitchOneWay:
|
case kSwitchOneWay:
|
||||||
if (pTXSprite->state) nAnim = 1;
|
if (owneractor->xspr.state) nAnim = 1;
|
||||||
break;
|
break;
|
||||||
case kSwitchCombo:
|
case kSwitchCombo:
|
||||||
nAnim = pTXSprite->data1;
|
nAnim = owneractor->xspr.data1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -601,7 +595,7 @@ void viewProcessSprites(tspritetype* tsprite, int& spritesortcnt, int32_t cX, in
|
||||||
}
|
}
|
||||||
case 3:
|
case 3:
|
||||||
{
|
{
|
||||||
if (pTXSprite)
|
if (owneractor->hasX())
|
||||||
{
|
{
|
||||||
if (owneractor->hit.florhit.type == kHitNone)
|
if (owneractor->hit.florhit.type == kHitNone)
|
||||||
nAnim = 1;
|
nAnim = 1;
|
||||||
|
@ -694,13 +688,12 @@ void viewProcessSprites(tspritetype* tsprite, int& spritesortcnt, int32_t cX, in
|
||||||
}
|
}
|
||||||
nShade += tileShade[pTSprite->picnum];
|
nShade += tileShade[pTSprite->picnum];
|
||||||
pTSprite->shade = ClipRange(nShade, -128, 127);
|
pTSprite->shade = ClipRange(nShade, -128, 127);
|
||||||
if ((pTSprite->flags&kHitagRespawn) && pTSprite->ownerActor->spr.owner == 3) // Where does this 3 come from? Nothing sets it.
|
if ((pTSprite->flags&kHitagRespawn) && pTSprite->ownerActor->spr.owner == 3 && owneractor->hasX()) // Where does this 3 come from? Nothing sets it.
|
||||||
{
|
{
|
||||||
assert(pTXSprite != NULL);
|
|
||||||
pTSprite->xrepeat = 48;
|
pTSprite->xrepeat = 48;
|
||||||
pTSprite->yrepeat = 48;
|
pTSprite->yrepeat = 48;
|
||||||
pTSprite->shade = -128;
|
pTSprite->shade = -128;
|
||||||
pTSprite->picnum = 2272 + 2*pTXSprite->respawnPending;
|
pTSprite->picnum = 2272 + 2* owneractor->xspr.respawnPending;
|
||||||
pTSprite->cstat &= ~(CSTAT_SPRITE_TRANSLUCENT | CSTAT_SPRITE_TRANS_FLIP);
|
pTSprite->cstat &= ~(CSTAT_SPRITE_TRANSLUCENT | CSTAT_SPRITE_TRANS_FLIP);
|
||||||
if (((IsItemSprite(pTSprite) || IsAmmoSprite(pTSprite)) && gGameOptions.nItemSettings == 2)
|
if (((IsItemSprite(pTSprite) || IsAmmoSprite(pTSprite)) && gGameOptions.nItemSettings == 2)
|
||||||
|| (IsWeaponSprite(pTSprite) && gGameOptions.nWeaponSettings == 3))
|
|| (IsWeaponSprite(pTSprite) && gGameOptions.nWeaponSettings == 3))
|
||||||
|
@ -713,7 +706,7 @@ void viewProcessSprites(tspritetype* tsprite, int& spritesortcnt, int32_t cX, in
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (spritesortcnt >= MAXSPRITESONSCREEN) continue;
|
if (spritesortcnt >= MAXSPRITESONSCREEN) continue;
|
||||||
if (pTXSprite && pTXSprite->burnTime > 0)
|
if (owneractor->hasX() && owneractor->xspr.burnTime > 0)
|
||||||
{
|
{
|
||||||
pTSprite->shade = ClipRange(pTSprite->shade-16-QRandom(8), -128, 127);
|
pTSprite->shade = ClipRange(pTSprite->shade-16-QRandom(8), -128, 127);
|
||||||
}
|
}
|
||||||
|
@ -733,7 +726,7 @@ void viewProcessSprites(tspritetype* tsprite, int& spritesortcnt, int32_t cX, in
|
||||||
case kStatDecoration: {
|
case kStatDecoration: {
|
||||||
switch (pTSprite->type) {
|
switch (pTSprite->type) {
|
||||||
case kDecorationCandle:
|
case kDecorationCandle:
|
||||||
if (!pTXSprite || pTXSprite->state == 1) {
|
if (!owneractor->hasX() || owneractor->xspr.state == 1) {
|
||||||
pTSprite->shade = -128;
|
pTSprite->shade = -128;
|
||||||
viewAddEffect(tsprite, spritesortcnt, nTSprite, kViewEffectPhase);
|
viewAddEffect(tsprite, spritesortcnt, nTSprite, kViewEffectPhase);
|
||||||
} else {
|
} else {
|
||||||
|
@ -741,7 +734,7 @@ void viewProcessSprites(tspritetype* tsprite, int& spritesortcnt, int32_t cX, in
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case kDecorationTorch:
|
case kDecorationTorch:
|
||||||
if (!pTXSprite || pTXSprite->state == 1) {
|
if (!owneractor->hasX() || owneractor->xspr.state == 1) {
|
||||||
pTSprite->picnum++;
|
pTSprite->picnum++;
|
||||||
viewAddEffect(tsprite, spritesortcnt, nTSprite, kViewEffectTorchHigh);
|
viewAddEffect(tsprite, spritesortcnt, nTSprite, kViewEffectTorchHigh);
|
||||||
} else {
|
} else {
|
||||||
|
@ -757,13 +750,13 @@ void viewProcessSprites(tspritetype* tsprite, int& spritesortcnt, int32_t cX, in
|
||||||
case kStatItem: {
|
case kStatItem: {
|
||||||
switch (pTSprite->type) {
|
switch (pTSprite->type) {
|
||||||
case kItemFlagABase:
|
case kItemFlagABase:
|
||||||
if (pTXSprite && pTXSprite->state > 0 && gGameOptions.nGameType == 3) {
|
if (owneractor->hasX() && owneractor->xspr.state > 0 && gGameOptions.nGameType == 3) {
|
||||||
auto pNTSprite = viewAddEffect(tsprite, spritesortcnt, nTSprite, kViewEffectBigFlag);
|
auto pNTSprite = viewAddEffect(tsprite, spritesortcnt, nTSprite, kViewEffectBigFlag);
|
||||||
if (pNTSprite) pNTSprite->pal = 10;
|
if (pNTSprite) pNTSprite->pal = 10;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case kItemFlagBBase:
|
case kItemFlagBBase:
|
||||||
if (pTXSprite && pTXSprite->state > 0 && gGameOptions.nGameType == 3) {
|
if (owneractor->hasX() && owneractor->xspr.state > 0 && gGameOptions.nGameType == 3) {
|
||||||
auto pNTSprite = viewAddEffect(tsprite, spritesortcnt, nTSprite, kViewEffectBigFlag);
|
auto pNTSprite = viewAddEffect(tsprite, spritesortcnt, nTSprite, kViewEffectBigFlag);
|
||||||
if (pNTSprite) pNTSprite->pal = 7;
|
if (pNTSprite) pNTSprite->pal = 7;
|
||||||
}
|
}
|
||||||
|
@ -826,7 +819,7 @@ void viewProcessSprites(tspritetype* tsprite, int& spritesortcnt, int32_t cX, in
|
||||||
}
|
}
|
||||||
case kStatDude:
|
case kStatDude:
|
||||||
{
|
{
|
||||||
if (pTSprite->type == kDudeHand && pTXSprite->aiState == &hand13A3B4)
|
if (pTSprite->type == kDudeHand && owneractor->hasX() && owneractor->xspr.aiState == &hand13A3B4)
|
||||||
{
|
{
|
||||||
auto target = owneractor->GetTarget();
|
auto target = owneractor->GetTarget();
|
||||||
if (target && target->IsPlayerActor())
|
if (target && target->IsPlayerActor())
|
||||||
|
@ -896,22 +889,22 @@ void viewProcessSprites(tspritetype* tsprite, int& spritesortcnt, int32_t cX, in
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gModernMap) { // add target spot indicator for patrol dudes
|
if (gModernMap && owneractor->hasX()) { // add target spot indicator for patrol dudes
|
||||||
if (pTXSprite->dudeFlag4 && aiInPatrolState(pTXSprite->aiState) && pTXSprite->data3 > 0 && pTXSprite->data3 <= kMaxPatrolSpotValue)
|
if (owneractor->xspr.dudeFlag4 && aiInPatrolState(owneractor->xspr.aiState) && owneractor->xspr.data3 > 0 && owneractor->xspr.data3 <= kMaxPatrolSpotValue)
|
||||||
viewAddEffect(tsprite, spritesortcnt, nTSprite, kViewEffectSpotProgress);
|
viewAddEffect(tsprite, spritesortcnt, nTSprite, kViewEffectSpotProgress);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case kStatTraps: {
|
case kStatTraps: {
|
||||||
if (pTSprite->type == kTrapSawCircular) {
|
if (pTSprite->type == kTrapSawCircular) {
|
||||||
if (pTXSprite->state) {
|
if (owneractor->xspr.state) {
|
||||||
if (pTXSprite->data1) {
|
if (owneractor->xspr.data1) {
|
||||||
pTSprite->picnum = 772;
|
pTSprite->picnum = 772;
|
||||||
if (pTXSprite->data2)
|
if (owneractor->xspr.data2)
|
||||||
viewAddEffect(tsprite, spritesortcnt, nTSprite, kViewEffectSpear);
|
viewAddEffect(tsprite, spritesortcnt, nTSprite, kViewEffectSpear);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (pTXSprite->data1) pTSprite->picnum = 773;
|
else if (owneractor->xspr.data1) pTSprite->picnum = 773;
|
||||||
else pTSprite->picnum = 656;
|
else pTSprite->picnum = 656;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -147,7 +147,7 @@ TArray<DBloodActor*> SpawnActors(BloodSpawnSpriteDef& sprites)
|
||||||
if (sprites.sprites[i].extra > 0)
|
if (sprites.sprites[i].extra > 0)
|
||||||
{
|
{
|
||||||
actor->addX();
|
actor->addX();
|
||||||
actor->x() = sprites.xspr[i];
|
actor->xspr = sprites.xspr[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return spawns;
|
return spawns;
|
||||||
|
|
Loading…
Reference in a new issue