273 Release Notes

Fixed: Dream Seeker was failing to close properly under Windows NT.
(Gabriel, Air Mapster)

Fixed: expansion lists were inadvertantly getting sorted alphabetically as
a side-effect of the prioritisation of compound matches. That no longer
happens. (Air Mapster)

Fixed: Roving keys were messing up the new friend list.
They should work now.

Fixed: in certain situations after reboot, the player's map was not
getting redrawn.

Fixed: The server was craching when doing icon arithmetic on a
missing cache item.

Fixed: In telnet mode, the verbs panel was showing up even when no visible
aliases were defined. Also, the standard script telnet.dms was getting
suppressed by the default script containing the player's preferences.
This caused certain settings (like the automatic password-mode) to not work
properly.

Fixed: Overlays were not synchronized correctly during a flick() of the
icon state. (ebonshadow)

Fixed: stat panel output was not updating when the stat value changed from
a text string to the number 0. (Erocl)

Fixed: missile() was not visible to players with an eye in the neighborhood but
a mob elsewhere. (Gazoot)

For small maps (X by Y less than 22x22) lazy_eye mode is automatically
applied, but this was overriding the programmer's ability to set
client.eye. Setting client.eye will now automatically override the
automatic lazy_eye behavior. (Gazoot)

Dream Maker now automatically opens the "New Code File..." option when you
create a new environment. (Spuzzum, Deadron)

The prompt() instruction is being replaced by input(). It is the same
thing but the order of the arguments is consistent with alert(). The dialogs have
also been changed to reflect this (with the old "help" text-- now the first argument
to input()-- being displayed prominently at the top).

mob/verb/change_name()
usr.name = input("Enter your new name.","New Name",usr.name)
Keep in mind that you can spread the arguments out onto separate lines:
input(
"Please select the name of the picky person who did not like \
the prompt() instruction being inconsistent with alert().",
"Picky Person",
"Tom") in list("Dan","Tom")

When you do prompt() as null... the extra button on the dialog will now
be a "Cancel" button (it used to be called "None" to be consistent with the
equivalent situation with verbs). This appears to be what people want, but
if this isn't the case, we can go back to the old name. It's just a name change!

The pager now allows you to ban keys. If you ban a key, the owner will not
be able to see or page you, and you may not see or page him.

You can also now view non-friends who have you in their friends list (and are
thus viewing your location). These are known as "lurkers", although they are probably
just people who you simply haven't gotten around to acknowledging!

When your friends or "lurkers" come online, you will now be notified in the status
bar.

When the source of a proc is deleted, that proc will now return
immediately. Previously, it would return without executing any more code in
the proc, but if the proc was sleeping (waiting for sleep(), prompt() or
whatever), this would only happen after the sleeping operation completed.

When a call to prompt() gets canceled by the server (by deleting a proc
source object as mentioned above), this now causes the prompt box to
dissappear on the client. Eventually, I would like to add a more direct
mechanism for setting the prompt() timeout, but this one works pretty well.
It's also a good general method for canceling sleeping operations: create an
object to do the sub-process and delete that object if you want to cancel
the operation. (Air Mapster)

When matching compound words, the DS command parser now prioritises the
possible matches better. For example, when matching "sword", it picks an
item called "sword" before an item called "bastard sword", assuming that the
user would have been more specific if the second item were desired. When
the items have the same priority based on that rule, it still ranks them by
proximity to the player: an item in the player's inventory has higher
priority than an item on the ground. The same rule applies to verbs, with
the distance measured from the player to the source of the verb.
(Air Mapster)

Reinstituted the "last URL" memory, which acts as the default destination
at the URL prompt. It is now saved as a config item, rather than inside the
key. That makes it slightly less useful when you have multiple keys, but it
means we almost never have to write to the key file, since the friend list
and client-side savefile are no longer saved there.

The bookmarking and history systems on the client now display the world name
by default. You can edit this by doing "Edit Worlds...". You can also use
"Add World" to bookmark the current world.

The Worlds menu also has an option to display hubfiles, which, if you'll recall
are turn-based games not requiring users to be simultaneously connected. We'll have
to send you some to get you started!

String concatenation (with the + operator) is now performed at compile
time when possible. That means you can use expressions such as "this" +
"that" where a constant expression is required.

DM Script now provides two variables, command_text and command_prompt,
which have the same effect as the corresponding client object variables in
DM. This is primarily of use in telnet mode. The default telnet.dms script
defines a hidden alias ">" and sets command_text = "> ". This alias simply
quotes the user's input so it gets sent verbatim to the server by default.
Other aliases can be accessed by hitting '/' or backspace.

IRC mode no longer displays the USER command after setting the NICK. It
just submits the USER identification automatically like most IRC clients,
but it uses the BYOND key as the identifier.