From 85dd198650eccf8a0afa1a9cfc09a4390dd1ea89 Mon Sep 17 00:00:00 2001 From: salix5 Date: Fri, 3 Jan 2025 00:46:34 +0800 Subject: [PATCH] ocgapi change: return LEN_FAIL if not exist (#701) --- ocgapi.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/ocgapi.cpp b/ocgapi.cpp index 6d039e9ca..b6aa048af 100644 --- a/ocgapi.cpp +++ b/ocgapi.cpp @@ -192,7 +192,7 @@ extern "C" DECL_DLLEXPORT void new_tag_card(intptr_t pduel, uint32_t code, uint8 } /** * @brief Get card information. -* @param buf uint32_t array +* @param buf int32_t array * @return buffer length in bytes */ extern "C" DECL_DLLEXPORT int32_t query_card(intptr_t pduel, uint8_t playerid, uint8_t location, uint8_t sequence, int32_t query_flag, byte* buf, int32_t use_cache) { @@ -201,7 +201,7 @@ extern "C" DECL_DLLEXPORT int32_t query_card(intptr_t pduel, uint8_t playerid, u duel* ptduel = (duel*)pduel; card* pcard = nullptr; location &= 0x7f; - if(location & LOCATION_ONFIELD) + if (location == LOCATION_MZONE || location == LOCATION_SZONE) pcard = ptduel->game_field->get_field_card(playerid, location, sequence); else { card_vector* lst = nullptr; @@ -217,10 +217,9 @@ extern "C" DECL_DLLEXPORT int32_t query_card(intptr_t pduel, uint8_t playerid, u lst = &ptduel->game_field->player[playerid].list_main; else return LEN_FAIL; - if(sequence >= (int32_t)lst->size()) - pcard = nullptr; - else - pcard = (*lst)[sequence]; + if (sequence >= (int32_t)lst->size()) + return LEN_FAIL; + pcard = (*lst)[sequence]; } if (pcard) { return pcard->get_infos(buf, query_flag, use_cache);