Commit a3dc6658 authored by salix5's avatar salix5

field::process_turn()

parent f31844fd
......@@ -263,7 +263,6 @@ struct processor {
uint8 to_bp;
uint8 to_m2;
uint8 to_ep;
uint8 skip_m2;
uint8 chain_attack;
card* chain_attack_target;
uint8 selfdes_disabled;
......@@ -287,7 +286,6 @@ 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,11 +2445,6 @@ 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;
......@@ -2728,12 +2723,10 @@ 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);
......@@ -2745,7 +2738,6 @@ 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;
......@@ -3051,7 +3043,6 @@ 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;
......@@ -4070,10 +4061,18 @@ 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();
......@@ -4112,10 +4111,6 @@ 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