summaryrefslogtreecommitdiff
path: root/include/d/d_operate_wind.h
blob: 94edb695bbe81426e27ae44c539631010574d578 (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
#ifndef D_OPERATE_WIND_H
#define D_OPERATE_WIND_H

#include "d/d_drawlist.h"
#include "f_op/f_op_msg.h"
#include "f_op/f_op_msg_mng.h"
#include "m_Do/m_Do_hostIO.h"
#include "JSystem/JUtility/TColor.h"

struct fopMsgM_pane_class;
class JKRExpHeap;
class J2DScreen;
class STControl;

class dOw_HIO_c : public mDoHIO_entry_c {
public:
    dOw_HIO_c();

    void genMessage(JORMContext* ctx);

public:
    /* 0x04 */ f32 field_0x04;
    /* 0x08 */ s16 field_0x08;
    /* 0x0A */ s16 field_0x0a;
    /* 0x0C */ s16 field_0x0c;
    /* 0x0E */ s16 field_0x0e;
    /* 0x10 */ s16 field_0x10;
    /* 0x12 */ s16 field_0x12;
    /* 0x14 */ s16 field_0x14;
    /* 0x16 */ s16 field_0x16;
    /* 0x18 */ u8 field_0x18;
};

class dDlst_Ow_main_c : public dDlst_base_c {
public:
    inline void drawLine(int, f32, f32, f32, f32);
    void setLineColor(JUtility::TColor c) { color = c; }
    void setLineMax(int v) { mLineMax = v; }
    void setScreen(J2DScreen* s) { scrn = s; }
    
    void draw();

public:
    /* 0x004 */ J2DScreen* scrn;
    /* 0x008 */ JUtility::TColor color;
    /* 0x00C */ int mLineMax;
    /* 0x010 */ f32 mX1[50];
    /* 0x0D8 */ f32 mY1[50];
    /* 0x1A0 */ f32 mX2[50];
    /* 0x268 */ f32 mY2[50];
};

class dDlst_Ow_mask_c : public dDlst_base_c {
public:
    void setScreen(J2DScreen*) {}
    
    void draw();

public:
    /* 0x004 */ J2DScreen* scrn;
};

class dOperate_wind_c {
public:
    virtual ~dOperate_wind_c() {}
    void setTimer(s16) {}
    
    static int dOw_angleRegular(f32);
    int dOw_stickControl(int, s16);
    void screenSet();
    void alphaSet(f32);
    void arrowColor1();
    void arrowColor2();
    void maskColor();
    void arrowDirection();
    void windSet();
    void ringScale(f32);
    void directionTrans(f32);
    void lineInit(f32);
    void lineDraw();
    void arrowRotate(fopMsgM_pane_class*, s16);
    void initialize();
    void _create();
    void _delete();
    void _move();
    void _draw();
    bool _open();
    bool _close();

public:
    /* 0x004 */ J2DScreen* scrn1;
    /* 0x008 */ J2DScreen* scrn2;
    /* 0x00C */ fopMsgM_pane_class field_0x0c[5];
    /* 0x124 */ fopMsgM_pane_class field_0x124[2];
    /* 0x194 */ fopMsgM_pane_class field_0x194;
    /* 0x1CC */ fopMsgM_pane_class field_0x1cc[4];
    /* 0x2AC */ fopMsgM_pane_class field_0x2ac[8];
    /* 0x46C */ fopMsgM_pane_class field_0x46c[4];
    /* 0x54C */ fopMsgM_pane_alpha_class field_0x54c;
    /* 0x554 */ fopMsgM_pane_alpha_class field_0x554;
    /* 0x55C */ STControl* stick;
    /* 0x560 */ dDlst_Ow_main_c* mMain;
    /* 0x564 */ dDlst_Ow_mask_c* mMask;
};

class dOw_c : public msg_class {
public:
    inline void _close();
    inline bool _draw();
    inline void _move();
    inline void _open();
    JKRExpHeap* getHeap() { return heap; }
    void getStatus() {}
    void setHeap(JKRExpHeap* h) { heap = h; }
    void setStatus(u8) {}
    void setTimer(s16) {}

    void _create();
    void _delete();

public:
    /* 0x0FC */ JKRExpHeap* heap;
    /* 0x100 */ dOperate_wind_c* dOw_scrn;
    /* 0x104 */ u8 field_0x104;
};

#endif /* D_OPERATE_WIND_H */