@@ -397,260 +397,4 @@ struct NetPacketFrameResendRequestCommand {
397397// Restore normal struct packing
398398#pragma pack(pop)
399399
400- // //////////////////////////////////////////////////////////////////////////////
401- // Static Assert Tests - Verify struct sizes match original manual calculations
402- // These tests ensure the refactor maintains exact compatibility
403- // //////////////////////////////////////////////////////////////////////////////
404-
405- // Test function for Frame Resend Request Command
406- constexpr UnsignedInt GetFrameResendRequestCommandSize ()
407- {
408- UnsignedInt msglen = 0 ;
409- msglen += sizeof (UnsignedByte) + sizeof (UnsignedByte); // NetPacketFieldTypes::CommandType and command type
410- msglen += sizeof (UnsignedByte) + sizeof (UnsignedByte); // NetPacketFieldTypes::PlayerId and player ID
411- msglen += sizeof (UnsignedByte) + sizeof (UnsignedShort); // NetPacketFieldTypes::CommandId and command ID
412- msglen += sizeof (UnsignedByte) + sizeof (UnsignedByte); // NetPacketFieldTypes::Relay and relay
413-
414- ++msglen; // NetPacketFieldTypes::Data
415- msglen += sizeof (UnsignedInt); // frame to resend
416-
417- return msglen;
418- }
419-
420- // Test function for ACK Command
421- constexpr UnsignedInt GetAckCommandSize ()
422- {
423- UnsignedInt msglen = 0 ;
424- msglen += sizeof (UnsignedByte) + sizeof (UnsignedByte); // NetPacketFieldTypes::CommandType and command type
425- msglen += sizeof (UnsignedByte) + sizeof (UnsignedByte); // NetPacketFieldTypes::PlayerId and player ID
426- ++msglen; // NetPacketFieldTypes::Data
427- msglen += sizeof (UnsignedShort); // command ID being acknowledged
428- msglen += sizeof (UnsignedByte); // original player ID
429-
430- return msglen;
431- }
432-
433- // Test function for Frame Command
434- constexpr UnsignedInt GetFrameCommandSize ()
435- {
436- UnsignedInt msglen = 0 ;
437- msglen += sizeof (UnsignedByte) + sizeof (UnsignedByte); // NetPacketFieldTypes::CommandType and command type
438- msglen += sizeof (UnsignedByte) + sizeof (UnsignedByte); // NetPacketFieldTypes::Relay and relay
439- msglen += sizeof (UnsignedByte) + sizeof (UnsignedInt); // NetPacketFieldTypes::Frame and frame
440- msglen += sizeof (UnsignedByte) + sizeof (UnsignedByte); // NetPacketFieldTypes::PlayerId and player ID
441- msglen += sizeof (UnsignedByte) + sizeof (UnsignedShort); // NetPacketFieldTypes::CommandId and command ID
442- ++msglen; // NetPacketFieldTypes::Data
443- msglen += sizeof (UnsignedShort); // command count
444-
445- return msglen;
446- }
447-
448- // Test function for Player Leave Command
449- constexpr UnsignedInt GetPlayerLeaveCommandSize ()
450- {
451- UnsignedInt msglen = 0 ;
452- msglen += sizeof (UnsignedByte) + sizeof (UnsignedByte); // NetPacketFieldTypes::CommandType and command type
453- msglen += sizeof (UnsignedByte) + sizeof (UnsignedByte); // NetPacketFieldTypes::Relay and relay
454- msglen += sizeof (UnsignedByte) + sizeof (UnsignedInt); // NetPacketFieldTypes::Frame and frame
455- msglen += sizeof (UnsignedByte) + sizeof (UnsignedByte); // NetPacketFieldTypes::PlayerId and player ID
456- msglen += sizeof (UnsignedByte) + sizeof (UnsignedShort); // NetPacketFieldTypes::CommandId and command ID
457- ++msglen; // NetPacketFieldTypes::Data
458- msglen += sizeof (UnsignedByte); // leaving player ID
459-
460- return msglen;
461- }
462-
463- // Test function for Keep Alive Command
464- constexpr UnsignedInt GetKeepAliveCommandSize ()
465- {
466- UnsignedInt msglen = 0 ;
467- msglen += sizeof (UnsignedByte) + sizeof (UnsignedByte); // NetPacketFieldTypes::CommandType and command type
468- msglen += sizeof (UnsignedByte) + sizeof (UnsignedByte); // NetPacketFieldTypes::Relay and relay
469- msglen += sizeof (UnsignedByte) + sizeof (UnsignedByte); // NetPacketFieldTypes::PlayerId and player ID
470- ++msglen; // NetPacketFieldTypes::Data
471-
472- return msglen;
473- }
474-
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
639- static_assert (GetFrameResendRequestCommandSize() == sizeof (NetPacketFrameResendRequestCommand), " FrameResendRequestCommand size mismatch" );
640- static_assert (GetAckCommandSize() == sizeof (NetPacketAckCommand), " AckCommand size mismatch" );
641- static_assert (GetFrameCommandSize() == sizeof (NetPacketFrameCommand), " FrameCommand size mismatch" );
642- static_assert (GetPlayerLeaveCommandSize() == sizeof (NetPacketPlayerLeaveCommand), " PlayerLeaveCommand size mismatch" );
643- 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" );
656400
0 commit comments