Jump to content
Downtime for system updates - Sunday 11 October 2026 - 10:00 UTC ×
The Dark Mod Forums

Recommended Posts

Posted

One of the first things I did when 2.12 was out was to code shouldering on hold-frob here, locally. I have been using my ad-hoc executable ever since with zero issues.

What troubles me to this day is that you people never got to test other shouldering alternatives. Sure, @stgatilov provided the double click but it was quickly discarded because this approach is rarely found in games. In the end, we were forced to choose between Thief-like or nothing: no wonder this topic quickly turned into such a heated discussion.

The second thing that troubles me is how easily body manipulation was discarded. Sure, not many games have such fine control over bodies but, doesn't that alone make body manipulation unique and special in our game? Body manipulation is unusable in its current version, in my humble opinion. Such a loss.

We were told further changes might make it into 2.13 and I have been patiently waiting but months went by and I haven't heard anything therefore please find attached to this post my game/Player.cpp. It was made for 2.12 but can be easily ported to newer versions of TDM. I have just added some comments to the file. Look for my name for the changes.

Please note I will not be providing an executable. This isn't the purpose of my post and you need to build the solution yourself if you want to try it. The purpose of my post is to say that nothing is impossible and we can have everything, and I remain available to assist if there ever is the will to complete this, half-baked initiative.

Player.cpp

TDM Modpack

Posted

I'll take a look. I don't have much skin in the game regarding this topic but I am a little frustrated about how awkward ragdoll manipulation now works.

@Daft Mugi is probably the one who has the most investment in this topic.

Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

Posted

Ok, let's make this clear:

  1. My proposal is to keep things the way they are but to have shouldering on quick-frob (default) or hold-frob as an option.
  2. My game/Player.cpp does not include a full solution, only shouldering on hold-frob for testing purposes.

TDM Modpack

Posted

After fiddling with this patch, I do like it but I am also now proficient in the "new 2.12 way" so I don't really have a preference I guess?

I suppose we should offer this as an option?

Here is the latest 2.13 SVN file patched with snatcher changes:

Player.cpp

Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

Posted

Find attached to this post the (almost) full solution.

Files edited:

  • game\Player.cpp
  • game\gamesys\SysCvar.h
  • game\gamesys\SysCvar.cpp

I took fresh sources this morning from: https://svn.thedarkmod.com/publicsvn/darkmod_src/trunk/

I added a master cvar tdm_holdfrob_shouldering to control A or B:

  • 0 = Shoulder/unshoulder on frob [default]
  • 1 = Shoulder/unshoulder on hold-frob

@Daft Mugi's implementation remains 100% genuine as long as tdm_holdfrob_shouldering remains 0.

I say "almost" full solution because I added menu strings directly in mainmenu_settings_gameplay.gui instead of using lang files. Should the solution get approved this will, of course, change.

--------------------------------------------------

There's the possibility that cvar tdm_holdfrob_delay is currently set to 0 in your install. Manually set it to 300 [default] using the console if this is the case.

HoldFrobBodies_v0.1.zip mainmenu_settings_gameplay.gui

  • Like 1

TDM Modpack

Posted

If this solution (or similar) makes it into the game we will have to review at some point:

  • tdm_holdfrob_delay / cv_holdfrob_delay
  • CanHoldFrobAction()

There is an excess of code / code-checks now.

It would be worth reviewing as well:

  • tdm_holdfrob_drag_body_behavior / cv_holdfrob_drag_body_behavior
  • tdm_holdfrob_drag_all_entities / cv_holdfrob_drag_all_entities

TDM Modpack

Posted

As far as I see, currently there is "2.11 mode" in the code, and this new patch removes it.
No idea how many people still use that old mode, and how many people will like this new mode.
So obviously we can't make a decision.

I think it is rather obvious why nobody worked on it: everyone remembers how painful it was.
And @Daft Mugi is perfectly OK with his Thief-like mode, I suppose.

Posted
1 hour ago, stgatilov said:

As far as I see, currently there is "2.11 mode" in the code, and this new patch removes it.

No, "2.11 mode" has been upgraded to "2.11 + hold-frob". Nothing is lost, more is added.

This patch meets the requirements of all voices heard in this topic. A happy ending.

TDM Modpack

  • 2 weeks later...
  • 1 year later...
Posted

I have been playtesting a lot recently, and I remembered how great Daft Mugi's handling of grabbing body limbs feels: hold frob to grab, release frob to let go ("hold-type grabber"). It just feels immersive and works very well.

So, I went ahead and refactored the whole frob handling code, cleaned it up and most importantly: made it extermely easy to setup different frob-control-styles. Details for those interested in the spoiler tag:

Spoiler
  • The frob button event (pressed, released after short press, long hold, released after long hold) is now determined before even entering the function.
  • The entity upon which the frob button is initially pressed is registered and used throughout the code. No more various different entity pointers.
  • Each type of frob action is handled in its own function, fixing and preventing the state-spaghetti that existed before.
  • An additional virtual inheritance based code-path used only for door fine control has been removed / integrated in the regular code-path.
  • And here is the juicy bit: The input triggers for all frob action events are evaluated in a single function, which enables us to easily add different control styles.

 

