diff options
author | Asheraf <acheraf1998@gmail.com> | 2019-11-04 17:00:12 +0100 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2021-02-15 17:56:29 -0300 |
commit | 9a12781916106b42c78e251d82da6a0115a86124 (patch) | |
tree | 9bd9e17fd7f28d04f9fec024b80a0561407b9167 | |
parent | 3b2b1e58acf068607f374773054986ce22642948 (diff) | |
download | hercules-9a12781916106b42c78e251d82da6a0115a86124.tar.gz hercules-9a12781916106b42c78e251d82da6a0115a86124.tar.bz2 hercules-9a12781916106b42c78e251d82da6a0115a86124.tar.xz hercules-9a12781916106b42c78e251d82da6a0115a86124.zip |
Add support for defining status icons in the sc config
[TMW2 CHERRYPICK]
-rw-r--r-- | src/map/status.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/map/status.c b/src/map/status.c index 08363d90b..f3a187207 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -13425,19 +13425,24 @@ static bool status_read_scdb_libconfig_sub(struct config_setting_t *it, int idx, nullpo_retr(false, source); int i32; + int status_id; const char *name = config_setting_name(it); - if (!script->get_constant(name, &i32) || i32 <= SC_NONE || i32 >= SC_MAX) { + if (!script->get_constant(name, &status_id) || status_id <= SC_NONE || status_id >= SC_MAX) { ShowWarning("status_read_scdb_libconfig_sub: Invalid status type (%s) in \"%s\" entry #%d, skipping.\n", name, source, idx); return false; } - libconfig->setting_lookup_bool_real(it, "Visible", &status->dbs->DisplayType[i32]); + libconfig->setting_lookup_bool_real(it, "Visible", &status->dbs->DisplayType[status_id]); struct config_setting_t *fg = libconfig->setting_get_member(it, "Flags"); if (fg != NULL) - status->read_scdb_libconfig_sub_flag(fg, i32, source); + status->read_scdb_libconfig_sub_flag(fg, status_id, source); + if (itemdb->lookup_const(it, "Icon", &i32) && i32 >= 0) + status->dbs->IconChangeTable[status_id] = i32; + else + status->dbs->IconChangeTable[status_id] = SI_BLANK; return true; } |