Pages:<< prev 1 next >>
Geomancer

GroupAdministrators
Posts1,992
JoinedJul 26, 2005
build.c line around line 5026 in do_mpedit find
change it to this
if( !str_cmp( arg2, "delete" ) )
{
int num;
bool found;
if( !mprog )
{
send_to_char( "That mobile has no mob programs.\r\n", ch );
return;
}
argument = one_argument( argument, arg4 );
if( value < 1 )
{
send_to_char( "Program not found.\r\n", ch );
return;
}
cnt = 0;
found = false;
for( mprg = mprog; mprg; mprg = mprg->next )
{
if( ++cnt == value )
{
mptype = mprg->type;
found = true;
break;
}
}
if( !found )
{
send_to_char( "Program not found.\r\n", ch );
return;
}
cnt = num = 0;
for( mprg = mprog; mprg; mprg = mprg->next )
if( mprg->type == mptype )
num++;
if( value == 1 )
{
mprg_next = victim->pIndexData->first_mudprogs;
victim->pIndexData->first_mudprogs = mprg_next->next;
victim->pIndexData->first_mudprogs->prev = NULL; /* That's this line */
}
else
for( mprg = mprog; mprg; mprg = mprg_next )
{
mprg_next = mprg->next;
if( ++cnt == ( value - 1 ) )
{
mprg->next = mprg_next->next;
if( mprg->next )
mprg->next->prev = mprg;
break;
}
}
if( mprg_next )
{
STRFREE( mprg_next->arglist );
STRFREE( mprg_next->comlist );
mprg_next->next = NULL;
mprg_next->prev = NULL;
DISPOSE( mprg_next );
if( num <= 1 )
xREMOVE_BIT( victim->pIndexData->progtypes, mptype );
send_to_char( "Program removed.\r\n", ch );
}
return;
}
change it to this
if( !str_cmp( arg2, "delete" ) )
{
int num;
bool found;
if( !mprog )
{
send_to_char( "That mobile has no mob programs.\r\n", ch );
return;
}
argument = one_argument( argument, arg4 );
if( value < 1 )
{
send_to_char( "Program not found.\r\n", ch );
return;
}
cnt = 0;
found = false;
for( mprg = mprog; mprg; mprg = mprg->next )
{
if( ++cnt == value )
{
mptype = mprg->type;
found = true;
break;
}
}
if( !found )
{
send_to_char( "Program not found.\r\n", ch );
return;
}
cnt = num = 0;
for( mprg = mprog; mprg; mprg = mprg->next )
if( mprg->type == mptype )
num++;
if( value == 1 )
{
mprg_next = victim->pIndexData->first_mudprogs;
victim->pIndexData->first_mudprogs = mprg_next->next;
if( victim->pIndexData->first_mudprogs ) /* Checking here helps keep it from crashing */
victim->pIndexData->first_mudprogs->prev = NULL;
}
else
for( mprg = mprog; mprg; mprg = mprg_next )
{
mprg_next = mprg->next;
if( ++cnt == ( value - 1 ) )
{
mprg->next = mprg_next->next;
if( mprg->next )
mprg->next->prev = mprg;
break;
}
}
if( mprg_next )
{
STRFREE( mprg_next->arglist );
STRFREE( mprg_next->comlist );
mprg_next->next = NULL;
mprg_next->prev = NULL;
DISPOSE( mprg_next );
if( num <= 1 )
xREMOVE_BIT( victim->pIndexData->progtypes, mptype );
send_to_char( "Program removed.\r\n", ch );
}
return;
}
Pages:<< prev 1 next >>