R-Type
Distributed multiplayer game engine in C++
Loading...
Searching...
No Matches
UIEvent.hpp
Go to the documentation of this file.
1
/*
2
** EPITECH PROJECT, 2025
3
** rtype
4
** File description:
5
** UIEvent.hpp - Events triggered by UI interactions
6
*/
7
8
#pragma once
9
10
#include <string>
11
#include <vector>
12
#include "Events/IEvent.hpp"
13
14
// Room data structure for events
15
struct
RoomData
{
16
std::string
roomId
;
17
std::string
roomName
;
18
uint32_t
playerCount
;
19
uint32_t
maxPlayers
;
20
bool
isPrivate
;
21
uint8_t
state
;
22
};
23
24
enum class
UIEventType
{
25
JOIN_GAME
,
26
START_GAME
,
27
QUIT_GAME
,
28
SERVER_CONNECT
,
29
CONNECTION_FAILED
,
30
CONNECTION_SUCCESS
,
31
CREATE_ROOM
,
32
REQUEST_ROOM_LIST
,
33
AUTO_MATCHMAKING
,
// Auto-matchmaking request (trigger matchmaking)
34
UPDATE_AUTO_MATCHMAKING_PREF
,
// Update auto-matchmaking preference on server
35
APPLY_AUTO_MATCHMAKING_PREF
,
// Apply auto-matchmaking preference to settings menu
36
ROOM_LIST_RECEIVED
,
37
ROOM_JOINED
,
38
LEAVE_ROOM
,
39
BACK_TO_ROOM_LIST
,
40
PLAYER_JOINED_ROOM
,
41
START_GAME_REQUEST
,
42
GAME_STARTED
,
43
REGISTER_ACCOUNT
,
// data format: "username:password"
44
REGISTER_SUCCESS
,
// data format: success message
45
REGISTER_FAILED
,
// data format: error message
46
LOGIN_ACCOUNT
,
// data format: "username:password"
47
LOGIN_FAILED
,
// data format: error message
48
AUTH_SUCCESS
// data format: authenticated username (e.g., "lucas" or "guest_a3f2")
49
};
50
51
class
UIEvent
:
public
IEvent
{
52
public
:
53
explicit
UIEvent
(
UIEventType
type,
const
std::string &data =
""
) :
_type
(type),
_data
(data) {}
54
55
[[nodiscard]]
UIEventType
getType
()
const
{
return
_type
; }
56
[[nodiscard]]
const
std::string &
getData
()
const
{
return
_data
; }
57
58
private
:
59
UIEventType
_type
;
60
std::string
_data
;
61
};
UIEventType
UIEventType
Definition
UIEvent.hpp:24
UIEventType::CONNECTION_FAILED
@ CONNECTION_FAILED
UIEventType::ROOM_JOINED
@ ROOM_JOINED
UIEventType::APPLY_AUTO_MATCHMAKING_PREF
@ APPLY_AUTO_MATCHMAKING_PREF
UIEventType::ROOM_LIST_RECEIVED
@ ROOM_LIST_RECEIVED
UIEventType::LOGIN_FAILED
@ LOGIN_FAILED
UIEventType::REGISTER_ACCOUNT
@ REGISTER_ACCOUNT
UIEventType::LEAVE_ROOM
@ LEAVE_ROOM
UIEventType::REGISTER_SUCCESS
@ REGISTER_SUCCESS
UIEventType::REGISTER_FAILED
@ REGISTER_FAILED
UIEventType::START_GAME_REQUEST
@ START_GAME_REQUEST
UIEventType::LOGIN_ACCOUNT
@ LOGIN_ACCOUNT
UIEventType::JOIN_GAME
@ JOIN_GAME
UIEventType::BACK_TO_ROOM_LIST
@ BACK_TO_ROOM_LIST
UIEventType::AUTO_MATCHMAKING
@ AUTO_MATCHMAKING
UIEventType::PLAYER_JOINED_ROOM
@ PLAYER_JOINED_ROOM
UIEventType::CONNECTION_SUCCESS
@ CONNECTION_SUCCESS
UIEventType::UPDATE_AUTO_MATCHMAKING_PREF
@ UPDATE_AUTO_MATCHMAKING_PREF
UIEventType::START_GAME
@ START_GAME
UIEventType::SERVER_CONNECT
@ SERVER_CONNECT
UIEventType::REQUEST_ROOM_LIST
@ REQUEST_ROOM_LIST
UIEventType::QUIT_GAME
@ QUIT_GAME
UIEventType::AUTH_SUCCESS
@ AUTH_SUCCESS
UIEventType::GAME_STARTED
@ GAME_STARTED
UIEventType::CREATE_ROOM
@ CREATE_ROOM
IEvent
Base interface for all event types.
Definition
IEvent.hpp:26
UIEvent
Definition
UIEvent.hpp:51
UIEvent::getData
const std::string & getData() const
Definition
UIEvent.hpp:56
UIEvent::UIEvent
UIEvent(UIEventType type, const std::string &data="")
Definition
UIEvent.hpp:53
UIEvent::_data
std::string _data
Definition
UIEvent.hpp:60
UIEvent::getType
UIEventType getType() const
Definition
UIEvent.hpp:55
UIEvent::_type
UIEventType _type
Definition
UIEvent.hpp:59
RoomData
Definition
UIEvent.hpp:15
RoomData::playerCount
uint32_t playerCount
Definition
UIEvent.hpp:18
RoomData::roomName
std::string roomName
Definition
UIEvent.hpp:17
RoomData::isPrivate
bool isPrivate
Definition
UIEvent.hpp:20
RoomData::roomId
std::string roomId
Definition
UIEvent.hpp:16
RoomData::maxPlayers
uint32_t maxPlayers
Definition
UIEvent.hpp:19
RoomData::state
uint8_t state
Definition
UIEvent.hpp:21
client
Events
UIEvent.hpp
Generated by
1.9.8