aboutsummaryrefslogtreecommitdiff
path: root/internal/admin/api_room_insert_remove.go
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-09-15 15:35:52 -0400
committerhistoria <[not public]>2026-09-15 15:35:52 -0400
commit0b0b25222b3131ada79ff78c28eb8bf07d977deb (patch)
tree2ceaef5203595044f66a8f00064cd8e017f8f48d /internal/admin/api_room_insert_remove.go
parent396c3facb8287b9a34076cae8f3d7b300d366d99 (diff)
downloadthehouseoficarus-0b0b25222b3131ada79ff78c28eb8bf07d977deb.tar.gz
feat: single-owner game state, transactional lifecycle, durable money on server stop
Diffstat (limited to 'internal/admin/api_room_insert_remove.go')
-rw-r--r--internal/admin/api_room_insert_remove.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/internal/admin/api_room_insert_remove.go b/internal/admin/api_room_insert_remove.go
index 8549d76..812a3ae 100644
--- a/internal/admin/api_room_insert_remove.go
+++ b/internal/admin/api_room_insert_remove.go
@@ -349,6 +349,11 @@ func (s *AdminServer) handleRoomRemove(w http.ResponseWriter, r *http.Request) {
if s.mobStore != nil {
s.mobStore.RemoveMobsInRoom(bID)
}
+ // Deleted room: evict its cached games (wagers refunded via the wired
+ // game callback) so gameplay never points at a removed room.
+ if s.evictRoom != nil {
+ s.evictRoom(bID)
+ }
s.undoStack.Push(ChangeDesc{
Description: fmt.Sprintf("remove room %d %s (pull %d to %d)", bID, dir, cID, aID),
FilePath: bPath,