equal
deleted
inserted
replaced
110 if Gear^.X > cScreenWidth + 2048 then Gear^.X:= -cScreenWidth - 256 |
110 if Gear^.X > cScreenWidth + 2048 then Gear^.X:= -cScreenWidth - 256 |
111 end; |
111 end; |
112 |
112 |
113 //////////////////////////////////////////////////////////////////////////////// |
113 //////////////////////////////////////////////////////////////////////////////// |
114 procedure doStepBomb(Gear: PGear); |
114 procedure doStepBomb(Gear: PGear); |
115 var i: integer; |
115 var i: LongInt; |
116 begin |
116 begin |
117 AllInactive:= false; |
117 AllInactive:= false; |
118 doStepFallingGear(Gear); |
118 doStepFallingGear(Gear); |
119 dec(Gear^.Timer); |
119 dec(Gear^.Timer); |
120 if Gear^.Timer = 0 then |
120 if Gear^.Timer = 0 then |
353 if Gear^.Timer = 0 then DeleteGear(Gear) |
353 if Gear^.Timer = 0 then DeleteGear(Gear) |
354 end; |
354 end; |
355 |
355 |
356 //////////////////////////////////////////////////////////////////////////////// |
356 //////////////////////////////////////////////////////////////////////////////// |
357 procedure doStepPickHammerWork(Gear: PGear); |
357 procedure doStepPickHammerWork(Gear: PGear); |
358 var i, ei: integer; |
358 var i, ei: LongInt; |
359 HHGear: PGear; |
359 HHGear: PGear; |
360 begin |
360 begin |
361 AllInactive:= false; |
361 AllInactive:= false; |
362 HHGear:= PHedgehog(Gear^.Hedgehog)^.Gear; |
362 HHGear:= PHedgehog(Gear^.Hedgehog)^.Gear; |
363 dec(Gear^.Timer); |
363 dec(Gear^.Timer); |
368 AfterAttack; |
368 AfterAttack; |
369 exit |
369 exit |
370 end; |
370 end; |
371 if (Gear^.Timer and $3F) = 0 then |
371 if (Gear^.Timer and $3F) = 0 then |
372 begin |
372 begin |
373 i:= hwRound(Gear^.X) - Gear^.Radius - integer(GetRandom(2)); |
373 i:= hwRound(Gear^.X) - Gear^.Radius - LongInt(GetRandom(2)); |
374 ei:= hwRound(Gear^.X) + Gear^.Radius + integer(GetRandom(2)); |
374 ei:= hwRound(Gear^.X) + Gear^.Radius + LongInt(GetRandom(2)); |
375 while i <= ei do |
375 while i <= ei do |
376 begin |
376 begin |
377 doMakeExplosion(i, hwRound(Gear^.Y) + 3, 3, 0); |
377 doMakeExplosion(i, hwRound(Gear^.Y) + 3, 3, 0); |
378 inc(i, 1) |
378 inc(i, 1) |
379 end; |
379 end; |
404 if ((Gear^.Message and gm_Right) <> 0) then Gear^.dX:= _0_3 |
404 if ((Gear^.Message and gm_Right) <> 0) then Gear^.dX:= _0_3 |
405 else Gear^.dX:= 0; |
405 else Gear^.dX:= 0; |
406 end; |
406 end; |
407 |
407 |
408 procedure doStepPickHammer(Gear: PGear); |
408 procedure doStepPickHammer(Gear: PGear); |
409 var i, y: integer; |
409 var i, y: LongInt; |
410 ar: TRangeArray; |
410 ar: TRangeArray; |
411 begin |
411 begin |
412 i:= 0; |
412 i:= 0; |
413 y:= hwRound(Gear^.Y) - cHHRadius*2; |
413 y:= hwRound(Gear^.Y) - cHHRadius*2; |
414 while y < hwRound(Gear^.Y) do |
414 while y < hwRound(Gear^.Y) do |
415 begin |
415 begin |
416 ar[i].Left := hwRound(Gear^.X) - Gear^.Radius - integer(GetRandom(2)); |
416 ar[i].Left := hwRound(Gear^.X) - Gear^.Radius - LongInt(GetRandom(2)); |
417 ar[i].Right:= hwRound(Gear^.X) + Gear^.Radius + integer(GetRandom(2)); |
417 ar[i].Right:= hwRound(Gear^.X) + Gear^.Radius + LongInt(GetRandom(2)); |
418 inc(y, 2); |
418 inc(y, 2); |
419 inc(i) |
419 inc(i) |
420 end; |
420 end; |
421 DrawHLinesExplosions(@ar, 3, hwRound(Gear^.Y) - cHHRadius*2, 2, Pred(i)); |
421 DrawHLinesExplosions(@ar, 3, hwRound(Gear^.Y) - cHHRadius*2, 2, Pred(i)); |
422 Gear^.dY:= PHedgehog(Gear^.Hedgehog)^.Gear^.dY; |
422 Gear^.dY:= PHedgehog(Gear^.Hedgehog)^.Gear^.dY; |
424 doStepPickHammerWork(Gear); |
424 doStepPickHammerWork(Gear); |
425 Gear^.doStep:= @doStepPickHammerWork |
425 Gear^.doStep:= @doStepPickHammerWork |
426 end; |
426 end; |
427 |
427 |
428 //////////////////////////////////////////////////////////////////////////////// |
428 //////////////////////////////////////////////////////////////////////////////// |
429 var BTPrevAngle, BTSteps: integer; |
429 var BTPrevAngle, BTSteps: LongInt; |
430 |
430 |
431 procedure doStepBlowTorchWork(Gear: PGear); |
431 procedure doStepBlowTorchWork(Gear: PGear); |
432 var HHGear: PGear; |
432 var HHGear: PGear; |
433 b: boolean; |
433 b: boolean; |
434 begin |
434 begin |
438 |
438 |
439 HedgehogChAngle(HHGear); |
439 HedgehogChAngle(HHGear); |
440 |
440 |
441 b:= false; |
441 b:= false; |
442 |
442 |
443 if abs(integer(HHGear^.Angle) - BTPrevAngle) > 7 then |
443 if abs(LongInt(HHGear^.Angle) - BTPrevAngle) > 7 then |
444 begin |
444 begin |
445 Gear^.dX:= hwSign(HHGear^.dX) * AngleSin(HHGear^.Angle) * _0_5; |
445 Gear^.dX:= hwSign(HHGear^.dX) * AngleSin(HHGear^.Angle) * _0_5; |
446 Gear^.dY:= AngleCos(HHGear^.Angle) * ( - _0_5); |
446 Gear^.dY:= AngleCos(HHGear^.Angle) * ( - _0_5); |
447 BTPrevAngle:= HHGear^.Angle; |
447 BTPrevAngle:= HHGear^.Angle; |
448 b:= true |
448 b:= true |
486 end; |
486 end; |
487 |
487 |
488 procedure doStepBlowTorch(Gear: PGear); |
488 procedure doStepBlowTorch(Gear: PGear); |
489 var HHGear: PGear; |
489 var HHGear: PGear; |
490 begin |
490 begin |
491 BTPrevAngle:= High(integer); |
491 BTPrevAngle:= High(LongInt); |
492 BTSteps:= 0; |
492 BTSteps:= 0; |
493 HHGear:= PHedgehog(Gear^.Hedgehog)^.Gear; |
493 HHGear:= PHedgehog(Gear^.Hedgehog)^.Gear; |
494 HHGear^.Message:= 0; |
494 HHGear^.Message:= 0; |
495 Gear^.doStep:= @doStepBlowTorchWork |
495 Gear^.doStep:= @doStepBlowTorchWork |
496 end; |
496 end; |
765 dec(Gear^.Timer); |
765 dec(Gear^.Timer); |
766 end; |
766 end; |
767 |
767 |
768 /////////////////////////////////////////////////////////////////////////////// |
768 /////////////////////////////////////////////////////////////////////////////// |
769 procedure doStepCase(Gear: PGear); |
769 procedure doStepCase(Gear: PGear); |
770 var i, x, y: integer; |
770 var i, x, y: LongInt; |
771 begin |
771 begin |
772 if (Gear^.Message and gm_Destroy) > 0 then |
772 if (Gear^.Message and gm_Destroy) > 0 then |
773 begin |
773 begin |
774 DeleteGear(Gear); |
774 DeleteGear(Gear); |
775 exit |
775 exit |
805 else if (Gear^.CollIndex < High(Longword)) and (Gear^.dY.QWordValue <> 0) then DeleteCI(Gear); |
805 else if (Gear^.CollIndex < High(Longword)) and (Gear^.dY.QWordValue <> 0) then DeleteCI(Gear); |
806 end; |
806 end; |
807 |
807 |
808 //////////////////////////////////////////////////////////////////////////////// |
808 //////////////////////////////////////////////////////////////////////////////// |
809 var thexchar: array[0..5] of record |
809 var thexchar: array[0..5] of record |
810 oy, ny: integer; |
810 oy, ny: LongInt; |
811 team: PTeam; |
811 team: PTeam; |
812 end; |
812 end; |
813 thexchcnt: Longword; |
813 thexchcnt: Longword; |
814 currsorter: PGear; |
814 currsorter: PGear; |
815 |
815 |
816 procedure doStepTeamHealthSorterWork(Gear: PGear); |
816 procedure doStepTeamHealthSorterWork(Gear: PGear); |
817 var i: integer; |
817 var i: LongInt; |
818 begin |
818 begin |
819 AllInactive:= false; |
819 AllInactive:= false; |
820 dec(Gear^.Timer); |
820 dec(Gear^.Timer); |
821 if (Gear^.Timer and 15) = 0 then |
821 if (Gear^.Timer and 15) = 0 then |
822 for i:= 0 to Pred(thexchcnt) do |
822 for i:= 0 to Pred(thexchcnt) do |
1017 end; |
1017 end; |
1018 if Gear^.X > 3072 then DeleteGear(Gear) |
1018 if Gear^.X > 3072 then DeleteGear(Gear) |
1019 end; |
1019 end; |
1020 |
1020 |
1021 procedure doStepAirAttack(Gear: PGear); |
1021 procedure doStepAirAttack(Gear: PGear); |
1022 var t: integer; |
1022 var t: LongInt; |
1023 begin |
1023 begin |
1024 AllInactive:= false; |
1024 AllInactive:= false; |
1025 Gear^.X:= -1024; |
1025 Gear^.X:= -1024; |
1026 Gear^.Y:= -128; |
1026 Gear^.Y:= -128; |
1027 Gear^.dX:= TargetPoint.X - |
1027 Gear^.dX:= TargetPoint.X - |