Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_menu_ring.h
Go to the documentation of this file.
1#ifndef D_MENU_D_MENU_RING_H
2#define D_MENU_D_MENU_RING_H
3
4#include "d/d_com_inf_game.h"
5
6class CPaneMgr;
7class CPaneMgrAlpha;
8struct CSTControl;
9class J2DTextBox;
10class STControl;
11class dKantera_icon_c;
12class dMsgString_c;
15
16class dMenu_Ring_c : public dDlst_base_c {
17public:
24
25 /* 801E9118 */ dMenu_Ring_c(JKRExpHeap*, STControl*, CSTControl*, u8);
26 /* 801EAB7C */ void _create();
27 /* 801EABE8 */ void _delete();
28 /* 801EABEC */ void _move();
29 /* 801EACC8 */ void _draw();
30 /* 801EB080 */ void setKanteraPos(f32, f32);
31 /* 801EB0A4 */ bool isOpen();
32 /* 801EB2B4 */ bool isMoveEnd();
33 /* 801EB3CC */ bool isClose();
34 /* 801EB624 */ u8 getStickInfo(STControl*);
35 /* 801EB8C0 */ s16 calcStickAngle(STControl*, u8);
36 /* 801EB960 */ void setRotate();
37 /* 801EBA38 */ void setItemScale(int, f32);
38 /* 801EBAB8 */ void setButtonScale(int, f32);
39 /* 801EBB10 */ void setItem();
40 /* 801EBE58 */ void setJumpItem(bool);
41 /* 801EC20C */ void setScale();
42 /* 801EC3B0 */ void setNameString(u32);
43 /* 801EC504 */ void setActiveCursor();
44 /* 801EC754 */ void setMixItem();
45 /* 801ECB14 */ void drawItem();
46 /* 801ECF9C */ void drawItem2();
47 /* 801ED2BC */ void stick_wait_init();
48 /* 801ED31C */ void stick_wait_proc();
49 /* 801ED490 */ void stick_move_init();
50 /* 801ED53C */ void stick_move_proc();
51 /* 801ED934 */ void stick_explain_init();
52 /* 801ED938 */ void stick_explain_force_init();
53 /* 801ED93C */ void stick_explain_proc();
54 /* 801EDA0C */ void stick_explain_force_proc();
55 /* 801EDB14 */ void setSelectItem(int, u8);
56 /* 801EDC98 */ void drawSelectItem();
57 /* 801EDF2C */ void setSelectItemForce(int);
58 /* 801EDFDC */ u8 getCursorPos(u8);
59 /* 801EE058 */ u8 getItemNum(u8);
60 /* 801EE15C */ u8 getItemMaxNum(u8);
61 /* 801EE228 */ bool checkExplainForce();
62 /* 801EE63C */ bool checkCombineBomb(int);
63 /* 801EE644 */ void setCombineBomb(int);
64 /* 801EE648 */ void drawNumber(int, int, f32, f32);
65 /* 801EEA84 */ u8 getItem(int, u8);
66 /* 801EEAE4 */ void setDoStatus(u8);
67 /* 801EEB58 */ bool isMixItemOn();
68 /* 801EEC98 */ bool isMixItemOff();
69 /* 801EED84 */ void setMixMessage();
70 /* 801EEF14 */ void textScaleHIO();
71 /* 801EF11C */ void textCentering();
72 /* 801EF13C */ f32 clacEllipseFunction(f32, f32, f32);
73 /* 801EF174 */ f32 calcDistance(f32, f32, f32, f32);
74 /* 801EF1A0 */ void clacEllipsePlotAverage(int, f32, f32);
75 /* 801EF484 */ bool dpdMove();
76 /* 801EF48C */ u8 openExplain(u8);
77
78 virtual void draw() { _draw(); }
79 /* 801EA708 */ virtual ~dMenu_Ring_c();
80
81 void drawFlag0() { mDrawFlag = 0; }
83
84private:
85 /* 0x004 */ JKRExpHeap* mpHeap;
86 /* 0x008 */ STControl* mpStick;
87 /* 0x00C */ CSTControl* mpCStick;
89 /* 0x014 */ dMsgString_c* mpString;
93 /* 0x024 */ CPaneMgr* mpTextParent[10];
94 /* 0x04C */ CPaneMgr* mpNameParent;
95 /* 0x050 */ CPaneMgr* mpCircle;
97 /* 0x058 */ J2DScreen* mpScreen;
98 /* 0x05C */ J2DScreen* mpSpotScreen;
99 /* 0x060 */ u8 field_0x060[0x064 - 0x060];
101 /* 0x068 */ J2DPicture* mpSelectItemTex[4][3];
103 /* 0x1B8 */ J2DPicture* mpBlackTex;
104 /* 0x1BC */ J2DPicture* mpItemNumTex[3]; // Displays digits on ammo-based items. Each index
105 // represents one drawn digit
106 /* 0x1C8 */ J2DTextBox* mpComboOffString[5]; // Displays "Combo Off" combined bow is equipped
107 // and cursor is on combinable item
108 /* 0x1DC */ J2DTextBox* mpBowArrowComboString[5]; // Displays "Bow & Arrow Combo" if bow is
109 // equipped and cursor is on combinable item
110 /* 0x1F0 */ ResTIMG* mpSelectItemTexBuf[4][3][2];
113 /* 0x374 */ void*
114 mpResData[3]; // Contains screen data from .blo files which control e.g. the
115 // appearance of specific sprites and where they are on the screen
116 /* 0x380 */ cXyz mDirectSelectCursorPos; // Positions the cursor with it's X and Z coordinates
117 // when Direct Select is active
122 /* 0x50C */ f32 mRingRadiusH;
123 /* 0x510 */ f32 mRingRadiusV;
124 /* 0x514 */ f32 mAlphaRate; // Responsible for multiple things but especially for the
125 // background becoming darker in a specific velocity when opening
126 /* 0x518 */ f32 field_0x518[4];
127 /* 0x528 */ f32 field_0x528[4];
128 /* 0x538 */ f32 field_0x538[4];
129 /* 0x548 */ f32 field_0x548[4];
130 /* 0x558 */ f32 field_0x558[4];
131 /* 0x568 */ f32 mCenterPosX; // Controls the position in the x-axis of the whole item wheel
132 // and moves it when opening or closing.
133 /* 0x56C */ f32 mCenterPosY; // Controls the position in the y-axis of the whole item wheel
134 // and moves it when opening or closing.
135 /* 0x570 */ f32 mPikariFlashingSpeed; // Controls the flashing speed of the combine icon (Bow &
136 // Arrow Combo)
137 /* 0x574 */ f32 field_0x574[3];
138 /* 0x580 */ f32 field_0x580[3];
142 /* 0x598 */ f32 mRingGuidePosX[10];
143 /* 0x5C0 */ f32 mRingGuidePosY[10];
144 /* 0x5E8 */ f32 mRingGuideScale[10];
146 /* 0x614 */ f32 mRingPosX;
147 /* 0x618 */ f32 mRingPosY;
148 /* 0x61C */ f32 mRingScaleH;
149 /* 0x620 */ f32 mRingScaleV;
150 /* 0x624 */ f32 mRingAlpha; // the alpha depends on if the player is a wolf or a human
151 /* 0x628 */ u32 field_0x628; // unused, not even initialized
152 /* 0x62C */ u32 mPlayerIsWolf;
153 /* 0x630 */ u32 mNameStringID;
154 /* 0x634 */ s32 field_0x634;
156 /* 0x63A */ s16 field_0x63a; // just gets set to zero in some functions. Unused
157 /* 0x63C */ s16 field_0x63c; // unused
159 /* 0x66E */ s16 field_0x66e;
160 /* 0x670 */ s16 field_0x670;
161 /* 0x672 */ s16 mWaitFrames;
162 /* 0x674 */ s16 field_0x674[4];
163 /* 0x67C */ u16 field_0x67c;
164 /* 0x67E */ s16 field_0x67e;
165 /* 0x680 */ s16 mCursorSpeed;
166 /* 0x682 */ s16 field_0x682;
167 /* 0x684 */ s16 field_0x684;
168 /* 0x686 */ s16 field_0x686[4];
169 /* 0x68E */ s16 field_0x68e;
171 /* 0x6A8 */ u8 mCurrentSlot;
172 /* 0x6A9 */ u8 field_0x6a9; // unused
173 /* 0x6AA */ u8 mXButtonSlot;
174 /* 0x6AB */ u8 mYButtonSlot;
175 /* 0x6AC */ u8 field_0x6ac;
176 /* 0x6AD */ u8 field_0x6ad;
177 /* 0x6AE */ u8 mItemsTotal; // Contains the amount of items which are actually obtained and in
178 // the item wheel
179 /* 0x6AF */ u8 mTotalItemTexToAlloc; // Similiar to mItemsTotal but used to allocate and setup
180 // the item textures based on obtained items
181 /* 0x6B0 */ u8 mStatus;
182 /* 0x6B1 */ u8 mOldStatus;
183 /* 0x6B2 */ u8 field_0x6b2; // used to set status but always zero
184 /* 0x6B3 */ u8 field_0x6b3; // ends up being useless since checkCombineComb and setCombineBomb
185 // are empty functions at least in GCN
186 /* 0x6B4 */ u8 field_0x6b4[4];
187 /* 0x6B8 */ u8 field_0x6b8[4];
188 /* 0x6BC */ u8 mRingOrigin; // The value decides the origin the item wheel comes from before
189 // it's in the center of the screen
190 /* 0x6BD */ u8 mDrawFlag;
191 /* 0x6BE */ u8 field_0x6be[4];
192 /* 0x6C2 */ u8 field_0x6c2;
193 /* 0x6C3 */ u8 field_0x6c3; // unused
194 /* 0x6C4 */ u8 field_0x6c4; // only gets set to current slot when item explain gets opened
195 /* 0x6C5 */ u8 field_0x6c5; // unused
196 /* 0x6C6 */ u8 field_0x6c6; // unused
197 /* 0x6C7 */ u8 field_0x6c7[4];
198 /* 0x6CB */ u8 field_0x6cb;
199 /* 0x6CC */ u8 mDoStatus;
200 /* 0x6CD */ u8 field_0x6cd;
201 /* 0x6CE */ bool mDirectSelectActive;
202 /* 0x6CF */ u8 field_0x6cf;
203 /* 0x6D0 */ u8 field_0x6d0;
204 /* 0x6D1 */ u8 field_0x6d1;
205 /* 0x6D2 */ u8 field_0x6d2;
206 /* 0x6D3 */ u8 field_0x6d3;
207};
208
209#endif /* D_MENU_D_MENU_RING_H */
T cLib_calcTimer(T *value)
Definition c_lib.h:74
Definition d_pane_class_alpha.h:10
Definition d_pane_class.h:13
Definition J2DPicture.h:55
Definition J2DScreen.h:48
Definition J2DTextBox.h:57
Definition d_lib.h:16
Definition d_drawlist.h:31
Definition d_kantera_icon_meter.h:20
Definition d_menu_item_explain.h:17
Definition d_menu_ring.h:16
f32 mRingScaleH
Definition d_menu_ring.h:148
f32 mItemSlotParam1[MAX_ITEM_SLOTS]
Definition d_menu_ring.h:120
f32 field_0x518[4]
Definition d_menu_ring.h:126
f32 mRingItemNamePosX
Definition d_menu_ring.h:139
void setStatus(u8 i_status)
Definition d_menu_ring.h:82
f32 mRingCursorScale
Definition d_menu_ring.h:145
u32 field_0x628
Definition d_menu_ring.h:151
CPaneMgr * mpTextParent[10]
Definition d_menu_ring.h:93
u8 field_0x060[0x064 - 0x060]
Definition d_menu_ring.h:99
ResTIMG * mpSelectItemTexBuf[4][3][2]
Definition d_menu_ring.h:110
void textCentering()
Definition d_menu_ring.cpp:1998
f32 clacEllipseFunction(f32, f32, f32)
Definition d_menu_ring.cpp:2003
f32 mRingGuidePosX[10]
Definition d_menu_ring.h:142
ResTIMG * mpItemBuf[MAX_ITEM_SLOTS][3]
Definition d_menu_ring.h:111
f32 field_0x538[4]
Definition d_menu_ring.h:128
u8 field_0x6b2
Definition d_menu_ring.h:183
s16 field_0x674[4]
Definition d_menu_ring.h:162
u32 mPlayerIsWolf
Definition d_menu_ring.h:152
u8 field_0x6d1
Definition d_menu_ring.h:204
J2DTextBox * mpComboOffString[5]
Definition d_menu_ring.h:106
u8 field_0x6c5
Definition d_menu_ring.h:195
f32 mRingRadiusH
Definition d_menu_ring.h:122
bool checkExplainForce()
Definition d_menu_ring.cpp:1668
f32 mItemSlotPosX[MAX_ITEM_SLOTS]
Definition d_menu_ring.h:118
void _create()
Definition d_menu_ring.cpp:508
u8 field_0x6cd
Definition d_menu_ring.h:200
f32 mRingPosY
Definition d_menu_ring.h:147
void drawItem2()
Definition d_menu_ring.cpp:1291
f32 mRingRadiusV
Definition d_menu_ring.h:123
f32 field_0x528[4]
Definition d_menu_ring.h:127
s16 field_0x66e
Definition d_menu_ring.h:159
bool dpdMove()
Definition d_menu_ring.cpp:2083
u8 mStatus
Definition d_menu_ring.h:181
void stick_move_proc()
Definition d_menu_ring.cpp:1394
u8 field_0x6a9
Definition d_menu_ring.h:172
u8 field_0x6d0
Definition d_menu_ring.h:203
f32 field_0x548[4]
Definition d_menu_ring.h:129
u8 field_0x6c2
Definition d_menu_ring.h:192
J2DPicture * mpBlackTex
Definition d_menu_ring.h:103
cXyz mDirectSelectCursorPos
Definition d_menu_ring.h:116
f32 field_0x580[3]
Definition d_menu_ring.h:138
u8 mTotalItemTexToAlloc
Definition d_menu_ring.h:179
J2DScreen * mpScreen
Definition d_menu_ring.h:97
u8 getStickInfo(STControl *)
Definition d_menu_ring.cpp:718
void stick_explain_force_init()
Definition d_menu_ring.cpp:1457
u8 field_0x6d3
Definition d_menu_ring.h:206
JKRExpHeap * mpHeap
Definition d_menu_ring.h:85
u8 field_0x6cf
Definition d_menu_ring.h:202
void stick_wait_proc()
Definition d_menu_ring.cpp:1350
void drawNumber(int, int, f32, f32)
Definition d_menu_ring.cpp:1793
s16 field_0x63a
Definition d_menu_ring.h:156
dKantera_icon_c * mpKanteraMeter
Definition d_menu_ring.h:96
void stick_move_init()
Definition d_menu_ring.cpp:1379
J2DPicture * mpItemTex[MAX_ITEM_SLOTS][3]
Definition d_menu_ring.h:102
void setKanteraPos(f32, f32)
Definition d_menu_ring.cpp:607
void drawSelectItem()
Definition d_menu_ring.cpp:1520
s16 field_0x686[4]
Definition d_menu_ring.h:168
bool isClose()
Definition d_menu_ring.cpp:676
f32 mAlphaRate
Definition d_menu_ring.h:124
void _move()
Definition d_menu_ring.cpp:524
CPaneMgrAlpha * mpMessageParent
Definition d_menu_ring.h:90
CPaneMgr * mpCircle
Definition d_menu_ring.h:95
s16 mCursorSpeed
Definition d_menu_ring.h:165
void setRotate()
Definition d_menu_ring.cpp:837
bool checkCombineBomb(int)
Definition d_menu_ring.cpp:1783
void setDoStatus(u8)
Definition d_menu_ring.cpp:1864
dMsgString_c * mpString
Definition d_menu_ring.h:89
f32 mRingAlpha
Definition d_menu_ring.h:150
void stick_wait_init()
Definition d_menu_ring.cpp:1334
dSelect_cursor_c * mpDrawCursor
Definition d_menu_ring.h:88
u8 mYButtonSlot
Definition d_menu_ring.h:174
virtual ~dMenu_Ring_c()
Definition d_menu_ring.cpp:408
s16 mOpenCloseFrames
Definition d_menu_ring.h:155
dMenu_ItemExplain_c * mpItemExplain
Definition d_menu_ring.h:112
s16 field_0x670
Definition d_menu_ring.h:160
void setItemScale(int, f32)
Definition d_menu_ring.cpp:847
u8 mDrawFlag
Definition d_menu_ring.h:190
f32 mCenterPosX
Definition d_menu_ring.h:131
void setScale()
Definition d_menu_ring.cpp:1046
void stick_explain_init()
Definition d_menu_ring.cpp:1451
u8 field_0x6b4[4]
Definition d_menu_ring.h:186
bool isOpen()
Definition d_menu_ring.cpp:612
u8 field_0x6d2
Definition d_menu_ring.h:205
void * mpResData[3]
Definition d_menu_ring.h:114
f32 mRingItemNamePosY
Definition d_menu_ring.h:140
void drawItem()
Definition d_menu_ring.cpp:1233
u8 mOldStatus
Definition d_menu_ring.h:182
bool isMixItemOn()
Definition d_menu_ring.cpp:1882
void drawFlag0()
Definition d_menu_ring.h:81
s16 field_0x68e
Definition d_menu_ring.h:169
void textScaleHIO()
Definition d_menu_ring.cpp:1956
void setJumpItem(bool)
Definition d_menu_ring.cpp:977
bool mDirectSelectActive
Definition d_menu_ring.h:201
s16 field_0x63e[MAX_ITEM_SLOTS]
Definition d_menu_ring.h:158
void setNameString(u32)
Definition d_menu_ring.cpp:1089
u8 mDoStatus
Definition d_menu_ring.h:199
u8 field_0x6b3
Definition d_menu_ring.h:184
void setCombineBomb(int)
Definition d_menu_ring.cpp:1788
J2DPicture * mpSelectItemTex[4][3]
Definition d_menu_ring.h:101
J2DTextBox * mpBowArrowComboString[5]
Definition d_menu_ring.h:108
CPaneMgrAlpha * mpSpotParent
Definition d_menu_ring.h:92
CPaneMgrAlpha * mpCenterParent
Definition d_menu_ring.h:91
f32 mItemSlotParam2[MAX_ITEM_SLOTS]
Definition d_menu_ring.h:121
f32 mRingItemNameScale
Definition d_menu_ring.h:141
f32 mRingScaleV
Definition d_menu_ring.h:149
void stick_explain_force_proc()
Definition d_menu_ring.cpp:1480
virtual void draw()
Definition d_menu_ring.h:78
void setItem()
Definition d_menu_ring.cpp:866
u8 mCurrentSlot
Definition d_menu_ring.h:171
u8 field_0x6c3
Definition d_menu_ring.h:193
u8 field_0x6be[4]
Definition d_menu_ring.h:191
f32 mRingGuideScale[10]
Definition d_menu_ring.h:144
u8 mItemsTotal
Definition d_menu_ring.h:177
J2DPicture * mpItemNumTex[3]
Definition d_menu_ring.h:104
s32 field_0x634
Definition d_menu_ring.h:154
u8 field_0x6c6
Definition d_menu_ring.h:196
u32 mNameStringID
Definition d_menu_ring.h:153
void setMixItem()
Definition d_menu_ring.cpp:1149
s16 field_0x684
Definition d_menu_ring.h:167
bool isMixItemOff()
Definition d_menu_ring.cpp:1907
f32 calcDistance(f32, f32, f32, f32)
Definition d_menu_ring.cpp:2009
void setMixMessage()
Definition d_menu_ring.cpp:1924
u8 mRingOrigin
Definition d_menu_ring.h:188
u8 getItem(int, u8)
Definition d_menu_ring.cpp:1857
u8 field_0x6c7[4]
Definition d_menu_ring.h:197
void setButtonScale(int, f32)
Definition d_menu_ring.cpp:857
CSTControl * mpCStick
Definition d_menu_ring.h:87
s16 calcStickAngle(STControl *, u8)
Definition d_menu_ring.cpp:803
u8 field_0x6b8[4]
Definition d_menu_ring.h:187
u16 field_0x67c
Definition d_menu_ring.h:163
bool isMoveEnd()
Definition d_menu_ring.cpp:653
void setActiveCursor()
Definition d_menu_ring.cpp:1109
void setSelectItemForce(int)
Definition d_menu_ring.cpp:1561
u8 field_0x6ac
Definition d_menu_ring.h:175
u8 getItemNum(u8)
Definition d_menu_ring.cpp:1595
void stick_explain_proc()
Definition d_menu_ring.cpp:1462
u8 mXButtonSlot
Definition d_menu_ring.h:173
u8 getItemMaxNum(u8)
Definition d_menu_ring.cpp:1635
s16 field_0x63c
Definition d_menu_ring.h:157
f32 mItemSlotPosY[MAX_ITEM_SLOTS]
Definition d_menu_ring.h:119
f32 mRingPosX
Definition d_menu_ring.h:146
u8 field_0x6cb
Definition d_menu_ring.h:198
f32 field_0x558[4]
Definition d_menu_ring.h:130
J2DScreen * mpCenterScreen
Definition d_menu_ring.h:100
u8 mItemSlots[MAX_ITEM_SLOTS]
Definition d_menu_ring.h:170
s16 field_0x67e
Definition d_menu_ring.h:164
s16 field_0x682
Definition d_menu_ring.h:166
u8 getCursorPos(u8)
Definition d_menu_ring.cpp:1577
STControl * mpStick
Definition d_menu_ring.h:86
u8 field_0x6c4
Definition d_menu_ring.h:194
s16 mWaitFrames
Definition d_menu_ring.h:161
f32 mPikariFlashingSpeed
Definition d_menu_ring.h:135
f32 mRingGuidePosY[10]
Definition d_menu_ring.h:143
void setSelectItem(int, u8)
Definition d_menu_ring.cpp:1498
dMenu_Ring_Status
Definition d_menu_ring.h:18
@ STATUS_EXPLAIN
Definition d_menu_ring.h:21
@ STATUS_WAIT
Definition d_menu_ring.h:19
@ STATUS_EXPLAIN_FORCE
Definition d_menu_ring.h:22
@ STATUS_MOVE
Definition d_menu_ring.h:20
CPaneMgr * mpNameParent
Definition d_menu_ring.h:94
u8 openExplain(u8)
Definition d_menu_ring.cpp:2088
J2DScreen * mpSpotScreen
Definition d_menu_ring.h:98
void _draw()
Definition d_menu_ring.cpp:546
u8 field_0x6ad
Definition d_menu_ring.h:176
void _delete()
Definition d_menu_ring.cpp:514
f32 field_0x574[3]
Definition d_menu_ring.h:137
void clacEllipsePlotAverage(int, f32, f32)
Definition d_menu_ring.cpp:2016
f32 mCenterPosY
Definition d_menu_ring.h:133
Definition d_msg_string.h:9
Definition d_select_cursor.h:26
Definition d_lib.h:73
Definition d_a_balloon_2D.h:178
Image data header.
Definition d_menu_dmap_map.cpp:109
Definition d_a_hozelda.cpp:20
unsigned long u32
Definition types.h:10
float f32
Definition types.h:22
signed short s16
Definition types.h:5
unsigned short u16
Definition types.h:9
signed long s32
Definition types.h:6
unsigned char u8
Definition types.h:8