DDNet documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
dragger.h
Go to the documentation of this file.
1
/* (c) Shereef Marzouk. See "licence DDRace.txt" and the readme.txt in the root of the distribution for more information. */
2
#ifndef GAME_SERVER_ENTITIES_DRAGGER_H
3
#define GAME_SERVER_ENTITIES_DRAGGER_H
4
5
#include <
game/server/entity.h
>
6
7
#include <optional>
8
9
class
CDraggerBeam
;
10
25
class
CDragger
:
public
CEntity
26
{
27
// m_Core is the direction vector by which a dragger is shifted at each movement tick (every 150ms)
28
vec2
m_Core
;
29
float
m_Strength
;
30
bool
m_IgnoreWalls
;
31
int
m_EvalTick
;
32
33
int
m_aTargetIdInTeam
[
MAX_CLIENTS
];
34
CDraggerBeam
*
m_apDraggerBeam
[
MAX_CLIENTS
];
35
36
void
LookForPlayersToDrag
();
37
// Returns the client id of the dragger beam that is snapped with the dragger's id
38
// for the given snapping client, if there is one
39
std::optional<int>
DraggerBeamUsingDraggerId
(
int
SnappingClientId);
40
41
public
:
42
CDragger
(
CGameWorld
*pGameWorld,
vec2
Pos,
float
Strength,
bool
IgnoreWalls,
int
Layer = 0,
int
Number = 0);
43
44
void
RemoveDraggerBeam
(
int
ClientId);
45
bool
WillDraggerBeamUseDraggerId
(
int
TargetClientId,
int
SnappingClientId);
46
47
void
Reset
()
override
;
48
void
Tick
()
override
;
49
void
Snap
(
int
SnappingClient)
override
;
50
void
SwapClients
(
int
Client1,
int
Client2)
override
;
51
};
52
53
#endif
// GAME_SERVER_ENTITIES_DRAGGER_H
CDraggerBeam
Definition
dragger_beam.h:25
CDragger
Definition
dragger.h:10
CDragger::WillDraggerBeamUseDraggerId
bool WillDraggerBeamUseDraggerId(int TargetClientId, int SnappingClientId)
Definition
dragger.cpp:182
CDragger::Snap
void Snap(int SnappingClient) override
Definition
dragger.cpp:192
CDragger::SwapClients
void SwapClients(int Client1, int Client2) override
Definition
dragger.cpp:237
CDragger::m_Strength
float m_Strength
Definition
dragger.h:12
CDragger::RemoveDraggerBeam
void RemoveDraggerBeam(int ClientId)
Definition
dragger.cpp:152
CDragger::Tick
void Tick() override
CDragger::m_EvalTick
int m_EvalTick
Definition
dragger.h:31
CDragger::m_Core
vec2 m_Core
Definition
dragger.h:11
CDragger::DraggerBeamUsingDraggerId
std::optional< int > DraggerBeamUsingDraggerId(int SnappingClientId)
Definition
dragger.cpp:157
CDragger::m_aTargetIdInTeam
int m_aTargetIdInTeam[MAX_CLIENTS]
Definition
dragger.h:33
CDragger::Reset
void Reset() override
Definition
dragger.cpp:187
CDragger::m_apDraggerBeam
CDraggerBeam * m_apDraggerBeam[MAX_CLIENTS]
Definition
dragger.h:34
CDragger::CDragger
CDragger(CGameWorld *pGameWorld, int Id, const CLaserData *pData)
Definition
dragger.cpp:131
CDragger::m_IgnoreWalls
bool m_IgnoreWalls
Definition
dragger.h:13
CDragger::LookForPlayersToDrag
void LookForPlayersToDrag()
CEntity
Definition
entity.h:13
CEntity::CGameWorld
friend CGameWorld
Definition
entity.h:17
MAX_CLIENTS
@ MAX_CLIENTS
Definition
protocol.h:89
entity.h
vec2
vector2_base< float > vec2
Definition
vmath.h:168
src
game
server
entities
dragger.h
Generated by
1.18.0