In general I think the broken and dancing code works quiet good,
It seems but there is something fishy.
Example : A squad is broken. Its tactic enters the substate for broken and the squad is listed in the table for InSubState(). Usually it will be removed from this table while no longer broken and it can return to its last tactic state.
Now often it is not removed from this table. It seems that some other code has erased/overruled the substate and therefore the standard function for resetting the substate is no longer called.
This happened once in a while with the old move code before you changed things. Now it happens much more often.
I have some extra emergency code, function InfantryTactic:SyncSubState(), which is now resetting states much more often.
Therefore I guess some/all of you move code is not checking for substates and just overwriting them with new move orders. All standard movements should check for moving only while InSubState(squad_id) is NOT true.
Will investigate further.
I think the avoid death is working as I see ranged squads break of while being outnumbered in firefight.
Edited by LarkinVB, 19 April 2006 - 10:02 AM.