Commit 1e8d4320 authored by fallenstardust's avatar fallenstardust

revert const get link marker

parent b28d4e2d
...@@ -1276,15 +1276,15 @@ uint32 card::get_rscale() { ...@@ -1276,15 +1276,15 @@ uint32 card::get_rscale() {
temp.rscale = UINT32_MAX; temp.rscale = UINT32_MAX;
return rscale; return rscale;
} }
uint32 card::get_link_marker() const { uint32 card::get_link_marker() {
if(!(data.type & TYPE_LINK)) if(!(data.type & TYPE_LINK))
return 0; return 0;
return data.link_marker; return data.link_marker;
} }
uint32 card::is_link_marker(uint32 dir) const { uint32 card::is_link_marker(uint32 dir) {
return get_link_marker() & dir; return get_link_marker() & dir;
} }
uint32 card::get_linked_zone() const { uint32 card::get_linked_zone() {
if(!(data.type & TYPE_LINK) || current.location != LOCATION_MZONE || is_treated_as_not_on_field()) if(!(data.type & TYPE_LINK) || current.location != LOCATION_MZONE || is_treated_as_not_on_field())
return 0; return 0;
uint32 zones = 0; uint32 zones = 0;
...@@ -1340,7 +1340,7 @@ void card::get_linked_cards(card_set* cset) { ...@@ -1340,7 +1340,7 @@ void card::get_linked_cards(card_set* cset) {
pduel->game_field->get_cards_in_zone(cset, linked_zone, p, LOCATION_MZONE); pduel->game_field->get_cards_in_zone(cset, linked_zone, p, LOCATION_MZONE);
pduel->game_field->get_cards_in_zone(cset, linked_zone >> 16, 1 - p, LOCATION_MZONE); pduel->game_field->get_cards_in_zone(cset, linked_zone >> 16, 1 - p, LOCATION_MZONE);
} }
uint32 card::get_mutual_linked_zone() const { uint32 card::get_mutual_linked_zone() {
if(!(data.type & TYPE_LINK) || current.location != LOCATION_MZONE || is_treated_as_not_on_field()) if(!(data.type & TYPE_LINK) || current.location != LOCATION_MZONE || is_treated_as_not_on_field())
return 0; return 0;
uint32 zones = 0; uint32 zones = 0;
......
...@@ -262,11 +262,11 @@ public: ...@@ -262,11 +262,11 @@ public:
uint32 get_grave_race(uint8 playerid); uint32 get_grave_race(uint8 playerid);
uint32 get_lscale(); uint32 get_lscale();
uint32 get_rscale(); uint32 get_rscale();
uint32 get_link_marker() const; uint32 get_link_marker();
uint32 is_link_marker(uint32 dir) const; uint32 is_link_marker(uint32 dir);
uint32 get_linked_zone() const; uint32 get_linked_zone();
void get_linked_cards(card_set* cset); void get_linked_cards(card_set* cset);
uint32 get_mutual_linked_zone() const; uint32 get_mutual_linked_zone();
void get_mutual_linked_cards(card_set * cset); void get_mutual_linked_cards(card_set * cset);
int32 is_link_state(); int32 is_link_state();
int32 is_extra_link_state(); int32 is_extra_link_state();
......
...@@ -4772,23 +4772,19 @@ int32 scriptlib::duel_majestic_copy(lua_State *L) { ...@@ -4772,23 +4772,19 @@ int32 scriptlib::duel_majestic_copy(lua_State *L) {
check_param(L, PARAM_TYPE_CARD, 1); check_param(L, PARAM_TYPE_CARD, 1);
check_param(L, PARAM_TYPE_CARD, 2); check_param(L, PARAM_TYPE_CARD, 2);
card* pcard = *(card**) lua_touserdata(L, 1); card* pcard = *(card**) lua_touserdata(L, 1);
card* ccard = *(card**) lua_touserdata(L, 2); card* copy_target = *(card**) lua_touserdata(L, 2);
for(auto eit = ccard->single_effect.begin(); eit != ccard->field_effect.end(); ++eit) { for(auto& peffect: copy_target->initial_effect) {
if(eit == ccard->single_effect.end()) { if (!(peffect->type & (EFFECT_TYPES_CHAIN_LINK & ~EFFECT_TYPE_ACTIVATE)))
eit = ccard->field_effect.begin(); continue;
if(eit == ccard->field_effect.end()) if (peffect->type & EFFECT_TYPE_XMATERIAL)
break;
}
effect* peffect = eit->second;
if (!(peffect->type & 0x7c))
continue; continue;
if (!peffect->is_flag(EFFECT_FLAG_INITIAL)) if (!peffect->is_monster_effect())
continue; continue;
effect* ceffect = peffect->clone(); effect* ceffect = peffect->clone();
ceffect->owner = pcard; ceffect->owner = pcard;
ceffect->flag[0] &= ~EFFECT_FLAG_INITIAL; ceffect->flag[0] &= ~EFFECT_FLAG_INITIAL;
ceffect->effect_owner = PLAYER_NONE; ceffect->effect_owner = PLAYER_NONE;
ceffect->reset_flag = RESET_EVENT + 0x1fe0000 + RESET_PHASE + PHASE_END + RESET_SELF_TURN + RESET_OPPO_TURN; ceffect->reset_flag = RESET_EVENT | RESETS_STANDARD | RESET_PHASE | PHASE_END | RESET_SELF_TURN | RESET_OPPO_TURN;
ceffect->reset_count = 1; ceffect->reset_count = 1;
ceffect->recharge(); ceffect->recharge();
if(ceffect->type & EFFECT_TYPE_TRIGGER_F) { if(ceffect->type & EFFECT_TYPE_TRIGGER_F) {
......
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