#include <phantasmal/lpc_names.h> #include <type.h> inherit USER_STATE; private int init; private string func_name; private object obj_to_set; private int locale; static void create(varargs int clone) { ::create(); if(clone) { init = 0; } } void set_up_func(varargs object obj, string desctype, int desc_loc) { obj_to_set = obj; func_name = desctype; locale = desc_loc; init = 1; } int from_user(string output) { error("From_user called in set_obj_desc func!"); } void pass_data(mixed data) { object phr; if(typeof(data) == T_NIL) { ::pass_data(nil); /* Request user obj to print prompt */ pop_state(); return; } if(!typeof(data) == T_STRING) { error("Incorrect data type in set_obj_desc user state!"); } data = STRINGD->trim_whitespace(data); phr = call_other(obj_to_set, "get_" + func_name); if(!phr || (func_name == "examine" && phr == obj_to_set->get_look())) { phr = PHRASED->new_simple_english_phrase("CHANGE ME!"); call_other(obj_to_set, "set_" + func_name, phr); } phr->set_content_by_lang(locale, data); send_string("Set " + func_name + " description.\n"); pop_state(); }