Commit 7fa8ba2c authored by wind2009's avatar wind2009

Merge remote-tracking branch 'upstream/master' into develop

parents c3502aae ca952790
...@@ -478,21 +478,15 @@ jobs: ...@@ -478,21 +478,15 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
name: name:
- macos-13-intel - macos-15-intel
# - macos-13-arm-cross-compile-static-link - macos-15-universal-static-link
- macos-13-universal-static-link
- macos-15-arm - macos-15-arm
# - macos-15-intel-cross-compile-static-link # - macos-15-intel-cross-compile-static-link
# - macos-15-universal-static-link
include: include:
- name: macos-13-intel - name: macos-15-intel
os: macos-13 os: macos-15-intel
# - name: macos-13-arm-cross-compile-static-link - name: macos-15-universal-static-link
# os: macos-13 os: macos-15
# cross-build-arm: true
# static-link: true
- name: macos-13-universal-static-link
os: macos-13
cross-build-intel: true cross-build-intel: true
cross-build-arm: true cross-build-arm: true
static-link: true static-link: true
...@@ -501,11 +495,6 @@ jobs: ...@@ -501,11 +495,6 @@ jobs:
# - name: macos-15-intel-cross-compile-static-link # - name: macos-15-intel-cross-compile-static-link
# os: macos-15 # os: macos-15
# cross-build-intel: true # cross-build-intel: true
# static-link: true
# - name: macos-15-universal-static-link
# os: macos-15
# cross-build-intel: true
# cross-build-arm: true
# static-link: true # static-link: true
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
......
...@@ -27,13 +27,11 @@ ClientField::~ClientField() { ...@@ -27,13 +27,11 @@ ClientField::~ClientField() {
} }
hand[i].clear(); hand[i].clear();
for (auto& card : mzone[i]) { for (auto& card : mzone[i]) {
if (card) delete card;
delete card;
card = nullptr; card = nullptr;
} }
for (auto& card : szone[i]) { for (auto& card : szone[i]) {
if (card) delete card;
delete card;
card = nullptr; card = nullptr;
} }
for (auto& card : grave[i]) { for (auto& card : grave[i]) {
...@@ -44,7 +42,6 @@ ClientField::~ClientField() { ...@@ -44,7 +42,6 @@ ClientField::~ClientField() {
delete card; delete card;
} }
remove[i].clear(); remove[i].clear();
for (auto& card : extra[i]) { for (auto& card : extra[i]) {
delete card; delete card;
} }
...@@ -57,30 +54,33 @@ ClientField::~ClientField() { ...@@ -57,30 +54,33 @@ ClientField::~ClientField() {
} }
void ClientField::Clear() { void ClientField::Clear() {
for(int i = 0; i < 2; ++i) { for(int i = 0; i < 2; ++i) {
for(auto cit = deck[i].begin(); cit != deck[i].end(); ++cit) for (auto& card : deck[i]) {
delete *cit; delete card;
}
deck[i].clear(); deck[i].clear();
for(auto cit = hand[i].begin(); cit != hand[i].end(); ++cit) for (auto& card : hand[i]) {
delete *cit; delete card;
}
hand[i].clear(); hand[i].clear();
for(auto cit = mzone[i].begin(); cit != mzone[i].end(); ++cit) { for (auto& card : mzone[i]) {
if(*cit) delete card;
delete *cit; card = nullptr;
*cit = 0; }
} for (auto& card : szone[i]) {
for(auto cit = szone[i].begin(); cit != szone[i].end(); ++cit) { delete card;
if(*cit) card = nullptr;
delete *cit; }
*cit = 0; for (auto& card : grave[i]) {
} delete card;
for(auto cit = grave[i].begin(); cit != grave[i].end(); ++cit) }
delete *cit;
grave[i].clear(); grave[i].clear();
for(auto cit = remove[i].begin(); cit != remove[i].end(); ++cit) for (auto& card : remove[i]) {
delete *cit; delete card;
}
remove[i].clear(); remove[i].clear();
for(auto cit = extra[i].begin(); cit != extra[i].end(); ++cit) for (auto& card : extra[i]) {
delete *cit; delete card;
}
extra[i].clear(); extra[i].clear();
deck_act[i] = false; deck_act[i] = false;
grave_act[i] = false; grave_act[i] = false;
...@@ -88,8 +88,9 @@ void ClientField::Clear() { ...@@ -88,8 +88,9 @@ void ClientField::Clear() {
extra_act[i] = false; extra_act[i] = false;
pzone_act[i] = false; pzone_act[i] = false;
} }
for(auto sit = overlay_cards.begin(); sit != overlay_cards.end(); ++sit) for (auto& card : overlay_cards) {
delete *sit; delete card;
}
overlay_cards.clear(); overlay_cards.clear();
extra_p_count[0] = 0; extra_p_count[0] = 0;
extra_p_count[1] = 0; extra_p_count[1] = 0;
......
...@@ -93,7 +93,7 @@ public: ...@@ -93,7 +93,7 @@ public:
std::mt19937 rnd; std::mt19937 rnd;
ClientField(); ClientField();
~ClientField(); ~ClientField() override;
void Clear(); void Clear();
void Initial(int player, int deckc, int extrac, int sidec = 0); void Initial(int player, int deckc, int extrac, int sidec = 0);
void ResetSequence(std::vector<ClientCard*>& list, bool reset_height); void ResetSequence(std::vector<ClientCard*>& list, bool reset_height);
......
...@@ -80,7 +80,7 @@ inline FILE* mywfopen(const wchar_t* filename, const char* mode) { ...@@ -80,7 +80,7 @@ inline FILE* mywfopen(const wchar_t* filename, const char* mode) {
#include <irrlicht.h> #include <irrlicht.h>
extern const unsigned short PRO_VERSION; constexpr uint16_t PRO_VERSION = 0x1362;
extern unsigned int enable_log; extern unsigned int enable_log;
extern bool exit_on_return; extern bool exit_on_return;
extern bool open_file; extern bool open_file;
......
...@@ -89,10 +89,9 @@ bool DataManager::LoadDB(const wchar_t* wfile) { ...@@ -89,10 +89,9 @@ bool DataManager::LoadDB(const wchar_t* wfile) {
spmembuffer_t* mem = (spmembuffer_t*)std::calloc(sizeof(spmembuffer_t), 1); spmembuffer_t* mem = (spmembuffer_t*)std::calloc(sizeof(spmembuffer_t), 1);
spmemvfs_env_init(); spmemvfs_env_init();
mem->total = mem->used = reader->getSize(); mem->total = mem->used = reader->getSize();
mem->data = (char*)std::malloc(mem->total + 1); mem->data = (char*)std::malloc(mem->total);
reader->read(mem->data, mem->total); reader->read(mem->data, mem->total);
reader->drop(); reader->drop();
(mem->data)[mem->total] = '\0';
bool ret{}; bool ret{};
if (spmemvfs_open_db(&db, file, mem) != SQLITE_OK) if (spmemvfs_open_db(&db, file, mem) != SQLITE_OK)
ret = Error(db.handle); ret = Error(db.handle);
......
...@@ -15,6 +15,7 @@ namespace irr { ...@@ -15,6 +15,7 @@ namespace irr {
} }
namespace ygo { namespace ygo {
constexpr int MAX_STRING_ID = 0x7ff; constexpr int MAX_STRING_ID = 0x7ff;
constexpr uint32_t MIN_CARD_ID = (uint32_t)(MAX_STRING_ID + 1) >> 4; constexpr uint32_t MIN_CARD_ID = (uint32_t)(MAX_STRING_ID + 1) >> 4;
constexpr uint32_t MAX_CARD_ID = 0x0fffffffU; constexpr uint32_t MAX_CARD_ID = 0x0fffffffU;
......
...@@ -7,20 +7,21 @@ ...@@ -7,20 +7,21 @@
#include "data_manager.h" #include "data_manager.h"
namespace ygo { namespace ygo {
constexpr int DECK_MAX_SIZE = 60;
constexpr int DECK_MIN_SIZE = 40;
constexpr int EXTRA_MAX_SIZE = 15;
constexpr int SIDE_MAX_SIZE = 15;
constexpr int PACK_MAX_SIZE = 1000;
constexpr int MAINC_MAX = 250; // the limit of card_state constexpr int DECK_MAX_SIZE = 60;
constexpr int SIDEC_MAX = MAINC_MAX; constexpr int DECK_MIN_SIZE = 40;
constexpr int EXTRA_MAX_SIZE = 15;
constexpr int SIDE_MAX_SIZE = 15;
constexpr int PACK_MAX_SIZE = 1000;
constexpr int DECK_CATEGORY_PACK = 0; constexpr int MAINC_MAX = 250; // the limit of card_state
constexpr int DECK_CATEGORY_BOT = 1; constexpr int SIDEC_MAX = MAINC_MAX;
constexpr int DECK_CATEGORY_NONE = 2;
constexpr int DECK_CATEGORY_SEPARATOR = 3; constexpr int DECK_CATEGORY_PACK = 0;
constexpr int DECK_CATEGORY_CUSTOM = 4; constexpr int DECK_CATEGORY_BOT = 1;
constexpr int DECK_CATEGORY_NONE = 2;
constexpr int DECK_CATEGORY_SEPARATOR = 3;
constexpr int DECK_CATEGORY_CUSTOM = 4;
struct LFList { struct LFList {
unsigned int hash{}; unsigned int hash{};
......
...@@ -12,8 +12,6 @@ ...@@ -12,8 +12,6 @@
#include "single_mode.h" #include "single_mode.h"
#include <thread> #include <thread>
const unsigned short PRO_VERSION = 0x1362;
namespace ygo { namespace ygo {
Game* mainGame; Game* mainGame;
......
...@@ -22,12 +22,12 @@ ...@@ -22,12 +22,12 @@
#include <mutex> #include <mutex>
#include <functional> #include <functional>
constexpr int DEFAULT_DUEL_RULE = 5; namespace ygo {
constexpr int DEFAULT_DUEL_RULE = CURRENT_RULE;
constexpr int CONFIG_LINE_SIZE = 1024; constexpr int CONFIG_LINE_SIZE = 1024;
constexpr int TEXT_LINE_SIZE = 256; constexpr int TEXT_LINE_SIZE = 256;
namespace ygo {
template<size_t N> template<size_t N>
bool IsExtension(const wchar_t* filename, const wchar_t(&extension)[N]) { bool IsExtension(const wchar_t* filename, const wchar_t(&extension)[N]) {
auto flen = std::wcslen(filename); auto flen = std::wcslen(filename);
......
...@@ -14,8 +14,9 @@ ...@@ -14,8 +14,9 @@
#define check_trivially_copyable(T) static_assert(std::is_trivially_copyable<T>::value == true && std::is_standard_layout<T>::value == true, "not trivially copyable") #define check_trivially_copyable(T) static_assert(std::is_trivially_copyable<T>::value == true && std::is_standard_layout<T>::value == true, "not trivially copyable")
namespace ygo { namespace ygo {
constexpr int SIZE_NETWORK_BUFFER = 0x20000;
constexpr int MAX_DATA_SIZE = UINT16_MAX - 1; constexpr int SIZE_NETWORK_BUFFER = 0x20000;
constexpr int MAX_DATA_SIZE = UINT16_MAX - 1;
struct HostInfo { struct HostInfo {
uint32_t lflist{}; uint32_t lflist{};
......
This diff is collapsed.
...@@ -671,6 +671,8 @@ ...@@ -671,6 +671,8 @@
!counter 0x6e 四季指示物 !counter 0x6e 四季指示物
!counter 0x6f 龋齿指示物 !counter 0x6f 龋齿指示物
!counter 0x70 盘子指示物 !counter 0x70 盘子指示物
!counter 0x71 纠罪指示物
!counter 0x1072 少女指示物
#setnames, using tab for comment #setnames, using tab for comment
!setname 0x1 正义盟军 AOJ !setname 0x1 正义盟军 AOJ
!setname 0x2 次世代 ジェネクス !setname 0x2 次世代 ジェネクス
...@@ -1240,7 +1242,7 @@ ...@@ -1240,7 +1242,7 @@
!setname 0x1b4 时空 タキオン !setname 0x1b4 时空 タキオン
!setname 0x1b5 蓝泪 青い涙 !setname 0x1b5 蓝泪 青い涙
!setname 0x1b6 石版 !setname 0x1b6 石版
!setname 0x1b7 拟箱掳尸 Mimighoul !setname 0x1b7 迷拟宝箱鬼 ミミグル
!setname 0x1b8 鲨 シャーク !setname 0x1b8 鲨 シャーク
!setname 0x11b8 鲨龙兽 シャーク・ドレイク !setname 0x11b8 鲨龙兽 シャーク・ドレイク
!setname 0x1b9 原石 !setname 0x1b9 原石
...@@ -1253,12 +1255,12 @@ ...@@ -1253,12 +1255,12 @@
!setname 0x1c0 龙华 竜華 !setname 0x1c0 龙华 竜華
!setname 0x1c1 阿尔戈☆群星 ARGS !setname 0x1c1 阿尔戈☆群星 ARGS
!setname 0x1c2 喷水引擎 アクア・ジェット !setname 0x1c2 喷水引擎 アクア・ジェット
!setname 0x1c3 巳剑 Mitsurugi !setname 0x1c3 巳剑 巳剣
!setname 0x1c4 征龙 征竜 !setname 0x1c4 征龙 征竜
!setname 0x1c5 再世 リジェネシス !setname 0x1c5 再世 リジェネシス
!setname 0x1c6 统王 ドミナス !setname 0x1c6 统王 ドミナス
!setname 0x1c7 塞勒凯特 Serket !setname 0x1c7 塞勒凯特 セルケト
!setname 0x1c8 阿匹卜 Apophis !setname 0x1c8 阿匹卜 アポピス
!setname 0x1c9 星辰 ドラゴンテイル !setname 0x1c9 星辰 ドラゴンテイル
!setname 0x1ca 味美喵 ヤミー !setname 0x1ca 味美喵 ヤミー
!setname 0x1cb K9 !setname 0x1cb K9
...@@ -1269,3 +1271,7 @@ ...@@ -1269,3 +1271,7 @@
!setname 0x1d0 死伟王 死偉王 !setname 0x1d0 死伟王 死偉王
!setname 0x1d1 绚岚 絢嵐 !setname 0x1d1 绚岚 絢嵐
!setname 0x1d2 终刻 ドゥームズ !setname 0x1d2 终刻 ドゥームズ
!setname 0x1d3 不可见之手 ヘカトンケイル
!setname 0x1d4 纠罪巧 糾罪巧
!setname 0x1d5 杀手级调整曲 キラーチューン
!setname 0x1d6 树熊 コアラ
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