Commit a3dc6658 authored by salix5's avatar salix5

field::process_turn()

parent f31844fd
...@@ -263,7 +263,6 @@ struct processor { ...@@ -263,7 +263,6 @@ struct processor {
uint8 to_bp; uint8 to_bp;
uint8 to_m2; uint8 to_m2;
uint8 to_ep; uint8 to_ep;
uint8 skip_m2;
uint8 chain_attack; uint8 chain_attack;
card* chain_attack_target; card* chain_attack_target;
uint8 selfdes_disabled; uint8 selfdes_disabled;
...@@ -287,7 +286,6 @@ struct processor { ...@@ -287,7 +286,6 @@ struct processor {
uint8 attack_state_count[2]; uint8 attack_state_count[2];
uint8 battle_phase_count[2]; uint8 battle_phase_count[2];
uint8 phase_action; uint8 phase_action;
uint8 battle_phase_action;
uint32 hint_timing[2]; uint32 hint_timing[2];
uint8 current_player; uint8 current_player;
uint8 conti_player; uint8 conti_player;
......
...@@ -2445,11 +2445,6 @@ int32 field::process_idle_command(uint16 step) { ...@@ -2445,11 +2445,6 @@ int32 field::process_idle_command(uint16 step) {
} }
return FALSE; return FALSE;
} }
if((infos.phase == PHASE_MAIN2) && core.skip_m2) {
core.skip_m2 = FALSE;
returns.ivalue[0] = 7;
return FALSE;
}
auto pr = effects.activate_effect.equal_range(EVENT_FREE_CHAIN); auto pr = effects.activate_effect.equal_range(EVENT_FREE_CHAIN);
for(; pr.first != pr.second; ++pr.first) { for(; pr.first != pr.second; ++pr.first) {
peffect = pr.first->second; peffect = pr.first->second;
...@@ -2728,12 +2723,10 @@ int32 field::process_battle_command(uint16 step) { ...@@ -2728,12 +2723,10 @@ int32 field::process_battle_command(uint16 step) {
core.attack_target = 0; core.attack_target = 0;
if((peffect = is_player_affected_by_effect(infos.turn_player, EFFECT_SKIP_BP))) { if((peffect = is_player_affected_by_effect(infos.turn_player, EFFECT_SKIP_BP))) {
core.units.begin()->step = 41; core.units.begin()->step = 41;
if(core.phase_action || core.battle_phase_action)
core.units.begin()->arg1 = 2;
else core.units.begin()->arg1 = 3;
if(is_player_affected_by_effect(infos.turn_player, EFFECT_BP_TWICE)) if(is_player_affected_by_effect(infos.turn_player, EFFECT_BP_TWICE))
core.units.begin()->arg2 = 1; core.units.begin()->arg2 = 1;
else core.units.begin()->arg2 = 0; else
core.units.begin()->arg2 = 0;
if(!peffect->value){ if(!peffect->value){
infos.phase = PHASE_BATTLE; infos.phase = PHASE_BATTLE;
add_process(PROCESSOR_PHASE_EVENT, 0, 0, 0, PHASE_BATTLE, 0); add_process(PROCESSOR_PHASE_EVENT, 0, 0, 0, PHASE_BATTLE, 0);
...@@ -2745,7 +2738,6 @@ int32 field::process_battle_command(uint16 step) { ...@@ -2745,7 +2738,6 @@ int32 field::process_battle_command(uint16 step) {
} }
return FALSE; return FALSE;
} }
core.battle_phase_action = TRUE;
auto pr = effects.activate_effect.equal_range(EVENT_FREE_CHAIN); auto pr = effects.activate_effect.equal_range(EVENT_FREE_CHAIN);
for(; pr.first != pr.second; ++pr.first) { for(; pr.first != pr.second; ++pr.first) {
peffect = pr.first->second; peffect = pr.first->second;
...@@ -3051,7 +3043,6 @@ int32 field::process_battle_command(uint16 step) { ...@@ -3051,7 +3043,6 @@ int32 field::process_battle_command(uint16 step) {
effect* peffect; effect* peffect;
if((peffect = is_player_affected_by_effect(infos.turn_player, EFFECT_SKIP_BP))) { if((peffect = is_player_affected_by_effect(infos.turn_player, EFFECT_SKIP_BP))) {
core.units.begin()->step = 41; core.units.begin()->step = 41;
core.units.begin()->arg1 = 2;
if(is_player_affected_by_effect(infos.turn_player, EFFECT_BP_TWICE)) if(is_player_affected_by_effect(infos.turn_player, EFFECT_BP_TWICE))
core.units.begin()->arg2 = 1; core.units.begin()->arg2 = 1;
else core.units.begin()->arg2 = 0; else core.units.begin()->arg2 = 0;
...@@ -4070,10 +4061,18 @@ int32 field::process_turn(uint16 step, uint8 turn_player) { ...@@ -4070,10 +4061,18 @@ int32 field::process_turn(uint16 step, uint8 turn_player) {
core.quick_f_chain.clear(); core.quick_f_chain.clear();
core.delayed_quick_tmp.clear(); core.delayed_quick_tmp.clear();
core.phase_action = FALSE; core.phase_action = FALSE;
core.battle_phase_action = FALSE;
core.battle_phase_count[infos.turn_player]++; core.battle_phase_count[infos.turn_player]++;
pduel->write_buffer8(MSG_NEW_PHASE); pduel->write_buffer8(MSG_NEW_PHASE);
pduel->write_buffer16(infos.phase); pduel->write_buffer16(infos.phase);
// Show the texts to indicate that BP is entered and skipped
if(is_player_affected_by_effect(infos.turn_player, EFFECT_SKIP_BP)) {
core.units.begin()->step = 14;
reset_phase(PHASE_BATTLE_START);
reset_phase(PHASE_BATTLE_STEP);
reset_phase(PHASE_BATTLE);
adjust_all();
return FALSE;
}
raise_event((card*)0, EVENT_PHASE_START + PHASE_BATTLE_START, 0, 0, 0, turn_player, 0); raise_event((card*)0, EVENT_PHASE_START + PHASE_BATTLE_START, 0, 0, 0, turn_player, 0);
process_instant_event(); process_instant_event();
adjust_all(); adjust_all();
...@@ -4112,10 +4111,6 @@ int32 field::process_turn(uint16 step, uint8 turn_player) { ...@@ -4112,10 +4111,6 @@ int32 field::process_turn(uint16 step, uint8 turn_player) {
} }
return FALSE; return FALSE;
} }
core.skip_m2 = FALSE;
if(returns.ivalue[0] == 3) { // End Phase
core.skip_m2 = TRUE;
}
//Main2 //Main2
infos.phase = PHASE_MAIN2; infos.phase = PHASE_MAIN2;
core.phase_action = FALSE; core.phase_action = FALSE;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment