R-Type
Protocol.hpp
Go to the documentation of this file.
1 /*
2 ** EPITECH PROJECT, 2023
3 ** R-type
4 ** File description:
5 ** Protocol
6 */
7 
8 #ifndef PROTOCOL_HPP_
9 #define PROTOCOL_HPP_
10 
11 #include <cstdint>
12 
13 namespace RType::Protocol
14 {
15  static const uint32_t MAGIC_NUMBER = 0xA54CDEF5;
16 
17  enum class ComponentType : uint8_t {
18  TRANSFORM = 1,
19  COLLISION,
20  TEXTURE,
22  INPUT,
26  };
27 
28  enum class PacketType : uint8_t { STRING = 10, CONNEXION, DESTROY, SCORE, ENDGAME };
29 
30  enum class InputType : uint8_t { UP = 0, RIGHT, DOWN, LEFT, SHOOT };
31 
33 
34  struct EndGameData
35  {
36  uint8_t endGameState;
37  };
38 
39  struct InputData
40  {
41  uint16_t id;
42  uint8_t inputId;
43  uint8_t state;
44  };
45 
46  struct ScoreData
47  {
48  uint16_t score;
49  };
50 
52  {
53  uint16_t id;
54  uint8_t invincibility;
55  };
56 
58  {
59  uint16_t id;
60  };
61 
62  struct EntityIdData
63  {
64  uint16_t id;
65  };
66 
68  {
69  uint32_t magicNumber = MAGIC_NUMBER;
70  uint8_t packetType;
71  uint16_t payloadSize;
72  };
73 
75  {
76  uint16_t id;
77  };
78 
80  {
81  uint16_t id;
82  uint16_t idTexture;
83  };
84 
86  {
87  uint16_t id;
88  float x;
89  float y;
90  float dx;
91  float dy;
92  };
93 
95  {
96  uint16_t id;
97  uint8_t idCallback;
98  float rectLeft;
99  float rectTop;
100  float rectWidth;
101  float rectHeight;
102  uint8_t layer;
103  };
104 
105  struct TextureData
106  {
107  uint16_t id;
108  uint8_t idTexture;
109  uint8_t idOrderTexture;
110  uint16_t rectLeft;
111  uint16_t rectTop;
112  uint16_t rectWidth;
113  uint16_t rectHeight;
114  uint16_t rectTextureLeft;
115  uint16_t rectTextureTop;
118  uint8_t renderLayer;
119  uint8_t isAnimated;
121  };
122 
123  struct MoveData
124  {
125  uint16_t id;
126  float x;
127  float y;
128  float dx;
129  float dy;
130  };
131 
132  struct ShootData
133  {
134  uint16_t id;
135  float x;
136  float y;
137  float dx;
138  float dy;
139  };
140 } // namespace RType::Protocol
141 
142 #endif
Definition: Protocol.hpp:14
TextureType
Definition: Protocol.hpp:32
ComponentType
Definition: Protocol.hpp:17
InputType
Definition: Protocol.hpp:30
PacketType
Definition: Protocol.hpp:28
Definition: Protocol.hpp:95
uint16_t id
Definition: Protocol.hpp:96
uint8_t idCallback
Definition: Protocol.hpp:97
float rectHeight
Definition: Protocol.hpp:101
float rectWidth
Definition: Protocol.hpp:100
float rectLeft
Definition: Protocol.hpp:98
float rectTop
Definition: Protocol.hpp:99
uint8_t layer
Definition: Protocol.hpp:102
Definition: Protocol.hpp:75
uint16_t id
Definition: Protocol.hpp:76
Definition: Protocol.hpp:58
uint16_t id
Definition: Protocol.hpp:59
Definition: Protocol.hpp:35
uint8_t endGameState
Definition: Protocol.hpp:36
Definition: Protocol.hpp:63
uint16_t id
Definition: Protocol.hpp:64
Definition: Protocol.hpp:68
uint8_t packetType
Definition: Protocol.hpp:70
uint32_t magicNumber
Definition: Protocol.hpp:69
uint16_t payloadSize
Definition: Protocol.hpp:71
Definition: Protocol.hpp:40
uint16_t id
Definition: Protocol.hpp:41
uint8_t state
Definition: Protocol.hpp:43
uint8_t inputId
Definition: Protocol.hpp:42
Definition: Protocol.hpp:124
float y
Definition: Protocol.hpp:127
float x
Definition: Protocol.hpp:126
uint16_t id
Definition: Protocol.hpp:125
float dx
Definition: Protocol.hpp:128
float dy
Definition: Protocol.hpp:129
Definition: Protocol.hpp:47
uint16_t score
Definition: Protocol.hpp:48
Definition: Protocol.hpp:133
float y
Definition: Protocol.hpp:136
float dy
Definition: Protocol.hpp:138
uint16_t id
Definition: Protocol.hpp:134
float x
Definition: Protocol.hpp:135
float dx
Definition: Protocol.hpp:137
Definition: Protocol.hpp:52
uint16_t id
Definition: Protocol.hpp:53
uint8_t invincibility
Definition: Protocol.hpp:54
Definition: Protocol.hpp:106
uint8_t renderLayer
Definition: Protocol.hpp:118
uint16_t rectTextureHeight
Definition: Protocol.hpp:117
uint8_t isAnimated
Definition: Protocol.hpp:119
uint16_t rectTop
Definition: Protocol.hpp:111
uint16_t rectTextureWidth
Definition: Protocol.hpp:116
uint16_t rectLeft
Definition: Protocol.hpp:110
uint16_t id
Definition: Protocol.hpp:107
uint16_t rectWidth
Definition: Protocol.hpp:112
uint8_t idTexture
Definition: Protocol.hpp:108
uint8_t idOrderTexture
Definition: Protocol.hpp:109
uint16_t rectTextureLeft
Definition: Protocol.hpp:114
uint16_t rectHeight
Definition: Protocol.hpp:113
float animationSpeed
Definition: Protocol.hpp:120
uint16_t rectTextureTop
Definition: Protocol.hpp:115
Definition: Protocol.hpp:80
uint16_t id
Definition: Protocol.hpp:81
uint16_t idTexture
Definition: Protocol.hpp:82
Definition: Protocol.hpp:86
float dx
Definition: Protocol.hpp:90
float dy
Definition: Protocol.hpp:91
float y
Definition: Protocol.hpp:89
float x
Definition: Protocol.hpp:88
uint16_t id
Definition: Protocol.hpp:87