[v2.4.0 & v2.4.1] Afrit Inferno Attack Broken
Moderator: GZDoom Developers
Forum rules
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.
[v2.4.0 & v2.4.1] Afrit Inferno Attack Broken
This was brought to my attention in another thread, and after a bit of testing it turns out it may be an issue with the latest versions of Z and GZ. He will perform the flaming ground attack, but nothing happens. I've tried the Bestiary and ZDMRP files with the same results, and both are fine in earlier versions. TBH I wasn't sure about posting this here originally, but after considering the amount of WADs this guy is used in it seemed like a good idea.
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49073
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [v2.4.0 & v2.4.1] Afrit Inferno Attack Broken
I hate this motherfucker. This one monster alone prevents us from fixing half the DECORATE related issues...
Re: [v2.4.0 & v2.4.1] Afrit Inferno Attack Broken
Could always fix them anyway, if the monster is now broken. And just supply a compatibility patch with a rewritten DECORATE code for the afrit.
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49073
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [v2.4.0 & v2.4.1] Afrit Inferno Attack Broken
Sorry, too late. If it was just him I wouldn't care. But its behavior has been copied so much that it's hopeless. The biggest problems are with A_CustomMissile and the best remedy for that would be to deprecate it and write a new A_SpawnMissile function without all the cruft.
Re: [v2.4.0 & v2.4.1] Afrit Inferno Attack Broken
Looks like I've opened a can of worms here
If you were to deprecate A_CustomMissile it might actually be easier in the long run to fix this guy permanently. Looking at his DECORATE lump, it's not surprising it's broken. It's barely comprehensible.
If you were to deprecate A_CustomMissile it might actually be easier in the long run to fix this guy permanently. Looking at his DECORATE lump, it's not surprising it's broken. It's barely comprehensible.
Last edited by scalliano on Sun Feb 14, 2010 4:48 pm, edited 1 time in total.
Re: [v2.4.0 & v2.4.1] Afrit Inferno Attack Broken
Is it the circling projectiles that cause this A_CustomMissile problem? If so, can the same effect be managed in any other way? (I think LWM's hellhound also uses the trick as do a couple of other things I'm aware of).
Re: [v2.4.0 & v2.4.1] Afrit Inferno Attack Broken
In this present case, no. It's the HellFire, HellFire1 and HellFire2 actors that do not work anymore.Enjay wrote:Is it the circling projectiles that cause this A_CustomMissile problem?
The culprit in this case is void P_ZMovement (AActor *mo, fixed_t oldfloorz). Specifically, here:
Code: Select all
if (mo->z <= mo->floorz)
{
// old code for boss cube disabled
//if ((mo->flags & MF_MISSILE) && (!(gameinfo.gametype & GAME_DoomChex) || !(mo->flags & MF_NOCLIP)))
if (mo->flags & MF_MISSILE)
{
mo->z = mo->floorz;
if (mo->BounceFlags & BOUNCE_Floors)
{
mo->FloorBounceMissile (mo->floorsector->floorplane);
/* if (!(mo->flags6 & MF6_CANJUMP)) */ return;
}
else if (mo->flags3 & MF3_NOEXPLODEFLOOR)
{
P_HitFloor (mo);
mo->velz = 0;
return;
}
else if (mo->flags3 & MF3_FLOORHUGGER)
{ // Floor huggers can go up steps
return;
}
else
{
if (mo->floorpic == skyflatnum && !(mo->flags3 & MF3_SKYEXPLODE))
{
// [RH] Just remove the missile without exploding it
// if this is a sky floor.
mo->Destroy ();
return;
}
P_HitFloor (mo);
P_ExplodeMissile (mo, NULL, NULL);
return;
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49073
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [v2.4.0 & v2.4.1] Afrit Inferno Attack Broken
It's not that easy. The code was removed for a good reason. (The reason being that it was restricted to Doom only because the Wraithverge's ghosts in Hexen need it off and in addition it didn't really work.) Why does this godforsaken Afrit have to abuse nearly every glitch in the movement code...
Re: [v2.4.0 & v2.4.1] Afrit Inferno Attack Broken
I don't mean the entire code as before, just the P_HitFloor and P_ExplodeMissile part.
Re: [v2.4.0 & v2.4.1] Afrit Inferno Attack Broken
Just to toss in my two cents, why not go ahead and do this? As extraneous as it may seem, it's the only way to get around this issue while keeping things backwards compatible. It can't hurt, can it?Graf Zahl wrote:The biggest problems are with A_CustomMissile and the best remedy for that would be to deprecate it and write a new A_SpawnMissile function without all the cruft.
Show that Afrit who's boss, I say!
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49073
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [v2.4.0 & v2.4.1] Afrit Inferno Attack Broken
Well, I think that reinstating the check only for missiles that are subject to gravity may work.
What happens is that the Hellfire2 falls to the floor and gets destroyed before it can do its work. For non-gravity missiles this entire check is completely useless anyway so we do not need it back there.
What happens is that the Hellfire2 falls to the floor and gets destroyed before it can do its work. For non-gravity missiles this entire check is completely useless anyway so we do not need it back there.