d_a_alink work / lv4digsand done / e_s1 matched (#2224)

* d_a_alink work / d_a_obj_lv4digsand done

* d_a_e_s1 matched, not linked

* d_a_e_s1 documentation
This commit is contained in:
TakaRikka
2024-10-24 20:47:02 -07:00
committed by GitHub
parent 5650c7fe08
commit 8a0802554e
31 changed files with 4739 additions and 2737 deletions
@@ -3,9 +3,9 @@
namespace std {
/* float fabs(float num) {
inline float fabs(float num) {
return ::fabsf(num);
} */
}
inline float fabsf(float num) {
return ::fabsf(num);
@@ -20,4 +20,4 @@ inline float abs(float x) {
}
} // namespace std
#endif
#endif
+14 -14
View File
@@ -551,13 +551,13 @@ SECTION_SDATA2 static u8 bFootJoint[4] = {
};
/* 804531D8-804531E0 0017D8 0008+00 1/1 0/0 0/0 .sdata2 snowID$53110 */
SECTION_SDATA2 static u8 snowID[8] = {
0x88, 0x4D, 0x88, 0x4E, 0x88, 0x51, 0x88, 0x52,
SECTION_SDATA2 static u16 snowID[] = {
0x884D, 0x884E, 0x8851, 0x8852,
};
/* 804531E0-804531E8 0017E0 0008+00 1/1 0/0 0/0 .sdata2 smokeID$53111 */
SECTION_SDATA2 static u8 smokeID[8] = {
0x83, 0xA0, 0x83, 0xA1, 0x83, 0xA4, 0x83, 0xA5,
SECTION_SDATA2 static u16 smokeID[] = {
0x83A0, 0x83A1, 0x83A4, 0x83A5,
};
/* 804531E8-804531F0 0017E8 0008+00 1/1 0/0 0/0 .sdata2 waterColor$53845 */
@@ -884,13 +884,13 @@ SECTION_RODATA static Vec const l_ironBallCenterVec = {
COMPILER_STRIP_GATE(0x8038FB50, &l_ironBallCenterVec);
/* 8038FB5C-8038FBBC 01C1BC 0060+00 1/2 0/0 0/0 .rodata l_wolfFootOnFrame */
SECTION_RODATA static u8 const l_wolfFootOnFrame[96] = {
0x00, 0x00, 0x00, 0x00, 0x41, 0x80, 0x00, 0x00, 0x41, 0x98, 0x00, 0x00, 0x40, 0xC0, 0x00, 0x00,
0x41, 0x20, 0x00, 0x00, 0x41, 0x40, 0x00, 0x00, 0x40, 0xE0, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0x41, 0xD8, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00,
0x41, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xC0, 0x00, 0x00, 0x41, 0x30, 0x00, 0x00,
0x41, 0xC0, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x41, 0x40, 0x00, 0x00, 0x41, 0xD0, 0x00, 0x00,
0x42, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x30, 0x00, 0x00, 0x42, 0x68, 0x00, 0x00,
SECTION_RODATA static f32 const l_wolfFootOnFrame[6][4] = {
{0.0f, 16.0f, 19.0f, 6.0f},
{10.0f, 12.0f, 7.0f, 3.0f},
{0.0f, 20.0f, 27.0f, 8.0f},
{17.0f, 0.0f, 24.0f, 11.0f},
{24.0f, 32.0f, 12.0f, 26.0f},
{56.0f, 0.0f, 44.0f, 58.0f},
};
COMPILER_STRIP_GATE(0x8038FB5C, &l_wolfFootOnFrame);
@@ -2427,7 +2427,7 @@ void daAlink_c::setIdxMask(u16* o_arcNo, u16* o_resID) {
/* 800A3D0C-800A3D7C 09E64C 0070+00 5/5 0/0 0/0 .text
* getAnimeResource__9daAlink_cFP14daPy_anmHeap_cUsUl */
void* daAlink_c::getAnimeResource(daPy_anmHeap_c* p_anmHeap, u16 i_anmID, u32 buf_size) {
J3DAnmTransform* daAlink_c::getAnimeResource(daPy_anmHeap_c* p_anmHeap, u16 i_anmID, u32 buf_size) {
u16 arcNo;
u16 resID = i_anmID;
@@ -2437,10 +2437,10 @@ void* daAlink_c::getAnimeResource(daPy_anmHeap_c* p_anmHeap, u16 i_anmID, u32 bu
setIdxMask(&arcNo, &resID);
if (arcNo == 0xFFFF) {
return p_anmHeap->loadDataIdx(resID);
return (J3DAnmTransform*)p_anmHeap->loadDataIdx(resID);
}
return p_anmHeap->loadDataDemoRID(resID, arcNo);
return (J3DAnmTransform*)p_anmHeap->loadDataDemoRID(resID, arcNo);
}
/* 800A3D7C-800A3E30 09E6BC 00B4+00 16/16 0/0 0/0 .text initModel__9daAlink_cFP12J3DModelDataUlUl
+2
View File
@@ -1228,6 +1228,7 @@ BOOL daAlink_c::checkDeadHP() {
/* 80118D7C-80118FF8 1136BC 027C+00 3/3 0/0 0/0 .text checkDeadAction__9daAlink_cFi */
BOOL daAlink_c::checkDeadAction(int param_0) {
// NONMATCHING
return 0;
}
/* 80118FF8-801190A4 113938 00AC+00 1/1 0/0 0/0 .text
@@ -1360,6 +1361,7 @@ static u8 dummy[20];
static int daAlink_c_getDemoIDData(dDemo_actor_c* param_0, int* param_1, int* param_2,
int* param_3, u16* param_4, int* param_5, int* param_6) {
// NONMATCHING
return 0;
}
/* 801195C0-801195F8 113F00 0038+00 7/0 0/0 0/0 .text procDemoCommon__9daAlink_cFv */
+3 -1
View File
@@ -441,7 +441,9 @@ int daAlink_c::procPickPut() {
}
/* 800E7894-800E794C 0E21D4 00B8+00 2/2 0/0 0/0 .text checkSetChainPullAnime__9daAlink_cFs */
void daAlink_c::checkSetChainPullAnime(s16 param_0){// NONMATCHING
BOOL daAlink_c::checkSetChainPullAnime(s16 param_0) {
// NONMATCHING
return 0;
}
/* 800E794C-800E7994 0E228C 0048+00 3/3 0/0 0/0 .text getChainStickAngleY__9daAlink_cCFs
+616 -38
View File
@@ -129,7 +129,6 @@ void daAlink_c::setWaterInAnmRate(daPy_frameCtrl_c* i_frameCtrl, f32 i_rate) {
}
/* 80101D70-801023E4 0FC6B0 0674+00 2/2 0/0 0/0 .text swimBgCheck__9daAlink_cFf */
// NONMATCHING
void daAlink_c::swimBgCheck(f32 param_0) {
offNoResetFlg1(FLG1_UNK_20000000);
@@ -140,17 +139,19 @@ void daAlink_c::swimBgCheck(f32 param_0) {
cXyz start_pos(current.pos);
cXyz end_pos;
s16 uvar1;
s16 var_r29;
if (getZoraSwim()) {
uvar1 = field_0x3080;
var_r29 = field_0x3080;
} else {
uvar1 = mProcVar2.field_0x300c;
var_r29 = mProcVar2.field_0x300c;
start_pos.y += daAlinkHIO_wlWallHang_c0::m.field_0x78;
}
end_pos.set(start_pos.x + (param_0 * cM_scos(uvar1)) * cM_ssin(shape_angle.y),
start_pos.y - param_0 * cM_ssin(uvar1),
start_pos.z + (param_0 * cM_scos(uvar1)) * cM_scos(shape_angle.y));
f32 var_f28 = param_0 * cM_scos(var_r29);
end_pos.set(start_pos.x + (var_f28 * cM_ssin(shape_angle.y)),
start_pos.y - param_0 * cM_ssin(var_r29),
start_pos.z + (var_f28 * cM_scos(shape_angle.y)));
if (!commonLineCheck(&start_pos, &end_pos)) {
return;
@@ -162,15 +163,15 @@ void daAlink_c::swimBgCheck(f32 param_0) {
if (cBgW_CheckBWall(tri.mNormal.y) &&
(mProcID != PROC_METAMORPHOSE || dComIfG_Bgsp().GetWallCode(mLinkLinChk) != 7))
{
cXyz tmp2 = end_pos - mLinkLinChk.i_GetCross();
f32 absxz = tmp2.absXZ();
cXyz sp14 = end_pos - mLinkLinChk.i_GetCross();
f32 temp_f1 = sp14.absXZ();
s16 svar8 = tmp2.atan2sX_Z();
s16 svar9 = cM_atan2s(-tri.mNormal.x, -tri.mNormal.z);
f32 cos = cM_scos(svar8 - svar9);
s16 var_r28 = sp14.atan2sX_Z();
f32 var_f26 = cM_scos(var_r28 - cM_atan2s(-tri.mNormal.x, -tri.mNormal.z));
f32 var_f29 = -temp_f1 * var_f26;
f32 fvar14 = -absxz * cos * tri.mNormal.x;
f32 fvar15 = -absxz * cos * tri.mNormal.z;
f32 var_f31 = var_f29 * tri.mNormal.x;
f32 var_f30 = var_f29 * tri.mNormal.z;
if (mProcID == PROC_METAMORPHOSE ||
(getZoraSwim() && cLib_distanceAngleS(cM_atan2s(tri.mNormal.y, tri.mNormal.absXZ()),
@@ -179,37 +180,158 @@ void daAlink_c::swimBgCheck(f32 param_0) {
onNoResetFlg1(FLG1_UNK_20000000);
}
start_pos.x -= fvar14;
start_pos.z -= fvar15;
end_pos.x -= fvar14;
end_pos.z -= fvar15;
start_pos.x -= var_f31;
start_pos.z -= var_f30;
end_pos.x -= var_f31;
end_pos.z -= var_f30;
if (commonLineCheck(&start_pos, &end_pos)) {
dComIfG_Bgsp().GetTriPla(mLinkLinChk, &tri);
if (cBgW_CheckBWall(tri.mNormal.y)) {
tmp2 = end_pos - mLinkLinChk.i_GetCross();
f32 absxz2 = tmp2.absXZ();
sp14 = end_pos - mLinkLinChk.i_GetCross();
temp_f1 = sp14.absXZ();
s16 svar8_2 = tmp2.atan2sX_Z();
s16 svar9_2 = cM_atan2s(-tri.mNormal.x, -tri.mNormal.z);
f32 cos_2 = cM_scos(svar8_2 - svar9_2);
var_r28 = sp14.atan2sX_Z();
var_f26 = cM_scos(var_r28 - cM_atan2s(-tri.mNormal.x, -tri.mNormal.z));
var_f29 = -temp_f1 * var_f26;
fvar14 += -absxz2 * cos_2 * tri.mNormal.x;
fvar15 += -absxz2 * cos_2 * tri.mNormal.z;
var_f31 += var_f29 * tri.mNormal.x;
var_f30 += var_f29 * tri.mNormal.z;
}
}
current.pos.x -= fvar14;
current.pos.z -= fvar15;
field_0x3092 = cM_atan2s(-fvar14, -fvar15);
current.pos.x -= var_f31;
current.pos.z -= var_f30;
field_0x3092 = cM_atan2s(-var_f31, -var_f30);
}
}
/* 801023E4-801029C8 0FCD24 05E4+00 3/3 0/0 0/0 .text setSpeedAndAngleSwim__9daAlink_cFv
*/
void daAlink_c::setSpeedAndAngleSwim() {
// NONMATCHING
if (!checkBootsOrArmorHeavy() && dComIfGp_getDoStatus() == 0 && (!checkHookshotAnime() || (checkHookshotItem(mEquipItem) && (mItemMode == 0 || mItemMode == 1)))) {
if (checkZoraWearAbility()) {
if (checkNoResetFlg0(FLG0_SWIM_UP)) {
if (field_0x2fcd == 0) {
setDoStatus(0x41);
}
} else {
setDoStatus(0x4C);
}
} else if (!checkNoResetFlg0(FLG0_SWIM_UP)) {
setDoStatus(0x97);
} else if (mProcID == PROC_SWIM_MOVE && checkUnderMove0BckNoArc(ANM_SWIM_A) && field_0x30d0 == 0 && field_0x30d2 == 0) {
setDoStatus(9);
}
}
f32 var_f31;
f32 var_f30;
if (mProcID == PROC_SWIM_HOOKSHOT_MOVE && !checkHookshotWait()) {
var_f30 = 0.0f;
} else if (checkZoraSwimMove()) {
s16 temp_r29 = shape_angle.y;
if (mTargetedActor != NULL && current.pos.abs2XZ(mTargetedActor->eyePos) > 22500.0f) {
setShapeAngleToAtnActor(0);
} else if (checkInputOnR()) {
s16 var_r28;
if (checkEventRun()) {
var_r28 = field_0x2fe2;
} else {
var_r28 = shape_angle.y + (16384.0f * cM_ssin(mStickAngle));
}
cLib_addCalcAngleS(&shape_angle.y, var_r28, daAlinkHIO_swim_c0::m.mUnderwaterTurnRate, daAlinkHIO_swim_c0::m.mUnderwaterTurnMax, daAlinkHIO_swim_c0::m.mUnderwaterTurnMin);
}
current.angle.y = shape_angle.y;
var_f30 = 3.0f * cM_scos((shape_angle.y - temp_r29));
} else if (!checkAttentionLock()) {
if (checkInputOnR()) {
s16 temp_r29_2 = shape_angle.y;
if (checkNoResetFlg0(FLG0_SWIM_UP)) {
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, daAlinkHIO_swim_c0::m.mTurnRate, daAlinkHIO_swim_c0::m.mTurnMax, daAlinkHIO_swim_c0::m.mTurnMin);
} else {
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, daAlinkHIO_swim_c0::m.mUnderwaterTurnRate, daAlinkHIO_swim_c0::m.mUnderwaterTurnMax, daAlinkHIO_swim_c0::m.mUnderwaterTurnMin);
}
f32 var_f29;
if (checkUnderMove0BckNoArc(ANM_SWIM_DASH)) {
var_f29 = 1.0f;
} else {
var_f29 = field_0x33a8;
}
var_f30 = 3.0f * var_f29 * cM_scos((shape_angle.y - temp_r29_2));
cLib_addCalcAngleS(&current.angle.y, shape_angle.y, 2, 0x2000, 0x1000);
} else {
var_f30 = 0.0f;
}
if (checkZeroSpeedF()) {
current.angle.y = shape_angle.y;
}
} else {
setShapeAngleToAtnActor(0);
if (checkInputOnR()) {
if (getDirectionFromCurrentAngle() == DIR_BACKWARD) {
current.angle.y += 0x8000;
mNormalSpeed *= -1.0f;
}
if (checkZeroSpeedF()) {
current.angle.y = field_0x2fe2;
}
s16 temp_r29_3 = current.angle.y;
if (checkNoResetFlg0(FLG0_SWIM_UP)) {
cLib_addCalcAngleS(&current.angle.y, field_0x2fe2, daAlinkHIO_swim_c0::m.mTurnRate, daAlinkHIO_swim_c0::m.mTurnMax, daAlinkHIO_swim_c0::m.mTurnMin);
} else {
cLib_addCalcAngleS(&current.angle.y, field_0x2fe2, daAlinkHIO_swim_c0::m.mUnderwaterTurnRate, daAlinkHIO_swim_c0::m.mUnderwaterTurnMax, daAlinkHIO_swim_c0::m.mUnderwaterTurnMin);
}
var_f30 = daAlinkHIO_swim_c0::m.mAcceleration * field_0x33a8 * cM_scos((s16)(current.angle.y - temp_r29_3));
} else {
var_f30 = 0.0f;
}
}
f32 var_f28;
if (daAlinkHIO_swim_c0::m.mMaxForwardSpeed < mNormalSpeed && !checkZoraWearAbility()) {
var_f28 = daAlinkHIO_swim_c0::m.mDDeceleration;
} else {
var_f28 = daAlinkHIO_swim_c0::m.mDeceleration;
}
setNormalSpeedF(var_f30, var_f28);
if (dComIfGp_checkPlayerStatus0(0, 0x10)) {
mNormalSpeed = 0.0f;
}
if (checkSwimNeckUpDown()) {
s16 sp14;
if (speed.y >= 0.0f) {
var_f31 = -speed.y / daAlinkHIO_swim_c0::m.mMaxFloatUpSpeed;
if (var_f31 < -1.0f) {
var_f31 = -1.0f;
}
sp14 = 6144.0f * var_f31;
} else {
var_f31 = speed.y / maxFallSpeed;
if (var_f31 > 1.0f) {
var_f31 = 1.0f;
}
sp14 = 8192.0f * var_f31;
}
cLib_addCalcAngleS(&field_0x30a0, sp14, 5, 0x1000, 0x400);
} else {
field_0x30a0 = 0;
}
}
/* 801029C8-80102B1C 0FD308 0154+00 3/3 0/0 0/0 .text checkNextActionSwim__9daAlink_cFv
@@ -249,13 +371,211 @@ int daAlink_c::checkNextActionSwim() {
/* 80102B1C-80103058 0FD45C 053C+00 3/3 0/0 0/0 .text checkSwimAction__9daAlink_cFi */
int daAlink_c::checkSwimAction(int param_0) {
// NONMATCHING
f32 var_f31;
if (checkWolf()) {
if (getMoveBGActorName(mLinkAcch.m_gnd, NULL) == PROC_Obj_ITA) {
var_f31 = 200.0f;
} else {
var_f31 = daAlinkHIO_wlSwim_c0::m.field_0x48;
}
} else {
var_f31 = daAlinkHIO_swim_c0::m.mInitHeight;
}
if (checkNoResetFlg0(FLG0_UNK_80) && !checkNoResetFlg0(FLG0_UNDERWATER) && !checkModeFlg(0x40000) && mProcID != PROC_MAGNE_BOOTS_FLY && ((mProcID != PROC_WOLF_LOCK_ATTACK && mProcID != PROC_WOLF_LOCK_ATTACK_TURN) || mProcVar5.field_0x3012 == 0) && mDemo.getDemoMode() != 0x11) {
f32 var_f28;
f32 var_f29;
f32 var_f30;
if (checkWolf()) {
if (checkWolfDashMode()) {
var_f29 = daAlinkHIO_wlSwim_c0::m.field_0x50;
} else {
var_f29 = daAlinkHIO_wlSwim_c0::m.field_0x80;
}
var_f28 = daAlinkHIO_wlSwim_c0::m.field_0x58;
} else {
var_f29 = getSwimFrontMaxSpeed();
var_f28 = getSwimMaxFallSpeed();
}
if (dComIfGp_checkPlayerStatus1(0, 0x10000)) {
var_f30 = mLeftFootPos.y;
} else if (dComIfGp_checkPlayerStatus1(0, 0x2000000)) {
var_f30 = (-65.0f + current.pos.y) - var_f31;
} else {
var_f30 = current.pos.y;
}
if (mWaterY - var_f30 > var_f31 || (param_0 != 0 && mWaterY >= var_f30 && mWaterY - mLinkAcch.GetGroundH() > var_f31)) {
cXyz sp14;
offNoResetFlg0(FLG0_SWIM_UP);
mZ2Link.setInWater(true);
field_0x594 = var_f29;
if (!param_0) {
mNormalSpeed *= 0.75f;
}
if (mNormalSpeed >= field_0x594) {
mNormalSpeed = field_0x594;
}
swimDeleteItem();
if (checkEquipAnime()) {
resetUpperAnime(UPPER_2, 3.0f);
}
field_0x3080 = 0;
if (param_0) {
if (current.pos.y - mWaterY > -5.0f) {
onNoResetFlg0(FLG0_SWIM_UP);
mZ2Link.setInWater(false);
return 0;
}
return 1;
}
if (checkModeFlg(2) && !checkPossibleWaterInMode()) {
dComIfGp_getVibration().StartShock(2, 1, cXyz(0.0f, 1.0f, 0.0f));
current.pos.y = var_f30 + var_f31;
speed.y = 0.75f * field_0x3528.y;
if (speed.y < var_f28) {
speed.y = var_f28;
} else if (speed.y > 0.0f) {
speed.y = 0.0f;
}
if (checkWolf()) {
if (checkNoResetFlg2(FLG2_UNK_8)) {
daAlink_WANM var_r29;
if (cM_rnd() < 0.5f) {
var_r29 = WANM_FLING_LEFT;
onNoResetFlg2(FLG2_WOLF_ENEMY_LEFT_THROW);
} else {
var_r29 = WANM_FLING_RIGHT;
offNoResetFlg2(FLG2_WOLF_ENEMY_LEFT_THROW);
}
setWolfEnemyThrowUpperAnime(var_r29, 0.0f);
}
return procWolfSwimWaitInit(1);
}
if (mProcID == PROC_DIVE_JUMP) {
seStartOnlyReverb(Z2SE_AL_JUMP_DIVE_WATER);
if (checkZoraWearAbility()) {
field_0x3000 = 30;
}
return procSwimMoveInit();
}
return procSwimWaitInit(1);
}
if (checkBootsOrArmorHeavy() || checkPossibleWaterInMode()) {
onNoResetFlg0(FLG0_UNDERWATER);
return 0;
}
if (checkWolf()) {
return procWolfSwimUpInit();
}
return procSwimUpInit();
}
} else if (!checkNoResetFlg0(FLG0_SWIM_UP) && !checkBootsOrArmorHeavy() && !checkPossibleWaterInMode() && !checkModeFlg(0x40000)) {
if (checkNoResetFlg0(FLG0_UNK_80) && mWaterY - current.pos.y > var_f31) {
if (checkWolf()) {
return procWolfSwimWaitInit(0);
}
return procSwimWaitInit(0);
}
swimOutAfter(0);
if (checkWolf()) {
return procWolfWaitInit();
}
return procWaitInit();
} else if (checkModeFlg(0x40000) && mProcID != PROC_CAUGHT && mProcID != PROC_DEAD) {
return checkSwimOutAction();
}
return 0;
}
/* 80103058-801032C8 0FD998 0270+00 7/7 0/0 0/0 .text checkSwimUpAction__9daAlink_cFv */
int daAlink_c::checkSwimUpAction() {
// NONMATCHING
if (checkNoResetFlg0(FLG0_SWIM_UP)) {
if (!checkHookshotAnime()) {
return checkSubjectAction();
}
return 0;
}
if (!getZoraSwim()) {
if (checkWolf()) {
field_0x3480 = daAlinkHIO_wlSwim_c0::m.field_0x48;
} else {
cLib_addCalc(&field_0x3480, daAlinkHIO_swim_c0::m.mInitHeight, 0.5f, 15.0f, 1.0f);
}
} else {
field_0x3480 = 65.0f;
}
f32 var_f31;
if (checkWolf()) {
var_f31 = daAlinkHIO_wlSwim_c0::m.field_0x4C;
} else {
var_f31 = daAlinkHIO_swim_c0::m.mResurfaceHeight;
}
if (!checkBootsOrArmorHeavy() && !checkNoResetFlg0(FLG0_SWIM_UP)) {
if (speed.y >= 0.0f && mWaterY - current.pos.y < var_f31) {
if (checkWolf()) {
return procWolfSwimUpInit();
} else {
return procSwimUpInit();
}
}
}
if (current.pos.y - field_0x3480 < mLinkAcch.GetGroundH()) {
if (!checkBootsOrArmorHeavy()) {
current.pos.y = field_0x3480 + mLinkAcch.GetGroundH();
field_0x3798.y = current.pos.y;
mProcVar3.field_0x300e = getGroundAngle(&mLinkAcch.m_gnd, shape_angle.y);
mProcVar4.field_0x3010 = 2;
if (speed.y < -1.0f) {
speed.y = -1.0f;
}
} else {
current.pos.y = mLinkAcch.GetGroundH();
mLinkAcch.SetGroundHit();
onNoResetFlg0(FLG0_UNDERWATER);
procLandInit(0.0f);
field_0x2f99 = 0x90;
return 1;
}
} else if (mLinkAcch.ChkRoofHit()) {
mProcVar3.field_0x300e = getRoofAngle(&mLinkAcch.m_roof, shape_angle.y);
mProcVar4.field_0x3010 = 2;
if (speed.y > 1.0f) {
speed.y = 1.0f;
}
}
return 0;
}
@@ -282,7 +602,7 @@ void daAlink_c::swimOutAfter(int param_0) {
}
/* 80103398-801033CC 0FDCD8 0034+00 1/1 0/0 0/0 .text checkSwimFall__9daAlink_cFv */
bool daAlink_c::checkSwimFall() {
BOOL daAlink_c::checkSwimFall() {
if (!checkNoResetFlg0(FLG0_UNK_80) || current.pos.y > mWaterY + l_autoUpHeight) {
return true;
}
@@ -291,13 +611,271 @@ bool daAlink_c::checkSwimFall() {
}
/* 801033CC-80103698 0FDD0C 02CC+00 1/1 0/0 0/0 .text checkSwimOutAction__9daAlink_cFv */
void daAlink_c::checkSwimOutAction() {
// NONMATCHING
int daAlink_c::checkSwimOutAction() {
f32 var_f31;
if (checkWolf()) {
var_f31 = daAlinkHIO_wlSwim_c0::m.field_0x48;
} else {
var_f31 = daAlinkHIO_swim_c0::m.mInitHeight;
}
if (checkSwimFall()) {
swimOutAfter(1);
cXyz sp8(field_0x3594.x + (mNormalSpeed * cM_ssin(current.angle.y)), 0.0f, field_0x3594.z + (mNormalSpeed * cM_scos(current.angle.y)));
mNormalSpeed = sp8.absXZ();
current.angle.y = sp8.atan2sX_Z();
if (checkWolf()) {
if (mNormalSpeed > daAlinkHIO_wlAutoJump_c0::m.field_0x74) {
mNormalSpeed = daAlinkHIO_wlAutoJump_c0::m.field_0x74;
}
return procWolfFallInit(2, daAlinkHIO_wlAutoJump_c0::m.field_0x54);
} else {
if (mNormalSpeed > daAlinkHIO_autoJump_c0::m.mMaxJumpSpeed) {
mNormalSpeed = daAlinkHIO_autoJump_c0::m.mMaxJumpSpeed;
}
return procFallInit(2, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
}
}
if (!checkNoResetFlg0(FLG0_UNK_80) || mWaterY - mLinkAcch.GetGroundH() <= var_f31 - 5.0f) {
current.pos.y = mWaterY;
swimOutAfter(1);
return commonCheckNextAction(0);
}
if (checkMagicArmorHeavy() && checkNoResetFlg0(FLG0_SWIM_UP)) {
offNoResetFlg0(FLG0_SWIM_UP);
mZ2Link.setInWater(true);
}
return 0;
}
/* 80103698-80103EE0 0FDFD8 0848+00 4/4 0/0 0/0 .text setSwimMoveAnime__9daAlink_cFv */
void daAlink_c::setSwimMoveAnime() {
// NONMATCHING
daPy_frameCtrl_c* temp_r28 = &mUnderFrameCtrl[0];
daPy_frameCtrl_c* temp_r27 = &mUpperFrameCtrl[2];
f32 var_f31;
f32 temp_f25 = temp_r28->getEnd();
f32 var_f26 = temp_r28->getFrame() * temp_f25;
if (field_0x3000 != 0 && !checkHookshotAnime()) {
field_0x2f98 = 4;
} else if (checkHookshotAnime() || (checkAttentionLock() && !getZoraSwim())) {
field_0x3000 = 0;
if (checkInputOnR()) {
field_0x2f98 = getDirectionFromShapeAngle();
} else if (field_0x2f98 >= 4 || mNormalSpeed < 3.0f) {
field_0x2f98 = 0;
}
} else if (checkInputOnR() || field_0x2f98 >= 4 || mNormalSpeed < 3.0f) {
field_0x2f98 = 0;
}
daAlink_ANM var_r29;
BOOL var_r26 = 1;
BOOL var_r25 = 0;
if (field_0x2f98 == 4) {
f32 temp_f29 = daAlinkHIO_swim_c0::m.mMaxUnderwaterSpeed + daAlinkHIO_swim_c0::m.mUnderwaterButtonSpeed;
field_0x3478 = daAlinkHIO_swim_c0::m.mUnderwaterMinAnmSpeed;
field_0x347c = daAlinkHIO_swim_c0::m.mUnderwaterMaxAnmSpeed;
if (field_0x594 < daAlinkHIO_swim_c0::m.mMaxUnderwaterSpeed) {
field_0x594 = daAlinkHIO_swim_c0::m.mMaxUnderwaterSpeed;
} else if (doTrigger()) {
field_0x594 += 0.75f;
if (field_0x594 > temp_f29) {
field_0x594 = temp_f29;
}
if (!checkSwimMoveHandAnime() && !checkZoraSwimDamageAnime()) {
f32 var_f28;
if (field_0x2060->getOldFrameMorfCounter() > 5.0f) {
var_f28 = -1.0f;
} else {
var_f28 = 3.0f;
}
setUpperAnime(0x23F, UPPER_2, 1.0f, 0.0f, 0x28, var_f28);
mProcVar5.field_0x3012 = 0;
var_r25 = 1;
} else if (temp_r27->getFrame() > 25.0f) {
mProcVar5.field_0x3012 = 1;
}
} else if (!checkSwimMoveHandAnime()) {
cLib_chaseF(&field_0x594, daAlinkHIO_swim_c0::m.mMaxUnderwaterSpeed, 0.4f);
}
var_f31 = 1.0f / daAlinkHIO_swim_c0::m.mMaxUnderwaterSpeed;
if (checkZoraWearAbility() && (field_0x3198 == ANM_SWIM_DIVE || (field_0x3198 == ANM_SWIM_ZORA_START && !checkAnmEnd(temp_r28)))) {
var_r29 = ANM_SWIM_ZORA_START;
} else {
var_r29 = ANM_SWIM_C;
if (field_0x3198 == ANM_SWIM_ZORA_START) {
var_r26 = 0;
if (mProcVar4.field_0x3010 == 1) {
mProcVar4.field_0x3010 = 0;
}
}
}
} else if (field_0x2f98 == 0) {
if (checkSwimDashMode() && checkUnderMove0BckNoArc(ANM_SWIM_DASH) && !checkAnmEnd(temp_r28)) {
var_r29 = ANM_SWIM_DASH;
} else if (mNormalSpeed < 3.0f || checkHookshotAnime()) {
var_r29 = ANM_SWIM_WAIT;
field_0x30d0 = 0;
} else {
var_r29 = ANM_SWIM_A;
}
if (checkSwimDashMode()) {
field_0x3478 = daAlinkHIO_swim_c0::m.mDMinAnmSpeed;
field_0x347c = daAlinkHIO_swim_c0::m.mDMaxAnmSpeed;
field_0x594 = daAlinkHIO_swim_c0::m.mDMaxSpeed;
} else {
field_0x3478 = daAlinkHIO_swim_c0::m.mForwardMinAnmSpeed;
field_0x347c = daAlinkHIO_swim_c0::m.mForwardMaxAnmSpeed;
field_0x594 = getSwimFrontMaxSpeed();
}
var_f31 = 1.0f / field_0x594;
} else if (field_0x2f98 == 1) {
var_r29 = ANM_ATN_SWIM_BACK;
field_0x3478 = daAlinkHIO_swim_c0::m.mBackwardMinAnmSpeed;
field_0x347c = daAlinkHIO_swim_c0::m.mBackwardMaxAnmSpeed;
if (checkZoraWearAbility()) {
field_0x594 = 10.0f;
} else {
field_0x594 = daAlinkHIO_swim_c0::m.mMaxBackwardSpeed;
}
var_f31 = 1.0f / field_0x594;
} else {
if (field_0x2f98 == 2) {
var_r29 = ANM_ATN_SWIM_LEFT;
} else {
var_r29 = ANM_ATN_SWIM_RIGHT;
}
field_0x3478 = daAlinkHIO_swim_c0::m.mStrafeMinAnmSpeed;
field_0x347c = daAlinkHIO_swim_c0::m.mStrafeMaxAnmSpeed;
if (checkZoraWearAbility()) {
field_0x594 = 12.0f;
} else {
field_0x594 = daAlinkHIO_swim_c0::m.mMaxStrafeSpeed;
}
var_f31 = 1.0f / field_0x594;
}
field_0x347c -= field_0x3478;
if (field_0x2f98 != 0) {
field_0x30d0 = 0;
}
if (checkBootsOrArmorHeavy()) {
var_r29 = ANM_SWIM_WAIT;
field_0x594 = daAlinkHIO_swim_c0::m.mUnderwaterMaxSinkSpeed;
if (mEquipItem != NO_ITEM && !checkHookshotAnime()) {
setDoStatus(4);
}
}
if (var_r29 != field_0x3198) {
if (field_0x3198 == ANM_SWIM_ZORA_START) {
speed.y = 0.0f;
}
field_0x3198 = var_r29;
if (checkUnderMove0BckNoArc(ANM_SWIM_DASH)) {
field_0x30d2 = daAlinkHIO_swim_c0::m.field_0x5e;
}
if (var_r29 == ANM_SWIM_WAIT) {
setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, daAlinkHIO_swim_c0::m.mWaitAnmSpeed, daAlinkHIO_swim_c0::m.mWaitInterpolation);
} else {
f32 var_f27;
if (var_r26 != 0) {
var_f27 = daAlinkHIO_swim_c0::m.mMoveInterpolation;
} else {
var_f27 = 0.0f;
}
setSingleAnimeBaseMorf(var_r29, var_f27);
}
}
if (var_r29 != ANM_SWIM_WAIT && var_r29 != ANM_SWIM_DASH) {
f32 temp_f30 = var_f31 * fabsf(mNormalSpeed);
if (temp_f30 > 1.0f && field_0x2f98 == 4) {
temp_r28->setRate(daAlinkHIO_swim_c0::m.mUnderwaterMaxAnmSpeed + ((temp_f30 - 1.0f) * daAlinkHIO_swim_c0::m.mUnderwaterButtonAnmSpeed));
} else {
temp_r28->setRate(field_0x3478 + (field_0x347c * temp_f30));
}
}
if (checkSwimMoveHandAnime()) {
if (temp_r27->checkPass(17.0f)) {
seStartOnlyReverb(Z2SE_AL_WATER_STROKE_L);
}
if (var_r29 == ANM_SWIM_C) {
temp_r27->setRate(temp_r28->getRate());
if (var_r25 == 0 && temp_r27->checkPass(0.0f)) {
if (mProcVar5.field_0x3012 != 0) {
mProcVar5.field_0x3012 = 0;
} else {
resetUpperAnime(UPPER_2, 3.0f);
}
}
} else {
resetUpperAnime(UPPER_2, -1.0f);
}
}
maxFallSpeed = getSwimMaxFallSpeed();
if (var_r29 == ANM_SWIM_C || var_r29 == ANM_SWIM_ZORA_START) {
if (!checkZoraWearAbility()) {
if (field_0x3080 != -0x3800) {
setOldRootQuaternion(0x4000, 0, 0);
}
field_0x3080 = -0x3800;
} else if (mProcVar4.field_0x3010 == 1) {
cLib_addCalcAngleS(&field_0x3080, mProcVar3.field_0x300e, 5, 0x1000, 0x100);
} else if (mProcVar4.field_0x3010 == 2) {
cLib_addCalcAngleS(&field_0x3080, mProcVar3.field_0x300e, 5, 0x1000, 0x100);
mProcVar4.field_0x3010 = 0;
} else {
s16 var_r24;
if (checkInputOnR() && !checkEventRun()) {
var_r24 = 13653.0f * cM_scos(mStickAngle);
} else {
var_r24 = 0;
}
cLib_addCalcAngleS(&field_0x3080, var_r24, 5, 0x200, 0x80);
}
} else if (field_0x3080 != 0) {
setOldRootQuaternion(field_0x3080, 0, 0);
field_0x3080 = 0;
mProcVar4.field_0x3010 = 0;
if (!checkZoraWearAbility()) {
mNormalSpeed = 0.0f;
}
}
}
/* 80103EE0-80103F08 0FE820 0028+00 5/5 0/0 0/0 .text checkSwimButtonAccept__9daAlink_cFv
@@ -580,7 +1158,7 @@ int daAlink_c::procSwimMove() {
onNoResetFlg1(FLG1_DASH_MODE);
field_0x30d0 = daAlinkHIO_swim_c0::m.field_0x5c;
setSingleAnimeParam(ANM_SWIM_DASH, &daAlinkHIO_swim_c0::m.mDashAnm);
field_0x3198 = 0xC6;
field_0x3198 = ANM_SWIM_DASH;
} else if (!checkZoraSwimMove() && (!checkUpSwimButtonAccept() || !doButton()) &&
mNormalSpeed < daAlinkHIO_swim_c0::m.mForwardMinSpeed)
{
@@ -836,7 +1414,7 @@ int daAlink_c::procSwimHookshotMove() {
/* 8010519C-80105728 0FFADC 058C+00 1/1 0/0 0/0 .text
* procSwimDamageInit__9daAlink_cFP12dCcD_GObjInf */
// NONMATCHING - instruction block order issue
// NONMATCHING - cLib_minMaxLimit regalloc issue
int daAlink_c::procSwimDamageInit(dCcD_GObjInf* param_0) {
seStartOnlyReverb(Z2SE_AL_DAMAGE_NORMAL);
dComIfGp_getVibration().StartShock(2, 31, cXyz(0.0f, 1.0f, 0.0f));
@@ -909,7 +1487,7 @@ int daAlink_c::procSwimDamageInit(dCcD_GObjInf* param_0) {
}
mNormalSpeed = 0.0f;
field_0x347c = 3.141593f / (mUnderFrameCtrl->getEnd() - mUnderFrameCtrl->getStart());
field_0x347c = M_PI / (mUnderFrameCtrl->getEnd() - mUnderFrameCtrl->getStart());
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
current.angle.y = shape_angle.y;
+57 -6
View File
@@ -6,6 +6,7 @@
#include "d/actor/d_a_alink.h"
#include "d/d_com_inf_game.h"
#include "d/d_procname.h"
#include "d/actor/d_a_horse.h"
#include "d/actor/d_a_npc_tk.h"
#include "d/actor/d_a_obj_yobikusa.h"
@@ -229,9 +230,9 @@ int daAlink_c::procGrassWhistleWait() {
mProcVar5.field_0x3012 = 1;
return 1;
}
setGrassCancelStatus(0);
}
setGrassCancelStatus(0);
} else if (checkAnmEnd(&mUpperFrameCtrl[2])) {
setGrassCancelStatus(0x12);
setDoStatus(0x2C);
@@ -296,8 +297,29 @@ int daAlink_c::procCoHorseCallWaitInit(int param_0) {
/* 801120C8-801121B4 10CA08 00EC+00 1/0 0/0 0/0 .text procCoHorseCallWait__9daAlink_cFv
*/
int daAlink_c::procCoHorseCallWait() {
// NONMATCHING
return 0;
setGrassCancelStatus(0);
mProcVar4.field_0x3010--;
if (mProcVar4.field_0x3010 > 2 && dComIfGp_getHorseActor() != NULL) {
cLib_addCalcAngleS(&shape_angle.y, fopAcM_searchActorAngleY(this, dComIfGp_getHorseActor()), 2, 0x2000, 0x800);
current.angle.y = shape_angle.y;
}
if (mProcVar4.field_0x3010 == 60) {
dCam_getBody()->EventFlag(2);
} else if (mProcVar4.field_0x3010 == 15) {
dCam_getBody()->EventFlag(3);
} else if (mProcVar4.field_0x3010 == 0) {
resetSpecialEvent();
if (checkWolf()) {
procWolfWaitInit();
} else {
procWaitInit();
}
}
return 1;
}
/* 801121B4-80112220 10CAF4 006C+00 1/0 0/0 0/0 .text procHawkCatchInit__9daAlink_cFv */
@@ -343,6 +365,35 @@ int daAlink_c::procHawkSubjectInit() {
/* 80112304-8011243C 10CC44 0138+00 1/0 0/0 0/0 .text procHawkSubject__9daAlink_cFv */
int daAlink_c::procHawkSubject() {
// NONMATCHING
return 0;
if (mProcVar2.field_0x300c != 0) {
if (mProcVar2.field_0x300c != 0) {
mProcVar2.field_0x300c--;
if (mProcVar2.field_0x300c == 0) {
checkWaitAction();
}
}
} else if (checkEventRun()) {
dComIfGp_evmng_cutEnd(field_0x3184);
} else {
fopAc_ac_c* temp_r29 = field_0x280c.getActor();
setGrassCancelStatus(0x12);
setDoStatus(0x31);
if (doTrigger()) {
mProcVar2.field_0x300c = 2;
if (temp_r29 != NULL) {
((daNPC_TK_c*)temp_r29)->setAttack();
field_0x280c.clearData();
}
} else if (grassCancelTrigger()) {
return checkWaitAction();
} else if (setBodyAngleToCamera()) {
cXyz sp8;
checkSightLine(10000.0f, &sp8);
mSight.setPos(&sp8);
mSight.onDrawFlg();
}
}
return 1;
}
File diff suppressed because it is too large Load Diff
+2270 -1850
View File
File diff suppressed because it is too large Load Diff
+25 -27
View File
@@ -4,13 +4,9 @@
//
#include "d/actor/d_a_obj_digsnow.h"
#include "d/actor/d_a_player.h"
#include "d/d_com_inf_game.h"
//
// Declarations:
//
#include <cmath.h>
/* 80BDCC58-80BDCC94 000078 003C+00 1/1 0/0 0/0 .text initBaseMtx__14daObjDigSnow_cFv */
void daObjDigSnow_c::initBaseMtx() {
@@ -62,8 +58,9 @@ static char* l_arcName = "Y_horiyuk";
/* 80BDCD64-80BDCDD4 000184 0070+00 1/0 0/0 0/0 .text CreateHeap__14daObjDigSnow_cFv */
int daObjDigSnow_c::CreateHeap() {
J3DModelData* model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 4);
mpModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000084);
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 4);
JUT_ASSERT(0x9F, modelData != 0);
mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
if (mpModel == NULL) {
return FALSE;
@@ -74,28 +71,25 @@ int daObjDigSnow_c::CreateHeap() {
/* 80BDCDD4-80BDCE84 0001F4 00B0+00 1/1 0/0 0/0 .text create1st__14daObjDigSnow_cFv */
int daObjDigSnow_c::create1st() {
cPhs__Step step;
if (dComIfGs_isSwitch(getSwNo(), fopAcM_GetHomeRoomNo(this))) {
return cPhs_ERROR_e;
} else {
step = (cPhs__Step)dComIfG_resLoad(&mPhaseReq, l_arcName);
if (step == cPhs_COMPLEATE_e) {
step =
(cPhs__Step)MoveBGCreate(l_arcName, 7, dBgS_MoveBGProc_TypicalRotY, 0x1000, NULL);
if (step == cPhs_ERROR_e) {
return step;
}
}
cPhs__Step phase_state = (cPhs__Step)dComIfG_resLoad(&mPhaseReq, l_arcName);
if (phase_state == cPhs_COMPLEATE_e) {
phase_state = (cPhs__Step)MoveBGCreate(l_arcName, 7, dBgS_MoveBGProc_TypicalRotY, 0x1000, NULL);
if (phase_state == cPhs_ERROR_e) {
return phase_state;
}
}
return step;
return phase_state;
}
/* 80BDCE84-80BDCF00 0002A4 007C+00 1/0 0/0 0/0 .text Execute__14daObjDigSnow_cFPPA3_A4_f
*/
int daObjDigSnow_c::Execute(Mtx** i_mtx) {
if (dComIfGp_getLinkPlayer()->checkWolf()) {
if (daPy_py_c::i_checkNowWolf()) {
attention_info.flags = 0x80;
} else {
attention_info.flags = 0;
@@ -145,14 +139,20 @@ void daObjDigSnow_c::mode_init_dig() {
f32 gnd_height = dComIfG_Bgsp().GroundCross(&obj_gnd_chk);
if (gnd_height != -1000000000.0f) {
mGroundHeight = gnd_height;
} else {
#ifdef DEBUG
// "No BG under digsnow!"
OS_REPORT_ERROR("掘る雪の下にBGがありません!");
fopAcM_delete(this);
#endif
}
startDig();
mAction = 1;
}
/* 80BDD124-80BDD1BC 000544 0098+00 1/0 0/0 0/0 .text mode_dig__14daObjDigSnow_cFv */
void daObjDigSnow_c::mode_dig() {
f32 step = fabsf(((current.pos.y - mGroundHeight) + 10.0f) / 35.0f);
f32 step = std::fabs(((current.pos.y - mGroundHeight) + 10.0f) / 35.0f);
if (step < 1.0f) {
step = 1.0f;
}
@@ -167,13 +167,12 @@ void daObjDigSnow_c::mode_dig() {
void daObjDigSnow_c::mode_init_end() {
dComIfGs_onSwitch(getSwNo(), fopAcM_GetHomeRoomNo(this));
fopAcM_delete(this);
endDig();
mAction = 2;
}
/* 80BDD210-80BDD214 000630 0004+00 1/0 0/0 0/0 .text mode_end__14daObjDigSnow_cFv */
void daObjDigSnow_c::mode_end() {
/* empty function */
}
void daObjDigSnow_c::mode_end() {}
/* 80BDD214-80BDD2B8 000634 00A4+00 1/0 0/0 0/0 .text Draw__14daObjDigSnow_cFv */
int daObjDigSnow_c::Draw() {
@@ -197,7 +196,6 @@ int daObjDigSnow_c::Delete() {
*/
static int daObjDigSnow_create1st(daObjDigSnow_c* i_this) {
fopAcM_SetupActor(i_this, daObjDigSnow_c);
return i_this->create1st();
}
@@ -241,4 +239,4 @@ extern actor_process_profile_definition g_profile_Obj_DigSnow = {
0x44100, // mStatus
fopAc_ACTOR_e, // mActorType
fopAc_CULLBOX_CUSTOM_e, // cullType
};
};
+164 -403
View File
@@ -1,139 +1,49 @@
/**
* @file d_a_obj_lv4digsand.cpp
*
*/
* Arbiter's Grounds Dig Sand
*/
#include "d/actor/d_a_obj_lv4digsand.h"
#include "dol2asm.h"
//
// Forward References:
//
extern "C" void initBaseMtx__16daObjL4DigSand_cFv();
extern "C" void setBaseMtx__16daObjL4DigSand_cFv();
extern "C" void Create__16daObjL4DigSand_cFv();
extern "C" void CreateHeap__16daObjL4DigSand_cFv();
extern "C" void create1st__16daObjL4DigSand_cFv();
extern "C" void Execute__16daObjL4DigSand_cFPPA3_A4_f();
extern "C" void action__16daObjL4DigSand_cFv();
extern "C" void mode_init_wait__16daObjL4DigSand_cFv();
extern "C" void mode_wait__16daObjL4DigSand_cFv();
extern "C" void mode_init_dig__16daObjL4DigSand_cFv();
extern "C" void __dt__14dBgS_ObjGndChkFv();
extern "C" void mode_dig__16daObjL4DigSand_cFv();
extern "C" void mode_init_end__16daObjL4DigSand_cFv();
extern "C" void mode_end__16daObjL4DigSand_cFv();
extern "C" void Draw__16daObjL4DigSand_cFv();
extern "C" void Delete__16daObjL4DigSand_cFv();
extern "C" static void daObjL4DigSand_create1st__FP16daObjL4DigSand_c();
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" static void daObjL4DigSand_MoveBGDelete__FP16daObjL4DigSand_c();
extern "C" static void daObjL4DigSand_MoveBGExecute__FP16daObjL4DigSand_c();
extern "C" static void daObjL4DigSand_MoveBGDraw__FP16daObjL4DigSand_c();
extern "C" void __dt__10cCcD_GSttsFv();
extern "C" void func_80C67588(void* _this, u8*);
extern "C" static void func_80C675A4();
extern "C" static void func_80C675AC();
extern "C" static void func_80C675B4();
extern "C" static void func_80C675BC();
extern "C" static void func_80C675C4();
extern "C" extern char const* const d_a_obj_lv4digsand__stringBase0;
//
// External References:
//
extern "C" void mDoMtx_YrotM__FPA4_fs();
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
extern "C" void fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData();
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
extern "C" void onSwitch__10dSv_info_cFii();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void GroundCross__4cBgSFP11cBgS_GndChk();
extern "C" void __ct__12dBgS_AcchCirFv();
extern "C" void __dt__9dBgS_AcchFv();
extern "C" void __ct__9dBgS_AcchFv();
extern "C" void __ct__11dBgS_GndChkFv();
extern "C" void __dt__11dBgS_GndChkFv();
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 __ct__12dCcD_GObjInfFv();
extern "C" void checkItemGet__FUci();
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
extern "C" void SetPos__11cBgS_GndChkFPC4cXyz();
extern "C" void __dt__13cBgS_PolyInfoFv();
extern "C" void __dt__8cM3dGCirFv();
extern "C" void cLib_chaseF__FPfff();
extern "C" void __dl__FPv();
extern "C" void __ptmf_scall();
extern "C" void _savegpr_27();
extern "C" void _savegpr_29();
extern "C" void _restgpr_27();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__8dCcD_Cyl[36];
extern "C" extern void* __vt__9dCcD_Stts[11];
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 g_dComIfG_gameInfo[122384];
extern "C" extern u8 data_80C67760[4];
//
// Declarations:
//
#include "d/d_com_inf_game.h"
#include "d/actor/d_a_player.h"
#include "d/d_item.h"
#include <cmath.h>
/* 80C66B18-80C66B54 000078 003C+00 1/1 0/0 0/0 .text initBaseMtx__16daObjL4DigSand_cFv
*/
void daObjL4DigSand_c::initBaseMtx() {
// NONMATCHING
mpModel->setBaseScale(scale);
setBaseMtx();
}
/* 80C66B54-80C66BC8 0000B4 0074+00 2/2 0/0 0/0 .text setBaseMtx__16daObjL4DigSand_cFv */
void daObjL4DigSand_c::setBaseMtx() {
// NONMATCHING
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
mDoMtx_stack_c::YrotM(shape_angle.y);
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
MTXCopy(mDoMtx_stack_c::get(), mBgMtx);
}
/* 80C66BC8-80C66C24 000128 005C+00 1/0 0/0 0/0 .text Create__16daObjL4DigSand_cFv */
void daObjL4DigSand_c::Create() {
// NONMATCHING
int daObjL4DigSand_c::Create() {
initBaseMtx();
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
fopAcM_setCullSizeBox2(this, mpModel->getModelData());
attention_info.distances[fopAc_attn_ETC_e] = 31;
mode_init_wait();
return 1;
}
/* ############################################################################################## */
/* 80C675E4-80C675E4 000010 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80C675E4 = "P_DSand";
#pragma pop
/* 80C675EC-80C675F8 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 80C675F8-80C6760C 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 */] = {
static u32 lit_1787[1 + 4 /* padding */] = {
0x02000201,
/* padding */
0x40080000,
@@ -144,91 +54,173 @@ SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
#pragma pop
/* 80C6760C-80C67610 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_lv4digsand__stringBase0;
static char* l_arcName = "P_DSand";
/* 80C66C24-80C66C94 000184 0070+00 1/0 0/0 0/0 .text CreateHeap__16daObjL4DigSand_cFv */
void daObjL4DigSand_c::CreateHeap() {
// NONMATCHING
int daObjL4DigSand_c::CreateHeap() {
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 4);
JUT_ASSERT(0x9B, modelData != 0);
mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
if (mpModel == NULL) {
return 0;
}
return 1;
}
/* 80C66C94-80C66D40 0001F4 00AC+00 1/1 0/0 0/0 .text create1st__16daObjL4DigSand_cFv */
void daObjL4DigSand_c::create1st() {
// NONMATCHING
int daObjL4DigSand_c::create1st() {
if (fopAcM_isSwitch(this, getSwNo())) {
return cPhs_ERROR_e;
}
int phase_state = dComIfG_resLoad(&mPhase, l_arcName);
if (phase_state == cPhs_COMPLEATE_e) {
phase_state = MoveBGCreate(l_arcName, 7, NULL, 0x1100, NULL);
if (phase_state == cPhs_ERROR_e) {
return phase_state;
}
}
return phase_state;
}
/* 80C66D40-80C66DD0 0002A0 0090+00 1/0 0/0 0/0 .text Execute__16daObjL4DigSand_cFPPA3_A4_f */
void daObjL4DigSand_c::Execute(f32 (**param_0)[3][4]) {
// NONMATCHING
int daObjL4DigSand_c::Execute(f32 (**param_0)[3][4]) {
if (daPy_py_c::i_checkNowWolf() && checkItemGet(SMELL_POH, 1)) {
attention_info.flags = 0x80;
} else {
attention_info.flags = 0;
}
action();
*param_0 = &mBgMtx;
setBaseMtx();
return 1;
}
/* ############################################################################################## */
/* 80C67610-80C6761C -00001 000C+00 0/1 0/0 0/0 .data @3715 */
#pragma push
#pragma force_active on
SECTION_DATA static void* lit_3715[3] = {
(void*)NULL,
(void*)0xFFFFFFFF,
(void*)mode_wait__16daObjL4DigSand_cFv,
};
#pragma pop
/* 80C6761C-80C67628 -00001 000C+00 0/1 0/0 0/0 .data @3716 */
#pragma push
#pragma force_active on
SECTION_DATA static void* lit_3716[3] = {
(void*)NULL,
(void*)0xFFFFFFFF,
(void*)mode_dig__16daObjL4DigSand_cFv,
};
#pragma pop
/* 80C67628-80C67634 -00001 000C+00 0/1 0/0 0/0 .data @3717 */
#pragma push
#pragma force_active on
SECTION_DATA static void* lit_3717[3] = {
(void*)NULL,
(void*)0xFFFFFFFF,
(void*)mode_end__16daObjL4DigSand_cFv,
};
#pragma pop
/* 80C67634-80C67658 000048 0024+00 0/1 0/0 0/0 .data l_func$3714 */
#pragma push
#pragma force_active on
SECTION_DATA static u8 l_func[36] = {
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
/* 80C66DD0-80C66E74 000330 00A4+00 1/1 0/0 0/0 .text action__16daObjL4DigSand_cFv */
void daObjL4DigSand_c::action() {
// NONMATCHING
typedef void (daObjL4DigSand_c::*mode_func)();
static mode_func l_func[] = {
&daObjL4DigSand_c::mode_wait,
&daObjL4DigSand_c::mode_dig,
&daObjL4DigSand_c::mode_end,
};
(this->*l_func[mMode])();
}
/* 80C66E74-80C66E80 0003D4 000C+00 1/1 0/0 0/0 .text mode_init_wait__16daObjL4DigSand_cFv */
void daObjL4DigSand_c::mode_init_wait() {
// NONMATCHING
mMode = 0;
}
/* 80C66E80-80C66EAC 0003E0 002C+00 1/0 0/0 0/0 .text mode_wait__16daObjL4DigSand_cFv */
void daObjL4DigSand_c::mode_wait() {
// NONMATCHING
if (field_0x941 == 1) {
mode_init_dig();
}
}
/* ############################################################################################## */
/* 80C675D4-80C675D8 000000 0004+00 2/2 0/0 0/0 .rodata @3746 */
SECTION_RODATA static f32 const lit_3746 = -1000000000.0f;
COMPILER_STRIP_GATE(0x80C675D4, &lit_3746);
/* 80C66EAC-80C66F84 00040C 00D8+00 1/1 0/0 0/0 .text mode_init_dig__16daObjL4DigSand_cFv
*/
void daObjL4DigSand_c::mode_init_dig() {
dBgS_ObjGndChk gndchk;
gndchk.SetActorPid(mBase.mBsPcId);
gndchk.SetPos(&current.pos);
f32 gnd_y = dComIfG_Bgsp().GroundCross(&gndchk);
if (gnd_y != -1000000000.0f) {
mGroundY = gnd_y;
} else {
#ifdef DEBUG
// "No BG below dig-sand!"
OS_REPORT_ERROR("掘れる砂の下にBGがありません!");
fopAcM_delete(this);
#endif
}
mTimer = 20;
mMode = 1;
}
/* 80C66FFC-80C670AC 00055C 00B0+00 1/0 0/0 0/0 .text mode_dig__16daObjL4DigSand_cFv */
void daObjL4DigSand_c::mode_dig() {
if (cLib_calcTimer<u8>(&mTimer) == 0) {
f32 var_f31 = std::fabs(((current.pos.y - mGroundY) + 10.0f) / 15.0f);
if (var_f31 < 1.0f) {
var_f31 = 1.0f;
}
if (cLib_chaseF(&current.pos.y, mGroundY - 10.0f, var_f31) && field_0x941 == 2) {
mode_init_end();
}
}
}
/* 80C670AC-80C67100 00060C 0054+00 1/1 0/0 0/0 .text mode_init_end__16daObjL4DigSand_cFv
*/
void daObjL4DigSand_c::mode_init_end() {
fopAcM_onSwitch(this, getSwNo());
fopAcM_delete(this);
mMode = 2;
}
/* 80C67100-80C67104 000660 0004+00 1/0 0/0 0/0 .text mode_end__16daObjL4DigSand_cFv */
void daObjL4DigSand_c::mode_end() {}
/* 80C67104-80C671A8 000664 00A4+00 1/0 0/0 0/0 .text Draw__16daObjL4DigSand_cFv */
int daObjL4DigSand_c::Draw() {
g_env_light.settingTevStruct(0x10, &current.pos, &tevStr);
g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
dComIfGd_setListBG();
mDoExt_modelUpdateDL(mpModel);
dComIfGd_setList();
return 1;
}
/* 80C671A8-80C671DC 000708 0034+00 1/0 0/0 0/0 .text Delete__16daObjL4DigSand_cFv */
int daObjL4DigSand_c::Delete() {
dComIfG_resDelete(&mPhase, l_arcName);
return 1;
}
/* 80C671DC-80C67308 00073C 012C+00 1/0 0/0 0/0 .text
* daObjL4DigSand_create1st__FP16daObjL4DigSand_c */
static int daObjL4DigSand_create1st(daObjL4DigSand_c* i_this) {
fopAcM_SetupActor(i_this, daObjL4DigSand_c);
return i_this->create1st();
}
/* 80C674D4-80C674F4 000A34 0020+00 1/0 0/0 0/0 .text
* daObjL4DigSand_MoveBGDelete__FP16daObjL4DigSand_c */
static int daObjL4DigSand_MoveBGDelete(daObjL4DigSand_c* i_this) {
return i_this->MoveBGDelete();
}
/* 80C674F4-80C67514 000A54 0020+00 1/0 0/0 0/0 .text
* daObjL4DigSand_MoveBGExecute__FP16daObjL4DigSand_c */
static int daObjL4DigSand_MoveBGExecute(daObjL4DigSand_c* i_this) {
return i_this->MoveBGExecute();
}
/* 80C67514-80C67540 000A74 002C+00 1/0 0/0 0/0 .text
* daObjL4DigSand_MoveBGDraw__FP16daObjL4DigSand_c */
static int daObjL4DigSand_MoveBGDraw(daObjL4DigSand_c* i_this) {
return i_this->MoveBGDraw();
}
/* 80C67658-80C67678 -00001 0020+00 1/0 0/0 0/0 .data daObjL4DigSand_METHODS */
static actor_method_class daObjL4DigSand_METHODS = {
(process_method_func)daObjL4DigSand_create1st__FP16daObjL4DigSand_c,
(process_method_func)daObjL4DigSand_MoveBGDelete__FP16daObjL4DigSand_c,
(process_method_func)daObjL4DigSand_MoveBGExecute__FP16daObjL4DigSand_c,
0,
(process_method_func)daObjL4DigSand_MoveBGDraw__FP16daObjL4DigSand_c,
(process_method_func)daObjL4DigSand_create1st,
(process_method_func)daObjL4DigSand_MoveBGDelete,
(process_method_func)daObjL4DigSand_MoveBGExecute,
(process_method_func)NULL,
(process_method_func)daObjL4DigSand_MoveBGDraw,
};
/* 80C67678-80C676A8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Lv4DigSand */
@@ -248,234 +240,3 @@ extern actor_process_profile_definition g_profile_Obj_Lv4DigSand = {
fopAc_ACTOR_e, // mActorType
fopAc_CULLBOX_CUSTOM_e, // cullType
};
/* 80C676A8-80C676B4 0000BC 000C+00 1/1 0/0 0/0 .data __vt__12dBgS_AcchCir */
SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__12dBgS_AcchCirFv,
};
/* 80C676B4-80C676C0 0000C8 000C+00 2/2 0/0 0/0 .data __vt__10cCcD_GStts */
SECTION_DATA extern void* __vt__10cCcD_GStts[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__10cCcD_GSttsFv,
};
/* 80C676C0-80C676CC 0000D4 000C+00 1/1 0/0 0/0 .data __vt__10dCcD_GStts */
SECTION_DATA extern void* __vt__10dCcD_GStts[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__10dCcD_GSttsFv,
};
/* 80C676CC-80C676D8 0000E0 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGCyl */
SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGCylFv,
};
/* 80C676D8-80C676E4 0000EC 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGAab */
SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGAabFv,
};
/* 80C676E4-80C67708 0000F8 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_80C675C4,
(void*)NULL,
(void*)NULL,
(void*)func_80C675BC,
};
/* 80C67708-80C67738 00011C 0030+00 2/2 0/0 0/0 .data __vt__14dBgS_ObjGndChk */
SECTION_DATA extern void* __vt__14dBgS_ObjGndChk[12] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__14dBgS_ObjGndChkFv,
(void*)NULL,
(void*)NULL,
(void*)func_80C675A4,
(void*)NULL,
(void*)NULL,
(void*)func_80C675B4,
(void*)NULL,
(void*)NULL,
(void*)func_80C675AC,
};
/* 80C66EAC-80C66F84 00040C 00D8+00 1/1 0/0 0/0 .text mode_init_dig__16daObjL4DigSand_cFv
*/
void daObjL4DigSand_c::mode_init_dig() {
// NONMATCHING
}
/* 80C66F84-80C66FFC 0004E4 0078+00 4/3 0/0 0/0 .text __dt__14dBgS_ObjGndChkFv */
// dBgS_ObjGndChk::~dBgS_ObjGndChk() {
extern "C" void __dt__14dBgS_ObjGndChkFv() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80C675D8-80C675DC 000004 0004+00 0/1 0/0 0/0 .rodata @3765 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3765 = 10.0f;
COMPILER_STRIP_GATE(0x80C675D8, &lit_3765);
#pragma pop
/* 80C675DC-80C675E0 000008 0004+00 0/1 0/0 0/0 .rodata @3766 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3766 = 15.0f;
COMPILER_STRIP_GATE(0x80C675DC, &lit_3766);
#pragma pop
/* 80C675E0-80C675E4 00000C 0004+00 0/1 0/0 0/0 .rodata @3767 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3767 = 1.0f;
COMPILER_STRIP_GATE(0x80C675E0, &lit_3767);
#pragma pop
/* 80C66FFC-80C670AC 00055C 00B0+00 1/0 0/0 0/0 .text mode_dig__16daObjL4DigSand_cFv */
void daObjL4DigSand_c::mode_dig() {
// NONMATCHING
}
/* 80C670AC-80C67100 00060C 0054+00 1/1 0/0 0/0 .text mode_init_end__16daObjL4DigSand_cFv
*/
void daObjL4DigSand_c::mode_init_end() {
// NONMATCHING
}
/* 80C67100-80C67104 000660 0004+00 1/0 0/0 0/0 .text mode_end__16daObjL4DigSand_cFv */
void daObjL4DigSand_c::mode_end() {
/* empty function */
}
/* 80C67104-80C671A8 000664 00A4+00 1/0 0/0 0/0 .text Draw__16daObjL4DigSand_cFv */
void daObjL4DigSand_c::Draw() {
// NONMATCHING
}
/* 80C671A8-80C671DC 000708 0034+00 1/0 0/0 0/0 .text Delete__16daObjL4DigSand_cFv */
void daObjL4DigSand_c::Delete() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80C67738-80C67760 00014C 0028+00 1/1 0/0 0/0 .data __vt__16daObjL4DigSand_c */
SECTION_DATA extern void* __vt__16daObjL4DigSand_c[10] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)CreateHeap__16daObjL4DigSand_cFv,
(void*)Create__16daObjL4DigSand_cFv,
(void*)Execute__16daObjL4DigSand_cFPPA3_A4_f,
(void*)Draw__16daObjL4DigSand_cFv,
(void*)Delete__16daObjL4DigSand_cFv,
(void*)IsDelete__16dBgS_MoveBgActorFv,
(void*)ToFore__16dBgS_MoveBgActorFv,
(void*)ToBack__16dBgS_MoveBgActorFv,
};
/* 80C671DC-80C67308 00073C 012C+00 1/0 0/0 0/0 .text
* daObjL4DigSand_create1st__FP16daObjL4DigSand_c */
static void daObjL4DigSand_create1st(daObjL4DigSand_c* param_0) {
// NONMATCHING
}
/* 80C67308-80C67350 000868 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
// cM3dGCyl::~cM3dGCyl() {
extern "C" void __dt__8cM3dGCylFv() {
// NONMATCHING
}
/* 80C67350-80C67398 0008B0 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
// cM3dGAab::~cM3dGAab() {
extern "C" void __dt__8cM3dGAabFv() {
// NONMATCHING
}
/* 80C67398-80C673F4 0008F8 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
// dCcD_GStts::~dCcD_GStts() {
extern "C" void __dt__10dCcD_GSttsFv() {
// NONMATCHING
}
/* 80C673F4-80C67464 000954 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
// dBgS_AcchCir::~dBgS_AcchCir() {
extern "C" void __dt__12dBgS_AcchCirFv() {
// NONMATCHING
}
/* 80C67464-80C674D4 0009C4 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
// dBgS_ObjAcch::~dBgS_ObjAcch() {
extern "C" void __dt__12dBgS_ObjAcchFv() {
// NONMATCHING
}
/* 80C674D4-80C674F4 000A34 0020+00 1/0 0/0 0/0 .text
* daObjL4DigSand_MoveBGDelete__FP16daObjL4DigSand_c */
static void daObjL4DigSand_MoveBGDelete(daObjL4DigSand_c* param_0) {
// NONMATCHING
}
/* 80C674F4-80C67514 000A54 0020+00 1/0 0/0 0/0 .text
* daObjL4DigSand_MoveBGExecute__FP16daObjL4DigSand_c */
static void daObjL4DigSand_MoveBGExecute(daObjL4DigSand_c* param_0) {
// NONMATCHING
}
/* 80C67514-80C67540 000A74 002C+00 1/0 0/0 0/0 .text
* daObjL4DigSand_MoveBGDraw__FP16daObjL4DigSand_c */
static void daObjL4DigSand_MoveBGDraw(daObjL4DigSand_c* param_0) {
// NONMATCHING
}
/* 80C67540-80C67588 000AA0 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
// cCcD_GStts::~cCcD_GStts() {
extern "C" void __dt__10cCcD_GSttsFv() {
// NONMATCHING
}
/* 80C67588-80C675A4 000AE8 001C+00 1/1 0/0 0/0 .text cLib_calcTimer<Uc>__FPUc */
extern "C" void func_80C67588(void* _this, u8* param_0) {
// NONMATCHING
}
/* 80C675A4-80C675AC 000B04 0008+00 1/0 0/0 0/0 .text @20@__dt__14dBgS_ObjGndChkFv */
static void func_80C675A4() {
// NONMATCHING
}
/* 80C675AC-80C675B4 000B0C 0008+00 1/0 0/0 0/0 .text @76@__dt__14dBgS_ObjGndChkFv */
static void func_80C675AC() {
// NONMATCHING
}
/* 80C675B4-80C675BC 000B14 0008+00 1/0 0/0 0/0 .text @60@__dt__14dBgS_ObjGndChkFv */
static void func_80C675B4() {
// NONMATCHING
}
/* 80C675BC-80C675C4 000B1C 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
static void func_80C675BC() {
// NONMATCHING
}
/* 80C675C4-80C675CC 000B24 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
static void func_80C675C4() {
// NONMATCHING
}
/* 80C675E4-80C675E4 000010 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+3 -3
View File
@@ -1925,11 +1925,11 @@ fopAc_ac_c* fopAcM_myRoomSearchEnemy(s8 roomNo) {
/* 8001CAD8-8001CB48 017418 0070+00 0/0 0/0 81/81 .text
* fopAcM_createDisappear__FPC10fopAc_ac_cPC4cXyzUcUcUc */
s32 fopAcM_createDisappear(const fopAc_ac_c* i_actor, const cXyz* i_pos, u8 param_3, u8 param_4,
u8 param_5) {
s32 fopAcM_createDisappear(const fopAc_ac_c* i_actor, const cXyz* i_pos, u8 i_size, u8 i_type,
u8 i_enemyID) {
s8 roomNo = fopAcM_GetRoomNo(i_actor);
return fopAcM_GetID(fopAcM_fastCreate(PROC_DISAPPEAR,
(param_5 << 0x10) | (param_3 << 0x8) | param_4, i_pos,
(i_enemyID << 0x10) | (i_size << 0x8) | i_type, i_pos,
roomNo, &i_actor->current.angle, NULL, 0xFF, NULL, NULL));
}