mirror of
https://github.com/kichikuou/system3-sdl2.git
synced 2026-09-22 22:58:12 +03:00
Move save/load display state to NACT
This commit is contained in:
@@ -222,6 +222,7 @@ target_sources(system3 PRIVATE
|
||||
src/sys/nact_sys1.cpp
|
||||
src/sys/nact_sys2.cpp
|
||||
src/sys/nact_sys3.cpp
|
||||
src/sys/nact_window.cpp
|
||||
src/sys/scenario.cpp
|
||||
)
|
||||
if (ENABLE_DEBUGGER)
|
||||
|
||||
@@ -263,77 +263,6 @@ AGS::~AGS()
|
||||
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)
|
||||
{
|
||||
bmp_prefix = NULL;
|
||||
|
||||
+2
-4
@@ -101,9 +101,6 @@ public:
|
||||
AGS(const Config& config, const GameId& game_id);
|
||||
~AGS();
|
||||
|
||||
void load(FILEIO* fio);
|
||||
void save(FILEIO* fio);
|
||||
|
||||
void update_screen();
|
||||
|
||||
void load_cg(int page, int transparent);
|
||||
@@ -232,7 +229,6 @@ public:
|
||||
uint8 cursor_color;
|
||||
int cursor_index;
|
||||
|
||||
private:
|
||||
// Window (B command)
|
||||
struct Window {
|
||||
int sx;
|
||||
@@ -248,6 +244,8 @@ private:
|
||||
};
|
||||
Window menu_w[10];
|
||||
Window text_w[10];
|
||||
|
||||
private:
|
||||
void init_windows();
|
||||
|
||||
// Box (E and Y7 commands)
|
||||
|
||||
+2
-2
@@ -546,7 +546,7 @@ bool NACT::load(int index)
|
||||
for (int i = 0; i < 512; i++) {
|
||||
var[i] = fio->getw();
|
||||
}
|
||||
ags->load(fio.get());
|
||||
load_display_state(fio.get());
|
||||
for (int i = 0; i < 10; i++) {
|
||||
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++) {
|
||||
fio->putw(var[i]);
|
||||
}
|
||||
ags->save(fio.get());
|
||||
save_display_state(fio.get());
|
||||
for (int i = 0; i < 10; i++) {
|
||||
fio->write_string(tvar[i], 22);
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ class AGS;
|
||||
class MAKO;
|
||||
class MsgSkip;
|
||||
class Encoding;
|
||||
class FILEIO;
|
||||
|
||||
// special codes for NACT::exit_code
|
||||
const int NACT_HALT = -1;
|
||||
@@ -142,6 +143,8 @@ protected:
|
||||
|
||||
bool load(int index);
|
||||
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);
|
||||
void wait_after_open_menu();
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user