From f2fbf54c32973696daf0334fb01c975d5ce8fe33 Mon Sep 17 00:00:00 2001 From: kichikuou Date: Sat, 11 Jul 2020 14:30:45 +0900 Subject: [PATCH] Move registerGameFiles to xsystem35.c --- src/gameresource.c | 71 +++++----------------------------------------- src/gameresource.h | 17 ++++++++++- src/xsystem35.c | 41 +++++++++++++++++++++++++- 3 files changed, 63 insertions(+), 66 deletions(-) diff --git a/src/gameresource.c b/src/gameresource.c index 70271a8..4967f8e 100644 --- a/src/gameresource.c +++ b/src/gameresource.c @@ -28,24 +28,9 @@ #include #include -#include "ald_manager.h" -#include "nact.h" -#include "savedata.h" +#include "gameresource.h" #include "system.h" -typedef struct { - char *game_fname[DRIFILETYPEMAX][DRIFILEMAX]; - int cnt[DRIFILETYPEMAX]; - char *save_path; - char *save_fname[SAVE_MAXNUMBER]; - char *ain; - char *wai; - char *bgi; - char *sact01; - char *init; - char *alk[10]; -} GameResource; - static void storeDataName(GameResource *gr, int type, int no, char *src) { gr->game_fname[type][no] = strdup(src); gr->cnt[type] = max(no + 1, gr->cnt[type]); @@ -203,54 +188,12 @@ static boolean initFromFile(GameResource *gr, FILE *fp, const char *gr_fname) { return FALSE; } -static void registerFiles(GameResource *gr) { - if (gr->cnt[DRIFILE_SCO] == 0) { - SYSERROR("No Scenario data available\n"); - } - if (gr->cnt[DRIFILE_SCO] > 0) - ald_init(DRIFILE_SCO, gr->game_fname[DRIFILE_SCO], gr->cnt[DRIFILE_SCO], TRUE); - if (gr->cnt[DRIFILE_CG] > 0) - ald_init(DRIFILE_CG, gr->game_fname[DRIFILE_CG], gr->cnt[DRIFILE_CG], TRUE); - if (gr->cnt[DRIFILE_WAVE] > 0) - ald_init(DRIFILE_WAVE, gr->game_fname[DRIFILE_WAVE], gr->cnt[DRIFILE_WAVE], TRUE); - if (gr->cnt[DRIFILE_MIDI] > 0) - ald_init(DRIFILE_MIDI, gr->game_fname[DRIFILE_MIDI], gr->cnt[DRIFILE_MIDI], TRUE); - if (gr->cnt[DRIFILE_DATA] > 0) - ald_init(DRIFILE_DATA, gr->game_fname[DRIFILE_DATA], gr->cnt[DRIFILE_DATA], TRUE); - if (gr->cnt[DRIFILE_RSC] > 0) - ald_init(DRIFILE_RSC, gr->game_fname[DRIFILE_RSC], gr->cnt[DRIFILE_RSC], TRUE); - if (gr->cnt[DRIFILE_BGM] > 0) - ald_init(DRIFILE_BGM, gr->game_fname[DRIFILE_BGM], gr->cnt[DRIFILE_BGM], TRUE); - - if (gr->save_path) - save_set_path(gr->save_path); - for (int i = 0; i < SAVE_MAXNUMBER; i++) { - if (gr->save_fname[i]) - save_register_file(gr->save_fname[i], i); - } - - nact->ain.path_to_ain = gr->ain; - nact->files.wai = gr->wai; - nact->files.bgi = gr->bgi; - nact->files.sact01 = gr->sact01; - nact->files.init = gr->init; - for (int i = 0; i < 10; i++) - nact->files.alk[i] = gr->alk[i]; -} - -boolean initGameDataResorce(const char *gr_fname) { - GameResource gr; - memset(&gr, 0, sizeof(gr)); - +boolean initGameResorce(GameResource *gr, const char *gr_fname) { + memset(gr, 0, sizeof(GameResource)); FILE *fp = fopen(gr_fname, "r"); - boolean result; - if (fp) { - result = initFromFile(&gr, fp, gr_fname); - fclose(fp); - } else { - result = initFromDir(&gr); - } - if (result) - registerFiles(&gr); + if (!fp) + return initFromDir(gr); + boolean result = initFromFile(gr, fp, gr_fname); + fclose(fp); return result; } diff --git a/src/gameresource.h b/src/gameresource.h index 5354f0a..988a096 100644 --- a/src/gameresource.h +++ b/src/gameresource.h @@ -24,7 +24,22 @@ #define __GAMERESOURCE_H__ #include "portab.h" +#include "ald_manager.h" +#include "savedata.h" -boolean initGameDataResorce(const char *gameResourceFile); +typedef struct { + char *game_fname[DRIFILETYPEMAX][DRIFILEMAX]; + int cnt[DRIFILETYPEMAX]; + char *save_path; + char *save_fname[SAVE_MAXNUMBER]; + char *ain; + char *wai; + char *bgi; + char *sact01; + char *init; + char *alk[10]; +} GameResource; + +boolean initGameResorce(GameResource *gr, const char *gr_fname); #endif /* !__GAMERESOURCE_H__ */ diff --git a/src/xsystem35.c b/src/xsystem35.c index 7f2ec10..cb4a9e5 100644 --- a/src/xsystem35.c +++ b/src/xsystem35.c @@ -61,8 +61,10 @@ #include "graphicsdevice.h" #include "menu.h" #include "music.h" +#include "savedata.h" #include "scenario.h" #include "variable.h" +#include "ald_manager.h" #include "gameresource.h" #include "filecheck.h" #include "joystick.h" @@ -562,6 +564,41 @@ static void init_signalhandler() { } #endif +static void registerGameFiles(GameResource *gr) { + if (gr->cnt[DRIFILE_SCO] == 0) { + SYSERROR("No Scenario data available\n"); + } + if (gr->cnt[DRIFILE_SCO] > 0) + ald_init(DRIFILE_SCO, gr->game_fname[DRIFILE_SCO], gr->cnt[DRIFILE_SCO], TRUE); + if (gr->cnt[DRIFILE_CG] > 0) + ald_init(DRIFILE_CG, gr->game_fname[DRIFILE_CG], gr->cnt[DRIFILE_CG], TRUE); + if (gr->cnt[DRIFILE_WAVE] > 0) + ald_init(DRIFILE_WAVE, gr->game_fname[DRIFILE_WAVE], gr->cnt[DRIFILE_WAVE], TRUE); + if (gr->cnt[DRIFILE_MIDI] > 0) + ald_init(DRIFILE_MIDI, gr->game_fname[DRIFILE_MIDI], gr->cnt[DRIFILE_MIDI], TRUE); + if (gr->cnt[DRIFILE_DATA] > 0) + ald_init(DRIFILE_DATA, gr->game_fname[DRIFILE_DATA], gr->cnt[DRIFILE_DATA], TRUE); + if (gr->cnt[DRIFILE_RSC] > 0) + ald_init(DRIFILE_RSC, gr->game_fname[DRIFILE_RSC], gr->cnt[DRIFILE_RSC], TRUE); + if (gr->cnt[DRIFILE_BGM] > 0) + ald_init(DRIFILE_BGM, gr->game_fname[DRIFILE_BGM], gr->cnt[DRIFILE_BGM], TRUE); + + if (gr->save_path) + save_set_path(gr->save_path); + for (int i = 0; i < SAVE_MAXNUMBER; i++) { + if (gr->save_fname[i]) + save_register_file(gr->save_fname[i], i); + } + + nact->ain.path_to_ain = gr->ain; + nact->files.wai = gr->wai; + nact->files.bgi = gr->bgi; + nact->files.sact01 = gr->sact01; + nact->files.init = gr->init; + for (int i = 0; i < 10; i++) + nact->files.alk[i] = gr->alk[i]; +} + int main(int argc, char **argv) { char *homedir = getenv("HOME"), *rc_name, *rc_path; #ifdef HAVE_SIGACTION @@ -588,8 +625,10 @@ int main(int argc, char **argv) { } } #endif - if (!initGameDataResorce(gameResourceFile)) + GameResource gr; + if (!initGameResorce(&gr, gameResourceFile)) sys35_usage(TRUE); + registerGameFiles(&gr); #ifdef HAVE_SIGACTION init_signalhandler();