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/
void main( string str ) {
  object ob;

  if( str == "" ) {
    if( this_user()->query_player()->is_possessing() ) {
      write( "Your release your grasp on " + this_player()->query_name() + "." );
      this_user()->query_player()->query_possessing()->set_possessor( 0 );
      this_user()->query_player()->set_possessing( 0 );
      return;
    } else {
      write( "Please specify what to possess.\n" );
      return;
    }
  }

  if( this_user()->query_player()->is_possessing() ) {
    write( "You can't possess more than one beeing at a time." );
    return;
  }

  ob = this_environment()->find_object( lowercase(str) );
  if( ob == 0 ) {
    write( "You can't seem to find the " + lowercase(str) + "." );
    return;
  }

  if( ob->is_living() ) {
    if( ob->is_player() ) {
      write( "You can't possess other players." );
      return;
    }

    if( ob->is_possessed() ) {
      write( "You can't possess a creature someone is already possessing." );
      return;
    }

    this_user()->query_player()->set_possessing( ob );
    ob->set_possessor( this_user()->query_player() );
    write( "You take control over the " + lowercase(str) + "." );
  } else {
    write( "You can't possess that." );
  }
}