mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-11-26 23:47:21 +00:00
37 lines
696 B
C
37 lines
696 B
C
|
#pragma once
|
||
|
|
||
|
#include "Entity.h"
|
||
|
|
||
|
struct Team
|
||
|
{
|
||
|
LWOOBJID teamID = LWOOBJID_EMPTY;
|
||
|
char lootOption = 0;
|
||
|
std::vector<LWOOBJID> members {};
|
||
|
char lootRound = 0;
|
||
|
};
|
||
|
|
||
|
class TeamManager
|
||
|
{
|
||
|
public:
|
||
|
static TeamManager* Instance() {
|
||
|
if (!m_Address) {
|
||
|
m_Address = new TeamManager();
|
||
|
}
|
||
|
|
||
|
return m_Address;
|
||
|
}
|
||
|
|
||
|
Team* GetTeam(LWOOBJID member) const;
|
||
|
LWOOBJID GetNextLootOwner(Team* team) const;
|
||
|
void UpdateTeam(LWOOBJID teamId, char lootOption, const std::vector<LWOOBJID>& members);
|
||
|
void DeleteTeam(LWOOBJID teamId);
|
||
|
|
||
|
explicit TeamManager();
|
||
|
~TeamManager();
|
||
|
|
||
|
private:
|
||
|
static TeamManager* m_Address; //For singleton method
|
||
|
std::unordered_map<LWOOBJID, Team*> m_Teams {};
|
||
|
};
|
||
|
|