/*
* RAM $Id: recycle.h 16 2008-10-22 04:42:21Z ram $
*/
/***************************************************************************
* Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer, *
* Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe. *
* *
* Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael *
* Chastain, Michael Quan, and Mitchell Tse. *
* *
* In order to use any part of this Merc Diku Mud, you must comply with *
* both the original Diku license in 'license.doc' as well the Merc *
* license in 'license.txt'. In particular, you may not remove either of *
* these copyright notices. *
* *
* Much time and thought has gone into this software and you are *
* benefitting. We hope that you share your changes too. What goes *
* around, comes around. *
***************************************************************************/
/***************************************************************************
* ROM 2.4 is copyright 1993-1998 Russ Taylor *
* ROM has been brought to you by the ROM consortium *
* Russ Taylor (rtaylor@hypercube.org) *
* Gabrielle Taylor (gtaylor@hypercube.org) *
* Brian Moore (zump@rom.org) *
* By using this code, you have agreed to follow the terms of the *
* ROM license, in the file Rom24/doc/rom.license *
***************************************************************************/
/* stuff for providing a crash-proof buffer */
#define MAX_BUF 16384
#define MAX_BUF_LIST 10
#define BASE_BUF 1024
/* valid states */
#define BUFFER_SAFE 0
#define BUFFER_OVERFLOW 1
#define BUFFER_FREED 2
/* note recycling */
extern NOTE_DATA *note_free;
NOTE_DATA *new_note( void );
void free_note( NOTE_DATA *note );
/* ban data recycling */
extern BAN_DATA *ban_free;
BAN_DATA *new_ban( void );
void free_ban( BAN_DATA *ban );
/* descriptor recycling */
extern DESCRIPTOR_DATA *descriptor_free;
DESCRIPTOR_DATA *new_descriptor( void );
void free_descriptor( DESCRIPTOR_DATA *d );
/* char gen data recycling */
extern GEN_DATA *gen_data_free;
GEN_DATA *new_gen_data( void );
void free_gen_data( GEN_DATA *gen );
/* extra descr recycling */
extern EXTRA_DESCR_DATA *extra_descr_free;
EXTRA_DESCR_DATA *new_extra_descr( void );
void free_extra_descr( EXTRA_DESCR_DATA *ed );
/* affect recycling */
extern AFFECT_DATA *affect_free;
AFFECT_DATA *new_affect( void );
void free_affect( AFFECT_DATA *af );
/* object recycling */
extern OBJ_DATA *obj_free;
OBJ_DATA *new_obj( void );
void free_obj( OBJ_DATA *obj );
/* character recyling */
extern CHAR_DATA *char_free;
extern PC_DATA *pcdata_free;
CHAR_DATA *new_char( void );
void free_char( CHAR_DATA *ch );
PC_DATA *new_pcdata( void );
void free_pcdata( PC_DATA *pcdata );
/* mob id and memory procedures */
extern int last_pc_id;
extern int last_mob_id;
extern MEM_DATA *mem_data_free;
int get_pc_id( void );
int get_mob_id( void );
MEM_DATA *new_mem_data( void );
void free_mem_data( MEM_DATA *memory );
/* buffer procedures */
extern const int buf_size[MAX_BUF_LIST];
int get_size( int val );
BUFFER *new_buf( void );
BUFFER *new_buf_size( int size );
void free_buf( BUFFER *buffer );
bool add_buf( BUFFER *buffer, const char *string );
void clear_buf( BUFFER *buffer );
char *buf_string( BUFFER *buffer );