mirror of
https://github.com/kichikuou/system3-sdl2.git
synced 2026-09-27 17:38:01 +03:00
Add savedir option
This commit is contained in:
+11
-9
@@ -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
@@ -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);
|
||||
|
||||
@@ -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 初期化
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user