Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • 0
Revae

DeHacked, Keendie, ZDoom, and You

Question

So I have a monster created in Dehacked whose death fires off a "Keendie" action, which opens a door (tagged 666) in an Ultimate Doom v1.9 map.  1.9 has all the same states and actors that Doom2.wad has, just many of them aren't used in Doom 1.  This works fine in vanilla and every source port I've tried, except ZDoom derivatives (where the door doesn't open, and you're just stuck).  I stabbed and prodded at it for a few hours trying to get it to work, but to no avail.  The monster replaces a Chaingun (which is necessary), if that matters.  I'm not too familiar with ZDoom based ports and their features/idiosyncrasies, and I couldn't find much online that helped this specific issue.

 

What's the dealio?

Share this post


Link to post

7 answers to this question

Recommended Posts

  • 1

Might just be a plain ol' bug caused by ZDoom's version of A_KeenDie and how it handles DeHackEd actors ( perhaps specifically those that replace weapons or items in general ), especially one that might of popped up from A_KeenDie being moved over to ZScript. Should try and report it over on the ZDoom forums.

 

For reference, as a guess it might be because the scriptified A_KeenDie iterates through all thinkers that either share the same class with the caller or inherits from the caller's class, then doesn't open the door if any of them are alive. There might be something with how ZDoom handled DeHackEd actors, or weapons, or DeHackEd altered weapons that's causing it to find another chaingun-equivalent that's alive, even though it isn't on the map. Maybe it's something weird, like it's detecting a chaingun you're lugging around.

 

EDIT: Also, for quick reference, SpecialAction is completely useless in this situation, as it defines what A_BossDeath does, something that's variable in every level that reaction to it; since A_KeenDie has constant behavior that works in every map, it doesn't need something like that.

Share this post


Link to post
  • 1

Well now that the root cause of the problem is known, even if it's not fixed, you can work around it.

 

Workaround #1: create a ZDoom-specific replacement for the "chaingun" monster so that it'll be a different actor type from the inventory chaingun.

Workaround #2: create a ZDoom-specific replacement for the chaingun weapon so that it'll be different from the monster.

 

I wonder if Eternity might not be affected by a similar issue, since @Altazimuth was working on an inventory system to allow custom weapons, like ZDoom.

Share this post


Link to post
  • 0

That's strange. Could you post a simple example? Because to be honest, this worked in GZDoom for me... The chaingun is turned into a barrel that opens the door instead of making an explosion sound. (Still hurts, though.)

keendie.zip

Share this post


Link to post
  • 0

I looked into that, but there doesn't seem to be a way to point to toward anything with a keendie action. There's BaronSpecial, CyberdemonSpecial, SpiderMastermindSpecial, IronlichSpecial, MinotaurSpecial, and DSparilSpecial.  But no KeenSpecial or somesuch.

 

I also tried using SpecialAction = "<monstertype>", "<action special>", but that didn't take.  I assume... maybe... because "Chaingun" isn't a monster type?  Idunno.

Share this post


Link to post
  • 0

Aha!  That's definitely it.  Here's an example wad if'n you want.  Try it out with just the pistol start, and then with IDFA.  It thinks the players chaingun is alive...

edit:  Guess I didn't need the example file.  Just saw gez's replaced the chaingun too.

 

keeny.zip

Edited by Revae

Share this post


Link to post
  • 0

Something to look into, for sure. I imagine replacing the weapon would be easier so I don't have to replace two monsters, the chaingun and the chaingunner.  We'll see. Thanks for the help guys! I appreciate it.

Share this post


Link to post

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×