summaryrefslogtreecommitdiff
path: root/src/msg/scrn/d_msg_scrn_boss.cpp
blob: 88a1ac0556983490dfb139111f4eefd95af944ad (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
//
// Generated By: dol2asm
// Translation Unit: msg/scrn/d_msg_scrn_boss
//

#include "msg/scrn/d_msg_scrn_boss.h"
#include "d/msg/d_msg_object.h"
#include "dol2asm.h"
#include "dolphin/types.h"

//
// External References:
//

extern "C" extern dMsgObject_HIO_c g_MsgObject_HIO_c;

//
// Declarations:
//

/* 8023C5C8-8023C928 236F08 0360+00 0/0 1/1 0/0 .text            __ct__14dMsgScrnBoss_cFv */
dMsgScrnBoss_c::dMsgScrnBoss_c() {
    static u64 t_tag[7] = {
        'sfontb0', 'sfontb1', 'sfontb2', 'sfontl0',
        'sfontl1', 'sfontl2', 'sfont00',
    };

    init();

    mpScreen = new J2DScreen();
    mpScreen->setPriority("zelda_boss_name.blo", 0x20000, dComIfGp_getMsgArchive(4));
    dPaneClass_showNullPane(mpScreen);

    mpPmp_c = new CPaneMgr(mpScreen, 'n_all', 2, NULL);
    mpPmp_c->scale(g_MsgObject_HIO_c.mBossNameScaleX, g_MsgObject_HIO_c.mBossNameScaleY);

    mpFontParent = new CPaneMgr(mpScreen, 's_font_n', 0, NULL);
    mpFontParent->scale(g_MsgObject_HIO_c.mBossNameCharSizeX, g_MsgObject_HIO_c.mBossNameCharSizeY);
    mpFontParent->paneTrans(g_MsgObject_HIO_c.mBossNameCharPosX, g_MsgObject_HIO_c.mBossNameCharPosY);

    mpBaseParent = new CPaneMgr(mpScreen, 'base_n', 2, NULL);
    mpBaseParent->scale(g_MsgObject_HIO_c.mBossNameBaseSizeX, g_MsgObject_HIO_c.mBossNameBaseSizeY);
    mpBaseParent->paneTrans(g_MsgObject_HIO_c.mBossNameBasePosX, g_MsgObject_HIO_c.mBossNameBasePosY);

    for (int i = 0; i < 7; i++) {
        mpTm_c[i] = new CPaneMgr(mpScreen, t_tag[i], 0, NULL);
        ((J2DTextBox*)mpTm_c[i]->getPanePtr())->setFont(mDoExt_getRubyFont());
        ((J2DTextBox*)mpTm_c[i]->getPanePtr())->setCharSpace(1.0f);
        ((J2DTextBox*)mpTm_c[i]->getPanePtr())->setString(0x100, "");
    }

    ((J2DTextBox*)mpTm_c[0]->getPanePtr())->getFontSize(mFontSize);
    mTBoxWidth = mpTm_c[0]->getSizeX();
    mTBoxHeight = mpTm_c[0]->getSizeY();
    mLineSpace = ((J2DTextBox*)mpTm_c[0]->getPanePtr())->getLineSpace();
    mCharSpace = ((J2DTextBox*)mpTm_c[0]->getPanePtr())->getCharSpace();

    for (int i = 0; i < 7; i++) {
        ((J2DTextBox*)mpTm_c[i]->getPanePtr())->setLineSpace(mLineSpace);
    }

    mTextBoxPosX = mpTm_c[0]->getGlobalPosX();
    mTextBoxPosY = mpTm_c[0]->getGlobalPosY();
}

/* 8023C928-8023CA88 237268 0160+00 1/0 0/0 0/0 .text            __dt__14dMsgScrnBoss_cFv */
dMsgScrnBoss_c::~dMsgScrnBoss_c() {
    delete mpScreen;
    mpScreen = NULL;

    delete mpPmp_c;
    mpPmp_c = NULL;

    delete mpFontParent;
    mpFontParent = NULL;

    delete mpBaseParent;
    mpBaseParent = NULL;

    for (int i = 0; i < 7; i++) {
        delete mpTm_c[i];
        mpTm_c[i] = NULL;
    }

    dComIfGp_getMsgArchive(4)->removeResourceAll();
}

/* 8023CA88-8023CB98 2373C8 0110+00 1/0 0/0 0/0 .text            exec__14dMsgScrnBoss_cFv */
void dMsgScrnBoss_c::exec() {
    mpPmp_c->scale(g_MsgObject_HIO_c.mBossNameScaleX, g_MsgObject_HIO_c.mBossNameScaleY);

    mpFontParent->scale(g_MsgObject_HIO_c.mBossNameCharSizeX, g_MsgObject_HIO_c.mBossNameCharSizeY);
    mpFontParent->paneTrans(g_MsgObject_HIO_c.mBossNameCharPosX, g_MsgObject_HIO_c.mBossNameCharPosY);

    mpBaseParent->scale(g_MsgObject_HIO_c.mBossNameBaseSizeX, g_MsgObject_HIO_c.mBossNameBaseSizeY);
    mpBaseParent->paneTrans(g_MsgObject_HIO_c.mBossNameBasePosX, g_MsgObject_HIO_c.mBossNameBasePosY);

    if (isTalkNow()) {
        fukiAlpha(1.0f);
    }
}

/* 8023CB98-8023CBF0 2374D8 0058+00 1/0 0/0 0/0 .text            drawSelf__14dMsgScrnBoss_cFv */
void dMsgScrnBoss_c::drawSelf() {
    J2DGrafContext* ctx = dComIfGp_getCurrentGrafPort();
    ctx->setup2D();
    drawOutFont(0.0f, 0.0f, 1.0f);
}

/* 8023CBF0-8023CC7C 237530 008C+00 1/0 0/0 0/0 .text            fukiAlpha__14dMsgScrnBoss_cFf */
void dMsgScrnBoss_c::fukiAlpha(f32 alpha) {
    mpPmp_c->setAlphaRate(alpha);
    mpBaseParent->setAlphaRate(alpha * g_MsgObject_HIO_c.mBossNameBaseAlpha);

    for (int i = 0; i < 7; i++) {
        mpTm_c[i]->setAlphaRate(alpha);
    }
}

/* 8023CC7C-8023CC80 2375BC 0004+00 1/0 0/0 0/0 .text            fukiScale__14dMsgScrnBoss_cFf */
void dMsgScrnBoss_c::fukiScale(f32) {
    /* empty function */
}

/* 8023CC80-8023CC84 2375C0 0004+00 1/0 0/0 0/0 .text            fukiTrans__14dMsgScrnBoss_cFff */
void dMsgScrnBoss_c::fukiTrans(f32, f32) {
    /* empty function */
}

/* 8023CC84-8023CC88 2375C4 0004+00 1/0 0/0 0/0 .text            fontAlpha__14dMsgScrnBoss_cFf */
void dMsgScrnBoss_c::fontAlpha(f32) {
    /* empty function */
}

/* 803998F8-803998F8 025F58 0000+00 0/0 0/0 0/0 .rodata          @stringBase0 */