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
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
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
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
legoentity.h Clear unknown parameter in LegoEntity::SetROI (#1688) 2025-09-21 11:11:04 -07:00
legoentitylist.h
legoentitypresenter.h
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
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
legolocations.h
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
legopalettepresenter.h
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
legopathedgecontainer.h Clear unknowns in LegoPathEdgeContainer and LegoBEWithFloat (#1723) 2026-01-18 06:50:17 -08:00
legopathpresenter.h
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
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
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
legotraninfo.h
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
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