From 0c54e1b5b3116b0eab4e91d9faf84acd7c946b41 Mon Sep 17 00:00:00 2001 From: skotlex Date: Mon, 27 Nov 2006 21:32:32 +0000 Subject: - 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 --- Changelog-Trunk.txt | 4 ++++ src/common/mmo.h | 2 +- src/map/clif.c | 12 +++++++----- 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 { -- cgit v1.2.3-70-g09d2