#include <C4GameControl.h>
Public Member Functions | |
C4GameControl () | |
~C4GameControl () | |
bool | isLocal () const |
bool | isNetwork () const |
bool | isReplay () const |
bool | isCtrlHost () const |
bool | isRecord () const |
C4Record * | GetRecord () |
int32_t | ClientID () const |
bool | SyncMode () const |
bool | NoInput () const |
C4GameControlClient * | getClient (int32_t iID) |
C4GameControlClient * | getClient (const char *szName) |
bool | InitLocal (C4Client *pLocal) |
bool | InitNetwork (C4Client *pLocal) |
bool | InitReplay (C4Group &rGroup) |
void | ChangeToLocal () |
void | Clear () |
void | Default () |
bool | StartRecord (bool fInitial, bool fStreaming) |
void | StopRecord (StdStrBuf *pRecordName=nullptr, BYTE *pRecordSHA1=nullptr) |
void | RequestRuntimeRecord () |
bool | IsRuntimeRecordPossible () const |
bool | RecAddFile (const char *szLocalFilename, const char *szAddAs) |
bool | Prepare () |
void | Execute () |
void | Ticks () |
bool | CtrlTickReached (int32_t iTick) |
int32_t | getCtrlTick (int32_t iFrame) const |
int32_t | getNextControlTick () const |
void | AdjustControlRate (int32_t iBy) |
bool | KeyAdjustControlRate (int32_t iBy) |
void | SetActivated (bool fActivated) |
void | DoInput (C4PacketType eCtrlType, C4ControlPacket *pPkt, C4ControlDeliveryType eDelivery) |
void | DbgRec (C4RecordChunkType eType, const uint8_t *pData=nullptr, size_t iSize=0) |
C4ControlDeliveryType | DecideControlDelivery () |
void | DoSyncCheck () |
void | ExecControl (const C4Control &rCtrl) |
void | ExecControlPacket (C4PacketType eCtrlType, class C4ControlPacket *pPkt) |
void | OnGameSynchronizing () |
Public Attributes | |
C4Control | Input |
C4GameControlNetwork | Network |
int32_t | ControlRate |
int32_t | ControlTick |
int32_t | SyncRate |
bool | DoSync |
Protected Member Functions | |
C4ControlSyncCheck * | GetSyncCheck (int32_t iTick) |
void | RemoveOldSyncChecks () |
void | PrepareInput () |
Protected Attributes | |
C4ControlMode | eMode |
bool | fInitComplete |
bool | fHost |
bool | fActivated |
bool | fRecordNeeded |
int32_t | iClientID |
C4Record * | pRecord |
C4Playback * | pPlayback |
C4Control | SyncChecks |
C4GameControlClient * | pClients |
C4Control * | pExecutingControl |
Friends | |
class | C4ControlSyncCheck |
class | C4GameControlNetwork |
Definition at line 57 of file C4GameControl.h.
C4GameControl::C4GameControl | ( | ) |
Definition at line 36 of file C4GameControl.cpp.
References Default().
C4GameControl::~C4GameControl | ( | ) |
Definition at line 42 of file C4GameControl.cpp.
References Clear().
void C4GameControl::AdjustControlRate | ( | int32_t | iBy | ) |
Definition at line 368 of file C4GameControl.cpp.
References C4CVT_ControlRate, CDT_Decide, CID_Set, Control, DoInput(), and isCtrlHost().
Referenced by KeyAdjustControlRate().
void C4GameControl::ChangeToLocal | ( | ) |
Definition at line 91 of file C4GameControl.cpp.
References C4GameControlNetwork::Clear(), C4Game::Clients, CM_Local, CM_Network, CM_Replay, ControlRate, eMode, fHost, C4PlayerInfoList::FixIDCounter(), Game, C4ClientList::getLocal(), C4Game::HaltCount, C4GameOverDlg::IsShown(), Network, C4Game::PlayerInfos, pPlayback, C4ClientList::RemoveRemote(), and C4Client::SetActivated().
Referenced by Clear(), C4Network2::Clear(), and Execute().
void C4GameControl::Clear | ( | ) |
Definition at line 203 of file C4GameControl.cpp.
References ChangeToLocal(), Default(), and StopRecord().
Referenced by C4Game::Clear(), Execute(), and ~C4GameControl().
|
inline |
Definition at line 102 of file C4GameControl.h.
References iClientID.
Referenced by C4Game::Abort(), C4ClientPlayerInfos::C4ClientPlayerInfos(), C4PlayerList::GetAtRemoteClient(), C4ControlPacket::LocalControl(), C4PlayerInfoList::LocalJoinUnjoinedPlayersInQueue(), C4Network2::OpenVoteDialog(), C4PlayerInfoList::RecreatePlayers(), and C4Network2::Vote().
bool C4GameControl::CtrlTickReached | ( | int32_t | iTick | ) |
Definition at line 345 of file C4GameControl.cpp.
References ControlRate, ControlTick, C4Game::FrameCounter, and Game.
Referenced by C4Network2::CheckStatusReached().
void C4GameControl::DbgRec | ( | C4RecordChunkType | eType, |
const uint8_t * | pData = nullptr , |
||
size_t | iSize = 0 |
||
) |
Definition at line 416 of file C4GameControl.cpp.
References C4Playback::Check(), Config, C4ConfigGeneral::DebugRec, DoNoDebugRec, C4Game::FrameCounter, Game, C4Config::General, iSize, pPlayback, pRecord, and C4Record::Rec().
Referenced by AddDbgRec().
C4ControlDeliveryType C4GameControl::DecideControlDelivery | ( | ) |
Definition at line 433 of file C4GameControl.cpp.
References CDT_Direct, CM_Network, C4GameControlNetwork::DecideControlDelivery(), eMode, and Network.
Referenced by DoInput().
void C4GameControl::Default | ( | ) |
Definition at line 210 of file C4GameControl.cpp.
References C4ClientIDUnknown, C4MaxControlRate, C4SyncCheckRate, C4Control::Clear(), C4GameControlNetwork::Clear(), CM_None, Config, C4ConfigNetwork::ControlRate, ControlRate, ControlTick, DoSync, eMode, fHost, fInitComplete, fRecordNeeded, iClientID, Input, C4Config::Network, Network, pExecutingControl, pPlayback, pRecord, SyncChecks, and SyncRate.
Referenced by C4GameControl(), and Clear().
void C4GameControl::DoInput | ( | C4PacketType | eCtrlType, |
C4ControlPacket * | pPkt, | ||
C4ControlDeliveryType | eDelivery | ||
) |
Definition at line 382 of file C4GameControl.cpp.
References C4Control::Add(), CDT_Decide, CDT_Direct, CDT_Private, CDT_Queue, DecideControlDelivery(), C4GameControlNetwork::DoInput(), ExecControlPacket(), fInitComplete, Input, isNetwork(), C4ControlPacket::Lobby(), Network, and C4ControlPacket::Sync().
Referenced by AdjustControlRate(), C4ClientList::CtrlRemove(), C4Network2::DeactivateInactiveClients(), C4PlayerInfoList::DoLocalNonNetworkPlayerInfoUpdate(), DoSyncCheck(), C4Game::DropDef(), C4EditCursor::EMControl(), C4Network2::Execute(), C4Network2::HandleActivateReq(), C4Network2Players::HandlePlayerInfoUpdRequest(), C4Console::In(), C4Network2::Join(), C4ChatInputDialog::OnChatCancel(), C4ChatInputDialog::OnChatInput(), C4GameLobby::MainDlg::OnReadyCheck(), C4MessageInput::ProcessCommand(), C4MessageInput::ProcessInput(), C4Network2::RequestActivate(), RequestRuntimeRecord(), C4Network2::SendJoinData(), C4TeamList::SendSetTeamColors(), C4TeamList::SendSetTeamDist(), C4Network2Players::SendUpdatedPlayers(), C4ToolsDlg::SetLandscapeMode(), and C4Network2::Vote().
void C4GameControl::DoSyncCheck | ( | ) |
Definition at line 442 of file C4GameControl.cpp.
References C4Control::Add(), C4ControlSyncCheck, CDT_Direct, CDT_Queue, CID_SyncCheck, DoInput(), DoSync, C4ControlPacket::Execute(), fActivated, fHost, C4Game::FrameCounter, Game, GetSyncCheck(), RemoveOldSyncChecks(), C4ControlSyncCheck::Set(), and SyncChecks.
Referenced by C4Game::Execute().
void C4GameControl::ExecControl | ( | const C4Control & | rCtrl | ) |
Definition at line 472 of file C4GameControl.cpp.
References C4Control::Execute(), C4Control::firstPkt(), C4Game::FrameCounter, Game, Log(), pRecord, C4Control::PreExecute(), and C4Record::Rec().
Referenced by C4GameControlNetwork::ExecQueuedSyncCtrl(), and C4GameControlNetwork::ExecSyncControl().
void C4GameControl::ExecControlPacket | ( | C4PacketType | eCtrlType, |
class C4ControlPacket * | pPkt | ||
) |
Definition at line 484 of file C4GameControl.cpp.
References C4ControlPacket::Execute(), C4Game::FrameCounter, Game, Log(), pRecord, C4ControlPacket::PreExecute(), and C4Record::Rec().
Referenced by C4Playback::Check(), DoInput(), C4GameControlNetwork::DoInput(), and C4GameControlNetwork::HandleControlPkt().
void C4GameControl::Execute | ( | ) |
Definition at line 273 of file C4GameControl.cpp.
References ChangeToLocal(), Clear(), CM_Local, CM_Network, CM_Replay, Control, ControlRate, ControlTick, eMode, Execute(), C4Playback::ExecuteControl(), fInitComplete, C4Game::FrameCounter, Game, C4GameControlNetwork::GetControl(), Input, isReplay(), LogFatal(), Network, pExecutingControl, C4Game::pNetworkStatistics, pPlayback, pRecord, PrepareInput(), and C4Record::Rec().
Referenced by Execute(), and C4Game::Execute().
C4GameControlClient* C4GameControl::getClient | ( | const char * | szName | ) |
C4GameControlClient* C4GameControl::getClient | ( | int32_t | iID | ) |
int32_t C4GameControl::getCtrlTick | ( | int32_t | iFrame | ) | const |
Definition at line 355 of file C4GameControl.cpp.
References ControlRate, ControlTick, C4Game::FrameCounter, and Game.
int32_t C4GameControl::getNextControlTick | ( | ) | const |
Definition at line 363 of file C4GameControl.cpp.
References ControlRate, ControlTick, C4Game::FrameCounter, and Game.
Referenced by C4Network2::CreateDynamic(), C4GameControlNetwork::Init(), C4Network2::InitHost(), C4Network2::Pause(), C4GameControlNetwork::SetActivated(), and C4Network2::Sync().
|
inline |
Definition at line 101 of file C4GameControl.h.
References pRecord.
Referenced by LogSilent().
|
protected |
Definition at line 494 of file C4GameControl.cpp.
References CID_SyncCheck, C4Control::firstPkt(), C4ControlSyncCheck::getFrame(), C4Control::nextPkt(), and SyncChecks.
Referenced by DoSyncCheck().
bool C4GameControl::InitLocal | ( | C4Client * | pLocal | ) |
Definition at line 47 of file C4GameControl.cpp.
References CM_Local, ControlRate, eMode, fHost, fInitComplete, C4Client::getID(), and iClientID.
Referenced by C4Game::InitControl().
bool C4GameControl::InitNetwork | ( | C4Client * | pLocal | ) |
Definition at line 56 of file C4GameControl.cpp.
References CM_Network, ControlRate, C4GameParameters::ControlRate, eMode, fHost, fInitComplete, Game, C4Client::getID(), iClientID, C4GameControlNetwork::IsEnabled(), C4Client::isHost(), Network, and C4Game::Parameters.
Referenced by C4Game::InitControl(), C4Game::InitNetworkFromReference(), and C4Game::InitNetworkHost().
bool C4GameControl::InitReplay | ( | C4Group & | rGroup | ) |
Definition at line 70 of file C4GameControl.cpp.
References C4ClientIDUnknown, CM_Replay, ControlRate, C4GameParameters::ControlRate, eMode, fHost, fInitComplete, Game, iClientID, LoadResStr(), LogFatal(), C4Playback::Open(), C4Game::Parameters, pPlayback, and StopRecord().
Referenced by C4Game::InitControl().
|
inline |
Definition at line 99 of file C4GameControl.h.
References fHost.
Referenced by C4Game::Abort(), AdjustControlRate(), C4GameOverDlg::C4GameOverDlg(), C4TeamList::CanLocalChooseTeam(), ConsoleDlgProc(), C4EditCursor::Delete(), C4PlayerInfoList::DoPlayerInfoUpdate(), C4MessageInput::ProcessCommand(), C4TeamList::ReassignAllTeams(), C4TeamList::RecheckTeams(), C4TeamList::SendSetTeamDist(), C4TeamList::SetTeamColors(), and C4TeamList::SetTeamDistribution().
|
inline |
|
inline |
Definition at line 97 of file C4GameControl.h.
References CM_Network, and eMode.
Referenced by C4ClientPlayerInfos::C4ClientPlayerInfos(), C4Network2::Clear(), DoInput(), C4PlayerInfoList::DoPlayerInfoUpdate(), C4ControlJoinPlayer::PreExecute(), and C4MessageInput::ProcessCommand().
|
inline |
Definition at line 100 of file C4GameControl.h.
References pRecord.
Referenced by C4Game::Evaluate(), IsRuntimeRecordPossible(), RecAddFile(), and C4PlayerInfoList::RecreatePlayers().
|
inline |
Definition at line 98 of file C4GameControl.h.
References CM_Replay, and eMode.
Referenced by Execute(), C4Game::GameOverCheck(), C4MouseControl::IsPassive(), IsRuntimeRecordPossible(), NoInput(), C4PlayerInfoList::RestoreSavegameInfos(), C4PlayerList::Retire(), and C4Game::Synchronize().
bool C4GameControl::IsRuntimeRecordPossible | ( | ) | const |
Definition at line 185 of file C4GameControl.cpp.
References fRecordNeeded, isRecord(), and isReplay().
Referenced by C4Console::FileRecord(), and RequestRuntimeRecord().
|
inline |
Definition at line 140 of file C4GameControl.h.
References AdjustControlRate().
Referenced by C4Game::InitKeyboard().
|
inline |
Definition at line 105 of file C4GameControl.h.
References isReplay().
Referenced by C4ConsoleGUI::EnableControls(), and C4Game::InitPlayers().
void C4GameControl::OnGameSynchronizing | ( | ) |
Definition at line 125 of file C4GameControl.cpp.
References fRecordNeeded, and StartRecord().
Referenced by C4Game::Synchronize().
bool C4GameControl::Prepare | ( | ) |
Definition at line 228 of file C4GameControl.cpp.
References C4Control::Clear(), C4Game::Clients, CM_Local, CM_Network, CM_Replay, ControlRate, ControlTick, C4GameControlNetwork::CtrlNeeded(), C4GameControlNetwork::CtrlReady(), C4GameControlNetwork::DoInput(), eMode, C4GameControlNetwork::Execute(), fInitComplete, C4Control::firstPkt(), C4Game::FrameCounter, Game, C4ClientList::getLocal(), Input, C4Client::isActivated(), Network, and PrepareInput().
Referenced by C4Game::Execute().
|
protected |
Definition at line 524 of file C4GameControl.cpp.
References Application, C4Player::Control, C4GamePadControl::DoAxisInput(), C4MouseControl::DoMoveInput(), C4PlayerList::GetLocalByIndex(), MouseControl, C4Application::pGamePadControl, Players, and C4PlayerControl::PrepareInput().
Referenced by Execute(), and Prepare().
bool C4GameControl::RecAddFile | ( | const char * | szLocalFilename, |
const char * | szAddAs | ||
) |
Definition at line 197 of file C4GameControl.cpp.
References C4Record::AddFile(), isRecord(), and pRecord.
Referenced by C4PlayerInfoList::RecreatePlayers().
|
protected |
Definition at line 509 of file C4GameControl.cpp.
References C4SyncCheckMaxKeep, CID_SyncCheck, C4Control::Delete(), C4Control::firstPkt(), C4Game::FrameCounter, Game, C4ControlSyncCheck::getFrame(), C4Control::nextPkt(), and SyncChecks.
Referenced by DoSyncCheck().
void C4GameControl::RequestRuntimeRecord | ( | ) |
Definition at line 175 of file C4GameControl.cpp.
References CDT_Queue, CID_Synchronize, Config, Control, C4ConfigGeneral::DebugRec, DoInput(), fRecordNeeded, C4Config::General, and IsRuntimeRecordPossible().
Referenced by C4Console::FileRecord().
void C4GameControl::SetActivated | ( | bool | fActivated | ) |
Definition at line 375 of file C4GameControl.cpp.
References CM_Network, eMode, fActivated, Network, and C4GameControlNetwork::SetActivated().
bool C4GameControl::StartRecord | ( | bool | fInitial, |
bool | fStreaming | ||
) |
Definition at line 135 of file C4GameControl.cpp.
References fInitComplete, C4Game::FrameCounter, Game, Network, pExecutingControl, pRecord, C4Record::Rec(), C4Record::Start(), C4Record::StartStreaming(), and StopRecord().
Referenced by C4Game::InitControl(), and OnGameSynchronizing().
Definition at line 164 of file C4GameControl.cpp.
References Network, pRecord, and C4Record::Stop().
Referenced by Clear(), C4Game::Evaluate(), InitReplay(), and StartRecord().
|
inline |
void C4GameControl::Ticks | ( | ) |
Definition at line 325 of file C4GameControl.cpp.
References CM_Network, ControlRate, ControlTick, C4GameControlNetwork::CtrlOverflow(), C4Game::DoSkipFrame, DoSync, eMode, fInitComplete, C4Game::FrameCounter, Game, C4Game::GameGo, C4GameControlNetwork::GetBehind(), Network, and SyncRate.
Referenced by C4Game::Ticks().
|
friend |
Definition at line 59 of file C4GameControl.h.
Referenced by DoSyncCheck().
|
friend |
Definition at line 60 of file C4GameControl.h.
int32_t C4GameControl::ControlRate |
Definition at line 88 of file C4GameControl.h.
Referenced by ChangeToLocal(), CtrlTickReached(), Default(), C4Network2::DrawStatus(), Execute(), C4GameControlNetwork::Execute(), C4Network2Stats::ExecuteControlFrame(), getCtrlTick(), getNextControlTick(), C4Network2::HandleJoinData(), InitLocal(), InitNetwork(), InitReplay(), Prepare(), Ticks(), and C4Network2ClientListDlg::Update().
int32_t C4GameControl::ControlTick |
Definition at line 89 of file C4GameControl.h.
Referenced by C4GameControlNetwork::AddClient(), C4GameControlNetwork::CheckCompleteCtrl(), C4Network2::CheckStatusReached(), C4Game::CompileFunc(), CtrlTickReached(), Default(), C4GameControlNetwork::DoInput(), C4Network2::DrawStatus(), C4GameControlNetwork::ExecQueuedSyncCtrl(), C4GameControlNetwork::ExecSyncControl(), Execute(), C4Network2::Execute(), getCtrlTick(), getNextControlTick(), C4GameControlNetwork::Init(), C4Network2::InitHost(), C4Network2::OnClientDisconnect(), Prepare(), C4Network2::SendJoinData(), C4ControlSyncCheck::Set(), C4GameControlNetwork::SetCtrlMode(), C4Network2::SetCtrlMode(), C4Network2::Start(), Ticks(), C4Network2ClientListDlg::Update(), and C4Network2::UpdateChaseTarget().
bool C4GameControl::DoSync |
Definition at line 91 of file C4GameControl.h.
Referenced by Default(), DoSyncCheck(), and Ticks().
|
protected |
Definition at line 70 of file C4GameControl.h.
Referenced by ChangeToLocal(), DecideControlDelivery(), Default(), Execute(), InitLocal(), InitNetwork(), InitReplay(), isLocal(), isNetwork(), isReplay(), Prepare(), SetActivated(), SyncMode(), and Ticks().
|
protected |
Definition at line 73 of file C4GameControl.h.
Referenced by DoSyncCheck(), and SetActivated().
|
protected |
Definition at line 72 of file C4GameControl.h.
Referenced by ChangeToLocal(), Default(), DoSyncCheck(), InitLocal(), InitNetwork(), InitReplay(), and isCtrlHost().
|
protected |
Definition at line 71 of file C4GameControl.h.
Referenced by Default(), DoInput(), Execute(), InitLocal(), InitNetwork(), InitReplay(), Prepare(), StartRecord(), and Ticks().
|
protected |
Definition at line 74 of file C4GameControl.h.
Referenced by Default(), IsRuntimeRecordPossible(), OnGameSynchronizing(), and RequestRuntimeRecord().
|
protected |
Definition at line 75 of file C4GameControl.h.
Referenced by ClientID(), Default(), InitLocal(), InitNetwork(), and InitReplay().
C4Control C4GameControl::Input |
Definition at line 66 of file C4GameControl.h.
Referenced by ConsoleDlgProc(), Default(), DoInput(), Execute(), and Prepare().
C4GameControlNetwork C4GameControl::Network |
Definition at line 67 of file C4GameControl.h.
Referenced by C4Network2IO::CallHandlers(), ChangeToLocal(), DecideControlDelivery(), Default(), DoInput(), Execute(), C4Network2::InitHost(), InitNetwork(), C4Network2ResList::OnResComplete(), Prepare(), SetActivated(), StartRecord(), StopRecord(), Ticks(), and C4Network2ClientListDlg::Update().
|
protected |
Definition at line 82 of file C4GameControl.h.
|
protected |
Definition at line 84 of file C4GameControl.h.
Referenced by Default(), Execute(), and StartRecord().
|
protected |
Definition at line 78 of file C4GameControl.h.
Referenced by ChangeToLocal(), DbgRec(), Default(), Execute(), and InitReplay().
|
protected |
Definition at line 77 of file C4GameControl.h.
Referenced by DbgRec(), Default(), ExecControl(), ExecControlPacket(), Execute(), GetRecord(), isRecord(), RecAddFile(), StartRecord(), StopRecord(), and SyncMode().
|
protected |
Definition at line 80 of file C4GameControl.h.
Referenced by Default(), DoSyncCheck(), GetSyncCheck(), and RemoveOldSyncChecks().
int32_t C4GameControl::SyncRate |
Definition at line 90 of file C4GameControl.h.
Referenced by C4Game::CompileFunc(), Default(), and Ticks().