equal
deleted
inserted
replaced
3008 HHGear^.Message := HHGear^.Message and (not gmAttack); |
3008 HHGear^.Message := HHGear^.Message and (not gmAttack); |
3009 Gear^.CollisionMask:= lfNotCurrentMask; |
3009 Gear^.CollisionMask:= lfNotCurrentMask; |
3010 |
3010 |
3011 FollowGear := Gear; |
3011 FollowGear := Gear; |
3012 |
3012 |
|
3013 Gear^.dY:= cMaxWindSpeed * 100; |
|
3014 |
3013 Gear^.doStep := @doStepCakeFall |
3015 Gear^.doStep := @doStepCakeFall |
3014 end; |
3016 end; |
3015 |
3017 |
3016 //////////////////////////////////////////////////////////////////////////////// |
3018 //////////////////////////////////////////////////////////////////////////////// |
3017 procedure doStepSeductionWork(Gear: PGear); |
3019 procedure doStepSeductionWork(Gear: PGear); |
3190 end; |
3192 end; |
3191 |
3193 |
3192 procedure doStepDrill(Gear: PGear); |
3194 procedure doStepDrill(Gear: PGear); |
3193 var |
3195 var |
3194 t: PGearArray; |
3196 t: PGearArray; |
3195 oldDx, oldDy: hwFloat; |
3197 oldX, oldY, oldDx, oldDy: hwFloat; |
3196 t2: hwFloat; |
3198 t2: hwFloat; |
3197 begin |
3199 begin |
3198 AllInactive := false; |
3200 AllInactive := false; |
3199 |
3201 |
3200 if (Gear^.State and gsttmpFlag) = 0 then |
3202 if (Gear^.State and gsttmpFlag) = 0 then |
3201 Gear^.dX := Gear^.dX + cWindSpeed; |
3203 Gear^.dX := Gear^.dX + cWindSpeed; |
3202 |
3204 |
3203 oldDx := Gear^.dX; |
3205 oldDx := Gear^.dX; |
3204 oldDy := Gear^.dY; |
3206 oldDy := Gear^.dY; |
|
3207 oldX := Gear^.X; |
|
3208 oldY := Gear^.Y; |
3205 |
3209 |
3206 doStepFallingGear(Gear); |
3210 doStepFallingGear(Gear); |
3207 |
3211 |
3208 if (GameTicks and $3F) = 0 then |
3212 if (GameTicks and $3F) = 0 then |
3209 begin |
3213 begin |
3215 if ((Gear^.State and gstCollision) <> 0) then |
3219 if ((Gear^.State and gstCollision) <> 0) then |
3216 begin |
3220 begin |
3217 //hit |
3221 //hit |
3218 Gear^.dX := oldDx; |
3222 Gear^.dX := oldDx; |
3219 Gear^.dY := oldDy; |
3223 Gear^.dY := oldDy; |
|
3224 Gear^.X := oldX; |
|
3225 Gear^.Y := oldY; |
3220 |
3226 |
3221 if GameTicks > Gear^.FlightTime then |
3227 if GameTicks > Gear^.FlightTime then |
3222 t := CheckGearsCollision(Gear) |
3228 t := CheckGearsCollision(Gear) |
3223 else |
3229 else |
3224 t := nil; |
3230 t := nil; |
3239 doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, Gear^.Hedgehog, EXPLAutoSound); |
3245 doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, Gear^.Hedgehog, EXPLAutoSound); |
3240 DeleteGear(Gear); |
3246 DeleteGear(Gear); |
3241 exit; |
3247 exit; |
3242 end; |
3248 end; |
3243 |
3249 |
|
3250 Gear^.X:= Gear^.X+Gear^.dX*4; |
|
3251 Gear^.Y:= Gear^.Y+Gear^.dY*4; |
3244 Gear^.SoundChannel := LoopSound(sndDrillRocket); |
3252 Gear^.SoundChannel := LoopSound(sndDrillRocket); |
3245 Gear^.doStep := @doStepDrillDrilling; |
3253 Gear^.doStep := @doStepDrillDrilling; |
3246 |
3254 |
3247 if (Gear^.State and gsttmpFlag) <> 0 then |
3255 if (Gear^.State and gsttmpFlag) <> 0 then |
3248 gear^.RenderTimer:= true; |
3256 gear^.RenderTimer:= true; |