Merged with Gamelogic branch and fixed errors and added features

This commit is contained in:
dean11 2013-12-14 22:04:42 +01:00
commit f29f50f830
32 changed files with 272 additions and 127 deletions

Binary file not shown.

Binary file not shown.

View File

@ -207,6 +207,7 @@ Global
{B1195BB9-B3A5-47F0-906C-8DEA384D1520}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {B1195BB9-B3A5-47F0-906C-8DEA384D1520}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{B1195BB9-B3A5-47F0-906C-8DEA384D1520}.Debug|Mixed Platforms.Build.0 = Debug|Win32 {B1195BB9-B3A5-47F0-906C-8DEA384D1520}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{B1195BB9-B3A5-47F0-906C-8DEA384D1520}.Debug|Win32.ActiveCfg = Debug|Win32 {B1195BB9-B3A5-47F0-906C-8DEA384D1520}.Debug|Win32.ActiveCfg = Debug|Win32
{B1195BB9-B3A5-47F0-906C-8DEA384D1520}.Debug|Win32.Build.0 = Debug|Win32
{B1195BB9-B3A5-47F0-906C-8DEA384D1520}.Debug|x64.ActiveCfg = Debug|x64 {B1195BB9-B3A5-47F0-906C-8DEA384D1520}.Debug|x64.ActiveCfg = Debug|x64
{B1195BB9-B3A5-47F0-906C-8DEA384D1520}.Debug|x64.Build.0 = Debug|x64 {B1195BB9-B3A5-47F0-906C-8DEA384D1520}.Debug|x64.Build.0 = Debug|x64
{B1195BB9-B3A5-47F0-906C-8DEA384D1520}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {B1195BB9-B3A5-47F0-906C-8DEA384D1520}.Release|Mixed Platforms.ActiveCfg = Release|Win32

View File

@ -72,7 +72,7 @@
<IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir>
<TargetName>$(ProjectName)_$(PlatformShortName)D</TargetName> <TargetName>$(ProjectName)_$(PlatformShortName)D</TargetName>
<LibraryPath>$(SolutionDir)..\External\Lib\Input;$(SolutionDir)..\Bin\DLL;$(LibraryPath)</LibraryPath> <LibraryPath>$(SolutionDir)..\External\Lib\Input;$(SolutionDir)..\Bin\DLL;$(LibraryPath)</LibraryPath>
<IncludePath>$(SolutionDir)Network/NetworkAPI;$(IncludePath)</IncludePath> <IncludePath>$(SolutionDir)..\External\Include\;$(SolutionDir)Game\GameProtocols\;$(SolutionDir)Network/NetworkAPI;$(IncludePath)</IncludePath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental> <LinkIncremental>true</LinkIncremental>
@ -106,13 +106,13 @@
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>DANBIAS_GAME_DLL_EXPORT;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>DANBIAS_GAME_DLL_EXPORT;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>$(SolutionDir)Game/GameProtocols;$(SolutionDir)OysterMath;$(SolutionDir)Input;$(SolutionDir)OysterGraphics;$(SolutionDir)Misc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(SolutionDir)OysterMath;$(SolutionDir)Input;$(SolutionDir)OysterGraphics;$(SolutionDir)Misc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>OysterGraphics_$(PlatformShortName)D.lib;Input_$(PlatformShortName)D.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>OysterGraphics_$(PlatformShortName)D.lib;Input_$(PlatformShortName)D.lib;%(AdditionalDependencies)</AdditionalDependencies>
<DelayLoadDLLs>OysterGraphics_$(PlatformShortName)D.dll;%(DelayLoadDLLs)</DelayLoadDLLs> <DelayLoadDLLs>NetworkAPI_$(PlatformShortName)D.dll;OysterGraphics_$(PlatformShortName)D.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

View File

@ -22,32 +22,49 @@ namespace DanBias
#pragma region Game Data #pragma region Game Data
struct MyRecieverObject // :public PontusRecieverObject struct MyRecieverObject :public Oyster::Network::ProtocolRecieverObject
{ {
Oyster::Network::NetworkClient nwClient; Oyster::Network::NetworkClient* nwClient;
Client::GameClientState* gameClientState;
static void ProtocolRecieved(Network::CustomNetProtocol* p) void ProtocolRecievedCallback(Oyster::Network::CustomNetProtocol& p) override
{ {
int pType = ((*p)[0]).value.netInt;
int pType = p[0].value.netInt;
Client::GameClientState::ProtocolStruct* protocol;
switch (pType) switch (pType)
{ {
case protocol_PlayerNavigation: case protocol_PlayerNavigation:
break; break;
case protocol_PlayerPosition: case protocol_PlayerPosition:
//int x = ((*p)[1]).value.netInt; protocol = new Client::GameClientState::PlayerPos;
//int y = ((*p)[2]).value.netInt; for(int i = 0; i< 3; i++)
//int z = ((*p)[3]).value.netInt; {
((Client::GameClientState::PlayerPos*)protocol)->playerPos[i] = p[i].value.netFloat;
}
gameClientState->Protocol(protocol);
delete protocol;
protocol = NULL;
break; break;
case protocol_ObjectPosition: case protocol_ObjectPosition:
// DanBiasGame::protocolRecived(); 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; break;
default: default:
break; break;
} }
} }
}; };
class DanBiasGamePrivateData class DanBiasGamePrivateData
@ -66,21 +83,14 @@ namespace DanBias
public: public:
Client::GameClientState* gameClientState; Client::GameClientState* gameClientState;
InputClass* inputObj; InputClass* inputObj;
GameLogic::Protocol_PlayerMovement player_move; MyRecieverObject* r;
//Oyster::Network::NetworkClient nwClient;
MyRecieverObject r;
// gameClient;
} data; } data;
#pragma endregion #pragma endregion
DanBiasGamePrivateData* DanBiasGame::m_data = new DanBiasGamePrivateData(); DanBiasGamePrivateData* DanBiasGame::m_data = new DanBiasGamePrivateData();
void DanBiasGame::protocolRecived()
{
//m_data->gameClientState.setPos()
}
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
// Interface API functions // Interface API functions
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
@ -106,6 +116,9 @@ namespace DanBias
// Start in lobby state // Start in lobby state
m_data->gameClientState = new Client::LobbyState(); m_data->gameClientState = new Client::LobbyState();
m_data->gameClientState->Init(); m_data->gameClientState->Init();
m_data->r = new MyRecieverObject;
m_data->r->nwClient = new Oyster::Network::NetworkClient();
return DanBiasClientReturn_Sucess; return DanBiasClientReturn_Sucess;
} }

