new object $realm_settings: $foundation;
var $root created_on = 854028767;
var $root defined_settings = #[["map-position", #[['get, ['get_realm_setting]], ['parse, ['parse_map_position]], ['format, ['format_map_position]]]], ["propagate", #[['get, ['get_realm_setting]], ['parse, ['is_propagator]], ['format, ['format_propagator]]]]];
var $root flags = ['variables, 'methods, 'code, 'core];
var $root inited = 1;
var $root managed = [$realm_settings];
var $root manager = $realm_settings;
var $root settings = #[["propagate", 0], ["map-position", 0]];
root method .core_realm_settings() {
.set_setting("map-position", definer(), "none");
.set_setting("propagate", definer(), "none");
};
public method .format_map_position() {
arg value;
if (!value)
return "none";
return "window %l, %l tag %l on %l".format(@value);
};
public method .get_realm_setting() {
arg name, definer, @args;
var v, t;
t = this();
if (.has_ancestor($place)) {
if ((.settings()).contains(name))
return .get_local_setting(name, definer);
return (.realm()).get_realm_setting(name, definer, @args);
} else if ((.settings()).contains(name)) {
return .get_local_setting(name, definer);
} else {
return ((.parents())[1]).get_realm_setting(name, definer, @args);
}
};
public method .parse_map_position() {
arg value;
if (value in ["n", "no", "none", "0"])
return 0;
if (type(value) == 'list)
value = value.join();
value = (| (value.match_pattern("window *,* tag * on *")).mmap('trim) |);
if (!value)
throw(~parse, "Syntax: window <x>,<y> tag <tag> on <mapobject>");
return (> [toint(value[1]), toint(value[2]), value[3], $object_lib.to_dbref(value[4])] <);
};
public method .will_propagate() {
return .get_setting("propagate", definer());
};