Commit e1a6a2d9 authored by wind2009's avatar wind2009

Merge branch 'next' into develop

parents f4cc585a f978b555
......@@ -1438,7 +1438,7 @@ void card::set_status(uint32 status, int32 enabled) {
else
this->status &= ~status;
}
// match at least 1 status
// get match status
int32 card::get_status(uint32 status) {
return this->status & status;
}
......
......@@ -212,6 +212,7 @@ struct card_sort {
#define STATUS_OPPO_BATTLE 0x10000000
#define STATUS_FLIP_SUMMON_TURN 0x20000000
#define STATUS_SPSUMMON_TURN 0x40000000
#define STATUS_FLIP_SUMMON_DISABLED 0x80000000
//Query list
#define QUERY_CODE 0x1
......
......@@ -1863,7 +1863,7 @@ int32 scriptlib::duel_disable_summon(lua_State *L) {
return 0;
sumplayer = pcard->summon_player;
pcard->set_status(STATUS_FLIP_SUMMONING, FALSE);
pcard->set_status(STATUS_SUMMON_DISABLED, TRUE);
pcard->set_status(STATUS_FLIP_SUMMON_DISABLED, TRUE);
}
else {
if (pcard) {
......
......@@ -1896,6 +1896,7 @@ int32 field::summon(uint16 step, uint8 sumplayer, card* target, effect* proc, ui
target->set_status(STATUS_FLIP_SUMMONING, FALSE);
}
target->set_status(STATUS_SUMMON_DISABLED, FALSE);
target->set_status(STATUS_FLIP_SUMMON_DISABLED, FALSE);
raise_event(target, EVENT_SUMMON, proc, 0, sumplayer, sumplayer, 0);
process_instant_event();
add_process(PROCESSOR_POINT_EVENT, 0, 0, 0, 0x101, TRUE);
......@@ -1919,7 +1920,7 @@ int32 field::summon(uint16 step, uint8 sumplayer, card* target, effect* proc, ui
delete peset;
core.units.begin()->ptr2 = 0;
}
if (target->is_status(STATUS_SUMMON_DISABLED) && target->current.location == LOCATION_MZONE)
if (target->get_status(STATUS_SUMMON_DISABLED | STATUS_FLIP_SUMMON_DISABLED) && target->current.location == LOCATION_MZONE)
send_to(target, 0, REASON_RULE, PLAYER_NONE, sumplayer, LOCATION_GRAVE, 0, 0);
adjust_instant();
}
......@@ -2016,7 +2017,7 @@ int32 field::flip_summon(uint16 step, uint8 sumplayer, card * target, uint32 act
core.units.begin()->step = 2;
else {
target->set_status(STATUS_FLIP_SUMMONING, TRUE);
target->set_status(STATUS_SUMMON_DISABLED, FALSE);
target->set_status(STATUS_FLIP_SUMMON_DISABLED, FALSE);
raise_event(target, EVENT_FLIP_SUMMON, 0, 0, sumplayer, sumplayer, 0);
process_instant_event();
add_process(PROCESSOR_POINT_EVENT, 0, 0, 0, 0x101, TRUE);
......@@ -2033,7 +2034,7 @@ int32 field::flip_summon(uint16 step, uint8 sumplayer, card * target, uint32 act
delete peset;
core.units.begin()->ptr1 = 0;
}
if (target->is_status(STATUS_SUMMON_DISABLED) && target->current.location == LOCATION_MZONE)
if (target->is_status(STATUS_FLIP_SUMMON_DISABLED) && target->current.location == LOCATION_MZONE)
send_to(target, 0, REASON_RULE, PLAYER_NONE, sumplayer, LOCATION_GRAVE, 0, 0);
}
core.is_summon_negated = false;
......@@ -4157,6 +4158,7 @@ int32 field::send_to(uint16 step, group * targets, effect * reason_effect, uint3
param->show_decktop[pcard->current.controler] = true;
pcard->set_status(STATUS_LEAVE_CONFIRMED, FALSE);
pcard->set_status(STATUS_FLIP_SUMMONING, FALSE);
pcard->set_status(STATUS_FLIP_SUMMON_DISABLED, FALSE);
if(pcard->status & (STATUS_SUMMON_DISABLED | STATUS_ACTIVATE_DISABLED)) {
pcard->set_status(STATUS_SUMMON_DISABLED | STATUS_ACTIVATE_DISABLED, FALSE);
pcard->previous.location = 0;
......@@ -4206,6 +4208,7 @@ int32 field::send_to(uint16 step, group * targets, effect * reason_effect, uint3
pduel->write_buffer32(pcard->current.reason);
pcard->set_status(STATUS_LEAVE_CONFIRMED, FALSE);
pcard->set_status(STATUS_FLIP_SUMMONING, FALSE);
pcard->set_status(STATUS_FLIP_SUMMON_DISABLED, FALSE);
if(pcard->status & (STATUS_SUMMON_DISABLED | STATUS_ACTIVATE_DISABLED)) {
pcard->set_status(STATUS_SUMMON_DISABLED | STATUS_ACTIVATE_DISABLED, FALSE);
pcard->previous.location = 0;
......@@ -4920,6 +4923,7 @@ int32 field::change_position(uint16 step, group * targets, effect * reason_effec
if(pcard->status & (STATUS_SUMMON_DISABLED | STATUS_ACTIVATE_DISABLED))
pcard->set_status(STATUS_SUMMON_DISABLED | STATUS_ACTIVATE_DISABLED, FALSE);
pcard->set_status(STATUS_FLIP_SUMMONING, FALSE);
pcard->set_status(STATUS_FLIP_SUMMON_DISABLED, FALSE);
pcard->reset(RESET_TURN_SET, RESET_EVENT);
pcard->clear_card_target();
pcard->set_status(STATUS_SET_TURN, TRUE);
......
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