mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-02-04 21:00:58 +00:00
Apply burning bypass to correct sprite type
This commit is contained in:
parent
bd98096527
commit
7ac662e0c8
2 changed files with 11 additions and 5 deletions
|
@ -5734,7 +5734,6 @@ void actProcessSprites(void)
|
||||||
int nXSprite = pSprite->extra;
|
int nXSprite = pSprite->extra;
|
||||||
if (nXSprite > 0) {
|
if (nXSprite > 0) {
|
||||||
XSPRITE *pXSprite = &xsprite[nXSprite];
|
XSPRITE *pXSprite = &xsprite[nXSprite];
|
||||||
const bool fixBurnGlitch = IsBurningDude(pSprite) && !VanillaMode() && !DemoRecordStatus(); // if enemies are these types, always apply burning damage per tick
|
|
||||||
switch (pSprite->type) {
|
switch (pSprite->type) {
|
||||||
case kThingBloodBits:
|
case kThingBloodBits:
|
||||||
case kThingBloodChunks:
|
case kThingBloodChunks:
|
||||||
|
@ -5743,7 +5742,7 @@ void actProcessSprites(void)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((pXSprite->burnTime > 0) || fixBurnGlitch)
|
if (pXSprite->burnTime > 0)
|
||||||
{
|
{
|
||||||
pXSprite->burnTime = ClipLow(pXSprite->burnTime-4,0);
|
pXSprite->burnTime = ClipLow(pXSprite->burnTime-4,0);
|
||||||
actDamageSprite(pXSprite->burnSource, pSprite, kDamageBurn, 8);
|
actDamageSprite(pXSprite->burnSource, pSprite, kDamageBurn, 8);
|
||||||
|
@ -6189,7 +6188,8 @@ void actProcessSprites(void)
|
||||||
if (nXSprite > 0)
|
if (nXSprite > 0)
|
||||||
{
|
{
|
||||||
XSPRITE *pXSprite = &xsprite[nXSprite];
|
XSPRITE *pXSprite = &xsprite[nXSprite];
|
||||||
if (pXSprite->burnTime > 0)
|
const bool fixBurnGlitch = IsBurningDude(pSprite) && !VanillaMode() && !DemoRecordStatus(); // if enemies are burning, always apply burning damage per tick
|
||||||
|
if ((pXSprite->burnTime > 0) || fixBurnGlitch)
|
||||||
{
|
{
|
||||||
switch (pSprite->type)
|
switch (pSprite->type)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1110,10 +1110,16 @@ int aiDamageSprite(DBloodActor* source, DBloodActor* actor, DAMAGE_TYPE nDmgType
|
||||||
case kDudeTinyCaleb:
|
case kDudeTinyCaleb:
|
||||||
if (nDmgType == kDamageBurn && pXSprite->health <= (unsigned int)pDudeInfo->fleeHealth/* && (pXSprite->at17_6 != 1 || pXSprite->at17_6 != 2)*/)
|
if (nDmgType == kDamageBurn && pXSprite->health <= (unsigned int)pDudeInfo->fleeHealth/* && (pXSprite->at17_6 != 1 || pXSprite->at17_6 != 2)*/)
|
||||||
{
|
{
|
||||||
pSprite->type = kDudeBurningInnocent;
|
|
||||||
if (!VanillaMode() && !DemoRecordStatus()) // fix burning sprite for tiny caleb
|
if (!VanillaMode() && !DemoRecordStatus()) // fix burning sprite for tiny caleb
|
||||||
|
{
|
||||||
pSprite->type = kDudeBurningTinyCaleb;
|
pSprite->type = kDudeBurningTinyCaleb;
|
||||||
aiNewState(actor, &tinycalebBurnGoto);
|
aiNewState(actor, &tinycalebBurnGoto);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pSprite->type = kDudeBurningInnocent;
|
||||||
|
aiNewState(actor, &cultistBurnGoto);
|
||||||
|
}
|
||||||
aiPlay3DSound(pSprite, 361, AI_SFX_PRIORITY_0, -1);
|
aiPlay3DSound(pSprite, 361, AI_SFX_PRIORITY_0, -1);
|
||||||
gDudeExtra[pSprite->extra].time = PlayClock+360;
|
gDudeExtra[pSprite->extra].time = PlayClock+360;
|
||||||
actHealDude(pXSprite, dudeInfo[39].startHealth, dudeInfo[39].startHealth);
|
actHealDude(pXSprite, dudeInfo[39].startHealth, dudeInfo[39].startHealth);
|
||||||
|
|
Loading…
Reference in a new issue