DirectoryBlob: Don't use member variables for addresses

Now it's clearer that SetDOL depends on SetApploader
and BuildFST depends on SetDOL.

As a side note, we now load the DOL even if there's
no apploader. (I don't think it matters whether we
do it, but it was easier to implement this way.)
This commit is contained in:
JosJuice
2017-06-10 11:24:11 +02:00
parent b28ec0b7ee
commit 31d8322c5a
2 changed files with 21 additions and 38 deletions

View File

@ -80,10 +80,13 @@ private:
void SetPartitionTable();
void SetWiiRegionData();
void SetTMDAndTicket();
bool SetApploader(const std::string& apploader);
void SetDOL();
void BuildFST();
// Returns DOL address
u64 SetApploader(const std::string& apploader);
// Returns FST address
u64 SetDOL(u64 dol_address);
void BuildFST(u64 fst_address);
void PadToAddress(u64 start_address, u64* address, u64* length, u8** buffer) const;
@ -106,9 +109,6 @@ private:
// GameCube has no shift, Wii has 2 bit shift
u32 m_address_shift;
// first address on disk containing file data
u64 m_data_start_address;
u64 m_fst_name_offset;
std::vector<u8> m_fst_data;
@ -126,9 +126,6 @@ private:
#pragma pack(pop)
std::vector<u8> m_apploader;
u64 m_fst_address;
u64 m_dol_address;
};
} // namespace