mirror of
https://github.com/kichikuou/system3-sdl2.git
synced 2026-10-02 03:47:58 +03:00
Move call stacks from NACT to Scenario
This commit is contained in:
+9
-34
@@ -56,20 +56,9 @@ void NACT_Sys3::cmd_label_jump()
|
||||
void NACT_Sys3::cmd_label_call()
|
||||
{
|
||||
int next_addr = sco.getw();
|
||||
sco.label_call(next_addr);
|
||||
|
||||
output_console("\n\\%x:", next_addr);
|
||||
|
||||
if(next_addr == 0) {
|
||||
// リターン
|
||||
if(label_depth == 0) {
|
||||
// fatal_error = true;
|
||||
return;
|
||||
}
|
||||
sco.jump_to(label_stack[--label_depth]);
|
||||
} else {
|
||||
label_stack[label_depth++] = sco.addr();
|
||||
sco.jump_to(next_addr);
|
||||
}
|
||||
}
|
||||
|
||||
void NACT_Sys3::cmd_page_jump()
|
||||
@@ -82,24 +71,10 @@ void NACT_Sys3::cmd_page_jump()
|
||||
|
||||
void NACT_Sys3::cmd_page_call()
|
||||
{
|
||||
int next_page = cali(), next_addr;
|
||||
int next_page = cali();
|
||||
sco.page_call(next_page);
|
||||
|
||||
output_console("\n%%%d:", next_page);
|
||||
|
||||
if(next_page == 0) {
|
||||
// リターン
|
||||
if(page_depth == 0) {
|
||||
// fatal_error = true;
|
||||
return;
|
||||
}
|
||||
next_page = page_stack[--page_depth];
|
||||
next_addr = addr_stack[page_depth];
|
||||
} else {
|
||||
page_stack[page_depth] = sco.page();
|
||||
addr_stack[page_depth++] = sco.addr();
|
||||
next_addr = 2;
|
||||
}
|
||||
sco.page_jump(next_page, next_addr);
|
||||
}
|
||||
|
||||
void NACT_Sys3::cmd_set_menu()
|
||||
@@ -1223,23 +1198,23 @@ void NACT_Sys3::cmd_y()
|
||||
break;
|
||||
case 80:
|
||||
if(param == 0) {
|
||||
RND = label_depth;
|
||||
RND = sco.label_stack_size();
|
||||
} else if(param == 1) {
|
||||
RND = page_depth;
|
||||
RND = sco.page_stack_size();
|
||||
}
|
||||
break;
|
||||
case 81:
|
||||
if(param == 0) {
|
||||
label_depth = label_depth ? label_depth - 1 : 0;
|
||||
sco.label_stack_pop();
|
||||
} else if(param == 1) {
|
||||
page_depth = page_depth ? page_depth - 1 : 0;
|
||||
sco.page_stack_pop();
|
||||
}
|
||||
break;
|
||||
case 82:
|
||||
if(param == 0) {
|
||||
label_depth = 0;
|
||||
sco.label_stack_clear();
|
||||
} else if(param == 1) {
|
||||
page_depth = 0;
|
||||
sco.page_stack_clear();
|
||||
}
|
||||
break;
|
||||
case 100:
|
||||
|
||||
Reference in New Issue
Block a user