diff options
Diffstat (limited to 'src/parsec/include/net_subh.h')
| -rw-r--r-- | src/parsec/include/net_subh.h | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/src/parsec/include/net_subh.h b/src/parsec/include/net_subh.h new file mode 100644 index 0000000..439a9b0 --- /dev/null +++ b/src/parsec/include/net_subh.h @@ -0,0 +1,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_ + + |
