Exemple #1
0
PKINFO_TYPE * pkupdate(CHAR_DATA * ch)
{
	static PKINFO_TYPE pk_zero;
	PKINFO_TYPE * pk;

	if (pkranks == NULL)
	{
		pk = alloc_perm(sizeof(*pk));
		pkranks = pk;	
		pk->character = str_dup(ch->name);
		pk->pk_count = ch->pk_count;
		pk->pk_death_count = ch->pk_died_count;
		pk->next = NULL;
		pk_zero = *pk;
	}
	else
	{
		//pk = &pk_zero;
		pk = pkranks;
		PKINFO_TYPE * prior;
		prior = pk;
		while (pk && strcmp(pk->character,ch->name))
		{
			prior = pk;
			pk = pk->next;
		}
		if (!pk)
		{
			pk = alloc_perm(sizeof(*pk));
			prior->next = pk;
			pk->next = NULL;
			pk->character = str_dup(ch->name);
			pk->pk_count = ch->pk_count;
			pk->pk_death_count = ch->pk_died_count;
		}
		else if (pk && !strcmp(pk->character, ch->name))
		{
			pk->pk_count = ch->pk_count;
			pk->pk_death_count = ch->pk_died_count;

		}
	}

        FILE * fp = fopen(PKRANK_FILE,"w");
        if (fp)
        {
	   PKINFO_TYPE * tmp = &pk_zero;
	   while(tmp)
	   {
		fprintf(fp,"%s~\n",tmp->character);
	   	fprintf(fp,"%d %d\n",tmp->pk_count, tmp->pk_death_count);
		tmp = tmp->next;
	   }
	   fprintf(fp,"END~\n");
           fclose(fp);
        }
	return pk;
}
Exemple #2
0
void read_trivia(void)
{
	FILE *fp;
	TRIVIA *strivia = 0;
	HINT *hint;
	char *word;

	if((fp = fopen(TRIVIA_FILE, "r")) == 0)
	{
		bug("read_trivia: unable to open file ro reading!", 0);
		return;
	}

	while(1)
	{
		word = fread_word(fp);

		if(!str_cmp(word, "end"))
			break;

		if(!str_cmp(word, "trivia"))
		{
			strivia = alloc_perm(sizeof(*strivia));
			strivia->question = fread_string(fp);
			strivia->answer = fread_string(fp);
			strivia->character = fread_string(fp);
			strivia->winner = fread_string(fp);
			strivia->guesses = fread_number(fp);
			strivia->time = fread_number(fp);
			strivia->timeleft = fread_number(fp);
			strivia->reward = fread_number(fp);
			strivia->next = trivia_list;
			trivia_list = strivia;
			continue;
		}

		if(!str_cmp(word, "hint"))
		{
			if(!strivia)
			{
				bug("read_trivia: hint read before trivia laoded!", 0);
				exit(1);
			}

			hint = alloc_perm(sizeof(*hint));
			hint->hint = fread_string(fp);
			hint->next = strivia->hints;
			strivia->hints = hint;
			continue;
		}

		bug("read_trivia: wrong word!", 0);
		break;
	}

	return;
}
Exemple #3
0
ROOM_INDEX_DATA *new_room_index( void )
{
    ROOM_INDEX_DATA *pRoom;
    int              door;

	pRoom = alloc_perm( sizeof( *pRoom ) );
	top_room++;

    pRoom->next		= NULL;
    pRoom->people	= NULL;
    pRoom->contents	= NULL;
    pRoom->extra_descr	= NULL;
    pRoom->area		= NULL;

    for ( door = 0; door < MAX_DIR; door++ )
	pRoom->exit[door] = NULL;

    pRoom->name		= &str_empty[0];
    pRoom->description	= &str_empty[0];
    pRoom->vnum		= 0;
    pRoom->room_flags[0]= 0;
    pRoom->room_flags[1]= 0;
    pRoom->light	= 0;
    pRoom->sector_type	= 0;

    return pRoom;
}
Exemple #4
0
AREA_DATA *new_area( void )
{
    AREA_DATA *pArea;
    char       buf[ MAX_INPUT_LENGTH ];

	pArea = alloc_perm( sizeof( *pArea ) );
	top_area++;

    pArea->next		= NULL;
    pArea->name		= str_dup( "New area" );
    pArea->recall	= ROOM_VNUM_TEMPLE;
    pArea->area_flags	= AREA_ADDED;
    pArea->security	= 1;
    pArea->builders	= str_dup( "None" );
    pArea->lvnum	= 0;
    pArea->uvnum	= 0;
    pArea->age		= 0;
    pArea->nplayer	= 0;
    pArea->vnum		= top_area - 1;

    sprintf( buf, "area%d.are", pArea->vnum );
    pArea->filename 	= str_dup( buf );

    return pArea;
}
Exemple #5
0
MOB_INDEX_DATA *new_mob_index( void )
{
    MOB_INDEX_DATA *pMob;
    int count;

	pMob = alloc_perm( sizeof( *pMob ) );
	top_mob_index++;

    pMob->next		= NULL;
    pMob->spec_fun	= NULL;
    pMob->pShop		= NULL;
    pMob->area		= NULL;
    pMob->player_name	= str_dup( "no name" );
    pMob->short_descr	= str_dup( "(no short description)" );
    pMob->long_descr	= str_dup( "(no long description)\r\n" );
    pMob->description	= &str_empty[0];
    pMob->vnum		= 0;
    pMob->count		= 0;
    pMob->killed	= 0;
    pMob->sex		= 0;
    pMob->level		= 0;
    pMob->act		= ACT_IS_NPC;
    for( count = 0; count < NUM_AFFECT_VECTORS; count++ )
    {
       pMob->affected_by[count]	= 0;
    }
    pMob->alignment	= 0;

    return pMob;
}
Exemple #6
0
OBJ_INDEX_DATA *new_obj_index( void )
{
    OBJ_INDEX_DATA *pObj;
    int             value;
    int             count;

	pObj = alloc_perm( sizeof( *pObj ) );
	top_obj_index++;

    pObj->next		= NULL;
    pObj->extra_descr	= NULL;
    pObj->affected	= NULL;
    pObj->area		= NULL;
    pObj->name		= str_dup( "no name" );
    pObj->short_descr	= str_dup( "(no short description)" );
    pObj->description	= str_dup( "(no description)" );
    pObj->vnum		= 0;
    pObj->item_type	= TYPE_TRASH;
    for( count = 0; count < NUM_ITEM_EXTRA_VECTORS; count++)
      pObj->extra_flags[count] = 0;
    pObj->wear_flags	= 0;
    pObj->count		= 0;
    pObj->weight	= 0;
    pObj->cost		= 0;

    for ( value = 0; value < 5; value++ )
	pObj->value[value] = 0;

    return pObj;
}
Exemple #7
0
ORGANIZATION *new_org(void)
{
    static ORGANIZATION relg_zero;
    ORGANIZATION *pRlg;
	int rank;//, faction, iClass;

    if (org_free == NULL)
        pRlg = alloc_perm(sizeof(*pRlg));
    else
    {
        pRlg = org_free;
        org_free = org_free->next;
    }
	*pRlg = relg_zero;
	

	
	STRING_NEW(pRlg->pmt_msg);
	STRING_NEW(pRlg->dmt_msg);
	STRING_NEW(pRlg->chan_name);
	STRING_NEW(pRlg->sac_msg );
	STRING_NEW(pRlg->patron);
	STRING_NEW(pRlg->name );

	for(rank = 0; rank < MAX_RELG_RANK ; rank++ )
	{
		
		free_string(pRlg->rank[rank]);
			pRlg->rank[rank] = str_dup(orgrank_table[rank].name );
	}


    VALIDATE(pRlg);
    return pRlg;
}
Exemple #8
0
HELP_DATA *new_help(void)
{
	HELP_DATA *pHelp;
	pHelp = alloc_perm( sizeof(*pHelp));
        pHelp->level = 0;
		return pHelp;
}
Exemple #9
0
/*
 * Snarf a help section.
 */
