mirror of
https://github.com/ddnet/ddnet.git
synced 2024-10-21 08:18:18 +00:00
706eb0d015
The include of `base/system.h` in `src/engine/shared/protocol.h` is not required and only used transitively in `teamscore.h` for `dbg_assert`. To avoid adding back the include in `teamscore.h`, the function definitions are moved to the cpp file. Both definitions are moved for consistency.
48 lines
1.1 KiB
C++
48 lines
1.1 KiB
C++
/* (c) Shereef Marzouk. See "licence DDRace.txt" and the readme.txt in the root of the distribution for more information. */
|
|
#ifndef GAME_TEAMSCORE_H
|
|
#define GAME_TEAMSCORE_H
|
|
|
|
#include <engine/shared/protocol.h>
|
|
|
|
enum
|
|
{
|
|
TEAM_FLOCK = 0,
|
|
TEAM_SUPER = MAX_CLIENTS,
|
|
NUM_TEAMS = TEAM_SUPER + 1,
|
|
VANILLA_TEAM_SUPER = VANILLA_MAX_CLIENTS
|
|
};
|
|
|
|
// do not change the values of the following enum
|
|
enum
|
|
{
|
|
SV_TEAM_FORBIDDEN = 0, // teams are disabled on the map
|
|
SV_TEAM_ALLOWED = 1, // teams are enabled on the map, but optional
|
|
SV_TEAM_MANDATORY = 2, // map must be played with a team
|
|
SV_TEAM_FORCED_SOLO = 3 // map forces a random team for each individual player
|
|
};
|
|
|
|
class CTeamsCore
|
|
{
|
|
int m_aTeam[MAX_CLIENTS];
|
|
bool m_aIsSolo[MAX_CLIENTS];
|
|
|
|
public:
|
|
bool m_IsDDRace16;
|
|
|
|
CTeamsCore();
|
|
|
|
bool SameTeam(int ClientID1, int ClientID2) const;
|
|
|
|
bool CanKeepHook(int ClientID1, int ClientID2) const;
|
|
bool CanCollide(int ClientID1, int ClientID2) const;
|
|
|
|
int Team(int ClientID) const;
|
|
void Team(int ClientID, int Team);
|
|
|
|
void Reset();
|
|
void SetSolo(int ClientID, bool Value);
|
|
bool GetSolo(int ClientID) const;
|
|
};
|
|
|
|
#endif
|