mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-23 07:19:53 -04:00
d_a_obj_wsStick, d_a_obj_onsenTaru OK (#2268)
* d_a_obj_wsStick, d_a_obj_onsenTaru OK * d_a_obj_pdtile OK * d_a_obj_stone equivalent * d_a_npc_lf OK * Z2SoundMgr OK * Remove fixed nonmatching comment * d_a_obj_kantera OK * Remove unneeded header * daMyna_c::deleteItem matching * d_a_obj_crvsteel OK
This commit is contained in:
@@ -119,7 +119,7 @@ void Z2SeMgr::modHeightAtCamera(Vec const** param_0) {
|
||||
}
|
||||
}
|
||||
field_0x340[idx] = **param_0;
|
||||
Vec cam_pos = Z2GetAudience()->getAudioCamPos();
|
||||
Vec cam_pos = Z2GetAudience()->getAudioCamPos(0);
|
||||
if (field_0x340[idx].y > cam_pos.y) {
|
||||
field_0x340[idx].y = cam_pos.y;
|
||||
}
|
||||
@@ -266,19 +266,19 @@ bool Z2SeMgr::seStart(JAISoundID i_soundID, Vec const* i_pos, u32 param_2, s8 i_
|
||||
break;
|
||||
case Z2SE_SY_TALK_START:
|
||||
case Z2SE_SY_TALK_END:
|
||||
if (Z2GetSceneMgr()->getCurrentSceneNum() != 0) {
|
||||
if (Z2GetStatusMgr()->getDemoStatus() != 0) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case Z2SE_SY_TALK_NEXT:
|
||||
if (Z2GetSceneMgr()->isMovieDemo()) {
|
||||
if (Z2GetStatusMgr()->isMovieDemo()) {
|
||||
i_soundID = Z2SE_SY_DEMO_MESSAGE_NEXT;
|
||||
}
|
||||
break;
|
||||
case Z2SE_SY_TALK_WIN_CLOSE:
|
||||
if (Z2GetSceneMgr()->getCurrentSceneNum() == 1) {
|
||||
if (Z2GetStatusMgr()->getDemoStatus() == 1) {
|
||||
i_soundID = Z2SE_SY_TALK_END;
|
||||
} else if (Z2GetSceneMgr()->isMovieDemo()) {
|
||||
} else if (Z2GetStatusMgr()->isMovieDemo()) {
|
||||
i_soundID = Z2SE_SY_DEMO_MESSAGE_END;
|
||||
}
|
||||
break;
|
||||
@@ -287,11 +287,13 @@ bool Z2SeMgr::seStart(JAISoundID i_soundID, Vec const* i_pos, u32 param_2, s8 i_
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case Z2SE_OBJ_CHANDELIER_SWING:
|
||||
if (i_pos->y > Z2GetAudience()->getAudioCamPos().y) {
|
||||
case Z2SE_OBJ_CHANDELIER_SWING: {
|
||||
Vec tmp = Z2GetAudience()->getAudioCamPos(0);
|
||||
if (i_pos->y > tmp.y) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Z2SE_OBJ_CHANDLV5_SWING:
|
||||
i_volume = Z2Calc::getParamByExp(param_2, 35.0f, 261.0f, 0.4f, 0.05f, 1.0f,
|
||||
Z2Calc::CURVE_SIGN_2);
|
||||
@@ -313,7 +315,8 @@ bool Z2SeMgr::seStart(JAISoundID i_soundID, Vec const* i_pos, u32 param_2, s8 i_
|
||||
Z2Calc::CURVE_SIGN_2);
|
||||
break;
|
||||
case Z2SE_OBJ_L8_B_FOG_FLY:
|
||||
if (i_pos->y > Z2GetAudience()->getAudioCamPos().y) {
|
||||
Vec tmp = Z2GetAudience()->getAudioCamPos(0);
|
||||
if (i_pos->y > tmp.y) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: Z2SoundMgr
|
||||
//
|
||||
|
||||
@@ -169,7 +168,6 @@ bool Z2SoundMgr::startSound(JAISoundID i_soundID, JAISoundHandle* i_handle,
|
||||
|
||||
|
||||
/* 802AA1B0-802AA270 2A4AF0 00C0+00 2/2 0/0 0/0 .text calc__10Z2SoundMgrFv */
|
||||
// NONMATCHING extra load
|
||||
void Z2SoundMgr::calc() {
|
||||
mSeMgr.calc();
|
||||
if (!mSoundID.isAnonymous() && !isPlayingSoundID(mSoundID)) {
|
||||
@@ -358,7 +356,6 @@ void Z2SoundMgr::initParams() {
|
||||
|
||||
/* 802AA9E8-802AAAC4 2A5328 00DC+00 0/0 1/1 0/0 .text
|
||||
* multiVolumeSoundID__10Z2SoundMgrF10JAISoundIDf */
|
||||
// NONMATCHING extra load
|
||||
void Z2SoundMgr::multiVolumeSoundID(JAISoundID i_soundID, f32 i_multi) {
|
||||
if (!i_soundID.isAnonymous() && Z2GetSoundInfo()->getSoundType(i_soundID) == 0) {
|
||||
JSUList<JAISe>* list =
|
||||
@@ -373,7 +370,6 @@ void Z2SoundMgr::multiVolumeSoundID(JAISoundID i_soundID, f32 i_multi) {
|
||||
|
||||
/* 802AAAC4-802AAB94 2A5404 00D0+00 1/1 0/0 0/0 .text isPlayingSoundID__10Z2SoundMgrF10JAISoundID
|
||||
*/
|
||||
// NONMATCHING extra load
|
||||
bool Z2SoundMgr::isPlayingSoundID(JAISoundID i_soundID) {
|
||||
if (i_soundID.isAnonymous()) {
|
||||
return false;
|
||||
|
||||
@@ -463,7 +463,7 @@ void Z2WolfHowlMgr::startWindStoneSound(s8 param_0, Vec* param_1) {
|
||||
if (param_1 == NULL || Z2GetLink() == NULL || Z2GetLink()->getCurrentPos() == NULL) {
|
||||
return;
|
||||
}
|
||||
Vec local_60 = Z2GetAudience()->getAudioCamPos();
|
||||
Vec local_60 = Z2GetAudience()->getAudioCamPos(0);
|
||||
f32 dVar13 = sqrtf(VECSquareDistance(param_1, &local_60));
|
||||
if (dVar13 > 2100.0f && field_0x04) {
|
||||
field_0x04->stop();
|
||||
|
||||
@@ -847,7 +847,7 @@ void daE_OctBg_c::damage_check() {
|
||||
dScnPly_c::setPauseTimer(0);
|
||||
field_0x8c0.ClrTgHit();
|
||||
field_0x5bc.startCreatureVoice(Z2SE_EN_BG_V_DAMAGE, -1);
|
||||
if (field_0xb30.mpCollider->ChkAtType(0x4000)) {
|
||||
if (field_0xb30.mpCollider->ChkAtType(AT_TYPE_HOOKSHOT)) {
|
||||
setAction(&daE_OctBg_c::hook);
|
||||
} else {
|
||||
setAction(&daE_OctBg_c::damage);
|
||||
|
||||
@@ -1362,12 +1362,11 @@ void daMyna_c::deleteItem(int i_itemIndex) {
|
||||
}
|
||||
|
||||
/* 80949144-80949190 0035C4 004C+00 0/0 0/0 0/0 .text deleteItem__8daMyna_cFUi */
|
||||
// Nonmatching, no clue what's going on here
|
||||
void daMyna_c::deleteItem(fpc_ProcID i_itemId) {
|
||||
for (int i = 0; i < mNumShopItems; i++) {
|
||||
if (i_itemId == mShopItems[i].mTargetActorID) {
|
||||
mShopItems[i].mTargetActorID = -1;
|
||||
mShopItems[i].mItemStatus = 4;
|
||||
mShopItems[i_itemId].mTargetActorID = -1;
|
||||
mShopItems[i_itemId].mItemStatus = 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1791,7 +1790,7 @@ void daMyna_c::playDefaultWaitAnime() {
|
||||
setAnimeType(1, 0.0f);
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
case 6: {
|
||||
cXyz local_58;
|
||||
cXyz local_64;
|
||||
cXyz stack_70;
|
||||
@@ -1818,6 +1817,7 @@ void daMyna_c::playDefaultWaitAnime() {
|
||||
setAnimeType(1, 6.0f);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
cXyz local_94;
|
||||
cXyz stack_a0;
|
||||
|
||||
+81
-83
@@ -55,7 +55,7 @@ static int daNPC_LF_Draw(npc_lf_class* i_this) {
|
||||
for (int i = 0; i < i_this->mIter; i++, fish++) {
|
||||
if (fish->field_0x17 == 0) {
|
||||
if (j == 0) {
|
||||
g_env_light.settingTevStruct(0, &fish->field_0x04, &i_this->tevStr);
|
||||
g_env_light.settingTevStruct(0, &fish->mPos, &i_this->tevStr);
|
||||
}
|
||||
j++;
|
||||
|
||||
@@ -77,151 +77,150 @@ static u8 data_80A6AA90;
|
||||
/* 80A6AAA0-80A6AABC 000018 001C+00 4/4 0/0 0/0 .bss l_HIO */
|
||||
static daNPC_LF_HIO_c l_HIO;
|
||||
|
||||
f32 dummyLiteral1() { return 50.0f; }
|
||||
f32 dummyLiteral2() { return 0.0f; }
|
||||
|
||||
/* 80A69D90-80A6A1B8 000310 0428+00 1/1 0/0 0/0 .text npc_lf_move__FP10fopAc_ac_cP4lf_s
|
||||
*/
|
||||
// NONMATCHING - still missing some instructions + float literals
|
||||
static void npc_lf_move(fopAc_ac_c* param_0, lf_s* param_1) {
|
||||
static void npc_lf_move(fopAc_ac_c* param_0, lf_s* pFish) {
|
||||
cXyz pos;
|
||||
s16 maxStepAngle;
|
||||
f32 maxStep;
|
||||
if ((u8)(param_1->field_0x18) == 0) {
|
||||
param_1->mDistFromPlayer = fopAcM_searchPlayerDistance(param_0);
|
||||
if ((pFish->field_0x18 & 7) == 0) {
|
||||
pFish->mDistFromPlayer = fopAcM_searchPlayerDistance(param_0);
|
||||
}
|
||||
|
||||
switch (param_1->field_0x1c) {
|
||||
switch (pFish->field_0x1c) {
|
||||
case 0:
|
||||
if (param_1->field_0x38[0] == 0) {
|
||||
if (pFish->field_0x38[0] == 0) {
|
||||
for (int i = 0; i < 100; i++) {
|
||||
param_1->field_0x20.x = param_0->home.pos.x + cM_rndFX(500.0f);
|
||||
param_1->field_0x20.y = param_0->home.pos.y + cM_rndFX(100.0f);
|
||||
param_1->field_0x20.z = param_0->home.pos.z + cM_rndFX(500.0f);
|
||||
pFish->field_0x20.x = param_0->home.pos.x + cM_rndFX(500.0f);
|
||||
pFish->field_0x20.y = param_0->home.pos.y + cM_rndFX(100.0f);
|
||||
pFish->field_0x20.z = param_0->home.pos.z + cM_rndFX(500.0f);
|
||||
|
||||
pos = param_1->field_0x20 - param_1->field_0x04;
|
||||
pos = pFish->field_0x20 - pFish->mPos;
|
||||
pos.y = 0.0f;
|
||||
|
||||
if (pos.abs() > 250.0f) {
|
||||
param_1->field_0x1c = 1;
|
||||
param_1->field_0x38[0] = cM_rndF(30.0f) + 30.0f;
|
||||
pFish->field_0x1c = 1;
|
||||
pFish->field_0x38[0] = cM_rndF(30.0f) + 30.0f;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
param_1->field_0x40 = 0.1f;
|
||||
maxStepAngle = 0x400;
|
||||
maxStep = 0.5f;
|
||||
break;
|
||||
case 1:
|
||||
if (param_1->field_0x38[0] != 0) {
|
||||
param_1->field_0x1c = 0;
|
||||
param_1->field_0x38[0] = cM_rndF(10.0f);
|
||||
}
|
||||
|
||||
param_1->field_0x40 = l_HIO.field_0x0c;
|
||||
pFish->field_0x40 = 0.1f;
|
||||
maxStepAngle = 0;
|
||||
maxStep = 0.05f;
|
||||
break;
|
||||
case 1:
|
||||
if (pFish->field_0x38[0] == 0) {
|
||||
pFish->field_0x1c = 0;
|
||||
pFish->field_0x38[0] = 10.0f + cM_rndF(10.0f);
|
||||
}
|
||||
|
||||
pFish->field_0x40 = l_HIO.field_0x0c;
|
||||
maxStepAngle = 0x400;
|
||||
maxStep = 0.5f;
|
||||
break;
|
||||
}
|
||||
|
||||
if (param_1->field_0x38[1] == 0) {
|
||||
if (pFish->field_0x38[1] != 0) {
|
||||
maxStep = 0.5f;
|
||||
param_1->field_0x40 = l_HIO.field_0x14;
|
||||
pFish->field_0x40 = l_HIO.field_0x14;
|
||||
maxStepAngle = 0x600;
|
||||
|
||||
} else {
|
||||
if (param_1->mDistFromPlayer < l_HIO.field_0x18) {
|
||||
param_1->field_0x38[1] = cM_rndF(20.0f) + 20.0f;
|
||||
if (pFish->mDistFromPlayer < l_HIO.field_0x18) {
|
||||
pFish->field_0x38[1] = cM_rndF(20.0f) + 20.0f;
|
||||
|
||||
if (param_1->field_0x1c == 1)
|
||||
param_1->field_0x1c = 0;
|
||||
if (pFish->field_0x1c == 1)
|
||||
pFish->field_0x1c = 0;
|
||||
}
|
||||
}
|
||||
|
||||
pos = param_1->field_0x20 - param_1->field_0x04;
|
||||
s16 old_pos_y = param_1->field_0x10.y;
|
||||
pos = pFish->field_0x20 - pFish->mPos;
|
||||
s16 old_pos_y = pFish->mAngle.y;
|
||||
|
||||
cLib_addCalcAngleS2(¶m_1->field_0x10.y, cM_atan2s(pos.x,pos.z),4,maxStepAngle);
|
||||
cLib_addCalcAngleS2(¶m_1->field_0x10.x, -cM_atan2s(pos.y,JMAFastSqrt((pos.x * pos.x) + (pos.z * pos.z))),4,maxStepAngle);
|
||||
cLib_addCalcAngleS2(&pFish->mAngle.y, cM_atan2s(pos.x,pos.z),4,maxStepAngle);
|
||||
cLib_addCalcAngleS2(&pFish->mAngle.x, -cM_atan2s(pos.y,JMAFastSqrt((pos.x * pos.x) + (pos.z * pos.z))),4,maxStepAngle);
|
||||
|
||||
f32 float1 = (old_pos_y - param_1->field_0x10.y);
|
||||
float1 *= 5.0f;
|
||||
f32 float2 = 4000.0f;
|
||||
old_pos_y -= pFish->mAngle.y;
|
||||
f32 float1 = old_pos_y * 5.0f;
|
||||
|
||||
if (float1 > 4000.0f) {
|
||||
if (float1 < -4000.0f) {
|
||||
float2 = -4000.0f;
|
||||
}
|
||||
float1 = 4000.0f;
|
||||
} else {
|
||||
float2 = 4000.0f;
|
||||
if (float1 < -4000.0f) {
|
||||
float1 = -4000.0f;
|
||||
}
|
||||
}
|
||||
|
||||
cLib_addCalc2(¶m_1->field_0x58, float2, 0.5f, 1000.0f);
|
||||
cLib_addCalc2(¶m_1->field_0x44, (param_1->field_0x3c * l_HIO.field_0x08), 1.0f, maxStep);
|
||||
cLib_addCalc2(&pFish->field_0x58, float1, 0.5f, 1000.0f);
|
||||
cLib_addCalc2(&pFish->field_0x44, (pFish->field_0x3c * l_HIO.field_0x10), 1.0f, maxStep);
|
||||
}
|
||||
|
||||
/* 80A6A1B8-80A6A420 000738 0268+00 1/1 0/0 0/0 .text action__FP10fopAc_ac_cP4lf_s */
|
||||
// NONMATCHING - second for loop incorrect
|
||||
static void action(fopAc_ac_c* param_0, lf_s* param_1) {
|
||||
static void action(fopAc_ac_c* param_0, lf_s* pFish) {
|
||||
cXyz pos;
|
||||
param_1->field_0x18++;
|
||||
pFish->field_0x18++;
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (param_1->field_0x38[i] != 0) {
|
||||
param_1->field_0x38[i]--;
|
||||
if (pFish->field_0x38[i] != 0) {
|
||||
pFish->field_0x38[i]--;
|
||||
}
|
||||
}
|
||||
|
||||
switch (param_1->mActionMode) {
|
||||
switch (pFish->mActionMode) {
|
||||
case npc_lf_class::ACT_MOVE:
|
||||
npc_lf_move(param_0,param_1);
|
||||
npc_lf_move(param_0,pFish);
|
||||
}
|
||||
|
||||
cMtx_YrotS(*calc_mtx,param_1->field_0x10.y);
|
||||
cMtx_XrotM(*calc_mtx,param_1->field_0x10.x);
|
||||
cMtx_YrotS(*calc_mtx,pFish->mAngle.y);
|
||||
cMtx_XrotM(*calc_mtx,pFish->mAngle.x);
|
||||
|
||||
pos.x = 0.0f;
|
||||
pos.y = 0.0f;
|
||||
pos.z = param_1->field_0x44 * l_HIO.field_0x08;
|
||||
pos.z = pFish->field_0x44 * l_HIO.field_0x08;
|
||||
|
||||
MtxPosition(&pos,&pos);
|
||||
|
||||
param_1->field_0x04 += pos;
|
||||
pFish->mPos += pos;
|
||||
|
||||
cLib_addCalc2(¶m_1->field_0x3c,param_1->field_0x40,1.0f,0.2f);
|
||||
cLib_addCalc2(¶m_1->field_0x5c,(param_1->field_0x3c * 2000.0f + 2000.0f),0.5f,200.0f);
|
||||
cLib_addCalc2(&pFish->field_0x3c,pFish->field_0x40,1.0f,0.2f);
|
||||
cLib_addCalc2(&pFish->field_0x5c,(pFish->field_0x3c * 2000.0f + 2000.0f),0.5f,200.0f);
|
||||
|
||||
param_1->field_0x4c[1] = param_1->field_0x3c * 13000.0f + 2000.0f;
|
||||
param_1->field_0x4c[0] += param_1->field_0x4c[1];
|
||||
pFish->field_0x4c[1] = pFish->field_0x3c * 13000.0f + 2000.0f;
|
||||
pFish->field_0x4c[0] += pFish->field_0x4c[1];
|
||||
|
||||
for (int i = 0, j = 0; i < 3; i++, j++) {
|
||||
|
||||
f32 tmp = wp[j] * param_1->field_0x5c;
|
||||
param_1->field_0x50[i] = tmp * cM_ssin(param_1->field_0x4c[j]);
|
||||
for (int i = 0; i < 3; i++) {
|
||||
pFish->field_0x50[i + 1] = cM_ssin(-15000 * i + pFish->field_0x4c[0]) * pFish->field_0x5c * wp[i];
|
||||
}
|
||||
|
||||
param_1->field_0x50[0] = param_1->field_0x5c * cM_ssin((param_1->field_0x4c[0] - 7000)) * 0.3f;
|
||||
pFish->field_0x50[0] = pFish->field_0x5c * cM_ssin((pFish->field_0x4c[0] - 7000)) * -0.3f;
|
||||
|
||||
mDoMtx_stack_c::transS(param_1->field_0x04.x,param_1->field_0x04.y,param_1->field_0x04.z);
|
||||
mDoMtx_stack_c::YrotM(param_1->field_0x10.y + param_1->field_0x50[0]);
|
||||
mDoMtx_stack_c::XrotM(param_1->field_0x10.x);
|
||||
f32 value = param_1->field_0x60 * l_HIO.field_0x08;
|
||||
mDoMtx_stack_c::transS(pFish->mPos.x,pFish->mPos.y,pFish->mPos.z);
|
||||
mDoMtx_stack_c::YrotM(pFish->mAngle.y + pFish->field_0x50[0]);
|
||||
mDoMtx_stack_c::XrotM(pFish->mAngle.x);
|
||||
f32 value = pFish->field_0x60 * l_HIO.field_0x08;
|
||||
mDoMtx_stack_c::scaleM(value,value,value);
|
||||
param_1->mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
pFish->mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
}
|
||||
|
||||
/* 80A6A420-80A6A514 0009A0 00F4+00 2/1 0/0 0/0 .text daNPC_LF_Execute__FP12npc_lf_class
|
||||
*/
|
||||
// NONMATCHING - regalloc
|
||||
static int daNPC_LF_Execute(npc_lf_class* i_this) {
|
||||
camera_class* camera = dComIfGp_getCamera(0);
|
||||
lf_s* fish = i_this->mFish;
|
||||
|
||||
static int daNPC_LF_Execute(npc_lf_class* i_this2) {
|
||||
npc_lf_class* i_this = (npc_lf_class*) i_this2;
|
||||
view_class* camera;
|
||||
lf_s* fish;
|
||||
cXyz pos;
|
||||
cXyz pos2;
|
||||
camera = dComIfGp_getCamera(0);
|
||||
fish = i_this->mFish;
|
||||
for (int i = 0; i < i_this->mIter; i++, fish++) {
|
||||
cXyz pos;
|
||||
pos.x = fish->field_0x04.x - camera->lookat.eye.x;
|
||||
pos.z = fish->field_0x04.z - camera->lookat.eye.z;
|
||||
pos.x = fish->mPos.x - camera->lookat.eye.x;
|
||||
pos.z = fish->mPos.z - camera->lookat.eye.z;
|
||||
|
||||
f32 res = JMAFastSqrt((pos.x * pos.x) + (pos.z * pos.z));
|
||||
if (res < 1500.0f) {
|
||||
if (JMAFastSqrt((pos.x * pos.x) + (pos.z * pos.z)) < 1500.0f) {
|
||||
fish->field_0x17 = 0;
|
||||
action(i_this, fish);
|
||||
} else {
|
||||
@@ -276,7 +275,6 @@ static int useHeapInit(fopAc_ac_c* i_this) {
|
||||
}
|
||||
|
||||
/* 80A6A650-80A6A8A4 000BD0 0254+00 1/0 0/0 0/0 .text daNPC_LF_Create__FP10fopAc_ac_c */
|
||||
// NONMATCHING - float literals
|
||||
static cPhs__Step daNPC_LF_Create(fopAc_ac_c* i_this) {
|
||||
fopAcM_SetupActor(i_this, npc_lf_class);
|
||||
npc_lf_class* a_this = static_cast<npc_lf_class*>(i_this);
|
||||
@@ -319,10 +317,10 @@ static cPhs__Step daNPC_LF_Create(fopAc_ac_c* i_this) {
|
||||
|
||||
for (int i = 0; i < a_this->mIter; i++, fish++) {
|
||||
fish->mActionMode = npc_lf_class::ACT_MOVE;
|
||||
fish->field_0x04.x = a_this->current.pos.x + cM_rndFX(300.0f);
|
||||
fish->field_0x04.y = a_this->current.pos.y + cM_rndFX(50.0f);
|
||||
fish->field_0x04.z = a_this->current.pos.z + cM_rndFX(300.0f);
|
||||
fish->field_0x10.y = cM_rndF(65536.0f);
|
||||
fish->mPos.x = a_this->current.pos.x + cM_rndFX(300.0f);
|
||||
fish->mPos.y = a_this->current.pos.y + cM_rndFX(50.0f);
|
||||
fish->mPos.z = a_this->current.pos.z + cM_rndFX(300.0f);
|
||||
fish->mAngle.y = cM_rndF(65536.0f);
|
||||
fish->field_0x48 = cM_rndFX(0.1f) + 0.6f;
|
||||
fish->field_0x60 = cM_rndFX(0.1f) + 0.6f;
|
||||
// fish++;
|
||||
|
||||
+112
-274
@@ -4,228 +4,169 @@
|
||||
*/
|
||||
|
||||
#include "d/actor/d_a_obj_crvsteel.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" static void daObjCRVSTEEL_Create__FP10fopAc_ac_c();
|
||||
extern "C" static void daObjCRVSTEEL_Delete__FP15daObjCRVSTEEL_c();
|
||||
extern "C" void OpenSet__15daObjCRVSTEEL_cFff();
|
||||
extern "C" void CloseSet__15daObjCRVSTEEL_cFf();
|
||||
extern "C" void CloseExecute__15daObjCRVSTEEL_cFv();
|
||||
extern "C" void OpenExecute__15daObjCRVSTEEL_cFv();
|
||||
extern "C" void Action__15daObjCRVSTEEL_cFv();
|
||||
extern "C" void setBaseMtx__15daObjCRVSTEEL_cFv();
|
||||
extern "C" static void daObjCRVSTEEL_Draw__FP15daObjCRVSTEEL_c();
|
||||
extern "C" static void daObjCRVSTEEL_Execute__FP15daObjCRVSTEEL_c();
|
||||
extern "C" void CreateHeap__15daObjCRVSTEEL_cFv();
|
||||
extern "C" void create__15daObjCRVSTEEL_cFv();
|
||||
extern "C" void __dt__12dBgS_ObjAcchFv();
|
||||
extern "C" static bool daObjCRVSTEEL_IsDelete__FP15daObjCRVSTEEL_c();
|
||||
extern "C" void Create__15daObjCRVSTEEL_cFv();
|
||||
extern "C" void Execute__15daObjCRVSTEEL_cFPPA3_A4_f();
|
||||
extern "C" void Draw__15daObjCRVSTEEL_cFv();
|
||||
extern "C" void Delete__15daObjCRVSTEEL_cFv();
|
||||
extern "C" static void func_80BD61F0();
|
||||
extern "C" static void func_80BD61F8();
|
||||
extern "C" extern char const* const d_a_obj_crvsteel__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
|
||||
extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
|
||||
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
|
||||
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
|
||||
extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff();
|
||||
extern "C" void fopAcM_effSmokeSet1__FPUlPUlPC4cXyzPC5csXyzfPC12dKy_tevstr_ci();
|
||||
extern "C" void gndCheck__11fopAcM_gc_cFPC4cXyz();
|
||||
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void getRes__14dRes_control_cFPCcPCcP11dRes_info_ci();
|
||||
extern "C" void getObjectResName2Index__14dRes_control_cFPCcPCc();
|
||||
extern "C" void dBgS_MoveBGProc_TypicalRotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz();
|
||||
extern "C" void __ct__12dBgS_AcchCirFv();
|
||||
extern "C" void __dt__9dBgS_AcchFv();
|
||||
extern "C" void __ct__9dBgS_AcchFv();
|
||||
extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
|
||||
extern "C" void __ct__16dBgS_MoveBgActorFv();
|
||||
extern "C" bool IsDelete__16dBgS_MoveBgActorFv();
|
||||
extern "C" bool ToFore__16dBgS_MoveBgActorFv();
|
||||
extern "C" bool ToBack__16dBgS_MoveBgActorFv();
|
||||
extern "C" void
|
||||
MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f();
|
||||
extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv();
|
||||
extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv();
|
||||
extern "C" void SetObj__16dBgS_PolyPassChkFv();
|
||||
extern "C" void __ct__10dCcD_GSttsFv();
|
||||
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
|
||||
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" extern void* __vt__9dCcD_Stts[11];
|
||||
extern "C" extern void* __vt__9cCcD_Stts[8];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" f32 mGroundY__11fopAcM_gc_c;
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80BD5BB8-80BD5BD8 000078 0020+00 1/0 0/0 0/0 .text daObjCRVSTEEL_Create__FP10fopAc_ac_c */
|
||||
static void daObjCRVSTEEL_Create(fopAc_ac_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int daObjCRVSTEEL_Create(fopAc_ac_c* i_this) {
|
||||
return static_cast<daObjCRVSTEEL_c*>(i_this)->create();
|
||||
}
|
||||
|
||||
/* 80BD5BD8-80BD5BFC 000098 0024+00 1/0 0/0 0/0 .text daObjCRVSTEEL_Delete__FP15daObjCRVSTEEL_c */
|
||||
static void daObjCRVSTEEL_Delete(daObjCRVSTEEL_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int daObjCRVSTEEL_Delete(daObjCRVSTEEL_c* i_this) {
|
||||
i_this->MoveBGDelete();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BD5BFC-80BD5C18 0000BC 001C+00 0/0 0/0 1/1 .text OpenSet__15daObjCRVSTEEL_cFff */
|
||||
void daObjCRVSTEEL_c::OpenSet(f32 param_0, f32 param_1) {
|
||||
// NONMATCHING
|
||||
void daObjCRVSTEEL_c::OpenSet(f32 param_1, f32 param_2) {
|
||||
speed.y = param_1;
|
||||
mMaxHeight = current.pos.y + param_2;
|
||||
mAction = 1;
|
||||
}
|
||||
|
||||
/* 80BD5C18-80BD5C28 0000D8 0010+00 0/0 0/0 1/1 .text CloseSet__15daObjCRVSTEEL_cFf */
|
||||
void daObjCRVSTEEL_c::CloseSet(f32 param_0) {
|
||||
// NONMATCHING
|
||||
void daObjCRVSTEEL_c::CloseSet(f32 param_1) {
|
||||
speed.y = param_1;
|
||||
mAction = 2;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80BD6208-80BD620C 000000 0004+00 3/3 0/0 0/0 .rodata @3789 */
|
||||
SECTION_RODATA static f32 const lit_3789 = 5.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD6208, &lit_3789);
|
||||
|
||||
/* 80BD5C28-80BD5CA0 0000E8 0078+00 1/1 0/0 0/0 .text CloseExecute__15daObjCRVSTEEL_cFv
|
||||
*/
|
||||
void daObjCRVSTEEL_c::CloseExecute() {
|
||||
// NONMATCHING
|
||||
current.pos.y += speed.y;
|
||||
if (current.pos.y < mMinHeight) {
|
||||
current.pos.y = mMinHeight;
|
||||
fopAcM_effSmokeSet1(&mSmokeParticle1, &mSmokeParticle2, ¤t.pos, 0, 5.0f, &tevStr, 1);
|
||||
mAction = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80BD5CA0-80BD5CC8 000160 0028+00 1/1 0/0 0/0 .text OpenExecute__15daObjCRVSTEEL_cFv */
|
||||
void daObjCRVSTEEL_c::OpenExecute() {
|
||||
// NONMATCHING
|
||||
current.pos.y += speed.y;
|
||||
if (current.pos.y > mMaxHeight) {
|
||||
current.pos.y = mMaxHeight;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80BD5CC8-80BD5D10 000188 0048+00 1/1 0/0 0/0 .text Action__15daObjCRVSTEEL_cFv */
|
||||
void daObjCRVSTEEL_c::Action() {
|
||||
// NONMATCHING
|
||||
switch(mAction) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
OpenExecute();
|
||||
break;
|
||||
case 2:
|
||||
CloseExecute();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80BD5D10-80BD5D6C 0001D0 005C+00 1/1 0/0 0/0 .text setBaseMtx__15daObjCRVSTEEL_cFv */
|
||||
void daObjCRVSTEEL_c::setBaseMtx() {
|
||||
// NONMATCHING
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::ZXYrotM(shape_angle);
|
||||
mModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
cMtx_copy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
}
|
||||
|
||||
/* 80BD5D6C-80BD5D98 00022C 002C+00 1/0 0/0 0/0 .text daObjCRVSTEEL_Draw__FP15daObjCRVSTEEL_c */
|
||||
static void daObjCRVSTEEL_Draw(daObjCRVSTEEL_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int daObjCRVSTEEL_Draw(daObjCRVSTEEL_c* i_this) {
|
||||
return i_this->Draw();
|
||||
}
|
||||
|
||||
/* 80BD5D98-80BD5DB8 000258 0020+00 2/1 0/0 0/0 .text daObjCRVSTEEL_Execute__FP15daObjCRVSTEEL_c
|
||||
*/
|
||||
static void daObjCRVSTEEL_Execute(daObjCRVSTEEL_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int daObjCRVSTEEL_Execute(daObjCRVSTEEL_c* i_this) {
|
||||
return i_this->MoveBGExecute();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80BD623C-80BD623C 000034 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80BD623C = "CrvSteel";
|
||||
SECTION_DEAD static char const* const stringBase_80BD6245 = "U_CrvSteelGate.bmd";
|
||||
#pragma pop
|
||||
|
||||
/* 80BD626C-80BD6270 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
|
||||
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_crvsteel__stringBase0;
|
||||
static char* l_arcName = "CrvSteel";
|
||||
|
||||
/* 80BD5DB8-80BD5E30 000278 0078+00 1/0 0/0 0/0 .text CreateHeap__15daObjCRVSTEEL_cFv */
|
||||
void daObjCRVSTEEL_c::CreateHeap() {
|
||||
// NONMATCHING
|
||||
int daObjCRVSTEEL_c::CreateHeap() {
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "U_CrvSteelGate.bmd");
|
||||
JUT_ASSERT(86, modelData != 0);
|
||||
mModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
|
||||
return mModel != NULL ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80BD620C-80BD6210 000004 0004+00 0/1 0/0 0/0 .rodata @3900 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3900 = -9.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD620C, &lit_3900);
|
||||
#pragma pop
|
||||
/* 80BD5E30-80BD6030 0002F0 0200+00 1/1 0/0 0/0 .text create__15daObjCRVSTEEL_cFv */
|
||||
int daObjCRVSTEEL_c::create() {
|
||||
fopAcM_SetupActor(this, daObjCRVSTEEL_c);
|
||||
int rv = dComIfG_resLoad(&mPhase, l_arcName);
|
||||
if (rv == cPhs_COMPLEATE_e) {
|
||||
gravity = -9.0f;
|
||||
int dzb_id = dComIfG_getObjctResName2Index(l_arcName, "U_CrvSteelGate.dzb");
|
||||
JUT_ASSERT()
|
||||
if (dzb_id == -1) {
|
||||
OS_REPORT("dzbデータが見つかりませんでした!<%s>\n\n", l_arcName);
|
||||
JUT_PANIC(443, dzb_id != -1);
|
||||
}
|
||||
rv = MoveBGCreate(l_arcName, dzb_id, dBgS_MoveBGProc_TypicalRotY, 0x4000, NULL);
|
||||
if (rv == cPhs_ERROR_e) {
|
||||
return rv;
|
||||
}
|
||||
mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1,
|
||||
&mAcchCir, fopAcM_GetSpeed_p(this), NULL, NULL);
|
||||
fopAcM_SetMtx(this, mModel->getBaseTRMtx());
|
||||
cXyz cStack_30(current.pos.x, current.pos.y + 100.0f,
|
||||
current.pos.z);
|
||||
if (fopAcM_gc_c::gndCheck(&cStack_30)) {
|
||||
current.pos.y = fopAcM_gc_c::getGroundY();
|
||||
mMinHeight = current.pos.y;
|
||||
}
|
||||
fopAcM_setCullSizeBox(this, -400.0f, 0.0f, -50.0f, 400.0f, 900.0f, 50.0f);
|
||||
daObjCRVSTEEL_Execute(this);
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
/* 80BD6210-80BD6214 000008 0004+00 0/1 0/0 0/0 .rodata @3901 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3901 = 100.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD6210, &lit_3901);
|
||||
#pragma pop
|
||||
/* 80BD60A0-80BD60A8 000560 0008+00 1/0 0/0 0/0 .text daObjCRVSTEEL_IsDelete__FP15daObjCRVSTEEL_c
|
||||
*/
|
||||
static int daObjCRVSTEEL_IsDelete(daObjCRVSTEEL_c* param_0) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BD6214-80BD6218 00000C 0004+00 0/1 0/0 0/0 .rodata @3902 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3902 = -400.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD6214, &lit_3902);
|
||||
#pragma pop
|
||||
/* 80BD60A8-80BD60EC 000568 0044+00 1/0 0/0 0/0 .text Create__15daObjCRVSTEEL_cFv */
|
||||
int daObjCRVSTEEL_c::Create() {
|
||||
fopAcM_setCullSizeBox(this, -1000.0f, -500.0f, -1000.0f, 1000.0f, 500.0, 1000.0f);
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
/* 80BD6218-80BD621C 000010 0004+00 0/1 0/0 0/0 .rodata @3903 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3903[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80BD6218, &lit_3903);
|
||||
#pragma pop
|
||||
/* 80BD60EC-80BD6138 0005AC 004C+00 1/0 0/0 0/0 .text Execute__15daObjCRVSTEEL_cFPPA3_A4_f */
|
||||
int daObjCRVSTEEL_c::Execute(Mtx** param_1) {
|
||||
Action();
|
||||
*param_1 = &mBgMtx;
|
||||
setBaseMtx();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BD621C-80BD6220 000014 0004+00 0/1 0/0 0/0 .rodata @3904 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3904 = -50.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD621C, &lit_3904);
|
||||
#pragma pop
|
||||
/* 80BD6138-80BD61BC 0005F8 0084+00 1/0 0/0 0/0 .text Draw__15daObjCRVSTEEL_cFv */
|
||||
int daObjCRVSTEEL_c::Draw() {
|
||||
g_env_light.settingTevStruct(8, ¤t.pos, &tevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(mModel, &tevStr);
|
||||
dComIfGd_setListBG();
|
||||
mDoExt_modelUpdateDL(mModel);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BD6220-80BD6224 000018 0004+00 0/1 0/0 0/0 .rodata @3905 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3905 = 400.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD6220, &lit_3905);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD6224-80BD6228 00001C 0004+00 0/1 0/0 0/0 .rodata @3906 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3906 = 900.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD6224, &lit_3906);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD6228-80BD622C 000020 0004+00 0/1 0/0 0/0 .rodata @3907 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3907 = 50.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD6228, &lit_3907);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD623C-80BD623C 000034 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80BD6258 = "U_CrvSteelGate.dzb";
|
||||
#pragma pop
|
||||
/* 80BD61BC-80BD61F0 00067C 0034+00 1/0 0/0 0/0 .text Delete__15daObjCRVSTEEL_cFv */
|
||||
int daObjCRVSTEEL_c::Delete() {
|
||||
dComIfG_resDelete(&mPhase, l_arcName);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BD6270-80BD6290 -00001 0020+00 1/0 0/0 0/0 .data l_daObjCRVSTEEL_Method */
|
||||
static actor_method_class l_daObjCRVSTEEL_Method = {
|
||||
(process_method_func)daObjCRVSTEEL_Create__FP10fopAc_ac_c,
|
||||
(process_method_func)daObjCRVSTEEL_Delete__FP15daObjCRVSTEEL_c,
|
||||
(process_method_func)daObjCRVSTEEL_Execute__FP15daObjCRVSTEEL_c,
|
||||
(process_method_func)daObjCRVSTEEL_IsDelete__FP15daObjCRVSTEEL_c,
|
||||
(process_method_func)daObjCRVSTEEL_Draw__FP15daObjCRVSTEEL_c,
|
||||
(process_method_func)daObjCRVSTEEL_Create,
|
||||
(process_method_func)daObjCRVSTEEL_Delete,
|
||||
(process_method_func)daObjCRVSTEEL_Execute,
|
||||
(process_method_func)daObjCRVSTEEL_IsDelete,
|
||||
(process_method_func)daObjCRVSTEEL_Draw,
|
||||
};
|
||||
|
||||
/* 80BD6290-80BD62C0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_CRVSTEEL */
|
||||
@@ -246,107 +187,4 @@ extern actor_process_profile_definition g_profile_Obj_CRVSTEEL = {
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
/* 80BD62C0-80BD62E4 000054 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */
|
||||
SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__12dBgS_ObjAcchFv,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)func_80BD61F8,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)func_80BD61F0,
|
||||
};
|
||||
|
||||
/* 80BD62E4-80BD630C 000078 0028+00 1/1 0/0 0/0 .data __vt__15daObjCRVSTEEL_c */
|
||||
SECTION_DATA extern void* __vt__15daObjCRVSTEEL_c[10] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)CreateHeap__15daObjCRVSTEEL_cFv,
|
||||
(void*)Create__15daObjCRVSTEEL_cFv,
|
||||
(void*)Execute__15daObjCRVSTEEL_cFPPA3_A4_f,
|
||||
(void*)Draw__15daObjCRVSTEEL_cFv,
|
||||
(void*)Delete__15daObjCRVSTEEL_cFv,
|
||||
(void*)IsDelete__16dBgS_MoveBgActorFv,
|
||||
(void*)ToFore__16dBgS_MoveBgActorFv,
|
||||
(void*)ToBack__16dBgS_MoveBgActorFv,
|
||||
};
|
||||
|
||||
/* 80BD5E30-80BD6030 0002F0 0200+00 1/1 0/0 0/0 .text create__15daObjCRVSTEEL_cFv */
|
||||
void daObjCRVSTEEL_c::create() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80BD6030-80BD60A0 0004F0 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
|
||||
// dBgS_ObjAcch::~dBgS_ObjAcch() {
|
||||
extern "C" void __dt__12dBgS_ObjAcchFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80BD60A0-80BD60A8 000560 0008+00 1/0 0/0 0/0 .text daObjCRVSTEEL_IsDelete__FP15daObjCRVSTEEL_c
|
||||
*/
|
||||
static bool daObjCRVSTEEL_IsDelete(daObjCRVSTEEL_c* param_0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80BD622C-80BD6230 000024 0004+00 0/1 0/0 0/0 .rodata @3947 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3947 = -1000.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD622C, &lit_3947);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD6230-80BD6234 000028 0004+00 0/1 0/0 0/0 .rodata @3948 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3948 = -500.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD6230, &lit_3948);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD6234-80BD6238 00002C 0004+00 0/1 0/0 0/0 .rodata @3949 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3949 = 1000.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD6234, &lit_3949);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD6238-80BD623C 000030 0004+00 0/1 0/0 0/0 .rodata @3950 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3950 = 500.0f;
|
||||
COMPILER_STRIP_GATE(0x80BD6238, &lit_3950);
|
||||
#pragma pop
|
||||
|
||||
/* 80BD60A8-80BD60EC 000568 0044+00 1/0 0/0 0/0 .text Create__15daObjCRVSTEEL_cFv */
|
||||
void daObjCRVSTEEL_c::Create() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80BD60EC-80BD6138 0005AC 004C+00 1/0 0/0 0/0 .text Execute__15daObjCRVSTEEL_cFPPA3_A4_f */
|
||||
void daObjCRVSTEEL_c::Execute(f32 (**param_0)[3][4]) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80BD6138-80BD61BC 0005F8 0084+00 1/0 0/0 0/0 .text Draw__15daObjCRVSTEEL_cFv */
|
||||
void daObjCRVSTEEL_c::Draw() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80BD61BC-80BD61F0 00067C 0034+00 1/0 0/0 0/0 .text Delete__15daObjCRVSTEEL_cFv */
|
||||
void daObjCRVSTEEL_c::Delete() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80BD61F0-80BD61F8 0006B0 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
|
||||
static void func_80BD61F0() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80BD61F8-80BD6200 0006B8 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
|
||||
static void func_80BD61F8() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80BD623C-80BD623C 000034 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
+82
-257
@@ -4,124 +4,15 @@
|
||||
*/
|
||||
|
||||
#include "d/actor/d_a_obj_kantera.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "d/d_a_itembase_static.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_item.h"
|
||||
#include "d/d_item_data.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "dol2asm.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" static void Reflect__FP4cXyzRC13cBgS_PolyInfof();
|
||||
extern "C" void __dt__8cM3dGPlaFv();
|
||||
extern "C" void initBaseMtx__15daItemKantera_cFv();
|
||||
extern "C" void setBaseMtx__15daItemKantera_cFv();
|
||||
extern "C" void Create__15daItemKantera_cFv();
|
||||
extern "C" bool __CreateHeap__15daItemKantera_cFv();
|
||||
extern "C" void create__15daItemKantera_cFv();
|
||||
extern "C" void __dt__8cM3dGCylFv();
|
||||
extern "C" void __dt__8cM3dGAabFv();
|
||||
extern "C" void __dt__10dCcD_GSttsFv();
|
||||
extern "C" void __dt__12dBgS_AcchCirFv();
|
||||
extern "C" void __dt__12dBgS_ObjAcchFv();
|
||||
extern "C" void bg_check__15daItemKantera_cFv();
|
||||
extern "C" void actionInit__15daItemKantera_cFv();
|
||||
extern "C" void actionWaitInit__15daItemKantera_cFv();
|
||||
extern "C" void actionWait__15daItemKantera_cFv();
|
||||
extern "C" void initActionOrderGetDemo__15daItemKantera_cFv();
|
||||
extern "C" void actionOrderGetDemo__15daItemKantera_cFv();
|
||||
extern "C" void actionGetDemo__15daItemKantera_cFv();
|
||||
extern "C" void execute__15daItemKantera_cFv();
|
||||
extern "C" void draw__15daItemKantera_cFv();
|
||||
extern "C" void _delete__15daItemKantera_cFv();
|
||||
extern "C" static void daItemKantera_Draw__FP15daItemKantera_c();
|
||||
extern "C" static void daItemKantera_Execute__FP15daItemKantera_c();
|
||||
extern "C" static void daItemKantera_Delete__FP15daItemKantera_c();
|
||||
extern "C" static void daItemKantera_Create__FP10fopAc_ac_c();
|
||||
extern "C" void __dt__10cCcD_GSttsFv();
|
||||
extern "C" static void func_80C39630();
|
||||
extern "C" static void func_80C39638();
|
||||
extern "C" extern char const* const d_a_obj_kantera__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_ZXYrotM__FPA4_fsss();
|
||||
extern "C" void __ct__10fopAc_ac_cFv();
|
||||
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
|
||||
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
|
||||
extern "C" void fopAcM_posMoveF__FP10fopAc_ac_cPC4cXyz();
|
||||
extern "C" void fopAcM_orderItemEvent__FP10fopAc_ac_cUsUs();
|
||||
extern "C" void fopAcM_createItemForTrBoxDemo__FPC4cXyziiiPC5csXyzPC4cXyz();
|
||||
extern "C" void fopAcM_cancelCarryNow__FP10fopAc_ac_c();
|
||||
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void hide__12daItemBase_cFv();
|
||||
extern "C" void show__12daItemBase_cFv();
|
||||
extern "C" void chkDraw__12daItemBase_cFv();
|
||||
extern "C" void CheckFieldItemCreateHeap__FP10fopAc_ac_c();
|
||||
extern "C" void reset__14dEvt_control_cFv();
|
||||
extern "C" void setPtI_Id__14dEvt_control_cFUi();
|
||||
extern "C" void endCheckOld__16dEvent_manager_cFPCc();
|
||||
extern "C" void GetTriPla__4cBgSCFRC13cBgS_PolyInfoP8cM3dGPla();
|
||||
extern "C" void __ct__12dBgS_AcchCirFv();
|
||||
extern "C" void SetWall__12dBgS_AcchCirFff();
|
||||
extern "C" void __dt__9dBgS_AcchFv();
|
||||
extern "C" void __ct__9dBgS_AcchFv();
|
||||
extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
|
||||
extern "C" void CrrPos__9dBgS_AcchFR4dBgS();
|
||||
extern "C" void SetObj__16dBgS_PolyPassChkFv();
|
||||
extern "C" void __ct__10dCcD_GSttsFv();
|
||||
extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
|
||||
extern "C" void __ct__12dCcD_GObjInfFv();
|
||||
extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl();
|
||||
extern "C" void checkItemGet__FUci();
|
||||
extern "C" void DeleteBase__12daItemBase_cFPCc();
|
||||
extern "C" bool clothCreate__12daItemBase_cFv();
|
||||
extern "C" void DrawBase__12daItemBase_cFv();
|
||||
extern "C" void RotateYBase__12daItemBase_cFv();
|
||||
extern "C" void setListStart__12daItemBase_cFv();
|
||||
extern "C" void settingBeforeDraw__12daItemBase_cFv();
|
||||
extern "C" void setTevStr__12daItemBase_cFv();
|
||||
extern "C" void setShadow__12daItemBase_cFv();
|
||||
extern "C" void animEntry__12daItemBase_cFv();
|
||||
extern "C" void chkFlag__12daItemBase_cFi();
|
||||
extern "C" void getTevFrm__12daItemBase_cFv();
|
||||
extern "C" void getBtpFrm__12daItemBase_cFv();
|
||||
extern "C" void getShadowSize__12daItemBase_cFv();
|
||||
extern "C" void getCollisionH__12daItemBase_cFv();
|
||||
extern "C" void getCollisionR__12daItemBase_cFv();
|
||||
extern "C" void __ml__4cXyzCFf();
|
||||
extern "C" void cM_atan2s__Fff();
|
||||
extern "C" void __dt__13cBgS_PolyInfoFv();
|
||||
extern "C" void __dt__8cM3dGCirFv();
|
||||
extern "C" void SetH__8cM3dGCylFf();
|
||||
extern "C" void SetR__8cM3dGCylFf();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __ptmf_scall();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* __vt__8dCcD_Cyl[36];
|
||||
extern "C" extern void* __vt__9dCcD_Stts[11];
|
||||
extern "C" void* field_item_res__10dItem_data[1020];
|
||||
extern "C" u8 item_info__10dItem_data[1020 + 4 /* padding */];
|
||||
extern "C" extern void* __vt__12daItemBase_c[17 + 1 /* padding */];
|
||||
extern "C" extern void* __vt__12cCcD_CylAttr[25];
|
||||
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
|
||||
extern "C" extern void* __vt__9cCcD_Stts[8];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 data_80C39860[4];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C39648-80C3968C 000000 0044+00 4/4 0/0 0/0 .rodata l_cyl_src */
|
||||
const static dCcD_SrcCyl l_cyl_src = {
|
||||
{
|
||||
@@ -137,144 +28,21 @@ const static dCcD_SrcCyl l_cyl_src = {
|
||||
} // mCyl
|
||||
};
|
||||
|
||||
/* 80C3968C-80C39690 000044 0004+00 0/3 0/0 0/0 .rodata @3855 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3855[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C3968C, &lit_3855);
|
||||
#pragma pop
|
||||
|
||||
/* 80C39690-80C39698 000048 0008+00 0/1 0/0 0/0 .rodata @3856 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3856[8] = {
|
||||
0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C39690, &lit_3856);
|
||||
#pragma pop
|
||||
|
||||
/* 80C39698-80C396A0 000050 0008+00 0/1 0/0 0/0 .rodata @3857 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3857[8] = {
|
||||
0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C39698, &lit_3857);
|
||||
#pragma pop
|
||||
|
||||
/* 80C396A0-80C396A8 000058 0008+00 0/1 0/0 0/0 .rodata @3858 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3858[8] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C396A0, &lit_3858);
|
||||
#pragma pop
|
||||
|
||||
/* 80C396DC-80C396E8 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
|
||||
SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* 80C396E8-80C396FC 00000C 0004+10 0/0 0/0 0/0 .data @1787 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
|
||||
0x02000201,
|
||||
/* padding */
|
||||
0x40080000,
|
||||
0x00000000,
|
||||
0x3FE00000,
|
||||
0x00000000,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80C396FC-80C39708 -00001 000C+00 0/1 0/0 0/0 .data @4184 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_4184[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)actionInit__15daItemKantera_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80C39708-80C39714 -00001 000C+00 0/1 0/0 0/0 .data @4185 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_4185[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)actionWait__15daItemKantera_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80C39714-80C39720 -00001 000C+00 0/1 0/0 0/0 .data @4186 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_4186[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)actionOrderGetDemo__15daItemKantera_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80C39720-80C3972C -00001 000C+00 0/1 0/0 0/0 .data @4187 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_4187[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)actionGetDemo__15daItemKantera_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80C3972C-80C3975C 000050 0030+00 0/1 0/0 0/0 .data l_demoFunc$4183 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u8 l_demoFunc[48] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80C3975C-80C3977C -00001 0020+00 1/0 0/0 0/0 .data l_daItemKantera_Method */
|
||||
static actor_method_class l_daItemKantera_Method = {
|
||||
(process_method_func)daItemKantera_Create__FP10fopAc_ac_c,
|
||||
(process_method_func)daItemKantera_Delete__FP15daItemKantera_c,
|
||||
(process_method_func)daItemKantera_Execute__FP15daItemKantera_c,
|
||||
0,
|
||||
(process_method_func)daItemKantera_Draw__FP15daItemKantera_c,
|
||||
};
|
||||
|
||||
/* 80C3977C-80C397AC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Kantera */
|
||||
extern actor_process_profile_definition g_profile_Obj_Kantera = {
|
||||
fpcLy_CURRENT_e, // mLayerID
|
||||
7, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_Obj_Kantera, // mProcName
|
||||
&g_fpcLf_Method.base, // sub_method
|
||||
sizeof(daItemKantera_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
238, // mPriority
|
||||
&l_daItemKantera_Method, // sub_method
|
||||
0x00040100, // mStatus
|
||||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
UNK_REL_DATA
|
||||
|
||||
/* 80C38678-80C38974 000078 02FC+00 1/1 0/0 0/0 .text Reflect__FP4cXyzRC13cBgS_PolyInfof
|
||||
*/
|
||||
static f32 Reflect(cXyz* i_xyz, cBgS_PolyInfo const& param_1, f32 param_2) {
|
||||
// NONMATCHING
|
||||
static f32 Reflect(cXyz* i_xyz, cBgS_PolyInfo const& param_2, f32 param_3) {
|
||||
cM3dGPla acStack_3c;
|
||||
if (dComIfG_Bgsp().GetTriPla(param_2, &acStack_3c) != 0) {
|
||||
cXyz cStack_48;
|
||||
f32 dVar5 = i_xyz->absXZ();
|
||||
C_VECReflect(i_xyz, &acStack_3c.mNormal, &cStack_48);
|
||||
*i_xyz = (cStack_48 * dVar5) * param_3;
|
||||
return i_xyz->absXZ();
|
||||
}
|
||||
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
/* 80C389BC-80C389F8 0003BC 003C+00 1/1 0/0 0/0 .text initBaseMtx__15daItemKantera_cFv */
|
||||
@@ -347,8 +115,8 @@ int daItemKantera_c::create() {
|
||||
}
|
||||
|
||||
/* 80C38F78-80C39068 000978 00F0+00 1/1 0/0 0/0 .text bg_check__15daItemKantera_cFv */
|
||||
// NONMATCHING lfs not correct
|
||||
void daItemKantera_c::bg_check() {
|
||||
f32 dVar6 = 0.7f;
|
||||
if (mAcch.ChkWallHit()) {
|
||||
if (speedF > 5.0f) {
|
||||
Reflect(&speed, mAcchCir, 1.0f);
|
||||
@@ -360,7 +128,9 @@ void daItemKantera_c::bg_check() {
|
||||
if (speedF > 5.0f) {
|
||||
Reflect(&l_speed, mAcchCir, 0.7f);
|
||||
}
|
||||
speed.y = -field_0x93c.y * 0.7f;
|
||||
f32 tmp = field_0x93c.y;
|
||||
tmp = -tmp;
|
||||
speed.y = tmp * dVar6;
|
||||
if (speed.y < 3.0f) {
|
||||
fopAcM_SetSpeedF(this, 0.0f);
|
||||
}
|
||||
@@ -388,17 +158,32 @@ int daItemKantera_c::actionWaitInit() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C396C8-80C396CC 000080 0004+00 0/1 0/0 0/0 .rodata @4145 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4145 = 9.0f / 10.0f;
|
||||
COMPILER_STRIP_GATE(0x80C396C8, &lit_4145);
|
||||
#pragma pop
|
||||
|
||||
/* 80C3911C-80C39234 000B1C 0118+00 1/0 0/0 0/0 .text actionWait__15daItemKantera_cFv */
|
||||
int daItemKantera_c::actionWait() {
|
||||
// NONMATCHING
|
||||
fopAcM_posMoveF(this, mCcStts.GetCCMoveP());
|
||||
mAcch.CrrPos(dComIfG_Bgsp());
|
||||
bg_check();
|
||||
if (mAcch.ChkGroundHit()) {
|
||||
cLib_onBit(attention_info.flags, 0x10UL);
|
||||
speedF *= 0.9f;
|
||||
if (speedF < 1.0f) {
|
||||
speedF = 0.0f;
|
||||
}
|
||||
} else {
|
||||
cLib_offBit(attention_info.flags, 0x10UL);
|
||||
}
|
||||
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||
if (fopAcM_checkCarryNow(this)) {
|
||||
cLib_offBit(attention_info.flags, 0x10UL);
|
||||
if (player->getGrabUpStart()) {
|
||||
fopAcM_cancelCarryNow(this);
|
||||
initActionOrderGetDemo();
|
||||
}
|
||||
} else {
|
||||
cLib_onBit(attention_info.flags, 0x10UL);
|
||||
}
|
||||
attention_info.position = current.pos;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C39234-80C392D0 000C34 009C+00 1/1 0/0 0/0 .text initActionOrderGetDemo__15daItemKantera_cFv
|
||||
@@ -442,7 +227,19 @@ int daItemKantera_c::actionGetDemo() {
|
||||
|
||||
/* 80C393B0-80C394DC 000DB0 012C+00 1/1 0/0 0/0 .text execute__15daItemKantera_cFv */
|
||||
int daItemKantera_c::execute() {
|
||||
// NONMATCHING
|
||||
static daItemKantera_c::actionFunc l_demoFunc[4] = {
|
||||
&daItemKantera_c::actionInit,
|
||||
&daItemKantera_c::actionWait,
|
||||
&daItemKantera_c::actionOrderGetDemo,
|
||||
&daItemKantera_c::actionGetDemo,
|
||||
};
|
||||
field_0x93c = speed;
|
||||
field_0x930++;
|
||||
(this->*(l_demoFunc[mStatus]))();
|
||||
eyePos = current.pos;
|
||||
attention_info.position = current.pos;
|
||||
setBaseMtx();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C394DC-80C39530 000EDC 0054+00 1/1 0/0 0/0 .text draw__15daItemKantera_cFv */
|
||||
@@ -480,3 +277,31 @@ static int daItemKantera_Delete(daItemKantera_c* i_this) {
|
||||
static int daItemKantera_Create(fopAc_ac_c* i_this) {
|
||||
return static_cast<daItemKantera_c*>(i_this)->create();
|
||||
}
|
||||
|
||||
|
||||
/* 80C3975C-80C3977C -00001 0020+00 1/0 0/0 0/0 .data l_daItemKantera_Method */
|
||||
static actor_method_class l_daItemKantera_Method = {
|
||||
(process_method_func)daItemKantera_Create,
|
||||
(process_method_func)daItemKantera_Delete,
|
||||
(process_method_func)daItemKantera_Execute,
|
||||
NULL,
|
||||
(process_method_func)daItemKantera_Draw,
|
||||
};
|
||||
|
||||
/* 80C3977C-80C397AC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Kantera */
|
||||
extern actor_process_profile_definition g_profile_Obj_Kantera = {
|
||||
fpcLy_CURRENT_e, // mLayerID
|
||||
7, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_Obj_Kantera, // mProcName
|
||||
&g_fpcLf_Method.base, // sub_method
|
||||
sizeof(daItemKantera_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
238, // mPriority
|
||||
&l_daItemKantera_Method, // sub_method
|
||||
0x00040100, // mStatus
|
||||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
+468
-529
File diff suppressed because it is too large
Load Diff
+426
-827
File diff suppressed because it is too large
Load Diff
+525
-868
File diff suppressed because it is too large
Load Diff
+6
-6
@@ -165,7 +165,7 @@ static u8 at_power_get(dCcU_AtInfo* i_AtInfo) {
|
||||
u8 power = i_AtInfo->mpCollider->GetAtAtp();
|
||||
|
||||
if (i_AtInfo->mPowerType == 0) {
|
||||
if (i_AtInfo->mpCollider->ChkAtType(0x10000000)) {
|
||||
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_10000000)) {
|
||||
power = 0;
|
||||
} else if (power == 1) {
|
||||
power = 1;
|
||||
@@ -179,7 +179,7 @@ static u8 at_power_get(dCcU_AtInfo* i_AtInfo) {
|
||||
power = 200;
|
||||
}
|
||||
} else if (i_AtInfo->mPowerType == 6) {
|
||||
if (i_AtInfo->mpCollider->ChkAtType(0x10000000)) {
|
||||
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_10000000)) {
|
||||
power = 0;
|
||||
} else if (power == 1) {
|
||||
power = 1;
|
||||
@@ -193,7 +193,7 @@ static u8 at_power_get(dCcU_AtInfo* i_AtInfo) {
|
||||
} else if (i_AtInfo->mPowerType == 4) {
|
||||
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_IRON_BALL)) {
|
||||
power = 200;
|
||||
} else if (i_AtInfo->mpCollider->ChkAtType(0x10000000)) {
|
||||
} else if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_10000000)) {
|
||||
power = 0;
|
||||
} else if (power == 1) {
|
||||
power = 1;
|
||||
@@ -247,7 +247,7 @@ static u8 at_power_get(dCcU_AtInfo* i_AtInfo) {
|
||||
power = 40;
|
||||
}
|
||||
} else if (i_AtInfo->mPowerType == 7) {
|
||||
if (i_AtInfo->mpCollider->ChkAtType(0x420008)) {
|
||||
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_THROW_OBJ | AT_TYPE_20000 | AT_TYPE_IRON_BALL)) {
|
||||
power = 50;
|
||||
} else if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_ARROW)) {
|
||||
power = 27;
|
||||
@@ -337,7 +337,7 @@ fopAc_ac_c* at_power_check(dCcU_AtInfo* i_AtInfo) {
|
||||
|
||||
s16 ac_name = fopAcM_GetName(i_AtInfo->mpActor);
|
||||
if (ac_name == PROC_ALINK || ac_name == PROC_ALINK) {
|
||||
if (i_AtInfo->mpCollider->ChkAtType(0x8000) ||
|
||||
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_8000) ||
|
||||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_IRON_BALL))
|
||||
{
|
||||
i_AtInfo->mHitType = HIT_TYPE_LINK_HEAVY_ATTACK;
|
||||
@@ -358,7 +358,7 @@ fopAc_ac_c* at_power_check(dCcU_AtInfo* i_AtInfo) {
|
||||
}
|
||||
|
||||
i_AtInfo->mHitStatus = 0;
|
||||
if (i_AtInfo->mpCollider->ChkAtType(0x40) ||
|
||||
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_40) ||
|
||||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_BOOMERANG) ||
|
||||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_SLINGSHOT) ||
|
||||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_SHIELD_ATTACK))
|
||||
|
||||
Reference in New Issue
Block a user