// Copyright (c) Athena Dev Teams - Licensed under GNU GPL
// For more information, see LICENCE in the main folder
#ifndef _INTIF_H_
#define _INFIF_H_
//#include "../common/mmo.h"
struct party_member;
struct guild_member;
struct guild_position;
struct s_pet;
struct s_homunculus;
struct s_mercenary;
struct s_elemental;
struct mail_message;
struct auction_data;
#define intif_rename_pc(sd, name) intif->rename(sd, 0, name)
#define intif_rename_pet(sd, name) intif->rename(sd, 1, name)
#define intif_rename_hom(sd, name) intif->rename(sd, 2, name)
/*=====================================
* Interface : intif.h
* Generated by HerculesInterfaceMaker
* created by Susu
*-------------------------------------*/
struct intif_interface {
/* funcs */
int (*parse) (int fd);
int (*create_pet)(int account_id, int char_id, short pet_type, short pet_lv, short pet_egg_id,
short pet_equip, short intimate, short hungry, char rename_flag, char incuvate, char *pet_name);
int (*broadcast) (const char* mes, int len, int type);
int (*broadcast2) (const char* mes, int len, unsigned long fontColor, short fontType, short fontSize, short fontAlign, short fontY);
int (*main_message) (struct map_session_data* sd, const char* message);
int (*wis_message) (struct map_session_data *sd,char *nick,char *mes,int mes_len);
int (*wis_message_to_gm) (char *Wisp_name, int permission, char *mes);
int (*saveregistry) (struct map_session_data *sd, int type);
int (*request_registry) (struct map_session_data *sd, int flag);
int (*request_guild_storage) (int account_id, int guild_id);
int (*send_guild_storage) (int account_id, struct guild_storage *gstor);
int (*create_party) (struct party_member *member,char *name,int item,int item2);
int (*request_partyinfo) (int party_id, int char_id);
int (*party_addmember) (int party_id,struct party_member *member);
int (*party_changeoption) (int party_id, int account_id, int exp, int item);
int (*party_leave) (int party_id,int account_id, int char_id);
int (*party_changemap) (struct map_session_data *sd, int online);
int (*break_party) (int party_id);
int (*party_message) (int party_id, int account_id, const char *mes,int len);
int (*party_leaderchange) (int party_id,int account_id,int char_id);
int (*guild_create) (const char *name, const struct guild_member *master);
int (*guild_request_info) (int guild_id);
int (*guild_addmember) (int guild_id, struct guild_member *m);
int (*guild_leave) (int guild_id, int account_id, int char_id, int flag, const char *mes);
int (*guild_memberinfoshort) (int guild_id, int account_id, int char_id, int online, int lv, int class_);
int (*guild_break) (int guild_id);
int (*guild_message) (int guild_id, int account_id, const char *mes, int len);
int (*guild_change_gm) (int guild_id, const char* name, int len);
int (*guild_change_basicinfo) (int guild_id, int type, const void *data, int len);
int (*guild_change_memberinfo) (int guild_id, int account_id, int char_id, int type, const void *data, int len);
int (*guild_position) (int guild_id, int idx, struct guild_position *p);
int (*guild_skillup) (int guild_id, uint16 skill_id, int account_id, int max);
int (*guild_alliance) (int guild_id1, int guild_id2, int account_id1, int account_id2, int flag);
int (*guild_notice) (int guild_id, const char *mes1, const char *mes2);
int (*guild_emblem) (int guild_id, int len, const char *data);
int (*guild_castle_dataload) (int num, int *castle_ids);
int (*guild_castle_datasave) (int castle_id, int index, int value);
int (*request_petdata) (int account_id, int char_id, int pet_id);
int (*save_petdata) (int account_id, struct s_pet *p);
int (*delete_petdata) (int pet_id);
int (*rename) (struct map_session_data *sd, int type, char *name);
int (*homunculus_create) (int account_id, struct s_homunculus *sh);
bool (*homunculus_requestload) (int account_id, int homun_id);
int (*homunculus_requestsave) (int account_id, struct s_homunculus* sh);
int (*homunculus_requestdelete) (int homun_id);
/******QUEST SYTEM*******/
int (*request_questlog) (struct map_session_data * sd);
int (*quest_save) (struct map_session_data * sd);
// MERCENARY SYSTEM
int (*mercenary_create) (struct s_mercenary *merc);
int (*mercenary_request) (int merc_id, int char_id);
int (*mercenary_delete) (int merc_id);
int (*mercenary_save) (struct s_mercenary *merc);
// MAIL SYSTEM
int (*Mail_requestinbox) (int char_id, unsigned char flag);
int (*Mail_read) (int mail_id);
int (*Mail_getattach) (int char_id, int mail_id);
int (*Mail_delete) (int char_id, int mail_id);
int (*Mail_return) (int char_id, int mail_id);
int (*Mail_send) (int account_id, struct mail_message *msg);
// AUCTION SYSTEM
int (*Auction_requestlist) (int char_id, short type, int price, const char* searchtext, short page);
int (*Auction_register) (struct auction_data *auction);
int (*Auction_cancel) (int char_id, unsigned int auction_id);
int (*Auction_close) (int char_id, unsigned int auction_id);
int (*Auction_bid) (int char_id, const char* name, unsigned int auction_id, int bid);
// ELEMENTAL SYSTEM
int (*elemental_create) (struct s_elemental *ele);
int (*elemental_request) (int ele_id, int char_id);
int (*elemental_delete) (int ele_id);
int (*elemental_save) (struct s_elemental *ele);
/* @accinfo */
void (*request_accinfo) (int u_fd, int aid, int group_lv, char* query);
int (*CheckForCharServer) (void);
} intif_s;
struct intif_interface *intif;
void intif_defaults(void);
#endif /* _INTIF_H_ */