gurba-0.40/
gurba-0.40/bin/
gurba-0.40/lib/
gurba-0.40/lib/cmds/guild/fighter/
gurba-0.40/lib/cmds/monster/
gurba-0.40/lib/cmds/race/catfolk/
gurba-0.40/lib/cmds/race/dwarf/
gurba-0.40/lib/cmds/verb/
gurba-0.40/lib/daemons/data/
gurba-0.40/lib/data/boards/
gurba-0.40/lib/data/messages/
gurba-0.40/lib/data/players/
gurba-0.40/lib/design/
gurba-0.40/lib/domains/gurba/
gurba-0.40/lib/domains/gurba/guilds/fighter/
gurba-0.40/lib/domains/gurba/monsters/
gurba-0.40/lib/domains/gurba/objects/armor/
gurba-0.40/lib/domains/gurba/objects/clothing/
gurba-0.40/lib/domains/gurba/objects/weapons/
gurba-0.40/lib/domains/gurba/vendors/
gurba-0.40/lib/kernel/cmds/admin/
gurba-0.40/lib/kernel/daemons/
gurba-0.40/lib/kernel/include/
gurba-0.40/lib/kernel/lib/
gurba-0.40/lib/kernel/net/
gurba-0.40/lib/kernel/sys/
gurba-0.40/lib/logs/
gurba-0.40/lib/pub/
gurba-0.40/lib/std/modules/languages/
gurba-0.40/lib/std/races/
gurba-0.40/lib/std/races/monsters/
gurba-0.40/lib/wiz/fudge/
gurba-0.40/lib/wiz/spud/
gurba-0.40/src/host/beos/
gurba-0.40/src/host/pc/res/
gurba-0.40/src/kfun/
gurba-0.40/src/lpc/
gurba-0.40/src/parser/
gurba-0.40/tmp/
private static mapping msg;
private static mapping subject;
private static mapping ob;

void main( string str ) {

  if( msg == 0 ) {
    msg = ([ ]);
    subject = ([ ]);
    ob = ([ ]);
  }
  ob[this_player()->query_name()] = this_environment()->find_object( "board" );
  if( !ob[this_player()->query_name()] ) {
    write( "Try writing a message at a message board.\n" );
    return;
  } 
  if( str == "" ) {
    subject[this_player()->query_name()] = "(none)";
  } else {
    subject[this_player()->query_name()] = str;
  } 

  write( " \nPlease enter your text below.\n"
	 + "'.' without quotes on a blank line to end. ~a to abort.\n"
	 + "------------------------------------------------------------------------------\n");
  this_player()->input_to_object( this_object(), "enter_line" );
  this_player()->set_editing( 1 );
  msg[this_player()->query_name()] = "";
}

void enter_line( string line ) {
  if( line != "." && line != "**" && line != "~a" ) {
    if( msg[this_player()->query_name()] == 0 ) {
      msg[this_player()->query_name()] = line + "\n";
    } else {
      msg[this_player()->query_name()] = msg[this_player()->query_name()] + line + "\n";
    }
    this_player()->input_to_object( this_object(), "enter_line" );
  } else {
    if( line == "~a" ) {
      write( " \nMessage aborted.\n" );
    } else {
      ob[this_player()->query_name()]->add_message( this_player()->query_name(), subject[this_player()->query_name()], msg[this_player()->query_name()] );
      write( " \nMessage posted.\n" );
    }
    this_player()->set_editing( 0 );
    this_player()->write_prompt();
    this_environment()->tell_room( this_player(), capitalize(this_player()->query_name()) + " posts a new message.\n" );
  }
}