summaryrefslogtreecommitdiff
path: root/src/map/mob.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/mob.hpp')
-rw-r--r--src/map/mob.hpp214
1 files changed, 84 insertions, 130 deletions
diff --git a/src/map/mob.hpp b/src/map/mob.hpp
index 19addf2..16715c4 100644
--- a/src/map/mob.hpp
+++ b/src/map/mob.hpp
@@ -1,151 +1,105 @@
-// $Id: mob.h,v 1.4 2004/09/25 05:32:18 MouseJstr Exp $
#ifndef MOB_HPP
#define MOB_HPP
-#include "../common/timer.hpp"
-#define MAX_RANDOMMONSTER 3
+
+#include "mob.t.hpp"
+
+#include "../common/mmo.hpp"
+#include "../common/timer.t.hpp"
+#include "../common/random.t.hpp"
+
+#include "clif.t.hpp"
+#include "map.hpp"
+#include "skill.t.hpp"
struct mob_skill
{
- short state;
- short skill_id, skill_lv;
+ MobSkillState state;
+ SkillID skill_id;
+ short skill_lv;
short permillage;
- int casttime, delay;
+ interval_t casttime, delay;
short cancel;
- short cond1, cond2;
- short target;
- int val[5];
+ MobSkillCondition cond1;
+ int cond2i;
+ MobSkillTarget target;
+ int val[5];
short emotion;
};
struct mob_db
{
char name[24], jname[24];
- int lv;
- int max_hp, max_sp;
- int base_exp, job_exp;
- int atk1, atk2;
- int def, mdef;
- int str, agi, vit, int_, dex, luk;
- int range, range2, range3;
- int size, race, element, mode;
- int speed, adelay, amotion, dmotion;
- int mexp, mexpper;
- int mutations_nr, mutation_power;
+ int lv;
+ int max_hp, max_sp;
+ int base_exp, job_exp;
+ int atk1, atk2;
+ int def, mdef;
+ earray<int, ATTR, ATTR::COUNT> attrs;
+ int range, range2, range3;
+ // always 1
+ int size;
+ Race race;
+ LevelElement element;
+ MobMode mode;
+ int speed, adelay, amotion, dmotion;
+ int mutations_nr, mutation_power;
struct
{
- int nameid, p;
+ int nameid;
+ random_::Fixed<int, 10000> p;
} dropitem[8];
- struct
- {
- int nameid, p;
- } mvpitem[3];
- int view_class, sex;
+ int sex;
short hair, hair_color, weapon, shield, head_top, head_mid, head_buttom, option, clothes_color; // [Valaris]
- int equip; // [Valaris]
- int summonper[MAX_RANDOMMONSTER];
- int maxskill;
+ int equip; // [Valaris]
+ int maxskill;
struct mob_skill skill[MAX_MOBSKILL];
};
extern struct mob_db mob_db[];
-enum
-{
- MST_TARGET = 0,
- MST_SELF,
- MST_FRIEND,
- MST_MASTER,
- MST_AROUND5,
- MST_AROUND6,
- MST_AROUND7,
- MST_AROUND8,
- MST_AROUND1,
- MST_AROUND2,
- MST_AROUND3,
- MST_AROUND4,
- MST_AROUND = MST_AROUND4,
-
- MSC_ALWAYS = 0x0000,
- MSC_MYHPLTMAXRATE = 0x0001,
- MSC_FRIENDHPLTMAXRATE = 0x0010,
- MSC_MYSTATUSON = 0x0020,
- MSC_MYSTATUSOFF = 0x0021,
- MSC_FRIENDSTATUSON = 0x0030,
- MSC_FRIENDSTATUSOFF = 0x0031,
- MSC_NOTINTOWN = 0x0032,
-
- MSC_ATTACKPCGT = 0x0100,
- MSC_ATTACKPCGE = 0x0101,
- MSC_SLAVELT = 0x0110,
- MSC_SLAVELE = 0x0111,
- MSC_CLOSEDATTACKED = 0x1000,
- MSC_LONGRANGEATTACKED = 0x1001,
- MSC_SKILLUSED = 0x1010,
- MSC_CASTTARGETED = 0x1011,
-};
-
-enum
-{
- MSS_IDLE, // 待機
- MSS_WALK, // 移動
- MSS_ATTACK, // 攻撃
- MSS_DEAD, // 死亡
- MSS_LOOT, // ルート
- MSS_CHASE, // 突撃
-};
-
-int mobdb_searchname (const char *str);
-int mobdb_checkid (const int id);
-int mob_once_spawn (struct map_session_data *sd, const char *mapname,
- int x, int y, const char *mobname, int class_, int amount,
- const char *event);
-int mob_once_spawn_area (struct map_session_data *sd, const char *mapname, int x0,
- int y0, int x1, int y1, const char *mobname,
- int class_, int amount, const char *event);
-
-int mob_spawn_guardian (struct map_session_data *sd, const char *mapname, // Spawning Guardians [Valaris]
- int x, int y, const char *mobname, int class_, int amount, const char *event, int guardian); // Spawning Guardians [Valaris]
-
-int mob_walktoxy (struct mob_data *md, int x, int y, int easy);
-
-int mob_target (struct mob_data *md, struct block_list *bl, int dist);
-int mob_stop_walking (struct mob_data *md, int type);
-int mob_stopattack (struct mob_data *);
-int mob_spawn (int);
-int mob_damage (struct block_list *, struct mob_data *, int, int);
-int mob_changestate (struct mob_data *md, int state, int type);
-int mob_heal (struct mob_data *, int);
-int mob_get_viewclass (int);
-int mob_get_sex (int);
-short mob_get_hair (int);
-short mob_get_hair_color (int);
-short mob_get_weapon (int);
-short mob_get_shield (int);
-short mob_get_head_top (int);
-short mob_get_head_mid (int);
-short mob_get_head_buttom (int);
-short mob_get_clothes_color (int); //player mob dye [Valaris]
-int mob_get_equip (int); // mob equip [Valaris]
-int do_init_mob (void);
-
-int mob_delete (struct mob_data *md);
-int mob_catch_delete (struct mob_data *md, int type);
-void mob_timer_delete (timer_id, tick_t, custom_id_t, custom_data_t);
-
-int mob_deleteslave (struct mob_data *md);
-
-int mob_counttargeted (struct mob_data *md, struct block_list *src,
- int target_lv);
-
-int mob_class_change (struct mob_data *md, int *value);
-int mob_warp (struct mob_data *md, int m, int x, int y, int type);
-
-int mobskill_use (struct mob_data *md, unsigned int tick, int event);
-int mobskill_event (struct mob_data *md, int flag);
-void mobskill_castend_id (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data);
-void mobskill_castend_pos (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data);
-int mob_summonslave (struct mob_data *md2, int *value, int amount, int flag);
-
-int mob_gvmobcheck (struct map_session_data *sd, struct block_list *bl);
-void mob_reload (void);
-
-#endif
+int mobdb_searchname(const char *str);
+int mobdb_checkid(const int id);
+int mob_once_spawn(struct map_session_data *sd,
+ const char *mapname, int x, int y,
+ const char *mobname, int class_, int amount, const char *event);
+int mob_once_spawn_area(struct map_session_data *sd,
+ const char *mapname, int x0, int y0, int x1, int y1,
+ const char *mobname, int class_, int amount, const char *event);
+
+int mob_target(struct mob_data *md, struct block_list *bl, int dist);
+int mob_stop_walking(struct mob_data *md, int type);
+int mob_stopattack(struct mob_data *);
+int mob_spawn(int);
+int mob_damage(struct block_list *, struct mob_data *, int, int);
+int mob_heal(struct mob_data *, int);
+int mob_get_sex(int);
+short mob_get_hair(int);
+short mob_get_hair_color(int);
+short mob_get_weapon(int);
+short mob_get_shield(int);
+short mob_get_head_top(int);
+short mob_get_head_mid(int);
+short mob_get_head_buttom(int);
+short mob_get_clothes_color(int); //player mob dye [Valaris]
+int mob_get_equip(int); // mob equip [Valaris]
+int do_init_mob(void);
+
+int mob_delete(struct mob_data *md);
+int mob_catch_delete(struct mob_data *md, BeingRemoveWhy type);
+void mob_timer_delete(TimerData *, tick_t, int);
+
+int mob_deleteslave(struct mob_data *md);
+
+int mob_counttargeted(struct mob_data *md, struct block_list *src,
+ ATK target_lv);
+
+int mob_warp(struct mob_data *md, int m, int x, int y, BeingRemoveWhy type);
+
+int mobskill_use(struct mob_data *md, tick_t tick, MobSkillCondition event);
+int mobskill_event(struct mob_data *md, BF flag);
+void mobskill_castend_id(TimerData *tid, tick_t tick, int id);
+void mobskill_castend_pos(TimerData *tid, tick_t tick, int id);
+int mob_summonslave(struct mob_data *md2, int *value, int amount, int flag);
+
+void mob_reload(void);
+
+#endif // MOB_HPP