void load_helps( FILE *fp )
{
    HELP_DATA *pHelp;

    for ( ; ; )
    {
	pHelp		= alloc_perm( sizeof(*pHelp) );
	pHelp->level	= fread_number( fp );
	pHelp->keyword	= fread_string( fp );
	if ( pHelp->keyword[0] == '$' )
	    break;
	pHelp->text	= fread_string( fp );

	if ( !str_cmp( pHelp->keyword, "greeting" ) )
	    help_greeting = pHelp->text;

	if ( help_first == NULL )
	    help_first = pHelp;
	if ( help_last  != NULL )
	    help_last->next = pHelp;

	help_last	= pHelp;
	pHelp->next	= NULL;
	top_help++;
    }

    return;
}
Exemple #10
0
/* Inutilizzata */
BUFFER *new_buf_size(int size)
{
    BUFFER *buffer;

    if (buf_free == NULL)
        buffer = alloc_perm(sizeof(*buffer));
    else
    {
        buffer = buf_free;
        buf_free = buf_free->next;
    }

    buffer->next        = NULL;
    buffer->state       = BUFFER_SAFE;
    buffer->size        = get_size(size);
    if (buffer->size == -1)
    {
        bug("new_buf: buffer size %d too large.",size);
        exit(1);
    }
    buffer->string      = alloc_mem(buffer->size);
    buffer->string[0]   = '\0';
    VALIDATE(buffer);

    return buffer;
}
Exemple #11
0
DESCRIPTOR_DATA *new_descriptor(void)
{
    static DESCRIPTOR_DATA d_zero;
    DESCRIPTOR_DATA *d;

    if (descriptor_free == NULL)
	d = alloc_perm(sizeof(*d));
    else
    {
	d = descriptor_free;
	descriptor_free = descriptor_free->next;
    }
	
    *d = d_zero;
    VALIDATE(d);
    
    d->connected	= CON_GET_NAME;
    d->showstr_head	= NULL;
    d->showstr_point = NULL;
    d->outsize	= 2000;
    d->outtop	= 0;
    d->pEdit		= NULL;			/* OLC */
    d->pString	= NULL;			/* OLC */
    d->editor	= 0;			/* OLC */
    d->outbuf	= alloc_mem( d->outsize );
    
    return d;
}
Exemple #12
0
void note_attach( CHAR_DATA *ch )
{
    NOTE_DATA *pnote;

    if ( ch->pnote )
	return;

    if ( !note_free )
    {
	pnote	  = alloc_perm( sizeof( *ch->pnote ) );
    }
    else
    {
	pnote	  = note_free;
	note_free = note_free->next;
    }

    pnote->next		= NULL;
    pnote->sender	= str_dup( ch->name );
    pnote->date		= str_dup( "" );
    pnote->to_list	= str_dup( "" );
    pnote->subject	= str_dup( "" );
    pnote->text		= str_dup( "" );
    ch->pnote		= pnote;
    return;
}
Exemple #13
0
AREA_DATA *new_area (void)
{
    AREA_DATA *pArea;
    char buf[MAX_INPUT_LENGTH];

    if (!area_free)
    {
        pArea = alloc_perm (sizeof (*pArea));
        top_area++;
    }
    else
    {
        pArea = area_free;
        area_free = area_free->next;
    }

    pArea->next = NULL;
    pArea->name = str_dup ("New area");
/*    pArea->recall           =   ROOM_VNUM_TEMPLE;      ROM OLC */
    pArea->area_flags = AREA_ADDED;
    pArea->security = 1;
    pArea->builders = str_dup ("None");
    pArea->min_vnum = 0;
    pArea->max_vnum = 0;
    pArea->age = 0;
    pArea->nplayer = 0;
    pArea->empty = TRUE;        /* ROM patch */
    sprintf (buf, "area%d.are", pArea->vnum);
    pArea->file_name = str_dup (buf);
    pArea->vnum = top_area - 1;

    return pArea;
}
Exemple #14
0
EXIT_DATA *new_exit (void)
{
    EXIT_DATA *pExit;

    if (!exit_free)
    {
        pExit = alloc_perm (sizeof (*pExit));
        top_exit++;
    }
    else
    {
        pExit = exit_free;
        exit_free = exit_free->next;
    }

    pExit->u1.to_room = NULL;    /* ROM OLC */
    pExit->next = NULL;
/*  pExit->vnum         =   0;                        ROM OLC */
    pExit->exit_info = 0;
    pExit->key = 0;
    pExit->keyword = &str_empty[0];
    pExit->description = &str_empty[0];
    pExit->rs_flags = 0;

    return pExit;
}
Exemple #15
0
SHOP_DATA *new_shop (void)
{
    SHOP_DATA *pShop;
    int buy;

    if (!shop_free)
    {
        pShop = alloc_perm (sizeof (*pShop));
        top_shop++;
    }
    else
    {
        pShop = shop_free;
        shop_free = shop_free->next;
    }

    pShop->next = NULL;
    pShop->keeper = 0;

    for (buy = 0; buy < MAX_TRADE; buy++)
        pShop->buy_type[buy] = 0;

    pShop->profit_buy = 100;
    pShop->profit_sell = 100;
    pShop->open_hour = 0;
    pShop->close_hour = 23;

    return pShop;
}
Exemple #16
0
PROG_PAUSE_DATA *new_pause( void )
{
    static PROG_PAUSE_DATA pause_zero;
    PROG_PAUSE_DATA *tmp;
    int count;

    if (pause_free == NULL)
        tmp = alloc_perm(sizeof(*tmp));
    else {
        tmp = pause_free;
        pause_free = pause_free->next;
    }

    *tmp = pause_zero;
    tmp->room = NULL;
    tmp->obj = NULL;
    tmp->actor = NULL;
    tmp->player = NULL;
    tmp->pause = 0;
    tmp->vnum = 0;
    tmp->code = str_dup("");
    tmp->arg1 = NULL;
    tmp->arg2 = NULL;
    tmp->lines = 0;
    for (count = 0; count < MAX_NESTED_LEVEL; count++)
    {
        tmp->state[count] = 0;
        tmp->cond[count] = FALSE;
    }
    tmp->level = 0;
    tmp->set = FALSE;
    VALIDATE (tmp);

    return tmp;
}
Exemple #17
0
/*
 * Snarf a shop section.
 */
