Browse Source

Converted a bunch of packets to structs (#8295)

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Jittapan Pluemsumran 1 year ago
parent
commit
d445497870

+ 36 - 34
src/map/atcommand.cpp

@@ -1641,11 +1641,11 @@ ACMD_FUNC(baselevelup)
 		level*=-1;
 		level*=-1;
 	}
 	}
 	sd->status.base_exp = 0;
 	sd->status.base_exp = 0;
-	clif_updatestatus(sd, SP_STATUSPOINT);
-	clif_updatestatus(sd, SP_TRAITPOINT);
-	clif_updatestatus(sd, SP_BASELEVEL);
-	clif_updatestatus(sd, SP_BASEEXP);
-	clif_updatestatus(sd, SP_NEXTBASEEXP);
+	clif_updatestatus(*sd, SP_STATUSPOINT);
+	clif_updatestatus(*sd, SP_TRAITPOINT);
+	clif_updatestatus(*sd, SP_BASELEVEL);
+	clif_updatestatus(*sd, SP_BASEEXP);
+	clif_updatestatus(*sd, SP_NEXTBASEEXP);
 	pc_baselevelchanged(sd);
 	pc_baselevelchanged(sd);
 	if(sd->status.party_id)
 	if(sd->status.party_id)
 		party_send_levelup(sd);
 		party_send_levelup(sd);
@@ -1702,10 +1702,10 @@ ACMD_FUNC(joblevelup)
 		level *=-1;
 		level *=-1;
 	}
 	}
 	sd->status.job_exp = 0;
 	sd->status.job_exp = 0;
-	clif_updatestatus(sd, SP_JOBLEVEL);
-	clif_updatestatus(sd, SP_JOBEXP);
-	clif_updatestatus(sd, SP_NEXTJOBEXP);
-	clif_updatestatus(sd, SP_SKILLPOINT);
+	clif_updatestatus(*sd, SP_JOBLEVEL);
+	clif_updatestatus(*sd, SP_JOBEXP);
+	clif_updatestatus(*sd, SP_NEXTJOBEXP);
+	clif_updatestatus(*sd, SP_SKILLPOINT);
 	status_calc_pc(sd, SCO_FORCE);
 	status_calc_pc(sd, SCO_FORCE);
 
 
 	if( level > 0 && battle_config.atcommand_levelup_events )
 	if( level > 0 && battle_config.atcommand_levelup_events )
@@ -2417,7 +2417,7 @@ ACMD_FUNC(refine)
 			current_position = sd->inventory.u.items_inventory[i].equip;
 			current_position = sd->inventory.u.items_inventory[i].equip;
 			pc_unequipitem(sd, i, 3);
 			pc_unequipitem(sd, i, 3);
 			clif_refine(fd, 0, i, sd->inventory.u.items_inventory[i].refine);
 			clif_refine(fd, 0, i, sd->inventory.u.items_inventory[i].refine);
-			clif_delitem(sd, i, 1, 3);
+			clif_delitem( *sd, i, 1, 3 );
 			clif_additem(sd, i, 1, 0);
 			clif_additem(sd, i, 1, 0);
 			pc_equipitem(sd, i, current_position);
 			pc_equipitem(sd, i, current_position);
 			clif_misceffect(&sd->bl, 3);
 			clif_misceffect(&sd->bl, 3);
@@ -2496,7 +2496,7 @@ ACMD_FUNC(grade)
 			sd->inventory.u.items_inventory[i].enchantgrade = final_grade;
 			sd->inventory.u.items_inventory[i].enchantgrade = final_grade;
 			current_position = sd->inventory.u.items_inventory[i].equip;
 			current_position = sd->inventory.u.items_inventory[i].equip;
 			pc_unequipitem(sd, i, 3);
 			pc_unequipitem(sd, i, 3);
-			clif_delitem(sd, i, 1, 3);
+			clif_delitem( *sd, i, 1, 3 );
 			clif_additem(sd, i, 1, 0);
 			clif_additem(sd, i, 1, 0);
 			pc_equipitem(sd, i, current_position);
 			pc_equipitem(sd, i, current_position);
 			clif_misceffect(&sd->bl, 3);
 			clif_misceffect(&sd->bl, 3);
@@ -2690,7 +2690,7 @@ ACMD_FUNC(statuspoint)
 
 
 	if (new_status_point != sd->status.status_point) {
 	if (new_status_point != sd->status.status_point) {
 		sd->status.status_point = new_status_point;
 		sd->status.status_point = new_status_point;
-		clif_updatestatus(sd, SP_STATUSPOINT);
+		clif_updatestatus(*sd, SP_STATUSPOINT);
 		clif_displaymessage(fd, msg_txt(sd,174)); // Number of status points changed.
 		clif_displaymessage(fd, msg_txt(sd,174)); // Number of status points changed.
 	} else {
 	} else {
 		if (point < 0)
 		if (point < 0)
@@ -2738,7 +2738,7 @@ ACMD_FUNC(traitpoint)
 
 
 	if (new_trait_point != sd->status.trait_point) {
 	if (new_trait_point != sd->status.trait_point) {
 		sd->status.trait_point = new_trait_point;
 		sd->status.trait_point = new_trait_point;
-		clif_updatestatus(sd, SP_TRAITPOINT);
+		clif_updatestatus(*sd, SP_TRAITPOINT);
 		clif_displaymessage(fd, msg_txt(sd, 174)); // Number of status points changed.
 		clif_displaymessage(fd, msg_txt(sd, 174)); // Number of status points changed.
 	}
 	}
 	else {
 	else {
@@ -2788,7 +2788,7 @@ ACMD_FUNC(skillpoint)
 
 
 	if (new_skill_point != sd->status.skill_point) {
 	if (new_skill_point != sd->status.skill_point) {
 		sd->status.skill_point = new_skill_point;
 		sd->status.skill_point = new_skill_point;
-		clif_updatestatus(sd, SP_SKILLPOINT);
+		clif_updatestatus(*sd, SP_SKILLPOINT);
 		clif_displaymessage(fd, msg_txt(sd,175)); // Number of skill points changed.
 		clif_displaymessage(fd, msg_txt(sd,175)); // Number of skill points changed.
 	} else {
 	} else {
 		if (point < 0)
 		if (point < 0)
@@ -2884,12 +2884,12 @@ ACMD_FUNC(param)
 	if( new_value != status ){
 	if( new_value != status ){
 		if (stat < PARAM_POW) {
 		if (stat < PARAM_POW) {
 			pc_setstat( sd, SP_STR + stat - PARAM_STR, new_value );
 			pc_setstat( sd, SP_STR + stat - PARAM_STR, new_value );
-			clif_updatestatus(sd, SP_STR + stat);
-			clif_updatestatus(sd, SP_USTR + stat);
+			clif_updatestatus(*sd, static_cast<_sp>( SP_STR + stat ) );
+			clif_updatestatus(*sd, static_cast<_sp>( SP_USTR + stat ) );
 		} else {
 		} else {
 			pc_setstat( sd, SP_POW + stat - PARAM_POW, new_value );
 			pc_setstat( sd, SP_POW + stat - PARAM_POW, new_value );
-			clif_updatestatus(sd, SP_POW + stat - PARAM_POW);
-			clif_updatestatus(sd, SP_UPOW + stat - PARAM_POW);
+			clif_updatestatus(*sd, static_cast<_sp>( SP_POW + stat - PARAM_POW ) );
+			clif_updatestatus(*sd, static_cast<_sp>( SP_UPOW + stat - PARAM_POW ) );
 		}
 		}
 		status_calc_pc(sd, SCO_FORCE);
 		status_calc_pc(sd, SCO_FORCE);
 		clif_displaymessage(fd, msg_txt(sd,42)); // Stat changed.
 		clif_displaymessage(fd, msg_txt(sd,42)); // Stat changed.
@@ -2947,8 +2947,8 @@ ACMD_FUNC(stat_all)
 
 
 		if (new_value != status[i]) {
 		if (new_value != status[i]) {
 			pc_setstat( sd, SP_STR + i, new_value );
 			pc_setstat( sd, SP_STR + i, new_value );
-			clif_updatestatus(sd, SP_STR + i);
-			clif_updatestatus(sd, SP_USTR + i);
+			clif_updatestatus(*sd, static_cast<_sp>( SP_STR + i ) );
+			clif_updatestatus(*sd, static_cast<_sp>( SP_USTR + i ) );
 			count++;
 			count++;
 		}
 		}
 	}
 	}
@@ -3021,8 +3021,8 @@ ACMD_FUNC(trait_all) {
 
 
 		if (new_value != status[i]) {
 		if (new_value != status[i]) {
 			pc_setstat( sd, SP_POW + i - PARAM_POW, new_value );
 			pc_setstat( sd, SP_POW + i - PARAM_POW, new_value );
-			clif_updatestatus(sd, SP_POW + i - PARAM_POW);
-			clif_updatestatus(sd, SP_UPOW + i - PARAM_POW);
+			clif_updatestatus(*sd, static_cast<_sp>( SP_POW + i - PARAM_POW ) );
+			clif_updatestatus(*sd, static_cast<_sp>( SP_UPOW + i - PARAM_POW ) );
 			count++;
 			count++;
 		}
 		}
 	}
 	}
@@ -3657,7 +3657,7 @@ ACMD_FUNC(allskill)
 	nullpo_retr(-1, sd);
 	nullpo_retr(-1, sd);
 	pc_allskillup(sd); // all skills
 	pc_allskillup(sd); // all skills
 	sd->status.skill_point = 0; // 0 skill points
 	sd->status.skill_point = 0; // 0 skill points
-	clif_updatestatus(sd, SP_SKILLPOINT); // update
+	clif_updatestatus(*sd, SP_SKILLPOINT); // update
 	clif_displaymessage(fd, msg_txt(sd,76)); // All skills have been added to your skill tree.
 	clif_displaymessage(fd, msg_txt(sd,76)); // All skills have been added to your skill tree.
 
 
 	return 0;
 	return 0;
@@ -4295,7 +4295,7 @@ ACMD_FUNC(reload) {
 		iter = mapit_getallusers();
 		iter = mapit_getallusers();
 		for( pl_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); pl_sd = (TBL_PC*)mapit_next(iter) ){
 		for( pl_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); pl_sd = (TBL_PC*)mapit_next(iter) ){
 			pc_close_npc(pl_sd,1);
 			pc_close_npc(pl_sd,1);
-			clif_cutin(pl_sd, "", 255);
+			clif_cutin( *pl_sd, "", 255 );
 			pl_sd->state.block_action &= ~(PCBLOCK_ALL ^ PCBLOCK_IMMUNE);
 			pl_sd->state.block_action &= ~(PCBLOCK_ALL ^ PCBLOCK_IMMUNE);
 			bg_queue_leave(pl_sd);
 			bg_queue_leave(pl_sd);
 		}
 		}
@@ -6141,7 +6141,7 @@ ACMD_FUNC(clearcart)
 	}
 	}
 
 
 	clif_clearcart(fd);
 	clif_clearcart(fd);
-	clif_updatestatus(sd,SP_CARTINFO);
+	clif_updatestatus(*sd,SP_CARTINFO);
 
 
 	clif_displaymessage(fd, msg_txt(sd,1397)); // Your cart was cleaned.
 	clif_displaymessage(fd, msg_txt(sd,1397)); // Your cart was cleaned.
 	return 0;
 	return 0;
@@ -7947,7 +7947,7 @@ ACMD_FUNC(showmobs)
 			continue; // hide mobs waiting for respawn
 			continue; // hide mobs waiting for respawn
 
 
 		++number;
 		++number;
-		clif_viewpoint(sd, 1, 0, md->bl.x, md->bl.y, number, 0xFFFFFF);
+		clif_viewpoint( *sd, 1, 0, md->bl.x, md->bl.y, number, 0xFFFFFF );
 	}
 	}
 	mapit_free(it);
 	mapit_free(it);
 
 
@@ -8005,7 +8005,9 @@ ACMD_FUNC(homevolution)
 		clif_displaymessage(fd, msg_txt(sd,1255)); // Your homunculus doesn't evolve.
 		clif_displaymessage(fd, msg_txt(sd,1255)); // Your homunculus doesn't evolve.
 		return -1;
 		return -1;
 	}
 	}
-	clif_homskillinfoblock(sd);
+
+	clif_homskillinfoblock( *sd->hd );
+
 	return 0;
 	return 0;
 }
 }
 
 
@@ -8088,7 +8090,7 @@ ACMD_FUNC(homfriendly)
 	friendly = cap_value(friendly, 0, 1000);
 	friendly = cap_value(friendly, 0, 1000);
 
 
 	sd->hd->homunculus.intimacy = friendly * 100 ;
 	sd->hd->homunculus.intimacy = friendly * 100 ;
-	clif_send_homdata(sd,SP_INTIMATE,friendly);
+	clif_send_homdata( *sd->hd, SP_INTIMATE );
 	return 0;
 	return 0;
 }
 }
 
 
@@ -8115,7 +8117,7 @@ ACMD_FUNC(homhungry)
 	hungry = cap_value(hungry, 0, 100);
 	hungry = cap_value(hungry, 0, 100);
 
 
 	sd->hd->homunculus.hunger = hungry;
 	sd->hd->homunculus.hunger = hungry;
-	clif_send_homdata(sd,SP_HUNGRY,hungry);
+	clif_send_homdata( *sd->hd, SP_HUNGRY );
 	return 0;
 	return 0;
 }
 }
 
 
@@ -10594,8 +10596,8 @@ ACMD_FUNC(clonestat) {
 		clonestat_check(luk, PARAM_LUK);
 		clonestat_check(luk, PARAM_LUK);
 
 
 		for (i = PARAM_STR; i < PARAM_POW; i++) {
 		for (i = PARAM_STR; i < PARAM_POW; i++) {
-			clif_updatestatus(sd, SP_STR + i);
-			clif_updatestatus(sd, SP_USTR + i);
+			clif_updatestatus(*sd, static_cast<_sp>( SP_STR + i ) );
+			clif_updatestatus(*sd, static_cast<_sp>( SP_USTR + i ) );
 		}
 		}
 
 
 		if (sd->class_ & JOBL_FOURTH) {
 		if (sd->class_ & JOBL_FOURTH) {
@@ -10607,8 +10609,8 @@ ACMD_FUNC(clonestat) {
 			clonestat_check(crt, PARAM_CRT);
 			clonestat_check(crt, PARAM_CRT);
 
 
 			for (i = PARAM_POW; i < PARAM_MAX; i++) {
 			for (i = PARAM_POW; i < PARAM_MAX; i++) {
-				clif_updatestatus(sd, SP_POW + i - PARAM_POW);
-				clif_updatestatus(sd, SP_UPOW + i - PARAM_POW);
+				clif_updatestatus(*sd, static_cast<_sp>( SP_POW + i - PARAM_POW ) );
+				clif_updatestatus(*sd, static_cast<_sp>( SP_UPOW + i - PARAM_POW ) );
 			}
 			}
 
 
 		}
 		}
@@ -10954,7 +10956,7 @@ ACMD_FUNC(setcard)
 	log_pick_pc( sd, LOG_TYPE_COMMAND, -1, &sd->inventory.u.items_inventory[i] );
 	log_pick_pc( sd, LOG_TYPE_COMMAND, -1, &sd->inventory.u.items_inventory[i] );
 	sd->inventory.u.items_inventory[i].card[slot] = card_id;
 	sd->inventory.u.items_inventory[i].card[slot] = card_id;
 	log_pick_pc( sd, LOG_TYPE_COMMAND, 1, &sd->inventory.u.items_inventory[i] );
 	log_pick_pc( sd, LOG_TYPE_COMMAND, 1, &sd->inventory.u.items_inventory[i] );
-	clif_delitem(sd, i, 1, 0);
+	clif_delitem( *sd, i, 1, 0 );
 	clif_additem(sd, i, 1, 0);
 	clif_additem(sd, i, 1, 0);
 	pc_equipitem(sd, i, current_position);
 	pc_equipitem(sd, i, current_position);
 	return 0;
 	return 0;

+ 2 - 2
src/map/chrif.cpp

@@ -463,7 +463,7 @@ int chrif_changemapserverack(uint32 account_id, int login_id1, int login_id2, ui
 		clif_authfail_fd(node->fd, 0);
 		clif_authfail_fd(node->fd, 0);
 		chrif_char_offline(node->sd);
 		chrif_char_offline(node->sd);
 	} else
 	} else
-		clif_changemapserver(node->sd, map, x, y, ntohl(ip), ntohs(port));
+		clif_changemapserver( *node->sd, map, x, y, ntohl(ip), ntohs(port) );
 
 
 	//Player has been saved already, remove him from memory. [Skotlex]
 	//Player has been saved already, remove him from memory. [Skotlex]
 	chrif_auth_delete(account_id, char_id, ST_MAPCHANGE);
 	chrif_auth_delete(account_id, char_id, ST_MAPCHANGE);
@@ -994,7 +994,7 @@ int chrif_changedsex(int fd) {
 				}
 				}
 			}
 			}
 
 
-			clif_updatestatus(sd, SP_SKILLPOINT);
+			clif_updatestatus(*sd, SP_SKILLPOINT);
 			// Change to other gender version of the job if needed.
 			// Change to other gender version of the job if needed.
 			if (sd->status.sex)// Changed from female version of job.
 			if (sd->status.sex)// Changed from female version of job.
 				sd->status.class_ -= 1;
 				sd->status.class_ -= 1;

File diff suppressed because it is too large
+ 369 - 345
src/map/clif.cpp


+ 26 - 24
src/map/clif.hpp

@@ -49,6 +49,8 @@ struct s_laphine_upgrade;
 struct s_captcha_data;
 struct s_captcha_data;
 enum e_macro_detect_status : uint8;
 enum e_macro_detect_status : uint8;
 enum e_macro_report_status : uint8;
 enum e_macro_report_status : uint8;
