equal
deleted
inserted
replaced
81 vgtNote, |
81 vgtNote, |
82 vgtFeather, |
82 vgtFeather, |
83 vgtSmoothWindBar])) then |
83 vgtSmoothWindBar])) then |
84 |
84 |
85 exit; |
85 exit; |
|
86 |
|
87 // 0.9.24.2 workaround for minigun droplet spam. |
|
88 // Limit the max. number of droplets. |
|
89 if ((Kind = vgtDroplet) or (Kind = vgtSplash)) and (numDroplets > maxDroplets) and (not Critical) then |
|
90 exit; |
86 |
91 |
87 inc(VGCounter); |
92 inc(VGCounter); |
88 New(gear); |
93 New(gear); |
89 FillChar(gear^, sizeof(TVisualGear), 0); |
94 FillChar(gear^, sizeof(TVisualGear), 0); |
90 gear^.X:= real(X); |
95 gear^.X:= real(X); |
229 Scale:= 0.75; |
234 Scale:= 0.75; |
230 Timer:= 1; |
235 Timer:= 1; |
231 end; |
236 end; |
232 vgtDroplet: |
237 vgtDroplet: |
233 begin |
238 begin |
|
239 // droplet counter for 0.9.24.2 bugfix |
|
240 inc(numDroplets); |
234 // old dx & dy calcs |
241 // old dx & dy calcs |
235 // dx:= 0.001 * (random(180) - 90); |
242 // dx:= 0.001 * (random(180) - 90); |
236 // dy:= -0.001 * (random(160) + 40); |
243 // dy:= -0.001 * (random(160) + 40); |
237 // => min speed ~ 0.098, max speed ~ 0.218, speed range ~ 0.120 |
244 // => min speed ~ 0.098, max speed ~ 0.218, speed range ~ 0.120 |
238 // => min angle(4096) ~ 129, max angle ~ 1919, angle range ~ 1790 |
245 // => min angle(4096) ~ 129, max angle ~ 1919, angle range ~ 1790 |
456 else |
463 else |
457 VisualGearLayers[Gear^.Layer]:= Gear^.NextGear; |
464 VisualGearLayers[Gear^.Layer]:= Gear^.NextGear; |
458 |
465 |
459 if lastVisualGearByUID = Gear then |
466 if lastVisualGearByUID = Gear then |
460 lastVisualGearByUID:= nil; |
467 lastVisualGearByUID:= nil; |
|
468 |
|
469 if (Gear^.Kind = vgtDroplet) and (numDroplets > 0) then |
|
470 dec(numDroplets); |
461 |
471 |
462 Dispose(Gear); |
472 Dispose(Gear); |
463 end; |
473 end; |
464 |
474 |
465 function VisualGearByUID(uid : Longword) : PVisualGear; |
475 function VisualGearByUID(uid : Longword) : PVisualGear; |