diff options
Diffstat (limited to 'internal/admin/api_rooms.go')
| -rw-r--r-- | internal/admin/api_rooms.go | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/internal/admin/api_rooms.go b/internal/admin/api_rooms.go index 4cfb467..c93e7c6 100644 --- a/internal/admin/api_rooms.go +++ b/internal/admin/api_rooms.go @@ -970,13 +970,13 @@ func (s *AdminServer) handleRoomRename(w http.ResponseWriter, r *http.Request) { } s.world.RebuildRoomIndex(s.dataDir) - s.world.ClearRoomState(body.ID) - // Migrate room-ID-embedded state across all characters (discovered-exit - // player flags, RoomID, EnterSeqRoom, MapSymbols, RoomsVisited) plus - // Hub membership buckets, casino room keys, world room-keyed state, and - // live mob instances, so a rename leaves no gameplay, broadcast, or - // player attached to the old location. + // Runtime room state moves with the room: ground items, seeded spawn + // markers, and object states are rekeyed to the new ID — never cleared. + // Clearing here would destroy live room contents. The wired game + // callback performs the same world rekey plus players, Hub membership, + // casino room keys, and mob instances. + s.world.RekeyRooms(idMap) if s.rewriteRoomIDs != nil { s.rewriteRoomIDs(idMap) } |
