/**************************************************************************/ // recycle.h - /*************************************************************************** * The Dawn of Time v1.69r (c)1997-2004 Michael Garratt * * >> A number of people have contributed to the Dawn codebase, with the * * majority of code written by Michael Garratt - www.dawnoftime.org * * >> To use this source code, you must fully comply with all the licenses * * in licenses.txt... In particular, you may not remove this copyright * * notice. * *************************************************************************** * >> Original Diku Mud copyright (c)1990, 1991 by Sebastian Hammer, * * Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, & Katja Nyboe. * * >> Merc Diku Mud improvements copyright (C) 1992, 1993 by Michael * * Chastain, Michael Quan, and Mitchell Tse. * * >> ROM 2.4 is copyright 1993-1995 Russ Taylor and has been brought to * * you by the ROM consortium: Russ Taylor(rtaylor@pacinfo.com), * * Gabrielle Taylor(gtaylor@pacinfo.com) & Brian Moore(rom@rom.efn.org) * * >> Oblivion 1.2 is copyright 1996 Wes Wagner * **************************************************************************/ #ifndef RECYCLE_H #define RECYCLE_H #include "ban.h" // externs extern char str_empty[1]; extern int mobile_count; // stuff for providing a crash-proof buffer #define MAX_BUF 65536 #define MAX_BUF_LIST 12 #define BASE_BUF 1024 // valid states #define BUFFER_SAFE 0 #define BUFFER_OVERFLOW 1 #define BUFFER_FREED 2 // note recycling #define ND NOTE_DATA ND *new_note args( (void) ); void free_note args( (NOTE_DATA *note) ); #undef ND // ban data recycling #define BD BAN_DATA BD *new_ban args( (void) ); void free_ban args( (BAN_DATA *ban) ); #undef BD // descriptor recycling #define DD connection_data DD *connection_allocate args( (void) ); void connection_deallocate args( (connection_data *d) ); #undef DD // char gen data recycling #define GD GEN_DATA GD *new_gen_data args( (void) ); void free_gen_data args( (GEN_DATA * gen) ); #undef GD // extra descr recycling #define ED EXTRA_DESCR_DATA ED *new_extra_descr args( (void) ); void free_extra_descr args( (EXTRA_DESCR_DATA *ed) ); #undef ED // affect recycling #define AD AFFECT_DATA AD *new_affect args( (void) ); void free_affect args( (AFFECT_DATA *af) ); #undef AD // object recycling #define OD OBJ_DATA OD *new_obj args( (void) ); void free_obj args( (OBJ_DATA *obj) ); #undef OD // character recyling #define CD char_data #define PD PC_DATA CD *new_char args( (void) ); void free_char args( (char_data *ch) ); PD *new_pcdata args( (void) ); void free_pcdata args( (PC_DATA *pcdata) ); #undef PD #undef CD // mob id and memory procedures #define MD MEM_DATA long get_pc_id args( (void) ); long get_mob_id args( (void) ); void free_mem_data args( ( MEM_DATA *memory) ); MD *find_memory args( (MEM_DATA *memory, long id) ); #undef MD // buffer procedures BUFFER *new_buf args( (void) ); void free_buf args( (BUFFER *buffer) ); bool add_buf args( (BUFFER *buffer, const char *string) ); void clear_buf args( (BUFFER *buffer) ); char *buf_string args( (BUFFER *buffer) ); room_echo_data *new_room_echo( void ); void free_room_echo( room_echo_data *); // Area Echoes area_echo_data *new_area_echo( void ); void free_area_echo( area_echo_data *); #endif // RECYCLE_H