equal
deleted
inserted
replaced
623 inc(Timer); |
623 inc(Timer); |
624 if Timer = vobFramesCount then Timer:= 0 |
624 if Timer = vobFramesCount then Timer:= 0 |
625 end; |
625 end; |
626 // move back to cloud layer |
626 // move back to cloud layer |
627 if yy > cWaterLine then move:= true |
627 if yy > cWaterLine then move:= true |
628 else if ((yy and LAND_HEIGHT_MASK) <> 0) or ((xx and LAND_WIDTH_MASK) <> 0) then move:=true |
628 else if ((yy and LAND_HEIGHT_MASK) <> 0) or (xx > LAND_WIDTH + 512) or (xx < -512) then move:=true |
629 // Solid pixel encountered |
629 // Solid pixel encountered |
630 else if (Land[yy, xx] <> 0) then |
630 else if (Land[yy, xx] <> 0) then |
631 begin |
631 begin |
632 // If there's room below keep falling |
632 // If there's room below keep falling |
633 if (((yy-1) and LAND_HEIGHT_MASK) = 0) and (Land[yy-1, xx] = 0) then |
633 if (((yy-1) and LAND_HEIGHT_MASK) = 0) and (Land[yy-1, xx] = 0) then |
4532 dec(Gear^.Timer); |
4532 dec(Gear^.Timer); |
4533 Gear^.X:= Gear^.X + Gear^.dX; |
4533 Gear^.X:= Gear^.X + Gear^.dX; |
4534 Gear^.Y:= Gear^.Y + Gear^.dY; |
4534 Gear^.Y:= Gear^.Y + Gear^.dY; |
4535 Gear^.dX := Gear^.dX + cWindSpeed / 4; |
4535 Gear^.dX := Gear^.dX + cWindSpeed / 4; |
4536 Gear^.dY := Gear^.dY + cGravity / 100; |
4536 Gear^.dY := Gear^.dY + cGravity / 100; |
4537 if (GameTicks mod 250) = 0 then |
4537 if (GameTicks and $FF) = 0 then |
4538 doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 20, Gear^.Hedgehog, EXPLDontDraw or EXPLNoGfx or EXPLNoDamage or EXPLDoNotTouchAny or EXPLPoisoned); |
4538 doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 20, Gear^.Hedgehog, EXPLDontDraw or EXPLNoGfx or EXPLNoDamage or EXPLDoNotTouchAny or EXPLPoisoned); |
4539 AllInactive:= false; |
4539 AllInactive:= false; |
4540 end; |
4540 end; |
4541 |
4541 |
4542 //////////////////////////////////////////////////////////////////////////////// |
4542 //////////////////////////////////////////////////////////////////////////////// |