View File

@ -12,6 +12,26 @@ namespace Client
class GameClientState class GameClientState
{ {
public: public:
struct ProtocolStruct
{
};
struct ObjPos :public ProtocolStruct
{
float worldPos[16];
};
struct PlayerPos :public ProtocolStruct
{
float playerPos[3];
};
struct PlayerMove :public ProtocolStruct
{
float playerPos[3];
};
struct PlayerName :public ProtocolStruct
{
char name[255];
};
enum ClientState enum ClientState
{ {
ClientState_Lobby, ClientState_Lobby,
@ -26,6 +46,8 @@ public:
virtual ClientState Update(float deltaTime, InputClass* KeyInput) = 0; virtual ClientState Update(float deltaTime, InputClass* KeyInput) = 0;
virtual bool Render() = 0; virtual bool Render() = 0;
virtual bool Release() = 0; virtual bool Release() = 0;
virtual void Protocol(ProtocolStruct* protocolStruct) = 0;
}; };
}; };
}; };

View File

@ -2,6 +2,8 @@
#include "DllInterfaces/GFXAPI.h" #include "DllInterfaces/GFXAPI.h"
#include "Obj/C_Player.h" #include "Obj/C_Player.h"
#include "Obj/C_DynamicObj.h" #include "Obj/C_DynamicObj.h"
#include "NetworkClient.h"
#include "PlayerProtocols.h"
using namespace DanBias::Client; using namespace DanBias::Client;
@ -12,8 +14,9 @@ struct GameState::myData
Oyster::Math3D::Float4x4 proj; Oyster::Math3D::Float4x4 proj;
C_Object* object[3]; C_Object* object[3];
int modelCount; int modelCount;
//Oyster::Network::NetworkClient* nwClient; Oyster::Network::NetworkClient* nwClient;
gameStateState state; gameStateState state;
}privData; }privData;
GameState::GameState(void) GameState::GameState(void)
@ -88,9 +91,14 @@ GameClientState::ClientState GameState::Update(float deltaTime, InputClass* KeyI
// read server data // read server data
// update objects // update objects
// Client.send(obj); // Client.send(obj);
{
GameLogic::Protocol_PlayerMovement movePlayer;
//privData->nwClient->Send(movePlayer);
if(KeyInput->IsKeyPressed(DIK_L)) if(KeyInput->IsKeyPressed(DIK_L))
privData->state = GameState::gameStateState_end; privData->state = GameState::gameStateState_end;
}
break; break;
case gameStateState_end: case gameStateState_end:
return ClientState_Lobby; return ClientState_Lobby;
@ -127,3 +135,20 @@ bool GameState::Release()
privData = NULL; privData = NULL;
return true; return true;
} }
void GameState::Protocol(ProtocolStruct* pos)
{
if((ObjPos*)pos)
ObjectPosProtocol((ObjPos*)pos);
else if((PlayerPos*)pos)
PlayerPosProtocol((PlayerPos*)pos);
}
void GameState::PlayerPosProtocol(PlayerPos* pos)
{
}
void GameState::ObjectPosProtocol(ObjPos* pos)
{
}
//void GameState::Protocol(LightPos pos);

View File

@ -23,13 +23,18 @@ public:
GameState(void); GameState(void);
~GameState(void); ~GameState(void);
bool Init(); bool Init();
GameClientState::ClientState Update(float deltaTime, InputClass* KeyInput); GameClientState::ClientState Update(float deltaTime, InputClass* KeyInput) override;
bool LoadModels(std::wstring mapFile) ; bool LoadModels(std::wstring mapFile) ;
bool InitCamera(Oyster::Math::Float3 startPos) ; bool InitCamera(Oyster::Math::Float3 startPos) ;
gameStateState LoadGame(); gameStateState LoadGame();
bool Render(); bool Render()override;
bool Release(); bool Release()override;
void Protocol(ProtocolStruct* pos)override;
void PlayerPosProtocol(PlayerPos* pos);
void ObjectPosProtocol(ObjPos* pos);
//void Protocol(LightPos pos);
}; };
}; };
}; };

View File

@ -119,3 +119,13 @@ bool LobbyState::Release()
privData = NULL; privData = NULL;
return true; return true;
} }
void LobbyState::Protocol(ProtocolStruct* protocol)
{
if((PlayerName*)protocol)
PlayerJoinProtocol((PlayerName*)protocol);
}
void LobbyState::PlayerJoinProtocol(PlayerName* name)
{
}

View File

@ -32,5 +32,8 @@ public:
bool Render(); bool Render();
bool Release(); bool Release();
void Protocol(ProtocolStruct* protocol)override;
void PlayerJoinProtocol(PlayerName* name);
};};}; };};};
#endif // ! DANBIAS_CLIENT_GAMECLIENTSTATE_H #endif // ! DANBIAS_CLIENT_GAMECLIENTSTATE_H

View File

