[FS]: Imrove spead of patch (#914)
This commit is contained in:
parent
6198c0bac5
commit
b6082da91a
@ -278,9 +278,17 @@ namespace Components
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int FileSystem::ExecIsFSStub(const char* execFilename)
|
int FileSystem::Cmd_Exec_f_Stub(const char* s0, [[maybe_unused]] const char* s1)
|
||||||
{
|
{
|
||||||
return !File(execFilename).exists();
|
int f;
|
||||||
|
auto len = Game::FS_FOpenFileByMode(s0, &f, Game::FS_READ);
|
||||||
|
if (len < 0)
|
||||||
|
{
|
||||||
|
return 1; // Not found
|
||||||
|
}
|
||||||
|
|
||||||
|
Game::FS_FCloseFile(f);
|
||||||
|
return 0; // Found
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileSystem::FsStartupSync(const char* a1)
|
void FileSystem::FsStartupSync(const char* a1)
|
||||||
@ -335,7 +343,7 @@ namespace Components
|
|||||||
Utils::Hook(Game::FS_FreeFile, FreeFile, HOOK_JUMP).install()->quick();
|
Utils::Hook(Game::FS_FreeFile, FreeFile, HOOK_JUMP).install()->quick();
|
||||||
|
|
||||||
// Filesystem config checks
|
// Filesystem config checks
|
||||||
Utils::Hook(0x6098FD, ExecIsFSStub, HOOK_CALL).install()->quick();
|
Utils::Hook(0x6098FD, Cmd_Exec_f_Stub, HOOK_CALL).install()->quick();
|
||||||
|
|
||||||
// Don't strip the folders from the config name (otherwise our ExecIsFSStub fails)
|
// Don't strip the folders from the config name (otherwise our ExecIsFSStub fails)
|
||||||
Utils::Hook::Nop(0x6098F2, 5);
|
Utils::Hook::Nop(0x6098F2, 5);
|
||||||
|
@ -112,7 +112,7 @@ namespace Components
|
|||||||
|
|
||||||
static void RegisterFolders();
|
static void RegisterFolders();
|
||||||
static void StartupStub();
|
static void StartupStub();
|
||||||
static int ExecIsFSStub(const char* execFilename);
|
static int Cmd_Exec_f_Stub(const char* s0, const char* s1);
|
||||||
|
|
||||||
static void FsStartupSync(const char* a1);
|
static void FsStartupSync(const char* a1);
|
||||||
static void FsRestartSync(int localClientNum, int checksumFeed);
|
static void FsRestartSync(int localClientNum, int checksumFeed);
|
||||||
|
@ -754,7 +754,7 @@ namespace Components::GSC
|
|||||||
assert(scrParserGlob.saveSourceBufferLookupLen > 0);
|
assert(scrParserGlob.saveSourceBufferLookupLen > 0);
|
||||||
--scrParserGlob.saveSourceBufferLookupLen;
|
--scrParserGlob.saveSourceBufferLookupLen;
|
||||||
|
|
||||||
auto* saveSourceBuffer = scrParserGlob.saveSourceBufferLookup + scrParserGlob.saveSourceBufferLookupLen;
|
const auto* saveSourceBuffer = scrParserGlob.saveSourceBufferLookup + scrParserGlob.saveSourceBufferLookupLen;
|
||||||
const auto len = saveSourceBuffer->len;
|
const auto len = saveSourceBuffer->len;
|
||||||
assert(len >= -1);
|
assert(len >= -1);
|
||||||
|
|
||||||
@ -799,7 +799,7 @@ namespace Components::GSC
|
|||||||
if (Game::FindVariable(Game::scrCompilePub->loadedscripts, name))
|
if (Game::FindVariable(Game::scrCompilePub->loadedscripts, name))
|
||||||
{
|
{
|
||||||
Game::SL_RemoveRefToString(name);
|
Game::SL_RemoveRefToString(name);
|
||||||
auto filePosPtr = Game::FindVariable(Game::scrCompilePub->scriptsPos, name);
|
const auto filePosPtr = Game::FindVariable(Game::scrCompilePub->scriptsPos, name);
|
||||||
return filePosPtr ? Game::FindObject(Game::scrCompilePub->scriptsPos, filePosPtr) : 0;
|
return filePosPtr ? Game::FindObject(Game::scrCompilePub->scriptsPos, filePosPtr) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -809,7 +809,7 @@ namespace Components::GSC
|
|||||||
sprintf_s(extFilename, "%s.gsc", Game::SL_ConvertToString(static_cast<unsigned short>(name)));
|
sprintf_s(extFilename, "%s.gsc", Game::SL_ConvertToString(static_cast<unsigned short>(name)));
|
||||||
|
|
||||||
const auto* oldSourceBuf = scrParserPub.sourceBuf;
|
const auto* oldSourceBuf = scrParserPub.sourceBuf;
|
||||||
auto* sourceBuffer = Scr_AddSourceBuffer(Game::SL_ConvertToString(static_cast<unsigned short>(name)), extFilename, Game::TempMalloc(0), true);
|
const auto* sourceBuffer = Scr_AddSourceBuffer(Game::SL_ConvertToString(static_cast<unsigned short>(name)), extFilename, Game::TempMalloc(0), true);
|
||||||
|
|
||||||
if (!sourceBuffer)
|
if (!sourceBuffer)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user