diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index d01339577e..6474f29cd4 100644 --- a/Changelog-Trunk.txt +++ b/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 diff --git a/src/map/clif.c b/src/map/clif.c index 8321368c08..1f3dc43732 100644 --- a/src/map/clif.c +++ b/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); diff --git a/src/map/status.c b/src/map/status.c index df12ad2085..f77f2a9174 100644 --- a/src/map/status.c +++ b/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;