Changeset 134 for trunk/UEngine.pas


Ignore:
Timestamp:
May 2, 2023, 11:48:43 AM (12 months ago)
Author:
chronos
Message:
  • Fixed: Translation of week days.
  • Fixed: Highest score changed after click at game over screen.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/UEngine.pas

    r133 r134  
    312312    function GetGameSlotFileName(Index: Integer): string;
    313313    procedure AutoSave;
     314    procedure CheckScore;
    314315  public
    315316    // Test
     
    357358    HighestServedPassengerCount: Integer;
    358359    HighestServedDaysCount: Integer;
     360    OldHighestServedPassengerCount: Integer;
     361    OldHighestServedDaysCount: Integer;
    359362    RegistryContext: TRegistryContext;
    360363    procedure InitMenus;
     
    25212524end;
    25222525
     2526procedure TEngine.CheckScore;
     2527begin
     2528  OldHighestServedDaysCount := HighestServedDaysCount;
     2529  OldHighestServedPassengerCount := HighestServedPassengerCount;
     2530
     2531  if (ServedPassengerCount > HighestServedPassengerCount) then begin
     2532    HighestServedPassengerCount := ServedPassengerCount;
     2533    HighestServedDaysCount := ServedDaysCount;
     2534  end;
     2535
     2536  if Assigned(City) then begin
     2537    if (ServedPassengerCount > City.HighestServedPassengerCount) then begin
     2538      City.HighestServedPassengerCount := ServedPassengerCount;
     2539      City.HighestServedDaysCount := ServedDaysCount;
     2540    end;
     2541  end;
     2542end;
     2543
    25232544function TEngine.DestinationIndexToText(DestinationIndex: TDestinationIndex): string;
    25242545begin
     
    28702891begin
    28712892  with Canvas do begin
    2872     // Calculate new highest score
    28732893    Text := '';
    2874     if (ServedPassengerCount > HighestServedPassengerCount) or
    2875       (ServedDaysCount > HighestServedDaysCount) then begin
     2894    if (ServedPassengerCount >= HighestServedPassengerCount) or
     2895      (ServedDaysCount >= HighestServedDaysCount) then begin
    28762896      Text := SNewHighScore + ' ';
    28772897    end;
    2878     Text := Text + Format(SOldHighScore, [HighestServedPassengerCount,
    2879       HighestServedDaysCount]);
     2898    Text := Text + Format(SOldHighScore, [OldHighestServedPassengerCount,
     2899      OldHighestServedDaysCount]);
    28802900    Canvas.TextOut((CanvasSize.X - TextWidth(Text)) div 2, Y, Text);
    28812901    Y := Y + Round(TextHeight(Text) * 1.1);
    2882     if (ServedPassengerCount > HighestServedPassengerCount) then
    2883       HighestServedPassengerCount := ServedPassengerCount;
    2884     if (ServedDaysCount > HighestServedDaysCount) then
    2885       HighestServedDaysCount := ServedDaysCount;
    2886 
    2887     if Assigned(City) then begin
    2888       if (ServedPassengerCount > City.HighestServedPassengerCount) then
    2889         City.HighestServedPassengerCount := ServedPassengerCount;
    2890       if (ServedDaysCount > City.HighestServedDaysCount) then
    2891         City.HighestServedDaysCount := ServedDaysCount;
    2892     end;
    28932902  end;
    28942903end;
     
    35583567      if OverloadDuration >= MaxPassengersOveloadTime then begin
    35593568        State := gsGameOver;
     3569        CheckScore;
    35603570        Redraw;
    35613571      end;
     
    35643574    if Assigned(City) and (ServedPassengerCount >= City.PassengersCountToUnlock) then begin
    35653575      State := gsSuccess;
     3576      CheckScore;
    35663577      Redraw;
    35673578    end;
     
    38603871  KeyF7 = 118;
    38613872  KeyF8 = 119;
     3873  KeyF9 = 120;
    38623874{$ENDIF}
    38633875  KeyT = 84;
     
    38983910    if Key = KeyF2 then begin
    38993911      State := gsGameOver;
     3912      CheckScore;
    39003913      Redraw;
    39013914    end;
     
    39193932    if Key = KeyF7 then begin
    39203933      State := gsSuccess;
     3934      CheckScore;
    39213935      Redraw;
    39223936    end else
    39233937    if Key = KeyF8 then begin
    39243938      Inc(AvailableTerminals);
     3939      Redraw;
     3940    end else
     3941    if Key = KeyF9 then begin
     3942      Inc(ServedPassengerCount, 100);
    39253943      Redraw;
    39263944    end;
     
    40594077  LastNewPassengerTime := ReadDateTime(Node, 'LastNewPassengerTime', LastNewPassengerTime);
    40604078  LastNewStationTime := ReadDateTime(Node, 'LastNewStationTime', LastNewStationTime);
     4079  TerminalCountVisible := ReadBoolean(Node, 'TerminalCountVisible', TerminalCountVisible);
     4080  CarriageCountVisible := ReadBoolean(Node, 'CarriageCountVisible', CarriageCountVisible);
    40614081
    40624082  NewNode := Node.FindNode(DOMString(TView.GetClassSysName));
     
    41324152  WriteDateTime(Node, 'LastNewPassengerTime', LastNewPassengerTime);
    41334153  WriteDateTime(Node, 'LastNewStationTime', LastNewStationTime);
     4154  WriteBoolean(Node, 'TerminalCountVisible', TerminalCountVisible);
     4155  WriteBoolean(Node, 'CarriageCountVisible', CarriageCountVisible);
    41344156
    41354157  NewNode := Node.OwnerDocument.CreateElement(DOMString(TView.GetClassSysName));
Note: See TracChangeset for help on using the changeset viewer.