summaryrefslogtreecommitdiff
path: root/include/m_cpak.h
blob: 035d9b010c9995f79d901c24e88f3e8215a77d9d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#ifndef M_CPAK_H
#define M_CPAK_H

#include "ultra64.h"
#include "unk.h"

#include "m_npc.h"
#include "m_private.h"

typedef struct Passport {
    /* 0x0000 */ u16 unk_0000;
    /* 0x0002 */ UNK_TYPE1 unk_0002[0x0006];
    /* 0x0008 */ PrivateInfo priv;
    /* 0x0BD8 */ Animal_c animal;
    /* 0x1100 */ u16 unk_1100;
    /* 0x1102 */ UNK_TYPE1 unk_1102[0x00FE];
} Passport; // size = 0x1200

typedef struct PakCtrl {
    /* 0x0000 */ Passport passport;
    /* 0x1200 */ OSMesgQueue* queue;
    /* 0x1204 */ UNK_TYPE unk_1204;
    /* 0x1208 */ u16 unk_1208;
} PakCtrl; // size = 0x1208

typedef struct D801047A8Struct {
    /* 0x0 */ UNK_TYPE1 unk_0[0x08];
} D801047A8Struct; // size <= 0x8

typedef struct D801047B0Struct {
    /* 0x0000 */ u16 unk_0000;
    /* 0x0002 */ UNK_TYPE1 unk_0002[0x66FE];
} D801047B0Struct; // size = 0x6700;

typedef struct OSPfsInfo {
    /* 0x00 */ OSPfs pfs;
    /* 0x68 */ s32 fileNo;
    /* 0x6C */ s32 err;
} OSPfsInfo; // size = 0x70

typedef struct PakInfo {
    /* 0x000 */ UNK_TYPE unk_00;
    /* 0x004 */ OSPfsInfo pfsInfo;
    /* 0x074 */ OSPfsState pfsState;
    /* 0x094 */ OSPfsState unk_94[16];
    /* 0x294 */ s32 unk_294[16];
    /* 0x2D4 */ s32 freeBytes;
    /* 0x2D8 */ s32 maxFiles;
    /* 0x2DC */ s32 filesUsed;
} PakInfo; // size >= 0x2DC

s32 mCPk_PakOpen(PakInfo* info, s32 channel);
s32 mCPk_NoteNum(PakInfo* info);
s32 mCPk_FreeBlockNum(PakInfo* info);
void mCPk_ClearPassport(Passport* passport);
s32 mCPk_InitPak(s32 channel);
PrivateInfo* mCPk_GetSaveFilePrivateP(void);
s32 mCPk_SavePak(PrivateInfo* priv, Animal_c* animal, PakInfo* info);
s32 mCPk_PakPrivateLoad(PrivateInfo* priv, Animal_c* animal, PakInfo* info);
s32 func_80079760_jp(void);
void* func_80079838_jp(void);
s32 func_800798DC_jp(PakInfo* info);
UNK_RET func_80079AAC_jp(void);
UNK_RET func_80079D00_jp(void);
s32 func_80079E54_jp(D801047B0Struct* arg0, PakInfo* info);
UNK_RET func_80079EA4_jp(UNK_PTR, PakInfo* info);
void func_80079EDC_jp(void);
s32 func_80079F44_jp(void);
void func_8007A008_jp(void);
PakInfo* mCPk_get_pkinfo(void);
s32 func_8007A080_jp(void);

#endif