diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-11-27 21:32:32 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-11-27 21:32:32 +0000 |
commit | 0c54e1b5b3116b0eab4e91d9faf84acd7c946b41 (patch) | |
tree | cf9a5b680cf28fd6784c558e5add25ed0ce66120 | |
parent | 22ca80169f4034a67d33d08447882e7355979f7c (diff) | |
download | hercules-0c54e1b5b3116b0eab4e91d9faf84acd7c946b41.tar.gz hercules-0c54e1b5b3116b0eab4e91d9faf84acd7c946b41.tar.bz2 hercules-0c54e1b5b3116b0eab4e91d9faf84acd7c946b41.tar.xz hercules-0c54e1b5b3116b0eab4e91d9faf84acd7c946b41.zip |
- 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.
- Also did the same to opt3 since the new packet version uses LONG to store the opt3 values.
- Made the clif weapon view function use the EQI constants instead of ints.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9337 54d463be-8e91-2dee-dedb-b68131a5f0ec
-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 {
|