diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index a5ffeba861..5af964c7d9 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,10 @@ 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/11/27 + * Updated the status change field "option" to an int rather than short. + This fixes the option values for xmas/sightblaster not getting set, which + could explain why some people crash when equipping weapons while in xmas + suit. [Skotlex] * Fixed the Homunculus hungry timer not starting on login. [Skotlex] * Added logging for standard GM commands (/mm /b /kick etc) [KarLaeda] * Some cleanups on the trade_additem function. When specifying a qty of 0, diff --git a/src/common/mmo.h b/src/common/mmo.h index 842159d59b..3095e14915 100644 --- a/src/common/mmo.h +++ b/src/common/mmo.h @@ -219,7 +219,7 @@ struct mmo_charstatus { short class_; unsigned short status_point,skill_point; int hp,max_hp,sp,max_sp; - unsigned short option; + unsigned int option; short manner; unsigned char karma; short hair,hair_color,clothes_color; diff --git a/src/map/clif.c b/src/map/clif.c index 5d6dded437..5c2157aa23 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -871,9 +871,10 @@ void clif_get_weapon_view(TBL_PC* sd, unsigned short *rhand, unsigned short *lha *rhand = sd->status.weapon; *lhand = sd->status.shield; #else - if (sd->equip_index[9] >= 0 && sd->inventory_data[sd->equip_index[9]]) + if (sd->equip_index[EQI_HAND_R] >= 0 && + sd->inventory_data[sd->equip_index[EQI_HAND_R]]) { - id = sd->inventory_data[sd->equip_index[9]]; + id = sd->inventory_data[sd->equip_index[EQI_HAND_R]]; if (id->view_id > 0) *rhand = id->view_id; else @@ -881,10 +882,11 @@ void clif_get_weapon_view(TBL_PC* sd, unsigned short *rhand, unsigned short *lha } else *rhand = 0; - if (sd->equip_index[8] >= 0 && sd->equip_index[8] != sd->equip_index[9] - && sd->inventory_data[sd->equip_index[8]]) + if (sd->equip_index[EQI_HAND_L] >= 0 && + sd->equip_index[EQI_HAND_L] != sd->equip_index[EQI_HAND_R] && + sd->inventory_data[sd->equip_index[EQI_HAND_L]]) { - id = sd->inventory_data[sd->equip_index[8]]; + id = sd->inventory_data[sd->equip_index[EQI_HAND_L]]; if (id->view_id > 0) *lhand = id->view_id; else diff --git a/src/map/map.h b/src/map/map.h index 2061e93bba..45688cfe43 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -419,8 +419,8 @@ struct status_change_entry { struct status_change { struct status_change_entry data[MAX_STATUSCHANGE]; short count; - short opt1,opt2,opt3; - unsigned short option; + unsigned short opt1,opt2; + unsigned int opt3, option; //Note that older packet versions use short here. }; struct vending {