CJumpNode stored a private m_pos field that duplicated the position
already held by its Objects[] entry. The field was set once during
construction and never updated afterward, so any subsequent movement
(e.g. FRED dragging) would leave m_pos stale while Objects[m_objnum].pos
held the authoritative value. Every external caller already used
GetSCPObject()->pos instead; GetPosition() had zero call sites.
- Remove the m_pos field and its initialization in both constructors,
the move constructor, and the move-assignment operator.
- Pass the constructor's position argument directly to obj_create()
instead of routing through m_pos.
- Repoint GetPosition() at Objects[m_objnum].pos so it always returns
the live, up-to-date position.
- Add GetRadius() to expose the cached m_radius, and use it in
jumpnode_get_which_in() instead of the redundant model_get_radius()
call.
Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
* qtfred dockable objects list
* fix jumpnode rendering
* more ouline panel features
* fix for wings
* remember list expansions
* clean up wing selection and layer handling
* disable top and bottom docking
* give scene outliner some padding
* replace old selection dialog with the scene browser
* fix some minor issues
* right click for wings and waypoint paths
* clang
* clang again
* fix status bar message
* 25 1 checks
* clang
* more clang
* address feedback
1. Deprecate the old set-jumpnode-name sexp now that there is a set-jumpnode-display-name
2. Make the display name design consistent with ships and weapons; in particular add a `HasDisplayName()` function and automatically generate the display name for hash-truncated names
3. Keep the display name in sync when the name is changed in the FRED dialog
4. Fix the overriding of hash-truncated names with display names on the HUD
5. Fix the incorrect setting of the alphacolor flag when using FRED
6. Fix array out-of-bounds access when no object is selected
Follow-up to #5401.
This adds a mechanism for running generic operations at specific points
of the frame execution. This can be used by any part of the code an not
just Lua since it simply executes std::functions. It also adds an
"execution context" concept that specifies in which situation an
operation should be executed.
This is then used by the Lua Coroutines code for resuming coroutines at
specific points instead of always when the awaited promise resolves.
Part of modernizing the code base, Travis, at least, prefers defaults to be in the class definition instead of having multiple constructor functions have the same default values.
Allows jump nodes to use instrinsic/dumb rotation again by exposing the jump node class to the model instancing code and adding a check for it in modelread.