Changeset 589 for trunk/GameServer.pas
- Timestamp:
- Jul 24, 2024, 10:51:34 AM (4 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GameServer.pas
r558 r589 69 69 procedure Done; 70 70 71 procedure StartNewGame(const Path, FileName, Map: string;71 procedure StartNewGame(const FileName, AMapFileName: string; 72 72 Newlx, Newly, NewLandMass, NewMaxTurn: Integer); 73 function LoadGame(const Path,FileName: string; Turn: Integer;73 function LoadGame(const FileName: string; Turn: Integer; 74 74 MovieMode: Boolean): Boolean; 75 75 procedure EditMap(const Map: string; Newlx, Newly, NewLandMass: Integer); 76 76 procedure DirectHelp(Command: Integer); 77 function ToAutoSaveFileName(FileName: string): string; 78 function IsAutoSaveFileName(FileName: string): Boolean; 77 79 78 80 procedure ChangeClient; … … 391 393 end; 392 394 395 function ToAutoSaveFileName(FileName: string): string; 396 begin 397 Result := ExtractFileDir(FileName) + DirectorySeparator + '~' + ExtractFileName(FileName); 398 end; 399 400 function IsAutoSaveFileName(FileName: string): Boolean; 401 begin 402 FileName := ExtractFileName(FileName); 403 Result := (Length(FileName) > 0) and (FileName[1] = '~'); 404 end; 405 393 406 procedure LogChanges; 394 407 var … … 579 592 begin 580 593 Result := False; 581 MapFile := nil; 594 if not FileExists(FileName) then Exit; 595 MapFile := TFileStream.Create(FileName, fmOpenRead or fmShareExclusive); 582 596 try 583 MapFile := TFileStream.Create(FileName, fmOpenRead or fmShareExclusive);584 597 MapFile.Position := 0; 585 598 MapFile.Read(S[1], 8); { file id } … … 611 624 Result := True; 612 625 end; 626 finally 613 627 FreeAndNil(MapFile); 614 except615 if MapFile <> nil then616 FreeAndNil(MapFile);617 628 end; 618 629 end; … … 641 652 642 653 if Auto and AutoSaveExists then // append to existing file 643 LogFile := TFileStream.Create(SavePath + FileName, fmOpenReadWrite or 644 fmShareExclusive) 654 LogFile := TFileStream.Create(FileName, fmOpenReadWrite or fmShareExclusive) 645 655 else // create new file 646 LogFile := TFileStream.Create(SavePath + FileName, 647 fmCreate or fmShareExclusive); 656 LogFile := TFileStream.Create(FileName, fmCreate or fmShareExclusive); 648 657 649 658 Zero := 0; … … 1111 1120 end; 1112 1121 1113 function LoadGame(const Path, FileName: string; Turn: Integer; 1114 MovieMode: Boolean): Boolean; 1122 function LoadGame(const FileName: string; Turn: Integer; MovieMode: Boolean): Boolean; 1115 1123 var 1116 1124 J: TBrain; … … 1125 1133 Started, StatRequest: Boolean; 1126 1134 begin 1127 SavePath := Path;1135 SavePath := ExtractFileDir(FileName); 1128 1136 LogFileName := FileName; 1129 1137 LoadTurn := Turn; 1130 LogFile := TFileStream.Create( SavePath +LogFileName, fmOpenRead or1138 LogFile := TFileStream.Create(LogFileName, fmOpenRead or 1131 1139 fmShareExclusive); 1132 1140 LogFile.Position := 0; … … 1203 1211 else 1204 1212 Mode := moLoading_Fast; 1205 {$IFDEF TEXTLOG}AssignFile(TextLog, SavePath +LogFileName + '.txt');1213 {$IFDEF TEXTLOG}AssignFile(TextLog, LogFileName + '.txt'); 1206 1214 Rewrite(TextLog); {$ENDIF} 1207 1215 LoadOK := True; … … 1299 1307 NoLogChanges; 1300 1308 NoLogCityTileChanges; 1301 if LogFileName[1] = '~' then 1302 begin 1309 if IsAutoSaveFileName(LogFileName) then begin 1303 1310 Delete(LogFileName, 1, 1); 1304 1311 nLogOpened := -1; … … 1327 1334 if not LoadOK then 1328 1335 begin 1329 NotifyMessage := SavePath +LogFileName;1336 NotifyMessage := LogFileName; 1330 1337 Notify(ntLoadError); 1331 1338 end; … … 1360 1367 end; 1361 1368 1362 procedure StartNewGame(const Path, FileName, Map: string;1369 procedure StartNewGame(const FileName, AMapFileName: string; 1363 1370 Newlx, Newly, NewLandMass, NewMaxTurn: Integer); 1364 1371 var … … 1366 1373 begin 1367 1374 Notify(ntStartDone); 1368 SavePath := Path;1375 SavePath := ExtractFileDir(FileName); 1369 1376 LogFileName := FileName; 1370 MapFileName := Map;1377 MapFileName := AMapFileName; 1371 1378 {$IFDEF FastContact} 1372 1379 lx := 24; … … 3138 3145 begin 3139 3146 LogChanges; 3140 SaveGame( '~' + LogFileName, True);3147 SaveGame(ToAutoSaveFileName(LogFileName), True); 3141 3148 end; 3142 3149 {$ENDIF} … … 3268 3275 SaveGame(LogFileName, False); 3269 3276 end; 3270 DeleteFile( SavePath + '~' + LogFileName);3277 DeleteFile(ToAutoSaveFileName(LogFileName)); 3271 3278 EndGame; 3272 3279 case Command of … … 3276 3283 Notify(ntStartGo); 3277 3284 sNextRound: 3278 StartNewGame(SavePath, LogFileName, MapFileName, lx, ly, 3279 LandMass, MaxTurn); 3285 StartNewGame(LogFileName, MapFileName, lx, ly, LandMass, MaxTurn); 3280 3286 sReload: 3281 LoadGame( SavePath,LogFileName, Integer(Data), False);3287 LoadGame(LogFileName, Integer(Data), False); 3282 3288 end; 3283 3289 end
Note:
See TracChangeset
for help on using the changeset viewer.