isle-portable/LEGO1/lego/legoomni/include
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
..
actions add actions forward decl header (#699) 2024-03-19 15:54:13 -04:00
act2actor.h Clear unknowns in LegoPathActor (#1731) 2026-01-31 01:47:11 +01:00
act2brick.h Clear unknowns in Act2Brick (#1675) 2025-08-09 18:05:43 +02:00
act2genactor.h Implement/match Act3Brickster::HitActor (#1212) 2024-12-12 17:10:44 +01:00
act2policestation.h Add all BETA10 ClassName() functions and vtables (#1258) 2024-12-22 08:13:34 -07:00
act3.h Clear unknowns in Act3 (#1749) 2026-03-14 16:55:42 +01:00
act3actors.h Clear unknowns in LegoPathActor (#1731) 2026-01-31 01:47:11 +01:00
act3ammo.h Clear unknowns in LegoPathActor (#1731) 2026-01-31 01:47:11 +01:00
ambulance.h Clear remaining unknown in Ambulance (#1650) 2025-07-23 19:14:10 +02:00
bike.h Add all BETA10 ClassName() functions and vtables (#1258) 2024-12-22 08:13:34 -07:00
buildingentity.h Add all BETA10 ClassName() functions and vtables (#1258) 2024-12-22 08:13:34 -07:00
buildings.h Order functions in binary up to end of Act2Actor (#1312) 2025-01-05 21:00:50 +01:00
bumpbouy.h Add all BETA10 ClassName() functions and vtables (#1258) 2024-12-22 08:13:34 -07:00
carrace.h Clear unknowns in CarRace (#1707) 2026-01-05 20:28:46 +01:00
doors.h Clear unknowns in Doors (#1714) 2026-01-11 17:59:46 +01:00
dunebuggy.h Add all BETA10 ClassName() functions and vtables (#1258) 2024-12-22 08:13:34 -07:00
elevatorbottom.h Clear unknowns in LegoWorld (#1674) 2025-08-25 15:13:10 -04:00
extra.h
gasstation.h Merge remote-tracking branch 'isle/master' 2025-09-12 12:35:22 -07:00
helicopter.h Clear unknowns in LegoPathActor (#1731) 2026-01-31 01:47:11 +01:00
historybook.h Support for international versions of isle (#327) 2025-06-17 20:42:43 -07:00
hospital.h Merge remote-tracking branch 'isle/master' 2025-09-12 12:35:22 -07:00
infocenter.h Merge remote-tracking branch 'isle/master' 2025-09-12 12:35:22 -07:00
infocenterdoor.h Clear unknowns in LegoWorld (#1674) 2025-08-25 15:13:10 -04:00
isle.h Consolidate extension forward declarations into extensions/fwd.h 2026-03-13 15:28:45 -07:00
isleactor.h Order functions in binary up to end of Act2Actor (#1312) 2025-01-05 21:00:50 +01:00
islepathactor.h Nick bricks memories (#21) 2026-03-23 23:46:16 +01:00
jetski.h Cleared unknown in Jetski (#1661) 2025-07-31 02:17:12 +02:00
jetskirace.h Clear unknowns in JetskiRace (#1706) 2026-01-05 20:28:05 +01:00
jukebox.h Clear unknowns in LegoWorld (#1674) 2025-08-25 15:13:10 -04:00
jukeboxentity.h Add all BETA10 ClassName() functions and vtables (#1258) 2024-12-22 08:13:34 -07:00
lego3dsound.h Add MxMiniaudio wrapper to fix resource issues (#131) 2025-05-20 02:07:20 +02:00
lego3dwavepresenter.h Add clang-tidy readability-redundant-inline-specifier (#1060) 2024-07-05 01:06:32 +02:00
legoact2.h Clear unknowns in LegoAct2 (#1746) 2026-03-13 22:42:12 +01:00
legoactioncontrolpresenter.h Clear unknowns in LegoActionControlPresenter (#1722) 2026-01-14 16:51:42 -07:00
legoactor.h Clear unknowns in LegoActor (#1708) 2026-01-05 20:29:30 +01:00
legoactorpresenter.h Add clang-tidy readability-redundant-inline-specifier (#1060) 2024-07-05 01:06:32 +02:00
legoactors.h Add names to LegoActorInfo.Part (#1538) 2025-06-03 18:11:01 -07:00
legoanimactor.h Clear unknowns in LegoPathActor (#1731) 2026-01-31 01:47:11 +01:00
legoanimationmanager.h Claude/npc animations local playback (#20) 2026-03-21 22:40:15 +01:00
legoanimmmpresenter.h Clear unknowns in MxCompositePresenter (#1717) 2026-01-12 15:16:44 -07:00
legoanimpresenter.h Anim presenters (#1719) 2026-01-13 21:54:44 +01:00
legobuildingmanager.h Consolidate extension forward declarations into extensions/fwd.h 2026-03-13 15:28:45 -07:00
legocachesoundlist.h
legocachesoundmanager.h Merge remote-tracking branch 'isle/master' 2025-07-23 13:21:39 -07:00
legocachsound.h Merge remote-tracking branch 'isle/master' 2025-08-10 13:16:30 -07:00
legocameracontroller.h Clear unknowns LegoCameraController (#1647) 2025-07-21 22:18:59 +02:00
legocarbuild.h Merge remote-tracking branch 'isle/master' 2025-10-18 10:23:53 -07:00
legocarbuildpresenter.h Clear unknowns in LegoCarBuildAnimPresenter (#1683) 2025-09-07 15:07:39 -07:00
legocharactermanager.h Consolidate extension forward declarations into extensions/fwd.h 2026-03-13 15:28:45 -07:00
legocontrolmanager.h Clear unknown in LegoControlManagerNotificationParam (#1633) 2025-07-19 01:09:37 +02:00
legoendanimnotificationparam.h Add clang-tidy readability-redundant-inline-specifier (#1060) 2024-07-05 01:06:32 +02:00
legoentity.h Clear unknown parameter in LegoEntity::SetROI (#1688) 2025-09-21 11:11:04 -07:00
legoentitylist.h (Refactor) Use more forward declarations (#881) 2024-05-03 18:19:12 +02:00
legoentitypresenter.h Add clang-tidy readability-redundant-inline-specifier (#1060) 2024-07-05 01:06:32 +02:00
legoeventnotificationparam.h Merge remote-tracking branch 'isle/master' 2026-01-30 17:06:10 -08:00
legoextraactor.h Clear unknowns in LegoPathActor (#1731) 2026-01-31 01:47:11 +01:00
legoflctexturepresenter.h Add clang-tidy readability-redundant-inline-specifier (#1060) 2024-07-05 01:06:32 +02:00
legogamestate.h Merge remote-tracking branch 'isle/master' 2026-03-14 16:48:49 -07:00
legoinputmanager.h Fix mobile camera zoom/transition and name bubble issues 2026-03-13 19:10:49 -07:00
legoloadcachesoundpresenter.h merge 2024-07-04 16:09:48 -07:00
legolocations.h Implement/match PlayCamAnim and CameraTriggerFire (#935) 2024-05-18 20:43:19 +02:00
legolodlist.h
legomain.h Add widescreen.si to web port (#666) 2025-08-11 04:41:42 +02:00
legometerpresenter.h Use MxGeometry header (#1399) 2025-03-11 21:13:13 -04:00
legomodelpresenter.h Merge remote-tracking branch 'isle/master' 2025-07-06 08:29:53 -07:00
legonamedpart.h Match MxPtrList<LegoNamedPart>::Destroy (#1285) 2024-12-26 20:57:30 +01:00
legonamedpartlist.h
legonamedplane.h Order symbols in Act1State (#1336) 2025-01-17 02:25:31 +01:00
legonamedtexture.h Implement/match Act1State::PlaceActors and related (#1142) 2024-11-10 21:26:48 +01:00
legonamedtexturelist.h
legonavcontroller.h Add LMB forward movement to third person camera 2026-03-16 17:44:05 -07:00
legoobjectfactory.h Implement RaceSkel, add BETA10 annotations (#1088) 2024-08-21 22:30:27 +02:00
legopalettepresenter.h Add clang-tidy readability-redundant-inline-specifier (#1060) 2024-07-05 01:06:32 +02:00
legopartpresenter.h Fix ViewLODList leaks (#623) 2025-07-18 21:34:23 +00:00
legopathactor.h Beta matches on LegoEdge and others, LegoPathActor improvements (#1743) 2026-02-14 17:50:15 +01:00
legopathboundary.h Clear unknowns in LegoPathActor (#1731) 2026-01-31 01:47:11 +01:00
legopathcontroller.h Merge remote-tracking branch 'isle/master' 2026-01-30 17:06:10 -08:00
legopathcontrollerlist.h Minor tweak to MxList template (#1083) 2024-08-11 13:23:39 -07:00
legopathedgecontainer.h Clear unknowns in LegoPathEdgeContainer and LegoBEWithFloat (#1723) 2026-01-18 06:50:17 -08:00
legopathpresenter.h Add clang-tidy readability-redundant-inline-specifier (#1060) 2024-07-05 01:06:32 +02:00
legopathstruct.h Lego path struct (#1750) 2026-03-14 16:56:22 +01:00
legophoneme.h Clear unknowns in LegoPhoneme (#1556) 2025-06-11 23:29:23 +02:00
legophonemelist.h Beta matching MxString (#842) 2024-04-24 12:10:51 -04:00
legophonemepresenter.h Clear unknowns in LegoPhonemePresenter (#1632) 2025-07-18 23:26:34 +02:00
legoplantmanager.h Consolidate extension forward declarations into extensions/fwd.h 2026-03-13 15:28:45 -07:00
legoplants.h Clear unknowns in LegoPlantManager (#1557) 2025-06-12 09:33:32 -07:00
legopointofviewcontroller.h Restructure miniwin and add support for 3D backends 2025-05-29 04:07:53 +02:00
legorace.h Clear unknowns in LegoRace and LegoRaceState (#1702) 2026-01-04 17:23:56 -07:00
legoraceactor.h Clear unknowns in LegoPathActor (#1731) 2026-01-31 01:47:11 +01:00
legoracemap.h Clear unknowns in LegoRaceMap (#1705) 2026-01-10 19:49:04 +01:00
legoracers.h Clear unknowns in LegoPathActor (#1731) 2026-01-31 01:47:11 +01:00
legoracespecial.h Merge remote-tracking branch 'isle/master' 2026-03-14 16:48:49 -07:00
legoroilist.h Implement/match LegoAnimPresenter::FUN_100699e0 (#793) 2024-04-13 16:02:55 +02:00
legoroimaplist.h Revert "Use template specialization solution" (#137) 2025-05-20 23:10:51 +02:00
legosoundmanager.h Merge remote-tracking branch 'isle/master' 2025-07-23 13:21:39 -07:00
legostate.h Move Read/Write functions to LegoStorage base class, match Act1State::Serialize (#1335) 2025-01-17 00:13:23 +01:00
legotesttimer.h Implement LegoTestTimer (#1732) 2026-01-27 13:21:56 -05:00
legotextureinfo.h Merge remote-tracking branch 'isle/master' 2025-06-09 13:04:34 -07:00
legotexturepresenter.h Add clang-tidy readability-redundant-inline-specifier (#1060) 2024-07-05 01:06:32 +02:00
legotraninfo.h Implement/match PlayCamAnim and CameraTriggerFire (#935) 2024-05-18 20:43:19 +02:00
legotraninfolist.h Improve FUN_10061010, other fixes (#1634) 2025-07-19 16:28:35 +02:00
legoutils.h Merge remote-tracking branch 'isle/master' 2026-03-14 16:48:49 -07:00
legovariables.h Beta functions for MxVariable (#1645) 2025-07-20 23:08:26 -04:00
legovideomanager.h Remove debug window (#736) 2025-11-21 14:20:37 +00:00
legoworld.h Clear unknowns in LegoWorld (#1674) 2025-08-25 15:13:10 -04:00
legoworldlist.h Match LegoOmni::Create(), other BETA10 matches (#1651) 2025-07-25 17:13:34 +02:00
legoworldpresenter.h Merge remote-tracking branch 'isle/master' 2026-01-30 17:06:10 -08:00
misc.h Merge remote-tracking branch 'isle/master' 2025-07-20 09:25:06 -07:00
motorcycle.h Add all BETA10 ClassName() functions and vtables (#1258) 2024-12-22 08:13:34 -07:00
mxbackgroundaudiomanager.h Merge remote-tracking branch 'isle/master' 2025-08-10 13:16:30 -07:00
mxcompositemediapresenter.h Clear unknowns in MxCompositeMediaPresenter (#1716) 2026-01-12 15:15:21 -07:00
mxcontrolpresenter.h Clear unknowns in MxCompositePresenter (#1717) 2026-01-12 15:16:44 -07:00
mxtransitionmanager.h Remove fake transition (#550) 2025-07-08 00:47:49 +02:00
pizza.h Merge remote-tracking branch 'isle/master' 2025-08-01 15:04:02 -07:00
pizzeria.h Clear unknowns in PizzeriaState, Pizza and PizzaMissionState (#1574) 2025-06-20 00:38:31 +02:00
police.h Clear unknowns in LegoWorld (#1674) 2025-08-25 15:13:10 -04:00
racecar.h Add all BETA10 ClassName() functions and vtables (#1258) 2024-12-22 08:13:34 -07:00
raceskel.h Clear unknowns in LegoAnimActorStruct and LegoAnimActor (#1673) 2025-08-09 17:40:12 +02:00
radio.h Clear unknowns in Radio and RadioState (#1573) 2025-06-19 23:52:02 +02:00
registrationbook.h Merge remote-tracking branch 'isle/master' 2025-09-12 12:35:22 -07:00
score.h Clear unknowns in Score (#1701) 2026-01-04 17:17:02 -07:00
scripts.h Refactor LegoOmni into LegoMain/Scripts (#883) 2024-05-04 14:06:32 +02:00
skateboard.h SkateBoard: name m_unk0x160 -> m_pizzaVisible (#1269) 2024-12-24 07:50:37 -07:00
towtrack.h Clear unknowns in TowTrack (#1709) 2026-01-08 00:31:28 +01:00