When you replace a chaingun pickup in Dehacked with a monster who has the action A_Keendie ZDoom derivatives (gzdoom most importantly - to me) will think the chaingun in your inventory is "alive". Thereby any door with the 666 tag will be un-triggerable.
Here's an Ultimate Doom pwad for example. Kill the caco (replaces chaingunner), it'll drop a lost soul (replaces chaingun). Kill the lost soul and the door will open. Try again, but this time IDFA to get a chaingun into your inventory and it'll no longer work as it should.
http://www.mediafire.com/file/qmka8itio4u4uor/keeny.wad
Chaingun replacement + A_Keedie = broken dehacked mod
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.
Re: Chaingun replacement + A_Keedie = broken dehacked mod
In which source port does the given sample work? For example, it's broken in PrBoom+ because there is no chaingunner in Ultimate Doom.
If it's designed for (G)ZDoom only then what's the point to use DEHACKED?
If it's designed for (G)ZDoom only then what's the point to use DEHACKED?
Re: Chaingun replacement + A_Keedie = broken dehacked mod
You absolutely can get a chaingunner in Ult. Doom with DeHackEd, you just need to change its editor number to fool the spawn check.
Anyway, the fix for this particular issue is simply to add a check discounting items held in inventory from A_KeenDie()'s code. And it would probably be a good idea to do the same with A_BossDeath(). Keep in mind that vanilla, Boom, and so on simply do not have any concept of an inventory item -- a player pawn with a chaingun doesn't keep a chaingun mobj abstractly in the map, it simply has a weapon check flag turned on.
Code: Select all
// Do not spawn cool, new monsters if !commercial
if ( gamemode != commercial)
{
switch(mt->type)
{
case 68: // Arachnotron
case 64: // Archvile
case 88: // Boss Brain
case 89: // Boss Shooter
case 69: // Hell Knight
case 67: // Mancubus
case 71: // Pain Elemental
case 65: // Former Human Commando
case 66: // Revenant
case 84: // Wolf SS
spawn = false;
break;
}
}
if (spawn == false)
break;
Re: Chaingun replacement + A_Keedie = broken dehacked mod
Yeah. I kinda rushed to make an example of what didn't work in ZDoom, and forgot to make it work in other engines.
http://www.mediafire.com/file/qmka8itio4u4uor/keeny.wad
Updated file that works in prboom, etc, to show I'm not lying.
Never used Eternity before this, but it seems to work fine there too.
http://www.mediafire.com/file/qmka8itio4u4uor/keeny.wad
Updated file that works in prboom, etc, to show I'm not lying.
Never used Eternity before this, but it seems to work fine there too.
Re: Chaingun replacement + A_Keedie = broken dehacked mod
Yeah, I rushed to make an example of what didn't work in ZDoom, and forgot to make it work in other engines.
Fixed example: http://www.mediafire.com/file/qmka8itio4u4uor/keeny.wad
Seems to work fine in Eternity as well.
Fixed example: http://www.mediafire.com/file/qmka8itio4u4uor/keeny.wad
Seems to work fine in Eternity as well.
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49071
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: Chaingun replacement + A_Keedie = broken dehacked mod
The actual problem seems to be that the 'give' cheat never checks the flags of the items it gives to the player. A dehacked weapon that has lost its MF_SPECIAL flag should be excluded from being added to the inventory - no questions asked.
Re: Chaingun replacement + A_Keedie = broken dehacked mod
But it needs to be added to the inventory if someone wants to replace the weapon drop, and the held weapon separately.
Updated link: http://www.mediafire.com/file/qmka8itio4u4uor/keeny.wad
The chaingun on the ground replaces a tech column. Just has the SPECIAL flag and the MGUNA sprite.
Updated link: http://www.mediafire.com/file/qmka8itio4u4uor/keeny.wad
The chaingun on the ground replaces a tech column. Just has the SPECIAL flag and the MGUNA sprite.