@prog cspace-return.muf 1 999 d 1 i : Valloc dup 0 > if 1 -1 for depth -1 * rotate loop else pop then ; : Vdealloc dup 0 > if 1 -1 for pop depth rotate pop loop else pop then ; : V nop ; : V@ depth swap - 1 - pick ; : V! depth swap - 2 - put ; : cspace-parent 0 V ; (cyberspace parent room dbref) : cspace-holder 1 V ; (cyberspace holder room dbref) : NV 2 ; : say me @ swap notify ; : abort 0 sleep daemon kill ; : chkdbref dup #0 dbcmp if "Improper setup!" say abort then ; : maybe-stack-thing (list list-# thing) dup player? if exit then dup owner location location cspace-parent V@ dbcmp if exit then swap 1 + over ; : maybe-stack-prop (list list-# dbref travobj prop) dup atoi intostr "-owner" strcat over strcmp if exit then dup atoi dbref dup ok? if location 4 pick dbcmp if exit then else pop then dup 5 rotate 1 + 5 2 roll ; : main NV Valloc prog ".parent" getpropstr atoi dbref chkdbref cspace-parent V! prog ".holder" getpropstr atoi dbref chkdbref cspace-holder V! 0 cspace-holder V@ contents begin dup while maybe-stack-thing next loop pop cspace-holder V@ exits begin dup while maybe-stack-thing next loop pop begin dup 0 > while 1 - swap dup me @ unparse_object " -> " strcat over owner swap over me @ unparse_object strcat say moveto loop pop 0 cspace-holder V@ dup propfirst begin while maybe-stack-prop pop propnext loop pop begin dup 0 > while 1 - swap cspace-holder V@ swap remove_prop loop pop NV Vdealloc ; . c q