Commit 1a763537 authored by salix5's avatar salix5

Revert "field::process_turn()"

This reverts commit a3dc6658.
parent 9be75580
......@@ -263,6 +263,7 @@ struct processor {
uint8 to_bp;
uint8 to_m2;
uint8 to_ep;
uint8 skip_m2;
uint8 chain_attack;
card* chain_attack_target;
uint8 selfdes_disabled;
......@@ -286,6 +287,7 @@ struct processor {
uint8 attack_state_count[2];
uint8 battle_phase_count[2];
uint8 phase_action;
uint8 battle_phase_action;
uint32 hint_timing[2];
uint8 current_player;
uint8 conti_player;
......
......@@ -2445,6 +2445,11 @@ int32 field::process_idle_command(uint16 step) {
}
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);
for(; pr.first != pr.second; ++pr.first) {
peffect = pr.first->second;
......@@ -2723,10 +2728,12 @@ int32 field::process_battle_command(uint16 step) {
core.attack_target = 0;
if((peffect = is_player_affected_by_effect(infos.turn_player, EFFECT_SKIP_BP))) {
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))
core.units.begin()->arg2 = 1;
else
core.units.begin()->arg2 = 0;
else core.units.begin()->arg2 = 0;
if(!peffect->value){
infos.phase = PHASE_BATTLE;
add_process(PROCESSOR_PHASE_EVENT, 0, 0, 0, PHASE_BATTLE, 0);
......@@ -2738,6 +2745,7 @@ int32 field::process_battle_command(uint16 step) {
}
return FALSE;
}
core.battle_phase_action = TRUE;
auto pr = effects.activate_effect.equal_range(EVENT_FREE_CHAIN);
for(; pr.first != pr.second; ++pr.first) {
peffect = pr.first->second;
......@@ -3043,6 +3051,7 @@ int32 field::process_battle_command(uint16 step) {
effect* peffect;
if((peffect = is_player_affected_by_effect(infos.turn_player, EFFECT_SKIP_BP))) {
core.units.begin()->step = 41;
core.units.begin()->arg1 = 2;
if(is_player_affected_by_effect(infos.turn_player, EFFECT_BP_TWICE))
core.units.begin()->arg2 = 1;
else core.units.begin()->arg2 = 0;
......@@ -4061,18 +4070,10 @@ int32 field::process_turn(uint16 step, uint8 turn_player) {
core.quick_f_chain.clear();
core.delayed_quick_tmp.clear();
core.phase_action = FALSE;
core.battle_phase_action = FALSE;
core.battle_phase_count[infos.turn_player]++;
pduel->write_buffer8(MSG_NEW_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);
process_instant_event();
adjust_all();
......@@ -4111,6 +4112,10 @@ int32 field::process_turn(uint16 step, uint8 turn_player) {
}
return FALSE;
}
core.skip_m2 = FALSE;
if(returns.ivalue[0] == 3) { // End Phase
core.skip_m2 = TRUE;
}
//Main2
infos.phase = PHASE_MAIN2;
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