Add savedir option

This commit is contained in:
kichikuou
2017-04-30 15:52:22 +09:00
parent f35990d1a4
commit f680fb3e76
4 changed files with 21 additions and 18 deletions
+11 -9
View File
@@ -7,6 +7,12 @@
#include "fileio.h"
_TCHAR g_root[_MAX_PATH];
const char* g_savedir;
void FILEIO::SetSaveDir(const char* savedir)
{
g_savedir = savedir;
}
FILEIO::FILEIO()
{
@@ -25,7 +31,11 @@ FILEIO::~FILEIO(void)
bool FILEIO::Fopen(const _TCHAR *filename, int mode)
{
_TCHAR path[_MAX_PATH];
_stprintf_s(path, _MAX_PATH, _T("%s%s"), filename, g_root);
_stprintf_s(path, _MAX_PATH, _T("%s%s"),
(g_savedir && mode & FILEIO_SAVEDATA) ? g_savedir : g_root,
filename);
mode &= ~FILEIO_SAVEDATA;
if(fp != NULL) {
Fclose();
@@ -36,14 +46,6 @@ bool FILEIO::Fopen(const _TCHAR *filename, int mode)
fp = fopen(path, _T("rb"));
} else if(mode == FILEIO_WRITE_BINARY) {
fp = fopen(path, _T("wb"));
} else if(mode == FILEIO_READ_WRITE_BINARY) {
fp = fopen(path, _T("r+b"));
} else if(mode == FILEIO_READ_ASCII) {
fp = fopen(path, _T("r"));
} else if(mode == FILEIO_WRITE_ASCII) {
fp = fopen(path, _T("w"));
} else if(mode == FILEIO_READ_WRITE_ASCII) {
fp = fopen(path, _T("r+w"));
}
return (fp != NULL);
}
+2 -4
View File
@@ -12,10 +12,7 @@
#define FILEIO_READ_BINARY 1
#define FILEIO_WRITE_BINARY 2
#define FILEIO_READ_WRITE_BINARY 3
#define FILEIO_READ_ASCII 4
#define FILEIO_WRITE_ASCII 5
#define FILEIO_READ_WRITE_ASCII 6
#define FILEIO_SAVEDATA 4
#define FILEIO_SEEK_SET 0
#define FILEIO_SEEK_CUR 1
@@ -29,6 +26,7 @@ public:
FILEIO();
~FILEIO();
static void SetSaveDir(const char* savedir);
bool Fopen(const _TCHAR *filename, int mode);
void Fclose();
uint32 Fseek(long offset, int origin);
+3
View File
@@ -1,4 +1,5 @@
#include "common.h"
#include "fileio.h"
#include "sys/nact.h"
extern "C" {
@@ -26,6 +27,8 @@ int main(int argc, char *argv[])
for (int i = 1; i < argc; i++) {
if (strcmp(argv[i], "-antialias") == 0)
ags_setAntialiasedStringMode(1);
if (strcmp(argv[i], "-savedir") == 0)
FILEIO::SetSaveDir(argv[++i]);
}
// system3 初期化
+5 -5
View File
@@ -920,7 +920,7 @@ void NACT::cmd_l()
if(index == 0) {
// 特殊セーブ
FILEIO* fio = new FILEIO();
if(fio->Fopen(_T("ASLEEP.DAT"), FILEIO_READ_BINARY)) {
if(fio->Fopen(_T("ASLEEP.DAT"), FILEIO_READ_BINARY | FILEIO_SAVEDATA)) {
// U01 - U20
for(int i = 21; i <= 40; i++) {
var[i] = fio->Fgetw();
@@ -939,7 +939,7 @@ void NACT::cmd_l()
path[7] = _T('A') + index - 1;
FILEIO* fio = new FILEIO();
if(fio->Fopen(path, FILEIO_READ_BINARY)) {
if(fio->Fopen(path, FILEIO_READ_BINARY | FILEIO_SAVEDATA)) {
fio->Fseek(112, FILEIO_SEEK_SET);
int next_page = fio->Fgetw() - 1;
@@ -1032,7 +1032,7 @@ void NACT::cmd_l()
path[7] = _T('A') + index - 101;
FILEIO* fio = new FILEIO();
if(fio->Fopen(path, FILEIO_READ_BINARY)) {
if(fio->Fopen(path, FILEIO_READ_BINARY | FILEIO_SAVEDATA)) {
fio->Fseek(112 + 16, FILEIO_SEEK_SET);
var[0] = fio->Fgetw();
fio->Fclose();
@@ -1207,7 +1207,7 @@ void NACT::cmd_q()
if(index == 0) {
// 特殊セーブ
FILEIO* fio = new FILEIO();
if(fio->Fopen(_T("ASLEEP.DAT"), FILEIO_WRITE_BINARY)) {
if(fio->Fopen(_T("ASLEEP.DAT"), FILEIO_WRITE_BINARY | FILEIO_SAVEDATA)) {
// U01 - U20
for(int i = 21; i <= 40; i++) {
fio->Fputw(var[i]);
@@ -1226,7 +1226,7 @@ void NACT::cmd_q()
path[7] = _T('A') + index - 1;
FILEIO* fio = new FILEIO();
if(fio->Fopen(path, FILEIO_WRITE_BINARY)) {
if(fio->Fopen(path, FILEIO_WRITE_BINARY | FILEIO_SAVEDATA)) {
uint8 buffer[9510];
int p = 0;