OpenBarnyard
 
Loading...
Searching...
No Matches
PTRBHeader Class Reference

#include <PTRB.h>

Public Member Functions

 PTRBHeader (Toshi::TVersion version)
 
void SetVersion (Toshi::TVersion version)
 
void SetSectionCount (int32_t count)
 
void Write (Toshi::TTSFO &ttsfo, PTRBSections &sect, Endianess eEndianess)
 
void Read (Toshi::TTSFI &ttsfi, PTRBSections &sect, Endianess eEndianess)
 

Detailed Description

Definition at line 30 of file PTRB.h.

Constructor & Destructor Documentation

◆ PTRBHeader()

PTRBHeader::PTRBHeader ( Toshi::TVersion version)
inline

Definition at line 731 of file PTRB.h.

732{
733 m_Header.m_ui32Version = version;
734 m_Header.m_i32SectionCount = 0;
735}

Member Function Documentation

◆ Read()

void PTRBHeader::Read ( Toshi::TTSFI & ttsfi,
PTRBSections & sect,
Endianess eEndianess )
inline

Definition at line 763 of file PTRB.h.

764{
765 ttsfi.Read( &m_Header );
766 m_Header.m_i32SectionCount = CONVERTENDIANESS( eEndianess, m_Header.m_i32SectionCount );
767 m_Header.m_ui32Version = CONVERTENDIANESS( eEndianess, m_Header.m_ui32Version.Value );
768
769 for ( TINT i = 0; i < m_Header.m_i32SectionCount; i++ )
770 {
771 Toshi::TTRB::SecInfo sectionInfo;
772 ttsfi.Read( &sectionInfo );
773
774 sectionInfo.m_Data = CONVERTENDIANESS( eEndianess, sectionInfo.m_Data );
775 sectionInfo.m_Size = CONVERTENDIANESS( eEndianess, sectionInfo.m_Size );
776 sectionInfo.m_Unk1 = CONVERTENDIANESS( eEndianess, sectionInfo.m_Unk1 );
777 sectionInfo.m_Unk2 = CONVERTENDIANESS( eEndianess, sectionInfo.m_Unk2 );
778 sectionInfo.m_Unused = CONVERTENDIANESS( eEndianess, sectionInfo.m_Unused );
779
780 auto stack = sect.CreateStream();
781 stack->SetExpectedSize( sectionInfo.m_Size );
782 }
783}
int TINT
Definition Typedefs.h:7
PTRBSections::MemoryStream * CreateStream()
Definition PTRB.h:1010
void SetExpectedSize(TUINT32 expectedSize)
Definition PTRB.h:199

◆ SetSectionCount()

void PTRBHeader::SetSectionCount ( int32_t count)
inline

Definition at line 742 of file PTRB.h.

743{
744 m_Header.m_i32SectionCount = count;
745}

◆ SetVersion()

void PTRBHeader::SetVersion ( Toshi::TVersion version)
inline

Definition at line 737 of file PTRB.h.

738{
739 m_Header.m_ui32Version = version;
740}

◆ Write()

void PTRBHeader::Write ( Toshi::TTSFO & ttsfo,
PTRBSections & sect,
Endianess eEndianess )
inline

Definition at line 747 of file PTRB.h.

748{
749 Toshi::TTRB::Header oFixedHeader;
750 oFixedHeader.m_ui32Version = CONVERTENDIANESS( eEndianess, m_Header.m_ui32Version.Value );
751 oFixedHeader.m_i32SectionCount = CONVERTENDIANESS( eEndianess, m_Header.m_i32SectionCount );
752
753 ttsfo.Write( oFixedHeader );
754
755 for ( PTRBSections::MemoryStream* stack : sect )
756 {
757 Toshi::TTRB::SecInfo sectionInfo = {};
758 sectionInfo.m_Size = CONVERTENDIANESS( eEndianess, TAlignNumUp( stack->GetUsedSize() ) );
759 ttsfo.Write( sectionInfo );
760 }
761}
TFORCEINLINE constexpr T TAlignNumUp(T a_iValue, TSIZE a_uiAlignment=4)
Definition Helpers.h:66

The documentation for this class was generated from the following file: