Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
JUTProcBar.h
Go to the documentation of this file.
1#ifndef JUTPROCBAR_H
2#define JUTPROCBAR_H
3
5#include <dolphin/os.h>
6
7class JKRHeap;
8
14public:
15 class CTime {
16 public:
17 CTime() { clear(); }
18
19 void clear() {
20 mCost = 0;
21 field_0x8 = 0;
22 field_0xc = 0;
23 }
24
25 void start(u8 param_0, u8 param_1, u8 param_2) {
26 mR = param_0;
27 mG = param_1;
28 mB = param_2;
29 mTick = OSGetTick();
30 }
31
32 void end() {
34 mCost = OSTicksToMicroseconds(diff);
35 if (mCost == 0) {
36 mCost = 1;
37 }
38 }
39
40 void accumePeek() {
41 if (++field_0xc >= 0x10 || mCost >= field_0x8) {
43 field_0xc = 0;
44 }
45 }
46
47 int calcBarSize(int p1, int p2) { return mCost * p1 / p2; }
48
49 /* 0x00 */ u32 mTick;
50 /* 0x04 */ u32 mCost;
51 /* 0x08 */ u32 field_0x8;
52 /* 0x0C */ u32 field_0xc;
53 /* 0x10 */ u8 mR;
54 /* 0x11 */ u8 mG;
55 /* 0x12 */ u8 mB;
56 };
57
58 class CParamSet {
59 public:
60 /* 0x00 */ int mBarWidth;
61 /* 0x04 */ int mPosX;
62 /* 0x08 */ int mPosY;
63 /* 0x0C */ int mWidth;
64 /* 0x10 */ int mUserPosition;
65
67 void setBarWidth(int width) { mBarWidth = width; }
68 void setPosition(int x, int y) {
69 mPosX = x;
70 mPosY = y;
71 }
72 void setWidth(int width) { mWidth = width; }
73 void setUserPosition(int userPos) { mUserPosition = userPos; }
74 };
75
76 JUTProcBar();
78 static JUTProcBar* create();
79 static void destroy();
80 static void clear();
81 void bar_subroutine(int, int, int, int, int, int, int, JUtility::TColor,
83 void adjustMeterLength(u32, f32*, f32, f32, int*);
84 void draw();
85 void drawProcessBar();
86 void drawHeapBar();
87
88 void cpuStart() { mCpu.start(255, 129, 30); }
89 void cpuEnd() { mCpu.end(); }
90 void gpWaitStart() { mGpWait.start(255, 129, 30); }
91 void gpWaitEnd() { mGpWait.end(); }
92 void gpStart() { mGp.start(255, 129, 30); }
93 void gpEnd() { mGp.end(); }
94 void wholeLoopStart() { mWholeLoop.start(255, 129, 30); }
96 void idleStart() { mIdle.start(255, 129, 30); }
97 void idleEnd() { mIdle.end(); }
98 void setCostFrame(int frame) { sManager->mCostFrame = frame; }
99 void setVisible(bool visible) { mVisible = visible; }
100 void setVisibleHeapBar(bool visible) { mHeapBarVisible = visible; }
101 void setWatchHeap(JKRHeap* pHeap) { mWatchHeap = pHeap; }
102
103 static JUTProcBar* getManager() { return sManager; }
104
106
107private:
108 /* 0x000 */ CTime mIdle;
109 /* 0x014 */ CTime mGp;
110 /* 0x028 */ CTime mCpu;
111 /* 0x03C */ CTime mGpWait;
112 /* 0x050 */ CTime mWholeLoop;
113 /* 0x064 */ CTime mUsers[8];
114 /* 0x104 */ int mCostFrame;
115 /* 0x108 */ int field_0x108;
116 /* 0x10C */ bool mVisible;
117 /* 0x110 */ int field_0x110;
118 /* 0x114 */ CParamSet mParams;
119 /* 0x128 */ int field_0x128;
120 /* 0x12C */ JKRHeap* mWatchHeap;
121 /* 0x130 */ bool mHeapBarVisible;
122};
123
124#endif /* JUTPROCBAR_H */
Definition JKRHeap.h:23
Definition JUTProcBar.h:58
void setBarWidth(int width)
Definition JUTProcBar.h:67
void setPosition(int x, int y)
Definition JUTProcBar.h:68
int mUserPosition
Definition JUTProcBar.h:64
int mPosY
Definition JUTProcBar.h:62
int mWidth
Definition JUTProcBar.h:63
int mBarWidth
Definition JUTProcBar.h:60
void setUserPosition(int userPos)
Definition JUTProcBar.h:73
CParamSet()
Definition JUTProcBar.h:66
void setWidth(int width)
Definition JUTProcBar.h:72
int mPosX
Definition JUTProcBar.h:61
Definition JUTProcBar.h:15
u32 field_0xc
Definition JUTProcBar.h:52
u8 mG
Definition JUTProcBar.h:54
u32 field_0x8
Definition JUTProcBar.h:51
int calcBarSize(int p1, int p2)
Definition JUTProcBar.h:47
CTime()
Definition JUTProcBar.h:17
u32 mTick
Definition JUTProcBar.h:49
u8 mB
Definition JUTProcBar.h:55
void clear()
Definition JUTProcBar.h:19
u32 mCost
Definition JUTProcBar.h:50
void end()
Definition JUTProcBar.h:32
void start(u8 param_0, u8 param_1, u8 param_2)
Definition JUTProcBar.h:25
u8 mR
Definition JUTProcBar.h:53
void accumePeek()
Definition JUTProcBar.h:40
Definition JUTProcBar.h:13
static JUTProcBar * sManager
Definition JUTProcBar.h:105
void bar_subroutine(int, int, int, int, int, int, int, JUtility::TColor, JUtility::TColor)
Definition JUTProcBar.cpp:64
int field_0x110
Definition JUTProcBar.h:117
~JUTProcBar()
Definition JUTProcBar.cpp:32
void setVisibleHeapBar(bool visible)
Definition JUTProcBar.h:100
static void destroy()
Definition JUTProcBar.cpp:43
void cpuEnd()
Definition JUTProcBar.h:89
static void clear()
Definition JUTProcBar.cpp:54
CTime mGp
Definition JUTProcBar.h:109
int mCostFrame
Definition JUTProcBar.h:114
void cpuStart()
Definition JUTProcBar.h:88
void gpWaitEnd()
Definition JUTProcBar.h:91
static JUTProcBar * create()
Definition JUTProcBar.cpp:36
void draw()
Definition JUTProcBar.cpp:109
CTime mWholeLoop
Definition JUTProcBar.h:112
void wholeLoopStart()
Definition JUTProcBar.h:94
void idleStart()
Definition JUTProcBar.h:96
void wholeLoopEnd()
Definition JUTProcBar.h:95
void gpEnd()
Definition JUTProcBar.h:93
int field_0x108
Definition JUTProcBar.h:115
bool mVisible
Definition JUTProcBar.h:116
void setCostFrame(int frame)
Definition JUTProcBar.h:98
void drawProcessBar()
Definition JUTProcBar.cpp:114
void gpStart()
Definition JUTProcBar.h:92
JKRHeap * mWatchHeap
Definition JUTProcBar.h:120
void idleEnd()
Definition JUTProcBar.h:97
CTime mUsers[8]
Definition JUTProcBar.h:113
CTime mGpWait
Definition JUTProcBar.h:111
CTime mCpu
Definition JUTProcBar.h:110
int field_0x128
Definition JUTProcBar.h:119
CParamSet mParams
Definition JUTProcBar.h:118
JUTProcBar()
Definition JUTProcBar.cpp:9
static JUTProcBar * getManager()
Definition JUTProcBar.h:103
void gpWaitStart()
Definition JUTProcBar.h:90
void drawHeapBar()
Definition JUTProcBar.cpp:283
void setWatchHeap(JKRHeap *pHeap)
Definition JUTProcBar.h:101
void adjustMeterLength(u32, f32 *, f32, f32, int *)
Definition JUTProcBar.cpp:80
bool mHeapBarVisible
Definition JUTProcBar.h:121
CTime mIdle
Definition JUTProcBar.h:108
void setVisible(bool visible)
Definition JUTProcBar.h:99
asm OSTick OSGetTick(void)
Definition OSTime.c:29
u32 OSTick
Definition os.h:20
double x double x
Definition e_atan2.c:58
double x double y
Definition e_atan2.c:58
int diff
Definition e_fmod.c:41
unsigned long u32
Definition types.h:12
float f32
Definition types.h:25
unsigned char u8
Definition types.h:8
Definition TColor.h:12