summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
Diffstat (limited to 'src/map')
-rw-r--r--src/map/map.h2
-rw-r--r--src/map/mercenary.c12
-rw-r--r--src/map/mercenary.h14
-rw-r--r--src/map/pc.h1
4 files changed, 27 insertions, 2 deletions
diff --git a/src/map/map.h b/src/map/map.h
index 5a7fed46e..bb4b0a94c 100644
--- a/src/map/map.h
+++ b/src/map/map.h
@@ -176,6 +176,7 @@ enum bl_type {
BL_SKILL = 0x020,
BL_NPC = 0x040,
BL_CHAT = 0x080,
+ BL_MER = 0x100,
BL_ALL = 0xFFF,
};
@@ -631,6 +632,7 @@ typedef struct chat_data TBL_CHAT;
typedef struct skill_unit TBL_SKILL;
typedef struct pet_data TBL_PET;
typedef struct homun_data TBL_HOM;
+typedef struct mercenary_data TBL_MER;
#define BL_CAST(type_, bl) \
( ((bl) == (struct block_list*)NULL || (bl)->type != (type_)) ? (T ## type_ *)NULL : (T ## type_ *)(bl) )
diff --git a/src/map/mercenary.c b/src/map/mercenary.c
index da58da7ee..d3b2b7677 100644
--- a/src/map/mercenary.c
+++ b/src/map/mercenary.c
@@ -37,12 +37,22 @@
#include <string.h>
#include <math.h>
-
//Better equiprobability than rand()% [orn]
#define rand(a, b) (a+(int) ((float)(b-a+1)*rand()/(RAND_MAX+1.0)))
+/*==========================================
+ * Mercenary's System
+ *------------------------------------------*/
struct s_mercenary_db mercenary_db[MAX_MERCENARY_CLASS]; // Mercenary Database
+int merc_create(struct map_session_data *sd, int class_)
+{
+ return 1;
+}
+
+/*==========================================
+ * Homunculus's System
+ *------------------------------------------*/
struct s_homunculus_db homunculus_db[MAX_HOMUNCULUS_CLASS]; //[orn]
struct skill_tree_entry hskill_tree[MAX_HOMUNCULUS_CLASS][MAX_SKILL_TREE];
diff --git a/src/map/mercenary.h b/src/map/mercenary.h
index 726fae4e4..51fdea787 100644
--- a/src/map/mercenary.h
+++ b/src/map/mercenary.h
@@ -23,6 +23,18 @@ struct s_mercenary_db {
extern struct s_mercenary_db mercenary_db[MAX_MERCENARY_CLASS];
+struct mercenary_data {
+ struct block_list bl;
+ struct unit_data ud;
+ struct view_data *vd;
+ struct status_change *base_status, battle_status;
+ struct status_change sc;
+ struct regen_data regen;
+
+ struct s_mercenary_db *db;
+ struct s_mercenary mercenary;
+};
+
// Homunculus DB Structures
// ===================================
@@ -58,7 +70,7 @@ struct homun_data {
struct status_change sc;
struct regen_data regen;
struct s_homunculus_db *homunculusDB; //[orn]
- struct s_homunculus homunculus ; //[orn]
+ struct s_homunculus homunculus; //[orn]
struct map_session_data *master; //pointer back to its master
int hungry_timer; //[orn]
diff --git a/src/map/pc.h b/src/map/pc.h
index 9c3768c7b..16ee1936b 100644
--- a/src/map/pc.h
+++ b/src/map/pc.h
@@ -313,6 +313,7 @@ struct map_session_data {
struct pet_data *pd;
struct homun_data *hd; // [blackhole89]
+ struct mercenary_data *md;
struct{
int m; //-1 - none, other: map index corresponding to map name.