Changeset 589 for trunk/Start.pas


Ignore:
Timestamp:
Jul 24, 2024, 10:51:34 AM (8 weeks ago)
Author:
chronos
Message:
  • Fixed: With selected map it was not possible to start a new game due to wrong map path.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Start.pas

    r579 r589  
    66uses
    77  GameServer, Messg, ButtonBase, ButtonA, ButtonC, ButtonB, Area, Types,
    8   LCLIntf, LCLType, SysUtils, Classes, BaseWin, ListBoxEx,
     8  LCLIntf, LCLType, SysUtils, Classes, BaseWin, ListBoxEx, LazFileUtils,
    99  Registry, DrawDlg, Generics.Collections, Protocol, MiniMap, Brain, Translator,
    1010  {$IFDEF DPI}System.UITypes, Dpi.Graphics, Dpi.Controls, Dpi.Forms, Dpi.StdCtrls,
     
    905905      S := Phrases.Lookup('MPMAP')
    906906    else if Page = pgStartMap then
    907       S := Copy(MapFileName, 1, Length(MapFileName) - Length(CevoMapExt))
     907      S := ExtractFileNameOnly(MapFileName)
    908908    else if Page = pgEditMap then
    909909      S := List.Items[List.ItemIndex]
     
    944944  I: Integer;
    945945begin
    946   if FileName[1] <> '~' then
    947     FileName := '~' + FileName;
     946  if not IsAutoSaveFileName(FileName) then
     947    FileName := ToAutoSaveFileName(FileName);
    948948  I := FormerGames.Count - 1;
    949   while (I >= 0) and (AnsiCompareFileName(FormerGames[I], FileName) <> 0) do
     949  while (I >= 0) and (AnsiCompareFileName(FormerGames[I], ExtractFileNameOnly(FileName)) <> 0) do
    950950    Dec(I);
    951   if I >= 0 then
    952   begin
     951  if I >= 0 then begin
    953952    FormerGames.Delete(I);
    954953    if ListIndex[tbNew] = I then
     
    966965    pgLoad:
    967966      begin // load
    968         FileName := List.Items[List.ItemIndex];
    969         if LoadGame(GetSavedDir + DirectorySeparator, FileName + CevoExt, LoadTurn, False)
     967        FileName := GetSavedDir + DirectorySeparator + List.Items[List.ItemIndex] + CevoExt;
     968        if LoadGame(FileName, LoadTurn, False)
    970969        then
    971970          UnlistBackupFile(FileName)
     
    992991
    993992          if (AutoDiff < 0) and (PlayersBrain[0].Kind = btNoTerm) then
    994             FileName := 'Round' + IntToStr(GetProcessID())
     993            FileName := GetSavedDir + DirectorySeparator + 'Round' + IntToStr(GetProcessID()) + CevoExt
    995994          else begin
    996995            Inc(GameCount);
    997             FileName := Format(Phrases.Lookup('GAME'), [GameCount]);
     996            FileName := GetSavedDir + DirectorySeparator + Format(Phrases.Lookup('GAME'), [GameCount]) + CevoExt;
    998997          end;
    999998
     
    10491048        end;
    10501049
    1051         StartNewGame(GetSavedDir + DirectorySeparator, FileName + CevoExt, MapFileName,
    1052           WorldSizes[WorldSize].X, WorldSizes[WorldSize].Y, StartLandMass, MaxTurn);
     1050        StartNewGame(FileName, MapFileName, WorldSizes[WorldSize].X,
     1051          WorldSizes[WorldSize].Y, StartLandMass, MaxTurn);
    10531052        UnlistBackupFile(FileName);
    10541053      end;
    10551054    pgEditMap:
    1056       EditMap(GetMapsDir + DirectorySeparator + MapFileName, lxmax, lymax, StartLandMass);
     1055      EditMap(MapFileName, lxmax, lymax, StartLandMass);
    10571056    pgEditRandom: // new map
    10581057      begin
     
    10681067          Free;
    10691068        end;
    1070         MapFileName := Format(Phrases.Lookup('MAP'), [MapCount]) + CevoMapExt;
    1071         EditMap(GetMapsDir + DirectorySeparator + MapFileName,
    1072           WorldSizes[WorldSize].X, WorldSizes[WorldSize].Y, StartLandMass);
     1069        MapFileName := GetMapsDir + DirectorySeparator + Format(Phrases.Lookup('MAP'),
     1070          [MapCount]) + CevoMapExt;
     1071        EditMap(MapFileName, WorldSizes[WorldSize].X, WorldSizes[WorldSize].Y,
     1072          StartLandMass);
    10731073      end;
    10741074  end;
     
    11201120        if Page = pgEditMap then begin
    11211121          if List.ItemIndex >= 0 then
    1122             MapFileName := List.Items[List.ItemIndex] + CevoMapExt
     1122            MapFileName := GetMapsDir + DirectorySeparator + List.Items[List.ItemIndex] + CevoMapExt
    11231123            else Exit;
    11241124        end;
    1125         MiniMap.LoadFromMapFile(GetMapsDir + DirectorySeparator + MapFileName,
    1126           nMapLandTiles, nMapStartPositions);
     1125        MiniMap.LoadFromMapFile(MapFileName, nMapLandTiles, nMapStartPositions);
    11271126        if Page = pgEditMap then
    11281127          SmartInvalidate(x0Mini - 112, y0Mini + 61, x0Mini + 112, y0Mini + 91);
     
    12961295      while (I > 0) and (F.Time < Integer(FormerGames.Objects[I - 1])) do
    12971296        Dec(I);
    1298       FormerGames.InsertObject(I, Copy(F.Name, 1, Length(F.Name) - 5),
     1297      FormerGames.InsertObject(I, ExtractFileNameOnly(F.Name),
    12991298        TObject(F.Time));
    13001299    until FindNext(F) <> 0;
     
    13181317  Maps.Sort;
    13191318  Maps.Insert(0, Phrases.Lookup('RANMAP'));
    1320   ListIndex[tbMain] := Maps.IndexOf(Copy(MapFileName, 1, Length(MapFileName) - Length(CevoMapExt)));
     1319  ListIndex[tbMain] := Maps.IndexOf(ExtractFileNameOnly(MapFileName));
    13211320  if ListIndex[tbMain] < 0 then
    13221321    ListIndex[tbMain] := 0;
     
    16611660    InputDlg.ShowModal;
    16621661    NewName := InputDlg.EditInput.Text;
    1663     while (NewName <> '') and (NewName[1] = '~') do
     1662    while IsAutoSaveFileName(NewName) do
    16641663      Delete(NewName, 1, 1);
    16651664    if (InputDlg.ModalResult = mrOK) and (NewName <> '') and
     
    19361935procedure TStartDlg.ReplayBtnClick(Sender: TObject);
    19371936begin
    1938   LoadGame(GetSavedDir + DirectorySeparator, List.Items[List.ItemIndex] + CevoExt,
     1937  LoadGame(GetSavedDir + DirectorySeparator + List.Items[List.ItemIndex] + CevoExt,
    19391938    LastTurn, True);
    19401939  SlotAvailable := -1;
Note: See TracChangeset for help on using the changeset viewer.