Monolith/Source/Monolith/MoveState.h

34 lines
460 B
C++

#pragma once
using State = unsigned short;
#define STRAFE_L 0x1
#define STRAFE_R 0x2
#define SPRINT 0x4
#define GROUNDED 0x8
#define FORWARD 0x10
#define STILL 0x20
class FMoveState
{
State MoveState = 0;
public:
bool Is(State state) const
{
return MoveState & state;
}
void Add(State state)
{
MoveState += Is(state) ? 0 : state;
}
void Remove(State state)
{
MoveState -= Is(state) ? state : 0;
}
double VelocityMag = 0;
};