#include <glib.h>
#include <sys/types.h>
#include <time.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <merc.h>
#include <memory.h>
GMemChunk *obj_mem_chunk;
GMemChunk *char_data_mem_chunk;
GMemChunk *descriptor_mem_chunk;
GMemChunk *affect_mem_chunk;
GMemChunk *sphere_mem_chunk;
GMemChunk *extra_desc_mem_chunk;
GMemChunk *pcdata_mem_chunk;
GMemChunk *MobID_mem_chunk;
GMemChunk *ObjID_mem_chunk;
GMemChunk *RoomID_mem_chunk;
GMemChunk *AreaID_mem_chunk;
GMemChunk *HelpID_mem_chunk;
GMemChunk *ban_mem_chunk;
GMemChunk *known_mem_chunk;
GMemChunk *mobmem_mem_chunk;
GMemChunk *mprog_mem_chunk;
GMemChunk *note_mem_chunk;
GMemChunk *reset_mem_chunk;
GMemChunk *exit_mem_chunk;
GMemChunk *extradata_mem_chunk;
GMemChunk *shop_mem_chunk;
GMemChunk *roomtext_mem_chunk;
GMemChunk *pmprog_mem_chunk;
GStringChunk *LurfStringChunk;
MUD_SETTING *mudsetting;
void init_memory_chunck()
{
obj_mem_chunk = g_mem_chunk_create (OBJ_DATA, 2024, G_ALLOC_AND_FREE);
char_data_mem_chunk = g_mem_chunk_create (CHAR_DATA, 2024, G_ALLOC_AND_FREE);
descriptor_mem_chunk = g_mem_chunk_create (DESCRIPTOR_DATA, 2024, G_ALLOC_AND_FREE);
affect_mem_chunk = g_mem_chunk_create (AFFECT_DATA, 2024, G_ALLOC_AND_FREE);
sphere_mem_chunk = g_mem_chunk_create (SPHERE_DATA, 2024, G_ALLOC_AND_FREE);
extra_desc_mem_chunk = g_mem_chunk_create (EXTRA_DESCR_DATA, 2024, G_ALLOC_AND_FREE);
pcdata_mem_chunk = g_mem_chunk_create (PC_DATA, 1024, G_ALLOC_AND_FREE);
ban_mem_chunk = g_mem_chunk_create (BAN_DATA, 1024, G_ALLOC_AND_FREE);
known_mem_chunk = g_mem_chunk_create (KNOWN_DATA, 1024, G_ALLOC_AND_FREE);
mobmem_mem_chunk = g_mem_chunk_create (MEM_DATA, 1024, G_ALLOC_AND_FREE);
mprog_mem_chunk = g_mem_chunk_create (MPROG_LIST, 1024, G_ALLOC_AND_FREE);
note_mem_chunk = g_mem_chunk_create (NOTE_DATA, 1024, G_ALLOC_AND_FREE);
reset_mem_chunk = g_mem_chunk_create (RESET_DATA, 1024, G_ALLOC_AND_FREE);
exit_mem_chunk = g_mem_chunk_create (EXIT_DATA, 1024, G_ALLOC_AND_FREE);
extradata_mem_chunk = g_mem_chunk_create (EXTRA_DESCR_DATA, 1024, G_ALLOC_AND_FREE);
shop_mem_chunk = g_mem_chunk_create (SHOP_DATA, 1024, G_ALLOC_AND_FREE);
roomtext_mem_chunk = g_mem_chunk_create (ROOMTEXT_DATA, 1024, G_ALLOC_AND_FREE);
pmprog_mem_chunk = g_mem_chunk_create (MPROG_CODE, 1024, G_ALLOC_AND_FREE);
MobID_mem_chunk = g_mem_chunk_create (MOB_INDEX_DATA, 1024, G_ALLOC_AND_FREE);
ObjID_mem_chunk = g_mem_chunk_create (OBJ_INDEX_DATA, 1024, G_ALLOC_AND_FREE);
RoomID_mem_chunk = g_mem_chunk_create (ROOM_INDEX_DATA, 1024, G_ALLOC_AND_FREE);
AreaID_mem_chunk = g_mem_chunk_create (AREA_DATA, 1024, G_ALLOC_AND_FREE);
HelpID_mem_chunk = g_mem_chunk_create (HELP_DATA, 1024, G_ALLOC_AND_FREE);
//Init Global Shared Strings
LurfStringChunk = g_string_chunk_new(1024);
//Global Mud Settings
mudsetting = g_new0(MUD_SETTING,1);
}
void destroy_memory_chunck()
{
g_mem_chunk_destroy (obj_mem_chunk);
g_mem_chunk_destroy (char_data_mem_chunk);
g_mem_chunk_destroy (descriptor_mem_chunk);
g_mem_chunk_destroy (affect_mem_chunk);
g_mem_chunk_destroy (sphere_mem_chunk);
g_mem_chunk_destroy (extra_desc_mem_chunk);
g_mem_chunk_destroy (pcdata_mem_chunk);
g_mem_chunk_destroy (MobID_mem_chunk);
g_mem_chunk_destroy (ObjID_mem_chunk);
g_mem_chunk_destroy (RoomID_mem_chunk);
g_mem_chunk_destroy (AreaID_mem_chunk);
g_mem_chunk_destroy (HelpID_mem_chunk);
g_string_chunk_free (LurfStringChunk);
}
void boot_fail(char* module_name)
{
logf( "********************* Shutdown by %-11s *********************", module_name );
exit( EXIT_FAILURE );
}