ddnet/src/game/client/components/spectator.h

49 lines
1.5 KiB
C
Raw Normal View History

/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
/* If you are missing that file, acquire a complete release at teeworlds.com. */
#ifndef GAME_CLIENT_COMPONENTS_SPECTATOR_H
#define GAME_CLIENT_COMPONENTS_SPECTATOR_H
#include <base/vmath.h>
#include <game/client/component.h>
class CSpectator : public CComponent
{
enum
{
NO_SELECTION = -3,
};
bool m_Active;
bool m_WasActive;
int m_SelectedSpectatorID;
vec2 m_SelectorMouse;
bool CanChangeSpectator();
void SpectateNext(bool Reverse);
static void ConKeySpectator(IConsole::IResult *pResult, void *pUserData);
static void ConSpectate(IConsole::IResult *pResult, void *pUserData);
static void ConSpectateNext(IConsole::IResult *pResult, void *pUserData);
static void ConSpectatePrevious(IConsole::IResult *pResult, void *pUserData);
static void ConSpectateClosest(IConsole::IResult *pResult, void *pUserData);
2021-09-15 21:52:09 +00:00
EComponentMouseMovementBlockMode OnMouseWrongStateImpl();
public:
CSpectator();
virtual void OnConsoleInit();
2021-09-15 21:52:09 +00:00
virtual EComponentMouseMovementBlockMode OnMouseInWindowPos(int X, int Y);
virtual EComponentMouseMovementBlockMode OnMouseAbsoluteInWindowPos(int X, int Y);
virtual EComponentMouseMovementBlockMode OnMouseInWindowRelativeMove(int X, int Y);
virtual EComponentMouseMovementBlockMode OnMouseRelativeMove(float x, float y);
virtual void OnRender();
virtual void OnRelease();
virtual void OnReset();
void Spectate(int SpectatorID);
};
#endif