+enum e_hom_state2 : uint8;
+enum _sp;
 
 
 enum e_PacketDBVersion { // packet DB
 enum e_PacketDBVersion { // packet DB
 	MIN_PACKET_DB  = 0x064,
 	MIN_PACKET_DB  = 0x064,
@@ -629,39 +631,39 @@ void clif_authrefuse(int fd, uint8 error_code);
 void clif_authfail_fd(int fd, int type);
 void clif_authfail_fd(int fd, int type);
 void clif_charselectok(int id, uint8 ok);
 void clif_charselectok(int id, uint8 ok);
 void clif_dropflooritem(struct flooritem_data* fitem, bool canShowEffect);
 void clif_dropflooritem(struct flooritem_data* fitem, bool canShowEffect);
-void clif_clearflooritem(struct flooritem_data *fitem, int fd);
+void clif_clearflooritem( flooritem_data& fitem, map_session_data* tsd = nullptr );
 
 
-void clif_clearunit_single(int id, clr_type type, int fd);
-void clif_clearunit_area(struct block_list* bl, clr_type type);
+void clif_clearunit_single( uint32 GID, clr_type type, map_session_data& tsd );
+void clif_clearunit_area( block_list& bl, clr_type type );
 void clif_clearunit_delayed(struct block_list* bl, clr_type type, t_tick tick);
 void clif_clearunit_delayed(struct block_list* bl, clr_type type, t_tick tick);
 int clif_spawn(struct block_list *bl, bool walking = false);	//area
 int clif_spawn(struct block_list *bl, bool walking = false);	//area
-void clif_walkok(map_session_data *sd);	// self
+void clif_walkok( map_session_data& sd );
 void clif_move(struct unit_data *ud); //area
 void clif_move(struct unit_data *ud); //area
-void clif_changemap(map_session_data *sd, short m, int x, int y);	//self
-void clif_changemapserver( map_session_data* sd, const char* map, int x, int y, uint32 ip, uint16 port );
+void clif_changemap( map_session_data& sd, short m, uint16 x, uint16 y );
+void clif_changemapserver( map_session_data& sd, const char* map, uint16 x, uint16 y, uint32 ip, uint16 port );
 void clif_blown(struct block_list *bl); // area
 void clif_blown(struct block_list *bl); // area
 void clif_slide(struct block_list *bl, int x, int y); // area
 void clif_slide(struct block_list *bl, int x, int y); // area
-void clif_fixpos(struct block_list *bl);	// area
-void clif_npcbuysell(map_session_data* sd, int id);	//self
+void clif_fixpos( block_list& bl );
+void clif_npcbuysell( map_session_data& sd, npc_data& nd );
 void clif_buylist(map_session_data *sd, struct npc_data *nd);	//self
 void clif_buylist(map_session_data *sd, struct npc_data *nd);	//self
-void clif_selllist(map_session_data *sd);	//self
+void clif_selllist( map_session_data& sd );
 void clif_npc_market_open(map_session_data *sd, struct npc_data *nd);
 void clif_npc_market_open(map_session_data *sd, struct npc_data *nd);
 void clif_parse_NPCMarketClosed(int fd, map_session_data *sd);
 void clif_parse_NPCMarketClosed(int fd, map_session_data *sd);
 void clif_parse_NPCMarketPurchase(int fd, map_session_data *sd);
 void clif_parse_NPCMarketPurchase(int fd, map_session_data *sd);
 void clif_scriptmes( map_session_data& sd, uint32 npcid, const char *mes );
 void clif_scriptmes( map_session_data& sd, uint32 npcid, const char *mes );
 void clif_scriptnext( map_session_data& sd, uint32 npcid );
 void clif_scriptnext( map_session_data& sd, uint32 npcid );
-void clif_scriptclose(map_session_data *sd, int npcid);	//self
+void clif_scriptclose( map_session_data& sd, uint32 npcid );
 void clif_scriptclear( map_session_data& sd, int npcid ); //self
 void clif_scriptclear( map_session_data& sd, int npcid ); //self
-void clif_scriptmenu(map_session_data* sd, int npcid, const char* mes);	//self
-void clif_scriptinput(map_session_data *sd, int npcid);	//self
-void clif_scriptinputstr(map_session_data *sd, int npcid);	// self
-void clif_cutin(map_session_data* sd, const char* image, int type);	//self
-void clif_viewpoint(map_session_data *sd, int npc_id, int type, int x, int y, int id, int color);	//self
+void clif_scriptmenu( map_session_data& sd, uint32 npcid, const char* mes );
+void clif_scriptinput( map_session_data& sd, uint32 npcid );
+void clif_scriptinputstr( map_session_data& sd, uint32 npcid );
+void clif_cutin( map_session_data& sd, const char* image, int type );
+void clif_viewpoint( map_session_data& sd, uint32 npc_id, int type, uint16 x, uint16 y, int id, uint32 color );
 void clif_additem(map_session_data *sd, int n, int amount, unsigned char fail); // self
 void clif_additem(map_session_data *sd, int n, int amount, unsigned char fail); // self
-void clif_dropitem(map_session_data *sd,int n,int amount);	//self
-void clif_delitem(map_session_data *sd,int n,int amount, short reason); //self
+void clif_dropitem( map_session_data& sd, int index, int amount );
+void clif_delitem( map_session_data& sd, int index, int amount, short reason );
 void clif_update_hp(map_session_data &sd);
 void clif_update_hp(map_session_data &sd);
-void clif_updatestatus(map_session_data *sd,int type);	//self
+void clif_updatestatus( map_session_data& sd, _sp type );
 void clif_changestatus(map_session_data* sd,int type,int val);	//area
 void clif_changestatus(map_session_data* sd,int type,int val);	//area
 int clif_damage(struct block_list* src, struct block_list* dst, t_tick tick, int sdelay, int ddelay, int64 sdamage, int div, enum e_damage_type type, int64 sdamage2, bool spdamage);	// area
 int clif_damage(struct block_list* src, struct block_list* dst, t_tick tick, int sdelay, int ddelay, int64 sdamage, int div, enum e_damage_type type, int64 sdamage2, bool spdamage);	// area
 void clif_takeitem(struct block_list* src, struct block_list* dst);
 void clif_takeitem(struct block_list* src, struct block_list* dst);
@@ -863,9 +865,9 @@ void clif_guild_allianceack(map_session_data *sd,int flag);
 void clif_guild_delalliance(map_session_data *sd,int guild_id,int flag);
 void clif_guild_delalliance(map_session_data *sd,int guild_id,int flag);
 void clif_guild_oppositionack(map_session_data *sd,int flag);
 void clif_guild_oppositionack(map_session_data *sd,int flag);
 void clif_guild_broken(map_session_data *sd,int flag);
 void clif_guild_broken(map_session_data *sd,int flag);
-void clif_guild_xy(map_session_data *sd);
-void clif_guild_xy_single(int fd, map_session_data *sd);
-void clif_guild_xy_remove(map_session_data *sd);
+void clif_guild_xy( map_session_data& sd );
+void clif_guild_xy_single( map_session_data& sd, map_session_data& tsd );
+void clif_guild_xy_remove( map_session_data& sd );
 void clif_guild_castle_list(map_session_data& sd);
 void clif_guild_castle_list(map_session_data& sd);
 void clif_guild_castle_info(map_session_data& sd, std::shared_ptr<guild_castle> castle );
 void clif_guild_castle_info(map_session_data& sd, std::shared_ptr<guild_castle> castle );
 void clif_guild_castle_teleport_res(map_session_data& sd, enum e_siege_teleport_result result);
 void clif_guild_castle_teleport_res(map_session_data& sd, enum e_siege_teleport_result result);
@@ -958,10 +960,10 @@ void clif_feel_hate_reset(map_session_data *sd);
 
 
 // [blackhole89]
 // [blackhole89]
 void clif_hominfo(map_session_data *sd, struct homun_data *hd, int flag);
 void clif_hominfo(map_session_data *sd, struct homun_data *hd, int flag);
-int clif_homskillinfoblock(map_session_data *sd);
-void clif_homskillup(map_session_data *sd, uint16 skill_id);	//[orn]
+void clif_homskillinfoblock( homun_data& hd );
+void clif_homskillup( homun_data& hd, uint16 skill_id );
 void clif_hom_food(map_session_data *sd,int foodid,int fail);	//[orn]
 void clif_hom_food(map_session_data *sd,int foodid,int fail);	//[orn]
-void clif_send_homdata(map_session_data *sd, int state, int param);	//[orn]
+void clif_send_homdata( homun_data& hd, e_hom_state2 state );
 
 
 void clif_configuration( map_session_data* sd, enum e_config_type type, bool enabled );
 void clif_configuration( map_session_data* sd, enum e_config_type type, bool enabled );
 void clif_viewequip_ack(map_session_data* sd, map_session_data* tsd);
 void clif_viewequip_ack(map_session_data* sd, map_session_data* tsd);

+ 4 - 56
src/map/clif_packetdb.hpp

@@ -22,12 +22,9 @@
 	packet(0x0070,6);
 	packet(0x0070,6);
 	packet(0x0071,28);
 	packet(0x0071,28);
 	parseable_packet(0x0072,19,clif_parse_WantToConnection,2,6,10,14,18);
 	parseable_packet(0x0072,19,clif_parse_WantToConnection,2,6,10,14,18);
-	packet(0x0073,11);
-	packet(0x0074,3);
 	packet(0x0075,-1);
 	packet(0x0075,-1);
 	packet(0x0076,9);
 	packet(0x0076,9);
 	packet(0x0077,5);
 	packet(0x0077,5);
-	packet(0x0078,54);
 	packet(0x0079,53);
 	packet(0x0079,53);
 	packet(0x007a,58);
 	packet(0x007a,58);
 	packet(0x007b,60);
 	packet(0x007b,60);
@@ -35,15 +32,10 @@
 	parseable_packet(0x007d,2,clif_parse_LoadEndAck,0);
 	parseable_packet(0x007d,2,clif_parse_LoadEndAck,0);
 	parseable_packet(0x007e,6,clif_parse_TickSend,2);
 	parseable_packet(0x007e,6,clif_parse_TickSend,2);
 	packet(0x007f,6);
 	packet(0x007f,6);
-	packet(0x0080,7);
-	packet(0x0081,3);
 	packet(0x0082,2);
 	packet(0x0082,2);
 	packet(0x0083,2);
 	packet(0x0083,2);
 	packet(0x0084,2);
 	packet(0x0084,2);
 	parseable_packet(0x0085,5,clif_parse_WalkToXY,2);
 	parseable_packet(0x0085,5,clif_parse_WalkToXY,2);
-	packet(0x0086,16);
-	packet(0x0087,12);
-	packet(0x0088,10);
 	parseable_packet(0x0089,7,clif_parse_ActionRequest,2,6);
 	parseable_packet(0x0089,7,clif_parse_ActionRequest,2,6);
 	packet(0x008a,29);
 	packet(0x008a,29);
 	packet(0x008b,2);
 	packet(0x008b,2);
@@ -52,8 +44,6 @@
 	packet(0x008e,-1);
 	packet(0x008e,-1);
 	//packet(0x008f,-1);
 	//packet(0x008f,-1);
 	parseable_packet(0x0090,7,clif_parse_NpcClicked,2,6);
 	parseable_packet(0x0090,7,clif_parse_NpcClicked,2,6);
-	packet(0x0091,22);
-	packet(0x0092,28);
 	packet(0x0093,2);
 	packet(0x0093,2);
 	parseable_packet(0x0094,6,clif_parse_GetCharNameRequest,2);
 	parseable_packet(0x0094,6,clif_parse_GetCharNameRequest,2);
 	parseable_packet(0x0096,-1,clif_parse_WisMessage,2,4,28);
 	parseable_packet(0x0096,-1,clif_parse_WisMessage,2,4,28);
@@ -65,7 +55,6 @@
 	packet( HEADER_ZC_ITEM_ENTRY, sizeof( struct PACKET_ZC_ITEM_ENTRY ) );
 	packet( HEADER_ZC_ITEM_ENTRY, sizeof( struct PACKET_ZC_ITEM_ENTRY ) );
 	packet(0x009e,17);
 	packet(0x009e,17);
 	parseable_packet(0x009f,6,clif_parse_TakeItem,2);
 	parseable_packet(0x009f,6,clif_parse_TakeItem,2);
-	packet(0x00a1,6);
 	parseable_packet(0x00a2,6,clif_parse_DropItem,2,4);
 	parseable_packet(0x00a2,6,clif_parse_DropItem,2,4);
 	packet( inventorylistnormalType, -1 );
 	packet( inventorylistnormalType, -1 );
 	packet( inventorylistequipType, -1 );
 	packet( inventorylistequipType, -1 );
@@ -78,29 +67,20 @@
 	packet(0x00ac,7);
 	packet(0x00ac,7);
 	//packet(0x00ad,-1);
 	//packet(0x00ad,-1);
 	packet(0x00ae,-1);
 	packet(0x00ae,-1);
-	packet(0x00af,6);
-	packet(0x00b0,8);
-	packet(0x00b1,8);
 	parseable_packet(0x00b2,3,clif_parse_Restart,2);
 	parseable_packet(0x00b2,3,clif_parse_Restart,2);
-	packet(0x00b3,3);
-	packet(0x00b6,6);
-	packet(0x00b7,-1);
 	parseable_packet(0x00b8,7,clif_parse_NpcSelectMenu,2,6);
 	parseable_packet(0x00b8,7,clif_parse_NpcSelectMenu,2,6);
 	parseable_packet(0x00b9,6,clif_parse_NpcNextClicked,2);
 	parseable_packet(0x00b9,6,clif_parse_NpcNextClicked,2);
 	packet(0x00ba,2);
 	packet(0x00ba,2);
 	parseable_packet(0x00bb,5,clif_parse_StatusUp,2,4);
 	parseable_packet(0x00bb,5,clif_parse_StatusUp,2,4);
 	packet(0x00bc,6);
 	packet(0x00bc,6);
 	packet(0x00bd,44);
 	packet(0x00bd,44);
-	packet(0x00be,5);
 	parseable_packet(0x00bf,3,clif_parse_Emotion,2);
 	parseable_packet(0x00bf,3,clif_parse_Emotion,2);
 	packet(0x00c0,7);
 	packet(0x00c0,7);
 	parseable_packet(0x00c1,2,clif_parse_HowManyConnections,0);
 	parseable_packet(0x00c1,2,clif_parse_HowManyConnections,0);
 	packet(0x00c2,6);
 	packet(0x00c2,6);
 	packet(0x00c3,8);
 	packet(0x00c3,8);
-	packet(0x00c4,6);
 	parseable_packet(0x00c5,7,clif_parse_NpcBuySellSelected,2,6);
 	parseable_packet(0x00c5,7,clif_parse_NpcBuySellSelected,2,6);
 	packet(0x00c6,-1);
 	packet(0x00c6,-1);
-	packet(0x00c7,-1);
 	parseable_packet(0x00c8,-1,clif_parse_NpcBuyListSend,2,4);
 	parseable_packet(0x00c8,-1,clif_parse_NpcBuyListSend,2,4);
 	parseable_packet(HEADER_CZ_PC_SELL_ITEMLIST,-1,clif_parse_NpcSellListSend,2,4);
 	parseable_packet(HEADER_CZ_PC_SELL_ITEMLIST,-1,clif_parse_NpcSellListSend,2,4);
 	packet(0x00ca,3);
 	packet(0x00ca,3);
@@ -183,7 +163,6 @@
 	packet(0x011e,3);
 	packet(0x011e,3);
 	packet(0x011f,16);
 	packet(0x011f,16);
 	packet(0x0120,6);
 	packet(0x0120,6);
-	packet(0x0121,14);
 	packet( cartlistequipType, -1 );
 	packet( cartlistequipType, -1 );
 	packet( cartlistnormalType, -1 );
 	packet( cartlistnormalType, -1 );
 	packet(0x0125,8);
 	packet(0x0125,8);
@@ -192,7 +171,6 @@
 	parseable_packet(0x0128,8,clif_parse_MoveFromKafraToCart,2,4);
 	parseable_packet(0x0128,8,clif_parse_MoveFromKafraToCart,2,4);
 	parseable_packet(0x0129,8,clif_parse_MoveToKafraFromCart,2,4);
 	parseable_packet(0x0129,8,clif_parse_MoveToKafraFromCart,2,4);
 	parseable_packet(0x012a,2,clif_parse_RemoveOption,0);
 	parseable_packet(0x012a,2,clif_parse_RemoveOption,0);
-	packet(0x012b,2);
 	packet(0x012c,3);
 	packet(0x012c,3);
 	packet(0x012d,4);
 	packet(0x012d,4);
 	parseable_packet(0x012e,2,clif_parse_CloseVending,0);
 	parseable_packet(0x012e,2,clif_parse_CloseVending,0);
@@ -204,17 +182,13 @@
 	packet(0x0137,6);
 	packet(0x0137,6);
 	packet(0x0138,3);
 	packet(0x0138,3);
 	packet(0x0139,16);
 	packet(0x0139,16);
-	packet(0x013a,4);
 	packet(0x013b,4);
 	packet(0x013b,4);
 	packet(0x013c,4);
 	packet(0x013c,4);
 	packet(0x013d,6);
 	packet(0x013d,6);
 	packet(0x013e,24);
 	packet(0x013e,24);
 	parseable_packet(0x013f,26,clif_parse_GM_Item_Monster,2);
 	parseable_packet(0x013f,26,clif_parse_GM_Item_Monster,2);
 	parseable_packet(0x0140,22,clif_parse_MapMove,2,18,20);
 	parseable_packet(0x0140,22,clif_parse_MapMove,2,18,20);
-	packet(0x0141,14);
-	packet(0x0142,6);
 	parseable_packet(0x0143,10,clif_parse_NpcAmountInput,2,6);
 	parseable_packet(0x0143,10,clif_parse_NpcAmountInput,2,6);
-	packet(0x0144,23);
 	packet(0x0145,19);
 	packet(0x0145,19);
 	parseable_packet(0x0146,6,clif_parse_NpcCloseClicked,2);
 	parseable_packet(0x0146,6,clif_parse_NpcCloseClicked,2);
 	packet(0x0147,39);
 	packet(0x0147,39);
@@ -325,7 +299,6 @@
 	packet(0x01b0,11);
 	packet(0x01b0,11);
 	packet(0x01b1,7);
 	packet(0x01b1,7);
 	parseable_packet(0x01b2,-1,clif_parse_OpenVending,2,4,84,85);
 	parseable_packet(0x01b2,-1,clif_parse_OpenVending,2,4,84,85);
-	packet(0x01b3,67);
 	packet(0x01b4,12);
 	packet(0x01b4,12);
 	packet(0x01b5,18);
 	packet(0x01b5,18);
 	packet(0x01b6,114);
 	packet(0x01b6,114);
@@ -353,7 +326,6 @@
 	packet(0x01d0,8);
 	packet(0x01d0,8);
 	packet(0x01d1,14);
 	packet(0x01d1,14);
 	packet(0x01d2,10);
 	packet(0x01d2,10);
-	packet(0x01d4,6);
 	parseable_packet(0x01d5,-1,clif_parse_NpcStringInput,2,4,8);
 	parseable_packet(0x01d5,-1,clif_parse_NpcStringInput,2,4,8);
 	packet(0x01d6,4);
 	packet(0x01d6,4);
 	packet(0x01d7,11);
 	packet(0x01d7,11);
@@ -375,7 +347,6 @@
 	parseable_packet(0x01e7,2,clif_parse_NoviceDoriDori,0);
 	parseable_packet(0x01e7,2,clif_parse_NoviceDoriDori,0);
 	parseable_packet(0x01e8,28,clif_parse_CreateParty2,2,26,27);
 	parseable_packet(0x01e8,28,clif_parse_CreateParty2,2,26,27);
 	packet(0x01ea,6);
 	packet(0x01ea,6);
-	packet(0x01eb,10);
 	packet(0x01ec,26);
 	packet(0x01ec,26);
 	parseable_packet(0x01ed,2,clif_parse_NoviceExplosionSpirits,0);
 	parseable_packet(0x01ed,2,clif_parse_NoviceExplosionSpirits,0);
 	packet(0x01f0,-1);
 	packet(0x01f0,-1);
@@ -693,13 +664,11 @@
 // 2005-05-23aSakexe
 // 2005-05-23aSakexe
 #if PACKETVER >= 20050523
 #if PACKETVER >= 20050523
 	packet(0x022e,69);
 	packet(0x022e,69);
-	packet(0x0230,12);
 #endif
 #endif
 
 
 // 2005-05-30aSakexe
 // 2005-05-30aSakexe
 #if PACKETVER >= 20050530
 #if PACKETVER >= 20050530
 	packet(0x022e,71);
 	packet(0x022e,71);
-	packet(0x0235,-1);
 	packet(0x0236,10);
 	packet(0x0236,10);
 	parseable_packet(0x0237,2,clif_parse_RankingPk,0);
 	parseable_packet(0x0237,2,clif_parse_RankingPk,0);
 	packet(0x0238,282);
 	packet(0x0238,282);
@@ -708,7 +677,6 @@
 // 2005-05-31aSakexe
 // 2005-05-31aSakexe
 #if PACKETVER >= 20050531
 #if PACKETVER >= 20050531
 	packet(0x0216,2);
 	packet(0x0216,2);
-	packet(0x0239,11);
 #endif
 #endif
 
 
 // 2005-06-08aSakexe
 // 2005-06-08aSakexe
@@ -1096,7 +1064,6 @@
 
 
 // 2007-11-06aSakexe
 // 2007-11-06aSakexe
 #if PACKETVER >= 20071106
 #if PACKETVER >= 20071106
-	packet(0x0078,55);
 	packet(0x007c,42);
 	packet(0x007c,42);
 	packet(0x022c,65);
 	packet(0x022c,65);
 	packet(0x029b,80);
 	packet(0x029b,80);
@@ -1125,7 +1092,6 @@
 // 2008-01-02aSakexe
 // 2008-01-02aSakexe
 #if PACKETVER >= 20080102
 #if PACKETVER >= 20080102
 	parseable_packet(0x01df,6,clif_parse_GMReqAccountName,2);
 	parseable_packet(0x01df,6,clif_parse_GMReqAccountName,2);
-	packet(0x02eb,13);
 	packet(0x02ec,67);
 	packet(0x02ec,67);
 	packet(0x02ed,59);
 	packet(0x02ed,59);
 	packet(0x02ee,60);
 	packet(0x02ee,60);
@@ -1327,7 +1293,6 @@
 // 2008-11-26aSakexe
 // 2008-11-26aSakexe
 #if PACKETVER >= 20081126
 #if PACKETVER >= 20081126
 	packet(0x01a2,37);
 	packet(0x01a2,37);
-	packet(0x0440,10);
 	packet(0x0441,4);
 	packet(0x0441,4);
 #endif
 #endif
 
 
@@ -1408,7 +1373,6 @@
 // 2008-12-17aRagexeRE
 // 2008-12-17aRagexeRE
 #if PACKETVER >= 20081217
 #if PACKETVER >= 20081217
 	packet(0x01a2,37);
 	packet(0x01a2,37);
-	//packet(0x0440,10);
 	//packet(0x0441,4);
 	//packet(0x0441,4);
 	//packet(0x0443,8);
 	//packet(0x0443,8);
 #endif
 #endif
@@ -1559,11 +1523,6 @@
 	packet(0x07f9,-1);
 	packet(0x07f9,-1);
 #endif
 #endif
 
 
-// 2009-11-17aRagexeRE
-#if PACKETVER >= 20091117
-	packet(0x07fa,8);
-#endif
-
 // 2009-11-24aRagexeRE
 // 2009-11-24aRagexeRE
 #if PACKETVER >= 20091124
 #if PACKETVER >= 20091124
 	packet(0x07fb,25);
 	packet(0x07fb,25);
@@ -1801,7 +1760,6 @@
 	parseable_packet(0x08ab,-1,clif_parse_SearchStoreInfo,2,4,5,9,13,14,15);
 	parseable_packet(0x08ab,-1,clif_parse_SearchStoreInfo,2,4,5,9,13,14,15);
 	parseable_packet(0x088b,2,clif_parse_SearchStoreInfoNextPage,0);
 	parseable_packet(0x088b,2,clif_parse_SearchStoreInfoNextPage,0);
 	parseable_packet(0x08a2,sizeof(struct PACKET_CZ_SSILIST_ITEM_CLICK),clif_parse_SearchStoreInfoListItemClick,2,6,10);
 	parseable_packet(0x08a2,sizeof(struct PACKET_CZ_SSILIST_ITEM_CLICK),clif_parse_SearchStoreInfoListItemClick,2,6,10);
-	packet(0x08cf,10); //Amulet spirits
 #endif
 #endif
 
 
 // 2012-03-07fRagexeRE
 // 2012-03-07fRagexeRE
@@ -1915,7 +1873,7 @@
 	parseable_packet(0x0974,2,clif_parse_merge_item_cancel,0); // CZ_CANCEL_MERGE_ITEM
 	parseable_packet(0x0974,2,clif_parse_merge_item_cancel,0); // CZ_CANCEL_MERGE_ITEM
 	parseable_packet(0x0844,2,clif_parse_cashshop_open_request,0);
 	parseable_packet(0x0844,2,clif_parse_cashshop_open_request,0);
 	packet(0x0849,16); //clif_cashshop_result
 	packet(0x0849,16); //clif_cashshop_result
-	parseable_packet(0x0848,-1,clif_parse_cashshop_buy,2,6,4,10);
+	parseable_packet(HEADER_CZ_SE_PC_BUY_CASHITEM_LIST,-1,clif_parse_cashshop_buy,0);
 	parseable_packet(0x084a,2,clif_parse_cashshop_close,0);
 	parseable_packet(0x084a,2,clif_parse_cashshop_close,0);
 	parseable_packet(0x08c9,2,clif_parse_cashshop_list_request,0);
 	parseable_packet(0x08c9,2,clif_parse_cashshop_list_request,0);
 #endif
 #endif
@@ -1981,7 +1939,6 @@
 	parseable_packet(0x044A,6,clif_parse_client_version,2);
 	parseable_packet(0x044A,6,clif_parse_client_version,2);
 	parseable_packet(0x0844,2,clif_parse_cashshop_open_request,0);
 	parseable_packet(0x0844,2,clif_parse_cashshop_open_request,0);
 	packet(0x0849,16); //clif_cashshop_result
 	packet(0x0849,16); //clif_cashshop_result
-	parseable_packet(0x0848,-1,clif_parse_cashshop_buy,2,6,4,10);
 	parseable_packet(0x084a,2,clif_parse_cashshop_close,0);
 	parseable_packet(0x084a,2,clif_parse_cashshop_close,0);
 	packet(0x084b,19); //fallitem4
 	packet(0x084b,19); //fallitem4
 	parseable_packet(0x085a,90,clif_parse_UseSkillToPosMoreInfo,2,4,6,8,10);
 	parseable_packet(0x085a,90,clif_parse_UseSkillToPosMoreInfo,2,4,6,8,10);
@@ -1999,7 +1956,6 @@
 	parseable_packet(0x089b,10,clif_parse_UseSkillToId,2,4,6);
 	parseable_packet(0x089b,10,clif_parse_UseSkillToId,2,4,6);
 	parseable_packet(0x08ac,8,clif_parse_MoveToKafra,2,4);
 	parseable_packet(0x08ac,8,clif_parse_MoveToKafra,2,4);
 	parseable_packet(0x08c9,2,clif_parse_cashshop_list_request,0);
 	parseable_packet(0x08c9,2,clif_parse_cashshop_list_request,0);
-	packet(0x08cf,10); //Amulet spirits
 	packet(0x08d2,10);
 	packet(0x08d2,10);
 	parseable_packet(0x0922,-1,clif_parse_ReqTradeBuyingStore,2,4,8,12);
 	parseable_packet(0x0922,-1,clif_parse_ReqTradeBuyingStore,2,4,8,12);
 	//parseable_packet(0x092e,2,clif_parse_SearchStoreInfoNextPage,0);
 	//parseable_packet(0x092e,2,clif_parse_SearchStoreInfoNextPage,0);
@@ -2031,7 +1987,6 @@
 
 
 // 2013-07-10Ragexe
 // 2013-07-10Ragexe
 #if PACKETVER >= 20130710
 #if PACKETVER >= 20130710
-	parseable_packet(0x0848,-1,clif_parse_cashshop_buy,2,6,4,10);
 	packet(0x097D,288); //ZC_ACK_RANKING
 	packet(0x097D,288); //ZC_ACK_RANKING
 	packet(0x097E,12); //ZC_UPDATE_RANKING_POINT
 	packet(0x097E,12); //ZC_UPDATE_RANKING_POINT
 #endif
 #endif
@@ -2140,7 +2095,6 @@
 	packet(0x006d,149);
 	packet(0x006d,149);
 	packet(0x08e3,149);
 	packet(0x08e3,149);
 	// New Packet
 	// New Packet
-	packet(0x0A18,14); // ZC_ACCEPT_ENTER3
 	packet(0x0A27,8);
 	packet(0x0A27,8);
 	packet(0x0A28,3); // ZC_ACK_OPENSTORE2
 	packet(0x0A28,3); // ZC_ACK_OPENSTORE2
 	packet(0x09FD,-1); // ZC_NOTIFY_MOVEENTRY11
 	packet(0x09FD,-1); // ZC_NOTIFY_MOVEENTRY11
@@ -2278,11 +2232,6 @@
 	packet(0x0A9D,4);
 	packet(0x0A9D,4);
 #endif
 #endif
 
 
-// 2017-03-15cRagexeRE
-#if PACKETVER >= 20170315
-	packet(0xac7,156);
-#endif
-
 // 2017-04-19bRagexeRE
 // 2017-04-19bRagexeRE
 #if PACKETVER >= 20170419
 #if PACKETVER >= 20170419
 	parseable_packet(0x0AC0,26,clif_parse_Mail_refreshinbox,2,10);
 	parseable_packet(0x0AC0,26,clif_parse_Mail_refreshinbox,2,10);
@@ -2304,7 +2253,6 @@
 
 
 // 2017-08-30bRagexeRE
 // 2017-08-30bRagexeRE
 #if PACKETVER >= 20170830
 #if PACKETVER >= 20170830
-	packet(0x0ACB,12);
 	packet(0x0ACC,18);
 	packet(0x0ACC,18);
 #endif
 #endif
 
 
@@ -2379,7 +2327,7 @@
 #endif
 #endif
 
 
 #if PACKETVER >= 20190724
 #if PACKETVER >= 20190724
-	parseable_packet(HEADER_CZ_GUILD_EMBLEM_CHANGE2, sizeof( PACKET_CZ_GUILD_EMBLEM_CHANGE2 ), clif_parse_GuildChangeEmblem2, 0 );
+	parseable_packet(HEADER_CZ_REQ_ADD_NEW_EMBLEM, sizeof( PACKET_CZ_REQ_ADD_NEW_EMBLEM ), clif_parse_GuildChangeEmblem2, 0 );
 	packet(HEADER_ZC_CHANGE_GUILD, sizeof(PACKET_ZC_CHANGE_GUILD));
 	packet(HEADER_ZC_CHANGE_GUILD, sizeof(PACKET_ZC_CHANGE_GUILD));
 #endif
 #endif
 
 
@@ -2412,7 +2360,7 @@
 #endif
 #endif
 
 
 #if PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200724
 #if PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200724
-	parseable_packet( HEADER_CZ_UNCONFIRMED_TSTATUS_UP, sizeof( PACKET_CZ_UNCONFIRMED_TSTATUS_UP ), clif_parse_traitstatus_up, 0 );
+	parseable_packet( HEADER_CZ_ADVANCED_STATUS_CHANGE, sizeof( PACKET_CZ_ADVANCED_STATUS_CHANGE ), clif_parse_traitstatus_up, 0 );
 	parseable_packet( HEADER_CZ_GRADE_ENCHANT_SELECT_EQUIPMENT, sizeof( struct PACKET_CZ_GRADE_ENCHANT_SELECT_EQUIPMENT ), clif_parse_enchantgrade_add, 0 );
 	parseable_packet( HEADER_CZ_GRADE_ENCHANT_SELECT_EQUIPMENT, sizeof( struct PACKET_CZ_GRADE_ENCHANT_SELECT_EQUIPMENT ), clif_parse_enchantgrade_add, 0 );
 	parseable_packet( HEADER_CZ_GRADE_ENCHANT_REQUEST, sizeof( struct PACKET_CZ_GRADE_ENCHANT_REQUEST ), clif_parse_enchantgrade_start, 0 );
 	parseable_packet( HEADER_CZ_GRADE_ENCHANT_REQUEST, sizeof( struct PACKET_CZ_GRADE_ENCHANT_REQUEST ), clif_parse_enchantgrade_start, 0 );
 	parseable_packet( HEADER_CZ_GRADE_ENCHANT_CLOSE_UI, sizeof( struct PACKET_CZ_GRADE_ENCHANT_CLOSE_UI ), clif_parse_enchantgrade_close, 0 );
 	parseable_packet( HEADER_CZ_GRADE_ENCHANT_CLOSE_UI, sizeof( struct PACKET_CZ_GRADE_ENCHANT_CLOSE_UI ), clif_parse_enchantgrade_close, 0 );
@@ -2429,7 +2377,7 @@
 
 
 #if PACKETVER_RE_NUM >= 20211103 || PACKETVER_ZERO_NUM >= 20210818 || PACKETVER_MAIN_NUM >= 20220330
 #if PACKETVER_RE_NUM >= 20211103 || PACKETVER_ZERO_NUM >= 20210818 || PACKETVER_MAIN_NUM >= 20220330
 	parseable_packet( HEADER_CZ_CHECKNAME2, sizeof( struct PACKET_CZ_CHECKNAME2 ), clif_parse_Mail_Receiver_Check, 0 );
 	parseable_packet( HEADER_CZ_CHECKNAME2, sizeof( struct PACKET_CZ_CHECKNAME2 ), clif_parse_Mail_Receiver_Check, 0 );
-	parseable_packet( HEADER_CZ_UNCONFIRMED_RODEX_RETURN, sizeof( struct PACKET_CZ_UNCONFIRMED_RODEX_RETURN ), clif_parse_Mail_return, 0 );
+	parseable_packet( HEADER_CZ_RODEX_RETURN, sizeof( struct PACKET_CZ_RODEX_RETURN ), clif_parse_Mail_return, 0 );
 	parseable_packet( HEADER_CZ_REQ_TAKEOFF_EQUIP_ALL, sizeof( struct PACKET_CZ_REQ_TAKEOFF_EQUIP_ALL ), clif_parse_unequipall, 0 );
 	parseable_packet( HEADER_CZ_REQ_TAKEOFF_EQUIP_ALL, sizeof( struct PACKET_CZ_REQ_TAKEOFF_EQUIP_ALL ), clif_parse_unequipall, 0 );
 	parseable_packet( 0xb93, 12, clif_parse_dull, 0 );
 	parseable_packet( 0xb93, 12, clif_parse_dull, 0 );
 #endif
 #endif

+ 4 - 4
src/map/guild.cpp

@@ -664,7 +664,7 @@ int guild_send_xy_timer_sub(const struct mmo_guild& g) {
 	for (int i = 0; i < g.max_member; i++) {
 	for (int i = 0; i < g.max_member; i++) {
 		map_session_data* sd = g.member[i].sd;
 		map_session_data* sd = g.member[i].sd;
 		if( sd != nullptr && sd->fd && (sd->guild_x != sd->bl.x || sd->guild_y != sd->bl.y) && !sd->bg_id ) {
 		if( sd != nullptr && sd->fd && (sd->guild_x != sd->bl.x || sd->guild_y != sd->bl.y) && !sd->bg_id ) {
-			clif_guild_xy(sd);
+			clif_guild_xy( *sd );
 			sd->guild_x = sd->bl.x;
 			sd->guild_x = sd->bl.x;
 			sd->guild_y = sd->bl.y;
 			sd->guild_y = sd->bl.y;
 		}
 		}
@@ -683,7 +683,7 @@ static TIMER_FUNC(guild_send_xy_timer){
 
 
 int guild_send_dot_remove(map_session_data *sd) {
 int guild_send_dot_remove(map_session_data *sd) {
 	if (sd->status.guild_id)
 	if (sd->status.guild_id)
-		clif_guild_xy_remove(sd);
+		clif_guild_xy_remove( *sd );
 	return 0;
 	return 0;
 }
 }
 //------------------------------------------------------------------------
 //------------------------------------------------------------------------
@@ -1360,8 +1360,8 @@ int guild_recv_memberinfoshort(int guild_id,uint32 account_id,uint32 char_id,int
 			g->guild.member[i].sd->bl.m != g->guild.member[idx].sd->bl.m)
 			g->guild.member[i].sd->bl.m != g->guild.member[idx].sd->bl.m)
 			continue;
 			continue;
 
 
-		clif_guild_xy_single(g->guild.member[idx].sd->fd, g->guild.member[i].sd);
-		clif_guild_xy_single(g->guild.member[i].sd->fd, g->guild.member[idx].sd);
+		clif_guild_xy_single( *g->guild.member[idx].sd, *g->guild.member[i].sd );
+		clif_guild_xy_single( *g->guild.member[i].sd, *g->guild.member[idx].sd );
 	}
 	}
 
 
 	return 0;
 	return 0;

+ 21 - 17
src/map/homunculus.cpp

@@ -394,8 +394,7 @@ void hom_calc_skilltree(homun_data *hd) {
 
 
 	hom_calc_skilltree_sub(*hd, homun_current->skill_tree);
 	hom_calc_skilltree_sub(*hd, homun_current->skill_tree);
 
 
-	if (hd->master)
-		clif_homskillinfoblock(hd->master);
+	clif_homskillinfoblock( *hd );
 }
 }
 
 
 /**
 /**
@@ -484,11 +483,14 @@ void hom_skillup(struct homun_data *hd, uint16 skill_id)
 		hd->homunculus.hskill[idx].lv++;
 		hd->homunculus.hskill[idx].lv++;
 		hd->homunculus.skillpts-- ;
 		hd->homunculus.skillpts-- ;
 		status_calc_homunculus(hd, SCO_NONE);
 		status_calc_homunculus(hd, SCO_NONE);
+
+		clif_homskillup( *hd, skill_id );
+
 		if (hd->master) {
 		if (hd->master) {
-			clif_homskillup(hd->master, skill_id);
 			clif_hominfo(hd->master,hd,0);
 			clif_hominfo(hd->master,hd,0);
-			clif_homskillinfoblock(hd->master);
 		}
 		}
+
+		clif_homskillinfoblock( *hd );
 	}
 	}
 }
 }
 
 
@@ -570,7 +572,7 @@ int hom_levelup(struct homun_data *hd)
 	// Needed to update skill list for mutated homunculus so unlocked skills will appear when the needed level is reached.
 	// Needed to update skill list for mutated homunculus so unlocked skills will appear when the needed level is reached.
 	status_calc_homunculus(hd,SCO_NONE);
 	status_calc_homunculus(hd,SCO_NONE);
 	clif_hominfo(hd->master,hd,0);
 	clif_hominfo(hd->master,hd,0);
-	clif_homskillinfoblock(hd->master);
+	clif_homskillinfoblock( *hd );
 
 
 	if ( hd->master && battle_config.homunculus_show_growth ) {
 	if ( hd->master && battle_config.homunculus_show_growth ) {
 		char output[256] ;
 		char output[256] ;
@@ -905,8 +907,8 @@ int hom_food(map_session_data *sd, struct homun_data *hd)
 	log_feeding(sd, LOG_FEED_HOMUNCULUS, foodID);
 	log_feeding(sd, LOG_FEED_HOMUNCULUS, foodID);
 
 
 	clif_emotion(&hd->bl,emotion);
 	clif_emotion(&hd->bl,emotion);
-	clif_send_homdata(sd,SP_HUNGRY,hd->homunculus.hunger);
-	clif_send_homdata(sd,SP_INTIMATE,hd->homunculus.intimacy / 100);
+	clif_send_homdata( *hd, SP_HUNGRY );
+	clif_send_homdata( *hd, SP_INTIMATE );
 	clif_hom_food(sd,foodID,1);
 	clif_hom_food(sd,foodID,1);
 
 
 	// Too much food :/
 	// Too much food :/
@@ -955,10 +957,10 @@ static TIMER_FUNC(hom_hungry){
 		// Delete the homunculus if intimacy <= 100
 		// Delete the homunculus if intimacy <= 100
 		if (!hom_decrease_intimacy(hd, 100))
 		if (!hom_decrease_intimacy(hd, 100))
 			return hom_delete(hd, ET_HUK);
 			return hom_delete(hd, ET_HUK);
-		clif_send_homdata(sd,SP_INTIMATE,hd->homunculus.intimacy / 100);
+		clif_send_homdata( *hd, SP_INTIMATE );
 	}
 	}
 
 
-	clif_send_homdata(sd,SP_HUNGRY,hd->homunculus.hunger);
+	clif_send_homdata( *hd, SP_HUNGRY );
 
 
 	int hunger_delay = (battle_config.homunculus_starving_rate > 0 && hd->homunculus.hunger <= battle_config.homunculus_starving_rate) ? battle_config.homunculus_starving_delay : hd->homunculusDB->hungryDelay; // Every 20 seconds if hunger <= 10
 	int hunger_delay = (battle_config.homunculus_starving_rate > 0 && hd->homunculus.hunger <= battle_config.homunculus_starving_rate) ? battle_config.homunculus_starving_delay : hd->homunculusDB->hungryDelay; // Every 20 seconds if hunger <= 10
 
 
@@ -1132,10 +1134,10 @@ bool hom_call(map_session_data *sd)
 		if(map_addblock(&hd->bl))
 		if(map_addblock(&hd->bl))
 			return false;
 			return false;
 		clif_spawn(&hd->bl);
 		clif_spawn(&hd->bl);
-		clif_send_homdata(sd,SP_ACK,0);
+		clif_send_homdata( *hd, SP_ACK );
 		clif_hominfo(sd,hd,1);
 		clif_hominfo(sd,hd,1);
 		clif_hominfo(sd,hd,0); // send this x2. dunno why, but kRO does that [blackhole89]
 		clif_hominfo(sd,hd,0); // send this x2. dunno why, but kRO does that [blackhole89]
-		clif_homskillinfoblock(sd);
+		clif_homskillinfoblock( *hd );
 		if (battle_config.hom_setting&HOMSET_COPY_SPEED)
 		if (battle_config.hom_setting&HOMSET_COPY_SPEED)
 			status_calc_bl(&hd->bl, { SCB_SPEED });
 			status_calc_bl(&hd->bl, { SCB_SPEED });
 		hom_save(hd);
 		hom_save(hd);
@@ -1196,10 +1198,10 @@ int hom_recv_data(uint32 account_id, struct s_homunculus *sh, int flag)
 		if(map_addblock(&hd->bl))
 		if(map_addblock(&hd->bl))
 			return 0;
 			return 0;
 		clif_spawn(&hd->bl);
 		clif_spawn(&hd->bl);
-		clif_send_homdata(sd,SP_ACK,0);
+		clif_send_homdata( *hd, SP_ACK );
 		clif_hominfo(sd,hd,1);
 		clif_hominfo(sd,hd,1);
 		clif_hominfo(sd,hd,0); // send this x2. dunno why, but kRO does that [blackhole89]
 		clif_hominfo(sd,hd,0); // send this x2. dunno why, but kRO does that [blackhole89]
-		clif_homskillinfoblock(sd);
+		clif_homskillinfoblock( *hd );
 		hom_init_timers(hd);
 		hom_init_timers(hd);
 
 
 #ifdef RENEWAL
 #ifdef RENEWAL
@@ -1314,12 +1316,14 @@ void hom_revive(struct homun_data *hd, unsigned int hp, unsigned int sp)
 	hd->homunculus.hp = hd->battle_status.hp;
 	hd->homunculus.hp = hd->battle_status.hp;
 	if (!sd)
 	if (!sd)
 		return;
 		return;
-	clif_send_homdata(sd,SP_ACK,0);
+	clif_send_homdata( *hd, SP_ACK );
 	clif_hominfo(sd,hd,1);
 	clif_hominfo(sd,hd,1);
 	clif_hominfo(sd,hd,0);
 	clif_hominfo(sd,hd,0);
-	clif_homskillinfoblock(sd);
-	if (hd->homunculus.class_ == 6052) //eleanor
+	clif_homskillinfoblock( *hd );
+
+	if( hd->homunculus.class_ == MER_ELEANOR ){
 		sc_start(&hd->bl,&hd->bl, SC_STYLE_CHANGE, 100, MH_MD_FIGHTING, INFINITE_TICK);
 		sc_start(&hd->bl,&hd->bl, SC_STYLE_CHANGE, 100, MH_MD_FIGHTING, INFINITE_TICK);
+	}
 }
 }
 
 
 /**
 /**
@@ -1394,7 +1398,7 @@ int hom_shuffle(struct homun_data *hd)
 	hd->homunculus.exp = exp;
 	hd->homunculus.exp = exp;
 	memcpy(&hd->homunculus.hskill, &b_skill, sizeof(b_skill));
 	memcpy(&hd->homunculus.hskill, &b_skill, sizeof(b_skill));
 	hd->homunculus.skillpts = skillpts;
 	hd->homunculus.skillpts = skillpts;
-	clif_homskillinfoblock(sd);
+	clif_homskillinfoblock( *hd );
 	status_calc_homunculus(hd, SCO_NONE);
 	status_calc_homunculus(hd, SCO_NONE);
 	status_percent_heal(&hd->bl, 100, 100);
 	status_percent_heal(&hd->bl, 100, 100);
 	clif_specialeffect(&hd->bl,EF_HO_UP,AREA);
 	clif_specialeffect(&hd->bl,EF_HO_UP,AREA);

+ 2 - 2
src/map/mail.cpp

@@ -143,7 +143,7 @@ bool mail_removezeny( map_session_data *sd, bool flag ){
 			}
 			}
 		}else{
 		}else{
 			// Update is called by pc_payzeny, so only call it in the else condition
 			// Update is called by pc_payzeny, so only call it in the else condition
-			clif_updatestatus(sd, SP_ZENY);
+			clif_updatestatus(*sd, SP_ZENY);
 		}
 		}
 	}
 	}
 
 
@@ -176,7 +176,7 @@ enum mail_attach_result mail_setitem(map_session_data *sd, short idx, uint32 amo
 #endif
 #endif
 
 
 		sd->mail.zeny = amount;
 		sd->mail.zeny = amount;
-		// clif_updatestatus(sd, SP_ZENY);
+		// clif_updatestatus(*sd, SP_ZENY);
 		return MAIL_ATTACH_SUCCESS;
 		return MAIL_ATTACH_SUCCESS;
 	} else { // Item Transfer
 	} else { // Item Transfer
 		int i;
 		int i;

+ 2 - 2
src/map/map.cpp

@@ -1622,7 +1622,7 @@ TIMER_FUNC(map_clearflooritem_timer){
 	if (pet_db_search(fitem->item.nameid, PET_EGG))
 	if (pet_db_search(fitem->item.nameid, PET_EGG))
 		intif_delete_petdata(MakeDWord(fitem->item.card[1], fitem->item.card[2]));
 		intif_delete_petdata(MakeDWord(fitem->item.card[1], fitem->item.card[2]));
 
 
-	clif_clearflooritem(fitem, 0);
+	clif_clearflooritem( *fitem );
 	map_deliddb(&fitem->bl);
 	map_deliddb(&fitem->bl);
 	map_delblock(&fitem->bl);
 	map_delblock(&fitem->bl);
 	map_freeblock(&fitem->bl);
 	map_freeblock(&fitem->bl);
@@ -1638,7 +1638,7 @@ void map_clearflooritem(struct block_list *bl) {
 	if( fitem->cleartimer != INVALID_TIMER )
 	if( fitem->cleartimer != INVALID_TIMER )
 		delete_timer(fitem->cleartimer,map_clearflooritem_timer);
 		delete_timer(fitem->cleartimer,map_clearflooritem_timer);
 
 
-	clif_clearflooritem(fitem, 0);
+	clif_clearflooritem( *fitem );
 	map_deliddb(&fitem->bl);
 	map_deliddb(&fitem->bl);
 	map_delblock(&fitem->bl);
 	map_delblock(&fitem->bl);
 	map_freeblock(&fitem->bl);
 	map_freeblock(&fitem->bl);

+ 3 - 3
src/map/mob.cpp

@@ -237,7 +237,7 @@ void mvptomb_destroy(struct mob_data *md) {
 		int i;
 		int i;
 		struct map_data *mapdata = map_getmapdata(nd->bl.m);
 		struct map_data *mapdata = map_getmapdata(nd->bl.m);
 
 
-		clif_clearunit_area(&nd->bl,CLR_OUTSIGHT);
+		clif_clearunit_area( nd->bl, CLR_OUTSIGHT );
 		map_delblock(&nd->bl);
 		map_delblock(&nd->bl);
 
 
 		ARR_FIND( 0, mapdata->npc_num, i, mapdata->npc[i] == nd );
 		ARR_FIND( 0, mapdata->npc_num, i, mapdata->npc[i] == nd );
@@ -3177,7 +3177,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
 
 
 		if( pcdb_checkid(md->vd->class_) ) {//Player mobs are not removed automatically by the client.
 		if( pcdb_checkid(md->vd->class_) ) {//Player mobs are not removed automatically by the client.
 			/* first we set them dead, then we delay the outsight effect */
 			/* first we set them dead, then we delay the outsight effect */
-			clif_clearunit_area(&md->bl,CLR_DEAD);
+			clif_clearunit_area( md->bl, CLR_DEAD );
 			clif_clearunit_delayed(&md->bl, CLR_OUTSIGHT,tick+3000);
 			clif_clearunit_delayed(&md->bl, CLR_OUTSIGHT,tick+3000);
 		} else
 		} else
 			/**
 			/**
@@ -6702,7 +6702,7 @@ static int mob_reload_sub( struct mob_data *md, va_list args ){
 		// If they are spawned right now
 		// If they are spawned right now
 		if( md->bl.prev != nullptr ){
 		if( md->bl.prev != nullptr ){
 			// Respawn all mobs on client side so that they are displayed correctly(if their view id changed)
 			// Respawn all mobs on client side so that they are displayed correctly(if their view id changed)
-			clif_clearunit_area(&md->bl, CLR_OUTSIGHT);
+			clif_clearunit_area( md->bl, CLR_OUTSIGHT );
 			clif_spawn(&md->bl);
 			clif_spawn(&md->bl);
 		}
 		}
 	}
 	}

+ 10 - 9
src/map/npc.cpp

@@ -1026,7 +1026,7 @@ bool npc_enable_target(npc_data& nd, uint32 char_id, e_npcv_status flag)
 			clif_changeoption_target(&nd.bl, &sd->bl);
 			clif_changeoption_target(&nd.bl, &sd->bl);
 		else {
 		else {
 			if (nd.sc.option&(OPTION_HIDE|OPTION_CLOAK))
 			if (nd.sc.option&(OPTION_HIDE|OPTION_CLOAK))
-				clif_clearunit_single(nd.bl.id, CLR_OUTSIGHT, sd->fd);
+				clif_clearunit_single( nd.bl.id, CLR_OUTSIGHT, *sd );
 			else
 			else
 				clif_spawn(&nd.bl);
 				clif_spawn(&nd.bl);
 		}
 		}
@@ -1053,11 +1053,11 @@ bool npc_enable_target(npc_data& nd, uint32 char_id, e_npcv_status flag)
 		if (nd.class_ != JT_WARPNPC && nd.class_ != JT_GUILD_FLAG) {	//Client won't display option changes for these classes [Toms]
 		if (nd.class_ != JT_WARPNPC && nd.class_ != JT_GUILD_FLAG) {	//Client won't display option changes for these classes [Toms]
 			clif_changeoption(&nd.bl);
 			clif_changeoption(&nd.bl);
 			if (nd.is_invisible)
 			if (nd.is_invisible)
-				clif_clearunit_area(&nd.bl,CLR_OUTSIGHT);  // Hack to trick maya purple card [Xazax]
+				clif_clearunit_area( nd.bl, CLR_OUTSIGHT );  // Hack to trick maya purple card [Xazax]
 		}
 		}
 		else {
 		else {
 			if (nd.sc.option&(OPTION_HIDE|OPTION_CLOAK))
 			if (nd.sc.option&(OPTION_HIDE|OPTION_CLOAK))
-				clif_clearunit_area(&nd.bl,CLR_OUTSIGHT);
+				clif_clearunit_area( nd.bl, CLR_OUTSIGHT );
 			else
 			else
 				clif_spawn(&nd.bl);
 				clif_spawn(&nd.bl);
 		}
 		}
@@ -1146,7 +1146,7 @@ int npc_event_dequeue(map_session_data* sd,bool free_script_stack)
 	if(sd->npc_id)
 	if(sd->npc_id)
 	{	//Current script is aborted.
 	{	//Current script is aborted.
 		if(sd->state.using_fake_npc){
 		if(sd->state.using_fake_npc){
-			clif_clearunit_single(sd->npc_id, CLR_OUTSIGHT, sd->fd);
+			clif_clearunit_single( sd->npc_id, CLR_OUTSIGHT, *sd );
 			sd->state.using_fake_npc = 0;
 			sd->state.using_fake_npc = 0;
 		}
 		}
 		if (free_script_stack&&sd->st) {
 		if (free_script_stack&&sd->st) {
@@ -2168,7 +2168,7 @@ void run_tomb(map_session_data* sd, struct npc_data* nd)
 	snprintf( buffer, sizeof( buffer ), msg_txt( sd, 661 ), nd->u.tomb.killer_name[0] ? nd->u.tomb.killer_name : "Unknown" ); // [^EE0000%s^000000]
 	snprintf( buffer, sizeof( buffer ), msg_txt( sd, 661 ), nd->u.tomb.killer_name[0] ? nd->u.tomb.killer_name : "Unknown" ); // [^EE0000%s^000000]
 	clif_scriptmes( *sd, nd->bl.id, buffer );
 	clif_scriptmes( *sd, nd->bl.id, buffer );
 
 
-	clif_scriptclose(sd, nd->bl.id);
+	clif_scriptclose( *sd, nd->bl.id );
 }
 }
 
 
 /*==========================================
 /*==========================================
@@ -2206,7 +2206,7 @@ int npc_click(map_session_data* sd, struct npc_data* nd)
 
 
 	switch(nd->subtype) {
 	switch(nd->subtype) {
 		case NPCTYPE_SHOP:
 		case NPCTYPE_SHOP:
-			clif_npcbuysell(sd,nd->bl.id);
+			clif_npcbuysell( *sd, *nd );
 			break;
 			break;
 		case NPCTYPE_CASHSHOP:
 		case NPCTYPE_CASHSHOP:
 		case NPCTYPE_ITEMSHOP:
 		case NPCTYPE_ITEMSHOP:
@@ -2306,7 +2306,7 @@ bool npc_scriptcont(map_session_data* sd, int id, bool closing){
 			case CLOSE:
 			case CLOSE:
 				sd->st->state = END;
 				sd->st->state = END;
 				if (sd->st->clear_cutin)
 				if (sd->st->clear_cutin)
-					clif_cutin(sd,"",255);
+					clif_cutin( *sd, "", 255 );
 				break;
 				break;
 			// close2
 			// close2
 			case STOP:
 			case STOP:
@@ -2377,8 +2377,9 @@ int npc_buysellsel(map_session_data* sd, int id, int type)
 	if (type == 0) {
 	if (type == 0) {
 		clif_buylist(sd,nd);
 		clif_buylist(sd,nd);
 	} else {
 	} else {
-		clif_selllist(sd);
+		clif_selllist( *sd );
 	}
 	}
+
 	return 0;
 	return 0;
 }
 }
 
 
@@ -3381,7 +3382,7 @@ int npc_remove_map(struct npc_data* nd)
 
 
 	if (nd->subtype == NPCTYPE_SCRIPT)
 	if (nd->subtype == NPCTYPE_SCRIPT)
 		skill_clear_unitgroup(&nd->bl);
 		skill_clear_unitgroup(&nd->bl);
-	clif_clearunit_area(&nd->bl,CLR_RESPAWN);
+	clif_clearunit_area( nd->bl, CLR_RESPAWN );
 	npc_unsetcells(nd);
 	npc_unsetcells(nd);
 	map_delblock(&nd->bl);
 	map_delblock(&nd->bl);
 	//Remove npc from map[].npc list. [Skotlex]
 	//Remove npc from map[].npc list. [Skotlex]

+ 375 - 49
src/map/packets.hpp

@@ -36,6 +36,7 @@ struct PACKET_ZC_PC_PURCHASE_RESULT{
 	int16 packetType;
 	int16 packetType;
 	uint8 result;
 	uint8 result;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_PC_PURCHASE_RESULT, 0xca)
 
 
 struct PACKET_CZ_REQ_MAKINGARROW{
 struct PACKET_CZ_REQ_MAKINGARROW{
 	int16 packetType;
 	int16 packetType;
@@ -45,6 +46,7 @@ struct PACKET_CZ_REQ_MAKINGARROW{
 	uint16 itemId;
 	uint16 itemId;
 #endif
 #endif
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_REQ_MAKINGARROW, 0x1ae)
 
 
 struct PACKET_CZ_SE_PC_BUY_CASHITEM_LIST_sub{
 struct PACKET_CZ_SE_PC_BUY_CASHITEM_LIST_sub{
 	uint32 itemId;
 	uint32 itemId;
@@ -59,6 +61,7 @@ struct PACKET_CZ_SE_PC_BUY_CASHITEM_LIST{
 	uint32 kafraPoints;
 	uint32 kafraPoints;
 	struct PACKET_CZ_SE_PC_BUY_CASHITEM_LIST_sub items[];
 	struct PACKET_CZ_SE_PC_BUY_CASHITEM_LIST_sub items[];
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_SE_PC_BUY_CASHITEM_LIST, 0x848)
 
 
 struct PACKET_CZ_REQ_CASH_BARGAIN_SALE_ITEM_INFO{
 struct PACKET_CZ_REQ_CASH_BARGAIN_SALE_ITEM_INFO{
 	int16 packetType;
 	int16 packetType;
@@ -70,6 +73,7 @@ struct PACKET_CZ_REQ_CASH_BARGAIN_SALE_ITEM_INFO{
 	uint16 itemId;
 	uint16 itemId;
 #endif
 #endif
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_REQ_CASH_BARGAIN_SALE_ITEM_INFO, 0x9ac)
 
 
 struct PACKET_ZC_ACK_CASH_BARGAIN_SALE_ITEM_INFO{
 struct PACKET_ZC_ACK_CASH_BARGAIN_SALE_ITEM_INFO{
 	int16 packetType;
 	int16 packetType;
@@ -81,6 +85,7 @@ struct PACKET_ZC_ACK_CASH_BARGAIN_SALE_ITEM_INFO{
 #endif
 #endif
 	uint32 price;
 	uint32 price;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_ACK_CASH_BARGAIN_SALE_ITEM_INFO, 0x9ad)
 
 
 struct PACKET_CZ_REQ_APPLY_BARGAIN_SALE_ITEM{
 struct PACKET_CZ_REQ_APPLY_BARGAIN_SALE_ITEM{
 	int16 packetType;
 	int16 packetType;
@@ -98,6 +103,7 @@ struct PACKET_CZ_REQ_APPLY_BARGAIN_SALE_ITEM{
 	uint8 hours;
 	uint8 hours;
 #endif
 #endif
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_REQ_APPLY_BARGAIN_SALE_ITEM, 0x9ae)
 
 
 struct PACKET_CZ_REQ_REMOVE_BARGAIN_SALE_ITEM{
 struct PACKET_CZ_REQ_REMOVE_BARGAIN_SALE_ITEM{
 	int16 packetType;
 	int16 packetType;
@@ -108,6 +114,7 @@ struct PACKET_CZ_REQ_REMOVE_BARGAIN_SALE_ITEM{
 	uint16 itemId;
 	uint16 itemId;
 #endif
 #endif
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_REQ_REMOVE_BARGAIN_SALE_ITEM, 0x9b0)
 
 
 struct PACKET_ZC_NOTIFY_BARGAIN_SALE_SELLING{
 struct PACKET_ZC_NOTIFY_BARGAIN_SALE_SELLING{
 	int16 packetType;
 	int16 packetType;
@@ -118,6 +125,7 @@ struct PACKET_ZC_NOTIFY_BARGAIN_SALE_SELLING{
 #endif
 #endif
 	uint32 remainingTime;
 	uint32 remainingTime;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_NOTIFY_BARGAIN_SALE_SELLING, 0x9b2)
 
 
 struct PACKET_ZC_NOTIFY_BARGAIN_SALE_CLOSE{
 struct PACKET_ZC_NOTIFY_BARGAIN_SALE_CLOSE{
 	int16 packetType;
 	int16 packetType;
@@ -127,6 +135,7 @@ struct PACKET_ZC_NOTIFY_BARGAIN_SALE_CLOSE{
 	uint16 itemId;
 	uint16 itemId;
 #endif
 #endif
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_NOTIFY_BARGAIN_SALE_CLOSE, 0x9b3)
 
 
 struct PACKET_ZC_ACK_COUNT_BARGAIN_SALE_ITEM{
 struct PACKET_ZC_ACK_COUNT_BARGAIN_SALE_ITEM{
 	int16 packetType;
 	int16 packetType;
@@ -137,6 +146,7 @@ struct PACKET_ZC_ACK_COUNT_BARGAIN_SALE_ITEM{
 #endif
 #endif
 	uint32 amount;
 	uint32 amount;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_ACK_COUNT_BARGAIN_SALE_ITEM, 0x9c4)
 
 
 struct PACKET_ZC_ACK_GUILDSTORAGE_LOG_sub{
 struct PACKET_ZC_ACK_GUILDSTORAGE_LOG_sub{
 	uint32 id;
 	uint32 id;
@@ -164,24 +174,28 @@ struct PACKET_ZC_ACK_GUILDSTORAGE_LOG{
 	uint16 amount;
 	uint16 amount;
 	struct PACKET_ZC_ACK_GUILDSTORAGE_LOG_sub items[];
 	struct PACKET_ZC_ACK_GUILDSTORAGE_LOG_sub items[];
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_ACK_GUILDSTORAGE_LOG, 0x9da)
 
 
-struct PACKET_CZ_UNCONFIRMED_TSTATUS_UP{
+struct PACKET_CZ_ADVANCED_STATUS_CHANGE{
 	int16 packetType;
 	int16 packetType;
 	int16 type;
 	int16 type;
 	int16 amount;
 	int16 amount;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_ADVANCED_STATUS_CHANGE, 0x0b24)
 
 
-struct PACKET_CZ_GUILD_EMBLEM_CHANGE2 {
+struct PACKET_CZ_REQ_ADD_NEW_EMBLEM {
 	int16 packetType;
 	int16 packetType;
 	uint32 guild_id;
 	uint32 guild_id;
 	uint32 version;
 	uint32 version;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_REQ_ADD_NEW_EMBLEM, 0x0b46)
 
 
 struct PACKET_ZC_BROADCAST{
 struct PACKET_ZC_BROADCAST{
 	int16 packetType;
 	int16 packetType;
 	int16 PacketLength;
 	int16 PacketLength;
 	char message[];
 	char message[];
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_BROADCAST, 0x9a)
 
 
 struct PACKET_ZC_BROADCAST2{
 struct PACKET_ZC_BROADCAST2{
 	int16 packetType;
 	int16 packetType;
@@ -193,25 +207,30 @@ struct PACKET_ZC_BROADCAST2{
 	int16 fontY;
 	int16 fontY;
 	char message[];
 	char message[];
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_BROADCAST2, 0x1c3)
 
 
 struct PACKET_ZC_SOULENERGY{
 struct PACKET_ZC_SOULENERGY{
 	int16 PacketType;
 	int16 PacketType;
 	uint32 AID;
 	uint32 AID;
 	uint16 num;
 	uint16 num;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_SOULENERGY, 0xb73)
 
 
 struct PACKET_ZC_ENTRY_QUEUE_INIT {
 struct PACKET_ZC_ENTRY_QUEUE_INIT {
 	int16 packetType;
 	int16 packetType;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_ENTRY_QUEUE_INIT, 0x90e)
 
 
-struct PACKET_CZ_UNCONFIRMED_RODEX_RETURN{
+struct PACKET_CZ_RODEX_RETURN{
 	int16 packetType;
 	int16 packetType;
 	uint32 msgId;
 	uint32 msgId;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_RODEX_RETURN, 0xb98)
 
 
 struct PACKET_CZ_REQ_STYLE_CLOSE{
 struct PACKET_CZ_REQ_STYLE_CLOSE{
 	int16 packetType;
 	int16 packetType;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_REQ_STYLE_CLOSE, 0xa48)
 
 
 struct PACKET_ZC_SUMMON_HP_INIT {
 struct PACKET_ZC_SUMMON_HP_INIT {
 	int16 PacketType;
 	int16 PacketType;
@@ -219,6 +238,7 @@ struct PACKET_ZC_SUMMON_HP_INIT {
 	uint32 CurrentHP;
 	uint32 CurrentHP;
 	uint32 MaxHP;
 	uint32 MaxHP;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_SUMMON_HP_INIT, 0xb6b)
 
 
 struct PACKET_ZC_SUMMON_HP_UPDATE {
 struct PACKET_ZC_SUMMON_HP_UPDATE {
 	int16 PacketType;
 	int16 PacketType;
@@ -226,6 +246,7 @@ struct PACKET_ZC_SUMMON_HP_UPDATE {
 	uint16 VarId;
 	uint16 VarId;
 	uint32 Value;
 	uint32 Value;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_SUMMON_HP_UPDATE, 0xb6c)
 
 
 struct PACKET_ZC_REPUTE_INFO_sub{
 struct PACKET_ZC_REPUTE_INFO_sub{
 	uint64 type;
 	uint64 type;
@@ -238,12 +259,14 @@ struct PACKET_ZC_REPUTE_INFO{
 	uint8 success;
 	uint8 success;
 	struct PACKET_ZC_REPUTE_INFO_sub list[];
 	struct PACKET_ZC_REPUTE_INFO_sub list[];
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_REPUTE_INFO, 0x0b8d)
 
 
 struct PACKET_ZC_UI_OPEN_V3{
 struct PACKET_ZC_UI_OPEN_V3{
 	int16 packetType;
 	int16 packetType;
 	uint8 type;
 	uint8 type;
 	uint64 data;
 	uint64 data;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_UI_OPEN_V3, 0x0b9a)
 
 
 struct PACKET_ZC_TARGET_SPIRITS {
 struct PACKET_ZC_TARGET_SPIRITS {
 	int16 packetType;
 	int16 packetType;
@@ -251,6 +274,7 @@ struct PACKET_ZC_TARGET_SPIRITS {
 	uint32 unknown_val;
 	uint32 unknown_val;
 	uint16 amount;
 	uint16 amount;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_TARGET_SPIRITS, 0xb68)
 
 
 struct PACKET_ZC_FRIENDS_LIST_sub{
 struct PACKET_ZC_FRIENDS_LIST_sub{
 	uint32 AID;
 	uint32 AID;
@@ -265,6 +289,7 @@ struct PACKET_ZC_FRIENDS_LIST{
 	int16 PacketLength;
 	int16 PacketLength;
 	struct PACKET_ZC_FRIENDS_LIST_sub friends[];
 	struct PACKET_ZC_FRIENDS_LIST_sub friends[];
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_FRIENDS_LIST, 0x201)
 
 
 struct PACKET_CZ_PC_SELL_ITEMLIST_sub {
 struct PACKET_CZ_PC_SELL_ITEMLIST_sub {
 	uint16 index;
 	uint16 index;
@@ -276,6 +301,7 @@ struct PACKET_CZ_PC_SELL_ITEMLIST {
 	int16 packetLength;
 	int16 packetLength;
 	PACKET_CZ_PC_SELL_ITEMLIST_sub sellList[];
 	PACKET_CZ_PC_SELL_ITEMLIST_sub sellList[];
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_PC_SELL_ITEMLIST, 0x00c9)
 
 
 struct PACKET_CZ_REQ_CHANGE_MEMBERPOS_sub{
 struct PACKET_CZ_REQ_CHANGE_MEMBERPOS_sub{
 	uint32 AID;
 	uint32 AID;
@@ -288,22 +314,26 @@ struct PACKET_CZ_REQ_CHANGE_MEMBERPOS{
 	int16 packetLength;
 	int16 packetLength;
 	struct PACKET_CZ_REQ_CHANGE_MEMBERPOS_sub list[];
 	struct PACKET_CZ_REQ_CHANGE_MEMBERPOS_sub list[];
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_REQ_CHANGE_MEMBERPOS, 0x155)
 
 
 struct PACKET_ZC_CLEAR_DIALOG{
 struct PACKET_ZC_CLEAR_DIALOG{
 	int16 packetType;
 	int16 packetType;
 	uint32 GID;
 	uint32 GID;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_CLEAR_DIALOG, 0x8d6)
 
 
 struct PACKET_ZC_NOTIFY_BIND_ON_EQUIP{
 struct PACKET_ZC_NOTIFY_BIND_ON_EQUIP{
 	int16 packetType;
 	int16 packetType;
 	int16 index;
 	int16 index;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_NOTIFY_BIND_ON_EQUIP, 0x2d3)
 
 
 struct PACKET_ZC_BANKING_CHECK{
 struct PACKET_ZC_BANKING_CHECK{
 	int16 packetType;
 	int16 packetType;
 	int64 money;
 	int64 money;
 	int16 reason;
 	int16 reason;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_BANKING_CHECK, 0x9a6)
 
 
 struct PACKET_ZC_ACK_BANKING_WITHDRAW{
 struct PACKET_ZC_ACK_BANKING_WITHDRAW{
 	int16 packetType;
 	int16 packetType;
@@ -311,6 +341,7 @@ struct PACKET_ZC_ACK_BANKING_WITHDRAW{
 	int64 money;
 	int64 money;
 	int32 zeny;
 	int32 zeny;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_ACK_BANKING_WITHDRAW, 0x9aa)
 
 
 struct PACKET_ZC_ACK_BANKING_DEPOSIT{
 struct PACKET_ZC_ACK_BANKING_DEPOSIT{
 	int16 packetType;
 	int16 packetType;
@@ -318,33 +349,39 @@ struct PACKET_ZC_ACK_BANKING_DEPOSIT{
 	int64 money;
 	int64 money;
 	int32 zeny;
 	int32 zeny;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_ACK_BANKING_DEPOSIT, 0x9a8)
 
 
 struct PACKET_ZC_ACK_CLOSE_BANKING{
 struct PACKET_ZC_ACK_CLOSE_BANKING{
 	int16 packetType;
 	int16 packetType;
 	int16 unknown;
 	int16 unknown;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_ACK_CLOSE_BANKING, 0x9b9)
 
 
 struct PACKET_ZC_ACK_OPEN_BANKING{
 struct PACKET_ZC_ACK_OPEN_BANKING{
 	int16 packetType;
 	int16 packetType;
 	int16 unknown;
 	int16 unknown;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_ACK_OPEN_BANKING, 0x9b7)
 
 
 struct PACKET_ZC_ACK_ADD_EXCHANGE_ITEM {
 struct PACKET_ZC_ACK_ADD_EXCHANGE_ITEM {
 	int16 packetType;
 	int16 packetType;
 	uint16 index;
 	uint16 index;
 	uint8 result;
 	uint8 result;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_ACK_ADD_EXCHANGE_ITEM, 0xea)
 
 
 struct PACKET_ZC_COUPLENAME {
 struct PACKET_ZC_COUPLENAME {
 	int16 packetType;
 	int16 packetType;
 	char name[NAME_LENGTH];
 	char name[NAME_LENGTH];
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_COUPLENAME, 0x1e6);
 
 
 struct PACKET_CZ_PARTY_REQ_MASTER_TO_JOIN{
 struct PACKET_CZ_PARTY_REQ_MASTER_TO_JOIN{
 	int16 packetType;
 	int16 packetType;
 	uint32 CID;
 	uint32 CID;
 	uint32 AID;
 	uint32 AID;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_PARTY_REQ_MASTER_TO_JOIN, 0x0ae6)
 
 
 struct PACKET_ZC_PARTY_REQ_MASTER_TO_JOIN{
 struct PACKET_ZC_PARTY_REQ_MASTER_TO_JOIN{
 	int16 packetType;
 	int16 packetType;
@@ -354,6 +391,7 @@ struct PACKET_ZC_PARTY_REQ_MASTER_TO_JOIN{
 	uint16 x;
 	uint16 x;
 	uint16 y;
 	uint16 y;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_PARTY_REQ_MASTER_TO_JOIN, 0x0ae7)
 
 
 struct PACKET_CZ_PARTY_REQ_ACK_MASTER_TO_JOIN{
 struct PACKET_CZ_PARTY_REQ_ACK_MASTER_TO_JOIN{
 	int16 packetType;
 	int16 packetType;
@@ -361,6 +399,7 @@ struct PACKET_CZ_PARTY_REQ_ACK_MASTER_TO_JOIN{
 	uint32 AID;
 	uint32 AID;
 	uint8 accept;
 	uint8 accept;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_PARTY_REQ_ACK_MASTER_TO_JOIN, 0x0af8)
 
 
 struct PACKET_ZC_PARTY_JOIN_REQ_ACK_FROM_MASTER{
 struct PACKET_ZC_PARTY_JOIN_REQ_ACK_FROM_MASTER{
 	int16 packetType;
 	int16 packetType;
@@ -369,11 +408,13 @@ struct PACKET_ZC_PARTY_JOIN_REQ_ACK_FROM_MASTER{
 	uint32 AID;
 	uint32 AID;
 	uint32 refused;
 	uint32 refused;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_PARTY_JOIN_REQ_ACK_FROM_MASTER, 0x0afa)
 
 
 struct PACKET_CZ_REQ_SE_CASH_TAB_CODE{
 struct PACKET_CZ_REQ_SE_CASH_TAB_CODE{
 	int16 packetType;
 	int16 packetType;
 	int16 tab;
 	int16 tab;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_REQ_SE_CASH_TAB_CODE, 0x846)
 
 
 struct PACKET_ZC_ACK_SE_CASH_ITEM_LIST2_sub{
 struct PACKET_ZC_ACK_SE_CASH_ITEM_LIST2_sub{
 #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
 #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
@@ -391,17 +432,20 @@ struct PACKET_ZC_ACK_SE_CASH_ITEM_LIST2{
 	int16 count;
 	int16 count;
 	struct PACKET_ZC_ACK_SE_CASH_ITEM_LIST2_sub items[];
 	struct PACKET_ZC_ACK_SE_CASH_ITEM_LIST2_sub items[];
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_ACK_SE_CASH_ITEM_LIST2, 0x8c0)
 
 
 struct PACKET_CZ_REQ_MERGE_ITEM{
 struct PACKET_CZ_REQ_MERGE_ITEM{
 	int16 packetType;
 	int16 packetType;
 	int16 packetLength;
 	int16 packetLength;
 	uint16 indices[];
 	uint16 indices[];
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_REQ_MERGE_ITEM, 0x96e)
 
 
 struct PACKET_CZ_RESET_SKILL{
 struct PACKET_CZ_RESET_SKILL{
 	int16 packetType;
 	int16 packetType;
 	uint8 unknown;
 	uint8 unknown;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_RESET_SKILL, 0x0bb1)
 
 
 struct PACKET_ZC_BOSS_INFO{
 struct PACKET_ZC_BOSS_INFO{
 	int16 packetType;
 	int16 packetType;
@@ -414,18 +458,21 @@ struct PACKET_ZC_BOSS_INFO{
 	uint16 maxMinutes;
 	uint16 maxMinutes;
 	char name[51];
 	char name[51];
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_BOSS_INFO, 0x293)
 
 
 struct PACKET_CZ_INVENTORY_TAB{
 struct PACKET_CZ_INVENTORY_TAB{
 	int16 packetType;
 	int16 packetType;
 	int16 index;
 	int16 index;
 	bool favorite;
 	bool favorite;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(CZ_INVENTORY_TAB, 0x907)
 
 
 struct PACKET_ZC_INVENTORY_TAB{
 struct PACKET_ZC_INVENTORY_TAB{
 	int16 packetType;
 	int16 packetType;
 	int16 index;
 	int16 index;
 	bool favorite;
 	bool favorite;
 } __attribute__((packed));
 } __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_INVENTORY_TAB, 0x908)
 
 
 struct PACKET_ZC_SKILL_SELECT_REQUEST_sub{
 struct PACKET_ZC_SKILL_SELECT_REQUEST_sub{
 	int16 skill_id;
 	int16 skill_id;
@@ -465,88 +512,367 @@ struct PACKET_CZ_REQ_BANKING_WITHDRAW{
 	int32 zeny;
 	int32 zeny;
 } __attribute__((packed));
 } __attribute__((packed));
 
 
+#if PACKETVER < 20080102
+struct PACKET_ZC_ACCEPT_ENTER {
+	int16 packetType;
+	uint32 startTime;
+	uint8 posDir[3];
+	uint8 xSize;
+	uint8 ySize;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_ACCEPT_ENTER, 0x73)
+#elif PACKETVER < 20141022 || PACKETVER >= 20160330
+struct PACKET_ZC_ACCEPT_ENTER {
+	int16 packetType;
+	uint32 startTime;
+	uint8 posDir[3];
+	uint8 xSize;
+	uint8 ySize;
+	uint16 font;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_ACCEPT_ENTER, 0x2eb)
+#else
+struct PACKET_ZC_ACCEPT_ENTER {
+	int16 packetType;
+	uint32 startTime;
+	uint8 posDir[3];
+	uint8 xSize;
+	uint8 ySize;
+	uint16 font;
+	uint8 sex;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_ACCEPT_ENTER, 0xa18)
+#endif
+
+struct PACKET_ZC_REFUSE_ENTER {
+	int16 packetType;
+	uint8 errorCode;
+} __attribute__((packed));
+static_assert(sizeof(PACKET_ZC_REFUSE_ENTER) == 3);
+DEFINE_PACKET_HEADER(ZC_REFUSE_ENTER, 0x74)
+
+struct PACKET_SC_NOTIFY_BAN {
+	int16 packetType;
+	uint8 errorCode;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(SC_NOTIFY_BAN, 0x81)
+
+struct PACKET_ZC_RESTART_ACK {
+	int16 packetType;
+	uint8 type;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_RESTART_ACK, 0xb3)
+
+struct PACKET_ZC_NOTIFY_VANISH {
+	int16 packetType;
+	uint32 gid;
+	uint8 type;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_NOTIFY_VANISH, 0x80)
+
+struct PACKET_ZC_ITEM_DISAPPEAR {
+	int16 packetType;
+	uint32 itemAid;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_ITEM_DISAPPEAR, 0xa1)
+
+struct PACKET_ZC_MILLENNIUMSHIELD {
+	int16 packetType;
+	uint32 aid;
+	int16 num;
+	int16 state;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_MILLENNIUMSHIELD, 0x440)
+
+struct PACKET_ZC_SPIRITS_ATTRIBUTE {
+	int16 packetType;
+	uint32 aid;
+	int16 spiritsType;
+	int16 num;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_SPIRITS_ATTRIBUTE, 0x8cf)
+
+struct PACKET_ZC_CHANGESTATE_MER {
+	int16 packetType;
+	uint8 type;
+	uint8 state;
+	uint32 gid;
+	uint32 data;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_CHANGESTATE_MER, 0x230)
+
+struct PACKET_ZC_HOSKILLINFO_LIST_sub {
+	uint16 id;
+	uint16 inf;
+	uint16 unknown;
+	uint16 level;
+	uint16 sp;
+	uint16 range;
+	char name[NAME_LENGTH];
+	uint8 upgradable;
+} __attribute__((packed));
+
+struct PACKET_ZC_HOSKILLINFO_LIST {
+	int16 packetType;
+	int16 packetLength;
+	PACKET_ZC_HOSKILLINFO_LIST_sub skills[];
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_HOSKILLINFO_LIST, 0x235)
+
+struct PACKET_ZC_HOSKILLINFO_UPDATE {
+	int16 packetType;
+	uint16 skill_id;
+	int16 Level;
+	int16 SP;
+	int16 AttackRange;
+	bool upgradable;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_HOSKILLINFO_UPDATE, 0x239)
+
+struct PACKET_ZC_NOTIFY_MOVE {
+	int16 packetType;
+	uint32 gid;
+	uint8 moveData[6];
+	uint32 moveStartTime;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_NOTIFY_MOVE, 0x86)
+
+struct PACKET_ZC_NOTIFY_PLAYERMOVE {
+	int16 packetType;
+	uint32 moveStartTime;
+	uint8 moveData[6];
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_NOTIFY_PLAYERMOVE, 0x87);
+
+struct PACKET_ZC_NPCACK_MAPMOVE {
+	int16 packetType;
+	char mapName[MAP_NAME_LENGTH_EXT];
+	uint16 xPos;
+	uint16 yPos;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_NPCACK_MAPMOVE, 0x91)
+
+#if PACKETVER >= 20170315
+// Actually ZC_NPCACK_SERVERMOVE_DOMAIN
+struct PACKET_ZC_NPCACK_SERVERMOVE {
+	int16 packetType;
+	char mapName[MAP_NAME_LENGTH_EXT];
+	uint16 xPos;
+	uint16 yPos;
+	uint32 ip;
+	uint16 port;
+	char domain[128];
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_NPCACK_SERVERMOVE, 0xac7)
+#else
+struct PACKET_ZC_NPCACK_SERVERMOVE {
+	int16 packetType;
+	char mapName[MAP_NAME_LENGTH_EXT];
+	uint16 xPos;
+	uint16 yPos;
+	uint32 ip;
+	uint16 port;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_NPCACK_SERVERMOVE, 0x92)
+#endif
+
+struct PACKET_ZC_STOPMOVE {
+	int16 packetType;
+	uint32	AID;
+	uint16	xPos;
+	uint16	yPos;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_STOPMOVE, 0x88)
+
+struct PACKET_ZC_SELECT_DEALTYPE {
+	int16 packetType;
+	uint32 npcId;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_SELECT_DEALTYPE, 0xc4)
+
+struct PACKET_ZC_PC_SELL_ITEMLIST_sub {
+	uint16 index;
+	uint32 price;
+	uint32 overcharge;
+} __attribute__((packed));
+
+struct PACKET_ZC_PC_SELL_ITEMLIST {
+	int16 packetType;
+	int16 packetLength;
+	PACKET_ZC_PC_SELL_ITEMLIST_sub items[];
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_PC_SELL_ITEMLIST, 0xc7)
+
+struct PACKET_ZC_CLOSE_DIALOG {
+	int16 packetType;
+	uint32 npcId;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_CLOSE_DIALOG, 0xb6)
+
+struct	PACKET_ZC_NOTIFY_STANDENTRY {
+	int16 packetType;
+#if PACKETVER >= 20071106
+	uint8 objecttype;
+#endif
+	uint32 GID;
+	int16 speed;
+	int16 bodyState;
+	int16 effectState;
+	int16 job;
+	int16 head;
+	int16 weapon;
+	int16 accessory;
+	int16 shield;
+	int16 accessory2;
+	int16 accessory3;
+	int16 headpalette;
+	int16 bodypalette;
+	int16 headDir;
+	uint32 GUID;
+	int16 GEmblemVer;
+	int16 honor;
+	int16 virtue;
+	bool isPKModeON;
+	uint8 sex;
+	uint8 PosDir[3];
+	uint8 xSize;
+	uint8 ySize;
+	uint8 state;
+	int16 clevel;
+	uint16 spr_idx;
+	uint16 effect_idx;
+	unsigned char scale;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_NOTIFY_STANDENTRY, 0x78)
+
+struct PACKET_ZC_MENU_LIST {
+	int16 packetType;
+	int16 packetLength;
+	uint32 npcId;
+	char menu[];
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_MENU_LIST, 0xb7)
+
+struct PACKET_ZC_OPEN_EDITDLG {
+	int16 packetType;
+	uint32 npcId;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_OPEN_EDITDLG, 0x142)
+
+struct PACKET_ZC_OPEN_EDITDLGSTR {
+	int16 packetType;
+	uint32 npcId;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_OPEN_EDITDLGSTR, 0x1d4)
+
+struct PACKET_ZC_COMPASS {
+	int16 packetType;
+	uint32 npcId;
+	uint32 type;
+	uint32 xPos;
+	uint32 yPos;
+	uint8 id;
+	uint32 color;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_COMPASS, 0x144)
+
+struct PACKET_ZC_ITEM_THROW_ACK {
+	int16 packetType;
+	uint16 index;
+	uint16 count;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_ITEM_THROW_ACK, 0xaf)
+
+struct PACKET_ZC_DELETE_ITEM_FROM_BODY {
+	int16 packetType;
+	int16 deleteType;
+	uint16 index;
+	int16 count;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_DELETE_ITEM_FROM_BODY, 0x7fa)
+
+struct PACKET_ZC_CARTOFF {
+	int16 packetType;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_CARTOFF, 0x12b)
+
+struct PACKET_ZC_NOTIFY_POSITION_TO_GUILDM {
+	int16 packetType;
+	uint32 aid;
+	int16 xPos;
+	int16 yPos;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_NOTIFY_POSITION_TO_GUILDM, 0x1eb)
+
+struct PACKET_ZC_STATUS {
+	int16 packetType;
+	uint16 point;
+	uint8 str;
+	uint8 standardStr;
+	uint8 agi;
+	uint8 standardAgi;
+	uint8 vit;
+	uint8 standardVit;
+	uint8 int_;
+	uint8 standardInt;
+	uint8 dex;
+	uint8 standardDex;
+	uint8 luk;
+	uint8 standardLuk;
+	int16 attPower;
+	int16 refiningPower;
+	int16 max_mattPower;
+	int16 min_mattPower;
+	int16 itemdefPower;
+	int16 plusdefPower;
+	int16 mdefPower;
+	int16 plusmdefPower;
+	int16 hitSuccessValue;
+	int16 avoidSuccessValue;
+	int16 plusAvoidSuccessValue;
+	int16 criticalSuccessValue;
+	int16 ASPD;
+	int16 plusASPD;
+} __attribute__((packed));
+DEFINE_PACKET_HEADER(ZC_STATUS, 0xbd)
+
 // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
 // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
 #if !defined( sun ) && ( !defined( __NETBSD__ ) || __NetBSD_Version__ >= 600000000 )
 #if !defined( sun ) && ( !defined( __NETBSD__ ) || __NetBSD_Version__ >= 600000000 )
 	#pragma pack( pop )
 	#pragma pack( pop )
 #endif
 #endif
 
 
+// Other packets without struct defined in this file
 DEFINE_PACKET_HEADER(ZC_NOTIFY_CHAT, 0x8d)
 DEFINE_PACKET_HEADER(ZC_NOTIFY_CHAT, 0x8d)
-DEFINE_PACKET_HEADER(ZC_BROADCAST, 0x9a)
 DEFINE_PACKET_HEADER(ZC_ITEM_ENTRY, 0x9d)
 DEFINE_PACKET_HEADER(ZC_ITEM_ENTRY, 0x9d)
-DEFINE_PACKET_HEADER(ZC_PC_PURCHASE_RESULT, 0xca)
-DEFINE_PACKET_HEADER(ZC_ACK_ADD_EXCHANGE_ITEM, 0xea)
 DEFINE_PACKET_HEADER(ZC_MVP_GETTING_ITEM, 0x10a)
 DEFINE_PACKET_HEADER(ZC_MVP_GETTING_ITEM, 0x10a)
-DEFINE_PACKET_HEADER(CZ_REQ_CHANGE_MEMBERPOS, 0x155)
 DEFINE_PACKET_HEADER(CZ_REQMAKINGITEM, 0x18e)
 DEFINE_PACKET_HEADER(CZ_REQMAKINGITEM, 0x18e)
 DEFINE_PACKET_HEADER(ZC_ACK_REQMAKINGITEM, 0x18f)
 DEFINE_PACKET_HEADER(ZC_ACK_REQMAKINGITEM, 0x18f)
-DEFINE_PACKET_HEADER(CZ_REQ_MAKINGARROW, 0x1ae)
-DEFINE_PACKET_HEADER(ZC_BROADCAST2, 0x1c3)
 #if PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200724
 #if PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200724
 	DEFINE_PACKET_HEADER(CZ_REQ_ITEMREPAIR, 0xb66)
 	DEFINE_PACKET_HEADER(CZ_REQ_ITEMREPAIR, 0xb66)
 #else
 #else
 	DEFINE_PACKET_HEADER(CZ_REQ_ITEMREPAIR, 0x1fd)
 	DEFINE_PACKET_HEADER(CZ_REQ_ITEMREPAIR, 0x1fd)
 #endif
 #endif
-DEFINE_PACKET_HEADER(ZC_COUPLENAME, 0x1e6);
-DEFINE_PACKET_HEADER(ZC_FRIENDS_LIST, 0x201)
 DEFINE_PACKET_HEADER(ZC_NOTIFY_WEAPONITEMLIST, 0x221)
 DEFINE_PACKET_HEADER(ZC_NOTIFY_WEAPONITEMLIST, 0x221)
 DEFINE_PACKET_HEADER(ZC_ACK_WEAPONREFINE, 0x223)
 DEFINE_PACKET_HEADER(ZC_ACK_WEAPONREFINE, 0x223)
 DEFINE_PACKET_HEADER(CZ_REQ_MAKINGITEM, 0x25b)
 DEFINE_PACKET_HEADER(CZ_REQ_MAKINGITEM, 0x25b)
 DEFINE_PACKET_HEADER(ZC_PC_CASH_POINT_ITEMLIST, 0x287)
 DEFINE_PACKET_HEADER(ZC_PC_CASH_POINT_ITEMLIST, 0x287)
-DEFINE_PACKET_HEADER(ZC_BOSS_INFO, 0x293)
 DEFINE_PACKET_HEADER(ZC_CASH_TIME_COUNTER, 0x298)
 DEFINE_PACKET_HEADER(ZC_CASH_TIME_COUNTER, 0x298)
 DEFINE_PACKET_HEADER(ZC_CASH_ITEM_DELETE, 0x299)
 DEFINE_PACKET_HEADER(ZC_CASH_ITEM_DELETE, 0x299)
-DEFINE_PACKET_HEADER(ZC_NOTIFY_BIND_ON_EQUIP, 0x2d3)
 DEFINE_PACKET_HEADER(ZC_SKILL_SELECT_REQUEST, 0x442)
 DEFINE_PACKET_HEADER(ZC_SKILL_SELECT_REQUEST, 0x442)
 DEFINE_PACKET_HEADER(ZC_FAILED_TRADE_BUYING_STORE_TO_SELLER, 0x824)
 DEFINE_PACKET_HEADER(ZC_FAILED_TRADE_BUYING_STORE_TO_SELLER, 0x824)
 DEFINE_PACKET_HEADER(CZ_SSILIST_ITEM_CLICK, 0x83c)
 DEFINE_PACKET_HEADER(CZ_SSILIST_ITEM_CLICK, 0x83c)
-DEFINE_PACKET_HEADER(CZ_REQ_SE_CASH_TAB_CODE, 0x846)
-DEFINE_PACKET_HEADER(ZC_ACK_SE_CASH_ITEM_LIST2, 0x8c0)
 DEFINE_PACKET_HEADER(ZC_ACK_SCHEDULER_CASHITEM, 0x8ca)
 DEFINE_PACKET_HEADER(ZC_ACK_SCHEDULER_CASHITEM, 0x8ca)
-DEFINE_PACKET_HEADER(ZC_CLEAR_DIALOG, 0x8d6)
-DEFINE_PACKET_HEADER(CZ_INVENTORY_TAB, 0x907)
-DEFINE_PACKET_HEADER(ZC_INVENTORY_TAB, 0x908)
-DEFINE_PACKET_HEADER(ZC_ENTRY_QUEUE_INIT, 0x90e)
-DEFINE_PACKET_HEADER(CZ_REQ_MERGE_ITEM, 0x96e)
-DEFINE_PACKET_HEADER(ZC_BANKING_CHECK, 0x9a6)
 DEFINE_PACKET_HEADER(CZ_REQ_BANKING_DEPOSIT, 0x9a7)
 DEFINE_PACKET_HEADER(CZ_REQ_BANKING_DEPOSIT, 0x9a7)
-DEFINE_PACKET_HEADER(ZC_ACK_BANKING_DEPOSIT, 0x9a8)
 DEFINE_PACKET_HEADER(CZ_REQ_BANKING_WITHDRAW, 0x9a9)
 DEFINE_PACKET_HEADER(CZ_REQ_BANKING_WITHDRAW, 0x9a9)
-DEFINE_PACKET_HEADER(ZC_ACK_BANKING_WITHDRAW, 0x9aa)
 DEFINE_PACKET_HEADER(CZ_REQ_BANKING_CHECK, 0x9ab)
 DEFINE_PACKET_HEADER(CZ_REQ_BANKING_CHECK, 0x9ab)
-DEFINE_PACKET_HEADER(CZ_REQ_CASH_BARGAIN_SALE_ITEM_INFO, 0x9ac)
-DEFINE_PACKET_HEADER(ZC_ACK_CASH_BARGAIN_SALE_ITEM_INFO, 0x9ad)
-DEFINE_PACKET_HEADER(CZ_REQ_APPLY_BARGAIN_SALE_ITEM, 0x9ae)
-DEFINE_PACKET_HEADER(CZ_REQ_REMOVE_BARGAIN_SALE_ITEM, 0x9b0)
-DEFINE_PACKET_HEADER(ZC_NOTIFY_BARGAIN_SALE_SELLING, 0x9b2)
-DEFINE_PACKET_HEADER(ZC_NOTIFY_BARGAIN_SALE_CLOSE, 0x9b3)
 DEFINE_PACKET_HEADER(CZ_REQ_OPEN_BANKING, 0x9b6)
 DEFINE_PACKET_HEADER(CZ_REQ_OPEN_BANKING, 0x9b6)
-DEFINE_PACKET_HEADER(ZC_ACK_OPEN_BANKING, 0x9b7)
 DEFINE_PACKET_HEADER(CZ_REQ_CLOSE_BANKING, 0x9b8)
 DEFINE_PACKET_HEADER(CZ_REQ_CLOSE_BANKING, 0x9b8)
-DEFINE_PACKET_HEADER(ZC_ACK_CLOSE_BANKING, 0x9b9)
-DEFINE_PACKET_HEADER(ZC_ACK_COUNT_BARGAIN_SALE_ITEM, 0x9c4)
-DEFINE_PACKET_HEADER(ZC_ACK_GUILDSTORAGE_LOG, 0x9da)
 DEFINE_PACKET_HEADER(CZ_REQ_APPLY_BARGAIN_SALE_ITEM2, 0xa3d)
 DEFINE_PACKET_HEADER(CZ_REQ_APPLY_BARGAIN_SALE_ITEM2, 0xa3d)
 DEFINE_PACKET_HEADER(CZ_REQ_STYLE_CHANGE, 0xa46)
 DEFINE_PACKET_HEADER(CZ_REQ_STYLE_CHANGE, 0xa46)
 DEFINE_PACKET_HEADER(ZC_STYLE_CHANGE_RES, 0xa47)
 DEFINE_PACKET_HEADER(ZC_STYLE_CHANGE_RES, 0xa47)
-DEFINE_PACKET_HEADER(CZ_REQ_STYLE_CLOSE, 0xa48)
 DEFINE_PACKET_HEADER(ZC_GROUP_ISALIVE, 0xab2)
 DEFINE_PACKET_HEADER(ZC_GROUP_ISALIVE, 0xab2)
-DEFINE_PACKET_HEADER(CZ_PARTY_REQ_MASTER_TO_JOIN, 0x0ae6)
-DEFINE_PACKET_HEADER(ZC_PARTY_REQ_MASTER_TO_JOIN, 0x0ae7)
-DEFINE_PACKET_HEADER(CZ_PARTY_REQ_ACK_MASTER_TO_JOIN, 0x0af8)
-DEFINE_PACKET_HEADER(ZC_PARTY_JOIN_REQ_ACK_FROM_MASTER, 0x0afa)
 DEFINE_PACKET_HEADER(CZ_REQ_STYLE_CHANGE2, 0xafc)
 DEFINE_PACKET_HEADER(CZ_REQ_STYLE_CHANGE2, 0xafc)
 DEFINE_PACKET_HEADER(ZC_REMOVE_EFFECT, 0x0b0d)
 DEFINE_PACKET_HEADER(ZC_REMOVE_EFFECT, 0x0b0d)
-DEFINE_PACKET_HEADER(CZ_UNCONFIRMED_TSTATUS_UP, 0x0b24)
-DEFINE_PACKET_HEADER(CZ_GUILD_EMBLEM_CHANGE2, 0x0b46)
-DEFINE_PACKET_HEADER(ZC_TARGET_SPIRITS, 0xb68)
-DEFINE_PACKET_HEADER(ZC_SOULENERGY, 0xb73)
-DEFINE_PACKET_HEADER(CZ_UNCONFIRMED_RODEX_RETURN, 0xb98)
-DEFINE_PACKET_HEADER(ZC_SUMMON_HP_INIT, 0xb6b)
-DEFINE_PACKET_HEADER(ZC_SUMMON_HP_UPDATE, 0xb6c)
-DEFINE_PACKET_HEADER(ZC_REPUTE_INFO, 0x0b8d)
-DEFINE_PACKET_HEADER(ZC_UI_OPEN_V3, 0x0b9a)
-DEFINE_PACKET_HEADER(CZ_RESET_SKILL, 0x0bb1)
-DEFINE_PACKET_HEADER(CZ_PC_SELL_ITEMLIST, 0x00c9)
 
 
 const int16 MAX_INVENTORY_ITEM_PACKET_NORMAL = ( ( INT16_MAX - ( sizeof( struct packet_itemlist_normal ) - ( sizeof( struct NORMALITEM_INFO ) * MAX_ITEMLIST) ) ) / sizeof( struct NORMALITEM_INFO ) );
 const int16 MAX_INVENTORY_ITEM_PACKET_NORMAL = ( ( INT16_MAX - ( sizeof( struct packet_itemlist_normal ) - ( sizeof( struct NORMALITEM_INFO ) * MAX_ITEMLIST) ) ) / sizeof( struct NORMALITEM_INFO ) );
 const int16 MAX_INVENTORY_ITEM_PACKET_EQUIP = ( ( INT16_MAX - ( sizeof( struct packet_itemlist_equip ) - ( sizeof( struct EQUIPITEM_INFO ) * MAX_ITEMLIST ) ) ) / sizeof( struct EQUIPITEM_INFO ) );
 const int16 MAX_INVENTORY_ITEM_PACKET_EQUIP = ( ( INT16_MAX - ( sizeof( struct packet_itemlist_equip ) - ( sizeof( struct EQUIPITEM_INFO ) * MAX_ITEMLIST ) ) ) / sizeof( struct EQUIPITEM_INFO ) );

+ 158 - 157
src/map/pc.cpp

@@ -1682,9 +1682,9 @@ bool pc_adoption(map_session_data *p1_sd, map_session_data *p2_sd, map_session_d
 
 
 		// Restore progress
 		// Restore progress
 		b_sd->status.job_level = joblevel;
 		b_sd->status.job_level = joblevel;
-		clif_updatestatus(b_sd, SP_JOBLEVEL);
+		clif_updatestatus(*b_sd, SP_JOBLEVEL);
 		b_sd->status.job_exp = jobexp;
 		b_sd->status.job_exp = jobexp;
-		clif_updatestatus(b_sd, SP_JOBEXP);
+		clif_updatestatus(*b_sd, SP_JOBEXP);
 
 
 		// Baby Skills
 		// Baby Skills
 		pc_skill(b_sd, WE_BABY, 1, ADDSKILL_PERMANENT);
 		pc_skill(b_sd, WE_BABY, 1, ADDSKILL_PERMANENT);
@@ -2204,7 +2204,7 @@ bool pc_authok(map_session_data *sd, uint32 login_id2, time_t expiration_time, i
 		/**
 		/**
 		 * Fixes login-without-aura glitch (the screen won't blink at this point, don't worry :P)
 		 * Fixes login-without-aura glitch (the screen won't blink at this point, don't worry :P)
 		 **/
 		 **/
