Tirek Posted February 9, 2020 Report Posted February 9, 2020 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! Quote
freyk Posted February 9, 2020 Report Posted February 9, 2020 do you have this problem also in other missions? Quote Info: My portfolio and darkmod graphical installer Amnesty for Bikerdude!
Tirek Posted February 9, 2020 Author Report Posted February 9, 2020 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. Quote
stgatilov Posted February 10, 2020 Report Posted February 10, 2020 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? Quote
Tirek Posted February 11, 2020 Author Report Posted February 11, 2020 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 Quote
stgatilov Posted February 15, 2020 Report Posted February 15, 2020 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. Quote
Tirek Posted February 16, 2020 Author Report Posted February 16, 2020 It seems your suspicion was correct - starting a new game fixes the issue. The savegame file is too large to be uploaded to the forum, so here's a link to google drive: https://drive.google.com/file/d/1uK81votGdXCbYjJRu6rqUWtyCAtGu-6i/view?usp=sharing 1 Quote
stgatilov Posted February 16, 2020 Report Posted February 16, 2020 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. Quote
Tirek Posted February 16, 2020 Author Report Posted February 16, 2020 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. Quote
stgatilov Posted February 17, 2020 Report Posted February 17, 2020 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: Execute: notarget Execute: setviewpos 3505.6 688.81 116.25 23.8 -2.9 0.0 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. Execute: setviewpos 2842.95 -1065.07 565.25 -22.0 -102.1 0.0 Execute: notarget 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 Quote
stgatilov Posted February 17, 2020 Report Posted February 17, 2020 Tracked this as issue 5157. It will be fixed properly in future release. Thank you for providing a savefile and for your patience! 1 Quote
Tirek Posted February 17, 2020 Author Report Posted February 17, 2020 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. 1 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.