diff options
-rw-r--r-- | Changelog-Trunk.txt | 4 | ||||
-rw-r--r-- | src/common/mmo.h | 2 | ||||
-rw-r--r-- | src/map/clif.c | 12 | ||||
-rw-r--r-- | src/map/map.h | 4 |
4 files changed, 14 insertions, 8 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index a5ffeba86..5af964c7d 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 842159d59..3095e1491 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 5d6dded43..5c2157aa2 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 2061e93bb..45688cfe4 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 {
|