-		clif_changemap(sd,sd->bl.m,sd->bl.x,sd->bl.y);
+		clif_changemap( *sd, sd->bl.m, sd->bl.x, sd->bl.y );
 	}
 	}
 
 
 	pc_validate_skill(sd);
 	pc_validate_skill(sd);
@@ -2233,11 +2233,11 @@ bool pc_authok(map_session_data *sd, uint32 login_id2, time_t expiration_time, i
 	// Check EXP overflow, since in previous revision EXP on Max Level can be more than 'official' Max EXP
 	// Check EXP overflow, since in previous revision EXP on Max Level can be more than 'official' Max EXP
 	if (pc_is_maxbaselv(sd) && sd->status.base_exp > MAX_LEVEL_BASE_EXP) {
 	if (pc_is_maxbaselv(sd) && sd->status.base_exp > MAX_LEVEL_BASE_EXP) {
 		sd->status.base_exp = MAX_LEVEL_BASE_EXP;
 		sd->status.base_exp = MAX_LEVEL_BASE_EXP;
-		clif_updatestatus(sd, SP_BASEEXP);
+		clif_updatestatus(*sd, SP_BASEEXP);
 	}
 	}
 	if (pc_is_maxjoblv(sd) && sd->status.job_exp > MAX_LEVEL_JOB_EXP) {
 	if (pc_is_maxjoblv(sd) && sd->status.job_exp > MAX_LEVEL_JOB_EXP) {
 		sd->status.job_exp = MAX_LEVEL_JOB_EXP;
 		sd->status.job_exp = MAX_LEVEL_JOB_EXP;
-		clif_updatestatus(sd, SP_JOBEXP);
+		clif_updatestatus(*sd, SP_JOBEXP);
 	}
 	}
 
 
 	// Request all registries (auth is considered completed whence they arrive)
 	// Request all registries (auth is considered completed whence they arrive)
@@ -3003,7 +3003,7 @@ int pc_disguise(map_session_data *sd, int class_)
 
 
 	if (sd->bl.prev != nullptr) {
 	if (sd->bl.prev != nullptr) {
 		pc_stop_walking(sd, 0);
 		pc_stop_walking(sd, 0);
-		clif_clearunit_area(&sd->bl, CLR_OUTSIGHT);
+		clif_clearunit_area( sd->bl, CLR_OUTSIGHT );
 	}
 	}
 
 
 	if (!class_) {
 	if (!class_) {
@@ -3020,7 +3020,7 @@ int pc_disguise(map_session_data *sd, int class_)
 		if (class_ == sd->status.class_ && pc_iscarton(sd))
 		if (class_ == sd->status.class_ && pc_iscarton(sd))
 		{	//It seems the cart info is lost on undisguise.
 		{	//It seems the cart info is lost on undisguise.
 			clif_cartlist(sd);
 			clif_cartlist(sd);
-			clif_updatestatus(sd,SP_CARTINFO);
+			clif_updatestatus(*sd,SP_CARTINFO);
 		}
 		}
 		if (sd->chatID) {
 		if (sd->chatID) {
 			struct chat_data* cd;
 			struct chat_data* cd;
@@ -5691,7 +5691,7 @@ char pc_payzeny(map_session_data *sd, int zeny, enum e_log_pick_type type, uint3
 		return 1; //Not enough.
 		return 1; //Not enough.
 
 
 	sd->status.zeny -= zeny;
 	sd->status.zeny -= zeny;
-	clif_updatestatus(sd,SP_ZENY);
+	clif_updatestatus(*sd,SP_ZENY);
 
 
 	log_zeny(*sd, type, log_charid, -zeny);
 	log_zeny(*sd, type, log_charid, -zeny);
 	if( zeny > 0 && sd->state.showzeny ) {
 	if( zeny > 0 && sd->state.showzeny ) {
@@ -5725,7 +5725,7 @@ char pc_getzeny(map_session_data *sd, int zeny, enum e_log_pick_type type, uint3
 		zeny = MAX_ZENY - sd->status.zeny;
 		zeny = MAX_ZENY - sd->status.zeny;
 
 
 	sd->status.zeny += zeny;
 	sd->status.zeny += zeny;
-	clif_updatestatus(sd,SP_ZENY);
+	clif_updatestatus(*sd,SP_ZENY);
 
 
 	log_zeny(*sd, type, log_charid, zeny);
 	log_zeny(*sd, type, log_charid, zeny);
 	if( zeny > 0 && sd->state.showzeny ) {
 	if( zeny > 0 && sd->state.showzeny ) {
@@ -5952,7 +5952,7 @@ enum e_additem_result pc_additem(map_session_data *sd,struct item *item,int amou
 	log_pick_pc(sd, log_type, amount, &sd->inventory.u.items_inventory[i]);
 	log_pick_pc(sd, log_type, amount, &sd->inventory.u.items_inventory[i]);
 
 
 	sd->weight += w;
 	sd->weight += w;
-	clif_updatestatus(sd,SP_WEIGHT);
+	clif_updatestatus(*sd,SP_WEIGHT);
 	//Auto-equip
 	//Auto-equip
 	if(id->flag.autoequip)
 	if(id->flag.autoequip)
 		pc_equipitem(sd, i, id->equip);
 		pc_equipitem(sd, i, id->equip);
@@ -6003,9 +6003,9 @@ char pc_delitem(map_session_data *sd,int n,int amount,int type, short reason, e_
 		sd->inventory_data[n] = nullptr;
 		sd->inventory_data[n] = nullptr;
 	}
 	}
 	if(!(type&1))
 	if(!(type&1))
-		clif_delitem(sd,n,amount,reason);
+		clif_delitem( *sd, n, amount, reason );
 	if(!(type&2))
 	if(!(type&2))
-		clif_updatestatus(sd,SP_WEIGHT);
+		clif_updatestatus(*sd,SP_WEIGHT);
 
 
 	pc_show_questinfo(sd);
 	pc_show_questinfo(sd);
 
 
@@ -6057,7 +6057,8 @@ bool pc_dropitem(map_session_data *sd,int n,int amount)
 		return false;
 		return false;
 
 
 	pc_delitem(sd, n, amount, 1, 0, LOG_TYPE_PICKDROP_PLAYER);
 	pc_delitem(sd, n, amount, 1, 0, LOG_TYPE_PICKDROP_PLAYER);
-	clif_dropitem(sd, n, amount);
+	clif_dropitem( *sd, n, amount );
+
 	return true;
 	return true;
 }
 }
 
 
@@ -6484,7 +6485,7 @@ enum e_additem_result pc_cart_additem(map_session_data *sd,struct item *item,int
 	log_pick_pc(sd, log_type, amount, &sd->cart.u.items_cart[i]);
 	log_pick_pc(sd, log_type, amount, &sd->cart.u.items_cart[i]);
 
 
 	sd->cart_weight += w;
 	sd->cart_weight += w;
-	clif_updatestatus(sd,SP_CARTINFO);
+	clif_updatestatus(*sd,SP_CARTINFO);
 
 
 	return ADDITEM_SUCCESS;
 	return ADDITEM_SUCCESS;
 }
 }
@@ -6510,7 +6511,7 @@ void pc_cart_delitem(map_session_data *sd,int n,int amount,int type,e_log_pick_t
 	}
 	}
 	if(!type) {
 	if(!type) {
 		clif_cart_delitem(sd,n,amount);
 		clif_cart_delitem(sd,n,amount);
-		clif_updatestatus(sd,SP_CARTINFO);
+		clif_updatestatus(*sd,SP_CARTINFO);
 	}
 	}
 }
 }
 
 
@@ -6541,7 +6542,7 @@ void pc_putitemtocart(map_session_data *sd,int idx,int amount)
 	else {
 	else {
 		clif_cart_additem_ack(sd, (flag == ADDITEM_OVERAMOUNT) ? ADDITEM_TO_CART_FAIL_COUNT : ADDITEM_TO_CART_FAIL_WEIGHT);
 		clif_cart_additem_ack(sd, (flag == ADDITEM_OVERAMOUNT) ? ADDITEM_TO_CART_FAIL_COUNT : ADDITEM_TO_CART_FAIL_WEIGHT);
 		clif_additem(sd, idx, amount, 0);
 		clif_additem(sd, idx, amount, 0);
-		clif_delitem(sd, idx, amount, 0);
+		clif_delitem( *sd, idx, amount, 0 );
 	}
 	}
 }
 }
 
 
@@ -6953,7 +6954,7 @@ enum e_setpos pc_setpos(map_session_data* sd, unsigned short mapindex, int x, in
 
 
 	if(sd->bl.prev != nullptr){
 	if(sd->bl.prev != nullptr){
 		unit_remove_map_pc(sd,clrtype);
 		unit_remove_map_pc(sd,clrtype);
-		clif_changemap(sd,m,x,y); // [MouseJstr]
+		clif_changemap( *sd, m, x, y );
 	} else if(sd->state.active) //Tag player for rewarping after map-loading is done. [Skotlex]
 	} else if(sd->state.active) //Tag player for rewarping after map-loading is done. [Skotlex]
 		sd->state.rewarp = 1;
 		sd->state.rewarp = 1;
 
 
@@ -8095,11 +8096,11 @@ int pc_checkbaselevelup(map_session_data *sd) {
 	if (battle_config.pet_lv_rate && sd->pd)	//<Skotlex> update pet's level
 	if (battle_config.pet_lv_rate && sd->pd)	//<Skotlex> update pet's level
 		status_calc_pet(sd->pd,SCO_NONE);
 		status_calc_pet(sd->pd,SCO_NONE);
 
 
-	clif_updatestatus(sd,SP_STATUSPOINT);
-	clif_updatestatus(sd,SP_TRAITPOINT);
-	clif_updatestatus(sd,SP_BASELEVEL);
-	clif_updatestatus(sd,SP_BASEEXP);
-	clif_updatestatus(sd,SP_NEXTBASEEXP);
+	clif_updatestatus(*sd,SP_STATUSPOINT);
+	clif_updatestatus(*sd,SP_TRAITPOINT);
+	clif_updatestatus(*sd,SP_BASELEVEL);
+	clif_updatestatus(*sd,SP_BASEEXP);
+	clif_updatestatus(*sd,SP_NEXTBASEEXP);
 	status_calc_pc(sd,SCO_FORCE);
 	status_calc_pc(sd,SCO_FORCE);
 	status_percent_heal(&sd->bl,100,100);
 	status_percent_heal(&sd->bl,100,100);
 
 
@@ -8166,10 +8167,10 @@ int pc_checkjoblevelup(map_session_data *sd)
 		}
 		}
 	} while ((next=pc_nextjobexp(sd)) > 0 && sd->status.job_exp >= next);
 	} while ((next=pc_nextjobexp(sd)) > 0 && sd->status.job_exp >= next);
 
 
-	clif_updatestatus(sd,SP_JOBLEVEL);
-	clif_updatestatus(sd,SP_JOBEXP);
-	clif_updatestatus(sd,SP_NEXTJOBEXP);
-	clif_updatestatus(sd,SP_SKILLPOINT);
+	clif_updatestatus(*sd,SP_JOBLEVEL);
+	clif_updatestatus(*sd,SP_JOBEXP);
+	clif_updatestatus(*sd,SP_NEXTJOBEXP);
+	clif_updatestatus(*sd,SP_SKILLPOINT);
 	status_calc_pc(sd,SCO_FORCE);
 	status_calc_pc(sd,SCO_FORCE);
 	clif_misceffect(&sd->bl,1);
 	clif_misceffect(&sd->bl,1);
 	if (pc_checkskill(sd, SG_DEVIL) && ((sd->class_&MAPID_THIRDMASK) == MAPID_STAR_EMPEROR || pc_is_maxjoblv(sd)) )
 	if (pc_checkskill(sd, SG_DEVIL) && ((sd->class_&MAPID_THIRDMASK) == MAPID_STAR_EMPEROR || pc_is_maxjoblv(sd)) )
@@ -8338,7 +8339,7 @@ void pc_gainexp(map_session_data *sd, struct block_list *src, t_exp base_exp, t_
 		sd->status.base_exp = util::safe_addition_cap(sd->status.base_exp, base_exp, MAX_EXP);
 		sd->status.base_exp = util::safe_addition_cap(sd->status.base_exp, base_exp, MAX_EXP);
 
 
 		if (!pc_checkbaselevelup(sd))
 		if (!pc_checkbaselevelup(sd))
-			clif_updatestatus(sd,SP_BASEEXP);
+			clif_updatestatus(*sd,SP_BASEEXP);
 	}
 	}
 
 
 	// Give EXP for Job Level
 	// Give EXP for Job Level
