Skip to content

Commit d54e7dc

Browse files
committed
refactor: move NetPacketFieldTypes to header, use const NetPacketFieldType type, and add struct constructors
1 parent e80ad6d commit d54e7dc

File tree

2 files changed

+30
-17
lines changed

2 files changed

+30
-17
lines changed

GeneralsMD/Code/GameEngine/Include/GameNetwork/NetPacketStructs.h

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,43 +30,67 @@
3030
// Ensure structs are packed to 1-byte alignment for network protocol compatibility
3131
#pragma pack(push, 1)
3232

33+
// Network packet field type definitions
34+
typedef UnsignedByte NetPacketFieldType;
35+
36+
namespace NetPacketFieldTypes {
37+
constexpr const NetPacketFieldType CommandType = 'T'; // NetCommandType field
38+
constexpr const NetPacketFieldType Relay = 'R'; // Relay field
39+
constexpr const NetPacketFieldType PlayerId = 'P'; // Player ID field
40+
constexpr const NetPacketFieldType CommandId = 'C'; // Command ID field
41+
constexpr const NetPacketFieldType Frame = 'F'; // Frame field
42+
constexpr const NetPacketFieldType Data = 'D'; // Data payload field
43+
}
44+
3345
////////////////////////////////////////////////////////////////////////////////
3446
// Common packet field structures
3547
////////////////////////////////////////////////////////////////////////////////
3648

3749
// Command Type field: 'T' + UnsignedByte
3850
struct NetPacketCommandTypeField {
39-
char header; // 'T'
51+
const NetPacketFieldType type; // 'T'
4052
UnsignedByte commandType;
53+
54+
NetPacketCommandTypeField() : type(NetPacketFieldTypes::CommandType) {}
4155
};
4256

4357
// Relay field: 'R' + UnsignedByte
4458
struct NetPacketRelayField {
45-
char header; // 'R'
59+
const NetPacketFieldType type; // 'R'
4660
UnsignedByte relay;
61+
62+
NetPacketRelayField() : type(NetPacketFieldTypes::Relay) {}
4763
};
4864

4965
// Player ID field: 'P' + UnsignedByte
5066
struct NetPacketPlayerIdField {
51-
char header; // 'P'
67+
const NetPacketFieldType type; // 'P'
5268
UnsignedByte playerId;
69+
70+
NetPacketPlayerIdField() : type(NetPacketFieldTypes::PlayerId) {}
5371
};
5472

5573
// Frame field: 'F' + UnsignedInt
5674
struct NetPacketFrameField {
57-
char header; // 'F'
75+
const NetPacketFieldType type; // 'F'
5876
UnsignedInt frame;
77+
78+
NetPacketFrameField() : type(NetPacketFieldTypes::Frame) {}
5979
};
6080

6181
// Command ID field: 'C' + UnsignedShort
6282
struct NetPacketCommandIdField {
63-
char header; // 'C'
83+
const NetPacketFieldType type; // 'C'
6484
UnsignedShort commandId;
85+
86+
NetPacketCommandIdField() : type(NetPacketFieldTypes::CommandId) {}
6587
};
6688

6789
// Data field header: 'D' (followed by variable-length data)
6890
struct NetPacketDataFieldHeader {
69-
char header; // 'D'
91+
const NetPacketFieldType type; // 'D'
92+
93+
NetPacketDataFieldHeader() : type(NetPacketFieldTypes::Data) {}
7094
};
7195

7296
////////////////////////////////////////////////////////////////////////////////

GeneralsMD/Code/GameEngine/Source/GameNetwork/NetPacket.cpp

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,6 @@
3434
#include <Utility/CppMacros.h>
3535
#include "GameNetwork/NetPacketStructs.h"
3636

37-
// TheSuperHackers @refactor BobTista 10/06/2025 Extract magic character literals into named constants for improved readability
38-
typedef UnsignedByte NetPacketFieldType;
39-
40-
namespace NetPacketFieldTypes {
41-
constexpr const NetPacketFieldType CommandType = 'T'; // NetCommandType field
42-
constexpr const NetPacketFieldType Relay = 'R'; // Relay field
43-
constexpr const NetPacketFieldType PlayerId = 'P'; // Player ID field
44-
constexpr const NetPacketFieldType CommandId = 'C'; // Command ID field
45-
constexpr const NetPacketFieldType Frame = 'F'; // Frame field
46-
constexpr const NetPacketFieldType Data = 'D'; // Data payload field
47-
}
4837

4938
// This function assumes that all of the fields are either of default value or are
5039
// present in the raw data.

0 commit comments

Comments
 (0)