mirror of
https://github.com/zeldaret/tp
synced 2026-07-10 23:22:01 -04:00
almost all of daAlink_demo done (#1987)
* almost all of alink_demo done * remove asm * decideDoStatus OK
This commit is contained in:
+674
-58
@@ -10,6 +10,7 @@
|
||||
#include "JSystem/JKernel/JKRExpHeap.h"
|
||||
#include "JSystem/JMath/JMath.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "d/a/d_a_npc.h"
|
||||
#include "d/d_item.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "d/meter/d_meter2_draw.h"
|
||||
@@ -20,14 +21,18 @@
|
||||
#include "rel/d/a/d_a_crod/d_a_crod.h"
|
||||
#include "rel/d/a/d_a_horse/d_a_horse.h"
|
||||
#include "rel/d/a/d_a_mg_rod/d_a_mg_rod.h"
|
||||
#include "rel/d/a/d_a_midna/d_a_midna.h"
|
||||
#include "rel/d/a/d_a_mirror/d_a_mirror.h"
|
||||
#include "rel/d/a/d_a_scene_exit/d_a_scene_exit.h"
|
||||
#include "rel/d/a/d_a_spinner/d_a_spinner.h"
|
||||
#include "rel/d/a/d_a_tbox/d_a_tbox.h"
|
||||
#include "rel/d/a/e/d_a_e_wb/d_a_e_wb.h"
|
||||
#include "rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h"
|
||||
#include "rel/d/a/tag/d_a_tag_Lv6Gate/d_a_tag_Lv6Gate.h"
|
||||
#include "rel/d/a/tag/d_a_tag_kmsg/d_a_tag_kmsg.h"
|
||||
#include "rel/d/a/tag/d_a_tag_magne/d_a_tag_magne.h"
|
||||
#include "rel/d/a/tag/d_a_tag_mist/d_a_tag_mist.h"
|
||||
#include "rel/d/a/d_a_mirror/d_a_mirror.h"
|
||||
#include "rel/d/a/d_a_midna/d_a_midna.h"
|
||||
#include "rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
@@ -51,10 +56,6 @@ struct daObj {
|
||||
daObjMovebox::Act_c::Prm_e);
|
||||
};
|
||||
|
||||
struct daNpcT_ActorMngr_c {
|
||||
/* 80145708 */ void getActorP();
|
||||
};
|
||||
|
||||
struct JAISeq {
|
||||
/* 802A0A8C */ JAISeq(JAISeqMgr*, JAISoundStrategyMgr<JAISeq>*);
|
||||
};
|
||||
@@ -5698,57 +5699,41 @@ COMPILER_STRIP_GATE(0x8039190C, &daAlink_c::m_handRightInSidePos);
|
||||
/* 80391918-80391924 01DF78 000C+00 0/1 0/0 0/0 .rodata horseLocalLeft$17678 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
static const Vec horseLocalLeft = {
|
||||
20.0f, 0.0f, 0.0f
|
||||
};
|
||||
static const Vec horseLocalLeft = {20.0f, 0.0f, 0.0f};
|
||||
#pragma pop
|
||||
|
||||
/* 80391924-80391930 01DF84 000C+00 0/1 0/0 0/0 .rodata horseLocalRight$17679 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
static const Vec horseLocalRight = {
|
||||
-20.0f, 0.0f, 0.0f
|
||||
};
|
||||
static const Vec horseLocalRight = {-20.0f, 0.0f, 0.0f};
|
||||
#pragma pop
|
||||
|
||||
/* 80391930-8039193C 01DF90 000C+00 0/1 0/0 0/0 .rodata horseLocalBack$17680 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
static const Vec horseLocalBack = {
|
||||
0.0f, 0.0f, -200.0f
|
||||
};
|
||||
static const Vec horseLocalBack = {0.0f, 0.0f, -200.0f};
|
||||
#pragma pop
|
||||
|
||||
/* 8039193C-80391948 01DF9C 000C+00 0/1 0/0 0/0 .rodata boarLocalLeft$17681 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
static const Vec boarLocalLeft = {
|
||||
200.0f, 0.0f, -18.0f
|
||||
};
|
||||
static const Vec boarLocalLeft = {200.0f, 0.0f, -18.0f};
|
||||
#pragma pop
|
||||
|
||||
/* 80391948-80391954 01DFA8 000C+00 0/1 0/0 0/0 .rodata boarLocalRight$17682 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
static const Vec boarLocalRight = {
|
||||
-200.0f, 0.0f, -18.0f
|
||||
};
|
||||
static const Vec boarLocalRight = {-200.0f, 0.0f, -18.0f};
|
||||
#pragma pop
|
||||
|
||||
/* 80391954-80391960 01DFB4 000C+00 1/1 0/0 0/0 .rodata localHorseRun$18095 */
|
||||
static const Vec localHorseRun_18095 = {
|
||||
15.0f, 0.0f, -45.0f
|
||||
};
|
||||
static const Vec localHorseRun_18095 = {15.0f, 0.0f, -45.0f};
|
||||
|
||||
/* 80391960-8039196C 01DFC0 000C+00 1/1 0/0 0/0 .rodata localHorseRun$18103 */
|
||||
static const Vec localHorseRun_18103 = {
|
||||
30.0f, 0.0f, -10.0f
|
||||
};
|
||||
static const Vec localHorseRun_18103 = {30.0f, 0.0f, -10.0f};
|
||||
|
||||
/* 8039196C-80391978 01DFCC 000C+00 1/1 0/0 0/0 .rodata localOffset$18237 */
|
||||
static const Vec localOffset_18237 = {
|
||||
-30.0f, -18.0f, 0.0f
|
||||
};
|
||||
static const Vec localOffset_18237 = {-30.0f, -18.0f, 0.0f};
|
||||
|
||||
/* 80391978-80391984 01DFD8 000C+00 1/1 0/0 0/0 .rodata @18938 */
|
||||
SECTION_RODATA static u8 const lit_18938[12] = {
|
||||
@@ -5912,8 +5897,8 @@ static u32 const heartPieceMessage[5] = {0x86, 0x9C, 0x9D, 0x9E, 0x9F};
|
||||
/* 80391BA0-80391BAC 01E200 000C+00 0/1 0/0 0/0 .rodata effName$39419 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const effName_39419[12] = {
|
||||
0x09, 0xF5, 0x09, 0xF6, 0x09, 0xF7, 0x09, 0xF8, 0x09, 0xF9, 0x09, 0xFA,
|
||||
SECTION_RODATA static u16 const effName_39419[] = {
|
||||
0x09F5, 0x09F6, 0x09F7, 0x09F8, 0x09F9, 0x09FA,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80391BA0, &effName_39419);
|
||||
#pragma pop
|
||||
@@ -11154,6 +11139,105 @@ SECTION_DATA static void* lit_4831[3] = {
|
||||
#pragma pop
|
||||
|
||||
/* 803B22E0-803B2754 00F400 0474+00 1/2 0/0 0/0 .data m_demoInitTable__9daAlink_c */
|
||||
#ifdef NONMATCHING
|
||||
daAlink_procFunc daAlink_c::m_demoInitTable[] = {
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
&daAlink_c::commonWaitTurnInit,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
&daAlink_c::procCoOpenTreasureInit,
|
||||
&daAlink_c::procCoGetItemInit,
|
||||
&daAlink_c::procCoUnequipInit,
|
||||
&daAlink_c::commonGrabPutInit,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
&daAlink_c::procMonkeyMoveInit,
|
||||
&daAlink_c::procCoLookAroundInit,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
&daAlink_c::procCoTurnBackInit,
|
||||
NULL,
|
||||
NULL,
|
||||
&daAlink_c::procDemoBoomerangCatchInit,
|
||||
&daAlink_c::procHawkCatchInit,
|
||||
&daAlink_c::procSwordUnequipSpInit,
|
||||
NULL,
|
||||
&daAlink_c::procCoDemoPushPullWaitInit,
|
||||
&daAlink_c::procCoDemoPushMoveInit,
|
||||
&daAlink_c::procBossAtnWaitInit,
|
||||
&daAlink_c::procDoorOpenInit,
|
||||
NULL,
|
||||
&daAlink_c::procTradeItemOutInit,
|
||||
NULL,
|
||||
&daAlink_c::procKandelaarSwingInit,
|
||||
&daAlink_c::procFrontRollInit,
|
||||
&daAlink_c::procCrouchInit,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
&daAlink_c::procCoCaughtInit,
|
||||
&daAlink_c::procLookUpInit,
|
||||
&daAlink_c::procLookUpToGetItemInit,
|
||||
&daAlink_c::procHandPatInit,
|
||||
&daAlink_c::procWolfMidnaRideShockInit,
|
||||
&daAlink_c::procSumouShikoInit,
|
||||
&daAlink_c::procCoFogDeadInit,
|
||||
&daAlink_c::procWolfSmellWaitInit,
|
||||
NULL,
|
||||
NULL,
|
||||
&daAlink_c::procWolfCargoCarryInit,
|
||||
&daAlink_c::procCoMetamorphoseInit,
|
||||
&daAlink_c::procCoMetamorphoseInit,
|
||||
&daAlink_c::procHorseGetKeyInit,
|
||||
&daAlink_c::procCoNodInit,
|
||||
&daAlink_c::procCoGlareInit,
|
||||
&daAlink_c::procCoEyeAwayInit,
|
||||
&daAlink_c::procGoatStopReadyInit,
|
||||
&daAlink_c::procCoGetReadySitInit,
|
||||
NULL,
|
||||
&daAlink_c::procCoTwGateInit,
|
||||
&daAlink_c::procFmChainStrongPullInit,
|
||||
&daAlink_c::procWolfSnowEscapeInit,
|
||||
&daAlink_c::procZoraMoveInit,
|
||||
&daAlink_c::procCoMetamorphoseOnlyInit,
|
||||
&daAlink_c::procCoMetamorphoseOnlyInit,
|
||||
&daAlink_c::procLookAroundTurnInit,
|
||||
NULL,
|
||||
&daAlink_c::procCoQuakeWaitInit,
|
||||
&daAlink_c::procGuardAttackInit,
|
||||
&daAlink_c::procSwordReadyInit,
|
||||
&daAlink_c::procDungeonWarpInit,
|
||||
&daAlink_c::procDungeonWarpSceneStartInit,
|
||||
&daAlink_c::procMasterSwordStickInit,
|
||||
&daAlink_c::procMasterSwordPullInit,
|
||||
&daAlink_c::procCutDownInit,
|
||||
NULL,
|
||||
&daAlink_c::procCutHeadInit,
|
||||
NULL,
|
||||
NULL,
|
||||
&daAlink_c::procCutLargeJumpInit,
|
||||
&daAlink_c::procCutFastReadyInit,
|
||||
&daAlink_c::procCopyRodReviveInit,
|
||||
&daAlink_c::procSwordPushInit,
|
||||
&daAlink_c::procGanonFinishInit,
|
||||
NULL,
|
||||
NULL,
|
||||
&daAlink_c::procHorseLookDownInit,
|
||||
NULL,
|
||||
};
|
||||
#else
|
||||
SECTION_DATA u8 daAlink_c::m_demoInitTable[1140] = {
|
||||
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,
|
||||
@@ -11228,6 +11312,7 @@ SECTION_DATA u8 daAlink_c::m_demoInitTable[1140] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
#endif
|
||||
|
||||
/* 803B2754-803B2798 00F874 0044+00 0/1 0/0 0/0 .data l_cylSrc */
|
||||
static dCcD_SrcCyl l_cylSrc = {
|
||||
@@ -11252,12 +11337,10 @@ static dCcD_SrcSph l_sphSrc = {
|
||||
{dCcD_SE_NONE, 6, 0, 0, {0}},
|
||||
{0},
|
||||
},
|
||||
{
|
||||
{
|
||||
{0.0f, 0.0f, 0.0f},
|
||||
40.0f,
|
||||
}
|
||||
},
|
||||
{{
|
||||
{0.0f, 0.0f, 0.0f},
|
||||
40.0f,
|
||||
}},
|
||||
};
|
||||
|
||||
/* 803B27D8-803B281C 00F8F8 0044+00 0/1 0/0 0/0 .data l_atCylSrc */
|
||||
@@ -11283,13 +11366,11 @@ static dCcD_SrcCps l_atCpsSrc = {
|
||||
{dCcD_SE_NONE, 0, 0, 0, {0}},
|
||||
{0},
|
||||
},
|
||||
{
|
||||
{
|
||||
{0.0f, 0.0f, 0.0f},
|
||||
{0.0f, 0.0f, 0.0f},
|
||||
20.0f,
|
||||
}
|
||||
},
|
||||
{{
|
||||
{0.0f, 0.0f, 0.0f},
|
||||
{0.0f, 0.0f, 0.0f},
|
||||
20.0f,
|
||||
}},
|
||||
};
|
||||
|
||||
/* 803B2868-803B2880 00F988 0018+00 1/0 0/0 0/0 .data l_jntColPos0 */
|
||||
@@ -13976,16 +14057,99 @@ asm void daAlink_c::commonDoubleAnime(J3DAnmTransform* param_0, J3DAnmTransform*
|
||||
|
||||
/* 800ACA14-800ACD40 0A7354 032C+00 14/14 0/0 0/0 .text
|
||||
* setDoubleAnime__9daAlink_cFfffQ29daAlink_c11daAlink_ANMQ29daAlink_c11daAlink_ANMif */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::setDoubleAnime(f32 i_blendRate, f32 i_anmSpeedA, f32 i_anmSpeedB,
|
||||
daAlink_c::daAlink_ANM i_anmA, daAlink_c::daAlink_ANM i_anmB,
|
||||
int param_5, f32 i_morf) {
|
||||
#ifdef DEBUG
|
||||
if (checkWolf()) {
|
||||
// "Player is Wolf, but setting Link animation\n"
|
||||
OSReport("狼なのにリンクアニメ設定\n");
|
||||
JUT_ASSERT(8591, 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
J3DAnmTransform* under_bckA;
|
||||
J3DAnmTransform* upper_bckA;
|
||||
J3DAnmTransform* under_bckB;
|
||||
J3DAnmTransform* upper_bckB;
|
||||
|
||||
int temp_r3 = getUnderUpperAnime(i_anmA, &under_bckA, &upper_bckA, 0, 0x2C00);
|
||||
int temp_r0 = getUnderUpperAnime(i_anmB, &under_bckB, &upper_bckB, 1, 0x2C00);
|
||||
|
||||
if ((temp_r3 | temp_r0) != 0 && i_morf < 0.0f) {
|
||||
if (i_anmA == ANM_WAIT_B && i_checkModeFlg(1)) {
|
||||
i_morf = daAlinkHIO_move_c0::m.mWaitBInterpolation;
|
||||
} else {
|
||||
i_morf = daAlinkHIO_basic_c0::m.mAnmBlendFactor;
|
||||
}
|
||||
|
||||
if (i_checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
if (checkZoraWearAbility()) {
|
||||
i_morf *= (1.0f / daAlinkHIO_magneBoots_c0::m.mZoraWaterAnmSpeed);
|
||||
} else {
|
||||
i_morf *= (1.0f / daAlinkHIO_magneBoots_c0::m.mWaterStartWalkAnmRate);
|
||||
}
|
||||
}
|
||||
} else if (i_anmA == ANM_WAIT_B && i_checkModeFlg(1) && i_morf > 0.0f) {
|
||||
i_morf = daAlinkHIO_move_c0::m.mWaitBInterpolation;
|
||||
|
||||
if (i_checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
if (checkZoraWearAbility()) {
|
||||
i_morf *= (1.0f / daAlinkHIO_magneBoots_c0::m.mZoraWaterAnmSpeed);
|
||||
} else {
|
||||
i_morf *= (1.0f / daAlinkHIO_magneBoots_c0::m.mWaterStartWalkAnmRate);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
commonDoubleAnime(under_bckA, upper_bckA, under_bckB, upper_bckB, i_blendRate, i_anmSpeedA,
|
||||
i_anmSpeedB, param_5);
|
||||
if (i_morf >= 0.0f) {
|
||||
field_0x2060->initOldFrameMorf(i_morf, 0, 35);
|
||||
}
|
||||
|
||||
setHandIndex(i_anmA);
|
||||
|
||||
if (i_checkReinRide()) {
|
||||
if (checkRestHPAnime() &&
|
||||
(checkUnderMove0BckNoArc(ANM_HORSE_WAIT) || checkUnderMove0BckNoArc(ANM_HORSE_WALK_A) ||
|
||||
checkUnderMove0BckNoArc(ANM_HORSE_WALK_B)))
|
||||
{
|
||||
if (checkNoUpperAnime()) {
|
||||
setUpperAnimeBaseMorf(0x263, daAlinkHIO_horse_c0::m.mTiredWaitInterpolation);
|
||||
}
|
||||
|
||||
setFaceBasicAnime(ANM_WAIT_TIRED);
|
||||
setTiredVoice(&mUpperFrameCtrl[2]);
|
||||
} else {
|
||||
if (checkHorseTiredAnime()) {
|
||||
resetUpperAnime(UPPER_2, 3.0f);
|
||||
}
|
||||
|
||||
setFaceBasicAnime(i_anmA);
|
||||
}
|
||||
} else if ((i_anmB == ANM_WALK_HEAVY && i_anmA == ANM_WAIT) || i_anmB == ANM_HORSE_DASH_B) {
|
||||
setFaceBasicAnime(i_anmB);
|
||||
} else {
|
||||
setFaceBasicAnime(i_anmA);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::setDoubleAnime(f32 param_0, f32 param_1, f32 param_2,
|
||||
daAlink_c::daAlink_ANM param_3, daAlink_c::daAlink_ANM param_4,
|
||||
int param_5, f32 param_6) {
|
||||
asm int daAlink_c::setDoubleAnime(f32 param_0, f32 param_1, f32 param_2,
|
||||
daAlink_c::daAlink_ANM param_3, daAlink_c::daAlink_ANM param_4,
|
||||
int param_5, f32 param_6) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/setDoubleAnime__9daAlink_cFfffQ29daAlink_c11daAlink_ANMQ29daAlink_c11daAlink_ANMif.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 800ACD40-800ACF80 0A7680 0240+00 2/2 0/0 0/0 .text
|
||||
* commonSingleAnime__9daAlink_cFP15J3DAnmTransformP15J3DAnmTransformffs */
|
||||
@@ -15349,6 +15513,144 @@ f32 daAlink_c::getFrontRollRate() {
|
||||
|
||||
/* 800B4B7C-800B5284 0AF4BC 0708+00 2/2 0/0 0/0 .text decideCommonDoStatus__9daAlink_cFv
|
||||
*/
|
||||
// almost, small branch issues and need fix for i_checkAttentionLock
|
||||
#ifdef NONMATCHING
|
||||
void daAlink_c::decideCommonDoStatus() {
|
||||
if (!i_checkFmChainGrabAnime() && i_dComIfGp_getDoStatus() == 0) {
|
||||
bool temp_r3 = checkStageName("R_SP127");
|
||||
|
||||
if (checkRoomOnly() && !i_checkWolf() && !temp_r3) {
|
||||
if ((checkNoUpperAnime() || checkIronBallWaitAnime()) &&
|
||||
(mEquipItem != NO_ITEM && i_checkModeFlg(4) && mEquipItem != 0x102))
|
||||
{
|
||||
if (checkCopyRodControllAnime()) {
|
||||
setDoStatus(0x2A);
|
||||
} else {
|
||||
setDoStatus(4);
|
||||
}
|
||||
} else if (mFastShotTime != 0) {
|
||||
setDoStatus(0x12);
|
||||
}
|
||||
} else if (i_checkWolf()) {
|
||||
if (checkDownAttackState()) {
|
||||
setDoStatusEmphasys(0x30);
|
||||
} else if (checkCutHeadState()) {
|
||||
setDoStatusEmphasys(0x77);
|
||||
} else if (checkWolfSideStep()) {
|
||||
setDoStatusEmphasys(0x19);
|
||||
} else {
|
||||
if (mTargetedActor != NULL) {
|
||||
if (fopAcM_GetName(mTargetedActor) == PROC_Tag_Wljump) {
|
||||
if (static_cast<daTagWljump_c*>(mTargetedActor)->getLockPos() != NULL) {
|
||||
if (!getMidnaActor()->checkNoInput()) {
|
||||
setDoStatus(0x93);
|
||||
}
|
||||
|
||||
i_onResetFlg0(RFLG0_UNK_20000);
|
||||
field_0x3738 =
|
||||
*static_cast<daTagWljump_c*>(mTargetedActor)->getLockPos();
|
||||
}
|
||||
} else {
|
||||
setDoStatus(0x8B);
|
||||
}
|
||||
} else if (i_checkAttentionLock()) {
|
||||
setDoStatus(0x8B);
|
||||
} else if (field_0x30d2 == 0 &&
|
||||
(field_0x33a8 > getFrontRollRate() || i_checkAttentionLock()))
|
||||
{
|
||||
setDoStatus(9);
|
||||
}
|
||||
}
|
||||
|
||||
if (checkNotJumpSinkLimit() &&
|
||||
(i_dComIfGp_getDoStatus() == 0x8B || i_dComIfGp_getDoStatus() == 0x30 ||
|
||||
i_dComIfGp_getDoStatus() == 0x77 || i_dComIfGp_getDoStatus() == 0x19 ||
|
||||
i_dComIfGp_getDoStatus() == 9 || i_dComIfGp_getDoStatus() == 0x93))
|
||||
{
|
||||
setDoStatus(0);
|
||||
}
|
||||
} else {
|
||||
int direction = getDirectionFromShapeAngle();
|
||||
f32 temp_f31 = getFrontRollRate();
|
||||
|
||||
if (i_checkAttentionLock() ||
|
||||
(mTargetedActor != NULL && (mTargetedActor == mThrowBoomerangAcKeep.getActor() ||
|
||||
mTargetedActor == mCopyRodAcKeep.getActor())))
|
||||
{
|
||||
if (checkInputOnR() && direction != DIR_FORWARD) {
|
||||
if (mEquipItem == 0x103 && checkDownAttackState()) {
|
||||
setDoStatusEmphasys(0x30);
|
||||
} else if (mEquipItem == 0x103 && checkCutHeadState()) {
|
||||
setDoStatusEmphasys(0x77);
|
||||
} else {
|
||||
setDoStatusEmphasys(0x19);
|
||||
}
|
||||
} else if (!i_checkSmallUpperGuardAnime() &&
|
||||
(mEquipItem == 0x103 || mEquipItem == 0x102))
|
||||
{
|
||||
if (mEquipItem == 0x102) {
|
||||
setDoStatus(0x13);
|
||||
} else if (mEquipItem == 0x103 && checkDownAttackState()) {
|
||||
setDoStatusEmphasys(0x30);
|
||||
} else if (mEquipItem == 0x103 && checkCutHeadState()) {
|
||||
setDoStatusEmphasys(0x77);
|
||||
} else {
|
||||
setDoStatus(0x86);
|
||||
}
|
||||
} else {
|
||||
setDoStatus(0x79);
|
||||
}
|
||||
} else if (((checkNoUpperAnime()) || checkIronBallWaitAnime() ||
|
||||
checkCopyRodControllAnime()) &&
|
||||
mEquipItem != NO_ITEM && i_checkModeFlg(4) && field_0x33a8 <= temp_f31)
|
||||
{
|
||||
if (mEquipItem == 0x102) {
|
||||
if (checkAttentionState()) {
|
||||
setDoStatus(0x13);
|
||||
} else {
|
||||
setDoStatus(0x14);
|
||||
}
|
||||
} else {
|
||||
setDoStatus(4);
|
||||
}
|
||||
} else if (field_0x33a8 > temp_f31) {
|
||||
if (mEquipItem == 0x102) {
|
||||
setDoStatus(0x13);
|
||||
} else {
|
||||
setDoStatus(0x79);
|
||||
}
|
||||
} else if (mFastShotTime != 0) {
|
||||
setDoStatus(0x12);
|
||||
}
|
||||
|
||||
if ((((i_checkMagneBootsOn() || checkIronBallWaitAnime() || checkNotJumpSinkLimit()) ||
|
||||
(i_dComIfGp_getDoStatus() == 0x79 || i_dComIfGp_getDoStatus() == 0x86 ||
|
||||
i_dComIfGp_getDoStatus() == 0x30 || i_dComIfGp_getDoStatus() == 0x77 ||
|
||||
i_dComIfGp_getDoStatus() == 0x19)) ||
|
||||
(i_dComIfGp_getDoStatus() == 0x79 &&
|
||||
(checkKandelaarSwingAnime() || field_0x2fa8 == 6 || checkCopyRodThrowAnime() ||
|
||||
checkBoomerangThrowAnime()))) &&
|
||||
(!i_checkMagneBootsOn() || i_dComIfGp_getDoStatus() != 0x79 ||
|
||||
!cBgW_CheckBGround(mMagneBootsTopVec.y)))
|
||||
{
|
||||
if (mEquipItem == 0x42 && i_checkModeFlg(4)) {
|
||||
setDoStatus(4);
|
||||
} else {
|
||||
setDoStatus(0);
|
||||
}
|
||||
}
|
||||
|
||||
if (temp_r3 && i_dComIfGp_getDoStatus() == 0x19) {
|
||||
setDoStatus(0);
|
||||
}
|
||||
|
||||
if (i_dComIfGp_getDoStatus() == 4 && checkCopyRodControllAnime()) {
|
||||
setDoStatus(0x2A);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -15357,16 +15659,147 @@ asm void daAlink_c::decideCommonDoStatus() {
|
||||
#include "asm/d/a/d_a_alink/decideCommonDoStatus__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 800B5284-800B58EC 0AFBC4 0668+00 1/1 0/0 0/0 .text decideDoStatus__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::decideDoStatus() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/decideDoStatus__9daAlink_cFv.s"
|
||||
void daAlink_c::decideDoStatus() {
|
||||
if (!i_checkFmChainGrabAnime()) {
|
||||
if (i_checkNoResetFlg0(FLG0_UNK_1000000)) {
|
||||
setDoStatusEmphasys(0x62);
|
||||
}
|
||||
|
||||
if (mTargetedActor == NULL && mAttList == NULL && i_checkResetFlg0(RFLG0_UNK_8)) {
|
||||
setWallGrabStatus(0x15, 2);
|
||||
|
||||
if (field_0x2f91 == 7 || field_0x2f91 == 8 || field_0x2f91 == 6 || field_0x2f91 == 9) {
|
||||
setDoStatus(0x20);
|
||||
}
|
||||
} else {
|
||||
if (searchFmChainPos()) {
|
||||
setChainGrabStatus(0x96);
|
||||
} else if (mAttList != NULL) {
|
||||
s16 actor_name = fopAcM_GetName(field_0x27f4);
|
||||
|
||||
if (mAttList->mType == 5 ||
|
||||
(mAttList->mType == 6 &&
|
||||
(!i_checkWolf() || static_cast<daTbox_c*>(field_0x27f4)->checkSmallTbox())))
|
||||
{
|
||||
setDoStatus(6);
|
||||
} else if (mAttList->mType == 7 && actor_name == PROC_KYTAG05) {
|
||||
setDoStatus(0x89);
|
||||
} else if (i_checkWolf()) {
|
||||
if (mAttList->mType == 4 && !fopAcM_checkCarryNow(field_0x27f4) &&
|
||||
fopAcM_CheckCarryType(field_0x27f4, fopAcM_CARRY_LIGHT))
|
||||
{
|
||||
if (actor_name == PROC_B_MGN) {
|
||||
setDoStatus(0x91);
|
||||
} else if (actor_name == PROC_Obj_Yobikusa) {
|
||||
setDoStatusEmphasys(5);
|
||||
} else if (actor_name == PROC_Obj_Stone) {
|
||||
setDoStatus(0x47);
|
||||
} else if (actor_name == PROC_Obj_Drop || actor_name == PROC_Obj_Sword ||
|
||||
actor_name == PROC_Obj_SmallKey)
|
||||
{
|
||||
setDoStatusEmphasys(0x39);
|
||||
} else if (!checkGoatCatchActor(field_0x27f4) && !checkGrabLineCheck()) {
|
||||
setDoStatusEmphasys(0xC);
|
||||
}
|
||||
} else if (mTargetedActor != NULL &&
|
||||
fopAcM_GetName(mTargetedActor) == PROC_B_MGN &&
|
||||
mAttention->getActionBtnB() != NULL &&
|
||||
mAttention->getActionBtnB()->mType == 4 &&
|
||||
mAttention->getActionBtnB()->getActor() == mTargetedActor)
|
||||
{
|
||||
setDoStatus(0x91);
|
||||
} else if (mTargetedActor != NULL &&
|
||||
fopAcM_GetName(mTargetedActor) == PROC_E_YM &&
|
||||
mAttention->getActionBtnB() != NULL &&
|
||||
mAttention->getActionBtnB()->mType == 7 &&
|
||||
mAttention->getActionBtnB()->getActor() == mTargetedActor)
|
||||
{
|
||||
i_onEndResetFlg1(ERFLG1_UNK_100000);
|
||||
if (mWolfEyeUp != 0) {
|
||||
setWolfDigStatus(2);
|
||||
}
|
||||
} else if (mAttList->mType == 7 && field_0x27f4 != NULL) {
|
||||
if (actor_name == PROC_Obj_Digpl || actor_name == PROC_Obj_Digholl ||
|
||||
actor_name == PROC_Obj_DigSnow || actor_name == PROC_Obj_Lv4DigSand ||
|
||||
actor_name == PROC_E_YM)
|
||||
{
|
||||
i_onEndResetFlg1(ERFLG1_UNK_100000);
|
||||
if (mWolfEyeUp != 0) {
|
||||
setWolfDigStatus(2);
|
||||
}
|
||||
} else if (actor_name == PROC_TAG_HOWL ||
|
||||
actor_name == PROC_Obj_WindStone ||
|
||||
actor_name == PROC_Obj_SmWStone ||
|
||||
actor_name == PROC_Tag_WaraHowl)
|
||||
{
|
||||
setDoStatusEmphasys(5);
|
||||
} else if (actor_name == PROC_KYTAG03) {
|
||||
setDoStatusEmphasys(0x45);
|
||||
}
|
||||
} else if (mTargetedActor != NULL && field_0x27f4 == mTargetedActor &&
|
||||
actor_name == PROC_Obj_Wchain)
|
||||
{
|
||||
setDoStatusEmphasys(0x7B);
|
||||
} else {
|
||||
setTalkStatus();
|
||||
}
|
||||
} else if (mAttList->mType == 7) {
|
||||
if ((!checkMagicArmorHeavy() &&
|
||||
(actor_name == PROC_HORSE || actor_name == PROC_E_WB) &&
|
||||
checkReinRideBgCheck()) ||
|
||||
actor_name == PROC_CANOE || actor_name == PROC_Obj_IceLeaf)
|
||||
{
|
||||
setDoStatus(0x17);
|
||||
} else if (actor_name == PROC_COW) {
|
||||
setDoStatus(0x38);
|
||||
} else if (actor_name == PROC_Obj_YIblltray) {
|
||||
setDoStatusEmphasys(0x99);
|
||||
} else if (actor_name == PROC_Tag_Lv6Gate ||
|
||||
(actor_name == PROC_TAG_KMSG &&
|
||||
static_cast<daTag_KMsg_c*>(field_0x27f4)->getType() == 3))
|
||||
{
|
||||
if (!checkEquipAnime() && checkMasterSwordEquip()) {
|
||||
setDoStatus(0x63);
|
||||
}
|
||||
}
|
||||
} else if (mTargetedActor != NULL && checkGoatCatchActor(mTargetedActor) &&
|
||||
mAttention->getActionBtnB() != NULL &&
|
||||
mAttention->getActionBtnB()->mType == 4 &&
|
||||
mAttention->getActionBtnB()->getActor() == mTargetedActor)
|
||||
{
|
||||
setDoStatus(0x91);
|
||||
} else if (mAttList->mType == 4) {
|
||||
if (!fopAcM_checkCarryNow(field_0x27f4)) {
|
||||
if (checkGoatCatchActor(field_0x27f4)) {
|
||||
setDoStatus(0x91);
|
||||
} else if (!i_checkMagneBootsOn()) {
|
||||
if (checkInsectActorName(field_0x27f4)) {
|
||||
setDoStatusEmphasys(0x98);
|
||||
} else if (actor_name == PROC_Obj_SmallKey) {
|
||||
setDoStatusEmphasys(0x39);
|
||||
} else if (!checkGrabLineCheck()) {
|
||||
if (actor_name == PROC_Obj_Yobikusa) {
|
||||
setDoStatus(0x2B);
|
||||
} else if (fopAcM_CheckCarryType(field_0x27f4, fopAcM_CARRY_TYPE_8))
|
||||
{
|
||||
setDoStatusEmphasys(0x34);
|
||||
} else if (actor_name != PROC_B_MGN) {
|
||||
setDoStatusEmphasys(0x1F);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
setTalkStatus();
|
||||
}
|
||||
}
|
||||
decideCommonDoStatus();
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800B58EC-800B5BC0 0B022C 02D4+00 25/25 0/0 0/0 .text checkWaitAction__9daAlink_cFv */
|
||||
#pragma push
|
||||
@@ -15773,6 +16206,188 @@ asm int daAlink_c::orderZTalk() {
|
||||
#pragma pop
|
||||
|
||||
/* 800B8374-800B8930 0B2CB4 05BC+00 1/1 0/0 0/0 .text checkNormalAction__9daAlink_cFv */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::checkNormalAction() {
|
||||
int wall_grab_status = getWallGrabStatus();
|
||||
|
||||
if (wallGrabTrigger()) {
|
||||
if (wall_grab_status == 0x15) {
|
||||
return procCoPushPullWaitInit(1);
|
||||
}
|
||||
|
||||
if (wall_grab_status == 0x96 && searchFmChainPos()) {
|
||||
if (i_checkWolf()) {
|
||||
return procWolfChainUpInit();
|
||||
} else {
|
||||
return procFmChainUpInit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (orderTalk(1)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (doTrigger()) {
|
||||
if (i_dComIfGp_getDoStatus() == 0x89) {
|
||||
orderPeep();
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (i_dComIfGp_getDoStatus() == 7) {
|
||||
if (i_checkWolf()) {
|
||||
return procWolfLieStartInit(1);
|
||||
} else {
|
||||
return procCrawlStartInit();
|
||||
}
|
||||
}
|
||||
|
||||
if (i_dComIfGp_getDoStatus() == 12) {
|
||||
return procWolfGrabUpInit();
|
||||
}
|
||||
|
||||
if (i_dComIfGp_getDoStatus() == 0x7B) {
|
||||
return procWolfChainReadyInit();
|
||||
}
|
||||
|
||||
if (i_dComIfGp_getDoStatus() == 0x47) {
|
||||
return procWolfPushInit();
|
||||
}
|
||||
|
||||
if (i_dComIfGp_getDoStatus() == 0x17) {
|
||||
if (fopAcM_GetName(field_0x27f4) == PROC_Obj_IceLeaf) {
|
||||
return procBoardRideInit();
|
||||
}
|
||||
|
||||
if (fopAcM_GetName(field_0x27f4) == PROC_CANOE) {
|
||||
if (i_checkModeFlg(0x40000)) {
|
||||
return procCanoeRideInit();
|
||||
} else {
|
||||
return procSmallJumpInit(1);
|
||||
}
|
||||
}
|
||||
|
||||
if (checkStageName("F_SP103") &&
|
||||
fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchKolin, NULL))
|
||||
{
|
||||
return procWaitInit();
|
||||
} else {
|
||||
return procHorseRideInit();
|
||||
}
|
||||
}
|
||||
|
||||
if (i_dComIfGp_getDoStatus() == 0x20) {
|
||||
if (i_checkWolf()) {
|
||||
return procWolfHangReadyInit();
|
||||
} else {
|
||||
if (field_0x2f91 == 7) {
|
||||
return procHangWallCatchInit();
|
||||
} else {
|
||||
return procHangReadyInit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (i_dComIfGp_getDoStatus() == 6) {
|
||||
if (mAttList->mType == 5) {
|
||||
if (!checkStageName("F_SP103") ||
|
||||
!fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchBouDoor, NULL))
|
||||
{
|
||||
fopAcM_orderDoorEvent(this, field_0x27f4, 0, 0);
|
||||
}
|
||||
checkWaitAction();
|
||||
} else {
|
||||
fopAcM_orderTreasureEvent(this, field_0x27f4, 0, 0);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (i_dComIfGp_getDoStatus() == 0x2B) {
|
||||
return procGrassWhistleGetInit();
|
||||
}
|
||||
|
||||
if (i_dComIfGp_getDoStatus() == 0x38) {
|
||||
return procGoatStrokeInit();
|
||||
}
|
||||
|
||||
if (i_dComIfGp_getDoStatus() == 0x63) {
|
||||
if (fopAcM_GetName(field_0x27f4) == PROC_Tag_Lv6Gate) {
|
||||
static_cast<daTagLv6Gate_c*>(field_0x27f4)->stabMasterSword();
|
||||
} else {
|
||||
static_cast<daTag_KMsg_c*>(field_0x27f4)->stabMasterSword();
|
||||
}
|
||||
|
||||
procWaitInit();
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (i_dComIfGp_getDoStatus() == 0x91) {
|
||||
i_onNoResetFlg0(FLG0_UNK_10000000);
|
||||
|
||||
if (field_0x27f4->current.pos.abs2XZ(current.pos) < getGoatCatchDistance2()) {
|
||||
if (i_checkWolf()) {
|
||||
return procWolfGanonCatchInit();
|
||||
} else {
|
||||
return procGoatCatchInit(field_0x27f4, 0.0f);
|
||||
}
|
||||
}
|
||||
} else if (i_dComIfGp_getDoStatus() == 0x98) {
|
||||
return procInsectCatchInit();
|
||||
} else if (i_dComIfGp_getDoStatus() == 0x1F || i_dComIfGp_getDoStatus() == 0x39 ||
|
||||
i_dComIfGp_getDoStatus() == 0x34)
|
||||
{
|
||||
if (i_checkWolf()) {
|
||||
return procWolfGrabUpInit();
|
||||
} else {
|
||||
if (fopAcM_CheckCarryType(field_0x27f4, fopAcM_CARRY_ITEM)) {
|
||||
return procPickUpInit();
|
||||
} else {
|
||||
return procGrabReadyInit();
|
||||
}
|
||||
}
|
||||
} else if (i_dComIfGp_getDoStatus() == 0x99) {
|
||||
return procHangLeverDownInit();
|
||||
} else if (i_dComIfGp_getDoStatus() == 0x30) {
|
||||
if (i_checkWolf()) {
|
||||
return procWolfDownAttackInit();
|
||||
} else {
|
||||
return checkDoCutAction();
|
||||
}
|
||||
} else if (i_dComIfGp_getDoStatus() == 0x77) {
|
||||
if (i_checkWolf()) {
|
||||
return procWolfJumpAttackInit(1);
|
||||
} else {
|
||||
return checkDoCutAction();
|
||||
}
|
||||
} else if (i_dComIfGp_getDoStatus() == 0x8B) {
|
||||
return procWolfJumpAttackInit(1);
|
||||
} else if (i_dComIfGp_getDoStatus() == 0x62) {
|
||||
changeCutFast();
|
||||
return 1;
|
||||
} else if (i_dComIfGp_getDoStatus() == 0x86) {
|
||||
return checkDoCutAction();
|
||||
} else if (i_dComIfGp_getDoStatus() == 5) {
|
||||
return procWolfHowlDemoInit();
|
||||
} else if (i_dComIfGp_getDoStatus() == 0x45) {
|
||||
return procWolfGetSmellInit();
|
||||
} else if (i_dComIfGp_getDoStatus() == 0x93) {
|
||||
return procWolfTagJumpInit(field_0x27f4);
|
||||
}
|
||||
} else if (i_checkNoResetFlg0(FLG0_UNK_10000000) && i_dComIfGp_getDoStatus() == 0x91) {
|
||||
if (field_0x27f4->current.pos.abs2XZ(current.pos) < getGoatCatchDistance2()) {
|
||||
if (i_checkWolf()) {
|
||||
return procWolfGanonCatchInit();
|
||||
} else {
|
||||
return procGoatCatchInit(field_0x27f4, 0.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -15780,6 +16395,7 @@ asm int daAlink_c::checkNormalAction(){nofralloc
|
||||
#include "asm/d/a/d_a_alink/checkNormalAction__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
u16 daAlink_c::getReadyItem() {
|
||||
return dComIfGp_getSelectItem(mSelectItemId);
|
||||
@@ -16183,11 +16799,11 @@ BOOL daAlink_c::checkGroundSpecialMode() {
|
||||
|
||||
/* 800BA09C-800BA0D0 0B49DC 0034+00 4/4 0/0 0/0 .text commonCheckNextAction__9daAlink_cFi
|
||||
*/
|
||||
void daAlink_c::commonCheckNextAction(int param_0) {
|
||||
int daAlink_c::commonCheckNextAction(int param_0) {
|
||||
if (i_checkWolf()) {
|
||||
checkNextActionWolf(param_0);
|
||||
return checkNextActionWolf(param_0);
|
||||
} else {
|
||||
checkNextAction(param_0);
|
||||
return checkNextAction(param_0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -651,16 +651,16 @@ BOOL daAlink_c::checkCutCancelNextMode(int param_0) {
|
||||
}
|
||||
|
||||
/* 800D27E4-800D2890 0CD124 00AC+00 4/4 0/0 0/0 .text checkDoCutAction__9daAlink_cFv */
|
||||
void daAlink_c::checkDoCutAction() {
|
||||
BOOL daAlink_c::checkDoCutAction() {
|
||||
// event flag 0x2A40: Learned Jump Strike
|
||||
if (doButton() && (i_dComIfGs_isEventBit(0x2A40) || i_checkNoResetFlg3(FLG3_UNK_200))) {
|
||||
procCutLargeJumpChargeInit();
|
||||
return procCutLargeJumpChargeInit();
|
||||
} else if (checkDownAttackState()) {
|
||||
procCutDownInit();
|
||||
return procCutDownInit();
|
||||
} else if (checkCutHeadState()) {
|
||||
procCutHeadInit();
|
||||
return procCutHeadInit();
|
||||
} else {
|
||||
procCutJumpInit(0);
|
||||
return procCutJumpInit(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2851
-74
File diff suppressed because it is too large
Load Diff
+47
-14
@@ -1,7 +1,8 @@
|
||||
/* 800E3830-800E3858 0DE170 0028+00 2/2 0/0 0/0 .text daAlink_checkLightBallA__FP10fopAc_ac_c */
|
||||
static bool daAlink_checkLightBallA(fopAc_ac_c* p_actor) {
|
||||
if (fopAcM_GetName(p_actor) == PROC_Obj_Carry &&
|
||||
static_cast<daObjCarry_c*>(p_actor)->getType() == daObjCarry_c::TYPE_BALL_S) {
|
||||
static_cast<daObjCarry_c*>(p_actor)->getType() == daObjCarry_c::TYPE_BALL_S)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -10,7 +11,8 @@ static bool daAlink_checkLightBallA(fopAc_ac_c* p_actor) {
|
||||
/* 800E3858-800E3880 0DE198 0028+00 2/2 0/0 0/0 .text daAlink_checkLightBallB__FP10fopAc_ac_c */
|
||||
static bool daAlink_checkLightBallB(fopAc_ac_c* p_actor) {
|
||||
if (fopAcM_GetName(p_actor) == PROC_Obj_Carry &&
|
||||
static_cast<daObjCarry_c*>(p_actor)->getType() == daObjCarry_c::TYPE_BALL_S_2) {
|
||||
static_cast<daObjCarry_c*>(p_actor)->getType() == daObjCarry_c::TYPE_BALL_S_2)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -19,7 +21,8 @@ static bool daAlink_checkLightBallB(fopAc_ac_c* p_actor) {
|
||||
/* 800E3880-800E38EC 0DE1C0 006C+00 1/1 0/0 0/0 .text daAlink_searchLightBall__FP10fopAc_ac_cPv */
|
||||
static fopAc_ac_c* daAlink_searchLightBall(fopAc_ac_c* p_actor, void* param_1) {
|
||||
if ((daPy_py_c::checkCarryStartLightBallA() && daAlink_checkLightBallA(p_actor)) ||
|
||||
(daPy_py_c::checkCarryStartLightBallB() && daAlink_checkLightBallB(p_actor))) {
|
||||
(daPy_py_c::checkCarryStartLightBallB() && daAlink_checkLightBallB(p_actor)))
|
||||
{
|
||||
return p_actor;
|
||||
}
|
||||
return NULL;
|
||||
@@ -29,7 +32,7 @@ static fopAc_ac_c* daAlink_searchLightBall(fopAc_ac_c* p_actor, void* param_1) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::checkGrabLineCheck() {
|
||||
asm BOOL daAlink_c::checkGrabLineCheck() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/checkGrabLineCheck__9daAlink_cFv.s"
|
||||
}
|
||||
@@ -76,7 +79,8 @@ bool daAlink_c::setForceGrab(fopAc_ac_c* p_actor, int param_1, int param_2) {
|
||||
(((mEquipItem == NO_ITEM || (param_2 != 0 && checkHookshotItem(mEquipItem)))) &&
|
||||
((i_checkModeFlg(MODE_UNK_10000000) &&
|
||||
(checkHorseNoUpperAnime() || checkHorseTurnAnime())) ||
|
||||
param_2 != 0 && checkHookshotAnime()))) {
|
||||
param_2 != 0 && checkHookshotAnime())))
|
||||
{
|
||||
deleteEquipItem(TRUE, FALSE);
|
||||
setGrabItemActor(p_actor);
|
||||
field_0x33e4 = lit_8785;
|
||||
@@ -156,7 +160,8 @@ asm void daAlink_c::setGrabUpperAnime(f32 param_0) {
|
||||
BOOL daAlink_c::checkGrabRooster() {
|
||||
if (mGrabItemAcKeep.getActor() != NULL &&
|
||||
(fopAcM_GetName(mGrabItemAcKeep.getActor()) == PROC_NI ||
|
||||
fopAcM_GetName(mGrabItemAcKeep.getActor()) == PROC_NPC_TKJ2)) {
|
||||
fopAcM_GetName(mGrabItemAcKeep.getActor()) == PROC_NPC_TKJ2))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -488,7 +493,7 @@ asm int daAlink_c::procGrabStand() {
|
||||
|
||||
/* 800E70C0-800E70FC 0E1A00 003C+00 1/1 0/0 0/0 .text
|
||||
* checkInsectActorName__9daAlink_cFP10fopAc_ac_c */
|
||||
bool daAlink_c::checkInsectActorName(fopAc_ac_c* insectActor) {
|
||||
BOOL daAlink_c::checkInsectActorName(fopAc_ac_c* insectActor) {
|
||||
s16 insectName = fopAcM_GetName(insectActor);
|
||||
|
||||
for (int i = 0; i < 12; i++) {
|
||||
@@ -605,7 +610,7 @@ asm u8 daAlink_c::checkChainEmphasys() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm u8 daAlink_c::searchFmChainPos() {
|
||||
asm BOOL daAlink_c::searchFmChainPos() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/searchFmChainPos__9daAlink_cFv.s"
|
||||
}
|
||||
@@ -629,7 +634,8 @@ bool daAlink_c::checkChainBlockPushPull() {
|
||||
if (actor != NULL) {
|
||||
s16 name = fopAcM_GetName(actor);
|
||||
if (name == PROC_Obj_ChainBlock || name == PROC_Obj_SwChain ||
|
||||
name == PROC_Obj_ChainWall) {
|
||||
name == PROC_Obj_ChainWall)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -695,13 +701,13 @@ int daAlink_c::getWallGrabStatus() {
|
||||
}
|
||||
|
||||
/* 800E7EF4-800E7F18 0E2834 0024+00 1/1 0/0 0/0 .text wallGrabTrigger__9daAlink_cFv */
|
||||
void daAlink_c::wallGrabTrigger() {
|
||||
itemTriggerCheck(BTN_R);
|
||||
BOOL daAlink_c::wallGrabTrigger() {
|
||||
return itemTriggerCheck(BTN_R);
|
||||
}
|
||||
|
||||
/* 800E7F18-800E7F3C 0E2858 0024+00 4/4 0/0 0/0 .text wallGrabButton__9daAlink_cFv */
|
||||
void daAlink_c::wallGrabButton() {
|
||||
itemButtonCheck(BTN_R);
|
||||
BOOL daAlink_c::wallGrabButton() {
|
||||
return itemButtonCheck(BTN_R);
|
||||
}
|
||||
|
||||
/* 800E7F3C-800E80A4 0E287C 0168+00 4/4 0/0 0/0 .text
|
||||
@@ -749,7 +755,8 @@ void daAlink_c::offGoatStopGame() {
|
||||
* checkGoatCatchActor__9daAlink_cFP10fopAc_ac_c */
|
||||
BOOL daAlink_c::checkGoatCatchActor(fopAc_ac_c* param_0) {
|
||||
s16 name = fopAcM_GetName(param_0);
|
||||
return name == PROC_E_GOB || (name == PROC_OBJ_GRA && checkSpecialNpc(param_0)) || name == PROC_COW;
|
||||
return name == PROC_E_GOB || (name == PROC_OBJ_GRA && checkSpecialNpc(param_0)) ||
|
||||
name == PROC_COW;
|
||||
}
|
||||
|
||||
/* 800E8314-800E8334 0E2C54 0020+00 2/2 0/0 0/0 .text getGoatCatchDistance2__9daAlink_cFv
|
||||
@@ -929,6 +936,31 @@ asm int daAlink_c::procGoatCatch() {
|
||||
#pragma pop
|
||||
|
||||
/* 800EA2A8-800EA3AC 0E4BE8 0104+00 2/2 0/0 0/0 .text procGoatStrokeInit__9daAlink_cFv */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::procGoatStrokeInit() {
|
||||
if (mEquipItem != NO_ITEM) {
|
||||
return procPreActionUnequipInit(PROC_GOAT_STROKE, field_0x27f4);
|
||||
}
|
||||
|
||||
commonProcInit(PROC_GOAT_STROKE);
|
||||
field_0x280c.setData(field_0x27f4);
|
||||
setSingleAnimeBase(ANM_COW_STROKE);
|
||||
|
||||
static_cast<daCow_c*>(field_0x280c.getActor())->setNaderu();
|
||||
mNormalSpeed = 0.0f;
|
||||
|
||||
if ((s16)(fopAcM_searchActorAngleY(field_0x27f4, this) - field_0x27f4->shape_angle.y) > 0) {
|
||||
shape_angle.y = field_0x27f4->shape_angle.y - 0x4000;
|
||||
} else {
|
||||
shape_angle.y = field_0x27f4->shape_angle.y + 0x4000;
|
||||
}
|
||||
|
||||
current.pos.x = field_0x27f4->current.pos.x - cM_ssin(shape_angle.y) * 100.0f;
|
||||
current.pos.z = field_0x27f4->current.pos.z - cM_scos(shape_angle.y) * 100.0f;
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -937,6 +969,7 @@ asm int daAlink_c::procGoatStrokeInit() {
|
||||
#include "asm/d/a/d_a_alink/procGoatStrokeInit__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 800EA3AC-800EA3F4 0E4CEC 0048+00 1/0 0/0 0/0 .text procGoatStroke__9daAlink_cFv */
|
||||
int daAlink_c::procGoatStroke() {
|
||||
|
||||
@@ -219,7 +219,7 @@ asm int daAlink_c::procGuardBreak() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm bool daAlink_c::procTurnMoveInit(int param_0) {
|
||||
asm int daAlink_c::procTurnMoveInit(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/procTurnMoveInit__9daAlink_cFi.s"
|
||||
}
|
||||
|
||||
@@ -264,7 +264,7 @@ int daAlink_c::checkNextActionSwim() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::checkSwimAction(int param_0) {
|
||||
asm int daAlink_c::checkSwimAction(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/checkSwimAction__9daAlink_cFi.s"
|
||||
}
|
||||
|
||||
@@ -1127,7 +1127,7 @@ void daPy_py_c::skipPortalObjWarp() {
|
||||
}
|
||||
|
||||
/* 80141840-80141848 13C180 0008+00 1/0 0/0 0/0 .text checkTreasureRupeeReturn__9daPy_py_cCFi */
|
||||
bool daPy_py_c::checkTreasureRupeeReturn(int param_0) const {
|
||||
BOOL daPy_py_c::checkTreasureRupeeReturn(int param_0) const {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -752,7 +752,7 @@ static int it;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dDemo_actor_c::getDemoIDData(int* param_0, int* param_1, int* param_2, u16* param_3,
|
||||
asm int dDemo_actor_c::getDemoIDData(int* param_0, int* param_1, int* param_2, u16* param_3,
|
||||
u8* param_4) {
|
||||
nofralloc
|
||||
#include "asm/d/d_demo/getDemoIDData__13dDemo_actor_cFPiPiPiPUsPUc.s"
|
||||
|
||||
Reference in New Issue
Block a user