netcode seems functional

This commit is contained in:
Nishi 2026-01-29 19:42:00 +09:00
commit 0ee72e3446
Signed by: nishi
GPG key ID: 27EF69B208EB9343
10 changed files with 116 additions and 89 deletions

View file

@ -23,20 +23,20 @@ GSDECL void GSNetServerStep(GSNetServer net);
GSDECL void GSNetServerClose(GSNetServer net);
/* net_base.c */
GSDECL GSBool GSNetBaseHasData(int fd);
GSDECL int GSNetBaseServer(int port);
GSDECL int GSNetBaseClient(const char* hostname, int port, GSNetAddress* address);
GSDECL void GSNetBaseClose(int fd);
GSDECL int GSNetBaseRead(int fd, void* data, int size, GSNetAddress* address); /* always read 508 bytes! */
GSDECL void GSNetBaseWrite(int fd, void* data, int size, GSNetAddress* address);
GSDECL GSBool GSNetBaseHasData(GSNetSocket sock);
GSDECL GSNetSocket GSNetBaseServer(int port);
GSDECL GSNetSocket GSNetBaseClient(const char* hostname, int port, GSNetAddress* address);
GSDECL void GSNetBaseClose(GSNetSocket sock);
GSDECL int GSNetBaseRead(GSNetSocket sock, void* data, int size, GSNetAddress* address); /* always read 508 bytes! */
GSDECL void GSNetBaseWrite(GSNetSocket sock, void* data, int size, GSNetAddress* address);
/* net_packet.c */
GSDECL void GSNetPacketRead(int fd, GSNetPacket* packet, GSNetAddress* address);
GSDECL void GSNetPacketWrite(int fd, GSNetPacket* packet, GSNetAddress* address);
GSDECL void GSNetPacketRead(GSNetSocket sock, GSNetPacket* packet, GSNetAddress* address);
GSDECL void GSNetPacketWrite(GSNetSocket sock, GSNetPacket* packet, GSNetAddress* address);
/* net_state.c */
GSDECL void GSNetStateRead(GSNetState* state, int fd, GSNetPacket* packet, GSNetAddress* address);
GSDECL void GSNetStateWrite(GSNetState* state, int fd, GSNetAddress* address);
GSDECL void GSNetStateRead(GSNetState* state, GSNetSocket sock, GSNetPacket* packet, GSNetAddress* address);
GSDECL void GSNetStateWrite(GSNetState* state, GSNetSocket sock, GSNetAddress* address);
#ifdef __cplusplus
}

View file

@ -49,8 +49,8 @@ typedef struct _GSNetPacketHeader GSNetPacketHeader;
typedef struct _GSNetPacket GSNetPacket;
typedef struct _GSNetAddress GSNetAddress;
typedef struct _GSBinary GSBinary;
typedef struct _GSNetState GSNetState;
typedef struct _GSNetKV GSNetKV;
typedef struct _GSNetState GSNetState;
typedef struct _GSNetKV GSNetKV;
#ifdef _GEARSRC
typedef struct _GSClient* GSClient;
typedef struct _GSServer* GSServer;
@ -65,6 +65,7 @@ typedef struct _GSSoundEngine* GSSoundEngine;
typedef struct _GSSound* GSSound;
typedef struct _GSNetClient* GSNetClient;
typedef struct _GSNetServer* GSNetServer;
typedef struct _GSNetSocket* GSNetSocket;
typedef struct _GSModelFace GSModelFace;
typedef struct _GSModelMaterial GSModelMaterial;
@ -84,6 +85,7 @@ typedef void* GSSoundEngine;
typedef void* GSSound;
typedef void* GSNetClient;
typedef void* GSNetServer;
typedef void* GSNetSocket;
#endif
typedef float GSNumber;
typedef GSNumber GSVector2[2];
@ -147,10 +149,10 @@ struct _GSNetState {
unsigned int rxindex;
unsigned int rxtotal;
unsigned int txseq;
unsigned int txindex;
unsigned int txtotal;
unsigned int txstate;
unsigned int txseq;
unsigned int txindex;
unsigned int txtotal;
unsigned int txstate;
unsigned long txtick;
GSBinary* rx;
@ -161,7 +163,7 @@ struct _GSNetState {
struct _GSNetKV {
GSNetAddress key;
GSNetState value;
GSNetState value;
};
#ifdef _GEARSRC
@ -279,20 +281,25 @@ struct _GSSoundEngine {
struct _GSNetClient {
GSEngine engine;
int fd;
GSNetSocket sock;
GSNetAddress address;
GSNetState state;
GSNetState state;
};
struct _GSNetServer {
GSEngine engine;
int fd;
GSNetSocket sock;
GSNetKV* client;
};
struct _GSNetSocket {
int fd;
GSBool client;
};
struct _GSClient {
GSEngine engine;