Beispiel #1
0
void free_obj( OBJ_DATA *obj )
{
	AFFECT_DATA			*paf, *paf_next;
	EXTRA_DESCR_DATA	*ed, *ed_next;
	/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

	if ( !IS_VALID(obj) )
		return;

	for ( paf = obj->affected; paf != NULL; paf = paf_next )
	{
		paf_next = paf->next;
		free_affect( paf );
	}

	obj->affected = NULL;

	for ( ed = obj->extra_descr; ed != NULL; ed = ed_next )
	{
		ed_next = ed->next;
		free_extra_descr( ed );
	}

	obj->extra_descr = NULL;

	free_string( obj->name );
	free_string( obj->description );
	free_string( obj->short_descr );
	free_string( obj->owner );
	INVALIDATE( obj );

	obj->next = obj_free;
	obj_free = obj;
}
Beispiel #2
0
void free_obj_index( OBJ_INDEX_DATA *pObj )
{
	EXTRA_DESCR_DATA *pExtra, *wExtra;
	AFFECT_DATA *pAf, *wAf;

	free_string( pObj->name );
	free_string( pObj->short_descr );
	free_string( pObj->description );

	for ( pAf = pObj->affected; pAf; pAf = wAf )
	{
		wAf = pAf->next;
		free_affect( pAf );
	}

	for ( pExtra = pObj->extra_descr; pExtra; pExtra = wExtra )
	{
		wExtra = pExtra->next;
		free_extra_descr( pExtra );
	}

	pObj->next = obj_index_free;
	obj_index_free = pObj;
	return;
}
Beispiel #3
0
void free_obj_index( OBJ_INDEX_DATA *pObj )
{
    EXTRA_DESCR_DATA *pExtra;
    AFFECT_DATA *pAf;

    free_string( pObj->name );
    free_string( pObj->name2 );
    free_string( pObj->name3 );
    free_string( pObj->name4 );
    free_string( pObj->name5 );
    free_string( pObj->name6 );
    free_string( pObj->short_descr );
    free_string( pObj->description );
    free_string( pObj->item_description );
    free_string( pObj->ident_description );
	free_string( pObj->hidden_description );
    free_string( pObj->comments );

    for ( pAf = pObj->affected; pAf; pAf = pAf->next )
    {
        free_affect( pAf );
    }

    for ( pExtra = pObj->extra_descr; pExtra; pExtra = pExtra->next )
    {
        free_extra_descr( pExtra );
    }

    pObj->next              = obj_index_free;
    obj_index_free          = pObj;
    free_prog( pObj->progs );
    return;
}
Beispiel #4
0
void free_bonus_index( BONUS_INDEX_DATA *pBonus )
{
    AFFECT_DATA *pAf;

    free_string( pBonus->name );
    free_string( pBonus->description );
    free_string( pBonus->comments );
    free_string( pBonus->wear_prog );
    free_string( pBonus->remove_prog );

    for ( pAf = pBonus->affects; pAf; pAf = pAf->next )
    {
        free_affect( pAf );
    }

    pBonus->next     = bonus_index_free;
    bonus_index_free = pBonus;

    return;
}