Virtuelle Environments abfragen.
AllVirtualEnvironments() zum Abfragen der virtuellen
Environments von virtuellen Items. Funktioniert
aequivalent zur efun all_environment().
Das erste Environment ist der Erzeuger des vItems, gefolgt
dann von entweder den weiteren virtuellen Environments oder
der richtigen Environments.
Change-Id: Ieaabf0edc108542b3f4a38881048ef2056954736
diff --git a/obj/vitem_shadow.c b/obj/vitem_shadow.c
index 6599288..fcb8e2d 100644
--- a/obj/vitem_shadow.c
+++ b/obj/vitem_shadow.c
@@ -19,9 +19,11 @@
// Zielobjekt beschattet.
mapping props;
+object cloner;
protected void create()
{
+ cloner=previous_object();
set_next_reset(7200);
}
@@ -341,4 +343,16 @@
return ::locate_objects(complex_desc, info);
}
+public object *AllVirtualEnvironments()
+{
+ if (cloner)
+ {
+ object *cloner_envs = all_environment(cloner)
+ || cloner->AllVirtualEnvironments();
+ if (cloner_envs)
+ return ({cloner}) + cloner_envs;
+ return ({cloner});
+ }
+ return 0;
+}