2013-12-06 10:38:43 +01:00
|
|
|
#include "GameState.h"
|
|
|
|
#include "DllInterfaces/GFXAPI.h"
|
2013-12-09 11:05:47 +01:00
|
|
|
#include "GameState/C_Player.h"
|
2013-12-06 10:38:43 +01:00
|
|
|
using namespace DanBias::Client;
|
2013-12-09 09:23:39 +01:00
|
|
|
|
|
|
|
struct GameState::myData
|
|
|
|
{
|
|
|
|
myData(){}
|
|
|
|
Oyster::Math3D::Float4x4 view;
|
|
|
|
Oyster::Math3D::Float4x4 proj;
|
2013-12-09 11:05:47 +01:00
|
|
|
C_Object* player;
|
2013-12-09 09:23:39 +01:00
|
|
|
}privData;
|
|
|
|
|
2013-12-06 10:38:43 +01:00
|
|
|
GameState::GameState(void)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
GameState::~GameState(void)
|
|
|
|
{
|
2013-12-09 11:05:47 +01:00
|
|
|
|
2013-12-06 10:38:43 +01:00
|
|
|
}
|
|
|
|
bool GameState::Init()
|
|
|
|
{
|
2013-12-09 12:01:36 +01:00
|
|
|
ModelInitData modelData;
|
|
|
|
|
|
|
|
modelData.world = Oyster::Math3D::Float4x4::identity;
|
|
|
|
modelData.visible = true;
|
|
|
|
modelData.modelPath = L"worldDummy";
|
2013-12-09 09:23:39 +01:00
|
|
|
// load models
|
|
|
|
privData = new myData();
|
2013-12-09 11:05:47 +01:00
|
|
|
privData->player = new C_Player;
|
2013-12-09 12:01:36 +01:00
|
|
|
privData->player->Init(modelData);
|
2013-12-09 09:23:39 +01:00
|
|
|
|
|
|
|
privData->proj = Oyster::Math3D::ProjectionMatrix_Perspective(Oyster::Math::pi/2,1024.0f/768.0f,.1f,1000);
|
|
|
|
Oyster::Graphics::API::SetProjection(privData->proj);
|
|
|
|
|
|
|
|
privData->view = Oyster::Math3D::OrientationMatrix_LookAtDirection(Oyster::Math::Float3(0,0,-1),Oyster::Math::Float3(0,1,0),Oyster::Math::Float3(0,0,5.4f));
|
|
|
|
privData->view = Oyster::Math3D::InverseOrientationMatrix(privData->view);
|
|
|
|
|
2013-12-06 10:38:43 +01:00
|
|
|
return true;
|
|
|
|
}
|
2013-12-09 09:23:39 +01:00
|
|
|
GameClientState::ClientState GameState::Update(float deltaTime, InputClass* KeyInput)
|
2013-12-06 10:38:43 +01:00
|
|
|
{
|
2013-12-09 09:23:39 +01:00
|
|
|
if(KeyInput->IsKeyPressed(DIK_L))
|
|
|
|
return ClientState_Lobby;
|
|
|
|
|
|
|
|
// send key input to server.
|
2013-12-06 10:38:43 +01:00
|
|
|
return ClientState_Same;
|
|
|
|
}
|
|
|
|
bool GameState::Render()
|
|
|
|
{
|
|
|
|
|
2013-12-09 09:23:39 +01:00
|
|
|
Oyster::Graphics::API::SetView(privData->view);
|
|
|
|
Oyster::Graphics::API::SetProjection( privData->proj);
|
|
|
|
Oyster::Graphics::API::NewFrame();
|
2013-12-09 11:05:47 +01:00
|
|
|
privData->player->Render();
|
2013-12-06 10:38:43 +01:00
|
|
|
Oyster::Graphics::API::EndFrame();
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
bool GameState::Release()
|
|
|
|
{
|
2013-12-09 11:05:47 +01:00
|
|
|
privData->player->Release();
|
|
|
|
delete privData->player;
|
|
|
|
privData->player = NULL;
|
|
|
|
delete privData;
|
|
|
|
privData = NULL;
|
2013-12-06 10:38:43 +01:00
|
|
|
return true;
|
|
|
|
}
|