Преглед изворни кода

* Merged changes up to eAthena 15053. [ai4rei]
- clif cleanup: Changed clif_changestatus so that it takes sd instead of bl, since it only accepts BL_PC bls anyway.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15471 54d463be-8e91-2dee-dedb-b68131a5f0ec

eathenabot пре 13 година
родитељ
комит
dc04abd5f5
4 измењених фајлова са 14 додато и 17 уклоњено
  1. 9 12
      src/map/clif.c
  2. 1 1
      src/map/clif.h
  3. 1 1
      src/map/pc.c
  4. 3 3
      src/map/status.c

+ 9 - 12
src/map/clif.c

@@ -2726,30 +2726,27 @@ void clif_updatestatus(struct map_session_data *sd,int type)
 	WFIFOSET(fd,len);
 }
 
-void clif_changestatus(struct block_list *bl,int type,int val)
+void clif_changestatus(struct map_session_data* sd,int type,int val)
 {
 	unsigned char buf[12];
-	struct map_session_data *sd = NULL;
 
-	nullpo_retv(bl);
+	nullpo_retv(sd);
 
-	if(bl->type == BL_PC)
-		sd = (struct map_session_data *)bl;
+	WBUFW(buf,0)=0x1ab;
+	WBUFL(buf,2)=sd->bl.id;
+	WBUFW(buf,6)=type;
 
-	if(sd){
-		WBUFW(buf,0)=0x1ab;
-		WBUFL(buf,2)=bl->id;
-		WBUFW(buf,6)=type;
-		switch(type){
+	switch(type)
+	{
 		case SP_MANNER:
 			WBUFL(buf,8)=val;
 			break;
 		default:
 			ShowError("clif_changestatus : unrecognized type %d.\n",type);
 			return;
-		}
-		clif_send(buf,packet_len(0x1ab),bl,AREA_WOS);
 	}
+
+	clif_send(buf,packet_len(0x1ab),&sd->bl,AREA_WOS);
 }
 
 /*==========================================

+ 1 - 1
src/map/clif.h

@@ -255,7 +255,7 @@ void clif_additem(struct map_session_data *sd, int n, int amount, int fail); //
 void clif_dropitem(struct map_session_data *sd,int n,int amount);	//self
 void clif_delitem(struct map_session_data *sd,int n,int amount, short reason); //self
 void clif_updatestatus(struct map_session_data *sd,int type);	//self
-void clif_changestatus(struct block_list* bl,int type,int val);	//area
+void clif_changestatus(struct map_session_data* sd,int type,int val);	//area
 int clif_damage(struct block_list* src, struct block_list* dst, unsigned int tick, int sdelay, int ddelay, int damage, int div, int type, int damage2);	// area
 void clif_takeitem(struct block_list* src, struct block_list* dst);
 void clif_sitting(struct block_list* bl);

+ 1 - 1
src/map/pc.c

@@ -6677,7 +6677,7 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper)
 		merc_hom_vaporize(sd, 0);
 	
 	if(sd->status.manner < 0)
-		clif_changestatus(&sd->bl,SP_MANNER,sd->status.manner);
+		clif_changestatus(sd,SP_MANNER,sd->status.manner);
 
 	status_calc_pc(sd,0);
 	pc_checkallowskill(sd);

+ 3 - 3
src/map/status.c

@@ -6230,7 +6230,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
 			val1 = battle_config.manner_system; //Mute filters.
 			if (sd)
 			{
-				clif_changestatus(&sd->bl,SP_MANNER,sd->status.manner);
+				clif_changestatus(sd,SP_MANNER,sd->status.manner);
 				clif_updatestatus(sd,SP_MANNER);
 			}
 			break;
@@ -7951,7 +7951,7 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
 				sd->status.manner = 0;
 			if (sd && tid == INVALID_TIMER)
 			{
-				clif_changestatus(&sd->bl,SP_MANNER,sd->status.manner);
+				clif_changestatus(sd,SP_MANNER,sd->status.manner);
 				clif_updatestatus(sd,SP_MANNER);
 			}
 			break;
@@ -8647,7 +8647,7 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
 	case SC_NOCHAT:
 		if(sd){
 			sd->status.manner++;
-			clif_changestatus(bl,SP_MANNER,sd->status.manner);
+			clif_changestatus(sd,SP_MANNER,sd->status.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.