From 9e1e0e91b3dc72543e5f33da1d681b3ebb6cb22d Mon Sep 17 00:00:00 2001 From: kichikuou Date: Thu, 3 Sep 2026 13:23:41 +0900 Subject: [PATCH] Remove g_nact references from ags.cpp --- src/sys/ags.cpp | 45 ---------------------------------------- src/sys/ags.h | 5 ++--- src/sys/nact.cpp | 48 +++++++++++++++++++++++++++++++++++++++++++ src/sys/nact.h | 3 +++ src/sys/nact_sys2.cpp | 4 ++-- src/sys/nact_sys3.cpp | 4 ++-- 6 files changed, 57 insertions(+), 52 deletions(-) diff --git a/src/sys/ags.cpp b/src/sys/ags.cpp index e2ee07e..960aef6 100644 --- a/src/sys/ags.cpp +++ b/src/sys/ags.cpp @@ -7,7 +7,6 @@ #include "ags.h" #include #include -#include "nact.h" #include "game_id.h" #include "config.h" #include "fileio.h" @@ -261,36 +260,6 @@ std::vector AGS::get_screen_palette() const return palette; } -void AGS::fade_out(int duration_ms, bool white) -{ - if (fade_level) - return; - - fade_color = white ? 255 : 0; - - Uint32 dwStart = SDL_GetTicks(); - while (fade_level < 255) { - g_nact->sys_sleep(16); - int t = SDL_GetTicks() - dwStart; - fade_level = t >= duration_ms ? 255 : t * 255 / duration_ms; - } - update_screen(); -} - -void AGS::fade_in(int duration_ms) -{ - if (fade_level == 0) - return; - - Uint32 dwStart = SDL_GetTicks(); - while (fade_level > 0) { - g_nact->sys_sleep(16); - int t = SDL_GetTicks() - dwStart; - fade_level = t >= duration_ms ? 0 : (duration_ms - t) * 255 / duration_ms; - } - update_screen(); -} - void AGS::invalidate_screen(int sx, int sy, int width, int height) { SDL_Rect rect = {sx, sy, width, height}; @@ -403,17 +372,3 @@ void AGS::load_censor_list(const char* fname) fclose(fp); } - -#ifdef __EMSCRIPTEN__ -extern "C" { - -bool EMSCRIPTEN_KEEPALIVE save_screenshot(const char* path) { - return g_nact->ags->save_screenshot(path); -} - -void EMSCRIPTEN_KEEPALIVE load_censor_list(const char *path) { - return g_nact->ags->load_censor_list(path); -} - -} -#endif diff --git a/src/sys/ags.h b/src/sys/ags.h index 65fdfe0..bdbe1cd 100644 --- a/src/sys/ags.h +++ b/src/sys/ags.h @@ -103,9 +103,8 @@ public: void invalidate_screen(int sx, int sy, int width, int height); void draw_gaiji(ScreenId dest, int dest_x, int dest_y, const uint8_t bitmap[32], int size, uint8 color); bool is_faded() const { return fade_level != 0; } - - void fade_out(int duration_ms, bool white); - void fade_in(int duration_ms); + void set_fade_color(bool white) { fade_color = white ? 255 : 0; } + void set_fade_level(int level) { fade_level = level; } void copy(int sx, int sy, int ex, int ey, int dx, int dy) { copy_screen(src_screen, dest_screen, sx, sy, ex, ey, dx, dy); diff --git a/src/sys/nact.cpp b/src/sys/nact.cpp index 317c0c8..9b4f712 100644 --- a/src/sys/nact.cpp +++ b/src/sys/nact.cpp @@ -721,6 +721,40 @@ void NACT::wait_after_open_menu() wait_key_release(); } +void NACT::fade_out(int duration_ms, bool white) +{ + if (ags->is_faded()) + return; + + ags->set_fade_color(white); + + uint32_t start = SDL_GetTicks(); + int level = 0; + while (level < 255) { + sys_sleep(16); + int t = SDL_GetTicks() - start; + level = t >= duration_ms ? 255 : t * 255 / duration_ms; + ags->set_fade_level(level); + } + ags->update_screen(); +} + +void NACT::fade_in(int duration_ms) +{ + if (!ags->is_faded()) + return; + + uint32_t start = SDL_GetTicks(); + int level = 255; + while (level > 0) { + sys_sleep(16); + int t = SDL_GetTicks() - start; + level = t >= duration_ms ? 0 : (duration_ms - t) * 255 / duration_ms; + ags->set_fade_level(level); + } + ags->update_screen(); +} + void NACT::sys_sleep(int ms) { pump_events(); ags->update_screen(); @@ -757,3 +791,17 @@ NACT* NACT::create(const Config& config, const GameId& game_id) { return create_system3(config, game_id); } } + +#ifdef __EMSCRIPTEN__ +extern "C" { + +bool EMSCRIPTEN_KEEPALIVE save_screenshot(const char* path) { + return g_nact->ags->save_screenshot(path); +} + +void EMSCRIPTEN_KEEPALIVE load_censor_list(const char *path) { + return g_nact->ags->load_censor_list(path); +} + +} +#endif diff --git a/src/sys/nact.h b/src/sys/nact.h index 60814dd..9c598f3 100644 --- a/src/sys/nact.h +++ b/src/sys/nact.h @@ -236,6 +236,9 @@ protected: int menu_select(); void wait_after_open_menu(); + void fade_out(int duration_ms, bool white); + void fade_in(int duration_ms); + uint8 get_key(bool notify_texthook = true); void wait_key_release(uint8_t mask = 0xff); diff --git a/src/sys/nact_sys2.cpp b/src/sys/nact_sys2.cpp index 01e3b41..ef8a628 100644 --- a/src/sys/nact_sys2.cpp +++ b/src/sys/nact_sys2.cpp @@ -755,11 +755,11 @@ void NACT_Sys2::cmd_y() break; case 40: case 42: - ags->fade_in(param * 16 * 1000 / 60); + fade_in(param * 16 * 1000 / 60); break; case 41: case 43: - ags->fade_out(param * 16 * 1000 / 60, cmd == 43); + fade_out(param * 16 * 1000 / 60, cmd == 43); break; case 221: case 222: diff --git a/src/sys/nact_sys3.cpp b/src/sys/nact_sys3.cpp index 98e46d2..b26678b 100644 --- a/src/sys/nact_sys3.cpp +++ b/src/sys/nact_sys3.cpp @@ -794,11 +794,11 @@ void NACT_Sys3::exec_y(int cmd, int param) break; case 40: case 42: - ags->fade_in(param * 16 * 1000 / 60); + fade_in(param * 16 * 1000 / 60); break; case 41: case 43: - ags->fade_out(param * 16 * 1000 / 60, cmd == 43); + fade_out(param * 16 * 1000 / 60, cmd == 43); break; case 45: if (param) {