kabufuda/include/kabufuda/Directory.hpp

43 lines
911 B
C++

#ifndef __KABU_DIRECTORY_HPP__
#define __KABU_DIRECTORY_HPP__
#include "File.hpp"
namespace kabufuda
{
class Directory
{
friend class Card;
#pragma pack(push, 4)
union
{
struct
{
File m_files[MaxFiles];
uint8_t __padding[0x3a];
uint16_t m_updateCounter;
uint16_t m_checksum;
uint16_t m_checksumInv;
};
uint8_t __raw[BlockSize];
};
#pragma pack(pop)
void swapEndian();
void updateChecksum();
bool valid() const;
public:
Directory();
Directory(uint8_t data[BlockSize]);
Directory(const Directory& other);
void operator=(const Directory& other);
~Directory();
File* getFirstFreeFile(const char* game, const char* maker, const char* filename);
File* getFile(const char* game, const char* maker, const char* filename);
};
}
#endif // __KABU_DIRECTORY_HPP__