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