View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0006658 | The Dark Mod | Coding | public | 18.01.2026 10:09 | 18.01.2026 10:20 |
| Reporter | STiFU | Assigned To | STiFU | ||
| Priority | normal | Severity | normal | Reproducibility | N/A |
| Status | feedback | Resolution | open | ||
| Product Version | TDM 2.13 | ||||
| Target Version | TDM 2.14 | ||||
| Summary | 0006658: Refactor frob handling to better support different frob control styles | ||||
| Description | The PerformFrob*() methods accumulated some technical debt over time. A refactor is long overdue, especially considering there was a lot of debate on how frob actions should be controlled and the current implementation does not easily allow switch different control styles. | ||||
| Tags | No tags attached. | ||||
|
I have refactored the frob handling code in my /branches/STiFU_FrobRefactor. The main changes are: - Short or long press frob is determined first and independently of entity type - Each frob action is handled in its own function to make state a bit more clear. - The input triggers and additional conditions needed for a certain action to occur are checked in a single function, allowing for easy switching of controls styles. - An inheritence based code path has been removed because that was only used by one entity type for an experimental feature. There is now a new cvar for setting the control style, called tdm_frob_control_style. The original TDM control style has been extended with long frob functionality that can optionally be disabled. There is also a new control style TDM_inverted, which I had proposed back in 2.12. - 0 -- TDM-style - short frob = grabber, - long frob = Directly use world item (shortcut for grabber and then "use", long frob can optionally be disabled by setting tdm_holdfrob_delay = 0 ) - 1 -- Thief-style (Daft Mugis 2.12) - Like TDM-style, with the exception that the behaviour for shoulderable bodies is flipped - 2 -- TDM_inverted-style - short frob = Directly use world item - long frob = grabber (Depending on cv_holdfrob_drag_entity_behavior the grabber is released upon keyup or next frob keydown) |
|
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 18.01.2026 10:09 | STiFU | New Issue | |
| 18.01.2026 10:09 | STiFU | Status | new => assigned |
| 18.01.2026 10:09 | STiFU | Assigned To | => STiFU |
| 18.01.2026 10:10 | STiFU | Relationship added | related to 0006316 |
| 18.01.2026 10:18 | STiFU | Note Added: 0017133 | |
| 18.01.2026 10:20 | STiFU | Status | assigned => feedback |