Configurable frob-control-styles
With that in place, I have setup three different control styles that can be controlled through the new cvar "tdm_frob_control_style".

  • 0: TDM-style (short frob = grab, long frob = use [e.g. blow out candles, eat food, shoulder bodies...].
  • 1: Thief-style / 2.12 / Daft Mugi (Like TDM-style, but behavior for bodies is inverted so that shoulder bodies is on short frob and long frob has that nice hold-type-grabber described above)
  • 2: TDM_inverted-style (TDM-style exactly inverted, i.e., short frob = use, long frob = hold-type-grabber finally consistently for all entities, my personal holy-grail 😇)

I think TDM-style is what @snatcherhad in mind? Hopefully, this change will make many of you happy.

 

New hold-frob control styles for doors

I have also added in a completely new idea. There has been manual door fine control in the mod for quite some time. It can be enabled through tdm_door_control and then holding frob on a door and moving the mouse. I ironed out some of its issues, but it still didn't feel right to me. So, I thought of a new idea to make use of hold-frob for doors. tdm_door_control can now take 4 different values that change the hold-frob control of doors:

  • 0: Disabled
  • 1: Manual door fine control (experimental, existing feature)
  • 2: Hold frob to slowly move doors. They are opened and closed alternatingly, just like regular frobbing a door, but interrupting a moving door is skipped.
  • 3: Hold frob to slowly open doors.

Additionally, I added in the ability to quickly force close a door by holding frob and pressing attack to all of the above control styles.

The idea behind this addition is that the player can now slowly sneak and peak through a door, but then can also quickly shut the door again if the player deems the situation unsafe. This adds more skill expression and creates further immersion.

 

2.14 Beta?

At the moment, it is not yet decided whether these changes will make it into 2.14 beta, as the changeset is quite massive. We might have to wait for the nearest developer build after 2.14 release.

 

  • Like 3
Posted

Thank you. That sounds great. Especially the expanded door controls. I'm looking forward to checking it out, as soon as I can.

  • Like 1
Posted

Regarding configurable frob-control-styles...

Fantastic news @STiFU !

On 1/21/2026 at 8:27 AM, STiFU said:
  • 2: TDM_inverted-style (TDM-style exactly inverted, i.e., short frob = use, long frob = hold-type-grabber finally consistently for all entities, my personal holy-grail 😇

Interesting. It sounds wrong but I am open to try it 😊

On 1/21/2026 at 8:27 AM, STiFU said:

2.14 Beta?

At the moment, it is not yet decided whether these changes will make it into 2.14 beta, as the changeset is quite massive. We might have to wait for the nearest developer build after 2.14 release.

By all means yes please push the new styles to the next dev/beta. I will test all three styles as much as I can. It can be rolled back if something is amiss, no?

TDM Modpack

Posted

I am all for it, especially since I have done another pass at refactoring it, yesterday. Now everything in the frob handling code is super tight and explicit, and with the new door control features and the flash bomb changes, we now actually have some cool new gameplay features for the player.

Anyway, ultimately, it is stgatilov's call whether it will get included or not and I don't want to be too pushy.

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.


  • Recent Status Updates

    • datiswous

      So on a regular basis I try to start building something in Darkradiant but very quickly I loose interest and give up.
      I tend to
      create a room, position an ai in it (or first ai, then room, probably better) put a light in it Put some stuff in it test the room in tdm Now I had this new idea:
      Start of with a gigantic room. To skip the importance of sealing for the time being and to think broader than one room. Then just use ground without wall, just to visualise the structure of the level.  Then just use prefab walls and other elements (arches, etc.). Just building area's that aren't enclosed. I can always close them at a later point. Maybe this is all very logical from a mappers perspective, but tdm is the first game where I have done any kind of real mapping and I always stop at the start. It just takes too long to make something exciting.
      I want to build something at some point, because over time I accumulated lots of ideas.
      · 2 replies
    • MayheM

      It would be nice to have a link to the forum thread of a mission in download section, rather than having to search for it manually, like on Thief Guild.
      · 1 reply
    • taffernicus

      Anaglypta , floral and damask wallpaper look great in older homes 
      It’s rare to see anyone using “shader not found” wallpaper in their house

       
      · 0 replies
    • Ansome

      Terribly difficult juggling map designing with work, but I'm still alive and chipping away at something very special. I'm actually making a collaboration of sorts with a friend, I make the map itself and he acts as my "Chief Scope Creep Consultant" that checks in every so often to make sure this project isn't getting out of hand. It's a good system!
      · 1 reply
    • JackFarmer

      We don't need artificial intelligence; we need artistic intelligence. 
      Ralf Hütter, Kraftwerk
      · 6 replies
×
×
  • Create New...