Commit d3e74f18 authored by wind2009's avatar wind2009

Merge remote-tracking branch 'upstream/master' into develop

parents c4a348ec 567165e5
......@@ -72,11 +72,11 @@ extern "C" DECL_DLLEXPORT void start_duel(intptr_t pduel, uint32_t options) {
duel* pd = (duel*)pduel;
pd->game_field->core.duel_options |= options & 0xffff;
int32_t duel_rule = options >> 16;
if(duel_rule)
if (duel_rule >= 1 && duel_rule <= CURRENT_RULE)
pd->game_field->core.duel_rule = duel_rule;
else if(options & DUEL_OBSOLETE_RULING) //provide backward compatibility with replay
pd->game_field->core.duel_rule = 1;
if (pd->game_field->core.duel_rule < 1 || pd->game_field->core.duel_rule > CURRENT_RULE)
else
pd->game_field->core.duel_rule = CURRENT_RULE;
if (pd->game_field->core.duel_rule == MASTER_RULE3) {
pd->game_field->player[0].szone_size = 8;
......
......@@ -3779,7 +3779,7 @@ int32_t field::destroy(uint16_t step, group * targets, effect * reason_effect, u
return TRUE;
}
int32_t field::release_replace(uint16_t step, group* targets, card* target) {
if(!(target->current.location & (LOCATION_ONFIELD | LOCATION_HAND))) {
if(target->current.location & (LOCATION_GRAVE | LOCATION_REMOVED)) {
target->current.reason = target->temp.reason;
target->current.reason_effect = target->temp.reason_effect;
target->current.reason_player = target->temp.reason_player;
......@@ -3836,7 +3836,7 @@ int32_t field::release(uint16_t step, group * targets, effect * reason_effect, u
if(cv.size() > 1)
std::sort(cv.begin(), cv.end(), card::card_operation_sort);
for (auto& pcard : cv) {
if(!(pcard->current.location & (LOCATION_ONFIELD | LOCATION_HAND))) {
if(pcard->current.location & (LOCATION_GRAVE | LOCATION_REMOVED)) {
pcard->current.reason = pcard->temp.reason;
pcard->current.reason_effect = pcard->temp.reason_effect;
pcard->current.reason_player = pcard->temp.reason_player;
......
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