@ -1,6 +1,8 @@
#ifndef DANBIASGAME_DANBIASGAME_H #ifndef DANBIASGAME_DANBIASGAME_H
#define DANBIASGAME_DANBIASGAME_H #define DANBIASGAME_DANBIASGAME_H
#define DANBIAS_CLIENT_L
#if defined (DANBIAS_GAME_DLL_EXPORT) #if defined (DANBIAS_GAME_DLL_EXPORT)
#define DANBIAS_GAME_DLL __declspec(dllexport) #define DANBIAS_GAME_DLL __declspec(dllexport)
#else #else
@ -10,7 +12,7 @@
#define NOMINMAX #define NOMINMAX
#include <Windows.h> #include <Windows.h>
#define DANBIAS_CLIENT
namespace DanBias namespace DanBias
{ {
@ -53,7 +55,6 @@ namespace DanBias
static HRESULT Render(float deltaTime); static HRESULT Render(float deltaTime);
static HRESULT CleanUp(); static HRESULT CleanUp();
static void protocolRecived();
private: private:
static __int64 cntsPerSec; static __int64 cntsPerSec;
static __int64 prevTimeStamp; static __int64 prevTimeStamp;

View File

@ -110,7 +110,7 @@
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<DelayLoadDLLs>DanBiasServer_$(PlatformShortName)D.dll;DanBiasGame_$(PlatformShortName)D.dll;%(DelayLoadDLLs)</DelayLoadDLLs> <DelayLoadDLLs>DanBiasGame_$(PlatformShortName)D.dll;DanBiasServer_$(PlatformShortName)D.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
<AdditionalDependencies>DanBiasGame_$(PlatformShortName)D.lib;DanBiasServer_$(PlatformShortName)D.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>DanBiasGame_$(PlatformShortName)D.lib;DanBiasServer_$(PlatformShortName)D.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>

View File

@ -4,6 +4,8 @@
#define NOMINMAX #define NOMINMAX
#include <Windows.h> #include <Windows.h>
#include <vld.h> #include <vld.h>
#include "DanBiasServerAPI.h" #include "DanBiasServerAPI.h"
//#include "DanBiasGame.h" //#include "DanBiasGame.h"
@ -20,7 +22,7 @@ int WINAPI WinMain( HINSTANCE hinst, HINSTANCE prevInst, PSTR cmdLine, int cmdSh
DanBias::DanBiasServerAPI::Run(); DanBias::DanBiasServerAPI::Run();
DanBias::DanBiasServerAPI::Release(); DanBias::DanBiasServerAPI::Release();
} }
#elif defined(DANBIAS_CLIENT) #elif defined(DANBIAS_CLIENT_L)
if(SetDllDirectory(L"..\\DLL") == FALSE) if(SetDllDirectory(L"..\\DLL") == FALSE)
{ {
return cmdShow; return cmdShow;

View File

@ -1,4 +1,4 @@
#define NOMINMAX
#include <windows.h> #include <windows.h>
BOOL WINAPI DllMain( _In_ HINSTANCE hinstDLL, _In_ DWORD fdwReason, _In_ LPVOID lpvReserved ) BOOL WINAPI DllMain( _In_ HINSTANCE hinstDLL, _In_ DWORD fdwReason, _In_ LPVOID lpvReserved )

View File

@ -73,7 +73,7 @@
<OutDir>$(SolutionDir)..\Bin\DLL\</OutDir> <OutDir>$(SolutionDir)..\Bin\DLL\</OutDir>
<IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir>
<TargetName>$(ProjectName)_$(PlatformShortName)D</TargetName> <TargetName>$(ProjectName)_$(PlatformShortName)D</TargetName>
<IncludePath>$(SolutionDir)..\External\Include\;$(SolutionDir)Game\GameProtocols\;$(SolutionDir)Network\NetworkAPI\;$(SolutionDir)Misc\;$(SolutionDir)WindowManager\;C:\Program Files %28x86%29\Visual Leak Detector\include;$(IncludePath)</IncludePath> <IncludePath>$(SolutionDir)..\External\Include\;$(SolutionDir)Game\GameProtocols\;$(SolutionDir)Game\GameLogic\;$(SolutionDir)Network\NetworkAPI\;$(SolutionDir)OysterMath\;$(SolutionDir)GamePhysics\;$(SolutionDir)Misc\;$(SolutionDir)WindowManager\;C:\Program Files %28x86%29\Visual Leak Detector\include;$(SolutionDir)OysterPhysics3D\;$(IncludePath)</IncludePath>
<LibraryPath>$(OutDir);$(SolutionDir)..\External\Lib\WindowManager\;C:\Program Files %28x86%29\Visual Leak Detector\lib\Win32;$(LibraryPath)</LibraryPath> <LibraryPath>$(OutDir);$(SolutionDir)..\External\Lib\WindowManager\;C:\Program Files %28x86%29\Visual Leak Detector\lib\Win32;$(LibraryPath)</LibraryPath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@ -81,7 +81,7 @@
<OutDir>$(SolutionDir)..\Bin\DLL\</OutDir> <OutDir>$(SolutionDir)..\Bin\DLL\</OutDir>
<IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir>
<TargetName>$(ProjectName)_$(PlatformShortName)D</TargetName> <TargetName>$(ProjectName)_$(PlatformShortName)D</TargetName>
<IncludePath>$(SolutionDir)..\External\Include\;$(SolutionDir)Game\GameProtocols\;$(SolutionDir)Network\NetworkAPI\;$(SolutionDir)Misc\;$(SolutionDir)WindowManager\;C:\Program Files %28x86%29\Visual Leak Detector\include;$(IncludePath)</IncludePath> <IncludePath>$(SolutionDir)..\External\Include\;$(SolutionDir)Game\GameProtocols\;$(SolutionDir)Game\GameLogic\;$(SolutionDir)Network\NetworkAPI\;$(SolutionDir)OysterMath\;$(SolutionDir)GamePhysics\;$(SolutionDir)Misc\;$(SolutionDir)WindowManager\;C:\Program Files %28x86%29\Visual Leak Detector\include;$(SolutionDir)OysterPhysics3D\;$(IncludePath)</IncludePath>
<LibraryPath>$(OutDir);$(SolutionDir)..\External\Lib\WindowManager\;C:\Program Files %28x86%29\Visual Leak Detector\lib\Win32;$(LibraryPath)</LibraryPath> <LibraryPath>$(OutDir);$(SolutionDir)..\External\Lib\WindowManager\;C:\Program Files %28x86%29\Visual Leak Detector\lib\Win32;$(LibraryPath)</LibraryPath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@ -89,7 +89,7 @@
<OutDir>$(SolutionDir)..\Bin\DLL\</OutDir> <OutDir>$(SolutionDir)..\Bin\DLL\</OutDir>
<IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir>
<TargetName>$(ProjectName)_$(PlatformShortName)</TargetName> <TargetName>$(ProjectName)_$(PlatformShortName)</TargetName>
<IncludePath>$(SolutionDir)..\External\Include\;$(SolutionDir)Game\GameProtocols\;$(SolutionDir)Network\NetworkAPI\;$(SolutionDir)Misc\;$(SolutionDir)WindowManager\;C:\Program Files %28x86%29\Visual Leak Detector\include;$(IncludePath)</IncludePath> <IncludePath>$(SolutionDir)..\External\Include\;$(SolutionDir)Game\GameProtocols\;$(SolutionDir)Game\GameLogic\;$(SolutionDir)Network\NetworkAPI\;$(SolutionDir)OysterMath\;$(SolutionDir)GamePhysics\;$(SolutionDir)Misc\;$(SolutionDir)WindowManager\;C:\Program Files %28x86%29\Visual Leak Detector\include;$(SolutionDir)OysterPhysics3D\;$(IncludePath)</IncludePath>
<LibraryPath>$(OutDir);$(SolutionDir)..\External\Lib\WindowManager\;C:\Program Files %28x86%29\Visual Leak Detector\lib\Win32;$(LibraryPath)</LibraryPath> <LibraryPath>$(OutDir);$(SolutionDir)..\External\Lib\WindowManager\;C:\Program Files %28x86%29\Visual Leak Detector\lib\Win32;$(LibraryPath)</LibraryPath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@ -97,7 +97,7 @@
<OutDir>$(SolutionDir)..\Bin\DLL\</OutDir> <OutDir>$(SolutionDir)..\Bin\DLL\</OutDir>
<IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir>
<TargetName>$(ProjectName)_$(PlatformShortName)</TargetName> <TargetName>$(ProjectName)_$(PlatformShortName)</TargetName>
<IncludePath>$(SolutionDir)..\External\Include\;$(SolutionDir)Game\GameProtocols\;$(SolutionDir)Network\NetworkAPI\;$(SolutionDir)Misc\;$(SolutionDir)WindowManager\;C:\Program Files %28x86%29\Visual Leak Detector\include;$(IncludePath)</IncludePath> <IncludePath>$(SolutionDir)..\External\Include\;$(SolutionDir)Game\GameProtocols\;$(SolutionDir)Game\GameLogic\;$(SolutionDir)Network\NetworkAPI\;$(SolutionDir)OysterMath\;$(SolutionDir)GamePhysics\;$(SolutionDir)Misc\;$(SolutionDir)WindowManager\;C:\Program Files %28x86%29\Visual Leak Detector\include;$(SolutionDir)OysterPhysics3D\;$(IncludePath)</IncludePath>
<LibraryPath>$(OutDir);$(SolutionDir)..\External\Lib\WindowManager\;C:\Program Files %28x86%29\Visual Leak Detector\lib\Win32;$(LibraryPath)</LibraryPath> <LibraryPath>$(OutDir);$(SolutionDir)..\External\Lib\WindowManager\;C:\Program Files %28x86%29\Visual Leak Detector\lib\Win32;$(LibraryPath)</LibraryPath>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
@ -114,7 +114,7 @@
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<DelayLoadDLLs>GameLogic_$(PlatformShortName)D.dll;%(DelayLoadDLLs);NetworkAPI_$(PlatformShortName)D.dll</DelayLoadDLLs> <DelayLoadDLLs>GameLogic_$(PlatformShortName)D.dll;%(DelayLoadDLLs);NetworkAPI_$(PlatformShortName)D.dll</DelayLoadDLLs>
<AdditionalDependencies>NetworkAPI_$(PlatformShortName)D.lib;WindowManager_$(PlatformShortName)D.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>NetworkAPI_$(PlatformShortName)D.lib;WindowManager_$(PlatformShortName)D.lib;GameLogic_$(PlatformShortName)D.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@ -131,7 +131,7 @@
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<DelayLoadDLLs>GameLogic_$(PlatformShortName)D.dll;%(DelayLoadDLLs);NetworkAPI_$(PlatformShortName)D.dll</DelayLoadDLLs> <DelayLoadDLLs>GameLogic_$(PlatformShortName)D.dll;%(DelayLoadDLLs);NetworkAPI_$(PlatformShortName)D.dll</DelayLoadDLLs>
<AdditionalDependencies>NetworkAPI_$(PlatformShortName)D.lib;WindowManager_$(PlatformShortName)D.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>NetworkAPI_$(PlatformShortName)D.lib;WindowManager_$(PlatformShortName)D.lib;GameLogic_$(PlatformShortName)D.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@ -152,7 +152,7 @@
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<DelayLoadDLLs>GameLogic_$(PlatformShortName).dll;%(DelayLoadDLLs);NetworkAPI_$(PlatformShortName).dll</DelayLoadDLLs> <DelayLoadDLLs>GameLogic_$(PlatformShortName).dll;%(DelayLoadDLLs);NetworkAPI_$(PlatformShortName).dll</DelayLoadDLLs>
<AdditionalDependencies>NetworkAPI_$(PlatformShortName).lib;WindowManager_$(PlatformShortName).lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>NetworkAPI_$(PlatformShortName).lib;WindowManager_$(PlatformShortName).lib;GameLogic_$(PlatformShortName).lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@ -173,7 +173,7 @@
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<DelayLoadDLLs>GameLogic_$(PlatformShortName).dll;%(DelayLoadDLLs);NetworkAPI_$(PlatformShortName).dll</DelayLoadDLLs> <DelayLoadDLLs>GameLogic_$(PlatformShortName).dll;%(DelayLoadDLLs);NetworkAPI_$(PlatformShortName).dll</DelayLoadDLLs>
<AdditionalDependencies>NetworkAPI_$(PlatformShortName).lib;WindowManager_$(PlatformShortName).lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>NetworkAPI_$(PlatformShortName).lib;WindowManager_$(PlatformShortName).lib;GameLogic_$(PlatformShortName).lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
@ -197,9 +197,15 @@
<ClInclude Include="ServerObjects\NetworkSession.h" /> <ClInclude Include="ServerObjects\NetworkSession.h" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\GamePhysics\GamePhysics.vcxproj">
<Project>{104fa3e9-94d9-4e1d-a941-28a03bc8a095}</Project>
</ProjectReference>
<ProjectReference Include="..\..\Misc\Misc.vcxproj"> <ProjectReference Include="..\..\Misc\Misc.vcxproj">
<Project>{2ec4dded-8f75-4c86-a10b-e1e8eb29f3ee}</Project> <Project>{2ec4dded-8f75-4c86-a10b-e1e8eb29f3ee}</Project>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\..\OysterMath\OysterMath.vcxproj">
<Project>{f10cbc03-9809-4cba-95d8-327c287b18ee}</Project>
</ProjectReference>
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">

View File

@ -1,6 +1,7 @@
///////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////
// Created by [Dennis Andersen] [2013] // Created by [Dennis Andersen] [2013]
///////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////
#define NOMINMAX
#include <Windows.h> #include <Windows.h>
#include <WindowShell.h> #include <WindowShell.h>
#include <iostream> #include <iostream>

View File

@ -17,6 +17,15 @@ void ClientObject::SetPostbox(Oyster::PostBox<NetworkSession::ClientEvent>* box)
{ {
this->box = box; this->box = box;
} }
GameLogic::Player* ClientObject::Logic_Object()
{
return &this->logicPlayer;
}
Oyster::Network::NetworkClient* ClientObject::NetClient_Object()
{
return &this->client;
}
void ClientObject::ProtocolRecievedCallback(Oyster::Network::CustomNetProtocol& protocol) void ClientObject::ProtocolRecievedCallback(Oyster::Network::CustomNetProtocol& protocol)
{ {
if(!this->box) return; if(!this->box) return;

View File

@ -5,6 +5,7 @@
#include "NetworkSession.h" #include "NetworkSession.h"
#include "NetworkClient.h" #include "NetworkClient.h"
#include <PostBox\PostBox.h> #include <PostBox\PostBox.h>
#include <Player.h>
namespace DanBias namespace DanBias
{ {
@ -16,10 +17,14 @@ namespace DanBias
void SetPostbox(Oyster::PostBox<NetworkSession::ClientEvent>* box); void SetPostbox(Oyster::PostBox<NetworkSession::ClientEvent>* box);
GameLogic::Player* Logic_Object();
Oyster::Network::NetworkClient* NetClient_Object();
private: private:
void ProtocolRecievedCallback(Oyster::Network::CustomNetProtocol& protocol) override; void ProtocolRecievedCallback(Oyster::Network::CustomNetProtocol& protocol) override;
private: private:
GameLogic::Player logicPlayer;
Oyster::Network::NetworkClient client; Oyster::Network::NetworkClient client;
Oyster::IPostBox<DanBias::NetworkSession::ClientEvent>* box; Oyster::IPostBox<DanBias::NetworkSession::ClientEvent>* box;
}; };

View File

@ -25,22 +25,25 @@ namespace DanBias
} }
} }
this->clients.push_back(client); this->clients.push_back(client);
}
void NetworkSession::DetachClient(Utility::DynamicMemory::SmartPointer<ClientObject> client)
{
} }
void NetworkSession::DetachClient(short ID) void NetworkSession::DetachClient(short ID)
{ {
//this->clients[0]->NetClient_Object()->
} }
void NetworkSession::DetachClient()
void NetworkSession::Kick(Utility::DynamicMemory::SmartPointer<ClientObject> client)
{ {
for (unsigned int i = 0; i < this->clients.size(); i++)
{
this->clients[i] = 0;
} }
}
void NetworkSession::Kick() void NetworkSession::Kick()
{ {
for (unsigned int i = 0; i < this->clients.size(); i++)
{
this->clients[i]->NetClient_Object()->Disconnect();
this->clients[i] = 0;
}
} }
}//End namespace DanBias }//End namespace DanBias

