54 lines
1.8 KiB
C
54 lines
1.8 KiB
C
#pragma once
|
|
|
|
#include "pxl8_protocol.h"
|
|
#include "pxl8_types.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define PXL8_NET_INPUT_HISTORY_SIZE 64
|
|
#define PXL8_NET_USERDATA_SIZE 56
|
|
|
|
typedef struct pxl8_net pxl8_net;
|
|
|
|
typedef enum pxl8_net_mode {
|
|
PXL8_NET_LOCAL = 0,
|
|
PXL8_NET_REMOTE
|
|
} pxl8_net_mode;
|
|
|
|
typedef struct pxl8_net_config {
|
|
const char* address;
|
|
pxl8_net_mode mode;
|
|
u16 port;
|
|
} pxl8_net_config;
|
|
|
|
pxl8_result pxl8_net_connect(pxl8_net* net);
|
|
bool pxl8_net_connected(const pxl8_net* net);
|
|
pxl8_net* pxl8_net_create(const pxl8_net_config* config);
|
|
void pxl8_net_destroy(pxl8_net* net);
|
|
void pxl8_net_disconnect(pxl8_net* net);
|
|
const pxl8_entity_state* pxl8_net_entities(const pxl8_net* net);
|
|
const u8* pxl8_net_entity_prev_userdata(const pxl8_net* net, u64 entity_id);
|
|
const u8* pxl8_net_entity_userdata(const pxl8_net* net, u64 entity_id);
|
|
const pxl8_event_msg* pxl8_net_events(const pxl8_net* net);
|
|
const pxl8_input_msg* pxl8_net_input_at(const pxl8_net* net, u64 tick);
|
|
u64 pxl8_net_input_oldest_tick(const pxl8_net* net);
|
|
void pxl8_net_input_push(pxl8_net* net, const pxl8_input_msg* input);
|
|
f32 pxl8_net_lerp_alpha(const pxl8_net* net);
|
|
bool pxl8_net_needs_correction(const pxl8_net* net);
|
|
u64 pxl8_net_player_id(const pxl8_net* net);
|
|
bool pxl8_net_poll(pxl8_net* net);
|
|
u8* pxl8_net_predicted_state(pxl8_net* net);
|
|
void pxl8_net_predicted_tick_set(pxl8_net* net, u64 tick);
|
|
size_t pxl8_net_recv(pxl8_net* net, u8* buf, size_t len);
|
|
pxl8_result pxl8_net_send(pxl8_net* net, const u8* data, size_t len);
|
|
pxl8_result pxl8_net_send_command(pxl8_net* net, const pxl8_command_msg* cmd);
|
|
pxl8_result pxl8_net_send_input(pxl8_net* net, const pxl8_input_msg* input);
|
|
const pxl8_snapshot_header* pxl8_net_snapshot(const pxl8_net* net);
|
|
u64 pxl8_net_tick(const pxl8_net* net);
|
|
void pxl8_net_update(pxl8_net* net, f32 dt);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|