home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-387-Vol-3of3.iso
/
t
/
toaster.zip
/
Compat
/
DONE-DR
< prev
next >
Wrap
Text File
|
1992-01-04
|
11KB
|
278 lines
This is the changes log for LPMud 3.0-DR. I strongly suggest that
you read the DONE file, located in the same directory, for changes
to the base verison of LPMud 3.0, as this file is -DR specific.
Fixes in 3.0.26-DR
Please read the DONE file for changes that are for 3.0.26.
Fix a major memory leak with the F_ADD instruction.
Fixed a small bug, which would make this_verb() return
and incorrect value.
Fixes in 3.0.28-DR to 3.0.30-DR
Read the DONE file for new features to 3.0.28 to 3.0.30.
Fixed, or reprogrammed, the shadow implementation to be much
more stable. There was a bug that could potentially crash
the game, if you shadowed something with an shadow that defined
an init(). This has not been fully tested as "safe", so if you
are weary of crashing your mud, don't use shadows with inits().
Added portability for a NeXT. Please read the Makefile for
more information on how to configure it to these machines.
Fixed a memory leak in ed, which now makes 'x' free it's buffer.
Fixes in 3.0.31-DR to 3.0.33-DR
Please read the DONE file for changes from 3.0.31 to 3.0.33.
Fixed the search command in ed, to start on the next (or previous)
line.
Restricted shadow, such that shadowing objects cannot be moved,
and an object cannot shadow if it has an environment. Shadows
are destructed when the object they are shadowing is destructed,
so there no potential memory leak here.
Fixed a bug with shadowing, which caused the player to get no output
if the player.c object has a catch_tell defined, and they were being
shadowed. Also, catch_tell is now called on player.c with all
messages but the notify_fail strings.
added deletea(array, index[, endindex]) to delete element
index, or if endindex is given, the range of elements index
thru endindex, from array.
Fully overloaded - on arrays (-= also works). If you do
array - anytype
it removes the first occurance of anytype from array. If 'anytype'
is an array, it removes the first occurance of each element of anytype
from array, and returns the resultant array. Please note: the
elements MUST be identical, in that they must be the same number,
object, string, or vector. The expression:
({ ({1, 2, 3}) }) - ({ ({1, 2, 3}) })
although the first element of each outer array (which is the array
({1, 2, 3}) ) are arrays of the same size and elements, these are
NOT the same arrays, and the result of the above subtraction would
be
({ ({1, 2, 3}) })
(the elements would have to point to the same physical array
for these to be equal)
Fixes in version 3.0.34-DR
Please read the DONE file for version 34 changes.
Fixed an annoying bug that disabled write() during login. However,
this "fix" encompassed taking out the calls to catch_tell on player
objects. I am working on a more elegant solution.
Fixes to version 3.0.37-DR
Please read the DONE file for versions 35-37 changes.
Many bugs related to not running in compatibility mode
have been fixed. Soon, when I get the chance to check
out the new fixes, functions will be able to return
dual types, instead of only one type (one of those types
being TYPE_ANY). This will allow things like:
int i;
i = extract(blah, blah);
to be flagged as an error. This, now, is not an error, I think,
since the return type of extract() is TYPE_ANY. (this is only
an issue with type-checking)
Ed has been made 'snoopable', by outputting lines instead of
characters at a time.
reset() has deviated from Lars' reset scheme slightly. If
an object is past due for a reset, and is referenced, then
it will reset immediately, instead of the next "reset cycle".
Also, if it's not past due, it will reset next reset, like
normal.
Fixes to version 3.0.37-DR and 3.0.39-DR
Please read the DONE file for changes in version 37 and 39.
The typing system has been totally recoded, to allow for multiple
return types from efuns. This, unfortunately, has made it so that
I get to rewrite lars' make_efun.y to reflect these changes, and
as a result, I haven't incorporated that new feature into the source
distribution. He basically took my idea with the efuns.i file, and
made a readable way to generate that file. I don't know if I will
add this to the source or not, as I am still debating that.
Fixed a bug in +=, which would crash the game if yo uadded a
string to a number (number += string).
Fixed a bug with error(), which could potentially crash the
game.
Added #define's for the full message, the prompt, and for if
find_living can return non-idable objects.
Fixed some potential too-long evals associated with the reset scheme.
Fixes to version 3.0.39-DR and 3.0.41-DR
Please read the DONE file for changes in version 40 and 41.
Fixed a potential bug with return 0 from verbs, that could crash the game.
Fixes to version 3.0.41-DR-1.1
Reluctantly took out the new type checking system until I can get
the time to look at it to fix a bug. Please read the DONE file for
information on the varargs qualifier, as well as how types are checked
on EVERY argument to an efun, now. The type checking is identical to
Lars' 3.0. I also fixed some problems with return types of efuns.
This version will compile lars mudlib.n, if you change all the
read_file calls to
implode(grab_file(filename), "\n")
You can put the following macro at the top of any file that has read_file:
#define read_file(x) implode(grab_file(x), "\n")
and it will compile fine.
Fixes to version 3.0.42-DR
Please read the DONE file for changes to version 42.
Fixed some portability bugs. This was mainly just moving header files
around... There are probably still some problems porting. This version
is known, by me, to port to a Sun3, a Sparc, and HPUX.
Created master.h, which defines mudlib paths pertaining to create_wizard,
and modified master.c accordingly.
Added back Lars' output buffering scheme. Hopefully it'll work this
time.
Fixes to version 3.0.43-DR and 3.0.44-DR
Please read the DONE file for changes to version 43 and 44.
Remember to move master.c into your object directory.
Fixed the ls / bug.
Fixed a bug with ed, which made / and ? skip the next line, and
started it's search two lines from the current one.
A switch statement has been implemented, which is identical to the
C switch statement. However, if you have variables named 'switch',
'case', or 'default', you'll get syntax errors. Also, don't 'return'
from a switch case. It'll crash the game. (hopefully this'll be
fixed soon).
Fixes to version 3.0.45-DR
Please read the DONE file for changes to version 45
Fixed a small bug that could crash the game, if you got a
compiler error that is longer than 100 bytes long.
Fixed a bug with swapping, which wouldn't swap out argument type
information.
MAJOR Change to shadow implementation. shadow(arg, 1) now returns
arg, instead of the topmost shadow of arg. Also, set_shadowing_object
is no longer called,since it is not needed anymore. (set_shadowing_object
was used to set a shadow's pointer to the object it's shadowing.)
Added Lars' read_file. In compatiblity mode, read_file works as expected,
if called like the "old" way of calling read_file; i.e.
read_file("blah", 1);
would read the first line of blah. However, in non-compatibility mode,
read_file("blah", 1);
works as Lars' read_file would behave, that is, read from the first line
of the file to the end of the file. Also, in EITHER mode, if you do
read_file("blah");
it will read the entire file in as a string, and return that to you, and
if you do
read_file("blah", start, len);
it will read from start, reading len lines, and return a string of all
lines read in.
Also, grab_file now takes a start and len argument, to be the starting
line to read, and how many to read.
This version does NOT have lars' new call_out()/this_player() feature.
I will add this with the next version, for use with non-compatibility
mode.
Fixes in version 46-DR to 49-DR
Fixed a bug with get_attribute, which made it always look at this_object().
Added Lars' call_out/this_player feature for non compatibility mode.
Fixed a few potential memory leaks in array.c, which could occur if
the returned array was 0 length (local buffers weren't being freed).
Fixed a bug in make_func.y which would cause it to crash. Also, there
is still a minor bug, which makes the order you give argument types
(if an argument can be more than one type) order dependent (this is
for func_spec.c).
combine_free_list has been removed, unless you are using Lars' malloc
package. Some people might have old code in their church using this
functions...
I've kept the -DR ls() efun, instead of making it a simulated efun,
since the simul efun I created to simulate my ls was too slow.
However, I've put a copy of it in mudlib_simul_efun.c (it probably
needs a bit of work to get paths right, etc...) if you wish to use
it.
shutdown() can only be called from master.c. I have provided a function
shut_down_game() in master.c which calls shutdown(). This is to
protect anyone from being able to call shutdown() themselves and
shutting the game down. (we had this happen accidentally on DR).
You'll probably want to test previous_object() for whatever object
you have authorized to call shutdown, inside shut_down_game(), to
make sure it's being called correctly.
Fixes in version 51
Added a function to master.c, valid_shout, which will return true if
the object sent is able to receive a shout. I did this to further
detach the parser from the mudlib (it used to call query_muffled on
the object, not it gets master.c to do it, to make it more user
definable).
Fixed a bug in the new say(), which could crash the game.
Moved possessive(), objective(), and subjective() to simul_efun.c.
Remember to move the new mudlib_simul_efun.c into your obj directory
if you use these functions...
Fixes in version 52
There are none. Version 52 is version 51 with the say() bug fixed.
Sort of silly to release a new version if you ask me...