aboutsummaryrefslogtreecommitdiff
path: root/internal/admin/api_rooms.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/admin/api_rooms.go')
-rw-r--r--internal/admin/api_rooms.go12
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)
}