; Resets the calculated damage impact for Bodywork, Suspension and Engine damage,
; thereby triggering a full recalculation.

{All: [?%activation%], {Any: [?Damage.Bodywork], [?Damage.Suspension], [?Damage.Engine]}} =>
		(Prove: Damage.Impact.resetDamage([Bodywork, Suspension, Engine])),
		(Clear: Damage.Analysis.Reported), (Clear: %activation%)

Damage.Impact.resetDamage([])
Damage.Impact.resetDamage([?damageType | ?damageTypes]) <=
		Damage.Impact.resetDamage(?damageType), Damage.Impact.resetDamage(?damageTypes)

Damage.Impact.resetDamage(?damageType) <=
		Get(Damage, ?damageType, ?damage), ?damage > 0, Clear(Damage.Repair, ?damageType, Target),
		Set(Damage, ?damageType, Reported, !Lap), Damage.Impact.clearDamageReferenceLaps(!Lap, ?damageType)

Damage.Impact.clearDamageReferenceLaps(0, ?) <= !
Damage.Impact.clearDamageReferenceLaps(?lap, ?damageType) <=
		Clear(Lap, ?lap, Damage, ?damageType, Lap.Reference),
		?nLap = ?lap - 1, clearDamageReferenceLaps(?nLap, ?damageType)