mirror of
https://github.com/zeldaret/tp
synced 2026-06-30 03:48:59 -04:00
@@ -35,6 +35,10 @@ inline float ceil(float num) {
|
||||
inline float floor(float num) {
|
||||
return ::floorf(num);
|
||||
}
|
||||
|
||||
inline float tan(float num) {
|
||||
return ::i_tanf(num);
|
||||
}
|
||||
} // namespace std
|
||||
|
||||
#endif
|
||||
|
||||
@@ -340,7 +340,7 @@ int daAlink_c::canoeCommon() {
|
||||
/* 800F4924-800F4A50 0EF264 012C+00 10/10 0/0 0/0 .text checkNextActionCanoe__9daAlink_cFv */
|
||||
int daAlink_c::checkNextActionCanoe() {
|
||||
if ((!checkFishingRodAndLureItem() || mItemAcKeep.getActor() == NULL ||
|
||||
static_cast<dmg_rod_class*>(mItemAcKeep.getActor())->checkRodEquipPermission()) &&
|
||||
((dmg_rod_class*)mItemAcKeep.getActor())->checkRodEquipPermission()) &&
|
||||
checkNextActionFromButton()) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1246,7 +1246,7 @@ static void b_gnd_g_wait(b_gnd_class* i_this) {
|
||||
mant_class* mant_p = (mant_class*)fopAcM_SearchByID(i_this->mMantChildID);
|
||||
dmg_rod_class* mgrod_p = (dmg_rod_class*)fopAcM_SearchByName(PROC_MG_ROD);
|
||||
|
||||
if (mgrod_p != NULL && mgrod_p->field_0xf7e != 0) {
|
||||
if (mgrod_p != NULL && mgrod_p->action != 0) {
|
||||
if (i_this->mMoveMode < 5 && i_this->mPlayerDistXZ < 600.0f) {
|
||||
i_this->mMoveMode = 5;
|
||||
i_this->field_0xc44[0] = 10;
|
||||
@@ -1332,7 +1332,7 @@ static void b_gnd_g_wait(b_gnd_class* i_this) {
|
||||
}
|
||||
|
||||
i_this->field_0xc7d = 2;
|
||||
i_this->field_0xc80 = mgrod_p->mHookPosition;
|
||||
i_this->field_0xc80 = mgrod_p->hook_pos;
|
||||
break;
|
||||
case 6:
|
||||
angle_step = 0;
|
||||
|
||||
@@ -241,9 +241,9 @@ void daE_BG_c::setSparkEffect() {
|
||||
/* 80685F04-80685F88 0007E4 0084+00 2/2 0/0 0/0 .text search_esa__8daE_BG_cFv */
|
||||
fopAc_ac_c* daE_BG_c::search_esa() {
|
||||
dmg_rod_class* rod = (dmg_rod_class*)fopAcM_SearchByName(PROC_MG_ROD);
|
||||
if (rod != NULL && rod->field_0xf7c == 1 && rod->field_0xf7e != 5 && rod->field_0x100d != 0 &&
|
||||
rod->current.pos.y < rod->field_0x590 - 20.0f) {
|
||||
return rod;
|
||||
if (rod != NULL && rod->kind == 1 && rod->action != 5 && rod->field_0x100d != 0 &&
|
||||
rod->actor.current.pos.y < rod->field_0x590 - 20.0f) {
|
||||
return &rod->actor;
|
||||
} else {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -233,8 +233,8 @@ static obj_kbox_class* search_box(e_sg_class* i_this) {
|
||||
static dmg_rod_class* search_esa(e_sg_class* i_this) {
|
||||
dmg_rod_class* rod = (dmg_rod_class*)fopAcM_SearchByName(PROC_MG_ROD);
|
||||
|
||||
if (rod != NULL && rod->field_0xf7c == 1 && rod->field_0xf7e != 5 && rod->field_0x100d != 0 &&
|
||||
rod->current.pos.y < rod->field_0x590 - 20.0f)
|
||||
if (rod != NULL && rod->kind == 1 && rod->action != 5 && rod->field_0x100d != 0 &&
|
||||
rod->actor.current.pos.y < rod->field_0x590 - 20.0f)
|
||||
{
|
||||
return rod;
|
||||
}
|
||||
|
||||
+80
-80
@@ -184,8 +184,8 @@ static void* s_lure_sub(void* a, void* b) {
|
||||
if (fopAc_IsActor(a)) {
|
||||
if (fopAcM_GetName(a) == PROC_MG_ROD) {
|
||||
dmg_rod_class* rod = (dmg_rod_class*)a;
|
||||
if (rod->field_0xf7c == 0 &&
|
||||
rod->field_0xf7e == 4 &&
|
||||
if (rod->kind == 0 &&
|
||||
rod->action == 4 &&
|
||||
rod->field_0x10a9 == 0 &&
|
||||
rod->field_0x100d != 0) {
|
||||
return rod;
|
||||
@@ -200,10 +200,10 @@ static void* s_esa_sub(void* a, void* b) {
|
||||
if (fopAc_IsActor(a)) {
|
||||
if (fopAcM_GetName(a) == PROC_MG_ROD) {
|
||||
dmg_rod_class* rod = (dmg_rod_class*)a;
|
||||
if (rod->field_0xf7c == 1 &&
|
||||
rod->field_0xf7e != 5 &&
|
||||
if (rod->kind == 1 &&
|
||||
rod->action != 5 &&
|
||||
rod->field_0x100d != 0 &&
|
||||
rod->current.pos.y < rod->field_0x590 - 20.0f) {
|
||||
rod->actor.current.pos.y < rod->field_0x590 - 20.0f) {
|
||||
return rod;
|
||||
}
|
||||
}
|
||||
@@ -260,7 +260,7 @@ static s32 search_lure(mg_fish_class* i_this, int param_2) {
|
||||
fpcM_Search(s_other_search_sub, i_this);
|
||||
if (s_fish_ct <= 1) {
|
||||
f32 fVar1 = i_this->field_0x5ec;
|
||||
if (rod->field_0xf80 == 4) {
|
||||
if (rod->lure_type == MG_LURE_SP) {
|
||||
fVar1 = 1000.0f;
|
||||
} else {
|
||||
if (rod->field_0x1009 != 0) {
|
||||
@@ -274,13 +274,13 @@ static s32 search_lure(mg_fish_class* i_this, int param_2) {
|
||||
fVar1 *= 0.5f;
|
||||
}
|
||||
if (i_this->mGedouKind != GEDOU_KIND_CF_1 &&
|
||||
rod->field_0xf80 != 4 &&
|
||||
(i_this->field_0x750 & learn_d[rod->field_0xf80]) != 0)
|
||||
rod->lure_type != MG_LURE_SP &&
|
||||
(i_this->field_0x750 & learn_d[rod->lure_type]) != 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
cXyz diff = rod->current.pos - i_this->actor.current.pos;
|
||||
if (rod->field_0xf80 == 2 && rod->field_0x100c >= 10) {
|
||||
cXyz diff = rod->actor.current.pos - i_this->actor.current.pos;
|
||||
if (rod->lure_type == MG_LURE_PO && rod->field_0x100c >= 10) {
|
||||
diff.y = -80.0f;
|
||||
}
|
||||
if (diff.abs() < fVar1) {
|
||||
@@ -292,15 +292,15 @@ static s32 search_lure(mg_fish_class* i_this, int param_2) {
|
||||
fopAc_ac_c* rod_actor = (fopAc_ac_c*)fpcM_Search(s_esa_sub, i_this);
|
||||
if (rod_actor != NULL) {
|
||||
dmg_rod_class* rod = (dmg_rod_class*)rod_actor;
|
||||
if (i_this->mGedouKind == GEDOU_KIND_KS_2 && rod->field_0x102d != 1) {
|
||||
if (i_this->mGedouKind == GEDOU_KIND_KS_2 && rod->hook_kind != 1) {
|
||||
return -1;
|
||||
}
|
||||
if ((i_this->mGedouKind == GEDOU_KIND_BG || rod->field_0x102d == 1 || rod->field_0x102c != 0) &&
|
||||
rod->current.pos.y < i_this->mSurfaceY - 60.0f)
|
||||
if ((i_this->mGedouKind == GEDOU_KIND_BG || rod->hook_kind == 1 || rod->esa_kind != 0) &&
|
||||
rod->actor.current.pos.y < i_this->mSurfaceY - 60.0f)
|
||||
{
|
||||
f32 maxLatDist = i_this->field_0x5ec;
|
||||
f32 distX = rod->current.pos.x - i_this->actor.current.pos.x;
|
||||
f32 distZ = rod->current.pos.z - i_this->actor.current.pos.z;
|
||||
f32 distX = rod->actor.current.pos.x - i_this->actor.current.pos.x;
|
||||
f32 distZ = rod->actor.current.pos.z - i_this->actor.current.pos.z;
|
||||
f32 latDist = JMAFastSqrt(distX * distX + distZ * distZ);
|
||||
if (latDist < maxLatDist) {
|
||||
return fopAcM_GetID(rod);
|
||||
@@ -1378,9 +1378,9 @@ static void mf_lure_search(mg_fish_class* i_this) {
|
||||
foundLure = true;
|
||||
} else if (rod->field_0x100a != 0 || rod->field_0x100d == 0) {
|
||||
foundLure = true;
|
||||
} else if (rod->field_0xf7e != 4) {
|
||||
if (rod->field_0xf7e >= 5 &&
|
||||
rod->mFishId == fopAcM_GetID(i_this)) {
|
||||
} else if (rod->action != 4) {
|
||||
if (rod->action >= 5 &&
|
||||
rod->mg_fish_id == fopAcM_GetID(i_this)) {
|
||||
foundLure = false;
|
||||
} else {
|
||||
foundLure = true;
|
||||
@@ -1404,7 +1404,7 @@ static void mf_lure_search(mg_fish_class* i_this) {
|
||||
case 1:
|
||||
i_this->mActionPhase = 2;
|
||||
case 2: {
|
||||
rodSep = rod->current.pos - i_this->actor.current.pos;
|
||||
rodSep = rod->actor.current.pos - i_this->actor.current.pos;
|
||||
rodSep.y -= 10.0f;
|
||||
i_this->mMovementYaw = cM_atan2s(rodSep.x, rodSep.z);
|
||||
i_this->mMovementPitch = -cM_atan2s(rodSep.y, JMAFastSqrt(rodSep.x * rodSep.x + rodSep.z * rodSep.z));
|
||||
@@ -1412,7 +1412,7 @@ static void mf_lure_search(mg_fish_class* i_this) {
|
||||
i_this->mMovementPitch = -0x2000;
|
||||
}
|
||||
f32 rodDist = sqrtf(VECSquareMag(&rodSep));
|
||||
if (rod->field_0xf80 != 4 && rod->field_0xf80 != 2 &&
|
||||
if (rod->lure_type != MG_LURE_SP && rod->lure_type != MG_LURE_PO &&
|
||||
rodDist > 2.0f * i_this->field_0x5ec) {
|
||||
foundLure = true;
|
||||
} else {
|
||||
@@ -1421,7 +1421,7 @@ static void mf_lure_search(mg_fish_class* i_this) {
|
||||
i_this->field_0x624[0] = cM_rndF(100.0f);
|
||||
i_this->field_0x624[1] = cM_rndF(200.0f) + 100.0f;
|
||||
if (i_this->mGedouKind == GEDOU_KIND_NP_1 || i_this->mGedouKind == GEDOU_KIND_LM_1) {
|
||||
if (rod->field_0x14f0 != 0) {
|
||||
if (rod->reel_btn_flags != 0) {
|
||||
target = 2.0f;
|
||||
}
|
||||
f32 fVar11;
|
||||
@@ -1431,8 +1431,8 @@ static void mf_lure_search(mg_fish_class* i_this) {
|
||||
fVar11 = 0.025f;
|
||||
}
|
||||
if (rodDist < 1.3f * i_this->field_0x5ec &&
|
||||
(rod->field_0xf80 == 4 || rod->field_0xf80 == 3) &&
|
||||
rod->field_0x14f0 != 0 &&
|
||||
(rod->lure_type == MG_LURE_SP || rod->lure_type == MG_LURE_WS) &&
|
||||
rod->reel_btn_flags != 0 &&
|
||||
(i_this->mBobTimer & 0x1f) == 0 &&
|
||||
cM_rndF(1.0f) < fVar11) {
|
||||
sVar10 = 0x5a;
|
||||
@@ -1458,7 +1458,7 @@ static void mf_lure_search(mg_fish_class* i_this) {
|
||||
limit1 *= 2.0f;
|
||||
limit2 *= 2.0f;
|
||||
} else if (i_this->mGedouKind == GEDOU_KIND_RI_1 &&
|
||||
rod->field_0xf80 != 0 &&
|
||||
rod->lure_type != MG_LURE_FR &&
|
||||
i_this->field_0x5f8 < 10) {
|
||||
limit1 = limit2 = -1.0f;
|
||||
}
|
||||
@@ -1493,7 +1493,7 @@ static void mf_lure_search(mg_fish_class* i_this) {
|
||||
i_this->field_0x624[2] = sVar10;
|
||||
}
|
||||
|
||||
cLib_addCalc2(&i_this->actor.current.pos.y, rod->current.pos.y - 20.0f,
|
||||
cLib_addCalc2(&i_this->actor.current.pos.y, rod->actor.current.pos.y - 20.0f,
|
||||
0.05f, 2.0f);
|
||||
|
||||
if (i_this->field_0x624[1] == 1) {
|
||||
@@ -1511,12 +1511,12 @@ static void mf_lure_search(mg_fish_class* i_this) {
|
||||
break;
|
||||
}
|
||||
|
||||
rodSep = rod->current.pos - i_this->actor.current.pos;
|
||||
rodSep = rod->actor.current.pos - i_this->actor.current.pos;
|
||||
i_this->mMovementYaw = cM_atan2s(rodSep.x, rodSep.z);
|
||||
i_this->mMovementPitch = -cM_atan2s(rodSep.y, JMAFastSqrt(rodSep.x * rodSep.x + rodSep.z * rodSep.z));
|
||||
|
||||
target = 3.0f;
|
||||
if (rod->field_0x14f0 != 0) {
|
||||
if (rod->reel_btn_flags != 0) {
|
||||
target = 5.0f;
|
||||
}
|
||||
|
||||
@@ -1529,12 +1529,12 @@ static void mf_lure_search(mg_fish_class* i_this) {
|
||||
|
||||
if (rodDist < i_this->mJointScale * 40.0f) {
|
||||
if (i_this->mGedouKind == GEDOU_KIND_CF_1) {
|
||||
if (rod->field_0xf80 == 4) {
|
||||
if (rod->lure_type == MG_LURE_SP) {
|
||||
i_this->mRemainingHookTime = cM_rndF(10.0f) + 20.0f;
|
||||
} else {
|
||||
i_this->mRemainingHookTime = cM_rndF(12.0f) + 30.0f;
|
||||
}
|
||||
} else if (rod->field_0xf80 == 4) {
|
||||
} else if (rod->lure_type == MG_LURE_SP) {
|
||||
if (i_this->mJointScale >= 0.6f) {
|
||||
if (sVar10 != 0) {
|
||||
i_this->mActionPhase = 3;
|
||||
@@ -1555,13 +1555,13 @@ static void mf_lure_search(mg_fish_class* i_this) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (rod->field_0xf80 == 0) {
|
||||
if (rod->lure_type == MG_LURE_FR) {
|
||||
i_this->mRemainingHookTime = cM_rndF(10.0f) + 40.0f;
|
||||
}
|
||||
|
||||
rod->field_0xf7e = 5;
|
||||
rod->action = 5;
|
||||
rod->field_0x10a5 = 2;
|
||||
rod->mFishId = fopAcM_GetID(i_this);
|
||||
rod->mg_fish_id = fopAcM_GetID(i_this);
|
||||
rod->field_0x1006 = cM_rndFX(7000.0f) + 1000.0f;
|
||||
i_this->mHookedState = 1;
|
||||
i_this->mMovementYaw = cM_rndFX(65536.0f);
|
||||
@@ -1570,7 +1570,7 @@ static void mf_lure_search(mg_fish_class* i_this) {
|
||||
i_this->mActionPhase = 4;
|
||||
mouth_close(i_this);
|
||||
|
||||
if (rod->current.pos.y > i_this->mSurfaceY - 15.0f) {
|
||||
if (rod->actor.current.pos.y > i_this->mSurfaceY - 15.0f) {
|
||||
sibuki_set(i_this, 2.5f, i_this->field_0x638);
|
||||
if (i_this->mGedouKind == GEDOU_KIND_RI_1) {
|
||||
i_this->mSound.startCreatureSound(Z2SE_AL_DOJOU_EAT_IMPACT, 0, -1);
|
||||
@@ -1593,7 +1593,7 @@ static void mf_lure_search(mg_fish_class* i_this) {
|
||||
maxStep = 0.5f;
|
||||
i_this->mHookedState = 2;
|
||||
if (i_this->mRemainingHookTime == 0) {
|
||||
if (rod->field_0xf80 != 4) {
|
||||
if (rod->lure_type != MG_LURE_SP) {
|
||||
rod->field_0x10a6 = 30;
|
||||
if (rod->field_0x10a7 != 4) {
|
||||
rod->field_0x10a7 = 1;
|
||||
@@ -1635,7 +1635,7 @@ static void mf_lure_search(mg_fish_class* i_this) {
|
||||
*/
|
||||
static void mf_bait_search(mg_fish_class* i_this) {
|
||||
s32 foundBait = false;
|
||||
dmg_rod_class* rod = (dmg_rod_class*)fopAcM_SearchByID(i_this->mBaitId);
|
||||
fr_class* rod = (fr_class*)fopAcM_SearchByID(i_this->mBaitId);
|
||||
if (rod == NULL) {
|
||||
i_this->mActionPhase = 100;
|
||||
foundBait = true;
|
||||
@@ -1695,9 +1695,9 @@ static void mf_bait_search(mg_fish_class* i_this) {
|
||||
speedMaxStep = 1.0f;
|
||||
f32 fVar10 = offsetToRod.abs();
|
||||
if (fVar10 < 40.0f * i_this->mJointScale) {
|
||||
rod->field_0x5a4.field_0x2e = 0x32;
|
||||
rod->field_0x5a4.field_0x30 = 0;
|
||||
rod->field_0x5a4.field_0x54 = fopAcM_GetID(i_this);
|
||||
rod->field_0x5d2 = 0x32;
|
||||
rod->field_0x5d4 = 0;
|
||||
rod->field_0x5f8 = fopAcM_GetID(i_this);
|
||||
fVar10 = cM_rndFX(65536.0f);
|
||||
i_this->mMovementYaw = fVar10;
|
||||
i_this->mMovementPitch = 0x2000;
|
||||
@@ -1877,7 +1877,7 @@ static void mf_hit(mg_fish_class* i_this) {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (pvVar5->field_0x14f0 == 0 ||
|
||||
if (pvVar5->reel_btn_flags == 0 ||
|
||||
pvVar5->field_0x1515 == 0 ||
|
||||
pvVar5->field_0xf60 < 100.0f)
|
||||
{
|
||||
@@ -1894,16 +1894,16 @@ static void mf_hit(mg_fish_class* i_this) {
|
||||
i_this->mActionPhase = 0;
|
||||
g_dComIfG_gameInfo.play.mVibration.StartShock(4, 1, cXyz(0.0f, 1.0f, 0.0f));
|
||||
Z2AudioMgr::getInterface()->changeBgmStatus(4);
|
||||
pvVar5->field_0xf7e = 6;
|
||||
pvVar5->field_0x13b4 = 10;
|
||||
pvVar5->field_0x13b6 = 0;
|
||||
pvVar5->action = 6;
|
||||
pvVar5->play_cam_mode = 10;
|
||||
pvVar5->play_cam_timer = 0;
|
||||
pvVar5->field_0x14c2 = 0;
|
||||
pvVar5->field_0x1408 = 90.0f;
|
||||
pvVar5->play_cam_fovy = 90.0f;
|
||||
pvVar5->field_0x146d = 0;
|
||||
pvVar5->field_0x10b0 = 0;
|
||||
daPy_py_c* player = daPy_getLinkPlayerActorClass();
|
||||
player->onFishingRodGetFish();
|
||||
if (pvVar5->field_0xf80 == 4) {
|
||||
if (pvVar5->lure_type == MG_LURE_SP) {
|
||||
u8 bVar7 = g_dComIfG_gameInfo.info.mSavedata.mEvent.getEventReg(0xf11f);
|
||||
if (bVar7 < 0x1f) {
|
||||
bVar7++;
|
||||
@@ -1913,12 +1913,12 @@ static void mf_hit(mg_fish_class* i_this) {
|
||||
} else if (iVar1 != 0) {
|
||||
if (iVar1 == 2) {
|
||||
pvVar5->field_0x10a7 = 3;
|
||||
pvVar5->field_0x57e = cM_rndF(13.0f) + 30.0f;
|
||||
pvVar5->timers[2] = cM_rndF(13.0f) + 30.0f;
|
||||
pvVar5->field_0x10a6 = 1;
|
||||
} else {
|
||||
pvVar5->field_0x10a7 = 2;
|
||||
pvVar5->field_0x10a6 = 0x19;
|
||||
pvVar5->field_0x57e = 0;
|
||||
pvVar5->timers[2] = 0;
|
||||
}
|
||||
i_this->mCurAction = ACTION_MG_FISH_MF_AWAY;
|
||||
i_this->mActionPhase = -1;
|
||||
@@ -1979,7 +1979,7 @@ static void mf_jump(mg_fish_class* i_this) {
|
||||
i_this->actor.current.angle.z = i_this->actor.current.angle.z + i_this->jointYaws2[2];
|
||||
i_this->actor.shape_angle.z = i_this->actor.current.angle.z;
|
||||
i_this->mMovementPitch = i_this->mMovementPitch + i_this->jointYaws2[3];
|
||||
if (i_this->field_0x624[0] == 1 && rod->mRodStickY <= -0.5f && cM_rndF(1.0f) < 0.35f) {
|
||||
if (i_this->field_0x624[0] == 1 && rod->rod_stick_y <= -0.5f && cM_rndF(1.0f) < 0.35f) {
|
||||
i_this->field_0x65a = 1;
|
||||
i_this->mHookedState = 0;
|
||||
}
|
||||
@@ -2224,9 +2224,9 @@ static void mf_catch(mg_fish_class* i_this) {
|
||||
i_this->mActionPhase = 3;
|
||||
i_this->field_0x624[0] = 40;
|
||||
player->onFishingRelease();
|
||||
rod->health = 1;
|
||||
rod->field_0x13b4 = 11;
|
||||
rod->field_0x13b6 = 0;
|
||||
rod->actor.health = 1;
|
||||
rod->play_cam_mode = 11;
|
||||
rod->play_cam_timer = 0;
|
||||
rod->field_0x146d = 0;
|
||||
i_this->field_0x740 = cM_rndF(1000.0f) + 3000.0f;
|
||||
}
|
||||
@@ -2291,7 +2291,7 @@ static void mf_esa_search(mg_fish_class* i_this) {
|
||||
flag1 = 1;
|
||||
} else if (rod->field_0x100d == 0) {
|
||||
flag1 = 1;
|
||||
} else if (rod->field_0xf7e == 5) {
|
||||
} else if (rod->action == 5) {
|
||||
flag1 = 1;
|
||||
}
|
||||
if (flag1) {
|
||||
@@ -2313,7 +2313,7 @@ static void mf_esa_search(mg_fish_class* i_this) {
|
||||
i_this->mActionPhase = 2;
|
||||
}
|
||||
case 2: {
|
||||
cXyz xyz = rod->current.pos - i_this->actor.current.pos;
|
||||
cXyz xyz = rod->actor.current.pos - i_this->actor.current.pos;
|
||||
i_this->mMovementYaw = cM_atan2s(xyz.x, xyz.z);
|
||||
i_this->mMovementPitch = -cM_atan2s(xyz.y,
|
||||
JMAFastSqrt(xyz.x * xyz.x + xyz.z * xyz.z));
|
||||
@@ -2337,23 +2337,23 @@ static void mf_esa_search(mg_fish_class* i_this) {
|
||||
}
|
||||
}
|
||||
|
||||
xyz = i_this->field_0x638 - rod->current.pos;
|
||||
xyz = i_this->field_0x638 - rod->actor.current.pos;
|
||||
if (sqrtf(VECSquareMag(&xyz)) < i_this->mJointScale * 14.0f) {
|
||||
fVar9 = i_this->field_0x654;
|
||||
i_this->mMaxStep = 0;
|
||||
if (i_this->field_0x624[0] == 0) {
|
||||
rod->mFishId = fopAcM_GetID(i_this);
|
||||
rod->mg_fish_id = fopAcM_GetID(i_this);
|
||||
f32 fVar10 = 0.5f;
|
||||
if (dComIfGs_getFishNum(5) <= 5) {
|
||||
fVar10 = 1.5f;
|
||||
}
|
||||
if (i_this->mGedouKind != GEDOU_KIND_BG) {
|
||||
if (rod->field_0x102d == 1) {
|
||||
if (rod->hook_kind == 1) {
|
||||
fVar10 = 1.0f;
|
||||
}
|
||||
if (rod->field_0x102c == 1) {
|
||||
if (rod->esa_kind == 1) {
|
||||
fVar10 *= 1.5f;
|
||||
} else if (rod->field_0x102c == 2) {
|
||||
} else if (rod->esa_kind == 2) {
|
||||
fVar10 *= 2.0f;
|
||||
}
|
||||
}
|
||||
@@ -2371,7 +2371,7 @@ static void mf_esa_search(mg_fish_class* i_this) {
|
||||
rod->field_0x10a5 = fVar10 * (cM_rndF(15.0f) + 15.0f);
|
||||
i_this->field_0x659 = rod->field_0x10a5;
|
||||
i_this->field_0x650 = 0.0f;
|
||||
if (rod->field_0x102d == 0 && rod->field_0x102c == 0) {
|
||||
if (rod->hook_kind == 0 && rod->esa_kind == 0) {
|
||||
i_this->field_0x624[0] = cM_rndF(80.0f) + 50.0f;
|
||||
} else {
|
||||
i_this->field_0x624[0] = cM_rndF(20.0f) + 30.0f;
|
||||
@@ -2380,9 +2380,9 @@ static void mf_esa_search(mg_fish_class* i_this) {
|
||||
}
|
||||
}
|
||||
if (i_this->field_0x659 == 0) {
|
||||
cLib_addCalc2(&i_this->actor.current.pos.y, rod->current.pos.y, 0.05f, 2.0f);
|
||||
cLib_addCalc2(&i_this->actor.current.pos.y, rod->actor.current.pos.y, 0.05f, 2.0f);
|
||||
} else {
|
||||
cLib_addCalc2(&i_this->actor.current.pos.y, rod->current.pos.y - 20.0f, 0.05f, 2.0f);
|
||||
cLib_addCalc2(&i_this->actor.current.pos.y, rod->actor.current.pos.y - 20.0f, 0.05f, 2.0f);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -2401,8 +2401,8 @@ static void mf_esa_search(mg_fish_class* i_this) {
|
||||
cLib_addCalcAngleS2(&i_this->actor.current.angle.y, i_this->mMovementYaw, 2, i_this->mMaxStep);
|
||||
cLib_addCalcAngleS2(&i_this->actor.current.angle.x, i_this->mMovementPitch, 2, i_this->mMaxStep);
|
||||
if (i_this->field_0x5ec > 10000.0f) {
|
||||
cLib_addCalc2(&i_this->actor.current.pos.x, rod->current.pos.x, 0.1f, 50.0f);
|
||||
cLib_addCalc2(&i_this->actor.current.pos.z, rod->current.pos.z, 0.1f, 50.0f);
|
||||
cLib_addCalc2(&i_this->actor.current.pos.x, rod->actor.current.pos.x, 0.1f, 50.0f);
|
||||
cLib_addCalc2(&i_this->actor.current.pos.z, rod->actor.current.pos.z, 0.1f, 50.0f);
|
||||
}
|
||||
if (flag2) {
|
||||
i_this->mCurAction = ACTION_MG_FISH_MF_SWIM_S;
|
||||
@@ -2415,7 +2415,7 @@ static void mf_esa_search(mg_fish_class* i_this) {
|
||||
/* 8053109C-805313D8 00745C 033C+00 1/1 0/0 0/0 .text mf_esa_hit__FP13mg_fish_class */
|
||||
static void mf_esa_hit(mg_fish_class* i_this) {
|
||||
dmg_rod_class* rod = (dmg_rod_class*)fopAcM_SearchByID(i_this->mRodId);
|
||||
if (rod == NULL || (rod != NULL && rod->field_0xf7e != 5)) {
|
||||
if (rod == NULL || (rod != NULL && rod->action != 5)) {
|
||||
i_this->mCurAction = ACTION_MG_FISH_MF_SWIM_S;
|
||||
i_this->mActionPhase = 0;
|
||||
i_this->field_0x62e = cM_rndF(100.0f) + 100.0f;
|
||||
@@ -3398,7 +3398,7 @@ static int daMg_Fish_Execute(mg_fish_class* i_this) {
|
||||
i_this->actor.current.pos.z);
|
||||
cMtx_YrotM(mDoMtx_stack_c::now, i_this->actor.shape_angle.y);
|
||||
cMtx_XrotM(mDoMtx_stack_c::now, 0x4000);
|
||||
if (rod->field_0x102d == 1) {
|
||||
if (rod->hook_kind == 1) {
|
||||
mDoMtx_stack_c::transM(0.0f, 0.0f, 35.0f);
|
||||
} else {
|
||||
mDoMtx_stack_c::transM(0.0f, 0.0f, 29.0f);
|
||||
@@ -3516,7 +3516,7 @@ static int daMg_Fish_Execute(mg_fish_class* i_this) {
|
||||
i_this->actor.current.pos.z);
|
||||
cMtx_YrotM(mDoMtx_stack_c::now, i_this->actor.shape_angle.y);
|
||||
cMtx_XrotM(mDoMtx_stack_c::now, -0x4000);
|
||||
if (rod->field_0x102d == 1) {
|
||||
if (rod->hook_kind == 1) {
|
||||
mDoMtx_stack_c::transM(0.0f, 0.0f, -14.0f);
|
||||
} else {
|
||||
mDoMtx_stack_c::transM(0.0f, 0.0f, -8.0f);
|
||||
@@ -3533,7 +3533,7 @@ static int daMg_Fish_Execute(mg_fish_class* i_this) {
|
||||
i_this->actor.current.pos.z);
|
||||
cMtx_YrotM(mDoMtx_stack_c::now, i_this->actor.shape_angle.y);
|
||||
cMtx_XrotM(mDoMtx_stack_c::now, -0x4000);
|
||||
if (rod->field_0x102d == 1) {
|
||||
if (rod->hook_kind == 1) {
|
||||
mDoMtx_stack_c::transM(0.0f, 0.0f, -25.0f);
|
||||
} else {
|
||||
mDoMtx_stack_c::transM(0.0f, 0.0f, -19.0f);
|
||||
@@ -3586,7 +3586,7 @@ static int daMg_Fish_Execute(mg_fish_class* i_this) {
|
||||
MtxPosition(&commonXyz, &i_this->field_0x638);
|
||||
if (i_this->mHookedState != 0) {
|
||||
dmg_rod_class* rod = (dmg_rod_class*)fopAcM_SearchByID(i_this->mRodId);
|
||||
if (rod->field_0xf80 == 4 && i_this->mCurAction == ACTION_MG_FISH_MF_CATCH) {
|
||||
if (rod->lure_type == MG_LURE_SP && i_this->mCurAction == ACTION_MG_FISH_MF_CATCH) {
|
||||
if (i_this->mKind2 == 0) {
|
||||
f32 fVar3 = (i_this->mJointScale - 0.48f) * 100.0f;
|
||||
if (fVar3 < 0.0f) {
|
||||
@@ -3606,29 +3606,29 @@ static int daMg_Fish_Execute(mg_fish_class* i_this) {
|
||||
commonXyz.z += 5.0f;
|
||||
}
|
||||
MtxPosition(&commonXyz, &i_this->field_0x638);
|
||||
rod->current.angle.y = 0;
|
||||
rod->current.angle.x = 0x4000;
|
||||
rod->current.angle.z = player->shape_angle.y + 8000;
|
||||
rod->shape_angle.x = rod->current.angle.x;
|
||||
rod->shape_angle.y = rod->current.angle.y;
|
||||
rod->shape_angle.z = rod->current.angle.z;
|
||||
rod->actor.current.angle.y = 0;
|
||||
rod->actor.current.angle.x = 0x4000;
|
||||
rod->actor.current.angle.z = player->shape_angle.y + 8000;
|
||||
rod->actor.shape_angle.x = rod->actor.current.angle.x;
|
||||
rod->actor.shape_angle.y = rod->actor.current.angle.y;
|
||||
rod->actor.shape_angle.z = rod->actor.current.angle.z;
|
||||
rod->field_0x114a = 0;
|
||||
rod->field_0x114c = 0;
|
||||
rod->field_0x1004 = 0;
|
||||
} else {
|
||||
if (rod->field_0xf80 == 0 && i_this->mGedouKind == GEDOU_KIND_RI_1) {
|
||||
if (rod->lure_type == MG_LURE_FR && i_this->mGedouKind == GEDOU_KIND_RI_1) {
|
||||
commonXyz.y += 8.0f;
|
||||
commonXyz.z += -3.0f;
|
||||
MtxPosition(&commonXyz, &i_this->field_0x638);
|
||||
}
|
||||
cLib_addCalcAngleS2(&rod->current.angle.y, i_this->actor.shape_angle.y - 0x1710, 2, 0x800);
|
||||
cLib_addCalcAngleS2(&rod->current.angle.x,
|
||||
cLib_addCalcAngleS2(&rod->actor.current.angle.y, i_this->actor.shape_angle.y - 0x1710, 2, 0x800);
|
||||
cLib_addCalcAngleS2(&rod->actor.current.angle.x,
|
||||
i_this->actor.shape_angle.x + - 0x310c + rod->field_0x1006, 2, 0x800);
|
||||
cLib_addCalcAngleS2(&rod->current.angle.z, 0x6328, 2, 0x800);
|
||||
cLib_addCalcAngleS2(&rod->actor.current.angle.z, 0x6328, 2, 0x800);
|
||||
}
|
||||
rod->current.pos.x = i_this->field_0x638.x;
|
||||
rod->current.pos.y = i_this->field_0x638.y;
|
||||
rod->current.pos.z = i_this->field_0x638.z;
|
||||
rod->actor.current.pos.x = i_this->field_0x638.x;
|
||||
rod->actor.current.pos.y = i_this->field_0x638.y;
|
||||
rod->actor.current.pos.z = i_this->field_0x638.z;
|
||||
rod->field_0x1000 = 0;
|
||||
rod->field_0xffc = 0;
|
||||
}
|
||||
|
||||
+6304
-2876
File diff suppressed because it is too large
Load Diff
@@ -501,7 +501,7 @@ static void henna_ride(npc_henna_class* i_this) {
|
||||
|
||||
if (lrl != NULL) {
|
||||
fopAc_ac_c* fish;
|
||||
if (lrl->field_0xf7e == 0) {
|
||||
if (lrl->action == 0) {
|
||||
if (i_this->field_0x710 == 0) {
|
||||
i_this->field_0x710 = cM_rndF(100.0f) + 90.0f;
|
||||
cMtx_YrotS(*calc_mtx, actor->shape_angle.y);
|
||||
@@ -519,25 +519,25 @@ static void henna_ride(npc_henna_class* i_this) {
|
||||
i_this->field_0x720 = fish->current.pos;
|
||||
i_this->field_0x70e = 0x600;
|
||||
}
|
||||
} else if (lrl->field_0x13b4 == 10 || lrl->field_0x13b4 == 11) {
|
||||
fish = fopAcM_SearchByID(lrl->mFishId);
|
||||
} else if (lrl->play_cam_mode == 10 || lrl->play_cam_mode == 11) {
|
||||
fish = fopAcM_SearchByID(lrl->mg_fish_id);
|
||||
if (fish != NULL) {
|
||||
i_this->field_0x720 = fish->current.pos;
|
||||
i_this->field_0x70e = 1000;
|
||||
}
|
||||
} else if (lrl->field_0xf7e == 1) {
|
||||
} else if (lrl->action == 1) {
|
||||
cMtx_YrotS(*calc_mtx, player->getFishingRodAngleY());
|
||||
unkXyz_48.x = 0.0f;
|
||||
unkXyz_48.y = 0.0f;
|
||||
unkXyz_48.z = 2000.0f;
|
||||
MtxPosition(&unkXyz_48, &i_this->field_0x720);
|
||||
i_this->field_0x720 += player->eyePos;
|
||||
} else if (lrl->field_0xf7e == 3 || lrl->field_0xf7e == 4 || lrl->field_0xf7e == 5) {
|
||||
i_this->field_0x720 = lrl->current.pos;
|
||||
} else if (lrl->action == 3 || lrl->action == 4 || lrl->action == 5) {
|
||||
i_this->field_0x720 = lrl->actor.current.pos;
|
||||
i_this->field_0x70e = 0x600;
|
||||
}
|
||||
|
||||
if (player->checkCanoeRide() != 0 && (lrl->field_0x13b4 == 0 || lrl->field_0x13b4 >= 0x50))
|
||||
if (player->checkCanoeRide() != 0 && (lrl->play_cam_mode == 0 || lrl->play_cam_mode >= 0x50))
|
||||
{
|
||||
if (i_this->field_0x6a4 < 5) {
|
||||
i_this->field_0x6a4 = 5;
|
||||
@@ -704,7 +704,7 @@ static void action(npc_henna_class* i_this) {
|
||||
|
||||
msg_class* msg = ((dMsgObject_c*)unkActor1)->getActor();
|
||||
if (msg != 0 && msg->mode == 6 && ((dMsgObject_c*)unkActor1)->isMouthCheck() != 0 &&
|
||||
(lrl == 0 || lrl->field_0x13b4 != 30))
|
||||
(lrl == 0 || lrl->play_cam_mode != 30))
|
||||
{
|
||||
i_this->field_0x6a6 = 15;
|
||||
}
|
||||
@@ -2197,7 +2197,7 @@ static void message_guide(npc_henna_class* i_this) {
|
||||
|
||||
actor->eventInfo.onCondition(dEvtCnd_CANTALK_e);
|
||||
|
||||
if (lrl != NULL && lrl->field_0x13b4 != 0) {
|
||||
if (lrl != NULL && lrl->play_cam_mode != 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -2472,9 +2472,9 @@ static void action(npc_ne_class* i_this) {
|
||||
cXyz vec1, vec2;
|
||||
if (i_this->mWantsFish && i_this->mAction != npc_ne_class::ACT_SANBASI
|
||||
&& player->current.pos.z > -2800.0f) {
|
||||
dmg_rod_class* rod = static_cast<dmg_rod_class*>(fopAcM_SearchByName(PROC_MG_ROD));
|
||||
if (rod != NULL && rod->field_0xf7c == 1 && rod->field_0xf7e != 5
|
||||
&& rod->field_0x13b4 != 0 && !i_this->mNoFollow) {
|
||||
dmg_rod_class* rod = ((dmg_rod_class*)fopAcM_SearchByName(PROC_MG_ROD));
|
||||
if (rod != NULL && rod->kind == 1 && rod->action != 5
|
||||
&& rod->play_cam_mode != 0 && !i_this->mNoFollow) {
|
||||
if (i_this->mDistToTarget > 500.0f) {
|
||||
_this->current.pos = ground_search(i_this);
|
||||
_this->old = _this->current;
|
||||
|
||||
@@ -241,8 +241,8 @@ static int daObj_Lp_Execute(obj_lp_class* i_this) {
|
||||
if (mCanoe) {
|
||||
tandem = mCanoe->checkTandem();
|
||||
dmg_rod_class* mDmgRod = (dmg_rod_class*)fopAcM_SearchByName(0x2e4);
|
||||
if (((mDmgRod && mDmgRod->field_0x13b4 == 11) &&
|
||||
mDmgRod->field_0x13b6 > 20) && mDmgRod->field_0x13b6 < 0x3c) {
|
||||
if (((mDmgRod && mDmgRod->play_cam_mode == 11) &&
|
||||
mDmgRod->play_cam_timer > 20) && mDmgRod->play_cam_timer < 0x3c) {
|
||||
demo_f = 1;
|
||||
} else {
|
||||
demo_f = 0;
|
||||
|
||||
Reference in New Issue
Block a user