mirror of
https://github.com/zeldaret/tp
synced 2026-07-11 15:28:38 -04:00
most of d_a_alink_wolf done / some misc (#1993)
* wip on alink_wolf * setup procvar unions * most of d_a_alink_wolf done + some misc
This commit is contained in:
+537
-77
@@ -33,15 +33,12 @@
|
||||
#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/tag/d_a_tag_wljump/d_a_tag_wljump.h"
|
||||
#include "rel/d/a/obj/d_a_obj_sekizoa/d_a_obj_sekizoa.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct daObj_Sekizoa_c {
|
||||
/* 801312C8 */ void setWolfHowling();
|
||||
};
|
||||
|
||||
struct daObjMovebox {
|
||||
struct Act_c {
|
||||
struct Prm_e {};
|
||||
@@ -4787,8 +4784,8 @@ COMPILER_STRIP_GATE(0x8038FAC0, &l_crawlTopUpOffset);
|
||||
/* 8038FACC-8038FAD8 01C12C 000C+00 0/1 0/0 0/0 .rodata l_wolfLieTopUpOffset */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const l_wolfLieTopUpOffset[12] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x42, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
SECTION_RODATA static Vec const l_wolfLieTopUpOffset = {
|
||||
0.0f, 75.0f, 0.0f
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8038FACC, &l_wolfLieTopUpOffset);
|
||||
#pragma pop
|
||||
@@ -4796,8 +4793,8 @@ COMPILER_STRIP_GATE(0x8038FACC, &l_wolfLieTopUpOffset);
|
||||
/* 8038FAD8-8038FAE4 01C138 000C+00 0/1 0/0 0/0 .rodata l_crawlSideOffset */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const l_crawlSideOffset[12] = {
|
||||
0x42, 0x5C, 0x00, 0x00, 0x42, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
SECTION_RODATA static Vec const l_crawlSideOffset = {
|
||||
55.0f, 80.0f, 0.0f
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8038FAD8, &l_crawlSideOffset);
|
||||
#pragma pop
|
||||
@@ -4805,8 +4802,8 @@ COMPILER_STRIP_GATE(0x8038FAD8, &l_crawlSideOffset);
|
||||
/* 8038FAE4-8038FAF0 01C144 000C+00 0/1 0/0 0/0 .rodata l_wolfLieSideOffset */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const l_wolfLieSideOffset[12] = {
|
||||
0x42, 0x5C, 0x00, 0x00, 0x42, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
SECTION_RODATA static Vec const l_wolfLieSideOffset = {
|
||||
55.0f, 75.0f, 0.0f
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8038FAE4, &l_wolfLieSideOffset);
|
||||
#pragma pop
|
||||
@@ -6228,28 +6225,41 @@ SECTION_RODATA static u32 const label[12] = {
|
||||
COMPILER_STRIP_GATE(0x80391E48, &label);
|
||||
|
||||
/* 80391E78-80391E8C 01E4D8 0014+00 1/1 0/0 0/0 .rodata normalType0$50859 */
|
||||
SECTION_RODATA static u8 const normalType0[20] = {
|
||||
0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
|
||||
0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
SECTION_RODATA static int const normalType0[] = {
|
||||
3, 3, 3, 0, 0,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80391E78, &normalType0);
|
||||
|
||||
/* 80391E8C-80391EA0 01E4EC 0014+00 1/1 0/0 0/0 .rodata normalType1$50860 */
|
||||
SECTION_RODATA static u8 const normalType1_50860[20] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
|
||||
SECTION_RODATA static int const normalType1_50860[] = {
|
||||
0, 0, 0, 3, 3,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80391E8C, &normalType1_50860);
|
||||
|
||||
struct daAlink_WCutParamTbl {
|
||||
/* 0x0 */ daAlink_c::daAlink_WANM m_anmID;
|
||||
/* 0x4 */ u8 m_cutType;
|
||||
}; // Size: 0x8
|
||||
|
||||
/* 80391EA0-80391EC0 01E500 0020+00 0/1 0/0 0/0 .rodata dataTabl$51470 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const dataTabl[32] = {
|
||||
0x00, 0x00, 0x00, 0x40, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x2E, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x43, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x2D, 0x00, 0x00, 0x00,
|
||||
static const daAlink_WCutParamTbl dataTabl[] = {
|
||||
{
|
||||
daAlink_c::WANM_ATTACK_B_LEFT,
|
||||
daAlink_c::CUT_TYPE_WOLF_B_LEFT,
|
||||
},
|
||||
{
|
||||
daAlink_c::WANM_ATTACK_B_FRONT,
|
||||
daAlink_c::CUT_TYPE_WOLF_B_FRONT,
|
||||
},
|
||||
{
|
||||
daAlink_c::WANM_ATTACK_B_TAIL,
|
||||
daAlink_c::CUT_TYPE_WOLF_B_BACK,
|
||||
},
|
||||
{
|
||||
daAlink_c::WANM_ATTACK_B_RIGHT,
|
||||
daAlink_c::CUT_TYPE_WOLF_B_RIGHT,
|
||||
},
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80391EA0, &dataTabl);
|
||||
#pragma pop
|
||||
|
||||
/* 80391EC0-80391ECC 01E520 000C+00 1/1 0/0 0/0 .rodata arm1Vec$56040 */
|
||||
SECTION_RODATA static u8 const arm1Vec[12] = {
|
||||
@@ -11461,21 +11471,133 @@ SECTION_DATA static u8 l_jntColPos17[12] = {
|
||||
};
|
||||
|
||||
/* 803B29AC-803B2A84 -00001 00D8+00 1/1 0/0 0/0 .data l_jntColData */
|
||||
SECTION_DATA static void* l_jntColData[54] = {
|
||||
(void*)0x01000001, (void*)0x41900000, (void*)&l_jntColPos0, (void*)0x00000004,
|
||||
(void*)0x41800000, (void*)&l_jntColPos1, (void*)0x01000007, (void*)0x40E00000,
|
||||
(void*)&l_jntColPos2, (void*)0x0100000C, (void*)0x40E00000, (void*)&l_jntColPos2,
|
||||
(void*)0x01000008, (void*)0x40C00000, (void*)&l_jntColPos4, (void*)0x0100000D,
|
||||
(void*)0x40C00000, (void*)&l_jntColPos4, (void*)0x00000009, (void*)0x40C00000,
|
||||
(void*)&l_jntColPos6, (void*)0x0000000E, (void*)0x40C00000, (void*)&l_jntColPos6,
|
||||
(void*)0x01000010, (void*)0x41900000, (void*)&l_jntColPos8, (void*)0x01000012,
|
||||
(void*)0x41000000, (void*)&l_jntColPos9, (void*)0x01000017, (void*)0x41000000,
|
||||
(void*)&l_jntColPos10, (void*)0x01000013, (void*)0x40E00000, (void*)&l_jntColPos11,
|
||||
(void*)0x01000018, (void*)0x40E00000, (void*)&l_jntColPos12, (void*)0x01000014,
|
||||
(void*)0x40C00000, (void*)&l_jntColPos13, (void*)0x01000019, (void*)0x40C00000,
|
||||
(void*)&l_jntColPos14, (void*)0x0203000F, (void*)0x42200000, (void*)&l_jntColPos15,
|
||||
(void*)0x02030005, (void*)0x42200000, (void*)&l_jntColPos16, (void*)0x0003000F,
|
||||
(void*)0x42340000, (void*)&l_jntColPos17,
|
||||
static dJntColData_c l_jntColData[] = {
|
||||
{
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
18.0f,
|
||||
(Vec*)l_jntColPos0,
|
||||
},
|
||||
{
|
||||
0,
|
||||
0,
|
||||
4,
|
||||
16.0f,
|
||||
(Vec*)l_jntColPos1,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
7,
|
||||
7.0f,
|
||||
(Vec*)l_jntColPos2,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
12,
|
||||
7.0f,
|
||||
(Vec*)l_jntColPos2,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
8,
|
||||
6.0f,
|
||||
(Vec*)l_jntColPos4,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
13,
|
||||
6.0f,
|
||||
(Vec*)l_jntColPos4,
|
||||
},
|
||||
{
|
||||
0,
|
||||
0,
|
||||
9,
|
||||
6.0f,
|
||||
(Vec*)l_jntColPos6,
|
||||
},
|
||||
{
|
||||
0,
|
||||
0,
|
||||
14,
|
||||
6.0f,
|
||||
(Vec*)l_jntColPos6,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
16,
|
||||
18.0f,
|
||||
(Vec*)l_jntColPos8,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
18,
|
||||
8.0f,
|
||||
(Vec*)l_jntColPos9,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
23,
|
||||
8.0f,
|
||||
(Vec*)l_jntColPos10,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
19,
|
||||
7.0f,
|
||||
(Vec*)l_jntColPos11,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
24,
|
||||
7.0f,
|
||||
(Vec*)l_jntColPos12,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
20,
|
||||
6.0f,
|
||||
(Vec*)l_jntColPos13,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
25,
|
||||
6.0f,
|
||||
(Vec*)l_jntColPos14,
|
||||
},
|
||||
{
|
||||
2,
|
||||
3,
|
||||
15,
|
||||
40.0f,
|
||||
(Vec*)l_jntColPos15,
|
||||
},
|
||||
{
|
||||
2,
|
||||
3,
|
||||
5,
|
||||
40.0f,
|
||||
(Vec*)l_jntColPos16,
|
||||
},
|
||||
{
|
||||
0,
|
||||
3,
|
||||
15,
|
||||
45.0f,
|
||||
(Vec*)l_jntColPos17,
|
||||
},
|
||||
};
|
||||
|
||||
/* 803B2A84-803B2A9C 00FBA4 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos0 */
|
||||
@@ -11538,25 +11660,133 @@ SECTION_DATA static u8 l_wolfJntColPos16[24] = {
|
||||
};
|
||||
|
||||
/* 803B2B68-803B2C40 -00001 00D8+00 1/1 0/0 0/0 .data l_wolfJntColData */
|
||||
SECTION_DATA static void* l_wolfJntColData[54] = {
|
||||
(void*)0x01000001, (void*)0x41E00000, (void*)&l_wolfJntColPos0,
|
||||
(void*)0x00000004, (void*)0x41C80000, (void*)&l_wolfJntColPos1,
|
||||
(void*)0x01000010, (void*)0x41200000, (void*)&l_wolfJntColPos2,
|
||||
(void*)0x01000015, (void*)0x41200000, (void*)&l_wolfJntColPos2,
|
||||
(void*)0x01000011, (void*)0x40C00000, (void*)&l_wolfJntColPos4,
|
||||
(void*)0x01000016, (void*)0x40C00000, (void*)&l_wolfJntColPos4,
|
||||
(void*)0x01000012, (void*)0x40800000, (void*)&l_wolfJntColPos6,
|
||||
(void*)0x01000017, (void*)0x40800000, (void*)&l_wolfJntColPos6,
|
||||
(void*)0x01000013, (void*)0x40800000, (void*)&l_wolfJntColPos8,
|
||||
(void*)0x01000018, (void*)0x40800000, (void*)&l_wolfJntColPos8,
|
||||
(void*)0x0100001C, (void*)0x41300000, (void*)&l_wolfJntColPos10,
|
||||
(void*)0x01000021, (void*)0x41300000, (void*)&l_wolfJntColPos10,
|
||||
(void*)0x0100001D, (void*)0x40E00000, (void*)&l_wolfJntColPos12,
|
||||
(void*)0x01000022, (void*)0x40E00000, (void*)&l_wolfJntColPos12,
|
||||
(void*)0x0100001E, (void*)0x40A00000, (void*)&l_wolfJntColPos14,
|
||||
(void*)0x01000023, (void*)0x40A00000, (void*)&l_wolfJntColPos14,
|
||||
(void*)0x0100001F, (void*)0x40C00000, (void*)&l_wolfJntColPos16,
|
||||
(void*)0x01000024, (void*)0x40A00000, (void*)&l_wolfJntColPos16,
|
||||
static dJntColData_c l_wolfJntColData[] = {
|
||||
{
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
28.0f,
|
||||
(Vec*)l_wolfJntColPos0,
|
||||
},
|
||||
{
|
||||
0,
|
||||
0,
|
||||
4,
|
||||
25.0f,
|
||||
(Vec*)l_wolfJntColPos1,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
16,
|
||||
10.0f,
|
||||
(Vec*)l_wolfJntColPos2,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
21,
|
||||
10.0f,
|
||||
(Vec*)l_wolfJntColPos2,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
17,
|
||||
6.0f,
|
||||
(Vec*)l_wolfJntColPos4,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
22,
|
||||
6.0f,
|
||||
(Vec*)l_wolfJntColPos4,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
18,
|
||||
4.0f,
|
||||
(Vec*)l_wolfJntColPos6,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
23,
|
||||
4.0f,
|
||||
(Vec*)l_wolfJntColPos6,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
19,
|
||||
4.0f,
|
||||
(Vec*)l_wolfJntColPos8,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
24,
|
||||
4.0f,
|
||||
(Vec*)l_wolfJntColPos8,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
28,
|
||||
11.0f,
|
||||
(Vec*)l_wolfJntColPos10,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
33,
|
||||
11.0f,
|
||||
(Vec*)l_wolfJntColPos10,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
29,
|
||||
7.0f,
|
||||
(Vec*)l_wolfJntColPos12,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
34,
|
||||
7.0f,
|
||||
(Vec*)l_wolfJntColPos12,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
30,
|
||||
5.0f,
|
||||
(Vec*)l_wolfJntColPos14,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
35,
|
||||
5.0f,
|
||||
(Vec*)l_wolfJntColPos14,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
31,
|
||||
6.0f,
|
||||
(Vec*)l_wolfJntColPos16,
|
||||
},
|
||||
{
|
||||
1,
|
||||
0,
|
||||
36,
|
||||
5.0f,
|
||||
(Vec*)l_wolfJntColPos16,
|
||||
},
|
||||
};
|
||||
|
||||
/* 803B2C40-803B2C50 00FD60 000D+03 0/1 0/0 0/0 .data defaultPortal$39238 */
|
||||
@@ -12285,8 +12515,8 @@ extern "C" asm void __dt__14J3DMaterialAnmFv() {
|
||||
|
||||
/* 800A48F0-800A4910 09F230 0020+00 1/1 0/0 0/0 .text daAlink_createHeap__FP10fopAc_ac_c
|
||||
*/
|
||||
static int daAlink_createHeap(fopAc_ac_c* link) {
|
||||
return ((daAlink_c*)link)->createHeap();
|
||||
static int daAlink_createHeap(fopAc_ac_c* i_this) {
|
||||
return ((daAlink_c*)i_this)->createHeap();
|
||||
}
|
||||
|
||||
bool daPy_py_c::checkWoodSwordEquip() {
|
||||
@@ -13895,7 +14125,7 @@ asm void daAlink_c::setCollision() {
|
||||
#ifdef NONMATCHING
|
||||
f32 daAlink_c::getBaseAnimeFrame() const {
|
||||
if (mProcID == PROC_SUMOU_ACTION && mSpeedModifier > 0.0f) {
|
||||
return field_0x300c;
|
||||
return mProcVar2.field_0x300c;
|
||||
}
|
||||
|
||||
return mUnderFrameCtrl[0].getFrame();
|
||||
@@ -15513,7 +15743,7 @@ 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
|
||||
// almost, small branch issues
|
||||
#ifdef NONMATCHING
|
||||
void daAlink_c::decideCommonDoStatus() {
|
||||
if (!i_checkFmChainGrabAnime() && i_dComIfGp_getDoStatus() == 0) {
|
||||
@@ -16648,9 +16878,9 @@ BOOL daAlink_c::checkItemChangeFromButton() {
|
||||
} else {
|
||||
u8 i;
|
||||
for (i = 0; i < 2; i++) {
|
||||
int tmp = checkNewItemChange(i);
|
||||
if (tmp && itemTriggerCheck(1 << i)) {
|
||||
return changeItemTriggerKeepProc(i, tmp);
|
||||
int proc_type = checkNewItemChange(i);
|
||||
if (proc_type != 0 && itemTriggerCheck(1 << i)) {
|
||||
return changeItemTriggerKeepProc(i, proc_type);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16808,10 +17038,8 @@ int daAlink_c::commonCheckNextAction(int param_0) {
|
||||
}
|
||||
|
||||
/* 800BA0D0-800BA6A0 0B4A10 05D0+00 91/91 0/0 0/0 .text checkNextAction__9daAlink_cFi */
|
||||
// checkAttentionLock issue / literals
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
int daAlink_c::checkNextAction(int param_0) {
|
||||
f32 temp_f31 = field_0x594;
|
||||
|
||||
@@ -16933,7 +17161,6 @@ int daAlink_c::checkNextAction(int param_0) {
|
||||
|
||||
return ret;
|
||||
}
|
||||
#pragma pop
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
@@ -17479,7 +17706,7 @@ void daAlink_c::posMove() {
|
||||
|
||||
if (checkRootTransClearMode()) {
|
||||
cXyz sp78 = field_0x34d4 - sp108;
|
||||
if (mProcID == PROC_CLIMB_UP_START && field_0x300e.z != 0) {
|
||||
if (mProcID == PROC_CLIMB_UP_START && mProcVar3.field_0x300e.z != 0) {
|
||||
sp78 = cXyz::Zero;
|
||||
}
|
||||
|
||||
@@ -18453,14 +18680,14 @@ bool daAlink_c::checkNotAutoJumpStage() {
|
||||
}
|
||||
|
||||
/* 800C0678-800C077C 0BAFB8 0104+00 3/3 0/0 0/0 .text checkCastleTownUseItem__9daAlink_cFUs */
|
||||
bool daAlink_c::checkCastleTownUseItem(u16 item_id) {
|
||||
bool daAlink_c::checkCastleTownUseItem(u16 i_itemNo) {
|
||||
if (checkNotBattleStage()) {
|
||||
if (item_id == KANTERA || checkTradeItem(item_id) ||
|
||||
(item_id == DUNGEON_BACK && checkLv7DungeonShop()) ||
|
||||
(checkRoomSpecial() && (item_id == EMPTY_BOTTLE || checkDungeonWarpItem(item_id))) ||
|
||||
(checkStageName("R_SP128") && item_id == COPY_ROD) ||
|
||||
(checkLv2DungeonRoomSpecial() && item_id == HVY_BOOTS) ||
|
||||
(checkBottleItem(item_id) && item_id != EMPTY_BOTTLE))
|
||||
if (i_itemNo == KANTERA || checkTradeItem(i_itemNo) ||
|
||||
(i_itemNo == DUNGEON_BACK && checkLv7DungeonShop()) ||
|
||||
(checkRoomSpecial() && (i_itemNo == EMPTY_BOTTLE || checkDungeonWarpItem(i_itemNo))) ||
|
||||
(checkStageName("R_SP128") && i_itemNo == COPY_ROD) ||
|
||||
(checkLv2DungeonRoomSpecial() && i_itemNo == HVY_BOOTS) ||
|
||||
(checkBottleItem(i_itemNo) && i_itemNo != EMPTY_BOTTLE))
|
||||
{
|
||||
return true;
|
||||
} else {
|
||||
@@ -18470,7 +18697,92 @@ bool daAlink_c::checkCastleTownUseItem(u16 item_id) {
|
||||
return true;
|
||||
}
|
||||
|
||||
enum daAlink_ItemProc {
|
||||
/* 0 */ ITEM_PROC_NONE,
|
||||
/* 1 */ ITEM_PROC_BOOTS_EQUIP,
|
||||
/* 2 */ ITEM_PROC_SET_HVYBOOTS,
|
||||
/* 3 */ ITEM_PROC_BOTTLE_DRINK,
|
||||
/* 4 */ ITEM_PROC_SPINNER_READY,
|
||||
/* 5 */ ITEM_PROC_DUNGEON_WARP_READY,
|
||||
/* 6 */ ITEM_PROC_BOTTLE_OPEN,
|
||||
/* 7 */ ITEM_PROC_FISHING_FOOD,
|
||||
/* 8 */ ITEM_PROC_KANDELAAR_POUR,
|
||||
/* 9 */ ITEM_PROC_SUBJECTIVITY,
|
||||
/* 10 */ ITEM_PROC_PICK_PUT,
|
||||
/* 11 */ ITEM_PROC_OFF_KANDELAAR,
|
||||
/* 12 */ ITEM_PROC_COMMON_CHANGE_ITEM,
|
||||
/* 13 */ ITEM_PROC_BOTTLE_SWING,
|
||||
/* 14 */ ITEM_PROC_NOT_USE_ITEM,
|
||||
/* 15 */ ITEM_PROC_GRASS_WHISTLE,
|
||||
};
|
||||
|
||||
/* 800C077C-800C0A9C 0BB0BC 0320+00 1/1 0/0 0/0 .text changeItemTriggerKeepProc__9daAlink_cFUci */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::changeItemTriggerKeepProc(u8 i_selItemIdx, int i_procType) {
|
||||
u32 sel_item = dComIfGp_getSelectItem(i_selItemIdx);
|
||||
mSelectItemId = i_selItemIdx;
|
||||
|
||||
if (i_procType == ITEM_PROC_GRASS_WHISTLE) {
|
||||
procGrassWhistleWaitInit(3, -1, 0, 0, NULL);
|
||||
} else if (i_procType == ITEM_PROC_BOTTLE_DRINK) {
|
||||
if (i_checkReinRide()) {
|
||||
procHorseBottleDrinkInit(sel_item);
|
||||
} else if (checkCanoeRide()) {
|
||||
procCanoeBottleDrinkInit(sel_item);
|
||||
} else {
|
||||
procBottleDrinkInit(sel_item);
|
||||
}
|
||||
} else if (i_procType == ITEM_PROC_KANDELAAR_POUR) {
|
||||
if (i_checkReinRide()) {
|
||||
procHorseKandelaarPourInit();
|
||||
} else if (checkCanoeRide()) {
|
||||
procCanoeKandelaarPourInit();
|
||||
} else {
|
||||
procKandelaarPourInit();
|
||||
}
|
||||
} else if (i_procType == ITEM_PROC_FISHING_FOOD) {
|
||||
procFishingFoodInit();
|
||||
} else if (i_procType == ITEM_PROC_BOOTS_EQUIP) {
|
||||
procBootsEquipInit();
|
||||
} else if (i_procType == ITEM_PROC_SET_HVYBOOTS) {
|
||||
setHeavyBoots(1);
|
||||
} else if (i_procType == ITEM_PROC_SPINNER_READY) {
|
||||
procSpinnerReadyInit();
|
||||
} else if (i_procType == ITEM_PROC_DUNGEON_WARP_READY) {
|
||||
procDungeonWarpReadyInit();
|
||||
} else if (i_procType == ITEM_PROC_BOTTLE_OPEN) {
|
||||
procBottleOpenInit(sel_item);
|
||||
} else if (i_procType == ITEM_PROC_BOTTLE_SWING) {
|
||||
procBottleSwingInit(NULL, 0);
|
||||
} else if (i_procType == ITEM_PROC_NOT_USE_ITEM) {
|
||||
procNotUseItemInit(sel_item);
|
||||
} else if (i_procType == ITEM_PROC_SUBJECTIVITY) {
|
||||
procCoSubjectivityInit();
|
||||
dComIfGp_setPlayerStatus0(0, 0x200000);
|
||||
seStartSystem(Z2SE_AL_HAWK_EYE_PUTON);
|
||||
} else if (i_procType == ITEM_PROC_PICK_PUT) {
|
||||
procPickPutInit(1);
|
||||
} else if (i_procType == ITEM_PROC_OFF_KANDELAAR) {
|
||||
offKandelaarModel();
|
||||
} else if (i_procType == ITEM_PROC_COMMON_CHANGE_ITEM) {
|
||||
field_0x2fde = NO_ITEM;
|
||||
itemEquip(sel_item);
|
||||
|
||||
if (i_dComIfGp_checkPlayerStatus0(0, 0x2000) &&
|
||||
((checkBowAndSlingItem(field_0x2fde) || checkHookshotItem(field_0x2fde) ||
|
||||
field_0x2fde == COPY_ROD) ||
|
||||
field_0x2fde == BOOMERANG))
|
||||
{
|
||||
commonChangeItem();
|
||||
resetUpperAnime(UPPER_2, -1.0f);
|
||||
checkItemActionInitStart();
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -18479,9 +18791,156 @@ asm int daAlink_c::changeItemTriggerKeepProc(u8 param_0, int param_1) {
|
||||
#include "asm/d/a/d_a_alink/changeItemTriggerKeepProc__9daAlink_cFUci.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 800C0A9C-800C12DC 0BB3DC 0840+00 1/1 0/0 0/0 .text checkNewItemChange__9daAlink_cFUc
|
||||
*/
|
||||
/**
|
||||
* Determines whether an item action can occur, and which action to use.
|
||||
*
|
||||
* @return a `daAlink_ItemProc` value corresponding to the `PROC` function to run in `changeItemTriggerKeepProc`
|
||||
*/
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::checkNewItemChange(u8 param_0) {
|
||||
u32 sel_item = dComIfGp_getSelectItem(param_0);
|
||||
|
||||
if (checkSpinnerRide() || sel_item == BOMB_BAG_LV1 ||
|
||||
((sel_item == KANTERA || checkOilBottleItem(sel_item)) &&
|
||||
checkWaterInKandelaarOffset(mWaterY)) ||
|
||||
(checkCanoeRide() && checkStageName("F_SP127")) || checkCloudSea() ||
|
||||
((i_checkModeFlg(0x40000) || i_checkNoResetFlg0(FLG0_UNDERWATER)) &&
|
||||
!checkAcceptUseItemInWater(sel_item)) ||
|
||||
(i_checkModeFlg(0x40000) && sel_item == WATER_BOMB) || !checkCastleTownUseItem(sel_item) ||
|
||||
(checkBoardRide() && sel_item != 0x103) ||
|
||||
(i_checkModeFlg(0x400) &&
|
||||
(sel_item == EMPTY_BOTTLE || sel_item == POKE_BOMB || sel_item == IRONBALL ||
|
||||
sel_item == COPY_ROD || checkFishingRodItem(sel_item))) ||
|
||||
((field_0x2fa8 == 6 || field_0x2fbd == 1 || field_0x2fbd == 2 ||
|
||||
mWaterY - current.pos.y > 45.0f ||
|
||||
(field_0x2fbc == 6 && mWaterY - current.pos.y >= 0.0f) || field_0x2fbd == 3) &&
|
||||
sel_item == SPINNER) ||
|
||||
(checkBossRoom() && checkDungeonWarpItem(sel_item)) ||
|
||||
(sel_item == DUNGEON_EXIT &&
|
||||
(checkLv7DungeonShop() ||
|
||||
(checkStageName("D_MN07") && i_fopAcM_isSwitch(this, 0x4D) &&
|
||||
!i_fopAcM_isSwitch(this, 0x18)) ||
|
||||
(checkStageName("D_MN10") && fopAcM_GetRoomNo(this) == 15))) ||
|
||||
(i_checkMagneBootsOn() && sel_item != 0x103 && !checkDrinkBottleItem(sel_item) &&
|
||||
sel_item != HVY_BOOTS && !checkBowItem(sel_item)))
|
||||
{
|
||||
return ITEM_PROC_NONE;
|
||||
} else if (sel_item == HVY_BOOTS || checkDungeonWarpItem(sel_item) ||
|
||||
checkTradeItem(sel_item) ||
|
||||
(checkBottleItem(sel_item) && sel_item != EMPTY_BOTTLE) || sel_item == SPINNER ||
|
||||
sel_item == POKE_BOMB || sel_item == HORSE_FLUTE || sel_item == HAWK_EYE)
|
||||
{
|
||||
if (i_checkReinRide() || checkCanoeRide()) {
|
||||
if (checkDrinkBottleItem(sel_item)) {
|
||||
return ITEM_PROC_BOTTLE_DRINK;
|
||||
}
|
||||
|
||||
if (checkOilBottleItem(sel_item) && checkItemSetButton(0x48) != 2) {
|
||||
return ITEM_PROC_KANDELAAR_POUR;
|
||||
}
|
||||
} else if (sel_item == HVY_BOOTS) {
|
||||
if (!checkBoardRide()) {
|
||||
if ((mLinkAcch.ChkGroundHit() && !i_checkModeFlg(0x70C52)) ||
|
||||
(i_checkMagneBootsOn() && cBgW_CheckBGround(mMagneBootsTopVec.y)) ||
|
||||
mProcID == PROC_HANG_CLIMB)
|
||||
{
|
||||
return ITEM_PROC_BOOTS_EQUIP;
|
||||
}
|
||||
return ITEM_PROC_SET_HVYBOOTS;
|
||||
}
|
||||
} else if (checkDrinkBottleItem(sel_item) && i_checkMagneBootsOn()) {
|
||||
if (cBgW_CheckBGround(mMagneBootsTopVec.y)) {
|
||||
return ITEM_PROC_BOTTLE_DRINK;
|
||||
}
|
||||
} else if (mLinkAcch.ChkGroundHit()) {
|
||||
if (!i_checkModeFlg(0x70C52)) {
|
||||
if (sel_item == SPINNER) {
|
||||
cXyz sp38(current.pos.x, current.pos.y + l_autoUpHeight, current.pos.z);
|
||||
cXyz sp2C(sp38);
|
||||
cXyz sp20;
|
||||
|
||||
s16 var_r30 = 0;
|
||||
for (int i = 0; i < 4; i++, var_r30 += 0x2000) {
|
||||
sp2C.x = sp38.x + cM_ssin(var_r30) * 120.0f;
|
||||
sp2C.z = sp38.z + cM_scos(var_r30) * 120.0f;
|
||||
|
||||
if (commonLineCheck(&sp38, &sp2C)) {
|
||||
sp2C.x = (sp38.x * 2.0f) - sp2C.x;
|
||||
sp2C.z = (sp38.z * 2.0f) - sp2C.z;
|
||||
sp20 = mLinkLinChk.i_GetCross();
|
||||
|
||||
if (commonLineCheck(&sp38, &sp2C)) {
|
||||
if (mLinkLinChk.i_GetCross().abs2XZ(sp20) < 14400.0f) {
|
||||
return ITEM_PROC_NONE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ITEM_PROC_SPINNER_READY;
|
||||
} else if (checkDungeonWarpItem(sel_item)) {
|
||||
return ITEM_PROC_DUNGEON_WARP_READY;
|
||||
} else if (checkItemSetButton(0x108) != 2 &&
|
||||
(sel_item == WORM || sel_item == BEE_CHILD))
|
||||
{
|
||||
int temp_r3_8 = dComIfGp_getSelectItem(checkItemSetButton(0x108));
|
||||
if (temp_r3_8 == WORM_ROD || temp_r3_8 == JEWEL_WORM_ROD) {
|
||||
if (sel_item == BEE_CHILD) {
|
||||
return ITEM_PROC_BOTTLE_DRINK;
|
||||
}
|
||||
return ITEM_PROC_NONE;
|
||||
}
|
||||
if (sel_item == BEE_CHILD &&
|
||||
(temp_r3_8 == BEE_ROD || temp_r3_8 == JEWEL_BEE_ROD))
|
||||
{
|
||||
return ITEM_PROC_BOTTLE_DRINK;
|
||||
}
|
||||
return ITEM_PROC_FISHING_FOOD;
|
||||
} else if (checkDrinkBottleItem(sel_item)) {
|
||||
return ITEM_PROC_BOTTLE_DRINK;
|
||||
} else if (checkOpenBottleItem(sel_item)) {
|
||||
return ITEM_PROC_BOTTLE_OPEN;
|
||||
} else if (checkTradeItem(sel_item)) {
|
||||
return ITEM_PROC_NOT_USE_ITEM;
|
||||
} else if (sel_item == HORSE_FLUTE) {
|
||||
return ITEM_PROC_GRASS_WHISTLE;
|
||||
} else if (checkOilBottleItem(sel_item) && checkItemSetButton(0x48) != 2) {
|
||||
return ITEM_PROC_KANDELAAR_POUR;
|
||||
} else if (sel_item == HAWK_EYE) {
|
||||
if (acceptSubjectModeChange()) {
|
||||
return ITEM_PROC_SUBJECTIVITY;
|
||||
}
|
||||
} else if (sel_item == POKE_BOMB && dComIfGp_getSelectItemNum(param_0) &&
|
||||
field_0x2fcf < 2)
|
||||
{
|
||||
return ITEM_PROC_PICK_PUT;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (sel_item != NO_ITEM && mEquipItem != sel_item) {
|
||||
if ((checkBombItem(sel_item) && !dComIfGp_getSelectItemNum(param_0)) ||
|
||||
((sel_item == NORMAL_BOMB || sel_item == WATER_BOMB) && mActiveBombNum >= 3) ||
|
||||
(sel_item == IRONBALL && (!mLinkAcch.ChkGroundHit() || i_checkModeFlg(0x70C52))) ||
|
||||
(sel_item == KANTERA && (i_checkNoResetFlg0(FLG0_UNDERWATER) ||
|
||||
i_checkEndResetFlg1(ERFLG1_UNK_4) || i_checkModeFlg(0x40000))))
|
||||
{
|
||||
return ITEM_PROC_NONE;
|
||||
}
|
||||
return ITEM_PROC_COMMON_CHANGE_ITEM;
|
||||
}
|
||||
|
||||
if (mEquipItem == sel_item && mSelectItemId != param_0 && mEquipItem == EMPTY_BOTTLE) {
|
||||
return ITEM_PROC_BOTTLE_SWING;
|
||||
}
|
||||
|
||||
return ITEM_PROC_NONE;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -18490,6 +18949,7 @@ asm int daAlink_c::checkNewItemChange(u8 param_0) {
|
||||
#include "asm/d/a/d_a_alink/checkNewItemChange__9daAlink_cFUc.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 800C12DC-800C1704 0BBC1C 0428+00 67/67 0/0 0/0 .text deleteEquipItem__9daAlink_cFii */
|
||||
#pragma push
|
||||
@@ -18598,7 +19058,7 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) {
|
||||
initForceRideHorse();
|
||||
}
|
||||
|
||||
if (field_0x300c != 0) {
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
changeWarpMaterial(1);
|
||||
}
|
||||
} else if (mProcID == PROC_GRAB_STAND) {
|
||||
|
||||
@@ -2911,7 +2911,7 @@ const daAlinkHIO_wlRope_c1 daAlinkHIO_wlRope_c0::m = {
|
||||
/* 8038F4A4-8038F4E0 01BB04 003C+00 0/1 0/0 0/0 .rodata m__22daAlinkHIO_wlAtWaLr_c0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
const daAlinkHIO_wlAtWaLr_c1 daAlinkHIO_wlAtWaLr_c0::m = {
|
||||
const daAlinkHIO_wlAtWait_c1 daAlinkHIO_wlAtWaLr_c0::m = {
|
||||
{
|
||||
41,
|
||||
0.9f,
|
||||
@@ -2936,7 +2936,7 @@ const daAlinkHIO_wlAtWaLr_c1 daAlinkHIO_wlAtWaLr_c0::m = {
|
||||
/* 8038F4E0-8038F51C 01BB40 003C+00 0/1 0/0 0/0 .rodata m__22daAlinkHIO_wlAtWaSc_c0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
const daAlinkHIO_wlAtWaSc_c1 daAlinkHIO_wlAtWaSc_c0::m = {
|
||||
const daAlinkHIO_wlAtWait_c1 daAlinkHIO_wlAtWaSc_c0::m = {
|
||||
{
|
||||
15,
|
||||
0.9f,
|
||||
@@ -2961,7 +2961,7 @@ const daAlinkHIO_wlAtWaSc_c1 daAlinkHIO_wlAtWaSc_c0::m = {
|
||||
/* 8038F51C-8038F558 01BB7C 003C+00 0/1 0/0 0/0 .rodata m__22daAlinkHIO_wlAtWaTl_c0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
const daAlinkHIO_wlAtWaTl_c1 daAlinkHIO_wlAtWaTl_c0::m = {
|
||||
const daAlinkHIO_wlAtWait_c1 daAlinkHIO_wlAtWaTl_c0::m = {
|
||||
{
|
||||
42,
|
||||
1.05f,
|
||||
|
||||
@@ -160,8 +160,6 @@ void daAlink_c::setBoomerangReadyQuake() {
|
||||
}
|
||||
|
||||
/* 800E055C-800E05E8 0DAE9C 008C+00 2/2 0/0 0/0 .text setBoomerangReadyAnime__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
void daAlink_c::setBoomerangReadyAnime() {
|
||||
f32 var_f31;
|
||||
if (i_checkAttentionLock()) {
|
||||
@@ -173,7 +171,6 @@ void daAlink_c::setBoomerangReadyAnime() {
|
||||
setUpperAnimeBaseSpeed(0x54, var_f31, lit_6109);
|
||||
setBoomerangReadyQuake();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800E05E8-800E0630 0DAF28 0048+00 2/2 0/0 0/0 .text setThrowBoomerangAnime__9daAlink_cFv */
|
||||
void daAlink_c::setThrowBoomerangAnime() {
|
||||
@@ -313,8 +310,6 @@ void daAlink_c::checkUpperItemActionBoomerangFly() {
|
||||
}
|
||||
|
||||
/* 800E0BE4-800E0D8C 0DB524 01A8+00 4/4 0/0 0/0 .text checkNextActionBoomerang__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
int daAlink_c::checkNextActionBoomerang() {
|
||||
if ((checkBoomerangCatchAnime() &&
|
||||
mUpperFrameCtrl[2].getFrame() <= daAlinkHIO_boom_c0::m.mCatchAnm.mCheckFrame) ||
|
||||
@@ -355,7 +350,6 @@ int daAlink_c::checkNextActionBoomerang() {
|
||||
return procBoomerangMoveInit();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800E0D8C-800E0E64 0DB6CC 00D8+00 1/1 0/0 0/0 .text checkBoomerangCatchAction__9daAlink_cFv */
|
||||
int daAlink_c::checkBoomerangCatchAction() {
|
||||
|
||||
@@ -119,21 +119,21 @@ int daAlink_c::procBottleDrinkInit(u16 param_0) {
|
||||
setBottleModel(param_0);
|
||||
dComIfGp_setPlayerStatus1(0, 0x2000);
|
||||
field_0x3194 = 1;
|
||||
field_0x3008 = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
|
||||
u32 id = fopAcM_GetID(this);
|
||||
dCam_getBody()->StartEventCamera(0x12, id, "Type", 1, &field_0x3194, 0);
|
||||
field_0x300c = 0;
|
||||
field_0x300e.x = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 8010F698-8010F6F4 109FD8 005C+00 1/0 0/0 0/0 .text procBottleDrink__9daAlink_cFv */
|
||||
int daAlink_c::procBottleDrink() {
|
||||
if (field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
} else {
|
||||
field_0x300e.x = commonBottleDrink(0);
|
||||
mProcVar3.field_0x300e.x = commonBottleDrink(0);
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -158,9 +158,9 @@ int daAlink_c::procBottleOpenInit(u16 param_0) {
|
||||
keepItemData();
|
||||
setBottleModel(param_0);
|
||||
dComIfGp_setPlayerStatus1(0, 0x4000);
|
||||
field_0x300a = 0;
|
||||
mProcVar1.field_0x300a = 0;
|
||||
field_0x32cc = -1;
|
||||
field_0x3008 = 1;
|
||||
mProcVar0.field_0x3008 = 1;
|
||||
|
||||
if (mEquipItem == FAIRY) {
|
||||
field_0x3194 = 3;
|
||||
@@ -170,23 +170,23 @@ int daAlink_c::procBottleOpenInit(u16 param_0) {
|
||||
if (mEquipItem == WORM) {
|
||||
field_0x32cc = fopAcM_create(PROC_NPC_WORM, 2, ¤t.pos, fopAcM_GetRoomNo(this),
|
||||
NULL, NULL, -1);
|
||||
field_0x3008 = 0;
|
||||
field_0x300a = 1;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar1.field_0x300a = 1;
|
||||
}
|
||||
}
|
||||
|
||||
field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
|
||||
u32 id = fopAcM_GetID(this);
|
||||
dCam_getBody()->StartEventCamera(0x12, id, "Type", 1, &field_0x3194, 0);
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
|
||||
field_0x27c8.initialize();
|
||||
|
||||
if (param_0 == 0x67) {
|
||||
setCylAtParam(0x200, 0, 0, 0, 0, 30.0f, 30.0f);
|
||||
}
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -167,16 +167,11 @@ asm void daAlink_c::changeArrowType() {
|
||||
#pragma pop
|
||||
|
||||
/* 800DED88-800DEE1C 0D96C8 0094+00 1/1 0/0 0/0 .text cancelBowMoveRideNotAtn__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
BOOL daAlink_c::cancelBowMoveRideNotAtn() {
|
||||
return i_checkModeFlg(0x400) && i_checkAttentionLock() && mTargetedActor == NULL;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800DEE1C-800DEEDC 0D975C 00C0+00 3/3 0/0 0/0 .text cancelBowMove__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
BOOL daAlink_c::cancelBowMove() {
|
||||
if (mTargetedActor == NULL && !i_checkAttentionLock() && mFastShotTime == 0 &&
|
||||
!checkBowReadyAnime() && (!checkBowShootAnime() || mUpperFrameCtrl[2].checkAnmEnd()))
|
||||
@@ -187,7 +182,6 @@ BOOL daAlink_c::cancelBowMove() {
|
||||
|
||||
return false;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800DEEDC-800DEFB8 0D981C 00DC+00 3/3 0/0 0/0 .text setBowReadyAnime__9daAlink_cFv */
|
||||
void daAlink_c::setBowReadyAnime() {
|
||||
@@ -370,7 +364,7 @@ int daAlink_c::procBowMoveInit() {
|
||||
}
|
||||
|
||||
setBlendAtnMoveAnime(daAlinkHIO_bow_c0::m.mStartInterpolation);
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
setBowOrSlingStatus();
|
||||
return 1;
|
||||
}
|
||||
@@ -379,11 +373,11 @@ int daAlink_c::procBowMoveInit() {
|
||||
int daAlink_c::procBowMove() {
|
||||
cancelBowMove();
|
||||
|
||||
if (mFastShotTime == 0 && field_0x300c != 0 && checkBowWaitAnime() && !itemButton()) {
|
||||
if (mFastShotTime == 0 && mProcVar2.field_0x300c != 0 && checkBowWaitAnime() && !itemButton()) {
|
||||
resetUpperAnime(UPPER_2, lit_6041);
|
||||
}
|
||||
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
i_onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
|
||||
if (!checkNextAction(0)) {
|
||||
|
||||
+10
-10
@@ -127,11 +127,11 @@ BOOL daAlink_c::checkCanoeFishingRodGrabOrPut() const {
|
||||
|
||||
/* 800F3FC4-800F4008 0EE904 0044+00 2/2 0/0 0/0 .text initCanoeRide__9daAlink_cFv */
|
||||
void daAlink_c::initCanoeRide() {
|
||||
field_0x300e.z = 1;
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
field_0x384c = (cXyz*)&l_canoeBaseAnime;
|
||||
mRideStatus = 3;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
}
|
||||
|
||||
/* 800F4008-800F40E4 0EE948 00DC+00 2/2 0/0 0/0 .text checkCanoeJumpRide__9daAlink_cFv */
|
||||
@@ -146,7 +146,7 @@ BOOL daAlink_c::checkCanoeJumpRide() {
|
||||
|
||||
if (speed.y < FLOAT_LABEL(lit_6108) && canoe != NULL && fopAcM_GetName(canoe) == PROC_CANOE &&
|
||||
canoe->checkJumpRideFlg() && !checkDeadHP() &&
|
||||
(mProcID != PROC_FALL || field_0x300e.y != 0)) {
|
||||
(mProcID != PROC_FALL || mProcVar3.field_0x300e.y != 0)) {
|
||||
return procCanoeJumpRideInit(canoe);
|
||||
}
|
||||
|
||||
@@ -267,11 +267,11 @@ int daAlink_c::procCanoeRideInit() {
|
||||
|
||||
if ((s16)(fopAcM_searchActorAngleY(canoe, this) - canoe->shape_angle.y) > 0) {
|
||||
shape_angle.y = canoe->shape_angle.y - 0x4000;
|
||||
field_0x3008 = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
field_0x37c8.x = lit_20991;
|
||||
} else {
|
||||
shape_angle.y = canoe->shape_angle.y + 0x4000;
|
||||
field_0x3008 = 1;
|
||||
mProcVar0.field_0x3008 = 1;
|
||||
field_0x37c8.x = lit_20992;
|
||||
}
|
||||
|
||||
@@ -279,7 +279,7 @@ int daAlink_c::procCanoeRideInit() {
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
initCanoeRide();
|
||||
field_0x300e.x = 0x80;
|
||||
mProcVar3.field_0x300e.x = 0x80;
|
||||
swimOutAfter(1);
|
||||
return 1;
|
||||
}
|
||||
@@ -297,12 +297,12 @@ int daAlink_c::procCanoeRide() {
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
procCanoeWaitInit(1);
|
||||
} else if (frameCtrl->getFrame() < lit_7710) {
|
||||
field_0x300e.x += 0x180;
|
||||
mProcVar3.field_0x300e.x += 0x180;
|
||||
|
||||
if (field_0x3008 == 0) {
|
||||
canoe->incShapeAngleZ(-field_0x300e.x);
|
||||
if (mProcVar0.field_0x3008 == 0) {
|
||||
canoe->incShapeAngleZ(-mProcVar3.field_0x300e.x);
|
||||
} else {
|
||||
canoe->incShapeAngleZ(field_0x300e.x);
|
||||
canoe->incShapeAngleZ(mProcVar3.field_0x300e.x);
|
||||
}
|
||||
canoe->incShapeOffsetY(lit_21021);
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ BOOL daAlink_c::checkForestOldCentury() {
|
||||
/* 800E145C-800E1530 0DBD9C 00D4+00 1/0 0/0 0/0 .text checkCopyRodTopUse__9daAlink_cFv */
|
||||
BOOL daAlink_c::checkCopyRodTopUse() {
|
||||
// Event flag 0x2580: Dominion Rod power restored
|
||||
return (i_dComIfGs_isEventBit(0x2580) && !(mProcID == PROC_UNEQUIP && field_0x300e.x != 0)) ||
|
||||
return (i_dComIfGs_isEventBit(0x2580) && !(mProcID == PROC_UNEQUIP && mProcVar3.field_0x300e.x != 0)) ||
|
||||
i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x15 ||
|
||||
checkForestOldCentury();
|
||||
}
|
||||
@@ -126,8 +126,6 @@ void daAlink_c::setCopyRodModel() {
|
||||
|
||||
/* 800E1840-800E191C 0DC180 00DC+00 2/2 0/0 0/0 .text setCopyRodReadyAnime__9daAlink_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
void daAlink_c::setCopyRodReadyAnime() {
|
||||
f32 speed;
|
||||
if (i_checkAttentionLock()) {
|
||||
@@ -148,7 +146,6 @@ void daAlink_c::setCopyRodReadyAnime() {
|
||||
mAtCps[0].SetAtType(0x1000000);
|
||||
initLockAt();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800E191C-800E1A30 0DC25C 0114+00 1/1 0/0 0/0 .text throwCopyRod__9daAlink_cFv */
|
||||
void daAlink_c::throwCopyRod() {
|
||||
@@ -230,8 +227,6 @@ void daAlink_c::checkUpperItemActionCopyRodFly() {
|
||||
}
|
||||
|
||||
/* 800E1C44-800E1D6C 0DC584 0128+00 2/2 0/0 0/0 .text checkNextActionCopyRod__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
int daAlink_c::checkNextActionCopyRod() {
|
||||
if ((checkBoomerangCatchAnime() &&
|
||||
mUpperFrameCtrl[2].getFrame() <= daAlinkHIO_boom_c0::m.mCatchAnm.mCheckFrame) ||
|
||||
@@ -258,7 +253,6 @@ int daAlink_c::checkNextActionCopyRod() {
|
||||
|
||||
return procCopyRodMoveInit();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800E1D6C-800E1E20 0DC6AC 00B4+00 1/1 0/0 0/0 .text setCopyRodSight__9daAlink_cFv */
|
||||
void daAlink_c::setCopyRodSight() {
|
||||
@@ -382,8 +376,8 @@ int daAlink_c::procCopyRodSwingInit() {
|
||||
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x300c = 1;
|
||||
field_0x300e.x = 0;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
|
||||
voiceStart(Z2SE_AL_V_ATTACK_S);
|
||||
mAtCps[0].SetR(lit_11442);
|
||||
@@ -395,7 +389,7 @@ int daAlink_c::procCopyRodSwingInit() {
|
||||
/* 800E21FC-800E2308 0DCB3C 010C+00 1/0 0/0 0/0 .text procCopyRodSwing__9daAlink_cFv */
|
||||
int daAlink_c::procCopyRodSwing() {
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
setCopyRodControllAnime();
|
||||
@@ -405,16 +399,16 @@ int daAlink_c::procCopyRodSwing() {
|
||||
setCopyRodControllAnime();
|
||||
}
|
||||
} else if (frameCtrl->getFrame() >= field_0x3478 && frameCtrl->getFrame() < field_0x347c) {
|
||||
if (field_0x300e.x == 0) {
|
||||
if (mProcVar3.field_0x300e.x == 0) {
|
||||
seStartSwordCut(Z2SE_AL_COPYROD_SWING);
|
||||
}
|
||||
|
||||
field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
if (changeCutReverseProc(ANM_CUT_RECOIL_A)) {
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
||||
@@ -196,7 +196,7 @@ void daAlink_c::setCrawlMoveHoll() {
|
||||
f32 frame_ctrl_rate = mUnderFrameCtrl[0].getRate();
|
||||
|
||||
if (frame_ctrl_rate != FLOAT_LABEL(lit_6108)) {
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x300c, 5, 0x1000, 0x800);
|
||||
cLib_addCalcAngleS(&shape_angle.y, mProcVar2.field_0x300c, 5, 0x1000, 0x800);
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
|
||||
@@ -330,8 +330,8 @@ int daAlink_c::procCrawlAutoMoveInit(int param_0, cXyz* param_1) {
|
||||
field_0x37c8 = *param_1;
|
||||
field_0x33cc = lit_6040;
|
||||
field_0x3198 = param_0;
|
||||
field_0x3008 = 20;
|
||||
field_0x300a = 300;
|
||||
mProcVar0.field_0x3008 = 20;
|
||||
mProcVar1.field_0x300a = 300;
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x8000000);
|
||||
setCrawlMoveDirectionArrow();
|
||||
|
||||
+116
-125
@@ -212,8 +212,6 @@ void daAlink_c::resetCombo(int param_0) {
|
||||
}
|
||||
|
||||
/* 800D1454-800D152C 0CBD94 00D8+00 1/1 0/0 0/0 .text checkComboCnt__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
void daAlink_c::checkComboCnt() {
|
||||
if ((mEquipItem == EQUIP_SWORD && mComboCutCount == 2) &&
|
||||
(i_checkAttentionLock() &&
|
||||
@@ -228,7 +226,6 @@ void daAlink_c::checkComboCnt() {
|
||||
resetCombo(1);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800D152C-800D1540 0CBE6C 0014+00 22/22 0/0 0/0 .text setCutType__9daAlink_cFUc */
|
||||
void daAlink_c::setCutType(u8 type) {
|
||||
@@ -519,10 +516,10 @@ void daAlink_c::setSwordVoiceSe(u32 i_seID) {
|
||||
/* 800D22BC-800D2304 0CCBFC 0048+00 3/3 0/0 0/0 .text setSwordChargeVoiceSe__9daAlink_cFv
|
||||
*/
|
||||
void daAlink_c::setSwordChargeVoiceSe() {
|
||||
if (field_0x300c != 0) {
|
||||
field_0x300c--;
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
mProcVar2.field_0x300c--;
|
||||
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
setSwordVoiceSe(Z2SE_AL_V_TAME);
|
||||
}
|
||||
}
|
||||
@@ -545,8 +542,6 @@ bool daAlink_c::checkCutTurnInputTrigger() {
|
||||
}
|
||||
|
||||
/* 800D23C0-800D2684 0CCD00 02C4+00 7/7 0/0 0/0 .text checkCutAction__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
int daAlink_c::checkCutAction() {
|
||||
if (commonCutAction()) {
|
||||
return 1;
|
||||
@@ -580,8 +575,8 @@ int daAlink_c::checkCutAction() {
|
||||
} else {
|
||||
procCutNormalInit(normalType3[cutDir]);
|
||||
}
|
||||
} else if (mProcID == PROC_CUT_NORMAL && field_0x300a != 4) {
|
||||
if (field_0x300a == 2) {
|
||||
} else if (mProcID == PROC_CUT_NORMAL && mProcVar1.field_0x300a != 4) {
|
||||
if (mProcVar1.field_0x300a == 2) {
|
||||
procCutNormalInit(1);
|
||||
} else {
|
||||
procCutNormalInit(2);
|
||||
@@ -600,18 +595,17 @@ int daAlink_c::checkCutAction() {
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800D2684-800D26EC 0CCFC4 0068+00 9/9 0/0 0/0 .text checkCutTurnCharge__9daAlink_cFv */
|
||||
void daAlink_c::checkCutTurnCharge() {
|
||||
if (swordButton()) {
|
||||
if (field_0x300e.z < 3) {
|
||||
field_0x300e.z++;
|
||||
if (mProcVar3.field_0x300e.z < 3) {
|
||||
mProcVar3.field_0x300e.z++;
|
||||
} else {
|
||||
i_onResetFlg0(RFLG0_UNK_40);
|
||||
}
|
||||
} else {
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -729,9 +723,9 @@ void daAlink_c::cancelCutCharge() {
|
||||
*/
|
||||
void daAlink_c::initCutAtnActorSearch() {
|
||||
if (cLib_distanceAngleS(getShapeAngleYAtnActor(), shape_angle.y) < 0x800) {
|
||||
field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
} else {
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
}
|
||||
|
||||
field_0x32cc = (u32)mTargetedActor;
|
||||
@@ -740,7 +734,7 @@ void daAlink_c::initCutAtnActorSearch() {
|
||||
/* 800D2C54-800D2C78 0CD594 0024+00 3/3 0/0 0/0 .text checkCutAtnActorChange__9daAlink_cFv */
|
||||
void daAlink_c::checkCutAtnActorChange() {
|
||||
if (field_0x32cc != (u32)mTargetedActor) {
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
field_0x32cc = (u32)mTargetedActor;
|
||||
}
|
||||
}
|
||||
@@ -797,8 +791,6 @@ asm void daAlink_c::setCutJumpSpeed(int param_0) {
|
||||
#endif
|
||||
|
||||
/* 800D2F58-800D31B8 0CD898 0260+00 3/3 0/0 0/0 .text procCutNormalInit__9daAlink_cFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
int daAlink_c::procCutNormalInit(int i_type) {
|
||||
const daAlink_cutParamTbl* cutParams = &cutParamTable_7312[i_type];
|
||||
|
||||
@@ -841,9 +833,9 @@ int daAlink_c::procCutNormalInit(int i_type) {
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
if (!i_checkAttentionLock() && checkInputOnR()) {
|
||||
field_0x300c = field_0x2fe2;
|
||||
mProcVar2.field_0x300c = field_0x2fe2;
|
||||
} else {
|
||||
field_0x300c = shape_angle.y;
|
||||
mProcVar2.field_0x300c = shape_angle.y;
|
||||
}
|
||||
|
||||
if (mComboCutCount != 1) {
|
||||
@@ -856,23 +848,22 @@ int daAlink_c::procCutNormalInit(int i_type) {
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, cutParams->m_atSe, 2, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
setSwordComboVoice();
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x8000);
|
||||
setCutWaterDropEffect();
|
||||
|
||||
int cutDir = getCutDirection();
|
||||
if (mComboCutCount == 1 && (cutDir == DIR_LEFT || cutDir == DIR_RIGHT)) {
|
||||
field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
} else {
|
||||
field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
}
|
||||
|
||||
field_0x300a = 4;
|
||||
mProcVar1.field_0x300a = 4;
|
||||
initCutAtnActorSearch();
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800D31B8-800D34D8 0CDAF8 0320+00 1/0 0/0 0/0 .text procCutNormal__9daAlink_cFv */
|
||||
int daAlink_c::procCutNormal() {
|
||||
@@ -890,14 +881,14 @@ int daAlink_c::procCutNormal() {
|
||||
i_onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
field_0x2f99 = 4;
|
||||
|
||||
if (field_0x300e.x != 0 && i_checkNoResetFlg2(FLG2_UNK_2)) {
|
||||
if (mProcVar3.field_0x300e.x != 0 && i_checkNoResetFlg2(FLG2_UNK_2)) {
|
||||
int cutDir = getCutDirection();
|
||||
if ((cutDir == DIR_RIGHT && mCutType == CUT_TYPE_NM_LEFT &&
|
||||
frameCtrl->getFrame() > lit_7448) ||
|
||||
(cutDir == DIR_LEFT && mCutType == CUT_TYPE_NM_RIGHT &&
|
||||
frameCtrl->getFrame() > lit_7448))
|
||||
{
|
||||
field_0x300a = cutDir;
|
||||
mProcVar1.field_0x300a = cutDir;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -909,7 +900,7 @@ int daAlink_c::procCutNormal() {
|
||||
} else {
|
||||
checkNextAction(0);
|
||||
}
|
||||
} else if ((!(frameCtrl->getFrame() > field_0x3484) && field_0x300a == 4) ||
|
||||
} else if ((!(frameCtrl->getFrame() > field_0x3484) && mProcVar1.field_0x300a == 4) ||
|
||||
!checkCutCancelNextMode(3))
|
||||
{
|
||||
if (frameCtrl->getFrame() > field_0x3484) {
|
||||
@@ -920,14 +911,14 @@ int daAlink_c::procCutNormal() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (setShapeAngleToAtnActor(field_0x300e.y)) {
|
||||
field_0x300c = shape_angle.y;
|
||||
if (setShapeAngleToAtnActor(mProcVar3.field_0x300e.y)) {
|
||||
mProcVar2.field_0x300c = shape_angle.y;
|
||||
|
||||
if (cLib_distanceAngleS(getShapeAngleYAtnActor(), shape_angle.y) < 0x800) {
|
||||
field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
}
|
||||
} else {
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x300c, 2, 0x2000, 0x800);
|
||||
cLib_addCalcAngleS(&shape_angle.y, mProcVar2.field_0x300c, 2, 0x2000, 0x800);
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
@@ -970,8 +961,8 @@ int daAlink_c::procCutFinishInit(int i_type) {
|
||||
commonProcInit(PROC_CUT_FINISH);
|
||||
setCutType(cutParams->m_cutType);
|
||||
field_0x3198 = cutParams->field_0x4;
|
||||
field_0x300c = cutParams->field_0xa;
|
||||
field_0x300e.x = cutParams->field_0xb;
|
||||
mProcVar2.field_0x300c = cutParams->field_0xa;
|
||||
mProcVar3.field_0x300e.x = cutParams->field_0xb;
|
||||
|
||||
BOOL var_r30 = FALSE;
|
||||
if (i_type == 0) {
|
||||
@@ -1022,13 +1013,13 @@ int daAlink_c::procCutFinishInit(int i_type) {
|
||||
|
||||
if (mComboCutCount == 3) {
|
||||
field_0x3484 = cutData->mComboCheckFrame;
|
||||
field_0x3008 = cutData->mComboStopTime;
|
||||
mProcVar0.field_0x3008 = cutData->mComboStopTime;
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, cutParams->m_atSe, 2,
|
||||
daAlinkHIO_cut_c0::m.mSwordLength, daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
field_0x32d0 = Z2SE_AL_SWORD_SWING_S;
|
||||
} else {
|
||||
field_0x3484 = cutData->mCutAnm.mCheckFrame;
|
||||
field_0x3008 = cutData->mStopTime;
|
||||
mProcVar0.field_0x3008 = cutData->mStopTime;
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, cutParams->m_atSe, (var_r30 ? TRUE : FALSE) + 3,
|
||||
daAlinkHIO_cut_c0::m.mSwordLength, daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
|
||||
@@ -1052,7 +1043,7 @@ int daAlink_c::procCutFinishInit(int i_type) {
|
||||
field_0x2f99 = 13;
|
||||
}
|
||||
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
dComIfGp_setPlayerStatus0(0, 0x8000);
|
||||
setCutWaterDropEffect();
|
||||
initCutAtnActorSearch();
|
||||
@@ -1096,18 +1087,18 @@ int daAlink_c::procCutFinish() {
|
||||
field_0x2f99 = 4;
|
||||
}
|
||||
|
||||
if (frameCtrl_p->getFrame() >= field_0x300e.x) {
|
||||
if (frameCtrl_p->getFrame() >= mProcVar3.field_0x300e.x) {
|
||||
onModeFlg(0x100);
|
||||
} else if (frameCtrl_p->getFrame() >= field_0x300c) {
|
||||
} else if (frameCtrl_p->getFrame() >= mProcVar2.field_0x300c) {
|
||||
offModeFlg(0x100);
|
||||
}
|
||||
|
||||
if (checkAnmEnd(frameCtrl_p)) {
|
||||
resetCombo(1);
|
||||
|
||||
if (field_0x3008 > 0) {
|
||||
if (mProcVar0.field_0x3008 > 0) {
|
||||
if (!(frameCtrl_p->getFrame() > field_0x3484) || !checkCutCancelNextMode(3)) {
|
||||
field_0x3008--;
|
||||
mProcVar0.field_0x3008--;
|
||||
}
|
||||
} else if (mDemo.getDemoMode() == 0x24 || mDemo.getDemoMode() == 0x54) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
@@ -1125,10 +1116,10 @@ int daAlink_c::procCutFinish() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
setShapeAngleToAtnActor(field_0x300e.y);
|
||||
setShapeAngleToAtnActor(mProcVar3.field_0x300e.y);
|
||||
|
||||
if (cLib_distanceAngleS(getShapeAngleYAtnActor(), shape_angle.y) < 0x800) {
|
||||
field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
@@ -1199,7 +1190,7 @@ int daAlink_c::procCutFinishJumpUpInit() {
|
||||
daAlinkHIO_cutFnJU_c0::m.mCutAnm.mEndFrame,
|
||||
daAlinkHIO_cutFnJU_c0::m.mCutAnm.mInterpolation);
|
||||
setSwordVoiceSe(Z2SE_AL_V_SOTOMO_ATK);
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
field_0x3478 = current.pos.y;
|
||||
dComIfGp_setPlayerStatus0(0, 0x8000);
|
||||
setCutWaterDropEffect();
|
||||
@@ -1258,13 +1249,13 @@ int daAlink_c::procCutFinishJumpUpLandInit() {
|
||||
|
||||
if (mComboCutCount == 3) {
|
||||
field_0x3484 = daAlinkHIO_cutFnJU_c0::m.mComboCheckFrame;
|
||||
field_0x3008 = daAlinkHIO_cutFnJU_c0::m.mComboStopTime;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_cutFnJU_c0::m.mComboStopTime;
|
||||
} else {
|
||||
field_0x3484 = daAlinkHIO_cutFnJU_c0::m.mLandAnm.mCheckFrame;
|
||||
field_0x3008 = daAlinkHIO_cutFnJU_c0::m.mStopTime;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_cutFnJU_c0::m.mStopTime;
|
||||
}
|
||||
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
initCutAtnActorSearch();
|
||||
return 1;
|
||||
@@ -1287,9 +1278,9 @@ int daAlink_c::procCutFinishJumpUpLand() {
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
if (mDemo.getDemoMode() == 0x52) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
} else if (field_0x3008 > 0) {
|
||||
} else if (mProcVar0.field_0x3008 > 0) {
|
||||
if (!(frameCtrl->getFrame() > field_0x3484) || !checkCutCancelNextMode(3)) {
|
||||
field_0x3008--;
|
||||
mProcVar0.field_0x3008--;
|
||||
}
|
||||
} else {
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
@@ -1301,10 +1292,10 @@ int daAlink_c::procCutFinishJumpUpLand() {
|
||||
resetCombo(1);
|
||||
}
|
||||
|
||||
setShapeAngleToAtnActor(field_0x300e.y);
|
||||
setShapeAngleToAtnActor(mProcVar3.field_0x300e.y);
|
||||
|
||||
if (cLib_distanceAngleS(getShapeAngleYAtnActor(), shape_angle.y) < 0x800) {
|
||||
field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
@@ -1330,13 +1321,13 @@ int daAlink_c::procCutReverseInit(daAlink_c::daAlink_ANM i_anmID) {
|
||||
|
||||
if (i_anmID == ANM_SHIELD_ATTACK_RECOIL) {
|
||||
setSingleAnimeParam(i_anmID, &daAlinkHIO_guard_c0::m.mRecoilAnm);
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
field_0x3478 = daAlinkHIO_guard_c0::m.mRecoilAnm.mCheckFrame;
|
||||
field_0x2f98 = 2;
|
||||
setUpperGuardAnime(lit_6041);
|
||||
} else {
|
||||
setSingleAnimeParam(i_anmID, &daAlinkHIO_cut_c0::m.mRecoilAnm);
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
field_0x3478 = daAlinkHIO_cut_c0::m.mRecoilAnm.mCheckFrame;
|
||||
field_0x2f98 = 4;
|
||||
}
|
||||
@@ -1344,7 +1335,7 @@ int daAlink_c::procCutReverseInit(daAlink_c::daAlink_ANM i_anmID) {
|
||||
mNormalSpeed = daAlinkHIO_cut_c0::m.mRecoilSpeed;
|
||||
current.angle.y = shape_angle.y - -0x8000;
|
||||
field_0x307e = 0;
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
|
||||
int temp_r3;
|
||||
if (mCutType == CUT_TYPE_MORTAL_DRAW_A || mCutType == CUT_TYPE_MORTAL_DRAW_B ||
|
||||
@@ -1369,12 +1360,12 @@ int daAlink_c::procCutReverse() {
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
cLib_chaseF(&mNormalSpeed, FLOAT_LABEL(lit_6108), daAlinkHIO_cut_c0::m.mRecoilDeceleration);
|
||||
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
checkCutTurnCharge();
|
||||
i_onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
}
|
||||
|
||||
if (field_0x300c != 0) {
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
setUpperGuardAnime(lit_6041);
|
||||
}
|
||||
|
||||
@@ -1545,8 +1536,8 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
|
||||
field_0x3484 = cutData->mRightAttackStartFrame;
|
||||
field_0x3488 = cutData->mRightAttackEndFrame;
|
||||
field_0x300e.y = 1;
|
||||
field_0x300a = 6;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar1.field_0x300a = 6;
|
||||
} else {
|
||||
anmID = ANM_CUT_TURN_LEFT;
|
||||
anm_data = &cutData->mLeftTurnAnm;
|
||||
@@ -1559,8 +1550,8 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
|
||||
field_0x3484 = cutData->mLeftAttackStartFrame;
|
||||
field_0x3488 = cutData->mLeftAttackEndFrame;
|
||||
field_0x300e.y = 0;
|
||||
field_0x300a = 8;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar1.field_0x300a = 8;
|
||||
}
|
||||
|
||||
field_0x3480 = anm_data->->mCheckFrame;
|
||||
@@ -1610,12 +1601,12 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
|
||||
field_0x347c = lit_6896;
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
field_0x3008 = cutData->mStopTime;
|
||||
mProcVar0.field_0x3008 = cutData->mStopTime;
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x3180 = 0;
|
||||
dComIfGp_setPlayerStatus0(0, 0x8000);
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
setCutWaterDropEffect();
|
||||
initCutTurnAt(field_0x347c, var_r29_3);
|
||||
return 1;
|
||||
@@ -1651,9 +1642,9 @@ int daAlink_c::procCutTurn() {
|
||||
}
|
||||
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
if (field_0x3008 > 0) {
|
||||
if (mProcVar0.field_0x3008 > 0) {
|
||||
if (!(frameCtrl->getFrame() > field_0x3480) || !checkCutCancelNextMode(3)) {
|
||||
field_0x3008--;
|
||||
mProcVar0.field_0x3008--;
|
||||
}
|
||||
} else if (mDemo.getDemoMode() == 0x24) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
@@ -1693,7 +1684,7 @@ int daAlink_c::procCutTurnChargeInit() {
|
||||
setSingleAnimeParam(ANM_CUT_TURN_CHARGE_START, &daAlinkHIO_cutTurn_c0::m.mChargeAnm);
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
|
||||
mProcVar2.field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1707,7 +1698,7 @@ int daAlink_c::procCutTurnCharge() {
|
||||
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
|
||||
|
||||
if (!swordButton() && mDemo.getDemoMode() != 0x5B) {
|
||||
if (field_0x300c != 0) {
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
checkCutAction();
|
||||
} else {
|
||||
cancelCutCharge();
|
||||
@@ -1748,10 +1739,10 @@ int daAlink_c::procCutTurnMoveInit(int param_0) {
|
||||
if (!checkWoodSwordEquip()) {
|
||||
simpleAnmPlay(m_nSwordBtk);
|
||||
} else {
|
||||
field_0x3008 = 1;
|
||||
mProcVar0.field_0x3008 = 1;
|
||||
}
|
||||
|
||||
field_0x300c = param_0;
|
||||
mProcVar2.field_0x300c = param_0;
|
||||
i_onNoResetFlg1(FLG1_UNK_10000000);
|
||||
dComIfGp_setPlayerStatus0(0, 0x40000000);
|
||||
return 1;
|
||||
@@ -1766,9 +1757,9 @@ int daAlink_c::procCutTurnMove() {
|
||||
if (!checkWoodSwordEquip()) {
|
||||
simpleAnmPlay(m_nSwordBtk);
|
||||
} else {
|
||||
field_0x3008++;
|
||||
if (field_0x3008 >= 14.0f) {
|
||||
field_0x3008 = 100;
|
||||
mProcVar0.field_0x3008++;
|
||||
if (mProcVar0.field_0x3008 >= 14.0f) {
|
||||
mProcVar0.field_0x3008 = 100;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1779,9 +1770,9 @@ int daAlink_c::procCutTurnMove() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
BOOL var_r4 = m_nSwordBtk->getFrame() >= 14.0f || field_0x3008 >= 14.0f;
|
||||
BOOL var_r4 = m_nSwordBtk->getFrame() >= 14.0f || mProcVar0.field_0x3008 >= 14.0f;
|
||||
|
||||
if (field_0x300c != 0) {
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
if (checkDownAttackState() && !var_r4) {
|
||||
setDoStatusEmphasys(0x30);
|
||||
} else if (checkCutHeadState() && !var_r4) {
|
||||
@@ -1797,7 +1788,7 @@ int daAlink_c::procCutTurnMove() {
|
||||
if (var_r4) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
}
|
||||
} else if ((field_0x300c == 0 && swordButton()) || (field_0x300c != 0 && doButton())) {
|
||||
} else if ((mProcVar2.field_0x300c == 0 && swordButton()) || (mProcVar2.field_0x300c != 0 && doButton())) {
|
||||
f32 var_f30 = 0.0f;
|
||||
i_onResetFlg0(RFLG0_UNK_10);
|
||||
|
||||
@@ -1871,12 +1862,12 @@ int daAlink_c::procCutTurnMove() {
|
||||
mSpeedModifier = 1.0f;
|
||||
}
|
||||
} else if (var_r4) {
|
||||
if (field_0x300c != 0) {
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
procCutLargeJumpInit();
|
||||
} else {
|
||||
procCutTurnInit(0, 1);
|
||||
}
|
||||
} else if (field_0x300c != 0) {
|
||||
} else if (mProcVar2.field_0x300c != 0) {
|
||||
checkDoCutAction();
|
||||
} else {
|
||||
cancelCutCharge();
|
||||
@@ -1908,14 +1899,14 @@ int daAlink_c::procCutDownInit() {
|
||||
resetCombo(1);
|
||||
|
||||
cXyz sp2C;
|
||||
field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
|
||||
if (mTargetedActor != NULL) {
|
||||
sp2C = static_cast<fopEn_enemy_c*>(mTargetedActor)->getDownPos();
|
||||
field_0x280c.setData(mTargetedActor);
|
||||
|
||||
if (fopAcM_GetName(mTargetedActor) == PROC_B_GND) {
|
||||
field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
}
|
||||
} else {
|
||||
sp2C.set(current.pos.x + cM_ssin(shape_angle.y) * 100.0f, current.pos.y,
|
||||
@@ -1923,7 +1914,7 @@ int daAlink_c::procCutDownInit() {
|
||||
field_0x280c.clearData();
|
||||
}
|
||||
|
||||
if (field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
mNormalSpeed = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
offModeFlg(2);
|
||||
@@ -1967,7 +1958,7 @@ int daAlink_c::procCutDownInit() {
|
||||
|
||||
temp_f1 = JMAFastSqrt(temp_f1 * 2.0f * var_f5);
|
||||
mNormalSpeed = var_f31 / (temp_f1 - var_f4 * var_f5);
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
}
|
||||
|
||||
setSwordVoiceSe(Z2SE_AL_V_TODOME_JUMP);
|
||||
@@ -1988,14 +1979,14 @@ asm int daAlink_c::procCutDownInit() {
|
||||
|
||||
/* 800D57F8-800D58A0 0D0138 00A8+00 1/0 0/0 0/0 .text procCutDown__9daAlink_cFv */
|
||||
int daAlink_c::procCutDown() {
|
||||
if (field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (mLinkAcch.ChkGroundHit() && speed.y <= FLOAT_LABEL(lit_6108)) {
|
||||
procCutDownLandInit((fopEn_enemy_c*)field_0x280c.getActor());
|
||||
} else if (mUnderFrameCtrl[0].checkAnmEnd() && field_0x300c == 0) {
|
||||
field_0x300c = 1;
|
||||
} else if (mUnderFrameCtrl[0].checkAnmEnd() && mProcVar2.field_0x300c == 0) {
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_FALL, &daAlinkHIO_cutDown_c0::m.mFallAnm);
|
||||
}
|
||||
|
||||
@@ -2016,7 +2007,7 @@ int daAlink_c::procCutDownLandInit(fopEn_enemy_c* i_enemy) {
|
||||
mSwordTopPos.abs2XZ(i_enemy->getDownPos()) < 10000.0f &&
|
||||
fabsf(i_enemy->current.pos.y - current.pos.y) < 100.0f))
|
||||
{
|
||||
field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
if (i_enemy != NULL) {
|
||||
i_enemy->onCutDownHitFlg();
|
||||
|
||||
@@ -2025,16 +2016,16 @@ int daAlink_c::procCutDownLandInit(fopEn_enemy_c* i_enemy) {
|
||||
}
|
||||
|
||||
var_r30 = 0x20;
|
||||
field_0x3008 = daAlinkHIO_cutDown_c0::m.mSuccessStopTime;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_cutDown_c0::m.mSuccessStopTime;
|
||||
dComIfGp_getVibration().StartShock(4, 31, cXyz(0.0f, 1.0f, 0.0f));
|
||||
} else {
|
||||
var_r30 = mPolySound;
|
||||
field_0x300e.x = 0;
|
||||
field_0x3008 = daAlinkHIO_cutDown_c0::m.mFailStopTime;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_cutDown_c0::m.mFailStopTime;
|
||||
}
|
||||
|
||||
mZ2Link.startCollisionSE(Z2SE_HIT_SWORD_STAB, var_r30);
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mNormalSpeed = 0.0f;
|
||||
|
||||
i_offResetFlg0(RFLG0_UNK_8000000);
|
||||
@@ -2042,7 +2033,7 @@ int daAlink_c::procCutDownLandInit(fopEn_enemy_c* i_enemy) {
|
||||
|
||||
setFootEffectProcType(2);
|
||||
i_onResetFlg1(RFLG1_UNK_30);
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
|
||||
dComIfGp_setPlayerStatus1(0, 0x400000);
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
@@ -2071,15 +2062,15 @@ int daAlink_c::procCutDownLand() {
|
||||
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
|
||||
field_0x2f99 = 4;
|
||||
|
||||
if (field_0x300c != 0) {
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
i_onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
}
|
||||
|
||||
if (checkAnmEnd(frameCtrl_p)) {
|
||||
if (field_0x300c == 0) {
|
||||
if (field_0x3008 != 0) {
|
||||
field_0x3008--;
|
||||
} else if (field_0x300e.x != 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
if (mProcVar0.field_0x3008 != 0) {
|
||||
mProcVar0.field_0x3008--;
|
||||
} else if (mProcVar3.field_0x300e.x != 0) {
|
||||
if (mDemo.getDemoMode() == 0x51) {
|
||||
dComIfGp_evmng_cutEnd(field_0x3184);
|
||||
} else {
|
||||
@@ -2088,16 +2079,16 @@ int daAlink_c::procCutDownLand() {
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_MISS,
|
||||
&daAlinkHIO_cutDown_c0::m.mMissAnm);
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
}
|
||||
} else {
|
||||
checkNextAction(0);
|
||||
}
|
||||
} else if (field_0x300c != 0) {
|
||||
} else if (mProcVar2.field_0x300c != 0) {
|
||||
if (frameCtrl_p->getFrame() >= 37.0f) {
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
} else if (frameCtrl_p->getFrame() >= 30.0f) {
|
||||
field_0x300e.y = 254;
|
||||
mProcVar3.field_0x300e.y = 254;
|
||||
}
|
||||
|
||||
if (frameCtrl_p->checkPass(54.0f)) {
|
||||
@@ -2159,7 +2150,7 @@ int daAlink_c::procCutHeadInit() {
|
||||
|
||||
field_0x3478 = (fvar5 * 2.0f) / (fvar10 * 3.0f * fvar10);
|
||||
mNormalSpeed = field_0x3478 * fvar10 * 2.0f;
|
||||
field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
|
||||
current.angle.y = sp2C.atan2sX_Z();
|
||||
shape_angle.y = current.angle.y;
|
||||
@@ -2184,7 +2175,7 @@ asm int daAlink_c::procCutHeadInit() {
|
||||
|
||||
/* 800D5FC8-800D6130 0D0908 0168+00 1/0 0/0 0/0 .text procCutHead__9daAlink_cFv */
|
||||
int daAlink_c::procCutHead() {
|
||||
if (field_0x300e.x == 0) {
|
||||
if (mProcVar3.field_0x300e.x == 0) {
|
||||
cLib_chaseF(&mNormalSpeed, FLOAT_LABEL(lit_6108), field_0x3478);
|
||||
|
||||
if (speed.y <= FLOAT_LABEL(lit_6108)) {
|
||||
@@ -2193,7 +2184,7 @@ int daAlink_c::procCutHead() {
|
||||
mNormalSpeed = tmp_0;
|
||||
speed.y = tmp_0;
|
||||
setSpecialGravity(tmp_0, mMaxFallSpeed, 0);
|
||||
field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
setCutWaterDropEffect();
|
||||
setSwordVoiceSe(Z2SE_AL_V_KABUTO_ATK);
|
||||
}
|
||||
@@ -2259,7 +2250,7 @@ int daAlink_c::procCutLargeJumpChargeInit() {
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE_CHARGE, &daAlinkHIO_cutLargeJump_c0::m.mChargeAnm);
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
|
||||
mProcVar2.field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -2302,15 +2293,15 @@ int daAlink_c::procCutLargeJumpInit() {
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, 1, 2, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
setCutType(CUT_TYPE_LARGE_JUMP_INIT);
|
||||
setSwordVoiceSe(Z2SE_AL_V_JUMP_ATTACK_L_1);
|
||||
setCutWaterDropEffect();
|
||||
field_0x300e.x = 4;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.x = 4;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
field_0x3198 = 2;
|
||||
return 1;
|
||||
}
|
||||
@@ -2319,7 +2310,7 @@ int daAlink_c::procCutLargeJumpInit() {
|
||||
int daAlink_c::procCutLargeJump() {
|
||||
daPy_frameCtrl_c* frameCtrl = &mUnderFrameCtrl[0];
|
||||
|
||||
if (field_0x300e.y != 0) {
|
||||
if (mProcVar3.field_0x300e.y != 0) {
|
||||
field_0x2f99 = 4;
|
||||
}
|
||||
|
||||
@@ -2327,15 +2318,15 @@ int daAlink_c::procCutLargeJump() {
|
||||
field_0x3198 = getCutTurnDirection();
|
||||
}
|
||||
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
field_0x2f99 = 12;
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE, &daAlinkHIO_cutLargeJump_c0::m.mCutAnm);
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setSwordVoiceSe(Z2SE_AL_V_JUMP_ATTACK_L_2);
|
||||
} else {
|
||||
if (frameCtrl->getFrame() >= lit_7307) {
|
||||
field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
}
|
||||
|
||||
if (!i_checkModeFlg(2) && frameCtrl->getFrame() >= lit_7808) {
|
||||
@@ -2355,10 +2346,10 @@ int daAlink_c::procCutLargeJump() {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (field_0x300e.x != 0) {
|
||||
field_0x300e.x--;
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
mProcVar3.field_0x300e.x--;
|
||||
|
||||
if (field_0x300e.x == 0) {
|
||||
if (mProcVar3.field_0x300e.x == 0) {
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 4, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
setCutType(CUT_TYPE_LARGE_JUMP);
|
||||
@@ -2394,7 +2385,7 @@ int daAlink_c::procCutLargeJumpLandInit(int param_0) {
|
||||
setCutType(CUT_TYPE_LARGE_JUMP);
|
||||
field_0x3478 = daAlinkHIO_cutLargeJump_c0::m.mLandAttackRadius;
|
||||
field_0x347c = lit_6896;
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
field_0x3198 = param_0;
|
||||
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_6108);
|
||||
@@ -2432,9 +2423,9 @@ int daAlink_c::procCutLargeJumpLand() {
|
||||
i_onResetFlg0(RFLG0_UNK_2);
|
||||
|
||||
if (frameCtrl->getFrame() >= daAlinkHIO_cutLargeJump_c0::m.mLandAttackInitFrame) {
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
resetAtCollision(0);
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setCutType(CUT_TYPE_LARGE_JUMP_FINISH);
|
||||
initCutTurnAt(field_0x347c, 4);
|
||||
}
|
||||
@@ -2457,9 +2448,9 @@ int daAlink_c::procSwordUnequipSpInit() {
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
field_0x3198 = 0;
|
||||
field_0x300c = 0;
|
||||
field_0x300e.x = (0x1E - mDemo.getDemoMode()) != 0;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = (0x1E - mDemo.getDemoMode()) != 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -2472,20 +2463,20 @@ int daAlink_c::procSwordUnequipSp() {
|
||||
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
|
||||
if (field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
field_0x2f99 = 4;
|
||||
} else {
|
||||
field_0x300e.x = 1;
|
||||
mProcVar3.field_0x300e.x = 1;
|
||||
}
|
||||
|
||||
i_onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
|
||||
if (field_0x300c != 0) {
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
i_onEndResetFlg1(ERFLG1_GANON_FINISH);
|
||||
}
|
||||
|
||||
if (field_0x300e.y == 0 && mDemo.getDemoMode() == 0x1E && mDemo.getParam1() == 1) {
|
||||
field_0x300e.y = 1;
|
||||
if (mProcVar3.field_0x300e.y == 0 && mDemo.getDemoMode() == 0x1E && mDemo.getParam1() == 1) {
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
setFaceBasicBck(0x149);
|
||||
setFaceBasicBtp(0x3E1);
|
||||
}
|
||||
@@ -2530,7 +2521,7 @@ int daAlink_c::procSwordUnequipSp() {
|
||||
} else {
|
||||
if (frameCtrl->getFrame() >= lit_7710) {
|
||||
field_0x2f93 = 0xFE;
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
i_onEndResetFlg1(ERFLG1_GANON_FINISH);
|
||||
}
|
||||
|
||||
|
||||
@@ -33,23 +33,23 @@ void daAlink_c::setDkCaught(fopAc_ac_c* param_0) {
|
||||
|
||||
/* 800D6E24-800D6F00 0D1764 00DC+00 2/2 0/0 0/0 .text freezeTimerDamage__9daAlink_cFv */
|
||||
void daAlink_c::freezeTimerDamage() {
|
||||
field_0x3008--;
|
||||
field_0x300a++;
|
||||
mProcVar0.field_0x3008--;
|
||||
mProcVar1.field_0x300a++;
|
||||
|
||||
if (field_0x300a % 45 == 0) {
|
||||
if (mProcVar1.field_0x300a % 45 == 0) {
|
||||
setDamagePoint(1, 1, 0, 0);
|
||||
}
|
||||
|
||||
if (escapeTrigger()) {
|
||||
field_0x3008 -= 2;
|
||||
mProcVar0.field_0x3008 -= 2;
|
||||
}
|
||||
|
||||
if (checkInputOnR() && abs((s16)(mStickAngle - mPrevStickAngle)) > 0x1000) {
|
||||
field_0x3008 -= 2;
|
||||
mProcVar0.field_0x3008 -= 2;
|
||||
}
|
||||
|
||||
if (field_0x3008 < 0) {
|
||||
field_0x3008 = 0;
|
||||
if (mProcVar0.field_0x3008 < 0) {
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -425,7 +425,7 @@ asm int daAlink_c::procCoLargeDamageWallInit(int param_0, int param_1, s16 param
|
||||
*/
|
||||
int daAlink_c::procCoLargeDamageWall() {
|
||||
if (mUnderFrameCtrl[0].checkAnmEnd()) {
|
||||
procCoLargeDamageInit(field_0x3198, field_0x3008, field_0x3080, field_0x3082, NULL, 0);
|
||||
procCoLargeDamageInit(field_0x3198, mProcVar0.field_0x3008, field_0x3080, field_0x3082, NULL, 0);
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -497,8 +497,8 @@ int daAlink_c::procLandDamage() {
|
||||
}
|
||||
} else {
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
if (field_0x3008 > 0) {
|
||||
field_0x3008--;
|
||||
if (mProcVar0.field_0x3008 > 0) {
|
||||
mProcVar0.field_0x3008--;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_DMG_FALL_RECOVER, &daAlinkHIO_damFall_c0::m.mStandAnm);
|
||||
field_0x3198 = 1;
|
||||
@@ -582,7 +582,7 @@ asm int daAlink_c::procDkCaught() {
|
||||
void daAlink_c::setScreamWaitAnime() {
|
||||
setSingleAnimeBase(ANM_WAIT_F);
|
||||
voiceStart(Z2SE_AL_V_TERRORED);
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_6108);
|
||||
dComIfGp_getVibration().StartQuake(5, 1, cXyz(tmp_0, lit_6040, tmp_0));
|
||||
@@ -597,7 +597,7 @@ int daAlink_c::procScreamWaitInit() {
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_basic_c0::m.mAnmBlendFactor);
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
@@ -611,7 +611,7 @@ int daAlink_c::procScreamWait() {
|
||||
|
||||
if (!i_checkEndResetFlg1(ERFLG1_UNK_1)) {
|
||||
checkNextAction(0);
|
||||
} else if (field_0x300c == 0 && i_checkEndResetFlg1(ERFLG1_UNK_2)) {
|
||||
} else if (mProcVar2.field_0x300c == 0 && i_checkEndResetFlg1(ERFLG1_UNK_2)) {
|
||||
setScreamWaitAnime();
|
||||
}
|
||||
|
||||
@@ -719,7 +719,7 @@ int daAlink_c::procCoSwimFreezeReturnInit() {
|
||||
|
||||
u32 id = fopAcM_GetID(this);
|
||||
dCam_getBody()->StartEventCamera(9, id, "Type", 1, &field_0x3194, 0);
|
||||
field_0x300c = 0x2D;
|
||||
mProcVar2.field_0x300c = 0x2D;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -727,7 +727,7 @@ int daAlink_c::procCoSwimFreezeReturnInit() {
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::procCoSwimFreezeReturn() {
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
if (checkRestartDead(4, 1)) {
|
||||
i_onNoResetFlg1(FLG1_UNK_40000000);
|
||||
} else {
|
||||
@@ -737,7 +737,7 @@ int daAlink_c::procCoSwimFreezeReturn() {
|
||||
dStage_changeScene(3, 0.0f, mode, fopAcM_GetRoomNo(this), shape_angle.y, -1);
|
||||
}
|
||||
} else {
|
||||
field_0x300c--;
|
||||
mProcVar2.field_0x300c--;
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
||||
+257
-257
File diff suppressed because it is too large
Load Diff
@@ -342,7 +342,7 @@ asm void daAlink_c::setWolfBarrierHitEffect(dBgS_LinChk& param_0) {
|
||||
/* 80124144-801241E0 11EA84 009C+00 9/9 0/0 0/0 .text setCutWaterDropEffect__9daAlink_cFv
|
||||
*/
|
||||
void daAlink_c::setCutWaterDropEffect() {
|
||||
if (field_0x32c0 > 0) {
|
||||
if (field_0x32c0[0] > 0) {
|
||||
cXyz sp18;
|
||||
mDoMtx_multVecZero(mpLinkModel->i_getAnmMtx(1), &sp18);
|
||||
dComIfGp_particle_setColor(0x2A4, &sp18, &mTevStr, NULL, NULL, FLOAT_LABEL(lit_6108), -1,
|
||||
|
||||
@@ -176,7 +176,7 @@ static u8 lit_4421[12];
|
||||
#pragma pop
|
||||
|
||||
/* 80425634-80425640 052354 000C+00 2/3 0/0 0/0 .bss l_wolfRopeBaseAnime */
|
||||
static f32 l_wolfRopeBaseAnime[3];
|
||||
static Vec l_wolfRopeBaseAnime;
|
||||
|
||||
/* 80425640-8042564C 052360 000C+00 0/1 0/0 0/0 .bss @14255 */
|
||||
#pragma push
|
||||
@@ -324,9 +324,9 @@ asm void daAlink_c::putObjLineCheck(dBgS_LinChk& param_0, cXyz* param_1, fopAc_a
|
||||
#pragma pop
|
||||
|
||||
/* 800E5B6C-800E5BB4 0E04AC 0048+00 3/3 0/0 0/0 .text grabLineCheck__9daAlink_cFP4cXyzP4cXyz */
|
||||
void daAlink_c::grabLineCheck(cXyz* i_start, cXyz* i_end) {
|
||||
bool daAlink_c::grabLineCheck(cXyz* i_start, cXyz* i_end) {
|
||||
mObjLinChk.Set(i_start, i_end, mGrabItemAcKeep.getActor());
|
||||
dComIfG_Bgsp().LineCross(&mObjLinChk);
|
||||
return dComIfG_Bgsp().LineCross(&mObjLinChk);
|
||||
}
|
||||
|
||||
/* 800E5BB4-800E5CBC 0E04F4 0108+00 6/6 0/0 0/0 .text setGrabItemActor__9daAlink_cFP10fopAc_ac_c
|
||||
@@ -858,8 +858,8 @@ static fopAc_ac_c* daAlink_searchGoat(fopAc_ac_c* i_actor, void*) {
|
||||
/* 800E91C4-800E9210 0E3B04 004C+00 1/0 0/0 0/0 .text cancelGoronThrowEvent__9daAlink_cFv
|
||||
*/
|
||||
void daAlink_c::cancelGoronThrowEvent() {
|
||||
if (mProcID == PROC_GOAT_CATCH && field_0x300e.z == 0) {
|
||||
field_0x300e.z = 1;
|
||||
if (mProcID == PROC_GOAT_CATCH && mProcVar3.field_0x300e.z == 0) {
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
i_dComIfGp_event_reset();
|
||||
}
|
||||
}
|
||||
@@ -892,14 +892,14 @@ int daAlink_c::procGoatMoveInit() {
|
||||
field_0x594 = daAlinkHIO_atnMove_c0::m.mMaxSpeed;
|
||||
|
||||
setSingleAnimeBase(ANM_ATN_COW);
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
|
||||
fopAc_ac_c* goat_p = (fopAc_ac_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchGoat, NULL);
|
||||
if (goat_p != NULL) {
|
||||
field_0x280c.setData(goat_p);
|
||||
}
|
||||
|
||||
field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
deleteEquipItem(FALSE, FALSE);
|
||||
return 1;
|
||||
}
|
||||
@@ -1002,8 +1002,8 @@ int daAlink_c::procGoronMoveInit() {
|
||||
current.angle.y = shape_angle.y + -0x4000;
|
||||
field_0x594 = daAlinkHIO_atnMove_c0::m.mMaxSpeed;
|
||||
setSingleAnimeBase(ANM_ATN_RIGHT);
|
||||
field_0x300c = 1;
|
||||
field_0x300e.x = 0;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
+32
-32
@@ -398,7 +398,7 @@ int daAlink_c::procHangReadyInit() {
|
||||
|
||||
commonProcInit(PROC_HANG_READY);
|
||||
setSingleAnimeParam(ANM_CLIMB_JUMP, &daAlinkHIO_wallCatch_c0::m.mJumpAnm);
|
||||
field_0x300c = field_0x306e + 0x8000;
|
||||
mProcVar2.field_0x300c = field_0x306e + 0x8000;
|
||||
field_0x3198 = field_0x2f91;
|
||||
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_6108);
|
||||
@@ -409,11 +409,11 @@ int daAlink_c::procHangReadyInit() {
|
||||
|
||||
/* 800FC240-800FC2F4 0F6B80 00B4+00 1/0 0/0 0/0 .text procHangReady__9daAlink_cFv */
|
||||
int daAlink_c::procHangReady() {
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x300c, 2, 0x1000, 0x400);
|
||||
cLib_addCalcAngleS(&shape_angle.y, mProcVar2.field_0x300c, 2, 0x1000, 0x400);
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
if (checkAnmEnd(mUnderFrameCtrl)) {
|
||||
shape_angle.y = field_0x300c;
|
||||
shape_angle.y = mProcVar2.field_0x300c;
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
int hang_init;
|
||||
@@ -443,7 +443,7 @@ int daAlink_c::procHangLeverDownInit() {
|
||||
commonProcInit(PROC_HANG_LEVER_DOWN);
|
||||
field_0x280c.setData(field_0x27f4);
|
||||
setSingleAnimeParam(ANM_CLIMB_JUMP, &daAlinkHIO_wallCatch_c0::m.mJumpAnm);
|
||||
field_0x300c = field_0x27f4->shape_angle.y + 0x8000;
|
||||
mProcVar2.field_0x300c = field_0x27f4->shape_angle.y + 0x8000;
|
||||
field_0x3198 = 145;
|
||||
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_6108);
|
||||
@@ -525,11 +525,11 @@ int daAlink_c::procBossBodyHangInit(fopAc_ac_c* param_0) {
|
||||
setSpecialGravity(tmp_0, mMaxFallSpeed, 0);
|
||||
speed.y = FLOAT_LABEL(lit_6108);
|
||||
|
||||
field_0x300c = 0;
|
||||
field_0x300e.x = 0;
|
||||
field_0x300e.y = 0;
|
||||
field_0x3008 = 0;
|
||||
field_0x300e.z = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
field_0x3080 = 0;
|
||||
|
||||
field_0x280c.setData(param_0);
|
||||
@@ -691,8 +691,8 @@ int daAlink_c::procLadderUpEndInit(int param_0) {
|
||||
|
||||
field_0x30a0 = -0x0800;
|
||||
field_0x33f4 = lit_6041;
|
||||
field_0x300c = 1;
|
||||
field_0x300e.y = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
dComIfGp_setPlayerStatus0(0, 0x2000000);
|
||||
return 1;
|
||||
}
|
||||
@@ -711,8 +711,8 @@ int daAlink_c::procLadderUpEnd() {
|
||||
!checkNextAction(1))
|
||||
{
|
||||
if (frame_ctrl->getFrame() >= lit_15341) {
|
||||
field_0x300c = 0;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
} else if (frame_ctrl->getFrame() >= lit_17382) {
|
||||
field_0x30a0 = 0;
|
||||
field_0x33f4 = FLOAT_LABEL(lit_6108);
|
||||
@@ -749,8 +749,8 @@ int daAlink_c::procLadderDownStart() {
|
||||
changeLadderMoveProc(0);
|
||||
}
|
||||
} else if (frame_ctrl->getFrame() >= lit_10286) {
|
||||
field_0x300c = 1;
|
||||
field_0x300e.y = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -769,8 +769,8 @@ int daAlink_c::procLadderDownEndInit(int param_0) {
|
||||
|
||||
field_0x30a0 = 0x2800;
|
||||
field_0x33f4 = lit_6040;
|
||||
field_0x300c = 0;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
dComIfGp_setPlayerStatus0(0, 0x2000000);
|
||||
return 1;
|
||||
}
|
||||
@@ -1211,7 +1211,7 @@ int daAlink_c::procRoofHangStartInit(cBgS_PolyInfo const& param_0, cXyz const& p
|
||||
mNormalSpeed = tmp_0;
|
||||
speed.y = tmp_0;
|
||||
field_0x2f99 = 0x50;
|
||||
field_0x3008 = param_2;
|
||||
mProcVar0.field_0x3008 = param_2;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1222,11 +1222,11 @@ int daAlink_c::procRoofHangStart() {
|
||||
}
|
||||
|
||||
if (field_0x33a8 < lit_13700) {
|
||||
field_0x3008 = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
}
|
||||
|
||||
daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl;
|
||||
if (field_0x3008 == 0 &&
|
||||
if (mProcVar0.field_0x3008 == 0 &&
|
||||
(checkAnmEnd(frame_ctrl) ||
|
||||
(checkInputOnR() &&
|
||||
frame_ctrl->getFrame() > daAlinkHIO_roofHang_c0::m.field_0x0.mCheckFrame)))
|
||||
@@ -1257,10 +1257,10 @@ int daAlink_c::procRoofHangWait() {
|
||||
}
|
||||
|
||||
if (field_0x33a8 < lit_13700) {
|
||||
field_0x3008 = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
}
|
||||
|
||||
if (field_0x3008 == 0) {
|
||||
if (mProcVar0.field_0x3008 == 0) {
|
||||
checkNextActionRoofHang();
|
||||
}
|
||||
|
||||
@@ -1348,17 +1348,17 @@ int daAlink_c::procRoofHangTurnInit() {
|
||||
f32 anm_speed;
|
||||
if ((s16)(field_0x2fe2 - shape_angle.y) < 0) {
|
||||
anm_speed = -daAlinkHIO_roofHang_c0::m.field_0x44;
|
||||
field_0x3008 = 1;
|
||||
mProcVar0.field_0x3008 = 1;
|
||||
shape_angle.y += 0x8000;
|
||||
setOldRootQuaternion(0, -0x8000, 0);
|
||||
field_0x2060->getOldFrameTransInfo(0)->mTranslate.z = lit_26275;
|
||||
field_0x300c = field_0x2fe2;
|
||||
mProcVar2.field_0x300c = field_0x2fe2;
|
||||
field_0x3478 = FLOAT_LABEL(lit_6108);
|
||||
field_0x347c = lit_7625;
|
||||
} else {
|
||||
anm_speed = daAlinkHIO_roofHang_c0::m.field_0x44;
|
||||
field_0x3008 = 0;
|
||||
field_0x300c = field_0x2fe2 + 0x8000;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar2.field_0x300c = field_0x2fe2 + 0x8000;
|
||||
field_0x3478 = lit_7625;
|
||||
field_0x347c = lit_26276;
|
||||
}
|
||||
@@ -1366,7 +1366,7 @@ int daAlink_c::procRoofHangTurnInit() {
|
||||
current.angle.y = shape_angle.y;
|
||||
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_TURN, anm_speed, daAlinkHIO_roofHang_c0::m.field_0x48);
|
||||
|
||||
if (field_0x3008 != 0) {
|
||||
if (mProcVar0.field_0x3008 != 0) {
|
||||
setFaceBasicTexture(FTANM_UNK_4);
|
||||
} else {
|
||||
setFaceBasicTexture(FTANM_UNK_3);
|
||||
@@ -1389,7 +1389,7 @@ int daAlink_c::procRoofHangTurn() {
|
||||
|
||||
daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl;
|
||||
if (checkAnmEnd(frame_ctrl)) {
|
||||
if (field_0x3008 == 0) {
|
||||
if (mProcVar0.field_0x3008 == 0) {
|
||||
shape_angle.y += 0x8000;
|
||||
current.angle.y = shape_angle.y;
|
||||
setOldRootQuaternion(0, -0x8000, 0);
|
||||
@@ -1399,7 +1399,7 @@ int daAlink_c::procRoofHangTurn() {
|
||||
checkNextActionRoofHang();
|
||||
} else {
|
||||
if (frame_ctrl->getFrame() >= field_0x3478 && frame_ctrl->getFrame() <= field_0x347c) {
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x300c, 3, 0x200, 0x100);
|
||||
cLib_addCalcAngleS(&shape_angle.y, mProcVar2.field_0x300c, 3, 0x200, 0x100);
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
|
||||
@@ -1441,7 +1441,7 @@ int daAlink_c::procRoofSwitchHangInit(fopAc_ac_c* param_0) {
|
||||
setOldRootQuaternion(0, current.angle.y - shape_angle.y, 0);
|
||||
shape_angle.y = current.angle.y;
|
||||
field_0x2f99 = 0x50;
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1456,8 +1456,8 @@ int daAlink_c::procRoofSwitchHang() {
|
||||
if (checkAnmEnd(mUnderFrameCtrl)) {
|
||||
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_WAIT, daAlinkHIO_roofHang_c0::m.field_0x1C,
|
||||
daAlinkHIO_roofHang_c0::m.field_0x20);
|
||||
field_0x300c = 1;
|
||||
} else if (field_0x300c != 0) {
|
||||
mProcVar2.field_0x300c = 1;
|
||||
} else if (mProcVar2.field_0x300c != 0) {
|
||||
setDoStatus(0x33);
|
||||
|
||||
if (doTrigger()) {
|
||||
|
||||
+64
-91
@@ -360,7 +360,7 @@ void daAlink_c::cancelHookshotShot() {
|
||||
}
|
||||
|
||||
/* 80108F64-8010903C 1038A4 00D8+00 4/4 0/0 0/0 .text cancelHookshotMove__9daAlink_cFv */
|
||||
// checkAttentionLock has weird codegen
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
bool daAlink_c::cancelHookshotMove() {
|
||||
if (mFastShotTime == 0 && mItemMode == HS_MODE_NONE_e) {
|
||||
@@ -441,8 +441,6 @@ void daAlink_c::initHookshotReady() {
|
||||
|
||||
/* 801091E4-80109284 103B24 00A0+00 1/1 0/0 0/0 .text setHookshotReadyAnime__9daAlink_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
void daAlink_c::setHookshotReadyAnime() {
|
||||
f32 speed;
|
||||
if (!i_checkAttentionLock() && mFastShotTime == 0) {
|
||||
@@ -455,12 +453,9 @@ void daAlink_c::setHookshotReadyAnime() {
|
||||
field_0x3020 = 0;
|
||||
initHookshotReady();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80109284-801095C8 103BC4 0344+00 3/3 0/0 0/0 .text checkUpperItemActionHookshot__9daAlink_cFv
|
||||
*/
|
||||
// checkAttentionLock
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::checkUpperItemActionHookshot() {
|
||||
if (checkHookshotWait()) {
|
||||
mSearchBallScale = FLT_MAX;
|
||||
@@ -554,20 +549,8 @@ int daAlink_c::checkUpperItemActionHookshot() {
|
||||
|
||||
return cancelUpperItemReadyAnime(0);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daAlink_c::checkUpperItemActionHookshot() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/checkUpperItemActionHookshot__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 801095C8-801097A0 103F08 01D8+00 7/7 0/0 0/0 .text checkNextActionHookshot__9daAlink_cFv */
|
||||
// matches with a i_checkAttentionLock fix
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::checkNextActionHookshot() {
|
||||
if (mProcID == PROC_HOOKSHOT_ROOF_SHOOT || mProcID == PROC_HOOKSHOT_WALL_SHOOT) {
|
||||
return 0;
|
||||
@@ -610,16 +593,6 @@ int daAlink_c::checkNextActionHookshot() {
|
||||
return procHookshotMoveInit();
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daAlink_c::checkNextActionHookshot() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/checkNextActionHookshot__9daAlink_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 801097A0-80109890 1040E0 00F0+00 2/2 0/0 0/0 .text setHookshotReturnEnd__9daAlink_cFv
|
||||
*/
|
||||
@@ -830,13 +803,13 @@ void daAlink_c::setHookshotPos() {
|
||||
if (checkHookshotWait() || mItemMode == 2) {
|
||||
csXyz* var_r28;
|
||||
if (mProcID == PROC_HOOKSHOT_WALL_SHOOT || mProcID == PROC_HOOKSHOT_ROOF_SHOOT) {
|
||||
var_r28 = &field_0x300e;
|
||||
var_r28 = &mProcVar3.field_0x300e;
|
||||
} else {
|
||||
var_r28 = &mBodyAngle;
|
||||
}
|
||||
|
||||
if (mProcID == PROC_HOOKSHOT_WALL_SHOOT) {
|
||||
field_0x301e = field_0x300e.y;
|
||||
field_0x301e = mProcVar3.field_0x300e.y;
|
||||
} else {
|
||||
field_0x301e = (s16)(shape_angle.y + mBodyAngle.y);
|
||||
}
|
||||
@@ -1223,13 +1196,13 @@ void daAlink_c::initHookshotRoofWaitActor(fopAc_ac_c* i_actor) {
|
||||
mDoMtx_stack_c::XrotS(-i_actor->shape_angle.x);
|
||||
mDoMtx_stack_c::YrotM(-i_actor->shape_angle.y);
|
||||
mDoMtx_stack_c::multVecSR(&field_0x37c8, &field_0x37c8);
|
||||
field_0x3008 = i_actor->shape_angle.y;
|
||||
mProcVar0.field_0x3008 = i_actor->shape_angle.y;
|
||||
|
||||
fopAcM_setHookCarryNow(i_actor);
|
||||
field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
} else {
|
||||
mCargoCarryAcKeep.clearData();
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1286,7 +1259,7 @@ int daAlink_c::checkLandHookshotHang() {
|
||||
/* 8010B96C-8010BA6C 1062AC 0100+00 3/3 0/0 0/0 .text commonHookshotRoofWait__9daAlink_cFv */
|
||||
int daAlink_c::commonHookshotRoofWait() {
|
||||
setJumpMode();
|
||||
if (field_0x300e.y != 0) {
|
||||
if (mProcVar3.field_0x300e.y != 0) {
|
||||
mCargoCarryAcKeep.setActor();
|
||||
fopAc_ac_c* carryAc_p = mCargoCarryAcKeep.getActor();
|
||||
|
||||
@@ -1460,11 +1433,11 @@ int daAlink_c::procHookshotFlyInit() {
|
||||
shape_angle.y = field_0x301e;
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
field_0x3008 = 1;
|
||||
field_0x300a = 4;
|
||||
mProcVar0.field_0x3008 = 1;
|
||||
mProcVar1.field_0x300a = 4;
|
||||
field_0x2f99 = 0x50;
|
||||
field_0x300c = mItemMode;
|
||||
field_0x300e.z = 0;
|
||||
mProcVar2.field_0x300c = mItemMode;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
|
||||
procHookshotFly();
|
||||
return 1;
|
||||
@@ -1506,29 +1479,29 @@ int daAlink_c::procHookshotFly() {
|
||||
setHookshotTopPosFly();
|
||||
|
||||
field_0x37d4 = mHookshotTopPos - mHeldItemRootPos;
|
||||
if (field_0x3008 != 0 && cLib_distanceAngleS(field_0x37d4.atan2sX_Z(), temp_r24) > 0x4000) {
|
||||
if (mProcVar0.field_0x3008 != 0 && cLib_distanceAngleS(field_0x37d4.atan2sX_Z(), temp_r24) > 0x4000) {
|
||||
setHookshotReturnEnd();
|
||||
} else {
|
||||
field_0x3008 = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
f32 temp_f31 = field_0x37d4.abs();
|
||||
f32 temp_f30 = daAlinkHIO_hookshot_c0::m.mStickReturnSpeed + spAC.abs(mHookshotTopPos);
|
||||
|
||||
if (temp_f31 < temp_f30 || field_0x300a == 0) {
|
||||
if (temp_f31 < temp_f30 || mProcVar1.field_0x300a == 0) {
|
||||
setHookshotReturnEnd();
|
||||
} else {
|
||||
field_0x37d4 *= temp_f30 / temp_f31;
|
||||
seStartOnlyReverbLevel(Z2SE_LK_HS_WIND_UP);
|
||||
if (temp_f31 < temp_f30 * 1.5f) {
|
||||
field_0x300a--;
|
||||
mProcVar1.field_0x300a--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
current.pos += field_0x37d4;
|
||||
if (checkSetItemTrigger(W_HOOKSHOT) != 0) {
|
||||
field_0x300e.z = 1;
|
||||
} else if (field_0x300e.z != 0 && !itemButton()) {
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
} else if (mProcVar3.field_0x300e.z != 0 && !itemButton()) {
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
}
|
||||
|
||||
if (mItemMode != 5 && mItemMode != HS_MODE_FLY_e) {
|
||||
@@ -1543,7 +1516,7 @@ int daAlink_c::procHookshotFly() {
|
||||
BOOL var_r27 = 0;
|
||||
BOOL force_fall = checkStageName("D_MN10") && fopAcM_GetRoomNo(this) == 4;
|
||||
|
||||
if (field_0x300c == 4 && dComIfG_Bgsp().ChkPolySafe(mPolyInfo2)) {
|
||||
if (mProcVar2.field_0x300c == 4 && dComIfG_Bgsp().ChkPolySafe(mPolyInfo2)) {
|
||||
var_r28 = dComIfG_Bgsp().GetTriPla(mPolyInfo2, &poly);
|
||||
var_r27 = cBgW_CheckBRoof(poly.mNormal.y);
|
||||
if (!checkHookshotStickBG(mPolyInfo2)) {
|
||||
@@ -1589,7 +1562,7 @@ int daAlink_c::procHookshotFly() {
|
||||
procFallInit(1, 5.0f);
|
||||
field_0x2f99 = 0x70;
|
||||
} else if (targetAc_name == PROC_E_PH || targetAc_name == PROC_B_DR || var_r29) {
|
||||
procHookshotRoofWaitInit(1, targetAc_p, field_0x300e.z);
|
||||
procHookshotRoofWaitInit(1, targetAc_p, mProcVar3.field_0x300e.z);
|
||||
} else if (var_r28 && dComIfG_Bgsp().GetMonkeyBarsCode(mPolyInfo2)) {
|
||||
cXyz sp88;
|
||||
mDoMtx_stack_c::ZXYrotS(field_0x301c, field_0x301e, 0);
|
||||
@@ -1598,9 +1571,9 @@ int daAlink_c::procHookshotFly() {
|
||||
|
||||
procRoofHangStartInit(mPolyInfo2, sp88, 0);
|
||||
} else if (var_r28 && var_r27) {
|
||||
procHookshotRoofWaitInit(1, NULL, field_0x300e.z);
|
||||
procHookshotRoofWaitInit(1, NULL, mProcVar3.field_0x300e.z);
|
||||
} else if (var_r28 && field_0x2f91 != 3 && fabsf(poly.mNormal.y) < 0.05f) {
|
||||
procHookshotWallWaitInit(1, poly.mNormal.atan2sX_Z(), field_0x300e.z);
|
||||
procHookshotWallWaitInit(1, poly.mNormal.atan2sX_Z(), mProcVar3.field_0x300e.z);
|
||||
} else {
|
||||
procFallInit(1, 5.0f);
|
||||
field_0x2f99 = 0x70;
|
||||
@@ -1659,11 +1632,11 @@ int daAlink_c::procHookshotRoofWaitInit(int param_0, fopAc_ac_c* param_1, int pa
|
||||
anm = ANM_HOOKSHOT_HANG_END_RIGHT;
|
||||
}
|
||||
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
setSingleAnimeParam(anm, &daAlinkHIO_hookshot_c0::m.mRoofHangAnm);
|
||||
} else {
|
||||
setHookshotRoofWaitAnime();
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
}
|
||||
|
||||
resetHookshotMode();
|
||||
@@ -1679,7 +1652,7 @@ int daAlink_c::procHookshotRoofWaitInit(int param_0, fopAc_ac_c* param_1, int pa
|
||||
}
|
||||
|
||||
field_0x2b98 = 6.5f;
|
||||
field_0x300e.z = param_2;
|
||||
mProcVar3.field_0x300e.z = param_2;
|
||||
|
||||
dComIfGp_setPlayerStatus1(0, 0x10000);
|
||||
field_0x814.SetWeight(255);
|
||||
@@ -1735,23 +1708,23 @@ int daAlink_c::procHookshotRoofWait() {
|
||||
|
||||
setShapeAngleToAtnActor(0);
|
||||
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
if (checkSetItemTrigger(W_HOOKSHOT)) {
|
||||
field_0x300e.z = 1;
|
||||
} else if (field_0x300e.z != 0 && !itemButton()) {
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
} else if (mProcVar3.field_0x300e.z != 0 && !itemButton()) {
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
}
|
||||
|
||||
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
|
||||
if (frameCtrl_p->checkAnmEnd() ||
|
||||
((checkInputOnR() || field_0x300e.z != 0 || checkHookshotRoofLv7Boss()) &&
|
||||
((checkInputOnR() || mProcVar3.field_0x300e.z != 0 || checkHookshotRoofLv7Boss()) &&
|
||||
frameCtrl_p->getFrame() > daAlinkHIO_hookshot_c0::m.mRoofHangAnm.mCheckFrame))
|
||||
{
|
||||
setHookshotRoofWaitAnime();
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
}
|
||||
} else if (!checkHookshotRoofLv7Boss()) {
|
||||
if (checkSetItemTrigger(W_HOOKSHOT) || field_0x300e.z != 0) {
|
||||
if (checkSetItemTrigger(W_HOOKSHOT) || mProcVar3.field_0x300e.z != 0) {
|
||||
return procHookshotRoofShootInit(mCargoCarryAcKeep.getActor());
|
||||
}
|
||||
hookshotRoofTurn();
|
||||
@@ -1798,8 +1771,8 @@ int daAlink_c::procHookshotRoofShootInit(fopAc_ac_c* param_0) {
|
||||
dComIfGp_setPlayerStatus0(0, 0x4000);
|
||||
|
||||
field_0x814.SetWeight(255);
|
||||
field_0x300c = 0;
|
||||
field_0x300e.x = mBodyAngle.x;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = mBodyAngle.x;
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
@@ -1815,7 +1788,7 @@ asm int daAlink_c::procHookshotRoofShootInit(fopAc_ac_c* param_0) {
|
||||
|
||||
/* 8010CD60-8010CF6C 1076A0 020C+00 1/0 0/0 0/0 .text procHookshotRoofShoot__9daAlink_cFv
|
||||
*/
|
||||
// matches with a i_checkAttentionLock fix
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::procHookshotRoofShoot() {
|
||||
if (checkHookshotWait()) {
|
||||
@@ -1838,7 +1811,7 @@ int daAlink_c::procHookshotRoofShoot() {
|
||||
}
|
||||
|
||||
if (!checkUpperItemActionHookshot()) {
|
||||
mBodyAngle.x = field_0x300e.x;
|
||||
mBodyAngle.x = mProcVar3.field_0x300e.x;
|
||||
|
||||
if (!i_checkAttentionLock() && mFastShotTime == 0) {
|
||||
if (checkHookshotWait()) {
|
||||
@@ -1846,14 +1819,14 @@ int daAlink_c::procHookshotRoofShoot() {
|
||||
mUnderFrameCtrl[0].setFrame(0.0f);
|
||||
getNowAnmPackUnder(UNDER_0)->setFrame(0.0f);
|
||||
|
||||
if (field_0x300c != 0 && setBodyAngleToCamera()) {
|
||||
if (mProcVar2.field_0x300c != 0 && setBodyAngleToCamera()) {
|
||||
setHookshotSight();
|
||||
}
|
||||
} else {
|
||||
dComIfGp_setPlayerStatus0(0, 0x40000);
|
||||
}
|
||||
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
} else {
|
||||
if (mTargetedActor == NULL && mItemMode == HS_MODE_NONE_e) {
|
||||
return procHookshotRoofWaitInit(0, mCargoCarryAcKeep.getActor(), 0);
|
||||
@@ -1862,7 +1835,7 @@ int daAlink_c::procHookshotRoofShoot() {
|
||||
if (checkHookshotWait()) {
|
||||
mUnderFrameCtrl[0].setRate(1.0f);
|
||||
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
setBodyAngleXReadyAnime(0);
|
||||
hookshotRoofTurn();
|
||||
} else {
|
||||
@@ -1870,10 +1843,10 @@ int daAlink_c::procHookshotRoofShoot() {
|
||||
}
|
||||
}
|
||||
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
}
|
||||
|
||||
field_0x300e.x = mBodyAngle.x;
|
||||
mProcVar3.field_0x300e.x = mBodyAngle.x;
|
||||
mBodyAngle.x = 0;
|
||||
}
|
||||
|
||||
@@ -2001,11 +1974,11 @@ int daAlink_c::procHookshotWallWaitInit(int param_0, s16 param_1, int param_2) {
|
||||
anm = ANM_HOOKSHOT_WALL_END_RIGHT;
|
||||
}
|
||||
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
setSingleAnimeParam(anm, &daAlinkHIO_hookshot_c0::m.mWallHangAnm);
|
||||
} else {
|
||||
setHookshotWallWaitAnime();
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
}
|
||||
|
||||
dComIfGp_setPlayerStatus1(0, 0x2000000);
|
||||
@@ -2020,7 +1993,7 @@ int daAlink_c::procHookshotWallWaitInit(int param_0, s16 param_1, int param_2) {
|
||||
setHookshotHangMoveBGCollect();
|
||||
}
|
||||
|
||||
field_0x300e.z = param_2;
|
||||
mProcVar3.field_0x300e.z = param_2;
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
@@ -2078,22 +2051,22 @@ int daAlink_c::procHookshotWallWait() {
|
||||
return procFallInit(1, 5.0f);
|
||||
}
|
||||
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
if (checkSetItemTrigger(W_HOOKSHOT)) {
|
||||
field_0x300e.z = 1;
|
||||
} else if (field_0x300e.z != 0 && !itemButton()) {
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
} else if (mProcVar3.field_0x300e.z != 0 && !itemButton()) {
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
}
|
||||
|
||||
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
|
||||
if (frameCtrl_p->checkAnmEnd() ||
|
||||
((checkInputOnR() || field_0x300e.z != 0) &&
|
||||
((checkInputOnR() || mProcVar3.field_0x300e.z != 0) &&
|
||||
frameCtrl_p->getFrame() > daAlinkHIO_hookshot_c0::m.mWallHangAnm.mCheckFrame))
|
||||
{
|
||||
setHookshotWallWaitAnime();
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
}
|
||||
} else if (checkSetItemTrigger(W_HOOKSHOT) || field_0x300e.z != 0) {
|
||||
} else if (checkSetItemTrigger(W_HOOKSHOT) || mProcVar3.field_0x300e.z != 0) {
|
||||
return procHookshotWallShootInit();
|
||||
}
|
||||
|
||||
@@ -2133,10 +2106,10 @@ int daAlink_c::procHookshotWallShootInit() {
|
||||
initHookshotReady();
|
||||
dComIfGp_setPlayerStatus0(0, 0x4000);
|
||||
|
||||
field_0x300c = 0;
|
||||
field_0x300e.x = mBodyAngle.x;
|
||||
field_0x300e.y = shape_angle.y;
|
||||
field_0x310c = field_0x300e.y;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = mBodyAngle.x;
|
||||
mProcVar3.field_0x300e.y = shape_angle.y;
|
||||
field_0x310c = mProcVar3.field_0x300e.y;
|
||||
setHookshotReadyMaterial();
|
||||
return 1;
|
||||
}
|
||||
@@ -2153,7 +2126,7 @@ asm int daAlink_c::procHookshotWallShootInit() {
|
||||
|
||||
/* 8010D6CC-8010D93C 10800C 0270+00 1/0 0/0 0/0 .text procHookshotWallShoot__9daAlink_cFv
|
||||
*/
|
||||
// matches with a i_checkAttentionLock fix
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::procHookshotWallShoot() {
|
||||
if (checkHookshotWait()) {
|
||||
@@ -2174,8 +2147,8 @@ int daAlink_c::procHookshotWallShoot() {
|
||||
BOOL var_r31 = false;
|
||||
if (!checkUpperItemActionHookshot()) {
|
||||
s16 old_angle = shape_angle.y;
|
||||
mBodyAngle.x = field_0x300e.x;
|
||||
shape_angle.y = field_0x300e.y;
|
||||
mBodyAngle.x = mProcVar3.field_0x300e.x;
|
||||
shape_angle.y = mProcVar3.field_0x300e.y;
|
||||
|
||||
if (!i_checkAttentionLock() && mFastShotTime == 0) {
|
||||
if (checkHookshotWait()) {
|
||||
@@ -2183,14 +2156,14 @@ int daAlink_c::procHookshotWallShoot() {
|
||||
mUnderFrameCtrl[0].setFrame(0.0f);
|
||||
getNowAnmPackUnder(UNDER_0)->setFrame(0.0f);
|
||||
|
||||
if (field_0x300c != 0 && setBodyAngleToCamera()) {
|
||||
if (mProcVar2.field_0x300c != 0 && setBodyAngleToCamera()) {
|
||||
var_r31 = true;
|
||||
}
|
||||
} else {
|
||||
dComIfGp_setPlayerStatus0(0, 0x40000);
|
||||
}
|
||||
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
} else {
|
||||
if (mTargetedActor == NULL && mItemMode == HS_MODE_NONE_e) {
|
||||
shape_angle.y = old_angle;
|
||||
@@ -2200,7 +2173,7 @@ int daAlink_c::procHookshotWallShoot() {
|
||||
if (checkHookshotWait()) {
|
||||
setWaterInAnmRate(mUnderFrameCtrl, 1.0f);
|
||||
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
setBodyAngleXReadyAnime(0);
|
||||
|
||||
if (!setShapeAngleToAtnActor(0)) {
|
||||
@@ -2209,7 +2182,7 @@ int daAlink_c::procHookshotWallShoot() {
|
||||
}
|
||||
}
|
||||
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
}
|
||||
|
||||
if ((s16)(shape_angle.y - old_angle) > 0x4000) {
|
||||
@@ -2222,10 +2195,10 @@ int daAlink_c::procHookshotWallShoot() {
|
||||
setHookshotSight();
|
||||
}
|
||||
|
||||
field_0x300e.x = mBodyAngle.x;
|
||||
mProcVar3.field_0x300e.x = mBodyAngle.x;
|
||||
mBodyAngle.x = 0;
|
||||
field_0x310c = shape_angle.y;
|
||||
field_0x300e.y = shape_angle.y;
|
||||
mProcVar3.field_0x300e.y = shape_angle.y;
|
||||
shape_angle.y = old_angle;
|
||||
}
|
||||
|
||||
|
||||
+14
-14
@@ -473,7 +473,7 @@ int daAlink_c::setSyncBoarRunPos() {
|
||||
shape_angle.z = sp28.x;
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
if (mProcID == PROC_BOAR_RUN && field_0x300e.x != 0) {
|
||||
if (mProcID == PROC_BOAR_RUN && mProcVar3.field_0x300e.x != 0) {
|
||||
mUnderFrameCtrl[0].setFrame(e_wb_p->nowAnimeFrame());
|
||||
getNowAnmPackUnder(UNDER_0)->setFrame(e_wb_p->nowAnimeFrame());
|
||||
}
|
||||
@@ -1378,7 +1378,7 @@ int daAlink_c::procHorseCutChargeReadyInit() {
|
||||
resetUnderAnime(UNDER_2, lit_6041);
|
||||
}
|
||||
|
||||
field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
|
||||
mProcVar2.field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
|
||||
field_0x3004 = 0;
|
||||
i_onNoResetFlg1(FLG1_UNK_10000000);
|
||||
return 1;
|
||||
@@ -1410,7 +1410,7 @@ int daAlink_c::procHorseCutTurnInit() {
|
||||
setSyncRide(1);
|
||||
field_0x3478 = daAlinkHIO_hoCutCharge_c0::m.field_0x50;
|
||||
setCylAtParam(getSwordAtType(), dCcG_At_Spl_UNK_1, 3, 1, 3, field_0x3478 * 0.5f, 200.0f);
|
||||
field_0x300e.y = daAlinkHIO_hoCutCharge_c0::m.field_0x3E;
|
||||
mProcVar3.field_0x300e.y = daAlinkHIO_hoCutCharge_c0::m.field_0x3E;
|
||||
voiceStart(Z2SE_AL_V_KAITEN);
|
||||
setCutWaterDropEffect();
|
||||
setHorseZeldaDamage();
|
||||
@@ -1466,7 +1466,7 @@ int daAlink_c::procHorseBowSubjectInit() {
|
||||
|
||||
setSyncRidePos();
|
||||
setBaseRideAnime();
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
setBowOrSlingStatus();
|
||||
return 1;
|
||||
}
|
||||
@@ -1826,12 +1826,12 @@ int daAlink_c::procHorseRunInit() {
|
||||
setSingleAnimeBaseMorf(ANM_HORSE_TAME_WAIT_B, -1.0f);
|
||||
setSyncHorsePos();
|
||||
field_0x2fab = 0;
|
||||
field_0x300e.y = 0;
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
|
||||
field_0x3478 = 1000.0f - cM_rndF(500.0f);
|
||||
field_0x300c = 0;
|
||||
field_0x300e.x = 30;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = 30;
|
||||
field_0x3004 = 0;
|
||||
field_0x3002 = 0;
|
||||
mDoAud_changeSubBgmStatus(2);
|
||||
@@ -1890,7 +1890,7 @@ int daAlink_c::procHorseGetKeyInit() {
|
||||
deleteEquipItem(FALSE, FALSE);
|
||||
setSingleAnimeBase(ANM_KEY_CATCH);
|
||||
setSyncRidePos();
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1904,7 +1904,7 @@ int daAlink_c::procHorseGetKey() {
|
||||
} else if (frameCtrl_p->getFrame() >= lit_16038) {
|
||||
field_0x2f92 = 254;
|
||||
field_0x2f93 = 254;
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
} else if (frameCtrl_p->getFrame() >= lit_7448) {
|
||||
field_0x2f92 = 2;
|
||||
} else if (frameCtrl_p->getFrame() >= lit_7808) {
|
||||
@@ -1949,14 +1949,14 @@ int daAlink_c::procBoarRunInit() {
|
||||
resetUpperAnime(UPPER_2, -1.0f);
|
||||
resetUnderAnime(UNDER_2, -1.0f);
|
||||
|
||||
field_0x300e.y = 0;
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
field_0x3478 = 3000.0f - cM_rndF(1500.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_HORSE_TAME_WAIT_A_TO_B, 1.0f, 4.0f);
|
||||
field_0x300e.x = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
|
||||
setSyncBoarPos();
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
deleteEquipItem(FALSE, FALSE);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -411,7 +411,7 @@ int daAlink_c::procMagneBootsFlyInit() {
|
||||
|
||||
field_0x3478 = 0.0f;
|
||||
field_0x594 = daAlinkHIO_magneBoots_c0::m.mMaxMagneFlySpeed;
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
voiceStart(Z2SE_AL_V_MAGNET_CAUGHT);
|
||||
return 1;
|
||||
}
|
||||
@@ -461,7 +461,7 @@ int daAlink_c::procMagneBootsFly() {
|
||||
|
||||
cLib_addCalcAngleS(&shape_angle.x, sp24.atan2sY_XZ() + -0x4000, 5, 0x1000, 0x100);
|
||||
cLib_addCalcAngleS(&shape_angle.y, sp24.atan2sX_Z(), 5, 0x1000, 0x100);
|
||||
field_0x300c += 0x1C00;
|
||||
mProcVar2.field_0x300c += 0x1C00;
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
||||
@@ -160,9 +160,9 @@ int daAlink_c::procBoardRowInit() {
|
||||
commonProcInit(PROC_BOARD_ROW);
|
||||
setSingleAnimeBaseSpeed(ANM_RIDE_KICK, getBoardRowAnmSpeed(), daAlinkHIO_board_c0::m.mPushInterpolation);
|
||||
i_onResetFlg1(0x40);
|
||||
field_0x3008 = 4;
|
||||
field_0x300e.y = 1;
|
||||
field_0x300e.z = 0;
|
||||
mProcVar0.field_0x3008 = 4;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -182,9 +182,9 @@ int daAlink_c::procBoardTurnInit() {
|
||||
commonProcInit(PROC_BOARD_TURN);
|
||||
setSingleAnime(ANM_RIDE_JUMP, FLOAT_LABEL(lit_6108), lit_6040, daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame, lit_6109);
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
field_0x300e.y = shape_angle.y + 0x8000;
|
||||
field_0x300e.z = 0;
|
||||
field_0x300a = 0;
|
||||
mProcVar3.field_0x300e.y = shape_angle.y + 0x8000;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
mProcVar1.field_0x300a = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -203,8 +203,8 @@ asm int daAlink_c::procBoardTurn() {
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::procBoardJumpInit(f32 param_0, int param_1) {
|
||||
commonProcInit(PROC_BOARD_JUMP);
|
||||
field_0x3008 = 0;
|
||||
field_0x300e.z = 1;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
|
||||
setSingleAnime(ANM_RIDE_JUMP, FLOAT_LABEL(lit_6108),
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
|
||||
@@ -215,7 +215,7 @@ int daAlink_c::procBoardJumpInit(f32 param_0, int param_1) {
|
||||
speed.y = cLib_minMaxLimit(param_0, daAlinkHIO_board_c0::m.mMinJumpSpeedY, daAlinkHIO_board_c0::m.mMaxJumpSpeedY);
|
||||
}
|
||||
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
seStartOnlyReverb(Z2SE_AL_SNOBO_JUMP);
|
||||
return 1;
|
||||
}
|
||||
@@ -240,12 +240,12 @@ int daAlink_c::procBoardJump() {
|
||||
if (!i_checkModeFlg(2)) {
|
||||
setBoardLandAnime();
|
||||
procBoardWaitInit(NULL);
|
||||
} else if (field_0x300e.z != 0 && field_0x300e.y == 0 && field_0x2060->getOldFrameRate() < lit_8782) {
|
||||
} else if (mProcVar3.field_0x300e.z != 0 && mProcVar3.field_0x300e.y == 0 && field_0x2060->getOldFrameRate() < lit_8782) {
|
||||
setSingleAnime(ANM_RIDE_JUMP, daAlinkHIO_board_c0::m.mAirborneAnm.mSpeed,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame,
|
||||
lit_6041);
|
||||
field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -298,7 +298,7 @@ int daAlink_c::procBoardCutInit() {
|
||||
|
||||
setCommonBoardAnime(0);
|
||||
setCutDash(1, var_r31);
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -236,8 +236,6 @@ BOOL daAlink_c::checkUpperItemActionIronBall() {
|
||||
}
|
||||
|
||||
/* 801153F8-801154E4 10FD38 00EC+00 2/2 0/0 0/0 .text checkNextActionIronBall__9daAlink_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 2
|
||||
int daAlink_c::checkNextActionIronBall() {
|
||||
if (mFastShotTime != 0) {
|
||||
mFastShotTime--;
|
||||
@@ -258,7 +256,6 @@ int daAlink_c::checkNextActionIronBall() {
|
||||
return procIronBallMoveInit();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801154E4-80115564 10FE24 0080+00 1/1 0/0 0/0 .text procIronBallSubjectInit__9daAlink_cFv */
|
||||
int daAlink_c::procIronBallSubjectInit() {
|
||||
@@ -359,7 +356,7 @@ int daAlink_c::procIronBallThrowInit() {
|
||||
field_0x3588 = l_ironBallBaseAnime;
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
field_0x3018 = 3;
|
||||
field_0x3024 = 0;
|
||||
field_0x3026 = 0;
|
||||
@@ -385,13 +382,13 @@ int daAlink_c::procIronBallReturnInit() {
|
||||
commonProcInit(PROC_IRON_BALL_RETURN);
|
||||
|
||||
if (field_0x3018 == 8) {
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setSingleAnimeParam(ANM_IRONBALL_CATCH, &daAlinkHIO_ironBall_c0::m.mCatchAnm);
|
||||
field_0x2f99 = 12;
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_IRONBALL_PULL, daAlinkHIO_ironBall_c0::m.mPullAnmSpeed, daAlinkHIO_ironBall_c0::m.mPullInterpolation);
|
||||
field_0x2f99 = 12;
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
}
|
||||
|
||||
field_0x3588 = l_ironBallBaseAnime;
|
||||
@@ -408,8 +405,8 @@ int daAlink_c::procIronBallReturn() {
|
||||
|
||||
field_0x2f99 = 4;
|
||||
|
||||
if (field_0x3018 == 8 && field_0x300c == 0) {
|
||||
field_0x300c = 1;
|
||||
if (field_0x3018 == 8 && mProcVar2.field_0x300c == 0) {
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setSingleAnimeParam(ANM_IRONBALL_CATCH, &daAlinkHIO_ironBall_c0::m.mCatchAnm);
|
||||
field_0x2f99 = 12;
|
||||
seStartOnlyReverb(Z2SE_AL_IB_CATCH);
|
||||
|
||||
@@ -30,14 +30,14 @@ static fopAc_ac_c* daAlink_searchTagKtOnFire(fopAc_ac_c* i_actor, void* param_1)
|
||||
/* 801106E8-8011078C 10B028 00A4+00 1/0 0/0 0/0 .text setKandelaarMtx__9daAlink_cFPA4_fii
|
||||
*/
|
||||
void daAlink_c::setKandelaarMtx(Mtx i_mtx, int param_1, int param_2) {
|
||||
if (field_0x06fc != NULL) {
|
||||
if (mpKanteraModel != NULL) {
|
||||
if (i_checkNoResetFlg2(FLG2_UNK_1)) {
|
||||
deleteEquipItem(0, 1);
|
||||
}
|
||||
|
||||
i_onEndResetFlg1(ERFLG1_UNK_4);
|
||||
|
||||
field_0x06fc->i_setBaseTRMtx(i_mtx);
|
||||
mpKanteraModel->i_setBaseTRMtx(i_mtx);
|
||||
if (param_1 == 0) {
|
||||
i_onEndResetFlg1(ERFLG1_UNK_8);
|
||||
}
|
||||
@@ -163,7 +163,7 @@ asm void daAlink_c::setKandelaarModel() {
|
||||
void daAlink_c::resetOilBottleModel() {
|
||||
deleteEquipItem(0, 1);
|
||||
|
||||
if (field_0x300e.x != 0) {
|
||||
if (mProcVar3.field_0x300e.x != 0) {
|
||||
setKandelaarModel();
|
||||
mEquipItem = KANTERA;
|
||||
}
|
||||
|
||||
+167
-176
File diff suppressed because it is too large
Load Diff
@@ -153,7 +153,7 @@ int daAlink_c::procSpinnerReadyInit() {
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
field_0x33b0 = field_0x3588.y;
|
||||
field_0x34d4 = l_waitBaseAnime;
|
||||
field_0x300c = 8;
|
||||
mProcVar2.field_0x300c = 8;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -169,11 +169,11 @@ int daAlink_c::procSpinnerReady() {
|
||||
current.pos.x = spinner->current.pos.x;
|
||||
current.pos.z = spinner->current.pos.z;
|
||||
|
||||
field_0x300c--;
|
||||
mProcVar2.field_0x300c--;
|
||||
field_0x2f99 = 15;
|
||||
|
||||
if ((field_0x300c < 0 && current.pos.y <= spinner->getModelMtx()[1][3]) ||
|
||||
field_0x300c < -30) {
|
||||
if ((mProcVar2.field_0x300c < 0 && current.pos.y <= spinner->getModelMtx()[1][3]) ||
|
||||
mProcVar2.field_0x300c < -30) {
|
||||
current.pos.y = spinner->getModelMtx()[1][3];
|
||||
procSpinnerWaitInit();
|
||||
}
|
||||
@@ -202,13 +202,13 @@ int daAlink_c::procSpinnerWaitInit() {
|
||||
speed.y = 0.0f;
|
||||
setSpecialGravity(0.0f, mMaxFallSpeed, 0);
|
||||
mNormalSpeed = 0.0f;
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
|
||||
field_0x300e.x = shape_angle.y;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.x = shape_angle.y;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
field_0x3198 = ANM_RIDE_CROUCH;
|
||||
field_0x33b0 = 70.0f;
|
||||
field_0x300e.z = 0;
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
field_0x37a4 = mRideAcKeep.getActor()->current.pos;
|
||||
|
||||
return 1;
|
||||
@@ -242,9 +242,9 @@ int daAlink_c::procSpinnerWait() {
|
||||
}
|
||||
|
||||
int itemSetBtn = checkItemSetButton(SPINNER);
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
if (!itemButton()) {
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mNormalSpeed = getSpinnerRideSpeedF();
|
||||
spinner->setMove(mNormalSpeed, getSpinnerRideMoveTime());
|
||||
} else if (checkInputOnR()) {
|
||||
@@ -258,7 +258,7 @@ int daAlink_c::procSpinnerWait() {
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x300e.x = shape_angle.y;
|
||||
mProcVar3.field_0x300e.x = shape_angle.y;
|
||||
}
|
||||
} else {
|
||||
if (checkSetItemTrigger(SPINNER) || swordSwingTrigger() || itemSetBtn == 2) {
|
||||
@@ -285,7 +285,7 @@ int daAlink_c::procSpinnerWait() {
|
||||
current.angle.y = spinner->current.angle.y;
|
||||
|
||||
if (spinner->checkSpinnerTagIntoIncRot()) {
|
||||
field_0x300e.z = 1;
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_CONTINUATION);
|
||||
|
||||
if (field_0x3198 != ANM_RIDE_KICK && field_0x2060->getOldFrameRate() < 0.01f) {
|
||||
@@ -295,7 +295,7 @@ int daAlink_c::procSpinnerWait() {
|
||||
fopAcM_seStartCurrent(spinner, Z2SE_OBJ_SPNR_SW_PUSH, 0);
|
||||
}
|
||||
} else if (spinner->checkSpinnerTagInto()) {
|
||||
if (field_0x300e.z != 0) {
|
||||
if (mProcVar3.field_0x300e.z != 0) {
|
||||
setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_CONTINUATION);
|
||||
} else {
|
||||
setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_DEFAULT);
|
||||
@@ -312,18 +312,18 @@ int daAlink_c::procSpinnerWait() {
|
||||
setSingleAnime(ANM_RIDE_JUMP, 0.0f, daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mInterpolation);
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
} else if (field_0x3198 == ANM_RIDE_JUMP) {
|
||||
if (!spinner->getJumpFlg()) {
|
||||
setSingleAnime(ANM_RIDE_JUMP_LAND, daAlinkHIO_board_c0::m.mLandAnm.mSpeed,
|
||||
daAlinkHIO_board_c0::m.mLandAnm.mStartFrame, 16,
|
||||
daAlinkHIO_board_c0::m.mLandAnm.mInterpolation);
|
||||
field_0x3198 = ANM_RIDE_JUMP_LAND;
|
||||
} else if (field_0x300e.y == 0 && field_0x2060->getOldFrameRate() < 0.01f) {
|
||||
} else if (mProcVar3.field_0x300e.y == 0 && field_0x2060->getOldFrameRate() < 0.01f) {
|
||||
setSingleAnime(ANM_RIDE_JUMP, daAlinkHIO_board_c0::m.mAirborneAnm.mSpeed,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mStartFrame,
|
||||
daAlinkHIO_board_c0::m.mAirborneAnm.mEndFrame, -1.0f);
|
||||
field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
}
|
||||
} else if ((field_0x3198 == ANM_RIDE_JUMP_LAND && frameCtrl->checkAnmEnd()) ||
|
||||
(field_0x3198 != ANM_RIDE_JUMP_LAND && field_0x3198 != ANM_RIDE_CROUCH)) {
|
||||
@@ -334,7 +334,7 @@ int daAlink_c::procSpinnerWait() {
|
||||
}
|
||||
|
||||
setSpinnerSyncPos();
|
||||
shape_angle.y = field_0x300e.x;
|
||||
shape_angle.y = mProcVar3.field_0x300e.x;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -51,8 +51,8 @@ int daAlink_c::procSumouReadyInit() {
|
||||
field_0x34d4 = field_0x3588;
|
||||
field_0x2f99 = 4;
|
||||
mSpecialMode = 1;
|
||||
field_0x300c = 0;
|
||||
field_0x300e.x = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e.x = 0;
|
||||
deleteEquipItem(0, 1);
|
||||
|
||||
if (mThrowBoomerangAcKeep.getActor() != NULL) {
|
||||
@@ -109,7 +109,7 @@ int daAlink_c::procSumouSideMoveInit() {
|
||||
|
||||
field_0x2f99 = 12;
|
||||
setFootEffectProcType(5);
|
||||
field_0x3008 = 15;
|
||||
mProcVar0.field_0x3008 = 15;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -159,7 +159,7 @@ int daAlink_c::procSumouStaggerInit() {
|
||||
setSingleAnimeBase(ANM_SUMOU_STAGGER);
|
||||
mNormalSpeed = FLOAT_LABEL(lit_6108);
|
||||
field_0x2f99 = 12;
|
||||
field_0x3008 = 30;
|
||||
mProcVar0.field_0x3008 = 30;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -171,10 +171,10 @@ int daAlink_c::procSumouStagger() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
field_0x3008--;
|
||||
mProcVar0.field_0x3008--;
|
||||
if (mSpecialMode == 0x1C || mSpecialMode == 0x21 || mSpecialMode == 0x1B) {
|
||||
procSumouActionInit(0, 0, 0);
|
||||
} else if (field_0x3008 == 0) {
|
||||
} else if (mProcVar0.field_0x3008 == 0) {
|
||||
procSumouSideMoveInit();
|
||||
}
|
||||
|
||||
@@ -213,7 +213,7 @@ int daAlink_c::procSumouShikoInit() {
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
field_0x34d4 = field_0x3588;
|
||||
field_0x2f99 = 12;
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mSpecialMode = 0;
|
||||
|
||||
setFootEffectProcType(5);
|
||||
|
||||
+32
-32
@@ -142,7 +142,7 @@ void daAlink_c::swimBgCheck(f32 param_0) {
|
||||
if (getZoraSwim()) {
|
||||
uvar1 = field_0x3080;
|
||||
} else {
|
||||
uvar1 = field_0x300c;
|
||||
uvar1 = mProcVar2.field_0x300c;
|
||||
start_pos.y += daAlinkHIO_wlWallHang_c0::m.field_0x78;
|
||||
}
|
||||
|
||||
@@ -363,7 +363,7 @@ BOOL daAlink_c::checkSwimNeckUpDown() const {
|
||||
/* 80104034-801040F8 0FE974 00C4+00 3/3 0/0 0/0 .text setSwimUpDownOffset__9daAlink_cFv
|
||||
*/
|
||||
void daAlink_c::setSwimUpDownOffset() {
|
||||
field_0x300c += (s16)((cM_rndF(lit_16570) + lit_27477) * lit_27476);
|
||||
mProcVar2.field_0x300c += (s16)((cM_rndF(lit_16570) + lit_27477) * lit_27476);
|
||||
|
||||
f32 var_f1;
|
||||
if (i_checkWolf()) {
|
||||
@@ -376,7 +376,7 @@ void daAlink_c::setSwimUpDownOffset() {
|
||||
var_f1 = daAlinkHIO_swim_c0::m.mWaitVibrationIntensity;
|
||||
}
|
||||
|
||||
field_0x2b98 = var_f1 * cM_ssin(field_0x300c);
|
||||
field_0x2b98 = var_f1 * cM_ssin(mProcVar2.field_0x300c);
|
||||
}
|
||||
|
||||
/* 801040F8-801041E8 0FEA38 00F0+00 2/2 0/0 0/0 .text procSwimUpInit__9daAlink_cFv */
|
||||
@@ -394,8 +394,8 @@ int daAlink_c::procSwimUpInit() {
|
||||
mZ2Link.setInWater(false);
|
||||
setSingleAnimeParam(ANM_SWIM_RESURFACE, &daAlinkHIO_swim_c0::m.mResurfaceAnm);
|
||||
dComIfGp_setPlayerStatus0(0, 0x100000);
|
||||
field_0x3008 = 0;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
field_0x3000 = 0;
|
||||
|
||||
@@ -448,10 +448,10 @@ int daAlink_c::procSwimWaitInit(int param_0) {
|
||||
|
||||
if (param_0) {
|
||||
seStartMapInfo(Z2SE_AL_INTO_WATER);
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
} else if (!mode_40000) {
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
}
|
||||
|
||||
@@ -480,8 +480,8 @@ int daAlink_c::procSwimWaitInit(int param_0) {
|
||||
speed.y = FLOAT_LABEL(lit_6108);
|
||||
}
|
||||
|
||||
field_0x300c = 0;
|
||||
field_0x3008 = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
field_0x594 = getSwimFrontMaxSpeed();
|
||||
return 1;
|
||||
}
|
||||
@@ -552,7 +552,7 @@ int daAlink_c::procSwimMoveInit() {
|
||||
|
||||
if (!mode_40000) {
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
}
|
||||
|
||||
if (proc_swim_dive || proc_dive_jump) {
|
||||
@@ -560,8 +560,8 @@ int daAlink_c::procSwimMoveInit() {
|
||||
|
||||
if (proc_dive_jump) {
|
||||
field_0x3080 = 0x2800;
|
||||
field_0x300e.x = field_0x3080;
|
||||
field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.x = field_0x3080;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
setOldRootQuaternion(-field_0x3080, 0, 0);
|
||||
}
|
||||
} else {
|
||||
@@ -578,7 +578,7 @@ int daAlink_c::procSwimMoveInit() {
|
||||
|
||||
swimDeleteItem();
|
||||
dComIfGp_setPlayerStatus0(0, 0x100000);
|
||||
field_0x3008 = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -630,18 +630,18 @@ int daAlink_c::procSwimDiveInit() {
|
||||
speed.y = 0.0f;
|
||||
|
||||
if (i_checkNoResetFlg0(FLG0_UNK_100)) {
|
||||
field_0x300c = 1;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setSingleAnimeParam(ANM_SWIM_DIVE, &daAlinkHIO_swim_c0::m.mDiveAnm);
|
||||
voiceStart(Z2SE_AL_V_DIVING);
|
||||
} else {
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
setSingleAnimeParam(ANM_SWIM_DIVE, &daAlinkHIO_swim_c0::m.mUnderwaterDiveAnm);
|
||||
}
|
||||
|
||||
field_0x2f99 = 0x10;
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x100000);
|
||||
field_0x3000 = 30;
|
||||
@@ -666,7 +666,7 @@ asm int daAlink_c::procSwimDiveInit() {
|
||||
int daAlink_c::procSwimDive() {
|
||||
daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl;
|
||||
|
||||
if (field_0x300c == 0) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
setDoStatus(0x4C);
|
||||
} else if (i_checkNoResetFlg0(FLG0_UNK_100) && frame_ctrl->getFrame() > 20.0f) {
|
||||
i_offNoResetFlg0(FLG0_UNK_100);
|
||||
@@ -682,7 +682,7 @@ int daAlink_c::procSwimDive() {
|
||||
field_0x3478 = 1.0f;
|
||||
}
|
||||
|
||||
if (frame_ctrl->checkPass(15.0f) && field_0x300c != 0) {
|
||||
if (frame_ctrl->checkPass(15.0f) && mProcVar2.field_0x300c != 0) {
|
||||
cXyz pos(current.pos.x, mWaterY, current.pos.z);
|
||||
fopKyM_createWpillar(&pos, 0.7f, 0);
|
||||
}
|
||||
@@ -694,10 +694,10 @@ int daAlink_c::procSwimDive() {
|
||||
if (checkAnmEnd(frame_ctrl)) {
|
||||
speed.y = daAlinkHIO_swim_c0::m.mMaxSinkSpeed;
|
||||
|
||||
if (field_0x300c != 0) {
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
field_0x3080 = 0x2800;
|
||||
field_0x300e.x = field_0x3080;
|
||||
field_0x300e.y = 1;
|
||||
mProcVar3.field_0x300e.x = field_0x3080;
|
||||
mProcVar3.field_0x300e.y = 1;
|
||||
}
|
||||
|
||||
setOldRootQuaternion(-field_0x3080, 0, 0);
|
||||
@@ -743,12 +743,12 @@ int daAlink_c::procSwimHookshotSubjectInit() {
|
||||
speed.y = FLOAT_LABEL(lit_6108);
|
||||
}
|
||||
|
||||
field_0x300c = 0;
|
||||
field_0x3008 = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
field_0x594 = getSwimFrontMaxSpeed();
|
||||
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
field_0x30d0 = 0;
|
||||
|
||||
setHookshotReadyMaterial();
|
||||
@@ -818,7 +818,7 @@ int daAlink_c::procSwimHookshotMoveInit() {
|
||||
speed.y = FLOAT_LABEL(lit_6108);
|
||||
}
|
||||
|
||||
field_0x3008 = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
|
||||
if (field_0x3080 != 0) {
|
||||
setOldRootQuaternion(field_0x3080, 0, 0);
|
||||
@@ -826,7 +826,7 @@ int daAlink_c::procSwimHookshotMoveInit() {
|
||||
}
|
||||
|
||||
field_0x3480 = daAlinkHIO_swim_c0::m.mInitHeight;
|
||||
field_0x300e.y = 0;
|
||||
mProcVar3.field_0x300e.y = 0;
|
||||
field_0x30d0 = 0;
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x104000);
|
||||
@@ -934,11 +934,11 @@ int daAlink_c::procSwimDamageInit(dCcD_GObjInf* param_0) {
|
||||
temp_r30->y,
|
||||
temp_r30->z * cM_scos(shape_angle.y) + temp_r30->x * cM_ssin(shape_angle.y));
|
||||
|
||||
field_0x3008 =
|
||||
mProcVar0.field_0x3008 =
|
||||
cLib_minMaxLimit(cM_atan2s(sp24.z, sp24.y), (s16)-daAlinkHIO_damSwim_c0::m.field_0x78,
|
||||
(s16)daAlinkHIO_damSwim_c0::m.field_0x78);
|
||||
|
||||
field_0x300a = cLib_minMaxLimit(
|
||||
mProcVar1.field_0x300a = cLib_minMaxLimit(
|
||||
cM_atan2s(sp24.x, -JMAFastSqrt(sp24.y * sp24.y + sp24.z * sp24.z)),
|
||||
(s16)-daAlinkHIO_damSwim_c0::m.field_0x7A, (s16)daAlinkHIO_damSwim_c0::m.field_0x7A);
|
||||
|
||||
@@ -946,8 +946,8 @@ int daAlink_c::procSwimDamageInit(dCcD_GObjInf* param_0) {
|
||||
if (bvar4) {
|
||||
setSingleAnimeParam(ANM_SWIM_DMG_FREEZE, &daAlinkHIO_damSwim_c0::m.field_0x64);
|
||||
field_0x3478 = daAlinkHIO_damSwim_c0::m.field_0x64.mCheckFrame;
|
||||
field_0x3008 = 0;
|
||||
field_0x300a = 0;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar1.field_0x300a = 0;
|
||||
} else if (dir == DIR_FORWARD) {
|
||||
setSingleAnimeParam(ANM_SWIM_DMG_FRONT, &daAlinkHIO_damSwim_c0::m.field_0x0);
|
||||
field_0x3478 = daAlinkHIO_damSwim_c0::m.field_0x0.mCheckFrame;
|
||||
@@ -987,8 +987,8 @@ int daAlink_c::procSwimDamage() {
|
||||
daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl;
|
||||
|
||||
f32 fvar8 = cM_fsin(field_0x347c * (frame_ctrl->getFrame() - frame_ctrl->getStart()));
|
||||
mBodyAngle.x = field_0x3008 * fvar8;
|
||||
mBodyAngle.z = -field_0x300a * fvar8;
|
||||
mBodyAngle.x = mProcVar0.field_0x3008 * fvar8;
|
||||
mBodyAngle.z = -mProcVar1.field_0x300a * fvar8;
|
||||
mBodyAngle.y = 0;
|
||||
|
||||
if (checkSwimUpAction()) {
|
||||
|
||||
@@ -87,9 +87,9 @@ int daAlink_c::loadModelDVD() {
|
||||
if (mClothesChangeWaitTimer == 2) {
|
||||
mEyeHL1.remove();
|
||||
mEyeHL2.remove();
|
||||
field_0x79c = NULL;
|
||||
mpWlMidnaHatModel = NULL;
|
||||
field_0x7a4 = NULL;
|
||||
mpWlMidnaModel = NULL;
|
||||
mpWlMidnaMaskModel = NULL;
|
||||
mpWlMidnaHandModel = NULL;
|
||||
mpWlMidnaHairModel = NULL;
|
||||
|
||||
if (!i_checkNoResetFlg2(FLG2_UNK_280000)) {
|
||||
@@ -291,13 +291,13 @@ void daAlink_c::statusWindowDraw() {
|
||||
basicModelDraw(mpLinkModel);
|
||||
|
||||
if (!i_checkWolf()) {
|
||||
basicModelDraw(field_0x065c);
|
||||
basicModelDraw(mpLinkHandModel);
|
||||
basicModelDraw(mpLinkHatModel);
|
||||
basicModelDraw(mpLinkFaceModel);
|
||||
|
||||
if (i_checkEquipHeavyBoots()) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
basicModelDraw(field_0x784[i]);
|
||||
basicModelDraw(mpLinkBootModels[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,10 +72,10 @@ int daAlink_c::procGrassWhistleGetInit() {
|
||||
field_0x280c.setData(field_0x27f4);
|
||||
|
||||
daObjYobikusa_c* yobikusa = (daObjYobikusa_c*)field_0x27f4;
|
||||
field_0x300c = yobikusa->getType();
|
||||
field_0x300e.x = yobikusa->getPathID();
|
||||
field_0x300e.y = yobikusa->isPlayerCorrect();
|
||||
field_0x300e.z = yobikusa->shape_angle.y + 0x8000;
|
||||
mProcVar2.field_0x300c = yobikusa->getType();
|
||||
mProcVar3.field_0x300e.x = yobikusa->getPathID();
|
||||
mProcVar3.field_0x300e.y = yobikusa->isPlayerCorrect();
|
||||
mProcVar3.field_0x300e.z = yobikusa->shape_angle.y + 0x8000;
|
||||
field_0x37c8.set(yobikusa->current.pos.x + cM_ssin(yobikusa->shape_angle.y) * 50.0f,
|
||||
yobikusa->current.pos.y + 50.0f,
|
||||
yobikusa->current.pos.z + cM_scos(yobikusa->shape_angle.y) * 50.0f);
|
||||
@@ -99,9 +99,9 @@ int daAlink_c::procGrassWhistleGet() {
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
procGrassWhistleWaitInit(field_0x300c, field_0x300e.x, field_0x300e.y, field_0x300e.z, &field_0x37c8);
|
||||
procGrassWhistleWaitInit(mProcVar2.field_0x300c, mProcVar3.field_0x300e.x, mProcVar3.field_0x300e.y, mProcVar3.field_0x300e.z, &field_0x37c8);
|
||||
} else if (mEquipItem == NO_ITEM && frameCtrl->getFrame() >= lit_7710) {
|
||||
setGrassWhistleModel(field_0x300c);
|
||||
setGrassWhistleModel(mProcVar2.field_0x300c);
|
||||
|
||||
if (field_0x280c.getActor() != NULL) {
|
||||
fopAcM_setCarryNow(field_0x280c.getActor(), 0);
|
||||
@@ -140,11 +140,11 @@ int daAlink_c::procCoHorseCallWaitInit(int param_0) {
|
||||
commonProcInit(PROC_HORSE_CALL_WAIT);
|
||||
|
||||
if (param_0 == 4) {
|
||||
field_0x300e.y = 2;
|
||||
mProcVar3.field_0x300e.y = 2;
|
||||
} else if (param_0 == 1) {
|
||||
field_0x300e.y = 0x3D;
|
||||
mProcVar3.field_0x300e.y = 0x3D;
|
||||
} else {
|
||||
field_0x300e.y = 0x10;
|
||||
mProcVar3.field_0x300e.y = 0x10;
|
||||
}
|
||||
|
||||
if (i_checkWolf()) {
|
||||
@@ -204,7 +204,7 @@ int daAlink_c::procHawkSubjectInit() {
|
||||
field_0x280c.setData(actor);
|
||||
}
|
||||
|
||||
field_0x300c = 0;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mBodyAngle.y = 0;
|
||||
deleteEquipItem(0, 1);
|
||||
return 1;
|
||||
|
||||
+4978
-340
File diff suppressed because it is too large
Load Diff
+42
-17
@@ -984,6 +984,30 @@ SECTION_DATA static void* lit_4497[3] = {
|
||||
#pragma pop
|
||||
|
||||
/* 803BA25C-803BA34C 01737C 00F0+00 2/3 3/3 0/0 .data engine_tbl__9dCamera_c */
|
||||
#ifdef NONMATCHING
|
||||
engine_fn dCamera_c::engine_tbl[] = {
|
||||
&dCamera_c::letCamera,
|
||||
&dCamera_c::chaseCamera,
|
||||
&dCamera_c::lockonCamera,
|
||||
&dCamera_c::talktoCamera,
|
||||
&dCamera_c::subjectCamera,
|
||||
&dCamera_c::fixedPositionCamera,
|
||||
&dCamera_c::fixedFrameCamera,
|
||||
&dCamera_c::towerCamera,
|
||||
&dCamera_c::rideCamera,
|
||||
&dCamera_c::manualCamera,
|
||||
&dCamera_c::eventCamera,
|
||||
&dCamera_c::hookshotCamera,
|
||||
&dCamera_c::colosseumCamera,
|
||||
&dCamera_c::observeCamera,
|
||||
&dCamera_c::magneCamera,
|
||||
&dCamera_c::railCamera,
|
||||
&dCamera_c::paraRailCamera,
|
||||
&dCamera_c::oneSideCamera,
|
||||
&dCamera_c::test1Camera,
|
||||
&dCamera_c::test2Camera,
|
||||
};
|
||||
#else
|
||||
SECTION_DATA u8 dCamera_c::engine_tbl[240] = {
|
||||
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,
|
||||
@@ -1001,6 +1025,7 @@ SECTION_DATA u8 dCamera_c::engine_tbl[240] = {
|
||||
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,
|
||||
};
|
||||
#endif
|
||||
|
||||
/* 803BA34C-803BA378 -00001 002C+00 1/1 0/0 0/0 .data @7128 */
|
||||
SECTION_DATA static void* lit_7128[11] = {
|
||||
@@ -2012,7 +2037,7 @@ asm void dCamera_c::getParamTargetActor(s32 param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::GetCameraTypeFromMapToolID(s32 param_0, s32 param_1) {
|
||||
asm int dCamera_c::GetCameraTypeFromMapToolID(s32 param_0, s32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/GetCameraTypeFromMapToolID__9dCamera_cFll.s"
|
||||
}
|
||||
@@ -2577,7 +2602,7 @@ SECTION_SDATA2 static f32 lit_10582 = -50.0f;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::chaseCamera(s32 param_0) {
|
||||
asm bool dCamera_c::chaseCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/chaseCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -2691,7 +2716,7 @@ SECTION_SDATA2 static f32 lit_11175 = 1.0f / 50.0f;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::lockonCamera(s32 param_0) {
|
||||
asm bool dCamera_c::lockonCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/lockonCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -2838,7 +2863,7 @@ SECTION_SDATA2 static f32 lit_12297 = 7.0f / 25.0f;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::talktoCamera(s32 param_0) {
|
||||
asm bool dCamera_c::talktoCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/talktoCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -2914,7 +2939,7 @@ SECTION_SDATA2 static f32 lit_12869 = -511.0f;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::subjectCamera(s32 param_0) {
|
||||
asm bool dCamera_c::subjectCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/subjectCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -2928,7 +2953,7 @@ SECTION_SDATA2 static f32 lit_13132 = 4.0f;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::magneCamera(s32 param_0) {
|
||||
asm bool dCamera_c::magneCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/magneCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -2942,7 +2967,7 @@ SECTION_SDATA2 static f32 lit_13314 = 0.9990000128746033f;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::colosseumCamera(s32 param_0) {
|
||||
asm bool dCamera_c::colosseumCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/colosseumCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -2966,7 +2991,7 @@ SECTION_SDATA2 static f32 lit_13673 = 1.0f / 40.0f;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::towerCamera(s32 param_0) {
|
||||
asm bool dCamera_c::towerCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/towerCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -2995,7 +3020,7 @@ SECTION_SDATA2 static f32 lit_14064 = -100.0f;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::hookshotCamera(s32 param_0) {
|
||||
asm bool dCamera_c::hookshotCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/hookshotCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -3014,7 +3039,7 @@ static u8 struct_80451040[4];
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::railCamera(s32 param_0) {
|
||||
asm bool dCamera_c::railCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/railCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -3033,7 +3058,7 @@ static u8 struct_80451044[4];
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::paraRailCamera(s32 param_0) {
|
||||
asm bool dCamera_c::paraRailCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/paraRailCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -3106,7 +3131,7 @@ SECTION_SDATA2 static f32 lit_15487 = 1.1500000953674316f;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::rideCamera(s32 param_0) {
|
||||
asm bool dCamera_c::rideCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/rideCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -3138,7 +3163,7 @@ SECTION_SDATA2 static f32 lit_15773 = 4.0f / 3.0f;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::observeCamera(s32 param_0) {
|
||||
asm bool dCamera_c::observeCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/observeCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -3148,7 +3173,7 @@ asm void dCamera_c::observeCamera(s32 param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::fixedFrameCamera(s32 param_0) {
|
||||
asm bool dCamera_c::fixedFrameCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/fixedFrameCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -3159,7 +3184,7 @@ asm void dCamera_c::fixedFrameCamera(s32 param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::fixedPositionCamera(s32 param_0) {
|
||||
asm bool dCamera_c::fixedPositionCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/fixedPositionCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -3169,7 +3194,7 @@ asm void dCamera_c::fixedPositionCamera(s32 param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::oneSideCamera(s32 param_0) {
|
||||
asm bool dCamera_c::oneSideCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/oneSideCamera__9dCamera_cFl.s"
|
||||
}
|
||||
@@ -3227,7 +3252,7 @@ SECTION_DEAD static char const* const stringBase_803942F2 = "WideMode";
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::eventCamera(s32 param_0) {
|
||||
asm bool dCamera_c::eventCamera(s32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_camera/eventCamera__9dCamera_cFl.s"
|
||||
}
|
||||
|
||||
+183
-253
@@ -4,224 +4,26 @@
|
||||
//
|
||||
|
||||
#include "d/d_ev_camera.h"
|
||||
#include "d/a/d_a_alink.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/d_camera.h"
|
||||
#include "d/d_demo.h"
|
||||
#include "dol2asm.h"
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoCPd_c {
|
||||
static u8 m_cpadInfo[256];
|
||||
};
|
||||
|
||||
struct fopAc_ac_c {};
|
||||
|
||||
struct daPy_py_c {
|
||||
/* 800977B4 */ void checkMidnaRide() const;
|
||||
/* 80097850 */ bool checkCanoeRide() const;
|
||||
/* 80097858 */ bool checkBoardRide() const;
|
||||
/* 80097860 */ bool checkSpinnerRide() const;
|
||||
/* 80097868 */ bool checkBoarRide() const;
|
||||
|
||||
static u8 m_midnaActor[4];
|
||||
};
|
||||
|
||||
struct daMidna_c {
|
||||
/* 800977A8 */ void checkNoDraw() const;
|
||||
};
|
||||
|
||||
struct daAlink_c {
|
||||
/* 80097870 */ void getShadowTalkAtnPos();
|
||||
};
|
||||
|
||||
struct dEvt_control_c {
|
||||
/* 800432EC */ void convPId(unsigned int);
|
||||
/* 800434D8 */ void searchMapEventData(u8);
|
||||
};
|
||||
|
||||
struct Vec {};
|
||||
|
||||
struct cXyz {
|
||||
/* 80009184 */ ~cXyz();
|
||||
/* 8008E790 */ void abs() const;
|
||||
/* 8008E8D0 */ void operator-=(Vec const&);
|
||||
/* 8008E904 */ void operator+=(Vec const&);
|
||||
/* 800977D8 */ void operator=(cXyz const&);
|
||||
/* 800977F4 */ cXyz(cXyz const&);
|
||||
/* 80266AE4 */ void operator+(Vec const&) const;
|
||||
/* 80266B34 */ void operator-(Vec const&) const;
|
||||
/* 80266B84 */ void operator*(f32) const;
|
||||
/* 80266CE4 */ void norm() const;
|
||||
/* 80266EF4 */ void normalize();
|
||||
|
||||
static f32 Zero[3];
|
||||
};
|
||||
|
||||
struct dEvent_manager_c {
|
||||
/* 800480EC */ void getMySubstanceP(int, char const*, int);
|
||||
/* 80048144 */ void getMySubstanceNum(int, char const*);
|
||||
/* 800483C4 */ void setGoal(cXyz*);
|
||||
};
|
||||
|
||||
struct dDemo_object_c {
|
||||
/* 80039128 */ void getActiveCamera();
|
||||
};
|
||||
|
||||
struct dDemo_c {
|
||||
static u8 m_object[4];
|
||||
};
|
||||
|
||||
struct dCcS {
|
||||
/* 80086D8C */ void ChkCamera(cXyz&, cXyz&, f32, fopAc_ac_c*, fopAc_ac_c*, fopAc_ac_c*);
|
||||
};
|
||||
|
||||
struct dCamera_c {
|
||||
struct dCamInfo_c {};
|
||||
|
||||
/* 80088A7C */ void StartEventCamera(int, int, ...);
|
||||
/* 80088BBC */ void EndEventCamera(int);
|
||||
/* 80088C24 */ void searchEventArgData(char*);
|
||||
/* 8008908C */ void getEvIntData(int*, char*, int);
|
||||
/* 80088CB0 */ void getEvIntData(int*, char*);
|
||||
/* 80088D90 */ void getEvFloatData(f32*, char*);
|
||||
/* 80089154 */ void getEvFloatData(f32*, char*, f32);
|
||||
/* 80088E58 */ void getEvFloatListData(f32**, char*);
|
||||
/* 80088F1C */ void getEvXyzListData(cXyz**, char*);
|
||||
/* 8008941C */ void getEvStringPntData(char*, char*);
|
||||
/* 80088FE0 */ void getEvStringPntData(char*);
|
||||
/* 8008922C */ void getEvXyzData(cXyz*, char*, cXyz);
|
||||
/* 8008933C */ void getEvStringData(char*, char*, char*);
|
||||
/* 800894C4 */ void getEvActor(char*);
|
||||
/* 800895F4 */ void getEvActor(char*, char*);
|
||||
/* 80089730 */ void pauseEvCamera();
|
||||
/* 800897E8 */ void fixedFrameEvCamera();
|
||||
/* 8008A510 */ void stokerEvCamera();
|
||||
/* 8008A974 */ void rollingEvCamera();
|
||||
/* 8008B9B0 */ void fixedPositionEvCamera();
|
||||
/* 8008BE2C */ void uniformTransEvCamera();
|
||||
/* 8008BE50 */ void uniformBrakeEvCamera();
|
||||
/* 8008BE74 */ void uniformAcceleEvCamera();
|
||||
/* 8008BE98 */ void transEvCamera(int);
|
||||
/* 8008E938 */ void watchActorEvCamera();
|
||||
/* 8008FAE8 */ void restorePosEvCamera();
|
||||
/* 80090174 */ void talktoEvCamera();
|
||||
/* 80090230 */ void maptoolIdEvCamera();
|
||||
/* 80090478 */ void styleEvCamera();
|
||||
/* 80090514 */ void gameOverEvCamera();
|
||||
/* 80091468 */ void tactEvCamera();
|
||||
/* 800923B8 */ bool turnToActorEvCamera();
|
||||
/* 800923C0 */ void stbWaitEvCamera();
|
||||
/* 800924D0 */ void saveEvCamera();
|
||||
/* 8009258C */ void loadEvCamera();
|
||||
/* 800929AC */ void useItem0EvCamera();
|
||||
/* 800937AC */ void useItem1EvCamera();
|
||||
/* 80094240 */ void getItemEvCamera();
|
||||
/* 80094A70 */ void possessedEvCamera();
|
||||
/* 80095010 */ void fixedFramesEvCamera();
|
||||
/* 8009544C */ void bSplineEvCamera();
|
||||
/* 800956E4 */ void twoActor0EvCamera();
|
||||
/* 80095E7C */ void peepHoleEvCamera();
|
||||
/* 80095FD0 */ void digHoleEvCamera();
|
||||
/* 800965AC */ void hintTalkEvCamera();
|
||||
/* 80096EDC */ void bspTransEvCamera();
|
||||
/* 80097694 */ bool portalWarpEvCamera();
|
||||
/* 8009771C */ void attentionPos(fopAc_ac_c*);
|
||||
/* 80097738 */ void directionOf(fopAc_ac_c*);
|
||||
/* 8009775C */ void positionOf(fopAc_ac_c*);
|
||||
/* 80097778 */ void setFlag(u32);
|
||||
/* 8009778C */ void eyePos(fopAc_ac_c*);
|
||||
/* 80164944 */ void GetCameraTypeFromMapToolID(s32, s32);
|
||||
/* 80164C64 */ void pushInfo(dCamera_c::dCamInfo_c*, s16);
|
||||
/* 80164E20 */ void relationalPos(fopAc_ac_c*, fopAc_ac_c*, cXyz*, f32);
|
||||
/* 80164D6C */ void relationalPos(fopAc_ac_c*, cXyz*);
|
||||
/* 8016517C */ void pointInSight(cXyz*);
|
||||
/* 80165AF0 */ void lineBGCheck(cXyz*, cXyz*, u32);
|
||||
/* 801659F4 */ void lineBGCheck(cXyz*, cXyz*, cXyz*, u32);
|
||||
/* 80180C68 */ void Reset();
|
||||
/* 80181170 */ void StartBlure(int, fopAc_ac_c*, f32, f32);
|
||||
/* 80181208 */ void SetBlureAlpha(f32);
|
||||
/* 80181210 */ void SetBlureScale(f32, f32, f32);
|
||||
/* 80181220 */ void SetBlurePosition(f32, f32, f32);
|
||||
|
||||
static u8 engine_tbl[240];
|
||||
};
|
||||
|
||||
struct dCamParam_c {
|
||||
/* 80088620 */ void SearchStyle(u32);
|
||||
};
|
||||
|
||||
struct cSAngle {
|
||||
/* 80030510 */ ~cSAngle();
|
||||
/* 80270F68 */ cSAngle(cSAngle const&);
|
||||
/* 80270FC8 */ cSAngle(f32);
|
||||
/* 80270F98 */ cSAngle(s16);
|
||||
/* 8027100C */ void Val(f32);
|
||||
/* 80271030 */ void Degree() const;
|
||||
/* 802710CC */ void Abs() const;
|
||||
/* 802710E8 */ void Inv() const;
|
||||
/* 80271120 */ void Cos() const;
|
||||
/* 802711A4 */ void operator-(cSAngle const&) const;
|
||||
/* 80271148 */ void operator-() const;
|
||||
/* 80271174 */ void operator+(cSAngle const&) const;
|
||||
/* 802711FC */ void operator+(s16) const;
|
||||
/* 802711D4 */ void operator+=(cSAngle const&);
|
||||
/* 80271264 */ void operator*(f32) const;
|
||||
/* 802712B4 */ void operator*=(f32);
|
||||
|
||||
static u8 _0[2 + 2 /* padding */];
|
||||
static u8 _90[2 + 2 /* padding */];
|
||||
};
|
||||
|
||||
struct dCamMath {
|
||||
/* 8008813C */ void rationalBezierRatio(f32, f32);
|
||||
/* 80088384 */ void xyzRotateY(cXyz&, cSAngle);
|
||||
/* 800883EC */ void xyzHorizontalDistance(cXyz&, cXyz&);
|
||||
};
|
||||
|
||||
struct d2DBSplinePath {
|
||||
/* 80097878 */ void Init(s32, s32);
|
||||
/* 80097904 */ void Step();
|
||||
/* 80097B20 */ void Calc(f32*);
|
||||
/* 80097A6C */ void Calc(cXyz*);
|
||||
};
|
||||
|
||||
struct camera_class {};
|
||||
|
||||
struct cSGlobe {
|
||||
/* 8007167C */ ~cSGlobe();
|
||||
/* 8008E774 */ void operator=(cSGlobe const&);
|
||||
/* 8008E894 */ void U(cSAngle const&);
|
||||
/* 8008FA58 */ void V(cSAngle const&);
|
||||
/* 80271880 */ cSGlobe(cXyz const&);
|
||||
/* 802717F0 */ cSGlobe(cSGlobe const&);
|
||||
/* 80271850 */ cSGlobe(f32, cSAngle const&, cSAngle const&);
|
||||
/* 80271A08 */ void Val(f32, cSAngle const&, cSAngle const&);
|
||||
/* 80271A70 */ void Val(cXyz const&);
|
||||
/* 80271AB4 */ void Xyz() const;
|
||||
/* 80271B30 */ void Norm() const;
|
||||
/* 80271B7C */ void Invert();
|
||||
};
|
||||
|
||||
struct cM3dGPla {
|
||||
/* 8001DB90 */ ~cM3dGPla();
|
||||
};
|
||||
|
||||
struct cM3dGLin {
|
||||
/* 80036A5C */ ~cM3dGLin();
|
||||
/* 8026F2A8 */ cM3dGLin(cXyz const&, cXyz const&);
|
||||
};
|
||||
|
||||
struct cBgS_PolyInfo {};
|
||||
|
||||
struct cBgS {
|
||||
/* 80074744 */ void GetTriPla(cBgS_PolyInfo const&, cM3dGPla*) const;
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" static void func_800889F8();
|
||||
extern "C" static bool func_800889F8(int);
|
||||
extern "C" void StartEventCamera__9dCamera_cFiie();
|
||||
extern "C" void EndEventCamera__9dCamera_cFi();
|
||||
extern "C" void searchEventArgData__9dCamera_cFPc();
|
||||
@@ -375,10 +177,6 @@ extern "C" void Xyz__7cSGlobeCFv();
|
||||
extern "C" void Norm__7cSGlobeCFv();
|
||||
extern "C" void Invert__7cSGlobeFv();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void PSVECAdd();
|
||||
extern "C" void PSVECSubtract();
|
||||
extern "C" void PSVECSquareMag();
|
||||
extern "C" void __va_arg();
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" void __ptmf_scall();
|
||||
extern "C" void _savegpr_24();
|
||||
@@ -393,15 +191,10 @@ extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" void strcmp();
|
||||
extern "C" void strcpy();
|
||||
extern "C" extern void* __vt__8cM3dGPla[3];
|
||||
extern "C" u8 engine_tbl__9dCamera_c[240];
|
||||
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" f32 Zero__4cXyz[3];
|
||||
extern "C" extern u32 __float_nan;
|
||||
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
|
||||
extern "C" u8 m_object__7dDemo_c[4];
|
||||
extern "C" extern u8 struct_80450F88[8];
|
||||
extern "C" u8 m_midnaActor__9daPy_py_c[4];
|
||||
@@ -417,7 +210,7 @@ extern "C" u8 _90__7cSAngle[2 + 2 /* padding */];
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_800889F8() {
|
||||
static asm bool func_800889F8(int) {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/func_800889F8.s"
|
||||
}
|
||||
@@ -425,35 +218,74 @@ static asm void func_800889F8() {
|
||||
|
||||
/* 80088A7C-80088BBC 0833BC 0140+00 0/0 15/15 2/2 .text StartEventCamera__9dCamera_cFiie
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::StartEventCamera(int param_0, int param_1, ...) {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/StartEventCamera__9dCamera_cFiie.s"
|
||||
int dCamera_c::StartEventCamera(int param_0, int param_1, ...) {
|
||||
if (i_chkFlag(0x20000000)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
mEventData.field_0x14 = param_1;
|
||||
mEventData.field_0x18 = param_0;
|
||||
|
||||
va_list args;
|
||||
va_start(args, param_1);
|
||||
for (int i = 0; i < 8; i++) {
|
||||
char* param_name = va_arg(args, char*);
|
||||
if (param_name != NULL) {
|
||||
strcpy(mEventData.mEventParams[i].name, param_name);
|
||||
mEventData.mEventParams[i].field_0x10 = va_arg(args, int);
|
||||
mEventData.mEventParams[i].value = va_arg(args, int);
|
||||
} else {
|
||||
mEventData.mEventParams[i].name[0] = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
va_end(args);
|
||||
|
||||
i_setFlag(0x20000000);
|
||||
mCurCamTypeTimer = 0;
|
||||
mEventData.field_0x0 = 0;
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80088BBC-80088C24 0834FC 0068+00 0/0 3/3 4/4 .text EndEventCamera__9dCamera_cFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::EndEventCamera(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/EndEventCamera__9dCamera_cFi.s"
|
||||
int dCamera_c::EndEventCamera(int param_0) {
|
||||
if (!i_chkFlag(0x20000000)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (mEventData.field_0x14 == -1 || mEventData.field_0x14 == param_0) {
|
||||
i_clrFlag(0x20000000);
|
||||
mEventData.field_0x0 = 1;
|
||||
|
||||
if (i_dComIfGp_getEvent().runCheck()) {
|
||||
i_dComIfGp_getEventManager().setCameraPlay(2);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80088C24-80088CB0 083564 008C+00 10/10 0/0 0/0 .text searchEventArgData__9dCamera_cFPc
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::searchEventArgData(char* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/searchEventArgData__9dCamera_cFPc.s"
|
||||
int dCamera_c::searchEventArgData(char* i_eventName) {
|
||||
int i;
|
||||
bool found_event = false;
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
if (*mEventData.mEventParams[i].name == 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (strcmp(mEventData.mEventParams[i].name, i_eventName) == 0) {
|
||||
found_event = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return found_event ? i : -1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80088CB0-80088D90 0835F0 00E0+00 3/3 1/1 0/0 .text getEvIntData__9dCamera_cFPiPc */
|
||||
#pragma push
|
||||
@@ -846,7 +678,8 @@ static asm void func_8008E750() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void cSGlobe::operator=(cSGlobe const& param_0) {
|
||||
// asm void cSGlobe::operator=(cSGlobe const& param_0) {
|
||||
extern "C" asm void __as__7cSGlobeFRC7cSGlobe() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/__as__7cSGlobeFRC7cSGlobe.s"
|
||||
}
|
||||
@@ -856,7 +689,8 @@ asm void cSGlobe::operator=(cSGlobe const& param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void cXyz::abs() const {
|
||||
// asm void cXyz::abs() const {
|
||||
extern "C" asm void abs__4cXyzCFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/abs__4cXyzCFv.s"
|
||||
}
|
||||
@@ -866,7 +700,8 @@ asm void cXyz::abs() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void cSGlobe::U(cSAngle const& param_0) {
|
||||
// asm void cSGlobe::U(cSAngle const& param_0) {
|
||||
extern "C" asm void U__7cSGlobeFRC7cSAngle() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/U__7cSGlobeFRC7cSAngle.s"
|
||||
}
|
||||
@@ -876,7 +711,8 @@ asm void cSGlobe::U(cSAngle const& param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void cXyz::operator-=(Vec const& param_0) {
|
||||
// asm void cXyz::operator-=(Vec const& param_0) {
|
||||
extern "C" asm void __ami__4cXyzFRC3Vec() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/__ami__4cXyzFRC3Vec.s"
|
||||
}
|
||||
@@ -886,7 +722,8 @@ asm void cXyz::operator-=(Vec const& param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void cXyz::operator+=(Vec const& param_0) {
|
||||
// asm void cXyz::operator+=(Vec const& param_0) {
|
||||
extern "C" asm void __apl__4cXyzFRC3Vec() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/__apl__4cXyzFRC3Vec.s"
|
||||
}
|
||||
@@ -968,7 +805,8 @@ asm void dCamera_c::watchActorEvCamera() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void cSGlobe::V(cSAngle const& param_0) {
|
||||
// asm void cSGlobe::V(cSAngle const& param_0) {
|
||||
extern "C" asm void V__7cSGlobeFRC7cSAngle() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/V__7cSGlobeFRC7cSAngle.s"
|
||||
}
|
||||
@@ -1033,14 +871,98 @@ SECTION_DEAD static char const* const stringBase_8037AC5C = "CameraID";
|
||||
#pragma pop
|
||||
|
||||
/* 80090230-80090478 08AB70 0248+00 0/0 1/0 0/0 .text maptoolIdEvCamera__9dCamera_cFv */
|
||||
// matches with sinit
|
||||
#ifdef NONMATCHING
|
||||
bool dCamera_c::maptoolIdEvCamera() {
|
||||
if (mCurCamTypeTimer == 0) {
|
||||
int id;
|
||||
getEvIntData(&id, "ID", g_dComIfG_gameInfo.play.getEvent().getMapToolId());
|
||||
|
||||
mEventData.field_0x8 = 0;
|
||||
field_0x160 = 0;
|
||||
mCurCamTypeTimer = 0;
|
||||
mEventData.field_0xec = dEvt_control_c::searchMapEventData(id);
|
||||
#ifdef DEBUG
|
||||
OSReport("%06d: %s: %d: map data ID %d %x\n", field_0xa8, __FILE__, 2792, id,
|
||||
mEventData.field_0xec);
|
||||
#endif
|
||||
|
||||
int var_r6 = 0xFF;
|
||||
if (mEventData.field_0xec != NULL && mEventData.field_0xec->mType == 0) {
|
||||
var_r6 = mEventData.field_0xec->field_0x16;
|
||||
}
|
||||
|
||||
getEvIntData(&mEventData.field_0x24, "CameraID", var_r6);
|
||||
}
|
||||
|
||||
int temp_r31 = mEventData.field_0x24;
|
||||
if (mEventData.field_0xec == NULL || temp_r31 == 0xFF) {
|
||||
#ifdef DEBUG
|
||||
OSReport("%d: %s: %d: ERROR!! no map data!!!\n", field_0xa8, __FILE__, 2805);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
int room_no = dComIfGp_roomControl_getStayNo();
|
||||
if (func_800889F8(mEventData.field_0xec->field_0x4)) {
|
||||
room_no = -1;
|
||||
}
|
||||
|
||||
if (mEventData.field_0xec->mType == 0 && mEventData.field_0xec->field_0xC != 0xFF) {
|
||||
if (mEventData.field_0xec->field_0xC & 1) {
|
||||
i_clrFlag(0x200000);
|
||||
}
|
||||
|
||||
if (mEventData.field_0xec->field_0xC & 2) {
|
||||
field_0x88 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
mEventData.field_0xc = GetCameraTypeFromMapToolID(temp_r31, room_no);
|
||||
bool var_r31 = 0;
|
||||
|
||||
if (mEventData.field_0xc != 0xFF) {
|
||||
s32 style = mCamTypeData[mEventData.field_0xc].field_0x18[field_0x190][0];
|
||||
#ifdef DEBUG
|
||||
if (mCurCamTypeTimer == 0) {
|
||||
OSReport("type %d mode %d style %d\n", mEventData.field_0xc, 0, style);
|
||||
}
|
||||
#endif
|
||||
bool var_r3 = (this->*engine_tbl[mCamParam.Algorythmn(style)])(style);
|
||||
|
||||
if (mEventData.field_0xec->mType == 0) {
|
||||
if (mEventData.field_0xec->field_0x14 == 0xFF ||
|
||||
mCurCamTypeTimer > mEventData.field_0xec->field_0x14)
|
||||
{
|
||||
var_r31 = 1;
|
||||
}
|
||||
} else {
|
||||
return var_r3;
|
||||
}
|
||||
} else {
|
||||
mEventData.field_0xec = NULL;
|
||||
var_r31 = 1;
|
||||
}
|
||||
|
||||
if (var_r31) {
|
||||
if (mEventData.field_0xec->mType == 0 && (mEventData.field_0xec->field_0xC & 0x20)) {
|
||||
return mDoCPd_c::getHoldA(mPadID) || mDoCPd_c::getHoldB(mPadID);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCamera_c::maptoolIdEvCamera() {
|
||||
asm bool dCamera_c::maptoolIdEvCamera() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/maptoolIdEvCamera__9dCamera_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8037AAF4-8037AAF4 007154 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
@@ -1986,8 +1908,7 @@ bool dCamera_c::portalWarpEvCamera() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __sinit_d_ev_camera_cpp() {
|
||||
nofralloc
|
||||
asm void __sinit_d_ev_camera_cpp(){nofralloc
|
||||
#include "asm/d/d_ev_camera/__sinit_d_ev_camera_cpp.s"
|
||||
}
|
||||
#pragma pop
|
||||
@@ -2062,7 +1983,8 @@ asm void daMidna_c::checkNoDraw() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daPy_py_c::checkMidnaRide() const {
|
||||
// asm void daPy_py_c::checkMidnaRide() const {
|
||||
extern "C" asm void checkMidnaRide__9daPy_py_cCFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/checkMidnaRide__9daPy_py_cCFv.s"
|
||||
}
|
||||
@@ -2072,7 +1994,8 @@ asm void daPy_py_c::checkMidnaRide() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void fopAcM_GetID(void const* param_0) {
|
||||
// asm void fopAcM_GetID(void const* param_0) {
|
||||
extern "C" asm void fopAcM_GetID__FPCv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/fopAcM_GetID__FPCv.s"
|
||||
}
|
||||
@@ -2082,7 +2005,8 @@ asm void fopAcM_GetID(void const* param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void cXyz::operator=(cXyz const& param_0) {
|
||||
// asm void cXyz::operator=(cXyz const& param_0) {
|
||||
extern "C" asm void __as__4cXyzFRC4cXyz() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/__as__4cXyzFRC4cXyz.s"
|
||||
}
|
||||
@@ -2092,7 +2016,8 @@ asm void cXyz::operator=(cXyz const& param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cXyz::cXyz(cXyz const& param_0) {
|
||||
// asm cXyz::cXyz(cXyz const& param_0) {
|
||||
extern "C" asm void __ct__4cXyzFRC4cXyz() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/__ct__4cXyzFRC4cXyz.s"
|
||||
}
|
||||
@@ -2116,22 +2041,26 @@ void func_8009784C() {
|
||||
}
|
||||
|
||||
/* 80097850-80097858 092190 0008+00 0/0 1/0 0/0 .text checkCanoeRide__9daPy_py_cCFv */
|
||||
bool daPy_py_c::checkCanoeRide() const {
|
||||
// bool daPy_py_c::checkCanoeRide() const {
|
||||
extern "C" bool checkCanoeRide__9daPy_py_cCFv() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 80097858-80097860 092198 0008+00 0/0 1/0 0/0 .text checkBoardRide__9daPy_py_cCFv */
|
||||
bool daPy_py_c::checkBoardRide() const {
|
||||
// bool daPy_py_c::checkBoardRide() const {
|
||||
extern "C" bool checkBoardRide__9daPy_py_cCFv() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 80097860-80097868 0921A0 0008+00 0/0 1/0 0/0 .text checkSpinnerRide__9daPy_py_cCFv */
|
||||
bool daPy_py_c::checkSpinnerRide() const {
|
||||
// bool daPy_py_c::checkSpinnerRide() const {
|
||||
extern "C" bool checkSpinnerRide__9daPy_py_cCFv() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 80097868-80097870 0921A8 0008+00 0/0 1/0 0/0 .text checkBoarRide__9daPy_py_cCFv */
|
||||
bool daPy_py_c::checkBoarRide() const {
|
||||
// bool daPy_py_c::checkBoarRide() const {
|
||||
extern "C" bool checkBoarRide__9daPy_py_cCFv() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2140,7 +2069,8 @@ bool daPy_py_c::checkBoarRide() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daAlink_c::getShadowTalkAtnPos() {
|
||||
// asm void daAlink_c::getShadowTalkAtnPos() {
|
||||
extern "C" asm void getShadowTalkAtnPos__9daAlink_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_ev_camera/getShadowTalkAtnPos__9daAlink_cFv.s"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user