mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-12-25 06:53:35 +00:00
37 lines
680 B
C++
37 lines
680 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{};
|
|
};
|
|
|