hedgewars/uCollisions.pas
changeset 15656 c34cad72cd85
parent 15655 116307c752f6
child 15674 f5b127ee3196
equal deleted inserted replaced
15655:116307c752f6 15656:c34cad72cd85
    69 
    69 
    70 function  CheckGearsLineCollision(Gear: PGear; oX, oY, tX, tY: hwFloat): PGearArray;
    70 function  CheckGearsLineCollision(Gear: PGear; oX, oY, tX, tY: hwFloat): PGearArray;
    71 function  CheckAllGearsLineCollision(SourceGear: PGear; oX, oY, tX, tY: hwFloat): PGearArray;
    71 function  CheckAllGearsLineCollision(SourceGear: PGear; oX, oY, tX, tY: hwFloat): PGearArray;
    72 
    72 
    73 function  UpdateHitOrder(Gear: PGear; Order: LongInt): boolean; inline;
    73 function  UpdateHitOrder(Gear: PGear; Order: LongInt): boolean; inline;
       
    74 function  UpdateHitOrder(Gear: PGear; Order: LongInt; Global: boolean): boolean; inline;
    74 function  UpdateGlobalHitOrder(Gear: PGear; Order: LongInt): boolean; inline;
    75 function  UpdateGlobalHitOrder(Gear: PGear; Order: LongInt): boolean; inline;
    75 procedure ClearHitOrderLeq(MinOrder: LongInt); inline;
    76 procedure ClearHitOrderLeq(MinOrder: LongInt); inline;
    76 procedure ClearGlobalHitOrderLeq(MinOrder: LongInt); inline;
    77 procedure ClearGlobalHitOrderLeq(MinOrder: LongInt); inline;
    77 procedure ClearHitOrder();
    78 procedure ClearHitOrder();
    78 
    79 
   369 function UpdateHitOrder(Gear: PGear; Order: LongInt): boolean; inline;
   370 function UpdateHitOrder(Gear: PGear; Order: LongInt): boolean; inline;
   370 begin
   371 begin
   371     UpdateHitOrder := UpdateHitOrderImpl(@ordera, Gear, Order);
   372     UpdateHitOrder := UpdateHitOrderImpl(@ordera, Gear, Order);
   372 end;
   373 end;
   373 
   374 
       
   375 function UpdateHitOrder(Gear: PGear; Order: LongInt; Global: boolean): boolean; inline;
       
   376 begin
       
   377     if Global then
       
   378         UpdateHitOrder := UpdateHitOrderImpl(@ordera, Gear, Order)
       
   379     else
       
   380         UpdateHitOrder := UpdateHitOrderImpl(@globalordera, Gear, Order)
       
   381 end;
       
   382 
   374 function UpdateGlobalHitOrder(Gear: PGear; Order: LongInt): boolean; inline;
   383 function UpdateGlobalHitOrder(Gear: PGear; Order: LongInt): boolean; inline;
   375 begin
   384 begin
   376     UpdateGlobalHitOrder := UpdateHitOrderImpl(@globalordera, Gear, Order);
   385     UpdateGlobalHitOrder := UpdateHitOrderImpl(@globalordera, Gear, Order);
   377 end;
   386 end;
   378 
   387 
   380 var i, freeIndex: LongInt;
   389 var i, freeIndex: LongInt;
   381 begin;
   390 begin;
   382     freeIndex:= 0;
   391     freeIndex:= 0;
   383     i:= 0;
   392     i:= 0;
   384 
   393 
   385     while i < ordera.Count do
   394     while i < HitOrder^.Count do
   386     begin
   395     begin
   387         if HitOrder^.order[i] <= MinOrder then
   396         if HitOrder^.order[i] <= MinOrder then
   388             Dec(HitOrder^.Count)
   397             Dec(HitOrder^.Count)
   389         else
   398         else
   390         begin
   399         begin