summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt2
-rw-r--r--src/map/clif.c3
-rw-r--r--src/map/status.c8
3 files changed, 11 insertions, 2 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index d01339577..6474f29cd 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 8321368c0..1f3dc4373 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 df12ad208..f77f2a917 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;