GameClientState Patch
virtual void DataRecieved( ::Oyster::Network::NetEvent<::Oyster::Network::NetworkClient*, ::Oyster::Network::NetworkClient::ClientEventArgs> e ); changed to virtual const NetEvent & DataRecieved( const NetEvent &message ); /****************************************************************** * @param message of the event * @return message or GameClientState::event_processed. ******************************************************************/
This commit is contained in:
parent
f2cbbfcf69
commit
a85b803e5c
|
@ -3,9 +3,14 @@
|
||||||
using namespace DanBias::Client;
|
using namespace DanBias::Client;
|
||||||
using namespace ::Oyster::Network;
|
using namespace ::Oyster::Network;
|
||||||
|
|
||||||
|
const GameClientState::NetEvent GameClientState::event_processed = GameClientState::NetEvent();
|
||||||
|
|
||||||
GameClientState::GameClientState() {}
|
GameClientState::GameClientState() {}
|
||||||
|
|
||||||
GameClientState::~GameClientState() {}
|
GameClientState::~GameClientState() {}
|
||||||
|
|
||||||
void GameClientState::DataRecieved( NetEvent<NetworkClient*, NetworkClient::ClientEventArgs> e )
|
const GameClientState::NetEvent & GameClientState::DataRecieved( const GameClientState::NetEvent &message )
|
||||||
{ /* do nothing */ }
|
{
|
||||||
|
/* do nothing */
|
||||||
|
return message;
|
||||||
|
}
|
|
@ -22,7 +22,9 @@ namespace DanBias { namespace Client
|
||||||
ClientState_Quit
|
ClientState_Quit
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
typedef ::Oyster::Network::NetEvent<::Oyster::Network::NetworkClient*, ::Oyster::Network::NetworkClient::ClientEventArgs> NetEvent;
|
||||||
|
static const NetEvent event_processed;
|
||||||
|
|
||||||
GameClientState();
|
GameClientState();
|
||||||
virtual ~GameClientState();
|
virtual ~GameClientState();
|
||||||
virtual bool Init( SharedStateContent &shared ) = 0;
|
virtual bool Init( SharedStateContent &shared ) = 0;
|
||||||
|
@ -31,7 +33,11 @@ namespace DanBias { namespace Client
|
||||||
virtual bool Release() = 0;
|
virtual bool Release() = 0;
|
||||||
virtual void ChangeState( ClientState next ) = 0;
|
virtual void ChangeState( ClientState next ) = 0;
|
||||||
|
|
||||||
virtual void DataRecieved( ::Oyster::Network::NetEvent<::Oyster::Network::NetworkClient*, ::Oyster::Network::NetworkClient::ClientEventArgs> e );
|
/******************************************************************
|
||||||
|
* @param message of the event
|
||||||
|
* @return message or GameClientState::event_processed.
|
||||||
|
******************************************************************/
|
||||||
|
virtual const NetEvent & DataRecieved( const NetEvent &message );
|
||||||
};
|
};
|
||||||
} }
|
} }
|
||||||
|
|
||||||
|
|
|
@ -312,20 +312,22 @@ void GameState::ReadKeyInput()
|
||||||
// TODO: implement sub-menu
|
// TODO: implement sub-menu
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameState::DataRecieved( NetEvent<NetworkClient*, NetworkClient::ClientEventArgs> e )
|
const GameClientState::NetEvent & GameState::DataRecieved( const GameClientState::NetEvent &message )
|
||||||
{
|
{
|
||||||
if( e.args.type == NetworkClient::ClientEventArgs::EventType_ProtocolFailedToSend )
|
if( message.args.type == NetworkClient::ClientEventArgs::EventType_ProtocolFailedToSend )
|
||||||
{ // TODO: Reconnect
|
{ // TODO: Reconnect
|
||||||
const char *breakpoint = "temp trap";
|
const char *breakpoint = "temp trap";
|
||||||
this->privData->nwClient->Disconnect();
|
this->privData->nwClient->Disconnect();
|
||||||
this->ChangeState( GameClientState::ClientState_Main );
|
this->ChangeState( GameClientState::ClientState_Main );
|
||||||
}
|
}
|
||||||
|
|
||||||
CustomNetProtocol data = e.args.data.protocol;
|
// fetching the id data.
|
||||||
short ID = data[0].value.netShort; // fetching the id data.
|
short ID = message.args.data.protocol[0].value.netShort;
|
||||||
|
|
||||||
if( ProtocolIsGameplay(ID) )
|
if( ProtocolIsGameplay(ID) )
|
||||||
{
|
{
|
||||||
|
CustomNetProtocol data = message.args.data.protocol;
|
||||||
|
|
||||||
switch(ID)
|
switch(ID)
|
||||||
{
|
{
|
||||||
case protocol_Gameplay_ObjectPickup: break; /** @todo TODO: implement */
|
case protocol_Gameplay_ObjectPickup: break; /** @todo TODO: implement */
|
||||||
|
@ -341,13 +343,13 @@ void GameState::DataRecieved( NetEvent<NetworkClient*, NetworkClient::ClientEven
|
||||||
|
|
||||||
(*this->privData->dynamicObjects)[decoded.object_ID]->setPos( decoded.position );
|
(*this->privData->dynamicObjects)[decoded.object_ID]->setPos( decoded.position );
|
||||||
}
|
}
|
||||||
break;
|
return GameClientState::event_processed;
|
||||||
case protocol_Gameplay_ObjectScale:
|
case protocol_Gameplay_ObjectScale:
|
||||||
{
|
{
|
||||||
Protocol_ObjectScale decoded(data);
|
Protocol_ObjectScale decoded(data);
|
||||||
(*this->privData->dynamicObjects)[decoded.object_ID]->setScale( decoded.scale );
|
(*this->privData->dynamicObjects)[decoded.object_ID]->setScale( decoded.scale );
|
||||||
}
|
}
|
||||||
break;
|
return GameClientState::event_processed;
|
||||||
case protocol_Gameplay_ObjectRotation:
|
case protocol_Gameplay_ObjectRotation:
|
||||||
{
|
{
|
||||||
Protocol_ObjectRotation decoded(data);
|
Protocol_ObjectRotation decoded(data);
|
||||||
|
@ -359,7 +361,7 @@ void GameState::DataRecieved( NetEvent<NetworkClient*, NetworkClient::ClientEven
|
||||||
|
|
||||||
(*this->privData->dynamicObjects)[decoded.object_ID]->setRot( rotation );
|
(*this->privData->dynamicObjects)[decoded.object_ID]->setRot( rotation );
|
||||||
}
|
}
|
||||||
break;
|
return GameClientState::event_processed;
|
||||||
case protocol_Gameplay_ObjectPositionRotation:
|
case protocol_Gameplay_ObjectPositionRotation:
|
||||||
{
|
{
|
||||||
Protocol_ObjectPositionRotation decoded(data);
|
Protocol_ObjectPositionRotation decoded(data);
|
||||||
|
@ -380,7 +382,7 @@ void GameState::DataRecieved( NetEvent<NetworkClient*, NetworkClient::ClientEven
|
||||||
object->setRot( rotation );
|
object->setRot( rotation );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
return GameClientState::event_processed;
|
||||||
case protocol_Gameplay_ObjectEnabled: break; /** @todo TODO: implement */
|
case protocol_Gameplay_ObjectEnabled: break; /** @todo TODO: implement */
|
||||||
case protocol_Gameplay_ObjectDisabled:
|
case protocol_Gameplay_ObjectDisabled:
|
||||||
{
|
{
|
||||||
|
@ -393,7 +395,7 @@ void GameState::DataRecieved( NetEvent<NetworkClient*, NetworkClient::ClientEven
|
||||||
this->privData->dynamicObjects->erase( object );
|
this->privData->dynamicObjects->erase( object );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
return GameClientState::event_processed;
|
||||||
case protocol_Gameplay_ObjectCreate:
|
case protocol_Gameplay_ObjectCreate:
|
||||||
{
|
{
|
||||||
Protocol_ObjectCreate decoded(data);
|
Protocol_ObjectCreate decoded(data);
|
||||||
|
@ -414,13 +416,13 @@ void GameState::DataRecieved( NetEvent<NetworkClient*, NetworkClient::ClientEven
|
||||||
(*this->privData->dynamicObjects)[decoded.object_ID] = object;
|
(*this->privData->dynamicObjects)[decoded.object_ID] = object;
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
return GameClientState::event_processed;
|
||||||
case protocol_Gameplay_ObjectCreatePlayer:
|
case protocol_Gameplay_ObjectCreatePlayer:
|
||||||
{
|
{
|
||||||
Protocol_ObjectCreatePlayer decoded(data);
|
Protocol_ObjectCreatePlayer decoded(data);
|
||||||
this->InitiatePlayer( decoded.object_ID, decoded.meshName, decoded.position, decoded.rotationQ, decoded.scale, decoded.owner );
|
this->InitiatePlayer( decoded.object_ID, decoded.meshName, decoded.position, decoded.rotationQ, decoded.scale, decoded.owner );
|
||||||
}
|
}
|
||||||
break;
|
return GameClientState::event_processed;
|
||||||
case protocol_Gameplay_ObjectJoinTeam: break; /** @todo TODO: implement */
|
case protocol_Gameplay_ObjectJoinTeam: break; /** @todo TODO: implement */
|
||||||
case protocol_Gameplay_ObjectLeaveTeam: break; /** @todo TODO: implement */
|
case protocol_Gameplay_ObjectLeaveTeam: break; /** @todo TODO: implement */
|
||||||
case protocol_Gameplay_ObjectWeaponCooldown: break; /** @todo TODO: implement */
|
case protocol_Gameplay_ObjectWeaponCooldown: break; /** @todo TODO: implement */
|
||||||
|
@ -439,4 +441,6 @@ void GameState::DataRecieved( NetEvent<NetworkClient*, NetworkClient::ClientEven
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return message;
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,7 @@ namespace DanBias { namespace Client
|
||||||
bool Release()override;
|
bool Release()override;
|
||||||
void ChangeState( ClientState next );
|
void ChangeState( ClientState next );
|
||||||
|
|
||||||
void DataRecieved( ::Oyster::Network::NetEvent<::Oyster::Network::NetworkClient*, ::Oyster::Network::NetworkClient::ClientEventArgs> e );
|
const NetEvent & DataRecieved( const NetEvent &message );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct MyData;
|
struct MyData;
|
||||||
|
|
|
@ -133,16 +133,6 @@ void LanMenuState::ChangeState( ClientState next )
|
||||||
this->privData->nextState = next;
|
this->privData->nextState = next;
|
||||||
}
|
}
|
||||||
|
|
||||||
void LanMenuState::DataRecieved( NetEvent<NetworkClient*, NetworkClient::ClientEventArgs> e )
|
|
||||||
{
|
|
||||||
if( e.args.type == NetworkClient::ClientEventArgs::EventType_ProtocolFailedToSend )
|
|
||||||
{ // TODO: Reconnect
|
|
||||||
const char *breakpoint = "temp trap";
|
|
||||||
this->privData->nwClient->Disconnect();
|
|
||||||
this->ChangeState( GameClientState::ClientState_Same );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnButtonInteract_Connect( Oyster::Event::ButtonEvent<LanMenuState*>& e )
|
void OnButtonInteract_Connect( Oyster::Event::ButtonEvent<LanMenuState*>& e )
|
||||||
{
|
{
|
||||||
switch( e.state )
|
switch( e.state )
|
||||||
|
|
|
@ -21,8 +21,6 @@ namespace DanBias
|
||||||
virtual bool Release();
|
virtual bool Release();
|
||||||
void ChangeState( ClientState next );
|
void ChangeState( ClientState next );
|
||||||
|
|
||||||
void DataRecieved( ::Oyster::Network::NetEvent<::Oyster::Network::NetworkClient*, ::Oyster::Network::NetworkClient::ClientEventArgs> e );
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct MyData;
|
struct MyData;
|
||||||
::Utility::DynamicMemory::UniquePointer<MyData> privData;
|
::Utility::DynamicMemory::UniquePointer<MyData> privData;
|
||||||
|
|
|
@ -112,10 +112,10 @@ void LobbyAdminState::ChangeState( ClientState next )
|
||||||
|
|
||||||
using namespace ::Oyster::Network;
|
using namespace ::Oyster::Network;
|
||||||
|
|
||||||
void LobbyAdminState::DataRecieved( NetEvent<NetworkClient*, NetworkClient::ClientEventArgs> e )
|
const GameClientState::NetEvent & LobbyAdminState::DataRecieved( const GameClientState::NetEvent &message )
|
||||||
{
|
{
|
||||||
CustomNetProtocol data = e.args.data.protocol;
|
// fetching the id data.
|
||||||
short ID = data[0].value.netShort; // fetching the id data.
|
short ID = message.args.data.protocol[0].value.netShort;
|
||||||
|
|
||||||
// Block irrelevant messages.
|
// Block irrelevant messages.
|
||||||
if( ProtocolIsLobby(ID) )
|
if( ProtocolIsLobby(ID) )
|
||||||
|
@ -141,6 +141,7 @@ void LobbyAdminState::DataRecieved( NetEvent<NetworkClient*, NetworkClient::Clie
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnButtonInteract_Ready( Oyster::Event::ButtonEvent<LobbyAdminState*>& e )
|
void OnButtonInteract_Ready( Oyster::Event::ButtonEvent<LobbyAdminState*>& e )
|
||||||
|
|
|
@ -29,7 +29,7 @@ namespace DanBias
|
||||||
bool Render();
|
bool Render();
|
||||||
bool Release();
|
bool Release();
|
||||||
void ChangeState( ClientState next );
|
void ChangeState( ClientState next );
|
||||||
void DataRecieved( ::Oyster::Network::NetEvent<::Oyster::Network::NetworkClient*, ::Oyster::Network::NetworkClient::ClientEventArgs> e );
|
const NetEvent & DataRecieved( const NetEvent &message );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct MyData;
|
struct MyData;
|
||||||
|
|
|
@ -112,10 +112,10 @@ void LobbyState::ChangeState( ClientState next )
|
||||||
|
|
||||||
using namespace ::Oyster::Network;
|
using namespace ::Oyster::Network;
|
||||||
|
|
||||||
void LobbyState::DataRecieved( NetEvent<NetworkClient*, NetworkClient::ClientEventArgs> e )
|
const GameClientState::NetEvent & LobbyState::DataRecieved( const GameClientState::NetEvent &message )
|
||||||
{
|
{
|
||||||
CustomNetProtocol data = e.args.data.protocol;
|
// fetching the id data.
|
||||||
short ID = data[0].value.netShort; // fetching the id data.
|
short ID = message.args.data.protocol[0].value.netShort;
|
||||||
|
|
||||||
// Block irrelevant messages.
|
// Block irrelevant messages.
|
||||||
if( ProtocolIsLobby(ID) )
|
if( ProtocolIsLobby(ID) )
|
||||||
|
@ -141,6 +141,8 @@ void LobbyState::DataRecieved( NetEvent<NetworkClient*, NetworkClient::ClientEve
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnButtonInteract_Ready( Oyster::Event::ButtonEvent<LobbyState*>& e )
|
void OnButtonInteract_Ready( Oyster::Event::ButtonEvent<LobbyState*>& e )
|
||||||
|
|
|
@ -31,7 +31,7 @@ namespace DanBias
|
||||||
bool Render();
|
bool Render();
|
||||||
bool Release();
|
bool Release();
|
||||||
void ChangeState( ClientState next );
|
void ChangeState( ClientState next );
|
||||||
void DataRecieved( ::Oyster::Network::NetEvent<::Oyster::Network::NetworkClient*, ::Oyster::Network::NetworkClient::ClientEventArgs> e );
|
const NetEvent & DataRecieved( const NetEvent &message );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct MyData;
|
struct MyData;
|
||||||
|
|
|
@ -90,20 +90,25 @@ void NetLoadState::ChangeState( ClientState next )
|
||||||
this->privData->nextState = next;
|
this->privData->nextState = next;
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetLoadState::DataRecieved( NetEvent<NetworkClient*, NetworkClient::ClientEventArgs> e )
|
const GameClientState::NetEvent & NetLoadState::DataRecieved( const GameClientState::NetEvent &message )
|
||||||
{
|
{
|
||||||
// fetching the id data.
|
// fetching the id data.
|
||||||
short ID = e.args.data.protocol[0].value.netShort;
|
short ID = message.args.data.protocol[0].value.netShort;
|
||||||
|
|
||||||
if( ID == protocol_Lobby_CreateGame && !this->privData->loading )
|
if( ID == protocol_Lobby_CreateGame )
|
||||||
{
|
{
|
||||||
this->LoadGame( Protocol_LobbyCreateGame(e.args.data.protocol).mapName );
|
if( !this->privData->loading )
|
||||||
|
{
|
||||||
|
this->LoadGame( Protocol_LobbyCreateGame(message.args.data.protocol).mapName );
|
||||||
this->ChangeState( ClientState_Game );
|
this->ChangeState( ClientState_Game );
|
||||||
this->privData->loading = false;
|
this->privData->loading = false;
|
||||||
}
|
}
|
||||||
|
return GameClientState::event_processed;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{ // HACK: Debug trap
|
{ // HACK: Debug trap
|
||||||
const char *breakPoint = "Being greedy.";
|
const char *breakPoint = "Being greedy.";
|
||||||
|
return message;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ namespace DanBias
|
||||||
bool Release();
|
bool Release();
|
||||||
void ChangeState( ClientState next );
|
void ChangeState( ClientState next );
|
||||||
|
|
||||||
void DataRecieved( ::Oyster::Network::NetEvent<::Oyster::Network::NetworkClient*, ::Oyster::Network::NetworkClient::ClientEventArgs> e );
|
const NetEvent & DataRecieved( const NetEvent &message );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct MyData;
|
struct MyData;
|
||||||
|
|
Loading…
Reference in New Issue