summaryrefslogtreecommitdiff
path: root/include/d/d_2dnumber.h
blob: 3195ab309ac6495a9e6118709d397d86038bb096 (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
#ifndef D_2DNUMBER_H
#define D_2DNUMBER_H

#include "d/d_drawlist.h"

struct ResTIMG;
class JUTFont;
struct fopMsgM_pane_class;

class dDlst_2DNumber_c : public dDlst_base_c {
public:
    dDlst_2DNumber_c();
    ~dDlst_2DNumber_c();
    bool init(int, s16, s16, s16, s16, u8);
    void draw();

private:
    /* 0x04 */ J2DPicture* mNum[4];
    /* 0x14 */ cXy mPos[4];
    /* 0x34 */ f32 mWidth;
    /* 0x38 */ f32 mHeight;
    /* 0x3C */ int mValue;
    /* 0x40 */ u8 mFlag;
    /* 0x41 */ u8 mDigitNum;
};

class dDlst_2DMinigame_c : public dDlst_base_c {
public:
    bool init(ResTIMG* img1, ResTIMG* img2);
    void draw();

    void setTitlePos(f32 x, f32 y) { mTitlePos.x = x; mTitlePos.y = y; }
    void setScorePos(f32 x, f32 y) { mScorePos.x = x; mScorePos.y = y; }
    void setTitleAlpha(u8 alpha) { mTitle->setAlpha(alpha); }
    void setScoreAlpha(u8 alpha) { mScore->setAlpha(0xFF); mScoreShadow->setAlpha(alpha); } // ???

public:
    /* 0x04 */ J2DPicture* mTitle;
    /* 0x08 */ J2DPicture* mScore;
    /* 0x0C */ J2DPicture* mScoreShadow;
    /* 0x10 */ cXy mTitlePos;
    /* 0x18 */ cXy mTitleSize;
    /* 0x20 */ cXy mScorePos;
    /* 0x28 */ cXy mScoreSize;
};

class dDlst_2DBattery_c : public dDlst_base_c {
public:
    BOOL init(ResTIMG*, ResTIMG*, ResTIMG*, ResTIMG*);
    void setRotate(float);
    void draw();

public:
    /* 0x04 */ J2DPicture* mRule;
    /* 0x08 */ J2DPicture* mBattery;
    /* 0x0C */ J2DPicture* mBatteryBase;
    /* 0x10 */ J2DPicture* mNum[3][2]; /* [tens, ones, degree][no shadow, shadow] */
    /* 0x28 */ cXy mPicturePos;
    /* 0x28 */ cXy mNumPos;
    /* 0x38 */ cXy mRuleSize;
    /* 0x40 */ cXy mBatterySize;
    /* 0x48 */ cXy mBatteryBaseSize;
    /* 0x50 */ cXy mNumSize;
    /* 0x58 */ f32 mRotation;
}; // size = 0x5C

class dDlst_2DObject_c : public dDlst_base_c {
public:
    BOOL init(ResTIMG*, ResTIMG*);
    void draw();
    void setPosition(f32 x, f32 y) { mPos.x = x; mPos.y = y; }
    void setScale(f32 scale) { mScale = scale; }
    void onBeforeTex() { mCurrentNo = 0; }
    void offBeforeTex() { mCurrentNo = 1; }

public:
    /* 0x04 */ J2DPicture* mPicture[2];
    /* 0x0C */ cXy mPos;
    /* 0x14 */ cXy mSize[2];
    /* 0x24 */ f32 mScale;
    /* 0x28 */ u8 mCurrentNo;
}; // size = 0x2C

class dDlst_2DOutFont_c {
public:
    void setLeftUpPos(f32 x, f32 y) { mPosTopLeftX = x; mPosTopLeftY = y; }
    
    void initial();
    void setPane(JUTFont*, fopMsgM_pane_class*, fopMsgM_pane_class*, fopMsgM_pane_class*, fopMsgM_pane_class*);
    void setPaneEx(JUTFont*, fopMsgM_pane_class*, fopMsgM_pane_class*, fopMsgM_pane_class*, fopMsgM_pane_class*, char*);
    void setRuby(JUTFont*, fopMsgM_pane_class*);
    void setRubyEx(JUTFont*, fopMsgM_pane_class*, char*);
    void charWidth(int);
    void rubyCharWidth(int);
    void iconset(int, char**);
    void messageSet(u32);
    void outFontStickAnime1(u8);
    void outFontStickAnime2(u8, u8);
    void outFontStickAnime3(u8, u8);
    void outFontStickAnimePiece(u8, u8);
    void move();
    void setAlpha(u8);

    /* 0x00 */ u8 m00[0x08 - 0x00];
    /* 0x08 */ J2DPane* m08[3];
    /* 0x14 */ J2DPane* m14;
    /* 0x18 */ J2DPane* m18;
    /* 0x1C */ u8 m1C[0x20 - 0x1C];
    /* 0x20 */ JUTFont* m20;
    /* 0x24 */ u8 m24[0x30 - 0x24];
    /* 0x30 */ f32 mPosTopLeftX;
    /* 0x34 */ f32 mPosTopLeftY;
};

#endif /* D_2DNUMBER_H */