View File

@ -1,6 +1,7 @@
#ifndef DANBIASSERVER_NETWORK_SESSION_H #ifndef DANBIASSERVER_NETWORK_SESSION_H
#define DANBIASSERVER_NETWORK_SESSION_H #define DANBIASSERVER_NETWORK_SESSION_H
#define NOMINMAX
#include "Utilities.h" #include "Utilities.h"
#include <PostBox\PostBox.h> #include <PostBox\PostBox.h>
#include <PlayerProtocols.h> #include <PlayerProtocols.h>
@ -26,10 +27,9 @@ namespace DanBias
void AttachClient(Utility::DynamicMemory::SmartPointer<ClientObject> client); void AttachClient(Utility::DynamicMemory::SmartPointer<ClientObject> client);
void DetachClient(Utility::DynamicMemory::SmartPointer<ClientObject> client);
void DetachClient(short ID); void DetachClient(short ID);
void DetachClient();
void Kick(Utility::DynamicMemory::SmartPointer<ClientObject> client);
void Kick(); void Kick();
void Send(Oyster::Network::CustomNetProtocol& protocol); void Send(Oyster::Network::CustomNetProtocol& protocol);

View File

@ -1,3 +1,6 @@
//////////////////////////////////////////////////
//Created by Erik of the GameLogic team
//////////////////////////////////////////////////
#ifndef ATTATCHMENTMASSDRIVER_H #ifndef ATTATCHMENTMASSDRIVER_H
#define ATTATCHMENTMASSDRIVER_H #define ATTATCHMENTMASSDRIVER_H
#include "IAttatchment.h" #include "IAttatchment.h"

