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/
#include <type.h>
inherit "/std/body/size"; 
inherit "/std/modules/m_autoload_filename"; 

static string brief_desc;
string  long_desc;
static object  object_environment;
static string *ids;
static string *adjs;
static int object_size;
string proper_name;

void create( void ) {
  brief_desc = "";
  ids = ({ "nondescript thing" });
  OBJECT_D->register_object( this_object() );
}

int is_living( void ) {
  return( 0 );
}

int is_player( void ) {
  return( 0 );
}

varargs void set_id( string str, mixed args...) {
  int i;

  ids = ({ str });
  for( i = 0; i < sizeof( args ); i++ ) {
    ids += ({ (string) args[i] });
  }
}

varargs void add_id( string str, mixed args...) {
  int i;

  if( ids == 0 )
    ids = ({ });

  ids += ({ str });
  for( i = 0; i < sizeof( args ); i++ ) {
    ids += ({ (string) args[i] });
  }
}

varargs void add_ids( string str, mixed args...) {
  int i;

  if( ids == 0 )
    ids = ({ });

  ids += ({ str });
  for( i = 0; i < sizeof( args ); i++ ) {
    ids += ({ (string) args[i] });
  }
}

string query_id( void ) {
  return( ids[0] );
}

string *query_ids( void ) {
  return( ids );
}

varargs void set_adj( string str, mixed args...) {
  int i;

  adjs = ({ str });
  for( i = 0; i < sizeof( args ); i++ ) {
    adjs += ({ (string) args[i] });
  }
}

varargs void add_adj( string str, mixed args...) {
  int i;

  if( adjs == 0 )
    adjs = ({ });
  adjs += ({ str });
  for( i = 0; i < sizeof( args ); i++ ) {
    adjs += ({ (string) args[i] });
  }
}

string *query_adj( void ) {
  return( adjs );
}

void set_brief( string str ) {
  brief_desc = str;
}

void set_in_room_desc( string str ) {
  brief_desc = str;
}

string query_in_room_desc( void ) {
  return( brief_desc );
}

string query_brief( void ) {
  return( brief_desc );
}

void set_long( string str ) {
  long_desc = str;
}

string query_long( void ) {
  return( long_desc );
}

void set_proper_name( string name ) {
  proper_name = name;
} 

string query_proper_name( void ) {
  return( proper_name );
}
/*

void set_size( int sz ) {
  object_size = sz;
}

int query_size( void ) {
  return( object_size );
}
*/

object query_environment( void ) {
  return( object_environment );
}

void set_environment( object ob ) {
  object_environment = ob;
}

void destruct( void ) {
  if( object_environment ) 
    object_environment->remove_object( this_object() );

  OBJECT_D->unregister_object( this_object() );
  destruct_object( this_object() );
}

int move( mixed destination ) {
  int err;
  object dest;

  if( !destination )
    return( 0 );
  if( typeof( destination ) == T_STRING ) {
    /* Remove trailing .c */
    if( destination[strlen( destination )-2..] == ".c" )
      destination = destination[..strlen(destination)-3];
    dest = find_object( destination );
    if( !dest )
      dest = compile_object( destination );
  } else {
    dest = destination;
  }

  if( !dest ) {
    return( 0 );
  }

  if( object_environment == dest ) {
    return( 0 );
  }

  err = dest->receive_object( this_object() );

  if( err != 1) {
    write( "Error in move:" + err + "\n" );
    return( 0 );
  }

  if( object_environment ) 
    object_environment->remove_object( this_object() );
      
  object_environment = dest;
  return( 1 );
}