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