/** * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * * Copyright (C) 2017 Hercules Dev Team * * 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 MAP_RODEX_H #define MAP_RODEX_H #include "common/mmo.h" #include "common/hercules.h" #define RODEX_WEIGHT_LIMIT (2000 * 10) struct rodex_message; enum rodex_add_item { RODEX_ADD_ITEM_SUCCESS = 0, RODEX_ADD_ITEM_WEIGHT_ERROR = 1, RODEX_ADD_ITEM_FATAL_ERROR = 2, RODEX_ADD_ITEM_NO_SPACE = 3, RODEX_ADD_ITEM_NOT_TRADEABLE = 4, }; enum rodex_send_mail { RODEX_SEND_MAIL_SUCCESS = 0, RODEX_SEND_MAIL_FATAL_ERROR = 1, RODEX_SEND_MAIL_COUNT_ERROR = 2, RODEX_SEND_MAIL_ITEM_ERROR = 3, RODEX_SEND_MAIL_RECEIVER_ERROR = 4 }; enum rodex_get_zeny { RODEX_GET_ZENY_SUCCESS = 0, RODEX_GET_ZENY_FATAL_ERROR = 1, RODEX_GET_ZENY_LIMIT_ERROR = 2 }; enum rodex_get_items { RODEX_GET_ITEMS_SUCCESS = 0, RODEX_GET_ITEM_FATAL_ERROR = 1, RODEX_GET_ITEM_FULL_ERROR = 2, }; struct rodex_interface { void (*init) (bool minimal); void (*final) (void); bool (*isenabled) (void); void (*open) (struct map_session_data *sd, int8 open_type, int64 first_mail_id); void (*next_page) (struct map_session_data *sd, int8 open_type, int64 last_mail_id); void (*refresh) (struct map_session_data *sd, int8 open_type, int64 first_mail_id); void (*add_item) (struct map_session_data *sd, int16 idx, int16 amount); void (*remove_item) (struct map_session_data *sd, int16 idx, int16 amount); void (*check_player) (struct map_session_data *sd, const char *name, int *base_level, int *char_id, int *class); int (*send_mail) (struct map_session_data *sd, const char *receiver_name, const char *body, const char *title, int64 zeny); void (*send_mail_result) (struct map_session_data *ssd, struct map_session_data *rsd, bool result); struct rodex_message *(*get_mail) (struct map_session_data *sd, int64 mail_id); void (*read_mail) (struct map_session_data *sd, int64 mail_id); void (*get_zeny) (struct map_session_data *sd, int8 opentype, int64 mail_id); void (*get_items) (struct map_session_data *sd, int8 opentype, int64 mail_id); void (*delete_mail) (struct map_session_data *sd, int64 mail_id); void (*clean) (struct map_session_data *sd, int8 flag); void (*getZenyAck) (struct map_session_data *sd, int64 mail_id, int8 opentype, int64 zeny); void (*getItemsAck) (struct map_session_data *sd, int64 mail_id, int8 opentype, int count, const struct rodex_item *items); }; #ifdef HERCULES_CORE void rodex_defaults(void); #endif HPShared struct rodex_interface *rodex; #endif