summaryrefslogtreecommitdiff
path: root/src/d/file/d_file_sel_warning_NONMATCHING.cpp
blob: 36b4b73902489d709ec32384cedf4ece9aa35ce9 (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
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
/**
 * This should match once the padding for dDlst_FileWarn_c's vtable can be figured out
 */

//
// Generated By: dol2asm
// Translation Unit: d/file/d_file_sel_warning
//

#include "d/file/d_file_sel_warning.h"
#include "d/msg/d_msg_string.h"
#include "d/pane/d_pane_class.h"
#include "dol2asm.h"

//
// Forward References:
//

extern "C" void __ct__15dFile_warning_cFP10JKRArchiveUc();
extern "C" void __dt__15dFile_warning_cFv();
extern "C" void screenSet__15dFile_warning_cFv();
extern "C" void _move__15dFile_warning_cFv();
extern "C" void modeWait__15dFile_warning_cFv();
extern "C" void modeMove__15dFile_warning_cFv();
extern "C" void baseMoveAnm__15dFile_warning_cFv();
extern "C" void openInit__15dFile_warning_cFv();
extern "C" void closeInit__15dFile_warning_cFv();
extern "C" void init__15dFile_warning_cFv();
extern "C" void _draw__15dFile_warning_cFv();
extern "C" void drawSelf__15dFile_warning_cFv();
extern "C" void setText__15dFile_warning_cFUl();
extern "C" void setFontColor__15dFile_warning_cFQ28JUtility6TColorQ28JUtility6TColor();
extern "C" void setBlackWhite__10J2DTextBoxFQ28JUtility6TColorQ28JUtility6TColor();
extern "C" void draw__16dDlst_FileWarn_cFv();
extern "C" void __sinit_d_file_sel_warning_cpp();
extern "C" void __dt__16dDlst_FileWarn_cFv();
extern "C" void setAnimation__9J2DScreenFP15J2DAnmTransform();
extern "C" extern char const* const d_file_d_file_sel_warning__stringBase0;

//
// External References:
//

extern "C" void mDoExt_getMesgFont__Fv();
extern "C" void mDoExt_removeMesgFont__Fv();
extern "C" void set__12dDlst_list_cFRPP12dDlst_base_cRPP12dDlst_base_cP12dDlst_base_c();
extern "C" void __ct__12dMsgString_cFv();
extern "C" void __dt__12dMsgString_cFv();
extern "C" void __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader();
extern "C" void setAnimation__7J2DPaneFP15J2DAnmTransform();
extern "C" void __ct__9J2DScreenFv();
extern "C" void setPriority__9J2DScreenFPCcUlP10JKRArchive();
extern "C" void draw__9J2DScreenFffPC14J2DGrafContext();
extern "C" void animation__9J2DScreenFv();
extern "C" void setString__10J2DTextBoxFsPCce();
extern "C" void load__20J2DAnmLoaderDataBaseFPCv();
extern "C" void __ptmf_scall();
extern "C" extern void* __vt__12dDlst_base_c[3];

//
// Declarations:
//

/* ############################################################################################## */
/* 803BB410-803BB41C 018530 000C+00 1/1 0/0 0/0 .data            cNullVec__6Z2Calc */
SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};

/* 803BB434-803BB44C 018554 0018+00 1/2 0/0 0/0 .data            fileWarningProc */
typedef void (dFile_warning_c::*procFunc)();
static procFunc fileWarningProc[] = {&dFile_warning_c::modeWait, &dFile_warning_c::modeMove};

/* 80191BAC-80191C18 18C4EC 006C+00 0/0 3/3 0/0 .text __ct__15dFile_warning_cFP10JKRArchiveUc */
dFile_warning_c::dFile_warning_c(JKRArchive* i_archive, u8 param_1) {
    mpArchive = i_archive;
    field_0x3e = param_1;

    screenSet();
    field_0x18 = 0;
    mPosY = 0.0f;
}

/* 80191C18-80191CF4 18C558 00DC+00 1/0 0/0 0/0 .text            __dt__15dFile_warning_cFv */
dFile_warning_c::~dFile_warning_c() {
    delete mFileWarn.mMsgString;
    delete mFileWarn.Scr;
    delete field_0x24;
    delete mpRootPane;

    mDoExt_removeMesgFont();
}

/* 80191CF4-80191F18 18C634 0224+00 1/1 0/0 0/0 .text            screenSet__15dFile_warning_cFv */
void dFile_warning_c::screenSet() {
    const char* blo_name[] = {
        "zelda_file_select_warning_window.blo",
        "zelda_option_set_up_window.blo",
    };

    const char* bck_name[] = {
        "zelda_file_select_warning_window.bck",
        "zelda_option_set_up_window.bck",
    };

    mFileWarn.Scr = new J2DScreen();
    JUT_ASSERT(mFileWarn.Scr != 0);

    mFileWarn.mMsgString = new dMsgString_c();
    JUT_ASSERT(mFileWarn.mMsgString != 0);

    mFileWarn.Scr->setPriority(blo_name[field_0x3e], 0x100000, mpArchive);

    field_0x24 = (J2DAnmTransform*)J2DAnmLoaderDataBase::load(
        JKRGetNameResource(bck_name[field_0x3e], mpArchive));
    mFileWarn.Scr->setAnimation(field_0x24);
    field_0x24->setFrame(2849.0f);
    mFileWarn.Scr->animation();

    mFileWarn.mFont = mDoExt_getMesgFont();
    mpRootPane = new CPaneMgr(mFileWarn.Scr, 'Nm_02', 0, NULL);
    JUT_ASSERT(mpRootPane != 0);
    field_0x34 = mpRootPane->getTranslateY();

    mFileWarn.Scr->search('w_msg_jp')->hide();
    mFileWarn.Scr->search('ms_for_2')->hide();

    field_0x20 = static_cast<J2DTextBox*>(mFileWarn.Scr->search('ms_for_3'));
    field_0x20->show();
    field_0x20->setFont(mFileWarn.mFont);
    field_0x20->setString(0x200, "");
    mFileWarn.mMsgString->getString(0x53, field_0x20, NULL, mFileWarn.mFont, NULL, 0);
}

