/** * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * * Copyright (C) 2012-2015 Hercules Dev Team * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef CHAR_PINCODE_H #define CHAR_PINCODE_H #include "common/hercules.h" struct char_session_data; enum PincodeResponseCode { PINCODE_OK = 0, PINCODE_ASK = 1, PINCODE_NOTSET = 2, PINCODE_EXPIRED = 3, PINCODE_UNUSED = 7, PINCODE_WRONG = 8, }; /** * pincode interface **/ struct pincode_interface { /* vars */ int enabled; int changetime; int maxtry; int charselect; unsigned int multiplier; unsigned int baseSeed; /* handler */ void (*handle) (int fd, struct char_session_data* sd); void (*decrypt) (unsigned int userSeed, char* pin); void (*error) (int account_id); void (*update) (int account_id, char* pin); void (*sendstate) (int fd, struct char_session_data* sd, uint16 state); void (*setnew) (int fd, struct char_session_data* sd); void (*change) (int fd, struct char_session_data* sd); int (*compare) (int fd, struct char_session_data* sd, char* pin); void (*check) (int fd, struct char_session_data* sd); bool (*config_read) (char *w1, char *w2); }; #ifdef HERCULES_CORE void pincode_defaults(void); #endif // HERCULES_CORE HPShared struct pincode_interface *pincode; #endif /* CHAR_PINCODE_H */