R-Type
Distributed multiplayer game engine in C++
Loading...
Searching...
No Matches
InputBuffer.hpp
Go to the documentation of this file.
1
/*
2
** EPITECH PROJECT, 2025
3
** Created by samuelBleau on 26/11/2025.
4
** File description:
5
** InputBuffer.hpp
6
*/
7
8
#ifndef INPUTBUFFER_HPP
9
#define INPUTBUFFER_HPP
10
11
#include <cstdint>
12
#include <deque>
13
#include <optional>
14
#include <vector>
15
#include "
Events/InputEvent/InputEvent.hpp
"
16
36
class
InputBuffer
{
37
public
:
42
struct
StoredInput
{
43
uint32_t
frameNumber
;
44
InputAction
action
;
45
InputState
state
;
46
};
47
51
InputBuffer
() =
default
;
52
56
~InputBuffer
() =
default
;
57
70
void
addInput
(uint32_t frameNumber,
InputAction
action,
InputState
state);
71
84
std::vector<StoredInput>
getInputsSince
(uint32_t startFrame)
const
;
85
97
void
clearUntil
(uint32_t frameNumber);
98
106
std::optional<StoredInput>
getLastInput
()
const
;
107
114
void
clear
();
115
123
size_t
size
()
const
;
124
125
private
:
126
std::deque<StoredInput>
_inputs
;
127
uint32_t
_oldestFrame
= 0;
128
};
129
130
#endif
InputEvent.hpp
InputAction
InputAction
Available player input actions.
Definition
InputEvent.hpp:20
InputState
InputState
State of an input action.
Definition
InputEvent.hpp:36
InputBuffer
Buffer for storing player input history.
Definition
InputBuffer.hpp:36
InputBuffer::clear
void clear()
Clear the buffer completely.
Definition
InputBuffer.cpp:59
InputBuffer::_oldestFrame
uint32_t _oldestFrame
Definition
InputBuffer.hpp:127
InputBuffer::_inputs
std::deque< StoredInput > _inputs
Definition
InputBuffer.hpp:126
InputBuffer::~InputBuffer
~InputBuffer()=default
Default destructor.
InputBuffer::addInput
void addInput(uint32_t frameNumber, InputAction action, InputState state)
Add an input to the buffer.
Definition
InputBuffer.cpp:10
InputBuffer::clearUntil
void clearUntil(uint32_t frameNumber)
Clear inputs up to a given frame.
Definition
InputBuffer.cpp:40
InputBuffer::getLastInput
std::optional< StoredInput > getLastInput() const
Get the last stored input.
Definition
InputBuffer.cpp:52
InputBuffer::getInputsSince
std::vector< StoredInput > getInputsSince(uint32_t startFrame) const
Get all inputs since a given frame.
Definition
InputBuffer.cpp:28
InputBuffer::InputBuffer
InputBuffer()=default
Default constructor.
InputBuffer::size
size_t size() const
Get the number of stored inputs.
Definition
InputBuffer.cpp:63
InputBuffer::StoredInput
Structure representing a stored input with metadata.
Definition
InputBuffer.hpp:42
InputBuffer::StoredInput::frameNumber
uint32_t frameNumber
Frame number where input was captured.
Definition
InputBuffer.hpp:43
InputBuffer::StoredInput::action
InputAction action
Action performed (MOVE, SHOOT, etc.)
Definition
InputBuffer.hpp:44
InputBuffer::StoredInput::state
InputState state
Action state (PRESSED, RELEASED, HELD)
Definition
InputBuffer.hpp:45
client
Input
InputBuffer.hpp
Generated by
1.9.8