156 amSkip: ParseCommand('/skip', true); |
155 amSkip: ParseCommand('/skip', true); |
157 amRope: CurAmmoGear:= AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtRope, 0, xx, yy, 0); |
156 amRope: CurAmmoGear:= AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtRope, 0, xx, yy, 0); |
158 amMine: AddGear(hwRound(X) + hwSign(dX) * 7, hwRound(Y), gtMine, gstWait, SignAs(_0_02, dX), _0, 3000); |
157 amMine: AddGear(hwRound(X) + hwSign(dX) * 7, hwRound(Y), gtMine, gstWait, SignAs(_0_02, dX), _0, 3000); |
159 amDEagle: CurAmmoGear:= AddGear(hwRound(X + xx * cHHRadius), hwRound(Y + yy * cHHRadius), gtDEagleShot, 0, xx * _0_5, yy * _0_5, 0); |
158 amDEagle: CurAmmoGear:= AddGear(hwRound(X + xx * cHHRadius), hwRound(Y + yy * cHHRadius), gtDEagleShot, 0, xx * _0_5, yy * _0_5, 0); |
160 amSineGun: CurAmmoGear:= AddGear(hwRound(X + xx * cHHRadius), hwRound(Y + yy * cHHRadius), gtSineGunShot, 0, xx * _0_5, yy * _0_5, 0); |
159 amSineGun: CurAmmoGear:= AddGear(hwRound(X + xx * cHHRadius), hwRound(Y + yy * cHHRadius), gtSineGunShot, 0, xx * _0_5, yy * _0_5, 0); |
161 amPortalGun: begin |
160 amPortalGun: AddGear(hwRound(X + xx * cHHRadius), hwRound(Y + yy * cHHRadius), gtPortal, 0, xx * _0_6, yy * _0_6, 0); |
162 iterator:= GearsList; |
|
163 portal:= nil; |
|
164 while iterator <> nil do |
|
165 begin |
|
166 if (iterator^.Kind = gtPortal) then |
|
167 begin |
|
168 newGear:= iterator; |
|
169 iterator:= iterator^.NextGear; |
|
170 if (portal <> nil) then |
|
171 begin |
|
172 if (portal^.uid < newGear^.uid) then |
|
173 begin |
|
174 deleteGear(portal); |
|
175 portal:= newGear |
|
176 end |
|
177 else |
|
178 begin |
|
179 if newGear^.NextGear = nil then iterator:= nil; |
|
180 deleteGear(newGear); |
|
181 end |
|
182 end |
|
183 else portal:= newGear |
|
184 end |
|
185 else iterator:= iterator^.NextGear |
|
186 end; |
|
187 |
|
188 newGear:= AddGear(hwRound(X + xx * cHHRadius), hwRound(Y + yy * cHHRadius), gtPortal, 0, xx * _0_6, yy * _0_6, 0); |
|
189 if portal <> nil then |
|
190 begin |
|
191 newGear^.IntersectGear:= portal; |
|
192 if portal^.Tag < 2 then newGear^.Tag:= 2 |
|
193 end |
|
194 else newGear^.IntersectGear:= nil; |
|
195 newGear^.Angle:= Angle; |
|
196 newGear^.DirAngle:= Angle * 180 / cMaxAngle - 90; |
|
197 if Gear^.DirAngle < 0 then Gear^.DirAngle:= Gear^.DirAngle + 360 |
|
198 else if 360 < Gear^.DirAngle then Gear^.DirAngle:= Gear^.DirAngle - 360; |
|
199 Ammo^[CurSlot, CurAmmo].Timer:= 0 |
|
200 end; |
|
201 amSniperRifle: begin |
161 amSniperRifle: begin |
202 PlaySound(sndSniperReload); |
162 PlaySound(sndSniperReload); |
203 CurAmmoGear:= AddGear(hwRound(X + xx * cHHRadius), hwRound(Y + yy * cHHRadius), gtSniperRifleShot, 0, xx * _0_5, yy * _0_5, 0); |
163 CurAmmoGear:= AddGear(hwRound(X + xx * cHHRadius), hwRound(Y + yy * cHHRadius), gtSniperRifleShot, 0, xx * _0_5, yy * _0_5, 0); |
204 end; |
164 end; |
205 amDynamite: AddGear(hwRound(X) + hwSign(dX) * 7, hwRound(Y), gtDynamite, 0, SignAs(_0_03, dX), _0, 5000); |
165 amDynamite: AddGear(hwRound(X) + hwSign(dX) * 7, hwRound(Y), gtDynamite, 0, SignAs(_0_03, dX), _0, 5000); |