Commit be4a9106 authored by wind2009's avatar wind2009

Merge branch 'develop' into develop-8888

parents 461e6fe5 02aa68b3
...@@ -24,10 +24,10 @@ jobs: ...@@ -24,10 +24,10 @@ jobs:
- name: Premake - name: Premake
run: | run: |
7z x temp/premake-5.0.0-beta2-windows.zip -opremake-5 7z x temp\premake-5.0.0-beta2-windows.zip -opremake-5
move premake/lua.lua lua/premake5.lua copy premake\lua.lua lua\premake5.lua
move premake/dll.lua dll.lua copy premake\dll.lua dll.lua
./premake-5/premake5.exe vs2022 --file=dll.lua .\premake-5\premake5.exe vs2022 --file=dll.lua
- name: Add msbuild to PATH - name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v2 uses: microsoft/setup-msbuild@v2
......
...@@ -2320,9 +2320,9 @@ int32_t field::check_spsummon_counter(uint8_t playerid, uint8_t ct) { ...@@ -2320,9 +2320,9 @@ int32_t field::check_spsummon_counter(uint8_t playerid, uint8_t ct) {
bool field::is_select_hide_deck_sequence(uint8_t playerid) { bool field::is_select_hide_deck_sequence(uint8_t playerid) {
return !core.select_deck_sequence_revealed && !(core.duel_options & DUEL_REVEAL_DECK_SEQ) && playerid == core.selecting_player; return !core.select_deck_sequence_revealed && !(core.duel_options & DUEL_REVEAL_DECK_SEQ) && playerid == core.selecting_player;
} }
int32_t field::check_lp_cost(uint8_t playerid, uint32_t lp, uint32_t must_pay) { int32_t field::check_lp_cost(uint8_t playerid, int32_t cost, uint32_t must_pay) {
effect_set eset; effect_set eset;
int32_t val = lp; int32_t val = cost;
filter_player_effect(playerid, EFFECT_LPCOST_CHANGE, &eset); filter_player_effect(playerid, EFFECT_LPCOST_CHANGE, &eset);
for(int32_t i = 0; i < eset.size(); ++i) { for(int32_t i = 0; i < eset.size(); ++i) {
pduel->lua->add_param(core.reason_effect, PARAM_TYPE_EFFECT); pduel->lua->add_param(core.reason_effect, PARAM_TYPE_EFFECT);
...@@ -2339,7 +2339,7 @@ int32_t field::check_lp_cost(uint8_t playerid, uint32_t lp, uint32_t must_pay) { ...@@ -2339,7 +2339,7 @@ int32_t field::check_lp_cost(uint8_t playerid, uint32_t lp, uint32_t must_pay) {
tevent e; tevent e;
e.event_cards = 0; e.event_cards = 0;
e.event_player = playerid; e.event_player = playerid;
e.event_value = lp; e.event_value = cost;
e.reason = 0; e.reason = 0;
e.reason_effect = core.reason_effect; e.reason_effect = core.reason_effect;
e.reason_player = playerid; e.reason_player = playerid;
......
...@@ -457,7 +457,7 @@ public: ...@@ -457,7 +457,7 @@ public:
int32_t check_spsummon_counter(uint8_t playerid, uint8_t ct = 1); int32_t check_spsummon_counter(uint8_t playerid, uint8_t ct = 1);
bool is_select_hide_deck_sequence(uint8_t playerid); bool is_select_hide_deck_sequence(uint8_t playerid);
int32_t check_lp_cost(uint8_t playerid, uint32_t cost, uint32_t must_pay); int32_t check_lp_cost(uint8_t playerid, int32_t cost, uint32_t must_pay);
void save_lp_cost() {} void save_lp_cost() {}
void restore_lp_cost() {} void restore_lp_cost() {}
int32_t pay_lp_cost(uint32_t step, uint8_t playerid, uint32_t cost, uint32_t must_pay); int32_t pay_lp_cost(uint32_t step, uint8_t playerid, uint32_t cost, uint32_t must_pay);
......
...@@ -41,8 +41,8 @@ uint32_t read_card(uint32_t code, card_data* data) { ...@@ -41,8 +41,8 @@ uint32_t read_card(uint32_t code, card_data* data) {
} }
return creader(code, data); return creader(code, data);
} }
uint32_t handle_message(void* pduel, uint32_t msg_type) { uint32_t handle_message(void* pduel, uint32_t message_type) {
return mhandler((intptr_t)pduel, msg_type); return mhandler((intptr_t)pduel, message_type);
} }
byte* default_script_reader(const char* script_name, int* slen) { byte* default_script_reader(const char* script_name, int* slen) {
FILE *fp; FILE *fp;
...@@ -77,11 +77,11 @@ extern "C" DECL_DLLEXPORT void start_duel(intptr_t pduel, uint32_t options) { ...@@ -77,11 +77,11 @@ extern "C" DECL_DLLEXPORT void start_duel(intptr_t pduel, uint32_t options) {
} }
pd->game_field->core.duel_options |= options & 0xffff; pd->game_field->core.duel_options |= options & 0xffff;
int32_t duel_rule = options >> 16; int32_t duel_rule = options >> 16;
if(duel_rule) if (duel_rule >= 1 && duel_rule <= CURRENT_RULE)
pd->game_field->core.duel_rule = duel_rule; pd->game_field->core.duel_rule = duel_rule;
else if(options & DUEL_OBSOLETE_RULING) //provide backward compatibility with replay else if(options & DUEL_OBSOLETE_RULING) //provide backward compatibility with replay
pd->game_field->core.duel_rule = 1; pd->game_field->core.duel_rule = 1;
if (pd->game_field->core.duel_rule < 1 || pd->game_field->core.duel_rule > CURRENT_RULE) else
pd->game_field->core.duel_rule = CURRENT_RULE; pd->game_field->core.duel_rule = CURRENT_RULE;
if (pd->game_field->core.duel_rule == MASTER_RULE3) { if (pd->game_field->core.duel_rule == MASTER_RULE3) {
pd->game_field->player[0].szone_size = 8; pd->game_field->player[0].szone_size = 8;
......
...@@ -3835,7 +3835,7 @@ int32_t field::destroy(uint16_t step, group * targets, effect * reason_effect, u ...@@ -3835,7 +3835,7 @@ int32_t field::destroy(uint16_t step, group * targets, effect * reason_effect, u
return TRUE; return TRUE;
} }
int32_t field::release_replace(uint16_t step, group* targets, card* target) { int32_t field::release_replace(uint16_t step, group* targets, card* target) {
if(!(target->current.location & (LOCATION_ONFIELD | LOCATION_HAND))) { if(target->current.location & (LOCATION_GRAVE | LOCATION_REMOVED)) {
target->current.reason = target->temp.reason; target->current.reason = target->temp.reason;
target->current.reason_effect = target->temp.reason_effect; target->current.reason_effect = target->temp.reason_effect;
target->current.reason_player = target->temp.reason_player; target->current.reason_player = target->temp.reason_player;
...@@ -3892,7 +3892,7 @@ int32_t field::release(uint16_t step, group * targets, effect * reason_effect, u ...@@ -3892,7 +3892,7 @@ int32_t field::release(uint16_t step, group * targets, effect * reason_effect, u
if(cv.size() > 1) if(cv.size() > 1)
std::sort(cv.begin(), cv.end(), card::card_operation_sort); std::sort(cv.begin(), cv.end(), card::card_operation_sort);
for (auto& pcard : cv) { for (auto& pcard : cv) {
if(!(pcard->current.location & (LOCATION_ONFIELD | LOCATION_HAND))) { if(pcard->current.location & (LOCATION_GRAVE | LOCATION_REMOVED)) {
pcard->current.reason = pcard->temp.reason; pcard->current.reason = pcard->temp.reason;
pcard->current.reason_effect = pcard->temp.reason_effect; pcard->current.reason_effect = pcard->temp.reason_effect;
pcard->current.reason_player = pcard->temp.reason_player; pcard->current.reason_player = pcard->temp.reason_player;
......
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