From fa1473455fc4890e23209353fa5b66e3ae511069 Mon Sep 17 00:00:00 2001 From: Linda Andersson Date: Mon, 16 Dec 2013 09:45:12 +0100 Subject: [PATCH 1/2] GL - added C_obj files, client obj in game state to send input --- Bin/Content/Shaders/DebugVertex.cso | Bin 12292 -> 0 bytes Bin/Content/Shaders/TextureDebug.cso | Bin 14560 -> 0 bytes Code/DanBias.sln | 1 + Code/Game/DanBiasGame/DanBiasGame.vcxproj | 16 ++--- Code/Game/DanBiasGame/DanBiasGame_Impl.cpp | 66 +++++++++--------- .../GameClientState/C_obj/C_DynamicObj.cpp | 42 +++++++++++ .../GameClientState/C_obj/C_DynamicObj.h | 22 ++++++ .../GameClientState/C_obj/C_Player.cpp | 46 ++++++++++++ .../GameClientState/C_obj/C_Player.h | 25 +++++++ .../GameClientState/C_obj/C_StaticObj.cpp | 45 ++++++++++++ .../GameClientState/C_obj/C_StaticObj.h | 22 ++++++ .../GameClientState/C_obj/C_UIobject.cpp | 43 ++++++++++++ .../GameClientState/C_obj/C_UIobject.h | 22 ++++++ .../GameClientState/GameClientState.h | 3 +- .../DanBiasGame/GameClientState/GameState.cpp | 42 ++++++++--- .../DanBiasGame/GameClientState/GameState.h | 2 +- .../GameClientState/LobbyState.cpp | 8 +-- .../DanBiasGame/GameClientState/LobbyState.h | 2 +- Code/Game/DanBiasGame/Include/DanBiasGame.h | 2 +- Code/Game/DanBiasLauncher/Launcher.cpp | 6 +- 20 files changed, 355 insertions(+), 60 deletions(-) delete mode 100644 Bin/Content/Shaders/DebugVertex.cso delete mode 100644 Bin/Content/Shaders/TextureDebug.cso create mode 100644 Code/Game/DanBiasGame/GameClientState/C_obj/C_DynamicObj.cpp create mode 100644 Code/Game/DanBiasGame/GameClientState/C_obj/C_DynamicObj.h create mode 100644 Code/Game/DanBiasGame/GameClientState/C_obj/C_Player.cpp create mode 100644 Code/Game/DanBiasGame/GameClientState/C_obj/C_Player.h create mode 100644 Code/Game/DanBiasGame/GameClientState/C_obj/C_StaticObj.cpp create mode 100644 Code/Game/DanBiasGame/GameClientState/C_obj/C_StaticObj.h create mode 100644 Code/Game/DanBiasGame/GameClientState/C_obj/C_UIobject.cpp create mode 100644 Code/Game/DanBiasGame/GameClientState/C_obj/C_UIobject.h diff --git a/Bin/Content/Shaders/DebugVertex.cso b/Bin/Content/Shaders/DebugVertex.cso deleted file mode 100644 index 4783f8a659621357d2c64b81e5a731d5e5b2a744..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12292 zcmeHNO>9(E6uxiTVmq|Z777RnxluIy&P@3&705uRrA-QLI;A#oVi{&$r^8I=P2QW9 zHfqv^3se%KVd26BCg`RMhzl`nAaSJ&qYD#v7(a>*mK_ocio`=eKXIZuqc!%RNm9Q63Uv1#}Z|4Y&hrK*4F? zPoO8#+Lni{SPn5$@nE_Fdi>;0w8apj5|Dr^Wlm!CY9YG2q8+^* zT_?rl?58>FLs12fH{?XCS`*t#)NE%e#*LK{H!saocQNWn!@(oVCV{g}C% zZ`*9!kAP;h_h|1Wl>6Aok>WH>Y`+kh-F_i$i|aNiiZSG0^haLy893@@v1=Y+V~g^Ad&ugiEw9`%KI zU@&XM3wz~oJe}JrolM@aWV3X`A#xisMd6Ve|7$h=DpN0vm^q26FV*mEFk-o;g2M)+xGFmXqg0%8_cBC+> zCorkMAk6JV=YEfk9Cb(1>HPu#`8nz zgcY-6e=)`ZW6|_*KC4IcGb1T5z_Cv^3;I}KC~IYfNHoVr6vw2^G5If!$x(-+^(Y(_ zXK*~{a7@l{Opv3YIHp{VmWoftNF!z`j!DH)9Y>2eF48sijB}n`fo^v;TT~x8_Hsx6 zFSY51kT!uHZuh@f+4sj+nlsKL_sRN<54xHSNs#eg_I-NYrz_f!W;rL~l1I{$67T>| zqLboKT`d<#s}h^VFVEj9bM=3S(xaRG;&7eD%cLzEPgx=~wofqE8#hyWL5x}h`vyYF z(wZxnba;Nk<9^WqS>N$1%(8qbdC*jmji?9(>~ zH`*V@jrNCeqkT3vA0j!wf&phtx7KQ}ti6Bi$5($U|IYfkE&0ioZ-khFy&a%v_=Q!9 z-m>FD^gH4N6OLA~BIX%0V*J2|QH${#Y-~$$wVm^hrRIT^Up8t@B!%<090()nM--6j zRyKhH1ZD+Z1NN1}YhhDE7=t$#@n^++s<2N>_)SQWg-Yr7H~IkgQ~q>1o^ z{{Q_N0|YzMxlBiH&=A2~d|0EcZQ zz$%~$pdabil|VH>-_ozVzi`}oKy5ytJ$XDH OXm~usdZU(z2mS^TMpq#K diff --git a/Bin/Content/Shaders/TextureDebug.cso b/Bin/Content/Shaders/TextureDebug.cso deleted file mode 100644 index 6a324d8d0624c9aabf58e655c66dfca897029b8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14560 zcmeHOU2Ggz6+UaniM{c<>!fx}Qle36s!f{MySAI8A&s1RZO4`W>RG!ftdy+RV|(lM z?rLT?wrK;A=tD)Q+KN2z_t1wH1-YV9U;3j~6j~txqJRVvAV3Hq^#P&c&_Y#JHQ#q< zW;=Flr$AfQ=^pFsz4yCk&OP_spSeHd=;=GVzW2Mpn~#0rnRmZ`S-Tvn`qjfe5&6?m zk*x?3$lKsY0lo@8ULo=u@JO_~=Q-dm0g~fPR4p%8LGH_ljzl97VohKT90E6kYr&)k zz?CYt@&}I#`AcBxtpaZWFM|-MyZ}NyB6(w822x2gYh@?%T4-dycB)_R*YxScgkfr3 z+1XqwjmYgS?ctW&+rr_N$l>;*9kRICr}qv%3LVs24W0&*Sgvc+4T$FnIz(LMBXZsa z5fZ1J+rSTkT_R4V9)0Z0@Q~gY>l+%BSoi6!p`nqe3=WM9oa~ok#^U1Q5bQb#d6q-F zG_Xt5MRN4TPLA|;$50pjRQKr|@L}*x;QJmD-{)BL*&tFPr<+jCoE;w>6&VjoWm_<) z$}k{zMYHp|MK1nOH7A7yJot+Ygw+{dLFpc67jw8$l?gs zl}mLe-dbqx>wV^~zg9o;?l*ttKEu4#>&}ypwXKF+@p8C{Jn-Hd@4dl>{5CgwUB}|1 zmSI})sFBH}7+5p;Y%XriWYdXwbS%BW@`pCzO%cWYb8Mu#GG|M=E#P#;tJRoF&qV4R!l~$S>{?`7So} zd;3Mck`Z~w#AX-W!iV_R4q&fX5c%~jBKPw!z}fC1R;EqtftypAWV$e6X#3vpA^QUU zfZrK;ZBY%~TRWzi##D+!Hk1$V|7^goCpbt=J)g)MnjY~ASV|z^pG;>H`3`M1k;;U| z3=?XG3YZ@QKiF4*Zp!&%GjGVV!W(TX;0bPQSUiD40M*9NoZY=Y(6 zhls_T4(*ci9=QSk3KRM=9t+yFs~)kPuzvBGtBPkKrPuy=%m4phpq@A9rkRgC zJ-s||JY)AG8aUgXq4Old?|@&&qV+B?*RF>=o7e}P19sjuldf4F$H2e0)jqGl3H6(>fc0h94f=lj{I|aGm*l^ut!>Zh7a!jF zV|yM6`Wj#RHg4#%mRwn4+J|&d zM#m__bOq8)VlV1ljL$R+m-Di;SE?G6%}Nh-iF8PDJ0X7Y?O;FQoZ*+I20qKSuaoK^ z`}i)zs}R=7E|piw3cwc1Ry(qc*QmHuC^<;@J#yPUa+uv>jw$IA;FJ=47 zw*7A&h_*-dQ_+#)9JrP?P2}uacp2OL9^ifN?wZ!6CR8PexvT*p=Si0jIdKFV5~jOr zl6Fmr4?{pr$RCEHvW_)8!1WFLN|~+?5A2Z7s6E$LQ5~PN6>F5c>-`we+nldKI7i@M z9&5h4>jS{IDxBYmEHC35(=u&h4{S7VyYGfgT)ndC*YE(_c&;X*&i(4}ee(_S>?`aO z{a_8uJ#37N0f!n9e#%Wap_`pUT3fYNtiW#TMdy`#3HgjZez6z7HmSp$Og3X6dFX|f zrHyq}sBg$QQ_*f}V42m9eivitQzh9MPe7*hZscQEecDiZHoku+Okca-il{bn8;Tip zxJ?01oH=DGaSv?t{nrB8xV1l(nd!?+W~DWQ>tRb;Ei>6VZSem`#?#s4j15fU-$<<1 z6Evr7wQTCUrxt@#ADs&v)7jvAoI-O`ALLS0##pYgcQSO)E8ZhOzf=M6n z13jwJz<)qFXThJxl&Q`Gf&Cr_YEL1&4CcMeSsc@KB2Ef{k3yF3hbWlmdfXTAe{cAX z*ahZ$gyzsJ-rv=NX+BNm|0m&nqpCq0c7S(+x&P$ZX_-DA53GKde>|m@ODPo({2TUS B&?f)@ diff --git a/Code/DanBias.sln b/Code/DanBias.sln index 315bd416..894caec6 100644 --- a/Code/DanBias.sln +++ b/Code/DanBias.sln @@ -196,6 +196,7 @@ Global {2A1BC987-AF42-4500-802D-89CD32FC1309}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {2A1BC987-AF42-4500-802D-89CD32FC1309}.Debug|Mixed Platforms.Build.0 = Debug|Win32 {2A1BC987-AF42-4500-802D-89CD32FC1309}.Debug|Win32.ActiveCfg = Debug|Win32 + {2A1BC987-AF42-4500-802D-89CD32FC1309}.Debug|Win32.Build.0 = Debug|Win32 {2A1BC987-AF42-4500-802D-89CD32FC1309}.Debug|x64.ActiveCfg = Debug|x64 {2A1BC987-AF42-4500-802D-89CD32FC1309}.Debug|x64.Build.0 = Debug|x64 {2A1BC987-AF42-4500-802D-89CD32FC1309}.Release|Mixed Platforms.ActiveCfg = Release|Win32 diff --git a/Code/Game/DanBiasGame/DanBiasGame.vcxproj b/Code/Game/DanBiasGame/DanBiasGame.vcxproj index c4ad8f96..ff05bc23 100644 --- a/Code/Game/DanBiasGame/DanBiasGame.vcxproj +++ b/Code/Game/DanBiasGame/DanBiasGame.vcxproj @@ -192,26 +192,26 @@ - + + + + - - - - - + + + + - - diff --git a/Code/Game/DanBiasGame/DanBiasGame_Impl.cpp b/Code/Game/DanBiasGame/DanBiasGame_Impl.cpp index 1729708d..f3792db6 100644 --- a/Code/Game/DanBiasGame/DanBiasGame_Impl.cpp +++ b/Code/Game/DanBiasGame/DanBiasGame_Impl.cpp @@ -30,38 +30,38 @@ namespace DanBias void ProtocolRecievedCallback(Oyster::Network::CustomNetProtocol& p) override { - int pType = p[0].value.netInt; - Client::GameClientState::ProtocolStruct* protocol; - switch (pType) - { - case protocol_PlayerNavigation: + int pType = p[0].value.netInt; + Client::GameClientState::ProtocolStruct* protocol; + switch (pType) + { + case protocol_PlayerNavigation: - break; - case protocol_PlayerPosition: - protocol = new Client::GameClientState::PlayerPos; - for(int i = 0; i< 3; i++) - { - ((Client::GameClientState::PlayerPos*)protocol)->playerPos[i] = p[i].value.netFloat; - } - gameClientState->Protocol(protocol); - delete protocol; - protocol = NULL; - break; + break; + case protocol_PlayerPosition: + protocol = new Client::GameClientState::PlayerPos; + for(int i = 0; i< 3; i++) + { + ((Client::GameClientState::PlayerPos*)protocol)->playerPos[i] = p[i].value.netFloat; + } + gameClientState->Protocol(protocol); + delete protocol; + protocol = NULL; + break; - case protocol_ObjectPosition: - protocol = new Client::GameClientState::ObjPos; - for(int i = 0; i< 16; i++) - { - ((Client::GameClientState::ObjPos*)protocol)->worldPos[i] = p[i].value.netFloat; - } - gameClientState->Protocol(protocol); - delete protocol; - protocol = NULL; - break; + case protocol_ObjectPosition: + protocol = new Client::GameClientState::ObjPos; + for(int i = 0; i< 16; i++) + { + ((Client::GameClientState::ObjPos*)protocol)->worldPos[i] = p[i].value.netFloat; + } + gameClientState->Protocol(protocol); + delete protocol; + protocol = NULL; + break; - default: - break; + default: + break; } @@ -112,12 +112,12 @@ namespace DanBias prevTimeStamp = 0; QueryPerformanceCounter((LARGE_INTEGER*)&prevTimeStamp); - - // Start in lobby state - m_data->gameClientState = new Client::LobbyState(); - m_data->gameClientState->Init(); m_data->r = new MyRecieverObject; m_data->r->nwClient = new Oyster::Network::NetworkClient(); + // Start in lobby state + m_data->gameClientState = new Client::LobbyState(); + m_data->gameClientState->Init(m_data->r->nwClient); + return DanBiasClientReturn_Sucess; } @@ -253,7 +253,7 @@ namespace DanBias return E_FAIL; break; } - m_data->gameClientState->Init(); // send game client + m_data->gameClientState->Init(m_data->r->nwClient); // send game client } return S_OK; diff --git a/Code/Game/DanBiasGame/GameClientState/C_obj/C_DynamicObj.cpp b/Code/Game/DanBiasGame/GameClientState/C_obj/C_DynamicObj.cpp new file mode 100644 index 00000000..686bbca9 --- /dev/null +++ b/Code/Game/DanBiasGame/GameClientState/C_obj/C_DynamicObj.cpp @@ -0,0 +1,42 @@ +#include "C_DynamicObj.h" +#include "DllInterfaces/GFXAPI.h" +using namespace DanBias::Client; +struct C_DynamicObj::myData +{ + myData(){} + Oyster::Graphics::Model::Model *model; + // light + // sound + // effect +}privData; +C_DynamicObj::C_DynamicObj(void) +{ +} + + +C_DynamicObj::~C_DynamicObj(void) +{ + +} +void C_DynamicObj::Init(ModelInitData modelInit) +{ + // load models + privData = new myData(); + privData->model = Oyster::Graphics::API::CreateModel(modelInit.modelPath); + privData->model->WorldMatrix = modelInit.world; + privData->model->Visible = modelInit.visible; +} +void C_DynamicObj::setPos() +{ + +} + +void C_DynamicObj::Render() +{ + Oyster::Graphics::API::RenderModel(*(privData->model)); +} +void C_DynamicObj::Release() +{ + Oyster::Graphics::API::DeleteModel(privData->model); + delete privData; +} \ No newline at end of file diff --git a/Code/Game/DanBiasGame/GameClientState/C_obj/C_DynamicObj.h b/Code/Game/DanBiasGame/GameClientState/C_obj/C_DynamicObj.h new file mode 100644 index 00000000..ca0f3b8c --- /dev/null +++ b/Code/Game/DanBiasGame/GameClientState/C_obj/C_DynamicObj.h @@ -0,0 +1,22 @@ +#ifndef DANBIAS_CLIENT_CDYNAMICOBJECT_H +#define DANBIAS_CLIENT_CDYNAMICOBJECT_H +#include "../C_Object.h" +namespace DanBias +{ + namespace Client + { +class C_DynamicObj : public C_Object +{ +private: + struct myData; + myData* privData; +public: + C_DynamicObj(void); + virtual ~C_DynamicObj(void); + void Init(ModelInitData modelInit); + void setPos(); + + void Render(); + void Release(); +};};}; +#endif diff --git a/Code/Game/DanBiasGame/GameClientState/C_obj/C_Player.cpp b/Code/Game/DanBiasGame/GameClientState/C_obj/C_Player.cpp new file mode 100644 index 00000000..e47d98ef --- /dev/null +++ b/Code/Game/DanBiasGame/GameClientState/C_obj/C_Player.cpp @@ -0,0 +1,46 @@ +#include "C_Player.h" +#include "DllInterfaces/GFXAPI.h" +using namespace DanBias::Client; + +struct C_Player::myData +{ + myData(){} + Oyster::Math3D::Float4x4 view; + Oyster::Math3D::Float4x4 proj; + Oyster::Graphics::Model::Model *model; +}privData; + +C_Player::C_Player(void) +{ +} + + +C_Player::~C_Player(void) +{ + +} + +void C_Player::Init(ModelInitData modelInit) +{ + // load models + privData = new myData(); + privData->model = Oyster::Graphics::API::CreateModel(modelInit.modelPath); + privData->model->WorldMatrix = modelInit.world; + privData->model->Visible = modelInit.visible; + + +} +void C_Player::setPos() +{ + +} + +void C_Player::Render() +{ + Oyster::Graphics::API::RenderModel(*(privData->model)); +} +void C_Player::Release() +{ + Oyster::Graphics::API::DeleteModel(privData->model); + delete privData; +} diff --git a/Code/Game/DanBiasGame/GameClientState/C_obj/C_Player.h b/Code/Game/DanBiasGame/GameClientState/C_obj/C_Player.h new file mode 100644 index 00000000..5d9c9d59 --- /dev/null +++ b/Code/Game/DanBiasGame/GameClientState/C_obj/C_Player.h @@ -0,0 +1,25 @@ +#ifndef DANBIAS_CLIENT_CPLAYER_H +#define DANBIAS_CLIENT_CPLAYER_H +#include "../C_Object.h" +namespace DanBias +{ + namespace Client + { +class C_Player : public C_Object +{ +private: + struct myData; + myData* privData; + //Oyster::Graphics:: LIght +public: + C_Player(void); + ~C_Player(void); + void Init(ModelInitData modelInit); + void setPos(); + + void Render(); + void Release(); + +};};}; +#endif + diff --git a/Code/Game/DanBiasGame/GameClientState/C_obj/C_StaticObj.cpp b/Code/Game/DanBiasGame/GameClientState/C_obj/C_StaticObj.cpp new file mode 100644 index 00000000..54c36c2a --- /dev/null +++ b/Code/Game/DanBiasGame/GameClientState/C_obj/C_StaticObj.cpp @@ -0,0 +1,45 @@ + +#include "C_StaticObj.h" +#include "DllInterfaces/GFXAPI.h" +using namespace DanBias::Client; + +struct C_StaticObj::myData +{ + myData(){} + Oyster::Graphics::Model::Model *model; + // light + // sound + // effect +}privData; +C_StaticObj::C_StaticObj(void) +{ +} + + +C_StaticObj::~C_StaticObj(void) +{ + +} +void C_StaticObj::Init(ModelInitData modelInit) +{ + // load models + privData = new myData(); + privData->model = Oyster::Graphics::API::CreateModel(modelInit.modelPath); + privData->model->WorldMatrix = modelInit.world; + privData->model->Visible = modelInit.visible; + +} +void C_StaticObj::setPos() +{ + +} + +void C_StaticObj::Render() +{ + Oyster::Graphics::API::RenderModel(*(privData->model)); +} +void C_StaticObj::Release() +{ + Oyster::Graphics::API::DeleteModel(privData->model); + delete privData; +} \ No newline at end of file diff --git a/Code/Game/DanBiasGame/GameClientState/C_obj/C_StaticObj.h b/Code/Game/DanBiasGame/GameClientState/C_obj/C_StaticObj.h new file mode 100644 index 00000000..768344f0 --- /dev/null +++ b/Code/Game/DanBiasGame/GameClientState/C_obj/C_StaticObj.h @@ -0,0 +1,22 @@ +#ifndef DANBIAS_CLIENT_CSTATICOBJECT_H +#define DANBIAS_CLIENT_CSTATICOBJECT_H +#include "../C_Object.h" +namespace DanBias +{ + namespace Client + { +class C_StaticObj : public C_Object +{ +private: + struct myData; + myData* privData; +public: + C_StaticObj(void); + virtual ~C_StaticObj(void); + void Init(ModelInitData modelInit); + void setPos(); + + void Render(); + void Release(); +};};}; +#endif \ No newline at end of file diff --git a/Code/Game/DanBiasGame/GameClientState/C_obj/C_UIobject.cpp b/Code/Game/DanBiasGame/GameClientState/C_obj/C_UIobject.cpp new file mode 100644 index 00000000..b07ec6fa --- /dev/null +++ b/Code/Game/DanBiasGame/GameClientState/C_obj/C_UIobject.cpp @@ -0,0 +1,43 @@ +#include "C_UIobject.h" +#include "DllInterfaces/GFXAPI.h" +using namespace DanBias::Client; + +struct C_UIobject::myData +{ + myData(){} + Oyster::Math3D::Float4x4 view; + Oyster::Math3D::Float4x4 proj; + Oyster::Graphics::Model::Model *model; +}privData; + +C_UIobject::C_UIobject(void) +{ +} + + +C_UIobject::~C_UIobject(void) +{ +} +void C_UIobject::Init(ModelInitData modelInit) +{ + // load models + privData = new myData(); + privData->model = Oyster::Graphics::API::CreateModel(modelInit.modelPath); + privData->model->WorldMatrix = modelInit.world; + privData->model->Visible = modelInit.visible; + +} +void C_UIobject::setPos() +{ + +} + +void C_UIobject::Render() +{ + Oyster::Graphics::API::RenderModel(*(privData->model)); +} +void C_UIobject::Release() +{ + Oyster::Graphics::API::DeleteModel(privData->model); + delete privData; +} \ No newline at end of file diff --git a/Code/Game/DanBiasGame/GameClientState/C_obj/C_UIobject.h b/Code/Game/DanBiasGame/GameClientState/C_obj/C_UIobject.h new file mode 100644 index 00000000..203b5398 --- /dev/null +++ b/Code/Game/DanBiasGame/GameClientState/C_obj/C_UIobject.h @@ -0,0 +1,22 @@ +#ifndef DANBIAS_CLIENT_CUIOBJECT_H +#define DANBIAS_CLIENT_CUIOBJECT_H +#include "../C_Object.h" +namespace DanBias +{ + namespace Client + { + class C_UIobject : public C_Object + { + private: + struct myData; + myData* privData; + public: + C_UIobject(void); + virtual ~C_UIobject(void); + void Init(ModelInitData modelInit); + void setPos(); + + void Render(); + void Release(); +};};}; +#endif \ No newline at end of file diff --git a/Code/Game/DanBiasGame/GameClientState/GameClientState.h b/Code/Game/DanBiasGame/GameClientState/GameClientState.h index 4e0d723b..368fca6a 100644 --- a/Code/Game/DanBiasGame/GameClientState/GameClientState.h +++ b/Code/Game/DanBiasGame/GameClientState/GameClientState.h @@ -3,6 +3,7 @@ #define NOMINMAX #include "L_inputClass.h" +#include "NetworkClient.h" namespace DanBias { @@ -42,7 +43,7 @@ public: public: GameClientState(void); virtual ~GameClientState(void); - virtual bool Init() = 0; + virtual bool Init(Oyster::Network::NetworkClient* nwClient) = 0; virtual ClientState Update(float deltaTime, InputClass* KeyInput) = 0; virtual bool Render() = 0; virtual bool Release() = 0; diff --git a/Code/Game/DanBiasGame/GameClientState/GameState.cpp b/Code/Game/DanBiasGame/GameClientState/GameState.cpp index 64b1babb..588e6ab8 100644 --- a/Code/Game/DanBiasGame/GameClientState/GameState.cpp +++ b/Code/Game/DanBiasGame/GameClientState/GameState.cpp @@ -1,7 +1,7 @@ #include "GameState.h" #include "DllInterfaces/GFXAPI.h" -#include "Obj/C_Player.h" -#include "Obj/C_DynamicObj.h" +#include "C_obj/C_Player.h" +#include "C_obj/C_DynamicObj.h" #include "NetworkClient.h" #include "PlayerProtocols.h" @@ -28,11 +28,12 @@ GameState::~GameState(void) { } -bool GameState::Init() +bool GameState::Init(Oyster::Network::NetworkClient* nwClient) { // load models privData = new myData(); privData->state = gameStateState_loading; + privData->nwClient = nwClient; privData->state = LoadGame(); return true; } @@ -92,12 +93,37 @@ GameClientState::ClientState GameState::Update(float deltaTime, InputClass* KeyI // update objects // Client.send(obj); { - GameLogic::Protocol_PlayerMovement movePlayer; - - //privData->nwClient->Send(movePlayer); + GameLogic::Protocol_PlayerMovement movePlayer; + movePlayer.bForward = false; + movePlayer.bBackward = false; + movePlayer.bStrafeLeft = false; + movePlayer.bStrafeRight = false; + movePlayer.bTurnLeft = false; + movePlayer.bTurnRight = false; - if(KeyInput->IsKeyPressed(DIK_L)) - privData->state = GameState::gameStateState_end; + + if(KeyInput->IsKeyPressed(DIK_W)) + { + movePlayer.bForward = true; + } + if(KeyInput->IsKeyPressed(DIK_S)) + { + movePlayer.bBackward = true; + } + if(KeyInput->IsKeyPressed(DIK_A)) + { + movePlayer.bStrafeLeft = true; + } + if(KeyInput->IsKeyPressed(DIK_D)) + { + movePlayer.bStrafeRight = true; + } + + + privData->nwClient->Send(movePlayer); + + if(KeyInput->IsKeyPressed(DIK_L)) + privData->state = GameState::gameStateState_end; } break; case gameStateState_end: diff --git a/Code/Game/DanBiasGame/GameClientState/GameState.h b/Code/Game/DanBiasGame/GameClientState/GameState.h index 26ec0caa..05f9ac3d 100644 --- a/Code/Game/DanBiasGame/GameClientState/GameState.h +++ b/Code/Game/DanBiasGame/GameClientState/GameState.h @@ -22,7 +22,7 @@ private: public: GameState(void); ~GameState(void); - bool Init(); + bool Init(Oyster::Network::NetworkClient* nwClient); GameClientState::ClientState Update(float deltaTime, InputClass* KeyInput) override; bool LoadModels(std::wstring mapFile) ; bool InitCamera(Oyster::Math::Float3 startPos) ; diff --git a/Code/Game/DanBiasGame/GameClientState/LobbyState.cpp b/Code/Game/DanBiasGame/GameClientState/LobbyState.cpp index 8d54bd24..2c07c27f 100644 --- a/Code/Game/DanBiasGame/GameClientState/LobbyState.cpp +++ b/Code/Game/DanBiasGame/GameClientState/LobbyState.cpp @@ -1,9 +1,9 @@ #include "LobbyState.h" #include "DllInterfaces/GFXAPI.h" #include "OysterMath.h" -#include "Obj/C_Player.h" -#include "Obj/C_StaticObj.h" -#include "Obj/C_DynamicObj.h" +#include "C_obj/C_Player.h" +#include "C_obj/C_StaticObj.h" +#include "C_obj/C_DynamicObj.h" using namespace DanBias::Client; @@ -28,7 +28,7 @@ LobbyState::~LobbyState(void) } -bool LobbyState::Init() +bool LobbyState::Init(Oyster::Network::NetworkClient* nwClient) { privData = new myData(); diff --git a/Code/Game/DanBiasGame/GameClientState/LobbyState.h b/Code/Game/DanBiasGame/GameClientState/LobbyState.h index c00a3b8f..e7cb7b8c 100644 --- a/Code/Game/DanBiasGame/GameClientState/LobbyState.h +++ b/Code/Game/DanBiasGame/GameClientState/LobbyState.h @@ -17,7 +17,7 @@ private: public: LobbyState(void); ~LobbyState(void); - bool Init(); + bool Init(Oyster::Network::NetworkClient* nwClient); bool LoadModels(std::wstring file); bool InitCamera(Oyster::Math::Float3 startPos); ClientState Update(float deltaTime, InputClass* KeyInput); diff --git a/Code/Game/DanBiasGame/Include/DanBiasGame.h b/Code/Game/DanBiasGame/Include/DanBiasGame.h index a8d1a96f..206a21e8 100644 --- a/Code/Game/DanBiasGame/Include/DanBiasGame.h +++ b/Code/Game/DanBiasGame/Include/DanBiasGame.h @@ -1,7 +1,7 @@ #ifndef DANBIASGAME_DANBIASGAME_H #define DANBIASGAME_DANBIASGAME_H -#define DANBIAS_CLIENT_L +#define DANBIAS_CLIENT #if defined (DANBIAS_GAME_DLL_EXPORT) #define DANBIAS_GAME_DLL __declspec(dllexport) diff --git a/Code/Game/DanBiasLauncher/Launcher.cpp b/Code/Game/DanBiasLauncher/Launcher.cpp index 0efd5e2e..a970d372 100644 --- a/Code/Game/DanBiasLauncher/Launcher.cpp +++ b/Code/Game/DanBiasLauncher/Launcher.cpp @@ -6,8 +6,8 @@ #include -#include "DanBiasServerAPI.h" -//#include "DanBiasGame.h" +//#include "DanBiasServerAPI.h" +#include "DanBiasGame.h" int WINAPI WinMain( HINSTANCE hinst, HINSTANCE prevInst, PSTR cmdLine, int cmdShow) @@ -22,7 +22,7 @@ int WINAPI WinMain( HINSTANCE hinst, HINSTANCE prevInst, PSTR cmdLine, int cmdSh DanBias::DanBiasServerAPI::Run(); DanBias::DanBiasServerAPI::Release(); } -#elif defined(DANBIAS_CLIENT_L) +#elif defined(DANBIAS_CLIENT) if(SetDllDirectory(L"..\\DLL") == FALSE) { return cmdShow; From b60166a6e807f4630e70134a3eea7936db0fc157 Mon Sep 17 00:00:00 2001 From: Linda Andersson Date: Mon, 16 Dec 2013 09:55:51 +0100 Subject: [PATCH 2/2] GL - connect to server, need right IP --- Code/Game/DanBiasGame/DanBiasGame_Impl.cpp | 32 ++++++++++++--------- Code/Game/DanBiasGame/Include/DanBiasGame.h | 1 + Code/Game/DanBiasLauncher/Launcher.cpp | 1 + 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/Code/Game/DanBiasGame/DanBiasGame_Impl.cpp b/Code/Game/DanBiasGame/DanBiasGame_Impl.cpp index f3792db6..15e799bf 100644 --- a/Code/Game/DanBiasGame/DanBiasGame_Impl.cpp +++ b/Code/Game/DanBiasGame/DanBiasGame_Impl.cpp @@ -31,40 +31,38 @@ namespace DanBias { int pType = p[0].value.netInt; - Client::GameClientState::ProtocolStruct* protocol; + Client::GameClientState::ProtocolStruct* protocolData; switch (pType) { case protocol_PlayerNavigation: break; case protocol_PlayerPosition: - protocol = new Client::GameClientState::PlayerPos; + protocolData = new Client::GameClientState::PlayerPos; for(int i = 0; i< 3; i++) { - ((Client::GameClientState::PlayerPos*)protocol)->playerPos[i] = p[i].value.netFloat; + ((Client::GameClientState::PlayerPos*)protocolData)->playerPos[i] = p[i].value.netFloat; } - gameClientState->Protocol(protocol); - delete protocol; - protocol = NULL; + gameClientState->Protocol(protocolData); + delete protocolData; + protocolData = NULL; break; case protocol_ObjectPosition: - protocol = new Client::GameClientState::ObjPos; + protocolData = new Client::GameClientState::ObjPos; for(int i = 0; i< 16; i++) { - ((Client::GameClientState::ObjPos*)protocol)->worldPos[i] = p[i].value.netFloat; + ((Client::GameClientState::ObjPos*)protocolData)->worldPos[i] = p[i].value.netFloat; } - gameClientState->Protocol(protocol); - delete protocol; - protocol = NULL; + gameClientState->Protocol(protocolData); + delete protocolData; + protocolData = NULL; break; default: break; - } - - + } } }; class DanBiasGamePrivateData @@ -114,6 +112,12 @@ namespace DanBias m_data->r = new MyRecieverObject; m_data->r->nwClient = new Oyster::Network::NetworkClient(); + m_data->r->nwClient->Connect(desc.port, desc.IP); + if (!m_data->r->nwClient->IsConnected()) + { + // failed to connect + return DanBiasClientReturn_Error; + } // Start in lobby state m_data->gameClientState = new Client::LobbyState(); m_data->gameClientState->Init(m_data->r->nwClient); diff --git a/Code/Game/DanBiasGame/Include/DanBiasGame.h b/Code/Game/DanBiasGame/Include/DanBiasGame.h index 206a21e8..f146f343 100644 --- a/Code/Game/DanBiasGame/Include/DanBiasGame.h +++ b/Code/Game/DanBiasGame/Include/DanBiasGame.h @@ -29,6 +29,7 @@ namespace DanBias { //Stuff goes here... int port; + const char* IP; HINSTANCE hinst; int nCmdShow; diff --git a/Code/Game/DanBiasLauncher/Launcher.cpp b/Code/Game/DanBiasLauncher/Launcher.cpp index a970d372..8ae0f29c 100644 --- a/Code/Game/DanBiasLauncher/Launcher.cpp +++ b/Code/Game/DanBiasLauncher/Launcher.cpp @@ -30,6 +30,7 @@ int WINAPI WinMain( HINSTANCE hinst, HINSTANCE prevInst, PSTR cmdLine, int cmdSh // Game client starter code goes here DanBias::DanBiasGameDesc gameDesc; gameDesc.port = 1; + gameDesc.IP = "10.1010.303"; gameDesc.hinst = hinst; gameDesc.nCmdShow = cmdShow;