File Game2DLayerNetwork.h
File List > engine > include > Game2DLayerNetwork.h
Go to the documentation of this file
#ifndef GAME2DLAYER_NETWORK_H
#define GAME2DLAYER_NETWORK_H
#include <stdbool.h>
#include "IntTypes.h"
struct GameFrameworkLayer;
struct BinarySerializer;
struct GameLayer2DData;
struct Entity2D;
struct Entity2DCollection;
enum G2DPacketType
{
G2DPacket_RequestLevelData,
G2DPacket_LevelDataResponseData,
G2DPacket_RPC,
G2DPacket_WorldState
};
struct TilemapEdit
{
u16 x, y;
u16 layer;
TileIndex newVal;
};
enum Game2DRPCType
{
G2DRPC_CreateEntity,
G2DRPC_DestroyEntity,
G2DRPC_AdjustNetworkID,
G2DRPC_LastEngineRPC /* leave at end */
};
typedef void(*RPCMessageConstructorFn)(struct BinarySerializer* pBS, void* pRPCStruct);
typedef void(*RPCMessageHandlerFn)(struct BinarySerializer* pBS, struct GameLayer2DData* pData, int client);
struct UserGame2DRPC
{
int rpcType;
RPCMessageConstructorFn ctor;
RPCMessageHandlerFn handler;
};
void G2D_RegisterUserRPC(struct UserGame2DRPC* rpc);
typedef void(*PacketExtensionNoArgsFn)(struct BinarySerializer*);
void G2D_Extend_RequestLevelDataMessage(PacketExtensionNoArgsFn fn);
void G2D_Enqueue_RequestLevelData();
enum G2DPacketType G2D_ParsePacket(u8* pPacket, u8** pOutBody, int* outHeaderSize);
void G2D_Enqueue_Worldstate_Packet(struct GameLayer2DData* pData, int clientI);
enum Game2DRPCType G2D_ParseRPCPacket(u8* packet, u8** pOutBody);
void G2D_DoRPC(struct GameFrameworkLayer* pLayer, struct GameLayer2DData* pData, u8* pRPCData, int client);
void G2D_PollNetworkQueueClient(struct GameFrameworkLayer* pLayer, float deltaT);
void G2D_PollNetworkQueueServer(struct GameFrameworkLayer* pLayer, float deltaT);
void G2D_SendRPC(int client, enum Game2DRPCType type, void* pRPCData);
struct Entity2D* G2D_FindEntityWithNetID(struct Entity2DCollection* pCollection, int netID);
bool G2D_IsClientConnected(int i);
struct AdjustNetID_RPC
{
int oldNetID;
int newNetID;
};
struct CreateEntity_RPC
{
struct Entity2D* pEnt;
struct GameLayer2DData* pData;
};
struct DeleteEntity_RPC
{
int netID;
};
#endif