aboutsummaryrefslogtreecommitdiff
path: root/internal/game/cmd_room_object.go
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-09-19 03:15:59 -0400
committerhistoria <[not public]>2026-09-19 03:15:59 -0400
commit0e60567a7a0addb9421769ee7be7853bfa8788cb (patch)
tree7645112db0e4eae95b8a83c1e4f9aab38bede655 /internal/game/cmd_room_object.go
parentcc33072eced3d5460512c09c42ec4531c807d7af (diff)
downloadthehouseoficarus-0e60567a7a0addb9421769ee7be7853bfa8788cb.tar.gz
refactor: simplifcation, change how rooms are stored in player yaml, remove legacy code
Diffstat (limited to 'internal/game/cmd_room_object.go')
-rw-r--r--internal/game/cmd_room_object.go24
1 files changed, 9 insertions, 15 deletions
diff --git a/internal/game/cmd_room_object.go b/internal/game/cmd_room_object.go
index 38b828a..e11d178 100644
--- a/internal/game/cmd_room_object.go
+++ b/internal/game/cmd_room_object.go
@@ -4,7 +4,6 @@ import (
"fmt"
"strings"
- "gopkg.in/yaml.v3"
"thehouseoficarus/internal/behavior"
"thehouseoficarus/internal/net"
"thehouseoficarus/internal/object"
@@ -47,7 +46,9 @@ func (g *Game) roomAddObj(sess *net.Session, args []string) {
}
}
room.Objects = append(room.Objects, world.RoomObject{ID: objID})
- g.writeRoom(sess, func(r *world.Room) { *r = *room })
+ if !g.mutateRoom(sess, func(r *world.Room) { *r = *room }) {
+ return
+ }
sess.WriteLine(fmt.Sprintf("Added object '%s' to room.", objID))
}
@@ -77,7 +78,9 @@ func (g *Game) roomRemObj(sess *net.Session, args []string) {
return
}
room.Objects = filtered
- g.writeRoom(sess, func(r *world.Room) { *r = *room })
+ if !g.mutateRoom(sess, func(r *world.Room) { *r = *room }) {
+ return
+ }
sess.WriteLine(fmt.Sprintf("Removed object '%s' from room.", objID))
}
@@ -115,10 +118,7 @@ func (g *Game) roomAddLocalObj(sess *net.Session, name string, aliases []string,
},
})
- path, _ := g.World.GetRoomPath(p.RoomID)
- data, _ := yaml.Marshal(room)
- if err := writeRoomFile(path, data); err != nil {
- sess.WriteLine(fmt.Sprintf("Error saving room: %v", err))
+ if !g.mutateRoom(sess, func(r *world.Room) { *r = *room }) {
return
}
sess.WriteLine(fmt.Sprintf("Added local object '%s' to room.", name))
@@ -153,10 +153,7 @@ func (g *Game) roomRemLocalObj(sess *net.Session, name string) {
}
room.Objects = filtered
- path, _ := g.World.GetRoomPath(p.RoomID)
- data, _ := yaml.Marshal(room)
- if err := writeRoomFile(path, data); err != nil {
- sess.WriteLine(fmt.Sprintf("Error saving room: %v", err))
+ if !g.mutateRoom(sess, func(r *world.Room) { *r = *room }) {
return
}
sess.WriteLine(fmt.Sprintf("Removed local object '%s' from room.", name))
@@ -220,10 +217,7 @@ func (g *Game) roomToggleHidden(sess *net.Session, input string, hidden bool) {
return
}
- path, _ := g.World.GetRoomPath(p.RoomID)
- data, _ := yaml.Marshal(room)
- if err := writeRoomFile(path, data); err != nil {
- sess.WriteLine(fmt.Sprintf("Error saving room: %v", err))
+ if !g.mutateRoom(sess, func(r *world.Room) { *r = *room }) {
return
}