279 Release Notes
- Fixed: there was a bug in the file unzipper that could have been
responsible for chopping off characters from the beginnings of filenames
and also for unpredictable crashes. That would explain several strange reports.
- Fixed: the URL history was broken, incorrect showing "host" as the name of
all worlds running under the host server.
- Fixed: there was an occassional crash upon logout.
- Added a variable called parent_type. This is assigned at compile-time to
allow you to make the parent type of an object something other than the
default. All object types are now derived from a common ancestor:
datum //base type for all data objects
atom //mapable objects
parent_type = /datum
movable //base type for all movable objects
area
parent_type = /atom
turf
parent_type = /atom
obj
parent_type = /atom/movable
mob
parent_type = /atom/movable
One nice consequence of this is that you can define new variables or
procedures that are inherited by all of the atomic types. In many cases, it
also allows you to easily avoid using the ':' operator so you get better
compile-time error checking.
Example:
atom
proc/Block(bumper) //define a new Bump() reaction proc
bumper << "You bump into [src]."
movable
Bump(atom/block)
block.Block(src)
One note: currently the special types /list, /savefile,
/world, and /client are not currently derived from /datum, as you might
expect. They will be in the future