From 39253de1b1335b0c9f71d5bc31c1a6b5a95f6940 Mon Sep 17 00:00:00 2001 From: ai4rei Date: Sun, 21 Nov 2010 16:20:26 +0000 Subject: * Added enumeration RC2_* for mob data 'race2' (bugreport:4561). - Fixed race2-related bonus arrays using RC_MAX, rather than race2 maximum (since r6221, related r1277). - Fixed bSubRace2 lacking bounds check (since r1257). - Fixed bSubRace2 being documented as bSPSubRace2 (since r1257). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14480 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/map.h | 11 +++++++++++ src/map/mob.c | 2 +- src/map/mob.h | 1 - src/map/pc.c | 5 +++-- src/map/pc.h | 4 ++-- 5 files changed, 17 insertions(+), 6 deletions(-) (limited to 'src/map') diff --git a/src/map/map.h b/src/map/map.h index 199db618d..9f25249e2 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -210,6 +210,17 @@ enum { RC_MAX }; +enum { + RC2_NONE = 0, + RC2_GOBLIN, + RC2_KOBOLD, + RC2_ORC, + RC2_GOLEM, + RC2_GUARDIAN, + RC2_NINJA, + RC2_MAX +}; + enum { ELE_NEUTRAL=0, ELE_WATER, diff --git a/src/map/mob.c b/src/map/mob.c index 81fc9e68b..413d88f26 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -4349,7 +4349,7 @@ static int mob_readdb_race(void) continue; race=atoi(str[0]); - if (race < 0 || race >= MAX_MOB_RACE_DB) + if (race < RC2_NONE || race >= RC2_MAX) continue; for (j=1; j<20; j++) { diff --git a/src/map/mob.h b/src/map/mob.h index b0efdbfb4..e8bd0a837 100644 --- a/src/map/mob.h +++ b/src/map/mob.h @@ -12,7 +12,6 @@ #define MAX_RANDOMMONSTER 4 -#define MAX_MOB_RACE_DB 6 // Change this to increase the table size in your mob_db to accomodate a larger mob database. // Be sure to note that IDs 4001 to 4048 are reserved for advanced/baby/expanded classes. diff --git a/src/map/pc.c b/src/map/pc.c index e93ae8a93..c52a61003 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -27,7 +27,6 @@ #include "homunculus.h" #include "instance.h" #include "mercenary.h" -#include "mob.h" // MAX_MOB_RACE_DB #include "npc.h" // fake_nd #include "pet.h" // pet_unlocktarget() #include "party.h" // party_search() @@ -2741,7 +2740,7 @@ int pc_bonus2(struct map_session_data *sd,int type,int type2,int val) } break; case SP_ADDRACE2: - if (!(type2 > 0 && type2 < MAX_MOB_RACE_DB)) + if (!(type2 > RC2_NONE && type2 < RC2_MAX)) break; if(sd->state.lr_flag != 2) sd->right_weapon.addrace2[type2] += val; @@ -2753,6 +2752,8 @@ int pc_bonus2(struct map_session_data *sd,int type,int type2,int val) sd->subsize[type2]+=val; break; case SP_SUBRACE2: + if (!(type2 > RC2_NONE && type2 < RC2_MAX)) + break; if(sd->state.lr_flag != 2) sd->subrace2[type2]+=val; break; diff --git a/src/map/pc.h b/src/map/pc.h index 374488609..7bf3a050f 100644 --- a/src/map/pc.h +++ b/src/map/pc.h @@ -31,7 +31,7 @@ struct weapon_data { int def_ratio_atk_race; int addele[ELE_MAX]; int addrace[RC_MAX]; - int addrace2[RC_MAX]; + int addrace2[RC2_MAX]; int addsize[3]; struct drain_data { @@ -219,7 +219,7 @@ struct map_session_data { int param_bonus[6],param_equip[6]; //Stores card/equipment bonuses. int subele[ELE_MAX]; int subrace[RC_MAX]; - int subrace2[RC_MAX]; + int subrace2[RC2_MAX]; int subsize[3]; int reseff[SC_COMMON_MAX-SC_COMMON_MIN+1]; int weapon_coma_ele[ELE_MAX]; -- cgit v1.2.3-60-g2f50