summaryrefslogtreecommitdiff
path: root/src/map/homunculus.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/homunculus.h')
-rw-r--r--src/map/homunculus.h22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/map/homunculus.h b/src/map/homunculus.h
index 18f8728d3..9d23fbe2c 100644
--- a/src/map/homunculus.h
+++ b/src/map/homunculus.h
@@ -5,10 +5,12 @@
#ifndef MAP_HOMUNCULUS_H
#define MAP_HOMUNCULUS_H
-#include "pc.h"
-#include "status.h" // struct status_data, struct status_change
-#include "unit.h" // struct unit_data
-#include "../common/mmo.h"
+#include "map/status.h" // struct status_data, struct status_change
+#include "map/unit.h" // struct unit_data
+#include "common/hercules.h"
+#include "common/mmo.h"
+
+struct map_session_data;
#define MAX_HOM_SKILL_REQUIRE 5
#define homdb_checkid(id) ((id) >= HM_CLASS_BASE && (id) <= HM_CLASS_MAX)
@@ -98,12 +100,16 @@ enum homun_type {
HT_INVALID = -1, // Invalid Homunculus
};
-/* homunculus.c interface */
-struct homunculus_interface {
+struct homun_dbs {
unsigned int exptable[MAX_LEVEL];
struct view_data viewdb[MAX_HOMUNCULUS_CLASS];
struct s_homunculus_db db[MAX_HOMUNCULUS_CLASS];
struct homun_skill_tree_entry skill_tree[MAX_HOMUNCULUS_CLASS][MAX_SKILL_TREE];
+};
+
+/* homunculus.c interface */
+struct homunculus_interface {
+ struct homun_dbs *dbs;
/* */
void (*init) (bool minimal);
void (*final) (void);
@@ -155,10 +161,10 @@ struct homunculus_interface {
int8 (*get_intimacy_grade) (struct homun_data *hd);
};
-struct homunculus_interface *homun;
-
#ifdef HERCULES_CORE
void homunculus_defaults(void);
#endif // HERCULES_CORE
+HPShared struct homunculus_interface *homun;
+
#endif /* MAP_HOMUNCULUS_H */