equal
deleted
inserted
replaced
21 unit uGearsRender; |
21 unit uGearsRender; |
22 |
22 |
23 interface |
23 interface |
24 uses uTypes, uConsts, GLunit, uFloat, SDLh; |
24 uses uTypes, uConsts, GLunit, uFloat, SDLh; |
25 |
25 |
|
26 type |
|
27 Tar = record |
|
28 X, Y: hwFloat; |
|
29 dLen: hwFloat; |
|
30 b : boolean; |
|
31 end; |
|
32 TRopePoints = record |
|
33 Count : Longword; |
|
34 HookAngle : GLfloat; |
|
35 ar : array[0..MAXROPEPOINTS] of Tar; |
|
36 rounded : array[0..MAXROPEPOINTS + 2] of TVertex2f; |
|
37 end; |
26 procedure RenderGear(Gear: PGear; x, y: LongInt); |
38 procedure RenderGear(Gear: PGear; x, y: LongInt); |
27 |
39 |
28 var RopePoints: record |
40 var RopePoints: TRopePoints; |
29 Count: Longword; |
|
30 HookAngle: GLfloat; |
|
31 ar: array[0..MAXROPEPOINTS] of record |
|
32 X, Y: hwFloat; |
|
33 dLen: hwFloat; |
|
34 b: boolean; |
|
35 end; |
|
36 rounded: array[0..MAXROPEPOINTS + 2] of TVertex2f; |
|
37 end; |
|
38 |
41 |
39 implementation |
42 implementation |
40 uses uRender, uUtils, uVariables, uAmmos, Math, uVisualGears; |
43 uses uRender, uUtils, uVariables, uAmmos, Math, uVisualGears; |
41 |
44 |
42 procedure DrawRopeLinesRQ(Gear: PGear); |
45 procedure DrawRopeLinesRQ(Gear: PGear); |
80 b: boolean; |
83 b: boolean; |
81 begin |
84 begin |
82 if (X1 = X2) and (Y1 = Y2) then |
85 if (X1 = X2) and (Y1 = Y2) then |
83 begin |
86 begin |
84 //OutError('WARNING: zero length rope line!', false); |
87 //OutError('WARNING: zero length rope line!', false); |
|
88 DrawRopeLine := 0; |
85 exit |
89 exit |
86 end; |
90 end; |
87 eX:= 0; |
91 eX:= 0; |
88 eY:= 0; |
92 eY:= 0; |
89 dX:= X2 - X1; |
93 dX:= X2 - X1; |
1163 end |
1167 end |
1164 else //if not isInLag then |
1168 else //if not isInLag then |
1165 begin |
1169 begin |
1166 if isInLag and (Gear^.FlightTime < 256) then |
1170 if isInLag and (Gear^.FlightTime < 256) then |
1167 inc(Gear^.FlightTime, 8) |
1171 inc(Gear^.FlightTime, 8) |
1168 else if not isInLag and (Gear^.FlightTime > 0) then |
1172 else if (not isInLag) and (Gear^.FlightTime > 0) then |
1169 dec(Gear^.FlightTime, 8); |
1173 dec(Gear^.FlightTime, 8); |
1170 if Gear^.FlightTime > 0 then |
1174 if Gear^.FlightTime > 0 then |
1171 Tint($FF, $FF, $FF, $FF-min(255,Gear^.FlightTime)); |
1175 Tint($FF, $FF, $FF, $FF-min(255,Gear^.FlightTime)); |
1172 if vobVelocity = 0 then |
1176 if vobVelocity = 0 then |
1173 DrawSprite(sprFlake, x, y, Gear^.Timer) |
1177 DrawSprite(sprFlake, x, y, Gear^.Timer) |