home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Special: Spiele Hits
/
Hits-CD.iso
/
aminet
/
spiele
/
ammud1_1.lha
/
AmigaMUD
/
Doc
/
ChangesFromV1.0
< prev
next >
Wrap
Text File
|
1997-08-02
|
15KB
|
356 lines
general:
- removed builtin StringToInt, and renamed StringToPosInt as StringToInt
- added type "fixed", and builtins FixedToInt, IntToFixed, FixedToString
and StringToFixed
- cleaned up what happens when an IP connection is made to the server
machine, which starts up MUDBinary, but there is no MUDServ program
running there
- changed direct procs so that they allow any type of result
- added builtin StringToProc. It is the same as StringToAction, except
that the string parsed must be a full proc definition, starting
with 'proc', '(', any parameters, ')', result type, ':', any
local declarations, body, and 'corp'
- added builtin SymbolType
- changed around a lot of stuff dealing with tables and grammars, as
cached in the server
- changed how a lot of output is done. Many things will now be in a more
uniform, lower-case style.
- added builtins ZapAction, ZapGrammar, ZapTable and ZapCharacter
- fixed a hole where NukeCharacter could leave the character pointing
at deleted action functions (very unlikely in real use)
- increased the amount of automatic deletion of things that happens.
Thus, if the last reference to a thing is removed, then that thing
is cleared and deleted. This is turn can result in the last references
to other things, properties, lists, actions, etc. going away, which
triggers further clearing and deletion, etc. This pointed out some
bugs in the scenario, where it was deleting the last reference to
a thing, and then continuing to use it.
- added builtin ProcToString
- changed EditString so that it has a 3-value "mode" parameter instead
of the bool "raw" parameter.
- added a new message whereby the new name of a character is sent to the
client when a player does a name change. This allows the logs done by
the clients to use the updated name.
- switched to a full 4-digit year format for the log file and for the
builtin 'DateShort'. That ought to let us survive past 2000!
- added a 'cycles' parameter to 'SPlaySound' to say how many cycles of
the 8SVX sample to play. A value of 0 means "play forever", but can
be shut off by 'AbortEffect'. The repeating is done right in the
MUD client, so no delays between the cycles should be noticed.
- added the concept of sound effect id 0, which says that no notification
of the completion of the sound is sent to the server. Thus, that
id can be freely re-used.
- added the concept of effect id 0, which tells the client to not cache
the effect, and to delete it after it has been called. This is useful
for temporary, once-only effects.
- added builtin FindIntOnList.
- added the 'Punctuation' builtin
MUDServ:
- removed some redundant newlines in abort messages
- added some more general paranoia about sending to client ports
- cleaned up some wierd cases that could leave dangling values in
the database
- fixed a bug involving tables and grammars. If a newly created table
or grammar was given no entries in a run, then it was not properly
created (it's useCount was 1 too small), and could be randomly
deleted from the database, resulting in invalid database pointers.
- fixed the various "SetCharacterXXXAction" and "SetMachineXXXAction"
builtins to return nil if their decrementing of the usecount on
the old actions results in those actions being deleted.
- fixed a bug relating to one of the internal caches. This was resulting
in MUD-code aborts when killing monsters. Hopefully this didn't show
up in V1.0!
- fixed a bug in the printout of MUD code. In a situation like this:
x / (2 * (y + 1))
the outer parentheses were omitted.
- fixed two unlikely (but hit!) bugs that resulted in a corrupt database.
- fixed a bug relating to the buffer for "MeString". There were situations
in which a too-long machine name could be copied into the buffer,
stomping memory and causing later troubles. This didn't happen so
long as no machine name was longer than 19 characters, and so long
as any string passed to "SetMeString" was similarly limited.
- MUDServ will change directory to any directory specified via a 'PATH'
tooltype or command line argument. This allows a backup directory,
created via the 'backup' SysAdmin command, to be in the right place.
- increased the default database cache size from 50000 to 100000.
MUDAgent:
- added the INITSTRING tooltype.
SMUD:
- added some missing unlock calls when editing is failing in two
very unlikely circumstances
- fixed editing of strings so that '\' is properly escaped on output
- erase the prompt on exit if needed
MUD:
- the code was limiting a normal PAL screen to 227 lines, instead of 283.
Fixed, but untested since I don't have a true PAL system.
- cleanup of some of the early connect messages
- be more careful in copying some parameter strings into buffers.
- changed MUD to ignore the MUDLocal environment variable when using a
TCP/IP connection. This was a serious bug - it prevented a TCP/IP
connection from working if MUDLocal was not set to true.
- all outgoing messages were not being freed when TCP/IP is used. A major
memory leak! How did I miss this? Well, I have 14 Meg, so I need a
long session to notice it. In the direct connect case, the messages
are not freed, but are PutMsg'd directly to the server. In the
serial connect case, the messages are freed down in the guts of
the serial code, when the sent message has been acknowledged.
- fixed the editing code so that the 'raw' flag on EditString is not
ignored when using an external editor.
- fixed editing of strings so that '\' is properly escaped on output
- added the ability to use a high resolution display, with the graphics
window having twice as many lines and columns, and the text window
having twice as many lines. This is enabled by flag -h, or by
tooltype HIRES.
- in V36 and above of the AmigaOS, switched to the newlook (3D) window
style for the text window. Also disabled text window palette
changes. Does anybody use these, or can I just remove the whole
facility? Programming note: I am now using the newlook-3D scrollbar
in the text window.
- once in the past I had seen a small glitch appear on the original image
when in the old lores mode. I couldn't find a cause for it, and it
came and went seemingly at random. When I saw it again now, I chased
it down - I was freeing a temporary bitmap holding the graphics data
before the blitter had finished copying the data to the screen! Adding
a "WaitBlit" call fixed it. [Not long after fixing this, I deleted
that whole section of code because of new graphics stuff.]
- the simple terminal mode should now silently ignore ANSI control
sequences. The processing is very dumb - any ESCAPE character is
assumed to start such a sequence, and the character after it, followed
by any sequence of decimal digits and semicolons, and the single
character after them, are all silently discarded.
It might be nice if the terminal mode actually supported ANSI control
sequences, but that is a lot of effort and code, and would require
some signficant changes to the program's internal structure.
- a couple of hacks to make the history buffer a bit more accurate, with
respect to empty lines.
- added flag -o (tooltype ONESCREEN) to make MUD open only a single,
combined screen. This single screen is used for both text and graphics
output. To enable the proper colour use, this single screen is 6 bits
deep (64 colours). This mode may be needed with some graphics boards.
The hires flag can be used with onescreen mode. [The flag was later
changed to -1 instead of -o.]
- added flag -O (tooltype OLDSTYLE) to use the old style of screens, even
on the newer OS's. Mostly of use for my testing.
- added Workbench tool type FULLREDRAW in case there are problems with the
new code in some situations.
- now check for environment variables MUDHiRes, MUDOneScreen,
and MUDFullRedraw as well as MUDLocal. [MUDOneScreen is gone, replaced