Terminus
Public Member Functions | Protected Attributes | List of all members
terminus::SyncCommand Class Reference

The SyncCommand is used to keep shared game state synchronized. More...

#include <synccommand.h>

Inheritance diagram for terminus::SyncCommand:
terminus::AbstractCommand

Public Member Functions

 SyncCommand (Timer::TimerMSec timeStamp, const Train &playerTrain)
 
 SyncCommand (Timer::TimerMSec timeStamp, QJsonObject jsonObject)
 
virtual QJsonObject toJson () const override
 Every command must define how its members can be serialized. More...
 
virtual void doWork () override
 Every Commands must define its effects on the receiving game. More...
 
virtual Commands commandType () const override
 Every Command must specify its type. More...
 
const std::vector< float > & wagonHealthVector () const
 
- Public Member Functions inherited from terminus::AbstractCommand
 AbstractCommand (Timer::TimerMSec timeStamp)
 
virtual ~AbstractCommand ()
 
void setGame (Game *game)
 set the game instance this command should operate on More...
 
Timer::TimerMSec timeStamp () const
 get the time as counted by the sending game that this command was created and sent More...
 

Protected Attributes

std::vector< float > m_wagonHealthVector
 
float m_velocity
 
float m_travelledDistance
 
- Protected Attributes inherited from terminus::AbstractCommand
Gamem_game
 
Timer::TimerMSec m_timeStamp
 

Additional Inherited Members

- Static Protected Member Functions inherited from terminus::AbstractCommand
static QJsonObject VectorToJsonObject (QVector3D vector)
 
static QVector3D VectorFromJsonObject (QJsonObject jsonObject)
 

Detailed Description

The SyncCommand is used to keep shared game state synchronized.

It contains the local player train's travelled distance, velocity and health information of the wagons. It also synchronizes the game timers.

See also
AbstractWagon, Train and Timer

Constructor & Destructor Documentation

terminus::SyncCommand::SyncCommand ( Timer::TimerMSec  timeStamp,
const Train playerTrain 
)
terminus::SyncCommand::SyncCommand ( Timer::TimerMSec  timeStamp,
QJsonObject  jsonObject 
)

Member Function Documentation

virtual Commands terminus::SyncCommand::commandType ( ) const
inlineoverridevirtual

Every Command must specify its type.

Returns
enum constant from Commands
See also
Commands

Implements terminus::AbstractCommand.

void terminus::SyncCommand::doWork ( )
overridevirtual

Every Commands must define its effects on the receiving game.

This Method is guaranteed to be executed in the receiving game's frame update context with a valid Game instance in m_game

Implements terminus::AbstractCommand.

QJsonObject terminus::SyncCommand::toJson ( ) const
overridevirtual

Every command must define how its members can be serialized.

Returns
A QJsonObject containing the parameters / members

Implements terminus::AbstractCommand.

const std::vector<float>& terminus::SyncCommand::wagonHealthVector ( ) const
inline

Member Data Documentation

float terminus::SyncCommand::m_travelledDistance
protected
float terminus::SyncCommand::m_velocity
protected
std::vector<float> terminus::SyncCommand::m_wagonHealthVector
protected

The documentation for this class was generated from the following files: