hedgewars/uGearsHandlersMess.pas
changeset 13613 92b87845beeb
parent 13612 212036414957
child 13614 13f68f3e7153
equal deleted inserted replaced
13612:212036414957 13613:92b87845beeb
  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