diff options
author | Ben Longbons <b.r.longbons@gmail.com> | 2014-03-30 23:14:12 -0700 |
---|---|---|
committer | Ben Longbons <b.r.longbons@gmail.com> | 2014-03-31 10:18:49 -0700 |
commit | 1a651243bb2c8e18baa9aac30ac52a62185074e7 (patch) | |
tree | dd2c0bfc448faef129fb64edec9f64d2ab12bfe5 /src/mmo/mmo.hpp | |
parent | 769e8ac9c17779a15492d7fcfc1931c014670c2d (diff) | |
download | tmwa-1a651243bb2c8e18baa9aac30ac52a62185074e7.tar.gz tmwa-1a651243bb2c8e18baa9aac30ac52a62185074e7.tar.bz2 tmwa-1a651243bb2c8e18baa9aac30ac52a62185074e7.tar.xz tmwa-1a651243bb2c8e18baa9aac30ac52a62185074e7.zip |
Be stricter about most arrays
Diffstat (limited to 'src/mmo/mmo.hpp')
-rw-r--r-- | src/mmo/mmo.hpp | 29 |
1 files changed, 21 insertions, 8 deletions
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<class T, size_t n> +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<struct item, MAX_INVENTORY> inventory; earray<skill_value, SkillID, MAX_SKILL> skill; int global_reg_num; - struct global_reg global_reg[GLOBAL_REG_NUM]; + Array<struct global_reg, GLOBAL_REG_NUM> global_reg; int account_reg_num; - struct global_reg account_reg[ACCOUNT_REG_NUM]; + Array<struct global_reg, ACCOUNT_REG_NUM> account_reg; int account_reg2_num; - struct global_reg account_reg2[ACCOUNT_REG2_NUM]; + Array<struct global_reg, ACCOUNT_REG2_NUM> 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<struct item, MAX_STORAGE> 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<struct party_member, MAX_PARTY> member; }; #endif // TMWA_MMO_MMO_HPP |