@@ -8346,7 +8347,7 @@ void pc_gainexp(map_session_data *sd, struct block_list *src, t_exp base_exp, t_
 		sd->status.job_exp = util::safe_addition_cap(sd->status.job_exp, job_exp, MAX_EXP);
 		sd->status.job_exp = util::safe_addition_cap(sd->status.job_exp, job_exp, MAX_EXP);
 
 
 		if (!pc_checkjoblevelup(sd))
 		if (!pc_checkjoblevelup(sd))
-			clif_updatestatus(sd,SP_JOBEXP);
+			clif_updatestatus(*sd,SP_JOBEXP);
 	}
 	}
 
 
 	if (flag&1)
 	if (flag&1)
@@ -8372,14 +8373,14 @@ void pc_lostexp(map_session_data *sd, t_exp base_exp, t_exp job_exp) {
 		base_exp = u64min(sd->status.base_exp, base_exp);
 		base_exp = u64min(sd->status.base_exp, base_exp);
 		sd->status.base_exp -= base_exp;
 		sd->status.base_exp -= base_exp;
 		clif_displayexp(sd, base_exp, SP_BASEEXP, false, true);
 		clif_displayexp(sd, base_exp, SP_BASEEXP, false, true);
-		clif_updatestatus(sd, SP_BASEEXP);
+		clif_updatestatus(*sd, SP_BASEEXP);
 	}
 	}
 
 
 	if (job_exp) {
 	if (job_exp) {
 		job_exp = u64min(sd->status.job_exp, job_exp);
 		job_exp = u64min(sd->status.job_exp, job_exp);
 		sd->status.job_exp -= job_exp;
 		sd->status.job_exp -= job_exp;
 		clif_displayexp(sd, job_exp, SP_JOBEXP, false, true);
 		clif_displayexp(sd, job_exp, SP_JOBEXP, false, true);
-		clif_updatestatus(sd, SP_JOBEXP);
+		clif_updatestatus(*sd, SP_JOBEXP);
 	}
 	}
 
 
 	if (sd->state.showexp && (base_exp || job_exp))
 	if (sd->state.showexp && (base_exp || job_exp))
