#include <type.h> inherit "/std/body/size"; /* satch */ /* 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; static string *object_commands; static string detailed_desc; void create( void ) { brief_desc = ""; ids = ({ "nondescript thing" }); adjs = ({ }); 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 ); } int is_id( string id ) { int i; for( i = 0; i < sizeof( ids ); i++ ) { if( ids[i] == id ) return( 1 ); } return( 0 ); } 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_adjs( void ) { return( adjs ); } string query_adj( void ) { if( sizeof( adjs ) == 0 ) return( "" ); return( adjs[0] ); } int is_adj( string adj ) { int i; for( i = 0; i < sizeof( adjs ); i++ ) { if( adjs[i] == adj ) return( 1 ); } return( 0 ); } 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 ) { if( brief_desc == 0 || brief_desc == "" ) { if( query_adj() == 0 || query_adj() == "" ) { brief_desc = article( query_id() ) + " " + query_id(); } else { brief_desc = article( query_adj() ) + " " + query_adj() + " " + query_id(); } } 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 ) { if( object_environment->is_living() ) { if( sizeof( this_object()->query_object_commands() ) > 0 ) { string *objcmds; int i; objcmds = this_object()->query_object_commands(); for( i = 0; i < sizeof( objcmds ); i++ ) { object_environment->remove_item_command( objcmds[i] ); } } } object_environment->remove_object( this_object() ); } object_environment = dest; if( object_environment->is_living() ) { if( sizeof( this_object()->query_object_commands() ) > 0 ) { string *objcmds; int i; objcmds = this_object()->query_object_commands(); for( i = 0; i < sizeof( objcmds ); i++ ) { object_environment->add_item_command( objcmds[i], this_object() ); } } } return( 1 ); } void add_object_command( string command ) { if( object_commands == 0 ) object_commands = ({ }); object_commands += ({ command }); } void remove_object_command( string command ) { if( object_commands == 0 ) object_commands = ({ }); object_commands -= ({ command }); } string *query_object_commands( void ) { if( object_commands == 0 ) object_commands = ({ }); return( object_commands ); } void set_detailed_desc( string desc ) { detailed_desc = desc; } string query_detailed_desc( void ) { return( detailed_desc ); }