SEGS  0.6.1-develop [d2cac982]
Super Entity Game Server
MapEvents.h
Go to the documentation of this file.
1 /*
2  * SEGS - Super Entity Game Server
3  * http://www.segs.io/
4  * Copyright (c) 2006 - 2019 SEGS Team (see AUTHORS.md)
5  * This software is licensed under the terms of the 3-clause BSD License. See LICENSE.md for details.
6  */
7 
8 #pragma once
10 #include "GameData/Powers.h"
11 #include "LinkLevelEvent.h"
12 #include "BitStream.h"
13 //#include "CRUD_Link.h"
14 //#include "CRUD_Events.h"
15 //#include "MapLink.h"
16 
17 #include <glm/vec3.hpp>
18 #include <QtCore/QString>
19 #include <QtCore/QDebug>
20 
21 class Entity;
22 
24 // Client -> Server
25 #include "Messages/Map/NewEntity.h"
26 namespace SEGSEvents
27 {
28 
29 // [[ev_def:type]]
30 class InitiateMapXfer final : public MapLinkEvent
31 {
32 public:
33  InitiateMapXfer() : MapLinkEvent(MapEventTypes::evInitiateMapXfer)
34  {
35  }
36  void serializeto(BitStream &) const override
37  {}
38 
39  void serializefrom(BitStream &) override
40  {}
42 };
43 
44 // [[ev_def:type]]
45 class MapXferComplete final : public MapLinkEvent
46 {
47 public:
48  MapXferComplete() : MapLinkEvent(MapEventTypes::evMapXferComplete)
49  {}
50 
51  void serializeto(BitStream &) const override
52  {}
53 
54  void serializefrom(BitStream &) override
55  {}
57 };
58 
59 // [[ev_def:type]]
60 class ShortcutsRequest final : public MapLinkEvent
61 {
62 public:
64  {}
65  void serializeto(BitStream &bs) const override
66  {
67  bs.StorePackedBits(1,4); // opcode
68  }
69  void serializefrom(BitStream &) override
70  {
71  }
73 };
74 
75 // [[ev_def:type]]
76 class SceneRequest final : public MapLinkEvent
77 {
78 public:
80  {}
81  void serializeto(BitStream &bs) const override
82  {
83  bs.StorePackedBits(1,3); // opcode
84  }
85  void serializefrom(BitStream &) override
86  {
87  }
89 };
90 
91 // [[ev_def:type]]
92 class EntitiesRequest final : public MapLinkEvent
93 {
94 public:
96  {}
97  void serializeto(BitStream &bs) const override
98  {
99  bs.StorePackedBits(1,5); // opcode
100  }
101  void serializefrom(BitStream &) override
102  {
103  }
105 };
106 
107 // [[ev_def:type]]
108 class ClientQuit final : public MapLinkEvent
109 {
110 public:
111  // [[ev_def:field]]
112  int abort_disconnect = 0;
114  {}
115  void serializeto(BitStream &bs) const override
116  {
117  bs.StorePackedBits(1,7); // opcode
118  bs.StorePackedBits(1, abort_disconnect);
119  }
120  void serializefrom(BitStream &bs) override
121  {
122  abort_disconnect = bs.GetPackedBits(1);
123  // TODO: try to differentiate between quit/logout ?
124  }
126 
127 };
128 
129 // [[ev_def:type]]
130 class CookieRequest final : public MapLinkEvent
131 {
132 public:
133  // [[ev_def:field]]
134  uint32_t cookie;
135  // [[ev_def:field]]
136  uint32_t console;
138  {}
139  void serializeto(BitStream &bs) const override
140  {
141  bs.StorePackedBits(1,6); // opcode
142  }
143  void serializefrom(BitStream &bs) override
144  {
145  cookie = bs.GetPackedBits(1);
146  console = bs.GetPackedBits(1);
147  }
149 };
150 
151 // [[ev_def:type]]
152 class ConsoleCommand final : public MapLinkEvent
153 {
154 public:
155  // [[ev_def:field]]
156  QString contents;
158  {}
159  void serializeto(BitStream &bs) const override
160  {
161  bs.StorePackedBits(1,0); // opcode - Warning -> exactly the same as Connect
162  }
163  void serializefrom(BitStream &bs) override
164  {
165  bs.GetString(contents);
166  }
168 };
169 
170 // [[ev_def:type]]
172 {
173 public:
174  ClientResumedRendering():MapLinkEvent(MapEventTypes::evClientResumedRendering)
175  {}
176  void serializeto(BitStream &bs) const override
177  {
178  bs.StorePackedBits(1,4);
179  }
180  void serializefrom(BitStream &/*bs*/) override
181  {
182 // Parameterless - serializefrom is no-op
183  }
185 };
186 
187 // [[ev_def:type]]
188 class MiniMapState final : public MapLinkEvent
189 {
190 public:
191  // [[ev_def:field]]
192  uint32_t tile_idx=0;
194  {}
195  void serializeto(BitStream &bs) const override
196  {
197  bs.StorePackedBits(1,1); // opcode - Warning -> exactly the same as Connect
198  }
199  void serializefrom(BitStream &bs) override
200  {
201  tile_idx=bs.GetPackedBits(8);
202  }
204 
205 };
206 } // end of SEGSEvents namespace
207 
208 #include "Messages/Map/InputState.h"
212 // Server -> Client events
213 namespace SEGSEvents
214 {
215 // [[ev_def:type]]
216 class MapInstanceConnected final : public MapLinkEvent
217 {
218 public:
220  {}
221  MapInstanceConnected(EventProcessor *evsrc,uint32_t resp,const QString &err) :
222  MapLinkEvent(MapEventTypes::evMapInstanceConnected,evsrc),
223  m_resp(resp),
224  m_fatal_error(err)
225  {}
226 
227  void serializeto(BitStream &bs) const override
228  {
229  bs.StorePackedBits(1,5); //opcode
230  bs.StorePackedBits(1,m_resp);
231  if(m_resp)
232  bs.StoreString(m_fatal_error);
233  }
234  void serializefrom(BitStream &src) override
235  {
236  m_resp = src.GetPackedBits(1);
237  if(m_resp==0)
238  src.GetString(m_fatal_error);
239  }
240  // [[ev_def:field]]
241  uint32_t m_resp;
242  // [[ev_def:field]]
243  QString m_fatal_error;
245 
246 };
247 
248 // [[ev_def:type]]
249 class InspirationDockMode final : public MapLinkEvent
250 {
251 public:
252  // [[ev_def:field]]
253  uint32_t dock_mode = 0;
255  {}
256  void serializeto(BitStream &bs) const override
257  {
258  bs.StorePackedBits(1,17);
259  bs.StoreBits(32,dock_mode);
260  }
261  void serializefrom(BitStream &bs) override
262  {
263  dock_mode = bs.GetBits(32);
264  }
266 };
267 
268 // [[ev_def:type]]
269 class DialogButton final : public MapLinkEvent
270 {
271 public:
272  // [[ev_def:field]]
273  uint32_t button_id;
274  // [[ev_def:field]]
275  bool success;
276 
278  {}
279  void serializeto(BitStream &bs) const override
280  {
281  bs.StorePackedBits(1,24);
282  }
283  void serializefrom(BitStream &bs) override
284  {
285  button_id = bs.GetPackedBits(1);
286  if(bs.GetReadableBits() == 1)
287  success = bs.GetBits(1);
288  }
289 
291 };
292 
293 // [[ev_def:type]]
294 class UnqueueAll final : public MapLinkEvent
295 {
296 public:
298  {}
299  void serializeto(BitStream &bs) const override
300  {
301  bs.StorePackedBits(1,32);
302  }
303  void serializefrom(BitStream &/*bs*/) override
304  {
305  // TODO: Seems like nothing is received server side.
306  qWarning() << "UnqueueAll unimplemented.";
307  }
309 };
310 
311 // [[ev_def:type]]
312 class AbortQueuedPower final : public MapLinkEvent
313 {
314 public:
316  {}
317  void serializeto(BitStream &bs) const override
318  {
319  bs.StorePackedBits(1,33);
320  }
321  void serializefrom(BitStream &/*bs*/) override
322  {
323 // Parameterless - serializefrom is no-op
324  }
326 };
327 
328 // [[ev_def:type]]
330 {
331 public:
332  // [[ev_def:field]]
334  // [[ev_def:field]]
335  uint32_t m_generic;
336  // [[ev_def:field]]
337  uint32_t m_origin;
338 
340  {}
341  void serializeto(BitStream &bs) const override
342  {
343  bs.StorePackedBits(1,66);
344  }
345  void serializefrom(BitStream &bs) override
346  {
347  m_has_prefix = bs.GetBits(1);
348  m_generic = bs.GetPackedBits(5);
349  m_origin = bs.GetPackedBits(5);
350  }
352 
353 };
354 
355 // [[ev_def:type]]
357 {
358 public:
359  // [[ev_def:field]]
360  QString description;
361  // [[ev_def:field]]
362  QString battlecry;
363  DescriptionAndBattleCry():MapLinkEvent(MapEventTypes::evDescriptionAndBattleCry)
364  {}
365  void serializeto(BitStream &bs) const override
366  {
367  bs.StorePackedBits(1,67);
368  }
369  void serializefrom(BitStream &bs) override
370  {
371  bs.GetString(description);
372  bs.GetString(battlecry);
373  }
375 };
376 
377 // [[ev_def:type]]
378 class SwitchViewPoint final : public MapLinkEvent
379 {
380 public:
381  // [[ev_def:field]]
384  {}
385  void serializeto(BitStream &bs) const override
386  {
387  bs.StorePackedBits(1,64);
388  }
389  void serializefrom(BitStream &bs) override
390  {
391  new_viewpoint_is_firstperson = bs.GetBits(1);
392  }
394 };
395 
396 // [[ev_def:type]]
398 {
399 public:
400  // [[ev_def:field]]
401  uint8_t m_chat_type;
402  TargetChatChannelSelected():MapLinkEvent(MapEventTypes::evTargetChatChannelSelected)
403  {}
404  void serializeto(BitStream &bs) const override
405  {
406  bs.StorePackedBits(1,37);
407  }
408  void serializefrom(BitStream &bs) override
409  {
410  m_chat_type = bs.GetPackedBits(1);
411  }
413 };
414 
415 // [[ev_def:type]]
416 class ChatReconfigure final : public MapLinkEvent
417 {
418 public:
419  // [[ev_def:field]]
421  // [[ev_def:field]]
424  {}
425  void serializeto(BitStream &bs) const override
426  {
427  bs.StorePackedBits(1,38);
428  }
429  void serializefrom(BitStream &bs) override
430  {
431  m_chat_top_flags = bs.GetPackedBits(1);
432  m_chat_bottom_flags = bs.GetPackedBits(1);
433  }
435 };
436 
437 // [[ev_def:type]]
438 class PowersDockMode final : public MapLinkEvent
439 {
440 public:
441  // [[ev_def:field]]
442  bool toggle_secondary_tray = 0;
443 
445  {}
446  void serializeto(BitStream &bs) const override
447  {
448  bs.StorePackedBits(1,18);
449  bs.StoreBits(1,toggle_secondary_tray);
450  }
451  void serializefrom(BitStream &bs) override
452  {
453  toggle_secondary_tray = bs.GetBits(1);
454  }
456 };
457 
458 // [[ev_def:type]]
459 class SwitchTray final : public MapLinkEvent
460 {
461 public:
462  // [[ev_def:field]]
464 
466  {}
467  void serializeto(BitStream &bs) const override
468  {
469  bs.StorePackedBits(1,8);
470  //bs.StorePackedBits(32,tray1_num);
471  //bs.StorePackedBits(32,tray2_num);
472  tray_group.serializeto(bs);
473  }
474  void serializefrom(BitStream &bs) override
475  {
476  //tray1_num = bs.GetPackedBits(32); // Appears to correlate to Tray1's #
477  //tray2_num = bs.GetPackedBits(32); // Appears to correlate to Tray2's #
478  tray_group.serializefrom(bs);
479  }
481 };
482 
483 // [[ev_def:type]]
484 class SetKeybind final : public MapLinkEvent
485 {
486 public:
487  // [[ev_def:field]]
488  QString profile;
489  // [[ev_def:field]]
491  // [[ev_def:field]]
492  uint8_t key;
493  // [[ev_def:field]]
494  uint32_t mods;
495  // [[ev_def:field]]
496  QString command;
497  // [[ev_def:field]]
499 
501  {}
502  void serializeto(BitStream &bs) const override
503  {
504  bs.StorePackedBits(1,19);
505  }
506  void serializefrom(BitStream &bs) override
507  {
508  bs.GetString(profile); // Profile Name
509  key_and_secondary = bs.GetBits(32); // Key & Secondary Binding
510 
511  key = key_and_secondary &0xFF;
512  is_secondary = (key_and_secondary & 0xF00)==0xF00;
513 
514  mods = bs.GetBits(32); // Mods
515  bs.GetString(command); // Command
516  }
518 };
519 
520 // [[ev_def:type]]
521 class RemoveKeybind final : public MapLinkEvent
522 {
523 public:
524  // [[ev_def:field]]
525  QString profile;
526  // [[ev_def:field]]
527  uint32_t key;
528  // [[ev_def:field]]
529  uint32_t mods;
531  {}
532  void serializeto(BitStream &bs) const override
533  {
534  bs.StorePackedBits(1,20);
535  }
536  void serializefrom(BitStream &bs) override
537  {
538  bs.GetString(profile); // Profile Name
539  key = bs.GetBits(32); // Key
540  mods = bs.GetBits(32); // Mods
541  }
543 };
544 
545 // [[ev_def:type]]
546 class ResetKeybinds final : public MapLinkEvent
547 {
548 public:
550  {}
551  void serializeto(BitStream &bs) const override
552  {
553  bs.StorePackedBits(1,21);
554  }
555  void serializefrom(BitStream &/*bs*/) override
556  {
557  // TODO: Seems like nothing is received server side.
558  }
560 };
561 
562 // [[ev_def:type]]
563 class SelectKeybindProfile final : public MapLinkEvent
564 {
565 public:
566  // [[ev_def:field]]
567  QString profile;
569  {}
570  void serializeto(BitStream &bs) const override
571  {
572  bs.StorePackedBits(1,22);
573  }
574  void serializefrom(BitStream &bs) override
575  {
576  bs.GetString(profile); // Keybind Profile Name
577  }
579 };
580 
581 // [[ev_def:type]]
582 class MoveInspiration final : public MapLinkEvent
583 {
584 public:
585  // [[ev_def:field]]
586  uint32_t src_col;
587  // [[ev_def:field]]
588  uint32_t src_row;
589  // [[ev_def:field]]
590  uint32_t dest_col;
591  // [[ev_def:field]]
592  uint32_t dest_row;
594  {}
595  void serializeto(BitStream &bs) const override
596  {
597  bs.StorePackedBits(1,34);
598  }
599  void serializefrom(BitStream &bs) override
600  {
601  src_col = bs.GetPackedBits(3);
602  src_row = bs.GetPackedBits(3);
603  dest_col = bs.GetPackedBits(3);
604  dest_row = bs.GetPackedBits(3);
605  }
607 
608 };
609 } // end of SEGSEvents namespace
610 
611 #include "Messages/Map/Browser.h"
615 #include "Messages/Map/DoorAnims.h"
624 #include "Messages/Map/SceneEvent.h"
625 #include "Messages/Map/SendStance.h"
626 #include "Messages/Map/Shortcuts.h"
627 #include "Messages/Map/TailorOpen.h"
629 #include "Messages/Map/TradeInit.h"
630 #include "Messages/Map/TradeOffer.h"
635 #include "Messages/Map/Waypoints.h"
SetKeybind()
Definition: MapEvents.h:500
Definition: MapEvents.h:521
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:551
AbortQueuedPower()
Definition: MapEvents.h:315
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:176
ClientResumedRendering()
Definition: MapEvents.h:174
void serializefrom(BitStream &bs) override
Definition: MapEvents.h:199
void serializefrom(BitStream &bs) override
Definition: MapEvents.h:120
void StoreBits(uint32_t nBits, uint32_t dataBits)
Definition: BitStream.cpp:114
Definition: MapEvents.h:294
void serializefrom(BitStream &) override
Definition: MapEvents.h:39
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:532
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:502
void serializefrom(BitStream &src) override
Definition: MapEvents.h:234
void serializefrom(BitStream &) override
Definition: MapEvents.h:69
uint32_t cookie
Definition: MapEvents.h:134
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:97
uint8_t key
Definition: MapEvents.h:492
uint32_t src_row
Definition: MapEvents.h:588
void serializefrom(BitStream &bs) override
Definition: MapEvents.h:429
Definition: MapEvents.h:249
Definition: MapEvents.h:188
uint32_t key_and_secondary
Definition: MapEvents.h:490
Definition: MapEvents.h:152
uint32_t console
Definition: MapEvents.h:136
Definition: MapEvents.h:438
uint32_t m_resp
Definition: MapEvents.h:241
void serializefrom(BitStream &bs) override
Definition: MapEvents.h:143
TargetChatChannelSelected()
Definition: MapEvents.h:402
SceneRequest()
Definition: MapEvents.h:79
int m_chat_bottom_flags
Definition: MapEvents.h:422
SwitchTray()
Definition: MapEvents.h:465
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:385
Definition: MapEvents.h:108
int32_t GetPackedBits(uint32_t minbits)
Definition: BitStream.cpp:290
void serializefrom(BitStream &) override
Definition: MapEvents.h:555
Definition: MapEvents.h:563
Definition: MapEvents.h:356
void serializefrom(BitStream &) override
Definition: MapEvents.h:303
Definition: BitStream.h:34
void serializefrom(BitStream &bs) override
Definition: MapEvents.h:574
Definition: MapEvents.h:30
MapInstanceConnected(EventProcessor *evsrc, uint32_t resp, const QString &err)
Definition: MapEvents.h:221
uint32_t button_id
Definition: MapEvents.h:273
uint32_t dest_row
Definition: MapEvents.h:592
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:159
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:570
Definition: MapEvents.h:60
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:446
Definition: LinkLevelEvent.h:13
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:227
ResetKeybinds()
Definition: MapEvents.h:549
PowerTrayGroup tray_group
Definition: MapEvents.h:463
bool new_viewpoint_is_firstperson
Definition: MapEvents.h:382
Definition: MapEvents.h:416
MapEventTypes
Definition: MapEventTypes.h:14
Definition: MapEvents.h:269
void serializeto(BitStream &) const override
Definition: MapEvents.h:36
void serializefrom(BitStream &bs) override
Definition: MapEvents.h:283
Definition: MapEvents.h:76
QString contents
Definition: MapEvents.h:156
Definition: MapEvents.h:216
void StorePackedBits(uint32_t nBits, uint32_t dataBits)
Definition: BitStream.cpp:161
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:467
Definition: MapEvents.h:312
RemoveKeybind()
Definition: MapEvents.h:530
MoveInspiration()
Definition: MapEvents.h:593
void serializefrom(BitStream &) override
Definition: MapEvents.h:101
SelectKeybindProfile()
Definition: MapEvents.h:568
MapInstanceConnected()
Definition: MapEvents.h:219
Definition: MapEvents.h:546
int32_t GetBits(uint32_t nBits)
Definition: BitStream.cpp:262
Definition: MapEvents.h:582
void serializefrom(BitStream &bs) override
Definition: MapEvents.h:536
void serializefrom(BitStream &) override
Definition: MapEvents.h:54
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:81
uint32_t mods
Definition: MapEvents.h:529
uint32_t m_generic
Definition: MapEvents.h:335
void serializefrom(BitStream &bs) override
Definition: MapEvents.h:408
Definition: MapEvents.h:329
Definition: MapEvents.h:92
void StoreString(const char *str)
Definition: BitStream.cpp:204
EntitiesRequest()
Definition: MapEvents.h:95
void serializefrom(BitStream &bs) override
Definition: MapEvents.h:389
void serializeto(BitStream &) const override
Definition: MapEvents.h:51
Definition: MapEvents.h:378
UnqueueAll()
Definition: MapEvents.h:297
PowersDockMode()
Definition: MapEvents.h:444
Definition: Powers.h:304
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:256
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:404
void serializefrom(BitStream &src)
Definition: Powers.cpp:110
Definition: Entity.h:134
void serializefrom(BitStream &bs) override
Definition: MapEvents.h:163
DescriptionAndBattleCry()
Definition: MapEvents.h:363
InspirationDockMode()
Definition: MapEvents.h:254
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:299
void serializefrom(BitStream &) override
Definition: MapEvents.h:85
QString profile
Definition: MapEvents.h:567
ShortcutsRequest()
Definition: MapEvents.h:63
ClientQuit()
Definition: MapEvents.h:113
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:115
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:139
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:595
void serializefrom(BitStream &bs) override
Definition: MapEvents.h:261
uint32_t mods
Definition: MapEvents.h:494
#define EVENT_IMPL(name)
Definition: SEGSEvent.h:77
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:365
void GetString(QString &str)
Retrieves a null-terminated C-style string from the bit stream.
Definition: BitStream.cpp:331
void serializeto(BitStream &tgt) const
Definition: Powers.cpp:94
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:65
void serializefrom(BitStream &) override
Definition: MapEvents.h:321
Definition: MapEvents.h:45
bool m_has_prefix
Definition: MapEvents.h:333
ChatReconfigure()
Definition: MapEvents.h:423
QString m_fatal_error
Definition: MapEvents.h:243
QString description
Definition: MapEvents.h:360
void serializefrom(BitStream &bs) override
Definition: MapEvents.h:369
ConsoleCommand()
Definition: MapEvents.h:157
void serializefrom(BitStream &bs) override
Definition: MapEvents.h:345
void serializefrom(BitStream &bs) override
Definition: MapEvents.h:451
Definition: MapEvents.h:484
MapXferComplete()
Definition: MapEvents.h:48
void serializefrom(BitStream &) override
Definition: MapEvents.h:180
bool is_secondary
Definition: MapEvents.h:498
void serializefrom(BitStream &bs) override
Definition: MapEvents.h:599
uint8_t m_chat_type
Definition: MapEvents.h:401
uint32_t key
Definition: MapEvents.h:527
Definition: EventProcessor.h:22
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:341
Definition: MapEvents.h:459
void serializefrom(BitStream &bs) override
Definition: MapEvents.h:506
int m_chat_top_flags
Definition: MapEvents.h:420
RecvSelectedTitles()
Definition: MapEvents.h:339
uint32_t dest_col
Definition: MapEvents.h:590
DialogButton()
Definition: MapEvents.h:277
Definition: MapEvents.h:171
void serializefrom(BitStream &bs) override
Definition: MapEvents.h:474
Definition: MapEvents.h:130
QString command
Definition: MapEvents.h:496
EventSrc * src() const
Definition: SEGSEvent.h:65
uint32_t m_origin
Definition: MapEvents.h:337
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:317
CookieRequest()
Definition: MapEvents.h:137
InitiateMapXfer()
Definition: MapEvents.h:33
MiniMapState()
Definition: MapEvents.h:193
bool success
Definition: MapEvents.h:275
QString profile
Definition: MapEvents.h:488
QString profile
Definition: MapEvents.h:525
SwitchViewPoint()
Definition: MapEvents.h:383
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:195
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:425
Definition: MapEvents.h:397
QString battlecry
Definition: MapEvents.h:362
void serializeto(BitStream &bs) const override
Definition: MapEvents.h:279
uint32_t src_col
Definition: MapEvents.h:586
uint32_t GetReadableBits() const
Definition: BitStream.h:81