@@ -8730,15 +8731,15 @@ bool pc_statusup(map_session_data* sd, int type, int increase)
 	status_calc_pc(sd,SCO_NONE);
 	status_calc_pc(sd,SCO_NONE);
 
 
 	// update increase cost indicator
 	// update increase cost indicator
-	clif_updatestatus(sd, SP_USTR + type-SP_STR);
+	clif_updatestatus(*sd, static_cast<_sp>( SP_USTR + type-SP_STR ) );
 
 
 	// update statpoint count
 	// update statpoint count
-	clif_updatestatus(sd, SP_STATUSPOINT);
+	clif_updatestatus(*sd, SP_STATUSPOINT);
 
 
 	// update stat value
 	// update stat value
 	clif_statusupack(sd, type, 1, final_value); // required
 	clif_statusupack(sd, type, 1, final_value); // required
 	if( final_value > 255 )
 	if( final_value > 255 )
-		clif_updatestatus(sd, type); // send after the 'ack' to override the truncated value
+		clif_updatestatus(*sd, static_cast<_sp>( type ) ); // send after the 'ack' to override the truncated value
 
 
 	achievement_update_objective(sd, AG_GOAL_STATUS, 1, final_value);
 	achievement_update_objective(sd, AG_GOAL_STATUS, 1, final_value);
 
 
@@ -8777,12 +8778,12 @@ int pc_statusup2(map_session_data* sd, int type, int val)
 
 
 	// update increase cost indicator
 	// update increase cost indicator
 	if( need != pc_need_status_point(sd,type,1) )
 	if( need != pc_need_status_point(sd,type,1) )
-		clif_updatestatus(sd, SP_USTR + type-SP_STR);
+		clif_updatestatus(*sd, static_cast<_sp>( SP_USTR + type-SP_STR ) );
 
 
 	// update stat value
 	// update stat value
 	clif_statusupack(sd,type,1,val); // required
 	clif_statusupack(sd,type,1,val); // required
 	if( val > 255 )
 	if( val > 255 )
-		clif_updatestatus(sd,type); // send after the 'ack' to override the truncated value
+		clif_updatestatus(*sd, static_cast<_sp>( type ) ); // send after the 'ack' to override the truncated value
 
 
 	return val;
 	return val;
 }
 }
@@ -8893,15 +8894,15 @@ bool pc_traitstatusup(map_session_data* sd, int type, int increase)
 	status_calc_pc(sd, SCO_NONE);
 	status_calc_pc(sd, SCO_NONE);
 
 
 	// update increase cost indicator
 	// update increase cost indicator
-	clif_updatestatus(sd, SP_UPOW + type - SP_POW);
+	clif_updatestatus(*sd, static_cast<_sp>( SP_UPOW + type - SP_POW ) );
 
 
 	// update statpoint count
 	// update statpoint count
-	clif_updatestatus(sd, SP_TRAITPOINT);
+	clif_updatestatus(*sd, SP_TRAITPOINT);
 
 
 	// update stat value
 	// update stat value
 	clif_statusupack(sd, type, 1, final_value); // required
 	clif_statusupack(sd, type, 1, final_value); // required
 	if (final_value > 255)
 	if (final_value > 255)
-		clif_updatestatus(sd, type); // send after the 'ack' to override the truncated value
+		clif_updatestatus(*sd, static_cast<_sp>( type ) ); // send after the 'ack' to override the truncated value
 
 
 	//achievement_update_objective(sd, AG_GOAL_STATUS, 1, final_value);
 	//achievement_update_objective(sd, AG_GOAL_STATUS, 1, final_value);
 
 
@@ -8938,12 +8939,12 @@ int pc_traitstatusup2(map_session_data* sd, int type, int val)
 
 
 	// update increase cost indicator
 	// update increase cost indicator
 	if (need != pc_need_trait_point(sd, type, 1))
 	if (need != pc_need_trait_point(sd, type, 1))
-		clif_updatestatus(sd, SP_UPOW + type - SP_POW);
+		clif_updatestatus(*sd, static_cast<_sp>( SP_UPOW + type - SP_POW ) );
 
 
 	// update stat value
 	// update stat value
 	clif_statusupack(sd, type, 1, val); // required
 	clif_statusupack(sd, type, 1, val); // required
 	if (val > 255)
 	if (val > 255)
-		clif_updatestatus(sd, type); // send after the 'ack' to override the truncated value
+		clif_updatestatus(*sd, static_cast<_sp>( type ) ); // send after the 'ack' to override the truncated value
 
 
 	return val;
 	return val;
 }
 }
@@ -8994,9 +8995,9 @@ void pc_skillup(map_session_data *sd,uint16 skill_id)
 			range = skill_get_range2(&sd->bl, skill_id, lv, false);
 			range = skill_get_range2(&sd->bl, skill_id, lv, false);
 			upgradable = (lv < skill_tree_get_max(sd->status.skill[idx].id, sd->status.class_)) ? 1 : 0;
 			upgradable = (lv < skill_tree_get_max(sd->status.skill[idx].id, sd->status.class_)) ? 1 : 0;
 			clif_skillup(sd,skill_id,lv,range,upgradable);
 			clif_skillup(sd,skill_id,lv,range,upgradable);
-			clif_updatestatus(sd,SP_SKILLPOINT);
+			clif_updatestatus(*sd,SP_SKILLPOINT);
 			if( skill_id == GN_REMODELING_CART ) /* cart weight info was updated by status_calc_pc */
 			if( skill_id == GN_REMODELING_CART ) /* cart weight info was updated by status_calc_pc */
-				clif_updatestatus(sd,SP_CARTINFO);
+				clif_updatestatus(*sd,SP_CARTINFO);
 			if (pc_checkskill(sd, SG_DEVIL) && ((sd->class_&MAPID_THIRDMASK) == MAPID_STAR_EMPEROR || pc_is_maxjoblv(sd)))
 			if (pc_checkskill(sd, SG_DEVIL) && ((sd->class_&MAPID_THIRDMASK) == MAPID_STAR_EMPEROR || pc_is_maxjoblv(sd)))
 				clif_status_change(&sd->bl, EFST_DEVIL1, 1, 0, 0, 0, 1); //Permanent blind effect from SG_DEVIL.
 				clif_status_change(&sd->bl, EFST_DEVIL1, 1, 0, 0, 0, 1); //Permanent blind effect from SG_DEVIL.
 			if (!pc_has_permission(sd, PC_PERM_ALL_SKILL)) // may skill everything at any time anyways, and this would cause a huge slowdown
 			if (!pc_has_permission(sd, PC_PERM_ALL_SKILL)) // may skill everything at any time anyways, and this would cause a huge slowdown
@@ -9117,41 +9118,41 @@ int pc_resetlvl(map_session_data* sd,int type)
 		sd->status.job_exp=0;
 		sd->status.job_exp=0;
 	}
 	}
 
 
