diff --git a/src/map/elemental.cpp b/src/map/elemental.cpp index 1589fe77a0..08fc91f055 100644 --- a/src/map/elemental.cpp +++ b/src/map/elemental.cpp @@ -209,7 +209,7 @@ int elemental_delete(s_elemental_data *ed) { sd->ed = NULL; sd->status.ele_id = 0; - return unit_remove_map(&ed->bl, CLR_OUTSIGHT); + return unit_remove_map(&ed->bl, CLR_OUTSIGHT, false); } void elemental_summon_init(s_elemental_data *ed) { diff --git a/src/map/homunculus.cpp b/src/map/homunculus.cpp index d434c65cab..9278193def 100644 --- a/src/map/homunculus.cpp +++ b/src/map/homunculus.cpp @@ -313,7 +313,7 @@ int hom_vaporize(struct map_session_data *sd, int flag) status_change_end(&sd->bl, SC_HOMUN_TIME, INVALID_TIMER); #endif - return unit_remove_map(&hd->bl, CLR_OUTSIGHT); + return unit_remove_map(&hd->bl, CLR_OUTSIGHT, false); } /** @@ -339,7 +339,7 @@ int hom_delete(struct homun_data *hd, int emote) // Send homunculus_dead to client hd->homunculus.hp = 0; clif_hominfo(sd, hd, 0); - return unit_remove_map(&hd->bl,CLR_OUTSIGHT); + return unit_remove_map(&hd->bl,CLR_OUTSIGHT, false); } /** @@ -660,7 +660,7 @@ int hom_evolution(struct homun_data *hd) hom->luk += 10*rnd_value(min->luk, max->luk); hom->intimacy = battle_config.homunculus_evo_intimacy_reset; - unit_remove_map(&hd->bl, CLR_OUTSIGHT); + unit_remove_map(&hd->bl, CLR_OUTSIGHT, false); if (map_addblock(&hd->bl)) return 0; @@ -711,7 +711,7 @@ int hom_mutate(struct homun_data *hd, int homun_id) return 0; } - unit_remove_map(&hd->bl, CLR_OUTSIGHT); + unit_remove_map(&hd->bl, CLR_OUTSIGHT, false); if(map_addblock(&hd->bl)) return 0; diff --git a/src/map/mercenary.cpp b/src/map/mercenary.cpp index 1382f64d4e..89c529dde1 100644 --- a/src/map/mercenary.cpp +++ b/src/map/mercenary.cpp @@ -291,7 +291,7 @@ int mercenary_delete(s_mercenary_data *md, int reply) { } clif_mercenary_message(sd, reply); - return unit_remove_map(&md->bl, CLR_OUTSIGHT); + return unit_remove_map(&md->bl, CLR_OUTSIGHT, false); } /** diff --git a/src/map/mob.cpp b/src/map/mob.cpp index 66b5251c6f..9ee834f87b 100644 --- a/src/map/mob.cpp +++ b/src/map/mob.cpp @@ -1116,7 +1116,7 @@ int mob_spawn (struct mob_data *md) md->last_thinktime = tick; if (md->bl.prev != NULL) - unit_remove_map(&md->bl,CLR_RESPAWN); + unit_remove_map(&md->bl,CLR_RESPAWN, false); else if (md->spawn && md->mob_id != md->spawn->id) { @@ -6462,7 +6462,7 @@ void mob_reload_itemmob_data(void) { static int mob_reload_sub( struct mob_data *md, va_list args ){ // Slaves have to be killed if( md->master_id != 0 ){ - unit_remove_map( &md->bl, CLR_OUTSIGHT ); + unit_remove_map( &md->bl, CLR_OUTSIGHT, false); return 0; } @@ -6475,7 +6475,7 @@ static int mob_reload_sub( struct mob_data *md, va_list args ){ ShowDebug( "mob_reload_sub: The monster was removed from map %s (%hu/%hu).\n", map_mapid2mapname( md->bl.m ), md->bl.x, md->bl.y ); } - unit_remove_map( &md->bl, CLR_OUTSIGHT ); + unit_remove_map( &md->bl, CLR_OUTSIGHT, false); return 0; } diff --git a/src/map/pet.cpp b/src/map/pet.cpp index b81457c2f9..a6ffa922b4 100644 --- a/src/map/pet.cpp +++ b/src/map/pet.cpp @@ -1315,7 +1315,7 @@ int pet_catch_process2(struct map_session_data* sd, int target_id) if(rnd()%10000 < pet_catch_rate) { achievement_update_objective(sd, AG_TAMING, 1, md->mob_id); - unit_remove_map(&md->bl,CLR_OUTSIGHT); + unit_remove_map(&md->bl,CLR_OUTSIGHT, false); status_kill(&md->bl); clif_pet_roulette(sd,1); @@ -2298,7 +2298,7 @@ void pet_evolution(struct map_session_data *sd, int16 pet_id) { clif_additem(sd, idx, 1, 0); // Remove the old pet from sight - unit_remove_map(&sd->pd->bl, CLR_OUTSIGHT); + unit_remove_map(&sd->pd->bl, CLR_OUTSIGHT, false); // Prepare the new pet sd->pd->pet.class_ = pet_id; diff --git a/src/map/status.cpp b/src/map/status.cpp index 9f4151199c..acafc01380 100644 --- a/src/map/status.cpp +++ b/src/map/status.cpp @@ -1157,7 +1157,7 @@ int status_damage(struct block_list *src,struct block_list *target,int64 dhp, in if(flag&4) // Delete from memory. (also invokes map removal code) unit_free(target,CLR_DEAD); else if(flag&2) // remove from map - unit_remove_map(target,CLR_DEAD); + unit_remove_map(target,CLR_DEAD, false); else { // Some death states that would normally be handled by unit_remove_map unit_stop_attack(target); unit_stop_walking(target,1); diff --git a/src/map/unit.cpp b/src/map/unit.cpp index 8d84d08f86..eb6c57374b 100644 --- a/src/map/unit.cpp +++ b/src/map/unit.cpp @@ -1318,7 +1318,7 @@ int unit_warp(struct block_list *bl,short m,short x,short y,clr_type type) if (bl->type == BL_PC) // Use pc_setpos return pc_setpos((TBL_PC*)bl, map_id2index(m), x, y, type); - if (!unit_remove_map(bl, type)) + if (!unit_remove_map(bl, type, false)) return 3; if (bl->m != m && battle_config.clear_unit_onwarp && @@ -3359,7 +3359,7 @@ int unit_free(struct block_list *bl, clr_type clrtype) map_freeblock_lock(); if( bl->prev ) // Players are supposed to logout with a "warp" effect. - unit_remove_map(bl, clrtype); + unit_remove_map(bl, clrtype, false); switch( bl->type ) { case BL_PC: { diff --git a/src/map/unit.hpp b/src/map/unit.hpp index bcf172f2f8..87a5c8b100 100644 --- a/src/map/unit.hpp +++ b/src/map/unit.hpp @@ -165,10 +165,8 @@ struct unit_data* unit_bl2ud(struct block_list *bl); void unit_remove_map_pc(struct map_session_data *sd, clr_type clrtype, bool changeZone = false); void unit_refresh(struct block_list *bl, bool walking = false); void unit_free_pc(struct map_session_data *sd); +#define unit_remove_map(bl,clrtype,changeZone) unit_remove_map_(bl,clrtype,__FILE__,__LINE__,__func__,changeZone) int unit_remove_map_(struct block_list *bl, clr_type clrtype, const char* file, int line, const char* func, bool changeZone = false); -static int unit_remove_map(block_list *bl, clr_type clrtype, bool changeZone = false) { - return unit_remove_map_(bl, clrtype, __FILE__, __LINE__, __func__, changeZone); -} int unit_free(struct block_list *bl, clr_type clrtype); int unit_changeviewsize(struct block_list *bl,short size); int unit_changetarget(struct block_list *bl,va_list ap);