/* * Kangaroo Punch MultiPlayer Game Server Mark II * Copyright (C) 2020-2021 Scott Duensing * * This program 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 PACKETS_H #define PACKETS_H #include #define PACKET_PROTOCOL_VERSION 1 #define PACKET_MAX_USER 16 #define PACKET_MAX_PASS 16 // This enum is treated as BYTES in the code. Do not go over 255 entries. typedef enum PacketTypeE { PACKET_TYPE_NONE = 0, // No packet. PACKET_TYPE_PING, PACKET_TYPE_PONG, PACKET_TYPE_SERVER_SHUTDOWN, PACKET_TYPE_CLIENT_SHUTDOWN, PACKET_TYPE_DH_REQUEST, PACKET_TYPE_DH_RESPONSE, PACKET_TYPE_VERSION, PACKET_TYPE_LOGIN, PACKET_TYPE_COUNT } PacketTypeT; #pragma pack(push, 1) typedef struct PacketTypeVersionS { uint32_t version; } PacketTypeVersionT; typedef struct PacketTypeLoginS { char user[PACKET_MAX_USER]; char pass[PACKET_MAX_PASS]; } PacketTypeLoginT; #pragma pack(pop) #endif // PACKETS_H