594 (* |
594 (* |
595 FIXME - This block desyncs due to the way WorldDx is important for various things network related. |
595 FIXME - This block desyncs due to the way WorldDx is important for various things network related. |
596 One possible solution is, instead of using WorldDx, to use straight gl/SDL calls to jitter the screen a bit. |
596 One possible solution is, instead of using WorldDx, to use straight gl/SDL calls to jitter the screen a bit. |
597 |
597 |
598 // a comment by unC0Rr: instead of changing WorldDx shake cursor coordinates, that should be safe |
598 // a comment by unC0Rr: instead of changing WorldDx shake cursor coordinates, that should be safe |
|
599 // ... seems to still desync, and I tried banning when targetting too |
599 |
600 |
600 if (Gear^.Timer and 5) = 0 then |
601 if (Gear^.Timer and 5) = 0 then |
601 begin |
602 begin |
602 maxMovement := max(1, 13 - ((Gear^.Timer * 15) div 250)); |
603 maxMovement := max(1, 13 - ((Gear^.Timer * 15) div 250)); |
603 ShakeCamera(maxMovement); |
604 ShakeCamera(maxMovement); |
604 end; |
605 end; |
605 *) |
606 *) |
|
607 |
606 if Gear^.Timer > 250 then DeleteVisualGear(Gear); |
608 if Gear^.Timer > 250 then DeleteVisualGear(Gear); |
607 end; |
609 end; |
608 |
610 |
609 procedure doStepBigExplosion(Gear: PVisualGear; Steps: Longword); |
611 procedure doStepBigExplosion(Gear: PVisualGear; Steps: Longword); |
610 var i: LongWord; |
612 var i: LongWord; |
611 gX,gY: LongInt; |
613 gX,gY: LongInt; |
612 vg: PVisualGear; |
614 vg: PVisualGear; |
613 begin |
615 begin |
|
616 ScreenFade:= sfFromWhite; |
|
617 ScreenFadeValue:= 250; |
|
618 ScreenFadeSpeed:= 5; |
614 gX:= round(Gear^.X); |
619 gX:= round(Gear^.X); |
615 gY:= round(Gear^.Y); |
620 gY:= round(Gear^.Y); |
616 AddVisualGear(gX, gY, vgtSmokeRing); |
621 AddVisualGear(gX, gY, vgtSmokeRing); |
617 for i:= 0 to 46 do |
622 for i:= 0 to 46 do |
618 begin |
623 begin |