void load_shops( FILE *fp )
{
    SHOP_DATA *pShop;

    for ( ; ; )
    {
	MOB_INDEX_DATA *pMobIndex;
	int iTrade;

	pShop			= alloc_perm( sizeof(*pShop) );
	pShop->keeper		= fread_number( fp );
	if ( pShop->keeper == 0 )
	    break;
	for ( iTrade = 0; iTrade < MAX_TRADE; iTrade++ )
	    pShop->buy_type[iTrade]	= fread_number( fp );
	pShop->profit_buy	= fread_number( fp );
	pShop->profit_sell	= fread_number( fp );
	pShop->open_hour	= fread_number( fp );
	pShop->close_hour	= fread_number( fp );
				  fread_to_eol( fp );
	pMobIndex		= get_mob_index( pShop->keeper );
	pMobIndex->pShop	= pShop;

	if ( shop_first == NULL )
	    shop_first = pShop;
	if ( shop_last  != NULL )
	    shop_last->next = pShop;

	shop_last	= pShop;
	pShop->next	= NULL;
	top_shop++;
    }

    return;
}
Exemple #18
0
/*
 * Allocate some ordinary memory,
 *   with the expectation of freeing it someday.
 */
void *alloc_mem( int sMem )
{
    void *pMem;
    int iList;

    for ( iList = 0; iList < MAX_MEM_LIST; iList++ )
    {
	if ( sMem <= rgSizeList[iList] )
	    break;
    }

    if ( iList == MAX_MEM_LIST )
    {
	bug( "Alloc_mem: size %d too large.", sMem );
	exit( 1 );
    }

    if ( rgFreeList[iList] == NULL )
    {
	pMem		  = alloc_perm( rgSizeList[iList] );
    }
    else
    {
	pMem              = rgFreeList[iList];
	rgFreeList[iList] = * ((void **) rgFreeList[iList]);
    }

    return pMem;
}
Exemple #19
0
PC_DATA *new_pcdata( void )
{
	static PC_DATA	pcdata_zero;
	PC_DATA			*pcdata;
	int				alias;
	/*~~~~~~~~~~~~~~~~~~~~~~~~*/

	if ( pcdata_free == NULL )
		pcdata = alloc_perm( sizeof(*pcdata) );
	else
	{
		pcdata = pcdata_free;
		pcdata_free = pcdata_free->next;
	}

	*pcdata = pcdata_zero;

	for ( alias = 0; alias < MAX_ALIAS; alias++ )
	{
		pcdata->alias[alias]	 = NULL;
		pcdata->alias_sub[alias] = NULL;
	}

	pcdata->buffer = new_buf( );

	VALIDATE( pcdata );
	return( pcdata );
}
Exemple #20
0
GEN_DATA *new_gen_data(void)
{
    static GEN_DATA gen_zero;
    bool * tempgendata;
    GEN_DATA *gen;

    if (gen_data_free == NULL)
	gen = alloc_perm(sizeof(*gen));
    else
    {
	gen = gen_data_free;
	gen_data_free = gen_data_free->next;
    }
    *gen = gen_zero;

    tempgendata = realloc( gen->skill_chosen, sizeof( bool ) * MAX_SKILL );
    gen->skill_chosen			= tempgendata;
    gen->skill_chosen[MAX_SKILL-1]	= 0;

    tempgendata = realloc( gen->group_chosen, sizeof( bool ) * MAX_GROUP );
    gen->group_chosen			= tempgendata;
    gen->group_chosen[MAX_GROUP-1]	= 0;




    VALIDATE(gen);
    return gen;
}
Exemple #21
0
/*
 * Allocate some ordinary memory,
 *   with the expectation of freeing it someday.
 */
