NACT: Make some command functions non-virtual

This commit is contained in:
kichikuou
2024-12-24 12:19:10 +09:00
parent 78da768d92
commit 57fad54420
5 changed files with 190 additions and 550 deletions
-165
View File
@@ -15,18 +15,6 @@
#include "encoding.h"
#include "texthook.h"
void NACT_Sys3::cmd_calc()
{
int index = sco.getd();
if(0x80 <= index && index <= 0xbf) {
index &= 0x3f;
} else {
index = ((index & 0x3f) << 8) | sco.getd();
}
var[index] = cali();
output_console("\n!var[%d]:%d!", index, var[index]);
}
void NACT_Sys3::cmd_branch()
{
@@ -40,78 +28,6 @@ void NACT_Sys3::cmd_branch()
output_console("\n{%d: T:%4x, F:%4x", condition, t_addr, f_addr);
}
void NACT_Sys3::cmd_set_menu()
{
if(ags->draw_menu) {
ags->menu_dest_x = 2;
ags->menu_dest_y += ags->menu_font_size + 2;
ags->draw_menu = false;
output_console("$");
} else {
if(!menu_index) {
ags->clear_menu_window();
ags->menu_dest_y = 0;
}
menu_addr[menu_index++] = sco.getw();
ags->menu_dest_x = 2;
ags->menu_dest_y += 2;
ags->draw_menu = true;
output_console("\n$%x,", menu_addr[menu_index - 1]);
}
}
void NACT_Sys3::cmd_open_menu()
{
output_console("\n]");
if(!menu_index) {
sco.jump_to(sco.default_addr());
return;
}
int index = menu_select(menu_index);
if (terminate)
return;
if(index != -1) {
sco.jump_to(menu_addr[index]);
}
menu_index = 0;
}
void NACT_Sys3::cmd_set_verbobj()
{
int verb = sco.getd();
int obj = sco.getd();
int addr = sco.getw();
menu_addr[menu_index] = addr;
menu_verb[menu_index] = verb;
menu_obj[menu_index++] = obj;
verb_obj = true;
output_console("\n[%x,%s,%s:", addr, caption_verb[verb], caption_obj[obj]);
}
void NACT_Sys3::cmd_set_verbobj2()
{
int condition = cali();
int verb = sco.getd();
int obj = sco.getd();
int addr = sco.getw();
if(condition) {
menu_addr[menu_index] = addr;
menu_verb[menu_index] = verb;
menu_obj[menu_index++] = obj;
}
verb_obj = true;
output_console("\n:%d,%x,%s,%s:", condition, addr, caption_verb[verb], caption_obj[obj]);
}
void NACT_Sys3::cmd_open_verb()
{
// 動詞メニューの表示
@@ -215,44 +131,6 @@ void NACT_Sys3::cmd_open_obj(int verb)
}
}
void NACT_Sys3::cmd_a()
{
texthook_nextpage();
output_console("A\n");
if (msgskip->skipping()) {
if (msgskip->get_flags() & MSGSKIP_STOP_ON_CLICK && get_key())
msgskip->activate(false);
} else if (show_push) {
ags->draw_push(text_window);
}
// キーが押されて離されるまで待機
while (!msgskip->skipping()) {
if(terminate) {
return;
}
if(get_key()) {
break;
}
sys_sleep(16);
}
sys_sleep(30);
while (!msgskip->skipping()) {
if(terminate) {
return;
}
if(!(get_key() & 0x18)) {
break;
}
sys_sleep(16);
}
// ウィンドウ更新
ags->clear_text_window(text_window, true);
}
void NACT_Sys3::cmd_b()
{
int cmd = sco.getd();
@@ -345,13 +223,6 @@ void NACT_Sys3::cmd_e()
ags->box[index - 1].ey = ey;
}
void NACT_Sys3::cmd_f()
{
output_console("\nF");
sco.jump_to(2);
}
void NACT_Sys3::cmd_g()
{
int page = cali();
@@ -878,31 +749,6 @@ void NACT_Sys3::cmd_q()
}
}
void NACT_Sys3::cmd_r()
{
texthook_newline();
output_console("R\n");
// ウィンドウの表示範囲外の場合は改ページ
if(ags->return_text_line(text_window)) {
cmd_a();
}
}
void NACT_Sys3::cmd_s()
{
int page = sco.getd();
output_console("\nS %d:", page);
if(page) {
mako->play_music(page);
} else {
mako->stop_music();
}
}
void NACT_Sys3::cmd_t()
{
int x = cali();
@@ -964,17 +810,6 @@ void NACT_Sys3::cmd_w()
ags->paint(x, y, color);
}
void NACT_Sys3::cmd_x()
{
int index = sco.getd();
output_console("\nX %d:", index);
if(1 <= index && index <= 10) {
ags->draw_text(tvar[index - 1]);
}
}
void NACT_Sys3::cmd_y()
{
int cmd = cali();