diff options
Diffstat (limited to 'src/map/mercenary.h')
-rw-r--r-- | src/map/mercenary.h | 48 |
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_ */ |