summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt4
-rw-r--r--src/common/mmo.h2
-rw-r--r--src/map/clif.c12
-rw-r--r--src/map/map.h4
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 {