close Warning: Can't synchronize with repository "(default)" (No changeset 184 in the repository). Look in the Trac log for more information.

Changeset 39 for trunk/UCore.pas


Ignore:
Timestamp:
Mar 10, 2014, 11:01:14 PM (10 years ago)
Author:
chronos
Message:
  • Added: Option to create hexagonal or square map. This is implemented using object inheritance and virtual methods of class TMap.
  • Added: Dummy actions to load and save map.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/UCore.pas

    r36 r39  
    1414
    1515  TCore = class(TDataModule)
     16    AGameSave: TAction;
     17    AGameLoad: TAction;
    1618    ASettings: TAction;
    1719    ActionList1: TActionList;
     
    2426    ImageListLarge: TImageList;
    2527    ImageListSmall: TImageList;
     28    OpenDialog1: TOpenDialog;
     29    SaveDialog1: TSaveDialog;
    2630    XMLConfig1: TXMLConfig;
    2731    procedure AExitExecute(Sender: TObject);
    2832    procedure AGameEndExecute(Sender: TObject);
    2933    procedure AGameEndTurnExecute(Sender: TObject);
     34    procedure AGameLoadExecute(Sender: TObject);
    3035    procedure AGameNewExecute(Sender: TObject);
    3136    procedure AGameRestartExecute(Sender: TObject);
     37    procedure AGameSaveExecute(Sender: TObject);
    3238    procedure ASettingsExecute(Sender: TObject);
    3339    procedure CoolTranslator1Translate(Sender: TObject);
     
    4248    Game: TGame;
    4349    UseSingleView: Boolean;
     50    LastMapFileName: string;
    4451    View: TView;
    4552    procedure Init;
     
    114121end;
    115122
     123procedure TCore.AGameLoadExecute(Sender: TObject);
     124begin
     125  OpenDialog1.FileName := LastMapFileName;
     126  if OpenDialog1.Execute then begin
     127    Game.Map.LoadFromFile(OpenDialog1.FileName);
     128    LastMapFileName := OpenDialog1.FileName;
     129    FormMain.Redraw;
     130  end;
     131end;
     132
    116133procedure TCore.AGameNewExecute(Sender: TObject);
    117134begin
     
    132149end;
    133150
     151procedure TCore.AGameSaveExecute(Sender: TObject);
     152begin
     153  SaveDialog1.FileName := ExtractFileDir(LastMapFileName);
     154  if SaveDialog1.Execute then begin
     155    Game.Map.SaveToFile(SaveDialog1.FileName);
     156    LastMapFileName := SaveDialog1.FileName;
     157  end;
     158end;
     159
    134160procedure TCore.ASettingsExecute(Sender: TObject);
    135161begin
     
    155181  Game.SaveConfig(XMLConfig1, 'Game');
    156182  XMLConfig1.SetValue('Language', CoolTranslator1.Language.Code);
     183  XMLConfig1.SetValue('LastMapFileName', LastMapFileName);
    157184  FreeAndNil(Game);
    158185end;
     
    163190begin
    164191  FInitialized := True;
     192  LastMapFileName := XMLConfig1.GetValue('LastMapFileName', '');
    165193  CoolTranslator1.Language := CoolTranslator1.Languages.SearchByCode(XMLConfig1.GetValue('Language', ''));
    166194  for I := 0 to Game.Players.Count - 1 do
Note: See TracChangeset for help on using the changeset viewer.