inherit "/std/object"; void create() { ::create(); add_property("writeable", 1); add_property("label", 1); } /* create() */ void init() { ::init(); this_player()->add_command("stick", this_object(), "%D %p %I"); } /* init() */ int do_stick(object *obs) { obs = obs - ({ this_object() }); if (!sizeof(obs)) return 0; obs[0]->add_label(this_object()); if (environment() != obs[0] && move(obs[0])) { write("Move failed.\n"); obs[0]->remove_label(this_object()); return 0; } this_player()->add_succeeded(obs[0]); return 1; } /* do_stick() */ int move(object ob, string s1, string s2) { object env; int i; env = environment(); i = (int)::move(ob, s1, s2); if (!i && env) env->remove_label(this_object()); return i; } /* move() */ mixed query_static_auto_load() { if (file_name(this_object())[0..9] == "/obj/label") return int_query_static_auto_load(); return ([ ]); } /* query_static_auto_load() */ void dest_me() { if (environment()) environment()->remove_label(this_object()); ::dest_me(); } /* dest_me() */