/* 80191F18-80191F90 18C858 0078+00 0/0 6/6 0/0 .text            _move__15dFile_warning_cFv */
void dFile_warning_c::_move() {
    (this->*fileWarningProc[field_0x18])();

    if (mPosY != 0.0f) {
        mpRootPane->translate(mpRootPane->getTranslateX(), mPosY - field_0x34);
    }
}

/* 80191F90-80191F94 18C8D0 0004+00 1/0 0/0 0/0 .text            modeWait__15dFile_warning_cFv */
void dFile_warning_c::modeWait() {}

/* 80191F94-80191FD4 18C8D4 0040+00 1/0 0/0 0/0 .text            modeMove__15dFile_warning_cFv */
void dFile_warning_c::modeMove() {
    if (baseMoveAnm() == true) {
        field_0x18 = 0;
    }
}

/* 80191FD4-801920B8 18C914 00E4+00 1/1 0/0 0/0 .text            baseMoveAnm__15dFile_warning_cFv */
bool dFile_warning_c::baseMoveAnm() {
    bool rt;

    if (field_0x28 != field_0x2c) {
        if (field_0x28 < field_0x2c) {
            field_0x28 += 2;

            if (field_0x28 > field_0x2c) {
                field_0x28 = field_0x2c;
            }
        } else {
            field_0x28 -= 2;

            if (field_0x28 < field_0x2c) {
                field_0x28 = field_0x2c;
            }
        }

        field_0x24->setFrame(field_0x28);
        mFileWarn.Scr->animation();
        rt = false;
    }

    if (field_0x28 == field_0x2c) {
        if (field_0x28 == 2859) {
            field_0x3c = 1;
        } else {
            field_0x3c = 0;
        }

        mStatus = 1;
        rt = true;
    }

    return rt;
}

/* 801920B8-8019210C 18C9F8 0054+00 0/0 5/5 0/0 .text            openInit__15dFile_warning_cFv */
void dFile_warning_c::openInit() {
    field_0x28 = 2849;
    field_0x2c = 2859;
    field_0x24->setFrame(field_0x28);

    mStatus = 0;
    field_0x18 = 1;
}

/* 8019210C-80192160 18CA4C 0054+00 0/0 6/6 0/0 .text            closeInit__15dFile_warning_cFv */
void dFile_warning_c::closeInit() {
    field_0x28 = 2859;
    field_0x2c = 2849;
    field_0x24->setFrame(field_0x28);

    mStatus = 0;
    field_0x18 = 1;
}

/* 80192160-80192190 18CAA0 0030+00 0/0 4/4 0/0 .text            init__15dFile_warning_cFv */
void dFile_warning_c::init() {
    field_0x24->setFrame(2849.0f);
    mFileWarn.Scr->animation();
}

/* 80192190-801921CC 18CAD0 003C+00 0/0 2/2 0/0 .text            _draw__15dFile_warning_cFv */
void dFile_warning_c::_draw() {
    dComIfGd_set2DOpa(&mFileWarn);
}

/* 801921CC-801921F8 18CB0C 002C+00 0/0 1/1 0/0 .text            drawSelf__15dFile_warning_cFv */
void dFile_warning_c::drawSelf() {
    mFileWarn.draw();
}

/* 801921F8-80192240 18CB38 0048+00 0/0 1/1 0/0 .text            setText__15dFile_warning_cFUl */
void dFile_warning_c::setText(u32 param_0) {
    mFileWarn.mMsgString->getString(param_0, field_0x20, NULL, mFileWarn.mFont, NULL, 0);
}

/* 80192240-8019230C 18CB80 00CC+00 0/0 1/1 0/0 .text
 * setFontColor__15dFile_warning_cFQ28JUtility6TColorQ28JUtility6TColor */
void dFile_warning_c::setFontColor(JUtility::TColor param_0, JUtility::TColor param_1) {
    field_0x20->setBlackWhite(param_0, param_1);
    field_0x20->setFontColor(JUtility::TColor(255, 255, 255, 255),
                             JUtility::TColor(255, 255, 255, 255));
}

/* 8019230C-80192354 18CC4C 0048+00 0/0 1/0 0/0 .text
 * setBlackWhite__10J2DTextBoxFQ28JUtility6TColorQ28JUtility6TColor */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool J2DTextBox::setBlackWhite(JUtility::TColor param_0, JUtility::TColor param_1) {
    nofralloc
#include "asm/d/file/d_file_sel_warning/setBlackWhite__10J2DTextBoxFQ28JUtility6TColorQ28JUtility6TColor.s"
}
#pragma pop

/* 80192354-8019238C 18CC94 0038+00 1/0 0/0 0/0 .text            draw__16dDlst_FileWarn_cFv */
void dDlst_FileWarn_c::draw() {
    J2DGrafContext* graf_ctx = dComIfGp_getCurrentGrafPort();
    Scr->draw(0.0f, 0.0f, graf_ctx);
}