hedgewars/GSHandlers.inc
changeset 7477 26706bf32ecf
parent 7468 1333ca7554dc
child 7539 c6ffbc6530e3
equal deleted inserted replaced
7474:bbecb1b4f59b 7477:26706bf32ecf
   608                 Timer:= 0
   608                 Timer:= 0
   609             end;
   609             end;
   610     // move back to cloud layer
   610     // move back to cloud layer
   611         if yy > cWaterLine then
   611         if yy > cWaterLine then
   612             move:= true
   612             move:= true
   613         else if ((yy and LAND_HEIGHT_MASK) <> 0)
   613         else if (xx > snowRight) or (xx < snowLeft) then
   614         or (xx > LAND_WIDTH + 512) or (xx < -512) then
       
   615             move:=true
   614             move:=true
   616         // Solid pixel encountered
   615         // Solid pixel encountered
   617         else if ((xx and LAND_WIDTH_MASK) = 0) and (Land[yy, xx] <> 0) then
   616         else if ((yy and LAND_HEIGHT_MASK) = 0) and ((xx and LAND_WIDTH_MASK) = 0) and (Land[yy, xx] <> 0) then
   618             begin
   617             begin
   619             lf:= Land[yy, xx] and (lfObject or lfBasic or lfIndestructible);
   618             lf:= Land[yy, xx] and (lfObject or lfBasic or lfIndestructible);
   620             // If there's room below keep falling
   619             // If there's room below keep falling
   621             if (((yy-1) and LAND_HEIGHT_MASK) = 0) and (Land[yy-1, xx] = 0) then
   620             if (((yy-1) and LAND_HEIGHT_MASK) = 0) and (Land[yy-1, xx] = 0) then
   622                 begin
   621                 begin
   722         begin
   721         begin
   723         DeleteGear(Gear);
   722         DeleteGear(Gear);
   724         exit
   723         exit
   725         end;
   724         end;
   726     Gear^.Pos:= 0;
   725     Gear^.Pos:= 0;
   727     Gear^.X:= int2hwFloat(GetRandom(LAND_WIDTH+1024)-512);
   726     Gear^.X:= int2hwFloat(GetRandom(snowRight-snowLeft)+snowLeft);
   728     Gear^.Y:= int2hwFloat(750+(GetRandom(50)-25));
   727     Gear^.Y:= int2hwFloat(LAND_HEIGHT-1300+(GetRandom(50)-25));
   729     Gear^.State:= Gear^.State or gstInvisible;
   728     Gear^.State:= Gear^.State or gstInvisible;
   730     end
   729     end
   731 end;
   730 end;
   732 
   731 
   733 ////////////////////////////////////////////////////////////////////////////////
   732 ////////////////////////////////////////////////////////////////////////////////