|
@@ -1893,12 +1893,14 @@ int unit_free(struct block_list *bl, int clrtype)
|
|
|
if(md->spawn)
|
|
|
{
|
|
|
md->spawn->active--;
|
|
|
- md->spawn->num--;
|
|
|
|
|
|
- if( !md->spawn->state.dynamic && md->spawn->num == 0 )
|
|
|
- {// Last freed mob is responsible for deallocating the group's spawn data.
|
|
|
- aFree(md->spawn);
|
|
|
- md->spawn = NULL;
|
|
|
+ if( !md->spawn->state.dynamic )
|
|
|
+ {// permanently remove the mob
|
|
|
+ if( --md->spawn->num == 0 )
|
|
|
+ {// Last freed mob is responsible for deallocating the group's spawn data.
|
|
|
+ aFree(md->spawn);
|
|
|
+ md->spawn = NULL;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
if(md->base_status) {
|