// File: _cref.c // Mudlib: Nightmare (but see credits) // Purpose: clones a reference'd object // Credits: see _refs.c #include <move.h> #include <daemons.h> #include <std.h> inherit DAEMON; inherit REFS_D; #define SYNTAX "Syntax: cref [<object>]\n" int cmd_cref( string a ) { mixed ob; object new_ob; string name, num; if( !a ) a = "#default"; ob = ref_ob( a ); if( !objectp( ob ) ) { notify_fail( wrap( "Could not identify " + identify( ob ) + " as an object." ) ); return 0; } name = file_name( ob ); if( sscanf( name, "%s#%s", ob, num ) < 2 ) ob = name; if( catch( new_ob = new( ob ) ) ) { notify_fail( "Could not clone " + ob + "\n" ); return 0; } write( "CLONE: You have created " + identify( new_ob ) + "\n" ); if( new_ob-> move( this_player() ) != MOVE_OK ) new_ob-> move( environment( this_player() ) ); set_ref( 0, new_ob ); return 1; } int help() { write( SYNTAX + "Effect: clones you a copy of <object>\n"+ "See also: refs, clone\n"+ "" ); return 1; }