mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-21 22:10:59 -04:00
document a couple pedestal member names
This commit is contained in:
@@ -16,14 +16,12 @@ namespace daPedestal {
|
||||
|
||||
void execute(JPABaseEmitter*);
|
||||
void end();
|
||||
void makeEmitter(unsigned short, const cXyz*, const csXyz*, const cXyz*);
|
||||
void makeEmitter(u16, const cXyz*, const csXyz*, const cXyz*);
|
||||
|
||||
JPABaseEmitter* getEmitter() { return mpEmitter; }
|
||||
void setAngle(const csXyz* angle) { mpAngle = angle; }
|
||||
void setPos(const cXyz* pos) { mpPos = pos; }
|
||||
void setup(JPABaseEmitter* emitter, const cXyz*, const csXyz*, signed char) {
|
||||
mpEmitter = emitter;
|
||||
}
|
||||
void setup(JPABaseEmitter* emitter, const cXyz*, const csXyz*, s8) { mpEmitter = emitter; }
|
||||
|
||||
private:
|
||||
/* 0x04 */ JPABaseEmitter* mpEmitter;
|
||||
@@ -33,6 +31,12 @@ namespace daPedestal {
|
||||
|
||||
class daPds_c : public fopAc_ac_c {
|
||||
public:
|
||||
enum ActionStatus {
|
||||
ACTION_STARTING = 0,
|
||||
ACTION_ONGOING = 1,
|
||||
ACTION_ENDING = -1,
|
||||
};
|
||||
|
||||
typedef int (daPds_c::* ActionFunc_t)(void*);
|
||||
|
||||
BOOL _delete();
|
||||
@@ -61,17 +65,17 @@ namespace daPedestal {
|
||||
static const char m_arcname[];
|
||||
|
||||
public:
|
||||
/* 0x290 */ request_of_phase_process_class mPhs;
|
||||
/* 0x290 */ request_of_phase_process_class mPhase;
|
||||
/* 0x298 */ J3DModel* mpModel;
|
||||
/* 0x29C */ mDoExt_brkAnm mBrk;
|
||||
/* 0x2B4 */ Mtx mMtx;
|
||||
/* 0x2E4 */ dBgW* mpBgW;
|
||||
/* 0x2E8 */ daPds_infiniteEcallBack_c mInfiniteEcallBack;
|
||||
/* 0x2E8 */ daPds_infiniteEcallBack_c mOctagonGlowCb;
|
||||
/* 0x2F8 */ ActionFunc_t mAction;
|
||||
/* 0x304 */ f32 unk304;
|
||||
/* 0x304 */ f32 mTargetYPos;
|
||||
/* 0x308 */ f32 unk308;
|
||||
/* 0x30C */ s8 unk30C;
|
||||
/* 0x30D */ u8 mParam;
|
||||
/* 0x30C */ s8 mActionStatus;
|
||||
/* 0x30D */ u8 mType;
|
||||
/* 0x30E */ u8 unk30E;
|
||||
/* 0x30F */ s8 unk30F;
|
||||
/* 0x310 */ s16 unk310;
|
||||
|
||||
@@ -16,6 +16,7 @@ namespace dPa_name {
|
||||
ID_COMMON_LIGHT_EXPLOSION = 0x272,
|
||||
ID_COMMON_STARS_SPIN = 0x27A,
|
||||
ID_COMMON_STARS_BLOW = 0x27B,
|
||||
ID_PEDESTAL_OCTAGON_GLOW = 0x826D,
|
||||
ID_WARPFOUT_WARP4 = 0x830e,
|
||||
};
|
||||
|
||||
|
||||
@@ -13,30 +13,29 @@ static f32 dummy2[3] = {1.0f, 1.0f, 1.0f};
|
||||
static u8 dummy3[4] = {0x02, 0x00, 0x02, 0x01};
|
||||
static f64 dummy4[2] = {3.0, 0.5};
|
||||
|
||||
const char daPedestal::daPds_c::m_arcname[] = "Hdai1";
|
||||
namespace daPedestal {
|
||||
|
||||
const char daPds_c::m_arcname[] = "Hdai1";
|
||||
|
||||
/* 00000078-000000DC .text _delete__Q210daPedestal7daPds_cFv */
|
||||
BOOL daPedestal::daPds_c::_delete() {
|
||||
BOOL daPds_c::_delete() {
|
||||
if (heap != NULL) {
|
||||
dComIfG_Bgsp()->Release(mpBgW);
|
||||
}
|
||||
|
||||
mInfiniteEcallBack.end();
|
||||
dComIfG_resDelete(&mPhs, m_arcname);
|
||||
mOctagonGlowCb.end();
|
||||
dComIfG_resDelete(&mPhase, m_arcname);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
namespace daPedestal {
|
||||
/* 000000DC-000000FC .text CheckCreateHeap__10daPedestalFP10fopAc_ac_c */
|
||||
static BOOL CheckCreateHeap(fopAc_ac_c* i_this) {
|
||||
return static_cast<daPds_c*>(i_this)->CreateHeap();
|
||||
}
|
||||
|
||||
} // namespace daPedestal
|
||||
|
||||
/* 000000FC-00000244 .text CreateHeap__Q210daPedestal7daPds_cFv */
|
||||
BOOL daPedestal::daPds_c::CreateHeap() {
|
||||
BOOL daPds_c::CreateHeap() {
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(m_arcname, HDAI1_BDL_HDAI1);
|
||||
JUT_ASSERT(0xC1, modelData != 0);
|
||||
|
||||
@@ -58,22 +57,21 @@ BOOL daPedestal::daPds_c::CreateHeap() {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* 00000244-00000380 .text CreateInit__Q210daPedestal7daPds_cFv */
|
||||
void daPedestal::daPds_c::CreateInit() {
|
||||
void daPds_c::CreateInit() {
|
||||
static char* l_os_name[] = {
|
||||
"Os",
|
||||
"Os1",
|
||||
"Os2"
|
||||
};
|
||||
|
||||
mParam = fopAcM_GetParam(this) & 0xFF;
|
||||
mType = fopAcM_GetParam(this) & 0xFF;
|
||||
|
||||
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
|
||||
fopAcM_setCullSizeBox(this, -150.0f, -20.0f, -150.0f, 150.0f, 250.0f, 150.0f);
|
||||
|
||||
if (!mParam) {
|
||||
if (mType == 0) {
|
||||
// Type 0: A pedestal that a npc_os starts on in its original room.
|
||||
if (wakeupCheck()) {
|
||||
if (subtype <= 2) {
|
||||
fopAc_ac_c* pActor = fopAcM_searchFromName(l_os_name[subtype], 0, 0);
|
||||
@@ -85,7 +83,8 @@ void daPedestal::daPds_c::CreateInit() {
|
||||
|
||||
current.pos.y -= 240.0f;
|
||||
}
|
||||
} else if (mParam == 1 && finishCheck()) {
|
||||
} else if (mType == 1 && finishCheck()) {
|
||||
// Type 1: A pedestal that a npc_os ends on in the central room.
|
||||
current.pos.y += 240.0f;
|
||||
}
|
||||
|
||||
@@ -95,10 +94,10 @@ void daPedestal::daPds_c::CreateInit() {
|
||||
}
|
||||
|
||||
/* 00000380-00000474 .text _create__Q210daPedestal7daPds_cFv */
|
||||
s32 daPedestal::daPds_c::_create() {
|
||||
fopAcM_SetupActor(this, daPedestal::daPds_c);
|
||||
s32 daPds_c::_create() {
|
||||
fopAcM_SetupActor(this, daPds_c);
|
||||
|
||||
s32 phase_state = dComIfG_resLoad(&mPhs, m_arcname);
|
||||
s32 phase_state = dComIfG_resLoad(&mPhase, m_arcname);
|
||||
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, 0x2000)) {
|
||||
@@ -113,7 +112,7 @@ s32 daPedestal::daPds_c::_create() {
|
||||
}
|
||||
|
||||
/* 00000474-0000052C .text getMyStaffId__Q210daPedestal7daPds_cFv */
|
||||
int daPedestal::daPds_c::getMyStaffId() {
|
||||
int daPds_c::getMyStaffId() {
|
||||
if (subtype == 0) {
|
||||
return dComIfGp_evmng_getMyStaffId("Hdai1");
|
||||
} else if (subtype == 1) {
|
||||
@@ -126,7 +125,7 @@ int daPedestal::daPds_c::getMyStaffId() {
|
||||
}
|
||||
|
||||
/* 0000052C-000005D8 .text wakeupCheck__Q210daPedestal7daPds_cFv */
|
||||
BOOL daPedestal::daPds_c::wakeupCheck() {
|
||||
BOOL daPds_c::wakeupCheck() {
|
||||
if (subtype == 0) {
|
||||
if (dComIfGs_isEventBit(0x1780)) {
|
||||
return TRUE;
|
||||
@@ -145,7 +144,7 @@ BOOL daPedestal::daPds_c::wakeupCheck() {
|
||||
}
|
||||
|
||||
/* 000005D8-00000684 .text finishCheck__Q210daPedestal7daPds_cFv */
|
||||
BOOL daPedestal::daPds_c::finishCheck() {
|
||||
BOOL daPds_c::finishCheck() {
|
||||
if (subtype == 0) {
|
||||
if (dComIfGs_isEventBit(0x1710)) {
|
||||
return TRUE;
|
||||
@@ -164,14 +163,14 @@ BOOL daPedestal::daPds_c::finishCheck() {
|
||||
}
|
||||
|
||||
/* 00000684-0000073C .text setAction__Q210daPedestal7daPds_cFMQ210daPedestal7daPds_cFPCvPvPv_iPv */
|
||||
BOOL daPedestal::daPds_c::setAction(ActionFunc_t action, void* param_1) {
|
||||
BOOL daPds_c::setAction(ActionFunc_t action, void* param_1) {
|
||||
if (mAction != NULL) {
|
||||
unk30C = 0xFF;
|
||||
mActionStatus = ACTION_ENDING;
|
||||
(this->*mAction)(param_1);
|
||||
}
|
||||
|
||||
mAction = action;
|
||||
unk30C = 0;
|
||||
mActionStatus = ACTION_STARTING;
|
||||
unk310 = 0;
|
||||
unk312 = 0;
|
||||
unk314 = 0;
|
||||
@@ -183,7 +182,7 @@ BOOL daPedestal::daPds_c::setAction(ActionFunc_t action, void* param_1) {
|
||||
}
|
||||
|
||||
/* 0000073C-000007C4 .text action__Q210daPedestal7daPds_cFPv */
|
||||
void daPedestal::daPds_c::action(void* param_1) {
|
||||
void daPds_c::action(void* param_1) {
|
||||
if (!mAction) {
|
||||
setAction(&waitAction, NULL);
|
||||
}
|
||||
@@ -192,16 +191,14 @@ void daPedestal::daPds_c::action(void* param_1) {
|
||||
}
|
||||
|
||||
/* 000007C4-000007E0 .text waitAction__Q210daPedestal7daPds_cFPv */
|
||||
BOOL daPedestal::daPds_c::waitAction(void*) {
|
||||
if (unk30C == 0) {
|
||||
unk30C += 1;
|
||||
BOOL daPds_c::waitAction(void*) {
|
||||
if (mActionStatus == ACTION_STARTING) {
|
||||
mActionStatus += 1; // ACTION_ONGOING
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
namespace daPedestal {
|
||||
|
||||
typedef void (daPds_c::* eventInitFunc)(int);
|
||||
static eventInitFunc event_init_tbl[] = {
|
||||
daPds_c::initialDefault,
|
||||
@@ -225,10 +222,8 @@ static char* cut_name_tbl[] = {
|
||||
"EFFEND"
|
||||
};
|
||||
|
||||
}; // namespace daPedestal
|
||||
|
||||
/* 000007E0-000008E4 .text eventProc__Q210daPedestal7daPds_cFv */
|
||||
BOOL daPedestal::daPds_c::eventProc() {
|
||||
BOOL daPds_c::eventProc() {
|
||||
int staffIdx = getMyStaffId();
|
||||
|
||||
if (dComIfGp_event_runCheck()) {
|
||||
@@ -255,15 +250,15 @@ BOOL daPedestal::daPds_c::eventProc() {
|
||||
}
|
||||
|
||||
/* 000008E4-000008E8 .text initialDefault__Q210daPedestal7daPds_cFi */
|
||||
void daPedestal::daPds_c::initialDefault(int) {}
|
||||
void daPds_c::initialDefault(int) {}
|
||||
|
||||
/* 000008E8-000008F0 .text actionDefault__Q210daPedestal7daPds_cFi */
|
||||
BOOL daPedestal::daPds_c::actionDefault(int) {
|
||||
BOOL daPds_c::actionDefault(int) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 000008F0-000009A8 .text initialMoveEvent__Q210daPedestal7daPds_cFi */
|
||||
void daPedestal::daPds_c::initialMoveEvent(int staffIdx) {
|
||||
void daPds_c::initialMoveEvent(int staffIdx) {
|
||||
f32* pSpeed = dComIfGp_evmng_getMyFloatP(staffIdx, "Speed");
|
||||
|
||||
if (pSpeed) {
|
||||
@@ -274,32 +269,32 @@ void daPedestal::daPds_c::initialMoveEvent(int staffIdx) {
|
||||
|
||||
f32* pDist = dComIfGp_evmng_getMyFloatP(staffIdx, "Dist");
|
||||
if (pDist) {
|
||||
unk304 = current.pos.y + *pDist;
|
||||
mTargetYPos = current.pos.y + *pDist;
|
||||
} else {
|
||||
unk304 = current.pos.y;
|
||||
mTargetYPos = current.pos.y;
|
||||
}
|
||||
}
|
||||
|
||||
/* 000009A8-00000AEC .text actionMoveEvent__Q210daPedestal7daPds_cFi */
|
||||
BOOL daPedestal::daPds_c::actionMoveEvent(int) {
|
||||
BOOL daPds_c::actionMoveEvent(int) {
|
||||
current.pos.y += speed.y;
|
||||
|
||||
BOOL ret = FALSE;
|
||||
|
||||
if (speed.y < 0.0f) {
|
||||
if (current.pos.y <= unk304) {
|
||||
current.pos.y = unk304;
|
||||
if (current.pos.y <= mTargetYPos) {
|
||||
current.pos.y = mTargetYPos;
|
||||
speed.y = 0.0f;
|
||||
ret = TRUE;
|
||||
}
|
||||
} else if (speed.y > 0.0f) {
|
||||
if (current.pos.y >= unk304) {
|
||||
current.pos.y = unk304;
|
||||
if (current.pos.y >= mTargetYPos) {
|
||||
current.pos.y = mTargetYPos;
|
||||
speed.y = 0.0f;
|
||||
ret = TRUE;
|
||||
}
|
||||
} else {
|
||||
current.pos.y = unk304;
|
||||
current.pos.y = mTargetYPos;
|
||||
ret = TRUE;
|
||||
}
|
||||
|
||||
@@ -313,19 +308,19 @@ BOOL daPedestal::daPds_c::actionMoveEvent(int) {
|
||||
}
|
||||
|
||||
/* 00000AEC-00000B40 .text initialEffectSet__Q210daPedestal7daPds_cFi */
|
||||
void daPedestal::daPds_c::initialEffectSet(int) {
|
||||
mInfiniteEcallBack.makeEmitter(0x826DU, ¤t.pos, &shape_angle, NULL);
|
||||
void daPds_c::initialEffectSet(int) {
|
||||
mOctagonGlowCb.makeEmitter(dPa_name::ID_PEDESTAL_OCTAGON_GLOW, ¤t.pos, &shape_angle, NULL);
|
||||
initBrkAnm(0, true);
|
||||
}
|
||||
|
||||
/* 00000B40-00000B80 .text initialEffectEnd__Q210daPedestal7daPds_cFi */
|
||||
void daPedestal::daPds_c::initialEffectEnd(int) {
|
||||
mInfiniteEcallBack.end();
|
||||
void daPds_c::initialEffectEnd(int) {
|
||||
mOctagonGlowCb.end();
|
||||
initBrkAnm(2, true);
|
||||
}
|
||||
|
||||
/* 00000B80-00000C10 .text set_mtx__Q210daPedestal7daPds_cFv */
|
||||
void daPedestal::daPds_c::set_mtx() {
|
||||
void daPds_c::set_mtx() {
|
||||
mpModel->setBaseScale(scale);
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::YrotM(current.angle.y);
|
||||
@@ -334,7 +329,7 @@ void daPedestal::daPds_c::set_mtx() {
|
||||
}
|
||||
|
||||
/* 00000C10-00000D58 .text initBrkAnm__Q210daPedestal7daPds_cFUcb */
|
||||
BOOL daPedestal::daPds_c::initBrkAnm(u8 param_1, bool param_2) {
|
||||
BOOL daPds_c::initBrkAnm(u8 param_1, bool param_2) {
|
||||
struct AnmTableEntry {
|
||||
/* 0x00 */ int loopMode;
|
||||
/* 0x04 */ f32 speed;
|
||||
@@ -354,7 +349,6 @@ BOOL daPedestal::daPds_c::initBrkAnm(u8 param_1, bool param_2) {
|
||||
J3DAnmTevRegKey* a_brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(m_arcname, HDAI1_BRK_HDAI1);
|
||||
JUT_ASSERT(0x28C, a_brk != 0);
|
||||
|
||||
|
||||
if (mBrk.init(modelData, a_brk, TRUE, brkAnmTbl[param_1].loopMode, brkAnmTbl[param_1].speed, 0, -1, param_2, 0)) {
|
||||
unk30E = param_1;
|
||||
if (brkAnmTbl[param_1].unk_4 < 0) {
|
||||
@@ -370,13 +364,13 @@ BOOL daPedestal::daPds_c::initBrkAnm(u8 param_1, bool param_2) {
|
||||
}
|
||||
|
||||
/* 00000D58-00000D98 .text playBrkAnm__Q210daPedestal7daPds_cFv */
|
||||
void daPedestal::daPds_c::playBrkAnm() {
|
||||
void daPds_c::playBrkAnm() {
|
||||
unk30F = mBrk.play();
|
||||
unk308 = mBrk.getFrame();
|
||||
}
|
||||
|
||||
/* 00000D98-00000E48 .text _execute__Q210daPedestal7daPds_cFv */
|
||||
BOOL daPedestal::daPds_c::_execute() {
|
||||
BOOL daPds_c::_execute() {
|
||||
playBrkAnm();
|
||||
|
||||
if (!eventProc()) {
|
||||
@@ -386,7 +380,7 @@ BOOL daPedestal::daPds_c::_execute() {
|
||||
set_mtx();
|
||||
mpBgW->Move();
|
||||
|
||||
if (mInfiniteEcallBack.getEmitter() != NULL) {
|
||||
if (mOctagonGlowCb.getEmitter() != NULL) {
|
||||
fopAcM_seStartCurrent(this, JA_SE_OBJ_ST_DAI_LIGHT, 0);
|
||||
}
|
||||
|
||||
@@ -394,7 +388,7 @@ BOOL daPedestal::daPds_c::_execute() {
|
||||
}
|
||||
|
||||
/* 00000E48-00000F10 .text _draw__Q210daPedestal7daPds_cFv */
|
||||
BOOL daPedestal::daPds_c::_draw() {
|
||||
BOOL daPds_c::_draw() {
|
||||
g_env_light.settingTevStruct(TEV_TYPE_BG0, ¤t.pos, &tevStr);
|
||||
g_env_light.setLightTevColorType(mpModel, &tevStr);
|
||||
|
||||
@@ -411,9 +405,7 @@ BOOL daPedestal::daPds_c::_draw() {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
namespace daPedestal {
|
||||
|
||||
/* 00000F10-00000F30 .text daPedestal::daPds_create__10daPedestalFPv */
|
||||
/* 00000F10-00000F30 .text daPds_Create__10daPedestalFPv */
|
||||
static s32 daPds_Create(void* i_this) {
|
||||
return static_cast<daPds_c*>(i_this)->_create();
|
||||
}
|
||||
@@ -462,13 +454,13 @@ void daPds_infiniteEcallBack_c::end() {
|
||||
mpEmitter->setEmitterCallBackPtr(NULL);
|
||||
|
||||
mpEmitter = NULL;
|
||||
mpPos = NULL;
|
||||
mpAngle = NULL;
|
||||
setPos(NULL);
|
||||
setAngle(NULL);
|
||||
}
|
||||
}
|
||||
|
||||
/* 00001044-000010D4 .text makeEmitter__Q210daPedestal25daPds_infiniteEcallBack_cFUsPC4cXyzPC5csXyzPC4cXyz */
|
||||
void daPds_infiniteEcallBack_c::makeEmitter(unsigned short particleID, const cXyz* pos, const csXyz* angle, const cXyz* scale) {
|
||||
void daPds_infiniteEcallBack_c::makeEmitter(u16 particleID, const cXyz* pos, const csXyz* angle, const cXyz* scale) {
|
||||
end();
|
||||
dComIfGp_particle_set(particleID, pos, angle, scale, 0xFF, this);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user