hedgewars/uAIMisc.pas
changeset 8744 6c87486fd89b
parent 8013 5cbf6e4361f4
child 8751 4609823efc94
equal deleted inserted replaced
8743:0097855532f6 8744:6c87486fd89b
   294 end;
   294 end;
   295 
   295 
   296 function TestColl(x, y, r: LongInt): boolean; inline;
   296 function TestColl(x, y, r: LongInt): boolean; inline;
   297 var b: boolean;
   297 var b: boolean;
   298 begin
   298 begin
   299     b:= (((x-r) and LAND_WIDTH_MASK) = 0) and (((y-r) and LAND_HEIGHT_MASK) = 0) and (Land[y-r, x-r] and $FF7F <> 0);
   299     b:= (((x-r) and LAND_WIDTH_MASK) = 0) and (((y-r) and LAND_HEIGHT_MASK) = 0) and (Land[y-r, x-r] and lfCurrentMask <> 0);
   300     if b then
   300     if b then
   301         exit(true);
   301         exit(true);
   302     
   302     
   303     b:= (((x-r) and LAND_WIDTH_MASK) = 0) and (((y+r) and LAND_HEIGHT_MASK) = 0) and (Land[y+r, x-r] and $FF7F <> 0);
   303     b:= (((x-r) and LAND_WIDTH_MASK) = 0) and (((y+r) and LAND_HEIGHT_MASK) = 0) and (Land[y+r, x-r] and lfCurrentMask <> 0);
   304     if b then
   304     if b then
   305         exit(true);
   305         exit(true);
   306     
   306     
   307     b:= (((x+r) and LAND_WIDTH_MASK) = 0) and (((y-r) and LAND_HEIGHT_MASK) = 0) and (Land[y-r, x+r] and $FF7F <> 0);
   307     b:= (((x+r) and LAND_WIDTH_MASK) = 0) and (((y-r) and LAND_HEIGHT_MASK) = 0) and (Land[y-r, x+r] and lfCurrentMask <> 0);
   308     if b then
   308     if b then
   309         exit(true);
   309         exit(true);
   310     
   310     
   311     b:= (((x+r) and LAND_WIDTH_MASK) = 0) and (((y+r) and LAND_HEIGHT_MASK) = 0) and (Land[y+r, x+r] and $FF7F <> 0);
   311     b:= (((x+r) and LAND_WIDTH_MASK) = 0) and (((y+r) and LAND_HEIGHT_MASK) = 0) and (Land[y+r, x+r] and lfCurrentMask <> 0);
   312     if b then
   312     if b then
   313         exit(true);
   313         exit(true);
   314     
   314     
   315     TestColl:= false;
   315     TestColl:= false;
   316 end;
   316 end;
   710 
   710 
   711 function HHGo(Gear, AltGear: PGear; var GoInfo: TGoInfo): boolean;
   711 function HHGo(Gear, AltGear: PGear; var GoInfo: TGoInfo): boolean;
   712 var pX, pY, tY: LongInt;
   712 var pX, pY, tY: LongInt;
   713 begin
   713 begin
   714 HHGo:= false;
   714 HHGo:= false;
   715 Gear^.CollisionMask:= $FF7F;
   715 Gear^.CollisionMask:= lfCurrentMask;
   716 AltGear^:= Gear^;
   716 AltGear^:= Gear^;
   717 
   717 
   718 GoInfo.Ticks:= 0;
   718 GoInfo.Ticks:= 0;
   719 GoInfo.FallPix:= 0;
   719 GoInfo.FallPix:= 0;
   720 GoInfo.JumpType:= jmpNone;
   720 GoInfo.JumpType:= jmpNone;