3235 |
3229 |
3236 if not cakeStep(Gear) then Gear^.doStep:= @doStepCakeFall; |
3230 if not cakeStep(Gear) then Gear^.doStep:= @doStepCakeFall; |
3237 |
3231 |
3238 if Gear^.Tag = 0 then |
3232 if Gear^.Tag = 0 then |
3239 begin |
3233 begin |
3240 CakeI := (CakeI + 1) mod cakeh; |
3234 cakeData:= PCakeData(Gear^.Data); |
3241 tdx := CakePoints[CakeI].x - Gear^.X; |
3235 with cakeData^ do |
3242 tdy := - CakePoints[CakeI].y + Gear^.Y; |
3236 begin |
3243 CakePoints[CakeI].x := Gear^.X; |
3237 CakeI := (CakeI + 1) mod cakeh; |
3244 CakePoints[CakeI].y := Gear^.Y; |
3238 tdx := CakePoints[CakeI].x - Gear^.X; |
3245 Gear^.DirAngle := DxDy2Angle(tdx, tdy); |
3239 tdy := - CakePoints[CakeI].y + Gear^.Y; |
|
3240 CakePoints[CakeI].x := Gear^.X; |
|
3241 CakePoints[CakeI].y := Gear^.Y; |
|
3242 Gear^.DirAngle := DxDy2Angle(tdx, tdy); |
|
3243 end; |
3246 end; |
3244 end; |
3247 end; |
3245 end; |
3248 |
3246 |
3249 procedure doStepCakeUp(Gear: PGear); |
3247 procedure doStepCakeUp(Gear: PGear); |
3250 var |
3248 var |
3251 i: Longword; |
3249 i: Longword; |
|
3250 cakeData: PCakeData; |
3252 begin |
3251 begin |
3253 AllInactive := false; |
3252 AllInactive := false; |
3254 |
3253 |
3255 inc(Gear^.Tag); |
3254 inc(Gear^.Tag); |
3256 if Gear^.Tag < 100 then |
3255 if Gear^.Tag < 100 then |
3257 exit; |
3256 exit; |
3258 Gear^.Tag := 0; |
3257 Gear^.Tag := 0; |
3259 |
3258 |
3260 if Gear^.Pos = 6 then |
3259 if Gear^.Pos = 6 then |
3261 begin |
3260 begin |
3262 for i:= 0 to Pred(cakeh) do |
3261 cakeData:= PCakeData(Gear^.Data); |
3263 begin |
3262 with cakeData^ do |
3264 CakePoints[i].x := Gear^.X; |
3263 begin |
3265 CakePoints[i].y := Gear^.Y |
3264 for i:= 0 to Pred(cakeh) do |
3266 end; |
3265 begin |
3267 CakeI := 0; |
3266 CakePoints[i].x := Gear^.X; |
|
3267 CakePoints[i].y := Gear^.Y |
|
3268 end; |
|
3269 CakeI := 0; |
|
3270 end; |
3268 Gear^.doStep := @doStepCakeWork |
3271 Gear^.doStep := @doStepCakeWork |
3269 end |
3272 end |
3270 else |
3273 else |
3271 inc(Gear^.Pos) |
3274 inc(Gear^.Pos) |
3272 end; |
3275 end; |