Prechádzať zdrojové kódy

- status_setviewdata will set your option accordingly when the previous/new view-class is wedding or xmas suit.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6437 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex 19 rokov pred
rodič
commit
a5b4b2d05e
3 zmenil súbory, kde vykonal 11 pridanie a 2 odobranie
  1. 2 0
      Changelog-Trunk.txt
  2. 1 2
      src/map/clif.c
  3. 8 0
      src/map/status.c

+ 2 - 0
Changelog-Trunk.txt

@@ -4,6 +4,8 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 2006/05/01
+	* status_setviewdata will set your option accordingly when the previous/new
+	  view-class is wedding or xmas suit. [Skotlex]
 	* Added function map_foreachinshootrange, behaves the same way as
 	  map_foreachinrange, but it also performs a "shoot-path" check before
 	  invoking the function. Used in the skill subtimer function if

+ 1 - 2
src/map/clif.c

@@ -780,7 +780,7 @@ void clif_get_weapon_view(TBL_PC* sd, short *rhand, short *lhand)
 #if PACKETVER > 3
 	struct item_data *id;
 #endif
-	if (sd->vd.class_ == JOB_XMAS || sd->vd.class_ == JOB_WEDDING)
+	if (sd->sc.option&(OPTION_XMAS|OPTION_WEDDING))
 	{
 		*rhand = *lhand = 0;
 		return;
@@ -2682,7 +2682,6 @@ int clif_changelook(struct block_list *bl,int type,int val)
 	unsigned char buf[32];
 	struct map_session_data *sd = NULL;
 	struct view_data *vd;
-	nullpo_retr(0, bl);
 	vd = status_get_viewdata(bl);
 	nullpo_retr(0, vd);
 	

+ 8 - 0
src/map/status.c

@@ -3330,6 +3330,14 @@ void status_set_viewdata(struct block_list *bl, int class_)
 					class_ = JOB_BABY_CRUSADER2;
 					break;
 				}
+				if (sd->vd.class_ == JOB_WEDDING)
+					sd->sc.option&=~OPTION_WEDDING;
+				if (sd->vd.class_ == JOB_XMAS)
+					sd->sc.option&=~OPTION_XMAS;
+				if (class_ == JOB_WEDDING)
+					sd->sc.option|=OPTION_WEDDING;
+				if (class_ == JOB_XMAS)
+					sd->sc.option|=OPTION_XMAS;
 				sd->vd.class_ = class_;
 				clif_get_weapon_view(sd, &sd->vd.weapon, &sd->vd.shield);
 				sd->vd.head_top = sd->status.head_top;