342 Gear^.scale := 1.25 * (-power(2, -7 * Int(Gear^.Timer)/Gear^.FrameTicks) + 1) + 0.4; |
342 Gear^.scale := 1.25 * (-power(2, -7 * Int(Gear^.Timer)/Gear^.FrameTicks) + 1) + 0.4; |
343 Gear^.alpha := 1.0 * (power(2, -3 * (Gear^.Timer - 350)/350)); |
343 Gear^.alpha := 1.0 * (power(2, -3 * (Gear^.Timer - 350)/350)); |
344 end; |
344 end; |
345 end; |
345 end; |
346 |
346 |
|
347 procedure doStepFeather(Gear: PVisualGear; Steps: Longword); |
|
348 begin |
|
349 Gear^.X:= Gear^.X + Gear^.dX * Steps; |
|
350 |
|
351 Gear^.Y:= Gear^.Y + Gear^.dY * Steps; |
|
352 Gear^.dY:= Gear^.dY + cGravity * Steps; |
|
353 |
|
354 Gear^.Angle:= round(Gear^.Angle + Steps) mod cMaxAngle; |
|
355 |
|
356 if Gear^.FrameTicks <= Steps then |
|
357 DeleteVisualGear(Gear) |
|
358 else |
|
359 dec(Gear^.FrameTicks, Steps) |
|
360 end; |
347 //////////////////////////////////////////////////////////////////////////////// |
361 //////////////////////////////////////////////////////////////////////////////// |
348 const cSorterWorkTime = 640; |
362 const cSorterWorkTime = 640; |
349 var thexchar: array[0..cMaxTeams] of |
363 var thexchar: array[0..cMaxTeams] of |
350 record |
364 record |
351 dy, ny, dw: LongInt; |
365 dy, ny, dw: LongInt; |
787 vgtSmokeRing: begin |
812 vgtSmokeRing: begin |
788 glColor4f(1, 1, 1, Gear^.alpha); |
813 glColor4f(1, 1, 1, Gear^.alpha); |
789 DrawRotatedTextureF(SpritesData[sprSmokeRing].Texture, Gear^.scale, 0, 0, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, 1, 200, 200, Gear^.Angle); |
814 DrawRotatedTextureF(SpritesData[sprSmokeRing].Texture, Gear^.scale, 0, 0, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, 1, 200, 200, Gear^.Angle); |
790 glColor4f(1, 1, 1, 1); |
815 glColor4f(1, 1, 1, 1); |
791 end; |
816 end; |
|
817 vgtFeather: begin |
|
818 if Gear^.FrameTicks < 250 then |
|
819 glColor4f(1, 1, 1, Gear^.FrameTicks / 250); |
|
820 DrawRotatedF(sprFeather, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Frame, 1, Gear^.Angle); |
|
821 if Gear^.FrameTicks < 250 then |
|
822 glColor4f(1, 1, 1, 1); |
|
823 end; |
792 end; |
824 end; |
793 case Gear^.Kind of |
825 case Gear^.Kind of |
794 vgtSmallDamageTag: DrawCentered(hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Tex); |
826 vgtSmallDamageTag: DrawCentered(hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Tex); |
795 vgtSpeechBubble: if Gear^.Tex <> nil then DrawCentered(hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Tex); |
827 vgtSpeechBubble: if Gear^.Tex <> nil then DrawCentered(hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Tex); |
796 end; |
828 end; |