-	clif_updatestatus(sd,SP_STATUSPOINT);
-	clif_updatestatus(sd,SP_TRAITPOINT);
-	clif_updatestatus(sd,SP_STR);
-	clif_updatestatus(sd,SP_AGI);
-	clif_updatestatus(sd,SP_VIT);
-	clif_updatestatus(sd,SP_INT);
-	clif_updatestatus(sd,SP_DEX);
-	clif_updatestatus(sd,SP_LUK);
-	clif_updatestatus(sd,SP_POW);
-	clif_updatestatus(sd,SP_STA);
-	clif_updatestatus(sd,SP_WIS);
-	clif_updatestatus(sd,SP_SPL);
-	clif_updatestatus(sd,SP_CON);
-	clif_updatestatus(sd,SP_CRT);
-	clif_updatestatus(sd,SP_BASELEVEL);
-	clif_updatestatus(sd,SP_JOBLEVEL);
-	clif_updatestatus(sd,SP_STATUSPOINT);
-	clif_updatestatus(sd,SP_BASEEXP);
-	clif_updatestatus(sd,SP_JOBEXP);
-	clif_updatestatus(sd,SP_NEXTBASEEXP);
-	clif_updatestatus(sd,SP_NEXTJOBEXP);
-	clif_updatestatus(sd,SP_SKILLPOINT);
-
-	clif_updatestatus(sd,SP_USTR);	// Updates needed stat points - Valaris
-	clif_updatestatus(sd,SP_UAGI);
-	clif_updatestatus(sd,SP_UVIT);
-	clif_updatestatus(sd,SP_UINT);
-	clif_updatestatus(sd,SP_UDEX);
-	clif_updatestatus(sd,SP_ULUK);	// End Addition
-	clif_updatestatus(sd,SP_UPOW);
-	clif_updatestatus(sd,SP_USTA);
-	clif_updatestatus(sd,SP_UWIS);
-	clif_updatestatus(sd,SP_USPL);
-	clif_updatestatus(sd,SP_UCON);
-	clif_updatestatus(sd,SP_UCRT);
+	clif_updatestatus(*sd,SP_STATUSPOINT);
+	clif_updatestatus(*sd,SP_TRAITPOINT);
+	clif_updatestatus(*sd,SP_STR);
+	clif_updatestatus(*sd,SP_AGI);
+	clif_updatestatus(*sd,SP_VIT);
+	clif_updatestatus(*sd,SP_INT);
+	clif_updatestatus(*sd,SP_DEX);
+	clif_updatestatus(*sd,SP_LUK);
+	clif_updatestatus(*sd,SP_POW);
+	clif_updatestatus(*sd,SP_STA);
+	clif_updatestatus(*sd,SP_WIS);
+	clif_updatestatus(*sd,SP_SPL);
+	clif_updatestatus(*sd,SP_CON);
+	clif_updatestatus(*sd,SP_CRT);
+	clif_updatestatus(*sd,SP_BASELEVEL);
+	clif_updatestatus(*sd,SP_JOBLEVEL);
+	clif_updatestatus(*sd,SP_STATUSPOINT);
+	clif_updatestatus(*sd,SP_BASEEXP);
+	clif_updatestatus(*sd,SP_JOBEXP);
+	clif_updatestatus(*sd,SP_NEXTBASEEXP);
+	clif_updatestatus(*sd,SP_NEXTJOBEXP);
+	clif_updatestatus(*sd,SP_SKILLPOINT);
+
+	clif_updatestatus(*sd,SP_USTR);	// Updates needed stat points - Valaris
+	clif_updatestatus(*sd,SP_UAGI);
+	clif_updatestatus(*sd,SP_UVIT);
+	clif_updatestatus(*sd,SP_UINT);
+	clif_updatestatus(*sd,SP_UDEX);
+	clif_updatestatus(*sd,SP_ULUK);	// End Addition
+	clif_updatestatus(*sd,SP_UPOW);
+	clif_updatestatus(*sd,SP_USTA);
+	clif_updatestatus(*sd,SP_UWIS);
+	clif_updatestatus(*sd,SP_USPL);
+	clif_updatestatus(*sd,SP_UCON);
+	clif_updatestatus(*sd,SP_UCRT);
 
 
 	for(i=0;i<EQI_MAX;i++) { // unequip items that can't be equipped by base 1 [Valaris]
 	for(i=0;i<EQI_MAX;i++) { // unequip items that can't be equipped by base 1 [Valaris]
 		if(sd->equip_index[i] >= 0)
 		if(sd->equip_index[i] >= 0)
@@ -9179,7 +9180,7 @@ int pc_resetstate(map_session_data* sd)
 		ShowError( "pc_resetstate: Capping the Level to %d to reset the stats of %d:%d, the base level (%d) is greater than the max level supported.\n",
 		ShowError( "pc_resetstate: Capping the Level to %d to reset the stats of %d:%d, the base level (%d) is greater than the max level supported.\n",
 			pc_maxbaselv( sd ), sd->status.account_id, sd->status.char_id, sd->status.base_level );
 			pc_maxbaselv( sd ), sd->status.account_id, sd->status.char_id, sd->status.base_level );
 		sd->status.base_level = pc_maxbaselv( sd );
 		sd->status.base_level = pc_maxbaselv( sd );
-		clif_updatestatus( sd, SP_BASELEVEL );
+		clif_updatestatus( *sd, SP_BASELEVEL );
 	}
 	}
 
 
 	sd->status.status_point = statpoint_db.get_table_point( sd->status.base_level );
 	sd->status.status_point = statpoint_db.get_table_point( sd->status.base_level );
@@ -9206,34 +9207,34 @@ int pc_resetstate(map_session_data* sd)
 	pc_setstat(sd, SP_CON, 0);
 	pc_setstat(sd, SP_CON, 0);
 	pc_setstat(sd, SP_CRT, 0);
 	pc_setstat(sd, SP_CRT, 0);
 
 
-	clif_updatestatus(sd,SP_STR);
-	clif_updatestatus(sd,SP_AGI);
-	clif_updatestatus(sd,SP_VIT);
-	clif_updatestatus(sd,SP_INT);
-	clif_updatestatus(sd,SP_DEX);
-	clif_updatestatus(sd,SP_LUK);
-	clif_updatestatus(sd,SP_POW);
-	clif_updatestatus(sd,SP_STA);
-	clif_updatestatus(sd,SP_WIS);
-	clif_updatestatus(sd,SP_SPL);
-	clif_updatestatus(sd,SP_CON);
-	clif_updatestatus(sd,SP_CRT);
-
-	clif_updatestatus(sd,SP_USTR);	// Updates needed stat points - Valaris
-	clif_updatestatus(sd,SP_UAGI);
-	clif_updatestatus(sd,SP_UVIT);
-	clif_updatestatus(sd,SP_UINT);
-	clif_updatestatus(sd,SP_UDEX);
-	clif_updatestatus(sd,SP_ULUK);	// End Addition
-	clif_updatestatus(sd,SP_UPOW);
-	clif_updatestatus(sd,SP_USTA);
-	clif_updatestatus(sd,SP_UWIS);
-	clif_updatestatus(sd,SP_USPL);
-	clif_updatestatus(sd,SP_UCON);
-	clif_updatestatus(sd,SP_UCRT);
-
-	clif_updatestatus(sd,SP_STATUSPOINT);
-	clif_updatestatus(sd,SP_TRAITPOINT);
+	clif_updatestatus(*sd,SP_STR);
+	clif_updatestatus(*sd,SP_AGI);
+	clif_updatestatus(*sd,SP_VIT);
+	clif_updatestatus(*sd,SP_INT);
+	clif_updatestatus(*sd,SP_DEX);
+	clif_updatestatus(*sd,SP_LUK);
+	clif_updatestatus(*sd,SP_POW);
+	clif_updatestatus(*sd,SP_STA);
+	clif_updatestatus(*sd,SP_WIS);
+	clif_updatestatus(*sd,SP_SPL);
+	clif_updatestatus(*sd,SP_CON);
+	clif_updatestatus(*sd,SP_CRT);
+
+	clif_updatestatus(*sd,SP_USTR);	// Updates needed stat points - Valaris
+	clif_updatestatus(*sd,SP_UAGI);
+	clif_updatestatus(*sd,SP_UVIT);
+	clif_updatestatus(*sd,SP_UINT);
+	clif_updatestatus(*sd,SP_UDEX);
+	clif_updatestatus(*sd,SP_ULUK);	// End Addition
+	clif_updatestatus(*sd,SP_UPOW);
+	clif_updatestatus(*sd,SP_USTA);
+	clif_updatestatus(*sd,SP_UWIS);
+	clif_updatestatus(*sd,SP_USPL);
+	clif_updatestatus(*sd,SP_UCON);
+	clif_updatestatus(*sd,SP_UCRT);
+
+	clif_updatestatus(*sd,SP_STATUSPOINT);
+	clif_updatestatus(*sd,SP_TRAITPOINT);
 
 
 	if( sd->mission_mobid ) { //bugreport:2200
 	if( sd->mission_mobid ) { //bugreport:2200
 		sd->mission_mobid = 0;
 		sd->mission_mobid = 0;
@@ -9356,7 +9357,7 @@ int pc_resetskill(map_session_data* sd, int flag)
 	sd->status.skill_point += skill_point;
 	sd->status.skill_point += skill_point;
 
 
 	if (flag&1) {
 	if (flag&1) {
-		clif_updatestatus(sd,SP_SKILLPOINT);
+		clif_updatestatus(*sd,SP_SKILLPOINT);
 		clif_skillinfoblock(sd);
 		clif_skillinfoblock(sd);
 		status_calc_pc(sd, SCO_FORCE);
 		status_calc_pc(sd, SCO_FORCE);
 	}
 	}
@@ -9508,9 +9509,9 @@ static TIMER_FUNC(pc_respawn_timer){
  *------------------------------------------*/
  *------------------------------------------*/
 void pc_damage(map_session_data *sd,struct block_list *src,unsigned int hp, unsigned int sp, unsigned int ap)
 void pc_damage(map_session_data *sd,struct block_list *src,unsigned int hp, unsigned int sp, unsigned int ap)
 {
 {
-	if (ap) clif_updatestatus(sd,SP_AP);
-	if (sp) clif_updatestatus(sd,SP_SP);
-	if (hp) clif_updatestatus(sd,SP_HP);
+	if (ap) clif_updatestatus(*sd,SP_AP);
+	if (sp) clif_updatestatus(*sd,SP_SP);
+	if (hp) clif_updatestatus(*sd,SP_HP);
 	else return;
 	else return;
 
 
 	if (!src)
 	if (!src)
@@ -9552,7 +9553,7 @@ void pc_close_npc(map_session_data *sd,int flag)
 
 
 	if (sd->npc_id || sd->npc_shopid) {
 	if (sd->npc_id || sd->npc_shopid) {
 		if (sd->state.using_fake_npc) {
 		if (sd->state.using_fake_npc) {
-			clif_clearunit_single(sd->npc_id, CLR_OUTSIGHT, sd->fd);
+			clif_clearunit_single( sd->npc_id, CLR_OUTSIGHT, *sd );
 			sd->state.using_fake_npc = 0;
 			sd->state.using_fake_npc = 0;
 		}
 		}
 
 
@@ -9575,7 +9576,7 @@ void pc_close_npc(map_session_data *sd,int flag)
 #endif
 #endif
 		if (sd->st) {
 		if (sd->st) {
 			if (sd->st->state == CLOSE) {
 			if (sd->st->state == CLOSE) {
-				clif_scriptclose(sd, sd->npc_id);
+				clif_scriptclose( *sd, sd->npc_id );
 				clif_scriptclear( *sd, sd->npc_id ); // [Ind/Hercules]
 				clif_scriptclear( *sd, sd->npc_id ); // [Ind/Hercules]
 				sd->st->state = END; // Force to end now
 				sd->st->state = END; // Force to end now
 			}
 			}
@@ -9959,9 +9960,9 @@ int pc_dead(map_session_data *sd,struct block_list *src)
 }
 }
 
 
 void pc_revive(map_session_data *sd,unsigned int hp, unsigned int sp, unsigned int ap) {
 void pc_revive(map_session_data *sd,unsigned int hp, unsigned int sp, unsigned int ap) {
-	if(hp) clif_updatestatus(sd,SP_HP);
-	if(sp) clif_updatestatus(sd,SP_SP);
-	if(ap) clif_updatestatus(sd,SP_AP);
+	if(hp) clif_updatestatus(*sd,SP_HP);
+	if(sp) clif_updatestatus(*sd,SP_SP);
+	if(ap) clif_updatestatus(*sd,SP_AP);
 
 
 	pc_setstand(sd, true);
 	pc_setstand(sd, true);
 	if(battle_config.pc_invincible_time > 0)
 	if(battle_config.pc_invincible_time > 0)
@@ -10230,11 +10231,11 @@ bool pc_setparam(map_session_data *sd,int64 type,int64 val_tmp)
 		}
 		}
 		sd->status.base_level = val;
 		sd->status.base_level = val;
 		sd->status.base_exp = 0;
 		sd->status.base_exp = 0;
-		// clif_updatestatus(sd, SP_BASELEVEL);  // Gets updated at the bottom
-		clif_updatestatus(sd, SP_NEXTBASEEXP);
-		clif_updatestatus(sd, SP_STATUSPOINT);
-		clif_updatestatus(sd, SP_TRAITPOINT);
-		clif_updatestatus(sd, SP_BASEEXP);
+		// clif_updatestatus(*sd, SP_BASELEVEL);  // Gets updated at the bottom
+		clif_updatestatus(*sd, SP_NEXTBASEEXP);
+		clif_updatestatus(*sd, SP_STATUSPOINT);
+		clif_updatestatus(*sd, SP_TRAITPOINT);
+		clif_updatestatus(*sd, SP_BASEEXP);
 		status_calc_pc(sd, SCO_FORCE);
 		status_calc_pc(sd, SCO_FORCE);
 		if(sd->status.party_id)
 		if(sd->status.party_id)
 			party_send_levelup(sd);
 			party_send_levelup(sd);
@@ -10243,13 +10244,13 @@ bool pc_setparam(map_session_data *sd,int64 type,int64 val_tmp)
 		if (val >= sd->status.job_level) {
 		if (val >= sd->status.job_level) {
 			if (val > pc_maxjoblv(sd)) val = pc_maxjoblv(sd);
 			if (val > pc_maxjoblv(sd)) val = pc_maxjoblv(sd);
 			sd->status.skill_point += val - sd->status.job_level;
 			sd->status.skill_point += val - sd->status.job_level;
-			clif_updatestatus(sd, SP_SKILLPOINT);
+			clif_updatestatus(*sd, SP_SKILLPOINT);
 		}
 		}
 		sd->status.job_level = val;
 		sd->status.job_level = val;
 		sd->status.job_exp = 0;
 		sd->status.job_exp = 0;
-		// clif_updatestatus(sd, SP_JOBLEVEL);  // Gets updated at the bottom
-		clif_updatestatus(sd, SP_NEXTJOBEXP);
-		clif_updatestatus(sd, SP_JOBEXP);
+		// clif_updatestatus(*sd, SP_JOBLEVEL);  // Gets updated at the bottom
+		clif_updatestatus(*sd, SP_NEXTJOBEXP);
+		clif_updatestatus(*sd, SP_JOBEXP);
 		status_calc_pc(sd, SCO_FORCE);
 		status_calc_pc(sd, SCO_FORCE);
 		break;
 		break;
 	case SP_SKILLPOINT:
 	case SP_SKILLPOINT:
@@ -10304,7 +10305,7 @@ bool pc_setparam(map_session_data *sd,int64 type,int64 val_tmp)
 		if( sd->battle_status.max_hp < sd->battle_status.hp )
 		if( sd->battle_status.max_hp < sd->battle_status.hp )
 		{
 		{
 			sd->battle_status.hp = sd->battle_status.max_hp;
 			sd->battle_status.hp = sd->battle_status.max_hp;
-			clif_updatestatus(sd, SP_HP);
+			clif_updatestatus(*sd, SP_HP);
 		}
 		}
 		break;
 		break;
 	case SP_SP:
 	case SP_SP:
@@ -10316,7 +10317,7 @@ bool pc_setparam(map_session_data *sd,int64 type,int64 val_tmp)
 		if( sd->battle_status.max_sp < sd->battle_status.sp )
 		if( sd->battle_status.max_sp < sd->battle_status.sp )
 		{
 		{
 			sd->battle_status.sp = sd->battle_status.max_sp;
 			sd->battle_status.sp = sd->battle_status.max_sp;
-			clif_updatestatus(sd, SP_SP);
+			clif_updatestatus(*sd, SP_SP);
 		}
 		}
 		break;
 		break;
 	case SP_AP:
 	case SP_AP:
@@ -10327,7 +10328,7 @@ bool pc_setparam(map_session_data *sd,int64 type,int64 val_tmp)
 
 
 		if (sd->battle_status.max_ap < sd->battle_status.ap) {
 		if (sd->battle_status.max_ap < sd->battle_status.ap) {
 			sd->battle_status.ap = sd->battle_status.max_ap;
 			sd->battle_status.ap = sd->battle_status.max_ap;
-			clif_updatestatus(sd, SP_AP);
+			clif_updatestatus(*sd, SP_AP);
 		}
 		}
 		break;
 		break;
 	case SP_STR:
 	case SP_STR:
@@ -10456,7 +10457,7 @@ bool pc_setparam(map_session_data *sd,int64 type,int64 val_tmp)
 		ShowError("pc_setparam: Attempted to set unknown parameter '%lld'.\n", type);
 		ShowError("pc_setparam: Attempted to set unknown parameter '%lld'.\n", type);
 		return false;
 		return false;
 	}
 	}
-	clif_updatestatus(sd,static_cast<int>(type));
+	clif_updatestatus(*sd,static_cast<_sp>(type));
 
 
 	return true;
 	return true;
 }
 }
@@ -10479,11 +10480,11 @@ void pc_heal(map_session_data *sd,unsigned int hp,unsigned int sp, unsigned int
 			clif_heal(sd->fd,SP_AP,ap);
 			clif_heal(sd->fd,SP_AP,ap);
 	} else {
 	} else {
 		if(hp)
 		if(hp)
-			clif_updatestatus(sd,SP_HP);
+			clif_updatestatus(*sd,SP_HP);
 		if(sp)
 		if(sp)
-			clif_updatestatus(sd,SP_SP);
+			clif_updatestatus(*sd,SP_SP);
 		if (ap)
 		if (ap)
-			clif_updatestatus(sd,SP_AP);
+			clif_updatestatus(*sd,SP_AP);
 	}
 	}
 	return;
 	return;
 }
 }
@@ -10739,56 +10740,56 @@ bool pc_jobchange(map_session_data *sd,int job, char upper)
 		sd->status.base_level = pc_maxbaselv(sd);
 		sd->status.base_level = pc_maxbaselv(sd);
 		sd->status.base_exp=0;
 		sd->status.base_exp=0;
 		pc_resetstate(sd);
 		pc_resetstate(sd);
-		clif_updatestatus(sd,SP_STATUSPOINT);
-		clif_updatestatus(sd,SP_TRAITPOINT);
-		clif_updatestatus(sd,SP_BASELEVEL);
-		clif_updatestatus(sd,SP_BASEEXP);
-		clif_updatestatus(sd,SP_NEXTBASEEXP);
+		clif_updatestatus(*sd,SP_STATUSPOINT);
+		clif_updatestatus(*sd,SP_TRAITPOINT);
+		clif_updatestatus(*sd,SP_BASELEVEL);
+		clif_updatestatus(*sd,SP_BASEEXP);
+		clif_updatestatus(*sd,SP_NEXTBASEEXP);
 	}
 	}
 
 
 	// Give or reduce transcendent status points
 	// Give or reduce transcendent status points
 	if( (b_class&JOBL_UPPER) && !(previous_class&JOBL_UPPER) ){ // Change from a non t class to a t class -> give points
 	if( (b_class&JOBL_UPPER) && !(previous_class&JOBL_UPPER) ){ // Change from a non t class to a t class -> give points
 		sd->status.status_point += battle_config.transcendent_status_points;
 		sd->status.status_point += battle_config.transcendent_status_points;
-		clif_updatestatus(sd,SP_STATUSPOINT);
+		clif_updatestatus(*sd,SP_STATUSPOINT);
 	}else if( !(b_class&JOBL_UPPER) && (previous_class&JOBL_UPPER) ){ // Change from a t class to a non t class -> remove points
 	}else if( !(b_class&JOBL_UPPER) && (previous_class&JOBL_UPPER) ){ // Change from a t class to a non t class -> remove points
 		if( sd->status.status_point < battle_config.transcendent_status_points ){
 		if( sd->status.status_point < battle_config.transcendent_status_points ){
 			// The player already used his bonus points, so we have to reset his status points
 			// The player already used his bonus points, so we have to reset his status points
 			pc_resetstate(sd);
 			pc_resetstate(sd);
 		}else{
 		}else{
 			sd->status.status_point -= battle_config.transcendent_status_points;
 			sd->status.status_point -= battle_config.transcendent_status_points;
-			clif_updatestatus(sd,SP_STATUSPOINT);
+			clif_updatestatus(*sd,SP_STATUSPOINT);
 		}
 		}
 	}
 	}
 
 
 	// Give or reduce trait status points
 	// Give or reduce trait status points
 	if ((b_class & JOBL_FOURTH) && !(previous_class & JOBL_FOURTH)) {// Change to a 4th job.
 	if ((b_class & JOBL_FOURTH) && !(previous_class & JOBL_FOURTH)) {// Change to a 4th job.
 		sd->status.trait_point += battle_config.trait_points_job_change;
 		sd->status.trait_point += battle_config.trait_points_job_change;
-		clif_updatestatus(sd, SP_TRAITPOINT);
-		clif_updatestatus(sd, SP_UPOW);
-		clif_updatestatus(sd, SP_USTA);
-		clif_updatestatus(sd, SP_UWIS);
-		clif_updatestatus(sd, SP_USPL);
-		clif_updatestatus(sd, SP_UCON);
-		clif_updatestatus(sd, SP_UCRT);
+		clif_updatestatus(*sd, SP_TRAITPOINT);
+		clif_updatestatus(*sd, SP_UPOW);
+		clif_updatestatus(*sd, SP_USTA);
+		clif_updatestatus(*sd, SP_UWIS);
+		clif_updatestatus(*sd, SP_USPL);
+		clif_updatestatus(*sd, SP_UCON);
+		clif_updatestatus(*sd, SP_UCRT);
 	} else if (!(b_class & JOBL_FOURTH) && (previous_class & JOBL_FOURTH)) {// Change to a non 4th job.
 	} else if (!(b_class & JOBL_FOURTH) && (previous_class & JOBL_FOURTH)) {// Change to a non 4th job.
 		if (sd->status.trait_point < battle_config.trait_points_job_change) {
 		if (sd->status.trait_point < battle_config.trait_points_job_change) {
 			// Player may have already used the trait status points. Force a reset.
 			// Player may have already used the trait status points. Force a reset.
 			pc_resetstate(sd);
 			pc_resetstate(sd);
 		} else {
 		} else {
 			sd->status.trait_point = 0;
 			sd->status.trait_point = 0;
-			clif_updatestatus(sd, SP_TRAITPOINT);
-			clif_updatestatus(sd, SP_UPOW);
-			clif_updatestatus(sd, SP_USTA);
-			clif_updatestatus(sd, SP_UWIS);
-			clif_updatestatus(sd, SP_USPL);
-			clif_updatestatus(sd, SP_UCON);
-			clif_updatestatus(sd, SP_UCRT);
+			clif_updatestatus(*sd, SP_TRAITPOINT);
+			clif_updatestatus(*sd, SP_UPOW);
+			clif_updatestatus(*sd, SP_USTA);
+			clif_updatestatus(*sd, SP_UWIS);
+			clif_updatestatus(*sd, SP_USPL);
+			clif_updatestatus(*sd, SP_UCON);
+			clif_updatestatus(*sd, SP_UCRT);
 		}
 		}
 	}
 	}
 
 
-	clif_updatestatus(sd,SP_JOBLEVEL);
-	clif_updatestatus(sd,SP_JOBEXP);
-	clif_updatestatus(sd,SP_NEXTJOBEXP);
+	clif_updatestatus(*sd,SP_JOBLEVEL);
+	clif_updatestatus(*sd,SP_JOBEXP);
+	clif_updatestatus(*sd,SP_NEXTJOBEXP);
 
 
 	for(i=0;i<EQI_MAX;i++) {
 	for(i=0;i<EQI_MAX;i++) {
 		if(sd->equip_index[i] >= 0)
 		if(sd->equip_index[i] >= 0)
@@ -11007,7 +11008,7 @@ void pc_setoption(map_session_data *sd,int type, int subtype)
 #ifndef NEW_CARTS
 #ifndef NEW_CARTS
 	if( type&OPTION_CART && !( p_type&OPTION_CART ) ) { //Cart On
 	if( type&OPTION_CART && !( p_type&OPTION_CART ) ) { //Cart On
 		clif_cartlist(sd);
 		clif_cartlist(sd);
-		clif_updatestatus(sd, SP_CARTINFO);
+		clif_updatestatus(*sd, SP_CARTINFO);
 		if(pc_checkskill(sd, MC_PUSHCART) < 10)
 		if(pc_checkskill(sd, MC_PUSHCART) < 10)
 			status_calc_pc(sd,SCO_NONE); //Apply speed penalty.
 			status_calc_pc(sd,SCO_NONE); //Apply speed penalty.
 	} else if( !( type&OPTION_CART ) && p_type&OPTION_CART ){ //Cart Off
 	} else if( !( type&OPTION_CART ) && p_type&OPTION_CART ){ //Cart Off
@@ -11090,7 +11091,7 @@ bool pc_setcart(map_session_data *sd,int type) {
 				clif_cartlist(sd);
 				clif_cartlist(sd);
 				status_calc_cart_weight(sd, (e_status_calc_weight_opt)(CALCWT_ITEM|CALCWT_MAXBONUS|CALCWT_CARTSTATE));
 				status_calc_cart_weight(sd, (e_status_calc_weight_opt)(CALCWT_ITEM|CALCWT_MAXBONUS|CALCWT_CARTSTATE));
 			}
 			}
-			clif_updatestatus(sd, SP_CARTINFO);
+			clif_updatestatus(*sd, SP_CARTINFO);
 			sc_start(&sd->bl, &sd->bl, SC_PUSH_CART, 100, type, 0);
 			sc_start(&sd->bl, &sd->bl, SC_PUSH_CART, 100, type, 0);
 			break;
 			break;
 	}
 	}

+ 1 - 1
src/map/pet.cpp

@@ -2287,7 +2287,7 @@ void pet_evolution(map_session_data *sd, int16 pet_id) {
 
 
 	// Virtually delete the old egg
 	// Virtually delete the old egg
 	log_pick_pc(sd, LOG_TYPE_OTHER, -1, &sd->inventory.u.items_inventory[idx]);
 	log_pick_pc(sd, LOG_TYPE_OTHER, -1, &sd->inventory.u.items_inventory[idx]);
-	clif_delitem(sd, idx, 1, 0);
+	clif_delitem( *sd, idx, 1, 0 );
 
 
 	// Change the old egg to the new one
 	// Change the old egg to the new one
 	sd->inventory.u.items_inventory[idx].nameid = new_data->EggID;
 	sd->inventory.u.items_inventory[idx].nameid = new_data->EggID;

+ 38 - 29
src/map/script.cpp

@@ -3674,7 +3674,7 @@ void script_free_state(struct script_state* st)
 
 
 		if (sd && sd->st == st) { // Current script is aborted.
 		if (sd && sd->st == st) { // Current script is aborted.
 			if(sd->state.using_fake_npc) {
 			if(sd->state.using_fake_npc) {
-				clif_clearunit_single(sd->npc_id, CLR_OUTSIGHT, sd->fd);
+				clif_clearunit_single( sd->npc_id, CLR_OUTSIGHT, *sd );
 				sd->state.using_fake_npc = 0;
 				sd->state.using_fake_npc = 0;
 			}
 			}
 			sd->st = nullptr;
 			sd->st = nullptr;
@@ -4306,7 +4306,7 @@ static void script_detach_state(struct script_state* st, bool dequeue_event)
 
 
 	if(st->rid && (sd = map_id2sd(st->rid))!=nullptr) {
 	if(st->rid && (sd = map_id2sd(st->rid))!=nullptr) {
 		if( sd->state.using_fake_npc ){
 		if( sd->state.using_fake_npc ){
-			clif_clearunit_single( sd->npc_id, CLR_OUTSIGHT, sd->fd );
+			clif_clearunit_single( sd->npc_id, CLR_OUTSIGHT, *sd );
 			sd->state.using_fake_npc = 0;
 			sd->state.using_fake_npc = 0;
 		}
 		}
 
 
@@ -4511,7 +4511,7 @@ void run_script_main(struct script_state *st)
 		if ((sd = map_id2sd(st->rid))!=nullptr)
 		if ((sd = map_id2sd(st->rid))!=nullptr)
 		{	//Restore previous stack and save char.
 		{	//Restore previous stack and save char.
 			if(sd->state.using_fake_npc){
 			if(sd->state.using_fake_npc){
-				clif_clearunit_single(sd->npc_id, CLR_OUTSIGHT, sd->fd);
+				clif_clearunit_single( sd->npc_id, CLR_OUTSIGHT, *sd );
 				sd->state.using_fake_npc = 0;
 				sd->state.using_fake_npc = 0;
 			}
 			}
 			//Restore previous script if any.
 			//Restore previous script if any.
@@ -5008,7 +5008,8 @@ BUILDIN_FUNC(close)
 		st->clear_cutin = true;
 		st->clear_cutin = true;
 	}
 	}
 
 
-	clif_scriptclose(sd, st->oid);
+	clif_scriptclose( *sd, st->oid );
+
 	return SCRIPT_CMD_SUCCESS;
 	return SCRIPT_CMD_SUCCESS;
 }
 }
 
 
@@ -5028,7 +5029,8 @@ BUILDIN_FUNC(close2)
 	if( st->mes_active )
 	if( st->mes_active )
 		st->mes_active = 0;
 		st->mes_active = 0;
 
 
-	clif_scriptclose(sd, st->oid);
+	clif_scriptclose( *sd, st->oid );
+
 	return SCRIPT_CMD_SUCCESS;
 	return SCRIPT_CMD_SUCCESS;
 }
 }
 
 
@@ -5148,10 +5150,10 @@ BUILDIN_FUNC(menu)
 			CREATE(menu, char, 2048);
 			CREATE(menu, char, 2048);
 			safestrncpy(menu, StringBuf_Value(&buf), 2047);
 			safestrncpy(menu, StringBuf_Value(&buf), 2047);
 			ShowWarning("buildin_menu: NPC Menu too long! (source:%s / length:%d)\n",nd?nd->name:"Unknown",StringBuf_Length(&buf));
 			ShowWarning("buildin_menu: NPC Menu too long! (source:%s / length:%d)\n",nd?nd->name:"Unknown",StringBuf_Length(&buf));
-			clif_scriptmenu(sd, st->oid, menu);
+			clif_scriptmenu( *sd, st->oid, menu );
 			aFree(menu);
 			aFree(menu);
 		} else
 		} else
