31 #pragma warning (disable: 4355) 233 bool is_input_prepared =
false;
256 is_input_prepared =
true;
296 LogFatal(
"Network: could not retrieve control from C4GameControlNetwork!");
318 pExecutingControl =
nullptr;
388 assert(!pPkt->
Sync());
477 if (!rCtrl.
PreExecute())
Log(
"Control: PreExecute failed for sync control!");
487 if (!pPkt->
PreExecute())
Log(
"Control: PreExecute failed for direct control!");
bool IsRuntimeRecordPossible() const
void DoInput(const C4Control &Input)
C4ControlDeliveryType DecideControlDelivery()
C4Player * GetLocalByIndex(int iIndex) const
C4IDPacket * firstPkt() const
void StopRecord(StdStrBuf *pRecordName=nullptr, BYTE *pRecordSHA1=nullptr)
int32_t getNextControlTick() const
bool Rec(const C4Control &Ctrl, int iFrame)
void Delete(C4IDPacket *pPkt)
const int32_t C4SyncCheckRate
void Add(C4PacketType eType, C4ControlPacket *pCtrl)
virtual bool Sync() const
const int32_t C4SyncCheckMaxKeep
void ExecControlPacket(C4PacketType eCtrlType, class C4ControlPacket *pPkt)
bool InitNetwork(C4Client *pLocal)
C4Client * getLocal() const
bool InitLocal(C4Client *pLocal)
bool InitReplay(C4Group &rGroup)
virtual bool Lobby() const
C4MouseControl MouseControl
bool CtrlReady(int32_t iTick)
C4GameParameters & Parameters
void DbgRec(C4RecordChunkType eType, const uint8_t *pData=nullptr, size_t iSize=0)
const char * LoadResStr(const char *id)
bool GetControl(C4Control *pCtrl, int32_t iTick)
int32_t getCtrlTick(int32_t iFrame) const
C4IDPacket * nextPkt(C4IDPacket *pPkt) const
bool Stop(StdStrBuf *pRecordName=nullptr, BYTE *pRecordSHA1=nullptr)
void AdjustControlRate(int32_t iBy)
C4ControlSyncCheck * GetSyncCheck(int32_t iTick)
C4ControlDeliveryType DecideControlDelivery() const
void DoInput(C4PacketType eCtrlType, C4ControlPacket *pPkt, C4ControlDeliveryType eDelivery)
void SetActivated(bool fActivated)
void Check(C4RecordChunkType eType, const uint8_t *pData, int iSize)
int32_t GetBehind(int32_t iTick) const
bool LogFatal(const char *szMessage)
void OnGameSynchronizing()
const int32_t C4ClientIDUnknown
friend class C4ControlSyncCheck
bool CtrlNeeded(int32_t iTick) const
void RemoveOldSyncChecks()
bool Start(bool fInitial)
void SetActivated(bool fnActivated)
C4PlayerInfoList & PlayerInfos
bool ExecuteControl(C4Control *pCtrl, int iFrame)
C4GameControlNetwork Network
bool CtrlOverflow(int32_t iTick) const
bool Log(const char *szMessage)
bool CtrlTickReached(int32_t iTick)
bool StartRecord(bool fInitial, bool fStreaming)
void Take(C4Control &Ctrl)
C4GamePadControl * pGamePadControl
void ExecControl(const C4Control &rCtrl)
bool AddFile(const char *szLocalFilename, const char *szAddAs, bool fDelete=false)
virtual bool PreExecute() const
std::unique_ptr< C4Network2Stats > pNetworkStatistics
bool RecAddFile(const char *szLocalFilename, const char *szAddAs)
void RequestRuntimeRecord()
void SetActivated(bool fnActivated)
virtual void Execute() const =0
bool StartStreaming(bool fInitial)
C4Application Application
C4Control * pExecutingControl
const int C4MaxControlRate