isle-portable/LEGO1
foxtacles 004e3b3bbf
Fix bugs (#16)
* Fix camera drifting during multi-part emotes

Block translational movement in HandleCameraRelativeMovement() when
a multi-part emote is active. Previously, movement input was processed
unconditionally, causing the native ROI (and camera) to move forward
while the display ROI stayed pinned at the emote position. Now the
emote check forces hasInput=false and zeros m_smoothedSpeed so neither
position updates nor coasting occur during any phase of a multi-part
emote. Camera orbit controls (rotation/pan/zoom) remain unaffected.

https://claude.ai/code/session_01QMcZSa3ysdyACVea66QA5K

* Fix use-after-free crash in NameBubbleRenderer::Update

Lego3DSound::FUN_10011a60 (used by LegoCacheSound::Play) did not reset
m_isActor and m_enabled when reassigning the ROI reference. When a
cached sound was reused — first for a known actor name (setting
m_isActor=TRUE), then for a multiplayer clone found via FindROI — the
stale m_isActor flag caused Reset() to call ReleaseActor on the clone's
ROI, freeing it while ThirdPersonCamera still held a pointer. The next
Tick then dereferenced the dangling pointer in NameBubbleRenderer::Update.

Reset the ownership flags at the top of the reassignment path so they
match the clean-state semantics of Lego3DSound::Create.

Also guard multi-part emotes behind an active 3rd-person camera check
and remove a leftover debug log in RemotePlayer.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-03-13 04:52:58 +01:00
..
lego Fix bugs (#16) 2026-03-13 04:52:58 +01:00
modeldb Merge remote-tracking branch 'isle/master' 2025-06-24 09:05:44 -07:00
mxdirectx Plug leaks until Information Center, detected by the LeakSanitizer (#764) 2026-01-04 03:35:42 +01:00
mxgeometry Merge remote-tracking branch 'isle/master' 2025-09-12 12:35:22 -07:00
mxstl Implement LegoPathController::FUN_10048310 (#1192) 2024-12-06 20:50:40 +01:00
omni Update miniaudio to 0.11.24 (#774) 2026-01-30 19:42:06 -08:00
realtime Merge remote-tracking branch 'isle/master' 2026-01-30 17:06:10 -08:00
res Support building isle with modern MSVC + msys2 (#421) 2024-01-10 23:34:32 +01:00
tgl Plug memory leaks while moving around in the Information Center (#768) 2026-01-06 04:17:23 +01:00
viewmanager Merge remote-tracking branch 'isle/master' 2026-01-07 16:39:54 -07:00
cursor.h Make draw cursor feature work for modern platforms (#480) 2025-07-03 18:05:46 +02:00
define.cpp Match LegoActor and LegoPathActor in BETA10 (#1524) 2025-05-27 22:04:01 +02:00
define.h Implement/match LegoRaceActor (#1072) 2024-08-02 22:29:21 -07:00
lego1_export.h Use SDL3 functions in more locations (#44) 2024-12-24 18:04:46 -07:00
lego1_pch.h Merge remote-tracking branch 'isle/master' 2026-01-30 17:06:10 -08:00
library_msvc.h Beta match LegoLOD and related classes (#1704) 2026-01-05 23:45:36 +01:00
library_smack.h Fix inclusion guards of 3 files (#1509) 2025-05-20 02:15:30 +02:00
library_smartheap.h Add SmartHeap for LEGO1 (#1694) 2025-10-12 07:36:36 +02:00
main.cpp Restructure miniwin and add support for 3D backends 2025-05-29 04:07:53 +02:00