28 end; |
28 end; |
29 |
29 |
30 function SweepDirty: boolean; |
30 function SweepDirty: boolean; |
31 function Despeckle(X, Y: LongInt): boolean; |
31 function Despeckle(X, Y: LongInt): boolean; |
32 function CheckLandValue(X, Y: LongInt; LandFlag: Word): boolean; |
32 function CheckLandValue(X, Y: LongInt; LandFlag: Word): boolean; |
33 function DrawExplosion(X, Y, Radius: LongInt): Longword; |
33 function DrawExplosion(X, Y, Radius: LongInt): Longword; |
34 procedure DrawHLinesExplosions(ar: PRangeArray; Radius: LongInt; y, dY: LongInt; Count: Byte); |
34 procedure DrawHLinesExplosions(ar: PRangeArray; Radius: LongInt; y, dY: LongInt; Count: Byte); |
35 procedure DrawTunnel(X, Y, dX, dY: hwFloat; ticks, HalfWidth: LongInt); |
35 procedure DrawTunnel(X, Y, dX, dY: hwFloat; ticks, HalfWidth: LongInt); |
36 procedure FillRoundInLand(X, Y, Radius: LongInt; Value: Longword); |
36 procedure FillRoundInLand(X, Y, Radius: LongInt; Value: Longword); |
37 procedure ChangeRoundInLand(X, Y, Radius: LongInt; doSet: boolean); |
37 procedure ChangeRoundInLand(X, Y, Radius: LongInt; doSet: boolean); |
38 function LandBackPixel(x, y: LongInt): LongWord; |
38 function LandBackPixel(x, y: LongInt): LongWord; |
39 |
39 |
40 function TryPlaceOnLand(cpX, cpY: LongInt; Obj: TSprite; Frame: LongInt; doPlace: boolean): boolean; |
40 function TryPlaceOnLand(cpX, cpY: LongInt; Obj: TSprite; Frame: LongInt; doPlace: boolean): boolean; |
41 |
41 |
42 implementation |
42 implementation |
43 uses SDLh, uMisc, uLandTexture, uVariables, uUtils; |
43 uses SDLh, uLandTexture, uVariables, uUtils, uIO; |
44 |
44 |
45 procedure FillCircleLines(x, y, dx, dy: LongInt; Value: Longword); |
45 procedure FillCircleLines(x, y, dx, dy: LongInt; Value: Longword); |
46 var i: LongInt; |
46 var i: LongInt; |
47 begin |
47 begin |
48 if ((y + dy) and LAND_HEIGHT_MASK) = 0 then |
48 if ((y + dy) and LAND_HEIGHT_MASK) = 0 then |