|
@@ -5189,24 +5189,23 @@ static void mob_load(void)
|
|
|
mob_skill_db_set();
|
|
|
}
|
|
|
|
|
|
-void mob_reload(void) {
|
|
|
- int i;
|
|
|
-
|
|
|
- //Mob skills need to be cleared before re-reading them. [Skotlex]
|
|
|
- for (i = 0; i < MAX_MOB_DB; i++) {
|
|
|
- if (mob_db_data[i]) {
|
|
|
- memset(&mob_db_data[i]->skill,0,sizeof(mob_db_data[i]->skill));
|
|
|
- mob_db_data[i]->maxskill = 0;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // Clear item_drop_ratio_db
|
|
|
- mob_item_drop_ratio->clear(mob_item_drop_ratio, mob_item_drop_ratio_free);
|
|
|
- mob_skill_db->clear(mob_skill_db, mob_skill_db_free);
|
|
|
- mob_summon_db->clear(mob_summon_db, mob_summon_db_free);
|
|
|
+void mob_db_load(void){
|
|
|
+ memset(mob_db_data,0,sizeof(mob_db_data)); //Clear the array
|
|
|
+ mob_db_data[0] = (struct mob_db*)aCalloc(1, sizeof (struct mob_db)); //This mob is used for random spawns
|
|
|
+ mob_makedummymobdb(0); //The first time this is invoked, it creates the dummy mob
|
|
|
+ item_drop_ers = ers_new(sizeof(struct item_drop),"mob.c::item_drop_ers",ERS_OPT_CLEAN);
|
|
|
+ item_drop_list_ers = ers_new(sizeof(struct item_drop_list),"mob.c::item_drop_list_ers",ERS_OPT_NONE);
|
|
|
+ mob_item_drop_ratio = idb_alloc(DB_OPT_BASE);
|
|
|
+ mob_skill_db = idb_alloc(DB_OPT_BASE);
|
|
|
+ mob_summon_db = idb_alloc(DB_OPT_BASE);
|
|
|
mob_load();
|
|
|
}
|
|
|
|
|
|
+void mob_reload(void) {
|
|
|
+ do_final_mob();
|
|
|
+ mob_db_load();
|
|
|
+}
|
|
|
+
|
|
|
void mob_clear_spawninfo()
|
|
|
{ //Clears spawn related information for a script reload.
|
|
|
int i;
|
|
@@ -5219,15 +5218,7 @@ void mob_clear_spawninfo()
|
|
|
* Circumference initialization of mob
|
|
|
*------------------------------------------*/
|
|
|
void do_init_mob(void){
|
|
|
- memset(mob_db_data,0,sizeof(mob_db_data)); //Clear the array
|
|
|
- mob_db_data[0] = (struct mob_db*)aCalloc(1, sizeof (struct mob_db)); //This mob is used for random spawns
|
|
|
- mob_makedummymobdb(0); //The first time this is invoked, it creates the dummy mob
|
|
|
- item_drop_ers = ers_new(sizeof(struct item_drop),"mob.c::item_drop_ers",ERS_OPT_CLEAN);
|
|
|
- item_drop_list_ers = ers_new(sizeof(struct item_drop_list),"mob.c::item_drop_list_ers",ERS_OPT_NONE);
|
|
|
- mob_item_drop_ratio = idb_alloc(DB_OPT_BASE);
|
|
|
- mob_skill_db = idb_alloc(DB_OPT_BASE);
|
|
|
- mob_summon_db = idb_alloc(DB_OPT_BASE);
|
|
|
- mob_load();
|
|
|
+ mob_db_load();
|
|
|
|
|
|
add_timer_func_list(mob_delayspawn,"mob_delayspawn");
|
|
|
add_timer_func_list(mob_delay_item_drop,"mob_delay_item_drop");
|