00001 /*************************************************************************** 00002 * Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer, * 00003 * Michael Seifert, Hans Henrik Strfeldt, Tom Madsen, and Katja Nyboe. * 00004 * * 00005 * Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael * 00006 * Chastain, Michael Quan, and Mitchell Tse. * 00007 * * 00008 * In order to use any part of this Merc Diku Mud, you must comply with * 00009 * both the original Diku license in 'license.doc' as well the Merc * 00010 * license in 'license.txt'. In particular, you may not remove either of * 00011 * these copyright notices. * 00012 * * 00013 * Much time and thought has gone into this software and you are * 00014 * benefitting. We hope that you share your changes too. What goes * 00015 * around, comes around. * 00016 ***************************************************************************/ 00017 00018 /*************************************************************************** 00019 * ROM 2.4 is copyright 1993-1998 Russ Taylor * 00020 * ROM has been brought to you by the ROM consortium * 00021 * Russ Taylor (rtaylor@hypercube.org) * 00022 * Gabrielle Taylor (gtaylor@hypercube.org) * 00023 * Brian Moore (zump@rom.org) * 00024 * By using this code, you have agreed to follow the terms of the * 00025 * ROM license, in the file Rom24/doc/rom.license * 00026 ***************************************************************************/ 00027 00028 /* externs */ 00029 extern char str_empty[1]; 00030 extern int mobile_count; 00031 00032 /* stuff for providing a crash-proof buffer */ 00033 00034 #define MAX_BUF 32768 - 70 00035 #define MAX_BUF_LIST 11 00036 #define BASE_BUF 1024 00037 00038 /* valid states */ 00039 #define BUFFER_SAFE 0 00040 #define BUFFER_OVERFLOW 1 00041 #define BUFFER_FREED 2 00042 00043 /* ban data recycling */ 00044 #define BD BAN_DATA 00045 BD *new_ban args( (void) ); 00046 void free_ban args( (BAN_DATA *ban) ); 00047 #undef BD 00048 00049 /* descriptor recycling */ 00050 #define DD DESCRIPTOR_DATA 00051 DD *new_descriptor args( (void) ); 00052 void free_descriptor args( (DESCRIPTOR_DATA *d) ); 00053 #undef DD 00054 00055 /* char gen data recycling */ 00056 #define GD GEN_DATA 00057 GD *new_gen_data args( (void) ); 00058 void free_gen_data args( (GEN_DATA * gen) ); 00059 #undef GD 00060 00061 /* extra descr recycling */ 00062 #define ED EXTRA_DESCR_DATA 00063 ED *new_extra_descr args( (void) ); 00064 void free_extra_descr args( (EXTRA_DESCR_DATA *ed) ); 00065 #undef ED 00066 00067 /* affect recycling */ 00068 #define AD AFFECT_DATA 00069 AD *new_affect args( (void) ); 00070 void free_affect args( (AFFECT_DATA *af) ); 00071 #undef AD 00072 00073 /* object recycling */ 00074 #define OD OBJ_DATA 00075 OD *new_obj args( (void) ); 00076 void free_obj args( (OBJ_DATA *obj) ); 00077 #undef OD 00078 00079 /* character recyling */ 00080 #define CD CHAR_DATA 00081 #define PD PC_DATA 00082 CD *new_char args( (void) ); 00083 void free_char args( (CHAR_DATA *ch) ); 00084 PD *new_pcdata args( (void) ); 00085 void free_pcdata args( (PC_DATA *pcdata) ); 00086 #undef PD 00087 #undef CD 00088 00089 00090 /* mob id and memory procedures */ 00091 #define MD MEM_DATA 00092 long get_pc_id args( (void) ); 00093 long get_mob_id args( (void) ); 00094 MD *new_mem_data args( (void) ); 00095 void free_mem_data args( ( MEM_DATA *memory) ); 00096 MD *find_memory args( (MEM_DATA *memory, long id) ); 00097 #undef MD 00098 00099 /* buffer procedures */ 00100 BUFFER *new_buf args( (void) ); 00101 BUFFER *new_buf_size args( (int size) ); 00102 void free_buf args( (BUFFER *buffer) ); 00103 bool add_buf args( (BUFFER *buffer, char *string) ); 00104 void clear_buf args( (BUFFER *buffer) ); 00105 char *buf_string args( (BUFFER *buffer) ); 00106 00107 HELP_AREA * new_had args( ( void ) ); 00108 HELP_DATA * new_help args( ( void ) ); 00109 void free_help args( ( HELP_DATA * ) );
1.4.0