aboutsummaryrefslogtreecommitdiff
path: root/internal/admin/api_map.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/admin/api_map.go')
-rw-r--r--internal/admin/api_map.go6
1 files changed, 4 insertions, 2 deletions
diff --git a/internal/admin/api_map.go b/internal/admin/api_map.go
index 5168165..a7802f9 100644
--- a/internal/admin/api_map.go
+++ b/internal/admin/api_map.go
@@ -50,7 +50,7 @@ func (s *AdminServer) handleMap(w http.ResponseWriter, r *http.Request) {
return nil, false
}
return room, true
- }, nil, func(gc world.GridConflict) {
+ }, nil, nil, func(gc world.GridConflict) {
if gc.Kind == "overlap" {
log.Printf("map: grid overlap: room %d wants cell %v already held by %d (via %d->%s)",
gc.Target, gc.Want, gc.Occupier, gc.From, gc.Dir)
@@ -171,6 +171,7 @@ func (s *AdminServer) handleMap(w http.ResponseWriter, r *http.Request) {
Dir string `json:"dir"`
Bidirectional bool `json:"bidirectional"`
Hidden bool `json:"hidden"`
+ AlwaysBlocked bool `json:"always_blocked"`
}
type UDLink struct {
@@ -260,7 +261,7 @@ func (s *AdminServer) handleMap(w http.ResponseWriter, r *http.Request) {
bidirectional := false
if targetRoom, ok := roomData[target]; ok {
- if oppExit, ok := targetRoom.Exits[world.OppositeExit[dir]]; ok && oppExit.Room == rid && !oppExit.Hidden {
+ if oppExit, ok := targetRoom.Exits[world.OppositeExit[dir]]; ok && oppExit.Room == rid && !oppExit.Hidden && !oppExit.AlwaysBlocked {
bidirectional = true
}
}
@@ -277,6 +278,7 @@ func (s *AdminServer) handleMap(w http.ResponseWriter, r *http.Request) {
Dir: string(dir),
Bidirectional: bidirectional,
Hidden: exit.Hidden,
+ AlwaysBlocked: exit.AlwaysBlocked,
})
}
}