View File

@ -1,3 +1,7 @@
//////////////////////////////////////////////////
//Created by Erik of the GameLogic team
//////////////////////////////////////////////////
#ifndef ATTATCHMENTSOCKET_H #ifndef ATTATCHMENTSOCKET_H
#define ATTATCHMENTSOCKET_H #define ATTATCHMENTSOCKET_H
#include "IAttatchment.h" #include "IAttatchment.h"

View File

@ -69,39 +69,39 @@
<OutDir>$(SolutionDir)..\Bin\DLL\</OutDir> <OutDir>$(SolutionDir)..\Bin\DLL\</OutDir>
<IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir>
<TargetName>$(ProjectName)_$(PlatformShortName)D</TargetName> <TargetName>$(ProjectName)_$(PlatformShortName)D</TargetName>
<LibraryPath>$(SolutionDir)..\External\Lib\Input;$(SolutionDir)..\Bin\DLL;$(LibraryPath)</LibraryPath> <LibraryPath>$(SolutionDir)..\Bin\DLL;$(LibraryPath)</LibraryPath>
<TargetExt>.dll</TargetExt> <TargetExt>.dll</TargetExt>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(SolutionDir)..\Bin\DLL\</OutDir> <OutDir>$(SolutionDir)..\Bin\DLL\</OutDir>
<IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir>
<TargetName>$(ProjectName)_$(PlatformShortName)</TargetName> <TargetName>$(ProjectName)_$(PlatformShortName)</TargetName>
<LibraryPath>$(SolutionDir)..\External\Lib\Input;$(SolutionDir)..\Bin\DLL;$(LibraryPath)</LibraryPath> <LibraryPath>$(SolutionDir)..\Bin\DLL;$(LibraryPath)</LibraryPath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(SolutionDir)..\Bin\DLL\</OutDir> <OutDir>$(SolutionDir)..\Bin\DLL\</OutDir>
<IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir>
<TargetName>$(ProjectName)_$(PlatformShortName)D</TargetName> <TargetName>$(ProjectName)_$(PlatformShortName)D</TargetName>
<LibraryPath>$(SolutionDir)..\External\Lib\Input;$(SolutionDir)..\Bin\DLL;$(LibraryPath)</LibraryPath> <LibraryPath>$(SolutionDir)..\Bin\DLL;$(LibraryPath)</LibraryPath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(SolutionDir)..\Bin\DLL\</OutDir> <OutDir>$(SolutionDir)..\Bin\DLL\</OutDir>
<IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir>
<TargetName>$(ProjectName)_$(PlatformShortName)</TargetName> <TargetName>$(ProjectName)_$(PlatformShortName)</TargetName>
<LibraryPath>$(SolutionDir)..\External\Lib\Input;$(SolutionDir)..\Bin\DLL;$(LibraryPath)</LibraryPath> <LibraryPath>$(SolutionDir)..\Bin\DLL;$(LibraryPath)</LibraryPath>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile> <ClCompile>
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>$(SolutionDir)Input;$(SolutionDir)OysterGraphics;$(SolutionDir)Misc;$(SolutionDir)OysterMath;$(SolutionDir)OysterPhysics3D;$(SolutionDir)GamePhysics;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(SolutionDir)Misc;$(SolutionDir)OysterMath;$(SolutionDir)OysterPhysics3D;$(SolutionDir)GamePhysics;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>GAME_DLL_EXPORT;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>DANBIAS_GAMELOGIC_DLL_EXPORT;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile> </ClCompile>
<Link> <Link>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>OysterGraphics_$(PlatformShortName)D.lib;Input_$(PlatformShortName)D.lib;GamePhysics_$(PlatformShortName)D.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>GamePhysics_$(PlatformShortName)D.lib;%(AdditionalDependencies)</AdditionalDependencies>
<DelayLoadDLLs>GamePhysics_$(PlatformShortName)D.dll</DelayLoadDLLs> <DelayLoadDLLs>GamePhysics_$(PlatformShortName)D.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@ -109,12 +109,13 @@
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>$(SolutionDir)Input;$(SolutionDir)OysterGraphics;$(SolutionDir)Misc;$(SolutionDir)OysterMath;$(SolutionDir)OysterPhysics3D;$(SolutionDir)GamePhysics;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(SolutionDir)Misc;$(SolutionDir)OysterMath;$(SolutionDir)OysterPhysics3D;$(SolutionDir)GamePhysics;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>GAME_DLL_EXPORT;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>DANBIAS_GAMELOGIC_DLL_EXPORT;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile> </ClCompile>
<Link> <Link>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>OysterGraphics_$(PlatformShortName)D.lib;Input_$(PlatformShortName)D.lib;GamePhysics_$(PlatformShortName)D.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>GamePhysics_$(PlatformShortName)D.lib;%(AdditionalDependencies)</AdditionalDependencies>
<DelayLoadDLLs>GamePhysics_$(PlatformShortName)D.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@ -124,14 +125,15 @@
<FunctionLevelLinking>true</FunctionLevelLinking> <FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>$(SolutionDir)Input;$(SolutionDir)OysterGraphics;$(SolutionDir)Misc;$(SolutionDir)OysterMath;$(SolutionDir)OysterPhysics3D;$(SolutionDir)GamePhysics;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(SolutionDir)Misc;$(SolutionDir)OysterMath;$(SolutionDir)OysterPhysics3D;$(SolutionDir)GamePhysics;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>GAME_DLL_EXPORT;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>DANBIAS_GAMELOGIC_DLL_EXPORT;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile> </ClCompile>
<Link> <Link>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>OysterGraphics_$(PlatformShortName).lib;Input_$(PlatformShortName).lib;GamePhysics_$(PlatformShortName).lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>GamePhysics_$(PlatformShortName).lib;%(AdditionalDependencies)</AdditionalDependencies>
<DelayLoadDLLs>GamePhysics_$(PlatformShortName).dll;%(DelayLoadDLLs)</DelayLoadDLLs>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@ -141,14 +143,15 @@
<FunctionLevelLinking>true</FunctionLevelLinking> <FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>$(SolutionDir)Input;$(SolutionDir)OysterGraphics;$(SolutionDir)Misc;$(SolutionDir)OysterMath;$(SolutionDir)OysterPhysics3D;$(SolutionDir)GamePhysics;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(SolutionDir)Misc;$(SolutionDir)OysterMath;$(SolutionDir)OysterPhysics3D;$(SolutionDir)GamePhysics;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>GAME_DLL_EXPORT;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>DANBIAS_GAMELOGIC_DLL_EXPORT;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile> </ClCompile>
<Link> <Link>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>OysterGraphics_$(PlatformShortName).lib;Input_$(PlatformShortName).lib;GamePhysics_$(PlatformShortName).lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>GamePhysics_$(PlatformShortName).lib;%(AdditionalDependencies)</AdditionalDependencies>
<DelayLoadDLLs>GamePhysics_$(PlatformShortName).dll;%(DelayLoadDLLs)</DelayLoadDLLs>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
@ -168,9 +171,9 @@
<ItemGroup> <ItemGroup>
<ClInclude Include="AttatchmentMassDriver.h" /> <ClInclude Include="AttatchmentMassDriver.h" />
<ClInclude Include="AttatchmentSocket.h" /> <ClInclude Include="AttatchmentSocket.h" />
<ClInclude Include="Camera.h" />
<ClInclude Include="CollisionManager.h" /> <ClInclude Include="CollisionManager.h" />
<ClInclude Include="DynamicObject.h" /> <ClInclude Include="DynamicObject.h" />
<ClInclude Include="GameLogicDef.h" />
<ClInclude Include="GameMode.h" /> <ClInclude Include="GameMode.h" />
<ClInclude Include="IAttatchment.h" /> <ClInclude Include="IAttatchment.h" />
<ClInclude Include="Level.h" /> <ClInclude Include="Level.h" />
@ -182,7 +185,6 @@
<ItemGroup> <ItemGroup>
<ClCompile Include="AttatchmentMassDriver.cpp" /> <ClCompile Include="AttatchmentMassDriver.cpp" />
<ClCompile Include="AttatchmentSocket.cpp" /> <ClCompile Include="AttatchmentSocket.cpp" />
<ClCompile Include="Camera.cpp" />
<ClCompile Include="CollisionManager.cpp" /> <ClCompile Include="CollisionManager.cpp" />
<ClCompile Include="DynamicObject.cpp" /> <ClCompile Include="DynamicObject.cpp" />
<ClCompile Include="GameMode.cpp" /> <ClCompile Include="GameMode.cpp" />

