From 19e4c20841ae64870334a09b5d1fcd459f50bece Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Sat, 8 Jun 2019 19:36:28 +0200 Subject: [PATCH 1/5] Remove unused garbage --- defs.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/defs.h b/defs.h index 0f7eeb559..5644e3932 100644 --- a/defs.h +++ b/defs.h @@ -138,14 +138,7 @@ ///////////////////////////////////////////////////////////////////////// #ifndef IDA_GARBAGE #define IDA_GARBAGE - -// Partially defined types. They are used when the decompiler does not know -// anything about the type except its size. -#define _BYTE unsigned char -#define _DWORD unsigned int - #define _LOBYTE(x) (*((BYTE*)&(x))) - #endif /* IDA_GARBAGE */ // Typedef for the function pointer From 328c74b6267a01ca1e12103857871d1189c7b0ac Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Sat, 8 Jun 2019 19:36:42 +0200 Subject: [PATCH 2/5] Correct called methode --- Source/control.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/control.cpp b/Source/control.cpp index d5d0c90d7..ecfa8721c 100644 --- a/Source/control.cpp +++ b/Source/control.cpp @@ -2404,7 +2404,7 @@ void control_set_gold_curs(int pnum) else plr[pnum].HoldItem._iCurs = ICURS_GOLD_MEDIUM; - SetCursor_(plr[pnum].HoldItem._iCurs + CURSOR_FIRSTITEM); + NewCursor(plr[pnum].HoldItem._iCurs + CURSOR_FIRSTITEM); } void DrawTalkPan() From 2270bad1b917d6e8e26abc293edad01f83c17151 Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Sat, 8 Jun 2019 20:55:34 +0200 Subject: [PATCH 3/5] Correct type of dwChar in mpqapi.cpp --- Source/mpqapi.cpp | 16 ++++++++-------- Source/mpqapi.h | 15 +++++++-------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/Source/mpqapi.cpp b/Source/mpqapi.cpp index 5e87d0ad5..a23bfd809 100644 --- a/Source/mpqapi.cpp +++ b/Source/mpqapi.cpp @@ -29,7 +29,7 @@ BOOL mpqapi_set_hidden(const char *pszArchive, BOOL hidden) return SetFileAttributes(pszArchive, dwFileAttributesToSet); } -void mpqapi_store_creation_time(const char *pszArchive, int dwChar) +void mpqapi_store_creation_time(const char *pszArchive, DWORD dwChar) { HANDLE handle; struct _WIN32_FIND_DATAA FindFileData; @@ -283,7 +283,7 @@ _BLOCKENTRY *mpqapi_add_file(const char *pszName, _BLOCKENTRY *pBlk, int block_i return pBlk; } -BOOL mpqapi_write_file_contents(const char *pszName, const BYTE *pbData, int dwLen, _BLOCKENTRY *pBlk) +BOOL mpqapi_write_file_contents(const char *pszName, const BYTE *pbData, DWORD dwLen, _BLOCKENTRY *pBlk) { const char *v4; // esi const char *v5; // eax @@ -432,7 +432,7 @@ BOOL mpqapi_has_file(const char *pszName) return FetchHandle(pszName) != -1; } -BOOL OpenMPQ(const char *pszArchive, BOOL hidden, int dwChar) +BOOL OpenMPQ(const char *pszArchive, BOOL hidden, DWORD dwChar) { const char *v3; // ebp BOOL v4; // esi @@ -461,7 +461,7 @@ BOOL OpenMPQ(const char *pszArchive, BOOL hidden, int dwChar) } if (!sgpBlockTbl || !sgpHashTbl) { memset(&fhdr, 0, sizeof(fhdr)); - if (!ParseMPQHeader(&fhdr, (int *)&sgdwMpqOffset)) { + if (!ParseMPQHeader(&fhdr, &sgdwMpqOffset)) { LABEL_15: CloseMPQ(lpFileName, 1, dwChar); return 0; @@ -493,7 +493,7 @@ BOOL OpenMPQ(const char *pszArchive, BOOL hidden, int dwChar) // 65AB14: using guessed type char save_archive_open; // 679660: using guessed type char gbMaxPlayers; -BOOL ParseMPQHeader(_FILEHEADER *pHdr, int *pdwNextFileStart) +BOOL ParseMPQHeader(_FILEHEADER *pHdr, DWORD *pdwNextFileStart) { DWORD size; DWORD NumberOfBytesRead; @@ -533,7 +533,7 @@ BOOL ParseMPQHeader(_FILEHEADER *pHdr, int *pdwNextFileStart) return TRUE; } -void CloseMPQ(const char *pszArchive, BOOL bFree, int dwChar) +void CloseMPQ(const char *pszArchive, BOOL bFree, DWORD dwChar) { if (bFree) { MemFreeDbg(sgpBlockTbl); @@ -553,7 +553,7 @@ void CloseMPQ(const char *pszArchive, BOOL bFree, int dwChar) } } -void mpqapi_store_modified_time(const char *pszArchive, int dwChar) +void mpqapi_store_modified_time(const char *pszArchive, DWORD dwChar) { HANDLE handle; struct _WIN32_FIND_DATAA FindFileData; @@ -570,7 +570,7 @@ void mpqapi_store_modified_time(const char *pszArchive, int dwChar) } } -BOOL mpqapi_flush_and_close(const char *pszArchive, BOOL bFree, int dwChar) +BOOL mpqapi_flush_and_close(const char *pszArchive, BOOL bFree, DWORD dwChar) { BOOL ret = FALSE; if (sghArchive == INVALID_HANDLE_VALUE) diff --git a/Source/mpqapi.h b/Source/mpqapi.h index 39b772fb9..c1451b360 100644 --- a/Source/mpqapi.h +++ b/Source/mpqapi.h @@ -7,12 +7,11 @@ extern BOOL save_archive_modified; // weak extern BOOLEAN save_archive_open; // weak BOOL mpqapi_set_hidden(const char *pszArchive, BOOL hidden); -void mpqapi_store_creation_time(const char *pszArchive, int dwChar); +void mpqapi_store_creation_time(const char *pszArchive, DWORD dwChar); BOOL mpqapi_reg_load_modification_time(char *dst, int size); void mpqapi_xor_buf(char *pbData); void mpqapi_store_default_time(DWORD dwChar); BOOLEAN mpqapi_reg_store_modification_time(char *pbData, DWORD dwLen); -_BLOCKENTRY *j_mpqapi_remove_hash_entry(char *pszName); void mpqapi_remove_hash_entry(const char *pszName); void mpqapi_alloc_block(int block_offset, int block_size); _BLOCKENTRY *mpqapi_new_block(int *block_index); @@ -21,15 +20,15 @@ int mpqapi_get_hash_index(short index, int hash_a, int hash_b, int locale); void mpqapi_remove_hash_entries(BOOL(__stdcall *fnGetName)(DWORD, char *)); BOOL mpqapi_write_file(const char *pszName, const BYTE *pbData, DWORD dwLen); _BLOCKENTRY *mpqapi_add_file(const char *pszName, _BLOCKENTRY *pBlk, int block_index); -BOOL mpqapi_write_file_contents(const char *pszName, const BYTE *pbData, int dwLen, _BLOCKENTRY *pBlk); +BOOL mpqapi_write_file_contents(const char *pszName, const BYTE *pbData, DWORD dwLen, _BLOCKENTRY *pBlk); int mpqapi_find_free_block(int size, int *block_size); void mpqapi_rename(char *pszOld, char *pszNew); BOOL mpqapi_has_file(const char *pszName); -BOOL OpenMPQ(const char *pszArchive, BOOL hidden, int dwChar); -BOOL ParseMPQHeader(_FILEHEADER *pHdr, int *pdwNextFileStart); -void CloseMPQ(const char *pszArchive, BOOL bFree, int dwChar); -void mpqapi_store_modified_time(const char *pszArchive, int dwChar); -BOOL mpqapi_flush_and_close(const char *pszArchive, BOOL bFree, int dwChar); +BOOL OpenMPQ(const char *pszArchive, BOOL hidden, DWORD dwChar); +BOOL ParseMPQHeader(_FILEHEADER *pHdr, DWORD *pdwNextFileStart); +void CloseMPQ(const char *pszArchive, BOOL bFree, DWORD dwChar); +void mpqapi_store_modified_time(const char *pszArchive, DWORD dwChar); +BOOL mpqapi_flush_and_close(const char *pszArchive, BOOL bFree, DWORD dwChar); BOOL WriteMPQHeader(); BOOL mpqapi_write_block_table(); BOOL mpqapi_write_hash_table(); From 78a8c05925dd9ca3cd0ab2588e84f3c86724e7dc Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Sun, 9 Jun 2019 01:50:02 +0200 Subject: [PATCH 4/5] Clean up ParseMPQHeader --- structs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/structs.h b/structs.h index f7fd05cbb..d052fdb5c 100644 --- a/structs.h +++ b/structs.h @@ -1472,7 +1472,7 @@ typedef struct _FILEHEADER { int signature; int headersize; int filesize; - short version; + WORD version; short sectorsizeid; int hashoffset; int blockoffset; From a55d2a811f9518a2a28872f77aaba9e6bfb952f2 Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Sun, 9 Jun 2019 01:52:24 +0200 Subject: [PATCH 5/5] Clean up mpqapi.cpp --- Source/mpqapi.cpp | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/Source/mpqapi.cpp b/Source/mpqapi.cpp index a23bfd809..d247d3190 100644 --- a/Source/mpqapi.cpp +++ b/Source/mpqapi.cpp @@ -4,7 +4,7 @@ DWORD sgdwMpqOffset; char mpq_buf[4096]; _HASHENTRY *sgpHashTbl; -BOOL save_archive_modified; // weak +BOOL save_archive_modified; _BLOCKENTRY *sgpBlockTbl; BOOLEAN save_archive_open; // weak @@ -457,7 +457,7 @@ BOOL OpenMPQ(const char *pszArchive, BOOL hidden, DWORD dwChar) if (sghArchive == INVALID_HANDLE_VALUE) return 0; save_archive_open = 1; - save_archive_modified = 1; + save_archive_modified = TRUE; } if (!sgpBlockTbl || !sgpHashTbl) { memset(&fhdr, 0, sizeof(fhdr)); @@ -489,7 +489,6 @@ BOOL OpenMPQ(const char *pszArchive, BOOL hidden, DWORD dwChar) } return 1; } -// 65AB0C: using guessed type int save_archive_modified; // 65AB14: using guessed type char save_archive_open; // 679660: using guessed type char gbMaxPlayers; @@ -526,7 +525,7 @@ BOOL ParseMPQHeader(_FILEHEADER *pHdr, DWORD *pdwNextFileStart) pHdr->sectorsizeid = 3; pHdr->version = 0; *pdwNextFileStart = 0x10068; - save_archive_modified = 1; + save_archive_modified = TRUE; save_archive_open = 1; } @@ -564,7 +563,7 @@ void mpqapi_store_modified_time(const char *pszArchive, DWORD dwChar) handle = FindFirstFile(pszArchive, &FindFileData); if (handle != INVALID_HANDLE_VALUE) { FindClose(handle); - *((FILETIME*) (dst) + dwChar * 2 + 1) = FindFileData.ftLastWriteTime; + *((FILETIME *)(dst) + dwChar * 2 + 1) = FindFileData.ftLastWriteTime; mpqapi_reg_store_modification_time(dst, 160); } } @@ -572,22 +571,22 @@ void mpqapi_store_modified_time(const char *pszArchive, DWORD dwChar) BOOL mpqapi_flush_and_close(const char *pszArchive, BOOL bFree, DWORD dwChar) { - BOOL ret = FALSE; - if (sghArchive == INVALID_HANDLE_VALUE) + BOOL ret = FALSE; + if (sghArchive == INVALID_HANDLE_VALUE) ret = TRUE; else { - ret = FALSE; - if (!save_archive_modified) - ret = TRUE; - else if (mpqapi_can_seek() && WriteMPQHeader() && mpqapi_write_block_table()) { - if (mpqapi_write_hash_table()) + ret = FALSE; + if (!save_archive_modified) + ret = TRUE; + else if (mpqapi_can_seek() && WriteMPQHeader() && mpqapi_write_block_table()) { + if (mpqapi_write_hash_table()) ret = TRUE; else ret = FALSE; } - } - CloseMPQ(pszArchive, bFree, dwChar); - return ret; + } + CloseMPQ(pszArchive, bFree, dwChar); + return ret; } BOOL WriteMPQHeader()