aboutsummaryrefslogtreecommitdiff
path: root/src/parsec/include/net_subh.h
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2026-08-24 11:16:07 +0200
committerFelix Morgner <felix.morgner@gmail.com>2026-08-24 11:16:07 +0200
commitc068f22329d5cc722622a2183bbb22eef2093df7 (patch)
tree12d56c1aede67988a55e241364606bfbb4dba933 /src/parsec/include/net_subh.h
downloadopenparsec-main.tar.xz
openparsec-main.zip
initial importHEADmain
Diffstat (limited to 'src/parsec/include/net_subh.h')
-rw-r--r--src/parsec/include/net_subh.h167
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_
+
+