aboutsummaryrefslogtreecommitdiff
path: root/internal/admin/api_rooms.go
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-09-15 19:55:21 -0400
committerhistoria <[not public]>2026-09-15 19:55:21 -0400
commit6f3c43aca62a7d33a19f14f6ad7c16891952673a (patch)
tree0b0665ef624ef442df87ec7131129aaecc3420bd /internal/admin/api_rooms.go
parentcd95de60364aba8f5bdf8ec86f7234a9903eacc8 (diff)
downloadthehouseoficarus-6f3c43aca62a7d33a19f14f6ad7c16891952673a.tar.gz
fix: outstanding-stake ledger, owner backpressure, editor state preservation
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)
}