Fix db rawfile access
This commit is contained in:
parent
f2b965e48c
commit
2d5094e7b4
@ -19,7 +19,7 @@ namespace Components
|
|||||||
|
|
||||||
FileSystem::FileReader::FileReader(std::string file) : Name(file), Handle(0)
|
FileSystem::FileReader::FileReader(std::string file) : Name(file), Handle(0)
|
||||||
{
|
{
|
||||||
this->Size = Game::FS_FOpenFileRead(this->Name.data(), &this->Handle, 0);
|
this->Size = Game::FS_FOpenFileReadCurrentThread(this->Name.data(), &this->Handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
FileSystem::FileReader::~FileReader()
|
FileSystem::FileReader::~FileReader()
|
||||||
@ -172,14 +172,16 @@ namespace Components
|
|||||||
{
|
{
|
||||||
__asm
|
__asm
|
||||||
{
|
{
|
||||||
|
pushad
|
||||||
push esi
|
push esi
|
||||||
call FileSystem::RegisterFolders
|
call FileSystem::RegisterFolders
|
||||||
pop esi
|
pop esi
|
||||||
|
popad
|
||||||
|
|
||||||
mov edx, ds:63D0CC0h
|
mov edx, ds:63D0CC0h
|
||||||
|
|
||||||
mov eax, 48264Dh
|
push 48264Dh
|
||||||
jmp eax
|
retn
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,6 +81,7 @@ namespace Game
|
|||||||
FS_FOpenFileAppend_t FS_FOpenFileAppend = (FS_FOpenFileAppend_t)0x410BB0;
|
FS_FOpenFileAppend_t FS_FOpenFileAppend = (FS_FOpenFileAppend_t)0x410BB0;
|
||||||
FS_FOpenFileAppend_t FS_FOpenFileWrite = (FS_FOpenFileAppend_t)0x4BA530;
|
FS_FOpenFileAppend_t FS_FOpenFileWrite = (FS_FOpenFileAppend_t)0x4BA530;
|
||||||
FS_FOpenFileRead_t FS_FOpenFileRead = (FS_FOpenFileRead_t)0x46CBF0;
|
FS_FOpenFileRead_t FS_FOpenFileRead = (FS_FOpenFileRead_t)0x46CBF0;
|
||||||
|
FS_FOpenFileRead_t FS_FOpenFileReadDatabase = (FS_FOpenFileRead_t)0x42ECA0;
|
||||||
FS_FOpenFileReadForThread_t FS_FOpenFileReadForThread = (FS_FOpenFileReadForThread_t)0x643270;
|
FS_FOpenFileReadForThread_t FS_FOpenFileReadForThread = (FS_FOpenFileReadForThread_t)0x643270;
|
||||||
FS_FCloseFile_t FS_FCloseFile = (FS_FCloseFile_t)0x462000;
|
FS_FCloseFile_t FS_FCloseFile = (FS_FCloseFile_t)0x462000;
|
||||||
FS_WriteFile_t FS_WriteFile = (FS_WriteFile_t)0x426450;
|
FS_WriteFile_t FS_WriteFile = (FS_WriteFile_t)0x426450;
|
||||||
@ -521,6 +522,23 @@ namespace Game
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int FS_FOpenFileReadCurrentThread(const char* file, int* fh)
|
||||||
|
{
|
||||||
|
if (GetCurrentThreadId() == *reinterpret_cast<DWORD*>(0x1CDE7FC))
|
||||||
|
{
|
||||||
|
return FS_FOpenFileRead(file, fh);
|
||||||
|
}
|
||||||
|
else if (GetCurrentThreadId() == *reinterpret_cast<DWORD*>(0x1CDE814))
|
||||||
|
{
|
||||||
|
return FS_FOpenFileReadDatabase(file, fh);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
*fh = NULL;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Load_IndexBuffer(void* data, IDirect3DIndexBuffer9** storeHere, int count)
|
void Load_IndexBuffer(void* data, IDirect3DIndexBuffer9** storeHere, int count)
|
||||||
{
|
{
|
||||||
if (Components::Dvar::Var("r_loadForRenderer").Get<bool>())
|
if (Components::Dvar::Var("r_loadForRenderer").Get<bool>())
|
||||||
|
@ -187,7 +187,7 @@ namespace Game
|
|||||||
extern FS_FOpenFileAppend_t FS_FOpenFileAppend;
|
extern FS_FOpenFileAppend_t FS_FOpenFileAppend;
|
||||||
extern FS_FOpenFileAppend_t FS_FOpenFileWrite;
|
extern FS_FOpenFileAppend_t FS_FOpenFileWrite;
|
||||||
|
|
||||||
typedef int(__cdecl * FS_FOpenFileRead_t)(const char* file, int* fh, int uniqueFile);
|
typedef int(__cdecl * FS_FOpenFileRead_t)(const char* file, int* fh/*, int uniqueFile*/);
|
||||||
extern FS_FOpenFileRead_t FS_FOpenFileRead;
|
extern FS_FOpenFileRead_t FS_FOpenFileRead;
|
||||||
|
|
||||||
typedef int(__cdecl * FS_FOpenFileReadForThread_t)(const char *filename, int *file, int thread);
|
typedef int(__cdecl * FS_FOpenFileReadForThread_t)(const char *filename, int *file, int thread);
|
||||||
@ -648,6 +648,8 @@ namespace Game
|
|||||||
void IN_KeyUp(kbutton_t* button);
|
void IN_KeyUp(kbutton_t* button);
|
||||||
void IN_KeyDown(kbutton_t* button);
|
void IN_KeyDown(kbutton_t* button);
|
||||||
|
|
||||||
|
int FS_FOpenFileReadCurrentThread(const char* file, int* fh);
|
||||||
|
|
||||||
void Load_IndexBuffer(void* data, IDirect3DIndexBuffer9** storeHere, int count);
|
void Load_IndexBuffer(void* data, IDirect3DIndexBuffer9** storeHere, int count);
|
||||||
void Load_VertexBuffer(void* data, IDirect3DVertexBuffer9** where, int len);
|
void Load_VertexBuffer(void* data, IDirect3DVertexBuffer9** where, int len);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user