View File

@ -0,0 +1,14 @@
#ifndef GAMELOGIC_GAMELOGICDEF_H
#define GAMELOGIC_GAMELOGICDEF_H
#ifndef DANBIAS_GAMELOGIC
#define DANBIAS_GAMELOGIC
#endif
#ifdef DANBIAS_GAMELOGIC_DLL_EXPORT
#define DANBIAS_GAMELOGIC_DLL __declspec(dllexport)
#else
#define DANBIAS_GAMELOGIC_DLL __declspec(dllimport)
#endif
#endif // !GAMELOGIC_GAMELOGICDEF_H

View File

@ -1,3 +1,7 @@
//////////////////////////////////////////////////
//Created by Erik of the GameLogic team
//////////////////////////////////////////////////
#ifndef IATTATCHMENT_H #ifndef IATTATCHMENT_H
#define IATTATCHMENT_H #define IATTATCHMENT_H
#include "GameLogicStates.h" #include "GameLogicStates.h"

View File

@ -2,6 +2,7 @@
#include "StaticObject.h" #include "StaticObject.h"
#include "DynamicObject.h" #include "DynamicObject.h"
#include "GameMode.h" #include "GameMode.h"
#include "Player.h"
using namespace GameLogic; using namespace GameLogic;
@ -15,6 +16,8 @@ struct Level::PrivateData
{ {
} }
Player *players;
int nrOfPlayers;
StaticObject** staticObjects; StaticObject** staticObjects;
int nrOfStaticObjects; int nrOfStaticObjects;
@ -37,4 +40,9 @@ Level::~Level(void)
delete myData; delete myData;
} }
void Level::InitiateLevel(std::string levelPath)
{
}

