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_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)
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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