summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt3
-rw-r--r--db/Changelog.txt3
-rw-r--r--db/const.txt8
-rw-r--r--doc/item_bonus.txt2
-rw-r--r--src/map/map.h11
-rw-r--r--src/map/mob.c2
-rw-r--r--src/map/mob.h1
-rw-r--r--src/map/pc.c5
-rw-r--r--src/map/pc.h4
9 files changed, 32 insertions, 7 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 693dea8b6..1fa18948f 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -3,6 +3,9 @@ Date Added
2010/11/21
* Added msinttypes (rev. 26, http://msinttypes.googlecode.com/svn/trunk/) portability framework for Visual C++ compilers (related bugreport:4059). [Ai4rei]
* Added 64-bit variants of the socket and buffer I/O macros. [Ai4rei]
+ * Added enumeration RC2_* for mob data 'race2' (bugreport:4561). [Ai4rei]
+ - Fixed race2-related bonus arrays using RC_MAX, rather than race2 maximum (since r6221, related r1277).
+ - Fixed bSubRace2 lacking bounds check (since r1257).
2010/11/20
* Fixed @doom and @doommap spamming packets for the visual effect on invoker unnecessarily over whole map and server respectively. The effect is now displayed on each killed character (bugreport:871, since r311). [Ai4rei]
* Fixed login-server account engine initialization not getting checked, whether it succeeds or not (bugreport:4361, since r12700, related r13000). [Ai4rei]
diff --git a/db/Changelog.txt b/db/Changelog.txt
index dc48cfb0c..5d4235477 100644
--- a/db/Changelog.txt
+++ b/db/Changelog.txt
@@ -8,6 +8,9 @@
1475 Equestrian's Spear: NEED INFO.
13005 Angelic Wing Dagger: NEED INFO.
=======================
+2010/11/21
+ * Rev. 14480 Added enumeration RC2_* to const.txt for mob data 'race2' (bugreport:4561). [Ai4rei]
+ - Fixed bSubRace2 being documented as bSPSubRace2 (since r1257).
2010/11/19
* Rev. 14474 Item Database bugfixing. [L0ne_W0lf]
- Fixed equip locations and view IDs for some headgears. (bugreport:4336)
diff --git a/db/const.txt b/db/const.txt
index c6a8bcbff..3fbec41fb 100644
--- a/db/const.txt
+++ b/db/const.txt
@@ -487,6 +487,14 @@ RC_Boss 10
RC_NonBoss 11
RC_NonDemiHuman 12
+RC2_None 0
+RC2_Goblin 1
+RC2_Kobold 2
+RC2_Orc 3
+RC2_Golem 4
+RC2_Guardian 5
+RC2_Ninja 6
+
BF_WEAPON 0x0001
BF_MAGIC 0x0002
BF_MISC 0x0004
diff --git a/doc/item_bonus.txt b/doc/item_bonus.txt
index d9224e196..78e34f2fc 100644
--- a/doc/item_bonus.txt
+++ b/doc/item_bonus.txt
@@ -285,7 +285,7 @@ bonus2 bSPRegenRate,n,x; Gain n SP every x milliseconds
bonus2 bSPLossRate,n,x; Lose n SP every x milliseconds
bonus2 bExpAddRace,n,x; Increase exp gained by x% vs. enemies of race n
bonus2 bSPGainRace,n,x; When killing a monster of race n by physical attack gain x amount of sp
-bonus2 bSPSubRace2,n,x; Damage x% reduction from enemies of race n
+bonus2 bSubRace2,n,x; Damage x% reduction from enemies of race n
(Check db/mob_race2_db.txt)
bonus2 bAddMonsterDropItemGroup,n,x; x% chance to get an item of group type n when you kill a monster
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
@@ -211,6 +211,17 @@ enum {
};
enum {
+ RC2_NONE = 0,
+ RC2_GOBLIN,
+ RC2_KOBOLD,
+ RC2_ORC,
+ RC2_GOLEM,
+ RC2_GUARDIAN,
+ RC2_NINJA,
+ RC2_MAX
+};
+
+enum {
ELE_NEUTRAL=0,
ELE_WATER,
ELE_EARTH,
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];