mirror of https://github.com/AxioDL/kabufuda.git
43 lines
911 B
C++
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__
|