Repository navigation
v83 move paths for players and mobs; server-driven NPC idle actions - #504
Merged
Merged
Conversation
Read and write path elements by type as v83 does (FUN_0068a33c decode, FUN_0068a563 encode): velocity-only types keep the position before them, type 10 is one byte, every other type ends with stance and duration. HC sends velocities in px/s and a real start point, and records element 4 when Teleport is used. The server relays the client's start point instead of 0 and parses from it, for players and mobs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The user's steps merge into runs and go out about once a second, holding back air and rope elements until a foothold follows (FUN_0068ab85, FUN_0068a88d), with the key byte and bounding rect. Other characters queue whole paths and play them on a Hermite curve, a tenth faster when a second or more behind, snapping when over six (FUN_0068b371, FUN_0068adcc).
The controller runs the mob's AI on its own body ahead of what is shown, steps it until it has a second of movement (FUN_0066b6fc), sends that path in MOVE_MONSTER and plays it like every other client. A hit shows at once; the shown path stops at the next foothold and the AI flinches from there (FUN_0068b16f). Other clients play the paths they get in turn.
…L162) The server gives one player per field control of its NPCs (0x103, handed on when they leave) and relays their 0xC5 choices to the whole map as 0x104. HC chooses only for NPCs it controls, waits for the echo, and every client plays what comes back, as v83 does (FUN_006d2918, 006d2e07). HC also handles REMOVE_NPC and control release (mode 0 no longer removes).
neeerp
force-pushed
the
v83/movement-paths
branch
from
October 17, 2026 23:26
2b12181 to
7b7fc7b
Compare
neeerp
added this pull request to stack #515
October 17, 2026 23:30
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Movement now travels as v83 move paths in both directions, mobs move by paths their controller builds, and NPC idle actions go through the server.
What changed
FUN_0068a33cdecode,FUN_0068a563encode):FUN_0068ab85,FUN_0068a88d). Air and rope elements wait until a foothold follows. Other characters play whole paths on a Hermite curve, a tenth faster when a second behind and snapping when over six (FUN_0068b371,FUN_0068adcc).FUN_0066b6fc), sends that path in MOVE_MONSTER and plays it like every other client.FUN_006d2918,006d2e07). It also handles REMOVE_NPC and control release.Not covered
info/move.Verification
movement_path.Reviewed with sol-loop: 2 rounds with gpt-6.1-sol on high.
Stacked on #503