void *alloc_mem(int sMem) {
	void *pMem;
	int *magic;
	int iList;

	sMem += sizeof(*magic);

	for (iList = 0; iList < MAX_MEM_LIST; iList++) {
		if (sMem <= rgSizeList[iList])
			break;
	}

	if (iList == MAX_MEM_LIST) {
		bug("Alloc_mem: size %d too large.", sMem);
		exit(1);
	}

	if (rgFreeList[iList] == NULL) {
		pMem = alloc_perm(rgSizeList[iList]);
	} else {
		pMem = rgFreeList[iList];
		rgFreeList[iList] = * ((void **) rgFreeList[iList]);
	}

	magic = (int *) pMem;
	*magic = MAGIC_NUM;
	pMem += sizeof(*magic);
	return pMem;
}
Exemple #22
0
PC_DATA *new_pcdata(void)
{
    int cnt;

    static PC_DATA pcdata_zero;
    PC_DATA *pcdata;

    if (pcdata_free == NULL)
	pcdata = alloc_perm(sizeof(*pcdata));
    else
    {
	pcdata = pcdata_free;
	pcdata_free = pcdata_free->next;
    }

    *pcdata = pcdata_zero;

    for (cnt = 0; cnt < MAX_ALIAS; cnt++)
    {
	pcdata->alias[cnt] = NULL;
	pcdata->alias_sub[cnt] = NULL;
    }

    for (cnt = 0; cnt < MAX_IGNORE; cnt++) {
        pcdata->ignore[cnt] = NULL;
    }
    
    for (cnt = 0; cnt < MAX_DISGUISE; cnt++) {
       pcdata->disguise[cnt] = NULL;
    }

    pcdata->buffer = new_buf();
    pcdata->polls = str_dup("");

#if !defined(FIRST_BOOT)
    pcdata->learned = new_learned();
    pcdata->group_known = new_gknown();
#endif

    pcdata->reward_multiplier = 0;
    pcdata->reward_time = current_time; 
    
    pcdata->keepoldstats = FALSE;
    pcdata->referrer = str_dup("");
    pcdata->forcespark = 0;
    pcdata->forceinsanity = 0;
    pcdata->timeoutstamp = 0;
    pcdata->rprewardtimer = 0;
    pcdata->rpbonus = 0;
    pcdata->bondcount = 0;
    pcdata->bondedbysex = 0;
    pcdata->createangrealcount = 0;
    pcdata->next_24hourangreal = 0;
    pcdata->next_createangreal = 0;
    pcdata->keys = NULL;
    
    VALIDATE(pcdata);
    return pcdata;
}
Exemple #23
0
MOB_INDEX_DATA *new_mob_index(void)
{
    MOB_INDEX_DATA *pMob;

    if (!mob_index_free)
    {
        pMob = alloc_perm(sizeof(*pMob));
        top_mob_index++;
    }
    else
    {
        pMob = mob_index_free;
        mob_index_free = mob_index_free->next;
    }

    pMob->next = NULL;
    pMob->spec_fun = NULL;
    pMob->pShop = NULL;
    pMob->area = NULL;
    pMob->player_name = str_dup("no name");
    pMob->short_descr = str_dup("(no short description)");
    pMob->long_descr = str_dup("(no long description)\r\n");
    pMob->description = &str_empty[0];
    pMob->vnum = 0;
    pMob->count = 0;
    pMob->killed = 0;
    pMob->sex = 0;
    pMob->level = 0;
    pMob->act = ACT_IS_NPC;
    pMob->affected_by = 0;
    pMob->alignment = 2;
    pMob->hitroll = 0;
    pMob->race = race_lookup("human");    /* - Hugin */
    pMob->form = 0;                /* ROM patch -- Hugin */
    pMob->parts = 0;            /* ROM patch -- Hugin */
    pMob->imm_flags = 0;        /* ROM patch -- Hugin */
    pMob->res_flags = 0;        /* ROM patch -- Hugin */
    pMob->vuln_flags = 0;        /* ROM patch -- Hugin */
    pMob->material = str_dup("unknown");    /* -- Hugin */
    pMob->off_flags = 0;        /* ROM patch -- Hugin */
    pMob->size = SIZE_MEDIUM;    /* ROM patch -- Hugin */
    pMob->ac[AC_PIERCE] = 0;    /* ROM patch -- Hugin */
    pMob->ac[AC_BASH] = 0;        /* ROM patch -- Hugin */
    pMob->ac[AC_SLASH] = 0;        /* ROM patch -- Hugin */
    pMob->ac[AC_EXOTIC] = 0;    /* ROM patch -- Hugin */
    pMob->hit[DICE_NUMBER] = 0;    /* ROM patch -- Hugin */
    pMob->hit[DICE_TYPE] = 0;    /* ROM patch -- Hugin */
    pMob->hit[DICE_BONUS] = 0;    /* ROM patch -- Hugin */
    pMob->mana[DICE_NUMBER] = 0;    /* ROM patch -- Hugin */
    pMob->mana[DICE_TYPE] = 0;    /* ROM patch -- Hugin */
    pMob->mana[DICE_BONUS] = 0;    /* ROM patch -- Hugin */
    pMob->damage[DICE_NUMBER] = 0;    /* ROM patch -- Hugin */
    pMob->damage[DICE_TYPE] = 0;    /* ROM patch -- Hugin */
    pMob->damage[DICE_NUMBER] = 0;    /* ROM patch -- Hugin */
    pMob->start_pos = POS_STANDING;    /*  -- Hugin */
    pMob->default_pos = POS_STANDING;    /*  -- Hugin */
    pMob->wealth = 0;
    return pMob;
}
Exemple #24
0
/*
 * Take a social data from the free list and clean it out.
 */
