Added lights to client
This commit is contained in:
parent
95c70fe0b2
commit
6ef0a7caa6
|
@ -202,6 +202,7 @@
|
||||||
<ClCompile Include="GameClientState\Camera_Basic.cpp" />
|
<ClCompile Include="GameClientState\Camera_Basic.cpp" />
|
||||||
<ClCompile Include="GameClientState\Camera.cpp" />
|
<ClCompile Include="GameClientState\Camera.cpp" />
|
||||||
<ClCompile Include="GameClientState\Camera_FPS.cpp" />
|
<ClCompile Include="GameClientState\Camera_FPS.cpp" />
|
||||||
|
<ClCompile Include="GameClientState\C_Light.cpp" />
|
||||||
<ClCompile Include="GameClientState\C_obj\C_DynamicObj.cpp" />
|
<ClCompile Include="GameClientState\C_obj\C_DynamicObj.cpp" />
|
||||||
<ClCompile Include="GameClientState\C_obj\C_Player.cpp" />
|
<ClCompile Include="GameClientState\C_obj\C_Player.cpp" />
|
||||||
<ClCompile Include="GameClientState\C_obj\C_StaticObj.cpp" />
|
<ClCompile Include="GameClientState\C_obj\C_StaticObj.cpp" />
|
||||||
|
@ -227,6 +228,7 @@
|
||||||
<ClInclude Include="GameClientState\Buttons\ButtonRectangle.h" />
|
<ClInclude Include="GameClientState\Buttons\ButtonRectangle.h" />
|
||||||
<ClInclude Include="GameClientState\Camera.h" />
|
<ClInclude Include="GameClientState\Camera.h" />
|
||||||
<ClInclude Include="GameClientState\Camera_FPS.h" />
|
<ClInclude Include="GameClientState\Camera_FPS.h" />
|
||||||
|
<ClInclude Include="GameClientState\C_Light.h" />
|
||||||
<ClInclude Include="GameClientState\C_obj\C_DynamicObj.h" />
|
<ClInclude Include="GameClientState\C_obj\C_DynamicObj.h" />
|
||||||
<ClInclude Include="GameClientState\C_obj\C_Player.h" />
|
<ClInclude Include="GameClientState\C_obj\C_Player.h" />
|
||||||
<ClInclude Include="GameClientState\C_obj\C_StaticObj.h" />
|
<ClInclude Include="GameClientState\C_obj\C_StaticObj.h" />
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
#include "C_Light.h"
|
||||||
|
using namespace DanBias::Client;
|
||||||
|
C_Light::C_Light( Oyster::Graphics::Definitions::Pointlight pointLightDesc, int id )
|
||||||
|
{
|
||||||
|
this->pointLightDesc = pointLightDesc;
|
||||||
|
this->id = id;
|
||||||
|
}
|
||||||
|
C_Light::~C_Light()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
Oyster::Graphics::Definitions::Pointlight C_Light::getLightDesc() const
|
||||||
|
{
|
||||||
|
return this->pointLightDesc;
|
||||||
|
}
|
||||||
|
void C_Light::setLightDesc( Oyster::Graphics::Definitions::Pointlight pointLightDesc )
|
||||||
|
{
|
||||||
|
this->pointLightDesc = pointLightDesc;
|
||||||
|
}
|
||||||
|
Oyster::Math::Float3 C_Light::getPos() const
|
||||||
|
{
|
||||||
|
return this->pointLightDesc.Pos;
|
||||||
|
}
|
||||||
|
void C_Light::setPos( Oyster::Math::Float3 newPos)
|
||||||
|
{
|
||||||
|
this->pointLightDesc.Pos = newPos;
|
||||||
|
}
|
||||||
|
|
||||||
|
int C_Light::GetId() const
|
||||||
|
{
|
||||||
|
return this->id;
|
||||||
|
}
|
||||||
|
void C_Light::Render()
|
||||||
|
{
|
||||||
|
// will be changed to new API
|
||||||
|
Oyster::Graphics::API::AddLight(pointLightDesc);
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
#ifndef DANBIAS_CLIENT_CLIGHT_H
|
||||||
|
#define DANBIAS_CLIENT_CLIGHT_H
|
||||||
|
#include "DllInterfaces/GFXAPI.h"
|
||||||
|
namespace DanBias
|
||||||
|
{
|
||||||
|
namespace Client
|
||||||
|
{
|
||||||
|
class C_Light
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
Oyster::Graphics::Definitions::Pointlight pointLightDesc;
|
||||||
|
int id;
|
||||||
|
|
||||||
|
public:
|
||||||
|
C_Light( Oyster::Graphics::Definitions::Pointlight pointLightDesc, int id );
|
||||||
|
virtual ~C_Light();
|
||||||
|
|
||||||
|
Oyster::Graphics::Definitions::Pointlight getLightDesc() const;
|
||||||
|
void setLightDesc( Oyster::Graphics::Definitions::Pointlight pointLightDesc );
|
||||||
|
|
||||||
|
Oyster::Math::Float3 getPos() const;
|
||||||
|
void setPos( Oyster::Math::Float3 newPos);
|
||||||
|
void Render();
|
||||||
|
int GetId() const;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -4,7 +4,7 @@
|
||||||
#include "NetworkClient.h"
|
#include "NetworkClient.h"
|
||||||
#include "Camera_FPS.h"
|
#include "Camera_FPS.h"
|
||||||
#include <GameServerAPI.h>
|
#include <GameServerAPI.h>
|
||||||
|
#include "C_Light.h"
|
||||||
#include "C_obj/C_Player.h"
|
#include "C_obj/C_Player.h"
|
||||||
#include "C_obj/C_DynamicObj.h"
|
#include "C_obj/C_DynamicObj.h"
|
||||||
#include "C_obj/C_StaticObj.h"
|
#include "C_obj/C_StaticObj.h"
|
||||||
|
@ -28,6 +28,7 @@ struct GameState::MyData
|
||||||
|
|
||||||
::std::map<int, ::Utility::DynamicMemory::UniquePointer<::DanBias::Client::C_StaticObj>> *staticObjects;
|
::std::map<int, ::Utility::DynamicMemory::UniquePointer<::DanBias::Client::C_StaticObj>> *staticObjects;
|
||||||
::std::map<int, ::Utility::DynamicMemory::UniquePointer<::DanBias::Client::C_DynamicObj>> *dynamicObjects;
|
::std::map<int, ::Utility::DynamicMemory::UniquePointer<::DanBias::Client::C_DynamicObj>> *dynamicObjects;
|
||||||
|
::std::map<int, ::Utility::DynamicMemory::UniquePointer<::DanBias::Client::C_Light>> *lights;
|
||||||
|
|
||||||
bool key_forward;
|
bool key_forward;
|
||||||
bool key_backward;
|
bool key_backward;
|
||||||
|
@ -82,10 +83,11 @@ bool GameState::Init( SharedStateContent &shared )
|
||||||
this->privData->input = shared.input;
|
this->privData->input = shared.input;
|
||||||
this->privData->staticObjects = &shared.staticObjects;
|
this->privData->staticObjects = &shared.staticObjects;
|
||||||
this->privData->dynamicObjects = &shared.dynamicObjects;
|
this->privData->dynamicObjects = &shared.dynamicObjects;
|
||||||
|
this->privData->lights = &shared.lights;
|
||||||
|
|
||||||
Graphics::API::Option gfxOp = Graphics::API::GetOption();
|
Graphics::API::Option gfxOp = Graphics::API::GetOption();
|
||||||
Float aspectRatio = gfxOp.Resolution.x / gfxOp.Resolution.y;
|
Float aspectRatio = gfxOp.Resolution.x / gfxOp.Resolution.y;
|
||||||
this->privData->camera.SetPerspectiveProjection( Math::pi/2, aspectRatio, 0.1f, 1000.0f );
|
this->privData->camera.SetPerspectiveProjection( Utility::Value::Radian(90.0f), aspectRatio, 0.1f, 1000.0f );
|
||||||
Graphics::API::SetProjection( this->privData->camera.GetProjectionMatrix() );
|
Graphics::API::SetProjection( this->privData->camera.GetProjectionMatrix() );
|
||||||
|
|
||||||
//tell server ready
|
//tell server ready
|
||||||
|
@ -100,6 +102,11 @@ bool GameState::Init( SharedStateContent &shared )
|
||||||
this->privData->renderWhireframe = false;
|
this->privData->renderWhireframe = false;
|
||||||
// !DEGUG KEYS
|
// !DEGUG KEYS
|
||||||
|
|
||||||
|
auto light = this->privData->lights->begin();
|
||||||
|
for( ; light != this->privData->lights->end(); ++light )
|
||||||
|
{
|
||||||
|
light->second->Render();
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -177,6 +184,13 @@ bool GameState::Render()
|
||||||
dynamicObject->second->Render();
|
dynamicObject->second->Render();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*auto light = this->privData->lights->begin();
|
||||||
|
for( ; light != this->privData->lights->end(); ++light )
|
||||||
|
{
|
||||||
|
light->second->Render();
|
||||||
|
}*/
|
||||||
|
|
||||||
// RB DEBUG render wire frame
|
// RB DEBUG render wire frame
|
||||||
if(this->privData->renderWhireframe)
|
if(this->privData->renderWhireframe)
|
||||||
{
|
{
|
||||||
|
@ -236,8 +250,15 @@ bool GameState::Release()
|
||||||
dynamicObject->second = nullptr;
|
dynamicObject->second = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto light = this->privData->lights->begin();
|
||||||
|
for( ; light != this->privData->lights->end(); ++light )
|
||||||
|
{
|
||||||
|
light->second->Render();
|
||||||
|
}
|
||||||
|
|
||||||
this->privData->staticObjects->clear();
|
this->privData->staticObjects->clear();
|
||||||
this->privData->dynamicObjects->clear();
|
this->privData->dynamicObjects->clear();
|
||||||
|
this->privData->lights->clear();
|
||||||
|
|
||||||
privData = NULL;
|
privData = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
#include "Utilities.h"
|
#include "Utilities.h"
|
||||||
#include "C_obj\C_StaticObj.h"
|
#include "C_obj\C_StaticObj.h"
|
||||||
#include "C_obj\C_DynamicObj.h"
|
#include "C_obj\C_DynamicObj.h"
|
||||||
|
#include "C_Light.h"
|
||||||
|
|
||||||
using namespace ::DanBias::Client;
|
using namespace ::DanBias::Client;
|
||||||
using namespace ::Oyster;
|
using namespace ::Oyster;
|
||||||
|
@ -23,6 +24,7 @@ struct NetLoadState::MyData
|
||||||
Graphics::API::Texture background;
|
Graphics::API::Texture background;
|
||||||
::std::map<int, ::Utility::DynamicMemory::UniquePointer<::DanBias::Client::C_StaticObj>> *staticObjects;
|
::std::map<int, ::Utility::DynamicMemory::UniquePointer<::DanBias::Client::C_StaticObj>> *staticObjects;
|
||||||
::std::map<int, ::Utility::DynamicMemory::UniquePointer<::DanBias::Client::C_DynamicObj>> *dynamicObjects;
|
::std::map<int, ::Utility::DynamicMemory::UniquePointer<::DanBias::Client::C_DynamicObj>> *dynamicObjects;
|
||||||
|
::std::map<int, ::Utility::DynamicMemory::UniquePointer<::DanBias::Client::C_Light>> *lights;
|
||||||
|
|
||||||
bool loading;
|
bool loading;
|
||||||
};
|
};
|
||||||
|
@ -49,6 +51,7 @@ bool NetLoadState::Init( SharedStateContent &shared )
|
||||||
this->privData->background = Graphics::API::CreateTexture( L"grass_md.png" );
|
this->privData->background = Graphics::API::CreateTexture( L"grass_md.png" );
|
||||||
this->privData->dynamicObjects = &shared.dynamicObjects;
|
this->privData->dynamicObjects = &shared.dynamicObjects;
|
||||||
this->privData->staticObjects = &shared.staticObjects;
|
this->privData->staticObjects = &shared.staticObjects;
|
||||||
|
this->privData->lights = &shared.lights;
|
||||||
|
|
||||||
this->privData->loading = false;
|
this->privData->loading = false;
|
||||||
|
|
||||||
|
@ -214,12 +217,33 @@ void NetLoadState::LoadGame( const ::std::string &fileName )
|
||||||
break;
|
break;
|
||||||
case ObjectType::ObjectType_Light:
|
case ObjectType::ObjectType_Light:
|
||||||
{
|
{
|
||||||
/* TODO: implement light into the leveformat */
|
BasicLight *light = (BasicLight*)oth;
|
||||||
|
Graphics::Definitions::Pointlight pointLight;
|
||||||
|
|
||||||
|
pointLight.Color = light->color;
|
||||||
|
pointLight.Pos = light->position;
|
||||||
|
pointLight.Bright = light->intensity;
|
||||||
|
pointLight.Radius = light->raduis;
|
||||||
|
|
||||||
|
C_Light *newLight = new C_Light( pointLight, objectID );
|
||||||
|
|
||||||
|
(*this->privData->lights)[objectID] = newLight;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DEBUG added a static light for testing
|
||||||
|
Graphics::Definitions::Pointlight pointLight;
|
||||||
|
pointLight.Color = Float3(1,1,0);
|
||||||
|
pointLight.Pos = Float3( 0,132, 10);
|
||||||
|
pointLight.Bright = 2;
|
||||||
|
pointLight.Radius = 50;
|
||||||
|
|
||||||
|
C_Light *newLight = new C_Light( pointLight, objectID );
|
||||||
|
|
||||||
|
(*this->privData->lights)[objectID] = newLight;
|
||||||
|
|
||||||
this->privData->nextState = ClientState::ClientState_Game;
|
this->privData->nextState = ClientState::ClientState_Game;
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
#include "C_Object.h"
|
#include "C_Object.h"
|
||||||
#include "C_obj\C_StaticObj.h"
|
#include "C_obj\C_StaticObj.h"
|
||||||
#include "C_obj\C_DynamicObj.h"
|
#include "C_obj\C_DynamicObj.h"
|
||||||
|
#include "C_Light.h"
|
||||||
#include "NetworkClient.h"
|
#include "NetworkClient.h"
|
||||||
#include "L_inputClass.h"
|
#include "L_inputClass.h"
|
||||||
|
|
||||||
|
@ -23,6 +24,7 @@ namespace DanBias { namespace Client
|
||||||
public:
|
public:
|
||||||
::std::map<int, ::Utility::DynamicMemory::UniquePointer<::DanBias::Client::C_StaticObj>> staticObjects;
|
::std::map<int, ::Utility::DynamicMemory::UniquePointer<::DanBias::Client::C_StaticObj>> staticObjects;
|
||||||
::std::map<int, ::Utility::DynamicMemory::UniquePointer<::DanBias::Client::C_DynamicObj>> dynamicObjects;
|
::std::map<int, ::Utility::DynamicMemory::UniquePointer<::DanBias::Client::C_DynamicObj>> dynamicObjects;
|
||||||
|
::std::map<int, ::Utility::DynamicMemory::UniquePointer<::DanBias::Client::C_Light>> lights;
|
||||||
::Oyster::Network::NetworkClient *network;
|
::Oyster::Network::NetworkClient *network;
|
||||||
InputClass* input;
|
InputClass* input;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ShowAllFiles>false</ShowAllFiles>
|
<ShowAllFiles>true</ShowAllFiles>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
Loading…
Reference in New Issue