Jump to content

Changing door behavior to ignore corpses


Recommended Posts

So DOOM 3 has been out for a long time now and keeping all the bodies around doesn't have any real effect on performance and changing the spawn behavior on the hellhole map remedied a game-breaking bug for monsters that now don't disappear. What I'm wondering is if anyone knows the behavior of movers like doors and elevators to simply ignore corpses as the game as-is will allow corpses to obstruct the movement of doors and lifts even though they aren't clipped against the player. I've gotten replies to the effect of reverting the monster corpse behavior which is not what I want to do but rather to fix the remaining bug involving corpses. I have the code for 1.3.1 so I can make changes to the game DLL to alter mover behavior but finding documentation is difficult with the age of the game and some have written excellent mods that use DOOM 3 as a base so someone out there can point me in the right direction hopefully.

Share this post


Link to post

I'm sorry, I can't help with this, I know nothing about modding Doom 3. However, I'd like to ask, what might you be working on?

Share this post


Link to post

It started in scope to try and pull as much of the alpha into the game as possible but it has gone beyond that to making lots of small improvements and fixes.

Share this post


Link to post

There seems like 2 ways this can go: either movers ignore dead bodies (how does it check this though?), or bodies are set to not be solid to a mover. The latter sounds simpler to do. For the player as an example, a living enemy is solid so you can't walk through them, but a dead enemy is not solid so you walk right through the body, but it isn't non-solid for everything or things like bullets would not have an effect on the bodies. Somewhere in the D3SDK is code that determines for a mover if an obstruction is solid or not and either reverses direction if it is solid and finishes if it is not. I can't simply have movers treat everything as non-solid as then they would clip right through living enemies and the player potentially standing in a mover path. Any help on this, even the area I need to look at, would be helpful, as the solution is large and I'm hoping someone knows it better than I do (which is a slow learning process.)

Share this post


Link to post

Rather than dig into the SDK, I think the easiest way to do this would be to create alternate monster skins for each monster that are composed of materials identical to the original monster materials , except they would all be using the 'nonsolid' material keyword. You can make it so the monsters switch to these skins upon death with the 'skin_dropDeath' entry in the monster's respective .def file. For instance, the Maggot uses a skin that makes his spines disappear. Using the 'nonsolid' material keyword would, to my knowledge, make the ragdolls solid to things like world geometry and projectiles, but not to movers or doors.

 

You don't need to create any new texture files or anything like that, you would just be utilizing the existing ones for different purposes. Are you pretty familiar with .skin, .mtr and .def files?

Share this post


Link to post

Is there a decent gibbing effect that can be used on non-zombie corpses? Would it be easier to make doors/lifts gib corpses? Seems like that would be a more elegant solution.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...