SOC_INDEX_DATA *new_social( void )
{
    SOC_INDEX_DATA *soc;

    soc		= (SOC_INDEX_DATA *) alloc_perm( sizeof( SOC_INDEX_DATA ) );

    clear_social( soc );

    return soc;
}
Exemple #25
0
HELP_DATA * new_help ( void )
{
	HELP_DATA * help;

      help		= alloc_perm( sizeof( *help ) );
      help->level    = 0;
      help->keyword = str_dup("");
      help->text    = str_dup("");
      help->next    = NULL;

	return help;
}
Exemple #26
0
CHAR_DATA *new_char( void )
{
	static CHAR_DATA	ch_zero;
	CHAR_DATA			*ch;
	int					i;
	/*~~~~~~~~~~~~~~~~~~~~~~~~*/

	if ( char_free == NULL )
		ch = alloc_perm( sizeof(*ch) );
	else
	{
		ch = char_free;
		char_free = char_free->next;
	}

	*ch = ch_zero;
	VALIDATE( ch );
	ch->name = &str_empty[0];
	ch->short_descr = &str_empty[0];
	ch->long_descr = &str_empty[0];
	ch->description = &str_empty[0];
	ch->prompt = &str_empty[0];
	ch->prefix = &str_empty[0];
	ch->logon = current_time;
	ch->lines = PAGELEN;
	for ( i = 0; i < 4; i++ )
		ch->armor[i] = 100;
	ch->position = POS_STAND;
	ch->point[LIFE]		= 20;
	ch->max_point[LIFE] = 20;
	ch->point[MANA]		= 100;
	ch->max_point[MANA] = 100;
	ch->point[MOVE]		= 100;
	ch->max_point[MOVE] = 100;

	ch->ethos = 0;
	ch->cabal = 0;
	ch->hometown = 0;
	ch->guarded_by = NULL;
	ch->guarding = NULL;
	ch->doppel = NULL;
	ch->language = LANG_COMMON;

	for ( i = 0; i < MAX_STATS; i++ )
	{
		ch->perm_stat[i] = 13;
		ch->mod_stat[i] = 0;
	}

	return( ch );
}
Exemple #27
0
NOTE_DATA *new_note()
{
    NOTE_DATA *note;

    if (note_free == NULL)
	note = alloc_perm(sizeof(*note));
    else
    { 
	note = note_free;
	note_free = note_free->next;
    }
    VALIDATE(note);
    return note;
}
Exemple #28
0
/*
 * Create an instance of a mobile.
 */
