Commit 92bb5048 authored by nanahira's avatar nanahira

Merge branch 'master' of github.com:moecube/ygopro-core

parents 5fe666ff c5d72671
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#define COMMON_H_ #define COMMON_H_
#include <stdint.h> #include <stdint.h>
#include <assert.h>
typedef unsigned long long uint64; typedef unsigned long long uint64;
typedef unsigned int uint32; typedef unsigned int uint32;
typedef unsigned short uint16; typedef unsigned short uint16;
......
...@@ -29,6 +29,9 @@ duel::duel() { ...@@ -29,6 +29,9 @@ duel::duel() {
game_field->rose_card = 0; game_field->rose_card = 0;
game_field->rose_level = 0; game_field->rose_level = 0;
message_buffer.reserve(SIZE_MESSAGE_BUFFER); message_buffer.reserve(SIZE_MESSAGE_BUFFER);
#ifdef _WIN32
_set_error_mode(_OUT_TO_MSGBOX);
#endif // _WIN32
} }
duel::~duel() { duel::~duel() {
for(auto& pcard : cards) for(auto& pcard : cards)
......
...@@ -16,10 +16,15 @@ ...@@ -16,10 +16,15 @@
int32 field::field_used_count[32] = {0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5}; int32 field::field_used_count[32] = {0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5};
bool chain::chain_operation_sort(const chain& c1, const chain& c2) { bool chain::chain_operation_sort(const chain& c1, const chain& c2) {
if (c1.triggering_effect && c2.triggering_effect && c1.triggering_effect->id != c2.triggering_effect->id) auto e1 = c1.triggering_effect;
return c1.triggering_effect->id < c2.triggering_effect->id; auto e2 = c2.triggering_effect;
else if (e1 && e2) {
return c1.chain_id < c2.chain_id; if (e1->handler == e2->handler && e1->description != e2->description)
return e1->description < e2->description;
if (e1->id != e2->id)
return e1->id < e2->id;
}
return c1.chain_id < c2.chain_id;
} }
void chain::set_triggering_state(card* pcard) { void chain::set_triggering_state(card* pcard) {
triggering_controler = pcard->current.controler; triggering_controler = pcard->current.controler;
...@@ -1117,6 +1122,7 @@ void field::swap_deck_and_grave(uint8 playerid) { ...@@ -1117,6 +1122,7 @@ void field::swap_deck_and_grave(uint8 playerid) {
} }
player[playerid].list_extra.insert(player[playerid].list_extra.end() - player[playerid].extra_p_count, ex.begin(), ex.end()); player[playerid].list_extra.insert(player[playerid].list_extra.end() - player[playerid].extra_p_count, ex.begin(), ex.end());
reset_sequence(playerid, LOCATION_GRAVE); reset_sequence(playerid, LOCATION_GRAVE);
reset_sequence(playerid, LOCATION_DECK);
reset_sequence(playerid, LOCATION_EXTRA); reset_sequence(playerid, LOCATION_EXTRA);
pduel->write_buffer8(MSG_SWAP_GRAVE_DECK); pduel->write_buffer8(MSG_SWAP_GRAVE_DECK);
pduel->write_buffer8(playerid); pduel->write_buffer8(playerid);
......
...@@ -4702,9 +4702,9 @@ int32 field::move_to_field(uint16 step, card* target, uint32 enable, uint32 ret, ...@@ -4702,9 +4702,9 @@ int32 field::move_to_field(uint16 step, card* target, uint32 enable, uint32 ret,
target->reset(resetflag, RESET_EVENT); target->reset(resetflag, RESET_EVENT);
target->clear_card_target(); target->clear_card_target();
} }
if(!(target->current.location & LOCATION_ONFIELD))
target->clear_relate_effect();
} }
if(!(target->current.location & LOCATION_ONFIELD))
target->clear_relate_effect();
if(ret == 1) if(ret == 1)
target->current.reason &= ~REASON_TEMPORARY; target->current.reason &= ~REASON_TEMPORARY;
if(ret == 0 && location != target->current.location if(ret == 0 && location != target->current.location
......
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