View File

@ -3,6 +3,7 @@
////////////////////////////////////////////////// //////////////////////////////////////////////////
#ifndef LEVEL_H #ifndef LEVEL_H
#define LEVEL_H #define LEVEL_H
#include <string>
namespace GameLogic namespace GameLogic
{ {
@ -14,7 +15,7 @@ namespace GameLogic
Level(void); Level(void);
~Level(void); ~Level(void);
void CreateBox(); void InitiateLevel(std::string levelPath);
private: private:
struct PrivateData; struct PrivateData;

View File

@ -8,11 +8,12 @@
#include "PhysicsAPI.h" #include "PhysicsAPI.h"
#include "GameLogicStates.h" #include "GameLogicStates.h"
#include "GameLogicDef.h"
namespace GameLogic namespace GameLogic
{ {
class Object class DANBIAS_GAMELOGIC_DLL Object
{ {
public: public:
Object(); Object();

View File

@ -6,10 +6,11 @@
#include "GameLogicStates.h" #include "GameLogicStates.h"
#include "OysterMath.h" #include "OysterMath.h"
#include "Object.h" #include "Object.h"
#include "GameLogicDef.h"
namespace GameLogic namespace GameLogic
{ {
class Player : public Object class DANBIAS_GAMELOGIC_DLL Player : public Object
{ {
public: public:

View File

@ -9,9 +9,10 @@ struct Weapon::PrivateData
PrivateData() PrivateData()
{ {
weaponState = WEAPON_STATE_IDLE; weaponState = WEAPON_STATE_IDLE;
SelectedAttatchment = 0; selectedAttatchment = 0;
currentNrOfAttatchments = 0; currentNrOfAttatchments = 0;
selectedSocketID = 0; selectedSocketID = 0;
maxNrOfSockets = 0;
} }
~PrivateData() ~PrivateData()
@ -21,10 +22,10 @@ struct Weapon::PrivateData
WEAPON_STATE weaponState; WEAPON_STATE weaponState;
AttatchmentSocket **attatchmentSockets; AttatchmentSocket **attatchmentSockets;
int MaxNrOfSockets; int maxNrOfSockets;
int currentNrOfAttatchments; int currentNrOfAttatchments;
IAttatchment *SelectedAttatchment; IAttatchment *selectedAttatchment;
int selectedSocketID; int selectedSocketID;
}myData; }myData;
@ -37,7 +38,7 @@ Weapon::Weapon()
Weapon::Weapon(int MaxNrOfSockets) Weapon::Weapon(int MaxNrOfSockets)
{ {
myData = new PrivateData(); myData = new PrivateData();
myData->MaxNrOfSockets = MaxNrOfSockets; myData->maxNrOfSockets = MaxNrOfSockets;
myData->attatchmentSockets = new AttatchmentSocket*[MaxNrOfSockets]; myData->attatchmentSockets = new AttatchmentSocket*[MaxNrOfSockets];
for (int i = 0; i < MaxNrOfSockets; i++) for (int i = 0; i < MaxNrOfSockets; i++)
{ {
@ -56,7 +57,7 @@ Weapon::~Weapon(void)
********************************************************/ ********************************************************/
void Weapon::Use(const WEAPON_FIRE &fireInput) void Weapon::Use(const WEAPON_FIRE &fireInput)
{ {
myData->SelectedAttatchment->UseAttatchment(fireInput); myData->selectedAttatchment->UseAttatchment(fireInput);
} }
/******************************************************** /********************************************************
@ -83,7 +84,7 @@ bool Weapon::IsReloading()
bool Weapon::IsValidSocket(int socketID) bool Weapon::IsValidSocket(int socketID)
{ {
if(socketID < myData->MaxNrOfSockets && socketID >= 0) if(socketID < myData->maxNrOfSockets && socketID >= 0)
{ {
if (myData->attatchmentSockets[socketID]->GetAttatchment() != 0) if (myData->attatchmentSockets[socketID]->GetAttatchment() != 0)
{ {
@ -100,16 +101,16 @@ int Weapon::GetCurrentSocketID()
} }
void Weapon::AddNewAttatchment(IAttatchment *attatchment) void Weapon::AddNewAttatchment(IAttatchment *attatchment, Player *owner)
{ {
if(myData->currentNrOfAttatchments < myData->MaxNrOfSockets) if(myData->currentNrOfAttatchments < myData->maxNrOfSockets)
{ {
myData->attatchmentSockets[myData->currentNrOfAttatchments]->SetAttatchment(attatchment); myData->attatchmentSockets[myData->currentNrOfAttatchments]->SetAttatchment(attatchment);
myData->currentNrOfAttatchments++; myData->currentNrOfAttatchments++;
} }
} }
void Weapon::SwitchAttatchment(IAttatchment *attatchment, int socketID) void Weapon::SwitchAttatchment(IAttatchment *attatchment, int socketID, Player *owner)
{ {
if (IsValidSocket(socketID)) if (IsValidSocket(socketID))
{ {
@ -129,7 +130,7 @@ void Weapon::SelectAttatchment(int socketID)
{ {
if (IsValidSocket(socketID)) if (IsValidSocket(socketID))
{ {
myData->SelectedAttatchment = myData->attatchmentSockets[socketID]->GetAttatchment(); myData->selectedAttatchment = myData->attatchmentSockets[socketID]->GetAttatchment();
myData->selectedSocketID = socketID; myData->selectedSocketID = socketID;
} }

View File

@ -8,7 +8,7 @@
namespace GameLogic namespace GameLogic
{ {
struct Protocol_ObjectPosition :public Network::CustomProtocolObject struct Protocol_ObjectPosition :public Oyster::Network::CustomProtocolObject
{ {
float worldMatrix[16]; float worldMatrix[16];
// look at dir // look at dir
@ -16,33 +16,33 @@ namespace GameLogic
Protocol_ObjectPosition() Protocol_ObjectPosition()
{ {
this->protocol[0].value = protocol_PlayerPosition; this->protocol[0].value = protocol_PlayerPosition;
this->protocol[0].type = Network::NetAttributeType_Int; this->protocol[0].type = Oyster::Network::NetAttributeType_Int;
this->protocol[1].type = Network::NetAttributeType_Float; this->protocol[1].type = Oyster::Network::NetAttributeType_Float;
this->protocol[2].type = Network::NetAttributeType_Float; this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
this->protocol[3].type = Network::NetAttributeType_Float; this->protocol[3].type = Oyster::Network::NetAttributeType_Float;
this->protocol[4].type = Network::NetAttributeType_Float; this->protocol[4].type = Oyster::Network::NetAttributeType_Float;
this->protocol[5].type = Network::NetAttributeType_Float; this->protocol[5].type = Oyster::Network::NetAttributeType_Float;
this->protocol[6].type = Network::NetAttributeType_Float; this->protocol[6].type = Oyster::Network::NetAttributeType_Float;
this->protocol[7].type = Network::NetAttributeType_Float; this->protocol[7].type = Oyster::Network::NetAttributeType_Float;
this->protocol[8].type = Network::NetAttributeType_Float; this->protocol[8].type = Oyster::Network::NetAttributeType_Float;
this->protocol[9].type = Network::NetAttributeType_Float; this->protocol[9].type = Oyster::Network::NetAttributeType_Float;
this->protocol[10].type = Network::NetAttributeType_Float; this->protocol[10].type = Oyster::Network::NetAttributeType_Float;
this->protocol[11].type = Network::NetAttributeType_Float; this->protocol[11].type = Oyster::Network::NetAttributeType_Float;
this->protocol[12].type = Network::NetAttributeType_Float; this->protocol[12].type = Oyster::Network::NetAttributeType_Float;
this->protocol[13].type = Network::NetAttributeType_Float; this->protocol[13].type = Oyster::Network::NetAttributeType_Float;
this->protocol[14].type = Network::NetAttributeType_Float; this->protocol[14].type = Oyster::Network::NetAttributeType_Float;
this->protocol[15].type = Network::NetAttributeType_Float; this->protocol[15].type = Oyster::Network::NetAttributeType_Float;
this->protocol[16].type = Network::NetAttributeType_Float; this->protocol[16].type = Oyster::Network::NetAttributeType_Float;
} }
Network::CustomNetProtocol* GetProtocol() override Oyster::Network::CustomNetProtocol* GetProtocol() override
{ {
this->protocol[1].value = worldMatrix[0]; this->protocol[1].value = worldMatrix[0];
this->protocol[2].value = worldMatrix[1]; this->protocol[2].value = worldMatrix[1];
this->protocol[3].value = worldMatrix[2]; this->protocol[3].value = worldMatrix[2]; //Forgot?
this->protocol[4].value = worldMatrix[4]; this->protocol[4].value = worldMatrix[4]; //Forgot?
this->protocol[5].value = worldMatrix[5]; this->protocol[5].value = worldMatrix[5];
this->protocol[6].value = worldMatrix[6]; this->protocol[6].value = worldMatrix[6];
this->protocol[7].value = worldMatrix[7]; this->protocol[7].value = worldMatrix[7];
@ -59,7 +59,7 @@ namespace GameLogic
} }
private: private:
Network::CustomNetProtocol protocol; Oyster::Network::CustomNetProtocol protocol;
}; };
} }

View File

@ -127,7 +127,7 @@ theBegining:
return; return;
} }
theEnd: //theEnd:
if(w->owner) w->owner->ThreadExit(); if(w->owner) w->owner->ThreadExit();
w->state = OYSTER_THREAD_STATE_DEAD; w->state = OYSTER_THREAD_STATE_DEAD;