Room Resolutions

Details  |  World  |  Continents  |  Areas  |  Zones  |  Rooms  |  Mobiles  |  Items  |  Exits  |  Extras  |  Buffs  |  Races

Rooms define the locations available geographically within the mud. Linking of rooms creates routes, and groups of rooms define areas, and groups of areas define continents. Following are the room fields that can currently be retrieved and set via the resolution operator. Each description is prefixed with either [G] gettable, [S] settable, or [G,S] gettable and settable. Resolutions are case sensitive.

General Information
Various fields to retrieve and set room information.
@room->id [G] The ID (vnum) of the room as assigned by the builder.
@room->uniqueId [G] The unique ID of the room. This will change when the area reloads or the MUD reboots.
@room->level [G,S] The level of the room. This is used for magical effects invoked by the room.
@room->terrainType [G,S] The terrain type. This will be one of the following textual identifiers (the preferred way to test for a terrain type):

inside, city, field, forest, hills, mountain, swimWater, noSwimWater, underwater, desert, air, jungle, tundra, plain, swamp
@room->terrainName [G] The name of the terrain. This is a user friendly name for the terrain, and can be embedded in output intended to be read.
@room->terrainTypeId [G,S] The integer ID of the terrain type. This should not be used in comparisons against explicit integer values.
@room->sizeType [G,S] The size of the room. This will be one of the following textual identifiers (the preferred way to test for a room's size):

micro, tiny, small, medium, large, huge, enormous, gargantuan, unlimited
@room->sizeTypeId [G,S] The integer ID of the room's size type. This should not be used in comparisons against explicit integer values.
@room->name [G,S] The name (or title) of the room.
@room->description [G,S] The room's description when a player types "look".
@room->brightness [G] The ambient brightness. Players can see in brightness of 101 (this can differ to some degree based on race).
@room->continentId [G] The ID of the continent in which the room resides. Continents at this time have an influence over summon and gate spells since you can't jump between them using these spells. You should never store the continent ID or compare against a a literal integer value since it could change. It is better to store/compare against the key value.
@room->continentPtr [G] A unique pointer to the continent data structure that can be used with continent specific resolutions.
@room->continentKey [G] The simplified name of the continent which will consist of only alphabetic characters and underscores. If you need to store a continent identifier of compare against an explicit value then you should use this value. Example: western_islands
@room->continent [G] The name of the continent as might be displayed to a player. Example: Western Islands
@room->areaId [G] The ID of the area in which the room resides. You should never store the area ID or compare against a a literal integer value since it could change. It is better to store/compare against the key value.
@room->areaPtr [G] A unique pointer to the area data structure that can be used with area specific resolutions.
@room->areaKey [G] The simplified name of the area which will consist of only alphanumeric characters and underscores. If you need to store a area identifier of compare against an explicit value then you should use this value. Example: esa_isle
@room->area [G] The name of the area as might be displayed to a player. Example: Esa Isle
@room->zoneId [G] The ID of the zone in which the room resides.
@room->zonePtr [G] A unique pointer to the zone data structure that can be used with zone specific resolutions.
@room->zone [G] The name of the zone as shown when a zone resets or is loaded.

Variables
You can use these fields to retrieve and set entity, player, and saved variables for the room.
@room->evars->varName [G,S] Sets or retrieves the value for the room's entity variable name "varName".
@room->pvars->varName [G,S] Sets or retrieves the value for the room's player variable name "varName".
@room->svars->varName [G,S] Sets or retrieves the value for the room's saved variable name "varName".

Exits
You can use these fields to retrieve and set exits for the room. Assigning a room pointer or ID to an exit field will cause the room to re-link that exit to the assigned room.
@room->exits [G] Returns an array of exits indexed by the associated cardinal direction's name. The following indexes may be set:

north, south, east, west, up, down.
@room->exits->north [G] Returns a pointer to the exit leading north; otherwise null.
@room->exits->east [G] Returns a pointer to the exit leading east; otherwise null.
@room->exits->south [G] Returns a pointer to the exit leading south; otherwise null.
@room->exits->west [G] Returns a pointer to the exit leading west; otherwise null.
@room->exits->up [G] Returns a pointer to the exit leading up; otherwise null.
@room->exits->down [G] Returns a pointer to the exit leading down; otherwise null.

Mobiles
Fields for retrieving information about any mobiles in the room.
@room->mobiles [G] Returns an array of mobile pointers currently in the room. Entries are indexed sequentially from 1 onward.
@room->mobiles->total [G] Returns the number of mobiles in the room.
@room->mobiles->count [G] An alias for @room->mobiles->total
@room->mobiles->first [G,S] Returns a pointer to the first mobile in the room. If assigned a pointer to a mobile then the mobile is moved to the first position in the room.
@room->mobiles->last [G,S] Returns a pointer to the last mobile in the room. If assigned a pointer to a mobile then the mobile is moved to the last position in the room.
@room->mobiles->head [G] An alias for @room->mobiles->first
@room->mobiles->tail [G] An alias for @room->mobiles->last

Mobiles (PC)
Fields for retrieving information about any PCs in the room.
@room->pcs [G] Returns an array of PC pointers currently in the room. Entries are indexed sequentially from 1 onward.
@room->pcs->total [G] Returns the number of PCs in the room.
@room->pcs->count [G] An alias for @room->pcs->total
@room->pcs->first [G] Returns a pointer to the first PC in the room.
@room->pcs->last [G] Returns a pointer to the last PC in the room.
@room->pcs->head [G] An alias for @room->pcs->first
@room->pcs->tail [G] An alias for @room->pcs->last

Mobiles (NPC)
Fields for retrieving information about any NPCs in the room.
@room->npcs [G] Returns an array of NPC pointers currently in the room. Entries are indexed sequentially from 1 onward.
@room->npcs->total [G] Returns the number of NPCs in the room.
@room->npcs->count [G] An alias for @room->npcs->total
@room->npcs->first [G] Returns a pointer to the first NPC in the room.
@room->npcs->last [G] Returns a pointer to the last NPC in the room.
@room->npcs->head [G] An alias for @room->npcs->first
@room->npcs->tail [G] An alias for @room->npcs->last

Items
Fields for retrieving information about any items in the room.
@room->items [G] Returns an array of item pointers currently in the room. Entries are indexed sequentially from 1 onward.
@room->items->total [G] Returns the number of items in the room.
@room->items->count [G] An alias for @room->items->total
@room->items->first [G,S] Returns a pointer to the first item in the room. If assigned a pointer to an item then the item is moved to the first position in the room.
@room->items->last [G,S] Returns a pointer to the last item in the room. If assigned a pointer to an item then the item is moved to the last position in the room.
@room->items->head [G] Alias for @room->items->first
@room->items->tail [G] Alias for @room->items->last

Items (deprecated aliases)
Fields for retrieving information about any items in the room. This style is deprecated since the term "object" can be confused with object oriented programming terminology.
@room->objects [G] DEPRECATED. Alias for @room->items
@room->objects->total [G] DEPRECATED. Alias for @room->items->total
@room->objects->count [G] DEPRECATED. Alias for @room->items->count
@room->objects->first [G] DEPRECATED. Alias for @room->items->first
@room->objects->last [G] DEPRECATED. Alias for @room->items->last
@room->objects->head [G] DEPRECATED. Alias for @room->items->head
@room->objects->tail [G] DEPRECATED. Alias for @room->items->tail

Inventory (mobiles and objects)
These fields are used to retrieve the room's contents with respect to mobiles and objects. Using these fields for retrieval provides an aggregation of the mobiles and objects found in the room with mobiles taking precedence in any returned results. Additionally, using these meta fields allows indiscriminate movement of items and mobiles into the room.
@room->inventory [G] Returns an aggregate array of mobile and item pointers currently in the room. Entries are indexed sequentially from 1 onward. mobiles are listed first.
@room->inventory->total [G] Returns the combined total number of mobiles and items in the room.
@room->inventory->count [G] An alias for @room->inventory->total
@room->inventory->first [G,S] Returns the first mobile in the room, or if there are none, then the first object. If assigned a pointer to a mobile then the mobile is moved to the first mobile position in the room. If assigned a pointer to an item then the item is moved to the first item position in the room.
@room->inventory->last [G,S] Returns the last object in the room, or if there are none, then the last mobile. If assigned a pointer to a mobile then the mobile is moved to the last mobile position in the room. If assigned a pointer to an item then the item is moved to the last item position in the room.
@room->inventory->head [G] Alias for @room->inventory->first
@room->inventory->tail [G] Alias for @room->inventory->last

Inventory (mobiles and objects -- short alias)
Exactly the same as the inventory field counterparts except less typing is involved :)
@room->inv [G] Alias for @room->inventory
@room->inv->total [G] An alias for @room->inventory->total
@room->inv->count [G] An alias for @room->inventory->count
@room->inv->first [G] Alias for @room->inventory->first
@room->inv->last [G] Alias for @room->inventory->last
@room->inv->head [G] Alias for @room->inventory->head
@room->inv->tail [G] Alias for @room->inventory->tail
Flags
Flags are boolean values that enable or disable features for the room. To set a flag you can assign the value 1, to disable a flag you can assign the value 0.
@room->flags->isDark [G] Whether or not the room is dark.
@room->flags->isLight [G] Whether or not the room is light.
@room->flags->isDeathtrap [G,S] Deathtrap status.
@room->flags->isNoMobs [G,S] No mobiles allowed status.
@room->flags->isInside [G,S] Inside status (eg. not outside).
@room->flags->isIndoors [G,S] Alias for @room->flags->isInside
@room->flags->isNoAggro [G,S] No aggression status.
@room->flags->isGladiator [G,S] Gladiator combat status. When enabled deaths in the room will be treated as gladiatorial deaths.
@room->flags->isFreeDeath [G,S] Free death status. When enabled deaths in the room will not generate the usual penalty of exp loss and corpse creation.
@room->flags->isNoMagic [G,S] No magic status.
@room->flags->isTunnel [G,S] Room is a tunnel status.
@room->flags->isPrivate [G,S] Private status. When enabled only two players may be in the room at once (immortals are immune to this check).
@room->flags->isNoSummon [G,S] No summon status. When enabled mobiles cannot be summoned to the room. Additionally mobiles cannot gate out of the room.
@room->flags->isNoTeleport [G] No teleport status. When enabled mobiles cannot teleport into this room.
@room->flags->isNoNegativeAffects [G,S] No negative affects flag. When enabled negative affects in the room will expire prematurely.
@room->flags->isShop [G] Shop status. Set at load time if a shop corresponds to the room.
@room->flags->isLawful [G,S] NOT CURRENTLY SUPPORTED.
@room->flags->isNeutral [G,S] NOT CURRENTLY SUPPORTED.
@room->flags->isChaotic [G,S] NOT CURRENTLY SUPPORTED.