// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
// See the LICENSE file
// Portions Copyright (c) Athena Dev Teams
#ifndef _CHAR_INTER_H_
#define _CHAR_INTER_H_
struct accreg;
#include "../common/sql.h"
#include "char.h"
int inter_init_sql(const char *file);
void inter_final(void);
int inter_parse_frommap(int fd);
int inter_mapif_init(int fd);
int mapif_send_gmaccounts(void);
int mapif_disconnectplayer(int fd, int account_id, int char_id, int reason);
void mapif_parse_accinfo2(bool success, int map_fd, int u_fd, int u_aid, int account_id, const char *userid, const char *user_pass, const char *email, const char *last_ip, const char *lastlogin, const char *pin_code, const char *birthdate, int group_id, int logincount, int state);
int inter_log(char *fmt,...);
int inter_vlog(char *fmt, va_list ap);
#define inter_cfgName "conf/inter-server.conf"
extern unsigned int party_share_level;
extern Sql* sql_handle;
extern Sql* lsql_handle;
int inter_accreg_tosql(int account_id, int char_id, struct accreg *reg, int type);
uint64 inter_chk_lastuid(int8 flag, uint64 value);
#ifdef NSI_UNIQUE_ID
#define updateLastUid(val_) inter_chk_lastuid(1, (val_))
#define dbUpdateUid(handler_) do { \
uint64 unique_id_ = inter_chk_lastuid(0, 0); \
if (unique_id_ && SQL_ERROR == SQL->Query((handler_), "UPDATE `%s` SET `value`='%"PRIu64"' WHERE `varname`='unique_id'", interreg_db, unique_id_)) \
Sql_ShowDebug(handler_);\
} while(0)
#else
#define dbUpdateUid(handler_)
#define updateLastUid(val_)
#endif
#endif /* _CHAR_INTER_H_ */