equal
deleted
inserted
replaced
139 procedure doStepCreeper(Gear: PGear); |
139 procedure doStepCreeper(Gear: PGear); |
140 procedure doStepKnife(Gear: PGear); |
140 procedure doStepKnife(Gear: PGear); |
141 procedure doStepMinigunWork(Gear: PGear); |
141 procedure doStepMinigunWork(Gear: PGear); |
142 procedure doStepMinigun(Gear: PGear); |
142 procedure doStepMinigun(Gear: PGear); |
143 procedure doStepMinigunBullet(Gear: PGear); |
143 procedure doStepMinigunBullet(Gear: PGear); |
|
144 procedure ResetSentryState(Gear: PGear; state, timer: LongInt); |
144 procedure doStepSentryDeploy(Gear: PGear); |
145 procedure doStepSentryDeploy(Gear: PGear); |
145 |
146 |
146 var |
147 var |
147 upd: Longword; |
148 upd: Longword; |
148 snowLeft,snowRight: LongInt; |
149 snowLeft,snowRight: LongInt; |
4077 end; |
4078 end; |
4078 |
4079 |
4079 //////////////////////////////////////////////////////////////////////////////// |
4080 //////////////////////////////////////////////////////////////////////////////// |
4080 procedure doStepSeductionWork(Gear: PGear); |
4081 procedure doStepSeductionWork(Gear: PGear); |
4081 var i: LongInt; |
4082 var i: LongInt; |
4082 hogs: PGearArrayS; |
4083 hits: PGearArrayS; |
4083 HHGear: PGear; |
4084 HHGear: PGear; |
4084 begin |
4085 begin |
4085 AllInactive := false; |
4086 AllInactive := false; |
4086 |
4087 |
4087 HHGear := Gear^.Hedgehog^.Gear; |
4088 HHGear := Gear^.Hedgehog^.Gear; |
4091 AfterAttack; |
4092 AfterAttack; |
4092 DeleteGear(Gear); |
4093 DeleteGear(Gear); |
4093 exit; |
4094 exit; |
4094 end; |
4095 end; |
4095 |
4096 |
4096 hogs := GearsNear(Gear^.X, Gear^.Y, gtHedgehog, Gear^.Radius); |
4097 hits := GearsNear(Gear^.X, Gear^.Y, gtHedgehog, Gear^.Radius); |
4097 if hogs.size > 0 then |
4098 if hits.size > 0 then |
4098 begin |
4099 begin |
4099 for i:= 0 to hogs.size - 1 do |
4100 for i:= 0 to hits.size - 1 do |
4100 with hogs.ar^[i]^ do |
4101 with hits.ar^[i]^ do |
4101 if (hogs.ar^[i] <> CurrentHedgehog^.Gear) and (Hedgehog^.Effects[heFrozen] = 0) then |
4102 if (hits.ar^[i] <> CurrentHedgehog^.Gear) and (Hedgehog^.Effects[heFrozen] = 0) then |
4102 begin |
4103 begin |
4103 if (WorldEdge <> weWrap) or (not (hwAbs(Gear^.X - X) > int2hwFloat(Gear^.Radius))) then |
4104 if (WorldEdge <> weWrap) or (not (hwAbs(Gear^.X - X) > int2hwFloat(Gear^.Radius))) then |
4104 dX:= _50 * cGravity * (Gear^.X - X) / _25 |
4105 dX:= _50 * cGravity * (Gear^.X - X) / _25 |
4105 else if (not (hwAbs(Gear^.X + int2hwFloat(RightX-LeftX) - X) > int2hwFloat(Gear^.Radius))) then |
4106 else if (not (hwAbs(Gear^.X + int2hwFloat(RightX-LeftX) - X) > int2hwFloat(Gear^.Radius))) then |
4106 dX:= _50 * cGravity * ((Gear^.X + int2hwFloat(RightX-LeftX)) - X) / _25 |
4107 dX:= _50 * cGravity * ((Gear^.X + int2hwFloat(RightX-LeftX)) - X) / _25 |
4110 Active:= true; |
4111 Active:= true; |
4111 end |
4112 end |
4112 else if Hedgehog^.Effects[heFrozen] > 255 then |
4113 else if Hedgehog^.Effects[heFrozen] > 255 then |
4113 Hedgehog^.Effects[heFrozen]:= 255 |
4114 Hedgehog^.Effects[heFrozen]:= 255 |
4114 end ; |
4115 end ; |
|
4116 |
|
4117 hits := GearsNear(Gear^.X, Gear^.Y, gtSentry, Gear^.Radius); |
|
4118 if hits.size > 0 then |
|
4119 for i:= 0 to hits.size - 1 do |
|
4120 with hits.ar^[i]^ do |
|
4121 if (Gear^.Hedgehog <> nil) and (Hedgehog <> Gear^.Hedgehog) then |
|
4122 begin |
|
4123 dX := SignAs(_0, dX); |
|
4124 dY := -_0_15; |
|
4125 Hedgehog := Gear^.Hedgehog; |
|
4126 ResetSentryState(hits.ar^[i], 0, 10000); |
|
4127 end; |
|
4128 |
4115 AfterAttack; |
4129 AfterAttack; |
4116 DeleteGear(Gear); |
4130 DeleteGear(Gear); |
4117 end; |
4131 end; |
4118 |
4132 |
4119 procedure doStepSeductionWear(Gear: PGear); |
4133 procedure doStepSeductionWear(Gear: PGear); |