_________ __                 __
        /   _____//  |_____________ _/  |______     ____  __ __  ______
        \_____  \\   __\_  __ \__  \\   __\__  \   / ___\|  |  \/  ___/
        /        \|  |  |  | \// __ \|  |  / __ \_/ /_/  >  |  /\___ \
       /_______  /|__|  |__|  (____  /__| (____  /\___  /|____//____  >
               \/                  \/          \//_____/            \/
    ______________________                           ______________________
                          T H E   W A R   B E G I N S
                   Stratagus - A free fantasy real time strategy game engine

net_message.h
Go to the documentation of this file.
1 // _________ __ __
2 // / _____// |_____________ _/ |______ ____ __ __ ______
3 // \_____ \\ __\_ __ \__ \\ __\__ \ / ___\| | \/ ___/
4 // / \| | | | \// __ \| | / __ \_/ /_/ > | /\___ |
5 // /_______ /|__| |__| (____ /__| (____ /\___ /|____//____ >
6 // \/ \/ \//_____/ \/
7 // ______________________ ______________________
8 // T H E W A R B E G I N S
9 // Stratagus - A free fantasy real time strategy game engine
10 //
12 //
13 // (c) Copyright 2013 by Joris Dauphin
14 //
15 // This program is free software; you can redistribute it and/or modify
16 // it under the terms of the GNU General Public License as published by
17 // the Free Software Foundation; only version 2 of the License.
18 //
19 // This program is distributed in the hope that it will be useful,
20 // but WITHOUT ANY WARRANTY; without even the implied warranty of
21 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 // GNU General Public License for more details.
23 //
24 // You should have received a copy of the GNU General Public License
25 // along with this program; if not, write to the Free Software
26 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
27 // 02111-1307, USA.
28 
29 #ifndef NET_MESSAGE_H
30 #define NET_MESSAGE_H
31 
33 
34 #include <stdint.h>
35 #include <vector>
36 
37 #include "settings.h"
38 
39 /*----------------------------------------------------------------------------
40 -- Declarations
41 ----------------------------------------------------------------------------*/
42 
47 #define NetPlayerNameSize 16
48 
49 #define MaxNetworkCommands 9
50 
51 
55 {
56 public:
58  size_t Serialize(unsigned char *buf) const;
59  size_t Deserialize(const unsigned char *buf);
60  void Clear();
61  static size_t Size() { return 4 + 2 + 2 + NetPlayerNameSize; }
62 
63  void SetName(const char *name);
64 
65  bool IsValid() { return (PlyNr != 0) || (PlyName[0] != '\0'); }
66 
67  uint32_t Host;
68  uint16_t Port;
69  uint16_t PlyNr;
71 };
72 
73 ENUM_CLASS SlotOption : uint8_t {
74  Available,
76  Closed
77 };
78 
79 #if USING_TOLUAPP
81 public:
82  ServerSetupStateRacesArray() : p(nullptr) {}
83  int8_t& operator[](int idx) { return p[idx].Race; }
84  int8_t& operator[](int idx) const { return p[idx].Race; }
86 };
87 #endif
88 
108 {
109 public:
111  size_t Serialize(unsigned char *p) const;
112  size_t Deserialize(const unsigned char *p);
113  static size_t Size() {
114  // This must be kept in sync with GameSettings
115  return \
116  1 + // DefeatReveal
117  1 + // Difficulty
118  1 + // FoV
119  1 + // GameType
120  1 + // NumUnits
121  1 + // Opponents
122  1 + // Resources
123  1 + // RevealMap
124  4 + // Bitfield
125  4 * PlayerMax + // Races, PlayerColors, Teams, Types
126  1 * PlayerMax + // CompOpt
127  1 * PlayerMax; // Ready
128  }
129  void Clear();
130 
131  bool operator == (const CServerSetup &rhs) const;
132  bool operator != (const CServerSetup &rhs) const { return !(*this == rhs); }
133 public:
136  uint8_t Ready[PlayerMax];
137  // Fill in here...
138 
139 #if USING_TOLUAPP
140  // TODO: can be removed once tolua++ is gone
141  inline char get_ResourcesOption() { return (char)ServerGameSettings.Resources; }
142  inline char get_UnitsOption() { return (char)ServerGameSettings.NumUnits; }
143  inline char get_FogOfWar() { return (char)!ServerGameSettings.NoFogOfWar; }
144  inline char get_Inside() { return (char)ServerGameSettings.Inside; }
145  inline char get_RevealMap() { return (char)ServerGameSettings.RevealMap; }
146  inline char get_GameTypeOption() { return (char)ServerGameSettings.GameType; }
147  inline char get_Difficulty() { return (char)ServerGameSettings.Difficulty; }
148  inline char get_Opponents() { return (char)ServerGameSettings.Opponents; }
149  inline char set_ResourcesOption(char v) { return ServerGameSettings.Resources = v; }
150  inline char set_UnitsOption(char v) { return ServerGameSettings.NumUnits = v; }
151  inline char set_FogOfWar(char v) { return ServerGameSettings.NoFogOfWar = !v; }
152  inline char set_Inside(char v) { return ServerGameSettings.Inside = v; }
153  inline char set_RevealMap(char v) { return ServerGameSettings.RevealMap = (MapRevealModes)v; }
154  inline char set_GameTypeOption(char v) { return ServerGameSettings.GameType = (GameTypes)v; }
155  inline char set_Difficulty(char v) { return ServerGameSettings.Difficulty = v; }
156  inline char set_Opponents(char v) { return ServerGameSettings.Opponents = v; }
157 
160  if (racesArray.p == nullptr) {
162  }
163  return &racesArray;
164  }
165 #endif
166 };
167 
174 
179 
182 
187 
191 
193 
196 
198 };
199 
201 {
202 public:
204  CInitMessage_Header(unsigned char type, unsigned char subtype) :
205  type(type),
206  subtype(subtype)
207  {}
208 
209  unsigned char GetType() const { return type; }
210  unsigned char GetSubType() const { return subtype; }
211 
212  size_t Serialize(unsigned char *p) const;
213  size_t Deserialize(const unsigned char *p);
214  static size_t Size() { return 2; }
215 private:
216  unsigned char type;
217  unsigned char subtype;
218 };
219 
221 {
222 public:
224  explicit CInitMessage_Hello(const char *name);
225  const CInitMessage_Header &GetHeader() const { return header; }
226  const unsigned char *Serialize() const;
227  void Deserialize(const unsigned char *p);
228  static size_t Size() { return CInitMessage_Header::Size() + NetPlayerNameSize + 2 * 4; }
229 private:
230  CInitMessage_Header header;
231 public:
233  int32_t Stratagus;
234  uint32_t Version;
235 };
236 
238 {
239 public:
241  const CInitMessage_Header &GetHeader() const { return header; }
242  const unsigned char *Serialize() const;
243  void Deserialize(const unsigned char *p);
244  static size_t Size() { return CInitMessage_Header::Size() + 1 + PlayerMax * CNetworkHost::Size(); }
245 private:
246  CInitMessage_Header header;
247 public:
248  uint8_t clientIndex;
250 };
251 
253 {
254 public:
256  const CInitMessage_Header &GetHeader() const { return header; }
257  const unsigned char *Serialize() const;
258  void Deserialize(const unsigned char *p);
259  static size_t Size() { return CInitMessage_Header::Size() + 4; }
260 private:
261  CInitMessage_Header header;
262 public:
263  int32_t Stratagus;
264 };
265 
267 {
268 public:
270  const CInitMessage_Header &GetHeader() const { return header; }
271  const unsigned char *Serialize() const;
272  void Deserialize(const unsigned char *p);
273  static size_t Size() { return CInitMessage_Header::Size() + 4; }
274 private:
275  CInitMessage_Header header;
276 public:
277  uint32_t Version;
278 };
279 
281 {
282 public:
284  const CInitMessage_Header &GetHeader() const { return header; }
285  const unsigned char *Serialize() const;
286  void Deserialize(const unsigned char *p);
287  static size_t Size() { return CInitMessage_Header::Size() + PlayerMax * CNetworkHost::Size() + 2 + 4 + 4; }
288 private:
289  CInitMessage_Header header;
290 public:
292  uint16_t NetHostSlot;
293  int32_t Lag;
295 };
296 
298 {
299 public:
301  CInitMessage_Map(const char *path, uint32_t mapUID);
302  const CInitMessage_Header &GetHeader() const { return header; }
303  const unsigned char *Serialize() const;
304  void Deserialize(const unsigned char *p);
305  static size_t Size() { return CInitMessage_Header::Size() + 256 + 4; }
306 private:
307  CInitMessage_Header header;
308 public:
309  char MapPath[256];
310  uint32_t MapUID;
311 };
312 
314 {
315 public:
317  CInitMessage_MapFileFragment(const char *path, const char *data, uint32_t dataSize, uint32_t Fragment);
318  CInitMessage_MapFileFragment(uint32_t Fragment);
319  const CInitMessage_Header &GetHeader() const { return header; }
320  const unsigned char *Serialize() const;
321  void Deserialize(const unsigned char *p);
322  static size_t Size() { return CInitMessage_Header::Size() + 384 + 1 + 2 + 4; }
323 private:
324  CInitMessage_Header header;
325 public:
326  char Data[384]; // path directly followed by data fragment
327  uint8_t PathSize;
328  uint16_t DataSize;
329  uint32_t FragmentIndex;
330 };
331 
333 {
334 public:
336  CInitMessage_State(int type, const CServerSetup &data);
337  const CInitMessage_Header &GetHeader() const { return header; }
338  const unsigned char *Serialize() const;
339  void Deserialize(const unsigned char *p);
340  static size_t Size() { return CInitMessage_Header::Size() + CServerSetup::Size(); }
341 private:
342  CInitMessage_Header header;
343 public:
345 };
346 
348 {
349 public:
351  const CInitMessage_Header &GetHeader() const { return header; }
352  const unsigned char *Serialize() const;
353  void Deserialize(const unsigned char *p);
354  static size_t Size() { return CInitMessage_Header::Size() + CNetworkHost::Size() * PlayerMax; }
355 private:
356  CInitMessage_Header header;
357 public:
359 };
360 
370 
375 
377 
402 
404 
405  // ATTN: __MUST__ be last due to spellid encoding!!!
407 };
408 
420 };
421 
426 {
427 public:
428  CNetworkCommand() : Unit(0), X(0), Y(0), Dest(0) {}
429  void Clear() { this->Unit = this->X = this->Y = this->Dest = 0; }
430 
431  size_t Serialize(unsigned char *buf) const;
432  size_t Deserialize(const unsigned char *buf);
433  static size_t Size() { return 2 + 2 + 2 + 2; }
434 
435 public:
436  uint16_t Unit;
437  uint16_t X;
438  uint16_t Y;
439  uint16_t Dest;
440 };
441 
446 {
447 public:
449 
450  size_t Serialize(unsigned char *buf) const;
451  size_t Deserialize(const unsigned char *buf);
452  static size_t Size() { return 1 + 1 + 2 + 2 + 2; }
453 
454  uint8_t ExtendedType;
455  uint8_t Arg1;
456  uint16_t Arg2;
457  uint16_t Arg3;
458  uint16_t Arg4;
459 };
460 
465 {
466 public:
467  size_t Serialize(unsigned char *buf) const;
468  size_t Deserialize(const unsigned char *buf);
469  size_t Size() const;
470 
471 public:
472  std::string Text;
473 };
474 
479 {
480 public:
482  size_t Serialize(unsigned char *buf) const;
483  size_t Deserialize(const unsigned char *buf);
484  static size_t Size() { return 4 + 4; };
485 
486 public:
487  uint32_t syncSeed;
488  uint32_t syncHash;
489 };
490 
495 {
496 public:
498  size_t Serialize(unsigned char *buf) const;
499  size_t Deserialize(const unsigned char *buf);
500  static size_t Size() { return 2; };
501 
502 public:
503  uint16_t player;
504 };
505 
510 {
511 public:
513 
514  size_t Serialize(unsigned char *buf) const;
515  size_t Deserialize(const unsigned char *buf);
516  size_t Size() const;
517 
518 public:
519  uint16_t player;
520  std::vector<uint16_t> Units;
521 };
522 
529 {
530 public:
532  {
533  Cycle = 0;
534  memset(Type, 0, sizeof(Type));
535  OrigPlayer = 255;
536  }
537 
538  size_t Serialize(unsigned char *buf) const;
539  size_t Deserialize(const unsigned char *buf);
540  static size_t Size() { return 1 + 1 + 1 * MaxNetworkCommands; }
541 
543  uint8_t Cycle;
544  uint8_t OrigPlayer;
545 };
546 
553 {
554 public:
555  size_t Serialize(unsigned char *buf, int numcommands) const;
556  void Deserialize(const unsigned char *buf, unsigned int len, int *numcommands);
557  size_t Size(int numcommands) const;
558 
560  std::vector<unsigned char> Command[MaxNetworkCommands];
561 };
562 
564 
565 #endif // !NET_MESSAGE_H
CServerSetup::set_Inside
char set_Inside(char v)
Definition: net_message.h:152
CInitMessage_LuaFilesMismatch
Definition: net_message.h:266
CInitMessage_EngineMismatch::Deserialize
void Deserialize(const unsigned char *p)
Definition: net_message.cpp:421
CNetworkSelection::Units
std::vector< uint16_t > Units
Definition: net_message.h:520
MessageCommandTrain
@ MessageCommandTrain
Unit command return goods.
Definition: net_message.h:396
MessageCommandResearch
@ MessageCommandResearch
Unit command cancel upgrade.
Definition: net_message.h:400
CInitMessage_Welcome::Serialize
const unsigned char * Serialize() const
Definition: net_message.cpp:464
CInitMessage_Hello::PlyName
char PlyName[NetPlayerNameSize]
Definition: net_message.h:232
MessageCommandCancelResearch
@ MessageCommandCancelResearch
Unit command research.
Definition: net_message.h:401
MessageCommandPatrol
@ MessageCommandPatrol
Unit command attack ground.
Definition: net_message.h:387
ICMServerQuit
@ ICMServerQuit
Ack StateInfo change.
Definition: net_message.h:188
CNetworkHost::Size
static size_t Size()
Definition: net_message.h:61
ExtendedMessageSharedVision
@ ExtendedMessageSharedVision
Change diplomacy.
Definition: net_message.h:414
CNetworkCommand
Definition: net_message.h:425
ICMMapNeeded
@ ICMMapNeeded
Client answers I am here.
Definition: net_message.h:197
CInitMessage_MapFileFragment::DataSize
uint16_t DataSize
Definition: net_message.h:328
ServerSetupStateRacesArray
Definition: net_message.h:80
CServerSetup::get_UnitsOption
char get_UnitsOption()
Definition: net_message.h:142
CServerSetup::get_Opponents
char get_Opponents()
Definition: net_message.h:148
CNetworkPacketHeader::Type
uint8_t Type[MaxNetworkCommands]
Definition: net_message.h:542
ServerSetupStateRacesArray::operator[]
int8_t & operator[](int idx)
Definition: net_message.h:83
MessageCommandCancelUpgrade
@ MessageCommandCancelUpgrade
Unit command upgrade.
Definition: net_message.h:399
CServerSetup::CServerSetup
CServerSetup()
Definition: net_message.h:110
Settings::GameType
GameTypes GameType
Terrain type (summer,winter,...)
Definition: settings.h:242
CServerSetup::set_UnitsOption
char set_UnitsOption(char v)
Definition: net_message.h:150
CInitMessage_Config::Deserialize
void Deserialize(const unsigned char *p)
Definition: net_message.cpp:392
CNetworkHost::Host
uint32_t Host
Definition: net_message.h:67
CNetworkPacketHeader::OrigPlayer
uint8_t OrigPlayer
Destination game cycle.
Definition: net_message.h:544
MessageCommandResource
@ MessageCommandResource
Unit command resource location.
Definition: net_message.h:394
CInitMessage_LuaFilesMismatch::GetHeader
const CInitMessage_Header & GetHeader() const
Definition: net_message.h:270
settings.h
MessageCommandAttack
@ MessageCommandAttack
Unit command autorepair.
Definition: net_message.h:385
CInitMessage_Header::CInitMessage_Header
CInitMessage_Header()
Definition: net_message.h:203
ICMHello
@ ICMHello
Definition: net_message.h:172
ICMEngineMismatch
@ ICMEngineMismatch
Setup message configure clients.
Definition: net_message.h:175
CNetworkCommand::X
uint16_t X
Command for unit.
Definition: net_message.h:437
CNetworkPacketHeader
Definition: net_message.h:528
CInitMessage_MapFileFragment::CInitMessage_MapFileFragment
CInitMessage_MapFileFragment()
Definition: net_message.h:316
CInitMessage_EngineMismatch::Stratagus
int32_t Stratagus
Definition: net_message.h:263
ExtendedMessageMapFieldsOpacityDB
@ ExtendedMessageMapFieldsOpacityDB
Change field of view type (shadow casting or radial). Used for debug purposes.
Definition: net_message.h:417
CNetworkPacketHeader::Deserialize
size_t Deserialize(const unsigned char *buf)
Definition: net_message.cpp:791
CInitMessage_Header::Serialize
size_t Serialize(unsigned char *p) const
Definition: net_message.cpp:322
CInitMessage_Header
Definition: net_message.h:200
CNetworkPacketHeader::Size
static size_t Size()
Definition: net_message.h:540
_ic_message_subtype_
_ic_message_subtype_
Definition: net_message.h:171
CInitMessage_Map
Definition: net_message.h:297
CNetworkExtendedCommand::ExtendedType
uint8_t ExtendedType
Definition: net_message.h:454
ExtendedMessageFieldOfViewDB
@ ExtendedMessageFieldOfViewDB
Change Auto targetting algorithm. Used for debug purposes.
Definition: net_message.h:416
CNetworkPacket::Deserialize
void Deserialize(const unsigned char *buf, unsigned int len, int *numcommands)
Definition: net_message.cpp:818
CNetworkExtendedCommand::CNetworkExtendedCommand
CNetworkExtendedCommand()
Definition: net_message.h:448
MessageCommandGround
@ MessageCommandGround
Unit command attack.
Definition: net_message.h:386
MessageCommandBoard
@ MessageCommandBoard
Unit command patrol.
Definition: net_message.h:388
CInitMessage_State::State
CServerSetup State
Definition: net_message.h:344
Settings::Difficulty
int8_t Difficulty
Preset # of ai-opponents.
Definition: settings.h:241
Settings::RevealMap
MapRevealModes RevealMap
Which field of view is used - important to be shared for unit sight.
Definition: settings.h:244
CNetworkHost::Clear
void Clear()
Definition: net_message.cpp:222
CNetworkHost::PlyName
char PlyName[NetPlayerNameSize]
Player number.
Definition: net_message.h:70
CNetworkCommandSync
Definition: net_message.h:478
GameTypes
ENUM_CLASS GameTypes
Definition: settings.h:184
CNetworkExtendedCommand::Arg2
uint16_t Arg2
Argument 1.
Definition: net_message.h:456
MessageInit_FromClient
@ MessageInit_FromClient
When Nothing Is Happening.
Definition: net_message.h:368
_extended_message_type_
_extended_message_type_
Definition: net_message.h:412
CInitMessage_Header::Size
static size_t Size()
Definition: net_message.h:214
CInitMessage_Config
Definition: net_message.h:237
CInitMessage_EngineMismatch::CInitMessage_EngineMismatch
CInitMessage_EngineMismatch()
Definition: net_message.cpp:405
CInitMessage_Resync::Size
static size_t Size()
Definition: net_message.h:354
CInitMessage_Hello::Size
static size_t Size()
Definition: net_message.h:228
CInitMessage_MapFileFragment::Serialize
const unsigned char * Serialize() const
Definition: net_message.cpp:544
CServerSetup::operator!=
bool operator!=(const CServerSetup &rhs) const
Definition: net_message.h:132
MessageInit_FromServer
@ MessageInit_FromServer
Start connection.
Definition: net_message.h:369
CNetworkCommandSync::Size
static size_t Size()
Definition: net_message.h:484
MessageChat
@ MessageChat
Resend message.
Definition: net_message.h:376
ServerSetupStateRacesArray::p
SettingsPresets * p
Definition: net_message.h:85
CServerSetup::get_ResourcesOption
char get_ResourcesOption()
Client ready state.
Definition: net_message.h:141
CInitMessage_State::Size
static size_t Size()
Definition: net_message.h:340
CNetworkPacketHeader::Cycle
uint8_t Cycle
Commands in packet.
Definition: net_message.h:543
CNetworkChat::Text
std::string Text
Definition: net_message.h:472
CServerSetup::set_Opponents
char set_Opponents(char v)
Definition: net_message.h:156
ExtendedMessageRevealMapDB
@ ExtendedMessageRevealMapDB
Change opaque flag for forest, rocks or walls. Used for debug purposes.
Definition: net_message.h:418
MessageQuit
@ MessageQuit
Update a Selection from Team Player.
Definition: net_message.h:373
CInitMessage_Resync::GetHeader
const CInitMessage_Header & GetHeader() const
Definition: net_message.h:351
CInitMessage_LuaFilesMismatch::Serialize
const unsigned char * Serialize() const
Definition: net_message.cpp:437
CServerSetup::Ready
uint8_t Ready[PlayerMax]
Free slot option selection {"Available", "Computer", "Closed" }.
Definition: net_message.h:136
CInitMessage_Welcome::Size
static size_t Size()
Definition: net_message.h:287
CInitMessage_EngineMismatch
Definition: net_message.h:252
CServerSetup::operator==
bool operator==(const CServerSetup &rhs) const
Definition: net_message.cpp:311
CNetworkHost::SetName
void SetName(const char *name)
Definition: net_message.cpp:230
CNetworkExtendedCommand::Arg4
uint16_t Arg4
Argument 3.
Definition: net_message.h:458
CServerSetup::get_FogOfWar
char get_FogOfWar()
Definition: net_message.h:143
SettingsPresets::Race
int8_t Race
AI script for computer to use.
Definition: settings.h:136
CNetworkCommandQuit::Serialize
size_t Serialize(unsigned char *buf) const
Definition: net_message.cpp:720
CInitMessage_Welcome::gameCyclesPerUpdate
int32_t gameCyclesPerUpdate
Lag time.
Definition: net_message.h:294
CNetworkPacketHeader::CNetworkPacketHeader
CNetworkPacketHeader()
Definition: net_message.h:531
SlotOption
ENUM_CLASS SlotOption
Definition: net_message.h:74
MessageCommandMove
@ MessageCommandMove
Unit command follow.
Definition: net_message.h:382
CServerSetup::set_FogOfWar
char set_FogOfWar(char v)
Definition: net_message.h:151
CInitMessage_State::Deserialize
void Deserialize(const unsigned char *p)
Definition: net_message.cpp:586
CServerSetup::Size
static size_t Size()
Definition: net_message.h:113
MessageSync
@ MessageSync
Connection reply.
Definition: net_message.h:371
MessageCommandStand
@ MessageCommandStand
Unit command stop.
Definition: net_message.h:379
CInitMessage_State::Serialize
const unsigned char * Serialize() const
Definition: net_message.cpp:576
CInitMessage_Map::CInitMessage_Map
CInitMessage_Map()
Definition: net_message.h:300
ICMGameFull
@ ICMGameFull
MAP UID doesn't match.
Definition: net_message.h:180
MessageCommandRepair
@ MessageCommandRepair
Unit command move.
Definition: net_message.h:383
CNetworkPacketHeader::Serialize
size_t Serialize(unsigned char *buf) const
Definition: net_message.cpp:779
MessageCommandCancelTrain
@ MessageCommandCancelTrain
Unit command train.
Definition: net_message.h:397
CNetworkExtendedCommand
Definition: net_message.h:445
CServerSetup::get_Inside
char get_Inside()
Definition: net_message.h:144
CNetworkPacket::Size
size_t Size(int numcommands) const
Definition: net_message.cpp:831
MessageCommandSpellCast
@ MessageCommandSpellCast
Command is the next byte.
Definition: net_message.h:406
CInitMessage_Hello::Deserialize
void Deserialize(const unsigned char *p)
Definition: net_message.cpp:362
Settings::Opponents
int8_t Opponents
Preset # of units.
Definition: settings.h:240
CServerSetup::get_RevealMap
char get_RevealMap()
Definition: net_message.h:145
CInitMessage_Welcome::NetHostSlot
uint16_t NetHostSlot
Participants information.
Definition: net_message.h:292
CInitMessage_Hello::Stratagus
int32_t Stratagus
Name of player.
Definition: net_message.h:233
ServerSetupStateRacesArray::ServerSetupStateRacesArray
ServerSetupStateRacesArray()
Definition: net_message.h:82
CServerSetup::set_RevealMap
char set_RevealMap(char v)
Definition: net_message.h:153
CNetworkHost::CNetworkHost
CNetworkHost()
Definition: net_message.h:57
CInitMessage_Welcome::GetHeader
const CInitMessage_Header & GetHeader() const
Definition: net_message.h:284
CNetworkPacket::Header
CNetworkPacketHeader Header
Definition: net_message.h:559
CInitMessage_Welcome
Definition: net_message.h:280
CInitMessage_EngineMismatch::Serialize
const unsigned char * Serialize() const
Definition: net_message.cpp:411
CInitMessage_Header::Deserialize
size_t Deserialize(const unsigned char *p)
Definition: net_message.cpp:330
CNetworkExtendedCommand::Arg3
uint16_t Arg3
Argument 2.
Definition: net_message.h:457
MessageExtendedCommand
@ MessageExtendedCommand
Unit command cancel research.
Definition: net_message.h:403
CNetworkPacket
Definition: net_message.h:552
CNetworkSelection
Definition: net_message.h:509
CInitMessage_MapFileFragment::Size
static size_t Size()
Definition: net_message.h:322
CInitMessage_EngineMismatch::Size
static size_t Size()
Definition: net_message.h:259
CNetworkCommand::Size
static size_t Size()
Definition: net_message.h:433
CInitMessage_State::GetHeader
const CInitMessage_Header & GetHeader() const
Definition: net_message.h:337
MessageCommandAutoRepair
@ MessageCommandAutoRepair
Unit command repair.
Definition: net_message.h:384
CNetworkHost::PlyNr
uint16_t PlyNr
Port on host.
Definition: net_message.h:69
CNetworkChat
Definition: net_message.h:464
CNetworkChat::Deserialize
size_t Deserialize(const unsigned char *buf)
Definition: net_message.cpp:682
Settings::Presets
SettingsPresets Presets[PlayerMax]
Multiplayer or single player.
Definition: settings.h:235
CNetworkExtendedCommand::Serialize
size_t Serialize(unsigned char *buf) const
Definition: net_message.cpp:649
MessageCommandReturn
@ MessageCommandReturn
Unit command resource.
Definition: net_message.h:395
Computer
ENUM_CLASS Computer
Definition: net_message.h:75
PlayerMax
constexpr unsigned char PlayerMax
Definition: settings.h:62
CInitMessage_MapFileFragment::FragmentIndex
uint32_t FragmentIndex
Definition: net_message.h:329
CNetworkHost
Definition: net_message.h:54
CInitMessage_Config::Serialize
const unsigned char * Serialize() const
Definition: net_message.cpp:379
ICMEngineConfMismatch
@ ICMEngineConfMismatch
Network protocol version doesn't match.
Definition: net_message.h:177
CInitMessage_Map::Deserialize
void Deserialize(const unsigned char *p)
Definition: net_message.cpp:512
CInitMessage_MapFileFragment::Data
char Data[384]
Definition: net_message.h:326
CNetworkExtendedCommand::Deserialize
size_t Deserialize(const unsigned char *buf)
Definition: net_message.cpp:660
ICMAYT
@ ICMAYT
Client is ready to run.
Definition: net_message.h:194
CNetworkCommand::Deserialize
size_t Deserialize(const unsigned char *buf)
Definition: net_message.cpp:635
CNetworkCommand::CNetworkCommand
CNetworkCommand()
Definition: net_message.h:428
Settings::NoFogOfWar
unsigned NoFogOfWar
Definition: settings.h:248
MessageCommandFollow
@ MessageCommandFollow
Unit command defend.
Definition: net_message.h:381
CInitMessage_State::CInitMessage_State
CInitMessage_State()
Definition: net_message.h:335
CNetworkCommandSync::CNetworkCommandSync
CNetworkCommandSync()
Definition: net_message.h:481
MapRevealModes
ENUM_CLASS MapRevealModes
Definition: settings.h:209
CServerSetup::ServerGameSettings
Settings ServerGameSettings
Definition: net_message.h:134
CInitMessage_Config::Size
static size_t Size()
Definition: net_message.h:244
MessageResend
@ MessageResend
Quit game.
Definition: net_message.h:374
CInitMessage_Config::clientIndex
uint8_t clientIndex
Definition: net_message.h:248
CNetworkCommandSync::Deserialize
size_t Deserialize(const unsigned char *buf)
Definition: net_message.cpp:708
CNetworkCommandQuit
Definition: net_message.h:494
CInitMessage_Hello::GetHeader
const CInitMessage_Header & GetHeader() const
Definition: net_message.h:225
CNetworkCommand::Dest
uint16_t Dest
Map position Y.
Definition: net_message.h:439
CNetworkPacket::Command
std::vector< unsigned char > Command[MaxNetworkCommands]
Packet Header Info.
Definition: net_message.h:560
MessageCommandDismiss
@ MessageCommandDismiss
Unit command explore.
Definition: net_message.h:392
CNetworkCommand::Unit
uint16_t Unit
Definition: net_message.h:436
CInitMessage_LuaFilesMismatch::Size
static size_t Size()
Definition: net_message.h:273
ICMWelcome
@ ICMWelcome
No player slots available.
Definition: net_message.h:181
ServerSetupStateRacesArray::operator[]
int8_t & operator[](int idx) const
Definition: net_message.h:84
CInitMessage_Hello
Definition: net_message.h:220
CInitMessage_LuaFilesMismatch::CInitMessage_LuaFilesMismatch
CInitMessage_LuaFilesMismatch()
Definition: net_message.cpp:431
CInitMessage_MapFileFragment::Deserialize
void Deserialize(const unsigned char *p)
Definition: net_message.cpp:557
Settings
Definition: settings.h:230
CNetworkExtendedCommand::Size
static size_t Size()
Definition: net_message.h:452
Settings::Inside
unsigned Inside
if dynamic fog of war is disabled
Definition: settings.h:249
ICMWaiting
@ ICMWaiting
Acknowledge for new client connections.
Definition: net_message.h:183
CServerSetup::get_Difficulty
char get_Difficulty()
Definition: net_message.h:147
CNetworkHost::Deserialize
size_t Deserialize(const unsigned char *buf)
Definition: net_message.cpp:211
CServerSetup::set_ResourcesOption
char set_ResourcesOption(char v)
Definition: net_message.h:149
CServerSetup::racesArray
ServerSetupStateRacesArray racesArray
Definition: net_message.h:158
MessageNone
@ MessageNone
Definition: net_message.h:367
CNetworkChat::Size
size_t Size() const
Definition: net_message.cpp:689
CInitMessage_Map::MapUID
uint32_t MapUID
Definition: net_message.h:310
CInitMessage_Welcome::Deserialize
void Deserialize(const unsigned char *p)
Definition: net_message.cpp:479
ExtendedMessageAutoTargetingDB
@ ExtendedMessageAutoTargetingDB
Change shared vision.
Definition: net_message.h:415
CNetworkCommandQuit::Deserialize
size_t Deserialize(const unsigned char *buf)
Definition: net_message.cpp:727
MessageCommandBuild
@ MessageCommandBuild
Unit command unload.
Definition: net_message.h:390
CNetworkExtendedCommand::Arg1
uint8_t Arg1
Extended network command type.
Definition: net_message.h:455
CNetworkCommand::Y
uint16_t Y
Map position X.
Definition: net_message.h:438
CNetworkCommandSync::syncSeed
uint32_t syncSeed
Definition: net_message.h:484
CInitMessage_Map::Serialize
const unsigned char * Serialize() const
Definition: net_message.cpp:501
ICMGoodBye
@ ICMGoodBye
Server has quit game.
Definition: net_message.h:189
CInitMessage_MapFileFragment::GetHeader
const CInitMessage_Header & GetHeader() const
Definition: net_message.h:319
CInitMessage_Header::GetType
unsigned char GetType() const
Definition: net_message.h:209
CInitMessage_Hello::CInitMessage_Hello
CInitMessage_Hello()
Definition: net_message.h:223
CNetworkChat::Serialize
size_t Serialize(unsigned char *buf) const
Definition: net_message.cpp:675
CInitMessage_Config::hosts
CNetworkHost hosts[PlayerMax]
index of the receiving client in the compacted host array
Definition: net_message.h:249
ICMLuaFilesMismatch
@ ICMLuaFilesMismatch
Stratagus engine version doesn't match.
Definition: net_message.h:176
CServerSetup::get_Race
ServerSetupStateRacesArray * get_Race()
Definition: net_message.h:159
CNetworkSelection::Serialize
size_t Serialize(unsigned char *buf) const
Definition: net_message.cpp:744
Closed
ENUM_CLASS Closed
Definition: net_message.h:77
CNetworkSelection::Deserialize
size_t Deserialize(const unsigned char *buf)
Definition: net_message.cpp:756
Settings::Resources
int8_t Resources
Definition: settings.h:238
MaxNetworkCommands
#define MaxNetworkCommands
Definition: net_message.h:49
MessageSelection
@ MessageSelection
Heart beat.
Definition: net_message.h:372
CNetworkSelection::CNetworkSelection
CNetworkSelection()
Definition: net_message.h:512
ICMIAH
@ ICMIAH
Server asks are you there.
Definition: net_message.h:195
CInitMessage_Welcome::Lag
int32_t Lag
slot for the receiving host in the server host array
Definition: net_message.h:293
MessageCommandStop
@ MessageCommandStop
Chat message.
Definition: net_message.h:378
ICMMapUidMismatch
@ ICMMapUidMismatch
UNUSED:Engine configuration isn't identical.
Definition: net_message.h:178
CInitMessage_EngineMismatch::GetHeader
const CInitMessage_Header & GetHeader() const
Definition: net_message.h:256
ICMGo
@ ICMGo
Client has left game.
Definition: net_message.h:192
CServerSetup::get_GameTypeOption
char get_GameTypeOption()
Definition: net_message.h:146
CInitMessage_LuaFilesMismatch::Deserialize
void Deserialize(const unsigned char *p)
Definition: net_message.cpp:447
CServerSetup::Deserialize
size_t Deserialize(const unsigned char *p)
Definition: net_message.cpp:272
CInitMessage_Resync::CInitMessage_Resync
CInitMessage_Resync()
Definition: net_message.cpp:596
ExtendedMessageDiplomacy
@ ExtendedMessageDiplomacy
Definition: net_message.h:413
Settings::NumUnits
int8_t NumUnits
Preset resource factor.
Definition: settings.h:239
_message_type_
_message_type_
Definition: net_message.h:366
CNetworkSelection::Size
size_t Size() const
Definition: net_message.cpp:770
SettingsPresets
Definition: settings.h:133
CServerSetup::set_GameTypeOption
char set_GameTypeOption(char v)
Definition: net_message.h:154
CServerSetup::Serialize
size_t Serialize(unsigned char *p) const
Definition: net_message.cpp:239
CInitMessage_Welcome::CInitMessage_Welcome
CInitMessage_Welcome()
Definition: net_message.cpp:457
CNetworkSelection::player
uint16_t player
Definition: net_message.h:519
CNetworkCommandSync::Serialize
size_t Serialize(unsigned char *buf) const
Definition: net_message.cpp:700
MessageCommandExplore
@ MessageCommandExplore
Unit command build building.
Definition: net_message.h:391
CServerSetup::set_Difficulty
char set_Difficulty(char v)
Definition: net_message.h:155
CNetworkHost::Serialize
size_t Serialize(unsigned char *buf) const
Definition: net_message.cpp:199
MessageCommandResourceLoc
@ MessageCommandResourceLoc
Unit command dismiss unit.
Definition: net_message.h:393
CInitMessage_State
Definition: net_message.h:332
CInitMessage_Config::GetHeader
const CInitMessage_Header & GetHeader() const
Definition: net_message.h:241
CInitMessage_Resync::Serialize
const unsigned char * Serialize() const
Definition: net_message.cpp:601
CInitMessage_Welcome::hosts
CNetworkHost hosts[PlayerMax]
Definition: net_message.h:291
CNetworkHost::Port
uint16_t Port
Host address.
Definition: net_message.h:68
CInitMessage_Resync
Definition: net_message.h:347
CServerSetup::Clear
void Clear()
Definition: net_message.cpp:304
CNetworkCommand::Clear
void Clear()
Definition: net_message.h:429
CNetworkCommandQuit::player
uint16_t player
Definition: net_message.h:500
CNetworkCommandQuit::Size
static size_t Size()
Definition: net_message.h:500
NetPlayerNameSize
#define NetPlayerNameSize
Definition: net_message.h:47
CInitMessage_Hello::Serialize
const unsigned char * Serialize() const
Definition: net_message.cpp:350
CServerSetup::CompOpt
SlotOption CompOpt[PlayerMax]
Definition: net_message.h:135
ICMMap
@ ICMMap
Client has received Welcome and is waiting for Map/State.
Definition: net_message.h:184
ICMState
@ ICMState
MapInfo (and Mapinfo Ack)
Definition: net_message.h:185
CInitMessage_Header::GetSubType
unsigned char GetSubType() const
Definition: net_message.h:210
ICMResync
@ ICMResync
StateInfo.
Definition: net_message.h:186
CInitMessage_Config::CInitMessage_Config
CInitMessage_Config()
Definition: net_message.cpp:374
CNetworkCommand::Serialize
size_t Serialize(unsigned char *buf) const
Definition: net_message.cpp:625
CInitMessage_MapFileFragment
Definition: net_message.h:313
CInitMessage_Resync::hosts
CNetworkHost hosts[PlayerMax]
Definition: net_message.h:358
CInitMessage_Map::GetHeader
const CInitMessage_Header & GetHeader() const
Definition: net_message.h:302
MessageCommandUpgrade
@ MessageCommandUpgrade
Unit command cancel training.
Definition: net_message.h:398
ICMConfig
@ ICMConfig
Client Request.
Definition: net_message.h:173
CNetworkHost::IsValid
bool IsValid()
Definition: net_message.h:65
CNetworkCommandQuit::CNetworkCommandQuit
CNetworkCommandQuit()
Definition: net_message.h:497
CInitMessage_Map::Size
static size_t Size()
Definition: net_message.h:305
CInitMessage_Map::MapPath
char MapPath[256]
Definition: net_message.h:309
ExtendedMessageFogOfWarDB
@ ExtendedMessageFogOfWarDB
Change map reveal mode. Used for debug purposes.
Definition: net_message.h:419
CServerSetup
Definition: net_message.h:107
CInitMessage_Hello::Version
uint32_t Version
Stratagus engine version.
Definition: net_message.h:234
ENUM_CLASS
#define ENUM_CLASS
Definition: settings.h:53
ICMSeeYou
@ ICMSeeYou
Client wants to leave game.
Definition: net_message.h:190
MessageCommandUnload
@ MessageCommandUnload
Unit command board.
Definition: net_message.h:389
CNetworkCommandSync::syncHash
uint32_t syncHash
Definition: net_message.h:488
CInitMessage_MapFileFragment::PathSize
uint8_t PathSize
Definition: net_message.h:327
MessageCommandDefend
@ MessageCommandDefend
Unit command stand ground.
Definition: net_message.h:380
CNetworkPacket::Serialize
size_t Serialize(unsigned char *buf, int numcommands) const
Definition: net_message.cpp:807
CInitMessage_Header::CInitMessage_Header
CInitMessage_Header(unsigned char type, unsigned char subtype)
Definition: net_message.h:204
CInitMessage_LuaFilesMismatch::Version
uint32_t Version
Definition: net_message.h:277
CInitMessage_Resync::Deserialize
void Deserialize(const unsigned char *p)
Definition: net_message.cpp:613
(C) Copyright 1998-2012 by The Stratagus Project under the GNU General Public License.
All trademarks and copyrights on this page are owned by their respective owners.