Danbias/Code/Game/DanBiasGame/GameClientState/GameClientState.h

87 lines
1.5 KiB
C++

#ifndef DANBIAS_CLIENT_GAMECLIENTSTATE_H
#define DANBIAS_CLIENT_GAMECLIENTSTATE_H
#define NOMINMAX
#include "L_inputClass.h"
#include "NetworkClient.h"
namespace DanBias { namespace Client
{
class GameClientState
{
public:
struct ProtocolStruct
{
};
struct ObjPos : public ProtocolStruct
{
int object_ID;
//float worldPos[16];
float position[3];
float rotation[4];
};
struct NewObj : public ProtocolStruct
{
int object_ID;
char* path;
float worldPos[16];
};
struct RemoveObj : public ProtocolStruct
{
int object_ID;
//particle effect
};
struct KeyInput : public ProtocolStruct
{
/*
* key[0] =
*
*
*/
bool key[6];
};
struct PlayerPos : public ProtocolStruct
{
float position[3];
float angularAxis[3];
// float playerPos[3];
};
struct PlayerMove : public ProtocolStruct
{
float playerPos[3];
};
struct PlayerName : public ProtocolStruct
{
char name[255];
};
enum ClientState
{
ClientState_Login,
ClientState_Lobby,
ClientState_Lan,
ClientState_LobbyCreated,
ClientState_Game,
ClientState_Same,
};
public:
GameClientState(void);
virtual ~GameClientState(void);
virtual bool Init(Oyster::Network::NetworkClient* nwClient) = 0;
virtual ClientState Update(float deltaTime, InputClass* KeyInput) = 0;
virtual bool Render() = 0;
virtual bool Release() = 0;
virtual void Protocol(ProtocolStruct* protocolStruct) = 0;
};
} }
#endif