Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
|
Implementation of CTurnManager for network clients. More...
#include <NetClientTurnManager.h>
Public Member Functions | |
CNetClientTurnManager (CSimulation2 &simulation, CNetClient &client, int clientId, IReplayLogger &replay) | |
void | OnSimulationMessage (CSimulationMessage *msg) override |
Called by networking code when a simulation message is received. More... | |
void | PostCommand (JS::HandleValue data) override |
Called by simulation code, to add a new command to be distributed to all clients and executed soon. More... | |
void | OnDestroyConnection () |
Notify the server that all commands are sent to prepare the connection for termination. More... | |
void | OnSyncError (u32 turn, const CStr &expectedHash, const std::vector< CSyncErrorMessage::S_m_PlayerNames > &playerNames) |
Public Member Functions inherited from CTurnManager | |
CTurnManager (CSimulation2 &simulation, u32 defaultTurnLength, u32 commandDelay, int clientId, IReplayLogger &replay) | |
Construct for a given network session ID. More... | |
virtual | ~CTurnManager () |
void | ResetState (u32 newCurrentTurn, u32 newReadyTurn) |
void | SetPlayerID (int playerId) |
Set the current user's player ID, which will be added into command messages. More... | |
bool | Update (float simFrameLength, size_t maxTurns) |
Advance the simulation by a certain time. More... | |
bool | UpdateFastForward () |
Advance the simulation by as much as possible. More... | |
void | Interpolate (float simFrameLength, float realFrameLength) |
Advance the graphics by a certain time. More... | |
virtual void | OnSimulationMessage (CSimulationMessage *msg)=0 |
Called by networking code when a simulation message is received. More... | |
virtual void | PostCommand (JS::HandleValue data)=0 |
Called by simulation code, to add a new command to be distributed to all clients and executed soon. More... | |
void | FinishedAllCommands (u32 turn, u32 turnLength) |
Called when all commands for a given turn have been received. More... | |
void | EnableTimeWarpRecording (size_t numTurns) |
Enables the recording of state snapshots every numTurns , which can be jumped back to via RewindTimeWarp(). More... | |
void | RewindTimeWarp () |
Jumps back to the latest recorded state snapshot (if any). More... | |
void | QuickSave (JS::HandleValue GUIMetadata) |
void | QuickLoad () |
u32 | GetCurrentTurn () const |
u32 | GetPendingTurns () const |
Private Member Functions | |
NONCOPYABLE (CNetClientTurnManager) | |
void | NotifyFinishedOwnCommands (u32 turn) override |
Called when this client has finished sending all its commands scheduled for the given turn. More... | |
void | NotifyFinishedUpdate (u32 turn) override |
Called when this client has finished a simulation update. More... | |
Private Attributes | |
CNetClient & | m_NetClient |
Additional Inherited Members | |
Protected Member Functions inherited from CTurnManager | |
void | AddCommand (int client, int player, JS::HandleValue data, u32 turn) |
Store a command to be executed at a given turn. More... | |
virtual void | NotifyFinishedOwnCommands (u32 turn)=0 |
Called when this client has finished sending all its commands scheduled for the given turn. More... | |
virtual void | NotifyFinishedUpdate (u32 turn)=0 |
Called when this client has finished a simulation update. More... | |
bool | TurnNeedsFullHash (u32 turn) const |
Returns whether we should compute a complete state hash for the given turn, instead of a quick less-complete hash. More... | |
Protected Attributes inherited from CTurnManager | |
CSimulation2 & | m_Simulation2 |
u32 | m_CurrentTurn |
The turn that we have most recently executed. More... | |
u32 | m_CommandDelay |
u32 | m_ReadyTurn |
The latest turn for which we have received all commands from all clients. More... | |
u32 | m_TurnLength |
std::deque< std::map< u32, std::vector< SimulationCommand > > > | m_QueuedCommands |
Commands queued at each turn (index 0 is for m_CurrentTurn+1) More... | |
int | m_PlayerId |
uint | m_ClientId |
float | m_DeltaSimTime |
Simulation time remaining until we ought to execute the next turn (as a negative value to add elapsed time increments to until we reach 0). More... | |
IReplayLogger & | m_Replay |
u32 | m_FinalTurn |
Implementation of CTurnManager for network clients.
CNetClientTurnManager::CNetClientTurnManager | ( | CSimulation2 & | simulation, |
CNetClient & | client, | ||
int | clientId, | ||
IReplayLogger & | replay | ||
) |
|
private |
|
overrideprivatevirtual |
Called when this client has finished sending all its commands scheduled for the given turn.
Implements CTurnManager.
|
overrideprivatevirtual |
Called when this client has finished a simulation update.
Implements CTurnManager.
void CNetClientTurnManager::OnDestroyConnection | ( | ) |
Notify the server that all commands are sent to prepare the connection for termination.
|
overridevirtual |
Called by networking code when a simulation message is received.
Implements CTurnManager.
void CNetClientTurnManager::OnSyncError | ( | u32 | turn, |
const CStr & | expectedHash, | ||
const std::vector< CSyncErrorMessage::S_m_PlayerNames > & | playerNames | ||
) |
|
overridevirtual |
Called by simulation code, to add a new command to be distributed to all clients and executed soon.
Implements CTurnManager.
|
private |