summaryrefslogtreecommitdiff
path: root/src/map/itemdb.h
diff options
context:
space:
mode:
authorshennetsind <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-07-27 00:11:32 +0000
committershennetsind <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-07-27 00:11:32 +0000
commit96cc4f2e7496202c8c278399124f9f85ce3a5ae5 (patch)
tree7455cde7f3b96c014e441b58662630910f49ed36 /src/map/itemdb.h
parent679b172c58b43307a8e25ba85bae0d83f8598926 (diff)
downloadhercules-96cc4f2e7496202c8c278399124f9f85ce3a5ae5.tar.gz
hercules-96cc4f2e7496202c8c278399124f9f85ce3a5ae5.tar.bz2
hercules-96cc4f2e7496202c8c278399124f9f85ce3a5ae5.tar.xz
hercules-96cc4f2e7496202c8c278399124f9f85ce3a5ae5.zip
Fixed bugreport:309 combos may now stack properly. moved all combo processing out of item bonuses and made it's own processing scheme, which is by far more efficient cpu-wise although it requires a little more memory, instead of checking for combo items whenever a status effect is turned on/off it only checks when equipping/un-equipping a item (and on login). Special Thanks to GreenBox, Kenpachi, Skotlex and Trojal
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16508 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/itemdb.h')
-rw-r--r--src/map/itemdb.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/map/itemdb.h b/src/map/itemdb.h
index 75c82088b..d39966285 100644
--- a/src/map/itemdb.h
+++ b/src/map/itemdb.h
@@ -129,8 +129,7 @@ struct item_data {
unsigned autoequip: 1;
unsigned buyingstore : 1;
} flag;
- struct
- {// item stacking limitation
+ struct {// item stacking limitation
unsigned short amount;
unsigned int inventory:1;
unsigned int cart:1;
@@ -138,6 +137,9 @@ struct item_data {
unsigned int guildstorage:1;
} stack;
short gm_lv_trade_override; //GM-level to override trade_restriction
+ /* bugreport:309 */
+ struct item_combo **combos;
+ unsigned char combos_count;
};
struct item_group {
@@ -146,8 +148,11 @@ struct item_group {
};
struct item_combo {
- char script[2048]; /* combo script */
- short nameid;/* id of the first */
+ struct script_code *script;
+ unsigned short *nameid;/* nameid array */
+ unsigned char count;
+ unsigned short id;/* id of this combo */
+ bool isRef;/* whether this struct is a reference or the master */
};
struct item_data* itemdb_searchname(const char *name);