Dead Souls 2.9a13 is out. Nothing earth-shattering,
but it includes some stuff people requested recently,
and implements persistent rooms, which is something I've
been meaning to do for a while.
Some of the highlights:
*
reprompt: This enables a feature that redraws your
prompt whenever you receive a message. I actually did
not understand this request very well at first, because
I use a mud client that separates input and output.
However, for "single-pane" clients (for example if you're
using the default telnet on your OS), this feature is now
available if that behavior is your preference. Note that
if you have a typical mud client with separate input and
output areas, enabling this will probably make things
look pretty ugly.
*
charmode: This is highly experimental and remains
somewhat buggy, and is *not* supported on Windows muds.
Having said that, it's kind of neat and I'll be continuing
to work on it. What this does is switch your input mode
from a line-by-line mode to a keypress-by-keypress mode.
Obviously this is not meant to work well with most
mud clients. This is really for people with single-pane
clients. It allows for "reprompt mode" to not only redraw
the prompt when you receive a message, but also redraw
whatever your incompletely-typed command was, if there
was one. It also allows for up/down-arrow history recall,
and for tabbed command completion.
Note that because it can still sometimes crap out (especially
after a warmboot), charmode is automatically disabled for
you every time you log on. This means if you get stuck
in a charmode bug, you can just relog and be in line mode.
So if you like it, you'll need to type: "charmode on"
every time you log in. Sry. Safety first. And remember, if
you have a typical mud client, this is totally useless to you.
*
room persistence: I implemented a very basic kind of room
persistence. See /domains/town/room/secret.c for an example.
You add SetPersist(1); in create() and RestoreObject(); after
it, in the manner shown in that example. The room will then
automatically save its inventory into its domain's save/
subdirectory, so that you can drop your favorite weapon
there, reboot, and when you come back it'll be there waiting
for you (assuming nobody stoled it).
Note that this is not "world persistence". That would
involve all sorts of very careful planning about things like
economies and gold sinks and NPC generation and so forth that
I'm just not inclined to do. However, if *you* want to do
that sort of thinking, it's not hard to set up a persistent
area/mud now.
*
object persistence: I figured I'd try to take the persistence
thing a step further and see about adding it to objects too.
It works but be strongly warned that this is not intended to
be used widely. Any non-room container set to have persistent
inventory should be unique. I actually prefer people not use
them unless they really really have a need, because they
behave oddly and the behavior can be misinterpreted as bugs...
suffice it to say that such objects react poorly to QCS commands.
See /domains/town/obj/charity.c for an example. Please make
sure you understand what it's doing before you report any bugs on it.
*
keepalive: I added an efun coded by Raudhrskal that sends
a null byte to your client. This is now integrated into the "keepalive"
command which can set a heartbeat-based interval for how
often this invisible signal is sent to your client. This can help
keep your idle connection up if you have an ISP or modem that
has an inactivity timeout.
*
miscellaneous fixes and requests: See the release notes
for other details:
http://dead-souls.net/RELEASE_NOTESThat's it for now....it was a fun release. I got to write
my very first efuns! Of course, this means that you can't
really take advantage of stuff like charmode and invisible keepalives
unless you use the new driver included in the bundle (FluffOS 2.14-ds14).
So for those two things, a liveupgrade won't suffice. You'll
need to download the bundle and install the new driver. Persistence
and reprompt mode are both in the lib, though. No need to do
a driver upgrade for them.
There's not much new in this release regarding grid stuff.
Maybe next release

As usual, let me know what I broke:
http://dead-souls.net/code/alpha/-Crat