--- a/hedgewars/uCollisions.pas Tue Jun 30 00:58:24 2020 +0300
+++ b/hedgewars/uCollisions.pas Tue Jun 30 02:18:54 2020 +0300
@@ -71,6 +71,7 @@
function CheckAllGearsLineCollision(SourceGear: PGear; oX, oY, tX, tY: hwFloat): PGearArray;
function UpdateHitOrder(Gear: PGear; Order: LongInt): boolean; inline;
+function UpdateHitOrder(Gear: PGear; Order: LongInt; Global: boolean): boolean; inline;
function UpdateGlobalHitOrder(Gear: PGear; Order: LongInt): boolean; inline;
procedure ClearHitOrderLeq(MinOrder: LongInt); inline;
procedure ClearGlobalHitOrderLeq(MinOrder: LongInt); inline;
@@ -371,6 +372,14 @@
UpdateHitOrder := UpdateHitOrderImpl(@ordera, Gear, Order);
end;
+function UpdateHitOrder(Gear: PGear; Order: LongInt; Global: boolean): boolean; inline;
+begin
+ if Global then
+ UpdateHitOrder := UpdateHitOrderImpl(@ordera, Gear, Order)
+ else
+ UpdateHitOrder := UpdateHitOrderImpl(@globalordera, Gear, Order)
+end;
+
function UpdateGlobalHitOrder(Gear: PGear; Order: LongInt): boolean; inline;
begin
UpdateGlobalHitOrder := UpdateHitOrderImpl(@globalordera, Gear, Order);
@@ -382,7 +391,7 @@
freeIndex:= 0;
i:= 0;
- while i < ordera.Count do
+ while i < HitOrder^.Count do
begin
if HitOrder^.order[i] <= MinOrder then
Dec(HitOrder^.Count)