summaryrefslogtreecommitdiff
path: root/src/map/mercenary.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/mercenary.h')
-rw-r--r--src/map/mercenary.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/map/mercenary.h b/src/map/mercenary.h
new file mode 100644
index 000000000..bc2046dc7
--- /dev/null
+++ b/src/map/mercenary.h
@@ -0,0 +1,48 @@
+// Copyright (c) Athena Dev Teams - Licensed under GNU GPL
+// For more information, see LICENCE in the main folder
+
+#ifndef _MERCENARY_H_
+#define _MERCENARY_H_
+
+#include "status.h" // struct status_data, struct status_change
+#include "unit.h" // struct unit_data
+
+struct s_mercenary_db {
+ int class_;
+ char sprite[NAME_LENGTH], name[NAME_LENGTH];
+ unsigned short lv;
+ short range2, range3;
+ struct status_data status;
+ struct view_data vd;
+ struct {
+ unsigned short id, lv;
+ } skill[MAX_MERCSKILL];
+};
+
+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_data base_status, battle_status;
+ struct status_change sc;
+ struct regen_data regen;
+
+ struct s_mercenary_db *db;
+ struct s_mercenary mercenary;
+
+ struct map_session_data *master;
+ int contract_timer;
+};
+
+bool merc_class(int class_);
+struct view_data * merc_get_viewdata(int class_);
+int merc_create(struct map_session_data *sd, int class_, unsigned int lifetime);
+int merc_data_received(struct s_mercenary *merc, bool flag);
+int mercenary_save(struct mercenary_data *md);
+int do_init_mercenary(void);
+int merc_delete(struct mercenary_data *md, int reply);
+void merc_contract_stop(struct mercenary_data *md);
+
+#endif /* _MERCENARY_H_ */