isle-portable/LEGO1
foxtacles 99c871ab16
Nick bricks memories (#21)
* WIP: Add animation completion protocol message for Nick Brick's Memories

Add MSG_ANIM_COMPLETE (15) protocol message broadcast by the host on
natural animation completion. Contains a 64-bit random event ID, the
SI object ID, and per-participant data (charIndex, displayName).

- BroadcastAnimComplete: gathers participants from session slots,
  resolves spectator characters from display actors, generates event ID
- HandleAnimComplete: filters observers (only participants get callback),
  builds JSON with eventId/objectId/participants for frontend
- OnAnimationCompleted callback in PlatformCallbacks, implemented for
  Emscripten (CustomEvent dispatch) and Native (SDL_Log)
- GetDisplayName() getter on RemotePlayer

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix participant ordering in animation completion message

Emit the local player first in the JSON participants array so the
frontend can rely on participants[0] being self when reporting to the
server. Extract participant JSON-building into a lambda to avoid
duplication. Retain null-termination safety for displayName.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Disable workers.dev and preview URLs for relay server

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix path actor assertion failure / freeze on repeated vehicle enter/exit

When the third-person camera is active, LMB triggers both forward movement
and vehicle interaction. This leaves the previous actor with m_worldSpeed > 0
when entering a vehicle, causing it to wander on the path system in non-user-nav
mode. On exit, SetBoundary() overwrites m_boundary without updating m_destEdge,
creating a boundary/edge mismatch. On the next vehicle enter, the stale spline
finishes and SwitchBoundary asserts (debug) or loops infinitely (release).

Stop the previous actor from wandering by zeroing its world speed on enter.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add hold threshold to disambiguate LMB click from hold-to-walk

A 300ms time threshold prevents brief clicks (for interacting with
world objects) from also triggering forward movement in third-person
camera mode.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add missing SDL_timer.h include for SDL_GetTicks

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Remove maxActors setting from multiplayer — NPCs are always disabled

The maxActors room setting added unnecessary complexity for a feature
that should always be off in multiplayer. Remove it from the relay
server protocol, room configuration API, C++ client, and simplify
NPC enforcement to be unconditional.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 23:46:16 +01:00
..
lego Nick bricks memories (#21) 2026-03-23 23:46:16 +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 Separate extensions (#18) 2026-03-13 23:12:07 +01:00
realtime Merge remote-tracking branch 'isle/master' 2026-03-14 16:48:49 -07: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 SpheresIntersect (#1745) 2026-02-14 20:16:23 -05: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