20 |
20 |
21 unit uVisualGearsList; |
21 unit uVisualGearsList; |
22 interface |
22 interface |
23 uses uTypes; |
23 uses uTypes; |
24 |
24 |
25 function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType): PVisualGear; inline; |
25 function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType): PVisualGear; |
26 function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType; State: LongWord): PVisualGear; inline; |
26 function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType; State: LongWord): PVisualGear; |
27 function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType; State: LongWord; Critical: Boolean): PVisualGear; inline; |
27 function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType; State: LongWord; Critical: Boolean): PVisualGear; |
28 function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType; State: LongWord; Critical: Boolean; Layer: LongInt): PVisualGear; |
28 function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType; State: LongWord; Critical: Boolean; Layer: LongInt): PVisualGear; |
29 procedure DeleteVisualGear(Gear: PVisualGear); |
29 procedure DeleteVisualGear(Gear: PVisualGear); |
30 function VisualGearByUID(uid : Longword) : PVisualGear; |
30 function VisualGearByUID(uid : Longword) : PVisualGear; |
31 |
31 |
32 const |
32 const |
37 VisualGearLayersEnd: array[0..6] of PVisualGear; |
37 VisualGearLayersEnd: array[0..6] of PVisualGear; |
38 |
38 |
39 implementation |
39 implementation |
40 uses uCollisions, uFloat, uVariables, uConsts, uTextures, uVisualGearsHandlers, uScript; |
40 uses uCollisions, uFloat, uVariables, uConsts, uTextures, uVisualGearsHandlers, uScript; |
41 |
41 |
42 function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType): PVisualGear; inline; |
42 function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType): PVisualGear; |
43 begin |
43 begin |
44 // adjust some visual gear types if underwater |
44 // adjust some visual gear types if underwater |
45 if CheckCoordInWater(X, Y) and ((Kind = vgtBeeTrace) or (Kind = vgtSmokeTrace) or (Kind = vgtEvilTrace)) then |
45 if CheckCoordInWater(X, Y) and ((Kind = vgtBeeTrace) or (Kind = vgtSmokeTrace) or (Kind = vgtEvilTrace)) then |
46 Kind:= vgtBubble; |
46 Kind:= vgtBubble; |
47 |
47 |
48 AddVisualGear:= AddVisualGear(X, Y, Kind, 0, false, -1); |
48 AddVisualGear:= AddVisualGear(X, Y, Kind, 0, false, -1); |
49 end; |
49 end; |
50 |
50 |
51 function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType; State: LongWord): PVisualGear; inline; |
51 function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType; State: LongWord): PVisualGear; |
52 begin |
52 begin |
53 AddVisualGear:= AddVisualGear(X, Y, Kind, State, false, -1); |
53 AddVisualGear:= AddVisualGear(X, Y, Kind, State, false, -1); |
54 end; |
54 end; |
55 |
55 |
56 function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType; State: LongWord; Critical: Boolean): PVisualGear; inline; |
56 function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType; State: LongWord; Critical: Boolean): PVisualGear; |
57 begin |
57 begin |
58 AddVisualGear:= AddVisualGear(X, Y, Kind, State, Critical, -1); |
58 AddVisualGear:= AddVisualGear(X, Y, Kind, State, Critical, -1); |
59 end; |
59 end; |
60 |
60 |
61 function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType; State: LongWord; Critical: Boolean; Layer: LongInt): PVisualGear; |
61 function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType; State: LongWord; Critical: Boolean; Layer: LongInt): PVisualGear; |