1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
|
/*
* PARSEC HEADER: net_subh.h
*/
#ifndef _NET_SUBH_H_
#define _NET_SUBH_H_
// ----------------------------------------------------------------------------
// NETWORKING SUBSYSTEM (NET) system-dependent function declarations -
// ----------------------------------------------------------------------------
// remote event functions (RMEV)
int NET_RmEvAllowed( int re_type );
size_t NET_RmEvGetSize( RE_Header *relist );
int NET_RmEvPlayerName( const char *name );
int NET_RmEvSendText( const char *text );
int NET_RmEvObject( const GenObject *objpo );
int NET_RmEvLaser( const LaserObject *laserpo );
int NET_RmEvMissile( const MissileObject *missilepo, dword targetobjid );
int NET_RmEvExtra( const ExtraObject *extrapo );
int NET_RmEvMine( const ExtraObject *extrapo );
int NET_RmEvParticleObject( int type, const Vertex3& origin );
int NET_RmEvKillObject( dword objid, byte listno );
int NET_RmEvWeaponState( dword weapon, byte state, int energy, dword specials );
int NET_RmEvStateSync( dword statekey, dword stateval );
int NET_RmEvCreateSwarm( Vector3 *origin, dword targetobjid, dword seed );
int NET_RmEvCreateEmp( int upgradelevel );
RE_PlayerStatus* NET_RmEvPlayerStatus( byte last_unjoin_flag );
RE_PlayerAndShipStatus* NET_RmEvPlayerAndShipStatus( byte last_unjoin_flag );
RE_ClientInfo* NET_RmEvClientInfo( int nSendFreq, int nRecvRate );
void NET_ExecRmEvCreateObject ( RE_Header *rmev, int ownerid );
void NET_ExecRmEvCreateLaser ( RE_Header *rmev, int ownerid );
void NET_ExecRmEvCreateMissile ( RE_Header *rmev, int ownerid );
void NET_ExecRmEvParticleObject ( RE_Header *rmev, int ownerid );
void NET_ExecRmEvCreateExtra ( RE_Header *rmev, int ownerid );
void NET_ExecRmEvKillObject ( RE_Header *rmev );
void NET_ExecRmEvSendText ( RE_Header *rmev, int ownerid );
void NET_ExecRmEvPlayerName ( RE_Header *rmev, int ownerid );
void NET_ExecRmEvWeaponState ( RE_Header *rmev, int ownerid );
void NET_ExecRmEvStateSync ( RE_Header *rmev, int ownerid );
void NET_ExecRmEvCreateSwarm ( RE_Header *rmev, int ownerid );
void NET_ExecRmEvCreateEmp ( RE_Header *rmev, int ownerid );
void NET_ExecRmEvPlayerAndShipStatus ( RE_PlayerAndShipStatus* pas_status, dword messageid );
void NET_ExecRmEvGameState ( RE_GameState* gamestate );
void NET_ExecRmEvKillStats ( RE_KillStats* killstats );
void NET_ExecRmEvCommandInfo ( RE_CommandInfo* commandinfo );
void NET_ExecRmEvCreateExtra2 ( RE_Header *rmev, int ownerid );
void NET_ExecRmEvIPv4ServerInfo ( RE_IPv4ServerInfo* pIPv4ServerInfo );
void NET_ExecRmEvServerLinkInfo ( RE_ServerLinkInfo* pServerLinkInfo );
void NET_ExecRmEvMapObject ( RE_MapObject* pMapObject );
void NET_ExecRmEvStargate ( RE_Stargate* pRE_Stargate );
// utility functions (UTIL)
int NET_ProtocolPEER();
int NET_ProtocolGMSV();
int NET_ConnectedPEER();
int NET_ConnectedGMSV();
char* NET_FetchPlayerName( int playerid );
int NET_SetPlayerName( const char *name );
ShipObject* NET_FetchOwnersShip( int ownerid );
void NET_SetPlayerKillStat( int playerid, int amount );
int NET_KillStatLimitReached( int limit );
void NET_KillStatForceIdleZero();
void NET_DrawEntryModeText();
#ifdef DBIND_PROTOCOL
// protocol api functions
#define NETs_Connect (*net_subsys_jtab.Connect)
#define NETs_Disconnect (*net_subsys_jtab.Disconnect)
#define NETs_Join (*net_subsys_jtab.Join)
#define NETs_Unjoin (*net_subsys_jtab.Unjoin)
#define NETs_UpdateName (*net_subsys_jtab.UpdateName)
#define NETs_MaintainNet (*net_subsys_jtab.MaintainNet)
// protocol api - game functions
#define NETs_RmEvList_GetMaxSize (*net_subsys_jtab.RmEvList_GetMaxSize)
#define NETs_UpdateKillStats (*net_subsys_jtab.UpdateKillStats)
// protocol api - packet handling functions
#define NETs_HandleOutPacket (*net_subsys_jtab.HandleOutPacket)
#define NETs_HandleOutPacket_DEMO (*net_subsys_jtab.HandleOutPacket_DEMO)
#define NETs_HandleInPacket (*net_subsys_jtab.HandleInPacket)
#define NETs_HandleInPacket_DEMO (*net_subsys_jtab.HandleInPacket_DEMO)
#define NETs_NetPacketExternal_DEMO_GetSize (*net_subsys_jtab.NetPacketExternal_DEMO_GetSize)
#define NETs_StdGameHeader (*net_subsys_jtab.StdGameHeader)
#define NETs_WritePacketInfo (*net_subsys_jtab.WritePacketInfo)
#else // DBIND_PROTOCOL
// protocol api functions
int NETs_Connect();
int NETs_Disconnect();
int NETs_Join();
int NETs_Unjoin( byte flag );
int NETs_UpdateName();
void NETs_MaintainNet();
// protocol api - game functions
size_t NETs_RmEvList_GetMaxSize();
void NETs_UpdateKillStats( RE_KillStats* killstats );
// protocol api - packet handling functions
size_t NETs_HandleOutPacket ( const NetPacket* int_gamepacket, NetPacketExternal* ext_gamepacket );
size_t NETs_HandleOutPacket_DEMO ( const NetPacket* int_gamepacket, NetPacketExternal* ext_gamepacket );
int NETs_HandleInPacket ( const NetPacketExternal* ext_gamepacket, const int ext_pktsize, NetPacket* int_gamepacket );
int NETs_HandleInPacket_DEMO ( const NetPacketExternal* ext_gamepacket, NetPacket* int_gamepacket, size_t* psize_external );
size_t NETs_NetPacketExternal_DEMO_GetSize( NetPacketExternal* ext_gamepacket );
void NETs_StdGameHeader( byte command, NetPacket* gamepacket );
void NETs_WritePacketInfo( FILE *fp, NetPacketExternal* ext_gamepacket );
#endif // DBIND_PROTOCOL
// packet api functions
int NETs_CompareNodes( node_t *node1, node_t *node2 );
int NETs_VirtualNode( node_t *node );
void NETs_SetVirtualAddress( node_t *node );
void NETs_SetBroadcastAddress( node_t *node );
void NETs_ResolveNode( node_t* node_dst, node_t* node_src );
void NETs_MakeNodeRaw( node_t* node_dst, node_t* node_src );
node_t* NETs_GetSender( int bufid );
void NETs_ResolveSender( node_t *node, int bufid );
void NETs_PrintNode( node_t *node );
void NETs_FlushListenBuffers();
void NETs_ProcessPacketChain ( void (*procfunc)(NetPacket* gamepacket,int bufid) );
int NETs_InsertVirtualPacket( NetPacket* gamepacket );
int NETs_DeterminePacketLoss( char **info, int *isiz, int incoming );
int NETs_SleepUntilInput( int timeout_msec );
void NETs_SendPacket ( NetPacket* gamepacket, node_t* node );
void NETs_AuxSendPacket ( NetPacket* gamepacket, node_t* node );
int NETs_ResetAPI();
int NETs_InitAPI();
int NETs_KillAPI();
#endif // _NET_SUBH_H_
|