eco2d/code/common/packets/packet.h

37 lines
794 B
C

#pragma once
#include "system.h"
#define PKT_BUFSIZ 4096
typedef enum {
MSG_ID_01_WELCOME,
MSG_ID_LIBRG_UPDATE,
MSG_ID_FORCE_UINT16 = UINT16_MAX,
} pkt_messages;
typedef struct pkt_header {
uint16_t id;
uint16_t sender;
uint8_t *data;
uint32_t datalen;
int8_t is_reliable;
int8_t ok;
} pkt_header;
#define PKT_HANDLER_PROC(name) int32_t name(pkt_header *header)
typedef PKT_HANDLER_PROC(pkt_handler_proc);
typedef struct {
uint16_t id;
pkt_handler_proc *handler;
} pkt_handler;
int32_t pkt_header_encode(pkt_messages id, void *data, size_t datalen);
int32_t pkt_header_decode(pkt_header *table, void *data, size_t datalen);
extern pkt_handler pkt_handlers[];
extern uint8_t pkt_buffer[];
// NOTE(zaklaus): packets
#include "pkt_01_welcome.h"