diff options
Diffstat (limited to 'src/map/status.c')
-rw-r--r-- | src/map/status.c | 59 |
1 files changed, 35 insertions, 24 deletions
diff --git a/src/map/status.c b/src/map/status.c index 506c45ddf..c3e5a3f40 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -1000,6 +1000,7 @@ void initChangeTables(void) status->dbs->IconChangeTable[SC_MONSTER_TRANSFORM] = SI_MONSTER_TRANSFORM; // Costumes + status->dbs->IconChangeTable[SC_DRESS_UP] = SI_DRESS_UP; status->dbs->IconChangeTable[SC_MOONSTAR] = SI_MOONSTAR; status->dbs->IconChangeTable[SC_SUPER_STAR] = SI_SUPER_STAR; status->dbs->IconChangeTable[SC_STRANGELIGHTS] = SI_STRANGELIGHTS; @@ -1178,6 +1179,7 @@ void initChangeTables(void) status->dbs->ChangeFlagTable[SC_MVPCARD_ORCLORD] |= SCB_ALL; // Costumes + status->dbs->ChangeFlagTable[SC_DRESS_UP] |= SCB_NONE; status->dbs->ChangeFlagTable[SC_MOONSTAR] |= SCB_NONE; status->dbs->ChangeFlagTable[SC_SUPER_STAR] |= SCB_NONE; status->dbs->ChangeFlagTable[SC_STRANGELIGHTS] |= SCB_NONE; @@ -6873,23 +6875,20 @@ void status_set_viewdata(struct block_list *bl, int class_) sd->vd.sex = sd->status.sex; if (sd->vd.cloth_color) { - if (sd->sc.option&OPTION_WEDDING && battle_config.wedding_ignorepalette) - sd->vd.cloth_color = 0; - if (sd->sc.option&OPTION_XMAS && battle_config.xmas_ignorepalette) - sd->vd.cloth_color = 0; - if (sd->sc.option&OPTION_SUMMER && battle_config.summer_ignorepalette) - sd->vd.cloth_color = 0; - if (sd->sc.option&OPTION_HANBOK && battle_config.hanbok_ignorepalette) - sd->vd.cloth_color = 0; - if (sd->sc.option&OPTION_OKTOBERFEST /* TODO: config? */) + if ((sd->sc.option & OPTION_WEDDING) != 0 && battle_config.wedding_ignorepalette == true) + sd->vd.cloth_color = 0; + if ((sd->sc.option & OPTION_XMAS) != 0 && battle_config.xmas_ignorepalette == true) + sd->vd.cloth_color = 0; + if ((sd->sc.option & OPTION_SUMMER) != 0 && battle_config.summer_ignorepalette == true) + sd->vd.cloth_color = 0; + if ((sd->sc.option & OPTION_HANBOK) != 0 && battle_config.hanbok_ignorepalette == true) + sd->vd.cloth_color = 0; + if ((sd->sc.option & OPTION_OKTOBERFEST) != 0 && battle_config.oktoberfest_ignorepalette == true) + sd->vd.cloth_color = 0; + if ((sd->sc.option & OPTION_SUMMER2) != 0 && battle_config.summer2_ignorepalette == true) sd->vd.cloth_color = 0; } - if (sd->vd.body_style - && (sd->sc.option&OPTION_WEDDING - || sd->sc.option&OPTION_XMAS - || sd->sc.option&OPTION_SUMMER - || sd->sc.option&OPTION_HANBOK - || sd->sc.option&OPTION_OKTOBERFEST)) + if (sd->vd.body_style != 0 && (sd->sc.option & OPTION_COSTUME) != 0) sd->vd.body_style = 0; } else if (vd != NULL) { memcpy(&sd->vd, vd, sizeof(struct view_data)); @@ -8475,8 +8474,10 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t case SC_SUMMER: case SC_HANBOK: case SC_OKTOBERFEST: - if (!vd) return 0; - //Store previous values as they could be removed. + case SC_DRESS_UP: + if (vd == NULL) + return 0; + // Store previous values as they could be removed. unit->stop_attack(bl); break; case SC_NOCHAT: @@ -9871,19 +9872,21 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t return 0; } } - } else { //Special considerations when loading SC data. - switch( type ) { + } else { // Special considerations when loading SC data. + switch (type) { case SC_WEDDING: case SC_XMAS: case SC_SUMMER: case SC_HANBOK: case SC_OKTOBERFEST: - if( !vd ) break; + case SC_DRESS_UP: + if (vd == NULL) + break; clif->changelook(bl, LOOK_BASE, vd->class); - clif->changelook(bl,LOOK_WEAPON,0); - clif->changelook(bl,LOOK_SHIELD,0); - clif->changelook(bl,LOOK_CLOTHES_COLOR,vd->cloth_color); - clif->changelook(bl,LOOK_BODY2,0); + clif->changelook(bl, LOOK_WEAPON, 0); + clif->changelook(bl, LOOK_SHIELD, 0); + clif->changelook(bl, LOOK_CLOTHES_COLOR, vd->cloth_color); + clif->changelook(bl, LOOK_BODY2, 0); break; case SC_KAAHI: val4 = INVALID_TIMER; @@ -10266,6 +10269,10 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t sc->option |= OPTION_OKTOBERFEST; opt_flag |= 0x4; break; + case SC_DRESS_UP: + sc->option |= OPTION_SUMMER2; + opt_flag |= 0x4; + break; case SC__FEINTBOMB_MASTER: sc->option |= OPTION_INVISIBLE; opt_flag |= 0x4; @@ -11074,6 +11081,10 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const sc->option &= ~OPTION_OKTOBERFEST; opt_flag |= 0x4; break; + case SC_DRESS_UP: + sc->option &= ~OPTION_SUMMER2; + opt_flag |= 0x4; + break; case SC__FEINTBOMB_MASTER: sc->option &= ~OPTION_INVISIBLE; opt_flag |= 0x4; |