mirror of
https://github.com/isledecomp/isle-portable.git
synced 2026-05-02 02:23:56 +00:00
* Add stateful multi-part emote system with disassemble/reassemble Introduces a generalized multi-part emote framework where emotes can have two phases. The first trigger plays phase 1 and freezes the character at its last frame; the second trigger plays phase 2 to restore normal state. Movement is blocked for the entire duration of a multi-part emote (from phase 1 start through frozen state to phase 2 completion). The frozen state is synced to all peers via customizeFlags bits in PlayerStateMsg, so new joiners see disassembled players correctly. The emote table is now a 2D array (g_emoteAnims[][2]) where [1] is the phase-2 animation name (nullptr for one-shot emotes). Adding future multi-part emotes only requires a new row in the table. https://claude.ai/code/session_01L5FiuVFUqASR93iJcaXfEi * Fix emote movement blocking and frozen state sync Move movement blocking from CalculateTransform hook (which broke the camera by skipping p_transform output) to ThirdPersonCamera::Tick where it zeroes speed/velocity directly. Remove ShouldBlockMovement and ShouldInvertMovement hooks entirely. Rebuild frozen emote animation cache in InitAnimCaches when the frozen state was set before the ROI was available (state message arrived before world was ready). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Clean up emote branch: remove unused include, extract ClearFrozenState helper - Remove unused multiplayer.h include and using-directive from legopathactor.cpp - Extract ClearFrozenState() to DRY up 4 identical frozen state reset blocks - Clarify bit-encoding comment with mask value and emote ID limit Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| docs/multiplayer | ||
| include/extensions | ||
| src | ||