DarkflameServer/dGame/TeamManager.h
2023-10-28 01:09:03 +01:00

36 lines
689 B
C++

#pragma once
#include "Entity.h"
struct Team {
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{};
};