Commit 8404ec95 authored by Chen Bill's avatar Chen Bill

using card_vector in global

parent d5158743
...@@ -1584,7 +1584,7 @@ void card::xyz_overlay(card_set* materials) { ...@@ -1584,7 +1584,7 @@ void card::xyz_overlay(card_set* materials) {
if(materials->size() == 0) if(materials->size() == 0)
return; return;
card_set des, leave_grave, leave_deck; card_set des, leave_grave, leave_deck;
field::card_vector cv; card_vector cv;
for(auto& pcard : *materials) for(auto& pcard : *materials)
cv.push_back(pcard); cv.push_back(pcard);
std::sort(cv.begin(), cv.end(), card::card_operation_sort); std::sort(cv.begin(), cv.end(), card::card_operation_sort);
......
...@@ -25,6 +25,7 @@ class group; ...@@ -25,6 +25,7 @@ class group;
struct chain; struct chain;
using card_set = std::set<card*, card_sort>; using card_set = std::set<card*, card_sort>;
using card_vector = std::vector<card*>;
struct card_state { struct card_state {
uint32 code{ 0 }; uint32 code{ 0 };
...@@ -115,7 +116,6 @@ public: ...@@ -115,7 +116,6 @@ public:
return std::hash<uint16>()(v.second); return std::hash<uint16>()(v.second);
} }
}; };
using card_vector = std::vector<card*>;
using effect_container = std::multimap<uint32, effect*>; using effect_container = std::multimap<uint32, effect*>;
using effect_indexer = std::unordered_map<effect*, effect_container::iterator>; using effect_indexer = std::unordered_map<effect*, effect_container::iterator>;
using effect_relation = std::unordered_set<std::pair<effect*, uint16>, effect_relation_hash>; using effect_relation = std::unordered_set<std::pair<effect*, uint16>, effect_relation_hash>;
......
...@@ -78,7 +78,6 @@ struct chain { ...@@ -78,7 +78,6 @@ struct chain {
}; };
struct player_info { struct player_info {
using card_vector = std::vector<card*>;
int32 lp{ 0 }; int32 lp{ 0 };
int32 start_count{ 0 }; int32 start_count{ 0 };
int32 draw_count{ 0 }; int32 draw_count{ 0 };
...@@ -170,7 +169,6 @@ union return_value { ...@@ -170,7 +169,6 @@ union return_value {
}; };
struct processor { struct processor {
using effect_vector = std::vector<effect*>; using effect_vector = std::vector<effect*>;
using card_vector = std::vector<card*>;
using option_vector = std::vector<uint32>; using option_vector = std::vector<uint32>;
using card_list = std::list<card*>; using card_list = std::list<card*>;
using event_list = std::list<tevent>; using event_list = std::list<tevent>;
...@@ -365,7 +363,6 @@ class field { ...@@ -365,7 +363,6 @@ class field {
public: public:
using effect_container = std::multimap<uint32, effect*>; using effect_container = std::multimap<uint32, effect*>;
using effect_vector = std::vector<effect*>; using effect_vector = std::vector<effect*>;
using card_vector = std::vector<card*>;
using card_list = std::list<card*>; using card_list = std::list<card*>;
using event_list = std::list<tevent>; using event_list = std::list<tevent>;
using chain_list = std::list<chain>; using chain_list = std::list<chain>;
......
...@@ -2535,7 +2535,7 @@ int32 scriptlib::card_is_chain_attackable(lua_State *L) { ...@@ -2535,7 +2535,7 @@ int32 scriptlib::card_is_chain_attackable(lua_State *L) {
lua_pushboolean(L, 0); lua_pushboolean(L, 0);
return 1; return 1;
} }
field::card_vector cv; card_vector cv;
pduel->game_field->get_attack_target(attacker, &cv, TRUE); pduel->game_field->get_attack_target(attacker, &cv, TRUE);
if(cv.size() == 0 && (monsteronly || attacker->direct_attackable == 0)) if(cv.size() == 0 && (monsteronly || attacker->direct_attackable == 0))
lua_pushboolean(L, 0); lua_pushboolean(L, 0);
...@@ -3260,7 +3260,7 @@ int32 scriptlib::card_get_attackable_target(lua_State *L) { ...@@ -3260,7 +3260,7 @@ int32 scriptlib::card_get_attackable_target(lua_State *L) {
check_param(L, PARAM_TYPE_CARD, 1); check_param(L, PARAM_TYPE_CARD, 1);
card* pcard = *(card**) lua_touserdata(L, 1); card* pcard = *(card**) lua_touserdata(L, 1);
duel* pduel = pcard->pduel; duel* pduel = pcard->pduel;
field::card_vector targets; card_vector targets;
uint8 chain_attack = FALSE; uint8 chain_attack = FALSE;
if(pduel->game_field->core.chain_attacker_id == pcard->fieldid) if(pduel->game_field->core.chain_attacker_id == pcard->fieldid)
chain_attack = TRUE; chain_attack = TRUE;
......
...@@ -1674,7 +1674,7 @@ int32 scriptlib::duel_change_attack_target(lua_State *L) { ...@@ -1674,7 +1674,7 @@ int32 scriptlib::duel_change_attack_target(lua_State *L) {
lua_pushboolean(L, 0); lua_pushboolean(L, 0);
return 1; return 1;
} }
field::card_vector cv; card_vector cv;
pduel->game_field->get_attack_target(attacker, &cv, pduel->game_field->core.chain_attack); pduel->game_field->get_attack_target(attacker, &cv, pduel->game_field->core.chain_attack);
if(target && std::find(cv.begin(), cv.end(), target) != cv.end() if(target && std::find(cv.begin(), cv.end(), target) != cv.end()
|| !target && !attacker->is_affected_by_effect(EFFECT_CANNOT_DIRECT_ATTACK)) { || !target && !attacker->is_affected_by_effect(EFFECT_CANNOT_DIRECT_ATTACK)) {
...@@ -1975,7 +1975,7 @@ int32 scriptlib::duel_get_mzone_count(lua_State *L) { ...@@ -1975,7 +1975,7 @@ int32 scriptlib::duel_get_mzone_count(lua_State *L) {
card* mcard = nullptr; card* mcard = nullptr;
group* mgroup = nullptr; group* mgroup = nullptr;
uint32 used_location[2] = { 0, 0 }; uint32 used_location[2] = { 0, 0 };
player_info::card_vector list_mzone[2]; card_vector list_mzone[2];
if(lua_gettop(L) >= 2 && !lua_isnil(L, 2)) { if(lua_gettop(L) >= 2 && !lua_isnil(L, 2)) {
if(check_param(L, PARAM_TYPE_CARD, 2, TRUE)) { if(check_param(L, PARAM_TYPE_CARD, 2, TRUE)) {
mcard = *(card**)lua_touserdata(L, 2); mcard = *(card**)lua_touserdata(L, 2);
...@@ -2034,7 +2034,7 @@ int32 scriptlib::duel_get_location_count_fromex(lua_State *L) { ...@@ -2034,7 +2034,7 @@ int32 scriptlib::duel_get_location_count_fromex(lua_State *L) {
card* mcard = nullptr; card* mcard = nullptr;
group* mgroup = nullptr; group* mgroup = nullptr;
uint32 used_location[2] = {0, 0}; uint32 used_location[2] = {0, 0};
player_info::card_vector list_mzone[2]; card_vector list_mzone[2];
if(lua_gettop(L) >= 3 && !lua_isnil(L, 3)) { if(lua_gettop(L) >= 3 && !lua_isnil(L, 3)) {
if(check_param(L, PARAM_TYPE_CARD, 3, TRUE)) { if(check_param(L, PARAM_TYPE_CARD, 3, TRUE)) {
mcard = *(card**) lua_touserdata(L, 3); mcard = *(card**) lua_touserdata(L, 3);
......
...@@ -448,7 +448,7 @@ int32 scriptlib::group_check_with_sum_equal(lua_State *L) { ...@@ -448,7 +448,7 @@ int32 scriptlib::group_check_with_sum_equal(lua_State *L) {
if(max < min) if(max < min)
max = min; max = min;
int32 extraargs = lua_gettop(L) - 5; int32 extraargs = lua_gettop(L) - 5;
field::card_vector cv(pduel->game_field->core.must_select_cards); card_vector cv(pduel->game_field->core.must_select_cards);
int32 mcount = (int32)cv.size(); int32 mcount = (int32)cv.size();
for(auto& pcard : pgroup->container) { for(auto& pcard : pgroup->container) {
auto it = std::find(pduel->game_field->core.must_select_cards.begin(), pduel->game_field->core.must_select_cards.end(), pcard); auto it = std::find(pduel->game_field->core.must_select_cards.begin(), pduel->game_field->core.must_select_cards.end(), pcard);
...@@ -486,7 +486,7 @@ int32 scriptlib::group_select_with_sum_equal(lua_State *L) { ...@@ -486,7 +486,7 @@ int32 scriptlib::group_select_with_sum_equal(lua_State *L) {
auto it = std::remove(pduel->game_field->core.select_cards.begin(), pduel->game_field->core.select_cards.end(), pcard); auto it = std::remove(pduel->game_field->core.select_cards.begin(), pduel->game_field->core.select_cards.end(), pcard);
pduel->game_field->core.select_cards.erase(it, pduel->game_field->core.select_cards.end()); pduel->game_field->core.select_cards.erase(it, pduel->game_field->core.select_cards.end());
} }
field::card_vector cv(pduel->game_field->core.must_select_cards); card_vector cv(pduel->game_field->core.must_select_cards);
int32 mcount = (int32)cv.size(); int32 mcount = (int32)cv.size();
cv.insert(cv.end(), pduel->game_field->core.select_cards.begin(), pduel->game_field->core.select_cards.end()); cv.insert(cv.end(), pduel->game_field->core.select_cards.begin(), pduel->game_field->core.select_cards.end());
for(auto& pcard : cv) for(auto& pcard : cv)
...@@ -519,7 +519,7 @@ int32 scriptlib::group_check_with_sum_greater(lua_State *L) { ...@@ -519,7 +519,7 @@ int32 scriptlib::group_check_with_sum_greater(lua_State *L) {
duel* pduel = pgroup->pduel; duel* pduel = pgroup->pduel;
int32 acc = (int32)lua_tointeger(L, 3); int32 acc = (int32)lua_tointeger(L, 3);
int32 extraargs = lua_gettop(L) - 3; int32 extraargs = lua_gettop(L) - 3;
field::card_vector cv(pduel->game_field->core.must_select_cards); card_vector cv(pduel->game_field->core.must_select_cards);
int32 mcount = (int32)cv.size(); int32 mcount = (int32)cv.size();
for(auto& pcard : pgroup->container) { for(auto& pcard : pgroup->container) {
auto it = std::find(pduel->game_field->core.must_select_cards.begin(), pduel->game_field->core.must_select_cards.end(), pcard); auto it = std::find(pduel->game_field->core.must_select_cards.begin(), pduel->game_field->core.must_select_cards.end(), pcard);
...@@ -549,7 +549,7 @@ int32 scriptlib::group_select_with_sum_greater(lua_State *L) { ...@@ -549,7 +549,7 @@ int32 scriptlib::group_select_with_sum_greater(lua_State *L) {
auto it = std::remove(pduel->game_field->core.select_cards.begin(), pduel->game_field->core.select_cards.end(), pcard); auto it = std::remove(pduel->game_field->core.select_cards.begin(), pduel->game_field->core.select_cards.end(), pcard);
pduel->game_field->core.select_cards.erase(it, pduel->game_field->core.select_cards.end()); pduel->game_field->core.select_cards.erase(it, pduel->game_field->core.select_cards.end());
} }
field::card_vector cv(pduel->game_field->core.must_select_cards); card_vector cv(pduel->game_field->core.must_select_cards);
int32 mcount = (int32)cv.size(); int32 mcount = (int32)cv.size();
cv.insert(cv.end(), pduel->game_field->core.select_cards.begin(), pduel->game_field->core.select_cards.end()); cv.insert(cv.end(), pduel->game_field->core.select_cards.begin(), pduel->game_field->core.select_cards.end());
for(auto& pcard : cv) for(auto& pcard : cv)
......
...@@ -185,7 +185,7 @@ extern "C" DECL_DLLEXPORT int32 query_card(intptr_t pduel, uint8 playerid, uint8 ...@@ -185,7 +185,7 @@ extern "C" DECL_DLLEXPORT int32 query_card(intptr_t pduel, uint8 playerid, uint8
if(location & LOCATION_ONFIELD) if(location & LOCATION_ONFIELD)
pcard = ptduel->game_field->get_field_card(playerid, location, sequence); pcard = ptduel->game_field->get_field_card(playerid, location, sequence);
else { else {
field::card_vector* lst = nullptr; card_vector* lst = nullptr;
if (location == LOCATION_HAND) if (location == LOCATION_HAND)
lst = &ptduel->game_field->player[playerid].list_hand; lst = &ptduel->game_field->player[playerid].list_hand;
else if (location == LOCATION_GRAVE) else if (location == LOCATION_GRAVE)
...@@ -269,7 +269,7 @@ extern "C" DECL_DLLEXPORT int32 query_field_card(intptr_t pduel, uint8 playerid, ...@@ -269,7 +269,7 @@ extern "C" DECL_DLLEXPORT int32 query_field_card(intptr_t pduel, uint8 playerid,
} }
} }
else { else {
field::card_vector* lst = nullptr; card_vector* lst = nullptr;
if(location == LOCATION_HAND) if(location == LOCATION_HAND)
lst = &player.list_hand; lst = &player.list_hand;
else if(location == LOCATION_GRAVE) else if(location == LOCATION_GRAVE)
......
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