summaryrefslogtreecommitdiff
path: root/src/map/status.h
diff options
context:
space:
mode:
authorlordttseven <lordttseven@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-03-15 10:30:42 +0000
committerlordttseven <lordttseven@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-03-15 10:30:42 +0000
commitdaeecf3bd0bdb54f43f8aedee98a7c8c68a56992 (patch)
tree4d57bf55bb3f936bf97ac92402627e90ed1bdd40 /src/map/status.h
parent55984b91c03d25e7a6cae535043cd49815cf9e24 (diff)
downloadhercules-daeecf3bd0bdb54f43f8aedee98a7c8c68a56992.tar.gz
hercules-daeecf3bd0bdb54f43f8aedee98a7c8c68a56992.tar.bz2
hercules-daeecf3bd0bdb54f43f8aedee98a7c8c68a56992.tar.xz
hercules-daeecf3bd0bdb54f43f8aedee98a7c8c68a56992.zip
Status change packet cleanup
* fixed a couple typos * replaced duplicate function clif_status_load with a macro * normalized and documented status change table related getter abstraction * put some checks that were previously in multiple places into clif_status_change * packets are now used as they are on official servers: - ZC_MSG_STATE_CHANGE for ending statuses and starting them on non-pcs - ZC_MSG_STATE_CHANGE2 for starting *all* statuses on players - tick = 9999 for statuses of indeterminate duration - for non-pc units, a packet is only sent if it has a visual impact on the client; if you notice any missing visual effects, please report them! * fixed hidden GM characters leaking certain status packets * fixed hidden GM characters not displaying timers for newly gained statuses * fixed status end packet never being sent for non-pc, non-mercenary units * fixed SC_CLOAKING displaying a time bar on the client * fixed tick being an unsigned int, yet used as a signed int * removed hard-coded status length exceptions in clif_status_change git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15688 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/status.h')
-rw-r--r--src/map/status.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/map/status.h b/src/map/status.h
index a71a4ef49..4d1e53d4d 100644
--- a/src/map/status.h
+++ b/src/map/status.h
@@ -13,8 +13,6 @@ struct status_change;
#define MAX_REFINE_BONUS 5
-extern unsigned long StatusChangeFlagTable[];
-
// Status changes listing. These code are for use by the server.
typedef enum sc_type {
@@ -1152,6 +1150,8 @@ enum si_type {
SI_EARTH_INSIGNIA = 570,
SI_EQUIPED_FLOOR = 571,
SI_ALL_RIDING = 613,//awesome 571-613 gap, we're missing quite a few stuff here.
+
+ SI_MAX,
};
// JOINTBEAT stackable ailments
@@ -1333,7 +1333,8 @@ enum scb_flag
#define BL_CONSUME (BL_PC|BL_HOM|BL_MER)
//Define to determine who has regen
#define BL_REGEN (BL_PC|BL_HOM|BL_MER)
-
+//Define to determine who will receive a clif_status_change packet for effects that require one to display correctly
+#define BL_SCEFFECT (BL_PC|BL_HOM|BL_MER|BL_MOB)
//Basic damage info of a weapon
//Required because players have two of these, one in status_data
@@ -1458,6 +1459,8 @@ struct status_change {
// for looking up associated data
sc_type status_skill2sc(int skill);
int status_sc2skill(sc_type sc);
+unsigned int status_sc2scb_flag(sc_type sc);
+int status_type2relevant_bl_types(int type);
int status_damage(struct block_list *src,struct block_list *target,int hp,int sp, int walkdelay, int flag);
//Define for standard HP damage attacks.