Skip to content

Commit eebf635

Browse files
committed
testing: static asserts for all 17 cases
1 parent ad27a6c commit eebf635

File tree

1 file changed

+176
-1
lines changed

1 file changed

+176
-1
lines changed

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

Lines changed: 176 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -472,10 +472,185 @@ constexpr UnsignedInt GetKeepAliveCommandSize()
472472
return msglen;
473473
}
474474

475-
// Static assertions to verify sizes match
475+
// Test functions for additional packet types
476+
constexpr UnsignedInt GetRunAheadMetricsCommandSize()
477+
{
478+
UnsignedInt msglen = 0;
479+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::CommandType and command type
480+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::Relay and relay
481+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::PlayerId and player ID
482+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedShort); // NetPacketFieldTypes::CommandId and command ID
483+
++msglen; // NetPacketFieldTypes::Data
484+
msglen += sizeof(Real); // average latency
485+
msglen += sizeof(UnsignedShort); // average fps
486+
487+
return msglen;
488+
}
489+
490+
constexpr UnsignedInt GetRunAheadCommandSize()
491+
{
492+
UnsignedInt msglen = 0;
493+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::CommandType and command type
494+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::Relay and relay
495+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedInt); // NetPacketFieldTypes::Frame and frame
496+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::PlayerId and player ID
497+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedShort); // NetPacketFieldTypes::CommandId and command ID
498+
++msglen; // NetPacketFieldTypes::Data
499+
msglen += sizeof(UnsignedShort); // run ahead
500+
msglen += sizeof(UnsignedByte); // frame rate
501+
502+
return msglen;
503+
}
504+
505+
constexpr UnsignedInt GetDestroyPlayerCommandSize()
506+
{
507+
UnsignedInt msglen = 0;
508+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::CommandType and command type
509+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::Relay and relay
510+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedInt); // NetPacketFieldTypes::Frame and frame
511+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::PlayerId and player ID
512+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedShort); // NetPacketFieldTypes::CommandId and command ID
513+
++msglen; // NetPacketFieldTypes::Data
514+
msglen += sizeof(UnsignedInt); // player index
515+
516+
return msglen;
517+
}
518+
519+
constexpr UnsignedInt GetDisconnectKeepAliveCommandSize()
520+
{
521+
UnsignedInt msglen = 0;
522+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::CommandType and command type
523+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::Relay and relay
524+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::PlayerId and player ID
525+
++msglen; // NetPacketFieldTypes::Data
526+
527+
return msglen;
528+
}
529+
530+
constexpr UnsignedInt GetDisconnectPlayerCommandSize()
531+
{
532+
UnsignedInt msglen = 0;
533+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::CommandType and command type
534+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::Relay and relay
535+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::PlayerId and player ID
536+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedShort); // NetPacketFieldTypes::CommandId and command ID
537+
++msglen; // NetPacketFieldTypes::Data
538+
msglen += sizeof(UnsignedByte); // slot
539+
msglen += sizeof(UnsignedInt); // disconnect frame
540+
541+
return msglen;
542+
}
543+
544+
constexpr UnsignedInt GetRouterQueryCommandSize()
545+
{
546+
UnsignedInt msglen = 0;
547+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::CommandType and command type
548+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::Relay and relay
549+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::PlayerId and player ID
550+
++msglen; // NetPacketFieldTypes::Data
551+
552+
return msglen;
553+
}
554+
555+
constexpr UnsignedInt GetRouterAckCommandSize()
556+
{
557+
UnsignedInt msglen = 0;
558+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::CommandType and command type
559+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::Relay and relay
560+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::PlayerId and player ID
561+
++msglen; // NetPacketFieldTypes::Data
562+
563+
return msglen;
564+
}
565+
566+
constexpr UnsignedInt GetDisconnectVoteCommandSize()
567+
{
568+
UnsignedInt msglen = 0;
569+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::CommandType and command type
570+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::Relay and relay
571+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::PlayerId and player ID
572+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedShort); // NetPacketFieldTypes::CommandId and command ID
573+
++msglen; // NetPacketFieldTypes::Data
574+
msglen += sizeof(UnsignedByte); // slot
575+
msglen += sizeof(UnsignedInt); // vote frame
576+
577+
return msglen;
578+
}
579+
580+
constexpr UnsignedInt GetWrapperCommandSize()
581+
{
582+
UnsignedInt msglen = 0;
583+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::CommandType and command type
584+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::PlayerId and player ID
585+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedShort); // NetPacketFieldTypes::CommandId and command ID
586+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::Relay and relay
587+
++msglen; // NetPacketFieldTypes::Data
588+
msglen += sizeof(UnsignedShort); // wrapped command ID
589+
msglen += sizeof(UnsignedInt); // chunk number
590+
msglen += sizeof(UnsignedInt); // num chunks
591+
msglen += sizeof(UnsignedInt); // total data length
592+
msglen += sizeof(UnsignedInt); // data length
593+
msglen += sizeof(UnsignedInt); // data offset
594+
595+
return msglen;
596+
}
597+
598+
constexpr UnsignedInt GetFileProgressCommandSize()
599+
{
600+
UnsignedInt msglen = 0;
601+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::CommandType and command type
602+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::Relay and relay
603+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::PlayerId and player ID
604+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedShort); // NetPacketFieldTypes::CommandId and command ID
605+
++msglen; // NetPacketFieldTypes::Data
606+
msglen += sizeof(UnsignedShort); // file ID
607+
msglen += sizeof(Int); // progress
608+
609+
return msglen;
610+
}
611+
612+
constexpr UnsignedInt GetDisconnectFrameCommandSize()
613+
{
614+
UnsignedInt msglen = 0;
615+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::CommandType and command type
616+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::Relay and relay
617+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::PlayerId and player ID
618+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedShort); // NetPacketFieldTypes::CommandId and command ID
619+
++msglen; // NetPacketFieldTypes::Data
620+
msglen += sizeof(UnsignedInt); // disconnect frame
621+
622+
return msglen;
623+
}
624+
625+
constexpr UnsignedInt GetDisconnectScreenOffCommandSize()
626+
{
627+
UnsignedInt msglen = 0;
628+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::CommandType and command type
629+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::Relay and relay
630+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedByte); // NetPacketFieldTypes::PlayerId and player ID
631+
msglen += sizeof(UnsignedByte) + sizeof(UnsignedShort); // NetPacketFieldTypes::CommandId and command ID
632+
++msglen; // NetPacketFieldTypes::Data
633+
msglen += sizeof(UnsignedInt); // new frame
634+
635+
return msglen;
636+
}
637+
638+
// Static assertions to verify sizes match - ALL 17 packet types
476639
static_assert(GetFrameResendRequestCommandSize() == sizeof(NetPacketFrameResendRequestCommand), "FrameResendRequestCommand size mismatch");
477640
static_assert(GetAckCommandSize() == sizeof(NetPacketAckCommand), "AckCommand size mismatch");
478641
static_assert(GetFrameCommandSize() == sizeof(NetPacketFrameCommand), "FrameCommand size mismatch");
479642
static_assert(GetPlayerLeaveCommandSize() == sizeof(NetPacketPlayerLeaveCommand), "PlayerLeaveCommand size mismatch");
480643
static_assert(GetKeepAliveCommandSize() == sizeof(NetPacketKeepAliveCommand), "KeepAliveCommand size mismatch");
644+
static_assert(GetRunAheadMetricsCommandSize() == sizeof(NetPacketRunAheadMetricsCommand), "RunAheadMetricsCommand size mismatch");
645+
static_assert(GetRunAheadCommandSize() == sizeof(NetPacketRunAheadCommand), "RunAheadCommand size mismatch");
646+
static_assert(GetDestroyPlayerCommandSize() == sizeof(NetPacketDestroyPlayerCommand), "DestroyPlayerCommand size mismatch");
647+
static_assert(GetDisconnectKeepAliveCommandSize() == sizeof(NetPacketDisconnectKeepAliveCommand), "DisconnectKeepAliveCommand size mismatch");
648+
static_assert(GetDisconnectPlayerCommandSize() == sizeof(NetPacketDisconnectPlayerCommand), "DisconnectPlayerCommand size mismatch");
649+
static_assert(GetRouterQueryCommandSize() == sizeof(NetPacketRouterQueryCommand), "RouterQueryCommand size mismatch");
650+
static_assert(GetRouterAckCommandSize() == sizeof(NetPacketRouterAckCommand), "RouterAckCommand size mismatch");
651+
static_assert(GetDisconnectVoteCommandSize() == sizeof(NetPacketDisconnectVoteCommand), "DisconnectVoteCommand size mismatch");
652+
static_assert(GetWrapperCommandSize() == sizeof(NetPacketWrapperCommand), "WrapperCommand size mismatch");
653+
static_assert(GetFileProgressCommandSize() == sizeof(NetPacketFileProgressCommand), "FileProgressCommand size mismatch");
654+
static_assert(GetDisconnectFrameCommandSize() == sizeof(NetPacketDisconnectFrameCommand), "DisconnectFrameCommand size mismatch");
655+
static_assert(GetDisconnectScreenOffCommandSize() == sizeof(NetPacketDisconnectScreenOffCommand), "DisconnectScreenOffCommand size mismatch");
481656

0 commit comments

Comments
 (0)