16 #ifndef INC_C4Network2
17 #define INC_C4Network2
359 bool LeagueEnd(
const char *szRecordName =
nullptr,
const BYTE *pRecordSHA =
nullptr);
371 static const uint32_t DELAY = 100;
372 static const int ADDR_PER_TRY = 4;
374 const std::vector<C4Network2Address>& Addrs;
375 std::vector<C4Network2Address>::const_iterator CurrentAddr;
377 const char *Password;
385 bool Execute(
int, pollfd *)
override;
406 bool OnEnter()
override {
UserClose(
false);
return true; }
407 void OnClosed(
bool fOK)
override;
410 bool IsExclusiveDialog()
override {
return true; }
const int16_t C4NetStdPortRefServer
const int16_t C4NetStdPortDiscovery
const int C4NetDeactivationDelay
const unsigned int C4NetChaseTargetUpdateInterval
const int16_t C4NetStdPortHTTP
const size_t C4NetStreamingMaxBlockSize
const unsigned int C4NetVotingTimeout
const unsigned int C4NetMinVotingInterval
const int16_t C4NetStdPortUDP
const int C4NetMaxBehind4Activation
const int C4NetActivationReqInterval
const unsigned int C4NetReferenceUpdateInterval
const size_t C4NetStreamingMinBlockSize
const int C4NetResRetrieveTimeout
const int16_t C4NetStdPortTCP
const unsigned int C4NetMinLeagueUpdateInterval
const int16_t C4NetStdPortPuncher
const int C4NetStreamingInterval
bool Execute(int, pollfd *) override
virtual void UserClose(bool fOK)
std::unique_ptr< C4NetpuncherPacket > uptr
bool Execute(int, pollfd *) override
~InitialConnect() override
InitialConnect(const std::vector< C4Network2Address > &Addrs, const C4ClientCore &HostCore, const char *Password)
bool CheckConn(const C4ClientCore &CCore, C4Network2IOConnection *pConn, C4Network2Client *pClient, StdStrBuf *szReply)
C4Network2Players Players
void HandleLobbyPacket(char cStatus, const C4PacketBase *pBasePkt, C4Network2IOConnection *pConn)
void DrawStatus(C4TargetFacet &cgo)
StdCopyStrBuf NetpuncherAddr
C4Network2ResList ResList
bool StartStreaming(C4Record *pRecord)
bool LeagueSignupEnable()
void OpenSurrenderDialog(C4ControlVoteType eType, int32_t iData)
bool LeagueStart(bool *pCancel)
bool InitNetIO(bool fNoClientID, bool fHost)
class C4LeagueClient * pLeagueClient
bool ToggleClientListDlg()
StdStrBuf QueryClientPassword()
void OnGameSynchronized()
time_t iLastStreamAttempt
class C4VoteDialog * pVoteDialog
void DeactivateInactiveClients()
void HandleStatus(const C4Network2Status &nStatus)
InitResult InitClient(const class C4Network2Reference &Ref, bool fObserver)
void AbortLobbyCountdown()
const char * GetPassword() const
C4NetpuncherID getNetpuncherGameID() const
void HandleJoinData(const class C4PacketJoinData &rPkt)
void LeagueGameEvaluate(const char *szRecordName=nullptr, const BYTE *pRecordSHA=nullptr)
void OnClientDisconnect(C4Network2Client *pClient)
void HandleActivateReq(int32_t iTick, C4Network2Client *pClient)
bool InitLeague(bool *pCancel)
void OnDisconn(C4Network2IOConnection *pConn)
void HandleStatusAck(const C4Network2Status &nStatus, C4Network2Client *pClient)
InitResult InitClient(const std::vector< class C4Network2Address > &Addrs, const class C4ClientCore &HostCore, const char *szPassword=nullptr)
void OnSec1Timer() override
class C4GameLobby::MainDlg * GetLobby() const
StdCopyStrBuf MasterServerAddress
void InvalidateReference()
void HandleConnRe(const class C4PacketConnRe &Pkt, C4Network2IOConnection *pConn, C4Network2Client *pClient)
void AllowJoin(bool fAllow)
C4Record * pStreamedRecord
C4TimeMilliseconds tLastActivateRequest
bool isJoinAllowed() const
size_t getPendingStreamData() const
bool ChangeGameStatus(C4NetGameState enState, int32_t iTargetCtrlTick, int32_t iCtrlMode=-1)
void LeagueShowError(const char *szMsg)
uint32_t iLastLeagueUpdate
void OnVoteDialogClosed()
uint32_t iLastReferenceUpdate
bool LeaguePlrAuthCheck(C4PlayerInfo *pInfo)
void OnPuncherConnect(C4NetIO::addr_t addr)
bool HostConnect(const C4ClientCore &CCore, C4Network2IOConnection *pConn, StdStrBuf *szReply)
uint32_t iLastChaseTargetUpdate
bool StreamIn(bool fFinish)
unsigned int iCurrentStreamAmount
bool HandlePuncherPacket(C4NetpuncherPacket::uptr, C4NetIO::HostAddress::AddressFamily family)
bool LeagueUpdateProcessReply()
void EndVote(C4ControlVoteType eType, bool fApprove, int32_t iData)
bool Join(C4ClientCore &CCore, C4Network2IOConnection *pConn, StdStrBuf *szReply)
StdStrBuf getNetpuncherAddr() const
void Vote(C4ControlVoteType eType, bool fApprove=true, int32_t iData=0)
void CheckStatusReached(bool fFromFinalInit=false)
unsigned int iCurrentStreamPosition
bool isPassworded() const
void HandlePacket(char cStatus, const C4PacketBase *pBasePkt, C4Network2IOConnection *pConn)
void SetCtrlMode(int32_t iCtrlMode)
void SetPassword(const char *szToPassword)
bool isObservingAllowed() const
void LeagueSignupDisable()
C4NetpuncherID NetpuncherGameID
C4Network2ClientList Clients
bool InitHost(bool fLobby)
uint32_t iLeagueUpdateDelay
void LeagueNotifyDisconnect(int32_t iClientID, enum C4LeagueDisconnectReason eReason)
bool LeagueEnd(const char *szRecordName=nullptr, const BYTE *pRecordSHA=nullptr)
void OnDisconnect(C4Network2Client *pClient, C4Network2IOConnection *pConn)
C4Network2Res::Ref RetrieveRes(const C4Network2ResCore &Core, int32_t iTimeout, const char *szResName, bool fWaitForCore=false)
void OnConnect(C4Network2Client *pClient, C4Network2IOConnection *pConn, const char *szMsg, bool fFirstConnection)
void OnConnectFail(C4Network2IOConnection *pConn)
bool isLobbyActive() const
void AddVote(const C4ControlVote &Vote)
void OnClientConnect(C4Network2Client *pClient, C4Network2IOConnection *pConn)
bool CreateDynamic(bool fInit)
bool PauseGame(bool fAutoContinue)
bool LeaguePlrAuth(C4PlayerInfo *pInfo)
void OnConn(C4Network2IOConnection *pConn)
void SendJoinData(C4Network2Client *pClient)
C4Network2ResCore ResDynamic
class C4GameControlNetwork * pControl
z_stream StreamCompressor
C4GameLobby::Countdown * pLobbyCountdown
C4IDPacket * GetVote(int32_t iClientID, C4ControlVoteType eType, int32_t iData)
void StartLobbyCountdown(int32_t iCountdownTime)
void SetAllowObserve(bool fAllow)
class C4HTTPClient * pStreamer
void HandleConn(const class C4PacketConn &Pkt, C4Network2IOConnection *pConn, C4Network2Client *pClient)
C4GameLobby::MainDlg * pLobby
bool RetrieveScenario(char *szScenario)
int32_t getCtrlMode() const
void SetTargetTick(int32_t iTargetCtrlTick)
bool isLobbyActive() const
void SetCtrlMode(int32_t iCtrlMode)
C4NetGameState getState() const
void Set(C4NetGameState eState, int32_t iTargetCtrlTick)
void CompileFunc(StdCompiler *pComp, bool fReference)
int32_t getTargetCtrlTick() const
const char * getStateName() const
const char * getDescription() const
C4PacketActivateReq(int32_t iTick=-1)
void CompileFunc(StdCompiler *pComp) override
C4ScenarioParameterDefs ScenarioParameterDefs
C4PacketJoinData()=default
const C4Network2Status & getStatus() const
C4Network2Status GameStatus
int32_t getStartCtrlTick() const
void SetStartCtrlTick(int32_t iTick)
const int32_t & getClientID() const
C4GameParameters Parameters
const C4Network2ResCore & getDynamicCore() const
void SetGameStatus(const C4Network2Status &Status)
void CompileFunc(StdCompiler *pComp) override
void SetDynamicCore(const C4Network2ResCore &Core)
C4Network2ResCore Dynamic
void SetClientID(int32_t inClientID)
C4ControlVoteType getVoteType() const
int32_t getVoteData() const
C4VoteDialog(const char *szText, C4ControlVoteType eVoteType, int32_t iVoteData, bool fSurrender)
const char * getData() const