@@ -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
476639static_assert (GetFrameResendRequestCommandSize() == sizeof (NetPacketFrameResendRequestCommand), " FrameResendRequestCommand size mismatch" );
477640static_assert (GetAckCommandSize() == sizeof (NetPacketAckCommand), " AckCommand size mismatch" );
478641static_assert (GetFrameCommandSize() == sizeof (NetPacketFrameCommand), " FrameCommand size mismatch" );
479642static_assert (GetPlayerLeaveCommandSize() == sizeof (NetPacketPlayerLeaveCommand), " PlayerLeaveCommand size mismatch" );
480643static_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