Commit 5ca4cd4b authored by VanillaSalt's avatar VanillaSalt

add CHAININFO_TRIGGERING_POSITION

parent 5aae09ff
...@@ -29,6 +29,7 @@ void chain::set_triggering_place(card* pcard) { ...@@ -29,6 +29,7 @@ void chain::set_triggering_place(card* pcard) {
else else
triggering_location = pcard->current.location; triggering_location = pcard->current.location;
triggering_sequence = pcard->current.sequence; triggering_sequence = pcard->current.sequence;
triggering_position = pcard->current.position;
} }
bool tevent::operator< (const tevent& v) const { bool tevent::operator< (const tevent& v) const {
return memcmp(this, &v, sizeof(tevent)) < 0; return memcmp(this, &v, sizeof(tevent)) < 0;
......
...@@ -51,6 +51,7 @@ struct chain { ...@@ -51,6 +51,7 @@ struct chain {
uint8 triggering_controler; uint8 triggering_controler;
uint16 triggering_location; uint16 triggering_location;
uint8 triggering_sequence; uint8 triggering_sequence;
uint8 triggering_position;
effect* triggering_effect; effect* triggering_effect;
group* target_cards; group* target_cards;
int32 replace_op; int32 replace_op;
...@@ -599,6 +600,7 @@ public: ...@@ -599,6 +600,7 @@ public:
#define CHAININFO_CHAIN_ID 0x800 #define CHAININFO_CHAIN_ID 0x800
#define CHAININFO_TYPE 0x1000 #define CHAININFO_TYPE 0x1000
#define CHAININFO_EXTTYPE 0x2000 #define CHAININFO_EXTTYPE 0x2000
#define CHAININFO_TRIGGERING_POSITION 0x4000
//Timing //Timing
#define TIMING_DRAW_PHASE 0x1 #define TIMING_DRAW_PHASE 0x1
#define TIMING_STANDBY_PHASE 0x2 #define TIMING_STANDBY_PHASE 0x2
......
...@@ -1663,14 +1663,13 @@ int32 scriptlib::duel_get_current_chain(lua_State *L) { ...@@ -1663,14 +1663,13 @@ int32 scriptlib::duel_get_current_chain(lua_State *L) {
int32 scriptlib::duel_get_chain_info(lua_State *L) { int32 scriptlib::duel_get_chain_info(lua_State *L) {
check_param_count(L, 1); check_param_count(L, 1);
uint32 c = lua_tointeger(L, 1); uint32 c = lua_tointeger(L, 1);
uint32 flag;
uint32 args = lua_gettop(L) - 1; uint32 args = lua_gettop(L) - 1;
duel* pduel = interpreter::get_duel_info(L); duel* pduel = interpreter::get_duel_info(L);
chain* ch = pduel->game_field->get_chain(c); chain* ch = pduel->game_field->get_chain(c);
if(!ch) if(!ch)
return 0; return 0;
for(uint32 i = 0; i < args; ++i) { for(uint32 i = 0; i < args; ++i) {
flag = lua_tointeger(L, 2 + i); uint32 flag = lua_tointeger(L, 2 + i);
switch(flag) { switch(flag) {
case CHAININFO_CHAIN_COUNT: case CHAININFO_CHAIN_COUNT:
lua_pushinteger(L, ch->chain_count); lua_pushinteger(L, ch->chain_count);
...@@ -1690,6 +1689,9 @@ int32 scriptlib::duel_get_chain_info(lua_State *L) { ...@@ -1690,6 +1689,9 @@ int32 scriptlib::duel_get_chain_info(lua_State *L) {
case CHAININFO_TRIGGERING_SEQUENCE: case CHAININFO_TRIGGERING_SEQUENCE:
lua_pushinteger(L, ch->triggering_sequence); lua_pushinteger(L, ch->triggering_sequence);
break; break;
case CHAININFO_TRIGGERING_POSITION:
lua_pushinteger(L, ch->triggering_position);
break;
case CHAININFO_TARGET_CARDS: case CHAININFO_TARGET_CARDS:
interpreter::group2value(L, ch->target_cards); interpreter::group2value(L, ch->target_cards);
break; break;
......
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