summaryrefslogtreecommitdiff
path: root/src/d
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2024-10-28 04:00:15 -0700
committerGitHub <noreply@github.com>2024-10-28 13:00:15 +0200
commitb1d7bc9cc42699a20dd84e8db0d1d768346ebae3 (patch)
tree8f3fdfa4ab69da7bb93833f16d51be9bc8801a74 /src/d
parentf5e80cf9fda54894e97af8629386e2a7c562479a (diff)
d_a_alink_effect mostly done (#2227)
* d_a_alink_effect work * more d_a_alink_effect work * some d_a_alink data cleanup * d_a_alink_effect mostly done
Diffstat (limited to 'src/d')
-rw-r--r--src/d/actor/d_a_alink.cpp1081
-rw-r--r--src/d/actor/d_a_alink_demo.inc169
-rw-r--r--src/d/actor/d_a_alink_effect.inc1687
-rw-r--r--src/d/actor/d_a_alink_grab.inc62
-rw-r--r--src/d/actor/d_a_alink_hook.inc9
-rw-r--r--src/d/actor/d_a_alink_link.inc6
-rw-r--r--src/d/actor/d_a_alink_weakfn.inc9
-rw-r--r--src/d/actor/d_a_alink_wolf.inc22
-rw-r--r--src/d/actor/d_a_boomerang.cpp4
-rw-r--r--src/d/d_particle.cpp2
10 files changed, 2250 insertions, 801 deletions
diff --git a/src/d/actor/d_a_alink.cpp b/src/d/actor/d_a_alink.cpp
index dd7005164f..89364b149e 100644
--- a/src/d/actor/d_a_alink.cpp
+++ b/src/d/actor/d_a_alink.cpp
@@ -51,34 +51,34 @@ bool daAlink_c::getE3Zhint() {
}
/* 80452C50-80452C58 001250 0005+03 2/2 0/0 0/0 .sdata2 l_wArcName */
-SECTION_SDATA2 static char l_wArcName[8] = "Wmdl";
+static const char l_wArcName[8] = "Wmdl";
/* 80452C58-80452C60 001258 0005+03 2/2 0/0 0/0 .sdata2 l_bArcName */
-SECTION_SDATA2 static char l_bArcName[8] = "Bmdl";
+static const char l_bArcName[8] = "Bmdl";
/* 80452C60-80452C68 001260 0005+03 2/2 0/0 0/0 .sdata2 l_kArcName */
-SECTION_SDATA2 static char l_kArcName[8] = "Kmdl";
+static const char l_kArcName[8] = "Kmdl";
/* 80452C68-80452C70 001268 0005+03 2/2 0/0 0/0 .sdata2 l_zArcName */
-SECTION_SDATA2 static char l_zArcName[8] = "Zmdl";
+static const char l_zArcName[8] = "Zmdl";
/* 80452C70-80452C78 001270 0005+03 3/3 0/0 0/0 .sdata2 l_mArcName */
-SECTION_SDATA2 static char l_mArcName[8] = "Mmdl";
+static const char l_mArcName[8] = "Mmdl";
/* 80452C78-80452C80 001278 0006+02 1/1 0/0 0/0 .sdata2 l_hyShdArcName */
-SECTION_SDATA2 static char l_hyShdArcName[8] = "HyShd";
+static const char l_hyShdArcName[8] = "HyShd";
/* 80452C80-80452C88 001280 0006+02 1/1 0/0 0/0 .sdata2 l_cWShdArcName */
-SECTION_SDATA2 static char l_cWShdArcName[8] = "CWShd";
+static const char l_cWShdArcName[8] = "CWShd";
/* 80452C88-80452C90 001288 0006+02 1/1 0/0 0/0 .sdata2 l_sWShdArcName */
-SECTION_SDATA2 static char l_sWShdArcName[8] = "SWShd";
+static const char l_sWShdArcName[8] = "SWShd";
/* 80452C90-80452C98 001290 0006+02 7/7 0/0 0/0 .sdata2 l_arcName */
-SECTION_SDATA2 static char l_arcName[8] = "Alink";
+static const char l_arcName[8] = "Alink";
/* 8009D884-8009D88C 0981C4 0008+00 0/0 0/0 13/13 .text getAlinkArcName__9daAlink_cFv */
-char* daAlink_c::getAlinkArcName() {
+const char* daAlink_c::getAlinkArcName() {
return l_arcName;
}
@@ -301,7 +301,7 @@ static int daAlink_modelCallBack(J3DJoint* p_joint, int param_1) {
}
/* 80452CF8-80452D00 0012F8 0008+00 84/84 0/0 0/0 .sdata2 @6848 */
-SECTION_SDATA2 static u8 lit_6848[8] = {
+static const u8 lit_6848[8] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
@@ -348,12 +348,12 @@ static int daAlink_wolfModelCallBack(J3DJoint* i_joint, int param_1) {
}
/* 80452F38-80452F3C -00001 0004+00 1/1 0/0 0/0 .sdata2 None */
-SECTION_SDATA2 static u8 data_80452F38 = 1;
+static const u8 data_80452F38 = 1;
-SECTION_SDATA2 static u8 data_80452F39 = 4;
+static const u8 data_80452F39 = 4;
/* 80452FA8-80452FB0 0015A8 0008+00 1/1 0/0 0/0 .sdata2 offsetAngle$25945 */
-SECTION_SDATA2 static s16 offsetAngle[] = {
+static const s16 offsetAngle[] = {
0x0000,
0x8000,
0x4000,
@@ -361,181 +361,129 @@ SECTION_SDATA2 static s16 offsetAngle[] = {
};
/* 80453020-80453024 001620 0004+00 1/1 0/0 0/0 .sdata2 grassWhistleIdx$33097 */
-SECTION_SDATA2 static u16 grassWhistleIdx[2] = {
+static const u16 grassWhistleIdx[2] = {
3,
3,
};
/* 80453094-8045309C 001694 0006+02 1/1 0/0 0/0 .sdata2 effName$40765 */
-SECTION_SDATA2 static u8 effName_40765[6 + 2 /* padding */] = {
- 0x04,
- 0x07,
- 0x04,
- 0x08,
- 0x04,
- 0x09,
- /* padding */
- 0x00,
- 0x00,
+static const u16 effName_40765[] = {
+ 0x0407,
+ 0x0408,
+ 0x0409,
};
/* 8045309C-804530A4 00169C 0006+02 1/1 0/0 0/0 .sdata2 effName0$40950 */
-SECTION_SDATA2 static u8 effName0[6 + 2 /* padding */] = {
- 0x86,
- 0x7D,
- 0x86,
- 0x7E,
- 0x86,
- 0x7F,
- /* padding */
- 0x00,
- 0x00,
+static const u16 effName0[] = {
+ 0x867D,
+ 0x867E,
+ 0x867F,
};
/* 804530A4-804530AC 0016A4 0006+02 1/1 0/0 0/0 .sdata2 effName1$40951 */
-SECTION_SDATA2 static u8 effName1[6 + 2 /* padding */] = {
- 0x89,
- 0x81,
- 0x89,
- 0x82,
- 0x89,
- 0x83,
- /* padding */
- 0x00,
- 0x00,
+static const u16 effName1[] = {
+ 0x8981,
+ 0x8982,
+ 0x8983,
};
/* 804530AC-804530B0 0016AC 0004+00 1/1 0/0 0/0 .sdata2 effNameNormal$41086 */
-SECTION_SDATA2 static u8 effNameNormal[4] = {
- 0x01,
- 0x59,
- 0x01,
- 0x5A,
+static const u16 effNameNormal[] = {
+ 0x0159,
+ 0x015A,
};
/* 804530B0-804530B8 0016B0 0008+00 1/1 0/0 0/0 .sdata2 effNameLight$41091 */
-SECTION_SDATA2 static u8 effNameLight[8] = {
- 0x0A, 0x28, 0x0A, 0x29, 0x0A, 0x2A, 0x0A, 0x2B,
+static const u16 effNameLight[] = {
+ 0x0A28, 0x0A29, 0x0A2A, 0x0A2B,
};
/* 804530B8-804530BC 0016B8 0004+00 1/1 0/0 0/0 .sdata2 effNameWater$41101 */
-SECTION_SDATA2 static u8 effNameWater[4] = {
- 0x0C,
- 0x52,
- 0x0C,
- 0x53,
+static const u16 effNameWater[] = {
+ 0x0C52,
+ 0x0C53,
};
/* 804530C0-804530C8 0016C0 0008+00 1/1 0/0 0/0 .sdata2 jointID$41285 */
-SECTION_SDATA2 static u8 jointID[8] = {
- 0x00, 0x14, 0x00, 0x13, 0x00, 0x18, 0x00, 0x19,
+static const u16 jointID[] = {
+ 0x0014, 0x0013, 0x0018, 0x0019,
};
/* 804530C8-804530D0 0016C8 0008+00 1/1 0/0 0/0 .sdata2 effName$41286 */
-SECTION_SDATA2 static u8 effName_41286[8] = {
- 0x88, 0xE1, 0x88, 0xE2, 0x88, 0xE3, 0x88, 0xE4,
+static const u16 effName_41286[] = {
+ 0x88E1, 0x88E2, 0x88E3, 0x88E4,
};
/* 804530D0-804530D8 0016D0 0006+02 1/1 0/0 0/0 .sdata2 effName$41312 */
-SECTION_SDATA2 static u8 effName_41312[6 + 2 /* padding */] = {
- 0x0A,
- 0x58,
- 0x0A,
- 0x59,
- 0x0B,
- 0x9D,
- /* padding */
- 0x00,
- 0x00,
+static const u16 effName_41312[] = {
+ 0x0A58,
+ 0x0A59,
+ 0x0B9D,
};
/* 804530D8-804530E0 0016D8 0006+02 1/1 0/0 0/0 .sdata2 name0$41422 */
-SECTION_SDATA2 static u8 name0[6 + 2 /* padding */] = {
- 0x02,
- 0xA3,
- 0x83,
- 0xA2,
- 0x88,
- 0x4F,
- /* padding */
- 0x00,
- 0x00,
+static const u16 name0[] = {
+ 0x02A3,
+ 0x83A2,
+ 0x884F,
};
/* 804530E0-804530E8 0016E0 0006+02 1/1 0/0 0/0 .sdata2 name1$41423 */
-SECTION_SDATA2 static u8 name1[6 + 2 /* padding */] = {
- 0x02,
- 0xA3,
- 0x83,
- 0xA3,
- 0x88,
- 0x50,
- /* padding */
- 0x00,
- 0x00,
+static const u16 name1[] = {
+ 0x02A3,
+ 0x83A3,
+ 0x8850,
};
/* 804530E8-804530F0 0016E8 0006+02 1/1 0/0 0/0 .sdata2 effID$41443 */
-SECTION_SDATA2 static u8 effID[6 + 2 /* padding */] = {
- 0x02,
- 0x44,
- 0x02,
- 0x45,
- 0x02,
- 0x46,
- /* padding */
- 0x00,
- 0x00,
+static const u16 effID[] = {
+ 0x0244,
+ 0x0245,
+ 0x0246,
};
/* 804530F0-804530F4 0016F0 0004+00 1/1 0/0 0/0 .sdata2 normalNameID$41521 */
-SECTION_SDATA2 static u8 normalNameID[4] = {
- 0x83,
- 0x90,
- 0x83,
- 0x91,
+static const u16 normalNameID[] = {
+ 0x8390,
+ 0x8391,
};
/* 804530F4-804530F8 0016F4 0004+00 1/1 0/0 0/0 .sdata2 ganonNameID$41522 */
-SECTION_SDATA2 static u8 ganonNameID[4] = {
- 0x8C,
- 0x2A,
- 0x8C,
- 0x2B,
+static const u16 ganonNameID[] = {
+ 0x8C2A,
+ 0x8C2B,
};
/* 804530F8-80453100 0016F8 0008+00 1/1 0/0 0/0 .sdata2 effDataTable$41650 */
-SECTION_SDATA2 static u8 effDataTable[8] = {
- 0x02, 0xA5, 0x02, 0xA6, 0x02, 0xA7, 0x02, 0xA8,
+static const u16 effDataTable[] = {
+ 0x02A5, 0x02A6, 0x02A7, 0x02A8,
};
/* 80453104-8045310C 001704 0008+00 1/1 0/0 0/0 .sdata2 cutSplashName$41756 */
-SECTION_SDATA2 static u8 cutSplashName[8] = {
- 0x01, 0xB8, 0x01, 0xB9, 0x01, 0xBA, 0x01, 0xBB,
+static const u16 cutSplashName[] = {
+ 0x01B8, 0x01B9, 0x01BA, 0x01BB,
};
/* 8045310C-80453110 00170C 0004+00 1/1 0/0 0/0 .sdata2 effName$42224 */
-SECTION_SDATA2 static u8 effName_42224[4] = {
- 0x88,
- 0x18,
- 0x88,
- 0x19,
+static const u16 effName_42224[] = {
+ 0x8818,
+ 0x8819,
};
/* 80453110-80453114 001710 0004+00 1/1 0/0 0/0 .sdata2 effName$42309 */
-SECTION_SDATA2 static u16 effName_42309[2] = {
+static const u16 effName_42309[] = {
0x0814,
0x0815,
};
/* 80453114-80453118 001714 0004+00 1/1 0/0 0/0 .sdata2 effName$42340 */
-SECTION_SDATA2 static u16 effName_42340[2] = {
+static const u16 effName_42340[] = {
0x0816,
0x0817,
};
/* 8045314C-80453150 00174C 0004+00 1/1 0/0 0/0 .sdata2 fFootJoint$44785 */
-SECTION_SDATA2 static u8 fFootJoint[4] = {
+static const u8 fFootJoint[4] = {
0x00,
0x10,
0x00,
@@ -543,25 +491,23 @@ SECTION_SDATA2 static u8 fFootJoint[4] = {
};
/* 80453150-80453154 001750 0004+00 1/1 0/0 0/0 .sdata2 bFootJoint$44786 */
-SECTION_SDATA2 static u8 bFootJoint[4] = {
- 0x00,
- 0x1C,
- 0x00,
- 0x21,
+static const u16 bFootJoint[] = {
+ 0x001C,
+ 0x0021,
};
/* 804531D8-804531E0 0017D8 0008+00 1/1 0/0 0/0 .sdata2 snowID$53110 */
-SECTION_SDATA2 static u16 snowID[] = {
+static const u16 snowID[] = {
0x884D, 0x884E, 0x8851, 0x8852,
};
/* 804531E0-804531E8 0017E0 0008+00 1/1 0/0 0/0 .sdata2 smokeID$53111 */
-SECTION_SDATA2 static u16 smokeID[] = {
+static const u16 smokeID[] = {
0x83A0, 0x83A1, 0x83A4, 0x83A5,
};
/* 804531E8-804531F0 0017E8 0008+00 1/1 0/0 0/0 .sdata2 waterColor$53845 */
-SECTION_SDATA2 static GXColorS10 waterColor = {0, 0, 0, 0};
+static const GXColorS10 waterColor = {0, 0, 0, 0};
/* 8009F034-8009FFF8 099974 0FC4+00 1/1 0/0 0/0 .text setHatAngle__9daAlink_cFv */
void daAlink_c::setHatAngle() {
@@ -732,8 +678,8 @@ COMPILER_STRIP_GATE(0x8038FA54, &l_crawlFrontOffset);
/* 8038FA60-8038FA6C 01C0C0 000C+00 0/1 0/0 0/0 .rodata l_crawlBackOffset */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const l_crawlBackOffset[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, 0xC1, 0xF0, 0x00, 0x00,
+SECTION_RODATA static Vec const l_crawlBackOffset = {
+ 0.0f, 30.0f, -30.0f
};
COMPILER_STRIP_GATE(0x8038FA60, &l_crawlBackOffset);
#pragma pop
@@ -743,31 +689,31 @@ SECTION_RODATA static Vec const l_crawlTopOffset = {0.0f, 30.0f, 0.0f};
COMPILER_STRIP_GATE(0x8038FA6C, &l_crawlTopOffset);
/* 8038FA78-8038FA84 01C0D8 000C+00 1/2 0/0 0/0 .rodata l_crawlFrontUpOffset */
-SECTION_RODATA static u8 const l_crawlFrontUpOffset[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x42, 0xA0, 0x00, 0x00, 0x42, 0xA0, 0x00, 0x00,
+SECTION_RODATA static Vec const l_crawlFrontUpOffset = {
+ 0.0f, 80.0f, 80.0f
};
COMPILER_STRIP_GATE(0x8038FA78, &l_crawlFrontUpOffset);
/* 8038FA84-8038FA90 01C0E4 000C+00 0/1 0/0 0/0 .rodata l_wolfLieFrontUpOffset */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const l_wolfLieFrontUpOffset[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x42, 0x96, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00,
+SECTION_RODATA static Vec const l_wolfLieFrontUpOffset = {
+ 0.0f, 75.0f, 100.0f
};
COMPILER_STRIP_GATE(0x8038FA84, &l_wolfLieFrontUpOffset);
#pragma pop
/* 8038FA90-8038FA9C 01C0F0 000C+00 1/2 0/0 0/0 .rodata l_crawlBackUpOffset */
-SECTION_RODATA static u8 const l_crawlBackUpOffset[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x42, 0xA0, 0x00, 0x00, 0xC1, 0xF0, 0x00, 0x00,
+SECTION_RODATA static Vec const l_crawlBackUpOffset = {
+ 0.0f, 80.0f, -30.0f
};
COMPILER_STRIP_GATE(0x8038FA90, &l_crawlBackUpOffset);
/* 8038FA9C-8038FAA8 01C0FC 000C+00 0/1 0/0 0/0 .rodata l_wolfLieBackUpOffset */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const l_wolfLieBackUpOffset[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x42, 0x96, 0x00, 0x00, 0xC2, 0x8C, 0x00, 0x00,
+SECTION_RODATA static Vec const l_wolfLieBackUpOffset = {
+ 0.0f, 70.0f, -70.0f
};
COMPILER_STRIP_GATE(0x8038FA9C, &l_wolfLieBackUpOffset);
#pragma pop
@@ -775,8 +721,8 @@ COMPILER_STRIP_GATE(0x8038FA9C, &l_wolfLieBackUpOffset);
/* 8038FAA8-8038FAB4 01C108 000C+00 0/1 0/0 0/0 .rodata l_crawlStandUpOffset */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const l_crawlStandUpOffset[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x42, 0xA0, 0x00, 0x00, 0xC1, 0xF0, 0x00, 0x00,
+SECTION_RODATA static Vec const l_crawlStandUpOffset = {
+ 0.0f, 80.0f, -30.0f
};
COMPILER_STRIP_GATE(0x8038FAA8, &l_crawlStandUpOffset);
#pragma pop
@@ -784,8 +730,8 @@ COMPILER_STRIP_GATE(0x8038FAA8, &l_crawlStandUpOffset);
/* 8038FAB4-8038FAC0 01C114 000C+00 0/1 0/0 0/0 .rodata l_wolfLieStandUpOffset */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const l_wolfLieStandUpOffset[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x42, 0xA0, 0x00, 0x00, 0xC2, 0x8C, 0x00, 0x00,
+SECTION_RODATA static Vec const l_wolfLieStandUpOffset = {
+ 0.0f, 80.0f, -70.0f
};
COMPILER_STRIP_GATE(0x8038FAB4, &l_wolfLieStandUpOffset);
#pragma pop
@@ -846,8 +792,8 @@ COMPILER_STRIP_GATE(0x8038FB14, &l_crawlRSideFrontOffset);
/* 8038FB20-8038FB2C 01C180 000C+00 0/2 0/0 0/0 .rodata l_crawlMinSideOffset */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const l_crawlMinSideOffset[12] = {
- 0x42, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const l_crawlMinSideOffset = {
+ 35.0f, 0.0f, 0.0f
};
COMPILER_STRIP_GATE(0x8038FB20, &l_crawlMinSideOffset);
#pragma pop
@@ -855,8 +801,8 @@ COMPILER_STRIP_GATE(0x8038FB20, &l_crawlMinSideOffset);
/* 8038FB2C-8038FB38 01C18C 000C+00 0/2 0/0 0/0 .rodata l_swordTopLocalN */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const l_swordTopLocalN[12] = {
- 0x42, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const l_swordTopLocalN = {
+ 100.0f, 0.0f, 0.0f
};
COMPILER_STRIP_GATE(0x8038FB2C, &l_swordTopLocalN);
#pragma pop
@@ -864,8 +810,8 @@ COMPILER_STRIP_GATE(0x8038FB2C, &l_swordTopLocalN);
/* 8038FB38-8038FB44 01C198 000C+00 0/2 0/0 0/0 .rodata l_swordTopLocalM */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const l_swordTopLocalM[12] = {
- 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const l_swordTopLocalM = {
+ 120.0f, 0.0f, 0.0f
};
COMPILER_STRIP_GATE(0x8038FB38, &l_swordTopLocalM);
#pragma pop
@@ -1661,8 +1607,8 @@ static Vec const localSidePos = {2.3f, -15.5f, 15.6f};
/* 803918E8-803918F4 01DF48 000C+00 0/1 0/0 0/0 .rodata m_handLeftOutSidePos__9daAlink_c */
#pragma push
#pragma force_active on
-SECTION_RODATA u8 const daAlink_c::m_handLeftOutSidePos[12] = {
- 0x41, 0x10, 0x00, 0x00, 0xC0, 0xA0, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00,
+SECTION_RODATA Vec const daAlink_c::m_handLeftOutSidePos = {
+ 9.0f, -5.0f, 3.0f
};
COMPILER_STRIP_GATE(0x803918E8, &daAlink_c::m_handLeftOutSidePos);
#pragma pop
@@ -1671,21 +1617,21 @@ COMPILER_STRIP_GATE(0x803918E8, &daAlink_c::m_handLeftOutSidePos);
*/
#pragma push
#pragma force_active on
-SECTION_RODATA u8 const daAlink_c::m_handRightOutSidePos[12] = {
- 0x41, 0x10, 0x00, 0x00, 0xC0, 0xA0, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00,
+SECTION_RODATA Vec const daAlink_c::m_handRightOutSidePos = {
+ 9.0f, -5.0f, -3.0f
};
COMPILER_STRIP_GATE(0x803918F4, &daAlink_c::m_handRightOutSidePos);
#pragma pop
/* 80391900-8039190C 01DF60 000C+00 0/1 0/0 1/1 .rodata m_handLeftInSidePos__9daAlink_c */
-SECTION_RODATA u8 const daAlink_c::m_handLeftInSidePos[12] = {
- 0x41, 0x10, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00,
+SECTION_RODATA Vec const daAlink_c::m_handLeftInSidePos = {
+ 9.0f, 5.0f, 3.0f
};
COMPILER_STRIP_GATE(0x80391900, &daAlink_c::m_handLeftInSidePos);
/* 8039190C-80391918 01DF6C 000C+00 0/1 0/0 1/1 .rodata m_handRightInSidePos__9daAlink_c */
-SECTION_RODATA u8 const daAlink_c::m_handRightInSidePos[12] = {
- 0x41, 0x10, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00,
+SECTION_RODATA Vec const daAlink_c::m_handRightInSidePos = {
+ 9.0f, 5.0f, -3.0f
};
COMPILER_STRIP_GATE(0x8039190C, &daAlink_c::m_handRightInSidePos);
@@ -1735,49 +1681,70 @@ SECTION_RODATA static u8 const lit_18938[12] = {
COMPILER_STRIP_GATE(0x80391978, &lit_18938);
/* 80391984-80391990 01DFE4 000C+00 1/1 0/0 0/0 .rodata boarRideOffset$19147 */
-SECTION_RODATA static u8 const boarRideOffset[12] = {
- 0xBF, 0x5E, 0xB8, 0x52, 0x40, 0x55, 0x1E, 0xB8, 0xC1, 0xBE, 0x28, 0xF6,
+SECTION_RODATA static Vec const boarRideOffset = {
+ -0.87f, 3.3299999f, -23.77f
};
COMPILER_STRIP_GATE(0x80391984, &boarRideOffset);
/* 80391990-8039199C 01DFF0 000C+00 1/1 0/0 0/0 .rodata leftOffset$19386 */
-SECTION_RODATA static u8 const leftOffset[12] = {
- 0x42, 0x96, 0x00, 0x00, 0x42, 0xCC, 0x00, 0x00, 0x40, 0xC7, 0x2B, 0x02,
+SECTION_RODATA static Vec const leftOffset = {
+ 75.0f, 102.0f, 6.224f
};
COMPILER_STRIP_GATE(0x80391990, &leftOffset);
/* 8039199C-803919A8 01DFFC 000C+00 1/1 0/0 0/0 .rodata rightOffset$19387 */
-SECTION_RODATA static u8 const rightOffset[12] = {
- 0xC2, 0x96, 0x00, 0x00, 0x42, 0xCC, 0x00, 0x00, 0x40, 0xC7, 0x12, 0x6F,
+SECTION_RODATA static Vec const rightOffset = {
+ -75.0f, 102.0f, 6.221f
};
COMPILER_STRIP_GATE(0x8039199C, &rightOffset);
/* 803919A8-803919D8 01E008 0030+00 0/1 0/0 0/0 .rodata cutParamTable$19765 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const cutParamTable_19765[48] = {
- 0x00, 0x00, 0x00, 0x20, 0x00, 0x91, 0x01, 0x0C, 0x00, 0x0E, 0x22, 0x00, 0x00, 0x00, 0x00, 0x21,
- 0x00, 0x92, 0x01, 0x0D, 0x00, 0x13, 0x23, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x93, 0x01, 0x0E,
- 0x00, 0x13, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x94, 0x01, 0x0F, 0x00, 0x00, 0x2A, 0x00,
+static daAlink_cutHorseParamTbl const cutParamTable_19765[] = {
+ {
+ 0x20,
+ 0x91,
+ 0x10C,
+ 0x00,
+ 0x0E,
+ 0x22,
+ },
+ {
+ 0x21,
+ 0x92,
+ 0x10D,
+ 0x00,
+ 0x13,
+ 0x23,
+ },
+ {
+ 0x22,
+ 0x93,
+ 0x10E,
+ 0x00,
+ 0x13,
+ 0x2A,
+ },
+ {
+ 0x23,
+ 0x94,
+ 0x10F,
+ 0x00,
+ 0x00,
+ 0x2A,
+ },
};
COMPILER_STRIP_GATE(0x803919A8, &cutParamTable_19765);
#pragma pop
/* 803919D8-803919E4 01E038 000A+02 1/1 0/0 0/0 .rodata anmIdx$19945 */
-SECTION_RODATA static u8 const anmIdx[10 + 2 /* padding */] = {
- 0x00,
- 0xBA,
- 0x00,
- 0xB8,
- 0x00,
- 0xBB,
- 0x00,
- 0xBC,
- 0x00,
- 0xB9,
- /* padding */
- 0x00,
- 0x00,
+SECTION_RODATA static u16 const anmIdx[] = {
+ 0x00BA,
+ 0x00B8,
+ 0x00BB,
+ 0x00BC,
+ 0x00B9,
};
COMPILER_STRIP_GATE(0x803919D8, &anmIdx);
@@ -1796,8 +1763,8 @@ SECTION_RODATA static f32 const underOffsetY[3] = {
COMPILER_STRIP_GATE(0x803919F0, &underOffsetY);
/* 803919FC-80391A08 01E05C 000C+00 1/1 0/0 0/0 .rodata hsVec$28749 */
-SECTION_RODATA static u8 const hsVec[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00,
+SECTION_RODATA static Vec const hsVec = {
+ 0.0f, 0.0f, 5.0f
};
COMPILER_STRIP_GATE(0x803919FC, &hsVec);
@@ -1891,22 +1858,22 @@ COMPILER_STRIP_GATE(0x80391BA0, &effName_39419);
#pragma pop
/* 80391BAC-80391BB8 01E20C 000C+00 1/1 0/0 0/0 .rodata smokeParticleScale$39643 */
-SECTION_RODATA static u8 const smokeParticleScale_39643[12] = {
- 0x3F, 0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33,
+SECTION_RODATA static Vec const smokeParticleScale_39643 = {
+ 0.69999999f, 0.69999999f, 0.69999999f
};
COMPILER_STRIP_GATE(0x80391BAC, &smokeParticleScale_39643);
/* 80391BB8-80391BC4 01E218 000C+00 1/1 0/0 0/0 .rodata wolfWaterCenterScale$39644 */
-SECTION_RODATA static u8 const wolfWaterCenterScale[12] = {
- 0x3F, 0x99, 0x99, 0x9A, 0x3F, 0x99, 0x99, 0x9A, 0x3F, 0x99, 0x99, 0x9A,
+SECTION_RODATA static Vec const wolfWaterCenterScale = {
+ 1.2f, 1.2f, 1.2f
};
COMPILER_STRIP_GATE(0x80391BB8, &wolfWaterCenterScale);
/* 80391BC4-80391BD0 01E224 000C+00 0/1 0/0 0/0 .rodata waterScale$39762 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const waterScale_39762[12] = {
- 0x3F, 0x14, 0x7A, 0xE1, 0x3F, 0x14, 0x7A, 0xE1, 0x3F, 0x14, 0x7A, 0xE1,
+SECTION_RODATA static Vec const waterScale_39762 = {
+ 0.57999998f, 0.57999998f, 0.57999998f
};
COMPILER_STRIP_GATE(0x80391BC4, &waterScale_39762);
#pragma pop
@@ -1914,8 +1881,8 @@ COMPILER_STRIP_GATE(0x80391BC4, &waterScale_39762);
/* 80391BD0-80391BDC 01E230 000C+00 0/1 0/0 0/0 .rodata waterCenterScale$39763 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const waterCenterScale[12] = {
- 0x3F, 0x99, 0x99, 0x9A, 0x3F, 0x99, 0x99, 0x9A, 0x3F, 0x99, 0x99, 0x9A,
+SECTION_RODATA static Vec const waterCenterScale = {
+ 1.2f, 1.2f, 1.2f
};
COMPILER_STRIP_GATE(0x80391BD0, &waterCenterScale);
#pragma pop
@@ -1923,8 +1890,8 @@ COMPILER_STRIP_GATE(0x80391BD0, &waterCenterScale);
/* 80391BDC-80391BE8 01E23C 000C+00 0/1 0/0 0/0 .rodata waterSmokeScale$39764 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const waterSmokeScale[12] = {
- 0x3F, 0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33,
+SECTION_RODATA static Vec const waterSmokeScale = {
+ 0.69999999f, 0.69999999f, 0.69999999f
};
COMPILER_STRIP_GATE(0x80391BDC, &waterSmokeScale);
#pragma pop
@@ -1932,8 +1899,8 @@ COMPILER_STRIP_GATE(0x80391BDC, &waterSmokeScale);
/* 80391BE8-80391BF4 01E248 000C+00 0/1 0/0 0/0 .rodata smokeParticleScale$39891 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const smokeParticleScale_39891[12] = {
- 0x3F, 0x4C, 0xCC, 0xCD, 0x3F, 0x4C, 0xCC, 0xCD, 0x3F, 0x4C, 0xCC, 0xCD,
+SECTION_RODATA static Vec const smokeParticleScale_39891 = {
+ 0.8f, 0.8f, 0.8f
};
COMPILER_STRIP_GATE(0x80391BE8, &smokeParticleScale_39891);
#pragma pop
@@ -1941,8 +1908,8 @@ COMPILER_STRIP_GATE(0x80391BE8, &smokeParticleScale_39891);
/* 80391BF4-80391C00 01E254 000C+00 0/1 0/0 0/0 .rodata waterScale$39892 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const waterScale_39892[12] = {
- 0x3F, 0xA0, 0x00, 0x00, 0x3F, 0xA0, 0x00, 0x00, 0x3F, 0xA0, 0x00, 0x00,
+SECTION_RODATA static Vec const waterScale_39892 = {
+ 1.25f, 1.25f, 1.25f
};
COMPILER_STRIP_GATE(0x80391BF4, &waterScale_39892);
#pragma pop
@@ -1950,8 +1917,8 @@ COMPILER_STRIP_GATE(0x80391BF4, &waterScale_39892);
/* 80391C00-80391C0C 01E260 000C+00 0/1 0/0 0/0 .rodata wolfSmokeScale$39893 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const wolfSmokeScale[12] = {
- 0x3F, 0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33,
+SECTION_RODATA static Vec const wolfSmokeScale = {
+ 0.69999999f, 0.69999999f, 0.69999999f
};
COMPILER_STRIP_GATE(0x80391C00, &wolfSmokeScale);
#pragma pop
@@ -1959,8 +1926,8 @@ COMPILER_STRIP_GATE(0x80391C00, &wolfSmokeScale);
/* 80391C0C-80391C18 01E26C 000C+00 0/1 0/0 0/0 .rodata shikoScale$40012 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const shikoScale[12] = {
- 0x3F, 0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33,
+SECTION_RODATA static Vec const shikoScale = {
+ 0.69999999f, 0.69999999f, 0.69999999f
};
COMPILER_STRIP_GATE(0x80391C0C, &shikoScale);
#pragma pop
@@ -1968,8 +1935,8 @@ COMPILER_STRIP_GATE(0x80391C0C, &shikoScale);
/* 80391C18-80391C24 01E278 000C+00 0/1 0/0 0/0 .rodata pushedSlip$40013 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const pushedSlip[12] = {
- 0x3F, 0x4C, 0xCC, 0xCD, 0x3F, 0x4C, 0xCC, 0xCD, 0x3F, 0x4C, 0xCC, 0xCD,
+SECTION_RODATA static Vec const pushedSlip = {
+ 0.8f, 0.8f, 0.8f
};
COMPILER_STRIP_GATE(0x80391C18, &pushedSlip);
#pragma pop
@@ -1977,23 +1944,23 @@ COMPILER_STRIP_GATE(0x80391C18, &pushedSlip);
/* 80391C24-80391C30 01E284 000C+00 0/1 0/0 0/0 .rodata loseScale$40014 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const loseScale[12] = {
- 0x3F, 0x8C, 0xCC, 0xCD, 0x3F, 0x8C, 0xCC, 0xCD, 0x3F, 0x8C, 0xCC, 0xCD,
+SECTION_RODATA static Vec const loseScale = {
+ 1.1f, 1.1f, 1.1f
};
COMPILER_STRIP_GATE(0x80391C24, &loseScale);
#pragma pop
/* 80391C30-80391C3C 01E290 000C+00 1/1 0/0 0/0 .rodata releaeScale$40567 */
-SECTION_RODATA static u8 const releaeScale[12] = {
- 0x3F, 0x4C, 0xCC, 0xCD, 0x3F, 0x4C, 0xCC, 0xCD, 0x3F, 0x4C, 0xCC, 0xCD,
+SECTION_RODATA static Vec const releaeScale = {
+ 0.8f, 0.8f, 0.8f,
};
COMPILER_STRIP_GATE(0x80391C30, &releaeScale);
/* 80391C3C-80391C48 01E29C 000C+00 0/1 0/0 0/0 .rodata lightAParticleScale$40829 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const lightAParticleScale[12] = {
- 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x95, 0xE3, 0x54, 0x3F, 0x80, 0x00, 0x00,
+SECTION_RODATA static Vec const lightAParticleScale = {
+ 1.0f, 1.171f, 1.0f
};
COMPILER_STRIP_GATE(0x80391C3C, &lightAParticleScale);
#pragma pop
@@ -2001,8 +1968,8 @@ COMPILER_STRIP_GATE(0x80391C3C, &lightAParticleScale);
/* 80391C48-80391C54 01E2A8 000C+00 0/1 0/0 0/0 .rodata lightALocalTrans$40830 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const lightALocalTrans[12] = {
- 0x42, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const lightALocalTrans = {
+ 68.0f, 0.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80391C48, &lightALocalTrans);
#pragma pop
@@ -2010,8 +1977,8 @@ COMPILER_STRIP_GATE(0x80391C48, &lightALocalTrans);
/* 80391C54-80391C60 01E2B4 000C+00 0/1 0/0 0/0 .rodata localOffset$40952 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const localOffset_40952[12] = {
- 0x00, 0x00, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00,
+SECTION_RODATA static Vec const localOffset_40952 = {
+ 0.0f, -10.0f, -10.0f
};
COMPILER_STRIP_GATE(0x80391C54, &localOffset_40952);
#pragma pop
@@ -2019,8 +1986,8 @@ COMPILER_STRIP_GATE(0x80391C54, &localOffset_40952);
/* 80391C60-80391C6C 01E2C0 000C+00 0/1 0/0 0/0 .rodata localScale0$40953 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const localScale0[12] = {
- 0x3F, 0x33, 0x33, 0x33, 0x3F, 0x59, 0x99, 0x9A, 0x3F, 0xC0, 0x00, 0x00,
+SECTION_RODATA static Vec const localScale0 = {
+ 0.69999999f, 0.85f, 1.5f
};
COMPILER_STRIP_GATE(0x80391C60, &localScale0);
#pragma pop
@@ -2028,8 +1995,8 @@ COMPILER_STRIP_GATE(0x80391C60, &localScale0);
/* 80391C6C-80391C78 01E2CC 000C+00 0/1 0/0 0/0 .rodata localScale1$40954 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const localScale1[12] = {
- 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x59, 0x99, 0x9A, 0x3F, 0xC0, 0x00, 0x00,
+SECTION_RODATA static Vec const localScale1 = {
+ 1.0f, 0.85f, 1.5f
};
COMPILER_STRIP_GATE(0x80391C6C, &localScale1);
#pragma pop
@@ -2037,8 +2004,8 @@ COMPILER_STRIP_GATE(0x80391C6C, &localScale1);
/* 80391C78-80391C84 01E2D8 000C+00 0/1 0/0 0/0 .rodata waterEffScale$41082 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const waterEffScale[12] = {
- 0x3F, 0xC0, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00,
+SECTION_RODATA static Vec const waterEffScale = {
+ 1.5f, 1.5f, 1.5f
};
COMPILER_STRIP_GATE(0x80391C78, &waterEffScale);
#pragma pop
@@ -2046,9 +2013,9 @@ COMPILER_STRIP_GATE(0x80391C78, &waterEffScale);
/* 80391C84-80391C9C 01E2E4 0018+00 0/1 0/0 0/0 .rodata leftTransNormal$41090 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const leftTransNormal[24] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const leftTransNormal[] = {
+ {0.0f, 0.0f, 0.0f},
+ {0.0f, 30.0f, 0.0f},
};
COMPILER_STRIP_GATE(0x80391C84, &leftTransNormal);
#pragma pop
@@ -2056,10 +2023,11 @@ COMPILER_STRIP_GATE(0x80391C84, &leftTransNormal);
/* 80391C9C-80391CCC 01E2FC 0030+00 0/1 0/0 0/0 .rodata leftTransLight$41095 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const leftTransLight[48] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const leftTransLight[] = {
+ {0.0f, 0.0f, 0.0f},
+ {0.0f, 0.0f, 0.0f},
+ {0.0f, 35.0f, 0.0f},
+ {0.0f, 0.0f, 0.0f},
};
COMPILER_STRIP_GATE(0x80391C9C, &leftTransLight);
#pragma pop
@@ -2067,8 +2035,8 @@ COMPILER_STRIP_GATE(0x80391C9C, &leftTransLight);
/* 80391CCC-80391CD8 01E32C 000C+00 0/1 0/0 0/0 .rodata effNameLarge$41096 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const effNameLarge[12] = {
- 0x0B, 0xA5, 0x0B, 0xA6, 0x0B, 0xA7, 0x0B, 0xA8, 0x0B, 0xA9, 0x0B, 0xAA,
+SECTION_RODATA static u16 const effNameLarge[] = {
+ 0x0BA5, 0x0BA6, 0x0BA7, 0x0BA8, 0x0BA9, 0x0BAA,
};
COMPILER_STRIP_GATE(0x80391CCC, &effNameLarge);
#pragma pop
@@ -2076,12 +2044,13 @@ COMPILER_STRIP_GATE(0x80391CCC, &effNameLarge);
/* 80391CD8-80391D20 01E338 0048+00 0/1 0/0 0/0 .rodata leftTransLarge$41100 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const leftTransLarge[72] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x42, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const leftTransLarge[] = {
+ {0.0f, 0.0f, 0.0f},
+ {0.0f, 35.0f, 0.0f},
+ {0.0f, 0.0f, 0.0f},
+ {0.0f, 45.0f, 0.0f},
+ {0.0f, 30.0f, 0.0f},
+ {0.0f, 50.0f, 0.0f},
};
COMPILER_STRIP_GATE(0x80391CD8, &leftTransLarge);
#pragma pop
@@ -2089,16 +2058,16 @@ COMPILER_STRIP_GATE(0x80391CD8, &leftTransLarge);
/* 80391D20-80391D38 01E380 0018+00 0/1 0/0 0/0 .rodata leftTransWater$41105 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const leftTransWater[24] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const leftTransWater[] = {
+ {0.0f, 0.0f, 0.0f},
+ {0.0f, 0.0f, 0.0f},
};
COMPILER_STRIP_GATE(0x80391D20, &leftTransWater);
#pragma pop
/* 80391D38-80391D44 01E398 000C+00 1/1 0/0 0/0 .rodata effName$41208 */
-SECTION_RODATA static u8 const effName_41208[12] = {
- 0x09, 0xD0, 0x09, 0xD1, 0x09, 0xD2, 0x09, 0xD3, 0x09, 0xD4, 0x09, 0xD5,
+SECTION_RODATA static u16 const effName_41208[] = {
+ 0x09D0, 0x09D1, 0x09D2, 0x09D3, 0x09D4, 0x09D5,
};
COMPILER_STRIP_GATE(0x80391D38, &effName_41208);
@@ -2106,16 +2075,16 @@ COMPILER_STRIP_GATE(0x80391D38, &effName_41208);
static GXColorS10 const swordUpColor[2] = {{13, 10, 2, 255}, {28, 16, 4, 255}};
/* 80391D54-80391D60 01E3B4 000C+00 1/1 0/0 0/0 .rodata swordCutSplashScale$41755 */
-SECTION_RODATA static u8 const swordCutSplashScale[12] = {
- 0x3F, 0x19, 0x99, 0x9A, 0x3F, 0x19, 0x99, 0x9A, 0x3F, 0x19, 0x99, 0x9A,
+SECTION_RODATA static Vec const swordCutSplashScale = {
+ 0.6f, 0.6f, 0.6f
};
COMPILER_STRIP_GATE(0x80391D54, &swordCutSplashScale);
/* 80391D60-80391D6C 01E3C0 000C+00 0/1 0/0 0/0 .rodata fairyScale$41951 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const fairyScale[12] = {
- 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const fairyScale = {
+ 0.5f, 0.5f, 0.5f
};
COMPILER_STRIP_GATE(0x80391D60, &fairyScale);
#pragma pop
@@ -2123,8 +2092,8 @@ COMPILER_STRIP_GATE(0x80391D60, &fairyScale);
/* 80391D6C-80391D78 01E3CC 000C+00 0/1 0/0 0/0 .rodata chuchuLocalOffset$41952 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const chuchuLocalOffset[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const chuchuLocalOffset = {
+ 0.0f, 15.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80391D6C, &chuchuLocalOffset);
#pragma pop
@@ -2132,34 +2101,41 @@ COMPILER_STRIP_GATE(0x80391D6C, &chuchuLocalOffset);
/* 80391D78-80391D84 01E3D8 000C+00 0/1 0/0 0/0 .rodata chuchuScale$41953 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const chuchuScale[12] = {
- 0x3F, 0x4C, 0xCC, 0xCD, 0x3F, 0x4C, 0xCC, 0xCD, 0x3F, 0x4C, 0xCC, 0xCD,
+SECTION_RODATA static Vec const chuchuScale = {
+ 0.8f, 0.8f, 0.8f
};
COMPILER_STRIP_GATE(0x80391D78, &chuchuScale);
#pragma pop
/* 80391D84-80391D94 01E3E4 0010+00 1/1 0/0 0/0 .rodata effJoint$42070 */
-SECTION_RODATA static u8 const effJoint[16] = {
- 0x00, 0x07, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x22, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03,
+SECTION_RODATA static u16 const effJoint[2][4] = {
+ {0x0007, 0x000C, 0x0010, 0x0022},
+ {0x0003, 0x0003, 0x0003, 0x0003},
};
COMPILER_STRIP_GATE(0x80391D84, &effJoint);
/* 80391D94-80391DF4 01E3F4 0060+00 1/1 0/0 0/0 .rodata effOffset$42071 */
-SECTION_RODATA static u8 const effOffset[96] = {
- 0xC0, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00,
- 0x40, 0x40, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00,
- 0x41, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xA0, 0x00, 0x00, 0xC0, 0xE0, 0x00, 0x00,
- 0x41, 0x70, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0xC1, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xC1, 0xC8, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, 0xC0, 0xA0, 0x00, 0x00,
- 0x41, 0xA0, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0xC1, 0xC8, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00,
+SECTION_RODATA static Vec const effOffset[2][4] = {
+ {
+ {-5.0f, 0.0f, 0.0f},
+ {15.0f, 3.0f, 5.0f},
+ {4.0f, -10.0f, 15.0f},
+ {0.0f, -5.0f, -7.0f},
+ },
+ {
+ {15.0f, 5.0f, -20.0f},
+ {0.0f, -25.0f, 5.0f},
+ {15.0f, -5.0f, 20.0f},
+ {10.0f, -25.0f, -10.0f},
+ }
};
COMPILER_STRIP_GATE(0x80391D94, &effOffset);
/* 80391DF4-80391E00 01E454 000C+00 0/1 0/0 0/0 .rodata effScale$42225 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const effScale[12] = {
- 0x3F, 0x80, 0x00, 0x00, 0x3F, 0xE6, 0x66, 0x66, 0x3F, 0x80, 0x00, 0x00,
+SECTION_RODATA static Vec const effScale = {
+ 1.0f, 1.8f, 1.0f
};
COMPILER_STRIP_GATE(0x80391DF4, &effScale);
#pragma pop
@@ -2167,8 +2143,8 @@ COMPILER_STRIP_GATE(0x80391DF4, &effScale);
/* 80391E00-80391E0C 01E460 000C+00 0/1 0/0 0/0 .rodata wolfEffScale$42226 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const wolfEffScale[12] = {
- 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00,
+SECTION_RODATA static Vec const wolfEffScale = {
+ 1.0f, 1.0f, 1.5f
};
COMPILER_STRIP_GATE(0x80391E00, &wolfEffScale);
#pragma pop
@@ -2176,33 +2152,33 @@ COMPILER_STRIP_GATE(0x80391E00, &wolfEffScale);
/* 80391E0C-80391E18 01E46C 000C+00 0/1 0/0 0/0 .rodata offsetPos$42227 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const offsetPos[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00,
+SECTION_RODATA static Vec const offsetPos = {
+ 0.0f, 0.0f, -10.0f
};
COMPILER_STRIP_GATE(0x80391E0C, &offsetPos);
#pragma pop
/* 80391E18-80391E24 01E478 000C+00 1/1 0/0 0/0 .rodata localFootOffset$45107 */
-SECTION_RODATA static u8 const localFootOffset[12] = {
- 0x40, 0xC0, 0x00, 0x00, 0xC0, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const localFootOffset = {
+ 6.0f, -5.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80391E18, &localFootOffset);
/* 80391E24-80391E30 01E484 000C+00 1/1 0/0 0/0 .rodata frontOffset$45186 */
-SECTION_RODATA static u8 const frontOffset[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00,
+SECTION_RODATA static Vec const frontOffset = {
+ 0.0f, 0.0f, 50.0f
};
COMPILER_STRIP_GATE(0x80391E24, &frontOffset);
/* 80391E30-80391E3C 01E490 000C+00 1/1 0/0 0/0 .rodata wolfChainBaseOffset$45513 */
-SECTION_RODATA static u8 const wolfChainBaseOffset[12] = {
- 0x41, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x40, 0x00, 0x00,
+SECTION_RODATA static Vec const wolfChainBaseOffset = {
+ 22.0f, 0.0f, -12.0f
};
COMPILER_STRIP_GATE(0x80391E30, &wolfChainBaseOffset);
/* 80391E3C-80391E48 01E49C 000C+00 1/1 0/0 0/0 .rodata wolfChainVec$45514 */
-SECTION_RODATA static u8 const wolfChainVec[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x10, 0x00, 0x00,
+SECTION_RODATA static Vec const wolfChainVec = {
+ 0.0f, 0.0f, -9.0f
};
COMPILER_STRIP_GATE(0x80391E3C, &wolfChainVec);
@@ -2252,23 +2228,21 @@ static const daAlink_WCutParamTbl dataTabl[] = {
};
/* 80391EC0-80391ECC 01E520 000C+00 1/1 0/0 0/0 .rodata arm1Vec$56040 */
-SECTION_RODATA static u8 const arm1Vec[12] = {
- 0x41, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const arm1Vec = {
+ 29.0f, 0.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80391EC0, &arm1Vec);
/* 80391ECC-80391ED8 01E52C 000C+00 1/1 0/0 0/0 .rodata arm2Vec$56041 */
-SECTION_RODATA static u8 const arm2Vec[12] = {
- 0x41, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const arm2Vec = {
+ 26.5f, 0.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80391ECC, &arm2Vec);
/* 80453228-8045322C 001828 0004+00 1/1 0/0 0/0 .sdata2 armJointTable$56027 */
-SECTION_SDATA2 static u8 armJointTable[4] = {
- 0x00,
- 0x07,
- 0x00,
- 0x0C,
+static const u16 armJointTable[] = {
+ 0x0007,
+ 0x000C,
};
/* 800A2710-800A29DC 09D050 02CC+00 1/1 0/0 0/0 .text setArmMatrix__9daAlink_cFv */
@@ -2279,8 +2253,8 @@ void daAlink_c::setArmMatrix() {
/* 80391ED8-80391EE4 01E538 000C+00 0/1 0/0 0/0 .rodata leg1Vec$56150 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const leg1Vec[12] = {
- 0x41, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const leg1Vec = {
+ 30.0f, 0.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80391ED8, &leg1Vec);
#pragma pop
@@ -2288,8 +2262,8 @@ COMPILER_STRIP_GATE(0x80391ED8, &leg1Vec);
/* 80391EE4-80391EF0 01E544 000C+00 0/1 0/0 0/0 .rodata leg2Vec$56151 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const leg2Vec[12] = {
- 0x42, 0x1D, 0x74, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const leg2Vec = {
+ 39.363499f, 0.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80391EE4, &leg2Vec);
#pragma pop
@@ -2297,18 +2271,16 @@ COMPILER_STRIP_GATE(0x80391EE4, &leg2Vec);
/* 80391EF0-80391EFC 01E550 000C+00 0/1 0/0 0/0 .rodata footVec$56152 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const footVec[12] = {
- 0x41, 0x62, 0xE1, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const footVec = {
+ 14.18f, 0.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80391EF0, &footVec);
#pragma pop
/* 8045322C-80453230 00182C 0004+00 1/1 0/0 0/0 .sdata2 footJointTable$56137 */
-SECTION_SDATA2 static u8 footJointTable[4] = {
- 0x00,
- 0x12,
- 0x00,
- 0x17,
+static const u16 footJointTable[] = {
+ 0x0012,
+ 0x0017,
};
/* 800A29DC-800A2C24 09D31C 0248+00 1/1 0/0 0/0 .text setFootMatrix__9daAlink_cFv */
@@ -2342,8 +2314,8 @@ void daAlink_c::setLegAngle(f32 param_0, daAlink_footData_c* param_1, s16* param
/* 80391EFC-80391F08 01E55C 000C+00 0/1 0/0 0/0 .rodata localLeftFootOffset$56542 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const localLeftFootOffset[12] = {
- 0xC0, 0x40, 0x00, 0x00, 0x41, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const localLeftFootOffset = {
+ -3.0f, 13.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80391EFC, &localLeftFootOffset);
#pragma pop
@@ -2351,8 +2323,8 @@ COMPILER_STRIP_GATE(0x80391EFC, &localLeftFootOffset);
/* 80391F08-80391F14 01E568 000C+00 0/1 0/0 0/0 .rodata localRightFootOffset$56543 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const localRightFootOffset[12] = {
- 0xC0, 0x40, 0x00, 0x00, 0xC1, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const localRightFootOffset = {
+ -3.0f, -13.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80391F08, &localRightFootOffset);
#pragma pop
@@ -2360,8 +2332,8 @@ COMPILER_STRIP_GATE(0x80391F08, &localRightFootOffset);
/* 80391F14-80391F20 01E574 000C+00 0/1 0/0 0/0 .rodata localLeftToeOffset$56544 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const localLeftToeOffset[12] = {
- 0x41, 0x20, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const localLeftToeOffset = {
+ 10.0f, 5.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80391F14, &localLeftToeOffset);
#pragma pop
@@ -2369,8 +2341,8 @@ COMPILER_STRIP_GATE(0x80391F14, &localLeftToeOffset);
/* 80391F20-80391F2C 01E580 000C+00 0/1 0/0 0/0 .rodata localRightToeOffset$56545 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const localRightToeOffset[12] = {
- 0x41, 0x20, 0x00, 0x00, 0xC0, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const localRightToeOffset = {
+ 10.0f, -5.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80391F20, &localRightToeOffset);
#pragma pop
@@ -2387,9 +2359,9 @@ void daAlink_c::footBgCheck() {
}
/* 80391F2C-80391F44 01E58C 0018+00 1/1 0/0 0/0 .rodata localHandPos$56752 */
-SECTION_RODATA static u8 const localHandPos[24] = {
- 0x41, 0xB0, 0xC5, 0x60, 0x40, 0xAF, 0xC1, 0x20, 0x00, 0x00, 0x00, 0x00,
- 0xC1, 0xAF, 0x33, 0x80, 0x40, 0xB0, 0xCF, 0xDF, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const localHandPos[] = {
+ {22.096375f, 5.4923248f, 0.0f},
+ {-21.900146f, 5.5253749f, 0.0f},
};
COMPILER_STRIP_GATE(0x80391F2C, &localHandPos);
@@ -2642,6 +2614,45 @@ SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
/* 803AF99C-803AF9A8 00CABC 000A+02 2/2 0/0 0/0 .data l_peepEventName */
SECTION_DATA static const char l_peepEventName[10] = "PEEP_HOLE";
+/* 80425514-80425520 052234 000C+00 32/35 0/0 0/0 .bss l_waitBaseAnime */
+static cXyz l_waitBaseAnime(1.24279f, 102.0005f, 5.0f);
+
+/* 8042552C-80425538 05224C 000C+00 2/3 0/0 0/0 .bss l_ironBallBaseAnime */
+static cXyz l_ironBallBaseAnime(-4.248938f, 89.0f, -5.267045f);
+
+/* 80425544-80425550 052264 000C+00 15/17 0/0 0/0 .bss l_halfAtnWaitBaseAnime */
+static cXyz l_halfAtnWaitBaseAnime(3.5f, 97.0f, -7.0f);
+
+/* 8042555C-80425568 05227C 000C+00 1/2 0/0 0/0 .bss l_rWaitBaseAnime */
+static cXyz l_rWaitBaseAnime(4.313951f, 93.94436f, -5.207283f);
+
+/* 80425574-80425580 052294 000C+00 0/1 0/0 0/0 .bss l_lWaitBaseAnime */
+static cXyz l_lWaitBaseAnime(-4.300988f, 93.95595f, -5.218504f);
+
+/* 8042558C-80425598 0522AC 000C+00 3/5 0/0 0/0 .bss l_horseBaseAnime */
+static cXyz l_horseBaseAnime(-l_waitBaseAnime.x, 225.7f, 1.81f - l_waitBaseAnime.z);
+
+/* 804255A4-804255B0 0522C4 000C+00 3/5 0/0 0/0 .bss l_boarBaseAnime */
+static cXyz l_boarBaseAnime(-l_waitBaseAnime.x, 186.17f, -20.29f - l_waitBaseAnime.z);
+
+/* 804255BC-804255C8 0522DC 000C+00 1/3 0/0 0/0 .bss l_localHorseRidePos */
+static cXyz l_localHorseRidePos(-68.20898f, 41.60992f, 0.883789f);
+
+/* 804255D4-804255E0 0522F4 000C+00 1/3 0/0 0/0 .bss l_localBoarRidePos */
+static cXyz l_localBoarRidePos(0.0f, 15.0f, 0.0f);
+
+/* 804255EC-804255F8 05230C 000C+00 2/3 0/0 0/0 .bss l_canoeBaseAnime */
+static cXyz l_canoeBaseAnime(1.24279f - l_waitBaseAnime.x, 56.0f, -72.0f - l_waitBaseAnime.z);
+
+/* 80425604-80425610 052324 000C+00 0/1 0/0 0/0 .bss l_sumouBaseAnimeSp */
+static cXyz l_sumouBaseAnimeSp(0.0f, 0.0f, 32.0f - l_waitBaseAnime.z);
+
+/* 8042561C-80425628 05233C 000C+00 37/39 0/0 0/0 .bss l_wolfBaseAnime */
+static cXyz l_wolfBaseAnime(1.0f, 88.63934f, -28.49793f);
+
+/* 80425634-80425640 052354 000C+00 2/3 0/0 0/0 .bss l_wolfRopeBaseAnime */
+static cXyz l_wolfRopeBaseAnime(0.115164f, 68.3363f, -7.667817f);
+
daAlink_procInitTable daAlink_c::m_procInitTable[] = {
{ &daAlink_c::procPreActionUnequip, 0x21 },
{ &daAlink_c::procServiceWait, 0x10000085 },
@@ -3156,90 +3167,88 @@ static dCcD_SrcCps l_atCpsSrc = {
};
/* 803B2868-803B2880 00F988 0018+00 1/0 0/0 0/0 .data l_jntColPos0 */
-SECTION_DATA static u8 l_jntColPos0[24] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x42, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_jntColPos0[] = {
+ {0.0f, 0.0f, 0.0f},
+ {44.0f, 0.0f, 0.0f}
};
/* 803B2880-803B288C 00F9A0 000C+00 1/0 0/0 0/0 .data l_jntColPos1 */
-SECTION_DATA static u8 l_jntColPos1[12] = {
- 0x00, 0x00, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_jntColPos1 = {
+ 0.0f, -10.0f, 0.0f
};
/* 803B288C-803B28A4 00F9AC 0018+00 1/0 0/0 0/0 .data l_jntColPos2 */
-SECTION_DATA static u8 l_jntColPos2[24] = {
- 0xC0, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x41, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_jntColPos2[] = {
+ {-5.0f, 0.0f, 0.0f},
+ {28.0f, 0.0f, 0.0f}
};
/* 803B28A4-803B28BC 00F9C4 0018+00 1/0 0/0 0/0 .data l_jntColPos4 */
-SECTION_DATA static u8 l_jntColPos4[24] = {
- 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x41, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_jntColPos4[] = {
+ {-4.0f, 0.0f, 0.0f},
+ {28.0f, 0.0f, 0.0f}
};
/* 803B28BC-803B28C8 00F9DC 000C+00 1/0 0/0 0/0 .data l_jntColPos6 */
-SECTION_DATA static u8 l_jntColPos6[12] = {
- 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
+SECTION_DATA static Vec l_jntColPos6 = { 8.0f, 0.0f, 0.0f };
/* 803B28C8-803B28E0 00F9E8 0018+00 1/0 0/0 0/0 .data l_jntColPos8 */
-SECTION_DATA static u8 l_jntColPos8[24] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x42, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_jntColPos8[] = {
+ {0.0f, 0.0f, 0.0f},
+ {38.0f, 0.0f, 0.0f}
};
/* 803B28E0-803B28F8 00FA00 0018+00 1/0 0/0 0/0 .data l_jntColPos9 */
-SECTION_DATA static u8 l_jntColPos9[24] = {
- 0x00, 0x00, 0x00, 0x00, 0xC0, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x42, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_jntColPos9[] = {
+ {0.0f, -5.0f, 0.0f},
+ {35.0f, 0.0f, 0.0f}
};
/* 803B28F8-803B2910 00FA18 0018+00 1/0 0/0 0/0 .data l_jntColPos10 */
-SECTION_DATA static u8 l_jntColPos10[24] = {
- 0x00, 0x00, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x42, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_jntColPos10[] = {
+ {0.0f, 5.0f, 0.0f},
+ {35.0f, 0.0f, 0.0f}
};
/* 803B2910-803B2928 00FA30 0018+00 1/0 0/0 0/0 .data l_jntColPos11 */
-SECTION_DATA static u8 l_jntColPos11[24] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x42, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_jntColPos11[] = {
+ {0.0f, 0.0f, 0.0f},
+ {48.0f, 2.0f, 0.0f}
};
/* 803B2928-803B2940 00FA48 0018+00 1/0 0/0 0/0 .data l_jntColPos12 */
-SECTION_DATA static u8 l_jntColPos12[24] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x42, 0x40, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_jntColPos12[] = {
+ {0.0f, 0.0f, 0.0f},
+ {48.0f, -2.0f, 0.0f}
};
/* 803B2940-803B2958 00FA60 0018+00 1/0 0/0 0/0 .data l_jntColPos13 */
-SECTION_DATA static u8 l_jntColPos13[24] = {
- 0x00, 0x00, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x41, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_jntColPos13[] = {
+ {0.0f, 5.0f, 0.0f},
+ {22.0f, 0.0f, 0.0f}
};
/* 803B2958-803B2970 00FA78 0018+00 1/0 0/0 0/0 .data l_jntColPos14 */
-SECTION_DATA static u8 l_jntColPos14[24] = {
- 0x00, 0x00, 0x00, 0x00, 0xC0, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x41, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_jntColPos14[] = {
+ {0.0f, -5.0f, 0.0f},
+ {22.0f, 0.0f, 0.0f}
};
/* 803B2970-803B2988 00FA90 0018+00 1/0 0/0 0/0 .data l_jntColPos15 */
-SECTION_DATA static u8 l_jntColPos15[24] = {
- 0xC1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x88, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
+SECTION_DATA static Vec l_jntColPos15[] = {
+ {-15.0f, 0.0f, 17.0f},
+ {0.0f, 0.0f, 1.0f}
};
/* 803B2988-803B29A0 00FAA8 0018+00 1/0 0/0 0/0 .data l_jntColPos16 */
-SECTION_DATA static u8 l_jntColPos16[24] = {
- 0x41, 0x50, 0x00, 0x00, 0x41, 0x50, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_jntColPos16[] = {
+ {13.0f, 13.0f, -8.0f},
+ {0.0f, 1.0f, 0.0f}
};
/* 803B29A0-803B29AC 00FAC0 000C+00 1/0 0/0 0/0 .data l_jntColPos17 */
-SECTION_DATA static u8 l_jntColPos17[12] = {
- 0xC1, 0x70, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, 0xC1, 0xF0, 0x00, 0x00,
+SECTION_DATA static Vec l_jntColPos17 = {
+ -15.0f, -10.0f, -30.0f
};
/* 803B29AC-803B2A84 -00001 00D8+00 1/1 0/0 0/0 .data l_jntColData */
@@ -3249,186 +3258,186 @@ static dJntColData_c l_jntColData[] = {
0,
1,
18.0f,
- (Vec*)l_jntColPos0,
+ l_jntColPos0,
},
{
0,
0,
4,
16.0f,
- (Vec*)l_jntColPos1,
+ &l_jntColPos1,
},
{
1,
0,
7,
7.0f,
- (Vec*)l_jntColPos2,
+ l_jntColPos2,
},
{
1,
0,
12,
7.0f,
- (Vec*)l_jntColPos2,
+ l_jntColPos2,
},
{
1,
0,
8,
6.0f,
- (Vec*)l_jntColPos4,
+ l_jntColPos4,
},
{
1,
0,
13,
6.0f,
- (Vec*)l_jntColPos4,
+ l_jntColPos4,
},
{
0,
0,
9,
6.0f,
- (Vec*)l_jntColPos6,
+ &l_jntColPos6,
},
{
0,
0,
14,
6.0f,
- (Vec*)l_jntColPos6,
+ &l_jntColPos6,
},
{
1,
0,
16,
18.0f,
- (Vec*)l_jntColPos8,
+ l_jntColPos8,
},
{
1,
0,
18,
8.0f,
- (Vec*)l_jntColPos9,
+ l_jntColPos9,
},
{
1,
0,
23,
8.0f,
- (Vec*)l_jntColPos10,
+ l_jntColPos10,
},
{
1,
0,
19,
7.0f,
- (Vec*)l_jntColPos11,
+ l_jntColPos11,
},
{
1,
0,
24,
7.0f,
- (Vec*)l_jntColPos12,
+ l_jntColPos12,
},
{
1,
0,
20,
6.0f,
- (Vec*)l_jntColPos13,
+ l_jntColPos13,
},
{
1,
0,
25,
6.0f,
- (Vec*)l_jntColPos14,
+ l_jntColPos14,
},
{
2,
3,
15,
40.0f,
- (Vec*)l_jntColPos15,
+ l_jntColPos15,
},
{
2,
3,
5,
40.0f,
- (Vec*)l_jntColPos16,
+ l_jntColPos16,
},
{
0,
3,
15,
45.0f,
- (Vec*)l_jntColPos17,
+ &l_jntColPos17,
},
};
/* 803B2A84-803B2A9C 00FBA4 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos0 */
-SECTION_DATA static u8 l_wolfJntColPos0[24] = {
- 0xC1, 0xC8, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x42, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_wolfJntColPos0[] = {
+ {-25.0f, 20.0f, 0.0f},
+ {80.0f, 0.0f, 0.0f}
};
/* 803B2A9C-803B2AA8 00FBBC 000C+00 1/0 0/0 0/0 .data l_wolfJntColPos1 */
-SECTION_DATA static u8 l_wolfJntColPos1[12] = {
- 0x40, 0xA0, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_wolfJntColPos1 = {
+ 5.0f, 3.0f, 0.0f
};
/* 803B2AA8-803B2AC0 00FBC8 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos2 */
-SECTION_DATA static u8 l_wolfJntColPos2[24] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x42, 0x0C, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_wolfJntColPos2[] = {
+ {0.0f, 0.0f, 0.0f},
+ {35.0f, 3.0f, 0.0f}
};
/* 803B2AC0-803B2AD8 00FBE0 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos4 */
-SECTION_DATA static u8 l_wolfJntColPos4[24] = {
- 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x41, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_wolfJntColPos4[] = {
+ {0.0f, 2.0f, 0.0f},
+ {30.0f, 0.0f, 0.0f}
};
/* 803B2AD8-803B2AF0 00FBF8 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos6 */
-SECTION_DATA static u8 l_wolfJntColPos6[24] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x41, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_wolfJntColPos6[] = {
+ {0.0f, 0.0f, 0.0f},
+ {20.0f, 0.0f, 0.0f}
};
/* 803B2AF0-803B2B08 00FC10 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos8 */
-SECTION_DATA static u8 l_wolfJntColPos8[24] = {
- 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x41, 0x40, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_wolfJntColPos8[] = {
+ {0.0f, -2.0f, 0.0f},
+ {12.0f, -2.0f, 0.0f}
};
/* 803B2B08-803B2B20 00FC28 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos10 */
-SECTION_DATA static u8 l_wolfJntColPos10[24] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x42, 0x04, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_wolfJntColPos10[] = {
+ {0.0f, 0.0f, 0.0f},
+ {33.0f, -2.0f, 0.0f}
};
/* 803B2B20-803B2B38 00FC40 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos12 */
-SECTION_DATA static u8 l_wolfJntColPos12[24] = {
- 0xC0, 0xA0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x41, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_wolfJntColPos12[] = {
+ {-5.0f, -2.0f, 0.0f},
+ {15.0f, 0.0f, 0.0f}
};
/* 803B2B38-803B2B50 00FC58 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos14 */
-SECTION_DATA static u8 l_wolfJntColPos14[24] = {
- 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x42, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_wolfJntColPos14[] = {
+ {-4.0f, 0.0f, 0.0f},
+ {33.0f, 0.0f, 0.0f}
};
/* 803B2B50-803B2B68 00FC70 0018+00 1/0 0/0 0/0 .data l_wolfJntColPos16 */
-SECTION_DATA static u8 l_wolfJntColPos16[24] = {
- 0x00, 0x00, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x41, 0x50, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec l_wolfJntColPos16[] = {
+ {0.0f, -3.0f, 0.0f},
+ {13.0f, -3.0f, 0.0f}
};
/* 803B2B68-803B2C40 -00001 00D8+00 1/1 0/0 0/0 .data l_wolfJntColData */
@@ -3438,206 +3447,207 @@ static dJntColData_c l_wolfJntColData[] = {
0,
1,
28.0f,
- (Vec*)l_wolfJntColPos0,
+ l_wolfJntColPos0,
},
{
0,
0,
4,
25.0f,
- (Vec*)l_wolfJntColPos1,
+ &l_wolfJntColPos1,
},
{
1,
0,
16,
10.0f,
- (Vec*)l_wolfJntColPos2,
+ l_wolfJntColPos2,
},
{
1,
0,
21,
10.0f,
- (Vec*)l_wolfJntColPos2,
+ l_wolfJntColPos2,
},
{
1,
0,
17,
6.0f,
- (Vec*)l_wolfJntColPos4,
+ l_wolfJntColPos4,
},
{
1,
0,
22,
6.0f,
- (Vec*)l_wolfJntColPos4,
+ l_wolfJntColPos4,
},
{
1,
0,
18,
4.0f,
- (Vec*)l_wolfJntColPos6,
+ l_wolfJntColPos6,
},
{
1,
0,
23,
4.0f,
- (Vec*)l_wolfJntColPos6,
+ l_wolfJntColPos6,
},
{
1,
0,
19,
4.0f,
- (Vec*)l_wolfJntColPos8,
+ l_wolfJntColPos8,
},
{
1,
0,
24,
4.0f,
- (Vec*)l_wolfJntColPos8,
+ l_wolfJntColPos8,
},
{
1,
0,
28,
11.0f,
- (Vec*)l_wolfJntColPos10,
+ l_wolfJntColPos10,
},
{
1,
0,
33,
11.0f,
- (Vec*)l_wolfJntColPos10,
+ l_wolfJntColPos10,
},
{
1,
0,
29,
7.0f,
- (Vec*)l_wolfJntColPos12,
+ l_wolfJntColPos12,
},
{
1,
0,
34,
7.0f,
- (Vec*)l_wolfJntColPos12,
+ l_wolfJntColPos12,
},
{
1,
0,
30,
5.0f,
- (Vec*)l_wolfJntColPos14,
+ l_wolfJntColPos14,
},
{
1,
0,
35,
5.0f,
- (Vec*)l_wolfJntColPos14,
+ l_wolfJntColPos14,
},
{
1,
0,
31,
6.0f,
- (Vec*)l_wolfJntColPos16,
+ l_wolfJntColPos16,
},
{
1,
0,
36,
5.0f,
- (Vec*)l_wolfJntColPos16,
+ l_wolfJntColPos16,
},
};
/* 803B2C40-803B2C50 00FD60 000D+03 0/1 0/0 0/0 .data defaultPortal$39238 */
#pragma push
#pragma force_active on
-SECTION_DATA static const char defaultPortal[13] = "POTAL_WARPIN";
+SECTION_DATA static char defaultPortal[13] = "POTAL_WARPIN";
#pragma pop
/* 803B2C50-803B2C64 00FD70 0014+00 0/1 0/0 0/0 .data kBridgePortal$39239 */
#pragma push
#pragma force_active on
-SECTION_DATA static const char kBridgePortal[20] = "PORTAL_WARP_KBRIDGE";
+SECTION_DATA static char kBridgePortal[20] = "PORTAL_WARP_KBRIDGE";
#pragma pop
/* 803B2C64-803B2C78 00FD84 0014+00 0/1 0/0 0/0 .data oBridgePortal$39240 */
#pragma push
#pragma force_active on
-SECTION_DATA static const char oBridgePortal[20] = "PORTAL_WARP_OBRIDGE";
+SECTION_DATA static char oBridgePortal[20] = "PORTAL_WARP_OBRIDGE";
#pragma pop
/* 803B2C78-803B2C8C 00FD98 0014+00 0/1 0/0 0/0 .data volcBomPortal$39241 */
#pragma push
#pragma force_active on
-SECTION_DATA static const char volcBomPortal[20] = "PORTAL_WARP_BIGVOLC";
+SECTION_DATA static char volcBomPortal[20] = "PORTAL_WARP_BIGVOLC";
#pragma pop
/* 803B2C8C-803B2CA4 00FDAC 0016+02 0/1 0/0 0/0 .data cannonPortal$39242 */
#pragma push
#pragma force_active on
-SECTION_DATA static const char cannonPortal[22] = "SKY_CANNON_WARP_START";
+SECTION_DATA static char cannonPortal[22] = "SKY_CANNON_WARP_START";
#pragma pop
/* 803B2CEC-803B2D34 00FE0C 0048+00 1/2 0/0 0/0 .data m_fEffParamProc__9daAlink_c */
-SECTION_DATA u8 daAlink_c::m_fEffParamProc[72] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+EffParamProc daAlink_c::m_fEffParamProc[] = {
+ &daAlink_c::setEffectFrontRollParam,
+ &daAlink_c::setEffectSlipParam,
+ &daAlink_c::setEffectSmallLandParam,
+ &daAlink_c::setEffectRunParam,
+ &daAlink_c::setEffectLandParam,
+ &daAlink_c::setEffectSumouParam,
};
/* 803B2D34-803B2D40 00FE54 000C+00 0/1 0/0 0/0 .data leftRotNormal$41087 */
#pragma push
#pragma force_active on
-SECTION_DATA static u8 leftRotNormal[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static s16 leftRotNormal[] = {
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
};
#pragma pop
/* 803B2D40-803B2D58 00FE60 0018+00 0/1 0/0 0/0 .data leftRotLight$41092 */
#pragma push
#pragma force_active on
-SECTION_DATA static u8 leftRotLight[24] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static s16 leftRotLight[] = {
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
};
#pragma pop
/* 803B2D58-803B2D7C 00FE78 0024+00 0/1 0/0 0/0 .data leftRotLarge$41097 */
#pragma push
#pragma force_active on
-SECTION_DATA static u8 leftRotLarge[36] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static s16 leftRotLarge[] = {
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
};
#pragma pop
/* 803B2D7C-803B2D88 00FE9C 000C+00 0/1 0/0 0/0 .data leftRotWater$41102 */
#pragma push
#pragma force_active on
-SECTION_DATA static u8 leftRotWater[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static s16 leftRotWater[] = {
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
};
#pragma pop
/* 803B2D88-803B2D94 00FEA8 000C+00 1/1 0/0 0/0 .data rodTopOffset$61388 */
-SECTION_DATA static u8 rodTopOffset[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static Vec rodTopOffset = {
+ 0.0f, 0.0f, 0.0f
};
/* 803B2D94-803B2DA0 -00001 000C+00 1/1 0/0 0/0 .data bodyBrkName$69118 */
@@ -4060,7 +4070,7 @@ void daAlink_c::playerInit() {
mZ2Link.setKanteraState(0);
mProcID = 0x160;
- m_swordBlur.m_blurTex = (void*)dComIfG_getObjectRes(l_arcName, 0x59); // blur.bti
+ m_swordBlur.m_blurTex = (ResTIMG*)dComIfG_getObjectRes(l_arcName, 0x59); // blur.bti
J3DModelData* modelData = mpSwAModel->getModelData();
m_nSwordBtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, 0x44); // al_swa.btk
@@ -4363,14 +4373,6 @@ int daAlink_c::setStartProcInit() {
return sp10;
}
-/* 80450FCC-80450FD0 0004CC 0004+00 1/1 0/0 0/0 .sbss bgWaitFlg$58404 */
-static s32 bgWaitFlg;
-
-/* 80450FD0-80450FD8 -00001 0008+00 2/2 0/0 0/0 .sbss None */
-/* 80450FD0 0001+00 data_80450FD0 None */
-/* 80450FD1 0007+00 data_80450FD1 None */
-static s8 struct_80450FD0; // init$
-
#pragma push
#pragma force_active on
static u8 data_80450FD1;
@@ -4849,8 +4851,8 @@ void daAlink_c::setWindSpeed() {
/* 80391F44-80391F50 01E5A4 000C+00 0/1 0/0 0/0 .rodata localHeadCenter$59872 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const localHeadCenter[12] = {
- 0x00, 0x00, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const localHeadCenter = {
+ 0.0f, -8.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80391F44, &localHeadCenter);
#pragma pop
@@ -4858,8 +4860,8 @@ COMPILER_STRIP_GATE(0x80391F44, &localHeadCenter);
/* 80391F50-80391F5C 01E5B0 000C+00 0/1 0/0 0/0 .rodata localEye$59873 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const localEye[12] = {
- 0x41, 0x40, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const localEye = {
+ 12.0f, -8.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80391F50, &localEye);
#pragma pop
@@ -4867,8 +4869,8 @@ COMPILER_STRIP_GATE(0x80391F50, &localEye);
/* 80391F5C-80391F68 01E5BC 000C+00 0/1 0/0 0/0 .rodata localHeadTop$59874 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const localHeadTop[12] = {
- 0x00, 0x00, 0x00, 0x00, 0xC1, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const localHeadTop = {
+ 0.0f, -28.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80391F5C, &localHeadTop);
#pragma pop
@@ -4876,8 +4878,8 @@ COMPILER_STRIP_GATE(0x80391F5C, &localHeadTop);
/* 80391F68-80391F74 01E5C8 000C+00 0/1 0/0 0/0 .rodata wlLocalHeadCenter$59875 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const wlLocalHeadCenter[12] = {
- 0x00, 0x00, 0x00, 0x00, 0xC0, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const wlLocalHeadCenter = {
+ 0.0f, -5.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80391F68, &wlLocalHeadCenter);
#pragma pop
@@ -4885,8 +4887,8 @@ COMPILER_STRIP_GATE(0x80391F68, &wlLocalHeadCenter);
/* 80391F74-80391F80 01E5D4 000C+00 0/1 0/0 0/0 .rodata wlLocalEye$59876 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const wlLocalEye[12] = {
- 0x41, 0xF0, 0x00, 0x00, 0xC0, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const wlLocalEye = {
+ 30.0f, -5.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80391F74, &wlLocalEye);
#pragma pop
@@ -4894,8 +4896,8 @@ COMPILER_STRIP_GATE(0x80391F74, &wlLocalEye);
/* 80391F80-80391F8C 01E5E0 000C+00 0/1 0/0 0/0 .rodata wlLocalHeadTop$59877 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const wlLocalHeadTop[12] = {
- 0x00, 0x00, 0x00, 0x00, 0xC1, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const wlLocalHeadTop = {
+ 0.0f, -20.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80391F80, &wlLocalHeadTop);
#pragma pop
@@ -4903,8 +4905,8 @@ COMPILER_STRIP_GATE(0x80391F80, &wlLocalHeadTop);
/* 80391F8C-80391F98 01E5EC 000C+00 0/1 0/0 0/0 .rodata localEyeFromRoot$59878 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const localEyeFromRoot[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x42, 0x5F, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00,
+SECTION_RODATA static Vec const localEyeFromRoot = {
+ 0.0f, 55.75f, 15.0f
};
COMPILER_STRIP_GATE(0x80391F8C, &localEyeFromRoot);
#pragma pop
@@ -4912,8 +4914,8 @@ COMPILER_STRIP_GATE(0x80391F8C, &localEyeFromRoot);
/* 80391F98-80391FA4 01E5F8 000C+00 0/1 0/0 0/0 .rodata boardLocalEyeFromRoot$59879 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const boardLocalEyeFromRoot[12] = {
- 0x41, 0x18, 0x00, 0x00, 0x42, 0x3C, 0x00, 0x00, 0x41, 0xC4, 0x00, 0x00,
+SECTION_RODATA static Vec const boardLocalEyeFromRoot = {
+ 9.5f, 47.0f, 24.5f
};
COMPILER_STRIP_GATE(0x80391F98, &boardLocalEyeFromRoot);
#pragma pop
@@ -4921,8 +4923,8 @@ COMPILER_STRIP_GATE(0x80391F98, &boardLocalEyeFromRoot);
/* 80391FA4-80391FB0 01E604 000C+00 0/1 0/0 0/0 .rodata horseLocalEyeFromRoot$59880 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const horseLocalEyeFromRoot[12] = {
- 0x3F, 0xE0, 0x00, 0x00, 0x42, 0x5C, 0x00, 0x00, 0x41, 0xCC, 0x00, 0x00,
+SECTION_RODATA static Vec const horseLocalEyeFromRoot = {
+ 1.75f, 55.0f, 25.5f
};
COMPILER_STRIP_GATE(0x80391FA4, &horseLocalEyeFromRoot);
#pragma pop
@@ -4930,8 +4932,8 @@ COMPILER_STRIP_GATE(0x80391FA4, &horseLocalEyeFromRoot);
/* 80391FB0-80391FBC 01E610 000C+00 0/1 0/0 0/0 .rodata canoeLocalEyeFromRoot$59881 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const canoeLocalEyeFromRoot[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x42, 0x5C, 0x00, 0x00, 0x41, 0xC8, 0x00, 0x00,
+SECTION_RODATA static Vec const canoeLocalEyeFromRoot = {
+ 0.0f, 55.0f, 25.0f
};
COMPILER_STRIP_GATE(0x80391FB0, &canoeLocalEyeFromRoot);
#pragma pop
@@ -4953,8 +4955,8 @@ int daAlink_c::setRollJump(f32 param_0, f32 param_1, s16 param_2) {
/* 80391FBC-80391FC8 01E61C 000C+00 0/0 0/0 0/0 .rodata wlLocalEyeFromRoot$59882 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const wlLocalEyeFromRoot[12] = {
- 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x42, 0xAB, 0x00, 0x00,
+SECTION_RODATA static Vec const wlLocalEyeFromRoot = {
+ 0.0f, -6.0f, 85.5f
};
COMPILER_STRIP_GATE(0x80391FBC, &wlLocalEyeFromRoot);
#pragma pop
@@ -4962,8 +4964,8 @@ COMPILER_STRIP_GATE(0x80391FBC, &wlLocalEyeFromRoot);
/* 80391FC8-80391FD4 01E628 000C+00 0/1 0/0 0/0 .rodata normalOffset$60101 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const normalOffset[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const normalOffset = {
+ 0.0f, 150.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80391FC8, &normalOffset);
#pragma pop
@@ -4971,8 +4973,8 @@ COMPILER_STRIP_GATE(0x80391FC8, &normalOffset);
/* 80391FD4-80391FE0 01E634 000C+00 0/1 0/0 0/0 .rodata crawlOffset$60141 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const crawlOffset[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00,
+SECTION_RODATA static Vec const crawlOffset = {
+ 0.0f, 40.0f, 30.0f
};
COMPILER_STRIP_GATE(0x80391FD4, &crawlOffset);
#pragma pop
@@ -4980,8 +4982,8 @@ COMPILER_STRIP_GATE(0x80391FD4, &crawlOffset);
/* 80391FE0-80391FEC 01E640 000C+00 0/1 0/0 0/0 .rodata crouchOffset$60142 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const crouchOffset[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x42, 0xBE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const crouchOffset = {
+ 0.0f, 95.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80391FE0, &crouchOffset);
#pragma pop
@@ -4989,102 +4991,12 @@ COMPILER_STRIP_GATE(0x80391FE0, &crouchOffset);
/* 80391FEC-80391FF8 01E64C 000C+00 0/1 0/0 0/0 .rodata swimOffset$60143 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const swimOffset[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x41, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const swimOffset = {
+ 0.0f, 14.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80391FEC, &swimOffset);
#pragma pop
-/* 80425508-80425514 052228 000C+00 4/4 0/0 0/0 .bss @4409 */
-static u8 lit_4409[12];
-
-/* 80425514-80425520 052234 000C+00 32/35 0/0 0/0 .bss l_waitBaseAnime */
-static Vec l_waitBaseAnime;
-
-/* 80425520-8042552C 052240 000C+00 0/1 0/0 0/0 .bss @4410 */
-#pragma push
-#pragma force_active on
-static u8 lit_4410[12];
-#pragma pop
-
-/* 8042552C-80425538 05224C 000C+00 2/3 0/0 0/0 .bss l_ironBallBaseAnime */
-static Vec l_ironBallBaseAnime;
-
-/* 80425538-80425544 052258 000C+00 0/1 0/0 0/0 .bss @4411 */
-#pragma push
-#pragma force_active on
-static u8 lit_4411[12];
-#pragma pop
-
-/* 80425544-80425550 052264 000C+00 15/17 0/0 0/0 .bss l_halfAtnWaitBaseAnime */
-static Vec l_halfAtnWaitBaseAnime;
-
-/* 80425550-8042555C 052270 000C+00 0/1 0/0 0/0 .bss @4412 */
-#pragma push
-#pragma force_active on
-static u8 lit_4412[12];
-#pragma pop
-
-/* 8042555C-80425568 05227C 000C+00 1/2 0/0 0/0 .bss l_rWaitBaseAnime */
-static f32 l_rWaitBaseAnime[3];
-
-/* 80425568-80425574 052288 000C+00 0/1 0/0 0/0 .bss @4413 */
-#pragma push
-#pragma force_active on
-static u8 lit_4413[12];
-#pragma pop
-
-/* 80425574-80425580 052294 000C+00 0/1 0/0 0/0 .bss l_lWaitBaseAnime */
-#pragma push
-#pragma force_active on
-static u8 l_lWaitBaseAnime[12];
-#pragma pop
-
-/* 80425580-8042558C 0522A0 000C+00 0/1 0/0 0/0 .bss @4414 */
-#pragma push
-#pragma force_active on
-static u8 lit_4414[12];
-#pragma pop
-
-/* 8042558C-80425598 0522AC 000C+00 3/5 0/0 0/0 .bss l_horseBaseAnime */
-static Vec l_horseBaseAnime;
-
-/* 80425598-804255A4 0522B8 000C+00 0/1 0/0 0/0 .bss @4415 */
-#pragma push
-#pragma force_active on
-static u8 lit_4415[12];
-#pragma pop
-
-/* 804255A4-804255B0 0522C4 000C+00 3/5 0/0 0/0 .bss l_boarBaseAnime */
-static Vec l_boarBaseAnime;
-
-/* 804255B0-804255BC 0522D0 000C+00 0/1 0/0 0/0 .bss @4416 */
-#pragma push
-#pragma force_active on
-static u8 lit_4416[12];
-#pragma pop
-
-/* 804255BC-804255C8 0522DC 000C+00 1/3 0/0 0/0 .bss l_localHorseRidePos */
-static Vec l_localHorseRidePos;
-
-/* 804255C8-804255D4 0522E8 000C+00 0/1 0/0 0/0 .bss @4417 */
-#pragma push
-#pragma force_active on
-static u8 lit_4417[12];
-#pragma pop
-
-/* 804255D4-804255E0 0522F4 000C+00 1/3 0/0 0/0 .bss l_localBoarRidePos */
-static Vec l_localBoarRidePos;
-
-/* 804255E0-804255EC 052300 000C+00 0/1 0/0 0/0 .bss @4418 */
-#pragma push
-#pragma force_active on
-static u8 lit_4418[12];
-#pragma pop
-
-/* 804255EC-804255F8 05230C 000C+00 2/3 0/0 0/0 .bss l_canoeBaseAnime */
-static Vec l_canoeBaseAnime;
-
/* 800A87F8-800A8CE4 0A3138 04EC+00 2/2 0/0 0/0 .text setAttentionPos__9daAlink_cFv */
void daAlink_c::setAttentionPos() {
// NONMATCHING
@@ -5122,8 +5034,8 @@ int daAlink_c::simpleAnmPlay(J3DAnmBase* i_anm) {
/* 80391FF8-80392004 01E658 000C+00 0/1 0/0 0/0 .rodata swordMoveLocal0$60438 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const swordMoveLocal0[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00,
+SECTION_RODATA static Vec const swordMoveLocal0 = {
+ 0.0f, 0.0f, -1.0f
};
COMPILER_STRIP_GATE(0x80391FF8, &swordMoveLocal0);
#pragma pop
@@ -5131,8 +5043,8 @@ COMPILER_STRIP_GATE(0x80391FF8, &swordMoveLocal0);
/* 80392004-80392010 01E664 000C+00 0/1 0/0 0/0 .rodata swordMoveLocal1$60439 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const swordMoveLocal1[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
+SECTION_RODATA static Vec const swordMoveLocal1 = {
+ 0.0f, 0.0f, 1.0f
};
COMPILER_STRIP_GATE(0x80392004, &swordMoveLocal1);
#pragma pop
@@ -5140,8 +5052,8 @@ COMPILER_STRIP_GATE(0x80392004, &swordMoveLocal1);
/* 80392010-8039201C 01E670 000C+00 0/1 0/0 0/0 .rodata copyRodTop$60447 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const copyRodTop[12] = {
- 0x41, 0xDC, 0x00, 0x00, 0xC0, 0xA0, 0x00, 0x00, 0xC1, 0x48, 0x00, 0x00,
+SECTION_RODATA static Vec const copyRodTop = {
+ 27.5f, -5.0f, -12.5f
};
COMPILER_STRIP_GATE(0x80392010, &copyRodTop);
#pragma pop
@@ -5357,8 +5269,8 @@ void daAlink_c::resetAtCollision(int param_0) {
/* 80392028-80392034 01E688 000C+00 0/1 0/0 0/0 .rodata bottleTopPos$61387 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const bottleTopPos[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const bottleTopPos = {
+ 0.0f, 20.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80392028, &bottleTopPos);
#pragma pop
@@ -5369,8 +5281,8 @@ void daAlink_c::setAtCollision() {
}
/* 80392034-80392040 01E694 000C+00 1/1 0/0 0/0 .rodata localHead$61779 */
-SECTION_RODATA static u8 const localHead[12] = {
- 0x41, 0x70, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA static Vec const localHead = {
+ 15.0f, 5.0f, 0.0f
};
COMPILER_STRIP_GATE(0x80392034, &localHead);
@@ -5628,7 +5540,7 @@ void daAlink_c::setFrameCtrl(daPy_frameCtrl_c* i_ctrl, u8 i_attr, s16 i_start, s
}
/* 80453278-80453280 001878 0008+00 1/1 0/0 0/0 .sdata2 kandelaarAnm$62207 */
-SECTION_SDATA2 static daAlink_BckData kandelaarAnm[2] = {
+static const daAlink_BckData kandelaarAnm[2] = {
{0x026A, 0x0268}, // waits, waitk
{0x0266, 0x0264}, // waiths, waithk
};
@@ -7148,7 +7060,6 @@ void daAlink_c::setNormalSpeedF(f32 i_incSpeed, f32 param_1) {
}
}
-
/* 800B3F2C-800B3FD4 0AE86C 00A8+00 2/2 0/0 0/0 .text getStickAngleDistanceRate__9daAlink_cFv */
f32 daAlink_c::getStickAngleDistanceRate() {
f32 rate;
@@ -7805,7 +7716,6 @@ BOOL daAlink_c::checkSlideAction() {
}
}
-
/* 800B607C-800B69CC 0B09BC 0950+00 2/2 0/0 0/0 .text checkAutoJumpAction__9daAlink_cFv
*/
BOOL daAlink_c::checkAutoJumpAction() {
@@ -8437,7 +8347,6 @@ BOOL daAlink_c::checkUpperItemAction() {
return false;
}
-
/* 800B7B7C-800B7BF8 0B24BC 007C+00 1/1 0/0 0/0 .text orderPeep__9daAlink_cFv */
void daAlink_c::orderPeep() {
mPeepExitID = ((kytag05_class*)field_0x27f4)->getSceneListID();
@@ -8451,7 +8360,7 @@ void daAlink_c::orderPeep() {
}
/* 804532B0-804532B4 0018B0 0004+00 1/1 0/0 0/0 .sdata2 itemTalkType$67468 */
-SECTION_SDATA2 static u16 itemTalkType[2] = {6, 7};
+static const u16 itemTalkType[2] = {6, 7};
/* 800B7BF8-800B7D4C 0B2538 0154+00 13/13 0/0 0/0 .text orderTalk__9daAlink_cFi */
int daAlink_c::orderTalk(int i_checkZTalk) {
@@ -8539,7 +8448,6 @@ int daAlink_c::orderZTalk() {
return 0;
}
-
/* 800B8374-800B8930 0B2CB4 05BC+00 1/1 0/0 0/0 .text checkNormalAction__9daAlink_cFv */
int daAlink_c::checkNormalAction() {
int wall_grab_status = getWallGrabStatus();
@@ -8721,7 +8629,6 @@ int daAlink_c::checkNormalAction() {
return 0;
}
-
u16 daAlink_c::getReadyItem() {
return dComIfGp_getSelectItem(mSelectItemId);
}
@@ -8887,7 +8794,6 @@ BOOL daAlink_c::checkItemAction() {
return false;
}
-
/* 800B9010-800B9018 0B3950 0008+00 1/1 0/0 0/0 .text checkRAction__9daAlink_cFv */
BOOL daAlink_c::checkRAction() {
return false;
@@ -9425,7 +9331,6 @@ int daAlink_c::checkNextAction(int param_0) {
return ret;
}
-
/* 800BA6A0-800BA914 0B4FE0 0274+00 3/3 0/0 0/0 .text commonChangeItem__9daAlink_cFv */
void daAlink_c::commonChangeItem() {
if (mEquipItem == KANTERA && field_0x2fde == 0xFF && (mProcID != PROC_PREACTION_UNEQUIP || mProcVar4.field_0x3010 != 0)) {
@@ -10299,7 +10204,6 @@ int daAlink_c::startRestartRoom(u32 i_mode, int param_1, int i_dmgAmount, int i_
return 0;
}
-
/* 800BE26C-800BE2C0 0B8BAC 0054+00 2/2 0/0 0/0 .text checkCoachGuardGame__9daAlink_cFv
*/
BOOL daAlink_c::checkCoachGuardGame() {
@@ -10442,7 +10346,6 @@ BOOL daAlink_c::checkRestartRoom() {
return false;
}
-
/* 800BE9D4-800BEAF8 0B9314 0124+00 2/2 0/0 0/0 .text getSceneExitMoveAngle__9daAlink_cFv
*/
s16 daAlink_c::getSceneExitMoveAngle() {
@@ -10477,7 +10380,6 @@ s16 daAlink_c::getSceneExitMoveAngle() {
return cM_atan2s(dx, dz);
}
-
/* 800BEAF8-800BF084 0B9438 058C+00 1/1 0/0 0/0 .text checkSceneChange__9daAlink_cFi */
int daAlink_c::checkSceneChange(int exitID) {
BOOL var_r3 = mProcID != PROC_FOG_DEAD && (field_0x3174 == 9 || checkNoResetFlg2(FLG2_UNK_4000));
@@ -10632,7 +10534,6 @@ int daAlink_c::checkSceneChange(int exitID) {
return 0;
}
-
/* 800BF084-800BF0B8 0B99C4 0034+00 1/0 0/0 0/0 .text voiceStart__9daAlink_cFUl */
void daAlink_c::voiceStart(u32 i_seID) {
mZ2Link.startLinkVoice(i_seID, mVoiceReverbIntensity);
@@ -10861,7 +10762,6 @@ BOOL daAlink_c::setItemActor() {
return 0;
}
-
/* 800BFD74-800BFDB0 0BA6B4 003C+00 2/2 0/0 0/0 .text makeItemType__9daAlink_cFv */
void daAlink_c::makeItemType() {
if (!setItemModel()) {
@@ -11173,7 +11073,6 @@ int daAlink_c::changeItemTriggerKeepProc(u8 i_selItemIdx, int i_procType) {
return 1;
}
-
/* 800C0A9C-800C12DC 0BB3DC 0840+00 1/1 0/0 0/0 .text checkNewItemChange__9daAlink_cFUc
*/
/**
@@ -11321,7 +11220,6 @@ int daAlink_c::checkNewItemChange(u8 param_0) {
return ITEM_PROC_NONE;
}
-
/* 800C12DC-800C1704 0BBC1C 0428+00 67/67 0/0 0/0 .text deleteEquipItem__9daAlink_cFii */
void daAlink_c::deleteEquipItem(BOOL i_playSound, BOOL i_deleteKantera) {
if (i_deleteKantera || mProcID == PROC_UNEQUIP) {
@@ -11575,7 +11473,6 @@ void daAlink_c::setLight() {
}
}
-
/* 800C1CEC-800C1DAC 0BC62C 00C0+00 3/3 0/0 0/0 .text setFrontRollCrashShock__9daAlink_cFUc */
void daAlink_c::setFrontRollCrashShock(u8 param_0) {
dComIfGp_getVibration().StartShock(5, 15, cXyz(0.0f, 1.0f, 0.0f));
@@ -11796,7 +11693,7 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) {
field_0x2b98 = 0.0f;
mSpeedModifier = 0.0f;
field_0x2fb3 = 0;
- field_0x2f9e = 6;
+ mEffProc = EFFPROC_NONE;
clearCutTurnEffectID();
if (!checkModeFlg(MODE_SWIMMING)) {
diff --git a/src/d/actor/d_a_alink_demo.inc b/src/d/actor/d_a_alink_demo.inc
index e3b170e219..b004567496 100644
--- a/src/d/actor/d_a_alink_demo.inc
+++ b/src/d/actor/d_a_alink_demo.inc
@@ -18,6 +18,9 @@
#include "d/actor/d_a_horse.h"
#include "d/actor/d_a_midna.h"
#include "d/actor/d_a_e_wb.h"
+#include "d/actor/d_a_npc_zra.h"
+#include "d/actor/d_a_obj_tks.h"
+#include "d/actor/d_a_npc_tkc.h"
/* 80115C20-80115C50 110560 0030+00 72/72 0/0 0/0 .text checkEventRun__9daAlink_cCFv */
BOOL daAlink_c::checkEventRun() const {
@@ -506,10 +509,55 @@ void daAlink_c::setDemoMoveData(u32* param_0, cXyz const* param_1) {
mDemo.setMoveAngle(sp20.atan2sX_Z());
}
-
/* 80117064-801171F4 1119A4 0190+00 1/1 0/0 0/0 .text setNoDrawSwordShield__9daAlink_cFiUs */
void daAlink_c::setNoDrawSwordShield(int param_0, u16 param_1) {
- // NONMATCHING
+ if (param_0 == 5) {
+ if (param_1 == 2) {
+ offNoResetFlg2(FLG2_UNK_2000000);
+ onNoResetFlg3(FLG3_UNK_80000000);
+ } else if (param_1 == 1) {
+ onNoResetFlg2(FLG2_UNK_2000000);
+ offNoResetFlg3(FLG3_UNK_80000000);
+ } else {
+ offNoResetFlg2(FLG2_UNK_2000000);
+ offNoResetFlg3(FLG3_UNK_80000000);
+ }
+ } else if (param_0 == 6) {
+ if (param_1 != 0) {
+ onNoResetFlg2(FLG2_UNK_4000000);
+ } else {
+ offNoResetFlg2(FLG2_UNK_4000000);
+ }
+ } else if (param_0 == 3) {
+ if (param_1 == 1) {
+ onEndResetFlg0(ERFLG0_UNK_800000);
+ } else if (param_1 == 2) {
+ onEndResetFlg1(ERFLG1_UNK_80000);
+ } else if (param_1 == 3) {
+ onEndResetFlg1(ERFLG1_UNK_400000);
+ }
+ } else {
+ if (param_0 == 7) {
+ if (param_1 == 1) {
+ onNoResetFlg0(FLG0_PLAYER_NO_DRAW);
+ } else {
+ offNoResetFlg0(FLG0_PLAYER_NO_DRAW);
+ }
+ } else if (param_0 == 8) {
+ if (param_1 == 1) {
+ onNoResetFlg3(FLG3_UNK_1000000);
+ } else {
+ offNoResetFlg3(FLG3_UNK_1000000);
+
+ }
+ } else if (param_0 == 9) {
+ if (param_1 == 1) {
+ onNoResetFlg2(FLG2_PLAYER_SHADOW);
+ } else {
+ offNoResetFlg2(FLG2_PLAYER_SHADOW);
+ }
+ }
+ }
}
/* 801171F4-80117B90 111B34 099C+00 1/1 0/0 0/0 .text setDemoData__9daAlink_cFv */
@@ -828,7 +876,6 @@ void daAlink_c::resetSpecialEvent() {
}
/* 80117CF8-801180EC 112638 03F4+00 4/4 0/0 0/0 .text endDemoMode__9daAlink_cFv */
-// NONMATCHING - one wrong branch
void daAlink_c::endDemoMode() {
BOOL temp_r30 = checkFlyAtnWait();
endHighModel();
@@ -896,16 +943,12 @@ void daAlink_c::endDemoMode() {
commonCheckNextAction(0);
} else if (mProcID == PROC_HAWK_CATCH || mProcID == PROC_HAWK_SUBJECT) {
procHawkSubjectInit();
- } else if (mProcID != PROC_GRASS_WHISTLE_WAIT) {
- if (mDemo.getDemoMode() == 0x2D && mProcID == PROC_WARP) {
- return;
- }
-
- if (mProcID == PROC_TALK && dComIfGp_checkPlayerStatus0(0, 0x8000000)) {
- procWolfLieMoveInit(0);
- } else {
- checkWaitAction();
- }
+ } else if (mProcID == PROC_GRASS_WHISTLE_WAIT || (mDemo.getDemoMode() != 0x2D && mProcID == PROC_WARP)) {
+ return;
+ } else if (mProcID == PROC_TALK && dComIfGp_checkPlayerStatus0(0, 0x8000000)) {
+ procWolfLieMoveInit(0);
+ } else {
+ checkWaitAction();
}
} else if (mProcID == PROC_CAUGHT) {
if (checkModeFlg(0x40000)) {
@@ -1219,15 +1262,46 @@ void daAlink_c::setDeadRideSyncPos() {
/* 80118C98-80118D7C 1135D8 00E4+00 5/5 0/0 0/0 .text checkDeadHP__9daAlink_cFv */
BOOL daAlink_c::checkDeadHP() {
- return ((dComIfGs_getLife() == 0 && !checkResetFlg0(RFLG0_UNK_400)) &&
- !dComIfGs_checkBottle(FAIRY)) ||
+ return ((dComIfGs_getLife() == 0 && !checkResetFlg0(RFLG0_UNK_400)) && !dComIfGs_checkBottle(FAIRY)) ||
checkNoResetFlg2(FLG2_FORCE_GAMEOVER) ||
(dComIfGp_getOxygenShowFlag() && dComIfGp_getNowOxygen() == 0);
}
/* 80118D7C-80118FF8 1136BC 027C+00 3/3 0/0 0/0 .text checkDeadAction__9daAlink_cFi */
BOOL daAlink_c::checkDeadAction(int param_0) {
- // NONMATCHING
+ if (!checkEventRun()) {
+ if (checkDeadHP() && mProcID != PROC_HORSE_RIDE && mProcID != PROC_HORSE_GETOFF && mProcID != PROC_LARGE_DAMAGE && mProcID != PROC_LARGE_DAMAGE_WALL && (param_0 || (mProcID != PROC_LARGE_DAMAGE_UP && mProcID != PROC_WOLF_LARGE_DAMAGE_UP))) {
+ if (mLinkAcch.i_ChkGroundHit() || checkModeFlg(0x40000) || checkBoarRide() || (checkHorseRide() && !dComIfGp_getHorseActor()->checkJump())) {
+ return procCoDeadInit(1);
+ }
+
+ if (!checkHorseRide()) {
+ if (checkMagneBootsOn() && !cancelMagneBootsOn()) {
+ return procCoDeadInit(1);
+ }
+
+ offCargoCarry();
+
+ int var_r29;
+ if (dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd) && -1000000000.0f != mLinkAcch.GetGroundH()) {
+ var_r29 = dComIfG_Bgsp().GetExitId(mLinkAcch.m_gnd);
+ } else {
+ var_r29 = 0x3F;
+ }
+
+ if (((var_r29 != 0x3F || mExitID != 0x3F) && field_0x3174 == 5 && field_0x33c8 - current.pos.y > 500.0f) || ((mExitID & 0x8000) && checkModeFlg(2))) {
+ onNoResetFlg2(FLG2_FORCE_GAMEOVER);
+ return procCoDeadInit(0);
+ }
+
+ return commonFallInit(1);
+ }
+ } else if (dComIfGs_getLife() == 0 && !checkResetFlg0(RFLG0_UNK_400) && dComIfGs_checkBottle(FAIRY)) {
+ makeFairy(&current.pos, 0);
+ dComIfGs_setBottleItemIn(FAIRY, EMPTY_BOTTLE);
+ }
+ }
+
return 0;
}
@@ -1255,7 +1329,7 @@ void daAlink_c::setHighModelFaceBtk(u16 i_anmID) {
J3DAnmTextureSRTKey* btk = (J3DAnmTextureSRTKey*)dComIfG_getObjectIDRes(
dStage_roomControl_c::getDemoArcName(), i_anmID);
- if (btk != NULL && field_0x068c != btk) {
+ if (btk && field_0x068c != btk) {
btk->searchUpdateMaterialID(mpDemoFCTongueModel->getModelData());
mpDemoFCTongueModel->getModelData()->entryTexMtxAnimator(btk);
@@ -1351,16 +1425,18 @@ f32 daAlink_c::setStickAnmData(J3DAnmBase* i_anm, int param_1, int param_2, u16
return var_f31;
}
-
-/* ############################################################################################## */
-/* 804256B8-804256CC 0523D8 0014+00 1/1 0/0 0/0 .bss dummy$36763 */
-static u8 dummy[20];
-
/* 80119464-801195C0 113DA4 015C+00 1/1 0/0 0/0 .text
* daAlink_c_getDemoIDData__FP13dDemo_actor_cPiPiPiPUsPiPi */
static int daAlink_c_getDemoIDData(dDemo_actor_c* param_0, int* param_1, int* param_2,
int* param_3, u16* param_4, int* param_5, int* param_6) {
// NONMATCHING
+ static u8 dummy[20];
+
+ /* JStudio::stb::TParseData_fixed<51> sp50((void*)param_0->getPrm()->getData());
+
+ static JStudio::stb::TParseData_fixed<51> dummy;
+ static JGadget::binary::TValueIterator_raw<u32> it(sp50); */
+
return 0;
}
@@ -3375,8 +3451,30 @@ int daAlink_c::procZoraMoveInit() {
/* 8011DB9C-8011DDD4 1184DC 0238+00 1/0 0/0 0/0 .text procZoraMove__9daAlink_cFv */
int daAlink_c::procZoraMove() {
- // NONMATCHING
- return 0;
+ dComIfGp_evmng_cutEnd(field_0x3184);
+ fopAc_ac_c* temp_r29 = dComIfGp_event_getPt1();
+ field_0x2f99 = 0x60;
+
+ if (temp_r29 != NULL) {
+ cXyz sp14;
+ cXyz sp8;
+
+ mDoMtx_stack_c::copy(((daNpc_zrA_c*)temp_r29)->getHeadMtx());
+ mDoMtx_stack_c::YrotM(-0x4000);
+ mDoMtx_stack_c::transM(0.0f, 30.0f, -90.0f);
+ mDoMtx_stack_c::multVecZero(&current.pos);
+ mDoMtx_stack_c::multVecSR(&cXyz::BaseZ, &sp14);
+ mDoMtx_stack_c::multVecSR(&cXyz::BaseZ, &sp8);
+ shape_angle.y = temp_r29->shape_angle.y;
+
+ if (sp8.y < 0.0f) {
+ shape_angle.x = cM_atan2s(-sp14.y, -sp14.absXZ());
+ } else {
+ shape_angle.x = sp14.atan2sY_XZ();
+ }
+ }
+
+ return 1;
}
/* 8011DDD4-8011DED8 118714 0104+00 1/0 0/0 0/0 .text procLookAroundTurnInit__9daAlink_cFv */
@@ -3403,7 +3501,6 @@ int daAlink_c::procLookAroundTurnInit() {
return 1;
}
-
/* 8011DED8-8011DF68 118818 0090+00 1/0 0/0 0/0 .text procLookAroundTurn__9daAlink_cFv */
int daAlink_c::procLookAroundTurn() {
daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl;
@@ -3859,8 +3956,26 @@ int daAlink_c::procDungeonWarpReadyInit() {
/* 8011EFB8-8011F084 1198F8 00CC+00 1/0 0/0 0/0 .text procDungeonWarpReady__9daAlink_cFv
*/
int daAlink_c::procDungeonWarpReady() {
- // NONMATCHING
- return 0;
+ if (mProcVar2.field_0x300c != 0) {
+ fopAc_ac_c* temp_r3 = fopAcM_SearchByID(field_0x32cc);
+ if (temp_r3 != NULL) {
+ field_0x280c.setData(temp_r3);
+
+ if (fopAcM_GetName(temp_r3) == PROC_OBJ_TKS) {
+ ((daObjTks_c*)temp_r3)->setStart();
+ } else {
+ ((daNpcTkc_c*)temp_r3)->setStart();
+ }
+ }
+ } else if (checkAnmEnd(&mUnderFrameCtrl[0])) {
+ setSingleAnimeBase(ANM_TRADE_ITEM_WAIT);
+ onModeFlg(0x100);
+ mProcVar2.field_0x300c = 1;
+ } else {
+ setTradeItemOutHand();
+ }
+
+ return 1;
}
/* 8011F084-8011F0F4 1199C4 0070+00 1/0 0/0 0/0 .text procDungeonWarpInit__9daAlink_cFv
diff --git a/src/d/actor/d_a_alink_effect.inc b/src/d/actor/d_a_alink_effect.inc
index 5c000c55b8..0b4b4b5337 100644
--- a/src/d/actor/d_a_alink_effect.inc
+++ b/src/d/actor/d_a_alink_effect.inc
@@ -3,28 +3,29 @@
* Player Particle Effect handling
*/
+#include "JSystem/J2DGraph/J2DAnimation.h"
+#include "JSystem/J2DGraph/J2DScreen.h"
#include "d/actor/d_a_alink.h"
#include "d/d_com_inf_game.h"
#include "d/d_k_wmark.h"
-#include "JSystem/J2DGraph/J2DAnimation.h"
-#include "JSystem/J2DGraph/J2DScreen.h"
+
/* 80120580-80120634 11AEC0 00B4+00 21/21 0/0 0/0 .text
* setEmitter__9daAlink_cFPUlUsPC4cXyzPC5csXyz */
-JPABaseEmitter* daAlink_c::setEmitter(u32* param_0, u16 param_1, cXyz const* param_2, csXyz const* param_3) {
- *param_0 = dComIfGp_particle_set(*param_0, param_1, param_2, &tevStr, param_3, NULL, 0xFF,
- NULL, 0xFF, NULL, NULL, NULL);
+JPABaseEmitter* daAlink_c::setEmitter(u32* param_0, u16 param_1, cXyz const* param_2,
+ csXyz const* param_3) {
+ *param_0 = dComIfGp_particle_set(*param_0, param_1, param_2, &tevStr, param_3, NULL, 0xFF, NULL,
+ 0xFF, NULL, NULL, NULL);
dComIfGp_particle_levelEmitterOnEventMove(*param_0);
return dComIfGp_particle_getEmitter(*param_0);
}
-
/* 80120634-801206C4 11AF74 0090+00 4/4 0/0 0/0 .text
* setEmitterPolyColor__9daAlink_cFPUlUsR13cBgS_PolyInfoPC4cXyzPC5csXyz */
JPABaseEmitter* daAlink_c::setEmitterPolyColor(u32* param_0, u16 param_1, cBgS_PolyInfo& param_2,
cXyz const* param_3, csXyz const* param_4) {
- *param_0 = dComIfGp_particle_setPolyColor(*param_0, param_1, param_2, param_3, &tevStr,
- param_4, NULL, 0, NULL, -1, NULL);
+ *param_0 = dComIfGp_particle_setPolyColor(*param_0, param_1, param_2, param_3, &tevStr, param_4,
+ NULL, 0, NULL, -1, NULL);
dComIfGp_particle_levelEmitterOnEventMove(*param_0);
return dComIfGp_particle_getEmitter(*param_0);
@@ -34,8 +35,8 @@ JPABaseEmitter* daAlink_c::setEmitterPolyColor(u32* param_0, u16 param_1, cBgS_P
* setEmitterColor__9daAlink_cFPUlUsPC4cXyzPC5csXyz */
JPABaseEmitter* daAlink_c::setEmitterColor(u32* param_0, u16 param_1, cXyz const* param_2,
csXyz const* param_3) {
- *param_0 = dComIfGp_particle_setColor(*param_0, param_1, param_2, &tevStr, NULL, NULL,
- 0.0f, -1, param_3, NULL, NULL, -1, NULL);
+ *param_0 = dComIfGp_particle_setColor(*param_0, param_1, param_2, &tevStr, NULL, NULL, 0.0f, -1,
+ param_3, NULL, NULL, -1, NULL);
dComIfGp_particle_levelEmitterOnEventMove(*param_0);
return dComIfGp_particle_getEmitter(*param_0);
@@ -67,20 +68,170 @@ void daAlink_c::setEffectFrontRollParam() {
}
}
-
/* 80120880-80120B00 11B1C0 0280+00 1/0 0/0 0/0 .text setEffectSlipParam__9daAlink_cFv */
void daAlink_c::setEffectSlipParam() {
- // NONMATCHING
+ JGeometry::TVec3<f32> sp30;
+
+ int k, j, i;
+ for (i = 0; i < 5; i++) {
+ for (j = 0; j < 2; j++) {
+ u8 type = field_0x2e54.getTypeFour(i, j);
+
+ if (type == 0) {
+ JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0);
+ if (emitter != NULL) {
+ if (checkWolf()) {
+ emitter->setRate(0.5f);
+ }
+
+ emitter->setAwayFromCenterSpeed(0.0f);
+ emitter->setRandomDirectionSpeed(0.0f);
+ emitter->setSpread(0.1f);
+ emitter->setGlobalParticleScale(smokeParticleScale_39643);
+ }
+ } else if (type == 1) {
+ JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0);
+ if (emitter != NULL) {
+ emitter->setRate(0.5f);
+ emitter->setDirectionalSpeed(12.0f);
+ }
+ } else if (type == 16) {
+ for (k = 0; k < 4; k++) {
+ JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, k);
+ if (emitter == NULL) {
+ break;
+ }
+
+ if (checkWolf()) {
+ emitter->setGlobalScale(wolfWaterCenterScale);
+ } else {
+ emitter->getGlobalTranslation(&sp30);
+ sp30.x += cM_ssin(current.angle.y) * 35.0f;
+ sp30.z += cM_scos(current.angle.y) * 35.0f;
+
+ emitter->setGlobalTranslation(sp30);
+ }
+ }
+ } else if (type == 3) {
+ JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0);
+ if (emitter != NULL) {
+ emitter->setRate(1.0f);
+ }
+ } else if (type == 4) {
+ for (k = 0; k < 4; k++) {
+ JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, k);
+ if (emitter != NULL) {
+ emitter->setRate(2.0f);
+ }
+ }
+ }
+ }
+ }
}
/* 80120B00-80120DB0 11B440 02B0+00 1/0 0/0 0/0 .text setEffectRunParam__9daAlink_cFv */
void daAlink_c::setEffectRunParam() {
- // NONMATCHING
+ int k, j, i;
+ for (i = 0; i < 5; i++) {
+ for (j = 0; j < 2; j++) {
+ u8 type = field_0x2e54.getTypeFour(i, j);
+
+ if (type == 0) {
+ JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0);
+ if (emitter != NULL) {
+ emitter->setRate(3.0f);
+ }
+ } else if (type == 1) {
+ JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0);
+ if (emitter != NULL) {
+ emitter->setRate(4.0f);
+ }
+ } else if (type == 2) {
+ for (k = 0; k < 4; k++) {
+ JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, k);
+ if (emitter == NULL) {
+ break;
+ }
+
+ emitter->setGlobalScale(waterScale_39762);
+ }
+ } else if (type == 5) {
+ JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0);
+ if (emitter != NULL) {
+ emitter->setRate(10.0f);
+ emitter->setAwayFromAxisSpeed(1.0f);
+ emitter->setGlobalScale(waterSmokeScale);
+ }
+ } else if (type == 16) {
+ for (k = 0; k < 4; k++) {
+ JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, k);
+ if (emitter == NULL) {
+ break;
+ }
+
+ emitter->setGlobalScale(waterCenterScale);
+ }
+ } else if (type == 3) {
+ JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0);
+ if (emitter != NULL) {
+ if (checkWolf()) {
+ emitter->setRate(2.0f);
+ emitter->setDirectionalSpeed(8.0f);
+ emitter->setSpread(0.1f);
+ } else {
+ emitter->setRate(5.0f);
+ }
+ }
+ }
+ }
+ }
}
/* 80120DB0-80121000 11B6F0 0250+00 1/0 0/0 0/0 .text setEffectSmallLandParam__9daAlink_cFv */
void daAlink_c::setEffectSmallLandParam() {
- // NONMATCHING
+ int k, j, i;
+ for (i = 0; i < 5; i++) {
+ for (j = 0; j < 2; j++) {
+ u8 type = field_0x2e54.getTypeFour(i, j);
+
+ if (type == 0) {
+ JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0);
+ if (emitter != NULL) {
+ if (checkWolf()) {
+ emitter->setGlobalScale(wolfSmokeScale);
+ } else {
+ emitter->setRate(15.0f);
+ emitter->setVolumeSize(25);
+ emitter->setDirectionalSpeed(0.0f);
+ emitter->setGlobalParticleScale(smokeParticleScale_39891);
+ }
+ }
+ } else if (type == 1) {
+ JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0);
+ if (emitter != NULL) {
+ if (checkWolf()) {
+ emitter->setGlobalScale(wolfSmokeScale);
+ } else {
+ emitter->setRate(8.0f);
+ emitter->setVolumeSize(25);
+ emitter->setDirectionalSpeed(0.0f);
+ emitter->setAwayFromAxisSpeed(8.0f);
+ }
+ }
+ } else if (type == 2) {
+ if (checkWolf()) {
+ for (k = 0; k < 4; k++) {
+ JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, k);
+ if (emitter == NULL) {
+ break;
+ }
+
+ emitter->setGlobalScale(waterScale_39892);
+ }
+ }
+ }
+ }
+ }
}
/* 80121000-80121004 11B940 0004+00 1/0 0/0 0/0 .text setEffectLandParam__9daAlink_cFv */
@@ -89,7 +240,37 @@ void daAlink_c::setEffectLandParam() {}
/* 80121004-801211C0 11B944 01BC+00 1/0 0/0 0/0 .text setEffectSumouParam__9daAlink_cFv
*/
void daAlink_c::setEffectSumouParam() {
- // NONMATCHING
+ int j, i;
+ for (i = 0; i < 5; i++) {
+ for (j = 0; j < 2; j++) {
+ u8 type = field_0x2e54.getTypeFour(i, j);
+
+ if (type == 0) {
+ JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0);
+ if (emitter != NULL) {
+ if (mProcID == PROC_SUMOU_SHIKO) {
+ emitter->setGlobalScale(shikoScale);
+ } else if (mProcID == PROC_SUMOU_WIN_LOSE) {
+ emitter->setGlobalScale(loseScale);
+ } else if ((mProcID == PROC_SUMOU_SIDE_MOVE || mProcID == PROC_SUMOU_ACTION) &&
+ (field_0x3198 == 0x143 || field_0x3198 == 0x142))
+ {
+ GXColor sp3C;
+ GXColor sp40;
+ u8 sp48;
+ f32 sp44;
+ dPa_control_c::getPolyColor(mLinkAcch.m_gnd, j, &sp3C, &sp40, &sp48, &sp44);
+
+ if (sp48 == emitter->getGlobalAlpha()) {
+ emitter->setGlobalAlpha(sp48 >> 1);
+ }
+ } else {
+ emitter->setGlobalScale(pushedSlip);
+ }
+ }
+ }
+ }
+ }
}
/* 801211C0-80121214 11BB00 0054+00 46/46 0/0 0/0 .text setFootEffectProcType__9daAlink_cFi */
@@ -98,13 +279,23 @@ void daAlink_c::setFootEffectProcType(int param_0) {
field_0x2e54.clearFourAllID();
}
- field_0x2f9e = param_0;
- field_0x2f9f = field_0x2f9e;
+ mEffProc = param_0;
+ field_0x2f9f = mEffProc;
}
/* 80121214-80121304 11BB54 00F0+00 1/1 0/0 0/0 .text setWolfFootOn__9daAlink_cFi */
void daAlink_c::setWolfFootOn(int param_0) {
- // NONMATCHING
+ daPy_frameCtrl_c* temp_r31 = &mUnderFrameCtrl[1];
+
+ if (temp_r31->checkPass(l_wolfFootOnFrame[param_0][0])) {
+ onResetFlg1(RFLG1_UNK_4);
+ } else if (temp_r31->checkPass(l_wolfFootOnFrame[param_0][1])) {
+ onResetFlg1(RFLG1_UNK_8);
+ } else if (temp_r31->checkPass(l_wolfFootOnFrame[param_0][2])) {
+ onResetFlg1(RFLG1_UNK_10);
+ } else if (temp_r31->checkPass(l_wolfFootOnFrame[param_0][3])) {
+ onResetFlg1(RFLG1_UNK_20);
+ }
}
/* 80121304-80121388 11BC44 0084+00 1/1 0/0 0/0 .text setFootMark__9daAlink_cFP4cXyzUsi
@@ -117,12 +308,412 @@ void daAlink_c::setFootMark(cXyz* i_pos, u16 i_mtxNo, int param_2) {
/* 80121388-801221F0 11BCC8 0E68+00 1/1 0/0 0/0 .text setEffect__9daAlink_cFv */
void daAlink_c::setEffect() {
- // NONMATCHING
+ if (mProcID == PROC_CUT_TURN || mProcID == PROC_BOARD_CUT_TURN) {
+ setCutTurnEffect();
+ } else if (mProcID == PROC_HORSE_CUT_TURN) {
+ setHorseCutTurnEffect();
+ } else if (mProcID == PROC_WOLF_ROLL_ATTACK) {
+ setWolfRollAttackEffect();
+ } else if (mProcID == PROC_ELEC_DAMAGE) {
+ setElecDamageEffect();
+ }
+
+ if (checkMagneBootsOn() || (checkEquipHeavyBoots() && mLinkAcch.i_ChkGroundHit() &&
+ dComIfG_Bgsp().GetMagnetCode(mLinkAcch.m_gnd) == 2))
+ {
+ if (!checkMagneBootsOn() && !checkNoResetFlg3(FLG3_UNK_1)) {
+ mZ2Link.setMagnetized(true);
+ onNoResetFlg3(FLG3_UNK_1);
+ }
+ setMagneBootsEffect();
+ } else if (checkNoResetFlg3(FLG3_UNK_1)) {
+ offNoResetFlg3(FLG3_UNK_1);
+ mZ2Link.setMagnetized(false);
+ }
+
+ if (getSumouMode() != 0) {
+ setSumouEffect();
+ } else {
+ setWaterfallEffect();
+ }
+
+ setSwordChargeEffect();
+
+ if (checkWolf()) {
+ setWolfLockAttackEffect();
+ setWolfJumpAttackEffect();
+ } else {
+ setBootsLightEffect();
+ }
+
+ setLightningSwordEffect();
+
+ if (mLinkAcch.ChkWallHit()) {
+ cXyz spD0;
+ cXyz spC4;
+
+ dBgS_AcchCir* acchcir = mAcchCir;
+ for (int i = 0; i < 3; i++) {
+ if (acchcir->ChkWallHit() && checkWolfBarrierWallHit(*acchcir)) {
+ spD0.set(current.pos.x, current.pos.y + acchcir->GetWallH(), current.pos.z);
+ spC4.set(spD0.x - (acchcir->GetWallR() + 5.0f) * cM_ssin(acchcir->GetWallAngleY()),
+ spD0.y,
+ spD0.z - (acchcir->GetWallR() + 5.0f) * cM_scos(acchcir->GetWallAngleY()));
+
+ if (commonLineCheck(&spD0, &spC4) && checkWolfBarrierWallHit(mLinkLinChk)) {
+ setWolfBarrierHitEffect(mLinkLinChk);
+ break;
+ }
+ }
+
+ acchcir++;
+ }
+ }
+
+ setWaterDropEffect();
+ setSwordUpColorEffect();
+ setSwordCutSplash();
+ setWoodShieldBurnEffect();
+ setFreezeEffect();
+
+ if (mProcID == PROC_METAMORPHOSE) {
+ setMetamorphoseEffect();
+ } else {
+ setRunSplash();
+ }
+
+ setBottleEffect();
+
+ if (checkEndResetFlg0(ERFLG0_UNK_20000000) || 0.0f != field_0x346c) {
+ if (checkEndResetFlg0(ERFLG0_UNK_20000000) && field_0x346c < 0.0f) {
+ field_0x346c *= -1.0f;
+ }
+
+ field_0x346c += 0.0625f;
+
+ if (field_0x346c > 1.0f) {
+ if (checkNoResetFlg3(FLG3_UNK_200000) &&
+ dComIfGp_getNeedLightDropNum() ==
+ dComIfGs_getLightDropNum(dComIfGp_getStartStageDarkArea()))
+ {
+ field_0x346c = 1.0f;
+
+ if (checkEventRun()) {
+ changeOriginalDemo();
+ changeDemoMode(0x5E, 0, 0, 0);
+ }
+ } else {
+ field_0x346c = -1.0f;
+ }
+ }
+ }
+
+ cXyz spB8(current.pos);
+ cXyz spAC(current.pos);
+ cXyz spA0;
+
+ if (checkModeFlg(0x40000)) {
+ if (checkWolf()) {
+ spB8.x += 40.0f * cM_ssin(current.angle.y);
+ spB8.z += 40.0f * cM_scos(current.angle.y);
+ spAC.y -= daAlinkHIO_wlSwim_c0::m.field_0x48;
+ } else {
+ spAC.y -= daAlinkHIO_swim_c0::m.mInitHeight;
+ }
+
+ spB8.y = mWaterY;
+ if (checkNoResetFlg0(FLG0_SWIM_UP) && mNormalSpeed > 8.0f) {
+ setEmitterPolyColor(&field_0x31c0, 0x1BC, mLinkAcch.m_wtr, &spB8, &current.angle);
+ }
+ spB8.y = spAC.y;
+ } else if (checkModeFlg(0x10000) && mProcVar4.field_0x3010 != 0 &&
+ 0.0f != mUnderFrameCtrl[0].getRate() && dComIfG_Bgsp().ChkPolySafe(mPolyInfo1) &&
+ (dKy_pol_efftype_get(&mPolyInfo1) == 1 || dKy_pol_efftype_get(&mPolyInfo1) == 1))
+ {
+ int sp44;
+ if (dKy_pol_efftype_get(&mPolyInfo1) == 1) {
+ sp44 = 0;
+ } else {
+ sp44 = 1;
+ }
+
+ field_0x31c0 =
+ dComIfGp_particle_setPolyColor(field_0x31c0, 0x333, mPolyInfo1, &current.pos, &tevStr,
+ &shape_angle, NULL, sp44, NULL, -1, NULL);
+ dComIfGp_particle_levelEmitterOnEventMove(field_0x31c0);
+ }
+
+ if (mProcID == PROC_DEAD && (field_0x2f9d & 4)) {
+ mDoMtx_multVecZero(mpLinkModel->getAnmMtx(mProcVar4.field_0x3010), &spAC);
+ mLinkGndChk.SetPos(&spAC);
+
+ f32 temp_f1 = dComIfG_Bgsp().GroundCross(&mLinkGndChk);
+ if (fabsf(current.pos.y - temp_f1) < 50.0f) {
+ spAC.y = temp_f1;
+ }
+ }
+
+ if (!checkWolf()) {
+ mDoMtx_multVecZero(mpLinkModel->getAnmMtx(field_0x30b4), &spA0);
+
+ if (spA0.y < (mWaterY - 50.0f)) {
+ JPABaseEmitter* sp40 =
+ setEmitterPolyColor(&field_0x31bc, 0x1E8, mLinkAcch.m_wtr, &spA0, &shape_angle);
+ if (sp40 != NULL) {
+ sp40->setParticleCallBackPtr(dPa_control_c::getWaterBubblePcallBack());
+ }
+ }
+
+ if (dComIfGp_checkPlayerStatus0(0, 8)) {
+ spB8.x -= 30.0f * cM_ssin(shape_angle.y);
+ spB8.z -= 30.0f * cM_scos(shape_angle.y);
+ spAC.y = mLeftFootPos.y;
+ spB8.y = spAC.y;
+ } else if (dComIfGp_checkPlayerStatus1(0, 0x02000000)) {
+ spB8.x += 60.0f * cM_ssin(shape_angle.y);
+ spB8.z += 60.0f * cM_scos(shape_angle.y);
+
+ if (mRightFootPos.y < mLeftFootPos.y) {
+ spAC.y = mRightFootPos.y;
+ } else {
+ spAC.y = mLeftFootPos.y;
+ }
+
+ spB8.y = spAC.y;
+ } else if (dComIfGp_checkPlayerStatus1(0, 0x10000)) {
+ spAC.y = mLeftFootPos.y;
+ spB8.y = spAC.y;
+ }
+ }
+
+ u32 var_r28 = 0;
+ u32 var_r29 = 0;
+
+ cXyz sp94(mRightFootPos);
+ cXyz sp88(mLeftFootPos);
+ cXyz sp7C(mRightHandPos);
+ cXyz sp70(mLeftHandPos);
+ cXyz sp64(spAC);
+
+ if (mEffProc == EFFPROC_SUMOU) {
+ if (mProcID == PROC_SUMOU_SHIKO || mProcID == PROC_SUMOU_WIN_LOSE) {
+ var_r28 = 1;
+ sp88.y = current.pos.y;
+ }
+ } else if (mEffProc == EFFPROC_LAND) {
+ var_r28 |= 0x3B;
+ } else if (mEffProc == EFFPROC_FRONT_ROLL) {
+ if (mProcID == PROC_SLIDE) {
+ var_r29 |= 4;
+ }
+
+ var_r28 |= 4;
+ var_r29 |= 0x10000;
+ } else if (mEffProc == EFFPROC_SLIP) {
+ if (checkWolf()) {
+ sp94.y -= 10.0f;
+ sp88.y -= 10.0f;
+ sp7C.y -= 10.0f;
+ sp70.y -= 10.0f;
+ sp64.y -= 10.0f;
+ }
+ var_r29 |= 0x10000;
+ } else if (mEffProc == EFFPROC_RUN) {
+ if (checkWolf() && field_0x2f9d != 0) {
+ var_r29 |= 0x10000;
+ }
+ } else if (mEffProc == EFFPROC_SMALL_LAND) {
+ var_r28 |= 0x38;
+ if (checkWolf()) {
+ var_r28 |= 3;
+ }
+ }
+
+ if (checkCanoeRide() || checkModeFlg(0x10000)) {
+ var_r29 |= 0x40000;
+ }
+
+ BOOL sp3C = 0;
+
+ if (mProcID == PROC_SUMOU_MOVE &&
+ (field_0x3198 == 0x14C || field_0x3198 == 0x14D || field_0x3198 == 0x155))
+ {
+ sp3C = 1;
+ current.angle.y += 0x8000;
+ }
+
+ f32 temp_f30 = field_0x3798.absXZ(current.pos);
+ if ((!checkModeFlg(0x70C52) && (mLinkAcch.i_ChkGroundHit() || checkMagneBootsOn())) ||
+ mProcID == PROC_SUMOU_WIN_LOSE || (checkBoardRide() && !checkModeFlg(2)) ||
+ mProcID == PROC_WOLF_TAG_JUMP)
+ {
+ field_0x2e54.setEffectFour(
+ &tevStr, &spB8, var_r28, var_r29, (field_0x2f9d & 0x04) ? &sp64 : NULL,
+ (field_0x2f9d & 0x08) ? &sp70 : NULL, (field_0x2f9d & 0x10) ? &sp7C : NULL,
+ (field_0x2f9d & 0x20) ? &sp88 : NULL, (field_0x2f9d & 0x40) ? &sp94 : NULL,
+ &current.angle, NULL, fopAcM_GetRoomNo(this), field_0x3420, temp_f30);
+
+ if (checkBoardRide() && temp_f30 > 3.0f && field_0x2fbb == 0xD) {
+ JPABaseEmitter* sp38 = setEmitterPolyColor(&field_0x31c0, 0x8B8F, mLinkAcch.m_gnd,
+ &current.pos, &shape_angle);
+ if (sp38 != NULL) {
+ cXyz sp58;
+ f32 var_f31 = temp_f30 / daAlinkHIO_board_c0::m.mEffectMaxSpeed;
+ if (var_f31 > 1.0f) {
+ var_f31 = 1.0f;
+ }
+ sp38->setRate(1.0f + (2.0f * var_f31));
+ sp38->setAwayFromCenterSpeed(1.0f + (4.0f * var_f31));
+
+ sp58.x = 0.7f + (0.3f * var_f31);
+ sp58.y = sp58.x;
+ sp58.z = sp58.x;
+ sp38->setGlobalParticleScale(sp58);
+ sp38->setGlobalAlpha(50.0f + (205.0f * var_f31));
+ }
+ }
+ } else {
+ field_0x2e54.setEffectFour(&tevStr, &spB8, var_r28, var_r29, NULL, NULL, NULL, NULL, NULL,
+ &current.angle, NULL, fopAcM_GetRoomNo(this), field_0x3420,
+ temp_f30);
+ }
+
+ if (mEffProc != EFFPROC_NONE) {
+ (this->*m_fEffParamProc[mEffProc])();
+ }
+
+ if (mWaterY > current.pos.y) {
+ field_0x2fc4 = 0x96;
+ }
+
+ int var_r26;
+ if ((checkResetFlg1(daPy_RFLG1(RFLG1_UNK_20 | RFLG1_UNK_10 | RFLG1_UNK_8 | RFLG1_UNK_4)) ||
+ (field_0x2fc1 != 6 && field_0x2f8c != 2)) &&
+ current.pos.y > mWaterY &&
+ (field_0x2fc4 != 0 || (mSinkShapeOffset < 0.0f && mSinkShapeOffset >= -15.0f)))
+ {
+ if (mSinkShapeOffset < 0.0f && mSinkShapeOffset >= -15.0f) {
+ if (field_0x2fbb == 3) {
+ var_r26 = 1;
+ } else {
+ var_r26 = 2;
+ }
+ } else {
+ var_r26 = 0;
+ }
+
+ if (checkWolf() && field_0x2fc1 != 6) {
+ setWolfFootOn(field_0x2fc1);
+
+ if (field_0x2fc1 == 4) {
+ setWolfFootOn(5);
+ }
+ }
+
+ if (checkResetFlg1(RFLG1_UNK_10)) {
+ setFootMark(&mLeftFootPos, field_0x30bc, var_r26);
+ }
+
+ if (checkResetFlg1(RFLG1_UNK_20)) {
+ setFootMark(&mRightFootPos, field_0x30be, var_r26);
+ }
+
+ if (checkResetFlg1(RFLG1_UNK_4)) {
+ setFootMark(&mLeftHandPos, field_0x30b8, var_r26);
+ }
+
+ if (checkResetFlg1(RFLG1_UNK_8)) {
+ setFootMark(&mRightHandPos, field_0x30ba, var_r26);
+ }
+ }
+
+ if (sp3C) {
+ current.angle.y += 0x8000;
+ }
+
+ setFirePointDamageEffect();
}
/* 801221F0-801225E8 11CB30 03F8+00 1/1 0/0 0/0 .text setSumouEffect__9daAlink_cFv */
void daAlink_c::setSumouEffect() {
- // NONMATCHING
+ daPy_frameCtrl_c* temp_r28 = &mUnderFrameCtrl[0];
+ cXyz sp14;
+
+ if (mProcID == PROC_SUMOU_ACTION) {
+ if ((field_0x3198 == 0x14F) || (field_0x3198 == 0x151) || (field_0x3198 == 0x150)) {
+ JPABaseEmitter* temp_r3 = setEmitter(&field_0x31c8, 0x8538, &current.pos, NULL);
+ if (temp_r3 != NULL) {
+ temp_r3->setGlobalRTMatrix(mpLinkModel->getAnmMtx(9));
+ if (field_0x3198 == 0x151) {
+ temp_r3->setLifeTime(5);
+ }
+ }
+
+ if (field_0x3198 != 0x150) {
+ if (temp_r28->getFrame() >= 12.0f) {
+ mDoMtx_multVecZero(mpLinkModel->getAnmMtx(9), &sp14);
+ setEmitter(&field_0x31cc, 0x8539, &sp14, NULL);
+ setEmitter(&field_0x31d0, 0x853A, &sp14, &shape_angle);
+ }
+ }
+ } else if (field_0x3198 == 0x145 || field_0x3198 == 0x146 || field_0x3198 == 0x14E ||
+ field_0x3198 == 0x147)
+ {
+ if (field_0x3198 != 0x14E &&
+ (field_0x3198 == 0x145 || field_0x3198 == 0x146 || temp_r28->getFrame() >= 29.0f))
+ {
+ JPABaseEmitter* temp_r3_2 =
+ setEmitter(&field_0x31c8, 0x8542, &field_0x3834, &shape_angle);
+ if (temp_r3_2 != NULL) {
+ temp_r3_2->setGlobalRTMatrix(mpLinkModel->getAnmMtx(0));
+ }
+
+ JPABaseEmitter* temp_r3_3 =
+ setEmitter(&field_0x31cc, 0x8541, &field_0x3834, &shape_angle);
+ if (temp_r3_3 != NULL) {
+ temp_r3_3->setGlobalRTMatrix(mpLinkModel->getAnmMtx(0));
+ }
+ }
+
+ if (temp_r28->getFrame() >= 35.0f ||
+ (field_0x3198 == 0x14E && temp_r28->getFrame() >= 3.0f) ||
+ ((field_0x3198 == 0x145 || field_0x3198 == 0x146) && temp_r28->getFrame() >= 7.0f))
+ {
+ f32 var_f31;
+ if (field_0x3198 == 0x147) {
+ var_f31 = 40.0f;
+ } else {
+ var_f31 = 30.0f;
+ }
+
+ sp14.set(field_0x3834.x + (var_f31 * cM_ssin(shape_angle.y)), field_0x3834.y,
+ field_0x3834.z + (var_f31 * cM_scos(shape_angle.y)));
+ setEmitter(&field_0x31d0, 0x8539, &sp14, NULL);
+ setEmitter(&field_0x31d4, 0x853A, &sp14, &shape_angle);
+ }
+ }
+ } else if (mProcID == PROC_SUMOU_MOVE) {
+ if (field_0x3198 == 0x154) {
+ JPABaseEmitter* temp_r3_4 =
+ setEmitter(&field_0x31c8, 0x8545, &field_0x3834, &shape_angle);
+ if (temp_r3_4 != NULL) {
+ mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(0));
+ mDoMtx_stack_c::transM(36.0f, 84.0f, 0.0f);
+ temp_r3_4->setGlobalRTMatrix(mDoMtx_stack_c::get());
+ }
+ } else if (field_0x3198 == 0x155) {
+ if (temp_r28->getFrame() >= 17.0f) {
+ JPABaseEmitter* temp_r3_5 =
+ setEmitter(&field_0x31c8, 0x853A, &field_0x3834, &shape_angle);
+ if (temp_r3_5 != NULL) {
+ mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(0));
+ mDoMtx_stack_c::XrotM(0x7FFF);
+ temp_r3_5->setGlobalRTMatrix(mDoMtx_stack_c::get());
+ temp_r3_5->setGlobalScale(releaeScale);
+ }
+ }
+ }
+ }
}
/* 801225E8-80122654 11CF28 006C+00 1/1 0/0 0/0 .text setWaterfallEffect__9daAlink_cFPC4cXyzPUl */
@@ -133,90 +724,541 @@ void daAlink_c::setWaterfallEffect(cXyz const* param_0, u32* param_1) {
/* 80122654-8012277C 11CF94 0128+00 1/1 0/0 0/0 .text setWaterfallEffect__9daAlink_cFv */
void daAlink_c::setWaterfallEffect() {
- // NONMATCHING
+ Vec sp8;
+ if (checkEndResetFlg1(ERFLG1_UNK_800)) {
+ if (checkWolf()) {
+ mDoMtx_multVecZero(mpLinkModel->getAnmMtx(3), &sp8);
+ sp8.y += 5.0f;
+ } else {
+ mDoMtx_multVecZero(mpLinkModel->getAnmMtx(3), &sp8);
+ }
+
+ setWaterfallEffect((cXyz*)&sp8, &field_0x31c8);
+ }
+
+ if (checkWolf() && checkEndResetFlg1(ERFLG1_UNK_1000)) {
+ mDoMtx_multVecZero(mpLinkModel->getAnmMtx(0x1A), &sp8);
+ sp8.y -= 15.0f;
+ setWaterfallEffect((cXyz*)&sp8, &field_0x31d0);
+ }
+
+ if (checkEndResetFlg1(daPy_ERFLG1(ERFLG1_UNK_1000 | ERFLG1_UNK_800))) {
+ seStartOnlyReverbLevel(Z2SE_AL_IN_WATER_FALL);
+ }
}
/* 8012277C-801228F4 11D0BC 0178+00 1/1 0/0 0/0 .text setMagneBootsEffect__9daAlink_cFv
*/
void daAlink_c::setMagneBootsEffect() {
- // NONMATCHING
+ cXyz sp20;
+
+ int i, j;
+ for (i = 0; i < 2; i++) {
+ if (i == 0) {
+ sp20 = mLeftFootPos - current.pos;
+ } else {
+ sp20 = mRightFootPos - current.pos;
+ }
+
+ if (checkMagneBootsOn()) {
+ mDoMtx_multVecSR(mMagneBootInvMtx, &sp20, &sp20);
+ }
+
+ if (sp20.y < 6.0f) {
+ u32* var_r28 = field_0x3228[i];
+
+ for (j = 0; j < 3; j++, var_r28++) {
+ JPABaseEmitter* temp_r3 = setEmitter(var_r28, effName_40765[j], &current.pos, NULL);
+ if (temp_r3 != NULL) {
+ if (j == 1) {
+ temp_r3->setGlobalRTMatrix(mpLinkBootModels[i]->getAnmMtx(1));
+ } else {
+ temp_r3->setGlobalRTMatrix(mpLinkBootModels[i]->getAnmMtx(2));
+ }
+ }
+ }
+ }
+ }
}
/* 801228F4-80122BBC 11D234 02C8+00 1/1 0/0 0/0 .text setSwordChargeEffect__9daAlink_cFv
*/
void daAlink_c::setSwordChargeEffect() {
- // NONMATCHING
+ f32 var_f30;
+ BOOL temp_r3 = checkMasterSwordEquip();
+ if (temp_r3) {
+ var_f30 = l_swordTopLocalM.x;
+ } else {
+ var_f30 = l_swordTopLocalN.x;
+ }
+
+ f32 var_f31 = m_nSwordBtk->getFrame();
+ if (var_f31 > 0.0f) {
+ cXyz sp50;
+ if (!checkWoodSwordEquip()) {
+ JPABaseEmitter* temp_r3_2 = setEmitter(&field_0x321c, 0x368, &current.pos, NULL);
+ if (temp_r3_2 != NULL) {
+ temp_r3_2->setGlobalRTMatrix(mSwordModel->getBaseTRMtx());
+
+ if (temp_r3) {
+ temp_r3_2->setGlobalParticleScale(lightAParticleScale);
+ temp_r3_2->setLocalTranslation(lightALocalTrans);
+ }
+ }
+ }
+
+ cXyz sp44;
+ mDoMtx_multVecSR(mSwordModel->getBaseTRMtx(), &cXyz::BaseX, &sp50);
+ mDoMtx_multVecZero(mSwordModel->getBaseTRMtx(), &sp44);
+
+ if (var_f31 >= 14.0f) {
+ var_f31 = 14.0f;
+ }
+
+ sp50 = sp44 + ((sp50 * (var_f31 + 1.0f)) * (var_f30 / 15.0f));
+ setEmitter(&field_0x3220, 0x36A, &sp50, NULL);
+
+ if (var_f31 >= 14.0f) {
+ setEmitter(&field_0x3224, 0x36B, &sp50, NULL);
+ } else {
+ if (checkWolf() || checkWoodSwordEquip()) {
+ seStartSwordCut(Z2SE_WOLF_POWER_COME);
+ } else {
+ seStartSwordCut(Z2SE_SWORD_POWER_COME);
+ }
+ }
+ } else {
+ JPABaseEmitter* temp_r3_4 = dComIfGp_particle_getEmitter(field_0x321c);
+ if (temp_r3_4 != NULL) {
+ u8 temp_r3_5 = temp_r3_4->getGlobalAlpha();
+ if (temp_r3_5 > 17) {
+ JPABaseEmitter* temp_r3_6 = setEmitter(&field_0x321c, 0x368, &current.pos, NULL);
+ if (temp_r3_6 != NULL) {
+ temp_r3_6->setGlobalRTMatrix(mSwordModel->getBaseTRMtx());
+ temp_r3_6->setGlobalAlpha(temp_r3_5 - 17);
+ }
+ } else {
+ temp_r3_4->setGlobalAlpha(0);
+ }
+ }
+
+ stopDrawParticle(field_0x3220);
+ stopDrawParticle(field_0x3224);
+ }
}
/* 80122BBC-80122F18 11D4FC 035C+00 1/1 0/0 0/0 .text setElecDamageEffect__9daAlink_cFv
*/
void daAlink_c::setElecDamageEffect() {
- // NONMATCHING
+ cXyz sp54;
+ const u16* var_r28 = checkStageName("D_MN09A") ? effName1 : effName0;
+ int i;
+
+ if (checkWolf()) {
+ mDoMtx_multVec(mpLinkModel->getAnmMtx(2), &localOffset_40952, &sp54);
+
+ for (i = 0; i < 3; i++, var_r28++) {
+ JPABaseEmitter* emitter = setEmitter(&field_0x31d8[i], *var_r28, &sp54, &shape_angle);
+ if (emitter != NULL) {
+ if (i == 2) {
+ emitter->setLocalScale(localScale1);
+ } else {
+ emitter->setLocalScale(localScale0);
+ }
+ }
+ }
+ } else {
+ mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &sp54);
+
+ for (i = 0; i < 3; i++, var_r28++) {
+ setEmitter(&field_0x31d8[i], *var_r28, &sp54, &shape_angle);
+ }
+
+ if (checkHookshotItem(mEquipItem) && mItemMode == 6 && checkStageName("D_MN01")) {
+ sp54 = (mHeldItemRootPos + mHookshotTopPos) * 0.5f;
+
+ cXyz sp48 = mHookshotTopPos - mHeldItemRootPos;
+ csXyz sp10(sp48.atan2sY_XZ(), sp48.atan2sX_Z(), 0);
+
+ JPABaseEmitter* temp_r3_2 = setEmitter(&field_0x31e4, 0x8682, &sp54, &sp10);
+ if (temp_r3_2 != NULL) {
+ temp_r3_2->setVolumeSize(sp48.abs());
+ }
+ }
+ }
}
/* 80122F18-80122F78 11D858 0060+00 1/1 0/0 0/0 .text clearCutTurnEffectID__9daAlink_cFv
*/
void daAlink_c::clearCutTurnEffectID() {
- // NONMATCHING
+ for (int i = 0; i < 6; i++) {
+ stopDrawParticle(field_0x3204[i]);
+ field_0x3204[i] = 0;
+ }
}
/* 80122F78-801233A4 11D8B8 042C+00 1/1 0/0 0/0 .text setCutTurnEffect__9daAlink_cFv */
+// NONMATCHING - should match when data order is fixed
void daAlink_c::setCutTurnEffect() {
- // NONMATCHING
+ f32 temp_f1 = mUnderFrameCtrl[0].getFrame();
+
+ if (!(temp_f1 < mProcVar1.field_0x300a)) {
+ /* static s16 leftRotNormal[] = {
+ cM_deg2s(180), cM_deg2s(45), cM_deg2s(13), cM_deg2s(180), cM_deg2s(45), cM_deg2s(13),
+ };
+
+ static s16 leftRotLight[] = {
+ cM_deg2s(180), cM_deg2s(100), cM_deg2s(13), cM_deg2s(180), cM_deg2s(80), cM_deg2s(13),
+ cM_deg2s(180), cM_deg2s(80), cM_deg2s(13), cM_deg2s(180), cM_deg2s(80), cM_deg2s(13),
+ };
+
+ static s16 leftRotLarge[] = {
+ cM_deg2s(180), cM_deg2s(45), cM_deg2s(13), cM_deg2s(180), cM_deg2s(45), cM_deg2s(13),
+ cM_deg2s(180), cM_deg2s(60), cM_deg2s(13), cM_deg2s(180), cM_deg2s(60), cM_deg2s(13),
+ cM_deg2s(180), cM_deg2s(60), cM_deg2s(13), cM_deg2s(180), cM_deg2s(60), cM_deg2s(13),
+ };
+
+ static s16 leftRotWater[] = {
+ cM_deg2s(-90), cM_deg2s(0), cM_deg2s(180), cM_deg2s(0), cM_deg2s(0), cM_deg2s(180),
+ }; */
+
+ u32* sp2C = field_0x3204;
+ const u16* sp28;
+ JGeometry::TVec3<s16>* sp24;
+ JGeometry::TVec3<f32>* sp20;
+ int sp1C;
+ BOOL sp18 = 0;
+
+ if (checkNoResetFlg0(FLG0_UNDERWATER)) {
+ if (checkZoraWearAbility()) {
+ sp28 = effNameWater;
+ sp24 = (JGeometry::TVec3<s16>*)leftRotWater;
+ sp20 = (JGeometry::TVec3<f32>*)leftTransWater;
+ sp1C = 2;
+ if (mCutType == 0x18 || mCutType == 0x17) {
+ sp18 = 1;
+ }
+ } else {
+ return;
+ }
+ } else if (mCutType == 0x18 || mCutType == 0x17) {
+ sp28 = effNameLarge;
+ sp24 = (JGeometry::TVec3<s16>*)leftRotLarge;
+ sp20 = (JGeometry::TVec3<f32>*)leftTransLarge;
+ sp1C = 6;
+ } else if (checkNoResetFlg3(FLG3_UNK_100000)) {
+ sp28 = effNameLight;
+ sp24 = (JGeometry::TVec3<s16>*)leftRotLight;
+ sp20 = (JGeometry::TVec3<f32>*)leftTransLight;
+ sp1C = 4;
+ } else {
+ sp28 = effNameNormal;
+ sp24 = (JGeometry::TVec3<s16>*)leftRotNormal;
+ sp20 = (JGeometry::TVec3<f32>*)leftTransNormal;
+ sp1C = 2;
+ }
+
+ cXyz sp40;
+ mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &sp40);
+
+ if (checkMagneBootsOn()) {
+ mDoMtx_stack_c::transS(sp40);
+ mDoMtx_stack_c::concat(mMagneBootMtx);
+ mDoMtx_stack_c::ZXYrotM(shape_angle);
+ }
+
+ for (int i = 0; i < sp1C; i++, sp2C++, sp28++, sp24++, sp20++) {
+ JPABaseEmitter* sp30 = setEmitter(sp2C, *sp28, &sp40, &shape_angle);
+ if (sp30 != NULL) {
+ if (checkMagneBootsOn()) {
+ sp30->setGlobalRTMatrix(mDoMtx_stack_c::get());
+ }
+
+ if (mProcVar4.field_0x3010 == 0) {
+ sp30->setLocalRotation(*sp24);
+ if (sp20->y > 1.0f) {
+ sp30->setLocalTranslation(*sp20);
+ }
+ }
+
+ if (sp18) {
+ if (i == 0) {
+ sp30->setGlobalParticleScale(waterEffScale);
+ } else {
+ sp30->setVolumeSize(225);
+ sp30->setAwayFromAxisSpeed(15.0f);
+ }
+ }
+ }
+ }
+ }
}
/* 801233A4-80123434 11DCE4 0090+00 1/1 0/0 0/0 .text setHorseCutTurnEffect__9daAlink_cFv
*/
void daAlink_c::setHorseCutTurnEffect() {
- // NONMATCHING
+ cXyz sp20;
+ csXyz sp28(0, shape_angle.y, shape_angle.z);
+
+ mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &sp20);
+ setEmitter(&field_0x3204[0], 0x1F0, &sp20, &sp28);
+ setEmitter(&field_0x3204[1], 0x1F1, &sp20, &sp28);
}
/* 80123434-801236BC 11DD74 0288+00 1/1 0/0 0/0 .text setCutLargeJumpLandEffect__9daAlink_cFv */
void daAlink_c::setCutLargeJumpLandEffect() {
- // NONMATCHING
+ cXyz sp50(current.pos.x + cM_ssin(shape_angle.y) * 20.0f, current.pos.y + 50.0f, current.pos.z + cM_scos(shape_angle.y) * 20.0f);
+ csXyz sp58;
+ cM3dGPla sp44;
+
+ mLinkGndChk.SetPos(&sp50);
+ f32 var_f31 = dComIfG_Bgsp().GroundCross(&mLinkGndChk);
+ if (var_f31 < current.pos.y - 50.0f) {
+ sp50.y = current.pos.y;
+ dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &sp44);
+ } else {
+ sp50.y = var_f31;
+ dComIfG_Bgsp().GetTriPla(mLinkGndChk, &sp44);
+ }
+
+ sp58.x = cM_atan2s(sp44.mNormal.absXZ(), sp44.mNormal.y);
+ sp58.y = sp44.mNormal.atan2sX_Z();
+ sp58.z = 0;
+
+ for (int i = 0; i < 6; i++) {
+ dComIfGp_particle_set(effName_41208[i], &sp50, &tevStr, &sp58, NULL);
+ }
}
/* 801236BC-801237A8 11DFFC 00EC+00 1/1 0/0 0/0 .text setBootsLightEffect__9daAlink_cFv
*/
void daAlink_c::setBootsLightEffect() {
- // NONMATCHING
+ if (checkStageName("F_SP116")) {
+ if (dComIfGs_isOneZoneSwitch(0, fopAcM_GetRoomNo(this))) {
+ for (int i = 0; i < 4; i++) {
+ JPABaseEmitter* emitter = setEmitter(&field_0x326c[i], effName_41286[i], &current.pos, &shape_angle);
+ if (emitter != NULL) {
+ emitter->setGlobalRTMatrix(mpLinkModel->getAnmMtx(jointID[i]));
+ }
+ }
+
+ seStartOnlyReverbLevel(Z2SE_AL_SHOE_PKPK);
+ }
+ }
}
/* 801237A8-801238FC 11E0E8 0154+00 1/1 0/0 0/0 .text setLightningSwordEffect__9daAlink_cFv */
void daAlink_c::setLightningSwordEffect() {
- // NONMATCHING
+ if (checkEndResetFlg2(ERFLG2_UNK_10)) {
+ JPABaseEmitter* emitter = setEmitter(&field_0x3294, 0x8B9E, &current.pos, &shape_angle);
+ if (emitter != NULL) {
+ emitter->setGlobalRTMatrix(mSwordModel->getBaseTRMtx());
+ }
+
+ seStartOnlyReverbLevel(Z2SE_AL_LIGHTNING_SW_GET);
+ } else {
+ stopDrawParticle(field_0x3294);
+ }
+
+ int i;
+ if (mEquipItem == 0x103 && checkNoResetFlg3(FLG3_UNK_100000)) {
+ seStartOnlyReverbLevel(Z2SE_AL_LIGHTNING_SW_GLOW);
+
+ for (i = 0; i < 3; i++) {
+ JPABaseEmitter* emitter = setEmitter(&field_0x327c[i], effName_41312[i], &current.pos, &shape_angle);
+ if (emitter != NULL) {
+ emitter->setGlobalRTMatrix(mSwordModel->getBaseTRMtx());
+ }
+ }
+ } else {
+ for (i = 0; i < 3; i++) {
+ stopDrawParticle(field_0x327c[i]);
+ }
+ }
}
/* 801238FC-801239B0 11E23C 00B4+00 1/1 0/0 0/0 .text setWolfRollAttackEffect__9daAlink_cFv */
void daAlink_c::setWolfRollAttackEffect() {
- // NONMATCHING
+ cXyz sp20(current.pos.x, current.pos.y + 80.0f, current.pos.z);
+ csXyz sp28(shape_angle.x, shape_angle.y, 0);
+
+ if (mProcVar2.field_0x300c == 0) {
+ sp28.x += 0x8000;
+ }
+
+ setEmitter(&field_0x3204[0], 0x1E4, &sp20, &sp28);
+ if (mProcVar3.field_0x300e == 0) {
+ setEmitter(&field_0x3204[1], 0x1E5, &sp20, &sp28);
+ }
}
/* 801239B0-80123BF0 11E2F0 0240+00 1/1 0/0 0/0 .text setWolfDigEffect__9daAlink_cFv */
void daAlink_c::setWolfDigEffect() {
- // NONMATCHING
+ if (dComIfG_Bgsp().ChkPolySafe(mPolyInfo2)) {
+ f32 var_f31 = 3.0f;
+ f32 var_f30;
+ csXyz sp18(getGroundAngle(&mPolyInfo2, shape_angle.y), shape_angle.y, 0);
+
+ u16 var_r29, var_r28;
+ u16 var_r26;
+ if (field_0x3198 == 3) {
+ var_r29 = 0x884B;
+ var_r28 = 0x881B;
+ } else if (field_0x3198 == 0xD) {
+ var_r29 = 0x884C;
+ var_r28 = 0x881D;
+ } else if (field_0x3198 == 1) {
+ var_r29 = 0x200;
+ var_r28 = 0xE6;
+ } else if (field_0x3198 == 4) {
+ var_r29 = 0x200;
+
+ if (dKy_pol_efftype_get(&mPolyInfo2) == 1) {
+ var_r28 = 0x143;
+ var_r26 = 0xE6;
+ var_f30 = 3.0f;
+ } else {
+ var_r28 = 0xE6;
+ var_r26 = 0x143;
+ var_f30 = 15.0f;
+ var_f31 = 3.0f;
+ }
+
+ field_0x32cc = dComIfGp_particle_setPolyColor(field_0x32cc, var_r26, mPolyInfo2, &field_0x37d4, &tevStr, &sp18, NULL, 1, NULL, -1, NULL);
+ JPABaseEmitter* temp_r3 = dComIfGp_particle_getEmitter(field_0x32cc);
+ if (temp_r3 != NULL) {
+ temp_r3->setAwayFromAxisSpeed(var_f30);
+ dComIfGp_particle_levelEmitterOnEventMove(field_0x32cc);
+ }
+ } else if (field_0x3198 == 7) {
+ var_r29 = 0;
+ var_r28 = 0x1B1;
+ setEmitterPolyColor(&field_0x32cc, 0x1AF, mPolyInfo2, &field_0x37d4, &sp18);
+ setEmitterPolyColor(&field_0x31bc, 0x1B0, mPolyInfo2, &field_0x37d4, &sp18);
+ } else {
+ var_r29 = 0;
+ var_r28 = 0xE6;
+ }
+
+ if (var_r29 != 0) {
+ setEmitter(&field_0x31bc, var_r29, &field_0x37d4, &sp18);
+ }
+
+ JPABaseEmitter* temp_r3_2 = setEmitterPolyColor(&field_0x31c0, var_r28, mPolyInfo2, &field_0x37d4, &sp18);
+ if (temp_r3_2 != NULL && field_0x3198 != 7) {
+ temp_r3_2->setAwayFromAxisSpeed(var_f31);
+ }
+ }
}
/* 80123BF0-80123C8C 11E530 009C+00 2/2 0/0 0/0 .text
* setWolfSwimEndEffect__9daAlink_cFPP14JPABaseEmitterPP14JPABaseEmitter */
void daAlink_c::setWolfSwimEndEffect(JPABaseEmitter** param_0, JPABaseEmitter** param_1) {
- // NONMATCHING
+ int var_r30 = mProcVar3.field_0x300e;
+ if (var_r30 >= 3 || var_r30 < 0) {
+ var_r30 = 1;
+ }
+
+ *param_0 = setEmitterColor(&field_0x32cc, name0[var_r30], &field_0x37c8, &shape_angle);
+
+ if (var_r30 != 0) {
+ *param_1 = setEmitterColor(&field_0x31bc, name1[var_r30], &field_0x37c8, &shape_angle);
+ }
}
/* 80123C8C-80123D88 11E5CC 00FC+00 1/1 0/0 0/0 .text setWolfLockAttackEffect__9daAlink_cFv */
void daAlink_c::setWolfLockAttackEffect() {
- // NONMATCHING
+ u8 var_r30;
+ if (dComIfGp_checkPlayerStatus1(0, 0x01000000)) {
+ var_r30 = 0xFF;
+ } else {
+ JPABaseEmitter* temp_r3 = dComIfGp_particle_getEmitter(field_0x31b0[0]);
+ if (temp_r3 != NULL) {
+ var_r30 = temp_r3->getGlobalAlpha();
+ if (var_r30 >= 51) {
+ var_r30 -= 51;
+ } else {
+ var_r30 = 0;
+ }
+ } else {
+ var_r30 = 0;
+ }
+ }
+
+ if (var_r30 != 0) {
+ cXyz sp8;
+ mDoMtx_multVecZero(mpLinkModel->getAnmMtx(37), &sp8);
+
+ for (int i = 0; i < 3; i++) {
+ JPABaseEmitter* temp_r3_3 = setEmitter(&field_0x31b0[i], effID[i], &sp8, &shape_angle);
+ if (temp_r3_3 != NULL) {
+ temp_r3_3->setGlobalAlpha(var_r30);
+ }
+ }
+ }
}
/* 80123D88-80123ED0 11E6C8 0148+00 1/1 0/0 0/0 .text setWolfJumpAttackEffect__9daAlink_cFv */
void daAlink_c::setWolfJumpAttackEffect() {
- // NONMATCHING
+ cXyz sp8;
+
+ u8 var_r30;
+ if (mProcID == PROC_WOLF_JUMP_ATTACK && mProcVar4.field_0x3010 != 0) {
+ mDoMtx_multVecZero(mpLinkModel->getAnmMtx(3), &sp8);
+ setEmitter(&field_0x3288, 0xA9F, &sp8, &shape_angle);
+ setEmitter(&field_0x328c, 0xAA0, &sp8, &shape_angle);
+ var_r30 = 0xFF;
+ } else {
+ stopDrawParticle(field_0x3288);
+ stopDrawParticle(field_0x328c);
+
+ JPABaseEmitter* temp_r3 = dComIfGp_particle_getEmitter(field_0x3290);
+ if (temp_r3 != NULL) {
+ var_r30 = temp_r3->getGlobalAlpha();
+ if (var_r30 >= 51) {
+ var_r30 -= 51;
+ } else {
+ var_r30 = 0;
+ }
+ } else {
+ var_r30 = 0;
+ }
+ }
+
+ if (var_r30 != 0) {
+ mDoMtx_multVecZero(mpLinkModel->getAnmMtx(0x25), &sp8);
+
+ JPABaseEmitter* temp_r3_3 = setEmitter(&field_0x3290, 0xB6F, &sp8, &shape_angle);
+ if (temp_r3_3 != NULL) {
+ temp_r3_3->setGlobalAlpha(var_r30);
+ }
+ }
}
/* 80123ED0-80124144 11E810 0274+00 2/2 0/0 0/0 .text
* setWolfBarrierHitEffect__9daAlink_cFR11dBgS_LinChk */
void daAlink_c::setWolfBarrierHitEffect(dBgS_LinChk& param_0) {
- // NONMATCHING
+ cM3dGPla sp10;
+ dComIfG_Bgsp().GetTriPla(param_0, &sp10);
+
+ field_0x3102 = cM_atan2s(-sp10.mNormal.x, -sp10.mNormal.z);
+
+ csXyz sp8(cM_atan2s(sp10.mNormal.y, sp10.mNormal.absXZ()), field_0x3102, 0);
+
+ const u16* var_r30;
+ s16 temp_r3 = getMoveBGActorName(param_0, 1);
+ if (temp_r3 == PROC_Obj_GanonWall2 || temp_r3 == PROC_OBJ_GB) {
+ var_r30 = ganonNameID;
+ } else {
+ var_r30 = normalNameID;
+ }
+
+ for (int i = 0; i < 2; i++, var_r30++) {
+ dComIfGp_particle_set(*var_r30, param_0.GetCrossP(), &sp8, NULL);
+ }
+
+ mDoAud_seStart(Z2SE_OBJ_BARRIER_COLLISION, param_0.GetCrossP(), 0, 0);
+ field_0x3100 = 3;
}
/* 80124144-801241E0 11EA84 009C+00 9/9 0/0 0/0 .text setCutWaterDropEffect__9daAlink_cFv
@@ -225,14 +1267,86 @@ void daAlink_c::setCutWaterDropEffect() {
if (field_0x32c0[0] > 0) {
cXyz sp18;
mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &sp18);
- dComIfGp_particle_setColor(0x2A4, &sp18, &tevStr, NULL, NULL, 0.0f, -1,
- &shape_angle, NULL, NULL, -1, NULL);
+ dComIfGp_particle_setColor(0x2A4, &sp18, &tevStr, NULL, NULL, 0.0f, -1, &shape_angle, NULL,
+ NULL, -1, NULL);
}
}
/* 801241E0-801244E4 11EB20 0304+00 1/1 0/0 0/0 .text setWaterDropEffect__9daAlink_cFv */
void daAlink_c::setWaterDropEffect() {
- // NONMATCHING
+ Vec spC;
+ int i;
+
+ if (checkEndResetFlg1(daPy_ERFLG1(ERFLG1_UNK_20000 | ERFLG1_UNK_1000 | ERFLG1_UNK_800))) {
+ for (i = 0; i < 2; i++) {
+ field_0x32c0[i] = -1;
+ }
+ } else if (!checkNoResetFlg0(FLG0_UNK_80) || field_0x2fbc == 6) {
+ for (i = 0; i < 2; i++) {
+ if (field_0x32c0[i] > 0) {
+ field_0x32c0[i]--;
+ } else if (field_0x32c0[i] == -1) {
+ field_0x32c0[i] = 150;
+ }
+ }
+ } else {
+ for (i = 0; i < 2; i++) {
+ mDoMtx_multVecZero(mpLinkModel->getAnmMtx(field_0x32c4[i]), &spC);
+
+ if (spC.y < mWaterY - 5.0f) {
+ field_0x32c0[i] = -1;
+ } else if (spC.y > mWaterY && field_0x32c0[i] == -1) {
+ field_0x32c0[i] = 150;
+ } else if (field_0x32c0[i] > 0) {
+ field_0x32c0[i]--;
+ }
+ }
+ }
+
+ const u16* var_r29;
+ if (checkWolf()) {
+ var_r29 = &effDataTable[2];
+ } else {
+ var_r29 = &effDataTable[0];
+ }
+
+ for (i = 0; i < 2; i++, var_r29++) {
+ if (field_0x32c0[i] > 0) {
+ JPABaseEmitter* temp_r3 = setEmitterColor(&field_0x3298[i], *var_r29, &current.pos, NULL);
+ if (temp_r3 != NULL) {
+ temp_r3->setGlobalRTMatrix(mpLinkModel->getAnmMtx(field_0x32c4[i]));
+
+ if (checkPlayerNoDraw()) {
+ temp_r3->stopDrawParticle();
+ } else {
+ temp_r3->playDrawParticle();
+ }
+ }
+ }
+
+ if (field_0x32c0[i] != 0) {
+ if (field_0x32a0[i].a > -20) {
+ field_0x32a0[i].a -= 2;
+
+ if (field_0x32a0[i].a < -20) {
+ field_0x32a0[i].a = -20;
+ }
+ }
+ } else if (field_0x32a0[i].a < 0) {
+ field_0x32a0[i].a++;
+ }
+
+ s16 var_r27;
+ if (!checkNoResetFlg2(daPy_FLG2(FLG2_UNK_100000 | FLG2_UNK_80000))) {
+ var_r27 = field_0x32a0[i].a * 0.65f;
+ } else {
+ var_r27 = field_0x32a0[i].a * 0.4f;
+ }
+
+ field_0x32a0[i].r = var_r27;
+ field_0x32a0[i].g = var_r27;
+ field_0x32a0[i].b = var_r27;
+ }
}
/* 801244E4-801245EC 11EE24 0108+00 1/1 0/0 0/0 .text setSwordUpColorEffect__9daAlink_cFv
@@ -253,10 +1367,27 @@ void daAlink_c::setSwordUpColorEffect() {
}
}
-
/* 801245EC-80124738 11EF2C 014C+00 1/1 0/0 0/0 .text setSwordCutSplash__9daAlink_cFv */
void daAlink_c::setSwordCutSplash() {
- // NONMATCHING
+ if (mCutType != 0 && mProcID != PROC_CUT_TURN && getCutAtFlg() != 0 && checkNoResetFlg0(FLG0_UNK_80) && mEquipItem == 0x103) {
+ if (mSwordTopPos.y <= mWaterY && field_0x34b0.y > mWaterY) {
+ cXyz sp14(mSwordTopPos.x, mWaterY, mSwordTopPos.z);
+
+ for (int i = 0; i < 4; i++) {
+ JPABaseEmitter* temp_r3 = setEmitterPolyColor(&field_0x31e8[i], cutSplashName[i], mLinkAcch.m_wtr, &sp14, NULL);
+ if (temp_r3 != NULL) {
+ temp_r3->setRateStep(5);
+ temp_r3->setGlobalScale(swordCutSplashScale);
+
+ if (cutSplashName[i] == 0x1B9) {
+ temp_r3->setRate(5.0f);
+ } else if (cutSplashName[i] == 0x1BB) {
+ temp_r3->setDirectionalSpeed(5.0f);
+ }
+ }
+ }
+ }
+ }
}
/* 80124738-801247A8 11F078 0070+00 1/1 0/0 0/0 .text setMetamorphoseEffectStartLink__9daAlink_cFv
@@ -270,20 +1401,90 @@ void daAlink_c::setMetamorphoseEffectStartLink() {
/* 801247A8-801248A8 11F0E8 0100+00 1/1 0/0 0/0 .text setMetamorphoseEffect__9daAlink_cFv
*/
void daAlink_c::setMetamorphoseEffect() {
- // NONMATCHING
+ if (mProcVar1.field_0x300a == 0) {
+ if (mProcVar5.field_0x3012 != 0) {
+ if (checkWolf()) {
+ setMetamorphoseEffectStartLink();
+ } else {
+ setEmitter(&field_0x31fc, 0x251, &field_0x37c8, NULL);
+ }
+ } else if (checkWolf()) {
+ JPABaseEmitter* temp_r30 = setEmitter(&field_0x31f8, 0x252, &current.pos, NULL);
+ mDoMtx_multVecZero(mpLinkModel->getAnmMtx(2), &field_0x37c8);
+
+ if (temp_r30 != NULL) {
+ temp_r30->setGlobalRTMatrix(mpLinkModel->getAnmMtx(2));
+ }
+ } else {
+ mDoMtx_multVecZero(mpLinkModel->getAnmMtx(2), &field_0x37c8);
+ setMetamorphoseEffectStartLink();
+ }
+ }
}
/* 801248A8-80124A2C 11F1E8 0184+00 1/1 0/0 0/0 .text setRunSplash__9daAlink_cFv */
void daAlink_c::setRunSplash() {
- // NONMATCHING
+ if (mProcID == PROC_MOVE && checkNoResetFlg0(FLG0_UNK_80) && checkDashAnime()) {
+ f32 temp_f31 = mWaterY - current.pos.y;
+ if (temp_f31 >= daAlinkHIO_basic_c0::m.mWaterSurfaceEffectHeight && temp_f31 < field_0x598 && dKy_pol_efftype_get(&mLinkAcch.m_wtr) == 2) {
+ cXyz sp8(current.pos.x, mWaterY, current.pos.z);
+
+ JPABaseEmitter* temp_r3 = setEmitterPolyColor(&field_0x31f8, 0x1AF, mLinkAcch.m_wtr, &sp8, &current.angle);
+ if (temp_r3 != NULL) {
+ temp_r3->setLifeTime(10);
+ temp_r3->setDirectionalSpeed(5.0f);
+ }
+
+ sp8.set(current.pos.x + (70.0f * cM_ssin(shape_angle.y)), 20.0f + mWaterY, current.pos.z + (70.0f * cM_scos(shape_angle.y)));
+ setEmitterPolyColor(&field_0x31fc, 0x1B0, mLinkAcch.m_wtr, &sp8, &current.angle);
+ sp8.y = mWaterY;
+
+ JPABaseEmitter* temp_r3_2 = setEmitterPolyColor(&field_0x3200, 0x1B1, mLinkAcch.m_wtr, &sp8, &current.angle);
+ if (temp_r3_2 != NULL) {
+ temp_r3_2->setLifeTime(20);
+ temp_r3_2->setDirectionalSpeed(4.5f);
+ }
+ }
+ }
}
/* 80124A2C-80124B68 11F36C 013C+00 1/0 0/0 0/0 .text
* execute__29dAlink_bottleWaterPcallBack_cFP14JPABaseEmitterP15JPABaseParticle */
-extern "C" void execute__29dAlink_bottleWaterPcallBack_cFP14JPABaseEmitterP15JPABaseParticle() {
- // asm void dAlink_bottleWaterPcallBack_c::execute(JPABaseEmitter* param_0, JPABaseParticle*
- // param_1) {
- // NONMATCHING
+void dAlink_bottleWaterPcallBack_c::execute(JPABaseEmitter* param_0, JPABaseParticle* param_1) {
+ JGeometry::TVec3<f32> sp18;
+ param_1->getGlobalPosition(sp18);
+
+ if (sp18.y < mKeepMinY) {
+ mKeepMinY = sp18.y;
+ }
+
+ cXyz spC(sp18.x, daAlink_getAlinkActorClass()->getHeadTopPosP()->y, sp18.z);
+
+ BOOL var_r29 = 0;
+ BOOL var_r30 = 0;
+
+ if (fopAcM_gc_c::gndCheck(&spC)) {
+ if (sp18.y < fopAcM_gc_c::getGroundY()) {
+ mHitFlg = 1;
+ mHitPos.set(spC.x, fopAcM_gc_c::getGroundY(), spC.z);
+
+ var_r29 = 1;
+ var_r30 = 1;
+ }
+ }
+
+ if (fopAcM_wt_c::waterCheck(&spC)) {
+ if (sp18.y < fopAcM_wt_c::getWaterY() && (!var_r29 || mHitPos.y < fopAcM_wt_c::getWaterY())) {
+ mHitFlg = 1;
+ mHitPos.set(spC.x, fopAcM_wt_c::getWaterY(), spC.z);
+ var_r30 = 1;
+ }
+ }
+
+ if (var_r30) {
+ param_1->setInvisibleParticleFlag();
+ param_1->setDeleteParticleFlag();
+ }
}
/* 80124B68-80124BA4 11F4A8 003C+00 2/2 0/0 0/0 .text resetFairyEffect__9daAlink_cFv */
@@ -294,7 +1495,41 @@ void daAlink_c::resetFairyEffect() {
/* 80124BA4-80124E28 11F4E4 0284+00 1/1 0/0 0/0 .text setBottleEffect__9daAlink_cFv */
void daAlink_c::setBottleEffect() {
- // NONMATCHING
+ if (mEquipItem == FAIRY) {
+ if (mpHookTipModel != NULL) {
+ cXyz sp2C;
+ mDoMtx_multVecZero(mpHookTipModel->getAnmMtx(2), &sp2C);
+
+ JPABaseEmitter* temp_r3 = setEmitter(&field_0x3258, 0x72F, &sp2C, NULL);
+ if (temp_r3 != NULL) {
+ temp_r3->setGlobalScale(fairyScale);
+ }
+
+ setEmitter(&field_0x325c, 0x734, &sp2C, NULL);
+ }
+ } else if (mEquipItem == CHUCHU_RARE && mProcID == PROC_BOTTLE_GET) {
+ if (field_0x072c != NULL && field_0x072c->getFrame() < 2.0f) {
+ cXyz sp20;
+ mDoMtx_multVec(mHeldItemModel->getAnmMtx(0), &chuchuLocalOffset, &sp20);
+
+ JPABaseEmitter* temp_r3_2 = setEmitter(&field_0x3258, 0xC14, &sp20, NULL);
+ if (temp_r3_2 != NULL) {
+ temp_r3_2->setGlobalScale(chuchuScale);
+ }
+ }
+ } else if (mProcID == PROC_BOTTLE_OPEN && mProcVar3.field_0x300e != 0 && mEquipItem == WATER_BOTTLE) {
+ JPABaseEmitter* temp_r3_3 = setEmitter(&field_0x325c, 0x344, &current.pos, NULL);
+ if (temp_r3_3 != NULL) {
+ temp_r3_3->setGlobalRTMatrix(mHeldItemModel->getBaseTRMtx());
+ temp_r3_3->setParticleCallBackPtr(&field_0x27c8);
+ }
+
+ if (!field_0x27c8.getAppearFlg() && field_0x27c8.getHitFlg()) {
+ dComIfGp_particle_set(0x345, &field_0x27c8.getHitPos(), NULL, NULL);
+ dComIfGp_particle_set(0x346, &field_0x27c8.getHitPos(), NULL, NULL);
+ field_0x27c8.onAppearFlg();
+ }
+ }
}
/* 80124E28-80124EA8 11F768 0080+00 2/2 0/0 0/0 .text clearFirePointDamageEffect__9daAlink_cFi */
@@ -312,23 +1547,149 @@ void daAlink_c::clearFirePointDamageEffect(int i_effNo) {
/* 80124EA8-80124FA4 11F7E8 00FC+00 1/1 0/0 0/0 .text initFirePointDamageEffectAll__9daAlink_cFv
*/
void daAlink_c::initFirePointDamageEffectAll() {
- // NONMATCHING
+ firePointEff_c* eff = field_0x32d8;
+
+ int var_r29;
+ if (checkWolf()) {
+ var_r29 = 1;
+ } else {
+ var_r29 = 0;
+ }
+
+ for (int i = 0; i < 4; i++, eff++) {
+ eff->field_0x0 = 1;
+ eff->field_0x2 = effJoint[var_r29][i];
+ eff->field_0x4 = 0;
+ eff->field_0x8 = 0;
+ eff->field_0x24 = cXyz::Zero;
+ eff->field_0x18 = effOffset[var_r29][i];
+
+ mDoMtx_multVec(mpLinkModel->getAnmMtx(eff->field_0x2), &eff->field_0x18, &eff->field_0xc);
+ }
}
/* 80124FA4-80125128 11F8E4 0184+00 1/1 0/0 0/0 .text
* initFirePointDamageEffect__9daAlink_cFPC4cXyzP12dCcD_GObjInf */
void daAlink_c::initFirePointDamageEffect(cXyz const* param_0, dCcD_GObjInf* param_1) {
- // NONMATCHING
+ firePointEff_c* eff = field_0x32d8;
+
+ int i;
+ for (i = 0; i < 4; i++, eff++) {
+ if (eff->field_0x0 == 0) {
+ break;
+ }
+ }
+
+ if (i != 4) {
+ cXyz* var_r27 = getDamageVec(param_1);
+
+ csXyz sp38(var_r27->atan2sY_XZ(), var_r27->atan2sX_Z(), 0);
+ csXyz sp40;
+ cXyz sp30;
+
+ int var_r30 = field_0x2e44.getHitmarkPosAndAngle(param_0, &sp38, &sp30, &sp40, 0);
+ if (var_r30 == -1 || (!checkWolf() && (var_r30 == 1 || var_r30 == 15 || var_r30 == 16))) {
+ return;
+ }
+
+ eff->field_0x2 = field_0x2e44.getJntNum(var_r30);
+ eff->field_0xc = *param_0;
+ eff->field_0x24 = cXyz::Zero;
+ eff->field_0x0 = 1;
+ eff->field_0x4 = 0;
+
+ mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(eff->field_0x2));
+ mDoMtx_stack_c::inverse();
+ mDoMtx_stack_c::multVec(&sp30, &eff->field_0x18);
+ }
}
/* 80125128-80125338 11FA68 0210+00 1/1 0/0 0/0 .text setFirePointDamageEffect__9daAlink_cFv */
void daAlink_c::setFirePointDamageEffect() {
- // NONMATCHING
+ firePointEff_c* var_r30 = field_0x32d8;
+ cXyz sp24;
+
+ BOOL var_r25 = 0;
+
+ for (int i = 0; i < 4; i++, var_r30++) {
+ if (var_r30->field_0x0 != 0) {
+ mDoMtx_multVec(mpLinkModel->getAnmMtx(var_r30->field_0x2), &var_r30->field_0x18, &sp24);
+
+ if (mWaterY > sp24.y) {
+ clearFirePointDamageEffect(i);
+ } else {
+ BOOL var_r26;
+ if (var_r30->field_0x4 == 0) {
+ var_r30->field_0x24 = cXyz::Zero;
+ var_r26 = 1;
+ } else {
+ var_r30->field_0x24 = (sp24 - var_r30->field_0xc) * 0.9f;
+ var_r26 = 0;
+ }
+
+ JPABaseEmitter* temp_r28 = setEmitter(&var_r30->field_0x4, 0x742, &sp24, NULL);
+ if (temp_r28 != NULL && temp_r28->isEnableDeleteEmitter()) {
+ clearFirePointDamageEffect(i);
+ } else {
+ if (var_r26 && temp_r28 != NULL) {
+ temp_r28->setParticleCallBackPtr(dPa_control_c::getParticleTracePCB());
+ temp_r28->setUserWork((u32)&var_r30->field_0x24);
+ }
+
+ JPABaseEmitter* temp_r28_2 = setEmitter(&var_r30->field_0x8, 0x743, &sp24, NULL);
+ if (var_r26 && temp_r28_2 != NULL) {
+ temp_r28_2->setParticleCallBackPtr(dPa_control_c::getParticleTracePCB());
+ temp_r28_2->setUserWork((u32)&var_r30->field_0x24);
+ }
+
+ var_r30->field_0xc = sp24;
+ var_r25 = 1;
+ }
+ }
+ }
+ }
+
+ if (var_r25 || field_0x2fcb != 0) {
+ seStartOnlyReverbLevel(Z2SE_AL_BURNING);
+ }
}
/* 80125338-80125524 11FC78 01EC+00 1/1 0/0 0/0 .text setFreezeEffect__9daAlink_cFv */
void daAlink_c::setFreezeEffect() {
- // NONMATCHING
+ cXyz sp14;
+
+ if (checkFreezeDamage()) {
+ if (mProcID == PROC_DAMAGE || mProcID == PROC_SWIM_FREEZE_RETURN || mProcID == PROC_WOLF_DAMAGE) {
+ const Vec* var_r28;
+ if (checkWolf()) {
+ mDoMtx_multVec(mpLinkModel->getAnmMtx(2), &offsetPos, &sp14);
+ var_r28 = &wolfEffScale;
+ } else {
+ mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &sp14);
+ var_r28 = &effScale;
+ }
+
+ JPABaseEmitter* temp_r3 = setEmitter(&field_0x3268, 0x881A, &sp14, &shape_angle);
+ if (temp_r3 != NULL) {
+ temp_r3->setLocalScale(*var_r28);
+ }
+ }
+
+ onNoResetFlg3(FLG3_UNK_800);
+ } else if (checkNoResetFlg3(FLG3_UNK_800)) {
+ if (checkWolf()) {
+ mDoMtx_multVecZero(mpLinkModel->getAnmMtx(2), &sp14);
+ } else {
+ mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &sp14);
+ }
+
+ for (int i = 0; i < 2; i++) {
+ dComIfGp_particle_setColor(effName_42224[i], &sp14, &tevStr, NULL, NULL, 0.0f, 0xFF);
+ }
+
+ stopDrawParticle(field_0x3268);
+ offNoResetFlg3(FLG3_UNK_800);
+ }
}
/* 80125524-801255BC 11FE64 0098+00 1/1 0/0 0/0 .text setWoodShieldBurnEffect__9daAlink_cFv */
@@ -359,8 +1720,8 @@ void daAlink_c::clearWoodShieldBurnEffect() {
/* 80125628-801256EC 11FF68 00C4+00 1/1 0/0 0/0 .text setWoodShieldBurnOutEffect__9daAlink_cFv */
void daAlink_c::setWoodShieldBurnOutEffect() {
for (int i = 0; i < 2; i++) {
- JPABaseEmitter* emitter = dComIfGp_particle_setColor(
- effName_42340[i], &current.pos, &tevStr, NULL, NULL, 0.0f, -1);
+ JPABaseEmitter* emitter = dComIfGp_particle_setColor(effName_42340[i], &current.pos,
+ &tevStr, NULL, NULL, 0.0f, -1);
if (emitter != NULL) {
emitter->setGlobalRTMatrix(mShieldModel->getBaseTRMtx());
@@ -387,49 +1748,154 @@ void daAlink_blur_c::initBlur(f32 param_0, int param_1, cXyz const* param_2, cXy
/* 80125778-8012589C 1200B8 0124+00 1/1 0/0 0/0 .text
* setBezierPos__FPC4cXyzPC4cXyzPC4cXyzPC4cXyzfP4cXyz */
-static void setBezierPos(cXyz const* param_0, cXyz const* param_1, cXyz const* param_2,
- cXyz const* param_3, f32 param_4, cXyz* param_5) {
- // NONMATCHING
+static void setBezierPos(cXyz const* start, cXyz const* control_1, cXyz const* control_2,
+ cXyz const* end, f32 t, cXyz* out_pos) {
+ f32 one_minus_t;
+ f32 one_minus_t_squared;
+ f32 weight_1;
+ f32 weight_2;
+ f32 t_squared;
+
+ one_minus_t = 1.0f - t;
+ one_minus_t_squared = one_minus_t * one_minus_t;
+ t_squared = t * t;
+
+ weight_1 = (one_minus_t_squared * 3.0f) * t;
+ weight_2 = (t_squared * 3.0f) * one_minus_t;
+
+ one_minus_t_squared *= one_minus_t;
+ t_squared *= t;
+
+ *out_pos = (((*start * one_minus_t_squared) + (*control_2 * weight_1)) + (*end * weight_2)) +
+ (*control_1 * t_squared);
}
/* 8012589C-80125B0C 1201DC 0270+00 1/1 0/0 0/0 .text
* copyBlur__14daAlink_blur_cFPC4cXyzPC4cXyzPC4cXyz */
+// NONMATCHING
void daAlink_blur_c::copyBlur(cXyz const* param_0, cXyz const* param_1, cXyz const* param_2) {
- // NONMATCHING
+ for (int i = 59 - 10; i >= 0; i--) {
+ field_0x38[i + 10] = field_0x38[i];
+ field_0x308[i + 10] = field_0x308[i];
+ }
+
+ f32 temp_f30 = 1.0f / 10;
+ f32 var_f31 = 0.0f;
+
+ cXyz sp4C;
+ cXyz sp58;
+ cXyz sp64;
+ cXyz sp70;
+
+ sp58 = field_0x308[10] + (field_0x2c * 30.0f);
+ sp4C = *param_1 + (*param_2 * -30.0f);
+ sp70 = field_0x38[10] + (field_0x2c * 60.0f);
+ sp64 = *param_0 + (*param_2 * -60.0f);
+
+ for (int i = 0; i < 10; i++) {
+ setBezierPos(param_1, &field_0x308[10], &sp4C, &sp58, var_f31, &field_0x308[i]);
+ setBezierPos(param_0, &field_0x38[10], &sp64, &sp70, var_f31, &field_0x38[i]);
+
+ field_0x38[i] += (field_0x38[i] - field_0x308[i]) * field_0x24;
+ var_f31 += temp_f30;
+ }
+
+ field_0x2c = *param_2;
+
+ field_0x14 += 10;
+ if (field_0x14 >= 59) {
+ field_0x14 = 58;
+ }
}
/* 80125B0C-80125BF4 12044C 00E8+00 1/1 0/0 0/0 .text traceBlur__14daAlink_blur_cFPC4cXyzPC4cXyzs
*/
void daAlink_blur_c::traceBlur(cXyz const* param_0, cXyz const* param_1, s16 param_2) {
- // NONMATCHING
-}
+ mDoMtx_stack_c::transS(*param_0);
+ mDoMtx_stack_c::YrotM(param_2);
+ mDoMtx_stack_c::transM(-param_1->x, -param_1->y, -param_1->z);
-/* ############################################################################################## */
-/* 804256CC-804256EC 0523EC 0020+00 1/1 0/0 0/0 .bss texObj$42524 */
-static u8 texObj[32];
+ cXyz sp20;
+ for (int i = 0; i < field_0x14; i++) {
+ sp20 = field_0x38[i];
+ mDoMtx_stack_c::multVec(&sp20, &field_0x38[i]);
-/* 804506A4-804506A8 000124 0004+00 1/1 0/0 0/0 .sdata nColor0$42525 */
-static u8 nColor0[4] = {
- 0xFF,
- 0xFF,
- 0xFF,
- 0x14,
-};
+ sp20 = field_0x308[i];
+ mDoMtx_stack_c::multVec(&sp20, &field_0x308[i]);
+ }
+}
/* 80125BF4-80125F14 120534 0320+00 1/0 0/0 0/0 .text draw__14daAlink_blur_cFv */
-extern "C" void draw__14daAlink_blur_cFv() {
- // asm void daAlink_blur_c::draw() {
- // NONMATCHING
+void daAlink_blur_c::draw() {
+ j3dSys.reinitGX();
+
+ static GXTexObj ALIGN_DECL(32) texObj;
+ static GXColor nColor0 = {0xFF, 0xFF, 0xFF, 0x14};
+
+ GXSetNumIndStages(0);
+ nColor0.a = field_0x20;
+
+ GXInitTexObj(&texObj, (void*)((u32)m_blurTex + m_blurTex->imageOffset), 0x10, 4, GX_TF_I4,
+ GX_CLAMP, GX_CLAMP, GX_FALSE);
+ GXInitTexObjLOD(&texObj, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE,
+ GX_ANISO_1);
+ GXLoadTexObj(&texObj, GX_TEXMAP0);
+ GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_F32, 0);
+ GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGBA4, 8);
+ GXClearVtxDesc();
+ GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
+ GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
+ GXSetNumChans(0);
+ GXSetTevColor(GX_TEVREG0, nColor0);
+ GXSetNumTexGens(1);
+ GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C);
+ GXSetNumTevStages(1);
+ GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
+ GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0);
+ GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV);
+ GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_A0, GX_CA_TEXA, GX_CA_ZERO);
+ GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV);
+ GXLoadPosMtxImm(j3dSys.getViewMtx(), GX_PNMTX0);
+ GXSetCurrentMtx(0);
+ GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_SET);
+ GXSetCullMode(GX_CULL_NONE);
+ GXSetZMode(GX_ENABLE, GX_LEQUAL, GX_DISABLE);
+ GXSetAlphaCompare(GX_GREATER, 0, GX_AOP_OR, GX_GREATER, 0);
+
+ int temp_r26 = 0xFF / ((field_0x14 >> 1) + 1);
+ s16 var_r28 = temp_r26;
+ s16 var_r27 = 0;
+
+ GXBegin(GX_QUADS, GX_VTXFMT0, (field_0x14 * 4) + 4);
+
+ for (int i = field_0x14; i >= 0; i--) {
+ GXPosition3f32(field_0x38[i].x, field_0x38[i].y, field_0x38[i].z);
+ GXTexCoord2s16(var_r28, 0);
+
+ GXPosition3f32(field_0x308[i].x, field_0x308[i].y, field_0x308[i].z);
+ GXTexCoord2s16(var_r28, 0xFF);
+
+ GXPosition3f32(field_0x308[i + 1].x, field_0x308[i + 1].y, field_0x308[i + 1].z);
+ GXTexCoord2s16(var_r27, 0xFF);
+
+ GXPosition3f32(field_0x38[i + 1].x, field_0x38[i + 1].y, field_0x38[i + 1].z);
+ GXTexCoord2s16(var_r27, 0);
+
+ var_r27 = var_r28;
+ var_r28 += temp_r26;
+ }
+
+ GXEnd();
+ J3DShape::resetVcdVatCache();
}
/* 80125F14-80126350 120854 043C+00 1/1 0/0 0/0 .text create__20daAlink_lockCursor_cFv */
BOOL daAlink_lockCursor_c::create() {
JKRArchive* arc = dComIfG_getObjectResInfo(l_arcName)->getArchive();
- f32 tmp = 0.0f;
- field_0x2c = tmp;
+ field_0x2c = 0.0f;
field_0x4 = false;
- field_0x30 = tmp;
+ field_0x30 = 0.0f;
mScrn = new J2DScreen();
if (mScrn == NULL) {
@@ -490,9 +1956,8 @@ BOOL daAlink_lockCursor_c::create() {
mCursor0->setAnimation(field_0x20);
mCursor1->setAnimation(field_0x20);
mCursor2->setAnimation(field_0x20);
- f32 tmp2 = 0.0f;
- field_0x1c->setFrame(tmp2);
- field_0x20->setFrame(tmp2);
+ field_0x1c->setFrame(0.0f);
+ field_0x20->setFrame(0.0f);
mScrn->animation();
mScrn->setUserInfo('n_43');
@@ -514,13 +1979,59 @@ extern "C" void setAnimation__7J2DPaneFP11J2DAnmColor() {
/* 80126358-80126424 120C98 00CC+00 1/1 0/0 0/0 .text update__20daAlink_lockCursor_cFv */
void daAlink_lockCursor_c::update() {
- // NONMATCHING
+ if (field_0x2c < 21.0f) {
+ field_0x2c = 21.0f;
+ }
+
+ field_0x2c += 0.9f;
+
+ if (field_0x2c >= 50.0f) {
+ field_0x2c += -29.0f;
+ }
+
+ field_0x30 += 0.9f;
+
+ if (field_0x30 >= field_0x1c->getFrameMax()) {
+ field_0x30 -= field_0x1c->getFrameMax();
+ }
+
+ cLib_chaseUC(&field_0x4, 0x80, 30);
}
/* 80126424-80126650 120D64 022C+00 1/0 0/0 0/0 .text draw__20daAlink_lockCursor_cFv */
-extern "C" void draw__20daAlink_lockCursor_cFv() {
- // asm void daAlink_lockCursor_c::draw() {
- // NONMATCHING
+void daAlink_lockCursor_c::draw() {
+ if (field_0x4 != 0) {
+ field_0x28->setFrame(field_0x2c);
+
+ f32 var_f30;
+ if (field_0x2c > 21.0f) {
+ var_f30 = 21.0f;
+ } else {
+ var_f30 = field_0x2c;
+ }
+
+ field_0x24->setFrame(var_f30);
+ field_0x1c->setFrame(field_0x30);
+
+ mScrn->animation();
+ field_0xc->scale(0.6f, 0.6f);
+ field_0xc->translate(mPosX, mPosY);
+
+ if (!(field_0x2c < 15.0f)) {
+ f32 var_f31;
+ if (field_0x2c < 21.0f) {
+ var_f31 = ((field_0x2c - 15.0f) * 40.0f) * 0.16666667f;
+ } else {
+ var_f31 = ((field_0x4 * 0.00390625f) + 0.5f) * 40.0f;
+ }
+
+ mCursor0->translate(0.0f, -var_f31);
+ mCursor1->translate(var_f31 * cM_fcos(2.617994f), var_f31 * cM_fsin(2.617994f));
+ mCursor2->translate(var_f31 * cM_fcos(0.5235988f), var_f31 * cM_fsin(0.5235988f));
+ }
+
+ mScrn->draw(0.0f, 0.0f, dComIfGp_getCurrentGrafPort());
+ }
}
/* 80126650-801266C0 120F90 0070+00 1/1 0/0 0/0 .text create__15daAlink_sight_cFv */
@@ -535,9 +2046,13 @@ BOOL daAlink_sight_c::create() {
}
/* 801266C0-80126710 121000 0050+00 1/0 0/0 0/0 .text draw__15daAlink_sight_cFv */
-extern "C" void draw__15daAlink_sight_cFv() {
- // asm void daAlink_sight_c::draw() {
- // NONMATCHING
+void daAlink_sight_c::draw() {
+ if (mLockFlag) {
+ mLockCursor.setPos(field_0x14[0][3], field_0x14[1][3]);
+ mLockCursor.draw();
+ } else {
+ daPy_sightPacket_c::draw();
+ }
}
/* 80126710-80126740 121050 0030+00 2/2 0/0 0/0 .text onLockFlg__15daAlink_sight_cFv */
diff --git a/src/d/actor/d_a_alink_grab.inc b/src/d/actor/d_a_alink_grab.inc
index a28be3bf71..8b6388b8cb 100644
--- a/src/d/actor/d_a_alink_grab.inc
+++ b/src/d/actor/d_a_alink_grab.inc
@@ -160,67 +160,13 @@ BOOL daAlink_c::checkGrabRooster() {
return false;
}
-/* ############################################################################################## */
-/* 80425628-80425634 052348 000C+00 0/1 0/0 0/0 .bss @4421 */
-#pragma push
-#pragma force_active on
-static u8 lit_4421[12];
-#pragma pop
-
-/* 80425634-80425640 052354 000C+00 2/3 0/0 0/0 .bss l_wolfRopeBaseAnime */
-static Vec l_wolfRopeBaseAnime;
-
-/* 80425640-8042564C 052360 000C+00 0/1 0/0 0/0 .bss @14255 */
-#pragma push
-#pragma force_active on
-static u8 lit_14255[12];
-#pragma pop
-
-/* 8042564C-80425658 05236C 000C+00 0/1 0/0 0/0 .bss grabCarryOffset0$14254 */
-#pragma push
-#pragma force_active on
-static u8 grabCarryOffset0[12];
-#pragma pop
-
-/* 80425658-80425664 052378 000C+00 0/1 0/0 0/0 .bss @14259 */
-#pragma push
-#pragma force_active on
-static u8 lit_14259[12];
-#pragma pop
-
-/* 80425664-80425670 052384 000C+00 0/1 0/0 0/0 .bss grabCarryOffset1$14258 */
-#pragma push
-#pragma force_active on
-static u8 grabCarryOffset1[12];
-#pragma pop
-
-/* 80425670-8042567C 052390 000C+00 0/1 0/0 0/0 .bss @14263 */
-#pragma push
-#pragma force_active on
-static u8 lit_14263[12];
-#pragma pop
-
-/* 8042567C-80425688 05239C 000C+00 0/1 0/0 0/0 .bss grabCarryOffset2$14262 */
-#pragma push
-#pragma force_active on
-static u8 grabCarryOffset2[12];
-#pragma pop
-
-/* 80425688-80425694 0523A8 000C+00 0/1 0/0 0/0 .bss @14267 */
-#pragma push
-#pragma force_active on
-static u8 lit_14267[12];
-#pragma pop
-
-/* 80425694-804256A0 0523B4 000C+00 0/1 0/0 0/0 .bss grabCarryOffset3$14266 */
-#pragma push
-#pragma force_active on
-static u8 grabCarryOffset3[12];
-#pragma pop
-
/* 800E3F50-800E4BD4 0DE890 0C84+00 1/1 0/0 0/0 .text setGrabItemPos__9daAlink_cFv */
void daAlink_c::setGrabItemPos() {
// NONMATCHING
+ static cXyz grabCarryOffset0(0.0f, -30.0f, 25.0f);
+ static cXyz grabCarryOffset1(0.0f, 20.0f, -5.0f);
+ static cXyz grabCarryOffset2(-3.0f, 30.0f, -30.0f);
+ static cXyz grabCarryOffset3(-4.5f, 26.0f, -33.0f);
}
/* 800E4BD4-800E4DEC 0DF514 0218+00 16/16 0/0 0/0 .text freeGrabItem__9daAlink_cFv */
diff --git a/src/d/actor/d_a_alink_hook.inc b/src/d/actor/d_a_alink_hook.inc
index 719b7c4abc..65aad5148a 100644
--- a/src/d/actor/d_a_alink_hook.inc
+++ b/src/d/actor/d_a_alink_hook.inc
@@ -830,15 +830,8 @@ void daAlink_c::setHookshotTopPosFly() {
}
}
-/* ############################################################################################## */
-/* 804256A0-804256AC 0523C0 000C+00 0/1 0/0 0/0 .bss @29722 */
-#pragma push
-#pragma force_active on
-static u8 lit_29722[12];
-#pragma pop
-
/* 804256AC-804256B8 0523CC 000C+00 1/2 0/0 0/0 .bss l_hookSnowSandHitScale */
-static Vec l_hookSnowSandHitScale;
+static cXyz l_hookSnowSandHitScale(0.5f, 0.5f, 0.5f);
/* 80109BDC-8010B2DC 10451C 1700+00 1/1 0/0 0/0 .text setHookshotPos__9daAlink_cFv */
// NONMATCHING - almost, just cXyz stack order
diff --git a/src/d/actor/d_a_alink_link.inc b/src/d/actor/d_a_alink_link.inc
index 170a935d52..09ae9d599d 100644
--- a/src/d/actor/d_a_alink_link.inc
+++ b/src/d/actor/d_a_alink_link.inc
@@ -2017,12 +2017,6 @@ int daAlink_c::procCrouch() {
return 1;
}
-/* 80425604-80425610 052324 000C+00 0/1 0/0 0/0 .bss l_sumouBaseAnimeSp */
-static cXyz l_sumouBaseAnimeSp;
-
-/* 8042561C-80425628 05233C 000C+00 37/39 0/0 0/0 .bss l_wolfBaseAnime */
-static cXyz l_wolfBaseAnime;
-
BOOL daMidna_c::checkMidnaRealBody() {
return dKy_darkworld_check() == 1 || dComIfGs_isTransformLV(3);
}
diff --git a/src/d/actor/d_a_alink_weakfn.inc b/src/d/actor/d_a_alink_weakfn.inc
index 2aaa747380..0b1f40599d 100644
--- a/src/d/actor/d_a_alink_weakfn.inc
+++ b/src/d/actor/d_a_alink_weakfn.inc
@@ -1236,13 +1236,8 @@ extern "C" u8 func_80141AE8(u8*) {
}
/* 80141B04-801446D4 13C444 2BD0+00 0/0 1/0 0/0 .text __sinit_d_a_alink_cpp */
-void __sinit_d_a_alink_cpp(){// NONMATCHING
-}
-
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x80141B04, __sinit_d_a_alink_cpp);
-#pragma pop
+/* void __sinit_d_a_alink_cpp(){// NONMATCHING
+} */
/* 801446D4-801446DC 13F014 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
static void func_801446D4() {
diff --git a/src/d/actor/d_a_alink_wolf.inc b/src/d/actor/d_a_alink_wolf.inc
index 1ac02273a9..fe168f1d52 100644
--- a/src/d/actor/d_a_alink_wolf.inc
+++ b/src/d/actor/d_a_alink_wolf.inc
@@ -211,8 +211,8 @@ void daAlink_c::changeWolf() {
field_0x30b4 = 4;
field_0x30bc = 31;
field_0x30be = 36;
- field_0x32c4 = 1;
- field_0x32c6 = 2;
+ field_0x32c4[0] = 1;
+ field_0x32c4[1] = 2;
field_0x30b6 = 2;
attention_info.field_0xa = 50;
@@ -474,8 +474,8 @@ void daAlink_c::changeLink(int param_0) {
field_0x30bc = 21;
field_0x30be = 26;
field_0x30b6 = 5;
- field_0x32c4 = 2;
- field_0x32c6 = 16;
+ field_0x32c4[0] = 2;
+ field_0x32c4[1] = 16;
attention_info.field_0xa = 10;
dCcD_Cyl* cyl_p = field_0x850;
@@ -5747,13 +5747,13 @@ BOOL daAlink_c::setWolfEnemyHangBitePos(fopEn_enemy_c* i_enemy) {
/* ############################################################################################## */
/* 804256EC-804256F8 05240C 000C+00 0/1 0/0 0/0 .bss @50952 */
-#pragma push
+/* #pragma push
#pragma force_active on
static u8 lit_50952[12];
-#pragma pop
+#pragma pop */
/* 804256F8-80425708 052418 000C+04 1/2 0/0 0/0 .bss l_wolfBiteHitMarkScale */
-static Vec l_wolfBiteHitMarkScale;
+static cXyz l_wolfBiteHitMarkScale(0.5f, 0.5f, 0.5f);
/* 801396F8-801397A4 134038 00AC+00 1/1 0/0 0/0 .text
* setWolfBiteDamage__9daAlink_cFP13fopEn_enemy_c */
@@ -7834,13 +7834,7 @@ int daAlink_c::procWolfDigThroughInit(int param_0) {
mProcVar5.field_0x3012 = param_0;
- u16* var_r29;
- if (var_r27 == 13) {
- var_r29 = snowID;
- } else {
- var_r29 = smokeID;
- }
-
+ const u16* var_r29 = var_r27 == 13 ? snowID : smokeID;
for (int i = 0; i < 4; i++) {
dComIfGp_particle_set(*var_r29, &current.pos, &shape_angle, NULL);
var_r29++;
diff --git a/src/d/actor/d_a_boomerang.cpp b/src/d/actor/d_a_boomerang.cpp
index eae338e24e..41dbb175f4 100644
--- a/src/d/actor/d_a_boomerang.cpp
+++ b/src/d/actor/d_a_boomerang.cpp
@@ -242,7 +242,7 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
*/
int daBoomerang_sight_c::createHeap() {
void* resource;
- char* arcName = daAlink_c::getAlinkArcName();
+ const char* arcName = daAlink_c::getAlinkArcName();
JKRArchive* loader = dComIfG_getObjectResInfo(arcName)->getArchive();
field_0x4 = new J2DScreen();
@@ -2033,4 +2033,4 @@ static u8 data_804A2DB0[4];
static u8 data_804A2DB4[4];
#pragma pop
-/* 804A2990-804A2990 000140 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ \ No newline at end of file
+/* 804A2990-804A2990 000140 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
diff --git a/src/d/d_particle.cpp b/src/d/d_particle.cpp
index 927f61ef30..a84bee23eb 100644
--- a/src/d/d_particle.cpp
+++ b/src/d/d_particle.cpp
@@ -1194,7 +1194,7 @@ u8 dPa_control_c::mLifeBall[24];
JPAEmitterManager* dPa_control_c::mEmitterMng;
/* 80450EA4-80450EA8 0003A4 0004+00 1/1 1/1 0/0 .sbss mWaterBubblePcallBack__13dPa_control_c */
-u8 dPa_control_c::mWaterBubblePcallBack[4];
+JPAParticleCallBack dPa_control_c::mWaterBubblePcallBack;
/* 80450EA8-80450EAC 0003A8 0004+00 3/3 0/0 0/0 .sbss mFsenthPcallBack__13dPa_control_c
*/