-			clif_scriptmenu(sd, st->oid, StringBuf_Value(&buf));
+			clif_scriptmenu( *sd, st->oid, StringBuf_Value( &buf ) );
 
 
 		StringBuf_Destroy(&buf);
 		StringBuf_Destroy(&buf);
 
 
@@ -5252,10 +5254,10 @@ BUILDIN_FUNC(select)
 			CREATE(menu, char, 2048);
 			CREATE(menu, char, 2048);
 			safestrncpy(menu, StringBuf_Value(&buf), 2047);
 			safestrncpy(menu, StringBuf_Value(&buf), 2047);
 			ShowWarning("buildin_select: NPC Menu too long! (source:%s / length:%d)\n",nd?nd->name:"Unknown",StringBuf_Length(&buf));
 			ShowWarning("buildin_select: NPC Menu too long! (source:%s / length:%d)\n",nd?nd->name:"Unknown",StringBuf_Length(&buf));
-			clif_scriptmenu(sd, st->oid, menu);
+			clif_scriptmenu( *sd, st->oid, menu );
 			aFree(menu);
 			aFree(menu);
 		} else
 		} else
-			clif_scriptmenu(sd, st->oid, StringBuf_Value(&buf));
+			clif_scriptmenu( *sd, st->oid, StringBuf_Value( &buf ) );
 		StringBuf_Destroy(&buf);
 		StringBuf_Destroy(&buf);
 
 
 		if( sd->npc_menu >= 0xff ) {
 		if( sd->npc_menu >= 0xff ) {
@@ -5330,10 +5332,10 @@ BUILDIN_FUNC(prompt)
 			CREATE(menu, char, 2048);
 			CREATE(menu, char, 2048);
 			safestrncpy(menu, StringBuf_Value(&buf), 2047);
 			safestrncpy(menu, StringBuf_Value(&buf), 2047);
 			ShowWarning("buildin_prompt: NPC Menu too long! (source:%s / length:%d)\n",nd?nd->name:"Unknown",StringBuf_Length(&buf));
 			ShowWarning("buildin_prompt: NPC Menu too long! (source:%s / length:%d)\n",nd?nd->name:"Unknown",StringBuf_Length(&buf));
-			clif_scriptmenu(sd, st->oid, menu);
+			clif_scriptmenu( *sd, st->oid, menu );
 			aFree(menu);
 			aFree(menu);
 		} else
 		} else
-			clif_scriptmenu(sd, st->oid, StringBuf_Value(&buf));
+			clif_scriptmenu( *sd, st->oid, StringBuf_Value( &buf ) );
 		StringBuf_Destroy(&buf);
 		StringBuf_Destroy(&buf);
 
 
 		if( sd->npc_menu >= 0xff )
 		if( sd->npc_menu >= 0xff )
@@ -6161,9 +6163,9 @@ BUILDIN_FUNC(input)
 		sd->state.menu_or_input = 1;
 		sd->state.menu_or_input = 1;
 		st->state = RERUNLINE;
 		st->state = RERUNLINE;
 		if( is_string_variable(name) )
 		if( is_string_variable(name) )
-			clif_scriptinputstr(sd,st->oid);
+			clif_scriptinputstr( *sd, st->oid );
 		else
 		else
-			clif_scriptinput(sd,st->oid);
+			clif_scriptinput( *sd, st->oid );
 	}
 	}
 	else
 	else
 	{	// take received text/value and store it in the designated variable
 	{	// take received text/value and store it in the designated variable
@@ -6909,7 +6911,8 @@ BUILDIN_FUNC(cutin)
 	if( !script_rid2sd(sd) )
 	if( !script_rid2sd(sd) )
 		return SCRIPT_CMD_SUCCESS;
 		return SCRIPT_CMD_SUCCESS;
 
 
-	clif_cutin(sd,script_getstr(st,2),script_getnum(st,3));
+	clif_cutin( *sd, script_getstr( st, 2 ), script_getnum( st, 3 ) );
+
 	return SCRIPT_CMD_SUCCESS;
 	return SCRIPT_CMD_SUCCESS;
 }
 }
 
 
@@ -6932,7 +6935,7 @@ BUILDIN_FUNC(viewpoint)
 	id=script_getnum(st,5);
 	id=script_getnum(st,5);
 	color=script_getnum(st,6);
 	color=script_getnum(st,6);
 
 
-	clif_viewpoint(sd,st->oid,type,x,y,id,color);
+	clif_viewpoint( *sd, st->oid, type, x, y, id, color );
 
 
 	return SCRIPT_CMD_SUCCESS;
 	return SCRIPT_CMD_SUCCESS;
 }
 }
@@ -6947,7 +6950,8 @@ static int buildin_viewpointmap_sub(block_list *bl, va_list ap) {
 	id = va_arg(ap, int);
 	id = va_arg(ap, int);
 	color = va_arg(ap, int);
 	color = va_arg(ap, int);
 
 
-	clif_viewpoint((map_session_data *)bl, oid, type, x, y, id, color);
+	clif_viewpoint( *reinterpret_cast<map_session_data*>( bl ), oid, type, x, y, id, color );
+
 	return 0;
 	return 0;
 }
 }
 
 
@@ -8588,7 +8592,8 @@ BUILDIN_FUNC(delitem)
 	ShowError("buildin_%s: failed to delete %d items (AID=%d item_id=%u).\n", command, it.amount, sd->status.account_id, it.nameid);
 	ShowError("buildin_%s: failed to delete %d items (AID=%d item_id=%u).\n", command, it.amount, sd->status.account_id, it.nameid);
 	st->state = END;
 	st->state = END;
 	st->mes_active = 0;
 	st->mes_active = 0;
-	clif_scriptclose(sd, st->oid);
+	clif_scriptclose( *sd, st->oid );
+
 	return SCRIPT_CMD_FAILURE;
 	return SCRIPT_CMD_FAILURE;
 }
 }
 
 
@@ -8712,7 +8717,8 @@ BUILDIN_FUNC(delitem2)
 	ShowError("buildin_%s: failed to delete %d items (AID=%d item_id=%u).\n", command, it.amount, sd->status.account_id, it.nameid);
 	ShowError("buildin_%s: failed to delete %d items (AID=%d item_id=%u).\n", command, it.amount, sd->status.account_id, it.nameid);
 	st->state = END;
 	st->state = END;
 	st->mes_active = 0;
 	st->mes_active = 0;
-	clif_scriptclose(sd, st->oid);
+	clif_scriptclose( *sd, st->oid );
+
 	return SCRIPT_CMD_FAILURE;
 	return SCRIPT_CMD_FAILURE;
 }
 }
 
 
@@ -9629,7 +9635,7 @@ BUILDIN_FUNC(successrefitem) {
 		pc_unequipitem(sd,i,2); // status calc will happen in pc_equipitem() below
 		pc_unequipitem(sd,i,2); // status calc will happen in pc_equipitem() below
 
 
 		clif_refine(sd->fd,0,i,sd->inventory.u.items_inventory[i].refine);
 		clif_refine(sd->fd,0,i,sd->inventory.u.items_inventory[i].refine);
-		clif_delitem(sd,i,1,3);
+		clif_delitem( *sd, i, 1, 3 );
 
 
 		//Logs items, got from (N)PC scripts [Lupus]
 		//Logs items, got from (N)PC scripts [Lupus]
 		log_pick_pc(sd, LOG_TYPE_SCRIPT, 1, &sd->inventory.u.items_inventory[i]);
 		log_pick_pc(sd, LOG_TYPE_SCRIPT, 1, &sd->inventory.u.items_inventory[i]);
@@ -9731,7 +9737,7 @@ BUILDIN_FUNC(downrefitem) {
 		sd->inventory.u.items_inventory[i].refine = cap_value( sd->inventory.u.items_inventory[i].refine, 0, MAX_REFINE);
 		sd->inventory.u.items_inventory[i].refine = cap_value( sd->inventory.u.items_inventory[i].refine, 0, MAX_REFINE);
 
 
 		clif_refine(sd->fd,2,i,sd->inventory.u.items_inventory[i].refine);
 		clif_refine(sd->fd,2,i,sd->inventory.u.items_inventory[i].refine);
-		clif_delitem(sd,i,1,3);
+		clif_delitem( *sd, i, 1, 3 );
 
 
 		//Logs items, got from (N)PC scripts [Lupus]
 		//Logs items, got from (N)PC scripts [Lupus]
 		log_pick_pc(sd, LOG_TYPE_SCRIPT, 1, &sd->inventory.u.items_inventory[i]);
 		log_pick_pc(sd, LOG_TYPE_SCRIPT, 1, &sd->inventory.u.items_inventory[i]);
@@ -10381,9 +10387,10 @@ BUILDIN_FUNC(end)
 		st->mes_active = 0;
 		st->mes_active = 0;
 
 
 	if (sd){
 	if (sd){
-		if (sd->state.callshop == 0)
-			clif_scriptclose(sd, st->oid); // If a menu/select/prompt is active, close it.
-		else 
+		if (sd->state.callshop == 0){
+			// If a menu/select/prompt is active, close it.
+			clif_scriptclose( *sd, st->oid );
+		}else
 			sd->state.callshop = 0;
 			sd->state.callshop = 0;
 	}
 	}
 
 
@@ -15846,7 +15853,9 @@ BUILDIN_FUNC(addhomintimacy)
 		hom_increase_intimacy(hd, (uint32)value);
 		hom_increase_intimacy(hd, (uint32)value);
 	else
 	else
 		hom_decrease_intimacy(hd, (uint32)abs(value));
 		hom_decrease_intimacy(hd, (uint32)abs(value));
-	clif_send_homdata(sd, SP_INTIMATE, hd->homunculus.intimacy / 100);
+
+	clif_send_homdata( *hd, SP_INTIMATE );
+
 	return SCRIPT_CMD_SUCCESS;
 	return SCRIPT_CMD_SUCCESS;
 }
 }
 
 
@@ -17890,7 +17899,7 @@ BUILDIN_FUNC(callshop)
 		switch (flag) {
 		switch (flag) {
 			case 1: npc_buysellsel(sd,nd->bl.id,0); break; //Buy window
 			case 1: npc_buysellsel(sd,nd->bl.id,0); break; //Buy window
 			case 2: npc_buysellsel(sd,nd->bl.id,1); break; //Sell window
 			case 2: npc_buysellsel(sd,nd->bl.id,1); break; //Sell window
-			default: clif_npcbuysell(sd,nd->bl.id); break; //Show menu
+			default: clif_npcbuysell( *sd, *nd ); break; //Show menu
 		}
 		}
 	}
 	}
 #if PACKETVER >= 20131223
 #if PACKETVER >= 20131223
@@ -19273,8 +19282,8 @@ BUILDIN_FUNC(setunitdata)
 			case UHOM_MAPID: if (mapname) value = map_mapname2mapid(mapname); unit_warp(bl, (short)value, 0, 0, CLR_TELEPORT); break;
 			case UHOM_MAPID: if (mapname) value = map_mapname2mapid(mapname); unit_warp(bl, (short)value, 0, 0, CLR_TELEPORT); break;
 			case UHOM_X: if (!unit_walktoxy(bl, (short)value, hd->bl.y, 2)) unit_movepos(bl, (short)value, hd->bl.y, 0, 0); break;
 			case UHOM_X: if (!unit_walktoxy(bl, (short)value, hd->bl.y, 2)) unit_movepos(bl, (short)value, hd->bl.y, 0, 0); break;
 			case UHOM_Y: if (!unit_walktoxy(bl, hd->bl.x, (short)value, 2)) unit_movepos(bl, hd->bl.x, (short)value, 0, 0); break;
 			case UHOM_Y: if (!unit_walktoxy(bl, hd->bl.x, (short)value, 2)) unit_movepos(bl, hd->bl.x, (short)value, 0, 0); break;
-			case UHOM_HUNGER: hd->homunculus.hunger = (short)value; clif_send_homdata(map_charid2sd(hd->homunculus.char_id), SP_HUNGRY, hd->homunculus.hunger); break;
-			case UHOM_INTIMACY: hom_increase_intimacy(hd, (unsigned int)value); clif_send_homdata(map_charid2sd(hd->homunculus.char_id), SP_INTIMATE, hd->homunculus.intimacy / 100); break;
+			case UHOM_HUNGER: hd->homunculus.hunger = (short)value; clif_send_homdata(*hd, SP_HUNGRY); break;
+			case UHOM_INTIMACY: hom_increase_intimacy(hd, (unsigned int)value); clif_send_homdata(*hd, SP_INTIMATE); break;
 			case UHOM_SPEED: hd->base_status.speed = (unsigned short)value; status_calc_misc(bl, &hd->base_status, hd->homunculus.level); calc_status = true; break;
 			case UHOM_SPEED: hd->base_status.speed = (unsigned short)value; status_calc_misc(bl, &hd->base_status, hd->homunculus.level); calc_status = true; break;
 			case UHOM_LOOKDIR: unit_setdir(bl, (uint8)value); break;
 			case UHOM_LOOKDIR: unit_setdir(bl, (uint8)value); break;
 			case UHOM_CANMOVETICK: hd->ud.canmove_tick = value > 0 ? (unsigned int)value : 0; break;
 			case UHOM_CANMOVETICK: hd->ud.canmove_tick = value > 0 ? (unsigned int)value : 0; break;
@@ -19570,7 +19579,7 @@ BUILDIN_FUNC(setunitdata)
 	// Client information updates
 	// Client information updates
 	switch (bl->type) {
 	switch (bl->type) {
 		case BL_HOM:
 		case BL_HOM:
-			clif_send_homdata(hd->master, SP_ACK, 0);
+			clif_send_homdata( *hd, SP_ACK );
 			break;
 			break;
 		case BL_PET:
 		case BL_PET:
 			clif_send_petstatus(pd->master);
 			clif_send_petstatus(pd->master);
@@ -24521,7 +24530,7 @@ BUILDIN_FUNC(setrandomoption) {
 		sd->inventory.u.items_inventory[i].option[index].id = id;
 		sd->inventory.u.items_inventory[i].option[index].id = id;
 		sd->inventory.u.items_inventory[i].option[index].value = value;
 		sd->inventory.u.items_inventory[i].option[index].value = value;
 		sd->inventory.u.items_inventory[i].option[index].param = param;
 		sd->inventory.u.items_inventory[i].option[index].param = param;
-		clif_delitem(sd, i, 1, 3);
+		clif_delitem( *sd, i, 1, 3 );
 		log_pick_pc(sd, LOG_TYPE_SCRIPT, -1, &sd->inventory.u.items_inventory[i]);
 		log_pick_pc(sd, LOG_TYPE_SCRIPT, -1, &sd->inventory.u.items_inventory[i]);
 		clif_additem(sd, i, 1, 0);
 		clif_additem(sd, i, 1, 0);
 		pc_equipitem(sd, i, ep);
 		pc_equipitem(sd, i, ep);

+ 23 - 25
src/map/skill.cpp

@@ -2589,12 +2589,11 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list *
 		break;
 		break;
 	case HFLI_SBR44:	//[orn]
 	case HFLI_SBR44:	//[orn]
 		if(src->type == BL_HOM){
 		if(src->type == BL_HOM){
-			struct homun_data *hd = (struct homun_data *)src;
-			if (hd != nullptr) {
-				hd->homunculus.intimacy = hom_intimacy_grade2intimacy(HOMGRADE_HATE_WITH_PASSION);
-				if (hd->master)
-					clif_send_homdata(hd->master,SP_INTIMATE,hd->homunculus.intimacy / 100);
-			}
+			homun_data& hd = reinterpret_cast<homun_data&>( *src );
+
+			hd.homunculus.intimacy = hom_intimacy_grade2intimacy(HOMGRADE_HATE_WITH_PASSION);
+
+			clif_send_homdata( hd, SP_INTIMATE );
 		}
 		}
 		break;
 		break;
 	case CR_GRANDCROSS:
 	case CR_GRANDCROSS:
@@ -3211,9 +3210,8 @@ void skill_combo_toggle_inf(struct block_list* bl, uint16 skill_id, int inf){
 				TBL_HOM *hd = BL_CAST(BL_HOM, bl);
 				TBL_HOM *hd = BL_CAST(BL_HOM, bl);
 				if (idx == -1)
 				if (idx == -1)
 					break;
 					break;
-				sd = hd->master;
 				hd->homunculus.hskill[idx].flag= flag;
 				hd->homunculus.hskill[idx].flag= flag;
-				if(sd) clif_homskillinfoblock(sd); //refresh info //@FIXME we only want to refresh one skill
+				clif_homskillinfoblock( *hd ); //refresh info //@FIXME we only want to refresh one skill
 			}
 			}
 			break;
 			break;
 		case MO_COMBOFINISH:
 		case MO_COMBOFINISH:
@@ -3498,7 +3496,8 @@ void skill_attack_blow(struct block_list *src, struct block_list *dsrc, struct b
 			}
 			}
 			break;
 			break;
 	}
 	}
