diff --git a/Core/GameEngine/Include/GameNetwork/FileTransfer.h b/Core/GameEngine/Include/GameNetwork/FileTransfer.h index bccd2bba58b..e76738238be 100644 --- a/Core/GameEngine/Include/GameNetwork/FileTransfer.h +++ b/Core/GameEngine/Include/GameNetwork/FileTransfer.h @@ -36,11 +36,11 @@ class GameInfo; AsciiString GetBasePathFromPath( AsciiString path ); AsciiString GetBaseFileFromFile( AsciiString fname ); AsciiString GetPreviewFromMap( AsciiString path ); -AsciiString GetINIFromMap( AsciiString path ); -AsciiString GetStrFileFromMap( AsciiString path ); -AsciiString GetSoloINIFromMap( AsciiString path ); -AsciiString GetAssetUsageFromMap( AsciiString path ); -AsciiString GetReadmeFromMap( AsciiString path ); +AsciiString GetINIFromMap( const AsciiString &path ); +AsciiString GetStrFileFromMap( const AsciiString &path ); +AsciiString GetSoloINIFromMap( const AsciiString &path ); +AsciiString GetAssetUsageFromMap( const AsciiString &path ); +AsciiString GetReadmeFromMap( const AsciiString &path ); // The meat of file (map) transfers Bool DoAnyMapTransfers(GameInfo *game); diff --git a/Core/GameEngine/Source/GameNetwork/FileTransfer.cpp b/Core/GameEngine/Source/GameNetwork/FileTransfer.cpp index 7ac6f274cc0..8398d2ce380 100644 --- a/Core/GameEngine/Source/GameNetwork/FileTransfer.cpp +++ b/Core/GameEngine/Source/GameNetwork/FileTransfer.cpp @@ -30,6 +30,7 @@ #include "PreRTS.h" // This must go first in EVERY cpp file in the GameEngine +#include "Common/FileSystem.h" #include "GameClient/LoadScreen.h" #include "GameClient/Shell.h" #include "GameNetwork/FileTransfer.h" @@ -155,59 +156,45 @@ AsciiString GetBaseFileFromFile( AsciiString fname ) return AsciiString::TheEmptyString; } -AsciiString GetPreviewFromMap( AsciiString path ) +static AsciiString GetFileInMapDirectory( const AsciiString &mapPath, const AsciiString &filename ) { - AsciiString fname = GetBaseFileFromFile(getFileName(path.str())); - AsciiString base = GetBasePathFromPath(path); - - AsciiString out; - out.format("%s\\%s.tga", base.str(), fname.str()); - return out; + const char *file = getFileName(mapPath.str()); + AsciiString path; + path.set(mapPath.str(), file - mapPath.str()); + path.concat(filename); + return path; } -AsciiString GetINIFromMap( AsciiString path ) +AsciiString GetPreviewFromMap( AsciiString path ) { - AsciiString base = GetBasePathFromPath(path); - - AsciiString out; - out.format("%s\\map.ini", base.str()); - return out; + FileSystem::removeExtension(path); + path.concat(".tga"); + return path; } -AsciiString GetStrFileFromMap( AsciiString path ) +AsciiString GetINIFromMap( const AsciiString &path ) { - AsciiString base = GetBasePathFromPath(path); - - AsciiString out; - out.format("%s\\map.str", base.str()); - return out; + return GetFileInMapDirectory(path, "map.ini"); } -AsciiString GetSoloINIFromMap( AsciiString path ) +AsciiString GetStrFileFromMap( const AsciiString &path ) { - AsciiString base = GetBasePathFromPath(path); - - AsciiString out; - out.format("%s\\solo.ini", base.str()); - return out; + return GetFileInMapDirectory(path, "map.str"); } -AsciiString GetAssetUsageFromMap( AsciiString path ) +AsciiString GetSoloINIFromMap( const AsciiString &path ) { - AsciiString base = GetBasePathFromPath(path); - - AsciiString out; - out.format("%s\\assetusage.txt", base.str()); - return out; + return GetFileInMapDirectory(path, "solo.ini"); } -AsciiString GetReadmeFromMap( AsciiString path ) +AsciiString GetAssetUsageFromMap( const AsciiString &path ) { - AsciiString base = GetBasePathFromPath(path); + return GetFileInMapDirectory(path, "assetusage.txt"); +} - AsciiString out; - out.format("%s\\readme.txt", base.str()); - return out; +AsciiString GetReadmeFromMap( const AsciiString &path ) +{ + return GetFileInMapDirectory(path, "readme.txt"); } //-------------------------------------------------------------------------------------