Jump to content
The Dark Mod Forums
Tirek

Object manipulation issue in Crucible of Omens

Recommended Posts

Hi,

I've recently (with 2.07) got back into playing TDM and have been enjoying it immensely. That said, I'm having a strange issue in the Crucible of Omens campaign mission that I don't remember ever encountering in any other FM:

I'm having trouble picking objects up and manipulating them; it's fairly erratic, but it seems as if most of the time they get dropped immediately after being frobbed, which makes it impossible to reposition/manipulate them. This has gameplay implications as well, since it makes it impossible to snuff out candles.

I've been searching all over the forum for any other mention of this issue, but found nothing, other than a fairly old thread where someone suggested using a modified "de-clunking" build. I meant to link it here, but curiously, I haven't been able to find the topic again.

Looking forward to any suggestions. The mission is extremely well made otherwise and I would hate to have it spoiled by this bug.

Cheers!

 

Share this post


Link to post
Share on other sites

Strangely, no. Recently (in 2.07) I've played Snowed Inn, WS4 and WS5, Perilous Refuge and PD3. I didn't encounter this issue in any of those.

Share this post


Link to post
Share on other sites

If you use "Uncapped FPS" in Video->Advanced settings, try turning it off.

The best thing would be if you upload a video recording of the problem. Otherwise, I'll probably try to reproduce it myself. Could you please report some particular place where you always have the problem (e.g. output of setviewpos command)?

By the way, could you please attach you darkmod.cfg file?

Share this post


Link to post
Share on other sites

Thanks for taking the time to look into this.

I'm not sure how much help a video would be... Even while playing, it took me while to recognise the nature of the issue. At first I even had a notion that it might be an intended mission-specific limitation.

Here's a description of what happens, assuming I have a weapon equipped (say, the blackjack):

I click my right mouse button while the object (say, a chair) is within frobbing distance and highlighted.

The object is grabbed (the blackjack lowers) for a very short duration of time that varies between barely perceptible and just enough to slightly move the object. Half a second at most.

After the aforementioned short duration of time, the object is dropped and (the blackjack reappears).

 

I've attached the files you requested. The condump was generated immediately after loading the quicksave, attempting (and failing) to lift the chair and getting the coordinates. I've also tried toggling the "Uncap FPS" option, with no apparent effect on the issue.

condump_CoO_bug.txt Darkmod.cfg

Share this post


Link to post
Share on other sites

I could not reproduce it locally. Here is the video: except for the case when I hit the table, I can lift and move chair normally.

There is a chance that the problem is caused by your savegame file. Could you attach it too? Did you try to start a new game, execute setviewpos 2812.2 -1174.9 565.25   52.7 -29.5 0.0, and check if the issue is present on a fresh game?

Another wild guess: could you execute com_forceGenericSIMD 1 in console and check if the issue is gone? Your CPU has different capabilities.

 

Share this post


Link to post
Share on other sites

I looked why it happens, and it turns out the the following function is buggy:

void idEntity::CheckCollision(idEntity* collidedWith)
{
    ...
    ...
	// Check everyone on my team.

	idEntity *bindMaster = GetBindMaster();
	idEntity *parent = NULL;
	while ( bindMaster != NULL )
	{
		parent = bindMaster;
		bindMaster = parent->GetBindMaster();
	}

	// If we found a parent, am I on the list of all children?
	if (parent)
	{
		idList<idEntity *> children;
		parent->GetTeamChildren(&children); // gets all children
		for ( int i = 0 ; i < children.Num() ; i++ )
		{
			idEntity *child = children[i];
			if ( child == this )
			{
				grabber->StopDrag();
				return;
			}
		}
	}
}

Interestingly, grabber drops any item because mill_cityguard_1 collides with func_static_1872, which happens to be in the list of children of its parent atdm_door_104x56_2hinge_1. Not sure yet what it means, but it is clear that this code forces player to drop item on completely unrelated collisions. I wonder why doesn't everyone have your problem, and how you got into this situation.

 

Share this post


Link to post
Share on other sites

I won't pretend to understand the code, as I have only minor experience with programming and certainly none with TDM codebase, or even C++ in general.

I'm not even sure that I understand your explanation; are you saying that collisions between objects elsewhere in the level can somehow cause the player to drop currently held objects? If so, does this happen only when the collisions involve specific combinations of entities? If that is the case, then I suppose I might have just been unlucky. I can't remember doing anything unusual in the level, except that I vaguely remember getting stuck on a piece of geometry and having to use noclip to free myself.

A pertinent question now is whether I can be of any further help, as well as whether I'm likely to keep encountering this bug in the future.

Share this post


Link to post
Share on other sites
10 hours ago, Tirek said:

are you saying that collisions between objects elsewhere in the level can somehow cause the player to drop currently held objects?

Ahem... yes 🥴

Quote

A pertinent question now is whether I can be of any further help, as well as whether I'm likely to keep encountering this bug in the future.

In future... update to TDM 2.08 when it is out.

For now, here is the way to resolve the problem on your save:

  1. Execute: notarget
  2. Execute: setviewpos 3505.6 688.81 116.25   23.8 -2.9 0.0
  3. You see the guy marching into a door? Take him out. Make sure his body does not touch this door. Hide it in darkness, or throw into water, so that nobody finds it.
  4. Execute: setviewpos 2842.95 -1065.07 565.25   -22.0 -102.1 0.0
  5. Execute: notarget
  6. Continue playing. You should be able to manipulate objects now.

I'm afraid it is not some specific action from your side, just some bad luck which led this guard into such situation. If you have this problem again, feel free to write here, and I'll find someone to kill to resolve the problem 😉

Share this post


Link to post
Share on other sites

There is something so delightfully odd about this problem and its "solution" makes for a hilarious mental image. TDM universe's own version of quantum entanglement phenomena... spooky action at a distance, indeed.

 

Anyway, thank you. I'm glad to have been of some help.

 

  • Like 1

Share this post


Link to post
Share on other sites

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.   Paste as plain text instead

  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...