mirror of
https://github.com/GTAmodding/re3.git
synced 2024-12-24 18:15:41 +00:00
fixed CFileMgr somewhat; still issues when loading saves
This commit is contained in:
parent
9703ef9b59
commit
3472a614ae
7 changed files with 22 additions and 21 deletions
|
@ -23,7 +23,7 @@ CDirectory::ReadDirFile(const char *filename)
|
||||||
fd = CFileMgr::OpenFile(filename, "rb");
|
fd = CFileMgr::OpenFile(filename, "rb");
|
||||||
while(CFileMgr::Read(fd, (char*)&dirinfo, sizeof(dirinfo)))
|
while(CFileMgr::Read(fd, (char*)&dirinfo, sizeof(dirinfo)))
|
||||||
AddItem(dirinfo);
|
AddItem(dirinfo);
|
||||||
return CFileMgr::CloseFile(fd);
|
CFileMgr::CloseFile(fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
#include "patcher.h"
|
#include "patcher.h"
|
||||||
#include "FileMgr.h"
|
#include "FileMgr.h"
|
||||||
|
|
||||||
|
const char *_psGetUserFilesFolder();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Windows FILE is BROKEN for GTA.
|
* Windows FILE is BROKEN for GTA.
|
||||||
*
|
*
|
||||||
|
@ -49,14 +51,17 @@ found:
|
||||||
return fd;
|
return fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static int
|
||||||
myfclose(int fd)
|
myfclose(int fd)
|
||||||
{
|
{
|
||||||
|
int ret;
|
||||||
assert(fd < NUMFILES);
|
assert(fd < NUMFILES);
|
||||||
if(myfiles[fd].file){
|
if(myfiles[fd].file){
|
||||||
fclose(myfiles[fd].file);
|
ret = fclose(myfiles[fd].file);
|
||||||
myfiles[fd].file = nil;
|
myfiles[fd].file = nil;
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
return EOF;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -158,7 +163,8 @@ myfseek(int fd, long offset, int whence)
|
||||||
static int
|
static int
|
||||||
myfeof(int fd)
|
myfeof(int fd)
|
||||||
{
|
{
|
||||||
return feof(myfiles[fd].file);
|
// return feof(myfiles[fd].file);
|
||||||
|
return ferror(myfiles[fd].file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -205,7 +211,7 @@ void
|
||||||
CFileMgr::SetDirMyDocuments(void)
|
CFileMgr::SetDirMyDocuments(void)
|
||||||
{
|
{
|
||||||
SetDir(""); // better start at the root if user directory is relative
|
SetDir(""); // better start at the root if user directory is relative
|
||||||
chdir(GetUserDirectory());
|
chdir(_psGetUserFilesFolder());
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -265,10 +271,10 @@ CFileMgr::ReadLine(int fd, char *buf, int len)
|
||||||
return myfgets(buf, len, fd);
|
return myfgets(buf, len, fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
int
|
||||||
CFileMgr::CloseFile(int fd)
|
CFileMgr::CloseFile(int fd)
|
||||||
{
|
{
|
||||||
myfclose(fd);
|
return myfclose(fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -16,6 +16,6 @@ public:
|
||||||
static int Write(int fd, char *buf, int len);
|
static int Write(int fd, char *buf, int len);
|
||||||
static bool Seek(int fd, int offset, int whence);
|
static bool Seek(int fd, int offset, int whence);
|
||||||
static char *ReadLine(int fd, char *buf, int len);
|
static char *ReadLine(int fd, char *buf, int len);
|
||||||
static void CloseFile(int fd);
|
static int CloseFile(int fd);
|
||||||
static int GetErrorReadWrite(int fd);
|
static int GetErrorReadWrite(int fd);
|
||||||
};
|
};
|
||||||
|
|
|
@ -72,8 +72,6 @@ extern void **rwengine;
|
||||||
#define SCREEN_FROM_RIGHT(a) Float(SCREEN_WIDTH - SCREEN_STRETCH_X(a))
|
#define SCREEN_FROM_RIGHT(a) Float(SCREEN_WIDTH - SCREEN_STRETCH_X(a))
|
||||||
#define SCREEN_FROM_BOTTOM(a) Float(SCREEN_HEIGHT - SCREEN_STRETCH_Y(a))
|
#define SCREEN_FROM_BOTTOM(a) Float(SCREEN_HEIGHT - SCREEN_STRETCH_Y(a))
|
||||||
|
|
||||||
char *GetUserDirectory(void);
|
|
||||||
|
|
||||||
struct GlobalScene
|
struct GlobalScene
|
||||||
{
|
{
|
||||||
RpWorld *world;
|
RpWorld *world;
|
||||||
|
|
|
@ -65,3 +65,4 @@ enum Config {
|
||||||
//#define FIX_BUGS
|
//#define FIX_BUGS
|
||||||
//#define NO_CDCHECK
|
//#define NO_CDCHECK
|
||||||
#define NO_MOVIES
|
#define NO_MOVIES
|
||||||
|
//#define USE_MY_DOCUMENTS
|
||||||
|
|
11
src/re3.cpp
11
src/re3.cpp
|
@ -47,17 +47,6 @@ mysrand(unsigned int seed)
|
||||||
myrand_seed = seed;
|
myrand_seed = seed;
|
||||||
}
|
}
|
||||||
|
|
||||||
// platform stuff
|
|
||||||
char*
|
|
||||||
GetUserDirectory(void)
|
|
||||||
{
|
|
||||||
static char path[MAX_PATH];
|
|
||||||
strcpy(path, "userfiles");
|
|
||||||
mkdir(path);
|
|
||||||
return path;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int (*open_script_orig)(const char *path, const char *mode);
|
int (*open_script_orig)(const char *path, const char *mode);
|
||||||
int
|
int
|
||||||
open_script(const char *path, const char *mode)
|
open_script(const char *path, const char *mode)
|
||||||
|
|
|
@ -191,6 +191,7 @@ void _psCreateFolder(LPCSTR path)
|
||||||
*/
|
*/
|
||||||
const char *_psGetUserFilesFolder()
|
const char *_psGetUserFilesFolder()
|
||||||
{
|
{
|
||||||
|
#ifdef USE_MY_DOCUMENTS
|
||||||
HKEY hKey = NULL;
|
HKEY hKey = NULL;
|
||||||
|
|
||||||
static CHAR szUserFiles[256];
|
static CHAR szUserFiles[256];
|
||||||
|
@ -221,6 +222,12 @@ const char *_psGetUserFilesFolder()
|
||||||
|
|
||||||
strcpy(szUserFiles, "data");
|
strcpy(szUserFiles, "data");
|
||||||
return szUserFiles;
|
return szUserFiles;
|
||||||
|
#else
|
||||||
|
static CHAR szUserFiles[256];
|
||||||
|
strcpy(szUserFiles, "userfiles");
|
||||||
|
_psCreateFolder(szUserFiles);
|
||||||
|
return szUserFiles;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in a new issue