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/
mixed *query_verb_info( void ) {
  return( ({ "", "OBJI", "OBJA" }) );
}

mixed can_drop( void ) {
  return( "Drop what?" );
}

mixed can_drop_str( string str ) {
  if( lowercase(str) == "all" || lowercase(str) == "everything" )
    return( 1 );
  else
    return( "You can't seem to find the " + str + "." );
}

mixed can_drop_obj( object obj ) {
  if( obj->is_undroppable() ) {
    this_player()->targetted_action( "$N $vare unable to drop $o.", 0, obj ); 
    return( 0 );
  }
  return( 1 );
}

mixed do_drop_str( string str ) {
  object *inv;
  int i;

  inv = this_player()->query_inventory();
  for( i=0; i < sizeof( inv ); i++ ) {
    if( inv[i]->is_worn() ) {
      this_player()->do_remove( inv[i] );
      this_player()->targetted_action( inv[i]->query_remove_message(), 0, inv[i] );
    }
    
    if( inv[i]->is_wielded() ) {
      this_player()->do_unwield( inv[i] );
      this_player()->targetted_action( inv[i]->query_unwield_message(), 0, inv[i] );
    } 

    if( inv[i]->is_undroppable() ) {
      this_player()->targetted_action( "$N $vare unable to drop $o.", 0, inv[i] ); 
      return(0);
    }
    if( inv[i]->move( this_environment() ) ) {
      this_player()->targetted_action( "$N $vdrop $o.", 0, inv[i] );
    } 
    else {
      this_player()->targetted_action( "$N $vtry to drop $o, but $vfail.", 0, inv[i] ); 
    }
  }
} 

mixed do_drop_obj( object obj ) {
  if( obj->is_worn() ) {
    this_player()->do_remove( obj );
    this_player()->targetted_action( obj->query_remove_message(), 0, obj );
  }

  if( obj->is_wielded() ) {
    this_player()->do_unwield( obj );
    this_player()->targetted_action( obj->query_unwield_message(), 0, obj );
  }
  
  if( obj->move( this_environment() ) ) {
    this_player()->targetted_action( "$N $vdrop $o.", 0, obj );
  } else {
    this_player()->targetted_action( "$N $vtry to drop $o, but $vfail.", 0, obj ); 
  }
}