Cleanup also removes dead units.

This commit is contained in:
johns 2001-04-29 21:01:12 +00:00
parent 9917ac3687
commit b613e1d06b

View file

@ -64,6 +64,15 @@ local void AiCleanForce(int force)
*prev=aiunit->Next;
free(aiunit);
continue;
} else if( !aiunit->Unit->HP
|| aiunit->Unit->Orders[0].Action==UnitActionDie ) {
RefsDebugCheck( !aiunit->Unit->Refs );
--aiunit->Unit->Refs;
RefsDebugCheck( !aiunit->Unit->Refs );
AiPlayer->Force[force].Completed=0;
*prev=aiunit->Next;
free(aiunit);
continue;
}
prev=&aiunit->Next;
}
@ -168,6 +177,8 @@ global void AiAttackWithForceAt(int force,int x,int y)
{
const AiUnit* aiunit;
AiCleanForce(force);
AiPlayer->Force[force].Attacking=1;
aiunit=AiPlayer->Force[force].Units;
@ -190,6 +201,8 @@ global void AiAttackWithForce(int force)
const AiUnit* aiunit;
const Unit* enemy;
AiCleanForce(force);
AiPlayer->Force[force].Attacking=1;
aiunit=AiPlayer->Force[force].Units;