equal
deleted
inserted
replaced
3533 |
3533 |
3534 procedure doStepCakeWalk(Gear: PGear); |
3534 procedure doStepCakeWalk(Gear: PGear); |
3535 var |
3535 var |
3536 tdx, tdy: hwFloat; |
3536 tdx, tdy: hwFloat; |
3537 cakeData: PCakeData; |
3537 cakeData: PCakeData; |
|
3538 i: Longword; |
3538 begin |
3539 begin |
3539 AllInactive := false; |
3540 AllInactive := false; |
3540 |
3541 |
3541 inc(Gear^.Tag); |
3542 inc(Gear^.Tag); |
3542 if Gear^.Tag < 7 then |
3543 if Gear^.Tag < 7 then |
3564 // Cake hit bouncy edge, turn around |
3565 // Cake hit bouncy edge, turn around |
3565 Gear^.dX.isNegative := (not Gear^.dX.isNegative); |
3566 Gear^.dX.isNegative := (not Gear^.dX.isNegative); |
3566 Gear^.WDTimer := 0; |
3567 Gear^.WDTimer := 0; |
3567 Gear^.Angle := (LongInt(Gear^.Angle) + 2) and 3; |
3568 Gear^.Angle := (LongInt(Gear^.Angle) + 2) and 3; |
3568 Gear^.Karma := 0; |
3569 Gear^.Karma := 0; |
|
3570 |
|
3571 // Reset CakePoints to fix cake angle |
|
3572 cakeData:= PCakeData(Gear^.Data); |
|
3573 with cakeData^ do |
|
3574 begin |
|
3575 for i:= 0 to Pred(cakeh) do |
|
3576 begin |
|
3577 CakePoints[i].x := Gear^.X; |
|
3578 CakePoints[i].y := Gear^.Y; |
|
3579 end; |
|
3580 CakeI:= 0; |
|
3581 end; |
|
3582 Gear^.Tag:= 0; |
3569 end |
3583 end |
3570 else if (Gear^.Karma = 2) then |
3584 else if (Gear^.Karma = 2) then |
3571 begin |
3585 begin |
3572 // Cake doesn't know how walk through world wrap |
3586 (* Cake passed world edge. |
3573 // so it gives up and stops. |
3587 Cake doesn't know yet how walk through |
3574 // TODO: Teach cake how to deal with world wrap. |
3588 world wrap so it gives up and stops. |
|
3589 TODO: Teach cake how to deal with world wrap. *) |
3575 Gear^.Health := 0; |
3590 Gear^.Health := 0; |
3576 Gear^.Karma := 0; |
3591 Gear^.Karma := 0; |
3577 end; |
3592 end; |
3578 |
3593 |
3579 if Gear^.Tag = 0 then |
3594 if Gear^.Tag = 0 then |