forked from 0ad/0ad
53 lines
1.2 KiB
C++
Executable File
53 lines
1.2 KiB
C++
Executable File
#ifndef _Simulation_H
|
|
#define _Simulation_H
|
|
|
|
#include "lib/types.h"
|
|
|
|
class CGame;
|
|
class CGameAttributes;
|
|
class CWorld;
|
|
class CTurnManager;
|
|
class CNetMessage;
|
|
|
|
class CSimulation
|
|
{
|
|
CGame *m_pGame;
|
|
CWorld *m_pWorld;
|
|
CTurnManager *m_pTurnManager;
|
|
|
|
double m_DeltaTime;
|
|
|
|
// Simulate: move the deterministic simulation forward by one interval
|
|
void Simulate();
|
|
|
|
// Interpolate: interpolate a data point for rendering between simulation
|
|
// frames.
|
|
void Interpolate(double frameTime, double offset);
|
|
|
|
public:
|
|
CSimulation(CGame *pGame);
|
|
~CSimulation();
|
|
|
|
inline void SetTurnManager(CTurnManager *pTurnManager)
|
|
{ m_pTurnManager=pTurnManager; }
|
|
inline CTurnManager *GetTurnManager()
|
|
{ return m_pTurnManager; }
|
|
|
|
void RegisterInit(CGameAttributes *pGameAttributes);
|
|
int Initialize(CGameAttributes *pGameAttributes);
|
|
|
|
// Perform all CSimulation updates for the specified elapsed time.
|
|
void Update(double frameTime);
|
|
|
|
// Calculate the message mask of a message to be queued
|
|
static uint GetMessageMask(CNetMessage *, uint oldMask, void *userdata);
|
|
|
|
// Translate the command message into an entity order and queue it
|
|
// Returns oldMask
|
|
static uint TranslateMessage(CNetMessage *, uint oldMask, void *userdata);
|
|
|
|
void QueueLocalCommand(CNetMessage *pMsg);
|
|
};
|
|
|
|
#endif
|