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.h83
1 files changed, 83 insertions, 0 deletions
diff --git a/src/map/mercenary.h b/src/map/mercenary.h
new file mode 100644
index 000000000..994c7aaa4
--- /dev/null
+++ b/src/map/mercenary.h
@@ -0,0 +1,83 @@
+// 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
+
+// number of cells that a mercenary can walk to from it's master before being warped
+#define MAX_MER_DISTANCE 15
+
+enum {
+ ARCH_MERC_GUILD,
+ SPEAR_MERC_GUILD,
+ SWORD_MERC_GUILD,
+};
+
+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;
+ char blockskill[MAX_SKILL];
+
+ struct map_session_data *master;
+ int contract_timer;
+
+ unsigned devotion_flag : 1;
+ unsigned int masterteleport_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);
+
+void mercenary_heal(struct mercenary_data *md, int hp, int sp);
+int mercenary_dead(struct mercenary_data *md);
+
+int merc_delete(struct mercenary_data *md, int reply);
+void merc_contract_stop(struct mercenary_data *md);
+
+int mercenary_get_lifetime(struct mercenary_data *md);
+int mercenary_get_guild(struct mercenary_data *md);
+int mercenary_get_faith(struct mercenary_data *md);
+int mercenary_set_faith(struct mercenary_data *md, int value);
+int mercenary_get_calls(struct mercenary_data *md);
+int mercenary_set_calls(struct mercenary_data *md, int value);
+int mercenary_kills(struct mercenary_data *md);
+
+int mercenary_checkskill(struct mercenary_data *md, uint16 skill_id);
+
+/**
+ * atcommand.c required
+ **/
+int read_mercenarydb(void);
+int read_mercenary_skilldb(void);
+
+int do_init_mercenary(void);
+
+#endif /* _MERCENARY_H_ */