summaryrefslogtreecommitdiff
path: root/include/d/d_menu_collect.h
blob: 960ffb0d0c9036083323e847046e6dabee1a97ca (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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
#ifndef D_MENU_COLLECT_H
#define D_MENU_COLLECT_H

#include "dolphin/types.h"
#include "JSystem/J2DGraph/J2DScreen.h"
#include "JSystem/J2DGraph/J2DTextBox.h"
#include "d/d_2dnumber.h"
#include "d/d_menu_base.h"
#include "f_op/f_op_msg_mng.h"

struct fopMsgM_pane_class;
class JKRArchive;
class JUTFont;

class dMenu_Collect_c : public dMenu_base_c {
public:
    virtual void draw() {}

    void alphaChange(fopMsgM_pane_class* pane, float alpha) { pane->mInitAlpha *= alpha; }
    u8 getCollectMode() { return mCollectMode; }
    u8 getNowItem() { return mNowItem; }
    void setNowItem(u8 val) { mNowItem = val; }

    void setArchive(JKRArchive* arc) { mpArc = arc; }
    void setOptionArchive(JKRArchive* arc) { mpOptArc = arc; }
    void setQuitArchive(JKRArchive* arc) { mpSaveArc = arc; }

    void setFont(JUTFont* font, JUTFont* rfont) {
        mFont = font;
        mRFont = rfont;
    }

    void setTactTexBuffer(void* ptr) { mTactTexBuffer = (ResTIMG*)ptr; }
    void setMapTexBuffer(void* ptr) { mMapTexBuffer = (ResTIMG*)ptr; }
    void setTriforceTexBuffer(int idx, void* ptr) { mTriforceTexBuffer[idx] = (ResTIMG*)ptr; }
    void setSymbolTexBuffer(int idx, void* ptr) { mSymbolTexBuffer[idx] = ptr; }
    void setItemTexBuffer(int idx, void* ptr) { mItemTexBuffer[idx] = ptr; }

    void setTextArea(char* name0, char* name1, char* note0, char* note1, char* dummy0, char* dummy1) {
        name[0] = name0;
        name[1] = name1;
        note[0] = note0;
        note[1] = note1;
        dummy[0] = dummy0;
        dummy[1] = dummy1;
    }

    void setTimer(s16 timer) { mTimer = timer; }
    void setTriggerInfo(u8 info) { mTriggerInfo = info; }

    void screenSet();
    void initialize();
    void cursorAnime();
    void stickDirection(unsigned char);
    void cursorMainMove();
    u8 noteCheck();
    void noteInit();
    void noteAppear();
    void noteOpen();
    void noteClose();
    void mainTrans(float, float);
    void subTrans(float, float);
    void titleTrans(float, float);
    void noteRotate(float, float);
    void nameTrans(float, float);
    void mainOpenProc(short, short, short);
    void subOpenProc(short, short, short);
    void titleOpenProc(short, short);
    void noteOpenProc(short, short);
    void nameOpenProc(short, short);
    void itemBitCheck();
    void itemScale();
    void collectPriority();
    void weponPriority();
    void tactGuideShow(unsigned char, bool);
    void tactDemoMode(unsigned char);
    void tactPlayMode(unsigned char);
    void tactTrans(unsigned char, float, float);
    void tactBaseShow();
    void cornerMove();
    void triforceAnime(unsigned char);
    void tactGuideHide();
    void itemnameMove();
    void itemnameSet();
    void itemnoteSet();
    void itemSet();
    void outFontInit();
    void outFontMove();
    void outFontDraw();
    void collectItemGetCheck(unsigned char);
    virtual void _create();
    void _create3();
    virtual void _delete();
    virtual void _move();
    void _move3();
    virtual void _draw();
    bool _open();
    bool _open3();
    bool _close();
    bool _close3();
    void animeStep1(short, short);
    void animeStep2(short, short);
    void animeStep3(short, short);
    void animeStep4(short, short);
    bool _open2();
    bool _close2();

private:
    /* 0x0000 */ // vtable
    /* 0x0004 */ J2DScreen* m004;
    /* 0x0008 */ fopMsgM_pane_class m008;
    /* 0x0040 */ fopMsgM_pane_class m040;
    /* 0x0078 */ fopMsgM_pane_class m078;
    /* 0x00B0 */ fopMsgM_pane_class m0B0[15];
    /* 0x03F8 */ fopMsgM_pane_class m3F8[15];
    /* 0x0740 */ fopMsgM_pane_class m740;
    /* 0x0778 */ fopMsgM_pane_class m778;
    /* 0x07B0 */ fopMsgM_pane_class m7B0;
    /* 0x07E8 */ fopMsgM_pane_class m7E8;
    /* 0x0820 */ fopMsgM_pane_class m820;
    /* 0x0858 */ fopMsgM_pane_class m858;
    /* 0x0890 */ fopMsgM_pane_class m890;
    /* 0x08C8 */ fopMsgM_pane_class m8C8;
    /* 0x0900 */ fopMsgM_pane_class m900;
    /* 0x0938 */ fopMsgM_pane_class m938;
    /* 0x0970 */ fopMsgM_pane_class m970;
    /* 0x09A8 */ fopMsgM_pane_class m9A8;
    /* 0x09E0 */ fopMsgM_pane_class m9E0;
    /* 0x0A18 */ fopMsgM_pane_class mA18[4];
    /* 0x0AF8 */ fopMsgM_pane_class mAF8;
    /* 0x0B30 */ fopMsgM_pane_class mB30;
    /* 0x0B68 */ fopMsgM_pane_class mB68[4];
    /* 0x0C48 */ fopMsgM_pane_class mC48;
    /* 0x0C80 */ fopMsgM_pane_class mC80;
    /* 0x0CB8 */ fopMsgM_pane_class mCB8;
    /* 0x0CF0 */ fopMsgM_pane_class mCF0;
    /* 0x0D28 */ fopMsgM_pane_class mD28;
    /* 0x0D60 */ fopMsgM_pane_class mD60;
    /* 0x0D98 */ fopMsgM_pane_class mD98;
    /* 0x0DD0 */ fopMsgM_pane_class mDD0;
    /* 0x0E08 */ fopMsgM_pane_class mE08[8];
    /* 0x0FC8 */ fopMsgM_pane_class mFC8;
    /* 0x1000 */ fopMsgM_pane_class m1000[3];
    /* 0x10A8 */ fopMsgM_pane_class m10A8[3];
    /* 0x1150 */ fopMsgM_pane_class m1150[11];
    /* 0x13B8 */ fopMsgM_pane_class m13B8[3];
    /* 0x1460 */ fopMsgM_pane_class m1460;
    /* 0x1498 */ fopMsgM_pane_class m1498[6];
    /* 0x15E8 */ fopMsgM_pane_class m15E8[6];
    /* 0x1738 */ fopMsgM_pane_class m1738;
    /* 0x1770 */ fopMsgM_pane_class m1770;
    /* 0x17A8 */ fopMsgM_pane_class m17A8[6];
    /* 0x18F8 */ fopMsgM_pane_class m18F8[6];
    /* 0x1A48 */ fopMsgM_pane_class m1A48[6];
    /* 0x1B98 */ fopMsgM_pane_class m1B98[6];
    /* 0x1CE8 */ fopMsgM_pane_class m1CE8[6];
    /* 0x1E38 */ fopMsgM_pane_class m1E38[6];
    /* 0x1460 */ fopMsgM_pane_class m1F88;
    /* 0x1460 */ fopMsgM_pane_class m1FC0;
    /* 0x1460 */ fopMsgM_pane_class m1FF8;
    /* 0x2030 */ fopMsgM_pane_class m2030[5];
    /* 0x2148 */ fopMsgM_pane_class m2148[5];
    /* 0x2260 */ fopMsgM_pane_class m2260[5];
    /* 0x2378 */ fopMsgM_pane_class m2378;
    /* 0x23B0 */ fopMsgM_pane_class m23B0;
    /* 0x23E8 */ fopMsgM_pane_class m23E8;
    /* 0x2420 */ fopMsgM_pane_class m2420;
    /* 0x2458 */ u8 m2458[0x2460 - 0x2458];
    /* 0x2460 */ dDlst_2DOutFont_c* m2460;
    /* 0x2464 */ JKRArchive* mpArc;
    /* 0x2468 */ JKRArchive* mpOptArc;
    /* 0x246C */ JKRArchive* mpSaveArc;
    /* 0x2470 */ JUTFont* mFont;
    /* 0x2474 */ JUTFont* mRFont;
    /* 0x2478 */ J2DPane* m2478;
    /* 0x247C */ u8 m247C[0x2488 - 0x247C];
    /* 0x2488 */ JUtility::TColor color_2488;
    /* 0x248C */ JUtility::TColor color_248C;
    /* 0x2490 */ JUtility::TColor color_2490;
    /* 0x2494 */ JUtility::TColor color_2494;
    /* 0x2498 */ ResTIMG* mTactTexBuffer;
    /* 0x249C */ ResTIMG* mMapTexBuffer;
    /* 0x24A0 */ ResTIMG* mTriforceTexBuffer[8];
    /* 0x24C0 */ void* mSymbolTexBuffer[3];
    /* 0x24CC */ void* mItemTexBuffer[5];
    /* 0x24E0 */ fopMsgM_msgDataProc_c mMsgProc;
    /* 0x2780 */ u8 m2780[0x27A8 - 0x2780];
    /* 0x27A8 */ f32 m27A8;
    /* 0x27AC */ f32 m27AC;
    /* 0x27B0 */ char* name[2];
    /* 0x27B8 */ char* note[2];
    /* 0x27C0 */ char* dummy[2];
    /* 0x27C8 */ u8 m27C8[0x27E2 - 0x27C8];
    /* 0x27E2 */ u16 mTimer;
    /* 0x27E4 */ u8 m27E4[0x27EC - 0x27E4];
    /* 0x27EC */ u8 mTriggerInfo;
    /* 0x27ED */ u8 mNowItem;
    /* 0x27EE */ u8 mCollectMode;
    /* 0x27EF */ u8 m27EF[0x27F4 - 0x27EF];
}; // Size: 0x27F4

STATIC_ASSERT(sizeof(dMenu_Collect_c) == 0x27F4);

class dMc_HIO_c {
public:
    dMc_HIO_c();
    virtual ~dMc_HIO_c() {}

public:
    /* 0x00 */ // vtable
    /* 0x04 */ u8 m04[0x44 - 0x04];
    /* 0x44 */ s16 m44;
    /* 0x46 */ s16 m46;
    /* 0x48 */ s16 m48;
    /* 0x4A */ s16 m4A;
    /* 0x4C */ s16 m4C;
    /* 0x4E */ s16 m4E;
    /* 0x50 */ s16 m50;
    /* 0x52 */ u8 m52;
    /* 0x53 */ u8 m53;
    /* 0x54 */ f32 m54;
    /* 0x58 */ JUtility::TColor m58;
    /* 0x5C */ u8 m5C;
    /* 0x5D */ u8 m5D;
};

#endif /* D_MENU_COLLECT_H */