Refactor text / menu window code

This commit is contained in:
kichikuou
2025-01-18 15:37:13 +09:00
parent 32a510d543
commit fad34f7bb9
6 changed files with 279 additions and 327 deletions
+7 -32
View File
@@ -358,45 +358,20 @@ void NACT_Sys2::cmd_b()
if (game_id.is(GameId::AYUMI_FD) || game_id.is(GameId::AYUMI_HINT) || game_id.is(GameId::DRSTOP)) {
p5 = 1;
}
ags->menu_w[index - 1].sx = p1 * 8;
ags->menu_w[index - 1].sy = p2;
ags->menu_w[index - 1].ex = p3 * 8 - 1;
ags->menu_w[index - 1].ey = p4;
ags->menu_w[index - 1].push = p5 ? true : false;
// 退避画面の破棄
if(ags->menu_w[index - 1].screen) {
SDL_FreeSurface(ags->menu_w[index - 1].screen);
ags->menu_w[index - 1].screen = NULL;
}
ags->set_menu_window(index, p1 * 8, p2, p3 * 8 - 1, p4, p5);
break;
case 2:
if (game_id.is(GameId::AYUMI_FD) || game_id.is(GameId::AYUMI_HINT) || game_id.is(GameId::DRSTOP)) {
p1 = 1;
}
// if (game_id.is(GameId::PROG_FD)) {
// ags->menu_w[index - 1].frame = (index == 1 || index == 3) ? true : false;
// } else
ags->menu_w[index - 1].frame = p1 ? true : false;
// p1 = (index == 1 || index == 3);
// }
ags->set_menu_window_frame(index, p1);
menu_window = index;
break;
case 3:
ags->text_w[index - 1].sx = p1 * 8;
ags->text_w[index - 1].sy = p2;
ags->text_w[index - 1].ex = p3 * 8 - 1;
ags->text_w[index - 1].ey = p4;
ags->text_w[index - 1].push = p5 ? true : false;
// 退避画面の破棄
if(ags->text_w[index - 1].screen) {
SDL_FreeSurface(ags->text_w[index - 1].screen);
ags->text_w[index - 1].screen = NULL;
}
// 退避窓の破棄
if(ags->text_w[index - 1].window) {
SDL_FreeSurface(ags->text_w[index - 1].window);
ags->text_w[index - 1].window = NULL;
}
ags->set_text_window(index, p1 * 8, p2, p3 * 8 - 1, p4, p5);
break;
case 4:
if (game_id.is(GameId::AYUMI_FD) || game_id.is(GameId::AYUMI_HINT)) {
@@ -409,9 +384,9 @@ void NACT_Sys2::cmd_b()
if(p5 == 0) {
// ウィンドウ退避
// if (game_id.is(GameId::PROG_FD)) {
// ags->text_w[index - 1].frame = (index == 1 || index == 3) ? true : false;
// p1 = (index == 1 || index == 3);
// } else
ags->text_w[index - 1].frame = p1 ? true : false;
ags->set_text_window_frame(index, p1);
ags->open_text_window(index, p4 ? false : true);
text_window = index;
} else {