equal
deleted
inserted
replaced
229 |
229 |
230 if ((Gear^.Message and gm_HJump ) <> 0) then |
230 if ((Gear^.Message and gm_HJump ) <> 0) then |
231 begin |
231 begin |
232 DeleteCI(Gear); |
232 DeleteCI(Gear); |
233 Gear^.Message:= Gear^.Message and not gm_HJump; |
233 Gear^.Message:= Gear^.Message and not gm_HJump; |
234 if not TestCollisionYwithGear(Gear, -1) then |
234 |
235 begin |
235 Gear^.dY:= -_0_2; |
236 Gear^.dY:= -_0_2; |
236 SetLittle(Gear^.dX); |
237 SetLittle(Gear^.dX); |
237 Gear^.State:= Gear^.State or gstMoving or gstHHJumping; |
238 Gear^.State:= Gear^.State or gstMoving or gstHHJumping; |
238 PlaySound(sndJump3, false); |
239 PlaySound(sndJump3, false); |
239 exit |
240 exit |
|
241 end; |
|
242 end; |
240 end; |
243 |
241 |
244 PrevdX:= hwSign(Gear^.dX); |
242 PrevdX:= hwSign(Gear^.dX); |
245 if (Gear^.Message and gm_Left )<>0 then Gear^.dX:= -cLittle else |
243 if (Gear^.Message and gm_Left )<>0 then Gear^.dX:= -cLittle else |
246 if (Gear^.Message and gm_Right )<>0 then Gear^.dX:= cLittle else exit; |
244 if (Gear^.Message and gm_Right )<>0 then Gear^.dX:= cLittle else exit; |
319 procedure doStepHedgehog(Gear: PGear); forward; |
317 procedure doStepHedgehog(Gear: PGear); forward; |
320 //////////////////////////////////////////////////////////////////////////////// |
318 //////////////////////////////////////////////////////////////////////////////// |
321 procedure doStepHedgehogMoving(Gear: PGear); |
319 procedure doStepHedgehogMoving(Gear: PGear); |
322 var isFalling: boolean; |
320 var isFalling: boolean; |
323 begin |
321 begin |
324 isFalling:= not TestCollisionYKick(Gear, 1); |
322 isFalling:= (Gear^.dY.isNegative) or not TestCollisionYKick(Gear, 1); |
325 if isFalling then |
323 if isFalling then |
326 begin |
324 begin |
327 if (Gear^.dY.isNegative) and TestCollisionYKick(Gear, -1) then Gear^.dY:= _0; |
325 if (Gear^.dY.isNegative) and TestCollisionYKick(Gear, -1) then Gear^.dY:= _0; |
328 Gear^.State:= Gear^.State or gstMoving; |
326 Gear^.State:= Gear^.State or gstMoving; |
329 Gear^.dY:= Gear^.dY + cGravity |
327 Gear^.dY:= Gear^.dY + cGravity |
421 and (Ammo^[CurSlot, CurAmmo].AmmoType = amParachute) then Gear^.Message:= Gear^.Message or gm_Attack; |
419 and (Ammo^[CurSlot, CurAmmo].AmmoType = amParachute) then Gear^.Message:= Gear^.Message or gm_Attack; |
422 // check for case with ammo |
420 // check for case with ammo |
423 t:= CheckGearNear(Gear, gtCase, 36, 36); |
421 t:= CheckGearNear(Gear, gtCase, 36, 36); |
424 if t <> nil then |
422 if t <> nil then |
425 PickUp(Gear, t) |
423 PickUp(Gear, t) |
426 end; |
424 end; |
427 |
425 |
428 if CurAmmoGear <> nil then |
426 if CurAmmoGear <> nil then |
429 begin |
427 begin |
430 CurAmmoGear^.Message:= Gear^.Message; |
428 CurAmmoGear^.Message:= Gear^.Message; |
431 exit |
429 exit |