Ejemplo n.º 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;
}
Ejemplo n.º 2
0
void free_room_index (ROOM_INDEX_DATA * pRoom)
{
    int door;
    EXTRA_DESCR_DATA *pExtra;
    RESET_DATA *pReset;

    free_string (pRoom->name);
    free_string (pRoom->description);
    free_string (pRoom->owner);

    for (door = 0; door < MAX_DIR; door++)
    {
        if (pRoom->exit[door])
            free_exit (pRoom->exit[door]);
    }

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

    for (pReset = pRoom->reset_first; pReset; pReset = pReset->next)
    {
        free_reset_data (pReset);
    }

    pRoom->next = room_index_free;
    room_index_free = pRoom;
    return;
}
Ejemplo n.º 3
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;
}
Ejemplo n.º 4
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;
}
Ejemplo n.º 5
0
void	DelED(OBJ_DATA * obj, EXTRA_DESCR_DATA * ed)
{
	OBJ_INDEX_DATA *	pObj;
	EXTRA_DESCR_DATA *	eed;
	EXTRA_DESCR_DATA *	ped;
	
	ped=NULL;
	pObj = obj->pIndexData;
	
	for(eed=pObj->extra_descr;eed!=NULL;eed=eed->next)
    {
    	if(eed==ed)
    		break;
    	ped=eed;
    }
    
	if(!ped)
		pObj->extra_descr = ed->next;
	else
		ped->next = ed->next;
	
	free_extra_descr(ed);
}