diff options
| author | historia <[not public]> | 2026-10-05 17:39:06 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-10-05 17:39:06 -0400 |
| commit | ec703a39738fefb60817f5659f76f8e683f8d301 (patch) | |
| tree | 00d1242d9f94bc2fec48331d8c02909be6b37f7a /internal/world/room.go | |
| parent | 516fd29da423432ef6dfded21a984f1d15dcab1a (diff) | |
| download | thehouseoficarus-ec703a39738fefb60817f5659f76f8e683f8d301.tar.gz | |
fix: admin undo/redo failure, video poker cabinet ids, room ref behavior
Diffstat (limited to 'internal/world/room.go')
| -rw-r--r-- | internal/world/room.go | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/internal/world/room.go b/internal/world/room.go index e200f32..9b9bef7 100644 --- a/internal/world/room.go +++ b/internal/world/room.go @@ -171,6 +171,13 @@ func (ro *RoomObject) UnmarshalYAML(value *yaml.Node) error { ro.Local = &def return nil } + // A reference entry (no name/description) that also carries behavior + // fields silently loses them at runtime, because the loader always uses + // the object file. Reject it instead of discarding authored behavior. + if def.RemovalItem != "" || len(def.OnUse) > 0 || def.Steal != nil || + def.Gather != nil || def.Talk != nil || def.Safespot != nil { + return fmt.Errorf("room object entry %q cannot carry behavior (on_use/gather/talk/steal/removal_item/safespot); define it in objects/%s.yaml or give the entry a name", ref.ID, ref.ID) + } ro.ID = ref.ID ro.HiddenOverride = ref.Hidden return nil |
