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
136
137
138
139
140
141
142
143
144
145
|
#ifndef RELOAD_COLOR_FADER_H
#define RELOAD_COLOR_FADER_H
#include "common.h"
#include "egg/core/eggColorFader.h"
#include "egg/core/eggFader.h"
#include "egg/core/eggHeap.h"
#include "m/m_color.h"
namespace dReset {
class Manage_c {
public:
enum Mode_e {
Normal = 0,
SoftReset = 1,
HbmWait = 2,
DiskWait = 3,
FatalError = 4,
SafetyWait = 5,
};
enum Exec_e {
Restart = 0,
Reboot = 1,
ReturnToMenu = 2,
ReturnToDataManager = 3,
Shutdown = 4,
ExecNone = 5,
};
static void CreateInstance(EGG::Heap *);
static Manage_c *GetInstance();
Manage_c(EGG::Heap *);
void Configure();
void Reset();
void Calculate();
void Draw();
void BootComplete(bool complete);
bool CanExecSoftReset() const;
void SetSoftResetFinish();
void SetSoftResetScene();
void PostDeleteScene();
bool IsFaderBlank() const;
void SetHbmReturnMenu();
void SetHbmReset();
void SetDelayReset();
void SetDelayPowerOff();
void SetInteriorReturnDataManager();
void fn_80067FF0();
void ExecProcPre();
void fn_80068070();
void ExecProcMain();
void DiskCheckModeRequest(bool);
void DebugPrintMode(const char *);
void ModeProc();
void ModeRequest(Mode_e);
void ModeRequestSafetyWait(Exec_e);
void ModeRequestSoftReset();
void ModeInit_Normal();
void ModeProc_Normal();
void ModeInit_SoftReset();
void ModeProc_SoftReset();
void ModeInit_HbmWait();
void ModeProc_HbmWait();
void ModeInit_DiskWait();
void ModeProc_DiskWait();
void ModeInit_FatalError();
void ModeProc_FatalError();
void ModeInit_SafetyWait();
void ModeProc_SafetyWait();
void SetResetCallback();
void SetPowerCallback();
void SetDiskCheckCallback();
static void DiskCheckCallback(s32 b, struct DVDFileInfo *info);
static void ResetCallback();
static void PowerCallback();
void CleanUpGX();
void CleanUpLC();
void MotorCancelOn();
void MotorCancelOff();
static bool IsFatalError();
static bool IsDiskError();
bool FadeOutCalc();
void FadeOutRequest(bool fadeout);
bool isSoftResetOrSafetyWait() const {
return mMode == SoftReset || mMode == SafetyWait;
}
bool isNormal() const {
return mMode == Normal;
}
bool isSoftReset() const {
return mMode == SoftReset;
}
bool isHbmWait() const {
return mMode == HbmWait;
}
bool isDiskWait() const {
return mMode == DiskWait;
}
bool isFatalError() const {
return mMode == FatalError;
}
bool isSafetyWait() const {
return mMode == SafetyWait;
}
private:
/* 0x00 */ EGG::Heap *mpHeap;
/* 0x04 */ EGG::ColorFader *mpFader;
/* 0x08 */ EGG::ColorFader::EStatus mFaderStatusPrev;
/* 0x0C */ Mode_e mMode;
/* 0x10 */ UNKWORD field_0x10;
/* 0x14 */ Mode_e mModePrev;
/* 0x18 */ Exec_e mExec;
/* 0x1C */ UNKWORD field_0x1C;
/* 0x20 */ DVDCommandBlock mDvdCmd;
/* 0x50 */ bool mHbmReset;
/* 0x51 */ bool mHbmReturnMenu;
/* 0x52 */ bool mRestart;
/* 0x53 */ bool mShutdown;
/* 0x54 */ bool mInteriorReturnDataManager;
/* 0x58 */ UNKWORD field_0x58;
/* 0x5C */ UNKWORD field_0x5C;
/* 0x60 */ UNKWORD field_0x60;
/* 0x64 */ u8 mBootComplete;
/* 0x65 */ u8 mSoftReset;
/* 0x66 */ u8 field_0x66;
/* 0x67 */ u8 field_0x67;
static Manage_c *s_pInstance;
static mColor c_faderColor;
};
} // namespace dReset
#endif
|