Merge remote-tracking branch 'origin/master' into Kill-streak-sounds
This commit is contained in:
@@ -40,5 +40,17 @@ private:
|
||||
};
|
||||
std::vector<EntityAtMaxValuePickupStruct> m_PickupAtMaximum;
|
||||
void DoPickup(EntityWrapper &player, EntityWrapper &trigger);
|
||||
//class
|
||||
enum class PlayerClass {
|
||||
Assault,
|
||||
Defender,
|
||||
Sniper,
|
||||
None
|
||||
};
|
||||
//helper methods
|
||||
bool DoesPlayerHaveMaxAmmo(EntityWrapper &player);
|
||||
PlayerClass DetermineClass(EntityWrapper &player);
|
||||
void SetPlayerAmmo(EntityWrapper &player, int ammoGain);
|
||||
int GetPlayerMaxAmmo(EntityWrapper &player);
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
#include "Rendering/Util/CommonFunctions.h"
|
||||
//#define INDICATOR_TEST
|
||||
#include "Core/ConfigFile.h"
|
||||
|
||||
class DamageIndicatorSystem : public ImpureSystem
|
||||
{
|
||||
@@ -40,6 +41,8 @@ private:
|
||||
std::vector<DamageIndicatorStruct> updateDamageIndicatorVector;
|
||||
float CalculateAngle(EntityWrapper player, glm::vec3 enemyPos);
|
||||
|
||||
bool m_NetworkEnabled;
|
||||
|
||||
//for tests
|
||||
#ifdef INDICATOR_TEST
|
||||
glm::vec3 DamageIndicatorTest(EntityWrapper player);
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
#ifndef MainMenuSystem_h__
|
||||
#define MainMenuSystem_h__
|
||||
|
||||
#include "Core/System.h"
|
||||
#include "Rendering/IRenderer.h"
|
||||
#include "Core/ResourceManager.h"
|
||||
#include "Core/Event.h"
|
||||
#include "Systems/SpawnerSystem.h"
|
||||
|
||||
|
||||
#include "GUI/EButtonClicked.h"
|
||||
#include "GUI/EButtonPressed.h"
|
||||
#include "GUI/EButtonReleased.h"
|
||||
#include "Input/EInputCommand.h"
|
||||
#include "Network/ESearchForServers.h"
|
||||
#include "Network/EConnectRequest.h"
|
||||
|
||||
|
||||
class MainMenuSystem : public ImpureSystem
|
||||
{
|
||||
public:
|
||||
MainMenuSystem(SystemParams params, IRenderer* renderer);
|
||||
virtual void Update(double dt) override;
|
||||
|
||||
private:
|
||||
IRenderer* m_Renderer;
|
||||
|
||||
EventRelay<MainMenuSystem, Events::ButtonClicked> m_EClicked;
|
||||
bool OnButtonClick(const Events::ButtonClicked& e);
|
||||
EventRelay<MainMenuSystem, Events::ButtonReleased> m_EReleased;
|
||||
bool OnButtonRelease(const Events::ButtonReleased& e);
|
||||
EventRelay<MainMenuSystem, Events::ButtonPressed> m_EPressed;
|
||||
bool OnButtonPress(const Events::ButtonPressed& e);
|
||||
EventRelay<MainMenuSystem, Events::InputCommand> m_EInputCommand;
|
||||
bool OnInputCommand(const Events::InputCommand& e);
|
||||
|
||||
std::string m_CurrentCommand = "";
|
||||
EntityWrapper m_OpenSubMenu = EntityWrapper::Invalid;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -24,7 +24,10 @@ private:
|
||||
bool OnPlayerDeath(Events::PlayerDeath& e);
|
||||
EventRelay<PlayerDeathSystem, Events::EntityDeleted> m_EEntityDeleted;
|
||||
bool OnEntityDeleted(Events::EntityDeleted& e);
|
||||
EventRelay<PlayerDeathSystem, Events::InputCommand> m_EInputCommand;
|
||||
bool OnInputCommand(Events::InputCommand& e);
|
||||
|
||||
void setSpectatorCamera();
|
||||
void createDeathEffect(EntityWrapper player);
|
||||
|
||||
};
|
||||
|
||||
@@ -15,10 +15,19 @@ public:
|
||||
virtual void Update(double dt) override;
|
||||
|
||||
private:
|
||||
// This enum must correspond to the command values for PickTeam buttons.
|
||||
enum class PlayerClass
|
||||
{
|
||||
None = 0,
|
||||
Assault,
|
||||
Defender,
|
||||
Sniper
|
||||
};
|
||||
struct SpawnRequest
|
||||
{
|
||||
int PlayerID;
|
||||
ComponentInfo::EnumType Team;
|
||||
PlayerClass Class;
|
||||
};
|
||||
|
||||
bool m_NetworkEnabled = false;
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
#ifndef ServerListSystem_h__
|
||||
#define ServerListSystem_h__
|
||||
|
||||
#include "Core/System.h"
|
||||
#include "Rendering/IRenderer.h"
|
||||
#include "Core/ResourceManager.h"
|
||||
#include "Core/Event.h"
|
||||
#include "Systems/SpawnerSystem.h"
|
||||
#include "Core/EventBroker.h"
|
||||
|
||||
#include "Network/ESearchForServers.h"
|
||||
#include "Network/EDisplayServerlist.h"
|
||||
|
||||
class ServerListSystem : public PureSystem
|
||||
{
|
||||
public:
|
||||
ServerListSystem(SystemParams params, IRenderer* renderer);
|
||||
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& cServerList, double dt) override;
|
||||
|
||||
void RefreshList();
|
||||
|
||||
private:
|
||||
IRenderer* m_Renderer;
|
||||
|
||||
EventRelay<ServerListSystem, Events::DisplayServerlist> m_EServerListRecieved;
|
||||
bool OnServerListRecieved(const Events::DisplayServerlist& e);
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,22 @@
|
||||
#ifndef SpectatorCameraSystem_h__
|
||||
#define SpectatorCameraSystem_h__
|
||||
|
||||
#include "Core/System.h"
|
||||
#include "Input/EInputCommand.h"
|
||||
|
||||
class SpectatorCameraSystem : public ImpureSystem
|
||||
{
|
||||
public:
|
||||
SpectatorCameraSystem(SystemParams params);
|
||||
|
||||
virtual void Update(double dt) override;
|
||||
|
||||
private:
|
||||
int m_PickedTeam;
|
||||
bool m_CamSetToTeamPick;
|
||||
|
||||
EventRelay<SpectatorCameraSystem, Events::InputCommand> m_EInputCommand;
|
||||
bool OnInputCommand(const Events::InputCommand& e);
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,23 @@
|
||||
#ifndef StartSystem_h__
|
||||
#define StartSystem_h__
|
||||
|
||||
#include "Core/System.h"
|
||||
#include "Core/ResourceManager.h"
|
||||
#include "Core/Event.h"
|
||||
#include "Core/EventBroker.h"
|
||||
#include "Rendering/ESetCamera.h"
|
||||
|
||||
class StartSystem : public ImpureSystem
|
||||
{
|
||||
public:
|
||||
StartSystem(SystemParams params);
|
||||
virtual void Update(double dt) override;
|
||||
|
||||
private:
|
||||
EntityWrapper m_ActiveCamera = EntityWrapper::Invalid;
|
||||
|
||||
EventRelay<StartSystem, Events::SetCamera> m_ECameraActivated;
|
||||
bool OnCameraActivated(const Events::SetCamera& e);
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -32,20 +32,19 @@ public:
|
||||
|
||||
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& cWeapon, double dt) override
|
||||
{
|
||||
EntityWrapper firstPersonWeapon = entity.FirstChildByName("Hands").FirstChildByName("AssaultWeapon");
|
||||
EntityWrapper thirdPersonWeapon = entity.FirstChildByName("PlayerModel").FirstChildByName("AssaultWeapon");
|
||||
if (IsClient && (firstPersonWeapon.Valid() || thirdPersonWeapon.Valid())) {
|
||||
if (m_ActiveWeapons.count(entity) == 0) {
|
||||
/* EntityWrapper firstPersonWeapon = entity.FirstChildByName("Hands").FirstChildByName("AssaultWeapon");
|
||||
EntityWrapper thirdPersonWeapon = entity.FirstChildByName("PlayerModel").FirstChildByName("AssaultWeapon");
|
||||
if (IsClient && (firstPersonWeapon.Valid() || thirdPersonWeapon.Valid())) {
|
||||
if (m_ActiveWeapons.count(entity) == 0) {
|
||||
WeaponInfo& wi = m_ActiveWeapons[entity];
|
||||
wi.Player = entity;
|
||||
wi.WeaponEntity = entity;
|
||||
wi.FirstPersonEntity = firstPersonWeapon;
|
||||
wi.ThirdPersonEntity = thirdPersonWeapon;
|
||||
|
||||
WeaponInfo& wi = m_ActiveWeapons[entity];
|
||||
wi.Player = entity;
|
||||
wi.WeaponEntity = entity;
|
||||
wi.FirstPersonEntity = firstPersonWeapon;
|
||||
wi.ThirdPersonEntity = thirdPersonWeapon;
|
||||
|
||||
OnEquip(cWeapon, wi);
|
||||
}
|
||||
}
|
||||
OnEquip(cWeapon, wi);
|
||||
}
|
||||
}*/
|
||||
|
||||
auto weapon = getActiveWeapon(entity);
|
||||
if (!weapon) {
|
||||
@@ -61,7 +60,9 @@ protected:
|
||||
EntityWrapper Player;
|
||||
EntityWrapper WeaponEntity;
|
||||
EntityWrapper FirstPersonEntity;
|
||||
EntityWrapper FirstPersonPlayerModel;
|
||||
EntityWrapper ThirdPersonEntity;
|
||||
EntityWrapper ThirdPersonPlayerModel;
|
||||
};
|
||||
|
||||
IRenderer* m_Renderer;
|
||||
@@ -89,7 +90,7 @@ protected:
|
||||
|
||||
// Returns wi.FirstPersonEntity or wi.ThirdPersonEntity depending on
|
||||
// if the player is in first person mode or not.
|
||||
EntityWrapper getRelevantWeaponModelEntity(WeaponInfo& wi)
|
||||
EntityWrapper getRelevantWeaponEntity(WeaponInfo& wi)
|
||||
{
|
||||
if (isPlayerInFirstPerson(wi.Player)) {
|
||||
return wi.FirstPersonEntity;
|
||||
@@ -137,7 +138,7 @@ protected:
|
||||
|
||||
void playAnimationAndReturn(EntityWrapper weaponModelEntity, const std::string& subTreeName, const std::string& animationNodeName)
|
||||
{
|
||||
EntityWrapper root = weaponModelEntity.FirstParentWithComponent("Model");
|
||||
EntityWrapper root = weaponModelEntity;
|
||||
if (!root.Valid()) {
|
||||
return;
|
||||
}
|
||||
@@ -254,9 +255,9 @@ private:
|
||||
|
||||
void selectWeapon(ComponentWrapper cWeapon, EntityWrapper player)
|
||||
{
|
||||
if (!IsServer) {
|
||||
return;
|
||||
}
|
||||
//if (!IsServer) {
|
||||
// return;
|
||||
//}
|
||||
|
||||
// Don't reselect weapon if it's already active
|
||||
if (getActiveWeapon(player)) {
|
||||
@@ -287,11 +288,11 @@ private:
|
||||
// Spawn the weapon(s)
|
||||
EntityWrapper firstPersonWeapon;
|
||||
EntityWrapper thirdPersonWeapon;
|
||||
//if (IsClient) {
|
||||
if (IsClient) {
|
||||
if (firstPersonAttachment.Valid()) {
|
||||
firstPersonWeapon = SpawnerSystem::Spawn(firstPersonAttachment, firstPersonAttachment);
|
||||
}
|
||||
//}
|
||||
}
|
||||
if (thirdPersonAttachment.Valid()) {
|
||||
thirdPersonWeapon = SpawnerSystem::Spawn(thirdPersonAttachment, thirdPersonAttachment);
|
||||
}
|
||||
@@ -300,7 +301,9 @@ private:
|
||||
wi.Player = player;
|
||||
wi.WeaponEntity = player;
|
||||
wi.FirstPersonEntity = firstPersonWeapon;
|
||||
wi.FirstPersonPlayerModel = firstPersonWeapon;
|
||||
wi.ThirdPersonEntity = thirdPersonWeapon;
|
||||
wi.ThirdPersonPlayerModel = thirdPersonWeapon.FirstParentWithComponent("Model");
|
||||
|
||||
OnEquip(cWeapon, wi);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user