From ceadba8f4d296dd93a7198c352afdd2162e7e203 Mon Sep 17 00:00:00 2001 From: kichikuou Date: Fri, 3 Jan 2025 12:54:34 +0900 Subject: [PATCH] Load GDISK.DAT and GG00.DAT if game_id is rance2_hint AG00.DAT on the hint disk must be renamed to GG00.DAT to avoid conflicts with AG00.DAT of the main game. This is the setup used in the Ryu1's porting kit (http://www.ryu1.jp/alice/r2port.html). --- src/sys/dri.cpp | 3 +-- src/sys/nact.cpp | 14 ++++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/sys/dri.cpp b/src/sys/dri.cpp index f57b2a7..0fd2c67 100644 --- a/src/sys/dri.cpp +++ b/src/sys/dri.cpp @@ -14,9 +14,8 @@ void Dri::open(const char* file_name) { link_table.clear(); fname = file_name; - fname[0] = 'A'; - auto fio = FILEIO::open(fname.c_str(), FILEIO_READ_BINARY); + auto fio = FILEIO::open(file_name, FILEIO_READ_BINARY); if (!fio) return; diff --git a/src/sys/nact.cpp b/src/sys/nact.cpp index dd56539..588d969 100644 --- a/src/sys/nact.cpp +++ b/src/sys/nact.cpp @@ -33,7 +33,8 @@ NACT::NACT(const Config& config, const GameId& game_id) platform_initialize(); // AG00.DAT読み込み - auto fio = FILEIO::open("AG00.DAT", FILEIO_READ_BINARY); + const char* ag00_name = game_id.is(GameId::RANCE2_HINT) ? "GG00.DAT" : "AG00.DAT"; + auto fio = FILEIO::open(ag00_name, FILEIO_READ_BINARY); if (fio) { int d0, d1, d2, d3; std::string line = fio->gets(); @@ -49,12 +50,13 @@ NACT::NACT(const Config& config, const GameId& game_id) } // ADISK.DAT - if (game_id.is(GameId::PROG_OMAKE)) - sco.open("AGAME.DAT"); - else - sco.open("ADISK.DAT"); + const char* adisk_name = + game_id.is(GameId::RANCE2_HINT) ? "GDISK.DAT" : + game_id.is(GameId::PROG_OMAKE) ? "AGAME.DAT" : + "ADISK.DAT"; + sco.open(adisk_name); if (!sco.loaded()) - sys_error("Cannot open scenario file"); + sys_error("Cannot open %s", adisk_name); sco.page_jump(0, 2); // 各種クラス生成