mirror of
https://github.com/dashr9230/SA-MP.git
synced 2024-12-23 06:57:31 +08:00
[saco] Implement and match DXUTFindMediaSearchTypicalDirs(...)
This commit is contained in:
parent
1e0ce73275
commit
94c7b478af
@ -213,3 +213,79 @@ HRESULT DXUTSetMediaSearchPath( LPCTSTR strPath )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
// Search a set of typical directories
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
bool DXUTFindMediaSearchTypicalDirs( TCHAR* strSearchPath, int cchSearch, LPCTSTR strLeaf,
|
||||||
|
TCHAR* strExePath, TCHAR* strExeName )
|
||||||
|
{
|
||||||
|
// Typical directories:
|
||||||
|
// .\
|
||||||
|
// ..\
|
||||||
|
// ..\..\
|
||||||
|
// %EXE_DIR%\
|
||||||
|
// %EXE_DIR%\..\
|
||||||
|
// %EXE_DIR%\..\..\
|
||||||
|
// %EXE_DIR%\..\%EXE_NAME%
|
||||||
|
// %EXE_DIR%\..\..\%EXE_NAME%
|
||||||
|
// DXSDK media path
|
||||||
|
|
||||||
|
// Search in .\
|
||||||
|
StringCchCopy( strSearchPath, cchSearch, strLeaf );
|
||||||
|
if( GetFileAttributes( strSearchPath ) != 0xFFFFFFFF )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
// Search in ..\
|
||||||
|
StringCchPrintf( strSearchPath, cchSearch, "..\\%s", strLeaf );
|
||||||
|
if( GetFileAttributes( strSearchPath ) != 0xFFFFFFFF )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
// Search in ..\..\
|
||||||
|
StringCchPrintf( strSearchPath, cchSearch, "..\\..\\%s", strLeaf );
|
||||||
|
if( GetFileAttributes( strSearchPath ) != 0xFFFFFFFF )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
// Search in ..\..\
|
||||||
|
StringCchPrintf( strSearchPath, cchSearch, "..\\..\\%s", strLeaf );
|
||||||
|
if( GetFileAttributes( strSearchPath ) != 0xFFFFFFFF )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
// Search in the %EXE_DIR%\
|
||||||
|
StringCchPrintf( strSearchPath, cchSearch, "%s\\%s", strExePath, strLeaf );
|
||||||
|
if( GetFileAttributes( strSearchPath ) != 0xFFFFFFFF )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
// Search in the %EXE_DIR%\..\
|
||||||
|
StringCchPrintf( strSearchPath, cchSearch, "%s\\..\\%s", strExePath, strLeaf );
|
||||||
|
if( GetFileAttributes( strSearchPath ) != 0xFFFFFFFF )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
// Search in the %EXE_DIR%\..\..\
|
||||||
|
StringCchPrintf( strSearchPath, cchSearch, "%s\\..\\..\\%s", strExePath, strLeaf );
|
||||||
|
if( GetFileAttributes( strSearchPath ) != 0xFFFFFFFF )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
// Search in "%EXE_DIR%\..\%EXE_NAME%\". This matches the DirectX SDK layout
|
||||||
|
StringCchPrintf( strSearchPath, cchSearch, "%s\\..\\%s\\%s", strExePath, strExeName, strLeaf );
|
||||||
|
if( GetFileAttributes( strSearchPath ) != 0xFFFFFFFF )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
// Search in "%EXE_DIR%\..\..\%EXE_NAME%\". This matches the DirectX SDK layout
|
||||||
|
StringCchPrintf( strSearchPath, cchSearch, "%s\\..\\..\\%s\\%s", strExePath, strExeName, strLeaf );
|
||||||
|
if( GetFileAttributes( strSearchPath ) != 0xFFFFFFFF )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
// Search in media search dir
|
||||||
|
TCHAR* s_strSearchPath = DXUTMediaSearchPath();
|
||||||
|
if( s_strSearchPath[0] != 0 )
|
||||||
|
{
|
||||||
|
StringCchPrintf( strSearchPath, cchSearch, "%s%s", s_strSearchPath, strLeaf );
|
||||||
|
if( GetFileAttributes( strSearchPath ) != 0xFFFFFFFF )
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user