
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 >>