/* Do not remove the headers from this file! see /USAGE for more info. */
private int max_char = 100;
private int char_left = 100;
string array msgs = ({ });
string extra;
void add_hook(string, mixed);
void remove_hook(string, mixed);
//:FUNCTION set_space
//Set the maximum number of characters that can fit on the writing surface
void set_space(int max) {
max_char = max;
}
//:FUNCTION query_space
//Return the maximum number of characters that can fit on the writing surface
int query_space() {
return max_char;
}
//:FUNCTION query_space_left
//Return the amount of space left (number of characters) on a writing surface
int query_space_left() {
return char_left;
}
//:FUNCTION add_text
//Add some text to a writing surface. Make sure it fits (query_space_left)
//first.
void add_text(string str) {
remove_hook("extra_long", extra);
char_left -= strlen(str);
if (msgs) {
msgs += ({ str });
extra = "There are " + sizeof(msgs) + " things written on it:\n\t'" +
implode(msgs, "'\n\t'") + "'\n";
} else {
msgs = ({ str });
extra = "There is 1 thing written on it:\n\t'" + str + "'\n";
}
add_hook("extra_long", extra);
}
/* parser interaction */
mixed direct_write_str_on_obj(string str, object ob) {
if (strlen(str) > query_space_left())
return "There isn't enough room.\n";
return 1;
}
mixed direct_write_obj_with_str(object ob, string str) {
if (strlen(str) > query_space_left())
return "There isn't enough room.\n";
return 1;
}