Move save/load display state to NACT

This commit is contained in:
kichikuou
2026-09-02 09:10:38 +09:00
parent ad33e72485
commit 0908fcd643
6 changed files with 88 additions and 77 deletions
+1
View File
@@ -222,6 +222,7 @@ target_sources(system3 PRIVATE
src/sys/nact_sys1.cpp src/sys/nact_sys1.cpp
src/sys/nact_sys2.cpp src/sys/nact_sys2.cpp
src/sys/nact_sys3.cpp src/sys/nact_sys3.cpp
src/sys/nact_window.cpp
src/sys/scenario.cpp src/sys/scenario.cpp
) )
if (ENABLE_DEBUGGER) if (ENABLE_DEBUGGER)
-71
View File
@@ -263,77 +263,6 @@ AGS::~AGS()
SDL_DestroyTexture(sdlTexture); SDL_DestroyTexture(sdlTexture);
} }
void AGS::load(FILEIO* fio)
{
menu.font_size = fio->getw();
text.font_size = fio->getw();
palette_bank = fio->getw();
if (!palette_bank) {
palette_bank = -1;
}
text.font_color = fio->getw();
menu.font_color = fio->getw();
menu.frame_color = fio->getw();
menu.back_color = fio->getw();
text.frame_color = fio->getw();
text.back_color = fio->getw();
for (int i = 0; i < 10; i++) {
int sx = fio->getw();
int sy = fio->getw();
int ex = fio->getw();
int ey = fio->getw();
bool save = fio->getw() ? true : false;
bool frame = fio->getw() ? true : false;
menu_w[i].reset(sx, sy, ex, ey, frame, save);
fio->getw();
fio->getw();
}
for (int i = 0; i < 10; i++) {
int sx = fio->getw();
int sy = fio->getw();
int ex = fio->getw();
int ey = fio->getw();
bool save = fio->getw() ? true : false;
bool frame = fio->getw() ? true : false;
text_w[i].reset(sx, sy, ex, ey, frame, save);
fio->getw();
fio->getw();
}
}
void AGS::save(FILEIO* fio)
{
fio->putw(menu.font_size);
fio->putw(text.font_size);
fio->putw(palette_bank == -1 ? 0 : palette_bank);
fio->putw(text.font_color);
fio->putw(menu.font_color);
fio->putw(menu.frame_color);
fio->putw(menu.back_color);
fio->putw(text.frame_color);
fio->putw(text.back_color);
for (int i = 0; i < 10; i++) {
fio->putw(menu_w[i].sx);
fio->putw(menu_w[i].sy);
fio->putw(menu_w[i].ex);
fio->putw(menu_w[i].ey);
fio->putw(menu_w[i].save ? 1 : 0);
fio->putw(menu_w[i].frame ? 1 : 0);
fio->putw(0);
fio->putw(0);
}
for (int i = 0; i < 10; i++) {
fio->putw(text_w[i].sx);
fio->putw(text_w[i].sy);
fio->putw(text_w[i].ex);
fio->putw(text_w[i].ey);
fio->putw(text_w[i].save ? 1 : 0);
fio->putw(text_w[i].frame ? 1 : 0);
fio->putw(0);
fio->putw(0);
}
}
void AGS::set_cg_file(const char *file_name) void AGS::set_cg_file(const char *file_name)
{ {
bmp_prefix = NULL; bmp_prefix = NULL;
+2 -4
View File
@@ -101,9 +101,6 @@ public:
AGS(const Config& config, const GameId& game_id); AGS(const Config& config, const GameId& game_id);
~AGS(); ~AGS();
void load(FILEIO* fio);
void save(FILEIO* fio);
void update_screen(); void update_screen();
void load_cg(int page, int transparent); void load_cg(int page, int transparent);
@@ -232,7 +229,6 @@ public:
uint8 cursor_color; uint8 cursor_color;
int cursor_index; int cursor_index;
private:
// Window (B command) // Window (B command)
struct Window { struct Window {
int sx; int sx;
@@ -248,6 +244,8 @@ private:
}; };
Window menu_w[10]; Window menu_w[10];
Window text_w[10]; Window text_w[10];
private:
void init_windows(); void init_windows();
// Box (E and Y7 commands) // Box (E and Y7 commands)
+2 -2
View File
@@ -546,7 +546,7 @@ bool NACT::load(int index)
for (int i = 0; i < 512; i++) { for (int i = 0; i < 512; i++) {
var[i] = fio->getw(); var[i] = fio->getw();
} }
ags->load(fio.get()); load_display_state(fio.get());
for (int i = 0; i < 10; i++) { for (int i = 0; i < 10; i++) {
tvar[i] = fio->read_string(22); tvar[i] = fio->read_string(22);
} }
@@ -586,7 +586,7 @@ bool NACT::save(int index, const char header[112])
for (int i = 0; i < 512; i++) { for (int i = 0; i < 512; i++) {
fio->putw(var[i]); fio->putw(var[i]);
} }
ags->save(fio.get()); save_display_state(fio.get());
for (int i = 0; i < 10; i++) { for (int i = 0; i < 10; i++) {
fio->write_string(tvar[i], 22); fio->write_string(tvar[i], 22);
} }
+3
View File
@@ -32,6 +32,7 @@ class AGS;
class MAKO; class MAKO;
class MsgSkip; class MsgSkip;
class Encoding; class Encoding;
class FILEIO;
// special codes for NACT::exit_code // special codes for NACT::exit_code
const int NACT_HALT = -1; const int NACT_HALT = -1;
@@ -142,6 +143,8 @@ protected:
bool load(int index); bool load(int index);
bool save(int index, const char header[112]); bool save(int index, const char header[112]);
void load_display_state(FILEIO* fio);
void save_display_state(FILEIO* fio);
int menu_select(int num_items); int menu_select(int num_items);
void wait_after_open_menu(); void wait_after_open_menu();
+80
View File
@@ -0,0 +1,80 @@
/*
ALICE SOFT SYSTEM 3 for Win32
[ NACT - window ]
*/
#include "nact.h"
#include "ags.h"
#include "fileio.h"
void NACT::load_display_state(FILEIO* fio)
{
ags->menu.font_size = fio->getw();
ags->text.font_size = fio->getw();
ags->palette_bank = fio->getw();
if (!ags->palette_bank) {
ags->palette_bank = -1;
}
ags->text.font_color = fio->getw();
ags->menu.font_color = fio->getw();
ags->menu.frame_color = fio->getw();
ags->menu.back_color = fio->getw();
ags->text.frame_color = fio->getw();
ags->text.back_color = fio->getw();
for (int i = 0; i < 10; i++) {
int sx = fio->getw();
int sy = fio->getw();
int ex = fio->getw();
int ey = fio->getw();
bool save = fio->getw() ? true : false;
bool frame = fio->getw() ? true : false;
ags->menu_w[i].reset(sx, sy, ex, ey, frame, save);
fio->getw();
fio->getw();
}
for (int i = 0; i < 10; i++) {
int sx = fio->getw();
int sy = fio->getw();
int ex = fio->getw();
int ey = fio->getw();
bool save = fio->getw() ? true : false;
bool frame = fio->getw() ? true : false;
ags->text_w[i].reset(sx, sy, ex, ey, frame, save);
fio->getw();
fio->getw();
}
}
void NACT::save_display_state(FILEIO* fio)
{
fio->putw(ags->menu.font_size);
fio->putw(ags->text.font_size);
fio->putw(ags->palette_bank == -1 ? 0 : ags->palette_bank);
fio->putw(ags->text.font_color);
fio->putw(ags->menu.font_color);
fio->putw(ags->menu.frame_color);
fio->putw(ags->menu.back_color);
fio->putw(ags->text.frame_color);
fio->putw(ags->text.back_color);
for (int i = 0; i < 10; i++) {
fio->putw(ags->menu_w[i].sx);
fio->putw(ags->menu_w[i].sy);
fio->putw(ags->menu_w[i].ex);
fio->putw(ags->menu_w[i].ey);
fio->putw(ags->menu_w[i].save ? 1 : 0);
fio->putw(ags->menu_w[i].frame ? 1 : 0);
fio->putw(0);
fio->putw(0);
}
for (int i = 0; i < 10; i++) {
fio->putw(ags->text_w[i].sx);
fio->putw(ags->text_w[i].sy);
fio->putw(ags->text_w[i].ex);
fio->putw(ags->text_w[i].ey);
fio->putw(ags->text_w[i].save ? 1 : 0);
fio->putw(ags->text_w[i].frame ? 1 : 0);
fio->putw(0);
fio->putw(0);
}
}