CHAR_DATA *create_mobile( MOB_INDEX_DATA *pMobIndex )
{
    CHAR_DATA *mob;

    if ( pMobIndex == NULL )
    {
	bug( "Create_mobile: NULL pMobIndex.", 0 );
	exit( 1 );
    }

    if ( char_free == NULL )
    {
	mob		= alloc_perm( sizeof(*mob) );
    }
    else
    {
	mob		= char_free;
	char_free	= char_free->next;
    }

    clear_char( mob );
    mob->pIndexData	= pMobIndex;

    mob->name		= pMobIndex->player_name;
    mob->short_descr	= pMobIndex->short_descr;
    mob->long_descr	= pMobIndex->long_descr;
    mob->description	= pMobIndex->description;
    mob->spec_fun	= pMobIndex->spec_fun;

    mob->level		= number_fuzzy( pMobIndex->level );
    mob->act		= pMobIndex->act;
    mob->affected_by	= pMobIndex->affected_by;
    mob->alignment	= pMobIndex->alignment;
    mob->sex		= pMobIndex->sex;

    mob->armor		= interpolate( mob->level, 100, -100 );

    mob->max_hit	= mob->level * 8 + number_range(
				mob->level * mob->level / 4,
				mob->level * mob->level );
    mob->hit		= mob->max_hit;
	    
    /*
     * Insert in list.
     */
    mob->next		= char_list;
    char_list		= mob;
    pMobIndex->count++;
    return mob;
}
Exemple #29
0
HELP_DATA * new_help ( void )
{
	HELP_DATA * help;

	if ( help_free )
	{
		help		= help_free;
		help_free	= help_free->next;
	}
	else
		help		= alloc_perm( sizeof( *help ) );

	return help;
}
Exemple #30
0
RESET_DATA *new_reset_data( void )
{
    RESET_DATA *pReset;

	pReset = alloc_perm( sizeof( *pReset ) );
	top_reset++;

    pReset->next	= NULL;
    pReset->command	= 'X';
    pReset->arg1	= 0;
    pReset->arg2	= 0;
    pReset->arg3	= 0;

    return pReset;
}