Method code for $root.define_setting()

[Turn on line numbering]
arg name, @info;
var i;

(> .perms(sender()) <);
if (info) {
    info = info[1];
    for i in (info) {
        if (!(> .valid_setting_attr(@i) <))
            info = dict_del(info, i[1]);
    }
} else {
    info = #[];
}
if (.all_defined_settings().contains(name))
    throw(~setexists, "Setting \"" + name + "\" is already defined.");
if (!$code_lib.valid_setting_id(name))
    throw(~setbad, "Setting name \"" + name + "\" is unacceptable.");
defined_settings = .defined_settings().add(name, info);
return defined_settings[name];

["// Created as a part of ColdCore, see: @help Credit"]

the Cold Dark