void underwater_update( void )
{
CHAR_DATA *ch;
CHAR_DATA *ch_next;
for ( ch = char_list; ch != NULL; ch = ch_next)
{
ch_next = ch->next;
void underwater_update( void )
{
CHAR_DATA *ch;
DESCRIPTOR_DATA *d;
for ( d = descriptor_list; d; d = d->next )
{
if ( d->connected != CON_PLAYING )
continue;
ch = d->original ? d->original : d->character;
#0 0x00077898 in affect_modify (ch=0x15ee430, paf=0x42abf90, fAdd=0 '\0') at handler.c:1456
#1 0x000780e8 in affect_remove (ch=0x15ee430, paf=0x42abf90) at handler.c:1776
#2 0x000d644c in char_update () at update.c:1351
#3 0x000d75a8 in update_handler () at update.c:2043
#4 0x00048800 in game_loop_unix (mud_desc=5) at comm.c:538
#5 0x00048d04 in main (argc=1280688, argv=0x240c90) at comm.c:295
(gdb) list
1451 {
1452 if ( ( tmp != paf ) && ( tmp->bitvector == paf->bitvector ) && ( tmp->where == paf->where ) )
1453 duplicate = TRUE;
1454 break;
1455 }
1456 for ( tmp = objtmp->pIndexData->affected;
1457 tmp != NULL; tmp = tmp->next )
1458 {
1459 if ( ( tmp != paf ) && ( tmp->bitvector == paf->bitvector ) && ( tmp->where == paf->where ) )
1460 duplicate = TRUE;
(gdb) up
#1 0x000780e8 in affect_remove (ch=0x15ee430, paf=0x42abf90) at handler.c:1776
1776 affect_modify ( ch, paf, FALSE );
(gdb) list
1771 {
1772 bugf ( "Affect_remove: no affect." );
1773 return;
1774 }
1775
1776 affect_modify ( ch, paf, FALSE );
1777
1778 if ( paf == ch->affected )
1779 {
1780 ch->affected = paf->next;
(gdb) up
#2 0x000d644c in char_update () at update.c:1351
l1351 affect_remove ( ch, paf );
is(gdb) list
1346 }
1347 }
1348 /* Zeran - undo masked descriptions */
1349 if ( paf->bitvector == AFF_POLY )
1350 undo_mask ( ch );
1351 affect_remove ( ch, paf );
1352 }
1353 }
1354
1355 /*
for ( tmp = objtmp->pIndexData->affected;
void affect_remove ( CHAR_DATA * ch, AFFECT_DATA * paf )
{
if ( ch->affected == NULL )
{
bugf ( "Affect_remove: no affect." );
return;
}
affect_modify ( ch, paf, FALSE );
if ( paf == ch->affected )
{
ch->affected = paf->next;
}
else
{
AFFECT_DATA *prev;
for ( prev = ch->affected; prev != NULL; prev = prev->next )
{
if ( prev->next == paf )
{
prev->next = paf->next;
break;
}
}
if ( prev == NULL )
{
bugf ( "Affect_remove: cannot find paf." );
return;
}
}
paf->next = affect_free;
// affect_free = paf;
affect_free = paf->next;
return;
}
// affect_free = paf;
affect_free = paf->next;
That's one of them I'll post another after I get a better gdb out of it.