Phantasmal MAPD The MAPD keeps track of rooms and zones. Eventual possible uses include path finding and keeping track of cross-zone connections. It isn't privileged, so it can't directly read files or otherwise cause trouble, though access to its own global array must be carefully controlled to avoid corruption. It registers rooms with the objnumd to permit tracking and avoid namespace conflicts with the EXITD and potentially other daemons. API init() - this should always give an error when called by a developer add_room_object() - this will allow a developer to add a room object if it's not already registered. Under normal circumstances, the room definition file will take care of this. See simple_room's create function. add_room_number() - takes an object and a number, and associates them in MAPD's opinion. The number must be in an existing, valid segment for rooms and the room object must already be known to MAPD as a room object but not yet have its number registered. set_room_alias() - adds a new name for an object. This will be used only very occasionally. See how the alias "start room" is handled for an example. get_room() - this allows a user to check for a room name or alias. Calling it with the object_name() of your object as an argument can determine whether the room is successfully registered. Calling it with an alias will also work. See how "start room" is handled for an example. remove_room_object - removes the object_name() of the supplied object. This does not work on aliases, so if the object is not destructed then the alias will still point to it. remove_room_alias - removes a registered alias. get_room_by_num - takes an integer room number and returns the associated room object. add_unq_rooms - this takes a string containing UNQ text and a filename, nominally the source of that text. It parses the text and attempts to read it as an UNQ room description. segments_in_zone - takes an integer zone and returns a list of integer segment numbes. If the zone is zero, segments for rooms outside all zones are returned. If an invalid zone is passed in, nil is returned. rooms_in_segment - takes an integer segment identifier and returns a list of integer room numbers. If an invalid segment is passed in, nil is returned. rooms_in_zone - takes an integer zone number and returns a list of integer room numbers. If an invalid zone is given, nil is returned.