mirror of
https://github.com/encounter/mkdd.git
synced 2026-03-30 11:30:02 -07:00
95 lines
3.6 KiB
C++
95 lines
3.6 KiB
C++
#ifndef GHOSTFILE_H
|
|
#define GHOSTFILE_H
|
|
|
|
#include "kartEnums.h"
|
|
|
|
#include "Osako/GIRecord.h"
|
|
#include "Osako/PadRecorder.h"
|
|
#include "Osako/SaveFile.h"
|
|
|
|
#define FILENAME_SIZE 32
|
|
|
|
union UUData
|
|
{
|
|
struct
|
|
{
|
|
u32 bit1 : 6;
|
|
u32 bit2 : 6;
|
|
u32 bit3 : 6;
|
|
u32 bit4 : 6;
|
|
} s;
|
|
u8 arr[4];
|
|
};
|
|
|
|
class GhostFile : public SaveFile
|
|
{ // Autogenerated
|
|
public:
|
|
// Global
|
|
virtual ~GhostFile(); // 0x8020e3ac
|
|
void setup(); // 0x8020e3f4
|
|
bool updateKartPadRecord(const KartPadRecord &); // 0x8020e5c4
|
|
bool available(ECourseID); // 0x8020e6b0
|
|
bool isValidGhostOnRace(); // 0x8020e6e8
|
|
static void makeFileName(char *, const GIRecord *); // 0x8020e738
|
|
static bool analysisFileName(GIRecord *, const char *); // 0x8020e828
|
|
void remakeFileName(); // 0x8020e918
|
|
static u8 uuencode(char *, u8, const u8 *, u8); // 0x8020e990
|
|
static u8 uudecode(u8 *, u8, const char *, u8); // 0x8020eae4
|
|
virtual int getAccessWay(); // 0x8020ebf0, overide
|
|
virtual char *getFileName(); // 0x8020ebfc, overide
|
|
virtual int getFileNo(); // 0x8020ec08, overide
|
|
virtual int getBannerFormat(); // 0x8020ec14, overide
|
|
virtual s32 getCommentOffset(); // 0x8020ec1c, overide
|
|
virtual u8 getIconNum(); // 0x8020ec2c, overide
|
|
virtual int getIconOffset(); // 0x8020ec34, overide
|
|
virtual u8 getIconAnim(); // 0x8020ec3c, overide
|
|
virtual u8 getIconFormat(u8); // 0x8020ec44, overide
|
|
virtual u8 getIconSpeed(u8); // 0x8020ec4c, overide
|
|
virtual void *getBuf(); // 0x8020ec54, overide
|
|
virtual u32 getFileSize(); // 0x8020ec5c, overide
|
|
virtual s32 getLength(); // 0x8020ec68, overide
|
|
virtual s32 getOffset(); // 0x8020ec74, overide
|
|
virtual void setCheckData(s64); // 0x8020ec7c, overide
|
|
virtual void checkData(); // 0x8020eccc, overide
|
|
// Inline/Unused
|
|
GhostFile();
|
|
// Inline
|
|
virtual void setPart(SaveFile::FilePart) {} // 0x8020ed28, overide
|
|
virtual void fetch() {} // 0x8020ed2c, overide
|
|
virtual void store() {} // 0x8020ed30, overide
|
|
|
|
// Fabricated
|
|
struct CheckData
|
|
{
|
|
u8 mGameVersion; // Version of the game, always 0?
|
|
u32 mChecksum; // CRC32 of the block
|
|
}; // Size: 0x8
|
|
|
|
// vtable 0x0
|
|
struct Header
|
|
{
|
|
u8 mBanner[BANNER_SIZE]; // 20
|
|
u8 mBannerPallete[PALETTE_SIZE]; // C20
|
|
u8 mIcon[ICON_SIZE]; // E20
|
|
u8 mIconPalette[PALETTE_SIZE]; // 1220
|
|
} mHeader ALIGN(32);
|
|
|
|
// Fabricated but sort of replicates SystemFile
|
|
struct FileData
|
|
{
|
|
char mComment[COMMENT_SIZE]; // 1420
|
|
char mTagData[TAG_SIZE]; // 1440
|
|
KartPadRecord mPadRecord; // 1460
|
|
CheckData mCheckData; // A018
|
|
} mFileData;
|
|
|
|
// only used by the class, not part of the file structure
|
|
char mFileName[32]; // A020
|
|
int mFileNo; // A040
|
|
int mAccessWay; // A044
|
|
int mGhostType; // A048
|
|
};
|
|
|
|
extern GhostFile gGhostFile; // Size: 0xa060(aligned)
|
|
|
|
#endif // GHOSTFILE_H
|