[DGD]upgrading old clones

Geir Harald Hansen geirhans at ifi.uio.no
Sun Jul 4 15:46:15 CEST 1999


I just had an idea, and it is not well thought through yet, but I thought
I'd throw it in here and we'll find out whether it is good or not. ;)

I think sometimes a kfun to upgrade clones of an old issue may be useful.
It need only work when there is a newer issue whose master object is
not destructed.  The older issue may not have any inheriting dependents,
but has at least one cloned dependent, of course, or it would not exist.

   object upgrade_clones(int issue_id)

This function would upgrade all clones with that issue ID to the newest
issue, adding to its number of clones.  It returns the new master object
issue of the clones, which already exists before this function call, or nil
if it fails somehow.  When this call succeeds, the old issue is removed.
Hmm, maybe it would be better to return the number of clones upgraded.

This could be useful if you have two issues and want to join them together.
Say you destructed a sword master object which has 100 clones scattered around
the MUD.  Now you cannot change the existing swords, without replacing all
of them with new clones, which would be a pain, even impossible if the
object has internal state you cannot query.  A function to upgrade old clones
would be helpful in such cases.

You could say, doing such a thing is stupid.  But imagine a wiz coming
from another mud, where they are used to "destruct and compile".
"Nooo!  What have you done?"  Also, it gives you more freedom working
with the objects and makes for a more complete system for upgrading.
If you keep inheritables and non-inheritables separate, as in the kernel
library, clones of old issues are the only things you cannot upgrade.
With a kfun like this, you could upgrade anything.

Geir Harald Hansen, geirhans at ifi.uio.no

List config page:  http://list.imaginary.com/mailman/listinfo/dgd



More information about the DGD mailing list