From ec69d4fd5c6ec519cb7a04ba74182cbfeceb9cf9 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 12 Oct 2015 18:48:32 +0300 Subject: Add support for mob ai attribute SurviveWithoutMaster. --- src/emap/init.c | 1 + src/emap/mob.c | 14 ++++++++++++++ src/emap/mob.h | 5 +++++ 3 files changed, 20 insertions(+) diff --git a/src/emap/init.c b/src/emap/init.c index c19dc07..049402a 100644 --- a/src/emap/init.c +++ b/src/emap/init.c @@ -202,6 +202,7 @@ HPExport void plugin_init (void) addHookPost("clif->set_unit_walking", eclif_set_unit_walking); addHookPost("clif->move", eclif_move); addHookPost("map->addflooritem", emap_addflooritem_post); + addHookPost("mob->read_db_mode_sub", emob_read_db_mode_sub_post); addHookPost("skill->check_condition_castend", eskill_check_condition_castend_post); addHookPost("pc->additem", epc_additem_post); addHookPost("pc->isequip", epc_isequip_post); diff --git a/src/emap/mob.c b/src/emap/mob.c index eae7901..e7eccbc 100644 --- a/src/emap/mob.c +++ b/src/emap/mob.c @@ -69,3 +69,17 @@ void emob_read_db_additional_fields(struct mob_db *entry, if (mob->lookup_const(it, "WalkMask", &i32)) data->walkMask = i32; } + +int emob_read_db_mode_sub_post(int retVal, + struct mob_db *entry, + struct status_data *mstatus, + int *classPtr, + config_setting_t *t) +{ + config_setting_t *t2; + + if ((t2 = libconfig->setting_get_member(t, "SurviveWithoutMaster"))) + retVal |= libconfig->setting_get_bool(t2) ? 0x8000 : 0; + + return retVal; +} diff --git a/src/emap/mob.h b/src/emap/mob.h index 028195f..a2815fb 100644 --- a/src/emap/mob.h +++ b/src/emap/mob.h @@ -9,5 +9,10 @@ void emob_read_db_additional_fields(struct mob_db *entry, int *classPtr, config_setting_t *it, int *nPtr, const char *source); +int emob_read_db_mode_sub_post(int retVal, + struct mob_db *entry, + struct status_data *mstatus, + int *classPtr, + config_setting_t *t); #endif // EVOL_MAP_MOB -- cgit v1.2.3-70-g09d2