diff options
author | Andrei Karas <akaras@inbox.ru> | 2018-11-05 23:37:03 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2018-11-14 06:00:50 +0300 |
commit | 94366099f9019643c9e431a35af064283fab5a0c (patch) | |
tree | 809e747ca8bf89cf63ed4643ee348f7a40e74d6c /src/common/packets.c | |
parent | 77841351959658c576d1087dfdcc6ea0886ade20 (diff) | |
download | hercules-94366099f9019643c9e431a35af064283fab5a0c.tar.gz hercules-94366099f9019643c9e431a35af064283fab5a0c.tar.bz2 hercules-94366099f9019643c9e431a35af064283fab5a0c.tar.xz hercules-94366099f9019643c9e431a35af064283fab5a0c.zip |
Add interface for packets in common.
For now supported only packet length fields.
Diffstat (limited to 'src/common/packets.c')
-rw-r--r-- | src/common/packets.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/common/packets.c b/src/common/packets.c new file mode 100644 index 000000000..429418e0a --- /dev/null +++ b/src/common/packets.c @@ -0,0 +1,64 @@ +/** + * This file is part of Hercules. + * http://herc.ws - http://github.com/HerculesWS/Hercules + * + * Copyright (C) 2012-2018 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 <http://www.gnu.org/licenses/>. + */ +#define HERCULES_CORE + +#include "config/core.h" // CONSOLE_INPUT, MAX_CONSOLE_INPUT +#include "common/packets.h" + +#include "common/cbasetypes.h" +#include "common/mmo.h" +#include "common/nullpo.h" + +#include <string.h> + +static struct packets_interface packets_s; +struct packets_interface *packets; + +static void packets_init(void) +{ + packets->addLens(); +} + +static void packets_addLens(void) +{ +#define packetLen(id, len) packets->addLen(id, len); +#include "common/packets_len.h" +} + +static void packets_addLen(int id, int len) +{ + Assert_retv(id <= MAX_PACKET_DB && id >= MIN_PACKET_DB); + packets->db[id] = len; +} + +static void packets_final(void) +{ +} + +void packets_defaults(void) +{ + packets = &packets_s; + packets->init = packets_init; + packets->final = packets_final; + packets->addLens = packets_addLens; + packets->addLen = packets_addLen; + + memset(&packets->db, 0, sizeof(packets->db)); +} |