Changeset 118 for trunk/UEngine.pas


Ignore:
Timestamp:
Oct 23, 2022, 10:55:55 PM (19 months ago)
Author:
chronos
Message:
  • Added: UCore main data module.
  • Added: Test cases support for better future testing.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/UEngine.pas

    r110 r118  
    99  Classes, SysUtils, Graphics, Controls, ExtCtrls, Math, DateUtils, Types,
    1010  URegistry, UMetaCanvas, Generics.Collections, Generics.Defaults, UMenu,
    11   UControls, UMetroPassenger, UColors, UView, URiver, UTrack, UCity, UGeometric;
     11  UControls, UMetroPassenger, UColors, UView, URiver, UTrack, UCity, UGeometric,
     12  UPersistentForm, UTranslator;
    1213
    1314type
     
    164165    FOnDarkModeChange: TNotifyEvent;
    165166    FState: TGameState;
     167    FTranslator: TTranslator;
    166168    LastMousePos: TPoint;
    167169    LastFocusedStation: TMapStation;
     
    246248    procedure EvaluateImprovement(Improvement: TMetroImprovement);
    247249  public
     250    // Test
     251    function GetSelectedOrUnusedMetroLine: TMetroLine;
     252  public
    248253    AvailableTerminals: Integer;
    249254    Week: Integer;
     
    304309    procedure Paint(Canvas: TCanvas; CanvasSize: TPoint);
    305310    property Time: TDateTime read FTime;
    306     property DarkMode: Boolean read FDarkMode write SetDarkMode;
    307311    property State: TGameState read FState write SetState;
    308312    property ServedDaysCount: Integer read GetServedDaysCount;
     313  published
     314    property DarkMode: Boolean read FDarkMode write SetDarkMode;
     315    property Translator: TTranslator read FTranslator write FTranslator;
    309316    property OnDarkModeChange: TNotifyEvent read FOnDarkModeChange
    310317      write FOnDarkModeChange;
     
    17111718      BackgroundColor := Colors.MenuItemBackground;
    17121719      BackgroundSelectedColor := Colors.MenuItemBackgroundSelected;
    1713       FormMain.Translator1.LanguageListToStrings(States);
    1714       Index := States.IndexOfObject(FormMain.Translator1.Language);
     1720      if Assigned(Translator) then begin
     1721        Translator.LanguageListToStrings(States);
     1722        Index := States.IndexOfObject(Translator.Language);
     1723      end;
    17151724      if Index = -1 then Index := 0;
    17161725    end;
     
    18591868begin
    18601869  NewLanguage := TLanguage(TMenuItemComboBox(Sender).States.Objects[TMenuItemComboBox(Sender).Index]);
    1861   if FormMain.Translator1.Language <> NewLanguage then begin
    1862     FormMain.Translator1.Language := NewLanguage;
    1863     FormMain.Translator1.Translate;
     1870  if Assigned(Translator) and (Translator.Language <> NewLanguage) then begin
     1871    Translator.Language := NewLanguage;
     1872    Translator.Translate;
    18641873    InitMenus;
    18651874
     
    18741883begin
    18751884  FormMain.FullScreen := TMenuItemCheckBox(Sender).Checked;
    1876   FormMain.PersistentForm1.SetFullScreen(FormMain.FullScreen);
     1885  with TPersistentForm.Create(nil) do
     1886  try
     1887    SetFullScreen(FormMain.FullScreen);
     1888  finally
     1889    Free;
     1890  end;
    18771891end;
    18781892
     
    19631977    miTerminal: Inc(AvailableTerminals);
    19641978  end;
     1979end;
     1980
     1981function TEngine.GetSelectedOrUnusedMetroLine: TMetroLine;
     1982begin
     1983  if Assigned(SelectedLine) and (SelectedLine.LineStations.Count = 0) then
     1984    Result := SelectedLine
     1985    else Result := GetUnusedLine;
    19651986end;
    19661987
     
    31143135      Station := GetStationOnPos(View.PointDestToSrc(Position));
    31153136      if Assigned(Station) then begin
    3116         if Assigned(SelectedLine) and (SelectedLine.LineStations.Count = 0) then NewLine := SelectedLine
    3117           else NewLine := GetUnusedLine;
     3137        NewLine := GetSelectedOrUnusedMetroLine;
    31183138        if Assigned(NewLine) then begin
    31193139          NewLine.ConnectStation(Station, nil, nil);
Note: See TracChangeset for help on using the changeset viewer.