UOAM:houses

Houses and UOAM

Beginning with version 5.0, mapping player structures is now supported by UOAM. Version 5.1 extends that support by providing support for automatically displaying nearby houses and logging them to a file. Unfortunately, there are technical reasons that prevent UOAM from supporting houses in quite as seamless a manner as I would like. The purpose of this document is to describe what my goals were with respect to player housing and how those goals have been achieved. Here you will also find step-by-step instructions for placing a house in UOAM.

The Goals

In an ideal world, I would love for UOAM to be able to display every single house located on your shard. Unfortunately, that is just not possible. The house locations are stored on OSI's servers and they are only sent to the client on an as-needed basis. That is why when you bring up UO's radar map houses seem to pop in to view as you approach them. Even showing just the houses in your general vicinity is difficult. To do this without help from UOAssist, I would have to re-write UOAM to intercept those messages from the server and decipher them. This is a huge task (just ask Tug, author of UO Assist) and it would require that I update my program every time OSI changed their data stream format (which is frequent). Even with help from UOAssist, the most I can learn from this is which houses are near to your character.

So clearly some sort of compromise was called for.

This is where Tug stepped in. Shortly after I released version 5.0, Tug and I put our heads together in order to come up with a way for UOAM to automatically display houses. By working together, over the course of a few intense days, we were able to enhance both UOA and UOAM to enable UOAM to duplicate the functionality of UO's in-game radar map.

Once that was achieved, it was a relatively logical step to take it one further and come up with a mechanism that would allow you to automatically save those houses to a .MAP file.

Back in version 5.0, my original goal was to give players an easy way to mark houses on their map themselves. I wanted marked houses to look as similar as possible to houses displayed in UO's radar map. And I wanted the implementation to be extensible enough to adapt to new house designs. (Interestingly enough, I began thinking about this idea BEFORE the new house styles for UO Reneisance were announced.)

Most importantly, I wanted a way for player communities to map out their neighborhoods and have the resulting maps be both attractive and useful. I found it very unsatisfying to load a .MAP file for a community like the City of Destiny (LS) and find myself staring at an empty field full of pins.

Now, thanks to help from Tug, we can go even farther.

How it Works

If you aren't running UOAssist then you really should. You can get it from Tug's site at http://www.tugsoft.com. Those of you who are too cheap to pay for it will be happy to know that Tug and I made sure that this functionality would work even if UOAssist isn't registered. However, I really must add that UOAssist is worth every single penny of its small registration fee.

My solution to the housing problem is to allow categories to be assigned icons which can tilt and scale with the map. Houses can be stored in UOAM's .MAP files by creating a label and assigning it to the proper category. Create a category named "small house", assign a label to it and it will appear on your map as a small house.

Furthermore, by allowing cursors to be used interchangeably with icons (a simple matter in Windows), you can take advantage of the cursor's hot-spot to aid you in positioning the house's icon. My convention has been to locate the cursor's hot spot on the front steps directly in front of the door (the right door if there are two). That way, by standing on the house steps in the game, you can place the house right where you want it.

UOAM has built-in icons for all of the standard house types currently for sale in Britannia.

Step by Step Instructions for Placing a House

These instructions are mainly for those who aren't running UOAssist. If you're running UOAssist, it's easier to just turn house logging on. See the documentation for the UOAssist pane for details.

To do it by hand:

1. Create the Categories

To map houses in UOAM you first need to have categories for each of the house types that you want to map.

Go to the "Filters Pane" in the UOAM control panel (Ctrl-F will take you right to it).

Use the "Add" button to add categories for each of the basic house types: tent, small house, large house, patio house, two story house, tower, keep and castle.

Icons for the new houses introduced with UOR are also provided: marble shop, stone shop, small tower, log cabin, marble patio, and villa as well as Minax's fortress.

If you use the standard names listed above, UOAM will automatically assign them the proper icons. If you chose to go with different names, then you will need to use the "Choose Icon" button to browse to the proper icon and check the "Icon Tilts" checkbox yourself.

(Note that the auotmatic logging feature always uses the standard house category names.)

2. Stand in Front of the Door

Once you've got the categories entered in, then all you have to do is find a house to map.

Walk up to the house and stand directly in front of the door (the right door if there are two). Note that with some of the new house types you have to climb a ladder to reach the door.

3. Create a Label

Click on the UOAM map (to change the focus) and type Ctrl-N to create a new label right where you are standing.

You can give the label a name or you can leave it blank if you like. The important thing is that you want to make sure that it is assigned to the category that matches the type of house.

That's it. Now you will have a house on your map in EXACTLY the right spot. UOAM treats it just like any other label and so the house will be saved in your map files along with all your other labels.

Note: If you play on more than one shard, you will probably want to create a map file for each of them so that you can use the files to select which houses should be displayed otherwise you may end up with houses on your map that don't exist on the shard you're currently playing on.

Custom Houses

In March of 2003, custom houses were added to UO. These houses differ from the houses described above in that their design is almost completely open-ended. Their footprint can vary from 7x7 all the way up to 18x18. In addition, they can have almost any appearance.

UOAM supports custom housing in much the same way it supports traditional housing. Custom houses are assigned a category, just like traditional houses so most everything listed above also applies to custom houses, however there are a few subtle differences:

Because custom houses can have almost any appearance, UOAM only keeps track of the footprint of the house. Custom houses do not actually have an icon, instead they are drawn as a simple rectangular outline. Because custom houses can have the front door located nearly anywhere (or nowhere at all), they are always positioned about the center of the plot. (The stuff above about standing in front of the front door to place a house on UOAM's map doesn't apply to custom houses.)

Custom house categories are named like this: housewxd where w is the width of the house and d is the depth. So a house plot that is 11 units wide and 14 units deep is assigned a UOAM category that looks like this: house11x14

Supporting New House Designs

If OSI ever comes out with a new house type, you may want to create a new icon to match the new house.

See the section on Adding Icons to UOAM for details on how to add an icon. The only thing to watch out for when creating a house icon is that you will want to actually create a cursor (not an icon) so that you can position its hot-spot exactly on the front step.

Should OSI ever add new house types to the game, I will be more than happy to provide a set of icons to go with them.

See Also