The user's save was bricked by teleporting to entry 100000304: the client
offers it in the map but NREs in AdventurePhase._EnterStep1_InitializeMapInfo
while loading, and the server had already saved that scene - every login
then replayed the broken scene (stuck on the train-window loading screen).
- loadScene no longer calls SavePersistent; SceneEntityMove's 5s cadence
persists the scene only once the client walks in it (the existing arena
guard already kept challenge scenes out of the save)
- reset persistent to entry 102020107 (proven walkable in the 01:00/01:38
sessions)
The user report: pillars visible on the map but locked, and clicking a
teleport does nothing (client never sends EnterScene).
Root cause: mapDefaultEntranceMap covers only 115 of 371 floors - the
GetSceneMapInfo reply had no unlocked teleports for the missing floors
(mostly new-region 2xxxxx maps), so the client locked the pillars and
never initiated the teleport.
- findEntryForFloor: resolve entry by searching config names P*_F<floor>
directly, with mapDefaultEntranceMap as the first chance
- GetSceneMapInfo: use the new resolver and merge teleports.json keys
into unlocked_teleport_list for every floor
- EnterScene: floor ids resolve through the same path; a teleport id
arriving via scene_identifier (MDAIDPPKOPO.PLIDNBMCIJH) now also
resolves the destination entry
- loadScene: exact teleport position from teleports.json when the res
config has no inline teleport with that id