Don't know if this will help, but here is how ours is done (using "delete"
instead of clear)
if ( !str_cmp( command, "delete" ) )
{
EXTRA_DESCR_DATA *ped = NULL;
if ( keyword[0] == '\0' )
{
send_to_char( "Syntax: ed delete [keyword]\n\r", ch );
return FALSE;
}
for ( ed = pObj->extra_descr; ed; ed = ed->next )
{
if ( is_name( keyword, ed->keyword ) )
break;
ped = ed;
}
if ( !ed )
{
send_to_char( "OEdit: Extra description keyword not
found.\n\r", ch );
return FALSE;
}
if ( !ped )
pObj->extra_descr = ed->next;
else
ped->next = ed->next;
free_extra_descr( ed );
send_to_char( "Extra description deleted.\n\r", ch );
return TRUE;
}
- Valnir
----- Original Message -----
From: "Hiddukel" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Thursday, January 22, 2004 7:16 PM
Subject: Clearing extra descriptions
I am seriously confused on this. What I am trying to do is clear all of the
extra descriptions from an object. I can add any number of extra
descriptions to an object but when I try to clear them using this code it
always leaves the first one. I have seen this exact same method used in olc
delete functions and I can't for the life of me figure out why it leaves the
first one in the list. Btw, I also get output saying that it is clearing
the first extra description even though it remains after the clear.
Here is the code in question:
if (!str_cmp(command, "clear"))
{
EXTRA_DESCR_DATA *ed_next = NULL;
for (ed = pObj->extra_descr; ed; ed = ed_next)
{
ed_next = ed->next;
ptc(ch, "Clearing exra description: %s\n\r", ed->keyword);
free_extra_descr(ed);
}
return TRUE;
}
I will also post the free_extra_descr function even though I believe it is
stock.
void free_extra_descr(EXTRA_DESCR_DATA * ed)
{
if (!IS_VALID(ed))
return;
free_string(ed->keyword);
free_string(ed->description);
INVALIDATE(ed);
ed->next = extra_descr_free;
extra_descr_free = ed;
}
If I am not mistaken clearing affects from objects would be done in a
similar way also, if I am mistaken about that then I would like to know how
that is done as well. I appreciate any and all help on this
--
ROM mailing list
[email protected]
http://www.rom.org/cgi-bin/mailman/listinfo/rom