In the latest build dev16256-9358, the code for holding objects and dragging unconscious bodies has been changed.
It is possible to switch between the old and the new code (e.g. to compare them) using cvar:
"tdm_drag_new 1": use new code (the new default).
"tdm_drag_new 0": use old code (was the only option in TDM 2.09 and before).
With the new code, there are three modes of dragging/moving objects:
Moving items (candles, apples, crates, etc.) around in normal/"messy" mode.
Moving items around in "silent" mode.
Dragging bodies (ragdolls = articulated figures).
The long-standing problem with moving items was that it was very hard to stay silent. An object could instantaneously reach high velocities from minor mouse movements, colliding with surrounding objects, sending them to fly all over the room and produce noise. Regular noise from bumping into the table/wall when you push an object into it was also a problem. As the result, grabbing something from a table was risky and required a lot of concentration.
The new code keeps item velocity bounded, so even if it collides something, it should not cause too much chaos. Also, if you push an item into floor/table, it won't cause continuous noise anymore.
The silent mode is the radical solution to the noise problem. When you move object in silent mode, it does not produce any noise and does not push surrounding objects at all. So you can be sure you won't attract nearby guards and won't topple nearby candle. However, there is a cost too: if the manipulated item is blocked by something, you won't be able to move it. For example, if a crate has a candle on it, you won't be able to move crate vertically unless you remove the candle. So while this mode can be very convenient, it is not intuitive.
We have not come to conclusion about usefulness of the silent mode yet, so there is a cvar which controls when silent mode is enabled:
"tdm_drag2_rigid_silentmode 0": never use silent mode.
"tdm_drag2_rigid_silentmode 1": use silent mode if creep button is pressed.
"tdm_drag2_rigid_silentmode 2": use silent mode when run button is not pressed.
"tdm_drag2_rigid_silentmode 3": always use silent mode.
Feedback is welcome
As for dragging bodies, this is an entirely different mode. The new code should make it a bit smoother and more natural.
For example, if you try to push a body into a wall/floor, you will see horrible convulsions with the old code. The new code does not have this problem.
Another issue happens when you try to lift the body up. With the old code, it feels as if the body is stickied to the floor with magnets. The new code is more physics-based, and you won't have problem with lifting torso, head, and arms off the floor, although you will never have enough force to lift whole body and keep it in air.