-	clif_fixpos(target);
+
+	clif_fixpos( *target );
 }
 }
 
 
 /*
 /*
@@ -8833,12 +8832,11 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 		}
 		}
 		status_damage(src, src, sstatus->max_hp,0,0,1, skill_id);
 		status_damage(src, src, sstatus->max_hp,0,0,1, skill_id);
 		if(skill_id == HVAN_EXPLOSION && src->type == BL_HOM) {
 		if(skill_id == HVAN_EXPLOSION && src->type == BL_HOM) {
-			struct homun_data *hd = (struct homun_data *)src;
-			if (hd != nullptr) {
-				hd->homunculus.intimacy = hom_intimacy_grade2intimacy(HOMGRADE_HATE_WITH_PASSION);
-				if (hd->master)
-					clif_send_homdata(hd->master,SP_INTIMATE,hd->homunculus.intimacy / 100);
-			}
+			homun_data& hd = reinterpret_cast<homun_data&>( *src );
+
+			hd.homunculus.intimacy = hom_intimacy_grade2intimacy(HOMGRADE_HATE_WITH_PASSION);
+
+			clif_send_homdata( hd, SP_INTIMATE );
 		}
 		}
 		break;
 		break;
 	case AL_ANGELUS:
 	case AL_ANGELUS:
@@ -9001,7 +8999,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 		}
 		}
 		clif_skill_nodamage(src,bl,skill_id,skill_lv,sc_start4(src,bl,type,100,skill_lv,unit_getdir(bl),0,0,0));
 		clif_skill_nodamage(src,bl,skill_id,skill_lv,sc_start4(src,bl,type,100,skill_lv,unit_getdir(bl),0,0,0));
 		if (sd) // If the client receives a skill-use packet inmediately before a walkok packet, it will discard the walk packet! [Skotlex]
 		if (sd) // If the client receives a skill-use packet inmediately before a walkok packet, it will discard the walk packet! [Skotlex]
-			clif_walkok(sd); // So aegis has to resend the walk ok.
+			clif_walkok(*sd); // So aegis has to resend the walk ok.
 		break;
 		break;
 
 
 	case AS_CLOAKING:
 	case AS_CLOAKING:
@@ -11343,7 +11341,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
 		}
 		}
 		if( sd && pc_isridingwug(sd) ) {
 		if( sd && pc_isridingwug(sd) ) {
 			clif_skill_nodamage(src,bl,skill_id,skill_lv,sc_start4(src,bl,type,100,skill_lv,unit_getdir(bl),0,0,0));
 			clif_skill_nodamage(src,bl,skill_id,skill_lv,sc_start4(src,bl,type,100,skill_lv,unit_getdir(bl),0,0,0));
-			clif_walkok(sd);
+			clif_walkok(*sd);
 		}
 		}
 		break;
 		break;
 
 
@@ -15685,7 +15683,7 @@ static int skill_unit_onplace(struct skill_unit *unit, struct block_list *bl, t_
 						if (td)
 						if (td)
 							sec = DIFF_TICK(td->tick, tick);
 							sec = DIFF_TICK(td->tick, tick);
 						map_moveblock(bl, unit->bl.x, unit->bl.y, tick);
 						map_moveblock(bl, unit->bl.x, unit->bl.y, tick);
-						clif_fixpos(bl);
+						clif_fixpos( *bl );
 					}
 					}
 					else
 					else
 						sec = 3000; //Couldn't trap it?
 						sec = 3000; //Couldn't trap it?
@@ -16226,7 +16224,7 @@ int skill_unit_onplace_timer(struct skill_unit *unit, struct block_list *bl, t_t
 						|| !unit_blown_immune(bl,0x1) )
 						|| !unit_blown_immune(bl,0x1) )
 					{
 					{
 						unit_movepos(bl, unit->bl.x, unit->bl.y, 0, 0);
 						unit_movepos(bl, unit->bl.x, unit->bl.y, 0, 0);
-						clif_fixpos(bl);
+						clif_fixpos( *bl );
 					}
 					}
 					sg->val2 = bl->id;
 					sg->val2 = bl->id;
 				} else
 				} else
@@ -16255,7 +16253,7 @@ int skill_unit_onplace_timer(struct skill_unit *unit, struct block_list *bl, t_t
 			if( bl->id != ss->id ) {
 			if( bl->id != ss->id ) {
 				if( status_change_start(ss, bl,type,10000,sg->skill_lv,sg->group_id,0,0,skill_get_time2(sg->skill_id, sg->skill_lv), SCSTART_NORATEDEF) ) {
 				if( status_change_start(ss, bl,type,10000,sg->skill_lv,sg->group_id,0,0,skill_get_time2(sg->skill_id, sg->skill_lv), SCSTART_NORATEDEF) ) {
 					map_moveblock(bl, unit->bl.x, unit->bl.y, tick);
 					map_moveblock(bl, unit->bl.x, unit->bl.y, tick);
-					clif_fixpos(bl);
+					clif_fixpos( *bl );
 				}
 				}
 				map_foreachinallrange(skill_trap_splash, &unit->bl, skill_get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &unit->bl, tick);
 				map_foreachinallrange(skill_trap_splash, &unit->bl, skill_get_splash(sg->skill_id, sg->skill_lv), sg->bl_flag, &unit->bl, tick);
 				sg->unit_id = UNT_USED_TRAPS; //Changed ID so it does not invoke a for each in area again.
 				sg->unit_id = UNT_USED_TRAPS; //Changed ID so it does not invoke a for each in area again.
@@ -16567,7 +16565,7 @@ int skill_unit_onplace_timer(struct skill_unit *unit, struct block_list *bl, t_t
 						if( td )
 						if( td )
 							sec = DIFF_TICK(td->tick, tick);
 							sec = DIFF_TICK(td->tick, tick);
 						///map_moveblock(bl, src->bl.x, src->bl.y, tick); // in official server it doesn't behave like this. [malufett]
 						///map_moveblock(bl, src->bl.x, src->bl.y, tick); // in official server it doesn't behave like this. [malufett]
-						clif_fixpos(bl);
+						clif_fixpos( *bl );
 						sg->val2 = bl->id;
 						sg->val2 = bl->id;
 					} else
 					} else
 						sec = 3000;	// Couldn't trap it?
 						sec = 3000;	// Couldn't trap it?
@@ -19720,7 +19718,7 @@ void skill_weaponrefine( map_session_data& sd, int idx ){
 					ep = item->equip;
 					ep = item->equip;
 					pc_unequipitem(&sd,idx,3);
 					pc_unequipitem(&sd,idx,3);
 				}
 				}
-				clif_delitem(&sd,idx,1,3);
+				clif_delitem(sd,idx,1,3);
 				clif_upgrademessage(&sd, 0, item->nameid);
 				clif_upgrademessage(&sd, 0, item->nameid);
 				clif_inventorylist(&sd);
 				clif_inventorylist(&sd);
 				clif_refine(sd.fd,0,idx,item->refine);
 				clif_refine(sd.fd,0,idx,item->refine);
@@ -20455,7 +20453,7 @@ static int skill_trap_splash(struct block_list *bl, va_list ap)
 					break;
 					break;
 				if (status_change_start(ss, bl, SC_ELECTRICSHOCKER, 10000, sg->skill_lv, sg->group_id, 0, 0, skill_get_time2(sg->skill_id, sg->skill_lv), SCSTART_NORATEDEF)) {
 				if (status_change_start(ss, bl, SC_ELECTRICSHOCKER, 10000, sg->skill_lv, sg->group_id, 0, 0, skill_get_time2(sg->skill_id, sg->skill_lv), SCSTART_NORATEDEF)) {
 					map_moveblock(bl, unit->bl.x, unit->bl.y, tick);
 					map_moveblock(bl, unit->bl.x, unit->bl.y, tick);
-					clif_fixpos(bl);
+					clif_fixpos( *bl );
 					clif_skill_damage(src, bl, tick, 0, 0, -30000, 1, sg->skill_id, sg->skill_lv, DMG_SPLASH);
 					clif_skill_damage(src, bl, tick, 0, 0, -30000, 1, sg->skill_id, sg->skill_lv, DMG_SPLASH);
 				}
 				}
 			}
 			}
@@ -22662,8 +22660,8 @@ void skill_toggle_magicpower(struct block_list *bl, uint16 skill_id)
 			sc->getSCE(SC_MAGICPOWER)->val4 = 1;
 			sc->getSCE(SC_MAGICPOWER)->val4 = 1;
 			status_calc_bl_(bl, status_db.getCalcFlag(SC_MAGICPOWER));
 			status_calc_bl_(bl, status_db.getCalcFlag(SC_MAGICPOWER));
 			if(bl->type == BL_PC){// update current display.
 			if(bl->type == BL_PC){// update current display.
-				clif_updatestatus(((TBL_PC *)bl),SP_MATK1);
-				clif_updatestatus(((TBL_PC *)bl),SP_MATK2);
+				clif_updatestatus(*((map_session_data *)bl),SP_MATK1);
+				clif_updatestatus(*((map_session_data *)bl),SP_MATK2);
 			}
 			}
 		}
 		}
 	}
 	}

+ 56 - 56
src/map/status.cpp

@@ -1665,7 +1665,7 @@ int status_damage(struct block_list *src,struct block_list *target,int64 dhp, in
 		unit_stop_attack(target);
 		unit_stop_attack(target);
 		unit_stop_walking(target,1);
 		unit_stop_walking(target,1);
 		unit_skillcastcancel(target,0);
 		unit_skillcastcancel(target,0);
-		clif_clearunit_area(target,CLR_DEAD);
+		clif_clearunit_area( *target, CLR_DEAD );
 		skill_unit_move(target,gettick(),4);
 		skill_unit_move(target,gettick(),4);
 		skill_cleartimerskill(target);
 		skill_cleartimerskill(target);
 	}
 	}
@@ -3560,9 +3560,9 @@ bool status_calc_weight(map_session_data *sd, enum e_status_calc_weight_opt flag
 
 
 	// Update the client if the new weight calculations don't match
 	// Update the client if the new weight calculations don't match
 	if (b_weight != sd->weight)
 	if (b_weight != sd->weight)
-		clif_updatestatus(sd, SP_WEIGHT);
+		clif_updatestatus(*sd, SP_WEIGHT);
 	if (b_max_weight != sd->max_weight) {
 	if (b_max_weight != sd->max_weight) {
-		clif_updatestatus(sd, SP_MAXWEIGHT);
+		clif_updatestatus(*sd, SP_MAXWEIGHT);
 		pc_updateweightstatus(sd);
 		pc_updateweightstatus(sd);
 	}
 	}
 
 
@@ -3608,7 +3608,7 @@ bool status_calc_cart_weight(map_session_data *sd, enum e_status_calc_weight_opt
 
 
 	// Update the client if the new weight calculations don't match
 	// Update the client if the new weight calculations don't match
 	if (b_cart_weight_max != sd->cart_weight_max)
 	if (b_cart_weight_max != sd->cart_weight_max)
-		clif_updatestatus(sd, SP_CARTINFO);
+		clif_updatestatus(*sd, SP_CARTINFO);
 
 
 	return true;
 	return true;
 }
 }
@@ -5916,7 +5916,7 @@ void status_calc_bl_main(struct block_list *bl, std::bitset<SCB_MAX> flag)
 
 
 		if( status->hp > status->max_hp ) { // !FIXME: Should perhaps a status_zap should be issued?
 		if( status->hp > status->max_hp ) { // !FIXME: Should perhaps a status_zap should be issued?
 			status->hp = status->max_hp;
 			status->hp = status->max_hp;
-			if( sd ) clif_updatestatus(sd,SP_HP);
+			if( sd ) clif_updatestatus(*sd,SP_HP);
 		}
 		}
 	}
 	}
 
 
@@ -5934,7 +5934,7 @@ void status_calc_bl_main(struct block_list *bl, std::bitset<SCB_MAX> flag)
 
 
 		if( status->sp > status->max_sp ) {
 		if( status->sp > status->max_sp ) {
 			status->sp = status->max_sp;
 			status->sp = status->max_sp;
-			if( sd ) clif_updatestatus(sd,SP_SP);
+			if( sd ) clif_updatestatus(*sd,SP_SP);
 		}
 		}
 	}
 	}
 
 
@@ -6160,7 +6160,7 @@ void status_calc_bl_main(struct block_list *bl, std::bitset<SCB_MAX> flag)
 
 
 		if (status->ap > status->max_ap) {
 		if (status->ap > status->max_ap) {
 			status->ap = status->max_ap;
 			status->ap = status->max_ap;
-			if (sd) clif_updatestatus(sd, SP_AP);
+			if (sd) clif_updatestatus(*sd, SP_AP);
 		}
 		}
 	}
 	}
 #endif
 #endif
@@ -6230,37 +6230,37 @@ void status_calc_bl_(struct block_list* bl, std::bitset<SCB_MAX> flag, uint8 opt
 		TBL_PC* sd = BL_CAST(BL_PC, bl);
 		TBL_PC* sd = BL_CAST(BL_PC, bl);
 
 
 		if(b_status.str != status->str)
 		if(b_status.str != status->str)
-			clif_updatestatus(sd,SP_STR);
+			clif_updatestatus(*sd,SP_STR);
 		if(b_status.agi != status->agi)
 		if(b_status.agi != status->agi)
-			clif_updatestatus(sd,SP_AGI);
+			clif_updatestatus(*sd,SP_AGI);
 		if(b_status.vit != status->vit)
 		if(b_status.vit != status->vit)
-			clif_updatestatus(sd,SP_VIT);
+			clif_updatestatus(*sd,SP_VIT);
 		if(b_status.int_ != status->int_)
 		if(b_status.int_ != status->int_)
-			clif_updatestatus(sd,SP_INT);
+			clif_updatestatus(*sd,SP_INT);
 		if(b_status.dex != status->dex)
 		if(b_status.dex != status->dex)
-			clif_updatestatus(sd,SP_DEX);
+			clif_updatestatus(*sd,SP_DEX);
 		if(b_status.luk != status->luk)
 		if(b_status.luk != status->luk)
-			clif_updatestatus(sd,SP_LUK);
+			clif_updatestatus(*sd,SP_LUK);
 		if(b_status.hit != status->hit)
 		if(b_status.hit != status->hit)
-			clif_updatestatus(sd,SP_HIT);
+			clif_updatestatus(*sd,SP_HIT);
 		if(b_status.flee != status->flee)
 		if(b_status.flee != status->flee)
-			clif_updatestatus(sd,SP_FLEE1);
+			clif_updatestatus(*sd,SP_FLEE1);
 		if(b_status.amotion != status->amotion)
 		if(b_status.amotion != status->amotion)
-			clif_updatestatus(sd,SP_ASPD);
+			clif_updatestatus(*sd,SP_ASPD);
 		if(b_status.speed != status->speed)
 		if(b_status.speed != status->speed)
-			clif_updatestatus(sd,SP_SPEED);
+			clif_updatestatus(*sd,SP_SPEED);
 
 
 		if(b_status.batk != status->batk
 		if(b_status.batk != status->batk
 #ifndef RENEWAL
 #ifndef RENEWAL
 			|| b_status.rhw.atk != status->rhw.atk || b_status.lhw.atk != status->lhw.atk
 			|| b_status.rhw.atk != status->rhw.atk || b_status.lhw.atk != status->lhw.atk
 #endif
 #endif
 			)
 			)
-			clif_updatestatus(sd,SP_ATK1);
+			clif_updatestatus(*sd,SP_ATK1);
 
 
 		if(b_status.def != status->def) {
 		if(b_status.def != status->def) {
-			clif_updatestatus(sd,SP_DEF1);
+			clif_updatestatus(*sd,SP_DEF1);
 #ifdef RENEWAL
 #ifdef RENEWAL
-			clif_updatestatus(sd,SP_DEF2);
+			clif_updatestatus(*sd,SP_DEF2);
 #endif
 #endif
 		}
 		}
 
 
@@ -6271,80 +6271,80 @@ void status_calc_bl_(struct block_list* bl, std::bitset<SCB_MAX> flag, uint8 opt
 			b_status.rhw.atk2 != status->rhw.atk2 || b_status.lhw.atk2 != status->lhw.atk2
 			b_status.rhw.atk2 != status->rhw.atk2 || b_status.lhw.atk2 != status->lhw.atk2
 #endif
 #endif
 			)
 			)
-			clif_updatestatus(sd,SP_ATK2);
+			clif_updatestatus(*sd,SP_ATK2);
 
 
 		if(b_status.def2 != status->def2) {
 		if(b_status.def2 != status->def2) {
-			clif_updatestatus(sd,SP_DEF2);
+			clif_updatestatus(*sd,SP_DEF2);
 #ifdef RENEWAL
 #ifdef RENEWAL
-			clif_updatestatus(sd,SP_DEF1);
+			clif_updatestatus(*sd,SP_DEF1);
 #endif
 #endif
 		}
 		}
 		if(b_status.flee2 != status->flee2)
 		if(b_status.flee2 != status->flee2)
-			clif_updatestatus(sd,SP_FLEE2);
+			clif_updatestatus(*sd,SP_FLEE2);
 		if(b_status.cri != status->cri)
 		if(b_status.cri != status->cri)
-			clif_updatestatus(sd,SP_CRITICAL);
+			clif_updatestatus(*sd,SP_CRITICAL);
 #ifndef RENEWAL
 #ifndef RENEWAL
 		if(b_status.matk_max != status->matk_max)
 		if(b_status.matk_max != status->matk_max)
-			clif_updatestatus(sd,SP_MATK1);
+			clif_updatestatus(*sd,SP_MATK1);
 		if(b_status.matk_min != status->matk_min)
 		if(b_status.matk_min != status->matk_min)
-			clif_updatestatus(sd,SP_MATK2);
+			clif_updatestatus(*sd,SP_MATK2);
 #else
 #else
 		if(b_status.matk_max != status->matk_max || b_status.matk_min != status->matk_min) {
 		if(b_status.matk_max != status->matk_max || b_status.matk_min != status->matk_min) {
-			clif_updatestatus(sd,SP_MATK2);
-			clif_updatestatus(sd,SP_MATK1);
+			clif_updatestatus(*sd,SP_MATK2);
+			clif_updatestatus(*sd,SP_MATK1);
 		}
 		}
 #endif
 #endif
 		if(b_status.mdef != status->mdef) {
 		if(b_status.mdef != status->mdef) {
-			clif_updatestatus(sd,SP_MDEF1);
+			clif_updatestatus(*sd,SP_MDEF1);
 #ifdef RENEWAL
 #ifdef RENEWAL
-			clif_updatestatus(sd,SP_MDEF2);
+			clif_updatestatus(*sd,SP_MDEF2);
 #endif
 #endif
 		}
 		}
 		if(b_status.mdef2 != status->mdef2) {
 		if(b_status.mdef2 != status->mdef2) {
-			clif_updatestatus(sd,SP_MDEF2);
+			clif_updatestatus(*sd,SP_MDEF2);
 #ifdef RENEWAL
 #ifdef RENEWAL
-			clif_updatestatus(sd,SP_MDEF1);
+			clif_updatestatus(*sd,SP_MDEF1);
 #endif
 #endif
 		}
 		}
 		if(b_status.rhw.range != status->rhw.range)
 		if(b_status.rhw.range != status->rhw.range)
-			clif_updatestatus(sd,SP_ATTACKRANGE);
+			clif_updatestatus(*sd,SP_ATTACKRANGE);
 		if(b_status.max_hp != status->max_hp)
 		if(b_status.max_hp != status->max_hp)
-			clif_updatestatus(sd,SP_MAXHP);
+			clif_updatestatus(*sd,SP_MAXHP);
 		if(b_status.max_sp != status->max_sp)
 		if(b_status.max_sp != status->max_sp)
-			clif_updatestatus(sd,SP_MAXSP);
+			clif_updatestatus(*sd,SP_MAXSP);
 		if(b_status.hp != status->hp)
 		if(b_status.hp != status->hp)
-			clif_updatestatus(sd,SP_HP);
+			clif_updatestatus(*sd,SP_HP);
 		if(b_status.sp != status->sp)
 		if(b_status.sp != status->sp)
-			clif_updatestatus(sd,SP_SP);
+			clif_updatestatus(*sd,SP_SP);
 #ifdef RENEWAL
 #ifdef RENEWAL
 		if (b_status.pow != status->pow)
 		if (b_status.pow != status->pow)
-			clif_updatestatus(sd,SP_POW);
+			clif_updatestatus(*sd,SP_POW);
 		if (b_status.sta != status->sta)
 		if (b_status.sta != status->sta)
-			clif_updatestatus(sd,SP_STA);
+			clif_updatestatus(*sd,SP_STA);
 		if (b_status.wis != status->wis)
 		if (b_status.wis != status->wis)
-			clif_updatestatus(sd,SP_WIS);
+			clif_updatestatus(*sd,SP_WIS);
 		if (b_status.spl != status->spl)
 		if (b_status.spl != status->spl)
-			clif_updatestatus(sd,SP_SPL);
+			clif_updatestatus(*sd,SP_SPL);
 		if (b_status.con != status->con)
 		if (b_status.con != status->con)
-			clif_updatestatus(sd,SP_CON);
+			clif_updatestatus(*sd,SP_CON);
 		if (b_status.crt != status->crt)
 		if (b_status.crt != status->crt)
-			clif_updatestatus(sd,SP_CRT);
+			clif_updatestatus(*sd,SP_CRT);
 		if (b_status.patk != status->patk)
 		if (b_status.patk != status->patk)
-			clif_updatestatus(sd, SP_PATK);
+			clif_updatestatus(*sd, SP_PATK);
 		if (b_status.smatk != status->smatk)
 		if (b_status.smatk != status->smatk)
-			clif_updatestatus(sd, SP_SMATK);
+			clif_updatestatus(*sd, SP_SMATK);
 		if (b_status.res != status->res)
 		if (b_status.res != status->res)
-			clif_updatestatus(sd, SP_RES);
+			clif_updatestatus(*sd, SP_RES);
 		if (b_status.mres != status->mres)
 		if (b_status.mres != status->mres)
-			clif_updatestatus(sd, SP_MRES);
+			clif_updatestatus(*sd, SP_MRES);
 		if (b_status.hplus != status->hplus)
 		if (b_status.hplus != status->hplus)
-			clif_updatestatus(sd, SP_HPLUS);
+			clif_updatestatus(*sd, SP_HPLUS);
 		if (b_status.crate != status->crate)
 		if (b_status.crate != status->crate)
-			clif_updatestatus(sd, SP_CRATE);
+			clif_updatestatus(*sd, SP_CRATE);
 		if (b_status.max_ap != status->max_ap)
 		if (b_status.max_ap != status->max_ap)
-			clif_updatestatus(sd, SP_MAXAP);
+			clif_updatestatus(*sd, SP_MAXAP);
 		if (b_status.ap != status->ap)
 		if (b_status.ap != status->ap)
-			clif_updatestatus(sd, SP_AP);
+			clif_updatestatus(*sd, SP_AP);
 #endif
 #endif
 	} else if( bl->type == BL_HOM ) {
 	} else if( bl->type == BL_HOM ) {
 		TBL_HOM* hd = BL_CAST(BL_HOM, bl);
 		TBL_HOM* hd = BL_CAST(BL_HOM, bl);
@@ -10896,7 +10896,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
 			val1 = battle_config.manner_system; // Mute filters.
 			val1 = battle_config.manner_system; // Mute filters.
 			if (sd) {
 			if (sd) {
 				clif_changestatus(sd,SP_MANNER,sd->status.manner);
 				clif_changestatus(sd,SP_MANNER,sd->status.manner);
-				clif_updatestatus(sd,SP_MANNER);
+				clif_updatestatus(*sd,SP_MANNER);
 			}
 			}
 			break;
 			break;
 
 
@@ -13400,7 +13400,7 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid)
 				sd->status.manner = 0;
 				sd->status.manner = 0;
 			if (sd && tid == INVALID_TIMER) {
 			if (sd && tid == INVALID_TIMER) {
 				clif_changestatus(sd,SP_MANNER,sd->status.manner);
 				clif_changestatus(sd,SP_MANNER,sd->status.manner);
-				clif_updatestatus(sd,SP_MANNER);
+				clif_updatestatus(*sd,SP_MANNER);
 			}
 			}
 			break;
 			break;
 		case SC_SPLASHER:
 		case SC_SPLASHER:
@@ -14221,7 +14221,7 @@ TIMER_FUNC(status_change_timer){
 		if(sd) {
 		if(sd) {
 			sd->status.manner++;
 			sd->status.manner++;
 			clif_changestatus(sd,SP_MANNER,sd->status.manner);
 			clif_changestatus(sd,SP_MANNER,sd->status.manner);
-			clif_updatestatus(sd,SP_MANNER);
+			clif_updatestatus(*sd,SP_MANNER);
 			if (sd->status.manner < 0) { // Every 60 seconds your manner goes up by 1 until it gets back to 0.
 			if (sd->status.manner < 0) { // Every 60 seconds your manner goes up by 1 until it gets back to 0.
 				sc_timer_next(60000+tick);
 				sc_timer_next(60000+tick);
 				return 0;
 				return 0;
@@ -14710,7 +14710,7 @@ TIMER_FUNC(status_change_timer){
 
 
 				if (distance_xy(x, y, bl->x, bl->y) <= skill_get_unit_range(SO_VACUUM_EXTREME, sce->val1) && unit_movepos(bl, x, y, 0, false)) {
 				if (distance_xy(x, y, bl->x, bl->y) <= skill_get_unit_range(SO_VACUUM_EXTREME, sce->val1) && unit_movepos(bl, x, y, 0, false)) {
 					clif_slide(bl, x, y);
 					clif_slide(bl, x, y);
-					clif_fixpos(bl);
+					clif_fixpos( *bl );
 				}
 				}
 			}
 			}
 			sc_timer_next(tick + sce->val4);
 			sc_timer_next(tick + sce->val4);

+ 4 - 4
src/map/storage.cpp

@@ -354,7 +354,7 @@ void storage_storageadd(map_session_data* sd, struct s_storage *stor, int index,
 	}
 	}
 
 
 	clif_storageitemremoved(sd,index,0);
 	clif_storageitemremoved(sd,index,0);
-	clif_dropitem(sd,index,0);
+	clif_dropitem( *sd, index, 0 );
 }
 }
 
 
 /**
 /**
@@ -417,7 +417,7 @@ void storage_storageaddfromcart(map_session_data *sd, struct s_storage *stor, in
 	}
 	}
 
 
 	clif_storageitemremoved(sd,index,0);
 	clif_storageitemremoved(sd,index,0);
-	clif_dropitem(sd,index,0);
+	clif_dropitem( *sd, index, 0 );
 }
 }
 
 
 /**
 /**
@@ -900,7 +900,7 @@ void storage_guild_storageadd(map_session_data* sd, int index, int amount)
 		pc_delitem(sd,index,amount,0,4,LOG_TYPE_GSTORAGE);
 		pc_delitem(sd,index,amount,0,4,LOG_TYPE_GSTORAGE);
 	else {
 	else {
 		clif_storageitemremoved(sd,index,0);
 		clif_storageitemremoved(sd,index,0);
-		clif_dropitem(sd,index,0);
+		clif_dropitem( *sd, index, 0 );
 	}
 	}
 }
 }
 
 
@@ -973,7 +973,7 @@ void storage_guild_storageaddfromcart(map_session_data* sd, int index, int amoun
 		pc_cart_delitem(sd,index,amount,0,LOG_TYPE_GSTORAGE);
 		pc_cart_delitem(sd,index,amount,0,LOG_TYPE_GSTORAGE);
 	else {
 	else {
 		clif_storageitemremoved(sd,index,0);
 		clif_storageitemremoved(sd,index,0);
-		clif_dropitem(sd,index,0);
+		clif_dropitem( *sd, index, 0 );
 	}
 	}
 }
 }
 
 

+ 2 - 2
src/map/trade.cpp

@@ -523,7 +523,7 @@ void trade_tradecancel(map_session_data *sd)
 	}
 	}
 
 
 	if (sd->deal.zeny) {
 	if (sd->deal.zeny) {
-		clif_updatestatus(sd, SP_ZENY);
+		clif_updatestatus(*sd, SP_ZENY);
 		sd->deal.zeny = 0;
 		sd->deal.zeny = 0;
 	}
 	}
 
 
@@ -544,7 +544,7 @@ void trade_tradecancel(map_session_data *sd)
 	}
 	}
 
 
 	if (target_sd->deal.zeny) {
 	if (target_sd->deal.zeny) {
-		clif_updatestatus(target_sd, SP_ZENY);
+		clif_updatestatus(*target_sd, SP_ZENY);
 		target_sd->deal.zeny = 0;
 		target_sd->deal.zeny = 0;
 	}
 	}
 
 

+ 16 - 15
src/map/unit.cpp

@@ -131,7 +131,7 @@ int unit_walktoxy_sub(struct block_list *bl)
 		map_session_data *sd = BL_CAST(BL_PC, bl);
 		map_session_data *sd = BL_CAST(BL_PC, bl);
 
 
 		sd->head_dir = DIR_NORTH;
 		sd->head_dir = DIR_NORTH;
-		clif_walkok(sd);
+		clif_walkok(*sd);
 	}
 	}
 #if PACKETVER >= 20170726
 #if PACKETVER >= 20170726
 	// If this is a walking NPC and it will use a player sprite
 	// If this is a walking NPC and it will use a player sprite
@@ -447,7 +447,7 @@ static TIMER_FUNC(unit_walktoxy_timer)
 	if(md && !ud->state.force_walk && md->walktoxy_fail_count < icewall_walk_block && map_getcell(bl->m,x,y,CELL_CHKICEWALL) && (dx > 0 || dy > 0)) {
 	if(md && !ud->state.force_walk && md->walktoxy_fail_count < icewall_walk_block && map_getcell(bl->m,x,y,CELL_CHKICEWALL) && (dx > 0 || dy > 0)) {
 		//Needs to be done here so that rudeattack skills are invoked
 		//Needs to be done here so that rudeattack skills are invoked
 		md->walktoxy_fail_count++;
 		md->walktoxy_fail_count++;
-		clif_fixpos(bl);
+		clif_fixpos( *bl );
 		// Monsters in this situation will unlock target and then attempt an idle skill
 		// Monsters in this situation will unlock target and then attempt an idle skill
 		// When they start chasing again, they will check for a chase skill before returning here
 		// When they start chasing again, they will check for a chase skill before returning here
 		mob_unlocktarget(md, tick);
 		mob_unlocktarget(md, tick);
@@ -551,7 +551,8 @@ static TIMER_FUNC(unit_walktoxy_timer)
 					&& ud->skill_id != NPC_EMOTION && ud->skill_id != NPC_EMOTION_ON //NPC_EMOTION doesn't make the monster stop
 					&& ud->skill_id != NPC_EMOTION && ud->skill_id != NPC_EMOTION_ON //NPC_EMOTION doesn't make the monster stop
 					&& md->state.skillstate != MSS_WALK) //Walk skills are supposed to be used while walking
 					&& md->state.skillstate != MSS_WALK) //Walk skills are supposed to be used while walking
 				{ // Skill used, abort walking
 				{ // Skill used, abort walking
-					clif_fixpos(bl); // Fix position as walk has been cancelled.
+					// Fix position as walk has been cancelled.
+					clif_fixpos( *bl );
 					return 0;
 					return 0;
 				}
 				}
 				// Resend walk packet for proper Self Destruction display.
 				// Resend walk packet for proper Self Destruction display.
@@ -602,7 +603,7 @@ static TIMER_FUNC(unit_walktoxy_timer)
 		if(unit_walktoxy_sub(bl)) {
 		if(unit_walktoxy_sub(bl)) {
 			return 1;	
 			return 1;	
 		} else {
 		} else {
-			clif_fixpos(bl);
+			clif_fixpos( *bl );
 			return 0;
 			return 0;
 		}
 		}
 	}
 	}
@@ -648,7 +649,7 @@ static TIMER_FUNC(unit_walktoxy_timer)
 				// Aegis uses one before every attack, we should
 				// Aegis uses one before every attack, we should
 				// only need this one for syncing purposes. [Skotlex]
 				// only need this one for syncing purposes. [Skotlex]
 				ud->target_to = 0;
 				ud->target_to = 0;
-				clif_fixpos(bl);
+				clif_fixpos( *bl );
 				unit_attack(bl, tbl->id, ud->state.attack_continue);
 				unit_attack(bl, tbl->id, ud->state.attack_continue);
 			}
 			}
 		} else { // Update chase-path
 		} else { // Update chase-path
@@ -938,7 +939,7 @@ void unit_run_hit(struct block_list *bl, status_change *sc, map_session_data *sd
 		skill_blown(bl, bl, skill_get_blewcount(TK_RUN, lv), unit_getdir(bl), BLOWN_NONE);
 		skill_blown(bl, bl, skill_get_blewcount(TK_RUN, lv), unit_getdir(bl), BLOWN_NONE);
 		clif_status_change(bl, EFST_TING, 0, 0, 0, 0, 0);
 		clif_status_change(bl, EFST_TING, 0, 0, 0, 0, 0);
 	} else if (sd) {
 	} else if (sd) {
-		clif_fixpos(bl);
+		clif_fixpos( *bl );
 		skill_castend_damage_id(bl, &sd->bl, RA_WUGDASH, lv, gettick(), SD_LEVEL);
 		skill_castend_damage_id(bl, &sd->bl, RA_WUGDASH, lv, gettick(), SD_LEVEL);
 	}
 	}
 	return;
 	return;
@@ -1444,7 +1445,7 @@ int unit_stop_walking(struct block_list *bl,int type)
 	}
 	}
 
 
 	if(type&USW_FIXPOS)
 	if(type&USW_FIXPOS)
-		clif_fixpos(bl);
+		clif_fixpos( *bl );
 
 
 	ud->walkpath.path_len = 0;
 	ud->walkpath.path_len = 0;
 	ud->walkpath.path_pos = 0;
 	ud->walkpath.path_pos = 0;
@@ -1562,7 +1563,7 @@ TIMER_FUNC(unit_resume_running){
 		clif_skill_nodamage(ud->bl,ud->bl,TK_RUN,ud->skill_lv,sc_start4(ud->bl,ud->bl,SC_RUN,100,ud->skill_lv,unit_getdir(ud->bl),0,0,0));
 		clif_skill_nodamage(ud->bl,ud->bl,TK_RUN,ud->skill_lv,sc_start4(ud->bl,ud->bl,SC_RUN,100,ud->skill_lv,unit_getdir(ud->bl),0,0,0));
 
 
 	if (sd)
 	if (sd)
-		clif_walkok(sd);
+		clif_walkok(*sd);
 
 
 	return 0;
 	return 0;
 }
 }
@@ -2806,7 +2807,7 @@ static int unit_attack_timer_sub(struct block_list* src, int tid, t_tick tick)
 	// Sync packet only for players.
 	// Sync packet only for players.
 	// Non-players use the sync packet on the walk timer. [Skotlex]
 	// Non-players use the sync packet on the walk timer. [Skotlex]
 	if (tid == INVALID_TIMER && sd)
 	if (tid == INVALID_TIMER && sd)
-		clif_fixpos(src);
+		clif_fixpos( *src );
 
 
 	if( DIFF_TICK(ud->attackabletime,tick) <= 0 ) {
 	if( DIFF_TICK(ud->attackabletime,tick) <= 0 ) {
 		if (battle_config.attack_direction_change && (src->type&battle_config.attack_direction_change))
 		if (battle_config.attack_direction_change && (src->type&battle_config.attack_direction_change))
@@ -3250,7 +3251,7 @@ int unit_remove_map_(struct block_list *bl, clr_type clrtype, const char* file,
 
 
 			if( pd->pet.intimate <= PET_INTIMATE_NONE && !(pd->master && !pd->master->state.active) ) {
 			if( pd->pet.intimate <= PET_INTIMATE_NONE && !(pd->master && !pd->master->state.active) ) {
 				// If logging out, this is deleted on unit_free
 				// If logging out, this is deleted on unit_free
-				clif_clearunit_area(bl,clrtype);
+				clif_clearunit_area( *bl, clrtype );
 				map_delblock(bl);
 				map_delblock(bl);
 				unit_free(bl,CLR_OUTSIGHT);
 				unit_free(bl,CLR_OUTSIGHT);
 				map_freeblock_unlock();
 				map_freeblock_unlock();
@@ -3267,7 +3268,7 @@ int unit_remove_map_(struct block_list *bl, clr_type clrtype, const char* file,
 			if( !hd->homunculus.intimacy && !(hd->master && !hd->master->state.active) ) {
 			if( !hd->homunculus.intimacy && !(hd->master && !hd->master->state.active) ) {
 				// If logging out, this is deleted on unit_free
 				// If logging out, this is deleted on unit_free
 				clif_emotion(bl, ET_CRY);
 				clif_emotion(bl, ET_CRY);
-				clif_clearunit_area(bl,clrtype);
+				clif_clearunit_area( *bl, clrtype );
 				map_delblock(bl);
 				map_delblock(bl);
 				unit_free(bl,CLR_OUTSIGHT);
 				unit_free(bl,CLR_OUTSIGHT);
 				map_freeblock_unlock();
 				map_freeblock_unlock();
@@ -3282,7 +3283,7 @@ int unit_remove_map_(struct block_list *bl, clr_type clrtype, const char* file,
 			ud->canact_tick = ud->canmove_tick;
 			ud->canact_tick = ud->canmove_tick;
 
 
 			if( mercenary_get_lifetime(md) <= 0 && !(md->master && !md->master->state.active) ) {
 			if( mercenary_get_lifetime(md) <= 0 && !(md->master && !md->master->state.active) ) {
-				clif_clearunit_area(bl,clrtype);
+				clif_clearunit_area( *bl, clrtype );
 				map_delblock(bl);
 				map_delblock(bl);
 				unit_free(bl,CLR_OUTSIGHT);
 				unit_free(bl,CLR_OUTSIGHT);
 				map_freeblock_unlock();
 				map_freeblock_unlock();
@@ -3297,7 +3298,7 @@ int unit_remove_map_(struct block_list *bl, clr_type clrtype, const char* file,
 			ud->canact_tick = ud->canmove_tick;
 			ud->canact_tick = ud->canmove_tick;
 
 
 			if( elemental_get_lifetime(ed) <= 0 && !(ed->master && !ed->master->state.active) ) {
 			if( elemental_get_lifetime(ed) <= 0 && !(ed->master && !ed->master->state.active) ) {
-				clif_clearunit_area(bl,clrtype);
+				clif_clearunit_area( *bl, clrtype );
 				map_delblock(bl);
 				map_delblock(bl);
 				unit_free(bl,CLR_OUTSIGHT);
 				unit_free(bl,CLR_OUTSIGHT);
 				map_freeblock_unlock();
 				map_freeblock_unlock();
@@ -3331,7 +3332,7 @@ int unit_remove_map_(struct block_list *bl, clr_type clrtype, const char* file,
 			}
 			}
 			[[fallthrough]];
 			[[fallthrough]];
 		default:
 		default:
-			clif_clearunit_area(bl, clrtype);
+			clif_clearunit_area( *bl, clrtype );
 			map_delblock(bl);
 			map_delblock(bl);
 			break;
 			break;
 	}
 	}
@@ -3356,7 +3357,7 @@ void unit_refresh(struct block_list *bl, bool walking) {
 	// Using CLR_TRICKDEAD because other flags show effects
 	// Using CLR_TRICKDEAD because other flags show effects
 	// Probably need to use another flag or other way to refresh it
 	// Probably need to use another flag or other way to refresh it
 	if (mapdata->users) {
 	if (mapdata->users) {
-		clif_clearunit_area(bl, CLR_TRICKDEAD); // Fade out
+		clif_clearunit_area( *bl, CLR_TRICKDEAD ); // Fade out
 		clif_spawn(bl,walking); // Fade in
 		clif_spawn(bl,walking); // Fade in
 	}
 	}
 }
 }

Some files were not shown because too many files changed in this diff