ldmud-3.2.9/doc/
ldmud-3.2.9/doc/efun/
ldmud-3.2.9/mud/
ldmud-3.2.9/mud/heaven7/
ldmud-3.2.9/mud/heaven7/lib/
ldmud-3.2.9/mud/lp-245/
ldmud-3.2.9/mud/lp-245/banish/
ldmud-3.2.9/mud/lp-245/doc/
ldmud-3.2.9/mud/lp-245/doc/examples/
ldmud-3.2.9/mud/lp-245/doc/sefun/
ldmud-3.2.9/mud/lp-245/log/
ldmud-3.2.9/mud/lp-245/obj/Go/
ldmud-3.2.9/mud/lp-245/players/lars/
ldmud-3.2.9/mud/lp-245/room/death/
ldmud-3.2.9/mud/lp-245/room/maze1/
ldmud-3.2.9/mud/lp-245/room/sub/
ldmud-3.2.9/mud/lp-245/secure/
ldmud-3.2.9/mud/morgengrauen/
ldmud-3.2.9/mud/morgengrauen/lib/
ldmud-3.2.9/mud/sticklib/
ldmud-3.2.9/mud/sticklib/src/
ldmud-3.2.9/mudlib/uni-crasher/
ldmud-3.2.9/pkg/
ldmud-3.2.9/pkg/debugger/
ldmud-3.2.9/pkg/diff/
ldmud-3.2.9/pkg/misc/
ldmud-3.2.9/src/autoconf/
ldmud-3.2.9/src/bugs/
ldmud-3.2.9/src/bugs/MudCompress/
ldmud-3.2.9/src/bugs/b-020916-files/
ldmud-3.2.9/src/bugs/doomdark/
ldmud-3.2.9/src/bugs/ferrycode/ferry/
ldmud-3.2.9/src/bugs/ferrycode/obj/
ldmud-3.2.9/src/bugs/psql/
ldmud-3.2.9/src/done/
ldmud-3.2.9/src/done/order_alist/
ldmud-3.2.9/src/done/order_alist/obj/
ldmud-3.2.9/src/done/order_alist/room/
ldmud-3.2.9/src/gcc/
ldmud-3.2.9/src/gcc/2.7.0/
ldmud-3.2.9/src/gcc/2.7.1/
ldmud-3.2.9/src/hosts/
ldmud-3.2.9/src/hosts/GnuWin32/
ldmud-3.2.9/src/hosts/amiga/NetIncl/
ldmud-3.2.9/src/hosts/amiga/NetIncl/netinet/
ldmud-3.2.9/src/hosts/amiga/NetIncl/sys/
ldmud-3.2.9/src/hosts/i386/
ldmud-3.2.9/src/hosts/msdos/byacc/
ldmud-3.2.9/src/hosts/msdos/doc/
ldmud-3.2.9/src/hosts/os2/
ldmud-3.2.9/src/hosts/win32/
ldmud-3.2.9/src/util/
ldmud-3.2.9/src/util/erq/
ldmud-3.2.9/src/util/indent/hosts/next/
ldmud-3.2.9/src/util/xerq/
ldmud-3.2.9/src/util/xerq/lpc/
ldmud-3.2.9/src/util/xerq/lpc/www/
Short: Efun copy_object()
Date: Mon, 29 Oct 2001 11:44:36 +0100 (MET)
From: Erik Meusel <emeusel@mail.CS.Uni-Magdeburg.De>
Type: Feature
State: new

sag mal, wie waere es mit einer Efun der Art object copy_object(object ob)?
Hier kurz ein Umriss, was die machen soll und wozu sie mE sinnvoll waere:

Sie kopiert ein Objekt _komplett_ (vorzugsweise natuerlich nur Clones) und
legt einen neuen Clone an, der in den gleichen Zustand versetzt wird wie
das Quellobjekt. D.h. Variableninhalte, Symbolreferenzen, laufende
call_out()s usw. usf. werden uebernommen.

Sinn der Sache waere u.a. eine dramatische Vereinfachung des 
Renew-Vorganges, den viele Mudlibs implementiert haben, der jetzt noch auf
dem Kopieren von Properties beruht und bei jeder Aenderung der Mudlib auf
dem neuesten Stand gehalten werden muss. Ausserdem kann eine solche
"Stueck-fuer-Stueck"-Kopie natuerlich nie komplett sein, private
und statische Variablen des Quellobjektes kann man ja nicht auslesen.

Vielleicht in Verbindung mit einer Applied-Funktion copy(object ob) oder
so, damit komplexere Objekte die Moeglichkeit haben, sich ueber Dinge
hinaus kopieren koennen, die Du von Driverseite sehen kannst, zB
koennte dann ein Raum, der einen NPC beinhaltet, sich komplett kopieren,
also auch eine eigene Kopie des Ursprungs-NPC herstellen und
hineinstellen.

Wichtig dafuer waeren vielleicht auch aus C++ bekannte Friend-Mechanismen
(zumindest die automatischen fuer Instanzen der gleichen Klasse). Naja.
Nur so als Anregung. Schreib mal Deine Meinung dazu, wenn Du magst. 

-----

How to handle inventories and changed programs?

The copy() apply could be done via a simul_efun overloading this efun.