|
|
|
|
@ -55,7 +55,7 @@ void pfile_check_available_space(char *pszDir)
|
|
|
|
|
|
|
|
|
|
void pfile_write_hero() |
|
|
|
|
{ |
|
|
|
|
unsigned int save_num; |
|
|
|
|
DWORD save_num; |
|
|
|
|
PkPlayerStruct pkplr; |
|
|
|
|
|
|
|
|
|
save_num = pfile_get_save_num_from_name(plr[myplr]._pName); |
|
|
|
|
@ -66,9 +66,9 @@ void pfile_write_hero()
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
unsigned int pfile_get_save_num_from_name(const char *name) |
|
|
|
|
DWORD pfile_get_save_num_from_name(const char *name) |
|
|
|
|
{ |
|
|
|
|
unsigned int i; |
|
|
|
|
DWORD i; |
|
|
|
|
|
|
|
|
|
for (i = 0; i < MAX_CHARACTERS; i++) { |
|
|
|
|
if (!_strcmpi(hero_names[i], name)) |
|
|
|
|
@ -95,7 +95,7 @@ void pfile_encode_hero(const PkPlayerStruct *pPack)
|
|
|
|
|
mem_free_dbg(packed); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
BOOL pfile_open_archive(BOOL a1, unsigned int save_num) |
|
|
|
|
BOOL pfile_open_archive(BOOL a1, DWORD save_num) |
|
|
|
|
{ |
|
|
|
|
char FileName[MAX_PATH]; |
|
|
|
|
|
|
|
|
|
@ -108,7 +108,7 @@ BOOL pfile_open_archive(BOOL a1, unsigned int save_num)
|
|
|
|
|
return FALSE; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void pfile_get_save_path(char *pszBuf, DWORD dwBufSize, unsigned int save_num) |
|
|
|
|
void pfile_get_save_path(char *pszBuf, DWORD dwBufSize, DWORD save_num) |
|
|
|
|
{ |
|
|
|
|
DWORD plen; |
|
|
|
|
char *s; |
|
|
|
|
@ -132,7 +132,7 @@ void pfile_get_save_path(char *pszBuf, DWORD dwBufSize, unsigned int save_num)
|
|
|
|
|
_strlwr(pszBuf); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void pfile_flush(BOOL is_single_player, unsigned int save_num) |
|
|
|
|
void pfile_flush(BOOL is_single_player, DWORD save_num) |
|
|
|
|
{ |
|
|
|
|
char FileName[MAX_PATH]; |
|
|
|
|
|
|
|
|
|
@ -140,7 +140,7 @@ void pfile_flush(BOOL is_single_player, unsigned int save_num)
|
|
|
|
|
mpqapi_flush_and_close(FileName, is_single_player, save_num); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
BOOL pfile_create_player_description(char *dst, unsigned int len) |
|
|
|
|
BOOL pfile_create_player_description(char *dst, DWORD len) |
|
|
|
|
{ |
|
|
|
|
char desc[128]; |
|
|
|
|
_uiheroinfo uihero; |
|
|
|
|
@ -161,7 +161,7 @@ BOOL pfile_create_player_description(char *dst, unsigned int len)
|
|
|
|
|
BOOL pfile_create_save_file(const char *name_1, const char *name_2) |
|
|
|
|
{ |
|
|
|
|
int i; |
|
|
|
|
unsigned int save_num; |
|
|
|
|
DWORD save_num; |
|
|
|
|
_uiheroinfo uihero; |
|
|
|
|
BOOL found = FALSE; |
|
|
|
|
|
|
|
|
|
@ -227,10 +227,10 @@ unsigned char game_2_ui_class(const PlayerStruct *p)
|
|
|
|
|
|
|
|
|
|
BOOL __stdcall pfile_ui_set_hero_infos(BOOL(__stdcall *ui_add_hero_info)(_uiheroinfo *)) |
|
|
|
|
{ |
|
|
|
|
unsigned int i, save_num; |
|
|
|
|
DWORD i, save_num; |
|
|
|
|
char FileName[MAX_PATH]; |
|
|
|
|
char NewFileName[MAX_PATH]; |
|
|
|
|
int a1; |
|
|
|
|
BOOL showFixedMsg; |
|
|
|
|
|
|
|
|
|
memset(hero_names, 0, sizeof(hero_names)); |
|
|
|
|
if (gbMaxPlayers > 1) { |
|
|
|
|
@ -264,10 +264,10 @@ BOOL __stdcall pfile_ui_set_hero_infos(BOOL(__stdcall *ui_add_hero_info)(_uihero
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
a1 = 1; |
|
|
|
|
showFixedMsg = TRUE; |
|
|
|
|
for (i = 0; i < MAX_CHARACTERS; i++) { |
|
|
|
|
PkPlayerStruct pkplr; |
|
|
|
|
HANDLE archive = pfile_open_save_archive(&a1, i); |
|
|
|
|
HANDLE archive = pfile_open_save_archive(&showFixedMsg, i); |
|
|
|
|
if (archive) { |
|
|
|
|
if (pfile_read_hero(archive, &pkplr)) { |
|
|
|
|
_uiheroinfo uihero; |
|
|
|
|
@ -283,7 +283,7 @@ BOOL __stdcall pfile_ui_set_hero_infos(BOOL(__stdcall *ui_add_hero_info)(_uihero
|
|
|
|
|
return TRUE; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
char *GetSaveDirectory(char *dst, int dst_size, unsigned int save_num) |
|
|
|
|
char *GetSaveDirectory(char *dst, int dst_size, DWORD save_num) |
|
|
|
|
{ |
|
|
|
|
DWORD dirLen; |
|
|
|
|
char FileName[MAX_PATH]; |
|
|
|
|
@ -315,11 +315,11 @@ BOOL pfile_read_hero(HANDLE archive, PkPlayerStruct *pPack)
|
|
|
|
|
HANDLE file; |
|
|
|
|
BOOL decoded; |
|
|
|
|
DWORD dwlen, nSize; |
|
|
|
|
unsigned char *buf; |
|
|
|
|
BYTE *buf; |
|
|
|
|
|
|
|
|
|
if (!SFileOpenFileEx(archive, "hero", 0, &file)) |
|
|
|
|
if (!SFileOpenFileEx(archive, "hero", 0, &file)) { |
|
|
|
|
return FALSE; |
|
|
|
|
else { |
|
|
|
|
} else { |
|
|
|
|
BOOL ret = FALSE; |
|
|
|
|
char password[16] = PASSWORD_SINGLE; |
|
|
|
|
nSize = 16; |
|
|
|
|
@ -354,7 +354,10 @@ BOOL pfile_read_hero(HANDLE archive, PkPlayerStruct *pPack)
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
HANDLE pfile_open_save_archive(int *unused, unsigned int save_num) |
|
|
|
|
/**
|
|
|
|
|
* @param showFixedMsg Display a dialog if a save file was corrected (deprecated) |
|
|
|
|
*/ |
|
|
|
|
HANDLE pfile_open_save_archive(BOOL *showFixedMsg, DWORD save_num) |
|
|
|
|
{ |
|
|
|
|
char SrcStr[MAX_PATH]; |
|
|
|
|
HANDLE archive; |
|
|
|
|
@ -370,7 +373,7 @@ void pfile_SFileCloseArchive(HANDLE hsArchive)
|
|
|
|
|
SFileCloseArchive(hsArchive); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
BOOL pfile_archive_contains_game(HANDLE hsArchive, unsigned int save_num) |
|
|
|
|
BOOL pfile_archive_contains_game(HANDLE hsArchive, DWORD save_num) |
|
|
|
|
{ |
|
|
|
|
HANDLE file; |
|
|
|
|
|
|
|
|
|
@ -411,7 +414,7 @@ char pfile_get_player_class(unsigned int player_class_nr)
|
|
|
|
|
|
|
|
|
|
BOOL __stdcall pfile_ui_save_create(_uiheroinfo *heroinfo) |
|
|
|
|
{ |
|
|
|
|
unsigned int save_num; |
|
|
|
|
DWORD save_num; |
|
|
|
|
char cl; |
|
|
|
|
PkPlayerStruct pkplr; |
|
|
|
|
|
|
|
|
|
@ -467,7 +470,7 @@ BOOL __stdcall pfile_get_file_name(DWORD lvl, char *dst)
|
|
|
|
|
|
|
|
|
|
BOOL __stdcall pfile_delete_save(_uiheroinfo *hero_info) |
|
|
|
|
{ |
|
|
|
|
unsigned int save_num; |
|
|
|
|
DWORD save_num; |
|
|
|
|
char FileName[MAX_PATH]; |
|
|
|
|
|
|
|
|
|
save_num = pfile_get_save_num_from_name(hero_info->name); |
|
|
|
|
@ -482,7 +485,7 @@ BOOL __stdcall pfile_delete_save(_uiheroinfo *hero_info)
|
|
|
|
|
void pfile_read_player_from_save() |
|
|
|
|
{ |
|
|
|
|
HANDLE archive; |
|
|
|
|
unsigned int save_num; |
|
|
|
|
DWORD save_num; |
|
|
|
|
PkPlayerStruct pkplr; |
|
|
|
|
|
|
|
|
|
save_num = pfile_get_save_num_from_name(gszHero); |
|
|
|
|
@ -509,7 +512,7 @@ void GetTempLevelNames(char *szTemp)
|
|
|
|
|
|
|
|
|
|
void GetPermLevelNames(char *szPerm) |
|
|
|
|
{ |
|
|
|
|
unsigned int save_num; |
|
|
|
|
DWORD save_num; |
|
|
|
|
BOOL has_file; |
|
|
|
|
|
|
|
|
|
save_num = pfile_get_save_num_from_name(plr[myplr]._pName); |
|
|
|
|
@ -537,7 +540,7 @@ void pfile_get_game_name(char *dst)
|
|
|
|
|
void pfile_remove_temp_files() |
|
|
|
|
{ |
|
|
|
|
if (gbMaxPlayers <= 1) { |
|
|
|
|
unsigned int save_num = pfile_get_save_num_from_name(plr[myplr]._pName); |
|
|
|
|
DWORD save_num = pfile_get_save_num_from_name(plr[myplr]._pName); |
|
|
|
|
if (!pfile_open_archive(FALSE, save_num)) |
|
|
|
|
app_fatal("Unable to write to save file archive"); |
|
|
|
|
mpqapi_remove_hash_entries(GetTempSaveNames); |
|
|
|
|
@ -563,8 +566,7 @@ BOOL __stdcall GetTempSaveNames(DWORD dwIndex, char *szTemp)
|
|
|
|
|
|
|
|
|
|
void pfile_rename_temp_to_perm() |
|
|
|
|
{ |
|
|
|
|
unsigned int save_num; |
|
|
|
|
unsigned int i; |
|
|
|
|
DWORD save_num, i; |
|
|
|
|
char TempName[MAX_PATH]; |
|
|
|
|
char PermName[MAX_PATH]; |
|
|
|
|
|
|
|
|
|
@ -604,7 +606,7 @@ BOOL __stdcall GetPermSaveNames(DWORD dwIndex, char *szPerm)
|
|
|
|
|
|
|
|
|
|
void pfile_write_save_file(const char *pszName, BYTE *pbData, DWORD dwLen, DWORD qwLen) |
|
|
|
|
{ |
|
|
|
|
unsigned int save_num; |
|
|
|
|
DWORD save_num; |
|
|
|
|
char FileName[MAX_PATH]; |
|
|
|
|
|
|
|
|
|
pfile_strcpy(FileName, pszName); |
|
|
|
|
@ -629,11 +631,10 @@ void pfile_strcpy(char *dst, const char *src)
|
|
|
|
|
|
|
|
|
|
BYTE *pfile_read(const char *pszName, DWORD *pdwLen) |
|
|
|
|
{ |
|
|
|
|
unsigned int save_num; |
|
|
|
|
DWORD save_num, nread; |
|
|
|
|
char FileName[MAX_PATH]; |
|
|
|
|
HANDLE archive, save; |
|
|
|
|
BYTE *buf; |
|
|
|
|
DWORD nread; |
|
|
|
|
|
|
|
|
|
pfile_strcpy(FileName, pszName); |
|
|
|
|
save_num = pfile_get_save_num_from_name(plr[myplr]._pName); |
|
|
|
|
|