mirror of
https://github.com/kichikuou/system3-sdl2.git
synced 2026-10-01 19:37:55 +03:00
Add savedir option
This commit is contained in:
+11
-9
@@ -7,6 +7,12 @@
|
|||||||
#include "fileio.h"
|
#include "fileio.h"
|
||||||
|
|
||||||
_TCHAR g_root[_MAX_PATH];
|
_TCHAR g_root[_MAX_PATH];
|
||||||
|
const char* g_savedir;
|
||||||
|
|
||||||
|
void FILEIO::SetSaveDir(const char* savedir)
|
||||||
|
{
|
||||||
|
g_savedir = savedir;
|
||||||
|
}
|
||||||
|
|
||||||
FILEIO::FILEIO()
|
FILEIO::FILEIO()
|
||||||
{
|
{
|
||||||
@@ -25,7 +31,11 @@ FILEIO::~FILEIO(void)
|
|||||||
bool FILEIO::Fopen(const _TCHAR *filename, int mode)
|
bool FILEIO::Fopen(const _TCHAR *filename, int mode)
|
||||||
{
|
{
|
||||||
_TCHAR path[_MAX_PATH];
|
_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) {
|
if(fp != NULL) {
|
||||||
Fclose();
|
Fclose();
|
||||||
@@ -36,14 +46,6 @@ bool FILEIO::Fopen(const _TCHAR *filename, int mode)
|
|||||||
fp = fopen(path, _T("rb"));
|
fp = fopen(path, _T("rb"));
|
||||||
} else if(mode == FILEIO_WRITE_BINARY) {
|
} else if(mode == FILEIO_WRITE_BINARY) {
|
||||||
fp = fopen(path, _T("wb"));
|
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);
|
return (fp != NULL);
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-4
@@ -12,10 +12,7 @@
|
|||||||
|
|
||||||
#define FILEIO_READ_BINARY 1
|
#define FILEIO_READ_BINARY 1
|
||||||
#define FILEIO_WRITE_BINARY 2
|
#define FILEIO_WRITE_BINARY 2
|
||||||
#define FILEIO_READ_WRITE_BINARY 3
|
#define FILEIO_SAVEDATA 4
|
||||||
#define FILEIO_READ_ASCII 4
|
|
||||||
#define FILEIO_WRITE_ASCII 5
|
|
||||||
#define FILEIO_READ_WRITE_ASCII 6
|
|
||||||
|
|
||||||
#define FILEIO_SEEK_SET 0
|
#define FILEIO_SEEK_SET 0
|
||||||
#define FILEIO_SEEK_CUR 1
|
#define FILEIO_SEEK_CUR 1
|
||||||
@@ -29,6 +26,7 @@ public:
|
|||||||
FILEIO();
|
FILEIO();
|
||||||
~FILEIO();
|
~FILEIO();
|
||||||
|
|
||||||
|
static void SetSaveDir(const char* savedir);
|
||||||
bool Fopen(const _TCHAR *filename, int mode);
|
bool Fopen(const _TCHAR *filename, int mode);
|
||||||
void Fclose();
|
void Fclose();
|
||||||
uint32 Fseek(long offset, int origin);
|
uint32 Fseek(long offset, int origin);
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
#include "fileio.h"
|
||||||
#include "sys/nact.h"
|
#include "sys/nact.h"
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@@ -26,6 +27,8 @@ int main(int argc, char *argv[])
|
|||||||
for (int i = 1; i < argc; i++) {
|
for (int i = 1; i < argc; i++) {
|
||||||
if (strcmp(argv[i], "-antialias") == 0)
|
if (strcmp(argv[i], "-antialias") == 0)
|
||||||
ags_setAntialiasedStringMode(1);
|
ags_setAntialiasedStringMode(1);
|
||||||
|
if (strcmp(argv[i], "-savedir") == 0)
|
||||||
|
FILEIO::SetSaveDir(argv[++i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// system3 初期化
|
// system3 初期化
|
||||||
|
|||||||
@@ -920,7 +920,7 @@ void NACT::cmd_l()
|
|||||||
if(index == 0) {
|
if(index == 0) {
|
||||||
// 特殊セーブ
|
// 特殊セーブ
|
||||||
FILEIO* fio = new FILEIO();
|
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
|
// U01 - U20
|
||||||
for(int i = 21; i <= 40; i++) {
|
for(int i = 21; i <= 40; i++) {
|
||||||
var[i] = fio->Fgetw();
|
var[i] = fio->Fgetw();
|
||||||
@@ -939,7 +939,7 @@ void NACT::cmd_l()
|
|||||||
path[7] = _T('A') + index - 1;
|
path[7] = _T('A') + index - 1;
|
||||||
|
|
||||||
FILEIO* fio = new FILEIO();
|
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);
|
fio->Fseek(112, FILEIO_SEEK_SET);
|
||||||
|
|
||||||
int next_page = fio->Fgetw() - 1;
|
int next_page = fio->Fgetw() - 1;
|
||||||
@@ -1032,7 +1032,7 @@ void NACT::cmd_l()
|
|||||||
path[7] = _T('A') + index - 101;
|
path[7] = _T('A') + index - 101;
|
||||||
|
|
||||||
FILEIO* fio = new FILEIO();
|
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);
|
fio->Fseek(112 + 16, FILEIO_SEEK_SET);
|
||||||
var[0] = fio->Fgetw();
|
var[0] = fio->Fgetw();
|
||||||
fio->Fclose();
|
fio->Fclose();
|
||||||
@@ -1207,7 +1207,7 @@ void NACT::cmd_q()
|
|||||||
if(index == 0) {
|
if(index == 0) {
|
||||||
// 特殊セーブ
|
// 特殊セーブ
|
||||||
FILEIO* fio = new FILEIO();
|
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
|
// U01 - U20
|
||||||
for(int i = 21; i <= 40; i++) {
|
for(int i = 21; i <= 40; i++) {
|
||||||
fio->Fputw(var[i]);
|
fio->Fputw(var[i]);
|
||||||
@@ -1226,7 +1226,7 @@ void NACT::cmd_q()
|
|||||||
path[7] = _T('A') + index - 1;
|
path[7] = _T('A') + index - 1;
|
||||||
|
|
||||||
FILEIO* fio = new FILEIO();
|
FILEIO* fio = new FILEIO();
|
||||||
if(fio->Fopen(path, FILEIO_WRITE_BINARY)) {
|
if(fio->Fopen(path, FILEIO_WRITE_BINARY | FILEIO_SAVEDATA)) {
|
||||||
uint8 buffer[9510];
|
uint8 buffer[9510];
|
||||||
int p = 0;
|
int p = 0;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user