/* Do not remove the headers from this file! see /USAGE for more info. */ // // POST.C 970411 Fritti // // Post a note on a bulletin board. // //:COMMAND // Used mainly to post a message to a board // See also: boards inherit VERB_OB; mixed can_post_about_str(string str) { object brd = 0; mixed res; foreach (object ob in deep_inventory(environment(this_body()))) { if ((int)ob->is_bulletin_board()) { if (!brd) brd = ob; else return "Please specify on which board you want to post.\n"; } } if (res = brd->indirect_post_on_obj_about_str(str, brd)) return res; return default_checks(); } mixed can_post_on_obj_about_str(object ob, string str) { return default_checks(); } void do_post_about_str(string str) { object brd = 0; foreach (object ob in deep_inventory(environment(this_body()))) { if ((int)ob->is_bulletin_board()) brd = ob; } brd->do_post(str); } void do_post_on_obj_about_str(object ob, string str) { ob->do_post(str); } /* ************************************************** */ /* Followups are posted using 'post followup to <id>' */ mixed can_post_wrd_to_wrd(string wrd1, string wrd2) { object brd = 0; mixed res; if (wrd1 != "followup") return 0; foreach (object ob in deep_inventory(environment(this_body()))) { if ((int)ob->is_bulletin_board()) if (!brd) brd = ob; else return "Please specify the board you want to post on.\n"; } if (!brd) return "There is nothing here to post on.\n"; if ((res = brd->direct_post_wrd_to_wrd_on_obj(wrd1, wrd2, brd)) != 1) return res; return default_checks(); } mixed can_post_wrd_to_wrd_on_obj(string wrd1, string wrd2, object ob) { if (wrd1 != "followup") return 0; return default_checks(); } void do_post_wrd_to_wrd(string wrd1, string wrd2) { object brd = 0; int id; foreach (object ob in deep_inventory(environment(this_body()))) { if ((int)ob->is_bulletin_board()) brd = ob; } sscanf(wrd2, "%d", id); brd->do_followup(id); } void do_post_wrd_to_wrd_on_obj(string wrd1, string wrd2, object ob) { int id; sscanf(wrd2, "%d", id); ob->do_followup(id); } /* ********************************************************************** */ /* Followups with inclded text are posted using 'post followup with <id>' */ mixed can_post_wrd_with_wrd(string wrd1, string wrd2) { object brd = 0; mixed res; if (wrd1 != "followup") return 0; foreach (object ob in deep_inventory(environment(this_body()))) { if ((int)ob->is_bulletin_board()) if (!brd) brd = ob; else return "Please specify the board you want to post on.\n"; } if (!brd) return "There is nothing here to post on.\n"; if ((res = brd->direct_post_wrd_with_wrd_on_obj(wrd1, wrd2, brd)) != 1) return res; return default_checks(); } mixed can_post_wrd_with_wrd_on_obj(string wrd1, string wrd2, object ob) { if (wrd1 != "followup") return 0; return default_checks(); } void do_post_wrd_with_wrd(string wrd1, string wrd2) { object brd = 0; int id; foreach (object ob in deep_inventory(environment(this_body()))) { if ((int)ob->is_bulletin_board()) brd = ob; } sscanf(wrd2, "%d", id); brd->do_followup_with_message(id); } void do_post_wrd_with_wrd_on_obj(string wrd1, string wrd2, object ob) { int id; sscanf(wrd2, "%d", id); ob->do_followup_with_message(id); } /* ***************************************************************** */ void create() { add_rules( ({ "about STR", "on OBJ about STR", "WRD to WRD", "WRD to WRD on OBJ", "WRD with WRD", "WRD with WRD on OBJ", }), ({ })); }