mirror of
https://github.com/DrBeef/Raze.git
synced 2025-02-20 18:52:43 +00:00
- second set of Blood flags.
This commit is contained in:
parent
3bc337264a
commit
092cb1e5a3
8 changed files with 35 additions and 33 deletions
|
@ -148,6 +148,7 @@ enum ESpriteBits // names mostly from SW.
|
|||
CSTAT_SPRITE_BREAKABLE = CSTAT_SPRITE_BLOCK_HITSCAN|CSTAT_SPRITE_BLOCK_MISSILE,
|
||||
|
||||
// Blood flags
|
||||
CSTAT_SPRITE_BLOOD_BIT2 = 1024,
|
||||
CSTAT_SPRITE_BLOOD_BIT1 = 4096,
|
||||
};
|
||||
|
||||
|
|
|
@ -142,7 +142,7 @@ RORHACK:
|
|||
}
|
||||
else
|
||||
{
|
||||
gView->pSprite->cstat |= 514;
|
||||
gView->pSprite->cstat |= CSTAT_SPRITE_TRANSLUCENT | CSTAT_SPRITE_TRANS_FLIP;
|
||||
}
|
||||
|
||||
renderDrawRoomsQ16(cX, cY, cZ, cA.asq16(), cH.asq16() + deliriumPitchI, nSectnum, false);
|
||||
|
@ -267,7 +267,7 @@ void DrawMirrors(int x, int y, int z, fixed_t a, fixed_t horiz, int smooth, int
|
|||
}
|
||||
else
|
||||
{
|
||||
gPlayer[viewPlayer].pSprite->cstat |= 514;
|
||||
gPlayer[viewPlayer].pSprite->cstat |= CSTAT_SPRITE_TRANSLUCENT | CSTAT_SPRITE_TRANS_FLIP;
|
||||
}
|
||||
}
|
||||
renderDrawRoomsQ16(x + mirror[i].dx, y + mirror[i].dy, z + mirror[i].dz, a, horiz, nSector, true);
|
||||
|
@ -299,7 +299,7 @@ void DrawMirrors(int x, int y, int z, fixed_t a, fixed_t horiz, int smooth, int
|
|||
}
|
||||
else
|
||||
{
|
||||
gPlayer[viewPlayer].pSprite->cstat |= 514;
|
||||
gPlayer[viewPlayer].pSprite->cstat |= CSTAT_SPRITE_TRANSLUCENT | CSTAT_SPRITE_TRANS_FLIP;
|
||||
}
|
||||
}
|
||||
renderDrawRoomsQ16(x + mirror[i].dx, y + mirror[i].dy, z + mirror[i].dz, a, horiz, nSector, true);
|
||||
|
|
|
@ -2474,7 +2474,7 @@ static void actInitDudes()
|
|||
{
|
||||
case kDudeModernCustom:
|
||||
case kDudeModernCustomBurning:
|
||||
pSprite->cstat |= CSTAT_SPRITE_BLOOD_BIT1 | CSTAT_SPRITE_BLOCK_HITSCAN | CSTAT_SPRITE_BLOCK;
|
||||
pSprite->cstat |= CSTAT_SPRITE_BLOOD_BIT1 | CSTAT_SPRITE_BLOCK_ALL;
|
||||
seqStartId = genDudeSeqStartId(act); // Custom Dude stores its SEQ in data2
|
||||
pXSprite->sysData1 = pXSprite->data3; // move sndStartId to sysData1, because data3 used by the game;
|
||||
pXSprite->data3 = 0;
|
||||
|
@ -2485,12 +2485,12 @@ static void actInitDudes()
|
|||
[[fallthrough]];
|
||||
default:
|
||||
pSprite->clipdist = dudeInfo[nType].clipdist;
|
||||
pSprite->cstat |= CSTAT_SPRITE_BLOOD_BIT1 | CSTAT_SPRITE_BLOCK_HITSCAN | CSTAT_SPRITE_BLOCK;
|
||||
pSprite->cstat |= CSTAT_SPRITE_BLOOD_BIT1 | CSTAT_SPRITE_BLOCK_ALL;
|
||||
break;
|
||||
}
|
||||
#else
|
||||
pSprite->clipdist = dudeInfo[nType].clipdist;
|
||||
pSprite->cstat |= CSTAT_SPRITE_BLOOD_BIT1 | CSTAT_SPRITE_BLOCK_HITSCAN | CSTAT_SPRITE_BLOCK;
|
||||
pSprite->cstat |= CSTAT_SPRITE_BLOOD_BIT1 | CSTAT_SPRITE_BLOCK_ALL;
|
||||
#endif
|
||||
|
||||
act->xvel = act->yvel = act->zvel = 0;
|
||||
|
|
|
@ -361,11 +361,11 @@ static void ThrowThing(DBloodActor* actor, bool impact)
|
|||
case kModernThingThrowableRock:
|
||||
pSpawned->picnum = gCustomDudeDebrisPics[Random(5)];
|
||||
pSpawned->xrepeat = pSpawned->yrepeat = 24 + Random(42);
|
||||
pSpawned->cstat |= 0x0001;
|
||||
pSpawned->cstat |= CSTAT_SPRITE_BLOCK;
|
||||
pSpawned->pal = 5;
|
||||
|
||||
if (Chance(0x5000)) pSpawned->cstat |= 0x0004;
|
||||
if (Chance(0x5000)) pSpawned->cstat |= 0x0008;
|
||||
if (Chance(0x5000)) pSpawned->cstat |= CSTAT_SPRITE_XFLIP;
|
||||
if (Chance(0x5000)) pSpawned->cstat |= CSTAT_SPRITE_YFLIP;
|
||||
|
||||
if (pSpawned->xrepeat > 60) pXSpawned->data1 = 43;
|
||||
else if (pSpawned->xrepeat > 40) pXSpawned->data1 = 33;
|
||||
|
@ -1956,7 +1956,8 @@ DBloodActor* genDudeSpawn(DBloodActor* source, DBloodActor* actor, int nDist)
|
|||
pDude->type = nType; pDude->ang = nAngle;
|
||||
vec3_t pos = { x, y, z };
|
||||
SetActor(spawned, &pos);
|
||||
pDude->cstat |= 0x1101; pDude->clipdist = dudeInfo[nType - kDudeBase].clipdist;
|
||||
pDude->cstat |= CSTAT_SPRITE_BLOCK_ALL | CSTAT_SPRITE_BLOOD_BIT1;
|
||||
pDude->clipdist = dudeInfo[nType - kDudeBase].clipdist;
|
||||
|
||||
// inherit weapon, seq and sound settings.
|
||||
pXDude->data1 = pXSource->data1;
|
||||
|
|
|
@ -283,7 +283,7 @@ static tspritetype *viewAddEffect(tspritetype* tsprite, int& spritesortcnt, int
|
|||
pNSprite->picnum = pTSprite->picnum;
|
||||
pNSprite->cstat |= CSTAT_SPRITE_TRANSLUCENT;
|
||||
if (i < 2)
|
||||
pNSprite->cstat |= 514;
|
||||
pNSprite->cstat |= CSTAT_SPRITE_TRANSLUCENT | CSTAT_SPRITE_TRANS_FLIP;
|
||||
pNSprite->shade = ClipLow(pTSprite->shade-16, -128);
|
||||
pNSprite->xrepeat = pTSprite->xrepeat;
|
||||
pNSprite->yrepeat = pTSprite->yrepeat;
|
||||
|
@ -420,7 +420,7 @@ static tspritetype *viewAddEffect(tspritetype* tsprite, int& spritesortcnt, int
|
|||
pNSprite->shade = ((pTSprite->z-pSector->ceilingz)>>8)-64;
|
||||
pNSprite->pal = 2;
|
||||
pNSprite->xrepeat = pNSprite->yrepeat = 64;
|
||||
pNSprite->cstat |= 106;
|
||||
pNSprite->cstat |= CSTAT_SPRITE_ONE_SIDE | CSTAT_SPRITE_ALIGNMENT_FLOOR | CSTAT_SPRITE_YFLIP | CSTAT_SPRITE_TRANSLUCENT;
|
||||
pNSprite->ang = pTSprite->ang;
|
||||
pNSprite->ownerActor = pTSprite->ownerActor;
|
||||
break;
|
||||
|
@ -440,7 +440,7 @@ static tspritetype *viewAddEffect(tspritetype* tsprite, int& spritesortcnt, int
|
|||
pNSprite->shade = nShade-32;
|
||||
pNSprite->pal = 2;
|
||||
pNSprite->xrepeat = pNSprite->yrepeat = nShade;
|
||||
pNSprite->cstat |= 98;
|
||||
pNSprite->cstat |= CSTAT_SPRITE_ONE_SIDE | CSTAT_SPRITE_ALIGNMENT_FLOOR | CSTAT_SPRITE_TRANSLUCENT;
|
||||
pNSprite->ang = pTSprite->ang;
|
||||
pNSprite->ownerActor = pTSprite->ownerActor;
|
||||
break;
|
||||
|
@ -453,7 +453,7 @@ static tspritetype *viewAddEffect(tspritetype* tsprite, int& spritesortcnt, int
|
|||
|
||||
pNSprite->z = pTSprite->z;
|
||||
if (gDetail > 1)
|
||||
pNSprite->cstat |= 514;
|
||||
pNSprite->cstat |= CSTAT_SPRITE_TRANSLUCENT | CSTAT_SPRITE_TRANS_FLIP;
|
||||
pNSprite->shade = ClipLow(pTSprite->shade-32, -128);
|
||||
pNSprite->xrepeat = pTSprite->xrepeat;
|
||||
pNSprite->yrepeat = 64;
|
||||
|
@ -483,7 +483,7 @@ static tspritetype *viewAddEffect(tspritetype* tsprite, int& spritesortcnt, int
|
|||
if (cl_showweapon == 2 && r_voxels && nVoxel != -1)
|
||||
{
|
||||
pNSprite->ang = (gView->pSprite->ang + 512) & 2047; // always face viewer
|
||||
pNSprite->cstat |= 48;
|
||||
pNSprite->cstat |= CSTAT_SPRITE_ALIGNMENT_SLAB;
|
||||
pNSprite->cstat &= ~CSTAT_SPRITE_YFLIP;
|
||||
pNSprite->picnum = nVoxel;
|
||||
if (pPlayer->curWeapon == kWeapLifeLeech) // position lifeleech behind player
|
||||
|
@ -626,8 +626,8 @@ void viewProcessSprites(tspritetype* tsprite, int& spritesortcnt, int32_t cX, in
|
|||
{
|
||||
if ((pTSprite->flags&kHitagRespawn) == 0)
|
||||
{
|
||||
pTSprite->cstat |= 48;
|
||||
pTSprite->cstat &= ~(4|8);
|
||||
pTSprite->cstat |= CSTAT_SPRITE_ALIGNMENT_SLAB;
|
||||
pTSprite->cstat &= ~(CSTAT_SPRITE_XFLIP | CSTAT_SPRITE_YFLIP);
|
||||
pTSprite->yoffset += tileTopOffset(pTSprite->picnum);
|
||||
pTSprite->picnum = voxelIndex[pTSprite->picnum];
|
||||
if ((picanm[nTile].extra&7) == 7)
|
||||
|
@ -701,7 +701,7 @@ void viewProcessSprites(tspritetype* tsprite, int& spritesortcnt, int32_t cX, in
|
|||
pTSprite->yrepeat = 48;
|
||||
pTSprite->shade = -128;
|
||||
pTSprite->picnum = 2272 + 2*pTXSprite->respawnPending;
|
||||
pTSprite->cstat &= ~514;
|
||||
pTSprite->cstat &= ~(CSTAT_SPRITE_TRANSLUCENT | CSTAT_SPRITE_TRANS_FLIP);
|
||||
if (((IsItemSprite(pTSprite) || IsAmmoSprite(pTSprite)) && gGameOptions.nItemSettings == 2)
|
||||
|| (IsWeaponSprite(pTSprite) && gGameOptions.nWeaponSettings == 3))
|
||||
{
|
||||
|
@ -770,11 +770,11 @@ void viewProcessSprites(tspritetype* tsprite, int& spritesortcnt, int32_t cX, in
|
|||
break;
|
||||
case kItemFlagA:
|
||||
pTSprite->pal = 10;
|
||||
pTSprite->cstat |= 1024;
|
||||
pTSprite->cstat |= CSTAT_SPRITE_BLOOD_BIT2;
|
||||
break;
|
||||
case kItemFlagB:
|
||||
pTSprite->pal = 7;
|
||||
pTSprite->cstat |= 1024;
|
||||
pTSprite->cstat |= CSTAT_SPRITE_BLOOD_BIT2;
|
||||
break;
|
||||
default:
|
||||
if (pTSprite->type >= kItemKeySkull && pTSprite->type < kItemKeyMax)
|
||||
|
@ -789,7 +789,7 @@ void viewProcessSprites(tspritetype* tsprite, int& spritesortcnt, int32_t cX, in
|
|||
switch (pTSprite->type) {
|
||||
case kMissileTeslaAlt:
|
||||
pTSprite->yrepeat = 128;
|
||||
pTSprite->cstat |= 32;
|
||||
pTSprite->cstat |= CSTAT_SPRITE_ALIGNMENT_FLOOR;
|
||||
break;
|
||||
case kMissileTeslaRegular:
|
||||
viewAddEffect(tsprite, spritesortcnt, nTSprite, kViewEffectTesla);
|
||||
|
|
|
@ -252,7 +252,7 @@ void Respawn(DBloodActor* actor, sectortype*) // 9
|
|||
{
|
||||
int nType = pSprite->type-kDudeBase;
|
||||
pSprite->pos = actor->basePoint;
|
||||
pSprite->cstat |= 0x1101;
|
||||
pSprite->cstat |= CSTAT_SPRITE_BLOOD_BIT1 | CSTAT_SPRITE_BLOCK_ALL;
|
||||
#ifdef NOONE_EXTENSIONS
|
||||
if (!gModernMap || pXSprite->sysData2 <= 0) pXSprite->health = dudeInfo[pSprite->type - kDudeBase].startHealth << 4;
|
||||
else pXSprite->health = ClipRange(pXSprite->sysData2 << 4, 1, 65535);
|
||||
|
@ -283,7 +283,7 @@ void Respawn(DBloodActor* actor, sectortype*) // 9
|
|||
pXSprite->key = 0;
|
||||
} else if (pSprite->type == kThingTNTBarrel) {
|
||||
pSprite->cstat |= CSTAT_SPRITE_BLOCK | CSTAT_SPRITE_BLOCK_HITSCAN;
|
||||
pSprite->cstat &= (unsigned short)~CSTAT_SPRITE_INVISIBLE;
|
||||
pSprite->cstat &= ~CSTAT_SPRITE_INVISIBLE;
|
||||
}
|
||||
|
||||
gFX.fxSpawnActor(FX_29, pSprite->sector(), pSprite->x, pSprite->y, pSprite->z, 0);
|
||||
|
|
|
@ -42,7 +42,7 @@ struct FXDATA {
|
|||
int16_t picnum; // picnum
|
||||
uint8_t xrepeat; // xrepeat
|
||||
uint8_t yrepeat; // yrepeat
|
||||
int16_t cstat; // cstat
|
||||
ESpriteFlags cstat; // cstat
|
||||
int8_t shade; // shade
|
||||
uint8_t pal; // pal
|
||||
};
|
||||
|
@ -71,10 +71,10 @@ FXDATA gFXData[] = {
|
|||
{ kCallbackNone, 1, 0, 3, 58254, 1024, 480, 3269, 32, 32, 0, 0, 0 },
|
||||
{ kCallbackNone, 1, 0, 3, 58254, 1024, 480, 3273, 32, 32, 0, 0, 0 },
|
||||
{ kCallbackNone, 1, 0, 3, 58254, 1024, 480, 3277, 32, 32, 0, 0, 0 },
|
||||
{ kCallbackNone, 2, 0, 1, -27962, 8192, 600, 1128, 16, 16, 514, -16, 0 }, // bubble 1
|
||||
{ kCallbackNone, 2, 0, 1, -18641, 8192, 600, 1128, 12, 12, 514, -16, 0 }, // bubble 2
|
||||
{ kCallbackNone, 2, 0, 1, -9320, 8192, 600, 1128, 8, 8, 514, -16, 0 }, // bubble 3
|
||||
{ kCallbackNone, 2, 0, 1, -18641, 8192, 600, 1131, 32, 32, 514, -16, 0 },
|
||||
{ kCallbackNone, 2, 0, 1, -27962, 8192, 600, 1128, 16, 16, CSTAT_SPRITE_TRANSLUCENT | CSTAT_SPRITE_TRANS_FLIP, -16, 0 }, // bubble 1
|
||||
{ kCallbackNone, 2, 0, 1, -18641, 8192, 600, 1128, 12, 12, CSTAT_SPRITE_TRANSLUCENT | CSTAT_SPRITE_TRANS_FLIP, -16, 0 }, // bubble 2
|
||||
{ kCallbackNone, 2, 0, 1, -9320, 8192, 600, 1128, 8, 8, CSTAT_SPRITE_TRANSLUCENT | CSTAT_SPRITE_TRANS_FLIP, -16, 0 }, // bubble 3
|
||||
{ kCallbackNone, 2, 0, 1, -18641, 8192, 600, 1131, 32, 32, CSTAT_SPRITE_TRANSLUCENT | CSTAT_SPRITE_TRANS_FLIP, -16, 0 },
|
||||
{ kCallbackFXBloodBits, 2, 0, 3, 27962, 4096, 480, 733, 32, 32, 0, -16, 0 },
|
||||
{ kCallbackNone, 1, 0, 3, 18641, 4096, 120, 2261, 12, 12, 0, -128, 0 },
|
||||
{ kCallbackNone, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||
|
@ -84,14 +84,14 @@ FXDATA gFXData[] = {
|
|||
{ kCallbackNone, 1, 56, 1, -13981, 5120, 0, 0, 0, 0, 0, 0, 0 },
|
||||
{ kCallbackNone, 1, 57, 1, 0, 2048, 0, 0, 0, 0, 0, 0, 0 },
|
||||
{ kCallbackNone, 1, 58, 1, 0, 2048, 0, 0, 0, 0, 0, 0, 0 },
|
||||
{ kCallbackNone, 2, 0, 0, 0, 0, 960, 956, 32, 32, 610, 0, 0 },
|
||||
{ kCallbackNone, 2, 0, 0, 0, 0, 960, 956, 32, 32, CSTAT_SPRITE_TRANSLUCENT | CSTAT_SPRITE_TRANS_FLIP | CSTAT_SPRITE_ONE_SIDE | CSTAT_SPRITE_ALIGNMENT_FLOOR, 0, 0 },
|
||||
{ kCallbackFXBouncingSleeve, 2, 62, 0, 46603, 1024, 0, 0, 0, 0, 0, 0, 0 },
|
||||
{ kCallbackFXBouncingSleeve, 2, 63, 0, 46603, 1024, 0, 0, 0, 0, 0, 0, 0 },
|
||||
{ kCallbackFXBouncingSleeve, 2, 64, 0, 46603, 1024, 0, 0, 0, 0, 0, 0, 0 },
|
||||
{ kCallbackFXBouncingSleeve, 2, 65, 0, 46603, 1024, 0, 0, 0, 0, 0, 0, 0 },
|
||||
{ kCallbackFXBouncingSleeve, 2, 66, 0, 46603, 1024, 0, 0, 0, 0, 0, 0, 0 },
|
||||
{ kCallbackFXBouncingSleeve, 2, 67, 0, 46603, 1024, 0, 0, 0, 0, 0, 0, 0 },
|
||||
{ kCallbackNone, 1, 0, 3, 0, 0, 0, 838, 16, 16, 80, -8, 0 },
|
||||
{ kCallbackNone, 1, 0, 3, 0, 0, 0, 838, 16, 16, CSTAT_SPRITE_ONE_SIDE | CSTAT_SPRITE_ALIGNMENT_WALL, -8, 0 },
|
||||
{ kCallbackNone, 0, 0, 3, 34952, 8192, 0, 2078, 64, 64, 0, -8, 0 },
|
||||
{ kCallbackNone, 0, 0, 3, 34952, 8192, 0, 1106, 64, 64, 0, -8, 0 },
|
||||
{ kCallbackNone, 0, 0, 3, 58254, 3328, 480, 2406, 48, 48, 0, 0, 0 },
|
||||
|
@ -100,10 +100,10 @@ FXDATA gFXData[] = {
|
|||
{ kCallbackNone, 2, 11, 3, -256, 8192, 0, 0, 0, 0, 0, 0, 0 },
|
||||
{ kCallbackNone, 2, 11, 3, 0, 8192, 0, 0, 0, 0, 0, 0, 0 },
|
||||
{ kCallbackNone, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||
{ kCallbackNone, 1, 30, 3, 0, 0, 0, 0, 40, 40, 80, -8, 0 },
|
||||
{ kCallbackNone, 1, 30, 3, 0, 0, 0, 0, 40, 40, CSTAT_SPRITE_ONE_SIDE | CSTAT_SPRITE_ALIGNMENT_WALL, -8, 0 },
|
||||
{ kCallbackFXPodBloodSplat, 2, 0, 3, 27962, 4096, 480, 4023, 32, 32, 0, -16, 0 },
|
||||
{ kCallbackFXPodBloodSplat, 2, 0, 3, 27962, 4096, 480, 4028, 32, 32, 0, -16, 0 },
|
||||
{ kCallbackNone, 2, 0, 0, 0, 0, 480, 926, 32, 32, 610, -12, 0 },
|
||||
{ kCallbackNone, 2, 0, 0, 0, 0, 480, 926, 32, 32, CSTAT_SPRITE_TRANSLUCENT | CSTAT_SPRITE_TRANS_FLIP | CSTAT_SPRITE_ONE_SIDE | CSTAT_SPRITE_ALIGNMENT_FLOOR, -12, 0 },
|
||||
{ kCallbackNone, 1, 70, 1, -13981, 5120, 0, 0, 0, 0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
|
|
|
@ -285,7 +285,7 @@ static DBloodActor* nnExtSpawnDude(DBloodActor* sourceActor, DBloodActor* origin
|
|||
pDude->type = nType;
|
||||
pDude->ang = angle;
|
||||
|
||||
pDude->cstat |= 0x1101;
|
||||
pDude->cstat |= CSTAT_SPRITE_BLOOD_BIT1 | CSTAT_SPRITE_BLOCK_ALL;
|
||||
pDude->clipdist = getDudeInfo(nType)->clipdist;
|
||||
|
||||
pXDude->respawn = 1;
|
||||
|
|
Loading…
Reference in a new issue