diff options
author | Haru <haru@dotalux.com> | 2017-08-21 20:58:36 +0200 |
---|---|---|
committer | Haru <haru@dotalux.com> | 2017-09-17 17:48:33 +0200 |
commit | 926cff033bb9533ae3d8615f8b90e2e443d0525b (patch) | |
tree | e6c880ede4d47f6ef3a83ae666bd08d680187b84 /src | |
parent | 3745f1658aab4a5ffe504a5660b76402f2e2c6d6 (diff) | |
download | hercules-926cff033bb9533ae3d8615f8b90e2e443d0525b.tar.gz hercules-926cff033bb9533ae3d8615f8b90e2e443d0525b.tar.bz2 hercules-926cff033bb9533ae3d8615f8b90e2e443d0525b.tar.xz hercules-926cff033bb9533ae3d8615f8b90e2e443d0525b.zip |
Add support for bitmask arrays in the item_db Upper field
Signed-off-by: Haru <haru@dotalux.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/map/itemdb.c | 2 | ||||
-rw-r--r-- | src/map/script.c | 10 | ||||
-rw-r--r-- | src/plugins/db2sql.c | 5 |
3 files changed, 14 insertions, 3 deletions
diff --git a/src/map/itemdb.c b/src/map/itemdb.c index 7a2c967fb..0ace20984 100644 --- a/src/map/itemdb.c +++ b/src/map/itemdb.c @@ -2037,7 +2037,7 @@ int itemdb_readdb_libconfig_sub(struct config_setting_t *it, int n, const char * itemdb->jobmask2mapid(id.class_base, UINT64_MAX); } - if( itemdb->lookup_const(it, "Upper", &i32) && i32 >= 0 ) + if (itemdb->lookup_const_mask(it, "Upper", &i32) && i32 >= 0) id.class_upper = (unsigned int)i32; else if( !inherit ) id.class_upper = ITEMUPPER_ALL; diff --git a/src/map/script.c b/src/map/script.c index 5ce581db6..f29ce4104 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -24572,6 +24572,16 @@ void script_hardcoded_constants(void) script->set_constant("A_CANNONBALL", A_CANNONBALL, false, false); script->set_constant("A_THROWWEAPON", A_THROWWEAPON, false, false); + script->constdb_comment("Item Upper Masks"); + script->set_constant("ITEMUPPER_NONE", ITEMUPPER_NONE, false, false); + script->set_constant("ITEMUPPER_NORMAL", ITEMUPPER_NORMAL, false, false); + script->set_constant("ITEMUPPER_UPPER", ITEMUPPER_UPPER, false, false); + script->set_constant("ITEMUPPER_BABY", ITEMUPPER_BABY, false, false); + script->set_constant("ITEMUPPER_THIRD", ITEMUPPER_THIRD, false, false); + script->set_constant("ITEMUPPER_THIRDUPPER", ITEMUPPER_THIRDUPPER, false, false); + script->set_constant("ITEMUPPER_THIRDBABY", ITEMUPPER_THIRDBABY, false, false); + script->set_constant("ITEMUPPER_ALL", ITEMUPPER_ALL, false, false); + script->constdb_comment("Renewal"); #ifdef RENEWAL script->set_constant("RENEWAL", 1, false, false); diff --git a/src/plugins/db2sql.c b/src/plugins/db2sql.c index cb8660df9..38e5ead5d 100644 --- a/src/plugins/db2sql.c +++ b/src/plugins/db2sql.c @@ -297,10 +297,11 @@ int itemdb2sql_sub(struct config_setting_t *entry, int n, const char *source) StrBuf->Printf(&buf, "'%"PRIu64"',", ui64); // equip_upper - if (libconfig->setting_lookup_int(entry, "Upper", &i32) && i32 >= 0) + if (itemdb->lookup_const_mask(entry, "Upper", &i32) && i32 >= 0) ui32 = (uint32)i32; else ui32 = ITEMUPPER_ALL; + StrBuf->Printf(&buf, "'%u',", ui32); // equip_genders @@ -323,7 +324,7 @@ int itemdb2sql_sub(struct config_setting_t *entry, int n, const char *source) // refineable StrBuf->Printf(&buf, "'%d',", it->flag.no_refine?0:1); - + // disable_options StrBuf->Printf(&buf, "'%d',", it->flag.no_options?1:0); |