Browse Source

LoadWithMem

pull/100/head
galaxyhaxz 7 years ago
parent
commit
5d4918eea0
  1. 34
      Source/engine.cpp
  2. 2
      Source/engine.h

34
Source/engine.cpp

@ -2462,23 +2462,27 @@ BYTE *LoadFileInMem(char *pszName, int *pdwFileLen)
return buf;
}
void LoadFileWithMem(char *pszName, void *buf)
DWORD LoadFileWithMem(const char *pszName, void *p)
{
char *v2; // ebx
char *v3; // edi
int v4; // esi
HANDLE a1; // [esp+Ch] [ebp-4h]
v2 = (char *)buf;
v3 = pszName;
if (!buf)
DWORD dwFileLen;
HANDLE hsFile;
/// ASSERT: assert(pszName);
if(p == NULL) {
app_fatal("LoadFileWithMem(NULL):\n%s", pszName);
WOpenFile(v3, &a1, 0);
v4 = WGetFileSize(a1, 0);
if (!v4)
app_fatal("Zero length SFILE:\n%s", v3);
WReadFile(a1, v2, v4);
WCloseFile(a1);
}
WOpenFile(pszName, &hsFile, FALSE);
dwFileLen = WGetFileSize(hsFile, NULL);
if(dwFileLen == 0) {
app_fatal("Zero length SFILE:\n%s", pszName);
}
WReadFile(hsFile, p, dwFileLen);
WCloseFile(hsFile);
return dwFileLen;
}
void Cl2ApplyTrans(BYTE *p, BYTE *ttbl, int nCel)

2
Source/engine.h

@ -44,7 +44,7 @@ void engine_debug_trap(BOOL show_cursor);
unsigned char *DiabloAllocPtr(int dwBytes);
void mem_free_dbg(void *p);
BYTE *LoadFileInMem(char *pszName, int *pdwFileLen);
void LoadFileWithMem(char *pszName, void *buf);
DWORD LoadFileWithMem(const char *pszName, void *p);
void Cl2ApplyTrans(BYTE *p, BYTE *ttbl, int nCel);
void Cl2DecodeFrm1(int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, int CelSkip, int CelCap);
void Cl2DecDatFrm1(BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth);

Loading…
Cancel
Save