#include "config.h" #include "op_spec.c" /* * This file specifies types and arguments for efuns. * An argument can have two different types with the syntax 'type1 | type2'. * An argument is marked as optional if it also takes the type 'void'. * * Comment out the efuns that you do not want. Be careful not to comment * out something that you need. * * The order in which the efuns are listed here is the order in which opcode * #'s will be assigned. It is in your interest to move the least frequently * used efuns to the bottomm of this file (and the most frequently used * ones to the top). The opcprof() efun could help you find out which * efuns are most often and least often used. The reason for ordering * the efuns is that only the first 255 efuns are represented using * a single byte. Any additional efuns require two bytes. */ /* most frequently used functions */ object present(object|string, void|object); object this_object(); object this_player(void|int); object new(string); object clone_object new(string); void move_object(object|string, void|object|string); object previous_object(); int sizeof(mixed); int destruct(object); string file_name(object default: F_THIS_OBJECT); object environment(void|object); string capitalize(string); string *explode(string, string); string implode(string *, string); object *all_inventory(object default: F_THIS_OBJECT); unknown call_other(object|string|object *, string|mixed *, ...); void call_out(string, int, ...); int member_array(mixed, mixed *, void|int); void notify_fail(string); void input_to(string, ...); int random(int); void save_object(string, void|int); void add_action(string, void|string, void|int); void add_verb(string); string query_verb(); string lower_case(string); int command(string, void|object); string replace_string(string, string, string, ...); int restore_object(string, void|int); object *users(); string *get_dir(string, int default: F_CONST0); /* communication functions */ void write(mixed); void tell_object(object, string); void say(string, void|object|object *); void shout(string); int receive(string); void tell_room(object|string, string|object|int, void|object *); void message(string, string, string|string *|object|object *, void|object|object *); /* the find_* functions */ object find_object(string); object find_living(string); object find_player(string); int find_call_out(string); /* mapping functions */ mapping allocate_mapping(int); void map_delete(mapping,mixed); mixed *values(mapping); mixed *keys(mapping); #ifdef EACH mixed *each(mapping); #endif /* all the *p() type functions */ int clonep(mixed); int intp(mixed); int undefinedp(mixed); int nullp(mixed); int floatp(mixed); int stringp(mixed); int virtualp(object); int functionp(mixed); int pointerp(mixed); int objectp(mixed); int inherits(string, object); string *regexp(string *, string); void add_xverb(string); mixed *allocate(int); /* do not remove to_int() and to_float() because they are also used by the compiler (compiler.y) */ int to_int(string|float|int); float to_float(string|float|int); mixed *call_out_info(); /* commands operating on files */ int write_file(string, string); int rename(string, string); int write_bytes(string, int, string); int file_size(string); string read_bytes(string, void|int, void|int); string read_file(string, void|int, void|int); void log_file(string, string); int cat(string, void|int, void|int); int cp(string, string); int link(string, string); int mkdir(string); int rm(string); void rmdir(string); /* the bit string functions */ string clear_bit(string, int); int test_bit(string, int); string set_bit(string, int); string crypt(string, string|int); /* An int as second argument ? */ string ctime(int); mixed debug_info(int, object); void disable_commands(); void enable_commands(); int exec(object, object); string extract(string, void|int, void|int); mixed *localtime(int); string function_exists(string, object default: F_THIS_OBJECT); object *livings(); object *objects(); string process_string(string); string query_host_name(); int query_idle(object); string query_ip_name(void|object); string query_ip_number(void|object); object query_snoop(object); object query_snooping(object); int remove_call_out(string); int set_heart_beat(int); void set_hide(int); void set_living_name(string); void set_reset(object, void|int); #ifndef NO_SHADOWS object shadow(object, int); object query_shadowing(object); object shadowp query_shadowing(object); #endif object snoop(object, void|object); mixed *sort_array(mixed *,string,object|string default: F_THIS_OBJECT); void tail(string); void throw(mixed); int time(); mixed *unique_array(mixed *, string, void|mixed); string *deep_inherit_list(object default: F_THIS_OBJECT); string *inherit_list(object default: F_THIS_OBJECT); int strlen(string); #if defined(PRINTF) void printf(string, ...); string sprintf(string, ...); #endif object next_living(object); int mapp(mixed); mixed *stat(string, int default: F_CONST0); int remove_action(string, string); /* * Object properties */ int living(object); int interactive(object default: F_THIS_OBJECT); int in_edit(object default : F_THIS_OBJECT); int in_input(object default : F_THIS_OBJECT); mixed *commands(); void enable_wizard(); void disable_wizard(); int userp(object); int wizardp(object); /* * Globally scoped functions (huh?) */ object master(); /* * mudlib statistics */ mapping domain_stats(void|string); void set_author(string); mapping author_stats(void|string); int memory_info(object|void); /* uid functions */ int export_uid(object); string geteuid(object default: F_THIS_OBJECT); string getuid(object default: F_THIS_OBJECT); int seteuid(string|int); #ifdef PRIVS /* privledge functions */ string query_privs(object default: F_THIS_OBJECT); void set_privs(object, int|string); #endif /* PRIVS */ void get_char(string, void|int); object *children(string); void reload_object(object); /* * socket efuns */ int socket_create(int, string, string|void); int socket_bind(int, int); int socket_listen(int, string); int socket_accept(int, string, string); int socket_connect(int, string, string, string); int socket_write(int, mixed, string|void); int socket_close(int); int socket_release(int, object, string); int socket_acquire(int, string, string, string); string socket_error(int); string socket_address(int|object); void dump_socket_status(); void error(string); int uptime(); int strcmp(string, string); #if (defined(RUSAGE) || defined(GET_PROCESS_STATS) || defined(TIMES)) mapping rusage(); #endif /* RUSAGE */ #ifdef ED void ed(string|void, string|void, int|void); #endif #ifdef MATH float cos(float); float sin(float); float tan(float); float asin(float); float acos(float); float atan(float); float sqrt(float); float log(float); float pow(float, float); float exp(float); float floor(float); float ceil(float); #endif /* * Matrix efuns for Jacques' 3d mud etc. */ #ifdef MATRIX float *id_matrix(); float *translate(float *, float, float, float); float *scale(float *, float, float, float); float *rotate_x(float *, float); float *rotate_y(float *, float); float *rotate_z(float *, float); float *lookat_rotate(float *, float, float, float); float *lookat_rotate2(float *, float, float, float, float, float, float); #endif /* MATRIX */ #ifdef CACHE_STATS void cache_stats(); #endif object *deep_inventory(object); /* first_ next_inventory maybe not used that often if all_inventory used very much. */ object first_inventory(object|string default: F_THIS_OBJECT); object next_inventory(object default: F_THIS_OBJECT); /* * MIRE efuns for the MIRE project at MIT */ #ifdef MIRE int *editor_list (string, int); int remove_editor_list (string); string *fetch_article (int); void doppel_mod (string, string, int); mixed *find_keywords (string); void init_mire(); #endif mixed filter_array(mixed *, string, object|string, void|mixed); mixed *map_array(mixed *, string, object|string, void|mixed); /* * parser 'magic' functions, turned into efuns */ void malloc_status(); void mud_status(int default : F_CONST0); void dumpallobj(string|void); void dump_file_descriptors(); string query_load_average(); /* set_light should die a dark death */ int set_light(int); /* add_worth is a bit silly */ void add_worth(int, void|object); /* the infrequently used functions */ int reclaim_objects(); int refs(mixed); #if defined(PROFILING) && defined(HAS_MONCONTROL) void moncontrol(int); #endif /* dump_prog: disassembler... comment out this line if you don't want the disassembler compiled in. */ void dump_prog(object, int default: F_CONST0); void break_point(); #if (defined(DEBUGMALLOC) && defined(DEBUGMALLOC_EXTENSIONS)) void debugmalloc(string,int); void set_malloc_mask(int); #endif #ifdef SET_EVAL_LIMIT void set_eval_limit(int); #endif #ifdef DEBUG_MACRO void set_debug_level(int); #endif #ifdef OPCPROF void opcprof(string|void); #endif string traceprefix(string|int); int trace(int); void swap(object); /* Only used for debugging */ /* shutdown is at the end because it is only called once per boot cycle :) */ void shutdown(void|int); int resolve(string, string);