From 1a651243bb2c8e18baa9aac30ac52a62185074e7 Mon Sep 17 00:00:00 2001 From: Ben Longbons Date: Sun, 30 Mar 2014 23:14:12 -0700 Subject: Be stricter about most arrays --- src/mmo/mmo.hpp | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'src/mmo/mmo.hpp') diff --git a/src/mmo/mmo.hpp b/src/mmo/mmo.hpp index 6b3cd53..f867492 100644 --- a/src/mmo/mmo.hpp +++ b/src/mmo/mmo.hpp @@ -21,6 +21,7 @@ constexpr int MAX_MAP_PER_SERVER = 512; constexpr int MAX_INVENTORY = 100; constexpr int MAX_AMOUNT = 30000; constexpr int MAX_ZENY = 1000000000; // 1G zeny +constexpr int TRADE_MAX = 10; enum class SkillID : uint16_t; constexpr SkillID MAX_SKILL = SkillID(474); // not 450 @@ -43,6 +44,20 @@ constexpr int MAX_PARTY = 12; # define MIN_CLOTH_COLOR battle_config.min_cloth_color # define MAX_CLOTH_COLOR battle_config.max_cloth_color +template +struct Array +{ + T data[n]; +public: + T& operator [](size_t i) { assert (i < n); return data[i]; } + const T& operator [](size_t i) const { assert (i < n); return data[i]; } + + T *begin() { return data + 0; } + T *end() { return data + n; } + const T *begin() const { return data + 0; } + const T *end() const { return data + n; } +}; + struct AccountName : VString<23> {}; struct AccountPass : VString<23> {}; struct AccountCrypt : VString<39> {}; @@ -319,14 +334,14 @@ struct CharData unsigned int mapport; struct point last_point, save_point; - struct item inventory[MAX_INVENTORY]; + Array inventory; earray skill; int global_reg_num; - struct global_reg global_reg[GLOBAL_REG_NUM]; + Array global_reg; int account_reg_num; - struct global_reg account_reg[ACCOUNT_REG_NUM]; + Array account_reg; int account_reg2_num; - struct global_reg account_reg2[ACCOUNT_REG2_NUM]; + Array account_reg2; }; struct CharPair @@ -345,11 +360,9 @@ struct storage int account_id; short storage_status; short storage_amount; - struct item storage_[MAX_STORAGE]; + Array storage_; }; -//struct map_session_data; - struct GM_Account { int account_id; @@ -371,7 +384,7 @@ struct party PartyName name; int exp; int item; - struct party_member member[MAX_PARTY]; + Array member; }; #endif // TMWA_MMO_MMO_HPP -- cgit v1.2.3-70-g09d2