mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-12 13:35:35 -04:00
Merge branch 'main' of https://github.com/zeldaret/tp
This commit is contained in:
@@ -219,7 +219,7 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa
|
||||
@1012 = .bss:0x0000003C; // type:object size:0x1 scope:local
|
||||
@1010 = .bss:0x00000040; // type:object size:0x1 scope:local
|
||||
@1009 = .bss:0x00000044; // type:object size:0x1 scope:local
|
||||
lbl_65_bss_45 = .bss:0x00000045; // type:object size:0x1 data:byte
|
||||
l_initHIO = .bss:0x00000045; // type:object size:0x1 data:byte
|
||||
@3805 = .bss:0x00000048; // type:object size:0xC scope:local
|
||||
l_HIO = .bss:0x00000054; // type:object size:0x28 scope:global data:byte
|
||||
target_info = .bss:0x0000007C; // type:object size:0x28 scope:global
|
||||
|
||||
@@ -325,8 +325,10 @@ l_backFootOffset = .bss:0x0000006C; // type:object size:0xC scope:global align:4
|
||||
init$4891 = .bss:0x00000084; // type:object size:0x1 scope:local align:1
|
||||
localEyePos$7278 = .bss:0x00000088; // type:object size:0xC scope:local
|
||||
@7469 = .bss:0x00000094; // type:object size:0xC scope:local
|
||||
init$5140 = .bss:0x000000A0; // type:object size:0x1 scope:local align:1
|
||||
runScale$7468 = .bss:0x000000A4; // type:object size:0xC scope:local
|
||||
@7473 = .bss:0x000000B0; // type:object size:0xC scope:local
|
||||
init$5144 = .bss:0x000000BC; // type:object size:0x1 scope:local align:1
|
||||
landScale$7472 = .bss:0x000000C0; // type:object size:0xC scope:local
|
||||
@7477 = .bss:0x000000CC; // type:object size:0xC scope:local
|
||||
init$5083 = .bss:0x000000D8; // type:object size:0x1 scope:local align:1
|
||||
|
||||
+30
-30
@@ -731,9 +731,9 @@ config.libs = [
|
||||
Object(MatchingFor(ALL_GCN, "Shield", "ShieldD"), "d/d_bg_s_wtr_chk.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_bg_w.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_bg_w_base.cpp"),
|
||||
Object(NonMatching, "d/d_bg_w_kcol.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_bg_w_kcol.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_bg_w_sv.cpp"),
|
||||
Object(Equivalent, "d/d_cc_d.cpp"), # weak func order
|
||||
Object(Equivalent, "d/d_cc_d.cpp"), # weak func order (cCcD_ShapeAttr::GetCoCP)
|
||||
Object(MatchingFor(ALL_GCN), "d/d_cc_mass_s.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_cc_s.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_cc_uty.cpp"),
|
||||
@@ -805,7 +805,7 @@ config.libs = [
|
||||
Object(MatchingFor(ALL_GCN), "d/d_meter2.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_msg_out_font.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_msg_class.cpp"),
|
||||
Object(Equivalent, "d/d_msg_object.cpp"), # weak func order
|
||||
Object(Equivalent, "d/d_msg_object.cpp"), # weak func order
|
||||
Object(MatchingFor("GZ2P01", "GZ2J01"), "d/d_msg_unit.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_msg_scrn_3select.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_msg_scrn_arrow.cpp"),
|
||||
@@ -964,7 +964,7 @@ config.libs = [
|
||||
[
|
||||
Object(MatchingFor(ALL_GCN), "JSystem/JStudio/JStudio/ctb.cpp"),
|
||||
Object(MatchingFor(ALL_GCN, "Shield", "ShieldD"), "JSystem/JStudio/JStudio/ctb-data.cpp"),
|
||||
Object(Equivalent, "JSystem/JStudio/JStudio/functionvalue.cpp"), # weak func order
|
||||
Object(MatchingFor(ALL_GCN), "JSystem/JStudio/JStudio/functionvalue.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "JSystem/JStudio/JStudio/fvb.cpp"),
|
||||
Object(MatchingFor(ALL_GCN, "Shield"), "JSystem/JStudio/JStudio/fvb-data.cpp"),
|
||||
Object(MatchingFor(ALL_GCN, "Shield"), "JSystem/JStudio/JStudio/fvb-data-parse.cpp"),
|
||||
@@ -1069,7 +1069,7 @@ config.libs = [
|
||||
Object(MatchingFor(ALL_GCN, "ShieldD"), "JSystem/JAudio2/JAUBankTable.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "JSystem/JAudio2/JAUClusterSound.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "JSystem/JAudio2/JAUInitializer.cpp"),
|
||||
Object(Equivalent, "JSystem/JAudio2/JAUSectionHeap.cpp"), # weak function order
|
||||
Object(Equivalent, "JSystem/JAudio2/JAUSectionHeap.cpp"), # weak func order
|
||||
Object(MatchingFor(ALL_GCN), "JSystem/JAudio2/JAUSeqCollection.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "JSystem/JAudio2/JAUSeqDataBlockMgr.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "JSystem/JAudio2/JAUSoundAnimator.cpp"),
|
||||
@@ -1114,7 +1114,7 @@ config.libs = [
|
||||
Object(MatchingFor(ALL_GCN), "Z2AudioLib/Z2EnvSeMgr.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "Z2AudioLib/Z2WolfHowlMgr.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "Z2AudioLib/Z2SpeechMgr2.cpp"),
|
||||
Object(NonMatching, "Z2AudioLib/Z2AudioMgr.cpp"),
|
||||
Object(Equivalent, "Z2AudioLib/Z2AudioMgr.cpp"), # weak func order
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -1235,7 +1235,7 @@ config.libs = [
|
||||
Object(MatchingFor(ALL_GCN), "JSystem/J3DGraphBase/J3DTexture.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "JSystem/J3DGraphBase/J3DPacket.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "JSystem/J3DGraphBase/J3DShapeMtx.cpp"),
|
||||
Object(NonMatching, "JSystem/J3DGraphBase/J3DShapeDraw.cpp"),
|
||||
Object(MatchingFor(ALL_GCN, "ShieldD"), "JSystem/J3DGraphBase/J3DShapeDraw.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "JSystem/J3DGraphBase/J3DShape.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "JSystem/J3DGraphBase/J3DMaterial.cpp"),
|
||||
Object(Equivalent, "JSystem/J3DGraphBase/J3DMatBlock.cpp"), # virtual function order
|
||||
@@ -1254,7 +1254,7 @@ config.libs = [
|
||||
Object(MatchingFor(ALL_GCN), "JSystem/J3DGraphAnimator/J3DModel.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "JSystem/J3DGraphAnimator/J3DAnimation.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "JSystem/J3DGraphAnimator/J3DMaterialAnm.cpp"),
|
||||
Object(NonMatching, "JSystem/J3DGraphAnimator/J3DSkinDeform.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "JSystem/J3DGraphAnimator/J3DSkinDeform.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "JSystem/J3DGraphAnimator/J3DCluster.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "JSystem/J3DGraphAnimator/J3DJoint.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "JSystem/J3DGraphAnimator/J3DMaterialAttach.cpp"),
|
||||
@@ -1286,7 +1286,7 @@ config.libs = [
|
||||
[
|
||||
Object(MatchingFor("ShieldD"), "JSystem/JHostIO/JHIComm.cpp"),
|
||||
Object(MatchingFor("ShieldD"), "JSystem/JHostIO/JHICommonMem.cpp"),
|
||||
Object(Equivalent, "JSystem/JHostIO/JORServer.cpp"), # weak func order
|
||||
Object(Equivalent, "JSystem/JHostIO/JORServer.cpp"), # debug weak func order
|
||||
Object(MatchingFor("ShieldD"), "JSystem/JHostIO/JOREntry.cpp", extra_cflags=["-sym off"]), # debug weak func order
|
||||
Object(MatchingFor("ShieldD"), "JSystem/JHostIO/JORFile.cpp", extra_cflags=["-sym off"]),
|
||||
Object(MatchingFor("ShieldD"), "JSystem/JHostIO/JORMessageBox.cpp"),
|
||||
@@ -1703,7 +1703,7 @@ config.libs = [
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_obj_swpush"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_obj_timer"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_path_line"),
|
||||
ActorRel(NonMatching, "d_a_scene_exit"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_scene_exit"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_set_bgobj"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_swhit0"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_tag_allmato"),
|
||||
@@ -1714,13 +1714,13 @@ config.libs = [
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_tag_evtarea"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_tag_evtmsg"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_tag_howl"),
|
||||
ActorRel(NonMatching, "d_a_tag_kmsg"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_tag_kmsg"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_tag_lantern"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_tag_mist"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_tag_msg"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_tag_push"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_tag_telop"),
|
||||
ActorRel(Equivalent, "d_a_tbox"), # weak func order
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_tbox"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_tbox2"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_vrbox"),
|
||||
ActorRel(NonMatching, "d_a_vrbox2"),
|
||||
@@ -1729,9 +1729,9 @@ config.libs = [
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_crod"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_demo00"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_disappear"),
|
||||
ActorRel(Equivalent, "d_a_mg_rod"), # regalloc; weak func order; inlining issues
|
||||
ActorRel(Equivalent, "d_a_mg_rod"), # weak func order
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_midna"),
|
||||
ActorRel(Equivalent, "d_a_nbomb"), # weak func order
|
||||
ActorRel(Equivalent, "d_a_nbomb"), # weak func order
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_obj_life_container"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_obj_yousei"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_spinner"),
|
||||
@@ -1941,8 +1941,8 @@ config.libs = [
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_e_zs"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_formation_mng"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_guard_mng"),
|
||||
ActorRel(NonMatching, "d_a_horse"),
|
||||
ActorRel(NonMatching, "d_a_hozelda"),
|
||||
ActorRel(Equivalent, "d_a_horse"), # weak func order (J3DMtxCalcNoAnm)
|
||||
ActorRel(Equivalent, "d_a_hozelda"), # weak func order (J3DMtxCalcNoAnm)
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_izumi_gate"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_kago"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_kytag01"),
|
||||
@@ -1963,12 +1963,12 @@ config.libs = [
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_myna"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_ni"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_aru"),
|
||||
ActorRel(Equivalent, "d_a_npc_ash"), # weak func order (sinShort)
|
||||
ActorRel(Equivalent, "d_a_npc_ashB"), # weak func order (sinShort)
|
||||
ActorRel(Equivalent, "d_a_npc_ash"), # weak func order (sinShort)
|
||||
ActorRel(Equivalent, "d_a_npc_ashB"), # weak func order (sinShort)
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_bans"),
|
||||
ActorRel(NonMatching, "d_a_npc_blue_ns"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_bou"),
|
||||
ActorRel(Equivalent, "d_a_npc_bouS"), # weak func order (sinShort)
|
||||
ActorRel(Equivalent, "d_a_npc_bouS"), # weak func order (sinShort)
|
||||
ActorRel(Equivalent, "d_a_npc_cdn3"), # weak func order (~csXyz); vtable order
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_chat"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_chin"),
|
||||
@@ -1998,9 +1998,9 @@ config.libs = [
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_hanjo"),
|
||||
ActorRel(MatchingFor(ALL_GCN, "Shield"), "d_a_npc_henna0"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_hoz"),
|
||||
ActorRel(Equivalent, "d_a_npc_impal"), # weak func order
|
||||
ActorRel(Equivalent, "d_a_npc_impal"), # weak func order (sinShort)
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_inko"),
|
||||
ActorRel(Equivalent, "d_a_npc_ins"), # weak func order
|
||||
ActorRel(Equivalent, "d_a_npc_ins"), # weak func order (sinShort)
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_jagar"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_kasi_hana"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_kasi_kyu"),
|
||||
@@ -2009,7 +2009,7 @@ config.libs = [
|
||||
ActorRel(NonMatching, "d_a_npc_kn"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_knj"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_kolinb"),
|
||||
ActorRel(Equivalent, "d_a_npc_ks"), # weak func order
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_ks"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_kyury"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_len"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_lf"),
|
||||
@@ -2030,7 +2030,7 @@ config.libs = [
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_pouya"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_prayer"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_raca"),
|
||||
ActorRel(Equivalent, "d_a_npc_rafrel"), # weak func order
|
||||
ActorRel(Equivalent, "d_a_npc_rafrel"), # weak func order (sinShort)
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_saru"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_seib"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_seic"),
|
||||
@@ -2038,7 +2038,7 @@ config.libs = [
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_seira"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_seira2"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_seirei"),
|
||||
ActorRel(Equivalent, "d_a_npc_shad"), # weak func order
|
||||
ActorRel(Equivalent, "d_a_npc_shad"), # weak func order (sinShort)
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_shaman"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_shoe"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_shop0"),
|
||||
@@ -2047,23 +2047,23 @@ config.libs = [
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_soldierA"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_soldierB"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_sq"),
|
||||
ActorRel(NonMatching, "d_a_npc_the"),
|
||||
ActorRel(Equivalent, "d_a_npc_the"), # weak func order (sinShort)
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_theB"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_tk"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_tkc"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_tkj2"),
|
||||
ActorRel(NonMatching, "d_a_npc_tks"), # weak func order (sinShort)
|
||||
ActorRel(Equivalent, "d_a_npc_tks"), # weak func order (sinShort)
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_toby"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_tr"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_uri"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_worm"),
|
||||
ActorRel(NonMatching, "d_a_npc_wrestler"),
|
||||
ActorRel(NonMatching, "d_a_npc_wrestler"), # regalloc; weak func order (sinShort)
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_yamid"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_yamis"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_yamit"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_yelia"),
|
||||
ActorRel(NonMatching, "d_a_npc_ykm"),
|
||||
ActorRel(NonMatching, "d_a_npc_ykw"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_ykm"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_ykw"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_zanb"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_zant"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_npc_zelR"),
|
||||
@@ -2339,7 +2339,7 @@ config.libs = [
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_obj_thashi"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_obj_thdoor"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_obj_timeFire"),
|
||||
ActorRel(Equivalent, "d_a_obj_tks"), # weak function order
|
||||
ActorRel(Equivalent, "d_a_obj_tks"), # weak func order (sinShort)
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_obj_tmoon"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_obj_toaru_maki"),
|
||||
ActorRel(MatchingFor(ALL_GCN), "d_a_obj_toby"),
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define J2DMATBLOCK_H
|
||||
|
||||
#include "JSystem/J2DGraph/J2DTevs.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "JSystem/JUtility/TColor.h"
|
||||
|
||||
class JUTFont;
|
||||
@@ -117,6 +118,7 @@ public:
|
||||
}
|
||||
virtual J2DTevOrder* getTevOrder(u32 index) { return &mTevOrder[index]; }
|
||||
virtual void setTevColor(u32 index, J2DGXColorS10 color) {
|
||||
J3D_PANIC(250, index < 4, "Error : range over.");
|
||||
mTevColor[index] = color;
|
||||
}
|
||||
virtual J2DGXColorS10* getTevColor(u32 index) { return &mTevColor[index]; }
|
||||
@@ -212,6 +214,7 @@ public:
|
||||
}
|
||||
virtual J2DTevOrder* getTevOrder(u32 index) { return &mTevOrder[index]; }
|
||||
virtual void setTevColor(u32 index, J2DGXColorS10 color) {
|
||||
J3D_PANIC(360, index < 4, "Error : range over.");
|
||||
mTevColor[index] = color;
|
||||
}
|
||||
virtual J2DGXColorS10* getTevColor(u32 index) { return &mTevColor[index]; }
|
||||
@@ -309,6 +312,7 @@ public:
|
||||
}
|
||||
virtual J2DTevOrder* getTevOrder(u32 index) { return &mTevOrder[index]; }
|
||||
virtual void setTevColor(u32 index, J2DGXColorS10 color) {
|
||||
J3D_PANIC(468, index < 4, "Error : range over.");
|
||||
mTevColor[index] = color;
|
||||
}
|
||||
virtual J2DGXColorS10* getTevColor(u32 index) { return &mTevColor[index]; }
|
||||
@@ -406,6 +410,7 @@ public:
|
||||
}
|
||||
virtual J2DTevOrder* getTevOrder(u32 index) { return &mTevOrder[index]; }
|
||||
virtual void setTevColor(u32 index, J2DGXColorS10 color) {
|
||||
J3D_PANIC(579, index < 4, "Error : range over.");
|
||||
mTevColor[index] = color;
|
||||
}
|
||||
virtual J2DGXColorS10* getTevColor(u32 index) { return &mTevColor[index]; }
|
||||
@@ -504,6 +509,7 @@ public:
|
||||
}
|
||||
virtual J2DTevOrder* getTevOrder(u32 index) { return &mTevOrder[index]; }
|
||||
virtual void setTevColor(u32 index, J2DGXColorS10 color) {
|
||||
J3D_PANIC(691, index < 4, "Error : range over.");
|
||||
mTevColor[index] = color;
|
||||
}
|
||||
virtual J2DGXColorS10* getTevColor(u32 index) { return &mTevColor[index]; }
|
||||
|
||||
@@ -11,8 +11,6 @@ namespace JASDsp {
|
||||
class TChannel;
|
||||
}
|
||||
|
||||
#define CHANNEL_MAX 6
|
||||
|
||||
/**
|
||||
* @ingroup jsystem-jaudio
|
||||
*
|
||||
@@ -130,6 +128,8 @@ public:
|
||||
|
||||
static u32 getBlockSize() { return sBlockSize; }
|
||||
|
||||
static const int CHANNEL_MAX = 6;
|
||||
|
||||
/* 0x000 */ OSMessageQueue field_0x000;
|
||||
/* 0x020 */ OSMessageQueue field_0x020;
|
||||
/* 0x040 */ void* field_0x040[16];
|
||||
|
||||
@@ -29,7 +29,7 @@ public:
|
||||
|
||||
void* getBase() { return mBase; }
|
||||
bool isAllocated() { return mBase; }
|
||||
u32 getSize() { return mSize; }
|
||||
u32 getSize() const { return mSize; }
|
||||
|
||||
/* 0x00 */ JSUTree<JASHeap> mTree;
|
||||
/* 0x1C */ OSMutex mMutex;
|
||||
|
||||
@@ -59,7 +59,6 @@ public:
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
// NONMATCHING regalloc
|
||||
virtual bool deleteStreamAram(u32 param_0) {
|
||||
for (u32 i = 0; i < field_0x4c; i++) {
|
||||
if (!this->field_0x4.test(i)) {
|
||||
@@ -80,7 +79,7 @@ public:
|
||||
if (!heap) {
|
||||
heap = JASKernel::getAramHeap();
|
||||
}
|
||||
if (numReserve < 1) {
|
||||
if (numReserve <= 0) {
|
||||
numReserve = 1;
|
||||
}
|
||||
JUT_ASSERT(83, numReserve <= MAX_CHUNKS);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#ifndef BINARY_H
|
||||
#define BINARY_H
|
||||
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JGadget/search.h"
|
||||
|
||||
@@ -14,7 +15,12 @@ struct TEBit {
|
||||
const void* parseVariableUInt_16_32_following(const void* pu16, u32* pu32First, u32* pu32Second,
|
||||
TEBit* tebit);
|
||||
|
||||
inline bool isPower2(unsigned int arg0) {
|
||||
return arg0 != 0 && (arg0 & arg0 - 1) == 0;
|
||||
}
|
||||
|
||||
inline u32 align_roundUp(unsigned int arg0, unsigned int uAlign) {
|
||||
JUT_ASSERT(98, isPower2(uAlign));
|
||||
return (arg0 + uAlign - 1) & ~(uAlign - 1);
|
||||
}
|
||||
|
||||
|
||||
@@ -235,7 +235,7 @@ struct TLinkList : TNodeLinkList {
|
||||
iterator end() { return iterator(TNodeLinkList::end()); }
|
||||
const_iterator end() const { return const_iterator(const_cast<TLinkList*>(this)->end()); }
|
||||
T& front() { return *begin(); }
|
||||
T& back() { return *--end(); }
|
||||
T& back() { JUT_ASSERT(652, !empty()); return *--end(); }
|
||||
void pop_front() { erase(TNodeLinkList::begin()); }
|
||||
void Push_front(T* element) { Insert(begin(), element); }
|
||||
void Push_back(T* element) { Insert(end(), element); }
|
||||
|
||||
@@ -111,14 +111,14 @@ inline Iterator findUpperBound_binary_end(Iterator first, Iterator last, const T
|
||||
}
|
||||
|
||||
template <typename Iterator, typename T, typename Predicate>
|
||||
Iterator findUpperBound_binary_current(Iterator first, Iterator last, Iterator current, const T& val, Predicate p) {
|
||||
inline Iterator findUpperBound_binary_current(Iterator first, Iterator last, Iterator current, const T& val, Predicate p) {
|
||||
return current == last || p(val, *current) ?
|
||||
findUpperBound_binary_end(first, current, val, p) :
|
||||
findUpperBound_binary_begin(current, last, val, p);
|
||||
}
|
||||
|
||||
template <typename Iterator, typename T>
|
||||
Iterator findUpperBound_binary_current(Iterator first, Iterator last, Iterator current, const T& val) {
|
||||
inline Iterator findUpperBound_binary_current(Iterator first, Iterator last, Iterator current, const T& val) {
|
||||
return findUpperBound_binary_current(first, last, current, val, std::less<T>());
|
||||
}
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ struct TVector_pointer_void : TVector<void*, TAllocator> {
|
||||
void insert(void**, void* const&);
|
||||
|
||||
void clear() { erase(begin(), end()); }
|
||||
void push_back(const void*& ref) { insert(end(), (void* const&)ref); }
|
||||
void push_back(void* const& ref) { insert(end(), ref); }
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
@@ -66,7 +66,7 @@ struct TVector_pointer : TVector_pointer_void {
|
||||
T* end() { return (T*)TVector_pointer_void::end(); }
|
||||
|
||||
void push_back(const T& ref) {
|
||||
static_cast<TVector_pointer_void*>(this)->push_back((const void*&)ref);
|
||||
static_cast<TVector_pointer_void*>(this)->push_back(ref);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -268,19 +268,15 @@ struct TVec3<f32> : public Vec {
|
||||
return inv_norm * sq;
|
||||
}
|
||||
|
||||
void normalize(const TVec3<f32>& other) {
|
||||
f32 normalize(const TVec3<f32>& other) {
|
||||
f32 sq = other.squared();
|
||||
if (sq <= TUtil<f32>::epsilon()) {
|
||||
zero();
|
||||
return;
|
||||
}
|
||||
f32 norm;
|
||||
if (sq <= 0.0f) {
|
||||
norm = sq;
|
||||
} else {
|
||||
norm = fsqrt_step(sq);
|
||||
return 0.0f;
|
||||
}
|
||||
f32 norm = TUtil<f32>::inv_sqrt(sq);
|
||||
scale(norm, other);
|
||||
return norm * sq;
|
||||
}
|
||||
|
||||
f32 length() const {
|
||||
@@ -411,12 +407,12 @@ struct TVec2 {
|
||||
TVec2(T v) { set(v); }
|
||||
|
||||
template <typename U>
|
||||
TVec2(U x, U y) { set(x, y); }
|
||||
TVec2(const U x, const U y) { set(x, y); }
|
||||
|
||||
void set(T v) { y = x = v; }
|
||||
|
||||
template <typename U>
|
||||
void set(U x, U y) {
|
||||
void set(const U x, const U y) {
|
||||
this->x = x;
|
||||
this->y = y;
|
||||
}
|
||||
@@ -518,7 +514,7 @@ struct TBox2 : public TBox<TVec2<T> > {
|
||||
}
|
||||
}
|
||||
|
||||
void set(const TBox2& other) { set(other.i, other.f); }
|
||||
void set(const TBox<TVec2<T> >& other) { set(other.i, other.f); }
|
||||
void set(const TVec2<f32>& i, const TVec2<f32>& f) { this->i.set(i), this->f.set(f); }
|
||||
void set(f32 x0, f32 y0, f32 x1, f32 y1) { this->i.set(x0, y0); this->f.set(x1, y1); }
|
||||
};
|
||||
|
||||
@@ -85,7 +85,7 @@ inline u8* JKRAramToMainRam(u32 p1, u8* p2, u32 p3, JKRExpandSwitch p4, u32 p5,
|
||||
return JKRAram::aramToMainRam(p1, p2, p3, p4, p5, p6, p7, p8);
|
||||
}
|
||||
|
||||
inline JKRAramBlock *JKRMainRamToAram(u8 *buf, u32 bufSize, u32 alignedSize, JKRExpandSwitch expandSwitch, u32 fileSize, JKRHeap *heap, int id, u32 *pSize) {
|
||||
inline JKRAramBlock* JKRMainRamToAram(u8 *buf, u32 bufSize, u32 alignedSize, JKRExpandSwitch expandSwitch, u32 fileSize, JKRHeap *heap, int id, u32 *pSize) {
|
||||
return JKRAram::mainRamToAram(buf, bufSize, alignedSize, expandSwitch, fileSize, heap, id, pSize);
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ inline float __frsqrtes(__REGISTER double f) {
|
||||
#endif
|
||||
}
|
||||
|
||||
inline f32 JMAFastSqrt(__REGISTER f32 input) {
|
||||
inline f32 JMAFastSqrt(__REGISTER const f32 input) {
|
||||
#ifdef __MWERKS__
|
||||
if (input > 0.0f) {
|
||||
__REGISTER f32 out;
|
||||
|
||||
@@ -264,7 +264,7 @@ public:
|
||||
/* 0xE8 */ JPAResource* mpRes;
|
||||
/* 0xEC */ JPAEmitterCallBack* mpEmtrCallBack;
|
||||
/* 0xF0 */ JPAParticleCallBack* mpPtclCallBack;
|
||||
/* 0xF4 */ volatile u32 mStatus;
|
||||
/* 0xF4 */ u32 mStatus;
|
||||
/* 0xF8 */ f32 mEmitCount;
|
||||
/* 0xFC */ f32 mScaleOut;
|
||||
/* 0x100 */ u32 mTick;
|
||||
|
||||
@@ -55,8 +55,7 @@ struct data {
|
||||
}
|
||||
|
||||
const void* getContent() const {
|
||||
const THeaderData* header = (THeaderData*) getRaw();
|
||||
return header->content;
|
||||
return ((THeaderData*) getRaw())->content;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -86,7 +85,7 @@ struct data {
|
||||
}
|
||||
|
||||
const void* getBlockEnd_() const {
|
||||
return get()->field_0x8;
|
||||
return ((const TBlockData*)getRaw())->field_0x8;
|
||||
}
|
||||
|
||||
const void* get_ID() const {
|
||||
@@ -134,11 +133,11 @@ struct TControl {
|
||||
JStudio::ctb::TObject* getObject(void const*, u32);
|
||||
JStudio::ctb::TObject* getObject_index(u32);
|
||||
|
||||
TFactory* getFactory() { return pFactory_; }
|
||||
TFactory* getFactory() const { return pFactory_; }
|
||||
void setFactory(TFactory* factory) { pFactory_ = factory; }
|
||||
|
||||
/* 0x4 */ TFactory* pFactory_;
|
||||
/* 0x8 */ JGadget::TLinkList<TObject, -12> mList;
|
||||
/* 0x8 */ JGadget::TLinkList<TObject, -12> ocObject_;
|
||||
};
|
||||
|
||||
struct TParse : public JGadget::binary::TParse_header_block {
|
||||
|
||||
@@ -157,7 +157,6 @@ private:
|
||||
class TFunctionValue_constant : public TFunctionValue {
|
||||
public:
|
||||
TFunctionValue_constant();
|
||||
virtual ~TFunctionValue_constant() {}
|
||||
|
||||
virtual u32 getType() const;
|
||||
virtual TFunctionValueAttributeSet getAttributeSet();
|
||||
@@ -195,7 +194,6 @@ public:
|
||||
const TFunctionValue_composite::TData&, f64);
|
||||
|
||||
TFunctionValue_composite();
|
||||
virtual ~TFunctionValue_composite() {}
|
||||
|
||||
virtual u32 getType() const;
|
||||
virtual TFunctionValueAttributeSet getAttributeSet();
|
||||
@@ -232,7 +230,6 @@ class TFunctionValue_transition : public TFunctionValue,
|
||||
public TFunctionValueAttribute_interpolate {
|
||||
public:
|
||||
TFunctionValue_transition();
|
||||
virtual ~TFunctionValue_transition() {}
|
||||
|
||||
virtual u32 getType() const;
|
||||
virtual TFunctionValueAttributeSet getAttributeSet();
|
||||
@@ -264,7 +261,6 @@ public:
|
||||
typedef f64 (*update_INTERPOLATE)(const TFunctionValue_list&, const TIndexData_&);
|
||||
|
||||
TFunctionValue_list();
|
||||
virtual ~TFunctionValue_list() {}
|
||||
|
||||
virtual u32 getType() const;
|
||||
virtual TFunctionValueAttributeSet getAttributeSet();
|
||||
@@ -380,7 +376,6 @@ public:
|
||||
typedef f64 (*update_INTERPOLATE)(const TFunctionValue_list_parameter&, f64);
|
||||
|
||||
TFunctionValue_list_parameter();
|
||||
virtual ~TFunctionValue_list_parameter() {}
|
||||
|
||||
virtual u32 getType() const;
|
||||
virtual TFunctionValueAttributeSet getAttributeSet();
|
||||
@@ -499,7 +494,6 @@ public:
|
||||
};
|
||||
|
||||
TFunctionValue_hermite();
|
||||
virtual ~TFunctionValue_hermite() {}
|
||||
|
||||
virtual u32 getType() const;
|
||||
virtual TFunctionValueAttributeSet getAttributeSet();
|
||||
@@ -545,7 +539,7 @@ inline f64 extrapolateParameter_clamp(f64 value, f64 max) {
|
||||
return 0.0;
|
||||
|
||||
if (max <= value)
|
||||
value = max;
|
||||
return max;
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
@@ -142,31 +142,31 @@ public:
|
||||
*pDst = rSrc;
|
||||
}
|
||||
|
||||
void transformOnSet_transform(TTransform_position* param_1, TTransform_position* param_2) const {
|
||||
transformOnSet_transformTranslation(*param_1, param_2);
|
||||
void transformOnSet_transform(const TTransform_position ¶m_1, TTransform_position* param_2) const {
|
||||
transformOnSet_transformTranslation(param_1, param_2);
|
||||
}
|
||||
|
||||
void transformOnSet_transform(TTransform_translation_rotation_scaling* param_1,
|
||||
void transformOnSet_transform(const TTransform_translation_rotation_scaling& param_1,
|
||||
TTransform_translation_rotation_scaling* param_2) const {
|
||||
transformOnSet_transformTranslation(param_1->translation, ¶m_2->translation);
|
||||
transformOnSet_transformRotation(param_1->rotation, ¶m_2->rotation);
|
||||
transformOnSet_transformScaling(param_1->scaling, ¶m_2->scaling);
|
||||
transformOnSet_transformTranslation(param_1.translation, ¶m_2->translation);
|
||||
transformOnSet_transformRotation(param_1.rotation, ¶m_2->rotation);
|
||||
transformOnSet_transformScaling(param_1.scaling, ¶m_2->scaling);
|
||||
}
|
||||
|
||||
TTransform_position* transformOnSet_transform_ifEnabled(TTransform_position* param_1,
|
||||
const TTransform_position* transformOnSet_transform_ifEnabled(const TTransform_position& param_1,
|
||||
TTransform_position* param_2) const {
|
||||
if (!transformOnSet_isEnabled()) {
|
||||
return param_1;
|
||||
return ¶m_1;
|
||||
}
|
||||
transformOnSet_transform(param_1, param_2);
|
||||
return param_2;
|
||||
}
|
||||
|
||||
TTransform_translation_rotation_scaling*
|
||||
transformOnSet_transform_ifEnabled(TTransform_translation_rotation_scaling* param_1,
|
||||
const TTransform_translation_rotation_scaling*
|
||||
transformOnSet_transform_ifEnabled(const TTransform_translation_rotation_scaling& param_1,
|
||||
TTransform_translation_rotation_scaling* param_2) const {
|
||||
if (!transformOnSet_isEnabled()) {
|
||||
return param_1;
|
||||
return ¶m_1;
|
||||
}
|
||||
transformOnSet_transform(param_1, param_2);
|
||||
return param_2;
|
||||
@@ -187,33 +187,33 @@ public:
|
||||
MTXMultVecSR(transformOnGet_getMatrix(), &rSrc, pDst);
|
||||
}
|
||||
|
||||
void transformOnGet_transform(TTransform_position_direction* param_1,
|
||||
void transformOnGet_transform(const TTransform_position_direction& param_1,
|
||||
TTransform_position_direction* pDst) const {
|
||||
JUT_ASSERT(289, pDst!=NULL);
|
||||
transformOnGet_transformTranslation(param_1->position, &pDst->position);
|
||||
transformOnGet_transformDirection(param_1->direction, &pDst->direction);
|
||||
transformOnGet_transformTranslation(param_1.position, &pDst->position);
|
||||
transformOnGet_transformDirection(param_1.direction, &pDst->direction);
|
||||
}
|
||||
|
||||
TTransform_position_direction*
|
||||
transformOnGet_transform_ifEnabled(TTransform_position_direction& param_1,
|
||||
const TTransform_position_direction*
|
||||
transformOnGet_transform_ifEnabled(const TTransform_position_direction& param_1,
|
||||
TTransform_position_direction* param_2) const {
|
||||
if (!transformOnGet_isEnabled()) {
|
||||
return ¶m_1;
|
||||
}
|
||||
transformOnGet_transform(¶m_1, param_2);
|
||||
transformOnGet_transform(param_1, param_2);
|
||||
return param_2;
|
||||
}
|
||||
|
||||
void transformOnGet_transform(TTransform_position* param_1,
|
||||
void transformOnGet_transform(const TTransform_position& param_1,
|
||||
TTransform_position* pDst) const {
|
||||
transformOnGet_transformTranslation(*param_1, pDst);
|
||||
transformOnGet_transformTranslation(param_1, pDst);
|
||||
}
|
||||
|
||||
TTransform_position*
|
||||
transformOnGet_transform_ifEnabled(TTransform_position* param_1,
|
||||
const TTransform_position*
|
||||
transformOnGet_transform_ifEnabled(const TTransform_position& param_1,
|
||||
TTransform_position* param_2) const {
|
||||
if (!transformOnGet_isEnabled()) {
|
||||
return param_1;
|
||||
return ¶m_1;
|
||||
}
|
||||
transformOnGet_transform(param_1, param_2);
|
||||
return param_2;
|
||||
@@ -257,18 +257,18 @@ public:
|
||||
MTXMultVecSR(transformOnSet_getMatrix(), &rSrc, pDst);
|
||||
}
|
||||
|
||||
void transformOnSet_transform(TTransform_position_direction* param_1,
|
||||
void transformOnSet_transform(const TTransform_position_direction& param_1,
|
||||
TTransform_position_direction* pDst) const {
|
||||
JUT_ASSERT(219, pDst!=NULL);
|
||||
transformOnSet_transformTranslation(param_1->position, &pDst->position);
|
||||
transformOnSet_transformDirection(param_1->direction, &pDst->direction);
|
||||
transformOnSet_transformTranslation(param_1.position, &pDst->position);
|
||||
transformOnSet_transformDirection(param_1.direction, &pDst->direction);
|
||||
}
|
||||
|
||||
TTransform_position_direction*
|
||||
transformOnSet_transform_ifEnabled(TTransform_position_direction* param_1,
|
||||
const TTransform_position_direction*
|
||||
transformOnSet_transform_ifEnabled(const TTransform_position_direction& param_1,
|
||||
TTransform_position_direction* param_2) const {
|
||||
if (!transformOnSet_isEnabled()) {
|
||||
return param_1;
|
||||
return ¶m_1;
|
||||
}
|
||||
transformOnSet_transform(param_1, param_2);
|
||||
return param_2;
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace object {
|
||||
|
||||
struct TIDData {
|
||||
public:
|
||||
TIDData(const void* id, u32 id_size) : mID(id), mID_size(id_size) {}
|
||||
TIDData(const void* pID, u32 uIDSize_) : mID(pID), mID_size(uIDSize_) {}
|
||||
|
||||
static bool isEqual(JStudio::object::TIDData const&, JStudio::object::TIDData const&);
|
||||
inline const u8* getID() const { return (const u8*)mID; }
|
||||
@@ -20,17 +20,21 @@ protected:
|
||||
/* 0x04 */ u32 mID_size;
|
||||
};
|
||||
|
||||
struct TObject_ID : public TIDData {
|
||||
TObject_ID(const void* id, u32 id_size) : TIDData(id, id_size) {}
|
||||
struct TObject_ID {
|
||||
TObject_ID(const void* id, u32 id_size) : mData(id, id_size) {}
|
||||
~TObject_ID() {}
|
||||
TIDData const& getIDData() const { return *this; }
|
||||
const u8 *getID() const { return TIDData::getID(); }
|
||||
TIDData const& getIDData() const { return mData; }
|
||||
const u8 *getID() const { return mData.getID(); }
|
||||
|
||||
TIDData mData;
|
||||
};
|
||||
|
||||
struct TPRObject_ID_equal : public TIDData {
|
||||
TPRObject_ID_equal(const void* id, u32 id_size) : TIDData(id, id_size) {}
|
||||
struct TPRObject_ID_equal {
|
||||
TPRObject_ID_equal(const void* id, u32 id_size) : mData(id, id_size) {}
|
||||
~TPRObject_ID_equal() {}
|
||||
bool operator()(TObject_ID const& id) const { return TIDData::isEqual(id.getIDData(), *this); }
|
||||
bool operator()(TObject_ID const& id) const { return TIDData::isEqual(id.getIDData(), mData); }
|
||||
|
||||
TIDData mData;
|
||||
};
|
||||
|
||||
} // namespace object
|
||||
|
||||
@@ -28,7 +28,7 @@ struct TCreateObject : public JStudio::TCreateObject {
|
||||
};
|
||||
|
||||
struct TAdaptor_object_ {
|
||||
TAdaptor_object_(JStage::TSystem const*param_2, JStage::TObject *param_3) :
|
||||
TAdaptor_object_(const JStudio::TAdaptor *, JStage::TSystem const*param_2, JStage::TObject *param_3) :
|
||||
pJSGSystem_(param_2), pJSGObject_(param_3) {}
|
||||
void adaptor_object_data_(void const*, u32, void const*, u32);
|
||||
JStage::TObject* adaptor_object_findJSGObject_(char const*);
|
||||
@@ -258,7 +258,7 @@ struct TAdaptor_light : public JStudio::TAdaptor_light, public TAdaptor_object_
|
||||
virtual void operator()(f32, JStudio::TAdaptor*) const;
|
||||
virtual ~TVVOutput_direction_() {}
|
||||
|
||||
void adaptor_setOutput_(TAdaptor* adaptor) {
|
||||
void adaptor_setOutput_(TAdaptor* adaptor) const {
|
||||
adaptor->adaptor_referVariableValue(field_0x4)->setOutput(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -41,6 +41,10 @@ inline u8 JSUHiByte(u16 in) {
|
||||
return in >> 8;
|
||||
}
|
||||
|
||||
inline u16 JSUHiHalf(u32 in) {
|
||||
return (in >> 16);
|
||||
}
|
||||
|
||||
inline u16 JSULoHalf(u32 param_0) {return param_0; }
|
||||
|
||||
#endif
|
||||
|
||||
@@ -379,6 +379,7 @@ public:
|
||||
void OnTgNoSlingHitInfSet() { mObjTg.OnSPrmBit(0x40); }
|
||||
void OnAtVsBitSet(u32 prm) { mObjAt.OnSPrmBit(prm); }
|
||||
void OffAtVsBitSet(u32 prm) { mObjAt.OffSPrmBit(prm); }
|
||||
void OffTgNoAtHitInfSet() { mObjTg.OffSPrmBit(0x20); }
|
||||
|
||||
}; // Size = 0x40
|
||||
|
||||
|
||||
@@ -11,8 +11,7 @@ class csXyz : public SVec {
|
||||
public:
|
||||
static const csXyz Zero;
|
||||
~csXyz() {}
|
||||
/* inline */ csXyz() {}
|
||||
/* inline */ csXyz(const csXyz& other) : SVec(other){};
|
||||
csXyz() {}
|
||||
csXyz(s16, s16, s16);
|
||||
csXyz operator+(csXyz&);
|
||||
void operator+=(csXyz&);
|
||||
|
||||
+724
-286
File diff suppressed because it is too large
Load Diff
+72
-76
@@ -13,56 +13,56 @@
|
||||
*
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
*/
|
||||
|
||||
class e_dn_class {
|
||||
public:
|
||||
e_dn_class();
|
||||
|
||||
/* 0x0000 */ fopEn_enemy_c actor;
|
||||
/* 0x05AC */ request_of_phase_process_class mPhase;
|
||||
/* 0x05B4 */ s16 mMode;
|
||||
/* 0x05B6 */ u8 field_0x5b6;
|
||||
/* 0x05B7 */ u8 field_0x5b7;
|
||||
/* 0x05B8 */ u8 field_0x5b8;
|
||||
/* 0x05B9 */ u8 field_0x5b9;
|
||||
/* 0x05AC */ request_of_phase_process_class phase;
|
||||
/* 0x05B4 */ s16 mode;
|
||||
/* 0x05B6 */ u8 arg0;
|
||||
/* 0x05B7 */ u8 arg1;
|
||||
/* 0x05B8 */ u8 arg2;
|
||||
/* 0x05B9 */ u8 arg3;
|
||||
/* 0x05BC */ cXyz field_0x5bc;
|
||||
/* 0x05C8 */ cXyz field_0x5c8;
|
||||
/* 0x05D4 */ s16 field_0x5d4;
|
||||
/* 0x05D4 */ s16 cur_angle_y_target;
|
||||
/* 0x05D6 */ s16 field_0x5d6;
|
||||
/* 0x05D8 */ s8 field_0x5d8;
|
||||
/* 0x05DC */ mDoExt_McaMorfSO* mpModelMorf;
|
||||
/* 0x05E0 */ int mAnmID;
|
||||
/* 0x05E4 */ J3DModel* mpKnifeModel;
|
||||
/* 0x05E8 */ Z2CreatureEnemy mSound;
|
||||
/* 0x068C */ J3DModel* mpShieldModel;
|
||||
/* 0x0690 */ J3DModel* mpSkullModel;
|
||||
/* 0x05DC */ mDoExt_McaMorfSO* anm_p;
|
||||
/* 0x05E0 */ int anm_no;
|
||||
/* 0x05E4 */ J3DModel* knife_model;
|
||||
/* 0x05E8 */ Z2CreatureEnemy sound;
|
||||
/* 0x068C */ J3DModel* tate_model;
|
||||
/* 0x0690 */ J3DModel* skull_model;
|
||||
/* 0x0694 */ s8 field_0x694;
|
||||
/* 0x0698 */ cXyz field_0x698;
|
||||
/* 0x0698 */ cXyz skull_trans;
|
||||
/* 0x06A4 */ cXyz field_0x6a4;
|
||||
/* 0x06B0 */ s16 field_0x6b0;
|
||||
/* 0x06B2 */ s16 field_0x6b2;
|
||||
/* 0x06B4 */ dJntCol_c mJntCol;
|
||||
/* 0x06C4 */ s8 field_0x6c4;
|
||||
/* 0x06C8 */ f32 field_0x6c8;
|
||||
/* 0x06CC */ s16 field_0x6cc;
|
||||
/* 0x06CE */ s16 mAction;
|
||||
/* 0x06D0 */ f32 mPlayerDistance;
|
||||
/* 0x06D4 */ s16 mYAngleToPlayer;
|
||||
/* 0x06D6 */ s16 mXAngleToPlayer;
|
||||
/* 0x06D8 */ f32 field_0x6d8;
|
||||
/* 0x06DC */ u32 mShadowKey;
|
||||
/* 0x06E0 */ s16 field_0x6e0[4];
|
||||
/* 0x06E8 */ s16 field_0x6e8;
|
||||
/* 0x06EA */ s16 field_0x6ea;
|
||||
/* 0x06EC */ s16 field_0x6ec;
|
||||
/* 0x06EE */ s8 field_0x6ee;
|
||||
/* 0x06EF */ s8 field_0x6ef;
|
||||
/* 0x06F0 */ s8 field_0x6f0;
|
||||
/* 0x06F1 */ s8 field_0x6f1;
|
||||
/* 0x06B0 */ s16 skull_y_rot;
|
||||
/* 0x06B2 */ s16 skull_x_rot;
|
||||
/* 0x06B4 */ dJntCol_c jc;
|
||||
/* 0x06C4 */ s8 death_flag;
|
||||
/* 0x06C8 */ f32 color;
|
||||
/* 0x06CC */ s16 frame_counter;
|
||||
/* 0x06CE */ s16 action;
|
||||
/* 0x06D0 */ f32 pl_dir;
|
||||
/* 0x06D4 */ s16 search_angle_y;
|
||||
/* 0x06D6 */ s16 search_angle_x;
|
||||
/* 0x06D8 */ f32 pl_range;
|
||||
/* 0x06DC */ u32 shadow_key;
|
||||
/* 0x06E0 */ s16 timer[4];
|
||||
/* 0x06E8 */ s16 invulnerability_timer;
|
||||
/* 0x06EA */ s16 unk_timer_1;
|
||||
/* 0x06EC */ s16 unk_timer_2;
|
||||
/* 0x06EE */ s8 tail_at_sph_flag;
|
||||
/* 0x06EF */ s8 at_chk_flag;
|
||||
/* 0x06F0 */ s8 at_sph_center_flag;
|
||||
/* 0x06F1 */ s8 guard_flag;
|
||||
/* 0x06F2 */ s8 field_0x6f2;
|
||||
/* 0x06F3 */ s8 field_0x6f3;
|
||||
/* 0x06F4 */ s8 field_0x6f4;
|
||||
/* 0x06F5 */ u8 field_0x6f5;
|
||||
/* 0x06F6 */ s16 field_0x6f6;
|
||||
/* 0x06F8 */ s16 field_0x6f8;
|
||||
/* 0x06FA */ s16 field_0x6fa;
|
||||
@@ -75,16 +75,16 @@ public:
|
||||
/* 0x070C */ s16 field_0x70c;
|
||||
/* 0x070E */ s16 field_0x70e;
|
||||
/* 0x0710 */ s8 field_0x710;
|
||||
/* 0x0711 */ u8 field_0x711[15];
|
||||
/* 0x0720 */ f32 field_0x720;
|
||||
/* 0x0714 */ cXyz field_0x711;
|
||||
/* 0x0720 */ f32 cur_pos_y_offset;
|
||||
/* 0x0724 */ csXyz field_0x724;
|
||||
/* 0x072A */ csXyz field_0x72a;
|
||||
/* 0x0730 */ csXyz field_0x730;
|
||||
/* 0x0736 */ s8 field_0x736;
|
||||
/* 0x0737 */ s8 field_0x737;
|
||||
/* 0x0738 */ cXyz field_0x738;
|
||||
/* 0x0744 */ int field_0x744;
|
||||
/* 0x0748 */ u8 field_0x748[4];
|
||||
/* 0x0736 */ s8 unk_timer_3;
|
||||
/* 0x0737 */ s8 left_right_flag;
|
||||
/* 0x0738 */ cXyz find_pos;
|
||||
/* 0x0744 */ int learn;
|
||||
/* 0x0748 */ u8 field_0x748[0x74c - 0x748];
|
||||
/* 0x074C */ f32 field_0x74c;
|
||||
/* 0x0750 */ s16 field_0x750;
|
||||
/* 0x0754 */ f32 field_0x754;
|
||||
@@ -95,49 +95,45 @@ public:
|
||||
/* 0x07A4 */ csXyz field_0x7a4[11];
|
||||
/* 0x07E8 */ f32 field_0x7e8;
|
||||
/* 0x07EC */ s16 field_0x7ec[2];
|
||||
/* 0x07F0 */ s16 field_0x7f0;
|
||||
/* 0x07F2 */ s16 field_0x7f2;
|
||||
/* 0x07F4 */ s16 field_0x7f4;
|
||||
/* 0x07F6 */ s16 field_0x7f6;
|
||||
/* 0x07FA */ s16 field_0x7f8;
|
||||
/* 0x07FA */ s16 field_0x7fa;
|
||||
/* 0x07F0 */ s16 jnt_waist_z_rot;
|
||||
/* 0x07F2 */ s16 jnt_arml1_z_rot_offset;
|
||||
/* 0x07F4 */ s16 jnt_arml2_z_rot_offset;
|
||||
/* 0x07F6 */ s16 jnt_armr1_z_rot_offset;
|
||||
/* 0x07FA */ s16 jnt_armr2_z_rot_offset;
|
||||
/* 0x07FA */ s16 jnt_legl1_y_rot;
|
||||
/* 0x07FC */ s16 field_0x7fc[3];
|
||||
/* 0x0802 */ s16 field_0x802[4];
|
||||
/* 0x080A */ s16 field_0x80a;
|
||||
/* 0x080C */ s16 field_0x80c;
|
||||
/* 0x080A */ s16 death_jnt_rot;
|
||||
/* 0x080C */ s16 death_jnt_rot_counter;
|
||||
/* 0x080E */ csXyz field_0x80e[4];
|
||||
/* 0x0826 */ s16 field_0x826;
|
||||
/* 0x0828 */ s16 field_0x828;
|
||||
/* 0x082A */ s16 field_0x82a;
|
||||
/* 0x082C */ s16 field_0x82c;
|
||||
/* 0x082E */ s8 field_0x82e;
|
||||
/* 0x082F */ u8 field_0x82f;
|
||||
/* 0x0830 */ s16 field_0x830;
|
||||
/* 0x0832 */ s16 field_0x832;
|
||||
/* 0x0834 */ u8 field_0x834[2];
|
||||
/* 0x0826 */ s16 jnt_tail_y_rot_offset;
|
||||
/* 0x0828 */ s16 unk_timer_4;
|
||||
/* 0x082A */ s16 angle_y_offset;
|
||||
/* 0x082C */ s16 unk_counter_1;
|
||||
/* 0x082E */ s8 snap_angle_y_flag;
|
||||
/* 0x0830 */ csXyz field_0x830;
|
||||
/* 0x0836 */ csXyz field_0x836;
|
||||
/* 0x083C */ f32 field_0x83c;
|
||||
/* 0x0840 */ s16 field_0x840;
|
||||
/* 0x0842 */ s16 field_0x842;
|
||||
/* 0x0844 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x0884 */ dBgS_ObjAcch mObjAcch;
|
||||
/* 0x0840 */ s16 unk_timer_5;
|
||||
/* 0x0842 */ s16 unk_counter_2;
|
||||
/* 0x0844 */ dBgS_AcchCir acchcir;
|
||||
/* 0x0884 */ dBgS_ObjAcch objacch;
|
||||
/* 0x0A5C */ f32 field_0xa5c;
|
||||
/* 0x0A60 */ dCcD_Stts mStts;
|
||||
/* 0x0A9C */ dCcD_Sph field_0xa9c[3];
|
||||
/* 0x0E44 */ dCcD_Sph field_0xe44;
|
||||
/* 0x0F7C */ dCcD_Sph field_0xf7c;
|
||||
/* 0x10B4 */ dCcU_AtInfo mAtInfo;
|
||||
/* 0x10D8 */ u8 field_0x10d8;
|
||||
/* 0x10D9 */ u8 field_0x10d9;
|
||||
/* 0x10DA */ s8 field_0x10da;
|
||||
/* 0x10DB */ u8 field_0x10db;
|
||||
/* 0x0A60 */ dCcD_Stts stts;
|
||||
/* 0x0A9C */ dCcD_Sph cc_sph[3];
|
||||
/* 0x0E44 */ dCcD_Sph at_sph;
|
||||
/* 0x0F7C */ dCcD_Sph tate_sph;
|
||||
/* 0x10B4 */ dCcU_AtInfo at_info;
|
||||
/* 0x10D8 */ u8 status;
|
||||
/* 0x10D9 */ u8 hio_init;
|
||||
/* 0x10DA */ s8 unk_timer_6;
|
||||
/* 0x10DC */ u32 field_0x10dc;
|
||||
/* 0x10E0 */ u32 field_0x10e0;
|
||||
/* 0x10E4 */ s8 field_0x10e4;
|
||||
/* 0x10E4 */ s8 set_smoke_flag;
|
||||
/* 0x10E8 */ u32 field_0x10e8[2];
|
||||
/* 0x10F0 */ u32 field_0x10f0[2];
|
||||
/* 0x10F8 */ u32 field_0x10f8;
|
||||
/* 0x10FC */ u32 field_0x10fc;
|
||||
/* 0x10F8 */ u32 dn_tail_blur_a_prtcl;
|
||||
/* 0x10FC */ u32 dn_tail_blur_b_prtcl;
|
||||
/* 0x1100 */ u8 field_0x1100[12];
|
||||
};
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ private:
|
||||
/* 0xA30 */ dCcD_Sph mSphere2;
|
||||
/* 0xB68 */ dCcD_Sph mAtSph;
|
||||
/* 0xCA0 */ dCcU_AtInfo mAtInfo;
|
||||
// Seems that the orig developers didn't size mKeys correctly, as ideally it should be len=8, not len=7:
|
||||
// !@bug Seems that the orig developers didn't size mKeys correctly, as ideally it should be len=8, not len=7:
|
||||
/* 0xCC4 */ u32 mKeys[7];
|
||||
/* 0xCE0 */ u8 mHIOInit;
|
||||
/* 0xCE1 */ u8 field_0xce1[0xCE8 - 0xCE1];
|
||||
|
||||
+82
-77
@@ -15,7 +15,8 @@
|
||||
*
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
*/
|
||||
|
||||
class e_mk_class {
|
||||
public:
|
||||
enum e_mk_ACTION {
|
||||
@@ -30,98 +31,102 @@ public:
|
||||
ACT_R04_DEMO = 35,
|
||||
};
|
||||
|
||||
/* 0x000 */ fopEn_enemy_c enemy;
|
||||
/* 0x5AC */ request_of_phase_process_class mPhase;
|
||||
/* 0x5B4 */ s16 mMode;
|
||||
/* 0x5B6 */ u8 mParam;
|
||||
/* 0x5B7 */ u8 field_0x5b7;
|
||||
/* 0x5B8 */ cXyz field_0x5b8;
|
||||
enum Demo_Mode {
|
||||
/* 0x0 */ DEMO_MODE_NONE,
|
||||
/* 0x1 */ DEMO_MODE_START,
|
||||
/* 0x2 */ DEMO_MODE_END,
|
||||
/* 0x3 */ DEMO_MODE_R04,
|
||||
/* 0x4 */ DEMO_MODE_BOHIT,
|
||||
/* 0xA */ DEMO_MODE_FINISH = 0xA,
|
||||
};
|
||||
|
||||
/* 0x000 */ fopEn_enemy_c actor;
|
||||
/* 0x5AC */ request_of_phase_process_class phase;
|
||||
/* 0x5B4 */ s16 mode;
|
||||
/* 0x5B6 */ u8 arg0;
|
||||
/* 0x5B8 */ cXyz posTarget;
|
||||
/* 0x5C4 */ u8 field_0x5c4[0x5c8 - 0x5c4];
|
||||
/* 0x5C8 */ mDoExt_McaMorfSO* mpModelMorf;
|
||||
/* 0x5CC */ int mAnm;
|
||||
/* 0x5D0 */ mDoExt_btpAnm* mBtp;
|
||||
/* 0x5C8 */ mDoExt_McaMorfSO* anmP;
|
||||
/* 0x5CC */ int anmNo;
|
||||
/* 0x5D0 */ mDoExt_btpAnm* btpP;
|
||||
/* 0x5D4 */ s16 field_0x5d4;
|
||||
/* 0x5D8 */ f32 field_0x5d8;
|
||||
/* 0x5DC */ mDoExt_McaMorf* mpCrownModelMorf;
|
||||
/* 0x5E0 */ s8 field_0x5e0;
|
||||
/* 0x5E4 */ cXyz field_0x5e4;
|
||||
/* 0x5F0 */ csXyz field_0x5f0;
|
||||
/* 0x5F6 */ u8 field_0x5f6[0x5fc - 0x5f6];
|
||||
/* 0x5D8 */ f32 btpFrame;
|
||||
/* 0x5DC */ mDoExt_McaMorf* crownAnmP;
|
||||
/* 0x5E0 */ s8 unkFlag1;
|
||||
/* 0x5E4 */ cXyz crownPos;
|
||||
/* 0x5F0 */ csXyz unkRotation;
|
||||
/* 0x5F6 */ csXyz field_0x5f6;
|
||||
/* 0x5FC */ f32 field_0x5fc;
|
||||
/* 0x600 */ f32 field_0x600;
|
||||
/* 0x604 */ f32 field_0x604;
|
||||
/* 0x608 */ J3DModel* mpBoomerangModel;
|
||||
/* 0x60C */ s8 field_0x60c;
|
||||
/* 0x60D */ s8 field_0x60d;
|
||||
/* 0x60E */ s8 field_0x60e;
|
||||
/* 0x60F */ u8 field_0x60f;
|
||||
/* 0x610 */ Z2CreatureEnemy mSound;
|
||||
/* 0x608 */ J3DModel* boomerangModelP;
|
||||
/* 0x60C */ s8 crownStatus;
|
||||
/* 0x60D */ s8 boomerangStatus;
|
||||
/* 0x60E */ s8 btpFrameFlag;
|
||||
/* 0x610 */ Z2CreatureEnemy sound;
|
||||
/* 0x6B4 */ s16 field_0x6b4;
|
||||
/* 0x6B6 */ s16 mAction;
|
||||
/* 0x6B8 */ f32 mDistToPlayer;
|
||||
/* 0x6BC */ s16 mAngleToPlayer;
|
||||
/* 0x6BE */ s8 field_0x6be;
|
||||
/* 0x6BF */ u8 field_0x6bf;
|
||||
/* 0x6C0 */ cXyz field_0x6c0;
|
||||
/* 0x6CC */ cXyz field_0x6cc;
|
||||
/* 0x6D8 */ f32 field_0x6d8;
|
||||
/* 0x6DC */ cXyz field_0x6dc;
|
||||
/* 0x6E8 */ daPillar_c* mPillar;
|
||||
/* 0x6EC */ daPillar_c* mHasira;
|
||||
/* 0x6F0 */ u32 mShadowKey1;
|
||||
/* 0x6F4 */ u32 mShadowKey2;
|
||||
/* 0x6F8 */ s8 field_0x6f8;
|
||||
/* 0x6F9 */ u8 field_0x6f9;
|
||||
/* 0x6FA */ s16 field_0x6fa;
|
||||
/* 0x6FC */ s16 field_0x6fc[4];
|
||||
/* 0x704 */ s16 field_0x704;
|
||||
/* 0x706 */ s8 field_0x706;
|
||||
/* 0x707 */ s8 field_0x707;
|
||||
/* 0x708 */ fpc_ProcID field_0x708;
|
||||
/* 0x70C */ e_db_class* field_0x70c;
|
||||
/* 0x710 */ fpc_ProcID mBabaChildID;
|
||||
/* 0x714 */ fpc_ProcID mBabaChildID2;
|
||||
/* 0x718 */ s8 field_0x718;
|
||||
/* 0x719 */ s8 field_0x719;
|
||||
/* 0x71A */ s8 field_0x71a;
|
||||
/* 0x71B */ s8 field_0x71b;
|
||||
/* 0x71C */ s8 field_0x71c;
|
||||
/* 0x71D */ s8 field_0x71d;
|
||||
/* 0x71E */ s8 field_0x71e;
|
||||
/* 0x71F */ u8 field_0x71f;
|
||||
/* 0x720 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x760 */ dBgS_ObjAcch mAcch;
|
||||
/* 0x938 */ dCcU_AtInfo mAtInfo;
|
||||
/* 0x95C */ dCcD_Stts field_0x95c;
|
||||
/* 0x998 */ dCcD_Sph field_0x998;
|
||||
/* 0xAD0 */ dCcD_Sph field_0xad0;
|
||||
/* 0x6B6 */ s16 action;
|
||||
/* 0x6B8 */ f32 distToPl;
|
||||
/* 0x6BC */ s16 angleToPl;
|
||||
/* 0x6BE */ s8 unkFlag2;
|
||||
/* 0x6C0 */ cXyz prevPos;
|
||||
/* 0x6CC */ cXyz prevPosTarget;
|
||||
/* 0x6D8 */ f32 PosYTransOffset;
|
||||
/* 0x6DC */ cXyz posTargetStep;
|
||||
/* 0x6E8 */ daPillar_c* prevHasira;
|
||||
/* 0x6EC */ daPillar_c* hasira;
|
||||
/* 0x6F0 */ u32 shadowKey1;
|
||||
/* 0x6F4 */ u32 shadowKey2;
|
||||
/* 0x6F8 */ s8 unkFlag3;
|
||||
/* 0x6FA */ s16 unkCounter1;
|
||||
/* 0x6FC */ s16 timer[4];
|
||||
/* 0x704 */ s16 invulnerabilityTimer;
|
||||
/* 0x706 */ s8 tubaTimer;
|
||||
/* 0x707 */ s8 unkFlag4;
|
||||
/* 0x708 */ fpc_ProcID boomerangId;
|
||||
/* 0x70C */ e_db_class* db;
|
||||
/* 0x710 */ fpc_ProcID dbId1;
|
||||
/* 0x714 */ fpc_ProcID dbId2;
|
||||
/* 0x718 */ s8 unkFlag5;
|
||||
/* 0x719 */ s8 unkCounter2;
|
||||
/* 0x71A */ s8 unkTimer1;
|
||||
/* 0x71B */ s8 setSmokeFlag;
|
||||
/* 0x71C */ s8 unkCounter3;
|
||||
/* 0x71D */ s8 firstHasiraFlag;
|
||||
/* 0x71E */ s8 demoHasiraFlag;
|
||||
/* 0x720 */ dBgS_AcchCir acchcir;
|
||||
/* 0x760 */ dBgS_ObjAcch acch;
|
||||
/* 0x938 */ dCcU_AtInfo atInfo;
|
||||
/* 0x95C */ dCcD_Stts stts;
|
||||
/* 0x998 */ dCcD_Sph sph;
|
||||
/* 0xAD0 */ dCcD_Sph tgSph;
|
||||
/* 0xC08 */ u32 field_0xc08;
|
||||
/* 0xC0C */ u32 field_0xc0c;
|
||||
/* 0xC10 */ u32 field_0xc10;
|
||||
/* 0xC14 */ u32 field_0xc14;
|
||||
/* 0xC18 */ u32 field_0xc18[2];
|
||||
/* 0xC20 */ u32 field_0xc20[4];
|
||||
/* 0xC30 */ s16 field_0xc30;
|
||||
/* 0xC32 */ s16 mDemoMode;
|
||||
/* 0xC34 */ s16 mDemoCamTimer;
|
||||
/* 0xC38 */ cXyz mCamEye;
|
||||
/* 0xC44 */ cXyz mCamCenter;
|
||||
/* 0xC50 */ cXyz field_0xc50;
|
||||
/* 0xC5C */ cXyz field_0xc5c;
|
||||
/* 0xC68 */ cXyz field_0xc68;
|
||||
/* 0xC74 */ cXyz field_0xc74;
|
||||
/* 0xC80 */ f32 mDemoCamFovy;
|
||||
/* 0xC84 */ f32 field_0xc84;
|
||||
/* 0xC88 */ f32 field_0xc88;
|
||||
/* 0xC18 */ u32 boEno1Prtcls[2];
|
||||
/* 0xC20 */ u32 boEno0Prtcls[4];
|
||||
/* 0xC30 */ s16 demoMode;
|
||||
/* 0xC32 */ s16 demoSubMode;
|
||||
/* 0xC34 */ s16 demoCamCounter;
|
||||
/* 0xC38 */ cXyz camEye;
|
||||
/* 0xC44 */ cXyz camCenter;
|
||||
/* 0xC50 */ cXyz camEyeTarget;
|
||||
/* 0xC5C */ cXyz camCenterTarget;
|
||||
/* 0xC68 */ cXyz distToCamEyeTarget;
|
||||
/* 0xC74 */ cXyz distToCamCenterTarget;
|
||||
/* 0xC80 */ f32 demoCamFovy;
|
||||
/* 0xC84 */ f32 camStepScale1;
|
||||
/* 0xC88 */ f32 camStepScale2;
|
||||
/* 0xC8C */ f32 field_0xc8c;
|
||||
/* 0xC90 */ f32 field_0xc90;
|
||||
/* 0xC94 */ u8 field_0xc94[0xc98 - 0xc94];
|
||||
/* 0xC98 */ f32 field_0xc98;
|
||||
/* 0xC9C */ f32 field_0xc9c;
|
||||
/* 0xCA0 */ s16 field_0xca0;
|
||||
/* 0xCA4 */ dMsgFlow_c mMsgFlow;
|
||||
/* 0xCA0 */ s16 prevPlShapeAngle;
|
||||
/* 0xCA4 */ dMsgFlow_c msgFlow;
|
||||
/* 0xCF0 */ u8 field_0xcf0[0xcf5 - 0xcf0];
|
||||
/* 0xCF5 */ u8 field_0xcf5;
|
||||
/* 0xCF5 */ u8 hioInit;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(e_mk_class) == 0xcf8);
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
*
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
*/
|
||||
|
||||
class e_mk_bo_class {
|
||||
public:
|
||||
/* 0x000 */ fopEn_enemy_c enemy;
|
||||
@@ -21,7 +22,7 @@ public:
|
||||
/* 0x5B8 */ Z2SoundObjSimple sound;
|
||||
/* 0x5D8 */ s16 counter;
|
||||
/* 0x5DA */ s16 action;
|
||||
/* 0x5DC */ s16 field_0x5dc;
|
||||
/* 0x5DC */ s16 mode;
|
||||
/* 0x5E0 */ cXyz field_0x5e0;
|
||||
/* 0x5EC */ s16 field_0x5ec;
|
||||
/* 0x5EE */ s16 field_0x5ee;
|
||||
|
||||
+25
-20
@@ -38,6 +38,13 @@ public:
|
||||
|
||||
class daHoZelda_c;
|
||||
class daHorse_hio_c;
|
||||
class daHorse_hio_c0;
|
||||
|
||||
#if DEBUG
|
||||
#define HORSE_HIO_CLASS daHorse_hio_c
|
||||
#else
|
||||
#define HORSE_HIO_CLASS daHorse_hio_c0
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @ingroup actors-unsorted
|
||||
@@ -231,11 +238,9 @@ public:
|
||||
~daHorse_c();
|
||||
|
||||
u32 getLashDashStart() const { return checkResetStateFlg0(RFLG0_LASH_DASH_START); }
|
||||
|
||||
|
||||
bool checkNoBombProc() const { return m_procID == PROC_WAIT_e || m_procID == PROC_MOVE_e; }
|
||||
BOOL checkResetStateFlg0(daHorse_RFLG0 flag) const { return m_resetStateFlg0 & flag; }
|
||||
bool checkEndResetStateFlg0(daHorse_ERFLG0 flag) const { return m_endResetStateFlg0 & flag; }
|
||||
BOOL checkNoBombProc() const { return !(m_procID == PROC_WAIT_e || m_procID == PROC_MOVE_e); }
|
||||
u32 checkResetStateFlg0(daHorse_RFLG0 flag) const { return m_resetStateFlg0 & flag; }
|
||||
u32 checkEndResetStateFlg0(daHorse_ERFLG0 flag) const { return m_endResetStateFlg0 & flag; }
|
||||
u32 checkStateFlg0(daHorse_FLG0 flag) const { return m_stateFlg0 & flag; }
|
||||
f32 getNormalMaxSpeedF() { return m_normalMaxSpeedF; }
|
||||
f32 getLashMaxSpeedF() { return m_lashMaxSpeedF; }
|
||||
@@ -267,21 +272,21 @@ public:
|
||||
void setZeldaActor(fopAc_ac_c* i_actor) { m_zeldaActorKeep.setData(i_actor); }
|
||||
|
||||
u32 checkTurnStandCamera() const { return checkResetStateFlg0(RFLG0_TURN_STAND_CAMERA); }
|
||||
BOOL checkTurnStand() const { return checkResetStateFlg0(RFLG0_TURN_STAND); }
|
||||
u32 checkTurnStand() const { return checkResetStateFlg0(RFLG0_TURN_STAND); }
|
||||
u32 checkRodeoMode() const { return checkStateFlg0(FLG0_RODEO_MODE); }
|
||||
bool checkCutTurnCancel() const { return checkEndResetStateFlg0(ERFLG0_CUT_TURN_CANCEL); }
|
||||
bool checkTurnCancelKeep() const { return checkStateFlg0(FLG0_TURN_CANCEL_KEEP); }
|
||||
BOOL checkRodeoLeft() const { return checkStateFlg0(FLG0_RODEO_LEFT); }
|
||||
BOOL checkHorseCallWait() const { return checkStateFlg0(FLG0_NO_DRAW_WAIT); }
|
||||
u32 checkCutTurnCancel() const { return checkEndResetStateFlg0(ERFLG0_CUT_TURN_CANCEL); }
|
||||
u32 checkTurnCancelKeep() const { return checkStateFlg0(FLG0_TURN_CANCEL_KEEP); }
|
||||
u32 checkRodeoLeft() const { return checkStateFlg0(FLG0_RODEO_LEFT); }
|
||||
u32 checkHorseCallWait() const { return checkStateFlg0(FLG0_NO_DRAW_WAIT); }
|
||||
BOOL checkTurn() const { return m_procID == PROC_TURN_e && field_0x1720 == 0; }
|
||||
BOOL checkStop() const { return m_procID == PROC_STOP_e; }
|
||||
BOOL checkJump() const { return m_procID == PROC_JUMP_e; }
|
||||
bool checkWait() const { return m_procID == PROC_WAIT_e; }
|
||||
bool checkLand() const { return m_procID == PROC_LAND_e && field_0x171a == 0; }
|
||||
bool checkGetOff() const { return fabsf(speedF) < 3.0f; }
|
||||
BOOL checkEnemySearch() { return checkResetStateFlg0(RFLG0_ENEMY_SEARCH); }
|
||||
bool checkOriginalDemo() const { return field_0x16b8 == 3; }
|
||||
bool checkHorseDemoMode() { return field_0x16b8 != 0; }
|
||||
BOOL checkWait() const { return m_procID == PROC_WAIT_e; }
|
||||
BOOL checkLand() const { return m_procID == PROC_LAND_e && field_0x171a == 0; }
|
||||
BOOL checkGetOff() const { return fabsf(speedF) < 3.0f; }
|
||||
u32 checkEnemySearch() { return checkResetStateFlg0(RFLG0_ENEMY_SEARCH); }
|
||||
BOOL checkOriginalDemo() const { return field_0x16b8 == 3; }
|
||||
BOOL checkHorseDemoMode() { return field_0x16b8 != 0; }
|
||||
s16 checkCowHit() const { return m_cowHit; }
|
||||
s16 getCowHitAngle() const { return m_cowHitAngle; }
|
||||
u8 getRodeoPointCnt() const { return m_rodeoPointCnt; }
|
||||
@@ -333,7 +338,7 @@ public:
|
||||
|
||||
u32 getShadowID() const { return m_shadowID; }
|
||||
|
||||
bool checkInputOnR() const { return m_padStickValue > 0.05f; }
|
||||
BOOL checkInputOnR() const { return m_padStickValue > 0.05f; }
|
||||
|
||||
void onBagMaterial() {
|
||||
m_modelData->getMaterialNodePointer(5)->getShape()->show();
|
||||
@@ -354,7 +359,7 @@ public:
|
||||
/* 0x0594 */ mDoExt_AnmRatioPack m_anmRatio[3];
|
||||
/* 0x05AC */ mDoExt_MtxCalcOldFrame* m_oldFrame;
|
||||
/* 0x05B0 */ daPy_frameCtrl_c m_frameCtrl[3];
|
||||
/* 0x05F8 */ daHorse_hio_c* m_hio;
|
||||
/* 0x05F8 */ HORSE_HIO_CLASS* m_hio;
|
||||
/* 0x05FC */ dBgS_AcchCir m_acchcir[3];
|
||||
/* 0x06BC */ dBgS_HorseAcch m_acch;
|
||||
/* 0x0894 */ dCcD_Stts m_cc_stts;
|
||||
@@ -566,15 +571,15 @@ class daHorse_hio_c : public JORReflexible {
|
||||
public:
|
||||
daHorse_hio_c() {
|
||||
#if DEBUG
|
||||
mParameters = daHorse_hio_c0::m;
|
||||
m = daHorse_hio_c0::m;
|
||||
#endif
|
||||
}
|
||||
#if DEBUG
|
||||
virtual ~daHorse_hio_c() {}
|
||||
void genMessage(JORMContext*);
|
||||
/* 0x4 */ s8 id;
|
||||
/* 0x8 */ daHorse_hio_c1 mParameters;
|
||||
#endif
|
||||
/* 0x8 */ daHorse_hio_c1 m;
|
||||
};
|
||||
|
||||
#endif /* D_A_HORSE_H */
|
||||
|
||||
@@ -48,6 +48,8 @@ struct daHoZelda_hio_c1 {
|
||||
};
|
||||
|
||||
struct daHoZelda_hio_c0 {
|
||||
daHoZelda_hio_c0() {}
|
||||
|
||||
static daHoZelda_hio_c1 const m;
|
||||
};
|
||||
|
||||
@@ -55,7 +57,7 @@ class daHoZelda_hio_c : public JORReflexible {
|
||||
public:
|
||||
daHoZelda_hio_c() {
|
||||
#if DEBUG
|
||||
mParameters = daHoZelda_hio_c0::m;
|
||||
m = daHoZelda_hio_c0::m;
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -64,10 +66,16 @@ public:
|
||||
#if DEBUG
|
||||
void genMessage(JORMContext*);
|
||||
virtual ~daHoZelda_hio_c() {}
|
||||
/* 0x8 */ daHoZelda_hio_c1 mParameters;
|
||||
/* 0x8 */ daHoZelda_hio_c1 m;
|
||||
#endif
|
||||
};
|
||||
|
||||
#if DEBUG
|
||||
#define HOZELDA_HIO_CLASS daHoZelda_hio_c
|
||||
#else
|
||||
#define HOZELDA_HIO_CLASS daHoZelda_hio_c0
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @ingroup actors-unsorted
|
||||
* @class daHoZelda_c
|
||||
@@ -125,7 +133,7 @@ public:
|
||||
/* 0x6A8 */ mDoExt_bckAnm mBowBck;
|
||||
/* 0x6C4 */ daPy_actorKeep_c mArrowAcKeep;
|
||||
/* 0x6CC */ daPy_actorKeep_c mGndAcKeep;
|
||||
/* 0x6D4 */ daHoZelda_hio_c* mpHIO;
|
||||
/* 0x6D4 */ HOZELDA_HIO_CLASS* mpHIO;
|
||||
/* 0x6D8 */ u8 mBowMode;
|
||||
/* 0x6D9 */ u8 mAnmTimer;
|
||||
/* 0x6DA */ u8 field_0x6da;
|
||||
|
||||
@@ -196,7 +196,7 @@ public:
|
||||
|
||||
const int getIdx() { return mIdx; }
|
||||
|
||||
dPath* getPathInfo() { return mPathInfo; }
|
||||
const dPath* getPathInfo() { return mPathInfo; }
|
||||
|
||||
void onReverse() {
|
||||
mDirection = 1;
|
||||
@@ -450,11 +450,8 @@ public:
|
||||
void calc(BOOL);
|
||||
|
||||
void initialize() {
|
||||
//TODO: Separate decl is fakematch, but using 0 directly in the setall call causes
|
||||
// weird issues in some functions that call this.
|
||||
u8 zero = 0;
|
||||
for (int i = 0; i < 2; i++) {
|
||||
mAngle[i].setall(zero);
|
||||
mAngle[i].setall(0);
|
||||
mPower[i] = 0.0f;
|
||||
}
|
||||
mStagger = 0;
|
||||
|
||||
@@ -4,6 +4,13 @@
|
||||
#include "d/actor/d_a_npc.h"
|
||||
|
||||
class daNpc_ykW_HIO_c;
|
||||
class daNpc_ykW_Param_c;
|
||||
|
||||
#if DEBUG
|
||||
#define NPC_YKW_HIO_CLASS daNpc_ykW_HIO_c
|
||||
#else
|
||||
#define NPC_YKW_HIO_CLASS daNpc_ykW_Param_c
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @ingroup actors-npcs
|
||||
@@ -139,7 +146,7 @@ public:
|
||||
field_0x101c = 10;
|
||||
}
|
||||
|
||||
/* 0x0E40 */ daNpc_ykW_HIO_c* mpHIO;
|
||||
/* 0x0E40 */ NPC_YKW_HIO_CLASS* mpHIO;
|
||||
/* 0x0E44 */ dCcD_Cyl mCyl;
|
||||
/* 0x0F80 */ u8 field_0xf80;
|
||||
/* 0x0F84 */ daNpcT_ActorMngr_c mActorMngrs[5];
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "d/d_cc_d.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "JSystem/JParticle/JPAEmitter.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#ifndef D_A_OBJ_BRAKEEFF_H
|
||||
#define D_A_OBJ_BRAKEEFF_H
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "SSystem/SComponent/c_phase.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "mtx.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
|
||||
class J3DModel;
|
||||
class mDoExt_brkAnm;
|
||||
|
||||
@@ -1,6 +1,51 @@
|
||||
#ifndef D_A_OBJ_DAMCPS_H
|
||||
#define D_A_OBJ_DAMCPS_H
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "m_Do/m_Do_hostIO.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
* @class daObjDamCps_c
|
||||
* @brief Damage Cylinder
|
||||
*
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
class daObjDamCps_c : public fopAc_ac_c {
|
||||
#ifdef DEBUG
|
||||
public:
|
||||
daObjDamCps_c() {};
|
||||
void initBaseMtx();
|
||||
void setBaseMtx();
|
||||
int Create();
|
||||
int create();
|
||||
int execute();
|
||||
int draw();
|
||||
int _delete();
|
||||
u8 getSwNo();
|
||||
|
||||
private:
|
||||
/* 0x0570 */ dCcD_Stts mStts;
|
||||
/* 0x05AC */ dCcD_Cps mCps;
|
||||
/* 0x06F0 */ cM3dGCpsS mCapsule;
|
||||
/* 0x070C */ Mtx mMtx;
|
||||
/* 0x073C */ cXyz mScale;
|
||||
#endif
|
||||
};
|
||||
|
||||
class daObjDamCps_HIO_c : public mDoHIO_entry_c {
|
||||
public:
|
||||
daObjDamCps_HIO_c();
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
virtual ~daObjDamCps_HIO_c() {};
|
||||
|
||||
/* 0x08 */ f32 field_0x08;
|
||||
/* 0x0C */ u8 mAdj;
|
||||
/* 0x0E */ csXyz mAngle;
|
||||
/* 0x14 */ cXyz mScale;
|
||||
};
|
||||
|
||||
#endif /* D_A_OBJ_DAMCPS_H */
|
||||
|
||||
@@ -58,7 +58,7 @@ private:
|
||||
/* 0x7BC */ char* mArcName;
|
||||
/* 0x7C0 */ u32 mDzbId;
|
||||
/* 0x7C4 */ u32 mBmdId;
|
||||
/* 0x7C8 */ Vec* mCullBox;
|
||||
/* 0x7C8 */ cull_box* mCullBox;
|
||||
/* 0x7CC */ f32 field_0x7cc;
|
||||
/* 0x7D0 */ u8 field_0x7d0;
|
||||
/* 0x7D4 */ int field_0x7d4;
|
||||
|
||||
@@ -119,7 +119,7 @@ private:
|
||||
return shape_angle.x & 0xFF;
|
||||
}
|
||||
|
||||
s32 getParam(u8 shift, u8 bit) {
|
||||
s32 getParam(int shift, int bit) {
|
||||
return fopAcM_GetParamBit(this, shift, bit);
|
||||
}
|
||||
|
||||
|
||||
@@ -716,9 +716,9 @@ public:
|
||||
cXyz getRightHandPos() const { return mRightHandPos; }
|
||||
const cXyz getLeftHandPos() const { return mLeftHandPos; }
|
||||
const cXyz getItemPos() const { return mItemPos; }
|
||||
bool getDkCaught() const { return checkNoResetFlg1(FLG1_DK_CAUGHT); }
|
||||
bool getDkCaught2() const { return checkNoResetFlg0(FLG0_DK_CAUGHT); }
|
||||
bool getStCaught() const { return checkNoResetFlg1(FLG1_UNK_80000000); }
|
||||
BOOL getDkCaught() const { return checkNoResetFlg1(FLG1_DK_CAUGHT); }
|
||||
BOOL getDkCaught2() const { return checkNoResetFlg0(FLG0_DK_CAUGHT); }
|
||||
BOOL getStCaught() const { return checkNoResetFlg1(FLG1_UNK_80000000); }
|
||||
|
||||
/* vt 0X008 */ virtual cXyz* getMidnaAtnPos() const { return NULL; }
|
||||
/* vt 0X00C */ virtual void setMidnaMsgNum(fopAc_ac_c*, u16) {}
|
||||
@@ -779,9 +779,9 @@ public:
|
||||
/* vt 0X0E8 */ virtual void setAnimeFrame(f32) {}
|
||||
/* vt 0X0EC */ virtual BOOL checkWolfLock(fopAc_ac_c*) const { return FALSE; }
|
||||
/* vt 0X0F0 */ virtual bool cancelWolfLock(fopAc_ac_c*) { return FALSE; }
|
||||
/* vt 0X0F4 */ virtual s32 getAtnActorID() const { return fpcM_ERROR_PROCESS_ID_e; }
|
||||
/* vt 0X0F8 */ virtual s32 getItemID() const { return fpcM_ERROR_PROCESS_ID_e; }
|
||||
/* vt 0X0FC */ virtual u32 getGrabActorID() const { return fpcM_ERROR_PROCESS_ID_e; }
|
||||
/* vt 0X0F4 */ virtual fpc_ProcID getAtnActorID() const { return fpcM_ERROR_PROCESS_ID_e; }
|
||||
/* vt 0X0F8 */ virtual fpc_ProcID getItemID() const { return fpcM_ERROR_PROCESS_ID_e; }
|
||||
/* vt 0X0FC */ virtual fpc_ProcID getGrabActorID() const { return fpcM_ERROR_PROCESS_ID_e; }
|
||||
/* vt 0X100 */ virtual BOOL exchangeGrabActor(fopAc_ac_c*) { return FALSE; }
|
||||
/* vt 0X104 */ virtual BOOL setForceGrab(fopAc_ac_c*, int, int) { return FALSE; }
|
||||
/* vt 0X108 */ virtual void setForcePutPos(cXyz const&) {}
|
||||
@@ -879,7 +879,7 @@ public:
|
||||
/* vt 0X278 */ virtual BOOL checkMetamorphose() const { return FALSE; }
|
||||
/* vt 0X27C */ virtual BOOL checkWolfDownAttackPullOut() const { return FALSE; }
|
||||
/* vt 0X280 */ virtual BOOL checkBootsOrArmorHeavy() const { return FALSE; }
|
||||
/* vt 0X284 */ virtual s32 getBottleOpenAppearItem() const { return fpcM_ERROR_PROCESS_ID_e; }
|
||||
/* vt 0X284 */ virtual fpc_ProcID getBottleOpenAppearItem() const { return fpcM_ERROR_PROCESS_ID_e; }
|
||||
/* vt 0X288 */ virtual bool checkItemSwordEquip() const { return FALSE; }
|
||||
/* vt 0X28C */ virtual f32 getSinkShapeOffset() const { return 0.0f; }
|
||||
/* vt 0X290 */ virtual BOOL checkSinkDead() const { return FALSE; }
|
||||
@@ -1170,9 +1170,6 @@ public:
|
||||
static daMidna_c* getMidnaActor() { return m_midnaActor; }
|
||||
static void setMidnaActor(fopAc_ac_c* actor) { m_midnaActor = (daMidna_c*)actor; }
|
||||
|
||||
// not sure how to define this properly
|
||||
// static void onWolfEnemyCatch(fopAc_ac_c* i_actorP) { onWolfEnemyBiteAll(i_actorP,8);}
|
||||
|
||||
BOOL checkWolfEnemyCatchOwn(fopAc_ac_c* i_actorP) { return checkWolfEnemyBiteAllOwn(i_actorP); }
|
||||
BOOL checkWolfEnemyHangBiteOwn(const fopAc_ac_c* i_actorP) const { return checkWolfEnemyBiteAllOwn(i_actorP); }
|
||||
BOOL checkWolfEnemyLeftThrow() const { return checkNoResetFlg2(FLG2_WOLF_ENEMY_LEFT_THROW); }
|
||||
@@ -1225,23 +1222,23 @@ public:
|
||||
void setSumouForceTackle() { mSpecialMode = 0x1B; }
|
||||
void setSumouForceGraspCancel() { mSpecialMode = 0x24; }
|
||||
|
||||
BOOL checkSumouPushFront() const { return mSpecialMode == 7; }
|
||||
BOOL checkSumouPushBack() const { return mSpecialMode == 8; }
|
||||
BOOL checkSumouTackleSuccess() const { return mSpecialMode == 0xF; }
|
||||
BOOL checkSumouTackleSuccessPunch() const { return mSpecialMode == 0x10; }
|
||||
BOOL checkSumouTackleMiss() const { return mSpecialMode == 0x11; }
|
||||
BOOL checkSumouTackleDraw() const { return mSpecialMode == 0x12; }
|
||||
BOOL checkSumouPunchSuccess() const { return mSpecialMode == 0x13; }
|
||||
BOOL checkSumouPunchMiss() const { return mSpecialMode == 0x14; }
|
||||
BOOL checkSumouPunchDraw() const { return mSpecialMode == 0x15; }
|
||||
BOOL checkSumouWait() const { return mSpecialMode == 0x16; }
|
||||
BOOL checkSumouLeftMove() const { return mSpecialMode == 0x17; }
|
||||
BOOL checkSumouRightMove() const { return mSpecialMode == 0x18; }
|
||||
BOOL checkSumouSlideLeft() const { return mSpecialMode == 0x19; }
|
||||
BOOL checkSumouSlideRight() const { return mSpecialMode == 0x1A; }
|
||||
BOOL checkSumouPunchStagger() const { return mSpecialMode == 0x1F; }
|
||||
BOOL checkSumouTackleStagger() const { return mSpecialMode == 0x20; }
|
||||
BOOL checkSumouGraspRelease() const { return mSpecialMode == 0x23; }
|
||||
bool checkSumouPushFront() const { return mSpecialMode == 7; }
|
||||
bool checkSumouPushBack() const { return mSpecialMode == 8; }
|
||||
bool checkSumouTackleSuccess() const { return mSpecialMode == 0xF; }
|
||||
bool checkSumouTackleSuccessPunch() const { return mSpecialMode == 0x10; }
|
||||
bool checkSumouTackleMiss() const { return mSpecialMode == 0x11; }
|
||||
bool checkSumouTackleDraw() const { return mSpecialMode == 0x12; }
|
||||
bool checkSumouPunchSuccess() const { return mSpecialMode == 0x13; }
|
||||
bool checkSumouPunchMiss() const { return mSpecialMode == 0x14; }
|
||||
bool checkSumouPunchDraw() const { return mSpecialMode == 0x15; }
|
||||
bool checkSumouWait() const { return mSpecialMode == 0x16; }
|
||||
bool checkSumouLeftMove() const { return mSpecialMode == 0x17; }
|
||||
bool checkSumouRightMove() const { return mSpecialMode == 0x18; }
|
||||
bool checkSumouSlideLeft() const { return mSpecialMode == 0x19; }
|
||||
bool checkSumouSlideRight() const { return mSpecialMode == 0x1A; }
|
||||
bool checkSumouPunchStagger() const { return mSpecialMode == 0x1F; }
|
||||
bool checkSumouTackleStagger() const { return mSpecialMode == 0x20; }
|
||||
bool checkSumouGraspRelease() const { return mSpecialMode == 0x23; }
|
||||
|
||||
void onHeavyState() { onNoResetFlg0(FLG0_UNK_40000000); }
|
||||
void onHeavyStateMidnaPanic() {
|
||||
@@ -1260,4 +1257,12 @@ public:
|
||||
|
||||
int daPy_addCalcShort(s16* param_0, s16 param_1, s16 param_2, s16 param_3, s16 param_4);
|
||||
|
||||
inline daPy_py_c* daPy_getPlayerActorClass() {
|
||||
return (daPy_py_c*)dComIfGp_getPlayer(0);
|
||||
}
|
||||
|
||||
inline daPy_py_c* daPy_getLinkPlayerActorClass() {
|
||||
return dComIfGp_getLinkPlayer();
|
||||
}
|
||||
|
||||
#endif /* D_A_D_A_PLAYER_H */
|
||||
|
||||
@@ -19,7 +19,7 @@ public:
|
||||
inline int create();
|
||||
|
||||
u8 getArg1() { return (fopAcM_GetParam(this) >> 8) & 0xFF; }
|
||||
u8 getArg0() { return fopAcM_GetParam(this); }
|
||||
u8 getArg0() { return fopAcM_GetParam(this) & 0xFF; }
|
||||
u8 getSwNo() { return fopAcM_GetParam(this) >> 0x18; }
|
||||
u16 getOffEventBit() { return home.angle.z & 0xFFF; }
|
||||
u16 getOnEventBit() { return home.angle.x & 0xFFF; }
|
||||
|
||||
@@ -17,7 +17,7 @@ public:
|
||||
/* 0x3 */ TYPE_HYRAL,
|
||||
};
|
||||
|
||||
enum EAction {
|
||||
enum Mode_e {
|
||||
/* 0x00 */ ACT_WAIT,
|
||||
/* 0x01 */ ACT_DEMO_FILONE_1,
|
||||
/* 0x02 */ ACT_DEMO_FILONE_2,
|
||||
@@ -106,7 +106,7 @@ public:
|
||||
(this->*(*mAction))();
|
||||
}
|
||||
|
||||
void setAction(EAction action) {
|
||||
void setAction(Mode_e action) {
|
||||
mActionID = action;
|
||||
mAction = ActionTable[mActionID];
|
||||
callInit();
|
||||
|
||||
@@ -59,50 +59,46 @@ public:
|
||||
|
||||
u32 getFlowNodeNo() {
|
||||
u16 rv = home.angle.z;
|
||||
if (rv == 0xffff) {
|
||||
return -1;
|
||||
}
|
||||
return rv;
|
||||
return rv == 0xFFFF ? -1 : rv;
|
||||
}
|
||||
|
||||
u8 getBitSW() {
|
||||
return home.angle.x;
|
||||
u16 r31 = home.angle.x;
|
||||
return (u16)(r31 & 0xFF);
|
||||
}
|
||||
|
||||
u32 getTalkAngle() {
|
||||
u32 talkAngle = (fopAcM_GetParam(this) >> 5) & 0x7;
|
||||
if (talkAngle == 7) {
|
||||
return 0;
|
||||
} else {
|
||||
return talkAngle > 6 ? 6 : talkAngle;
|
||||
}
|
||||
u32 talkAngle = (fopAcM_GetParam(this) & 0xE0) >> 5;
|
||||
return talkAngle == 7 ? 0 :
|
||||
talkAngle > 6 ? 6 :
|
||||
talkAngle;
|
||||
}
|
||||
|
||||
u32 getTalkDis() {
|
||||
u32 talkDis = fopAcM_GetParam(this) & 0x1f;
|
||||
if (talkDis == 0x1f) {
|
||||
return 0;
|
||||
} else {
|
||||
return talkDis > 0x13 ? 0x13 : talkDis;
|
||||
}
|
||||
u32 talkDis = fopAcM_GetParam(this) & 0x1F;
|
||||
return talkDis == 0x1F ? 0 :
|
||||
talkDis > 0x13 ? 0x13 :
|
||||
talkDis;
|
||||
}
|
||||
|
||||
f32 getAttnPosOffset() {
|
||||
u32 attnPosOffset = (fopAcM_GetParam(this) & 0xff0000) >> 0x10;
|
||||
if (attnPosOffset == 0xff) {
|
||||
if (attnPosOffset == 0xFF) {
|
||||
return G_CM3D_F_INF;
|
||||
} else {
|
||||
return attnPosOffset;
|
||||
}
|
||||
f32 f31 = attnPosOffset;
|
||||
return f31;
|
||||
}
|
||||
|
||||
u32 getChkType() {
|
||||
return home.angle.x & 0x8000;
|
||||
u8 getChkType() {
|
||||
u16 r31 = home.angle.x;
|
||||
return (bool)(r31 & 0x8000);
|
||||
}
|
||||
|
||||
f32 getEyePosOffset() {
|
||||
u32 eyeOffset = (fopAcM_GetParam(this) & 0xff00) >> 8;
|
||||
return (eyeOffset == 0xff) ? 0 : eyeOffset;
|
||||
f32 f31 = eyeOffset == 0xFF ? 0 : eyeOffset;
|
||||
return f31;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_bg_s_movebg_actor.h"
|
||||
#include "d/d_kankyo.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "m_Do/m_Do_hostIO.h"
|
||||
|
||||
@@ -197,33 +198,4 @@ private:
|
||||
|
||||
STATIC_ASSERT(sizeof(daTbox_c) == 0xA30);
|
||||
|
||||
class daTbox_HIO_c : public mDoHIO_entry_c {
|
||||
public:
|
||||
daTbox_HIO_c();
|
||||
virtual ~daTbox_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
/* 0x04 */ u8 mItemNo;
|
||||
/* 0x05 */ u8 mUseDebugItemNo;
|
||||
/* 0x06 */ u8 mClearSwitch;
|
||||
/* 0x07 */ u8 mDemoType;
|
||||
/* 0x08 */ u8 mDebugLightColorEnabled;
|
||||
/* 0x09 */ u8 mTimerDisplay;
|
||||
/* 0x0A */ u8 mCheckDisplay;
|
||||
/* 0x0B */ u8 mSaveOff;
|
||||
/* 0x0C */ f32 mGravity;
|
||||
/* 0x10 */ cXyz mLightOffset;
|
||||
/* 0x1C */ s16 mLightColorR;
|
||||
/* 0x1E */ s16 mLightColorG;
|
||||
/* 0x20 */ s16 mLightColorB;
|
||||
/* 0x24 */ f32 mLightPower;
|
||||
/* 0x28 */ f32 mFluctuationRate;
|
||||
/* 0x2C */ f32 mEnvColorInfluence;
|
||||
/* 0x30 */ s16 mFluctuationSpeed;
|
||||
/* 0x32 */ u8 mForPlacementCheck;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daTbox_HIO_c) == 0x34);
|
||||
|
||||
#endif /* D_A_TBOX_H */
|
||||
|
||||
+51
-2
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "d/d_bg_w_base.h"
|
||||
#include "JSystem/JHostIO/JORReflexible.h"
|
||||
#include <dolphin/os.h>
|
||||
#include "global.h"
|
||||
|
||||
class dBgW;
|
||||
@@ -80,6 +81,11 @@ public:
|
||||
virtual void genMessage(JORMContext*);
|
||||
virtual ~dBgS_HIO();
|
||||
|
||||
BOOL ChkLineOff();
|
||||
BOOL ChkCheckCounter();
|
||||
BOOL ChkLineTimer();
|
||||
BOOL ChkGroundCheckTimer();
|
||||
|
||||
/* 0x04 */ u8 field_0x4[0x6 - 0x4];
|
||||
/* 0x06 */ u16 field_0x6;
|
||||
/* 0x08 */ u16 field_0x8;
|
||||
@@ -90,6 +96,12 @@ public:
|
||||
#endif
|
||||
};
|
||||
|
||||
extern int g_line_counter;
|
||||
extern OSStopwatch s_line_sw;
|
||||
|
||||
extern int g_ground_counter;
|
||||
extern OSStopwatch s_ground_sw;
|
||||
|
||||
class dBgS : public cBgS {
|
||||
public:
|
||||
dBgS() {}
|
||||
@@ -139,8 +151,45 @@ public:
|
||||
u32 GetMtrlSndId(const cBgS_PolyInfo& param_0) { return dKy_pol_sound_get(¶m_0); }
|
||||
void DebugDrawPoly(dBgW_Base *param_1) {}
|
||||
fopAc_ac_c* GetActorPointer(cBgS_PolyInfo const& param_0) const { return cBgS::GetActorPointer(param_0); }
|
||||
bool LineCross(cBgS_LinChk* i_linChk) { return ((cBgS*)this)->LineCross(i_linChk); }
|
||||
f32 GroundCross(cBgS_GndChk* i_gndChk) { return (f32)((cBgS*)this)->GroundCross(i_gndChk); }
|
||||
bool LineCross(cBgS_LinChk* i_linChk) {
|
||||
#ifdef DEBUG
|
||||
if (m_hio.ChkLineOff()) {
|
||||
return false;
|
||||
}
|
||||
if (m_hio.ChkCheckCounter()) {
|
||||
g_line_counter++;
|
||||
}
|
||||
if (m_hio.ChkLineTimer()) {
|
||||
OSStartStopwatch(&s_line_sw);
|
||||
}
|
||||
bool rt = cBgS::LineCross(i_linChk);
|
||||
if (m_hio.ChkLineTimer()) {
|
||||
OSStopStopwatch(&s_line_sw);
|
||||
OSDumpStopwatch(&s_line_sw);
|
||||
}
|
||||
return rt;
|
||||
#else
|
||||
return cBgS::LineCross(i_linChk);
|
||||
#endif
|
||||
}
|
||||
f32 GroundCross(cBgS_GndChk* i_gndChk) {
|
||||
#ifdef DEBUG
|
||||
if (m_hio.ChkCheckCounter()) {
|
||||
g_ground_counter++;
|
||||
}
|
||||
if (m_hio.ChkGroundCheckTimer()) {
|
||||
OSStartStopwatch(&s_ground_sw);
|
||||
}
|
||||
f32 rt = cBgS::GroundCross(i_gndChk);
|
||||
if (m_hio.ChkGroundCheckTimer()) {
|
||||
OSStopStopwatch(&s_ground_sw);
|
||||
OSDumpStopwatch(&s_ground_sw);
|
||||
}
|
||||
return rt;
|
||||
#else
|
||||
return cBgS::GroundCross(i_gndChk);
|
||||
#endif
|
||||
}
|
||||
|
||||
void ChkDeleteActorRegist(fopAc_ac_c*);
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define D_BG_D_BG_S_MOVEBG_ACTOR_H
|
||||
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "SSystem/SComponent/c_bg_s_poly_info.h"
|
||||
|
||||
class dBgW;
|
||||
typedef void (*MoveBGActor_SetFunc)(dBgW*, void*, cBgS_PolyInfo const&, bool, cXyz*, csXyz*,
|
||||
|
||||
@@ -417,7 +417,6 @@ public:
|
||||
bool ChkTgHookshotThrough() { return mGObjTg.ChkSPrm(0x80); }
|
||||
void OffTgHookShotNoHitMark() {mGObjTg.OffSPrm(0x400);}
|
||||
bool ChkTgShieldHit() { return mGObjTg.ChkRPrm(2); }
|
||||
void OffTgNoAtHitInfSet() { mObjTg.OffSPrmBit(0x20); }
|
||||
bool ChkTgSpinnerReflect() { return mGObjTg.ChkSPrm(0x200); }
|
||||
|
||||
static const Z2SoundID m_hitSeID[24];
|
||||
|
||||
+12
-22
@@ -290,7 +290,7 @@ public:
|
||||
dVibration_c& getVibration() { return mVibration; }
|
||||
camera_class* getCamera(int idx) { return mCameraInfo[idx].mCamera; }
|
||||
void* getPlayerPtr(int ptrIdx) { return mPlayerPtr[ptrIdx]; }
|
||||
fopAc_ac_c* getPlayer(int idx) { return (fopAc_ac_c*)mPlayer[idx * 2]; }
|
||||
fopAc_ac_c* getPlayer(int idx) { return mPlayerInfo[idx].mpPlayer; }
|
||||
dPa_control_c* getParticle() { return mParticle; }
|
||||
dEvent_manager_c& getEvtManager() { return mEvtManager; }
|
||||
dAttention_c* getAttention() { return &mAttention; }
|
||||
@@ -653,16 +653,16 @@ public:
|
||||
void* getItemTable() { return mItemTable; }
|
||||
|
||||
void setPlayerPtr(int i, fopAc_ac_c* ptr) { mPlayerPtr[i] = ptr; }
|
||||
void setPlayer(int i, fopAc_ac_c* player) { mPlayer[i] = (daAlink_c*)player; }
|
||||
void setPlayerInfo(int i, fopAc_ac_c* ptr, int camIdx) {
|
||||
mPlayer[i] = (daAlink_c*)ptr;
|
||||
mPlayerCameraID[camIdx] = 0;
|
||||
void setPlayer(int i, fopAc_ac_c* player) { mPlayerInfo[i].mpPlayer = player; }
|
||||
void setPlayerInfo(int i, fopAc_ac_c* player, int cam) {
|
||||
mPlayerInfo[i].mpPlayer = player;
|
||||
mPlayerInfo[i].mCameraID = cam;
|
||||
}
|
||||
void setPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[param_0][i] |= flag; }
|
||||
void clearPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[param_0][i] &= ~flag; }
|
||||
u32 checkPlayerStatus(int param_0, int i, u32 flag) { return mPlayerStatus[param_0][i] & flag; }
|
||||
|
||||
int getPlayerCameraID(int i) { return mPlayerCameraID[i * 8]; }
|
||||
int getPlayerCameraID(int i) { return mPlayerInfo[i].mCameraID; }
|
||||
int getCameraPlayer1ID(int i) { return mCameraInfo[i].field_0x5; }
|
||||
int getCameraPlayer2ID(int i) { return mCameraInfo[i].field_0x6; }
|
||||
int getCameraWinID(int i) { return mCameraInfo[i].field_0x4; }
|
||||
@@ -814,8 +814,10 @@ public:
|
||||
/* 0x04E0E */ u16 mStatus;
|
||||
/* 0x04E10 */ dDlst_window_c mWindow[1];
|
||||
/* 0x04E3C */ dComIfG_camera_info_class mCameraInfo[1];
|
||||
/* 0x04E74 */ daAlink_c* mPlayer[1];
|
||||
/* 0x04E78 */ s8 mPlayerCameraID[1];
|
||||
/* 0x04E74 */ struct {
|
||||
/* 0x0 */ fopAc_ac_c* mpPlayer;
|
||||
/* 0x4 */ s8 mCameraID;
|
||||
} mPlayerInfo[1];
|
||||
/* 0x04E7C */ fopAc_ac_c* mPlayerPtr[2]; // 0: Player, 1: Horse ; type may be wrong
|
||||
/* 0x04E84 */ dComIfG_item_info_class mItemInfo;
|
||||
/* 0x04FB0 */ dComIfG_MesgCamInfo_c mMesgCamInfo;
|
||||
@@ -3990,8 +3992,8 @@ inline u32 dComIfGp_particle_set(u32 param_0, u16 param_1, const cXyz* i_pos,
|
||||
|
||||
inline u32 dComIfGp_particle_set(u32 param_0, u16 param_1, const cXyz* i_pos,
|
||||
const dKy_tevstr_c* param_3) {
|
||||
return dComIfGp_particle_set(param_0, param_1, i_pos, param_3, 0, 0, 0xFF, 0, 0xFFFFFFFF, 0,
|
||||
0, 0);
|
||||
return dComIfGp_particle_set(param_0, param_1, i_pos, param_3, NULL, NULL, 0xFF, NULL, -1, NULL,
|
||||
NULL, NULL);
|
||||
}
|
||||
|
||||
inline JPABaseEmitter* dComIfGp_particle_set(u16 i_resID, const cXyz* i_pos,
|
||||
@@ -4428,16 +4430,4 @@ inline void dComIfGd_set3DlineMatDark(mDoExt_3DlineMat_c* param_0) {
|
||||
g_dComIfG_gameInfo.drawlist.set3DlineMatDark(param_0);
|
||||
}
|
||||
|
||||
inline daPy_py_c* daPy_getLinkPlayerActorClass() {
|
||||
return dComIfGp_getLinkPlayer();
|
||||
}
|
||||
|
||||
inline daPy_py_c* daPy_getPlayerActorClass() {
|
||||
return (daPy_py_c*)dComIfGp_getPlayer(0);
|
||||
}
|
||||
|
||||
inline daAlink_c* daAlink_getAlinkActorClass() {
|
||||
return (daAlink_c*)g_dComIfG_gameInfo.play.getPlayerPtr(LINK_PTR);
|
||||
}
|
||||
|
||||
#endif /* D_COM_D_COM_INF_GAME_H */
|
||||
|
||||
@@ -128,7 +128,11 @@ public:
|
||||
u8 getMode() const { return mMode; }
|
||||
|
||||
void onHindFlag(u16 flag) { mHindFlag |= flag; }
|
||||
#ifdef DEBUG
|
||||
void offHindFlag(u16 flag) { mHindFlag &= (u16)~flag; }
|
||||
#else
|
||||
void offHindFlag(u16 flag) { mHindFlag &= ~flag; }
|
||||
#endif
|
||||
|
||||
u16 checkHind(u16 flag) { return flag & mHindFlag; }
|
||||
u8 checkCompulsory() { return mCompulsory; }
|
||||
|
||||
@@ -744,8 +744,6 @@ public:
|
||||
/* 0x35C */ dMsgObject_HowlHIO_c mHowlHIO;
|
||||
};
|
||||
|
||||
#ifndef DISABLE_MSG_OBJECT_EXTERN
|
||||
extern dMsgObject_HIO_c g_MsgObject_HIO_c;
|
||||
#endif
|
||||
|
||||
#endif /* D_MSG_D_MSG_OBJECT_H */
|
||||
|
||||
+16
-18
@@ -169,8 +169,8 @@ public:
|
||||
BOOL checkCommandCatch() { return mCommand == dEvtCmd_INCATCH_e; }
|
||||
BOOL checkCommandDoor() { return mCommand == dEvtCmd_INDOOR_e; }
|
||||
BOOL checkCommandDemoAccrpt() { return mCommand == dEvtCmd_INDEMO_e; }
|
||||
bool checkCommandTalk() { return mCommand == dEvtCmd_INTALK_e; }
|
||||
bool checkCommandItem() { return mCommand == dEvtCmd_INGETITEM_e; }
|
||||
BOOL checkCommandTalk() { return mCommand == dEvtCmd_INTALK_e; }
|
||||
BOOL checkCommandItem() { return mCommand == dEvtCmd_INGETITEM_e; }
|
||||
|
||||
void setCommand(u16 command) { mCommand = command; }
|
||||
void setMapToolId(u8 id) { mMapToolId = id; }
|
||||
@@ -309,14 +309,14 @@ public:
|
||||
void setBallModelEffect(dKy_tevstr_c*);
|
||||
void drawBallModel(dKy_tevstr_c*);
|
||||
|
||||
bool checkWolfNoLock() const { return mFlags & fopEn_flag_WolfNoLock; }
|
||||
BOOL checkWolfNoLock() const { return mFlags & fopEn_flag_WolfNoLock; }
|
||||
BOOL checkHeadLockFlg() const { return mFlags & fopEn_flag_HeadLock; }
|
||||
BOOL checkWolfBiteDamage() const { return mFlags & fopEn_flag_WolfBiteDamage; }
|
||||
bool checkWolfDownPullFlg() const { return mFlags & fopEn_flag_WolfDownPull; }
|
||||
bool checkDownFlg() { return mFlags & fopEn_flag_Down; }
|
||||
bool checkCutDownHitFlg() const { return mFlags & fopEn_flag_CutDownHit; }
|
||||
bool checkWolfDownStartFlg() const { return mFlags & fopEn_flag_WolfDownStart; }
|
||||
bool checkDeadFlg() const { return mFlags & fopEn_flag_Dead; }
|
||||
BOOL checkWolfDownPullFlg() const { return mFlags & fopEn_flag_WolfDownPull; }
|
||||
BOOL checkDownFlg() { return mFlags & fopEn_flag_Down; }
|
||||
BOOL checkCutDownHitFlg() const { return mFlags & fopEn_flag_CutDownHit; }
|
||||
BOOL checkWolfDownStartFlg() const { return mFlags & fopEn_flag_WolfDownStart; }
|
||||
BOOL checkDeadFlg() const { return mFlags & fopEn_flag_Dead; }
|
||||
BOOL checkThrowMode(u8 param_1) const { return mThrowMode & param_1; }
|
||||
|
||||
u32* getMidnaBindID(int i_idx) { return mMidnaBindID + i_idx; }
|
||||
@@ -329,26 +329,24 @@ public:
|
||||
void onWolfDownStartFlg() { mFlags |= (fopEn_flag_WolfDownPull | fopEn_flag_WolfDownStart); }
|
||||
void onWolfDownPullEndFlg() { mFlags |= fopEn_flag_WolfDownPullEnd; }
|
||||
void onWolfNoLock() { mFlags |= (u16)fopEn_flag_WolfNoLock; }
|
||||
void onDownFlg() { mFlags |= fopEn_flag_Down; }
|
||||
void onHeadLockFlg() { mFlags |= fopEn_flag_HeadLock; }
|
||||
void onDownFlg() { mFlags |= (u16)fopEn_flag_Down; }
|
||||
void onHeadLockFlg() { mFlags |= (u16)fopEn_flag_HeadLock; }
|
||||
|
||||
#if DEBUG
|
||||
void offWolfBiteDamage() { mFlags &= (u16)~fopEn_flag_WolfBiteDamage; }
|
||||
void offCutDownHitFlg() { mFlags &= (u16)~fopEn_flag_CutDownHit; }
|
||||
void offWolfDownPullFlg() { mFlags &= ~fopEn_flag_WolfDownPull; }
|
||||
void offDownFlg() { mFlags &= (u16)~(fopEn_flag_WolfDownPull | fopEn_flag_WolfDownStart | fopEn_flag_CutDownHit | fopEn_flag_Down); }
|
||||
void offWolfNoLock() { mFlags &= (u16)~fopEn_flag_WolfNoLock; }
|
||||
void offHeadLockFlg() { mFlags &= (u16)~fopEn_flag_HeadLock; }
|
||||
void offThrowMode(u8 throwMode) { mThrowMode &= (u8)~throwMode; }
|
||||
#else
|
||||
void offWolfBiteDamage() { mFlags &= ~fopEn_flag_WolfBiteDamage; }
|
||||
#endif
|
||||
void offCutDownHitFlg() { mFlags &= ~fopEn_flag_CutDownHit; }
|
||||
void offWolfDownPullFlg() { mFlags &= ~fopEn_flag_WolfDownPull; }
|
||||
void offDownFlg() { mFlags &= ~(fopEn_flag_WolfDownPull | fopEn_flag_WolfDownStart | fopEn_flag_CutDownHit | fopEn_flag_Down); }
|
||||
#if DEBUG
|
||||
void offWolfNoLock() { mFlags &= (u16)~fopEn_flag_WolfNoLock; }
|
||||
#else
|
||||
void offWolfNoLock() { mFlags &= ~fopEn_flag_WolfNoLock; }
|
||||
#endif
|
||||
void offHeadLockFlg() { mFlags &= ~fopEn_flag_HeadLock; }
|
||||
#if DEBUG
|
||||
void offThrowMode(u8 throwMode) { mThrowMode &= (u8)~throwMode; }
|
||||
#else
|
||||
void offThrowMode(u8 throwMode) { mThrowMode &= ~(throwMode & 0xFF); }
|
||||
#endif
|
||||
|
||||
|
||||
@@ -174,7 +174,7 @@ public:
|
||||
|
||||
private:
|
||||
/* 0x14 */ J3DAnmTransform* mAnm;
|
||||
/* 0x18 */ J3DMtxCalc* mpMtxCalc;
|
||||
/* 0x18 */ J3DMtxCalcAnimation<J3DMtxCalcAnimationAdaptorDefault<J3DMtxCalcCalcTransformMaya>, J3DMtxCalcJ3DSysInitMaya>* mpMtxCalc;
|
||||
}; // Size: 0x1C
|
||||
|
||||
STATIC_ASSERT(sizeof(mDoExt_bckAnm) == 0x1C);
|
||||
|
||||
@@ -250,7 +250,7 @@ public:
|
||||
* @param a The source Vec
|
||||
* @param b The output Vec
|
||||
*/
|
||||
static void multVec(const Vec* a, Vec* b) { MTXMultVec(now, a, b); }
|
||||
static void multVec(const Vec* a, Vec* b) { PSMTXMultVec(now, a, b); }
|
||||
|
||||
/**
|
||||
* Multiplies a given Vec `a` by the `now` Matrix's "Scale-and-Rotate" component and places the result into Vec `b`
|
||||
@@ -268,7 +268,7 @@ public:
|
||||
* @param count The size of the array
|
||||
*/
|
||||
static void multVecArray(const Vec* src, Vec* dst, u32 count) {
|
||||
MTXMultVecArray(now, src, dst, count);
|
||||
PSMTXMultVecArray(now, src, dst, count);
|
||||
}
|
||||
|
||||
static void XYZrotS(s16 x, s16 y, s16 z) { mDoMtx_XYZrotS(now, x, y, z); }
|
||||
@@ -327,7 +327,7 @@ public:
|
||||
*/
|
||||
static void ZrotM(s16 z) { mDoMtx_ZrotM(now, z); }
|
||||
|
||||
static void inverse() { MTXInverse(now, now); }
|
||||
static void inverse() { PSMTXInverse(now, now); }
|
||||
|
||||
static void inverseTranspose() { mDoMtx_inverseTranspose(now, now); }
|
||||
|
||||
@@ -350,7 +350,7 @@ public:
|
||||
}
|
||||
|
||||
static void identity() {
|
||||
MTXIdentity(now);
|
||||
PSMTXIdentity(now);
|
||||
}
|
||||
|
||||
static Mtx now;
|
||||
|
||||
@@ -44,9 +44,7 @@ char* J2DResReference::getName(u16 idx) const {
|
||||
p_name[0] = 0;
|
||||
return p_name;
|
||||
} else {
|
||||
s8 first = resRef[0];
|
||||
|
||||
switch (first) {
|
||||
switch (resRef[0]) {
|
||||
case 2:
|
||||
case 3:
|
||||
for (s32 i = 0; i < resRef[1]; i++) {
|
||||
@@ -54,8 +52,9 @@ char* J2DResReference::getName(u16 idx) const {
|
||||
}
|
||||
p_name[resRef[1]] = 0;
|
||||
break;
|
||||
case 4:
|
||||
s32 pos = resRef[1] + 1;
|
||||
case 4: {
|
||||
s32 tmp = resRef[1];
|
||||
s32 pos = tmp + 1;
|
||||
for (; pos >= 2; pos--) {
|
||||
if (resRef[pos] == '\\' || resRef[pos] == '/') {
|
||||
break;
|
||||
@@ -70,6 +69,7 @@ char* J2DResReference::getName(u16 idx) const {
|
||||
p_name[i] = 0;
|
||||
|
||||
break;
|
||||
}
|
||||
default:
|
||||
p_name[0] = 0;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "JSystem/JUtility/JUTTexture.h"
|
||||
#include "dolphin/gx.h"
|
||||
|
||||
// NONMATCHING - instruction order
|
||||
// NONMATCHING - instruction order. matches if const is removed from j2dDefaultColorChanInfo, but then it's in the wrong section
|
||||
void J2DColorBlock::initialize() {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
mMatColor[i] = JUtility::TColor(j2dDefaultColInfo);
|
||||
|
||||
@@ -343,7 +343,8 @@ void J2DPane::place(JGeometry::TBox2<f32> const& box) {
|
||||
|
||||
f32 xOff = tmpBox.i.x - mBounds.i.x;
|
||||
f32 yOff = tmpBox.i.y - mBounds.i.y;
|
||||
for (J2DPane* child = getFirstChildPane(); child != NULL; child = child->getNextChildPane()) {
|
||||
J2DPane* child;
|
||||
for (child = getFirstChildPane(); child != NULL; child = child->getNextChildPane()) {
|
||||
child->mTranslateX += xOff;
|
||||
child->mTranslateY += yOff;
|
||||
if (xOff != 0 || yOff != 0) {
|
||||
@@ -432,10 +433,9 @@ void J2DPane::rotate(f32 angle) {
|
||||
}
|
||||
|
||||
void J2DPane::clip(JGeometry::TBox2<f32> const& bounds) {
|
||||
JGeometry::TBox2<f32> boxA(bounds);
|
||||
JGeometry::TBox2<f32> boxB(mGlobalBounds);
|
||||
boxA.addPos(boxB.i);
|
||||
mClipRect.intersect(boxA);
|
||||
JGeometry::TBox2<f32> box(bounds);
|
||||
box.addPos(JGeometry::TVec2<f32>(mGlobalBounds.i.x, mGlobalBounds.i.y));
|
||||
mClipRect.intersect(box);
|
||||
}
|
||||
|
||||
J2DPane* J2DPane::search(u64 tag) {
|
||||
|
||||
@@ -347,10 +347,6 @@ int J3DSkinDeform::initMtxIndexArray(J3DModelData* pModelData) {
|
||||
return kJ3DError_Success;
|
||||
}
|
||||
|
||||
// NONMATCHING - instruction ordering/optimization issue, matches debug
|
||||
// the compiler needs to delay adding +3 to dl until the end of the while loop for the function to match
|
||||
// but instead it puts the +3 at the start of the for loop and reworks the other instructions
|
||||
// can get a 99.93% match on retail by moving where dl is incremented, but it seems fake as it breaks debug, and introduces an operand swap on src
|
||||
void J3DSkinDeform::changeFastSkinDL(J3DModelData* pModelData) {
|
||||
J3D_ASSERT_NULLPTR(740, pModelData != NULL);
|
||||
for (u16 i = 0; i < pModelData->getShapeNum(); i++) {
|
||||
@@ -389,7 +385,7 @@ void J3DSkinDeform::changeFastSkinDL(J3DModelData* pModelData) {
|
||||
memcpy(dst, src + 1, (int)(vtxSize - 1)); // The -1 is to remove GX_VA_PNMTXIDX
|
||||
dst += (int)(vtxSize - 1);
|
||||
}
|
||||
dl += vtxSize * vtxCount;
|
||||
dl = (u8*)dl + vtxSize * vtxCount;
|
||||
}
|
||||
|
||||
int dlistSize = ((int)dst - (int)displayListStart + 0x1f) & ~0x1f;
|
||||
|
||||
@@ -8,55 +8,57 @@
|
||||
|
||||
u32 J3DShapeDraw::countVertex(u32 stride) {
|
||||
u32 count = 0;
|
||||
uintptr_t dlStart = (uintptr_t)getDisplayList();
|
||||
u8* dlStart = (u8*)getDisplayList();
|
||||
|
||||
for (u8* dl = (u8*)dlStart; ((uintptr_t)dl - dlStart) < getDisplayListSize();) {
|
||||
if (*dl != GX_TRIANGLEFAN && *dl != GX_TRIANGLESTRIP)
|
||||
for (u8* dl = dlStart; (dl - dlStart) < getDisplayListSize();) {
|
||||
u8 cmd = *(u8*)dl;
|
||||
dl++;
|
||||
if (cmd != GX_TRIANGLEFAN && cmd != GX_TRIANGLESTRIP)
|
||||
break;
|
||||
u16 vtxNum = *((u16*)(dl + 1));
|
||||
int vtxNum = *((u16*)(dl));
|
||||
dl += 2;
|
||||
count += vtxNum;
|
||||
dl += stride * vtxNum;
|
||||
dl += 3;
|
||||
dl = (u8*)dl + stride * vtxNum;
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
// NONMATCHING regalloc
|
||||
void J3DShapeDraw::addTexMtxIndexInDL(u32 stride, u32 attrOffs, u32 valueBase) {
|
||||
u32 byteNum = countVertex(stride);
|
||||
u32 newSize = ALIGN_NEXT(mDisplayListSize + byteNum, 0x20);
|
||||
u32 oldSize = mDisplayListSize;
|
||||
u32 newSize = ALIGN_NEXT(oldSize + byteNum, 0x20);
|
||||
u8* newDLStart = new (0x20) u8[newSize];
|
||||
u8* oldDLStart = getDisplayList();
|
||||
u8* oldDLStart = (u8*)mDisplayList;
|
||||
u8* oldDL = oldDLStart;
|
||||
u8* newDL = newDLStart;
|
||||
|
||||
for (; (oldDL - oldDLStart) < mDisplayListSize;) {
|
||||
// Copy command
|
||||
u8 h = *oldDL;
|
||||
*newDL++ = h;
|
||||
u8 cmd = *(u8*)oldDL;
|
||||
oldDL++;
|
||||
*newDL++ = cmd;
|
||||
|
||||
if (h != GX_TRIANGLEFAN && h != GX_TRIANGLESTRIP)
|
||||
if (cmd != GX_TRIANGLEFAN && cmd != GX_TRIANGLESTRIP)
|
||||
break;
|
||||
|
||||
// Copy count
|
||||
// regalloc (I suspect there's a way to shove this in a u16 temp without an mr)
|
||||
s32 vtxNum = *((u16*)(oldDL + 1));
|
||||
*((u16*)newDL) = vtxNum;
|
||||
int vtxNum = *(u16*)oldDL;
|
||||
oldDL += 2;
|
||||
*(u16*)newDL = vtxNum;
|
||||
newDL += 2;
|
||||
|
||||
for (s32 i = 0; i < vtxNum; i++) {
|
||||
u8* oldDLVtx = &oldDL[stride * i + 3];
|
||||
for (int i = 0; i < vtxNum; i++) {
|
||||
u8* oldDLVtx = &oldDL[stride * i];
|
||||
u8 pnmtxidx = *oldDLVtx;
|
||||
memcpy(newDL, oldDLVtx, attrOffs);
|
||||
memcpy(newDL, oldDLVtx, (int)attrOffs);
|
||||
newDL += attrOffs;
|
||||
*newDL++ = valueBase + pnmtxidx;
|
||||
memcpy(newDL, oldDLVtx + attrOffs, stride - attrOffs);
|
||||
newDL += (stride - attrOffs);
|
||||
}
|
||||
|
||||
oldDL += stride * vtxNum;
|
||||
oldDL += 3;
|
||||
oldDL = (u8*)oldDL + stride * vtxNum;
|
||||
}
|
||||
|
||||
u32 realSize = ALIGN_NEXT((uintptr_t)newDL - (uintptr_t)newDLStart, 0x20);
|
||||
|
||||
@@ -27,7 +27,7 @@ JAIStream::JAIStream(JAIStreamMgr* streamMgr, JAISoundStrategyMgr<JAIStream>* so
|
||||
field_0x2c5 = 0;
|
||||
field_0x2c6 = 0;
|
||||
|
||||
for (int i = 0; i < CHANNEL_MAX; i++) {
|
||||
for (int i = 0; i < NUM_CHILDREN; i++) {
|
||||
children_[i] = NULL;
|
||||
}
|
||||
}
|
||||
@@ -157,7 +157,7 @@ void JAIStream::JAIStreamMgr_mixOut_(const JASSoundParams& inParams, JAISoundAct
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < CHANNEL_MAX; i++) {
|
||||
for (int i = 0; i < NUM_CHILDREN; i++) {
|
||||
inner_.aramStream_.setPitch(mixParams->mPitch);
|
||||
if (children_[i] != NULL) {
|
||||
inner_.aramStream_.setChannelVolume(i, children_[i]->mMove.params_.mVolume * mixParams->mVolume);
|
||||
@@ -186,7 +186,7 @@ void JAIStream::JAIStreamMgr_mixOut_(const JASSoundParams& inParams, JAISoundAct
|
||||
void JAIStream::die_JAIStream_() {
|
||||
die_JAISound_();
|
||||
|
||||
for (int i = 0; i < CHANNEL_MAX; i++) {
|
||||
for (int i = 0; i < NUM_CHILDREN; i++) {
|
||||
if (children_[i] != NULL) {
|
||||
delete children_[i];
|
||||
children_[i] = NULL;
|
||||
@@ -231,7 +231,7 @@ void JAIStream::JAIStreamMgr_calc_() {
|
||||
}
|
||||
|
||||
if (calc_JAISound_()) {
|
||||
for (int i = 0; i < CHANNEL_MAX; i++) {
|
||||
for (int i = 0; i < NUM_CHILDREN; i++) {
|
||||
if (children_[i] != NULL) {
|
||||
children_[i]->calc();
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "JSystem/JAudio2/JASDvdThread.h"
|
||||
#include "JSystem/JKernel/JKRAram.h"
|
||||
#include "JSystem/JKernel/JKRSolidHeap.h"
|
||||
#include "JSystem/JSupport/JSupport.h"
|
||||
|
||||
JASTaskThread* JASAramStream::sLoadThread;
|
||||
|
||||
@@ -271,51 +272,55 @@ bool JASAramStream::load() {
|
||||
}
|
||||
u32 loop_end_block = (mLoopEnd - 1) / getBlockSamples();
|
||||
u32 loop_start_block = mLoopStart / getBlockSamples();
|
||||
u32 block = mBlock;
|
||||
if (block > loop_end_block) {
|
||||
if (mBlock > loop_end_block) {
|
||||
return false;
|
||||
}
|
||||
u32 offset = mBlock * (sBlockSize * mChannelNum + sizeof(BlockHeader)) + sizeof(Header);
|
||||
u32 size = sBlockSize * mChannelNum + sizeof(BlockHeader);
|
||||
u32 offset = block * size + sizeof(Header);
|
||||
u32 size2 = size;
|
||||
if (block == loop_end_block) {
|
||||
size2 = mDvdFileInfo.length - offset;
|
||||
if (mBlock == loop_end_block) {
|
||||
size = mDvdFileInfo.length - offset;
|
||||
}
|
||||
if (DVDReadPrio(&mDvdFileInfo, sReadBuffer, size2, offset, 1) < 0) {
|
||||
if (DVDReadPrio(&mDvdFileInfo, sReadBuffer, size, offset, 1) < 0) {
|
||||
JUT_WARN(507, "%s", "DVDReadPrio Failed");
|
||||
struct_80451261 = true;
|
||||
return false;
|
||||
}
|
||||
BlockHeader* bhead = (BlockHeader*)sReadBuffer;
|
||||
JUT_ASSERT(512, bhead->tag == 'BLCK');
|
||||
if (field_0x114 != 0) {
|
||||
return false;
|
||||
}
|
||||
u32 uvar2 = field_0x148 + field_0x10c * sBlockSize;
|
||||
u32 sp08 = field_0x148 + field_0x10c * sBlockSize;
|
||||
for (int i = 0; i < mChannelNum; i++) {
|
||||
if (!JKRAram::mainRamToAram(sReadBuffer + bhead->field_0x4 * i + sizeof(BlockHeader),
|
||||
uvar2 + sBlockSize * field_0x160 * i,
|
||||
bhead->field_0x4, EXPAND_SWITCH_UNKNOWN0, 0, NULL, -1, NULL)) {
|
||||
(void)i;
|
||||
if (!JKRMainRamToAram(sReadBuffer + bhead->field_0x4 * i + sizeof(BlockHeader),
|
||||
sp08 + sBlockSize * field_0x160 * i,
|
||||
bhead->field_0x4, EXPAND_SWITCH_UNKNOWN0, 0, NULL, -1, NULL)) {
|
||||
JUT_WARN(522, "%s", "JKRMainRamToAram Failed");
|
||||
struct_80451261 = 1;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
field_0x10c++;
|
||||
if (field_0x10c >= field_0x108) {
|
||||
u32 uvar8 = field_0x108 - 1 + mBlock;
|
||||
u32 r28 = mBlock;
|
||||
r28 += field_0x108 - 1;
|
||||
if (mLoop) {
|
||||
while (uvar8 > loop_end_block) {
|
||||
uvar8 -= loop_end_block;
|
||||
uvar8 += loop_start_block;
|
||||
JUT_ASSERT(537, loop_start_block < loop_end_block);
|
||||
while (r28 > loop_end_block) {
|
||||
r28 -= loop_end_block;
|
||||
r28 += loop_start_block;
|
||||
}
|
||||
}
|
||||
if (uvar8 == loop_end_block || uvar8 + 2 == loop_end_block) {
|
||||
if (r28 == loop_end_block || r28 + 2 == loop_end_block) {
|
||||
field_0x108 = field_0x160;
|
||||
OSSendMessage(&field_0x020, (OSMessage)5, OS_MESSAGE_BLOCK);
|
||||
} else {
|
||||
field_0x108 = field_0x160 - 1;
|
||||
}
|
||||
for (int i = 0; i < mChannelNum; i++) {
|
||||
field_0x130[i] = bhead->field_0x8[i].field_0x0;
|
||||
field_0x13c[i] = bhead->field_0x8[i].field_0x2;
|
||||
field_0x130[i] = (s16)bhead->field_0x8[i].field_0x0;
|
||||
field_0x13c[i] = (s16)bhead->field_0x8[i].field_0x2;
|
||||
}
|
||||
field_0x10c = 0;
|
||||
}
|
||||
@@ -379,17 +384,16 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel,
|
||||
if (i_dspChannel->field_0x008 == 0) {
|
||||
if (i_channel == field_0x0a8) {
|
||||
field_0x12c = 0;
|
||||
u32 uvar8 = i_dspChannel->field_0x074 + i_dspChannel->field_0x064;
|
||||
u32 uvar5 = field_0x0b4;
|
||||
if (uvar8 <= uvar5) {
|
||||
field_0x0b8 += uvar5 - uvar8;
|
||||
u32 sp28 = i_dspChannel->field_0x074 + i_dspChannel->field_0x064;
|
||||
if (sp28 <= field_0x0b4) {
|
||||
field_0x0b8 += field_0x0b4 - sp28;
|
||||
} else {
|
||||
if (!field_0x0c0) {
|
||||
field_0x0b8 += uvar5;
|
||||
field_0x0b8 += block_samples * mBufCount - uvar8;
|
||||
field_0x0b8 += field_0x0b4;
|
||||
field_0x0b8 += block_samples * mBufCount - sp28;
|
||||
} else {
|
||||
field_0x0b8 += uvar5;
|
||||
field_0x0b8 += block_samples * mBufCount - uvar8
|
||||
field_0x0b8 += field_0x0b4;
|
||||
field_0x0b8 += block_samples * mBufCount - sp28
|
||||
- i_dspChannel->field_0x110;
|
||||
field_0x0b8 -= mLoopEnd;
|
||||
field_0x0b8 += mLoopStart;
|
||||
@@ -403,6 +407,7 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel,
|
||||
}
|
||||
}
|
||||
if (field_0x0b8 > mLoopEnd) {
|
||||
JUT_WARN(686, "%s", "mReadSample > mLoopEnd");
|
||||
struct_80451261 = true;
|
||||
}
|
||||
f32 fvar1 = field_0x0c4;
|
||||
@@ -427,8 +432,8 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel,
|
||||
field_0x128 = 0;
|
||||
field_0x12c |= 8;
|
||||
}
|
||||
i_dspChannel->field_0x074 -= block_samples * mBufCount
|
||||
- (field_0x0bc * block_samples + mLoopEnd % block_samples);
|
||||
int sp20 = field_0x0bc * block_samples + mLoopEnd % block_samples;
|
||||
i_dspChannel->field_0x074 -= block_samples * mBufCount - sp20;
|
||||
field_0x11c = i_dspChannel->field_0x074;
|
||||
field_0x12c |= 1;
|
||||
field_0x0bc += (mLoopEnd - 1) / block_samples - mLoopStart / block_samples + 1;
|
||||
@@ -438,12 +443,13 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel,
|
||||
if (uvar4 != 0) {
|
||||
uvar4--;
|
||||
}
|
||||
uvar5 = uvar4 / sBlockSize;
|
||||
getBlockSamples();
|
||||
if (uvar5 != field_0x0b0) {
|
||||
bool cmp = uvar5 < field_0x0b0;
|
||||
while (uvar5 != field_0x0b0) {
|
||||
u32 sp18 = uvar4 / sBlockSize;
|
||||
u32 sp14 = (mLoopEnd - 1) / getBlockSamples();
|
||||
if (sp18 != field_0x0b0) {
|
||||
bool cmp = sp18 < field_0x0b0;
|
||||
while (sp18 != field_0x0b0) {
|
||||
if (!sLoadThread->sendCmdMsg(loadToAramTask, this)) {
|
||||
JUT_WARN(741, "sendCmdMsg Failed %d %d (%d %d)", i_dspChannel->field_0x070, i_channel->field_0x104, sp18, field_0x0b0);
|
||||
struct_80451261 = true;
|
||||
break;
|
||||
}
|
||||
@@ -491,6 +497,7 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel,
|
||||
}
|
||||
field_0x0b4 = i_dspChannel->field_0x074 + i_dspChannel->field_0x064;
|
||||
if (field_0x118 >= field_0x160 - 2) {
|
||||
JUT_WARN_DEVICE(810, 1, "%s", "buffer under error");
|
||||
field_0x0ae |= 4;
|
||||
}
|
||||
} else {
|
||||
@@ -507,14 +514,15 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel,
|
||||
i_dspChannel->field_0x102 = field_0x128;
|
||||
}
|
||||
}
|
||||
int i = 0;
|
||||
for (; i < 6; i++) {
|
||||
if (i_channel == mChannels[i]) {
|
||||
int ch = 0;
|
||||
for (; ch < 6; ch++) {
|
||||
if (i_channel == mChannels[ch]) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
i_dspChannel->field_0x104 = field_0x130[i];
|
||||
i_dspChannel->field_0x106 = field_0x13c[i];
|
||||
JUT_ASSERT(834, ch < CHANNEL_MAX);
|
||||
i_dspChannel->field_0x104 = (s16)field_0x130[ch];
|
||||
i_dspChannel->field_0x106 = (s16)field_0x13c[ch];
|
||||
}
|
||||
break;
|
||||
case JASChannel::CB_STOP:
|
||||
@@ -529,16 +537,16 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel,
|
||||
if (!open_channel) {
|
||||
field_0x114 = 1;
|
||||
if (!sLoadThread->sendCmdMsg(finishTask, this)) {
|
||||
JUT_WARN(854, "%s", "sendCmdMsg finishTask Failed");
|
||||
struct_80451261 = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
i_channel->mPauseFlag = field_0x0ae != 0;
|
||||
i_channel->setPauseFlag(field_0x0ae != 0);
|
||||
}
|
||||
|
||||
// NONMATCHING instruction ordering / regalloc
|
||||
s32 JASAramStream::channelProc() {
|
||||
OSMessage msg;
|
||||
while (OSReceiveMessage(&field_0x020, &msg, OS_MESSAGE_NOBLOCK)) {
|
||||
@@ -562,7 +570,7 @@ s32 JASAramStream::channelProc() {
|
||||
channelStart();
|
||||
break;
|
||||
case 1:
|
||||
channelStop((u32)msg >> 0x10);
|
||||
channelStop(JSUHiHalf((u32)msg));
|
||||
break;
|
||||
case 2:
|
||||
field_0x0ae |= 1;
|
||||
|
||||
@@ -6,8 +6,11 @@
|
||||
|
||||
#include "JSystem/JAudio2/JAUAudioMgr.h"
|
||||
#include "JSystem/JAudio2/JASHeapCtrl.h"
|
||||
#include "JSystem/JAudio2/JAUStreamAramMgr.h"
|
||||
|
||||
// Here to generate JASHeap::__defctor (ctor generated by default arguments)
|
||||
void dummyDefCtor() {
|
||||
JASHeap dummy[20];
|
||||
JAUStreamStaticAramMgr_<1>* streamStaticAramMgr = new(NULL, 0) JAUStreamStaticAramMgr_<1>();
|
||||
streamStaticAramMgr->reserveAram(NULL, 0, 0x14);
|
||||
}
|
||||
|
||||
@@ -75,7 +75,8 @@ bool JKRDvdArchive::open(s32 entryNum) {
|
||||
JKRDvdRipper::ALLOC_DIRECTION_FORWARD, 0, &mCompression, NULL);
|
||||
DCInvalidateRange(arcHeader, sizeof(SArcHeader));
|
||||
|
||||
int alignment = mMountDirection == MOUNT_DIRECTION_HEAD ? 0x20 : -0x20;
|
||||
int alignment;
|
||||
alignment = mMountDirection == MOUNT_DIRECTION_HEAD ? 0x20 : -0x20;
|
||||
|
||||
mArcInfoBlock = (SArcDataInfo*)JKRAllocFromHeap(mHeap, arcHeader->file_data_offset, alignment);
|
||||
if (!mArcInfoBlock) {
|
||||
@@ -93,8 +94,10 @@ bool JKRDvdArchive::open(s32 entryNum) {
|
||||
mStringTable = (char*)((int)&mArcInfoBlock->num_nodes + mArcInfoBlock->string_table_offset);
|
||||
mExpandedSize = NULL;
|
||||
|
||||
u8 useCompression = 0;
|
||||
SDIFileEntry* fileEntry = mFiles;
|
||||
u8 useCompression;
|
||||
useCompression = 0;
|
||||
SDIFileEntry* fileEntry;
|
||||
fileEntry = mFiles;
|
||||
for (u32 i = 0; i < mArcInfoBlock->num_file_entries; fileEntry++, i++) {
|
||||
if (fileEntry->isUnknownFlag1()) {
|
||||
useCompression |= fileEntry->getCompressFlag();
|
||||
|
||||
@@ -195,15 +195,18 @@ u32 JKRMemArchive::fetchResource_subroutine(u8* src, u32 srcLength, u8* dst, u32
|
||||
return srcLength;
|
||||
|
||||
case COMPRESSION_YAY0:
|
||||
case COMPRESSION_YAZ0:
|
||||
case COMPRESSION_YAZ0: {
|
||||
u32 expendedSize = JKRDecompExpandSize(src);
|
||||
#if VERSION != VERSION_SHIELD_DEBUG
|
||||
srcLength = expendedSize;
|
||||
#endif
|
||||
if (expendedSize > dstLength) {
|
||||
srcLength = dstLength;
|
||||
}
|
||||
|
||||
JKRDecompress(src, dst, srcLength, 0);
|
||||
return srcLength;
|
||||
}
|
||||
|
||||
default: {
|
||||
JUTException::panic(__FILE__, 723, "??? bad sequence\n");
|
||||
|
||||
@@ -70,10 +70,10 @@ struct TAsinAcosTable {
|
||||
|
||||
namespace JMath {
|
||||
|
||||
TSinCosTable<13, f32> sincosTable_;
|
||||
TSinCosTable<13, f32> sincosTable_ ATTRIBUTE_ALIGN(32);
|
||||
|
||||
TAtanTable atanTable_;
|
||||
TAtanTable atanTable_ ATTRIBUTE_ALIGN(32);
|
||||
|
||||
TAsinAcosTable asinAcosTable_;
|
||||
TAsinAcosTable asinAcosTable_ ATTRIBUTE_ALIGN(32);
|
||||
|
||||
} // namespace JMath
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
#include "JSystem/JSystem.h" // IWYU pragma: keep
|
||||
|
||||
#include "JSystem/JStage/JSGCamera.h"
|
||||
#include "math.h"
|
||||
#include "limits.h"
|
||||
|
||||
JStage::TCamera::~TCamera() {}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include "JSystem/JSystem.h" // IWYU pragma: keep
|
||||
|
||||
#include "JSystem/JStage/JSGFog.h"
|
||||
#include "math.h"
|
||||
#include "limits.h"
|
||||
|
||||
JStage::TFog::~TFog() {}
|
||||
|
||||
@@ -22,7 +22,7 @@ f32 JStage::TFog::JSGGetStartZ() const {
|
||||
void JStage::TFog::JSGSetStartZ(f32) {}
|
||||
|
||||
f32 JStage::TFog::JSGGetEndZ() const {
|
||||
return FLT_MAX;
|
||||
return std::numeric_limits<f32>::max();
|
||||
}
|
||||
|
||||
void JStage::TFog::JSGSetEndZ(f32) {}
|
||||
|
||||
@@ -16,31 +16,37 @@ int JStudio::ctb::TObject_TxyzRy::getScheme() const {
|
||||
|
||||
JStudio::ctb::TControl::TControl() : pFactory_(NULL) {}
|
||||
|
||||
JStudio::ctb::TControl::~TControl() {}
|
||||
|
||||
void JStudio::ctb::TControl::appendObject(JStudio::ctb::TObject* param_0) {
|
||||
mList.Push_back(param_0);
|
||||
JStudio::ctb::TControl::~TControl() {
|
||||
JGADGET_ASSERTWARN(94, ocObject_.empty());
|
||||
}
|
||||
|
||||
void JStudio::ctb::TControl::removeObject(JStudio::ctb::TObject* param_0) {
|
||||
mList.Erase(param_0);
|
||||
void JStudio::ctb::TControl::appendObject(JStudio::ctb::TObject* p) {
|
||||
JUT_ASSERT(106, p!=NULL)
|
||||
ocObject_.Push_back(p);
|
||||
}
|
||||
|
||||
void JStudio::ctb::TControl::removeObject(JStudio::ctb::TObject* p) {
|
||||
JUT_ASSERT(113, p!=NULL)
|
||||
ocObject_.Erase(p);
|
||||
}
|
||||
|
||||
void JStudio::ctb::TControl::destroyObject(JStudio::ctb::TObject* param_0) {
|
||||
removeObject(param_0);
|
||||
getFactory()->destroy(param_0);
|
||||
TFactory *pFactory = getFactory();
|
||||
JUT_ASSERT(129, pFactory!=NULL);
|
||||
pFactory->destroy(param_0);
|
||||
}
|
||||
|
||||
void JStudio::ctb::TControl::destroyObject_all() {
|
||||
while (!mList.empty()) {
|
||||
destroyObject(&mList.back());
|
||||
while (!ocObject_.empty()) {
|
||||
destroyObject(&ocObject_.back());
|
||||
}
|
||||
}
|
||||
|
||||
// NONMATCHING - TPRObject_ID_equal issues
|
||||
JStudio::ctb::TObject* JStudio::ctb::TControl::getObject(void const* param_0, u32 param_1) {
|
||||
JGadget::TLinkList<TObject, -12>::iterator begin = mList.begin();
|
||||
JGadget::TLinkList<TObject, -12>::iterator end = mList.end();
|
||||
JGadget::TLinkList<TObject, -12>::iterator begin = ocObject_.begin();
|
||||
JGadget::TLinkList<TObject, -12>::iterator end = ocObject_.end();
|
||||
JGadget::TLinkList<TObject, -12>::iterator local_50 = std::find_if(begin, end, object::TPRObject_ID_equal(param_0, param_1));
|
||||
if ((local_50 != end) != false) {
|
||||
return &*local_50;
|
||||
@@ -49,10 +55,10 @@ JStudio::ctb::TObject* JStudio::ctb::TControl::getObject(void const* param_0, u3
|
||||
}
|
||||
|
||||
JStudio::ctb::TObject* JStudio::ctb::TControl::getObject_index(u32 param_0) {
|
||||
if (param_0 >= mList.size()) {
|
||||
if (param_0 >= ocObject_.size()) {
|
||||
return 0;
|
||||
}
|
||||
JGadget::TLinkList<TObject, -12>::iterator aiStack_14 = mList.begin();
|
||||
JGadget::TLinkList<TObject, -12>::iterator aiStack_14 = ocObject_.begin();
|
||||
std::advance_fake(aiStack_14, param_0);
|
||||
return &*aiStack_14;
|
||||
}
|
||||
|
||||
@@ -185,7 +185,7 @@ void TFunctionValueAttribute_range::range_set(f64 begin, f64 end) {
|
||||
fEnd_ = end;
|
||||
fDifference_ = end - begin;
|
||||
|
||||
JUT_ASSERT(458, fDifference_ >= TValue(0));
|
||||
JUT_ASSERT(458, fDifference_>=TValue(0));
|
||||
}
|
||||
|
||||
// /* 80281A08-80281D18 27C348 0310+00 2/2 0/0 0/0 .text
|
||||
|
||||
@@ -2,15 +2,17 @@
|
||||
|
||||
#include "JSystem/JStudio/JStudio/fvb-data-parse.h"
|
||||
|
||||
void JStudio::fvb::data::TParse_TParagraph::getData(TParse_TParagraph::TData* data) const
|
||||
void JStudio::fvb::data::TParse_TParagraph::getData(TParse_TParagraph::TData* pData) const
|
||||
{
|
||||
u16* parse = (u16*)JGadget::binary::parseVariableUInt_16_32_following(getRaw(), (u32*)data, (u32*)&data->u32Type, NULL);
|
||||
u32 t = (u32)data->u32Size;
|
||||
JUT_ASSERT(24, pData!=NULL);
|
||||
const void *ptr = getRaw();
|
||||
ptr = JGadget::binary::parseVariableUInt_16_32_following(ptr, (u32*)pData, (u32*)&pData->u32Type, NULL);
|
||||
u32 t = (u32)pData->u32Size;
|
||||
if (!t) {
|
||||
data->pContent = NULL;
|
||||
data->next = parse;
|
||||
pData->pContent = NULL;
|
||||
pData->next = (const u16*)ptr;
|
||||
} else {
|
||||
data->pContent = parse;
|
||||
data->next = parse + ((t + 3) >> 1 & ~1);
|
||||
pData->pContent = (const u16*)ptr;
|
||||
pData->next = (u8*)ptr + JGadget::binary::align_roundUp(t, 4);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ int JStudio::TControl::transformOnGet_setOrigin_TxyzRy(Vec const& param_0, f32 p
|
||||
|
||||
int JStudio::TControl::transform_setOrigin_ctb(JStudio::ctb::TObject const& param_0) {
|
||||
switch (param_0.getScheme()) {
|
||||
case 1:
|
||||
case 1: {
|
||||
const f32* pfVar4 = (const f32*)param_0.getData();
|
||||
Vec local_144 = {0.0f, 0.0f, 0.0f};
|
||||
local_144.x = pfVar4[0];
|
||||
@@ -56,6 +56,7 @@ int JStudio::TControl::transform_setOrigin_ctb(JStudio::ctb::TObject const& para
|
||||
local_144.z = pfVar4[2];
|
||||
transform_setOrigin_TxyzRy(local_144, pfVar4[3]);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -73,12 +73,16 @@ void JStudio::TVariableValue::update_immediate_(JStudio::TVariableValue* param_0
|
||||
}
|
||||
|
||||
void JStudio::TVariableValue::update_time_(JStudio::TVariableValue* param_0, f64 param_1) {
|
||||
param_0->mValue = param_0->field_0xc.val * (param_0->field_0x4 * param_1);
|
||||
f64 v = param_0->field_0xc.val * (param_0->field_0x4 * param_1);
|
||||
param_0->mValue = v;
|
||||
}
|
||||
|
||||
void JStudio::TVariableValue::update_functionValue_(JStudio::TVariableValue* param_0,
|
||||
f64 param_1) {
|
||||
param_0->mValue = param_0->field_0xc.fv->getValue(param_0->field_0x4 * param_1);
|
||||
|
||||
TFunctionValue *fv = param_0->field_0xc.fv;
|
||||
f64 v = fv->getValue(param_0->field_0x4 * param_1);
|
||||
param_0->mValue = v;
|
||||
}
|
||||
|
||||
JStudio::TVariableValue::TOutput_none_::~TOutput_none_() {}
|
||||
|
||||
@@ -9,39 +9,41 @@ namespace stb {
|
||||
namespace data {
|
||||
|
||||
void TParse_TSequence::getData(TData* pData) const {
|
||||
ASSERT(pData != NULL);
|
||||
JUT_ASSERT(50, pData!=NULL);
|
||||
|
||||
pData->content = NULL;
|
||||
pData->next = NULL;
|
||||
u32 head = get_head();
|
||||
u8 type = head >> 24;
|
||||
u32 param = head & 0xffffff;
|
||||
pData->type = type;
|
||||
pData->type = type & 0xff;
|
||||
pData->param = param;
|
||||
if (type != 0) {
|
||||
const void* next = (const void*)((int)getRaw() + 4);
|
||||
if (type <= 0x7f) {
|
||||
pData->next = next;
|
||||
} else {
|
||||
pData->content = next;
|
||||
pData->next = (const void*)((int)next + param);
|
||||
}
|
||||
|
||||
if (type == 0)
|
||||
return;
|
||||
|
||||
const void* next = (const void*)((int)getRaw() + 4);
|
||||
if (type <= 0x7f) {
|
||||
pData->next = next;
|
||||
} else {
|
||||
pData->content = next;
|
||||
pData->next = (const void*)((int)next + param);
|
||||
}
|
||||
}
|
||||
|
||||
void TParse_TParagraph::getData(TData* pData) const {
|
||||
ASSERT(pData != NULL);
|
||||
JUT_ASSERT(80, pData!=NULL);
|
||||
|
||||
const void* data = getRaw();
|
||||
u32 result;
|
||||
const void* next = parseVariableUInt_16_32_following(data, &result, &pData->type, NULL);
|
||||
data = parseVariableUInt_16_32_following(data, &result, &pData->type, NULL);
|
||||
pData->param = result;
|
||||
if (result == 0) {
|
||||
pData->content = NULL;
|
||||
pData->next = next;
|
||||
pData->next = data;
|
||||
} else {
|
||||
pData->content = next;
|
||||
pData->next = (const void*)((int)next + align_roundUp(result, 4));
|
||||
pData->content = data;
|
||||
pData->next = (const void*)((int)data + align_roundUp(result, 4));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -109,11 +109,11 @@ void JStudio_JAudio2::TAdaptor_sound::adaptor_do_update(u32 param_1) {
|
||||
JUT_ASSERT(196, pControl!=NULL);
|
||||
JStudio::TControl::TTransform_position VStack_148;
|
||||
JStudio::TControl::TTransform_position VStack_154;
|
||||
JStudio::TControl::TTransform_position* pVVar2;
|
||||
const JStudio::TControl::TTransform_position* pVVar2;
|
||||
adaptor_getVariableValue_Vec(&VStack_148,
|
||||
JStudio::TAdaptor_sound::sauVariableValue_3_POSITION_XYZ);
|
||||
if (field_0x144 == 0) {
|
||||
pVVar2 = pControl->transformOnSet_transform_ifEnabled(&VStack_148, &VStack_154);
|
||||
pVVar2 = pControl->transformOnSet_transform_ifEnabled(VStack_148, &VStack_154);
|
||||
} else {
|
||||
if (!JStudio_JStage::transform_toGlobalFromLocal(&VStack_154, VStack_148, field_0x13c, field_0x140)) {
|
||||
return;
|
||||
|
||||
@@ -281,10 +281,10 @@ JStudio_JParticle::TAdaptor_particle::TJPACallback_emitter_::execute(JPABaseEmit
|
||||
&VStack_19c.scaling,
|
||||
sauVariableValue_3_SCALING_XYZ);
|
||||
if (pThis_->field_0x1d8 == 0) {
|
||||
JStudio::TControl::TTransform_translation_rotation_scaling* pVVar9 = &VStack_19c;
|
||||
const JStudio::TControl::TTransform_translation_rotation_scaling* pVVar9 = &VStack_19c;
|
||||
switch(pThis_->field_0x1cc) {
|
||||
case 0:
|
||||
pVVar9 = pControl->transformOnSet_transform_ifEnabled(&VStack_19c, &aTStack_1c0);
|
||||
pVVar9 = pControl->transformOnSet_transform_ifEnabled(VStack_19c, &aTStack_1c0);
|
||||
break;
|
||||
case 1:
|
||||
break;
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
JStudio_JStage::TAdaptor_actor::TAdaptor_actor(JStage::TSystem const* param_1,
|
||||
JStage::TActor* param_2) :
|
||||
TAdaptor_object_(param_1,param_2) {
|
||||
TAdaptor_object_(this, param_1,param_2) {
|
||||
field_0x130 = 0;
|
||||
field_0x134 = 0;
|
||||
field_0x138 = 0;
|
||||
@@ -265,9 +265,9 @@ void JStudio_JStage::TAdaptor_actor::setJSG_SRT_(JStudio::TControl const* pContr
|
||||
adaptor_getVariableValue_Vec(&transform.translation, sauVariableValue_3_TRANSLATION_XYZ);
|
||||
adaptor_getVariableValue_Vec(&transform.rotation, sauVariableValue_3_ROTATION_XYZ);
|
||||
adaptor_getVariableValue_Vec(&transform.scaling, sauVariableValue_3_SCALING_XYZ);
|
||||
JStudio::TControl::TTransform_translation_rotation_scaling* pTransform;
|
||||
const JStudio::TControl::TTransform_translation_rotation_scaling* pTransform;
|
||||
if (field_0x144 == 0) {
|
||||
pTransform = pControl->transformOnSet_transform_ifEnabled(&transform, &multipliedTransform);
|
||||
pTransform = pControl->transformOnSet_transform_ifEnabled(transform, &multipliedTransform);
|
||||
} else {
|
||||
pTransform = &transform;
|
||||
switch (field_0x138) {
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
JStudio_JStage::TAdaptor_ambientLight::TAdaptor_ambientLight(JStage::TSystem const* param_1,
|
||||
JStage::TAmbientLight* param_2)
|
||||
: TAdaptor_object_(param_1, param_2) {}
|
||||
: TAdaptor_object_(this, param_1, param_2) {}
|
||||
|
||||
JStudio_JStage::TAdaptor_ambientLight::~TAdaptor_ambientLight() {
|
||||
adaptor_do_end();
|
||||
@@ -19,7 +19,8 @@ void JStudio_JStage::TAdaptor_ambientLight::adaptor_do_prepare() {
|
||||
|
||||
void JStudio_JStage::TAdaptor_ambientLight::adaptor_do_begin() {
|
||||
adaptor_object_begin_();
|
||||
GXColor color = get_pJSG_()->JSGGetColor();
|
||||
JStage::TAmbientLight* light = get_pJSG_();
|
||||
GXColor color = light->JSGGetColor();
|
||||
adaptor_setVariableValue_GXColor(sauVariableValue_4_COLOR_RGBA, color);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
JStudio_JStage::TAdaptor_camera::TAdaptor_camera(JStage::TSystem const* param_1,
|
||||
JStage::TCamera* param_2)
|
||||
: TAdaptor_object_(param_1, param_2) {
|
||||
: TAdaptor_object_(this, param_1, param_2) {
|
||||
field_0x108 = 0;
|
||||
field_0x10c = 0;
|
||||
field_0x110 = -1;
|
||||
@@ -117,9 +117,9 @@ JStudio_JStage::TAdaptor_camera::adaptor_do_PARENT_ENABLE(JStudio::data::TEOpera
|
||||
case JStudio::data::UNK_0x2:
|
||||
JUT_ASSERT(185, uSize==4);
|
||||
JUT_ASSERT(186, pContent!=NULL);
|
||||
field_0x114 = *(u32*)pContent ? 1 : 0;
|
||||
field_0x114 = *(u32*)pContent ? true : false;
|
||||
switch(field_0x108) {
|
||||
case 1:
|
||||
case 1: {
|
||||
JStage::TObject* parent = 0;
|
||||
int idx = -1;
|
||||
if (field_0x114 != 0) {
|
||||
@@ -128,6 +128,7 @@ JStudio_JStage::TAdaptor_camera::adaptor_do_PARENT_ENABLE(JStudio::data::TEOpera
|
||||
}
|
||||
pJSGObject_->JSGSetParent(parent, idx);
|
||||
break;
|
||||
}
|
||||
case 0:
|
||||
break;
|
||||
}
|
||||
@@ -201,13 +202,13 @@ void JStudio_JStage::TAdaptor_camera::setJSG_position_(JStudio::TControl const*
|
||||
JStudio::TControl::TTransform_position VStack_138;
|
||||
JStudio::TControl::TTransform_position VStack_144;
|
||||
adaptor_getVariableValue_Vec(&VStack_138, sauVariableValue_3_POSITION_XYZ);
|
||||
Vec* pViewPosition;
|
||||
const Vec* pViewPosition;
|
||||
if (field_0x114 == 0) {
|
||||
pViewPosition = param_1->transformOnSet_transform_ifEnabled(&VStack_138, &VStack_144);
|
||||
pViewPosition = param_1->transformOnSet_transform_ifEnabled(VStack_138, &VStack_144);
|
||||
} else {
|
||||
pViewPosition = &VStack_138;
|
||||
switch (field_0x108) {
|
||||
case 0:
|
||||
case 0: {
|
||||
int iVar1 =
|
||||
transform_toGlobalFromLocal(&VStack_144, VStack_138, field_0x10c, field_0x110);
|
||||
if (iVar1 == 0) {
|
||||
@@ -215,6 +216,7 @@ void JStudio_JStage::TAdaptor_camera::setJSG_position_(JStudio::TControl const*
|
||||
}
|
||||
pViewPosition = &VStack_144;
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
@@ -226,12 +228,12 @@ void JStudio_JStage::TAdaptor_camera::getJSG_position_(JStudio::TControl const*
|
||||
Mtx mtx;
|
||||
JStudio::TControl::TTransform_position transform;
|
||||
JStudio::TControl::TTransform_position tempTransform;
|
||||
JStudio::TControl::TTransform_position* outTransform;
|
||||
const JStudio::TControl::TTransform_position* outTransform;
|
||||
|
||||
get_pJSG_()->JSGGetViewPosition(&transform);
|
||||
|
||||
if (!field_0x114) {
|
||||
outTransform = param_1->transformOnGet_transform_ifEnabled(&transform, &tempTransform);
|
||||
outTransform = param_1->transformOnGet_transform_ifEnabled(transform, &tempTransform);
|
||||
} else {
|
||||
outTransform = &transform;
|
||||
switch (field_0x108) {
|
||||
@@ -262,11 +264,11 @@ void JStudio_JStage::TAdaptor_camera::getJSG_position_(JStudio::TControl const*
|
||||
void JStudio_JStage::TAdaptor_camera::setJSG_targetPosition_(JStudio::TControl const* param_1) {
|
||||
JStudio::TControl::TTransform_position transform;
|
||||
JStudio::TControl::TTransform_position tempTransform;
|
||||
JStudio::TControl::TTransform_position* outTransform;
|
||||
const JStudio::TControl::TTransform_position* outTransform;
|
||||
adaptor_getVariableValue_Vec(&transform, sauVariableValue_3_TARGET_POSITION_XYZ);
|
||||
if (field_0x120 == 0) {
|
||||
outTransform = param_1->transformOnSet_transform_ifEnabled(
|
||||
&transform, &tempTransform);
|
||||
transform, &tempTransform);
|
||||
} else {
|
||||
if (transform_toGlobalFromLocal(&tempTransform, transform,
|
||||
field_0x118, field_0x11c) == 0) {
|
||||
@@ -281,12 +283,12 @@ void JStudio_JStage::TAdaptor_camera::getJSG_targetPosition_(JStudio::TControl c
|
||||
Mtx mtx;
|
||||
JStudio::TControl::TTransform_position transform;
|
||||
JStudio::TControl::TTransform_position tempTransform;
|
||||
JStudio::TControl::TTransform_position* outTransform;
|
||||
const JStudio::TControl::TTransform_position* outTransform;
|
||||
|
||||
get_pJSG_()->JSGGetViewTargetPosition(&transform);
|
||||
|
||||
if (!field_0x120) {
|
||||
outTransform = param_1->transformOnGet_transform_ifEnabled(&transform, &tempTransform);
|
||||
outTransform = param_1->transformOnGet_transform_ifEnabled(transform, &tempTransform);
|
||||
} else {
|
||||
outTransform = &transform;
|
||||
bool check;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "JSystem/JStudio/JStudio_JStage/object-fog.h"
|
||||
|
||||
JStudio_JStage::TAdaptor_fog::TAdaptor_fog(JStage::TSystem const* param_0, JStage::TFog* param_1)
|
||||
: TAdaptor_object_(param_0, param_1) {}
|
||||
: TAdaptor_object_(this, param_0, param_1) {}
|
||||
|
||||
JStudio_JStage::TAdaptor_fog::~TAdaptor_fog() {
|
||||
adaptor_do_end();
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
JStudio_JStage::TAdaptor_light::TAdaptor_light(JStage::TSystem const* param_1,
|
||||
JStage::TLight* param_2)
|
||||
: JStudio_JStage::TAdaptor_object_(param_1, param_2) {
|
||||
: JStudio_JStage::TAdaptor_object_(this, param_1, param_2) {
|
||||
field_0x11c = 0;
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ void JStudio_JStage::TAdaptor_light::adaptor_do_begin() {
|
||||
JStudio::TControl::TTransform_position_direction aTStack_b8;
|
||||
pLightObj->JSGGetPosition(&lightObjTransform.position);
|
||||
pLightObj->JSGGetDirection(&lightObjTransform.direction);
|
||||
JStudio::TControl::TTransform_position_direction* finalTransform =
|
||||
const JStudio::TControl::TTransform_position_direction* finalTransform =
|
||||
pControl->transformOnGet_transform_ifEnabled(lightObjTransform, &aTStack_b8);
|
||||
adaptor_setVariableValue_Vec(sauVariableValue_3_POSITION_XYZ, finalTransform->position);
|
||||
f32 dirx = finalTransform->direction.x;
|
||||
@@ -106,8 +106,8 @@ void JStudio_JStage::TAdaptor_light::adaptor_do_update(u32 param_1) {
|
||||
adaptor_getVariableValue_Vec(&VStack_1c0, sauVariableValue_3_TARGET_POSITION_XYZ);
|
||||
VECSubtract(&VStack_1c0, &VStack_198.position, &VStack_198.direction);
|
||||
}
|
||||
JStudio::TControl::TTransform_position_direction* pTrans =
|
||||
pControl->transformOnSet_transform_ifEnabled(&VStack_198, &aTStack_1b0);
|
||||
const JStudio::TControl::TTransform_position_direction* pTrans =
|
||||
pControl->transformOnSet_transform_ifEnabled(VStack_198, &aTStack_1b0);
|
||||
lightObj->JSGSetPosition(pTrans->position);
|
||||
lightObj->JSGSetDirection(pTrans->direction);
|
||||
pJSGObject_->JSGUpdate();
|
||||
@@ -152,5 +152,7 @@ void JStudio_JStage::TAdaptor_light::adaptor_do_ENABLE(JStudio::data::TEOperatio
|
||||
|
||||
void JStudio_JStage::TAdaptor_light::TVVOutput_direction_::operator()(
|
||||
f32 param_0, JStudio::TAdaptor* param_1) const {
|
||||
((JStudio_JStage::TAdaptor_light*)param_1)->field_0x11c = field_0x8;
|
||||
JStudio_JStage::TAdaptor_light* p = (JStudio_JStage::TAdaptor_light*)param_1;
|
||||
JUT_ASSERT(246, p!=NULL);
|
||||
p->field_0x11c = field_0x8;
|
||||
}
|
||||
|
||||
@@ -277,9 +277,9 @@ void JUTCacheFont::setBlock() {
|
||||
break;
|
||||
case 'GLY1':
|
||||
memcpy(piVar5, pData, 0x20);
|
||||
JKRAramBlock* iVar1 =
|
||||
JKRMainRamToAram((u8*)pData + 0x20, aramAddress, pData[1] - 0x20,
|
||||
EXPAND_SWITCH_UNKNOWN0, 0, NULL, 0xffffffff, NULL);
|
||||
JKRAramBlock* iVar1;
|
||||
iVar1 = JKRMainRamToAram((u8*)pData + 0x20, aramAddress, pData[1] - 0x20,
|
||||
EXPAND_SWITCH_UNKNOWN0, 0, NULL, 0xffffffff, NULL);
|
||||
if (iVar1 == NULL) {
|
||||
JUTException::panic("JUTCacheFont.cpp", 0x1dd,
|
||||
"trouble occurred in JKRMainRamToAram.");
|
||||
|
||||
@@ -126,14 +126,15 @@ void JUTResFont::setBlock() {
|
||||
mMaxCode = -1;
|
||||
|
||||
BlockHeader* data = (BlockHeader*)mResFont->data;
|
||||
for (u32 i = 0; i < mResFont->numBlocks; i++, data = (BlockHeader*)data->getNext()) {
|
||||
for (u32 i = 0; i < mResFont->numBlocks; data = (BlockHeader*)data->getNext(), i++) {
|
||||
switch (data->magic) {
|
||||
case 'INF1':
|
||||
mInf1Ptr = (ResFONT::INF1*)data;
|
||||
case 'INF1': {
|
||||
mInf1Ptr = (ResFONT::INF1*)data;
|
||||
u32 u = mInf1Ptr->fontType;
|
||||
JUT_ASSERT(244, u < suAboutEncoding_);
|
||||
mIsLeadByte = &saoAboutEncoding_[u];
|
||||
break;
|
||||
break;
|
||||
}
|
||||
|
||||
case 'WID1':
|
||||
mpWidthBlocks[widthNum] = (ResFONT::WID1*)data;
|
||||
|
||||
@@ -73,6 +73,7 @@ ForwardIterator upper_bound(ForwardIterator first, ForwardIterator last, const T
|
||||
return first;
|
||||
}
|
||||
|
||||
// should be inline, but breaks JStudio/JStudio/ctb weak function order
|
||||
template<class InputIt, class UnaryPredicate>
|
||||
InputIt find_if(InputIt first, InputIt last, UnaryPredicate p) {
|
||||
while (first != last && !p(*first)) {
|
||||
|
||||
@@ -28,10 +28,20 @@ template<> class __bitset_base<1> {
|
||||
public:
|
||||
__bitset_base() { data = 0; }
|
||||
|
||||
bool test(size_t pos) const { return data & (1 << pos); }
|
||||
bool test(size_t pos) const {
|
||||
u32 r31 = 1UL << pos;
|
||||
return data & r31;
|
||||
}
|
||||
bool any() const { return data != 0; }
|
||||
void set(size_t pos, bool val) { data |= (1 << pos); }
|
||||
void reset(size_t pos) { data &= ~(1 << pos); }
|
||||
void set(size_t pos, bool val) {
|
||||
u32 r31 = 1UL << pos;
|
||||
if (val) {
|
||||
data |= r31;
|
||||
} else {
|
||||
data &= ~r31;
|
||||
}
|
||||
}
|
||||
void reset(size_t pos) { data &= ~(1UL << pos); }
|
||||
private:
|
||||
size_t data;
|
||||
};
|
||||
|
||||
@@ -39,19 +39,20 @@ static f32 dummy(f32 x) {
|
||||
bool cM3d_Len2dSqPntAndSegLine(f32 param_1, f32 param_2, f32 param_3, f32 param_4, f32 p5, f32 p6,
|
||||
f32* param_7, f32* param_8, f32* param_9) {
|
||||
bool retVal = false;
|
||||
f32 param_5 = p5 - param_3;
|
||||
f32 param_6 = p6 - param_4;
|
||||
f32 len = param_5 * param_5 + param_6 * param_6;
|
||||
f32 f31 = p5 - param_3;
|
||||
f32 f30 = p6 - param_4;
|
||||
f32 len = f31 * f31 + f30 * f30;
|
||||
f32 f29;
|
||||
if (cM3d_IsZero(len)) {
|
||||
*param_9 = 0.0f;
|
||||
return retVal;
|
||||
return false;
|
||||
} else {
|
||||
len = (param_5 * (param_1 - param_3) + param_6 * (param_2 - param_4)) / len;
|
||||
if (len >= 0.0f && len <= 1.0f) {
|
||||
f29 = (f31 * (param_1 - param_3) + f30 * (param_2 - param_4)) / len;
|
||||
if (f29 >= 0.0f && f29 <= 1.0f) {
|
||||
retVal = true;
|
||||
}
|
||||
*param_7 = param_3 + param_5 * len;
|
||||
*param_8 = param_4 + param_6 * len;
|
||||
*param_7 = param_3 + f31 * f29;
|
||||
*param_8 = param_4 + f30 * f29;
|
||||
*param_9 = cM3d_Len2dSq(*param_7, *param_8, param_1, param_2);
|
||||
return retVal;
|
||||
}
|
||||
|
||||
@@ -24,7 +24,6 @@ Z2AudioMgr::Z2AudioMgr() : mSoundStarter(true) {
|
||||
field_0x519 = false;
|
||||
}
|
||||
|
||||
// NONMATCHING JASPoolAllocObject<_> locations
|
||||
void Z2AudioMgr::init(JKRSolidHeap* heap, u32 memSize, void* baaData, JKRArchive* seqArc) {
|
||||
JAU_JASInitializer JASInitializer;
|
||||
JASInitializer.audioMemSize_ = memSize;
|
||||
@@ -62,6 +61,10 @@ void Z2AudioMgr::init(JKRSolidHeap* heap, u32 memSize, void* baaData, JKRArchive
|
||||
categoryArrangement.mItems[8].mMaxInactiveSe = 5;
|
||||
categoryArrangement.mItems[9].mMaxActiveSe = 8;
|
||||
categoryArrangement.mItems[9].mMaxInactiveSe = 4;
|
||||
#if PLATFORM_WII || PLATFORM_SHIELD
|
||||
categoryArrangement.mItems[10].mMaxInactiveSe = 4;
|
||||
categoryArrangement.mItems[11].mMaxInactiveSe = 2;
|
||||
#endif
|
||||
seMgr->setCategoryArrangement(categoryArrangement);
|
||||
|
||||
seMgr->getCategory(0)->getParams()->moveVolume(Z2Param::VOL_SE_SYSTEM_DEFAULT, 0);
|
||||
@@ -74,6 +77,9 @@ void Z2AudioMgr::init(JKRSolidHeap* heap, u32 memSize, void* baaData, JKRArchive
|
||||
seMgr->getCategory(7)->getParams()->moveVolume(Z2Param::VOL_SE_CHAR_VOICE_DEFAULT, 0);
|
||||
seMgr->getCategory(8)->getParams()->moveVolume(Z2Param::VOL_SE_OBJECT_DEFAULT, 0);
|
||||
seMgr->getCategory(9)->getParams()->moveVolume(Z2Param::VOL_SE_ATMOSPHERE_DEFAULT, 0);
|
||||
#if PLATFORM_WII || PLATFORM_SHIELD
|
||||
seMgr->getCategory(10)->getParams()->moveVolume(1.0f, 0);
|
||||
#endif
|
||||
|
||||
seMgr->getParams()->moveVolume(1.0f, 0);
|
||||
|
||||
|
||||
+503
-471
File diff suppressed because it is too large
Load Diff
@@ -1601,7 +1601,7 @@ void daAlinkHIO_guard_c::genMessage(JORMContext* ctx) {
|
||||
// Reset
|
||||
ctx->genButton("リセット", 0x4000003, 0, NULL, 0xffff, 0xffff, 0x200, 0x18);
|
||||
// Shield
|
||||
ctx->genNode("盾", &mGuardAttack1, 0, 0);
|
||||
ctx->genNode("盾", &mAtPush, 0, 0);
|
||||
// Sidestep
|
||||
ctx->genNode("回り込み", &mTurnMove, 0, 0);
|
||||
// Crouch guard anm speed
|
||||
@@ -1657,7 +1657,7 @@ void daAlinkHIO_guard_c::genMessage(JORMContext* ctx) {
|
||||
}
|
||||
|
||||
daAlinkHIO_guard_c::daAlinkHIO_guard_c()
|
||||
: mGuardAttack1(0, 17.0f), mGuardAttack2(1, 21.0f), mTurnMove() {
|
||||
: mAtPush(0, 17.0f), mAtKick(1, 21.0f), mTurnMove() {
|
||||
static const char plabel[] = "const daAlinkHIO_guard_c1 daAlinkHIO_guard_c0::m = {\n";
|
||||
m_len = 128;
|
||||
mp_src_data = (void*)&daAlinkHIO_guard_c0::m;
|
||||
@@ -2388,9 +2388,9 @@ void daAlinkHIO_damage_c::genMessage(JORMContext* ctx) {
|
||||
// Normal
|
||||
ctx->genNode("通常", &mDamNormal, 0, 0);
|
||||
// Large
|
||||
ctx->genNode("大", &mDamLaHu0, 0, 0);
|
||||
ctx->genNode("大", &mDamLarge, 0, 0);
|
||||
// Heavy large
|
||||
ctx->genNode("強大", &mDamLaHu1, 0, 0);
|
||||
ctx->genNode("強大", &mDamHuge, 0, 0);
|
||||
// On horse
|
||||
ctx->genNode("馬上", &mDamHorse, 0, 0);
|
||||
// Fall
|
||||
@@ -2454,7 +2454,7 @@ void daAlinkHIO_damage_c::genMessage(JORMContext* ctx) {
|
||||
}
|
||||
|
||||
daAlinkHIO_damage_c::daAlinkHIO_damage_c()
|
||||
: mDamNormal(), mDamLaHu0(0), mDamLaHu1(1), mDamHorse(), mDamFall(), mDamCaught(), mDamSwim() {
|
||||
: mDamNormal(), mDamLarge(0), mDamHuge(1), mDamHorse(), mDamFall(), mDamCaught(), mDamSwim() {
|
||||
static const char plabel[] = "const daAlinkHIO_damage_c1 daAlinkHIO_damage_c0::m = {\n";
|
||||
m_len = 88;
|
||||
mp_src_data = (void*)&daAlinkHIO_damage_c0::m;
|
||||
@@ -4740,8 +4740,8 @@ void daAlinkHIO_wlDamage_c::genMessage(JORMContext* ctx) {
|
||||
ctx->genNode("通常", &mNormal, 0, 0);
|
||||
// Large
|
||||
ctx->genNode("大", &mLarge, 0, 0);
|
||||
// Strong large
|
||||
ctx->genNode("強大", &mStrongLarge, 0, 0);
|
||||
// Huge
|
||||
ctx->genNode("強大", &mHuge, 0, 0);
|
||||
// Fall
|
||||
ctx->genNode("落下", &mFall, 0, 0);
|
||||
// Capture
|
||||
@@ -4756,7 +4756,7 @@ void daAlinkHIO_wlDamage_c::genMessage(JORMContext* ctx) {
|
||||
}
|
||||
|
||||
daAlinkHIO_wlDamage_c::daAlinkHIO_wlDamage_c()
|
||||
: mNormal(), mLarge(0), mStrongLarge(1), mFall(), mCapture() {
|
||||
: mNormal(), mLarge(0), mHuge(1), mFall(), mCapture() {
|
||||
static const char plabel[] = "const daAlinkHIO_wlDamage_c1 daAlinkHIO_wlDamage_c0::m = {\n";
|
||||
m_len = 44;
|
||||
mp_src_data = (void*)&daAlinkHIO_wlDamage_c0::m;
|
||||
|
||||
@@ -6,53 +6,53 @@
|
||||
#include "d/actor/d_a_alink.h"
|
||||
|
||||
s16 daAlink_c::getBombExplodeTime() const {
|
||||
return daAlinkHIO_bomb_c0::m.mExplodeTime;
|
||||
return mpHIO->mItem.mBomb.m.mExplodeTime;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBombGravity() const {
|
||||
return daAlinkHIO_bomb_c0::m.mGravity;
|
||||
return mpHIO->mItem.mBomb.m.mGravity;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBombMaxFallSpeed() const {
|
||||
return daAlinkHIO_bomb_c0::m.mMaxFallSpeed;
|
||||
return mpHIO->mItem.mBomb.m.mMaxFallSpeed;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBombBoundRate() const {
|
||||
return daAlinkHIO_bomb_c0::m.mBoundRate;
|
||||
return mpHIO->mItem.mBomb.m.mBoundRate;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBombStopSpeedY() const {
|
||||
return daAlinkHIO_bomb_c0::m.mStopSpeedY;
|
||||
return mpHIO->mItem.mBomb.m.mStopSpeedY;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBombMaxSpeedY() const {
|
||||
return daAlinkHIO_bomb_c0::m.mMaxSpeedY;
|
||||
return mpHIO->mItem.mBomb.m.mMaxSpeedY;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBombEffScale() const {
|
||||
return daAlinkHIO_bomb_c0::m.mEffScale;
|
||||
return mpHIO->mItem.mBomb.m.mEffScale;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBombAtR() const {
|
||||
return daAlinkHIO_bomb_c0::m.mAttackRadius;
|
||||
return mpHIO->mItem.mBomb.m.mAttackRadius;
|
||||
}
|
||||
|
||||
s16 daAlink_c::getEnemyBombColorR() const {
|
||||
return daAlinkHIO_bomb_c0::m.mEnemyBombColorR;
|
||||
return mpHIO->mItem.mBomb.m.mEnemyBombColorR;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBombWaterGravity() const {
|
||||
return daAlinkHIO_bomb_c0::m.mWaterGravity;
|
||||
return mpHIO->mItem.mBomb.m.mWaterGravity;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBombWaterMaxFallSpeed() const {
|
||||
return daAlinkHIO_bomb_c0::m.mWaterMaxFallSpeed;
|
||||
return mpHIO->mItem.mBomb.m.mWaterMaxFallSpeed;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBombExplodeWaterEffectLimit() const {
|
||||
return daAlinkHIO_bomb_c0::m.mExplodeWaterEffectLimit;
|
||||
return mpHIO->mItem.mBomb.m.mExplodeWaterEffectLimit;
|
||||
}
|
||||
|
||||
s16 daAlink_c::getBombInsectLimitAngle() const {
|
||||
return daAlinkHIO_bomb_c0::m.mBombInsectLimitAngle;
|
||||
return mpHIO->mItem.mBomb.m.mBombInsectLimitAngle;
|
||||
}
|
||||
|
||||
@@ -13,9 +13,9 @@ BOOL daAlink_c::checkBoomerangLockAccept() {
|
||||
f32 daAlink_c::getBoomSpeed() {
|
||||
f32 speed;
|
||||
if (checkBoomerangChargeEndWait()) {
|
||||
speed = daAlinkHIO_boom_c0::m.mChargeFlySpeed;
|
||||
speed = mpHIO->mItem.mBoomerang.m.mChargeFlySpeed;
|
||||
} else {
|
||||
speed = daAlinkHIO_boom_c0::m.mFlySpeed;
|
||||
speed = mpHIO->mItem.mBoomerang.m.mFlySpeed;
|
||||
}
|
||||
|
||||
if (checkModeFlg(0x400)) {
|
||||
@@ -29,14 +29,14 @@ f32 daAlink_c::getBoomSpeed() {
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBoomCatchSpeed() const {
|
||||
return daAlinkHIO_boom_c0::m.mCatchSpeed;
|
||||
return mpHIO->mItem.mBoomerang.m.mCatchSpeed;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getBoomFlyMax() const {
|
||||
if (checkModeFlg(0x400) && !checkCanoeRide()) {
|
||||
return daAlinkHIO_boom_c0::m.mHorsebackFlyDistMax;
|
||||
return mpHIO->mItem.mBoomerang.m.mHorsebackFlyDistMax;
|
||||
} else {
|
||||
return daAlinkHIO_boom_c0::m.mFlyDistMax;
|
||||
return mpHIO->mItem.mBoomerang.m.mFlyDistMax;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,15 +45,15 @@ f32 daAlink_c::getBoomLockMax() {
|
||||
|
||||
if (checkBossBabaRoom()) {
|
||||
return 2600.0f;
|
||||
} else if (daAlinkHIO_boom_c0::m.mLockDistMax > fly_max) {
|
||||
return daAlinkHIO_boom_c0::m.mLockDistMax;
|
||||
} else if (mpHIO->mItem.mBoomerang.m.mLockDistMax > fly_max) {
|
||||
return mpHIO->mItem.mBoomerang.m.mLockDistMax;
|
||||
} else {
|
||||
return fly_max;
|
||||
}
|
||||
}
|
||||
|
||||
s16 daAlink_c::getBoomBgThroughTime() const {
|
||||
return daAlinkHIO_boom_c0::m.mBgThroughTime;
|
||||
return mpHIO->mItem.mBoomerang.m.mBgThroughTime;
|
||||
}
|
||||
|
||||
bool daAlink_c::checkBossBabaRoom() {
|
||||
@@ -69,7 +69,7 @@ void daAlink_c::cancelBoomerangLock(fopAc_ac_c* i_actor) {
|
||||
}
|
||||
|
||||
fopAc_ac_c* daAlink_c::getBoomerangActor() {
|
||||
if (mThrowBoomerangAcKeep.getID() != 0xFFFFFFFF) {
|
||||
if (mThrowBoomerangAcKeep.getID() != fpcM_ERROR_PROCESS_ID_e) {
|
||||
return mThrowBoomerangAcKeep.getActor();
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@ BOOL daAlink_c::checkBoomerangCarry(fopAc_ac_c* i_grabActor) {
|
||||
|
||||
setGrabItemActor(i_grabActor);
|
||||
field_0x33e4 = 38.0f;
|
||||
setGrabUpperAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setGrabUpperAnime(mpHIO->mBasic.m.mBasicInterpolation);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -118,7 +118,7 @@ void daAlink_c::initBoomerangUpperAnimeSpeed(int param_0) {
|
||||
mUpperFrameCtrl[2].setFrame(tmp);
|
||||
getNowAnmPackUpper(UPPER_2)->setFrame(tmp);
|
||||
} else {
|
||||
mUpperFrameCtrl[2].setRate(daAlinkHIO_boom_c0::m.mIdleAnmSpeed);
|
||||
mUpperFrameCtrl[2].setRate(mpHIO->mItem.mBoomerang.m.mIdleAnmSpeed);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -137,13 +137,13 @@ void daAlink_c::setBoomerangReadyQuake() {
|
||||
dComIfGp_getVibration().StartQuake(1, 1, cXyz(tmp_0, 1.0f, tmp_0));
|
||||
|
||||
onNoResetFlg3(FLG3_UNK_4);
|
||||
mItemVar0.field_0x3018 = daAlinkHIO_boom_c0::m.mChargeTime;
|
||||
mItemVar0.field_0x3018 = mpHIO->mItem.mBoomerang.m.mChargeTime;
|
||||
}
|
||||
|
||||
void daAlink_c::setBoomerangReadyAnime() {
|
||||
f32 var_f31;
|
||||
if (checkAttentionLock()) {
|
||||
var_f31 = daAlinkHIO_boom_c0::m.mIdleAnmSpeed;
|
||||
var_f31 = mpHIO->mItem.mBoomerang.m.mIdleAnmSpeed;
|
||||
} else {
|
||||
var_f31 = 0.0f;
|
||||
}
|
||||
@@ -153,12 +153,12 @@ void daAlink_c::setBoomerangReadyAnime() {
|
||||
}
|
||||
|
||||
void daAlink_c::setThrowBoomerangAnime() {
|
||||
setUpperAnimeParam(0x53, UPPER_2, &daAlinkHIO_boom_c0::m.mThrowAnm);
|
||||
setUpperAnimeParam(0x53, UPPER_2, &mpHIO->mItem.mBoomerang.m.mThrowAnm);
|
||||
cancelItemUseQuake(0);
|
||||
}
|
||||
|
||||
void daAlink_c::setBoomerangCatchAnime() {
|
||||
setUpperAnimeParam(0x52, UPPER_2, &daAlinkHIO_boom_c0::m.mCatchAnm);
|
||||
setUpperAnimeParam(0x52, UPPER_2, &mpHIO->mItem.mBoomerang.m.mCatchAnm);
|
||||
setFacePriBck(0xE8);
|
||||
field_0x2f97 = 254;
|
||||
|
||||
@@ -190,8 +190,8 @@ void daAlink_c::throwBoomerang() {
|
||||
mFastShotTime = -1;
|
||||
daPy_boomerangMove_c::offEventKeepFlg();
|
||||
} else {
|
||||
item->speedF = daAlinkHIO_pickUp_c0::m.field_0x28;
|
||||
item->speed.y = daAlinkHIO_pickUp_c0::m.field_0x2C;
|
||||
item->speedF = mpHIO->mItem.mPickUp.m.field_0x28;
|
||||
item->speed.y = mpHIO->mItem.mPickUp.m.field_0x2C;
|
||||
item->current.angle.y = shape_angle.y;
|
||||
|
||||
fopAcM_cancelCarryNow(item);
|
||||
@@ -283,7 +283,7 @@ void daAlink_c::checkUpperItemActionBoomerangFly() {
|
||||
|
||||
int daAlink_c::checkNextActionBoomerang() {
|
||||
if ((checkBoomerangCatchAnime() &&
|
||||
mUpperFrameCtrl[2].getFrame() <= daAlinkHIO_boom_c0::m.mCatchAnm.mCancelFrame) ||
|
||||
mUpperFrameCtrl[2].getFrame() <= mpHIO->mItem.mBoomerang.m.mCatchAnm.mCancelFrame) ||
|
||||
checkNoResetFlg1(FLG1_UNK_2)) {
|
||||
return 0;
|
||||
}
|
||||
@@ -363,7 +363,7 @@ int daAlink_c::procBoomerangSubjectInit() {
|
||||
mNormalSpeed = 0.0f;
|
||||
initBoomerangUpperAnimeSpeed(1);
|
||||
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, 0.0f,
|
||||
daAlinkHIO_boom_c0::m.mStartInterpolation);
|
||||
mpHIO->mItem.mBoomerang.m.mStartInterpolation);
|
||||
dComIfGp_setPlayerStatus0(0, 0x80000);
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
@@ -402,7 +402,7 @@ int daAlink_c::procBoomerangMoveInit() {
|
||||
}
|
||||
|
||||
initBoomerangUpperAnimeSpeed(0);
|
||||
setBlendAtnMoveAnime(daAlinkHIO_boom_c0::m.mStartInterpolation);
|
||||
setBlendAtnMoveAnime(mpHIO->mItem.mBoomerang.m.mStartInterpolation);
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x80000);
|
||||
return 1;
|
||||
@@ -421,7 +421,7 @@ int daAlink_c::procBoomerangMove() {
|
||||
|
||||
if (field_0x2f98 != 3) {
|
||||
field_0x2f98 = 3;
|
||||
var_f31 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
|
||||
var_f31 = mpHIO->mBasic.m.mBasicInterpolation;
|
||||
}
|
||||
} else {
|
||||
offModeFlg(1);
|
||||
@@ -444,7 +444,7 @@ int daAlink_c::procBoomerangCatchInit() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
setSingleAnimeParam(ANM_BOOMERANG_CATCH, &daAlinkHIO_boom_c0::m.mCatchAnm);
|
||||
setSingleAnimeParam(ANM_BOOMERANG_CATCH, &mpHIO->mItem.mBoomerang.m.mCatchAnm);
|
||||
setBoomerangCatchAnime();
|
||||
offNoResetFlg0(FLG0_UNK_20);
|
||||
|
||||
@@ -455,7 +455,7 @@ int daAlink_c::procBoomerangCatch() {
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
|
||||
if (frameCtrl->getFrame() > daAlinkHIO_boom_c0::m.mCatchAnm.mCancelFrame) {
|
||||
if (frameCtrl->getFrame() > mpHIO->mItem.mBoomerang.m.mCatchAnm.mCancelFrame) {
|
||||
onModeFlg(4);
|
||||
}
|
||||
|
||||
|
||||
@@ -31,12 +31,12 @@ static int daAlink_bottleModelCallBack(J3DJoint* i_joint, int param_1) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
s32 daAlink_c::getBottleOpenAppearItem() const {
|
||||
fpc_ProcID daAlink_c::getBottleOpenAppearItem() const {
|
||||
if (mProcID == PROC_BOTTLE_OPEN) {
|
||||
return mEquipItem;
|
||||
}
|
||||
|
||||
return -1;
|
||||
return fpcM_ERROR_PROCESS_ID_e;
|
||||
}
|
||||
|
||||
BOOL daAlink_c::checkOilBottleItemNotGet(u16 i_itemNo) {
|
||||
@@ -203,11 +203,11 @@ int daAlink_c::commonBottleDrink(int param_0) {
|
||||
if (mEquipItem == fpcNm_ITEM_MILK_BOTTLE) {
|
||||
if (param_0) {
|
||||
setUpperAnimeParam(getMainBckData(ANM_BOTTLE_DRINK_END)->m_upperID, UPPER_2,
|
||||
&daAlinkHIO_bottle_c0::m.mEndDrinkAnm);
|
||||
&mpHIO->mItem.mBottle.m.mEndDrinkAnm);
|
||||
setFacePriAnime(ANM_BOTTLE_DRINK_END);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_BOTTLE_DRINK_END,
|
||||
&daAlinkHIO_bottle_c0::m.mEndDrinkAnm);
|
||||
&mpHIO->mItem.mBottle.m.mEndDrinkAnm);
|
||||
}
|
||||
|
||||
field_0x072c->setFrame(1.0f);
|
||||
@@ -253,19 +253,19 @@ int daAlink_c::commonBottleDrink(int param_0) {
|
||||
if (mItemVar0.mBottleItemHealAmount < 0 || mEquipItem == fpcNm_ITEM_BEE_CHILD) {
|
||||
if (param_0) {
|
||||
setUpperAnimeParam(getMainBckData(ANM_BOTTLE_DRINK_NASTY)->m_upperID,
|
||||
UPPER_2, &daAlinkHIO_bottle_c0::m.mDrinkNastyAnm);
|
||||
UPPER_2, &mpHIO->mItem.mBottle.m.mDrinkNastyAnm);
|
||||
setFacePriAnime(ANM_BOTTLE_DRINK_NASTY);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_BOTTLE_DRINK_NASTY,
|
||||
&daAlinkHIO_bottle_c0::m.mDrinkNastyAnm);
|
||||
&mpHIO->mItem.mBottle.m.mDrinkNastyAnm);
|
||||
}
|
||||
} else if (param_0) {
|
||||
setUpperAnimeParam(getMainBckData(ANM_BOTTLE_DRINK_END)->m_upperID, UPPER_2,
|
||||
&daAlinkHIO_bottle_c0::m.mEndDrinkAnm);
|
||||
&mpHIO->mItem.mBottle.m.mEndDrinkAnm);
|
||||
setFacePriAnime(ANM_BOTTLE_DRINK_END);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_BOTTLE_DRINK_END,
|
||||
&daAlinkHIO_bottle_c0::m.mEndDrinkAnm);
|
||||
&mpHIO->mItem.mBottle.m.mEndDrinkAnm);
|
||||
}
|
||||
|
||||
field_0x072c->setFrame(2.0f);
|
||||
@@ -283,7 +283,7 @@ int daAlink_c::commonBottleDrink(int param_0) {
|
||||
{
|
||||
if (checkAnmEnd(frameCtrl_p)) {
|
||||
if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_42_e) {
|
||||
setSingleAnimeParam(ANM_PICK_UP, &daAlinkHIO_pickUp_c0::m.mPlaceAnm);
|
||||
setSingleAnimeParam(ANM_PICK_UP, &mpHIO->mItem.mPickUp.m.mPlaceAnm);
|
||||
} else {
|
||||
allUnequip(mKeepItem == fpcNm_ITEM_KANTERA);
|
||||
}
|
||||
@@ -377,7 +377,7 @@ int daAlink_c::procBottleDrinkInit(u16 i_itemNo) {
|
||||
mNormalSpeed = 0.0f;
|
||||
field_0x2f98 = 4;
|
||||
|
||||
setSingleAnimeParam(ANM_BOTTLE_DRINK_START, &daAlinkHIO_bottle_c0::m.mStartDrinkAnm);
|
||||
setSingleAnimeParam(ANM_BOTTLE_DRINK_START, &mpHIO->mItem.mBottle.m.mStartDrinkAnm);
|
||||
keepItemData();
|
||||
setBottleModel(i_itemNo);
|
||||
dComIfGp_setPlayerStatus1(0, 0x2000);
|
||||
@@ -412,7 +412,7 @@ int daAlink_c::procBottleOpenInit(u16 param_0) {
|
||||
mNormalSpeed = 0.0f;
|
||||
field_0x2f98 = 4;
|
||||
|
||||
setSingleAnimeParam(ANM_BOTTLE_OPEN, &daAlinkHIO_bottle_c0::m.mOpenBottleAnm);
|
||||
setSingleAnimeParam(ANM_BOTTLE_OPEN, &mpHIO->mItem.mBottle.m.mOpenBottleAnm);
|
||||
keepItemData();
|
||||
setBottleModel(param_0);
|
||||
dComIfGp_setPlayerStatus1(0, 0x4000);
|
||||
@@ -470,7 +470,7 @@ int daAlink_c::procBottleOpen() {
|
||||
if (mEquipItem == fpcNm_ITEM_FAIRY) {
|
||||
setSingleAnimeBaseMorf(ANM_BOTTLE_FAIRY, -1.0f);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_BOTTLE_POUR, &daAlinkHIO_bottle_c0::m.mPourAnm);
|
||||
setSingleAnimeParam(ANM_BOTTLE_POUR, &mpHIO->mItem.mBottle.m.mPourAnm);
|
||||
|
||||
if (mEquipItem == fpcNm_ITEM_WATER_BOTTLE) {
|
||||
if (mWaterY > mLeftHandPos.y) {
|
||||
@@ -580,7 +580,7 @@ int daAlink_c::procBottleSwingInit(fopAc_ac_c* param_0, int param_1) {
|
||||
if (temp_r30 == PROC_OBJ_OILTUBO || temp_r30 == PROC_TAG_SSDRINK ||
|
||||
temp_r30 == PROC_TAG_BTLITM || mEquipItem == fpcNm_ITEM_KANTERA)
|
||||
{
|
||||
setSingleAnimeParam(ANM_BOTTLE_SCOOP, &daAlinkHIO_bottle_c0::m.mScoopAnm);
|
||||
setSingleAnimeParam(ANM_BOTTLE_SCOOP, &mpHIO->mItem.mBottle.m.mScoopAnm);
|
||||
|
||||
if (mEquipItem == fpcNm_ITEM_KANTERA) {
|
||||
onNoResetFlg2(FLG2_UNK_10000000);
|
||||
@@ -591,7 +591,7 @@ int daAlink_c::procBottleSwingInit(fopAc_ac_c* param_0, int param_1) {
|
||||
}
|
||||
}
|
||||
|
||||
field_0x3478 = daAlinkHIO_bottle_c0::m.mScoopAnm.mCancelFrame;
|
||||
field_0x3478 = mpHIO->mItem.mBottle.m.mScoopAnm.mCancelFrame;
|
||||
field_0x347c = 14.0f;
|
||||
|
||||
if (var_r31 != NULL) {
|
||||
@@ -606,12 +606,12 @@ int daAlink_c::procBottleSwingInit(fopAc_ac_c* param_0, int param_1) {
|
||||
onModeFlg(0x2000);
|
||||
}
|
||||
} else if (temp_r3) {
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &daAlinkHIO_bottle_c0::m.mSwingDownAnm);
|
||||
field_0x3478 = daAlinkHIO_bottle_c0::m.mSwingDownAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &mpHIO->mItem.mBottle.m.mSwingDownAnm);
|
||||
field_0x3478 = mpHIO->mItem.mBottle.m.mSwingDownAnm.mCancelFrame;
|
||||
field_0x347c = 8.0f;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING, &daAlinkHIO_bottle_c0::m.mSwingSideAnm);
|
||||
field_0x3478 = daAlinkHIO_bottle_c0::m.mSwingSideAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING, &mpHIO->mItem.mBottle.m.mSwingSideAnm);
|
||||
field_0x3478 = mpHIO->mItem.mBottle.m.mSwingSideAnm.mCancelFrame;
|
||||
field_0x347c = 4.0f;
|
||||
}
|
||||
|
||||
@@ -709,9 +709,9 @@ int daAlink_c::procBottleGetInit(int param_0) {
|
||||
|
||||
int var_r30;
|
||||
if (mEquipItem == fpcNm_ITEM_KANTERA) {
|
||||
setSingleAnime(ANM_BOTTLE_GET, daAlinkHIO_bottle_c0::m.mGetAnm.mSpeed, 40.0f,
|
||||
daAlinkHIO_bottle_c0::m.mGetAnm.mEndFrame,
|
||||
daAlinkHIO_bottle_c0::m.mGetAnm.mInterpolation);
|
||||
setSingleAnime(ANM_BOTTLE_GET, mpHIO->mItem.mBottle.m.mGetAnm.mSpeed, 40.0f,
|
||||
mpHIO->mItem.mBottle.m.mGetAnm.mEndFrame,
|
||||
mpHIO->mItem.mBottle.m.mGetAnm.mInterpolation);
|
||||
field_0x2f93 = 0xFE;
|
||||
|
||||
if (proc_pickup) {
|
||||
@@ -730,12 +730,12 @@ int daAlink_c::procBottleGetInit(int param_0) {
|
||||
|
||||
setGetSubBgm(var_r30);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_BOTTLE_GET, &daAlinkHIO_bottle_c0::m.mGetAnm);
|
||||
setSingleAnimeParam(ANM_BOTTLE_GET, &mpHIO->mItem.mBottle.m.mGetAnm);
|
||||
var_r30 = mEquipItem;
|
||||
}
|
||||
|
||||
dComIfGp_setPlayerStatus1(0, 0x4001000);
|
||||
mMsgClassID = -1;
|
||||
mMsgClassID = fpcM_ERROR_PROCESS_ID_e;
|
||||
field_0x3194 = 0;
|
||||
field_0x32cc = var_r30 + 0x65;
|
||||
|
||||
|
||||
@@ -10,42 +10,42 @@
|
||||
|
||||
void daAlink_c::getArrowFlyData(f32* o_distance, f32* o_speed, int i_forceCharge) const {
|
||||
if (mEquipItem == fpcNm_ITEM_PACHINKO) {
|
||||
*o_distance = daAlinkHIO_bow_c0::m.mSlingshotDistance;
|
||||
*o_speed = daAlinkHIO_bow_c0::m.mSlingshotSpeed;
|
||||
*o_distance = mpHIO->mItem.mBow.m.mSlingshotDistance;
|
||||
*o_speed = mpHIO->mItem.mBow.m.mSlingshotSpeed;
|
||||
} else if (dComIfGp_checkPlayerStatus0(0, 0x200000)) {
|
||||
*o_distance = daAlinkHIO_bow_c0::m.mScopeArrowDistance;
|
||||
*o_speed = daAlinkHIO_bow_c0::m.mScopeArrowSpeed;
|
||||
*o_distance = mpHIO->mItem.mBow.m.mScopeArrowDistance;
|
||||
*o_speed = mpHIO->mItem.mBow.m.mScopeArrowSpeed;
|
||||
} else if (field_0x301c == 0 || i_forceCharge) {
|
||||
if (field_0x301e == 1) {
|
||||
*o_distance = daAlinkHIO_bow_c0::m.mChargeBombArrowDistance;
|
||||
*o_speed = daAlinkHIO_bow_c0::m.mChargeBombArrowSpeed;
|
||||
*o_distance = mpHIO->mItem.mBow.m.mChargeBombArrowDistance;
|
||||
*o_speed = mpHIO->mItem.mBow.m.mChargeBombArrowSpeed;
|
||||
} else {
|
||||
*o_distance = daAlinkHIO_bow_c0::m.mChargeArrowDistance;
|
||||
*o_speed = daAlinkHIO_bow_c0::m.mChargeArrowSpeed;
|
||||
*o_distance = mpHIO->mItem.mBow.m.mChargeArrowDistance;
|
||||
*o_speed = mpHIO->mItem.mBow.m.mChargeArrowSpeed;
|
||||
}
|
||||
} else if (field_0x301e == 1) {
|
||||
*o_distance = daAlinkHIO_bow_c0::m.mBombArrowDistance;
|
||||
*o_speed = daAlinkHIO_bow_c0::m.mBombArrowSpeed;
|
||||
*o_distance = mpHIO->mItem.mBow.m.mBombArrowDistance;
|
||||
*o_speed = mpHIO->mItem.mBow.m.mBombArrowSpeed;
|
||||
} else {
|
||||
*o_distance = daAlinkHIO_bow_c0::m.mArrowDistance;
|
||||
*o_speed = daAlinkHIO_bow_c0::m.mArrowSpeed;
|
||||
*o_distance = mpHIO->mItem.mBow.m.mArrowDistance;
|
||||
*o_speed = mpHIO->mItem.mBow.m.mArrowSpeed;
|
||||
}
|
||||
}
|
||||
|
||||
f32 daAlink_c::getArrowIncAtR() const {
|
||||
return daAlinkHIO_bow_c0::m.mArrowAttackRadius;
|
||||
return mpHIO->mItem.mBow.m.mArrowAttackRadius;
|
||||
}
|
||||
|
||||
s16 daAlink_c::getBombArrowFlyExplodeTime() const {
|
||||
return daAlinkHIO_bow_c0::m.mBombArrowFlyExplodeTime;
|
||||
return mpHIO->mItem.mBow.m.mBombArrowFlyExplodeTime;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getArrowIncAtMaxStart() const {
|
||||
return daAlinkHIO_bow_c0::m.mArrowIncAttackMaxStart;
|
||||
return mpHIO->mItem.mBow.m.mArrowIncAttackMaxStart;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getArrowIncAtMax() const {
|
||||
return daAlinkHIO_bow_c0::m.mArrowIncAttackMax;
|
||||
return mpHIO->mItem.mBow.m.mArrowIncAttackMax;
|
||||
}
|
||||
|
||||
BOOL daAlink_c::checkBowAndSlingItem(int i_itemNo) {
|
||||
@@ -123,7 +123,7 @@ void daAlink_c::deleteArrow() {
|
||||
|
||||
if (arrow_p != NULL && fopAcM_GetName(arrow_p) == PROC_ARROW) {
|
||||
if (arrow_p->checkBombArrow() &&
|
||||
(mDamageTimer == daAlinkHIO_damage_c0::m.mInvincibleTime || checkModeFlg(8)))
|
||||
(mDamageTimer == mpHIO->mDamage.m.mInvincibleTime || checkModeFlg(8)))
|
||||
{
|
||||
arrow_p->setBombArrowExplode();
|
||||
dComIfGp_addSelectItemNum(mSelectItemId, -1);
|
||||
@@ -227,22 +227,22 @@ void daAlink_c::setBowReadyAnime() {
|
||||
}
|
||||
|
||||
void daAlink_c::setBowReloadAnime() {
|
||||
setUpperAnimeParam(9, UPPER_2, &daAlinkHIO_bow_c0::m.mLoadAnm);
|
||||
setUpperAnimeParam(9, UPPER_2, &mpHIO->mItem.mBow.m.mLoadAnm);
|
||||
setFacePriTexture(FTANM_UNK_8);
|
||||
setFacePriBck(0xE5);
|
||||
|
||||
if (mEquipItem == fpcNm_ITEM_PACHINKO) {
|
||||
changeItemBck(0x1F0, daAlinkHIO_bow_c0::m.mLoadAnm.mStartFrame);
|
||||
changeItemBck(0x1F0, mpHIO->mItem.mBow.m.mLoadAnm.mStartFrame);
|
||||
field_0x2f97 = 5;
|
||||
seStartOnlyReverb(Z2SE_AL_PACHINKO_DRAW);
|
||||
} else {
|
||||
changeItemBck(0x41, daAlinkHIO_bow_c0::m.mLoadAnm.mStartFrame);
|
||||
changeItemBck(0x41, mpHIO->mItem.mBow.m.mLoadAnm.mStartFrame);
|
||||
field_0x2f97 = 7;
|
||||
seStartOnlyReverb(Z2SE_AL_DRAW_BOW);
|
||||
}
|
||||
|
||||
field_0x2f96 = 0;
|
||||
field_0x301c = daAlinkHIO_bow_c0::m.mChargeArrowTime;
|
||||
field_0x301c = mpHIO->mItem.mBow.m.mChargeArrowTime;
|
||||
}
|
||||
|
||||
BOOL daAlink_c::checkUpperItemActionBow() {
|
||||
@@ -273,7 +273,7 @@ BOOL daAlink_c::checkUpperItemActionBow() {
|
||||
|
||||
if (checkReadyItem()) {
|
||||
if (mItemVar0.field_0x3018 != 0) {
|
||||
setUpperAnimeParam(0xC, UPPER_2, &daAlinkHIO_bow_c0::m.mShootAnm);
|
||||
setUpperAnimeParam(0xC, UPPER_2, &mpHIO->mItem.mBow.m.mShootAnm);
|
||||
setFacePriBck(0xE8);
|
||||
field_0x2f96 = 0;
|
||||
|
||||
@@ -291,7 +291,7 @@ BOOL daAlink_c::checkUpperItemActionBow() {
|
||||
var_r29 = 0x44;
|
||||
}
|
||||
|
||||
changeItemBck(var_r29, daAlinkHIO_bow_c0::m.mShootAnm.mStartFrame);
|
||||
changeItemBck(var_r29, mpHIO->mItem.mBow.m.mShootAnm.mStartFrame);
|
||||
mItemVar0.field_0x3018 = 0;
|
||||
} else if (mEquipItem == fpcNm_ITEM_PACHINKO) {
|
||||
if (!itemButton()) {
|
||||
@@ -335,7 +335,7 @@ BOOL daAlink_c::checkUpperItemActionBow() {
|
||||
dComIfGp_setItemArrowNumCount(-1);
|
||||
mItemAcKeep.clearData();
|
||||
onResetFlg0(RFLG0_UNK_20000000);
|
||||
field_0x30a4 = daAlinkHIO_bow_c0::m.mBombArrowHoldTime;
|
||||
field_0x30a4 = mpHIO->mItem.mBow.m.mBombArrowHoldTime;
|
||||
} else {
|
||||
seStartOnlyReverb(Z2SE_AL_ARROW_EMPTY);
|
||||
}
|
||||
@@ -403,7 +403,7 @@ BOOL daAlink_c::checkUpperItemActionBow() {
|
||||
}
|
||||
|
||||
if (checkAnmEnd(&mUpperFrameCtrl[2]) ||
|
||||
(mUpperFrameCtrl[2].getFrame() > daAlinkHIO_bow_c0::m.mShootAnm.mCancelFrame &&
|
||||
(mUpperFrameCtrl[2].getFrame() > mpHIO->mItem.mBow.m.mShootAnm.mCancelFrame &&
|
||||
itemButton()))
|
||||
{
|
||||
setBowReadyAnime();
|
||||
@@ -415,7 +415,7 @@ BOOL daAlink_c::checkUpperItemActionBow() {
|
||||
}
|
||||
|
||||
if (checkBowWaitAnime() || (mEquipItem == fpcNm_ITEM_PACHINKO && checkBowChargeWaitAnime())) {
|
||||
field_0x33dc += daAlinkHIO_bow_c0::m.mShootAnm.mSpeed;
|
||||
field_0x33dc += mpHIO->mItem.mBow.m.mShootAnm.mSpeed;
|
||||
} else {
|
||||
field_0x33dc = mUpperFrameCtrl[2].getFrame();
|
||||
}
|
||||
@@ -556,7 +556,7 @@ int daAlink_c::procBowSubjectInit() {
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, 0.0f,
|
||||
daAlinkHIO_bow_c0::m.mStartInterpolation);
|
||||
mpHIO->mItem.mBow.m.mStartInterpolation);
|
||||
mNormalSpeed = 0.0f;
|
||||
setBowOrSlingStatus();
|
||||
return 1;
|
||||
@@ -580,7 +580,7 @@ int daAlink_c::procBowMoveInit() {
|
||||
onModeFlg(1);
|
||||
}
|
||||
|
||||
setBlendAtnMoveAnime(daAlinkHIO_bow_c0::m.mStartInterpolation);
|
||||
setBlendAtnMoveAnime(mpHIO->mItem.mBow.m.mStartInterpolation);
|
||||
mProcVar2.field_0x300c = 0;
|
||||
setBowOrSlingStatus();
|
||||
return 1;
|
||||
@@ -604,7 +604,7 @@ int daAlink_c::procBowMove() {
|
||||
|
||||
if (field_0x2f98 != 3) {
|
||||
field_0x2f98 = 3;
|
||||
var_f31 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
|
||||
var_f31 = mpHIO->mBasic.m.mBasicInterpolation;
|
||||
}
|
||||
current.angle.y = shape_angle.y - 0x4000;
|
||||
} else {
|
||||
|
||||
@@ -10,41 +10,41 @@
|
||||
|
||||
f32 daAlink_c::getCanoeMaxSpeed() const {
|
||||
if (checkCanoeSlider()) {
|
||||
return daAlinkHIO_canoe_c0::m.mMaxSpeed_RiverRide;
|
||||
return mpHIO->mCanoe.m.mMaxSpeed_RiverRide;
|
||||
} else {
|
||||
return daAlinkHIO_canoe_c0::m.mMaxSpeed;
|
||||
return mpHIO->mCanoe.m.mMaxSpeed;
|
||||
}
|
||||
}
|
||||
|
||||
f32 daAlink_c::getCanoeBackMaxSpeed() const {
|
||||
return daAlinkHIO_canoe_c0::m.mBackMaxSpeed;
|
||||
return mpHIO->mCanoe.m.mBackMaxSpeed;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getCanoeCres() const {
|
||||
if (checkCanoeSlider()) {
|
||||
return daAlinkHIO_canoe_c0::m.mDeceleration_RiverRide;
|
||||
return mpHIO->mCanoe.m.mDeceleration_RiverRide;
|
||||
} else {
|
||||
return daAlinkHIO_canoe_c0::m.mDeceleration;
|
||||
return mpHIO->mCanoe.m.mDeceleration;
|
||||
}
|
||||
}
|
||||
|
||||
f32 daAlink_c::getCanoeSpeedRate() const {
|
||||
if (checkCanoeSlider()) {
|
||||
return daAlinkHIO_canoe_c0::m.mSpeedRate_RiverRide;
|
||||
return mpHIO->mCanoe.m.mSpeedRate_RiverRide;
|
||||
} else {
|
||||
return daAlinkHIO_canoe_c0::m.mSpeedRate;
|
||||
return mpHIO->mCanoe.m.mSpeedRate;
|
||||
}
|
||||
}
|
||||
|
||||
s16 daAlink_c::getCanoeMaxRotSpeed() const {
|
||||
s16 var_r30;
|
||||
if (checkCanoeSlider()) {
|
||||
var_r30 = daAlinkHIO_canoe_c0::m.mMaxTurnAngle_RiverRide;
|
||||
var_r30 = mpHIO->mCanoe.m.mMaxTurnAngle_RiverRide;
|
||||
} else {
|
||||
var_r30 = daAlinkHIO_canoe_c0::m.mMaxTurnAngle;
|
||||
var_r30 = mpHIO->mCanoe.m.mMaxTurnAngle;
|
||||
}
|
||||
|
||||
return var_r30 * (((mUnderFrameCtrl[0].getRate() - daAlinkHIO_canoe_c0::m.mStickRowAnmSpeed) * 0.5f) + 1.0f);
|
||||
return var_r30 * (((mUnderFrameCtrl[0].getRate() - mpHIO->mCanoe.m.mStickRowAnmSpeed) * 0.5f) + 1.0f);
|
||||
}
|
||||
|
||||
cXyz* daAlink_c::getCanoeLocalPaddleTop() {
|
||||
@@ -299,7 +299,7 @@ int daAlink_c::canoeCommon() {
|
||||
var_r29 = 0x20021;
|
||||
}
|
||||
|
||||
int var_r27 = cLib_minMaxLimit<int>(((fabsf(var_f31) - daAlinkHIO_canoe_c0::m.mStickRowAnmSpeed) / (daAlinkHIO_canoe_c0::m.mBtnRowStartAnmSpeed - daAlinkHIO_canoe_c0::m.mStickRowAnmSpeed)) * 127.0f, 0, 0x7F);
|
||||
int var_r27 = cLib_minMaxLimit<int>(((fabsf(var_f31) - mpHIO->mCanoe.m.mStickRowAnmSpeed) / (mpHIO->mCanoe.m.mBtnRowStartAnmSpeed - mpHIO->mCanoe.m.mStickRowAnmSpeed)) * 127.0f, 0, 0x7F);
|
||||
mZ2Link.startLinkSwordSound(var_r29, var_r27, mVoiceReverbIntensity);
|
||||
}
|
||||
|
||||
@@ -335,10 +335,10 @@ int daAlink_c::procCanoeRideInit() {
|
||||
deleteEquipItem(0, 0);
|
||||
daCanoe_c* canoe = (daCanoe_c*)field_0x27f4;
|
||||
|
||||
setSingleAnime(ANM_HANG_CLIMB_TOP, daAlinkHIO_wallCatch_c0::m.mClimbAnm.mSpeed,
|
||||
daAlinkHIO_wallCatch_c0::m.mClimbStartFrame,
|
||||
daAlinkHIO_wallCatch_c0::m.mClimbAnm.mEndFrame,
|
||||
daAlinkHIO_wallCatch_c0::m.mClimbAnm.mInterpolation);
|
||||
setSingleAnime(ANM_HANG_CLIMB_TOP, mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mSpeed,
|
||||
mpHIO->mWallHang.mWallCatch.m.mClimbStartFrame,
|
||||
mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mEndFrame,
|
||||
mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mInterpolation);
|
||||
setSpecialGravity(0.0f, maxFallSpeed, 0);
|
||||
|
||||
mNormalSpeed = 0.0f;
|
||||
@@ -403,7 +403,7 @@ int daAlink_c::procCanoeJumpRideInit(fopAc_ac_c* param_0) {
|
||||
}
|
||||
|
||||
setHeavyBoots(0);
|
||||
setSingleAnimeParam(ANM_JUMP_LAND, &daAlinkHIO_autoJump_c0::m.mLandAnm);
|
||||
setSingleAnimeParam(ANM_JUMP_LAND, &mpHIO->mAutoJump.m.mLandAnm);
|
||||
deleteEquipItem(0, 0);
|
||||
|
||||
mRideAcKeep.setData(canoe);
|
||||
@@ -445,7 +445,7 @@ int daAlink_c::procCanoeGetOffInit() {
|
||||
field_0x2f99 = 0;
|
||||
mNormalSpeed = 0.0f;
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 6.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 6.0f);
|
||||
setSpecialGravity(0.0f, maxFallSpeed, 0);
|
||||
mNormalSpeed = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
@@ -509,7 +509,7 @@ int daAlink_c::procCanoeGetOff() {
|
||||
if (mLinkAcch.ChkGroundHit()) {
|
||||
checkLandAction(0);
|
||||
} else if (speed.y < -gravity) {
|
||||
procFallInit(2, daAlinkHIO_smallJump_c0::m.mFallInterpolation);
|
||||
procFallInit(2, mpHIO->mWallHang.mSmallJump.m.mFallInterpolation);
|
||||
} else {
|
||||
field_0x2f99 = 7;
|
||||
}
|
||||
@@ -517,7 +517,7 @@ int daAlink_c::procCanoeGetOff() {
|
||||
if (mProcVar3.field_0x300e == 0) {
|
||||
if (field_0x2060->getOldFrameRate() < 0.01f) {
|
||||
mProcVar3.field_0x300e = 1;
|
||||
setSingleAnimeParam(ANM_VJUMP_START, &daAlinkHIO_smallJump_c0::m.mSmallJumpAnm);
|
||||
setSingleAnimeParam(ANM_VJUMP_START, &mpHIO->mWallHang.mSmallJump.m.mSmallJumpAnm);
|
||||
field_0x33b0 = l_waitBaseAnime.y;
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
}
|
||||
@@ -525,7 +525,7 @@ int daAlink_c::procCanoeGetOff() {
|
||||
rideGetOff();
|
||||
offModeFlg(0x400);
|
||||
setJumpMode();
|
||||
setSpecialGravity(daAlinkHIO_autoJump_c0::m.mGravity, maxFallSpeed, 0);
|
||||
setSpecialGravity(mpHIO->mAutoJump.m.mGravity, maxFallSpeed, 0);
|
||||
mNormalSpeed = 15.0f;
|
||||
speed.y = 20.0f;
|
||||
}
|
||||
@@ -678,12 +678,12 @@ int daAlink_c::procCanoeWait() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
// NONMATCHING - incorrect code gen related to daAlink_ANM
|
||||
// NONMATCHING - regalloc, equivalent
|
||||
int daAlink_c::procCanoeRowInit(int param_0) {
|
||||
fopAc_ac_c* temp_r26 = mRideAcKeep.getActor();
|
||||
field_0x3198 = -2;
|
||||
|
||||
daAlink_ANM var_r29;
|
||||
int var_r29;
|
||||
if (param_0 < 0) {
|
||||
if (checkInputOnR()) {
|
||||
s16 sp8 = (s16)(field_0x2fe2 - shape_angle.y);
|
||||
@@ -722,19 +722,26 @@ int daAlink_c::procCanoeRowInit(int param_0) {
|
||||
}
|
||||
|
||||
if (spC == 1) {
|
||||
var_r29 = (daAlink_ANM)(var_r28 == 2 ? (int)ANM_CANOE_ROW_RIGHT_BACK : (int)ANM_CANOE_ROW_LEFT_BACK);
|
||||
if (var_r28 == 2) {
|
||||
var_r29 = ANM_CANOE_ROW_RIGHT_BACK;
|
||||
} else {
|
||||
var_r29 = ANM_CANOE_ROW_LEFT_BACK;
|
||||
}
|
||||
|
||||
if ((var_r29 == ANM_CANOE_ROW_RIGHT_BACK && mProcVar5.field_0x3012 == 0) || (var_r29 == ANM_CANOE_ROW_LEFT_BACK && mProcVar5.field_0x3012 == 1)) {
|
||||
return procCanoePaddleShiftInit(var_r29);
|
||||
}
|
||||
} else {
|
||||
var_r29 = (daAlink_ANM)(var_r28 == 2 ? (int)ANM_CANOE_ROW_RIGHT : (int)ANM_CANOE_ROW_LEFT);
|
||||
if (var_r28 == 2) {
|
||||
var_r29 = ANM_CANOE_ROW_RIGHT;
|
||||
} else {
|
||||
var_r29 = ANM_CANOE_ROW_LEFT;
|
||||
}
|
||||
|
||||
if ((var_r29 == ANM_CANOE_ROW_RIGHT && mProcVar5.field_0x3012 == 0) || (var_r29 == ANM_CANOE_ROW_LEFT && mProcVar5.field_0x3012 == 1)) {
|
||||
return procCanoePaddleShiftInit(var_r29);
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
if (param_0 == -3) {
|
||||
if (mProcVar5.field_0x3012 == 1) {
|
||||
@@ -751,17 +758,20 @@ int daAlink_c::procCanoeRowInit(int param_0) {
|
||||
var_r29 = ANM_CANOE_ROW_LEFT;
|
||||
}
|
||||
}
|
||||
|
||||
// Need something here that generates no code in order for debug branches to match.
|
||||
(void)0;
|
||||
} else {
|
||||
var_r29 = (daAlink_ANM)param_0;
|
||||
var_r29 = param_0;
|
||||
}
|
||||
|
||||
commonProcInit(PROC_CANOE_ROW);
|
||||
f32 var_f31 = daAlinkHIO_canoe_c0::m.mBtnRowAnmSpeed;
|
||||
f32 var_f31 = mpHIO->mCanoe.m.mBtnRowAnmSpeed;
|
||||
BOOL var_r24 = 0;
|
||||
|
||||
if (var_r29 == ANM_CANOE_ROW_LEFT_BACK || var_r29 == ANM_CANOE_ROW_RIGHT_BACK) {
|
||||
mProcVar3.field_0x300e = 1;
|
||||
if (temp_r26->speedF > 0.5f * (-var_f31 * daAlinkHIO_canoe_c0::m.mBackSpeedRate)) {
|
||||
if (temp_r26->speedF > 0.5f * (-var_f31 * mpHIO->mCanoe.m.mBackSpeedRate)) {
|
||||
var_r24 = 1;
|
||||
}
|
||||
|
||||
@@ -783,7 +793,7 @@ int daAlink_c::procCanoeRowInit(int param_0) {
|
||||
}
|
||||
|
||||
if (var_r24 != 0) {
|
||||
var_f31 = daAlinkHIO_canoe_c0::m.mBtnRowStartAnmSpeed;
|
||||
var_f31 = mpHIO->mCanoe.m.mBtnRowStartAnmSpeed;
|
||||
}
|
||||
|
||||
setSingleAnime((daAlink_ANM)var_r29, var_f31, 0.0f, 35, 3.0f);
|
||||
@@ -809,9 +819,9 @@ int daAlink_c::procCanoeRow() {
|
||||
procCanoeWaitInit(0);
|
||||
}
|
||||
} else {
|
||||
f32 var_f30 = daAlinkHIO_canoe_c0::m.mBtnRowAnmSpeed;
|
||||
if ((mProcVar3.field_0x300e == 1 && temp_r29->speedF > 0.5f * (-var_f30 * daAlinkHIO_canoe_c0::m.mBackSpeedRate)) || (mProcVar3.field_0x300e == 0 && temp_r29->speedF < 0.5f * (var_f30 * getCanoeSpeedRate()))) {
|
||||
var_f30 = daAlinkHIO_canoe_c0::m.mBtnRowStartAnmSpeed;
|
||||
f32 var_f30 = mpHIO->mCanoe.m.mBtnRowAnmSpeed;
|
||||
if ((mProcVar3.field_0x300e == 1 && temp_r29->speedF > 0.5f * (-var_f30 * mpHIO->mCanoe.m.mBackSpeedRate)) || (mProcVar3.field_0x300e == 0 && temp_r29->speedF < 0.5f * (var_f30 * getCanoeSpeedRate()))) {
|
||||
var_f30 = mpHIO->mCanoe.m.mBtnRowStartAnmSpeed;
|
||||
}
|
||||
|
||||
f32 sp8 = temp_r27->getRate();
|
||||
@@ -851,7 +861,7 @@ int daAlink_c::procCanoeRow() {
|
||||
if (mProcVar3.field_0x300e == 0) {
|
||||
temp_r29->setAimSpeed(var_f31 * getCanoeSpeedRate());
|
||||
} else {
|
||||
temp_r29->setAimSpeed(-var_f31 * daAlinkHIO_canoe_c0::m.mBackSpeedRate);
|
||||
temp_r29->setAimSpeed(-var_f31 * mpHIO->mCanoe.m.mBackSpeedRate);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -873,12 +883,12 @@ int daAlink_c::procCanoePaddleShiftInit(int param_0) {
|
||||
|
||||
f32 speed;
|
||||
if (mProcVar5.field_0x3012 == 0) {
|
||||
speed = daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
|
||||
speed = mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed;
|
||||
} else {
|
||||
speed = -daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
|
||||
speed = -mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed;
|
||||
}
|
||||
|
||||
setSingleAnime(ANM_CANOE_CHANGE_HAND, speed, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mStartFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mEndFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mInterpolation);
|
||||
setSingleAnime(ANM_CANOE_CHANGE_HAND, speed, mpHIO->mCanoe.m.mLeftRightChangeAnm.mStartFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mEndFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mInterpolation);
|
||||
|
||||
if (mProcVar5.field_0x3012 == 1) {
|
||||
field_0x2f92 = 0;
|
||||
@@ -932,12 +942,12 @@ int daAlink_c::procCanoePaddlePutInit(int param_0) {
|
||||
|
||||
f32 var_f31;
|
||||
if (mProcVar5.field_0x3012 == 0) {
|
||||
var_f31 = daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
|
||||
var_f31 = mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed;
|
||||
} else {
|
||||
var_f31 = -daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
|
||||
var_f31 = -mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed;
|
||||
}
|
||||
|
||||
setSingleAnime(ANM_CANOE_CHANGE_HAND, var_f31, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mStartFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mEndFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mInterpolation);
|
||||
setSingleAnime(ANM_CANOE_CHANGE_HAND, var_f31, mpHIO->mCanoe.m.mLeftRightChangeAnm.mStartFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mEndFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mInterpolation);
|
||||
|
||||
if (mProcVar5.field_0x3012 == 1) {
|
||||
field_0x2f92 = 0;
|
||||
@@ -1017,12 +1027,12 @@ int daAlink_c::procCanoePaddleGrab() {
|
||||
if (checkAnmEnd(temp_r29) != 0) {
|
||||
f32 var_f31;
|
||||
if (mProcVar5.field_0x3012 == 0) {
|
||||
var_f31 = -daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
|
||||
var_f31 = -mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed;
|
||||
} else {
|
||||
var_f31 = daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mSpeed;
|
||||
var_f31 = mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed;
|
||||
}
|
||||
|
||||
setSingleAnime(ANM_CANOE_CHANGE_HAND, var_f31, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mStartFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mEndFrame, daAlinkHIO_canoe_c0::m.mLeftRightChangeAnm.mInterpolation);
|
||||
setSingleAnime(ANM_CANOE_CHANGE_HAND, var_f31, mpHIO->mCanoe.m.mLeftRightChangeAnm.mStartFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mEndFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mInterpolation);
|
||||
mUpperFrameCtrl[0].setFrame(11.0f);
|
||||
getNowAnmPackUpper(UPPER_0)->setFrame(11.0f);
|
||||
|
||||
@@ -1545,7 +1555,7 @@ int daAlink_c::procCanoeBottleDrinkInit(u16 param_0) {
|
||||
temp_r3->setAimSpeed(0.0f);
|
||||
temp_r3->setAimAngle(shape_angle.y);
|
||||
|
||||
setUpperAnimeParam(getMainBckData(ANM_BOTTLE_DRINK_START)->m_upperID, UPPER_2, &daAlinkHIO_bottle_c0::m.mStartDrinkAnm);
|
||||
setUpperAnimeParam(getMainBckData(ANM_BOTTLE_DRINK_START)->m_upperID, UPPER_2, &mpHIO->mItem.mBottle.m.mStartDrinkAnm);
|
||||
setFacePriAnime(ANM_BOTTLE_DRINK_START);
|
||||
keepItemData();
|
||||
setBottleModel(param_0);
|
||||
@@ -1583,7 +1593,7 @@ int daAlink_c::procCanoeKandelaarPourInit() {
|
||||
canoe->setAimSpeed(0.0f);
|
||||
canoe->setAimAngle(shape_angle.y);
|
||||
|
||||
setUpperAnimeParam(getMainBckData(ANM_OIL_BOTTLE_POUR_START)->m_upperID, UPPER_2, &daAlinkHIO_kandelaar_c0::m.mBeginUnkAnm);
|
||||
setUpperAnimeParam(getMainBckData(ANM_OIL_BOTTLE_POUR_START)->m_upperID, UPPER_2, &mpHIO->mItem.mLantern.m.mBeginUnkAnm);
|
||||
commonKandelaarPourInit();
|
||||
return 1;
|
||||
}
|
||||
@@ -1613,7 +1623,7 @@ int daAlink_c::procFishingCastInit() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
|
||||
setUpperAnimeBase(0x260);
|
||||
field_0x2f96 = 0xFE;
|
||||
field_0x2f97 = 8;
|
||||
@@ -1656,7 +1666,7 @@ int daAlink_c::procFishingCast() {
|
||||
}
|
||||
|
||||
if (checkInputOnR()) {
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, daAlinkHIO_move_c0::m.mTurnAngleRate, daAlinkHIO_move_c0::m.mMaxTurnAngle, daAlinkHIO_move_c0::m.mMinTurnAngle);
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, mpHIO->mMove.m.mTurnAngleRate, mpHIO->mMove.m.mMaxTurnAngle, mpHIO->mMove.m.mMinTurnAngle);
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
|
||||
@@ -1669,7 +1679,7 @@ int daAlink_c::procFishingCast() {
|
||||
mUnderFrameCtrl[0].setFrame(0.0f);
|
||||
getNowAnmPackUnder(UNDER_0)->setFrame(0.0f);
|
||||
} else if (mUnderFrameCtrl[0].getRate() < 0.01f) {
|
||||
mUnderFrameCtrl[0].setRate(daAlinkHIO_move_c0::m.mWaitAnmSpeed);
|
||||
mUnderFrameCtrl[0].setRate(mpHIO->mMove.m.mWaitAnmSpeed);
|
||||
mUpperFrameCtrl[2].setRate(1.0f);
|
||||
}
|
||||
|
||||
|
||||
@@ -12,19 +12,19 @@ BOOL daAlink_c::checkLv6BossRoom() {
|
||||
}
|
||||
|
||||
f32 daAlink_c::getCopyRodBallSpeed() const {
|
||||
return daAlinkHIO_copyRod_c0::m.mBallSpeed;
|
||||
return mpHIO->mItem.mCopyRod.m.mBallSpeed;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getCopyRodBallReturnSpeed() const {
|
||||
return daAlinkHIO_copyRod_c0::m.mBallReturnSpeed;
|
||||
return mpHIO->mItem.mCopyRod.m.mBallReturnSpeed;
|
||||
}
|
||||
|
||||
f32 daAlink_c::getCopyRodBallDisMax() const {
|
||||
if (checkLv6BossRoom()) {
|
||||
return daAlinkHIO_copyRod_c0::m.mBossBallMaxDistance;
|
||||
return mpHIO->mItem.mCopyRod.m.mBossBallMaxDistance;
|
||||
}
|
||||
|
||||
return daAlinkHIO_copyRod_c0::m.mBallMaxDistance;
|
||||
return mpHIO->mItem.mCopyRod.m.mBallMaxDistance;
|
||||
}
|
||||
|
||||
fopAc_ac_c* daAlink_c::getCopyRodControllActor() {
|
||||
@@ -50,7 +50,7 @@ void daAlink_c::initCopyRodUpperAnimeSpeed(int param_0) {
|
||||
mUpperFrameCtrl[2].setFrame(0.0f);
|
||||
getNowAnmPackUpper(UPPER_2)->setFrame(0.0f);
|
||||
} else {
|
||||
mUpperFrameCtrl[2].setRate(daAlinkHIO_boom_c0::m.mIdleAnmSpeed);
|
||||
mUpperFrameCtrl[2].setRate(mpHIO->mItem.mBoomerang.m.mIdleAnmSpeed);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -86,9 +86,9 @@ void daAlink_c::setCopyRodControllUpperSpeedRate() {
|
||||
var_f31 = 1.0f;
|
||||
} else {
|
||||
if (mProcID == PROC_STEP_MOVE) {
|
||||
var_f31 = fabsf(field_0x3478 / daAlinkHIO_move_c0::m.mMaxSpeed);
|
||||
var_f31 = fabsf(field_0x3478 / mpHIO->mMove.m.mMaxSpeed);
|
||||
} else {
|
||||
var_f31 = fabsf(mNormalSpeed / daAlinkHIO_move_c0::m.mMaxSpeed);
|
||||
var_f31 = fabsf(mNormalSpeed / mpHIO->mMove.m.mMaxSpeed);
|
||||
}
|
||||
|
||||
if (checkHeavyStateOn(1, 1)) {
|
||||
@@ -132,7 +132,7 @@ void daAlink_c::setCopyRodModel() {
|
||||
void daAlink_c::setCopyRodReadyAnime() {
|
||||
f32 speed;
|
||||
if (checkAttentionLock()) {
|
||||
speed = daAlinkHIO_boom_c0::m.mIdleAnmSpeed;
|
||||
speed = mpHIO->mItem.mBoomerang.m.mIdleAnmSpeed;
|
||||
} else {
|
||||
speed = 0.0f;
|
||||
}
|
||||
@@ -201,7 +201,7 @@ BOOL daAlink_c::checkUpperItemActionCopyRod() {
|
||||
}
|
||||
|
||||
if (checkReadyItem() && !itemButton() && checkCopyRodReadyAnime()) {
|
||||
setUpperAnimeParam(0x53, UPPER_2, &daAlinkHIO_boom_c0::m.mThrowAnm);
|
||||
setUpperAnimeParam(0x53, UPPER_2, &mpHIO->mItem.mBoomerang.m.mThrowAnm);
|
||||
mSearchBallScale = getCopyRodBallDisMax();
|
||||
|
||||
if (!mSight.getLockFlg()) {
|
||||
@@ -226,7 +226,7 @@ void daAlink_c::checkUpperItemActionCopyRodFly() {
|
||||
|
||||
int daAlink_c::checkNextActionCopyRod() {
|
||||
if ((checkBoomerangCatchAnime() &&
|
||||
mUpperFrameCtrl[2].getFrame() <= daAlinkHIO_boom_c0::m.mCatchAnm.mCancelFrame) ||
|
||||
mUpperFrameCtrl[2].getFrame() <= mpHIO->mItem.mBoomerang.m.mCatchAnm.mCancelFrame) ||
|
||||
checkNoResetFlg1(FLG1_UNK_10000))
|
||||
{
|
||||
return 0;
|
||||
@@ -275,7 +275,7 @@ int daAlink_c::procCopyRodSubjectInit() {
|
||||
|
||||
mNormalSpeed = 0.0f;
|
||||
initCopyRodUpperAnimeSpeed(1);
|
||||
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, 0.0f, daAlinkHIO_boom_c0::m.mStartInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, 0.0f, mpHIO->mItem.mBoomerang.m.mStartInterpolation);
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x80);
|
||||
current.angle.y = shape_angle.y;
|
||||
@@ -314,7 +314,7 @@ int daAlink_c::procCopyRodMoveInit() {
|
||||
}
|
||||
|
||||
initCopyRodUpperAnimeSpeed(0);
|
||||
setBlendAtnMoveAnime(daAlinkHIO_boom_c0::m.mStartInterpolation);
|
||||
setBlendAtnMoveAnime(mpHIO->mItem.mBoomerang.m.mStartInterpolation);
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x80);
|
||||
return 1;
|
||||
@@ -333,7 +333,7 @@ int daAlink_c::procCopyRodMove() {
|
||||
|
||||
if (field_0x2f98 != 3) {
|
||||
field_0x2f98 = 3;
|
||||
var_f31 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
|
||||
var_f31 = mpHIO->mBasic.m.mBasicInterpolation;
|
||||
}
|
||||
} else {
|
||||
offModeFlg(1);
|
||||
@@ -354,16 +354,16 @@ int daAlink_c::procCopyRodSwingInit() {
|
||||
((fopAcM_GetName(statue) == PROC_CSTATUE && statue->checkNotSmallType()) ||
|
||||
fopAcM_GetName(statue) != PROC_CSTATUE))
|
||||
{
|
||||
setSingleAnimeParam(ANM_COPYROD_SWING_LARGE, &daAlinkHIO_copyRod_c0::m.mBigSwingAnm);
|
||||
setSingleAnimeParam(ANM_COPYROD_SWING_LARGE, &mpHIO->mItem.mCopyRod.m.mBigSwingAnm);
|
||||
field_0x3478 = 13.0f;
|
||||
field_0x347c = 21.0f;
|
||||
field_0x3480 = daAlinkHIO_copyRod_c0::m.mBigSwingAnm.mCancelFrame;
|
||||
field_0x3480 = mpHIO->mItem.mCopyRod.m.mBigSwingAnm.mCancelFrame;
|
||||
field_0x3484 = 27.0f;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_COPYROD_SWING, &daAlinkHIO_copyRod_c0::m.mSwingAnm);
|
||||
setSingleAnimeParam(ANM_COPYROD_SWING, &mpHIO->mItem.mCopyRod.m.mSwingAnm);
|
||||
field_0x3478 = 4.0f;
|
||||
field_0x347c = 8.0f;
|
||||
field_0x3480 = daAlinkHIO_copyRod_c0::m.mSwingAnm.mCancelFrame;
|
||||
field_0x3480 = mpHIO->mItem.mCopyRod.m.mSwingAnm.mCancelFrame;
|
||||
field_0x3484 = 14.0f;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
#include "d/actor/d_a_alink.h"
|
||||
|
||||
f32 daAlink_c::getCrawlMoveAnmSpeed() {
|
||||
return getAnmSpeedStickRate(daAlinkHIO_crouch_c0::m.mCrawlAnmSpeedMin,
|
||||
daAlinkHIO_crouch_c0::m.mCrawlAnmSpeedMax);
|
||||
return getAnmSpeedStickRate(mpHIO->mCrouch.m.mCrawlAnmSpeedMin,
|
||||
mpHIO->mCrouch.m.mCrawlAnmSpeedMax);
|
||||
}
|
||||
|
||||
f32 daAlink_c::getCrawlMoveSpeed() {
|
||||
@@ -20,7 +20,7 @@ f32 daAlink_c::getCrawlMoveSpeed() {
|
||||
frame = frame_ctrl->getFrame();
|
||||
}
|
||||
|
||||
return (daAlinkHIO_crouch_c0::m.mCrawlMoveRate * frame_ctrl->getRate()) * cM_fsin(frame * 0.18479956686496735f);
|
||||
return (mpHIO->mCrouch.m.mCrawlMoveRate * frame_ctrl->getRate()) * cM_fsin(frame * 0.18479956686496735f);
|
||||
}
|
||||
|
||||
void daAlink_c::setCrawlMoveDirectionArrow() {
|
||||
@@ -357,9 +357,9 @@ void daAlink_c::setCrawlMoveAngle() {
|
||||
cXyz sp2C;
|
||||
cXyz sp38;
|
||||
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, daAlinkHIO_crouch_c0::m.mCrawlTurnRate,
|
||||
daAlinkHIO_crouch_c0::m.mCrawlTurnMax,
|
||||
daAlinkHIO_crouch_c0::m.mCrawlTurnMin);
|
||||
cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, mpHIO->mCrouch.m.mCrawlTurnRate,
|
||||
mpHIO->mCrouch.m.mCrawlTurnMax,
|
||||
mpHIO->mCrouch.m.mCrawlTurnMin);
|
||||
|
||||
if (shape_angle.y != current.angle.y) {
|
||||
if ((s16)(shape_angle.y - current.angle.y) > 0) {
|
||||
@@ -371,10 +371,11 @@ void daAlink_c::setCrawlMoveAngle() {
|
||||
}
|
||||
|
||||
mLinkGndChk.SetPos(&sp20);
|
||||
// Fakematch:
|
||||
// dBgS::GroundCross is implicitly inlined to cBgS::GroundCross, but for some
|
||||
// reason here that breaks the match. This is the only place in the code so
|
||||
// far (September 2025) where it causes issues.
|
||||
sp2C.set(sp20.x - sp38.x, ((cBgS&)dComIfG_Bgsp()).GroundCross(&mLinkGndChk) - sp38.y,
|
||||
sp2C.set(sp20.x - sp38.x, dComIfG_Bgsp().cBgS::GroundCross(&mLinkGndChk) - sp38.y,
|
||||
sp20.z - sp38.z);
|
||||
|
||||
if (cLib_distanceAngleS(sp2C.atan2sY_XZ(), shape_angle.x) > 0x800) {
|
||||
@@ -457,7 +458,7 @@ int daAlink_c::procCrawlStartInit() {
|
||||
commonProcInit(PROC_CRAWL_START);
|
||||
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
setSingleAnimeParam(ANM_CRAWL_START, &daAlinkHIO_crouch_c0::m.mCrawlStartAnm);
|
||||
setSingleAnimeParam(ANM_CRAWL_START, &mpHIO->mCrouch.m.mCrawlStartAnm);
|
||||
|
||||
mNormalSpeed = 0.0f;
|
||||
shape_angle.y = field_0x306e + 0x8000;
|
||||
@@ -465,13 +466,13 @@ int daAlink_c::procCrawlStartInit() {
|
||||
current.pos.x = field_0x34ec.x + (35.0f * cM_ssin(field_0x306e));
|
||||
current.pos.z = field_0x34ec.z + (35.0f * cM_scos(field_0x306e));
|
||||
|
||||
if (daAlinkHIO_crouch_c0::m.mCrawlStartAnm.mCancelFrame > daAlinkHIO_crouch_c0::m.mCrawlStartAnm.mEndFrame) {
|
||||
field_0x347c = daAlinkHIO_crouch_c0::m.mCrawlStartAnm.mEndFrame;
|
||||
if (mpHIO->mCrouch.m.mCrawlStartAnm.mCancelFrame > mpHIO->mCrouch.m.mCrawlStartAnm.mEndFrame) {
|
||||
field_0x347c = mpHIO->mCrouch.m.mCrawlStartAnm.mEndFrame;
|
||||
} else {
|
||||
field_0x347c = daAlinkHIO_crouch_c0::m.mCrawlStartAnm.mCancelFrame;
|
||||
field_0x347c = mpHIO->mCrouch.m.mCrawlStartAnm.mCancelFrame;
|
||||
}
|
||||
|
||||
field_0x3478 = 1.0f / (field_0x347c - daAlinkHIO_crouch_c0::m.mCrawlStartAnm.mStartFrame);
|
||||
field_0x3478 = 1.0f / (field_0x347c - mpHIO->mCrouch.m.mCrawlStartAnm.mStartFrame);
|
||||
field_0x33cc = 0.0f;
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x08000000);
|
||||
@@ -534,7 +535,7 @@ int daAlink_c::procCrawlMoveInit(s16 param_0, s16 param_1) {
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
setSingleAnimeBaseSpeed(ANM_CRAWL, var_f31, daAlinkHIO_crouch_c0::m.mCrawlInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_CRAWL, var_f31, mpHIO->mCrouch.m.mCrawlInterpolation);
|
||||
}
|
||||
|
||||
field_0x3198 = var_r29 ^ 1;
|
||||
@@ -762,7 +763,7 @@ int daAlink_c::procCrawlEndInit(int param_0, s16 param_1, s16 param_2) {
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x2f99 = 0xC;
|
||||
|
||||
const daAlinkHIO_anm_c* temp_r30 = &daAlinkHIO_crouch_c0::m.mCrawlEndAnm;
|
||||
const daAlinkHIO_anm_c* temp_r30 = &mpHIO->mCrouch.m.mCrawlEndAnm;
|
||||
|
||||
f32 var_f30;
|
||||
if (param_0 != 0) {
|
||||
@@ -816,7 +817,7 @@ int daAlink_c::procCrawlEnd() {
|
||||
if (!checkNextActionFromCrouch(0)) {
|
||||
procWaitInit();
|
||||
}
|
||||
} else if (frame_ctrl->getFrame() < daAlinkHIO_crouch_c0::m.mCrawlEndAnm.mCancelFrame) {
|
||||
} else if (frame_ctrl->getFrame() < mpHIO->mCrouch.m.mCrawlEndAnm.mCancelFrame) {
|
||||
checkNextActionFromCrouch(1);
|
||||
}
|
||||
|
||||
|
||||
+138
-138
@@ -412,13 +412,13 @@ void daAlink_c::setCutDash(int param_0, int param_1) {
|
||||
resetCombo(0);
|
||||
offNoResetFlg2(FLG2_UNK_2);
|
||||
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 7, 16, 1, daAlinkHIO_cut_c0::m.mRunCutLength,
|
||||
daAlinkHIO_cut_c0::m.mRunCutRadius);
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 7, 16, 1, mpHIO->mCut.m.mRunCutLength,
|
||||
mpHIO->mCut.m.mRunCutRadius);
|
||||
field_0x2fd0 = 2;
|
||||
mRunCutComboCount++;
|
||||
|
||||
if (param_1) {
|
||||
setUpperAnimeParam(0x82, UPPER_2, &daAlinkHIO_cutDaCharge_c0::m.mCutAnm);
|
||||
setUpperAnimeParam(0x82, UPPER_2, &mpHIO->mCut.mCutDashCharge.m.mCutAnm);
|
||||
|
||||
if (checkBoardRide()) {
|
||||
setCutType(13);
|
||||
@@ -430,7 +430,7 @@ void daAlink_c::setCutDash(int param_0, int param_1) {
|
||||
mRunCutComboCount = 1;
|
||||
}
|
||||
} else if (mRunCutComboCount == 1 || mRunCutComboCount == 3) {
|
||||
setUpperAnimeParam(0x80, UPPER_2, &daAlinkHIO_cutDaL_c0::m.mCutAnm);
|
||||
setUpperAnimeParam(0x80, UPPER_2, &mpHIO->mCut.mCutDashLeft.m.mCutAnm);
|
||||
|
||||
if (checkBoardRide()) {
|
||||
setCutType(11);
|
||||
@@ -443,7 +443,7 @@ void daAlink_c::setCutDash(int param_0, int param_1) {
|
||||
mRunCutComboCount = 1;
|
||||
setFacePriTexture(FTANM_UNK_13);
|
||||
} else {
|
||||
setUpperAnimeParam(0x81, UPPER_2, &daAlinkHIO_cutDaR_c0::m.mCutAnm);
|
||||
setUpperAnimeParam(0x81, UPPER_2, &mpHIO->mCut.mCutDashRight.m.mCutAnm);
|
||||
|
||||
if (checkBoardRide()) {
|
||||
setCutType(12);
|
||||
@@ -458,7 +458,7 @@ void daAlink_c::setCutDash(int param_0, int param_1) {
|
||||
|
||||
setFacePriBck(0x104);
|
||||
field_0x2f96 = 2;
|
||||
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
|
||||
field_0x307e = mpHIO->mCut.m.mComboDuration;
|
||||
|
||||
setSwordVoiceSe(Z2SE_AL_V_ATTACK_RUN);
|
||||
setCylAtParam(getSwordAtType(), dCcG_At_Spl_UNK_0, 7, 16, 1, 50.0f, 130.0f);
|
||||
@@ -473,9 +473,9 @@ BOOL daAlink_c::checkForceSwordSwing() {
|
||||
|
||||
void daAlink_c::setComboReserb() {
|
||||
if (checkWolf()) {
|
||||
field_0x307e = daAlinkHIO_wlAttack_c0::m.mComboDuration;
|
||||
field_0x307e = mpHIO->mWolf.mWlAttack.m.mComboDuration;
|
||||
} else {
|
||||
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
|
||||
field_0x307e = mpHIO->mCut.m.mComboDuration;
|
||||
}
|
||||
|
||||
if (mComboCutCount != 4 && field_0x2fce == 0 && swordSwingTrigger()) {
|
||||
@@ -735,8 +735,8 @@ void daAlink_c::checkCutAtnActorChange() {
|
||||
|
||||
void daAlink_c::setCutJumpSpeed(int i_airAt) {
|
||||
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
|
||||
speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
|
||||
mNormalSpeed *= mpHIO->mItem.mIronBoots.m.mWaterVelocityX;
|
||||
speed.y *= mpHIO->mItem.mIronBoots.m.mWaterVelocityY;
|
||||
} else if (checkHeavyStateOn(1, 1)) {
|
||||
speed.y *= 1.35f;
|
||||
}
|
||||
@@ -828,15 +828,15 @@ int daAlink_c::procCutNormalInit(int i_type) {
|
||||
|
||||
const daAlinkHIO_cutNormal_c1* cutData;
|
||||
if (i_type == 1) {
|
||||
cutData = &daAlinkHIO_cutNmL_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutLeft.m;
|
||||
} else if (i_type == 2) {
|
||||
cutData = &daAlinkHIO_cutNmR_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutRight.m;
|
||||
} else if (i_type == 4) {
|
||||
cutData = &daAlinkHIO_cutNmSR_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutRightStab.m;
|
||||
} else if (i_type == 3) {
|
||||
cutData = &daAlinkHIO_cutNmSL_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutLeftStab.m;
|
||||
} else {
|
||||
cutData = &daAlinkHIO_cutNmV_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutVertical.m;
|
||||
}
|
||||
|
||||
field_0x3478 = cutData->mAttackStartFrame;
|
||||
@@ -871,10 +871,10 @@ int daAlink_c::procCutNormalInit(int i_type) {
|
||||
}
|
||||
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
|
||||
field_0x307e = mpHIO->mCut.m.mComboDuration;
|
||||
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, cutParams->m_atSe, 2, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, cutParams->m_atSe, 2, mpHIO->mCut.m.mSwordLength,
|
||||
mpHIO->mCut.m.mSwordRadius);
|
||||
setSwordComboVoice();
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
|
||||
@@ -904,7 +904,7 @@ int daAlink_c::procCutNormal() {
|
||||
checkCutTurnCharge();
|
||||
checkCutAtnActorChange();
|
||||
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mDeceleration);
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mMove.m.mDeceleration);
|
||||
onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
field_0x2f99 = 4;
|
||||
|
||||
@@ -1049,19 +1049,19 @@ int daAlink_c::procCutFinishInit(int i_type) {
|
||||
|
||||
BOOL var_r30 = FALSE;
|
||||
if (i_type == 0) {
|
||||
cutData = &daAlinkHIO_cutFnL_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutFinishLeft.m;
|
||||
} else if (i_type == 1) {
|
||||
cutData = &daAlinkHIO_cutFnV_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutFinishVertical.m;
|
||||
} else if (i_type == 2) {
|
||||
cutData = &daAlinkHIO_cutFnS_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutFinishStab.m;
|
||||
} else if (i_type == 3) {
|
||||
cutData = &daAlinkHIO_cutFnSl_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutFinishSweep.m;
|
||||
var_r30 = TRUE;
|
||||
} else if (i_type == 4) {
|
||||
cutData = &daAlinkHIO_cutFnSm_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutFinishSlash.m;
|
||||
var_r30 = TRUE;
|
||||
} else {
|
||||
cutData = &daAlinkHIO_cutFnR_c0::m;
|
||||
cutData = &mpHIO->mCut.mCutFinishRight.m;
|
||||
}
|
||||
|
||||
f32 var_f31;
|
||||
@@ -1092,19 +1092,19 @@ int daAlink_c::procCutFinishInit(int i_type) {
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
|
||||
field_0x307e = mpHIO->mCut.m.mComboDuration;
|
||||
|
||||
if (mComboCutCount == 3) {
|
||||
field_0x3484 = cutData->mComboCheckFrame;
|
||||
mProcVar0.field_0x3008 = cutData->mComboStopTime;
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, cutParams->m_atSe, 2,
|
||||
daAlinkHIO_cut_c0::m.mSwordLength, daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
mpHIO->mCut.m.mSwordLength, mpHIO->mCut.m.mSwordRadius);
|
||||
field_0x32d0 = Z2SE_AL_SWORD_SWING_S;
|
||||
} else {
|
||||
field_0x3484 = cutData->mCutAnm.mCancelFrame;
|
||||
mProcVar0.field_0x3008 = cutData->mStopTime;
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, cutParams->m_atSe, (var_r30 ? TRUE : FALSE) + 3,
|
||||
daAlinkHIO_cut_c0::m.mSwordLength, daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
mpHIO->mCut.m.mSwordLength, mpHIO->mCut.m.mSwordRadius);
|
||||
|
||||
if (i_type == 2) {
|
||||
field_0x32d0 = Z2SE_AL_SWORD_THRUST;
|
||||
@@ -1154,7 +1154,7 @@ int daAlink_c::procCutFinish() {
|
||||
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
|
||||
|
||||
setBodyAngleXReadyAnime(1);
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mDeceleration);
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mMove.m.mDeceleration);
|
||||
onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
setComboReserb();
|
||||
|
||||
@@ -1229,12 +1229,12 @@ int daAlink_c::procCutFinishJumpUpInit() {
|
||||
}
|
||||
|
||||
setCutType(CUT_TYPE_TWIRL);
|
||||
speed.y = daAlinkHIO_cutFnJU_c0::m.mSpeedV;
|
||||
mNormalSpeed = daAlinkHIO_cutFnJU_c0::m.mSpeedH;
|
||||
speed.y = mpHIO->mCut.mCutFinishJumpUppercut.m.mSpeedV;
|
||||
mNormalSpeed = mpHIO->mCut.mCutFinishJumpUppercut.m.mSpeedH;
|
||||
|
||||
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
|
||||
speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
|
||||
mNormalSpeed *= mpHIO->mItem.mIronBoots.m.mWaterVelocityX;
|
||||
speed.y *= mpHIO->mItem.mIronBoots.m.mWaterVelocityY;
|
||||
} else if (checkHeavyStateOn(1, 1)) {
|
||||
speed.y *= 1.5f;
|
||||
}
|
||||
@@ -1249,16 +1249,16 @@ int daAlink_c::procCutFinishJumpUpInit() {
|
||||
current.angle.y = shape_angle.y;
|
||||
}
|
||||
|
||||
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
|
||||
f32 var_f31 = daAlinkHIO_cutFnJU_c0::m.mCutAnm.mStartFrame;
|
||||
field_0x307e = mpHIO->mCut.m.mComboDuration;
|
||||
f32 var_f31 = mpHIO->mCut.mCutFinishJumpUppercut.m.mCutAnm.mStartFrame;
|
||||
|
||||
setCylAtParam(getSwordAtType(), dCcG_At_Spl_UNK_1, 3, 1, 3,
|
||||
daAlinkHIO_cutFnJU_c0::m.mAttackRadius, 10.0f);
|
||||
mpHIO->mCut.mCutFinishJumpUppercut.m.mAttackRadius, 10.0f);
|
||||
field_0x32cc = Z2SE_AL_SWORD_SWING_L;
|
||||
|
||||
setSingleAnime(ANM_CUT_TWIRL, daAlinkHIO_cutFnJU_c0::m.mCutAnm.mSpeed, var_f31,
|
||||
daAlinkHIO_cutFnJU_c0::m.mCutAnm.mEndFrame,
|
||||
daAlinkHIO_cutFnJU_c0::m.mCutAnm.mInterpolation);
|
||||
setSingleAnime(ANM_CUT_TWIRL, mpHIO->mCut.mCutFinishJumpUppercut.m.mCutAnm.mSpeed, var_f31,
|
||||
mpHIO->mCut.mCutFinishJumpUppercut.m.mCutAnm.mEndFrame,
|
||||
mpHIO->mCut.mCutFinishJumpUppercut.m.mCutAnm.mInterpolation);
|
||||
setSwordVoiceSe(Z2SE_AL_V_SOTOMO_ATK);
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
field_0x3478 = current.pos.y;
|
||||
@@ -1284,13 +1284,13 @@ int daAlink_c::procCutFinishJumpUp() {
|
||||
}
|
||||
|
||||
if (mDemo.getDemoMode() != 0x52 &&
|
||||
current.pos.y < mLastJumpPos.y - daAlinkHIO_cutFnJU_c0::m.mFallHeight)
|
||||
current.pos.y < mLastJumpPos.y - mpHIO->mCut.mCutFinishJumpUppercut.m.mFallHeight)
|
||||
{
|
||||
return procFallInit(2, daAlinkHIO_cutFnJU_c0::m.mFallInterpolation);
|
||||
return procFallInit(2, mpHIO->mCut.mCutFinishJumpUppercut.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
if (frameCtrl->getFrame() >= daAlinkHIO_cutFnJU_c0::m.mAttackStartFrame &&
|
||||
frameCtrl->getFrame() < daAlinkHIO_cutFnJU_c0::m.mAttackEndFrame)
|
||||
if (frameCtrl->getFrame() >= mpHIO->mCut.mCutFinishJumpUppercut.m.mAttackStartFrame &&
|
||||
frameCtrl->getFrame() < mpHIO->mCut.mCutFinishJumpUppercut.m.mAttackEndFrame)
|
||||
{
|
||||
if (!checkNoResetFlg0(FLG0_UNK_40)) {
|
||||
seStartSwordCut(field_0x32cc);
|
||||
@@ -1306,7 +1306,7 @@ int daAlink_c::procCutFinishJumpUpLandInit() {
|
||||
commonProcInit(PROC_CUT_FINISH_JUMP_UP_LAND);
|
||||
checkCutLandDamage();
|
||||
|
||||
setSingleAnimeParam(ANM_CUT_TWIRL_LAND, &daAlinkHIO_cutFnJU_c0::m.mLandAnm);
|
||||
setSingleAnimeParam(ANM_CUT_TWIRL_LAND, &mpHIO->mCut.mCutFinishJumpUppercut.m.mLandAnm);
|
||||
mNormalSpeed = 0.0f;
|
||||
setCutType(CUT_TYPE_TWIRL);
|
||||
|
||||
@@ -1315,11 +1315,11 @@ int daAlink_c::procCutFinishJumpUpLandInit() {
|
||||
onResetFlg1(RFLG1_UNK_30);
|
||||
|
||||
if (mComboCutCount == 3) {
|
||||
field_0x3484 = daAlinkHIO_cutFnJU_c0::m.mComboCheckFrame;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_cutFnJU_c0::m.mComboStopTime;
|
||||
field_0x3484 = mpHIO->mCut.mCutFinishJumpUppercut.m.mComboCheckFrame;
|
||||
mProcVar0.field_0x3008 = mpHIO->mCut.mCutFinishJumpUppercut.m.mComboStopTime;
|
||||
} else {
|
||||
field_0x3484 = daAlinkHIO_cutFnJU_c0::m.mLandAnm.mCancelFrame;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_cutFnJU_c0::m.mStopTime;
|
||||
field_0x3484 = mpHIO->mCut.mCutFinishJumpUppercut.m.mLandAnm.mCancelFrame;
|
||||
mProcVar0.field_0x3008 = mpHIO->mCut.mCutFinishJumpUppercut.m.mStopTime;
|
||||
}
|
||||
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
@@ -1384,19 +1384,19 @@ int daAlink_c::procCutReverseInit(daAlink_c::daAlink_ANM i_anmID) {
|
||||
commonProcInit(PROC_CUT_REVERSE);
|
||||
|
||||
if (i_anmID == ANM_SHIELD_ATTACK_RECOIL) {
|
||||
setSingleAnimeParam(i_anmID, &daAlinkHIO_guard_c0::m.mRecoilAnm);
|
||||
setSingleAnimeParam(i_anmID, &mpHIO->mGuard.m.mRecoilAnm);
|
||||
mProcVar2.field_0x300c = 1;
|
||||
field_0x3478 = daAlinkHIO_guard_c0::m.mRecoilAnm.mCancelFrame;
|
||||
field_0x3478 = mpHIO->mGuard.m.mRecoilAnm.mCancelFrame;
|
||||
field_0x2f98 = 2;
|
||||
setUpperGuardAnime(-1.0f);
|
||||
} else {
|
||||
setSingleAnimeParam(i_anmID, &daAlinkHIO_cut_c0::m.mRecoilAnm);
|
||||
setSingleAnimeParam(i_anmID, &mpHIO->mCut.m.mRecoilAnm);
|
||||
mProcVar2.field_0x300c = 0;
|
||||
field_0x3478 = daAlinkHIO_cut_c0::m.mRecoilAnm.mCancelFrame;
|
||||
field_0x3478 = mpHIO->mCut.m.mRecoilAnm.mCancelFrame;
|
||||
field_0x2f98 = 4;
|
||||
}
|
||||
|
||||
mNormalSpeed = daAlinkHIO_cut_c0::m.mRecoilSpeed;
|
||||
mNormalSpeed = mpHIO->mCut.m.mRecoilSpeed;
|
||||
current.angle.y = shape_angle.y - -0x8000;
|
||||
field_0x307e = 0;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
@@ -1421,7 +1421,7 @@ int daAlink_c::procCutReverse() {
|
||||
}
|
||||
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_cut_c0::m.mRecoilDeceleration);
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mCut.m.mRecoilDeceleration);
|
||||
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
checkCutTurnCharge();
|
||||
@@ -1448,20 +1448,20 @@ int daAlink_c::procCutReverse() {
|
||||
|
||||
int daAlink_c::procCutJumpInit(int i_airCut) {
|
||||
commonProcInit(PROC_CUT_JUMP);
|
||||
setSingleAnimeParam(ANM_CUT_JUMP, &daAlinkHIO_cutJump_c0::m.mCutAnm);
|
||||
setSingleAnimeParam(ANM_CUT_JUMP, &mpHIO->mCut.mCutJump.m.mCutAnm);
|
||||
|
||||
if (i_airCut) {
|
||||
mNormalSpeed = daAlinkHIO_cutJump_c0::m.mAirJumpSpeedH;
|
||||
speed.y = daAlinkHIO_cutJump_c0::m.mAirJumpSpeedV;
|
||||
mNormalSpeed = mpHIO->mCut.mCutJump.m.mAirJumpSpeedH;
|
||||
speed.y = mpHIO->mCut.mCutJump.m.mAirJumpSpeedV;
|
||||
} else {
|
||||
mNormalSpeed = daAlinkHIO_cutJump_c0::m.mBaseJumpSpeedH;
|
||||
speed.y = daAlinkHIO_cutJump_c0::m.mBaseJumpSpeedV;
|
||||
mNormalSpeed = mpHIO->mCut.mCutJump.m.mBaseJumpSpeedH;
|
||||
speed.y = mpHIO->mCut.mCutJump.m.mBaseJumpSpeedV;
|
||||
}
|
||||
|
||||
setCutJumpSpeed(i_airCut);
|
||||
current.angle.y = shape_angle.y;
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, mpHIO->mCut.m.mSwordLength,
|
||||
mpHIO->mCut.m.mSwordRadius);
|
||||
setCutType(CUT_TYPE_JUMP);
|
||||
setSwordComboVoice();
|
||||
dComIfGp_setPlayerStatus0(0, 0x8000);
|
||||
@@ -1486,7 +1486,7 @@ int daAlink_c::procCutJump() {
|
||||
|
||||
if (mLinkAcch.ChkGroundHit()) {
|
||||
procCutJumpLandInit(field_0x3198);
|
||||
} else if (mUnderFrameCtrl[0].getFrame() >= daAlinkHIO_cutJump_c0::m.mStartAttackFrame) {
|
||||
} else if (mUnderFrameCtrl[0].getFrame() >= mpHIO->mCut.mCutJump.m.mStartAttackFrame) {
|
||||
if (!checkNoResetFlg0(FLG0_UNK_40)) {
|
||||
seStartSwordCut(Z2SE_AL_SWORD_SWING_L);
|
||||
}
|
||||
@@ -1500,18 +1500,18 @@ int daAlink_c::procCutJump() {
|
||||
int daAlink_c::procCutJumpLandInit(int param_0) {
|
||||
commonProcInit(PROC_CUT_JUMP_LAND);
|
||||
checkCutLandDamage();
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LAND, &daAlinkHIO_cutJump_c0::m.mLandAnm);
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LAND, &mpHIO->mCut.mCutJump.m.mLandAnm);
|
||||
|
||||
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
field_0x2060->initOldFrameMorf(5.0f * daAlinkHIO_cutJump_c0::m.mLandAnm.mInterpolation,
|
||||
field_0x2060->initOldFrameMorf(5.0f * mpHIO->mCut.mCutJump.m.mLandAnm.mInterpolation,
|
||||
0, 0x23);
|
||||
}
|
||||
|
||||
if (!checkNoResetFlg0(FLG0_UNK_40)) {
|
||||
seStartSwordCut(Z2SE_AL_SWORD_SWING_L);
|
||||
m_swordBlur.initBlur(0.0f, 0, &mSwordTopPos, &field_0x3498, &field_0x34a4);
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, mpHIO->mCut.m.mSwordLength,
|
||||
mpHIO->mCut.m.mSwordRadius);
|
||||
}
|
||||
|
||||
onResetFlg0(RFLG0_UNK_2);
|
||||
@@ -1547,11 +1547,11 @@ int daAlink_c::procCutJumpLand() {
|
||||
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
checkNextAction(0);
|
||||
} else if (frameCtrl->getFrame() > daAlinkHIO_cutJump_c0::m.mJumpSpinDelay && field_0x3198 != 2)
|
||||
} else if (frameCtrl->getFrame() > mpHIO->mCut.mCutJump.m.mJumpSpinDelay && field_0x3198 != 2)
|
||||
{
|
||||
procCutTurnInit(1, field_0x3198);
|
||||
} else {
|
||||
if (frameCtrl->getFrame() > daAlinkHIO_cutJump_c0::m.mLandAnm.mCancelFrame) {
|
||||
if (frameCtrl->getFrame() > mpHIO->mCut.mCutJump.m.mLandAnm.mCancelFrame) {
|
||||
onModeFlg(4);
|
||||
|
||||
if (checkNextAction(1)) {
|
||||
@@ -1559,7 +1559,7 @@ int daAlink_c::procCutJumpLand() {
|
||||
}
|
||||
}
|
||||
|
||||
if (frameCtrl->getFrame() < daAlinkHIO_cutJump_c0::m.mEndAttackFrame) {
|
||||
if (frameCtrl->getFrame() < mpHIO->mCut.mCutJump.m.mEndAttackFrame) {
|
||||
onResetFlg0(RFLG0_UNK_2);
|
||||
}
|
||||
}
|
||||
@@ -1567,9 +1567,8 @@ int daAlink_c::procCutJumpLand() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
// NONMATCHING - regalloc
|
||||
int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
const daAlinkHIO_cutTurn_c1* cutData = &daAlinkHIO_cutTurn_c0::m;
|
||||
const daAlinkHIO_cutTurn_c1* cutData = &mpHIO->mCut.mCutTurn.m;
|
||||
const daAlinkHIO_anm_c* anm_data;
|
||||
daAlink_ANM anmID;
|
||||
|
||||
@@ -1622,8 +1621,9 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
|
||||
setSingleAnime(anmID, anm_data->mSpeed, var_f31, anm_data->mEndFrame, morf);
|
||||
|
||||
int sp08;
|
||||
if (checkCutLargeTurnState()) {
|
||||
param_1 = 4;
|
||||
sp08 = 4;
|
||||
field_0x32cc = Z2SE_AL_KAITEN_L_SLASH;
|
||||
setSwordVoiceSe(Z2SE_AL_V_KAITENGIRI_L);
|
||||
field_0x3478 = cutData->mLargeAttackRadius;
|
||||
@@ -1635,7 +1635,7 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
setCutType(CUT_TYPE_LARGE_TURN_LEFT);
|
||||
}
|
||||
} else {
|
||||
param_1 = 3;
|
||||
sp08 = 3;
|
||||
field_0x32cc = Z2SE_AL_KAITENGIRI;
|
||||
setSwordVoiceSe(Z2SE_AL_V_KAITEN);
|
||||
|
||||
@@ -1663,7 +1663,7 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) {
|
||||
mNormalSpeed = 0.0f;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
setCutWaterDropEffect();
|
||||
initCutTurnAt(field_0x347c, param_1);
|
||||
initCutTurnAt(field_0x347c, sp08);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1674,11 +1674,11 @@ int daAlink_c::procCutTurn() {
|
||||
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
field_0x2f99 = 4;
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mDeceleration);
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mMove.m.mDeceleration);
|
||||
onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
|
||||
if (mComboCutCount != 0) {
|
||||
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
|
||||
field_0x307e = mpHIO->mCut.m.mComboDuration;
|
||||
}
|
||||
|
||||
if (frameCtrl->getFrame() >= 44.0f) {
|
||||
@@ -1700,7 +1700,7 @@ int daAlink_c::procCutTurn() {
|
||||
if (frameCtrl->getFrame() >= field_0x3484 && frameCtrl->getFrame() < field_0x3488) {
|
||||
if (!checkNoResetFlg0(FLG0_UNK_40)) {
|
||||
seStartSwordCut(field_0x32cc);
|
||||
mNormalSpeed = daAlinkHIO_cutTurn_c0::m.mSpeed;
|
||||
mNormalSpeed = mpHIO->mCut.mCutTurn.m.mSpeed;
|
||||
|
||||
if (checkHeavyStateOn(1, 1)) {
|
||||
mNormalSpeed *= mHeavySpeedMultiplier;
|
||||
@@ -1723,10 +1723,10 @@ int daAlink_c::procCutTurnChargeInit() {
|
||||
}
|
||||
|
||||
commonProcInit(PROC_CUT_TURN_CHARGE);
|
||||
setSingleAnimeParam(ANM_CUT_TURN_CHARGE_START, &daAlinkHIO_cutTurn_c0::m.mChargeAnm);
|
||||
setSingleAnimeParam(ANM_CUT_TURN_CHARGE_START, &mpHIO->mCut.mCutTurn.m.mChargeAnm);
|
||||
mNormalSpeed = 0.0f;
|
||||
current.angle.y = shape_angle.y;
|
||||
mProcVar2.field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
|
||||
mProcVar2.field_0x300c = mpHIO->mCut.m.mNormalSwingDuration;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1736,7 +1736,7 @@ int daAlink_c::procCutTurnCharge() {
|
||||
}
|
||||
|
||||
setSwordChargeVoiceSe();
|
||||
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
|
||||
field_0x307e = mpHIO->mCut.m.mComboDuration;
|
||||
|
||||
if (!swordButton() && mDemo.getDemoMode() != 0x5B) {
|
||||
if (mProcVar2.field_0x300c != 0) {
|
||||
@@ -1771,9 +1771,9 @@ int daAlink_c::procCutTurnMoveInit(int param_0) {
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_CUT_TURN_CHARGE, 0.0f,
|
||||
daAlinkHIO_cutTurn_c0::m.mMoveFBInterpolation);
|
||||
mpHIO->mCut.mCutTurn.m.mMoveFBInterpolation);
|
||||
field_0x2f98 = 0;
|
||||
field_0x594 = daAlinkHIO_cutTurn_c0::m.mMaxSpeed;
|
||||
field_0x594 = mpHIO->mCut.mCutTurn.m.mMaxSpeed;
|
||||
|
||||
if (!checkWoodSwordEquip()) {
|
||||
simpleAnmPlay(m_nSwordBtk);
|
||||
@@ -1817,7 +1817,7 @@ int daAlink_c::procCutTurnMove() {
|
||||
setDoStatus(0x86);
|
||||
}
|
||||
} else {
|
||||
field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
|
||||
field_0x307e = mpHIO->mCut.m.mComboDuration;
|
||||
}
|
||||
|
||||
if (mDemo.getDemoMode() == 0x5B || mDemo.getDemoMode() == 0x5C) {
|
||||
@@ -1838,7 +1838,7 @@ int daAlink_c::procCutTurnMove() {
|
||||
if (field_0x2f98 == 0 || field_0x2f98 == 1) {
|
||||
if (direction == DIR_LEFT || direction == DIR_RIGHT) {
|
||||
anm = ANM_CUT_TURN_CHARGE_MOVE;
|
||||
var_f31 = daAlinkHIO_cutTurn_c0::m.mMoveLRInterpolation;
|
||||
var_f31 = mpHIO->mCut.mCutTurn.m.mMoveLRInterpolation;
|
||||
mNormalSpeed *= 0.5f;
|
||||
} else if (field_0x2f98 != direction) {
|
||||
mNormalSpeed *= -0.5f;
|
||||
@@ -1846,7 +1846,7 @@ int daAlink_c::procCutTurnMove() {
|
||||
}
|
||||
} else if (direction == DIR_FORWARD || direction == DIR_BACKWARD) {
|
||||
anm = ANM_CUT_TURN_CHARGE;
|
||||
var_f31 = daAlinkHIO_cutTurn_c0::m.mMoveFBInterpolation;
|
||||
var_f31 = mpHIO->mCut.mCutTurn.m.mMoveFBInterpolation;
|
||||
mNormalSpeed *= 0.5f;
|
||||
} else if (field_0x2f98 != direction) {
|
||||
mNormalSpeed *= -0.5f;
|
||||
@@ -1854,7 +1854,7 @@ int daAlink_c::procCutTurnMove() {
|
||||
}
|
||||
|
||||
if (field_0x2f98 == direction) {
|
||||
var_f30 = daAlinkHIO_cutTurn_c0::m.mChargeMoveAccel * field_0x33ac;
|
||||
var_f30 = mpHIO->mCut.mCutTurn.m.mChargeMoveAccel * field_0x33ac;
|
||||
} else {
|
||||
field_0x2f98 = direction;
|
||||
}
|
||||
@@ -1864,17 +1864,17 @@ int daAlink_c::procCutTurnMove() {
|
||||
}
|
||||
}
|
||||
|
||||
setNormalSpeedF(var_f30, daAlinkHIO_cutTurn_c0::m.mChargeMoveDecel);
|
||||
setNormalSpeedF(var_f30, mpHIO->mCut.mCutTurn.m.mChargeMoveDecel);
|
||||
|
||||
f32 var_f31_2;
|
||||
if (field_0x2f98 == DIR_FORWARD) {
|
||||
var_f31_2 = daAlinkHIO_cutTurn_c0::m.mMoveFBAnmSpeed;
|
||||
var_f31_2 = mpHIO->mCut.mCutTurn.m.mMoveFBAnmSpeed;
|
||||
} else if (field_0x2f98 == DIR_BACKWARD) {
|
||||
var_f31_2 = -daAlinkHIO_cutTurn_c0::m.mMoveFBAnmSpeed;
|
||||
var_f31_2 = -mpHIO->mCut.mCutTurn.m.mMoveFBAnmSpeed;
|
||||
} else if (field_0x2f98 == DIR_RIGHT) {
|
||||
var_f31_2 = -daAlinkHIO_cutTurn_c0::m.mMoveLRAnmSpeed;
|
||||
var_f31_2 = -mpHIO->mCut.mCutTurn.m.mMoveLRAnmSpeed;
|
||||
} else {
|
||||
var_f31_2 = daAlinkHIO_cutTurn_c0::m.mMoveLRAnmSpeed;
|
||||
var_f31_2 = mpHIO->mCut.mCutTurn.m.mMoveLRAnmSpeed;
|
||||
}
|
||||
|
||||
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
|
||||
@@ -1943,7 +1943,7 @@ int daAlink_c::procCutDownInit() {
|
||||
speed.y = 0.0f;
|
||||
offModeFlg(2);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_JUMP, &daAlinkHIO_cutDown_c0::m.mJumpAnm);
|
||||
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_JUMP, &mpHIO->mCut.mCutDown.m.mJumpAnm);
|
||||
sp2C.y += 50.0f;
|
||||
|
||||
if (fopAcM_gc_c::gndCheck(&sp2C)) {
|
||||
@@ -1963,11 +1963,11 @@ int daAlink_c::procCutDownInit() {
|
||||
var_f31 = 800.0f;
|
||||
}
|
||||
|
||||
speed.y = daAlinkHIO_cutDown_c0::m.mRecoverSpeedH;
|
||||
speed.y = mpHIO->mCut.mCutDown.m.mRecoverSpeedH;
|
||||
|
||||
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
|
||||
speed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
|
||||
mNormalSpeed *= mpHIO->mItem.mIronBoots.m.mWaterVelocityX;
|
||||
speed.y *= mpHIO->mItem.mIronBoots.m.mWaterVelocityY;
|
||||
} else if (checkHeavyStateOn(1, 1)) {
|
||||
speed.y *= 1.5f;
|
||||
}
|
||||
@@ -2001,7 +2001,7 @@ int daAlink_c::procCutDown() {
|
||||
procCutDownLandInit((fopEn_enemy_c*)field_0x280c.getActor());
|
||||
} else if (mUnderFrameCtrl[0].checkAnmEnd() && mProcVar2.field_0x300c == 0) {
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_FALL, &daAlinkHIO_cutDown_c0::m.mFallAnm);
|
||||
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_FALL, &mpHIO->mCut.mCutDown.m.mFallAnm);
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -2010,7 +2010,7 @@ int daAlink_c::procCutDown() {
|
||||
int daAlink_c::procCutDownLandInit(fopEn_enemy_c* i_enemy) {
|
||||
commonProcInit(PROC_CUT_DOWN_LAND);
|
||||
checkCutLandDamage();
|
||||
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_STAB, &daAlinkHIO_cutDown_c0::m.mLandAnm);
|
||||
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_STAB, &mpHIO->mCut.mCutDown.m.mLandAnm);
|
||||
|
||||
u32 var_r30;
|
||||
if (mDemo.getDemoMode() == 0x51 || (i_enemy != NULL && i_enemy->checkDownFlg() &&
|
||||
@@ -2026,12 +2026,12 @@ int daAlink_c::procCutDownLandInit(fopEn_enemy_c* i_enemy) {
|
||||
}
|
||||
|
||||
var_r30 = 0x20;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_cutDown_c0::m.mSuccessStopTime;
|
||||
mProcVar0.field_0x3008 = mpHIO->mCut.mCutDown.m.mSuccessStopTime;
|
||||
dComIfGp_getVibration().StartShock(4, 31, cXyz(0.0f, 1.0f, 0.0f));
|
||||
} else {
|
||||
var_r30 = mPolySound;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_cutDown_c0::m.mFailStopTime;
|
||||
mProcVar0.field_0x3008 = mpHIO->mCut.mCutDown.m.mFailStopTime;
|
||||
}
|
||||
|
||||
mZ2Link.startCollisionSE(Z2SE_HIT_SWORD_STAB, var_r30);
|
||||
@@ -2076,7 +2076,7 @@ int daAlink_c::procCutDownLand() {
|
||||
}
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_MISS,
|
||||
&daAlinkHIO_cutDown_c0::m.mMissAnm);
|
||||
&mpHIO->mCut.mCutDown.m.mMissAnm);
|
||||
mProcVar2.field_0x300c = 1;
|
||||
}
|
||||
} else {
|
||||
@@ -2093,7 +2093,7 @@ int daAlink_c::procCutDownLand() {
|
||||
seStartSwordCut(Z2SE_SWORD_STICK_PULLOUT);
|
||||
}
|
||||
|
||||
if (frameCtrl_p->getFrame() > daAlinkHIO_cutDown_c0::m.mMissAnm.mCancelFrame) {
|
||||
if (frameCtrl_p->getFrame() > mpHIO->mCut.mCutDown.m.mMissAnm.mCancelFrame) {
|
||||
onModeFlg(4);
|
||||
checkNextAction(1);
|
||||
}
|
||||
@@ -2113,8 +2113,8 @@ int daAlink_c::procCutHeadInit() {
|
||||
|
||||
commonProcInit(PROC_CUT_HEAD);
|
||||
resetCombo(1);
|
||||
setSingleAnimeParam(ANM_CUT_HEAD_JUMP, &daAlinkHIO_cutHead_c0::m.mJumpAnm);
|
||||
setSpecialGravity(daAlinkHIO_cutHead_c0::m.mGravity, maxFallSpeed, 0);
|
||||
setSingleAnimeParam(ANM_CUT_HEAD_JUMP, &mpHIO->mCut.mCutHead.m.mJumpAnm);
|
||||
setSpecialGravity(mpHIO->mCut.mCutHead.m.mGravity, maxFallSpeed, 0);
|
||||
|
||||
cXyz sp2C;
|
||||
if (enemy_p != NULL) {
|
||||
@@ -2125,13 +2125,13 @@ int daAlink_c::procCutHeadInit() {
|
||||
field_0x280c.clearData();
|
||||
}
|
||||
|
||||
f32 fvar9 = cLib_minMaxLimit<f32>(sp2C.y, 30.0f, daAlinkHIO_cutHead_c0::m.mMaxHeight);
|
||||
f32 fvar9 = cLib_minMaxLimit<f32>(sp2C.y, 30.0f, mpHIO->mCut.mCutHead.m.mMaxHeight);
|
||||
f32 fvar10 = JMAFastSqrt((fvar9 * -2.0f) / gravity);
|
||||
speed.y = fvar10 * -gravity;
|
||||
|
||||
f32 fvar5 = sp2C.absXZ();
|
||||
if (fvar5 > daAlinkHIO_cutHead_c0::m.mMaxDistance) {
|
||||
fvar5 = daAlinkHIO_cutHead_c0::m.mMaxDistance;
|
||||
if (fvar5 > mpHIO->mCut.mCutHead.m.mMaxDistance) {
|
||||
fvar5 = mpHIO->mCut.mCutHead.m.mMaxDistance;
|
||||
}
|
||||
|
||||
field_0x3478 = (fvar5 * 2.0f) / (fvar10 * 3.0f * fvar10);
|
||||
@@ -2142,8 +2142,8 @@ int daAlink_c::procCutHeadInit() {
|
||||
shape_angle.y = current.angle.y;
|
||||
|
||||
setSwordVoiceSe(Z2SE_AL_V_KABUTO_JUMP);
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, daAlinkHIO_cutHead_c0::m.mSwordLength,
|
||||
daAlinkHIO_cutHead_c0::m.mSwordRadius);
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, mpHIO->mCut.mCutHead.m.mSwordLength,
|
||||
mpHIO->mCut.mCutHead.m.mSwordRadius);
|
||||
setCutType(5);
|
||||
|
||||
return 1;
|
||||
@@ -2154,7 +2154,7 @@ int daAlink_c::procCutHead() {
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, field_0x3478);
|
||||
|
||||
if (speed.y <= 0.0f) {
|
||||
setSingleAnimeParam(ANM_CUT_HEAD, &daAlinkHIO_cutHead_c0::m.mCutAnm);
|
||||
setSingleAnimeParam(ANM_CUT_HEAD, &mpHIO->mCut.mCutHead.m.mCutAnm);
|
||||
f32 tmp_0 = 0.0f;
|
||||
mNormalSpeed = tmp_0;
|
||||
speed.y = tmp_0;
|
||||
@@ -2168,13 +2168,13 @@ int daAlink_c::procCutHead() {
|
||||
mNormalSpeed *= 0.99f;
|
||||
|
||||
if (frameCtrl->checkPass(7.0f)) {
|
||||
speed.y = daAlinkHIO_cutHead_c0::m.mAddSpeedV;
|
||||
mNormalSpeed = daAlinkHIO_cutHead_c0::m.mAddSpeedH;
|
||||
speed.y = mpHIO->mCut.mCutHead.m.mAddSpeedV;
|
||||
mNormalSpeed = mpHIO->mCut.mCutHead.m.mAddSpeedH;
|
||||
initGravity();
|
||||
}
|
||||
|
||||
if (frameCtrl->getFrame() >= daAlinkHIO_cutHead_c0::m.mAttackStartFrame &&
|
||||
frameCtrl->getFrame() < daAlinkHIO_cutHead_c0::m.mAttackEndFrame)
|
||||
if (frameCtrl->getFrame() >= mpHIO->mCut.mCutHead.m.mAttackStartFrame &&
|
||||
frameCtrl->getFrame() < mpHIO->mCut.mCutHead.m.mAttackEndFrame)
|
||||
{
|
||||
if (!checkNoResetFlg0(FLG0_UNK_40)) {
|
||||
seStartSwordCut(Z2SE_AL_SWORD_SWING_L);
|
||||
@@ -2194,7 +2194,7 @@ int daAlink_c::procCutHead() {
|
||||
int daAlink_c::procCutHeadLandInit() {
|
||||
commonProcInit(PROC_CUT_HEAD_LAND);
|
||||
checkCutLandDamage();
|
||||
setSingleAnimeParam(ANM_CUT_HEAD_LAND, &daAlinkHIO_cutHead_c0::m.mLandAnm);
|
||||
setSingleAnimeParam(ANM_CUT_HEAD_LAND, &mpHIO->mCut.mCutHead.m.mLandAnm);
|
||||
mNormalSpeed = 0.0f;
|
||||
return 1;
|
||||
}
|
||||
@@ -2209,7 +2209,7 @@ int daAlink_c::procCutHeadLand() {
|
||||
} else {
|
||||
checkNextAction(0);
|
||||
}
|
||||
} else if (frameCtrl->getFrame() > daAlinkHIO_cutHead_c0::m.mLandAnm.mCancelFrame) {
|
||||
} else if (frameCtrl->getFrame() > mpHIO->mCut.mCutHead.m.mLandAnm.mCancelFrame) {
|
||||
checkNextAction(1);
|
||||
}
|
||||
|
||||
@@ -2218,10 +2218,10 @@ int daAlink_c::procCutHeadLand() {
|
||||
|
||||
int daAlink_c::procCutLargeJumpChargeInit() {
|
||||
commonProcInit(PROC_CUT_LARGE_JUMP_CHARGE);
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE_CHARGE, &daAlinkHIO_cutLargeJump_c0::m.mChargeAnm);
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE_CHARGE, &mpHIO->mCut.mCutLargeJump.m.mChargeAnm);
|
||||
mNormalSpeed = 0.0f;
|
||||
current.angle.y = shape_angle.y;
|
||||
mProcVar2.field_0x300c = daAlinkHIO_cut_c0::m.mNormalSwingDuration;
|
||||
mProcVar2.field_0x300c = mpHIO->mCut.m.mNormalSwingDuration;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -2257,14 +2257,14 @@ int daAlink_c::procCutLargeJumpInit() {
|
||||
}
|
||||
|
||||
commonProcInit(PROC_CUT_LARGE_JUMP);
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE_START, &daAlinkHIO_cutLargeJump_c0::m.mChargeMoveAnm);
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE_START, &mpHIO->mCut.mCutLargeJump.m.mChargeMoveAnm);
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
mNormalSpeed = 0.0f;
|
||||
current.angle.y = shape_angle.y;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, 1, 2, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_0, 1, 1, 2, mpHIO->mCut.m.mSwordLength,
|
||||
mpHIO->mCut.m.mSwordRadius);
|
||||
setCutType(CUT_TYPE_LARGE_JUMP_INIT);
|
||||
setSwordVoiceSe(Z2SE_AL_V_JUMP_ATTACK_L_1);
|
||||
setCutWaterDropEffect();
|
||||
@@ -2288,7 +2288,7 @@ int daAlink_c::procCutLargeJump() {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
field_0x2f99 = 12;
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE, &daAlinkHIO_cutLargeJump_c0::m.mCutAnm);
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE, &mpHIO->mCut.mCutLargeJump.m.mCutAnm);
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setSwordVoiceSe(Z2SE_AL_V_JUMP_ATTACK_L_2);
|
||||
} else {
|
||||
@@ -2298,13 +2298,13 @@ int daAlink_c::procCutLargeJump() {
|
||||
|
||||
if (!checkModeFlg(2) && frameCtrl->getFrame() >= 5.0f) {
|
||||
setJumpMode();
|
||||
mNormalSpeed = daAlinkHIO_cutLargeJump_c0::m.mCutSpeedH;
|
||||
speed.y = daAlinkHIO_cutLargeJump_c0::m.mCutSpeedV;
|
||||
mNormalSpeed = mpHIO->mCut.mCutLargeJump.m.mCutSpeedH;
|
||||
speed.y = mpHIO->mCut.mCutLargeJump.m.mCutSpeedV;
|
||||
setCutJumpSpeed(0);
|
||||
}
|
||||
|
||||
if (frameCtrl->getFrame() >= daAlinkHIO_cutLargeJump_c0::m.mJumpAttackStartFrame &&
|
||||
frameCtrl->getFrame() < daAlinkHIO_cutLargeJump_c0::m.mJumpAttackEndFrame)
|
||||
if (frameCtrl->getFrame() >= mpHIO->mCut.mCutLargeJump.m.mJumpAttackStartFrame &&
|
||||
frameCtrl->getFrame() < mpHIO->mCut.mCutLargeJump.m.mJumpAttackEndFrame)
|
||||
{
|
||||
if (!checkNoResetFlg0(FLG0_UNK_40)) {
|
||||
seStartSwordCut(Z2SE_AL_SWORD_SWING_S);
|
||||
@@ -2317,15 +2317,15 @@ int daAlink_c::procCutLargeJump() {
|
||||
mProcVar3.field_0x300e--;
|
||||
|
||||
if (mProcVar3.field_0x300e == 0) {
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 4, daAlinkHIO_cut_c0::m.mSwordLength,
|
||||
daAlinkHIO_cut_c0::m.mSwordRadius);
|
||||
setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 4, mpHIO->mCut.m.mSwordLength,
|
||||
mpHIO->mCut.m.mSwordRadius);
|
||||
setCutType(CUT_TYPE_LARGE_JUMP);
|
||||
}
|
||||
}
|
||||
|
||||
if (mLinkAcch.ChkGroundHit()) {
|
||||
procCutLargeJumpLandInit(field_0x3198);
|
||||
} else if (frameCtrl->getFrame() >= daAlinkHIO_cutLargeJump_c0::m.mCutInitFrame) {
|
||||
} else if (frameCtrl->getFrame() >= mpHIO->mCut.mCutLargeJump.m.mCutInitFrame) {
|
||||
if (!checkNoResetFlg0(FLG0_UNK_40)) {
|
||||
seStartSwordCut(Z2SE_AL_SWORD_SWING_S);
|
||||
}
|
||||
@@ -2340,7 +2340,7 @@ int daAlink_c::procCutLargeJump() {
|
||||
int daAlink_c::procCutLargeJumpLandInit(int param_0) {
|
||||
commonProcInit(PROC_CUT_LARGE_JUMP_LAND);
|
||||
checkCutLandDamage();
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE_LAND, &daAlinkHIO_cutLargeJump_c0::m.mLandAnm);
|
||||
setSingleAnimeParam(ANM_CUT_JUMP_LARGE_LAND, &mpHIO->mCut.mCutLargeJump.m.mLandAnm);
|
||||
mNormalSpeed = 0.0f;
|
||||
field_0x2f99 = 12;
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
@@ -2349,7 +2349,7 @@ int daAlink_c::procCutLargeJumpLandInit(int param_0) {
|
||||
onResetFlg1(RFLG1_UNK_30);
|
||||
onResetFlg0(RFLG0_UNK_2);
|
||||
setCutType(CUT_TYPE_LARGE_JUMP);
|
||||
field_0x3478 = daAlinkHIO_cutLargeJump_c0::m.mLandAttackRadius;
|
||||
field_0x3478 = mpHIO->mCut.mCutLargeJump.m.mLandAttackRadius;
|
||||
field_0x347c = 130.0f;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
field_0x3198 = param_0;
|
||||
@@ -2377,16 +2377,16 @@ int daAlink_c::procCutLargeJumpLand() {
|
||||
} else {
|
||||
checkNextAction(0);
|
||||
}
|
||||
} else if (frameCtrl->getFrame() > daAlinkHIO_cutLargeJump_c0::m.mSpinSlashCheckFrame &&
|
||||
} else if (frameCtrl->getFrame() > mpHIO->mCut.mCutLargeJump.m.mSpinSlashCheckFrame &&
|
||||
field_0x3198 != 2)
|
||||
{
|
||||
procCutTurnInit(1, field_0x3198);
|
||||
} else if (frameCtrl->getFrame() > daAlinkHIO_cutLargeJump_c0::m.mLandAnm.mCancelFrame) {
|
||||
} else if (frameCtrl->getFrame() > mpHIO->mCut.mCutLargeJump.m.mLandAnm.mCancelFrame) {
|
||||
checkNextAction(1);
|
||||
} else if (frameCtrl->getFrame() < daAlinkHIO_cutLargeJump_c0::m.mLandAttackEndFrame) {
|
||||
} else if (frameCtrl->getFrame() < mpHIO->mCut.mCutLargeJump.m.mLandAttackEndFrame) {
|
||||
onResetFlg0(RFLG0_UNK_2);
|
||||
|
||||
if (frameCtrl->getFrame() >= daAlinkHIO_cutLargeJump_c0::m.mLandAttackInitFrame) {
|
||||
if (frameCtrl->getFrame() >= mpHIO->mCut.mCutLargeJump.m.mLandAttackInitFrame) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
resetAtCollision(0);
|
||||
mProcVar2.field_0x300c = 1;
|
||||
@@ -2407,7 +2407,7 @@ int daAlink_c::procSwordUnequipSpInit() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_FINISH, daAlinkHIO_cut_c0::m.mFlourishAnmSpeed, 3.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_FINISH, mpHIO->mCut.m.mFlourishAnmSpeed, 3.0f);
|
||||
mNormalSpeed = 0.0f;
|
||||
field_0x3588 = l_halfAtnWaitBaseAnime;
|
||||
field_0x3198 = 0;
|
||||
@@ -2452,11 +2452,11 @@ int daAlink_c::procSwordUnequipSp() {
|
||||
}
|
||||
} else {
|
||||
field_0x3198 = 1;
|
||||
setSingleAnimeBaseSpeed(ANM_FINISH_END, daAlinkHIO_cut_c0::m.mFlourishEndAnmSpeed,
|
||||
setSingleAnimeBaseSpeed(ANM_FINISH_END, mpHIO->mCut.m.mFlourishEndAnmSpeed,
|
||||
3.0f);
|
||||
}
|
||||
} else if (field_0x3198 != 0) {
|
||||
if (!(frameCtrl->getFrame() > daAlinkHIO_cut_c0::m.mFlourishControlStartFrame) ||
|
||||
if (!(frameCtrl->getFrame() > mpHIO->mCut.m.mFlourishControlStartFrame) ||
|
||||
!checkNextAction(1))
|
||||
{
|
||||
if (frameCtrl->getFrame() >= 39.0f) {
|
||||
@@ -2472,7 +2472,7 @@ int daAlink_c::procSwordUnequipSp() {
|
||||
frameCtrl->setRate(0.0f);
|
||||
dComIfGp_evmng_cutEnd(mAlinkStaffId);
|
||||
} else if (frameCtrl->getRate() < 0.0099999998f) {
|
||||
setWaterInAnmRate(frameCtrl, daAlinkHIO_cut_c0::m.mFlourishEndAnmSpeed);
|
||||
setWaterInAnmRate(frameCtrl, mpHIO->mCut.m.mFlourishEndAnmSpeed);
|
||||
}
|
||||
}
|
||||
deleteEquipItem(0, 1);
|
||||
|
||||
@@ -10,15 +10,15 @@
|
||||
#include "d/d_msg_object.h"
|
||||
|
||||
s16 daAlink_c::getFreezeR() const {
|
||||
return daAlinkHIO_damage_c0::m.mFreezeR;
|
||||
return mpHIO->mDamage.m.mFreezeR;
|
||||
}
|
||||
|
||||
s16 daAlink_c::getFreezeG() const {
|
||||
return daAlinkHIO_damage_c0::m.mFreezeG;
|
||||
return mpHIO->mDamage.m.mFreezeG;
|
||||
}
|
||||
|
||||
s16 daAlink_c::getFreezeB() const {
|
||||
return daAlinkHIO_damage_c0::m.mFreezeB;
|
||||
return mpHIO->mDamage.m.mFreezeB;
|
||||
}
|
||||
|
||||
bool daAlink_c::checkMiddleBossGoronRoom() {
|
||||
@@ -81,9 +81,9 @@ void daAlink_c::checkCutLandDamage() {
|
||||
if (!checkEventRun()) {
|
||||
f32 var_f31 = (mFallHeight - current.pos.y) * 0.0099999998f;
|
||||
|
||||
if (var_f31 >= daAlinkHIO_damFall_c0::m.mSmallDmgHeight && !checkNoLandDamageSlidePolygon())
|
||||
if (var_f31 >= mpHIO->mDamage.mDamFall.m.mSmallDmgHeight && !checkNoLandDamageSlidePolygon())
|
||||
{
|
||||
if (var_f31 >= daAlinkHIO_damFall_c0::m.mBigDmgHeight) {
|
||||
if (var_f31 >= mpHIO->mDamage.mDamFall.m.mBigDmgHeight) {
|
||||
setLandDamagePoint(8);
|
||||
} else {
|
||||
setLandDamagePoint(4);
|
||||
@@ -187,7 +187,7 @@ int daAlink_c::setDamagePoint(int i_dmgAmount, int i_checkZoraMag, int i_setDmgT
|
||||
mSwordUpTimer = 0;
|
||||
|
||||
if (i_setDmgTimer) {
|
||||
mDamageTimer = daAlinkHIO_damage_c0::m.mInvincibleTime;
|
||||
mDamageTimer = mpHIO->mDamage.m.mInvincibleTime;
|
||||
setDamageColorTime();
|
||||
}
|
||||
|
||||
@@ -238,7 +238,7 @@ cXyz* daAlink_c::getDamageVec(dCcD_GObjInf* i_hitObj) {
|
||||
}
|
||||
|
||||
void daAlink_c::setDashDamage() {
|
||||
setUpperAnimeParam(0xAD, UPPER_2, &daAlinkHIO_damage_c0::m.mDashDmgAnm);
|
||||
setUpperAnimeParam(0xAD, UPPER_2, &mpHIO->mDamage.m.mDashDmgAnm);
|
||||
setFacePriBck(0x121);
|
||||
setFacePriTexture(FTANM_UNK_27);
|
||||
voiceStart(Z2SE_AL_V_DAMAGE_S);
|
||||
@@ -282,7 +282,7 @@ int daAlink_c::checkPolyDamage() {
|
||||
}
|
||||
}
|
||||
|
||||
if (!checkBoardRide() && ((checkWaterPolygonUnder() && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_wtr) && ((dKy_pol_argument_get(&mLinkAcch.m_wtr) & 0x60) || field_0x2fbc == 6)) || (checkModeFlg(0x40) && field_0x33bc < field_0x33b8 && -G_CM3D_F_INF != field_0x33b8 && ((field_0x2fc6 & 0x60) || field_0x2fc5 == 6) && (field_0x2fc5 != 6 || !(field_0x33b8 > field_0x33d8 + daAlinkHIO_basic_c0::m.mLavaDeathDepth))))) {
|
||||
if (!checkBoardRide() && ((checkWaterPolygonUnder() && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_wtr) && ((dKy_pol_argument_get(&mLinkAcch.m_wtr) & 0x60) || field_0x2fbc == 6)) || (checkModeFlg(0x40) && field_0x33bc < field_0x33b8 && -G_CM3D_F_INF != field_0x33b8 && ((field_0x2fc6 & 0x60) || field_0x2fc5 == 6) && (field_0x2fc5 != 6 || !(field_0x33b8 > field_0x33d8 + mpHIO->mBasic.m.mLavaDeathDepth))))) {
|
||||
return 2;
|
||||
}
|
||||
|
||||
@@ -366,7 +366,7 @@ BOOL daAlink_c::checkDamageAction() {
|
||||
|
||||
if (checkAnmEnd(&mUpperFrameCtrl[2])) {
|
||||
if (checkDashDamageAnime()) {
|
||||
resetUpperAnime(UPPER_2, daAlinkHIO_damage_c0::m.mDashDmgAnm.mInterpolation);
|
||||
resetUpperAnime(UPPER_2, mpHIO->mDamage.m.mDashDmgAnm.mInterpolation);
|
||||
} else if (checkWolfHeadDamageAnime()) {
|
||||
resetUpperAnime(UPPER_2, 3.0f);
|
||||
} else if (checkSmallUpperGuardAnime()) {
|
||||
@@ -417,7 +417,7 @@ BOOL daAlink_c::checkDamageAction() {
|
||||
if ((!checkModeFlg(0x70C52)) && (!checkWolf()) && (!checkDkCaught2Anime())) {
|
||||
setUpperAnimeBase(getMainBckData(ANM_HORSE_WAIT_D_B)->m_underID);
|
||||
setFacePriAnime(ANM_HORSE_WAIT_D_B);
|
||||
field_0x30f6 = daAlinkHIO_damCaught_c0::m.mGrabDuration;
|
||||
field_0x30f6 = mpHIO->mDamage.mDamCaught.m.mGrabDuration;
|
||||
field_0x2f96 = 1;
|
||||
field_0x2f97 = 6;
|
||||
onNoResetFlg1(FLG1_UNK_100000);
|
||||
@@ -484,7 +484,7 @@ BOOL daAlink_c::checkDamageAction() {
|
||||
|
||||
if (sp2C & 0x80) {
|
||||
mIceDamageWaitTimer++;
|
||||
if (mIceDamageWaitTimer < daAlinkHIO_damage_c0::m.mFreezeTime) {
|
||||
if (mIceDamageWaitTimer < mpHIO->mDamage.m.mFreezeTime) {
|
||||
sp2C = 0;
|
||||
}
|
||||
} else if (mIceDamageWaitTimer > 3) {
|
||||
@@ -498,7 +498,7 @@ BOOL daAlink_c::checkDamageAction() {
|
||||
setDamagePoint(1, sp2C & 0x80, TRUE, 0);
|
||||
|
||||
if (checkWolf()) {
|
||||
mDamageTimer = daAlinkHIO_damage_c0::m.mWolfFloorInvincibleTime;
|
||||
mDamageTimer = mpHIO->mDamage.m.mWolfFloorInvincibleTime;
|
||||
setDamageColorTime();
|
||||
}
|
||||
|
||||
@@ -705,7 +705,7 @@ BOOL daAlink_c::checkDamageAction() {
|
||||
if (checkModeFlg(0x10000) && !checkLargeAttack(at_spl)) {
|
||||
voiceStart(Z2SE_AL_V_DAMAGE_S);
|
||||
seStartOnlyReverb(Z2SE_AL_DAMAGE_NORMAL);
|
||||
procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
onModeFlg(8);
|
||||
return 1;
|
||||
}
|
||||
@@ -797,15 +797,15 @@ int daAlink_c::procDamageInit(dCcD_GObjInf* param_0, int param_1) {
|
||||
var_r29->y,
|
||||
var_r29->z * var_f29 + var_r29->x * var_f30);
|
||||
|
||||
mProcVar2.field_0x300c = cLib_minMaxLimit<s16>(cM_atan2s(sp88.z, sp88.y), -daAlinkHIO_damNormal_c0::m.mFrontBackBodyMaxAngle, daAlinkHIO_damNormal_c0::m.mFrontBackBodyMaxAngle);
|
||||
mProcVar3.field_0x300e = cLib_minMaxLimit<s16>(cM_atan2s(sp88.x, -JMAFastSqrt(sp88.y * sp88.y + sp88.z * sp88.z)), -daAlinkHIO_damNormal_c0::m.mLeftRightBodyMaxAngle, daAlinkHIO_damNormal_c0::m.mLeftRightBodyMaxAngle);
|
||||
mProcVar2.field_0x300c = cLib_minMaxLimit<s16>(cM_atan2s(sp88.z, sp88.y), -mpHIO->mDamage.mDamNormal.m.mFrontBackBodyMaxAngle, mpHIO->mDamage.mDamNormal.m.mFrontBackBodyMaxAngle);
|
||||
mProcVar3.field_0x300e = cLib_minMaxLimit<s16>(cM_atan2s(sp88.x, -JMAFastSqrt(sp88.y * sp88.y + sp88.z * sp88.z)), -mpHIO->mDamage.mDamNormal.m.mLeftRightBodyMaxAngle, mpHIO->mDamage.mDamNormal.m.mLeftRightBodyMaxAngle);
|
||||
|
||||
if (freeze_player) {
|
||||
var_f31 = 0.0f;
|
||||
} else if (mTargetedActor != NULL) {
|
||||
var_f31 = daAlinkHIO_atnMove_c0::m.mWaitAnmSpeed;
|
||||
var_f31 = mpHIO->mAtnMove.m.mWaitAnmSpeed;
|
||||
} else {
|
||||
var_f31 = daAlinkHIO_noActAtnMove_c0::m.mWaitAnmSpeed;
|
||||
var_f31 = mpHIO->mNoActAtnMove.m.mWaitAnmSpeed;
|
||||
}
|
||||
|
||||
if (checkAtnLeftAnime()) {
|
||||
@@ -816,32 +816,32 @@ int daAlink_c::procDamageInit(dCcD_GObjInf* param_0, int param_1) {
|
||||
|
||||
int direction = getDirectionFromAngle(cM_atan2s(-sp88.x, -sp88.z));
|
||||
if (direction == DIR_FORWARD) {
|
||||
setSingleAnimeParam(ANM_DMG_SMALL_A, &daAlinkHIO_damNormal_c0::m.mFrontAnm);
|
||||
field_0x3478 = daAlinkHIO_damNormal_c0::m.mFrontAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_DMG_SMALL_A, &mpHIO->mDamage.mDamNormal.m.mFrontAnm);
|
||||
field_0x3478 = mpHIO->mDamage.mDamNormal.m.mFrontAnm.mCancelFrame;
|
||||
} else if (direction == DIR_BACKWARD) {
|
||||
setSingleAnimeParam(ANM_DMG_SMALL_B, &daAlinkHIO_damNormal_c0::m.mRearAnm);
|
||||
field_0x3478 = daAlinkHIO_damNormal_c0::m.mRearAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_DMG_SMALL_B, &mpHIO->mDamage.mDamNormal.m.mRearAnm);
|
||||
field_0x3478 = mpHIO->mDamage.mDamNormal.m.mRearAnm.mCancelFrame;
|
||||
} else if (direction == DIR_LEFT) {
|
||||
setSingleAnimeParam(ANM_DMG_SMALL_LEFT, &daAlinkHIO_damNormal_c0::m.mLeftAnm);
|
||||
field_0x3478 = daAlinkHIO_damNormal_c0::m.mLeftAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_DMG_SMALL_LEFT, &mpHIO->mDamage.mDamNormal.m.mLeftAnm);
|
||||
field_0x3478 = mpHIO->mDamage.mDamNormal.m.mLeftAnm.mCancelFrame;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_DMG_SMALL_RIGHT, &daAlinkHIO_damNormal_c0::m.mRightAnm);
|
||||
field_0x3478 = daAlinkHIO_damNormal_c0::m.mRightAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_DMG_SMALL_RIGHT, &mpHIO->mDamage.mDamNormal.m.mRightAnm);
|
||||
field_0x3478 = mpHIO->mDamage.mDamNormal.m.mRightAnm.mCancelFrame;
|
||||
}
|
||||
|
||||
current.angle.y = var_r29->atan2sX_Z();
|
||||
mProcVar4.field_0x3010 = current.angle.y;
|
||||
|
||||
mNormalSpeed = var_r29->absXZ() * daAlinkHIO_damNormal_c0::m.mAttackSpeedRate + daAlinkHIO_damNormal_c0::m.mInitialSpeed;
|
||||
if (mNormalSpeed > daAlinkHIO_move_c0::m.mMaxSpeed) {
|
||||
mNormalSpeed = daAlinkHIO_move_c0::m.mMaxSpeed;
|
||||
mNormalSpeed = var_r29->absXZ() * mpHIO->mDamage.mDamNormal.m.mAttackSpeedRate + mpHIO->mDamage.mDamNormal.m.mInitialSpeed;
|
||||
if (mNormalSpeed > mpHIO->mMove.m.mMaxSpeed) {
|
||||
mNormalSpeed = mpHIO->mMove.m.mMaxSpeed;
|
||||
}
|
||||
|
||||
daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl;
|
||||
field_0x347c = M_PI / (frame_ctrl->getEnd() - frame_ctrl->getStart());
|
||||
|
||||
if (freeze_player) {
|
||||
frame_ctrl->setRate(daAlinkHIO_damNormal_c0::m.mIceDamageASpeed);
|
||||
frame_ctrl->setRate(mpHIO->mDamage.mDamNormal.m.mIceDamageASpeed);
|
||||
frame_ctrl->setEnd(7);
|
||||
mNormalSpeed = 0.0f;
|
||||
mProcVar0.mIceFreezeTimer = 90;
|
||||
@@ -863,7 +863,7 @@ int daAlink_c::procDamage() {
|
||||
mBodyAngle.z = -mProcVar3.field_0x300e * var_f31;
|
||||
mBodyAngle.y = 0;
|
||||
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_damNormal_c0::m.mDeceleration);
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mDamage.mDamNormal.m.mDeceleration);
|
||||
|
||||
if (checkFreezeDamage()) {
|
||||
freezeTimerDamage();
|
||||
@@ -1028,9 +1028,9 @@ int daAlink_c::procCoLargeDamageInit(int param_0, int param_1, s16 param_2, s16
|
||||
const daAlinkHIO_damLaHu_c1* var_r28;
|
||||
if (checkWolf()) {
|
||||
if (param_1 != 0) {
|
||||
var_r29 = &daAlinkHIO_wlDamLarge_c0::m;
|
||||
var_r29 = &mpHIO->mWolf.mWlDamage.mLarge.m;
|
||||
} else {
|
||||
var_r29 = &daAlinkHIO_wlDamHuge_c0::m;
|
||||
var_r29 = &mpHIO->mWolf.mWlDamage.mHuge.m;
|
||||
}
|
||||
|
||||
setSpecialGravity(var_r29->mGravity, maxFallSpeed, 0);
|
||||
@@ -1176,7 +1176,7 @@ int daAlink_c::procCoLargeDamage() {
|
||||
mProcVar5.field_0x3012--;
|
||||
} else {
|
||||
voiceStart(Z2SE_AL_V_FALL);
|
||||
setSingleAnimeBaseMorf(ANM_FALL, daAlinkHIO_damage_c0::m.mInvertedFallInterpolation);
|
||||
setSingleAnimeBaseMorf(ANM_FALL, mpHIO->mDamage.m.mInvertedFallInterpolation);
|
||||
setOldRootQuaternion(field_0x3080, 0, field_0x3082);
|
||||
field_0x3080 = 0;
|
||||
field_0x3082 = 0;
|
||||
@@ -1257,7 +1257,7 @@ int daAlink_c::procLargeDamageUpInit(int param_0, int param_1, s16 param_2, s16
|
||||
if (param_0 == -2) {
|
||||
var_f30 = 0.0f;
|
||||
} else {
|
||||
var_f30 = daAlinkHIO_damLarge_c0::m.mBackGetUpAnm.mInterpolation;
|
||||
var_f30 = mpHIO->mDamage.mDamLarge.m.mBackGetUpAnm.mInterpolation;
|
||||
}
|
||||
|
||||
field_0x3484 = 9.0f;
|
||||
@@ -1274,7 +1274,7 @@ int daAlink_c::procLargeDamageUpInit(int param_0, int param_1, s16 param_2, s16
|
||||
var_f31 = 0.0f;
|
||||
} else {
|
||||
mProcVar0.field_0x3008 = -1;
|
||||
var_f31 = daAlinkHIO_damage_c0::m.mRecoverStandAnmSpeed;
|
||||
var_f31 = mpHIO->mDamage.m.mRecoverStandAnmSpeed;
|
||||
}
|
||||
|
||||
mProcVar1.field_0x300a = 1;
|
||||
@@ -1343,7 +1343,7 @@ int daAlink_c::procLargeDamageUp() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
setSingleAnime(ANM_DMG_LARGE_LAND, daAlinkHIO_damLarge_c0::m.mBackGetUpAnm.mSpeed, 9.0f, -1, daAlinkHIO_damLarge_c0::m.mBackGetUpAnm.mInterpolation);
|
||||
setSingleAnime(ANM_DMG_LARGE_LAND, mpHIO->mDamage.mDamLarge.m.mBackGetUpAnm.mSpeed, 9.0f, -1, mpHIO->mDamage.mDamLarge.m.mBackGetUpAnm.mInterpolation);
|
||||
field_0x3198 = -3;
|
||||
field_0x347c = 2.0f / (field_0x3478 - 9.0f);
|
||||
}
|
||||
@@ -1353,7 +1353,7 @@ int daAlink_c::procLargeDamageUp() {
|
||||
|
||||
if (mProcVar0.field_0x3008 == 0) {
|
||||
mProcVar0.field_0x3008 = -1;
|
||||
setWaterInAnmRate(temp_r30, daAlinkHIO_damage_c0::m.mRecoverStandAnmSpeed);
|
||||
setWaterInAnmRate(temp_r30, mpHIO->mDamage.m.mRecoverStandAnmSpeed);
|
||||
temp_r30->offEndFlg();
|
||||
}
|
||||
} else {
|
||||
@@ -1498,12 +1498,12 @@ int daAlink_c::procCoPolyDamageInit() {
|
||||
commonProcInit(PROC_POLY_DAMAGE);
|
||||
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfParam(WANM_DMG_SMALL, &daAlinkHIO_wlDamage_c0::m.mPolygonAnm);
|
||||
setSingleAnimeWolfParam(WANM_DMG_SMALL, &mpHIO->mWolf.mWlDamage.m.mPolygonAnm);
|
||||
voiceStart(Z2SE_WL_V_DAMAGE);
|
||||
field_0x3478 = daAlinkHIO_wlDamage_c0::m.mPolygonAnm.mCancelFrame;
|
||||
field_0x3478 = mpHIO->mWolf.mWlDamage.m.mPolygonAnm.mCancelFrame;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_DMG, &daAlinkHIO_damage_c0::m.mFloorDmgAnm);
|
||||
field_0x3478 = daAlinkHIO_damage_c0::m.mFloorDmgAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_DMG, &mpHIO->mDamage.m.mFloorDmgAnm);
|
||||
field_0x3478 = mpHIO->mDamage.m.mFloorDmgAnm.mCancelFrame;
|
||||
}
|
||||
|
||||
mNormalSpeed = 0.0f;
|
||||
@@ -1527,8 +1527,8 @@ int daAlink_c::procCoPolyDamage() {
|
||||
int daAlink_c::procLandDamageInit(int param_0) {
|
||||
f32 var_f31;
|
||||
if (param_0 == 0) {
|
||||
var_f31 = daAlinkHIO_damFall_c0::m.mSmallDmgLandStartFrame;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_autoJump_c0::m.mSpinJumpLandStopTime;
|
||||
var_f31 = mpHIO->mDamage.mDamFall.m.mSmallDmgLandStartFrame;
|
||||
mProcVar0.field_0x3008 = mpHIO->mAutoJump.m.mSpinJumpLandStopTime;
|
||||
|
||||
if (mProcID == PROC_MAGNE_BOOTS_FLY) {
|
||||
dComIfGp_getVibration().StartShock(6, 0x1F, cXyz(0.0f, 1.0f, 0.0f));
|
||||
@@ -1540,16 +1540,16 @@ int daAlink_c::procLandDamageInit(int param_0) {
|
||||
setLandDamagePoint(4);
|
||||
}
|
||||
|
||||
var_f31 = daAlinkHIO_damFall_c0::m.mSmallDmgLandStartFrame;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_damFall_c0::m.mSmallStopTime;
|
||||
var_f31 = mpHIO->mDamage.mDamFall.m.mSmallDmgLandStartFrame;
|
||||
mProcVar0.field_0x3008 = mpHIO->mDamage.mDamFall.m.mSmallStopTime;
|
||||
dComIfGp_getVibration().StartShock(4, 0x1F, cXyz(0.0f, 1.0f, 0.0f));
|
||||
} else {
|
||||
if (!checkEventRun()) {
|
||||
setLandDamagePoint(8);
|
||||
}
|
||||
|
||||
var_f31 = daAlinkHIO_damFall_c0::m.mLandAnm.mStartFrame;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_damFall_c0::m.mBigStopTime;
|
||||
var_f31 = mpHIO->mDamage.mDamFall.m.mLandAnm.mStartFrame;
|
||||
mProcVar0.field_0x3008 = mpHIO->mDamage.mDamFall.m.mBigStopTime;
|
||||
dComIfGp_getVibration().StartShock(5, 0x1F, cXyz(0.0f, 1.0f, 0.0f));
|
||||
}
|
||||
|
||||
@@ -1563,7 +1563,7 @@ int daAlink_c::procLandDamageInit(int param_0) {
|
||||
voiceStart(Z2SE_AL_V_LANDING_FAIL);
|
||||
}
|
||||
|
||||
setSingleAnime(ANM_DMG_FALL, daAlinkHIO_damFall_c0::m.mLandAnm.mSpeed, var_f31, daAlinkHIO_damFall_c0::m.mLandAnm.mEndFrame, daAlinkHIO_damFall_c0::m.mLandAnm.mInterpolation);
|
||||
setSingleAnime(ANM_DMG_FALL, mpHIO->mDamage.mDamFall.m.mLandAnm.mSpeed, var_f31, mpHIO->mDamage.mDamFall.m.mLandAnm.mEndFrame, mpHIO->mDamage.mDamFall.m.mLandAnm.mInterpolation);
|
||||
field_0x3198 = 0;
|
||||
field_0x2f9d = 4;
|
||||
setFootEffectProcType(4);
|
||||
@@ -1577,7 +1577,7 @@ int daAlink_c::procLandDamage() {
|
||||
if (field_0x3198 != 0) {
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
checkNextAction(0);
|
||||
} else if (frameCtrl->getFrame() > daAlinkHIO_damFall_c0::m.mStandAnm.mCancelFrame) {
|
||||
} else if (frameCtrl->getFrame() > mpHIO->mDamage.mDamFall.m.mStandAnm.mCancelFrame) {
|
||||
onModeFlg(4);
|
||||
checkNextAction(1);
|
||||
}
|
||||
@@ -1586,7 +1586,7 @@ int daAlink_c::procLandDamage() {
|
||||
if (mProcVar0.field_0x3008 > 0) {
|
||||
mProcVar0.field_0x3008--;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_DMG_FALL_RECOVER, &daAlinkHIO_damFall_c0::m.mStandAnm);
|
||||
setSingleAnimeParam(ANM_DMG_FALL_RECOVER, &mpHIO->mDamage.mDamFall.m.mStandAnm);
|
||||
field_0x3198 = 1;
|
||||
}
|
||||
}
|
||||
@@ -1716,7 +1716,7 @@ int daAlink_c::procCoElecDamage() {
|
||||
|
||||
int daAlink_c::procStEscapeInit() {
|
||||
commonProcInit(PROC_HUMAN_ST_ESCAPE);
|
||||
setSingleAnimeParam(ANM_FROZEN_FREE, &daAlinkHIO_damCaught_c0::m.mEscapeAnm);
|
||||
setSingleAnimeParam(ANM_FROZEN_FREE, &mpHIO->mDamage.mDamCaught.m.mEscapeAnm);
|
||||
|
||||
mUnderFrameCtrl[0].setFrame(7.0f);
|
||||
getNowAnmPackUnder(UNDER_0)->setFrame(7.0f);
|
||||
@@ -1731,7 +1731,7 @@ int daAlink_c::procStEscape() {
|
||||
|
||||
if (frameCtrl->checkAnmEnd()) {
|
||||
checkNextAction(0);
|
||||
} else if (frameCtrl->getFrame() > daAlinkHIO_damCaught_c0::m.mEscapeAnm.mCancelFrame) {
|
||||
} else if (frameCtrl->getFrame() > mpHIO->mDamage.mDamCaught.m.mEscapeAnm.mCancelFrame) {
|
||||
onModeFlg(4);
|
||||
checkNextAction(1);
|
||||
}
|
||||
@@ -1753,7 +1753,7 @@ int daAlink_c::procDkCaughtInit(fpc_ProcID param_0) {
|
||||
|
||||
field_0x28f8 = param_0;
|
||||
mNormalSpeed = 0.0f;
|
||||
mProcVar0.field_0x3008 = daAlinkHIO_damCaught_c0::m.mGrabDuration;
|
||||
mProcVar0.field_0x3008 = mpHIO->mDamage.mDamCaught.m.mGrabDuration;
|
||||
|
||||
fopAc_ac_c* temp_r3 = fopAcM_SearchByID(field_0x28f8);
|
||||
if (temp_r3 != NULL) {
|
||||
@@ -1797,13 +1797,13 @@ int daAlink_c::procDkCaught() {
|
||||
}
|
||||
|
||||
s16 temp_r28 = current.angle.y;
|
||||
cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, daAlinkHIO_atnMove_c0::m.mTurnAngleRate, daAlinkHIO_atnMove_c0::m.mMaxTurnAngle, daAlinkHIO_atnMove_c0::m.mMinTurnAngle);
|
||||
var_f30 = daAlinkHIO_atnMove_c0::m.mAcceleration * field_0x33a8 * cM_scos((current.angle.y - temp_r28));
|
||||
cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, mpHIO->mAtnMove.m.mTurnAngleRate, mpHIO->mAtnMove.m.mMaxTurnAngle, mpHIO->mAtnMove.m.mMinTurnAngle);
|
||||
var_f30 = mpHIO->mAtnMove.m.mAcceleration * field_0x33a8 * cM_scos((current.angle.y - temp_r28));
|
||||
} else {
|
||||
var_f30 = 0.0f;
|
||||
}
|
||||
|
||||
setNormalSpeedF(var_f30, daAlinkHIO_atnMove_c0::m.mDeceleration);
|
||||
setNormalSpeedF(var_f30, mpHIO->mAtnMove.m.mDeceleration);
|
||||
|
||||
if (checkZeroSpeedF()) {
|
||||
onModeFlg(1);
|
||||
@@ -1814,11 +1814,11 @@ int daAlink_c::procDkCaught() {
|
||||
mProcVar0.field_0x3008--;
|
||||
|
||||
if (escapeTrigger()) {
|
||||
mProcVar0.field_0x3008 -= daAlinkHIO_damCaught_c0::m.mInputFadeTime;
|
||||
mProcVar0.field_0x3008 -= mpHIO->mDamage.mDamCaught.m.mInputFadeTime;
|
||||
}
|
||||
|
||||
if (checkInputOnR() && abs((s16)(mStickAngle - mPrevStickAngle)) > 0x1000) {
|
||||
mProcVar0.field_0x3008 -= daAlinkHIO_damCaught_c0::m.mInputFadeTime;
|
||||
mProcVar0.field_0x3008 -= mpHIO->mDamage.mDamCaught.m.mInputFadeTime;
|
||||
}
|
||||
|
||||
if (mProcVar0.field_0x3008 < 0) {
|
||||
@@ -1846,8 +1846,8 @@ int daAlink_c::procScreamWaitInit() {
|
||||
if (checkEndResetFlg1(ERFLG1_UNK_2)) {
|
||||
setScreamWaitAnime();
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed,
|
||||
mpHIO->mBasic.m.mBasicInterpolation);
|
||||
mProcVar2.field_0x300c = 0;
|
||||
}
|
||||
|
||||
@@ -1996,18 +1996,18 @@ int daAlink_c::procCoSwimFreezeReturnInit() {
|
||||
|
||||
f32 var_f31;
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_SWIM_WAIT, daAlinkHIO_wlDamNormal_c0::m.mIceDamageAnmSpeed,
|
||||
setSingleAnimeWolfBaseSpeed(WANM_SWIM_WAIT, mpHIO->mWolf.mWlDamage.mNormal.m.mIceDamageAnmSpeed,
|
||||
10.0f);
|
||||
mUnderFrameCtrl[0].setEnd(3);
|
||||
mUnderFrameCtrl[0].setAttribute(0);
|
||||
setFaceBasicTexture(FTANM_UNK_90);
|
||||
mMidnaAnm = 1;
|
||||
var_f31 = daAlinkHIO_wlSwim_c0::m.mStartHeight;
|
||||
var_f31 = mpHIO->mWolf.mWlSwim.m.mStartHeight;
|
||||
} else {
|
||||
setSingleAnime(ANM_SWIM_DMG_FREEZE, daAlinkHIO_damNormal_c0::m.mIceDamageASpeed,
|
||||
setSingleAnime(ANM_SWIM_DMG_FREEZE, mpHIO->mDamage.mDamNormal.m.mIceDamageASpeed,
|
||||
0.0f, 5, 10.0f);
|
||||
voiceStart(Z2SE_AL_V_DAMAGE_FREEZE);
|
||||
var_f31 = daAlinkHIO_swim_c0::m.mStartHeight;
|
||||
var_f31 = mpHIO->mSwim.m.mStartHeight;
|
||||
}
|
||||
|
||||
seStartOnlyReverb(Z2SE_AL_FREEZE);
|
||||
|
||||
@@ -146,7 +146,7 @@ int daAlink_c::checkDemoAction() {
|
||||
}
|
||||
|
||||
if (mProcID == PROC_SPINNER_WAIT) {
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
if (checkModeFlg(0x4000000) || checkModeFlg(0x40000) || checkHorseRide() ||
|
||||
@@ -463,7 +463,7 @@ int daAlink_c::checkDemoAction() {
|
||||
} else if (checkBoardRide()) {
|
||||
return checkNextActionBoard();
|
||||
} else if (checkSpinnerRide()) {
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
return commonCheckNextAction(0);
|
||||
@@ -486,7 +486,7 @@ void daAlink_c::setDemoMoveData(u32* o_mode, cXyz const* i_goal) {
|
||||
f32 temp_f28;
|
||||
f32 var_f27;
|
||||
if (checkWolf()) {
|
||||
var_f27 = daAlinkHIO_wlMoveNoP_c0::m.mMaxSpeed / daAlinkHIO_move_c0::m.mMaxSpeed;
|
||||
var_f27 = mpHIO->mWolf.mWlMoveNoP.m.mMaxSpeed / mpHIO->mMove.m.mMaxSpeed;
|
||||
var_f27 *= var_f27;
|
||||
} else {
|
||||
var_f27 = 1.0f;
|
||||
@@ -850,12 +850,12 @@ void daAlink_c::resetDemoBck() {
|
||||
mFaceBtkHeap.resetIdx();
|
||||
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMoveNoP_c0::m.mIdleAnmSpeed,
|
||||
daAlinkHIO_wlMove_c0::m.mNormalInterpolation);
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, mpHIO->mWolf.mWlMoveNoP.m.mIdleAnmSpeed,
|
||||
mpHIO->mWolf.mWlMove.m.mNormalInterpolation);
|
||||
setFaceBasicAnime(ANM_WAIT);
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed,
|
||||
mpHIO->mBasic.m.mBasicInterpolation);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -960,7 +960,7 @@ void daAlink_c::endDemoMode() {
|
||||
checkWaitAction();
|
||||
}
|
||||
} else if (mProcID == PROC_MONKEY_MOVE) {
|
||||
procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
} else if (checkCanoeRide()) {
|
||||
procCanoeWaitInit(0);
|
||||
}
|
||||
@@ -1029,7 +1029,7 @@ int daAlink_c::setTalkStartBack(cXyz* param_0) {
|
||||
if (dComIfG_Bgsp().GroundCross(&mLinkGndChk) - current.pos.y >= l_autoDownHeight) {
|
||||
current.angle.y = sp24.atan2sX_Z();
|
||||
mNormalSpeed = 5.0f;
|
||||
setSingleAnimeBaseSpeed(ANM_WALK, -daAlinkHIO_move_c0::m.mWalkAnmSpeed, 3.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_WALK, -mpHIO->mMove.m.mWalkAnmSpeed, 3.0f);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@@ -1069,8 +1069,8 @@ void daAlink_c::setTalkAnime() {
|
||||
if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_8_e || mEquipItem == fpcNm_ITEM_KANTERA ||
|
||||
(checkNoResetFlg2(FLG2_UNK_1) && field_0x2fde == 0x48))
|
||||
{
|
||||
setDoubleAnime(0.0f, daAlinkHIO_move_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_move_c0::m.mWaitAnmSpeed, ANM_WAIT, ANM_WAIT, 2, 3.0f);
|
||||
setDoubleAnime(0.0f, mpHIO->mMove.m.mWaitAnmSpeed,
|
||||
mpHIO->mMove.m.mWaitAnmSpeed, ANM_WAIT, ANM_WAIT, 2, 3.0f);
|
||||
} else {
|
||||
setSingleAnimeBase(ANM_TALK);
|
||||
}
|
||||
@@ -1688,12 +1688,12 @@ int daAlink_c::procCoTalkInit() {
|
||||
mNormalSpeed = 0.0f;
|
||||
|
||||
if (var_r30 == 0) {
|
||||
setBlendWolfMoveAnime(daAlinkHIO_wlMove_c0::m.mIdleInterpolation);
|
||||
setBlendWolfMoveAnime(mpHIO->mWolf.mWlMove.m.mIdleInterpolation);
|
||||
} else {
|
||||
if (var_r30 == 1) {
|
||||
field_0x2f99 = 13;
|
||||
setSingleAnimeWolfBaseSpeed(WANM_CROUCH_WALK, 0.0f,
|
||||
daAlinkHIO_wlLie_c0::m.mProneMoveInterp);
|
||||
mpHIO->mWolf.mWlLie.m.mProneMoveInterp);
|
||||
} else {
|
||||
field_0x2f99 = 13;
|
||||
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
|
||||
@@ -1765,7 +1765,7 @@ int daAlink_c::procCoTalk() {
|
||||
} else {
|
||||
if (mEquipItem == fpcNm_ITEM_KANTERA) {
|
||||
if (mUpperAnmHeap[0].getIdx() != getMainBckData(ANM_WAIT)->m_upperID) {
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1866,9 +1866,9 @@ int daAlink_c::procCoUnequipInit() {
|
||||
mProcVar3.field_0x300e = 0;
|
||||
|
||||
if (checkWolf()) {
|
||||
setBlendWolfMoveAnime(daAlinkHIO_wlMove_c0::m.mNormalInterpolation);
|
||||
setBlendWolfMoveAnime(mpHIO->mWolf.mWlMove.m.mNormalInterpolation);
|
||||
} else {
|
||||
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setBlendMoveAnime(mpHIO->mBasic.m.mBasicInterpolation);
|
||||
|
||||
if (mDemo.getParam1() == 0) {
|
||||
if (mEquipItem != fpcNm_ITEM_NONE) {
|
||||
@@ -2277,7 +2277,7 @@ int daAlink_c::procCoGetItem() {
|
||||
field_0x2f99 = 12;
|
||||
|
||||
if (checkWolf()) {
|
||||
setBlendWolfMoveAnime(daAlinkHIO_wlMove_c0::m.mNormalInterpolation);
|
||||
setBlendWolfMoveAnime(mpHIO->mWolf.mWlMove.m.mNormalInterpolation);
|
||||
} else {
|
||||
if (mEquipItem == fpcNm_ITEM_KANTERA) {
|
||||
field_0x2f94 = 0;
|
||||
@@ -2289,7 +2289,7 @@ int daAlink_c::procCoGetItem() {
|
||||
3.0f);
|
||||
field_0x2f99 = 0x60;
|
||||
} else {
|
||||
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setBlendMoveAnime(mpHIO->mBasic.m.mBasicInterpolation);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2327,8 +2327,8 @@ int daAlink_c::procCoTurnBack() {
|
||||
if (checkWolf()) {
|
||||
setBlendWolfMoveAnime(5.0f);
|
||||
} else {
|
||||
setDoubleAnime(0.0f, daAlinkHIO_noActAtnMove_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_noActAtnMove_c0::m.mWaitAnmSpeed, ANM_WAIT_B, ANM_WAIT_B,
|
||||
setDoubleAnime(0.0f, mpHIO->mNoActAtnMove.m.mWaitAnmSpeed,
|
||||
mpHIO->mNoActAtnMove.m.mWaitAnmSpeed, ANM_WAIT_B, ANM_WAIT_B,
|
||||
2, 3.0f);
|
||||
}
|
||||
|
||||
@@ -2356,7 +2356,7 @@ int daAlink_c::procDoorOpenInit() {
|
||||
f32 start_f = 0.0f;
|
||||
s16 end_f = -1;
|
||||
|
||||
field_0x3478 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
|
||||
field_0x3478 = mpHIO->mBasic.m.mBasicInterpolation;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
|
||||
if (mDemo.getParam0() == 4) {
|
||||
@@ -2487,9 +2487,9 @@ int daAlink_c::procCoLookWaitInit() {
|
||||
mNormalSpeed = 0.0f;
|
||||
|
||||
if (checkWolf()) {
|
||||
setBlendWolfMoveAnime(daAlinkHIO_wlMove_c0::m.mNormalInterpolation);
|
||||
setBlendWolfMoveAnime(mpHIO->mWolf.mWlMove.m.mNormalInterpolation);
|
||||
} else {
|
||||
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setBlendMoveAnime(mpHIO->mBasic.m.mBasicInterpolation);
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
@@ -2528,8 +2528,8 @@ int daAlink_c::procCoDemoPushPullWaitInit() {
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBase(WANM_WAIT_PP);
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT_PUSH_PULL, daAlinkHIO_pushpull_c0::m.mStandbyASpeed,
|
||||
daAlinkHIO_pushpull_c0::m.mStandbyInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT_PUSH_PULL, mpHIO->mPushpull.m.mStandbyASpeed,
|
||||
mpHIO->mPushpull.m.mStandbyInterpolation);
|
||||
}
|
||||
|
||||
mNormalSpeed = 0.0f;
|
||||
@@ -2545,15 +2545,15 @@ int daAlink_c::procCoDemoPushMoveInit() {
|
||||
if (mDemo.getParam0() != 0) {
|
||||
setSingleAnimeWolfBase(WANM_PUSH);
|
||||
} else {
|
||||
setSingleAnimeWolf(WANM_PUSH_LIGHT, daAlinkHIO_wlPush_c0::m.mPushAnmSpeed,
|
||||
0.0f, 24, daAlinkHIO_wlPush_c0::m.mPushInterp);
|
||||
setSingleAnimeWolf(WANM_PUSH_LIGHT, mpHIO->mWolf.mWlPush.m.mPushAnmSpeed,
|
||||
0.0f, 24, mpHIO->mWolf.mWlPush.m.mPushInterp);
|
||||
}
|
||||
} else {
|
||||
if (mDemo.getParam0() != 0) {
|
||||
setSingleAnimeBase(ANM_PUSH);
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_PUSH_LIGHT, daAlinkHIO_pushpull_c0::m.mPushASpeed,
|
||||
daAlinkHIO_pushpull_c0::m.mPushInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_PUSH_LIGHT, mpHIO->mPushpull.m.mPushASpeed,
|
||||
mpHIO->mPushpull.m.mPushInterpolation);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2617,7 +2617,7 @@ int daAlink_c::procDemoBoomerangCatchInit() {
|
||||
deleteEquipItem(FALSE, FALSE);
|
||||
mEquipItem = fpcNm_ITEM_BOOMERANG;
|
||||
setItemActor();
|
||||
setSingleAnimeParam(ANM_BOOMERANG_CATCH, &daAlinkHIO_boom_c0::m.mCatchAnm);
|
||||
setSingleAnimeParam(ANM_BOOMERANG_CATCH, &mpHIO->mItem.mBoomerang.m.mCatchAnm);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -2625,7 +2625,7 @@ int daAlink_c::procDemoBoomerangCatch() {
|
||||
dComIfGp_evmng_cutEnd(mAlinkStaffId);
|
||||
|
||||
if (checkAnmEnd(mUnderFrameCtrl)) {
|
||||
setBlendMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setBlendMoveAnime(mpHIO->mBasic.m.mBasicInterpolation);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
@@ -2651,9 +2651,9 @@ int daAlink_c::procCoDeadInit(int param_0) {
|
||||
if (checkNoResetFlg2(FLG2_FORCE_GAMEOVER)) {
|
||||
if (param_0) {
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.mIdleAnmSpeed, 3.0f);
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, mpHIO->mWolf.mWlMove.m.mIdleAnmSpeed, 3.0f);
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2904,9 +2904,9 @@ int daAlink_c::procCoCaughtInit() {
|
||||
}
|
||||
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBaseMorf(WANM_WAIT_START, daAlinkHIO_wlDamCaught_c0::m.mWaitInterp);
|
||||
setSingleAnimeWolfBaseMorf(WANM_WAIT_START, mpHIO->mWolf.mWlDamage.mCapture.m.mWaitInterp);
|
||||
} else {
|
||||
setSingleAnimeBaseMorf(ANM_WAIT_START, daAlinkHIO_damCaught_c0::m.mStandbyInterp);
|
||||
setSingleAnimeBaseMorf(ANM_WAIT_START, mpHIO->mDamage.mDamCaught.m.mStandbyInterp);
|
||||
}
|
||||
|
||||
if (chk_40000) {
|
||||
@@ -2999,7 +2999,7 @@ int daAlink_c::procHandPat() {
|
||||
dComIfGp_evmng_cutEnd(mAlinkStaffId);
|
||||
|
||||
if (mProcVar3.field_0x300e == 0) {
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
|
||||
mProcVar3.field_0x300e = 1;
|
||||
}
|
||||
}
|
||||
@@ -3048,10 +3048,10 @@ int daAlink_c::procCoFogDeadInit() {
|
||||
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_FALL_LAND, 0.0f,
|
||||
daAlinkHIO_wlDamFall_c0::m.mAirAnmInterp);
|
||||
mpHIO->mWolf.mWlDamage.mFall.m.mAirAnmInterp);
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_DMG_FALL, 0.0f,
|
||||
daAlinkHIO_damFall_c0::m.mFallAnmMorf);
|
||||
mpHIO->mDamage.mDamFall.m.mFallAnmMorf);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3097,8 +3097,8 @@ int daAlink_c::procWolfSmellWaitInit() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
setSingleAnimeWolfBaseSpeed(WANM_SMELL, daAlinkHIO_wlChain_c0::m.mSniffAnmSpeed,
|
||||
daAlinkHIO_wlChain_c0::m.mSniffInterp);
|
||||
setSingleAnimeWolfBaseSpeed(WANM_SMELL, mpHIO->mWolf.mWlChain.m.mSniffAnmSpeed,
|
||||
mpHIO->mWolf.mWlChain.m.mSniffInterp);
|
||||
current.angle.y = shape_angle.y;
|
||||
mNormalSpeed = 0.0f;
|
||||
return 1;
|
||||
@@ -3245,7 +3245,7 @@ int daAlink_c::procCoGetReadySitInit() {
|
||||
commonProcInit(PROC_GET_READY_SIT);
|
||||
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.mIdleAnmSpeed, 3.0f);
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, mpHIO->mWolf.mWlMove.m.mIdleAnmSpeed, 3.0f);
|
||||
mProcVar2.field_0x300c = 1;
|
||||
} else {
|
||||
setSingleAnime(ANM_TRES_OPEN_SMALL, 1.0f, 36.0f, -1, 3.0f);
|
||||
@@ -3350,13 +3350,13 @@ int daAlink_c::procWolfSnowEscape() {
|
||||
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
mProcVar2.field_0x300c = 1;
|
||||
setSingleAnimeWolfParam(WANM_SLIDE_FORWARD_START, &daAlinkHIO_wlSlide_c0::m.mFrontSlideAnm);
|
||||
setSingleAnimeWolfParam(WANM_SLIDE_FORWARD_START, &mpHIO->mWolf.mWlSlide.m.mFrontSlideAnm);
|
||||
field_0x3588 = l_wolfBaseAnime;
|
||||
field_0x3478 = 1.0f / (f32)frameCtrl_p->getEnd();
|
||||
field_0x2f99 = 13;
|
||||
voiceStart(Z2SE_WL_V_SLIP_ROLL);
|
||||
} else {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.mIdleAnmSpeed, 3.0f);
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, mpHIO->mWolf.mWlMove.m.mIdleAnmSpeed, 3.0f);
|
||||
field_0x2f99 = 0x30;
|
||||
mProcVar3.field_0x300e = 1;
|
||||
}
|
||||
@@ -3658,8 +3658,8 @@ int daAlink_c::procSwordReady() {
|
||||
|
||||
if (checkAnmEnd(frame_ctrl)) {
|
||||
if (mProcVar2.field_0x300c == 0) {
|
||||
setDoubleAnime(0.0f, daAlinkHIO_noActAtnMove_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_noActAtnMove_c0::m.mWaitAnmSpeed, ANM_WAIT_B, ANM_WAIT_B, 2,
|
||||
setDoubleAnime(0.0f, mpHIO->mNoActAtnMove.m.mWaitAnmSpeed,
|
||||
mpHIO->mNoActAtnMove.m.mWaitAnmSpeed, ANM_WAIT_B, ANM_WAIT_B, 2,
|
||||
3.0f);
|
||||
}
|
||||
|
||||
@@ -3751,10 +3751,10 @@ int daAlink_c::procCutFastReadyInit() {
|
||||
|
||||
mNormalSpeed = 0.0f;
|
||||
current.angle.y = shape_angle.y;
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
|
||||
setUpperAnime(0x255, UPPER_2, daAlinkHIO_cut_c0::m.mEquipAnm.mSpeed, 12.0f,
|
||||
daAlinkHIO_cut_c0::m.mEquipAnm.mEndFrame,
|
||||
daAlinkHIO_cut_c0::m.mEquipAnm.mInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
|
||||
setUpperAnime(0x255, UPPER_2, mpHIO->mCut.m.mEquipAnm.mSpeed, 12.0f,
|
||||
mpHIO->mCut.m.mEquipAnm.mEndFrame,
|
||||
mpHIO->mCut.m.mEquipAnm.mInterpolation);
|
||||
onNoResetFlg0(FLG0_UNK_1000000);
|
||||
return 1;
|
||||
}
|
||||
@@ -3953,8 +3953,8 @@ int daAlink_c::procDungeonWarpSceneStartInit() {
|
||||
commonProcInit(PROC_DUNGEON_WARP_SCN_START);
|
||||
|
||||
setSpecialGravity(0.0f, maxFallSpeed, 0);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed,
|
||||
daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed,
|
||||
mpHIO->mBasic.m.mBasicInterpolation);
|
||||
|
||||
if (checkDungeon() && !checkLv7DungeonShop()) {
|
||||
createNpcTks(¤t.pos, fopAcM_GetRoomNo(this), 4);
|
||||
@@ -4184,9 +4184,9 @@ int daAlink_c::procCoWarpInit(int param_0, int param_1) {
|
||||
deleteEquipItem(FALSE, TRUE);
|
||||
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, daAlinkHIO_wlMove_c0::m.mIdleAnmSpeed, 3.0f);
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT, mpHIO->mWolf.mWlMove.m.mIdleAnmSpeed, 3.0f);
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
|
||||
}
|
||||
|
||||
u32 var_r29;
|
||||
@@ -4305,9 +4305,9 @@ int daAlink_c::procCoWarp() {
|
||||
|
||||
f32 var_f1;
|
||||
if (checkWolf()) {
|
||||
var_f1 = daAlinkHIO_wlAutoJump_c0::m.mGravity;
|
||||
var_f1 = mpHIO->mWolf.mWlAutoJump.m.mGravity;
|
||||
} else {
|
||||
var_f1 = daAlinkHIO_autoJump_c0::m.mGravity;
|
||||
var_f1 = mpHIO->mAutoJump.m.mGravity;
|
||||
}
|
||||
|
||||
setSpecialGravity(var_f1, maxFallSpeed, 1);
|
||||
@@ -4409,8 +4409,8 @@ int daAlink_c::commonLargeDamageUpInit(int param_0, int param_1, s16 param_2, s1
|
||||
|
||||
int daAlink_c::commonFallInit(int param_0) {
|
||||
if (checkWolf()) {
|
||||
return procWolfFallInit(param_0, daAlinkHIO_wlAutoJump_c0::m.mNormalFallInterp);
|
||||
return procWolfFallInit(param_0, mpHIO->mWolf.mWlAutoJump.m.mNormalFallInterp);
|
||||
} else {
|
||||
return procFallInit(param_0, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(param_0, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -420,9 +420,9 @@ void daAlink_c::setEffect() {
|
||||
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.mStartHeight;
|
||||
spAC.y -= mpHIO->mWolf.mWlSwim.m.mStartHeight;
|
||||
} else {
|
||||
spAC.y -= daAlinkHIO_swim_c0::m.mStartHeight;
|
||||
spAC.y -= mpHIO->mSwim.m.mStartHeight;
|
||||
}
|
||||
|
||||
spB8.y = mWaterY;
|
||||
@@ -562,7 +562,7 @@ void daAlink_c::setEffect() {
|
||||
¤t.pos, &shape_angle);
|
||||
if (sp38 != NULL) {
|
||||
cXyz sp58;
|
||||
f32 var_f31 = temp_f30 / daAlinkHIO_board_c0::m.mEffectMaxSpeed;
|
||||
f32 var_f31 = temp_f30 / mpHIO->mItem.mBoard.m.mEffectMaxSpeed;
|
||||
if (var_f31 > 1.0f) {
|
||||
var_f31 = 1.0f;
|
||||
}
|
||||
@@ -1494,7 +1494,7 @@ void daAlink_c::setMetamorphoseEffect() {
|
||||
void daAlink_c::setRunSplash() {
|
||||
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) {
|
||||
if (temp_f31 >= mpHIO->mBasic.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, ¤t.angle);
|
||||
@@ -1977,7 +1977,7 @@ void daAlink_blur_c::draw() {
|
||||
BOOL daAlink_lockCursor_c::create() {
|
||||
JKRArchive* arc = dComIfG_getObjectResInfo(l_arcName)->getArchive();
|
||||
|
||||
field_0x2c = 0.0f;
|
||||
mLockCursorAngle = 0.0f;
|
||||
field_0x4 = false;
|
||||
field_0x30 = 0.0f;
|
||||
|
||||
@@ -2060,14 +2060,14 @@ extern "C" void setAnimation__7J2DPaneFP11J2DAnmColor() {
|
||||
}
|
||||
|
||||
void daAlink_lockCursor_c::update() {
|
||||
if (field_0x2c < 21.0f) {
|
||||
field_0x2c = 21.0f;
|
||||
if (mLockCursorAngle < 21.0f) {
|
||||
mLockCursorAngle = 21.0f;
|
||||
}
|
||||
|
||||
field_0x2c += 0.9f;
|
||||
mLockCursorAngle += 0.9f;
|
||||
|
||||
if (field_0x2c >= 50.0f) {
|
||||
field_0x2c += -29.0f;
|
||||
if (mLockCursorAngle >= 50.0f) {
|
||||
mLockCursorAngle += -29.0f;
|
||||
}
|
||||
|
||||
field_0x30 += 0.9f;
|
||||
@@ -2081,13 +2081,13 @@ void daAlink_lockCursor_c::update() {
|
||||
|
||||
void daAlink_lockCursor_c::draw() {
|
||||
if (field_0x4 != 0) {
|
||||
field_0x28->setFrame(field_0x2c);
|
||||
field_0x28->setFrame(mLockCursorAngle);
|
||||
|
||||
f32 var_f30;
|
||||
if (field_0x2c > 21.0f) {
|
||||
if (mLockCursorAngle > 21.0f) {
|
||||
var_f30 = 21.0f;
|
||||
} else {
|
||||
var_f30 = field_0x2c;
|
||||
var_f30 = mLockCursorAngle;
|
||||
}
|
||||
|
||||
field_0x24->setFrame(var_f30);
|
||||
@@ -2097,10 +2097,10 @@ void daAlink_lockCursor_c::draw() {
|
||||
field_0xc->scale(0.6f, 0.6f);
|
||||
field_0xc->translate(mPosX, mPosY);
|
||||
|
||||
if (!(field_0x2c < 15.0f)) {
|
||||
if (!(mLockCursorAngle < 15.0f)) {
|
||||
f32 var_f31;
|
||||
if (field_0x2c < 21.0f) {
|
||||
var_f31 = ((field_0x2c - 15.0f) * 40.0f) * 0.16666667f;
|
||||
if (mLockCursorAngle < 21.0f) {
|
||||
var_f31 = ((mLockCursorAngle - 15.0f) * 40.0f) * 0.16666667f;
|
||||
} else {
|
||||
var_f31 = ((field_0x4 * 0.00390625f) + 0.5f) * 40.0f;
|
||||
}
|
||||
|
||||
@@ -84,7 +84,7 @@ BOOL daAlink_c::setForceGrab(fopAc_ac_c* p_actor, int param_1, int param_2) {
|
||||
deleteEquipItem(TRUE, FALSE);
|
||||
setGrabItemActor(p_actor);
|
||||
field_0x33e4 = 38.0f;
|
||||
setGrabUpperAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setGrabUpperAnime(mpHIO->mBasic.m.mBasicInterpolation);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -136,9 +136,9 @@ BOOL daAlink_c::checkGrabSideActor() {
|
||||
void daAlink_c::setGrabUpperAnime(f32 param_0) {
|
||||
if (param_0 > 0.0f && checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
if (checkZoraWearAbility()) {
|
||||
param_0 *= 1.0f / daAlinkHIO_magneBoots_c0::m.mZoraWaterAnmSpeed;
|
||||
param_0 *= 1.0f / mpHIO->mItem.mIronBoots.m.mZoraWaterAnmSpeed;
|
||||
} else {
|
||||
param_0 *= 1.0f / daAlinkHIO_magneBoots_c0::m.mWaterWalkAnmRate;
|
||||
param_0 *= 1.0f / mpHIO->mItem.mIronBoots.m.mWaterWalkAnmRate;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -444,9 +444,9 @@ void daAlink_c::setGrabUpperSpeedRate() {
|
||||
var_f31 = 1.0f;
|
||||
} else {
|
||||
if (mProcID == PROC_STEP_MOVE) {
|
||||
var_f31 = fabsf(field_0x3478 / daAlinkHIO_move_c0::m.mMaxSpeed);
|
||||
var_f31 = fabsf(field_0x3478 / mpHIO->mMove.m.mMaxSpeed);
|
||||
} else {
|
||||
var_f31 = fabsf(mNormalSpeed / daAlinkHIO_move_c0::m.mMaxSpeed);
|
||||
var_f31 = fabsf(mNormalSpeed / mpHIO->mMove.m.mMaxSpeed);
|
||||
}
|
||||
|
||||
if (checkHeavyStateOn(1, 1)) {
|
||||
@@ -550,17 +550,17 @@ void daAlink_c::setGrabItemThrow() {
|
||||
temp_r3->current.angle.y = shape_angle.y;
|
||||
|
||||
if (checkWolf()) {
|
||||
temp_r3->speedF = daAlinkHIO_bomb_c0::m.mWolfThrowSpeedH;
|
||||
temp_r3->speed.y = daAlinkHIO_bomb_c0::m.mWolfThrowSpeedV;
|
||||
temp_r3->speedF = mpHIO->mItem.mBomb.m.mWolfThrowSpeedH;
|
||||
temp_r3->speed.y = mpHIO->mItem.mBomb.m.mWolfThrowSpeedV;
|
||||
} else {
|
||||
f32 var_f31;
|
||||
f32 var_f30;
|
||||
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
var_f31 = daAlinkHIO_bomb_c0::m.mWaterThrowSpeedH;
|
||||
var_f30 = daAlinkHIO_bomb_c0::m.mWaterThrowSpeedV;
|
||||
var_f31 = mpHIO->mItem.mBomb.m.mWaterThrowSpeedH;
|
||||
var_f30 = mpHIO->mItem.mBomb.m.mWaterThrowSpeedV;
|
||||
} else {
|
||||
var_f31 = daAlinkHIO_bomb_c0::m.mThrowSpeedH;
|
||||
var_f30 = daAlinkHIO_bomb_c0::m.mThrowSpeedV;
|
||||
var_f31 = mpHIO->mItem.mBomb.m.mThrowSpeedH;
|
||||
var_f30 = mpHIO->mItem.mBomb.m.mThrowSpeedV;
|
||||
}
|
||||
|
||||
if (checkMagneBootsOn()) {
|
||||
@@ -706,9 +706,9 @@ int daAlink_c::procGrabReadyInit() {
|
||||
}
|
||||
|
||||
if (checkGrabCarryActor()) {
|
||||
setSingleAnime(ANM_CARRY, daAlinkHIO_grab_c0::m.mFailAnm.mSpeed, daAlinkHIO_grab_c0::m.mFailAnm.mStartFrame, 9, daAlinkHIO_grab_c0::m.mFailAnm.mInterpolation);
|
||||
setSingleAnime(ANM_CARRY, mpHIO->mGrab.m.mFailAnm.mSpeed, mpHIO->mGrab.m.mFailAnm.mStartFrame, 9, mpHIO->mGrab.m.mFailAnm.mInterpolation);
|
||||
mProcVar3.field_0x300e = 1;
|
||||
field_0x347c = 1.0f / (9.0f - daAlinkHIO_grab_c0::m.mFailAnm.mStartFrame);
|
||||
field_0x347c = 1.0f / (9.0f - mpHIO->mGrab.m.mFailAnm.mStartFrame);
|
||||
|
||||
f32 var_f31;
|
||||
if (fopAcM_GetName(mGrabItemAcKeep.getActor()) == PROC_DO) {
|
||||
@@ -720,8 +720,8 @@ int daAlink_c::procGrabReadyInit() {
|
||||
field_0x33ec = 4.0f * ((var_f31 * mGrabItemAcKeep.getActor()->scale.x) - 1.0f);
|
||||
} else {
|
||||
field_0x33ec = 0.0f;
|
||||
setSingleAnimeParam(ANM_GRAB_UP_START, &daAlinkHIO_grab_c0::m.mPrepareAnm);
|
||||
field_0x347c = 1.0f / (daAlinkHIO_grab_c0::m.mPrepareAnm.mEndFrame - daAlinkHIO_grab_c0::m.mPrepareAnm.mStartFrame);
|
||||
setSingleAnimeParam(ANM_GRAB_UP_START, &mpHIO->mGrab.m.mPrepareAnm);
|
||||
field_0x347c = 1.0f / (mpHIO->mGrab.m.mPrepareAnm.mEndFrame - mpHIO->mGrab.m.mPrepareAnm.mStartFrame);
|
||||
mProcVar3.field_0x300e = 0;
|
||||
}
|
||||
|
||||
@@ -741,15 +741,15 @@ int daAlink_c::procGrabReady() {
|
||||
|
||||
if (checkAnmEnd(&mUnderFrameCtrl[0])) {
|
||||
if (field_0x3198 != 0) {
|
||||
setSingleAnime(ANM_PICK_UP_LARGE_START, daAlinkHIO_grab_c0::m.mRecoilAnm.mSpeed, daAlinkHIO_grab_c0::m.mRecoilAnm.mStartFrame, daAlinkHIO_grab_c0::m.mRecoilAnm.mCancelFrame, daAlinkHIO_grab_c0::m.mRecoilAnm.mInterpolation);
|
||||
setSingleAnime(ANM_PICK_UP_LARGE_START, mpHIO->mGrab.m.mRecoilAnm.mSpeed, mpHIO->mGrab.m.mRecoilAnm.mStartFrame, mpHIO->mGrab.m.mRecoilAnm.mCancelFrame, mpHIO->mGrab.m.mRecoilAnm.mInterpolation);
|
||||
field_0x3198 = 0;
|
||||
} else {
|
||||
procGrabUpInit();
|
||||
}
|
||||
} else if (mProcVar3.field_0x300e != 0) {
|
||||
setCarryArmAngle(field_0x347c * (mUnderFrameCtrl[0].getFrame() - daAlinkHIO_grab_c0::m.mFailAnm.mStartFrame), 0.0f);
|
||||
setCarryArmAngle(field_0x347c * (mUnderFrameCtrl[0].getFrame() - mpHIO->mGrab.m.mFailAnm.mStartFrame), 0.0f);
|
||||
} else {
|
||||
setCarryArmAngle(0.0f, field_0x347c * (mUnderFrameCtrl[0].getFrame() - daAlinkHIO_grab_c0::m.mPrepareAnm.mStartFrame));
|
||||
setCarryArmAngle(0.0f, field_0x347c * (mUnderFrameCtrl[0].getFrame() - mpHIO->mGrab.m.mPrepareAnm.mStartFrame));
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -760,11 +760,11 @@ int daAlink_c::procGrabUpInit() {
|
||||
commonProcInit(PROC_GRAB_UP);
|
||||
|
||||
if (checkGrabCarryActor()) {
|
||||
setSingleAnime(ANM_CARRY, daAlinkHIO_grab_c0::m.mFailAnm.mSpeed, 9.0f + daAlinkHIO_grab_c0::m.mFailAnm.mSpeed, daAlinkHIO_grab_c0::m.mFailAnm.mEndFrame, 0.0f);
|
||||
setSingleAnime(ANM_CARRY, mpHIO->mGrab.m.mFailAnm.mSpeed, 9.0f + mpHIO->mGrab.m.mFailAnm.mSpeed, mpHIO->mGrab.m.mFailAnm.mEndFrame, 0.0f);
|
||||
mProcVar3.field_0x300e = 1;
|
||||
setCarryArmAngle(1.0f, 0.0f);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_GRAB_UP, &daAlinkHIO_grab_c0::m.mLiftBackAnm);
|
||||
setSingleAnimeParam(ANM_GRAB_UP, &mpHIO->mGrab.m.mLiftBackAnm);
|
||||
mProcVar3.field_0x300e = 0;
|
||||
setCarryArmAngle(0.0f, 1.0f);
|
||||
}
|
||||
@@ -792,7 +792,7 @@ int daAlink_c::procGrabUp() {
|
||||
return checkNextAction(0);
|
||||
}
|
||||
|
||||
if (checkAnmEnd(temp_r29) || (checkInputOnR() && (temp_r29->getFrame() > daAlinkHIO_grab_c0::m.mLiftBackAnm.mCancelFrame))) {
|
||||
if (checkAnmEnd(temp_r29) || (checkInputOnR() && (temp_r29->getFrame() > mpHIO->mGrab.m.mLiftBackAnm.mCancelFrame))) {
|
||||
onResetFlg0(RFLG0_GRAB_UP_END);
|
||||
|
||||
if (fopAcM_CheckCarryType(temp_r3, fopAcM_CARRY(fopAcM_CARRY_UNK_40 | fopAcM_CARRY_HEAVY | fopAcM_CARRY_TYPE_1))) {
|
||||
@@ -831,13 +831,13 @@ int daAlink_c::procGrabMiss() {
|
||||
int daAlink_c::procGrabThrowInit(int param_0) {
|
||||
if (checkModeFlg(0x400)) {
|
||||
if (checkGrabHeavyActor()) {
|
||||
setUpperAnimeParam(0x17B, UPPER_2, &daAlinkHIO_grab_c0::m.mIronBallThrowAnm);
|
||||
setUpperAnimeParam(0x17B, UPPER_2, &mpHIO->mGrab.m.mIronBallThrowAnm);
|
||||
field_0x343c = 14.0f;
|
||||
} else if (checkGrabAnimeSide()) {
|
||||
setUpperAnimeParam(0x51, UPPER_2, &daAlinkHIO_grab_c0::m.mCarryPlaceReverseAnm);
|
||||
setUpperAnimeParam(0x51, UPPER_2, &mpHIO->mGrab.m.mCarryPlaceReverseAnm);
|
||||
field_0x343c = 4.0f;
|
||||
} else {
|
||||
setUpperAnimeParam(0x170, UPPER_2, &daAlinkHIO_grab_c0::m.mLiftAnm);
|
||||
setUpperAnimeParam(0x170, UPPER_2, &mpHIO->mGrab.m.mLiftAnm);
|
||||
field_0x343c = 5.0f;
|
||||
}
|
||||
|
||||
@@ -850,27 +850,27 @@ int daAlink_c::procGrabThrowInit(int param_0) {
|
||||
}
|
||||
|
||||
if (checkGrabHeavyActor()) {
|
||||
setSingleAnimeParam(ANM_THROW_HEAVY, &daAlinkHIO_grab_c0::m.mIronBallThrowAnm);
|
||||
setSingleAnimeParam(ANM_THROW_HEAVY, &mpHIO->mGrab.m.mIronBallThrowAnm);
|
||||
field_0x343c = 14.0f;
|
||||
field_0x347c = daAlinkHIO_grab_c0::m.mIronBallThrowAnm.mCancelFrame;
|
||||
field_0x347c = mpHIO->mGrab.m.mIronBallThrowAnm.mCancelFrame;
|
||||
mProcVar2.field_0x300c = 2;
|
||||
} else if (checkGrabSideActor()) {
|
||||
f32 var_f31;
|
||||
if (mTargetedActor != NULL) {
|
||||
var_f31 = daAlinkHIO_atnMove_c0::m.mWaitAnmSpeed;
|
||||
var_f31 = mpHIO->mAtnMove.m.mWaitAnmSpeed;
|
||||
} else {
|
||||
var_f31 = daAlinkHIO_noActAtnMove_c0::m.mWaitAnmSpeed;
|
||||
var_f31 = mpHIO->mNoActAtnMove.m.mWaitAnmSpeed;
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, var_f31, daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setUpperAnimeParam(0x51, UPPER_0, &daAlinkHIO_grab_c0::m.mCarryPlaceReverseAnm);
|
||||
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, var_f31, mpHIO->mBasic.m.mBasicInterpolation);
|
||||
setUpperAnimeParam(0x51, UPPER_0, &mpHIO->mGrab.m.mCarryPlaceReverseAnm);
|
||||
field_0x343c = 4.0f;
|
||||
field_0x347c = daAlinkHIO_grab_c0::m.mCarryPlaceReverseAnm.mCancelFrame;
|
||||
field_0x347c = mpHIO->mGrab.m.mCarryPlaceReverseAnm.mCancelFrame;
|
||||
mProcVar2.field_0x300c = 1;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_THROW, &daAlinkHIO_grab_c0::m.mLiftAnm);
|
||||
setSingleAnimeParam(ANM_THROW, &mpHIO->mGrab.m.mLiftAnm);
|
||||
field_0x343c = 5.0f;
|
||||
field_0x347c = daAlinkHIO_grab_c0::m.mLiftAnm.mCancelFrame;
|
||||
field_0x347c = mpHIO->mGrab.m.mLiftAnm.mCancelFrame;
|
||||
mProcVar2.field_0x300c = 0;
|
||||
}
|
||||
|
||||
@@ -891,7 +891,7 @@ int daAlink_c::procGrabThrow() {
|
||||
var_r30 = &mUnderFrameCtrl[0];
|
||||
}
|
||||
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mDeceleration);
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mMove.m.mDeceleration);
|
||||
|
||||
if (var_r30->checkPass(field_0x343c)) {
|
||||
setGrabItemThrow();
|
||||
@@ -934,15 +934,15 @@ int daAlink_c::procGrabPutInit() {
|
||||
|
||||
if (checkGrabCarryActor()) {
|
||||
field_0x3198 = 0;
|
||||
setSingleAnime(ANM_CARRY, daAlinkHIO_grab_c0::m.mCarryLiftAnm.mSpeed, 9.0f, daAlinkHIO_grab_c0::m.mCarryLiftAnm.mEndFrame, daAlinkHIO_grab_c0::m.mCarryLiftAnm.mInterpolation);
|
||||
setSingleAnime(ANM_CARRY, mpHIO->mGrab.m.mCarryLiftAnm.mSpeed, 9.0f, mpHIO->mGrab.m.mCarryLiftAnm.mEndFrame, mpHIO->mGrab.m.mCarryLiftAnm.mInterpolation);
|
||||
mProcVar3.field_0x300e = 1;
|
||||
field_0x347c = 1.0f / (daAlinkHIO_grab_c0::m.mCarryLiftAnm.mEndFrame - 9.0f);
|
||||
field_0x3480 = 1.0f / (daAlinkHIO_grab_c0::m.mCarryLiftAnm.mEndFrame - field_0x3478);
|
||||
field_0x347c = 1.0f / (mpHIO->mGrab.m.mCarryLiftAnm.mEndFrame - 9.0f);
|
||||
field_0x3480 = 1.0f / (mpHIO->mGrab.m.mCarryLiftAnm.mEndFrame - field_0x3478);
|
||||
} else {
|
||||
mProcVar3.field_0x300e = 0;
|
||||
field_0x3198 = 0;
|
||||
setSingleAnimeParam(ANM_GRAB_UP, &daAlinkHIO_grab_c0::m.mThrowAnm);
|
||||
field_0x347c = 1.0f / (daAlinkHIO_grab_c0::m.mThrowAnm.mEndFrame - daAlinkHIO_grab_c0::m.mThrowAnm.mStartFrame);
|
||||
setSingleAnimeParam(ANM_GRAB_UP, &mpHIO->mGrab.m.mThrowAnm);
|
||||
field_0x347c = 1.0f / (mpHIO->mGrab.m.mThrowAnm.mEndFrame - mpHIO->mGrab.m.mThrowAnm.mStartFrame);
|
||||
}
|
||||
|
||||
if (mGrabItemAcKeep.getActor() != NULL) {
|
||||
@@ -990,7 +990,7 @@ int daAlink_c::procGrabPut() {
|
||||
}
|
||||
setCarryArmAngle(1.0f - (field_0x347c * (temp_r28->getFrame() - 9.0f)), var_f31);
|
||||
} else {
|
||||
setCarryArmAngle(0.0f, field_0x347c * (temp_r28->getFrame() - daAlinkHIO_grab_c0::m.mThrowAnm.mStartFrame));
|
||||
setCarryArmAngle(0.0f, field_0x347c * (temp_r28->getFrame() - mpHIO->mGrab.m.mThrowAnm.mStartFrame));
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -1012,7 +1012,7 @@ int daAlink_c::procGrabWaitInit() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
f32 var_f31 = daAlinkHIO_basic_c0::m.mBasicInterpolation;
|
||||
f32 var_f31 = mpHIO->mBasic.m.mBasicInterpolation;
|
||||
if (!checkGrabAnime()) {
|
||||
setGrabUpperAnime(-1.0f);
|
||||
} else {
|
||||
@@ -1021,14 +1021,14 @@ int daAlink_c::procGrabWaitInit() {
|
||||
|
||||
if (var_r30) {
|
||||
if (checkZoraWearAbility() ) {
|
||||
var_f31 *= 1.0f / daAlinkHIO_magneBoots_c0::m.mZoraWaterAnmSpeed;
|
||||
var_f31 *= 1.0f / mpHIO->mItem.mIronBoots.m.mZoraWaterAnmSpeed;
|
||||
} else {
|
||||
var_f31 *= 1.0f / daAlinkHIO_magneBoots_c0::m.mWaterWalkAnmRate;
|
||||
var_f31 *= 1.0f / mpHIO->mItem.mIronBoots.m.mWaterWalkAnmRate;
|
||||
}
|
||||
}
|
||||
|
||||
if (checkAttentionLock() && (checkGrabAnimeUp() || checkGrabAnimeSide())) {
|
||||
setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mBasicInterpolation);
|
||||
setBlendAtnMoveAnime(mpHIO->mBasic.m.mBasicInterpolation);
|
||||
} else {
|
||||
setBlendMoveAnime(var_f31);
|
||||
}
|
||||
@@ -1066,7 +1066,7 @@ int daAlink_c::procGrabWait() {
|
||||
|
||||
int daAlink_c::procGrabReboundInit(int param_0) {
|
||||
commonProcInit(PROC_GRAB_REBOUND);
|
||||
setSingleAnimeParam(ANM_PICK_UP_LARGE, &daAlinkHIO_grab_c0::m.mCarryAnm);
|
||||
setSingleAnimeParam(ANM_PICK_UP_LARGE, &mpHIO->mGrab.m.mCarryAnm);
|
||||
|
||||
mNormalSpeed = 0.0f;
|
||||
field_0x3198 = param_0;
|
||||
@@ -1089,10 +1089,10 @@ int daAlink_c::procGrabRebound() {
|
||||
|
||||
if (field_0x3198 != 0) {
|
||||
if (field_0x2060->getOldFrameRate() < 0.1f) {
|
||||
setWaterInAnmRate(temp_r30, daAlinkHIO_grab_c0::m.mCarryAnm.mSpeed);
|
||||
setWaterInAnmRate(temp_r30, mpHIO->mGrab.m.mCarryAnm.mSpeed);
|
||||
field_0x3198 = 0;
|
||||
}
|
||||
} else if (checkAnmEnd(temp_r30) || (checkInputOnR() && (temp_r30->getFrame() > daAlinkHIO_grab_c0::m.mCarryAnm.mCancelFrame))) {
|
||||
} else if (checkAnmEnd(temp_r30) || (checkInputOnR() && (temp_r30->getFrame() > mpHIO->mGrab.m.mCarryAnm.mCancelFrame))) {
|
||||
initGrabNextMode();
|
||||
}
|
||||
|
||||
@@ -1103,14 +1103,14 @@ int daAlink_c::procGrabStandInit() {
|
||||
commonProcInit(PROC_GRAB_STAND);
|
||||
|
||||
if (checkUnderMove0BckNoArc(ANM_CARRY)) {
|
||||
setSingleAnime(ANM_CARRY, daAlinkHIO_grab_c0::m.mCarryLiftAnm.mSpeed, daAlinkHIO_grab_c0::m.mCarryLiftAnm.mStartFrame, (9.0f + daAlinkHIO_grab_c0::m.mCarryLiftAnm.mSpeed), 0.0f);
|
||||
field_0x3478 = daAlinkHIO_grab_c0::m.mCarryLiftAnm.mCancelFrame;
|
||||
field_0x347c = 1.0f / (9.0f - daAlinkHIO_grab_c0::m.mCarryLiftAnm.mStartFrame);
|
||||
setSingleAnime(ANM_CARRY, mpHIO->mGrab.m.mCarryLiftAnm.mSpeed, mpHIO->mGrab.m.mCarryLiftAnm.mStartFrame, (9.0f + mpHIO->mGrab.m.mCarryLiftAnm.mSpeed), 0.0f);
|
||||
field_0x3478 = mpHIO->mGrab.m.mCarryLiftAnm.mCancelFrame;
|
||||
field_0x347c = 1.0f / (9.0f - mpHIO->mGrab.m.mCarryLiftAnm.mStartFrame);
|
||||
mProcVar3.field_0x300e = 1;
|
||||
setCarryArmAngle(1.0f, 0.0f);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_GRAB_UP_START, &daAlinkHIO_grab_c0::m.mStandReverseAnm);
|
||||
field_0x3478 = daAlinkHIO_grab_c0::m.mStandReverseAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_GRAB_UP_START, &mpHIO->mGrab.m.mStandReverseAnm);
|
||||
field_0x3478 = mpHIO->mGrab.m.mStandReverseAnm.mCancelFrame;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
}
|
||||
|
||||
@@ -1130,7 +1130,7 @@ int daAlink_c::procGrabStand() {
|
||||
onModeFlg(4);
|
||||
|
||||
if (!checkNextAction(1) && mProcVar3.field_0x300e != 0) {
|
||||
setCarryArmAngle(field_0x347c * (mUnderFrameCtrl[0].getFrame() - daAlinkHIO_grab_c0::m.mCarryLiftAnm.mStartFrame), 0.0f);
|
||||
setCarryArmAngle(field_0x347c * (mUnderFrameCtrl[0].getFrame() - mpHIO->mGrab.m.mCarryLiftAnm.mStartFrame), 0.0f);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1161,10 +1161,10 @@ int daAlink_c::procInsectCatchInit() {
|
||||
mNormalSpeed = 0.0f;
|
||||
|
||||
if (field_0x27f4->attention_info.position.y > field_0x3834.y - 30.0f) {
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING, &daAlinkHIO_bottle_c0::m.mSwingSideAnm);
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING, &mpHIO->mItem.mBottle.m.mSwingSideAnm);
|
||||
field_0x3478 = 4.0f;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &daAlinkHIO_bottle_c0::m.mSwingDownAnm);
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &mpHIO->mItem.mBottle.m.mSwingDownAnm);
|
||||
field_0x3478 = 8.0f;
|
||||
}
|
||||
|
||||
@@ -1222,20 +1222,20 @@ int daAlink_c::procPickUpInit() {
|
||||
|
||||
int var_r29;
|
||||
if (temp_r3 == PROC_Obj_Kantera) {
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING, &daAlinkHIO_bottle_c0::m.mSwingSideAnm);
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING, &mpHIO->mItem.mBottle.m.mSwingSideAnm);
|
||||
mProcVar3.field_0x300e = 1;
|
||||
field_0x3478 = 7.0f;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
var_r29 = 0;
|
||||
} else if (temp_r3 == PROC_NPC_KS) {
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &daAlinkHIO_bottle_c0::m.mSwingDownAnm);
|
||||
setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &mpHIO->mItem.mBottle.m.mSwingDownAnm);
|
||||
mProcVar3.field_0x300e = 1;
|
||||
field_0x3478 = 7.0f;
|
||||
mProcVar4.field_0x3010 = 1;
|
||||
fopAcM_onSwitch(field_0x27f4, 0x3F);
|
||||
var_r29 = 0;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_PICK_UP, &daAlinkHIO_pickUp_c0::m.mGrabAnm);
|
||||
setSingleAnimeParam(ANM_PICK_UP, &mpHIO->mItem.mPickUp.m.mGrabAnm);
|
||||
mProcVar3.field_0x300e = 0;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
var_r29 = 1;
|
||||
@@ -1269,7 +1269,7 @@ int daAlink_c::procPickUp() {
|
||||
}
|
||||
} else if (checkAnmEnd(temp_r30)) {
|
||||
checkNextAction(0);
|
||||
} else if (temp_r30->getFrame() > daAlinkHIO_pickUp_c0::m.mGrabAnm.mCancelFrame) {
|
||||
} else if (temp_r30->getFrame() > mpHIO->mItem.mPickUp.m.mGrabAnm.mCancelFrame) {
|
||||
onModeFlg(4);
|
||||
checkNextAction(1);
|
||||
} else if (temp_r30->checkPass(9.0f)) {
|
||||
@@ -1290,7 +1290,7 @@ int daAlink_c::procPickPutInit(int param_0) {
|
||||
|
||||
commonProcInit(PROC_PICK_PUT);
|
||||
mNormalSpeed = 0.0f;
|
||||
setSingleAnimeParam(ANM_PICK_UP, &daAlinkHIO_pickUp_c0::m.mPlaceAnm);
|
||||
setSingleAnimeParam(ANM_PICK_UP, &mpHIO->mItem.mPickUp.m.mPlaceAnm);
|
||||
|
||||
if (mItemAcKeep.getActor() != NULL) {
|
||||
field_0x37c8 = mItemAcKeep.getActor()->current.pos;
|
||||
@@ -1326,7 +1326,7 @@ int daAlink_c::procPickPut() {
|
||||
|
||||
if (checkAnmEnd(temp_r28)) {
|
||||
checkNextAction(0);
|
||||
} else if (temp_r28->getFrame() < daAlinkHIO_pickUp_c0::m.mPlaceAnm.mCancelFrame) {
|
||||
} else if (temp_r28->getFrame() < mpHIO->mItem.mPickUp.m.mPlaceAnm.mCancelFrame) {
|
||||
onModeFlg(4);
|
||||
checkNextAction(1);
|
||||
} else if (temp_r28->checkPass(9.0f)) {
|
||||
@@ -1430,7 +1430,7 @@ int daAlink_c::procFmChainUpInit() {
|
||||
}
|
||||
|
||||
commonProcInit(PROC_CHAIN_UP);
|
||||
setSingleAnimeParam(ANM_CHAIN_PICK_UP, &daAlinkHIO_fmChain_c0::m.mGripAnm);
|
||||
setSingleAnimeParam(ANM_CHAIN_PICK_UP, &mpHIO->mItem.mFmChain.m.mGripAnm);
|
||||
mNormalSpeed = 0.0f;
|
||||
return 1;
|
||||
}
|
||||
@@ -1441,7 +1441,7 @@ int daAlink_c::procFmChainUp() {
|
||||
setGrabStatus(0x96, 2);
|
||||
setShapeAngleToAtnActor(0);
|
||||
|
||||
if (checkAnmEnd(temp_r29) || (checkInputOnR() && temp_r29->getFrame() > daAlinkHIO_fmChain_c0::m.mGripAnm.mCancelFrame)) {
|
||||
if (checkAnmEnd(temp_r29) || (checkInputOnR() && temp_r29->getFrame() > mpHIO->mItem.mFmChain.m.mGripAnm.mCancelFrame)) {
|
||||
u8 temp_r27 = field_0x2fa3;
|
||||
fopAc_ac_c* temp_r28 = field_0x2844.getActor();
|
||||
|
||||
@@ -1614,14 +1614,14 @@ f32 daAlink_c::getPushPullAnimeSpeed() {
|
||||
getMoveBGActorName(mPolyInfo1, 0) == PROC_Obj_Bemos)
|
||||
{
|
||||
if (checkWolf()) {
|
||||
var_f31 = daAlinkHIO_wlPush_c0::m.mHeavyPushAnmSpeed;
|
||||
var_f31 = mpHIO->mWolf.mWlPush.m.mHeavyPushAnmSpeed;
|
||||
} else {
|
||||
var_f31 = daAlinkHIO_pushpull_c0::m.mPushASpeedHeavy;
|
||||
var_f31 = mpHIO->mPushpull.m.mPushASpeedHeavy;
|
||||
}
|
||||
} else if (checkWolf()) {
|
||||
var_f31 = daAlinkHIO_wlPush_c0::m.mPushAnmSpeed;
|
||||
var_f31 = mpHIO->mWolf.mWlPush.m.mPushAnmSpeed;
|
||||
} else {
|
||||
var_f31 = daAlinkHIO_pushpull_c0::m.mPushASpeed;
|
||||
var_f31 = mpHIO->mPushpull.m.mPushASpeed;
|
||||
}
|
||||
|
||||
return var_f31;
|
||||
@@ -1639,14 +1639,14 @@ int daAlink_c::procCoPushPullWaitInit(int param_0) {
|
||||
|
||||
f32 var_f31;
|
||||
if (checkWolf()) {
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT_PP, daAlinkHIO_wlPush_c0::m.mIdleAnmSpeed, daAlinkHIO_wlPush_c0::m.mIdleInterp);
|
||||
setSingleAnimeWolfBaseSpeed(WANM_WAIT_PP, mpHIO->mWolf.mWlPush.m.mIdleAnmSpeed, mpHIO->mWolf.mWlPush.m.mIdleInterp);
|
||||
var_f31 = 50.0f;
|
||||
} else {
|
||||
if (checkEquipAnime()) {
|
||||
resetUpperAnime(UPPER_2, -1.0f);
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT_PUSH_PULL, daAlinkHIO_pushpull_c0::m.mStandbyASpeed, daAlinkHIO_pushpull_c0::m.mStandbyInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT_PUSH_PULL, mpHIO->mPushpull.m.mStandbyASpeed, mpHIO->mPushpull.m.mStandbyInterpolation);
|
||||
var_f31 = 50.0f;
|
||||
}
|
||||
|
||||
@@ -1717,7 +1717,7 @@ int daAlink_c::procCoPushMoveInit(int param_0, int param_1) {
|
||||
setSingleAnimeWolfBase(WANM_PUSH_START);
|
||||
var_f31 = 1.0f;
|
||||
} else {
|
||||
setSingleAnimeWolf(WANM_PUSH_LIGHT, var_f31, 0.0f, 24, daAlinkHIO_wlPush_c0::m.mPushInterp);
|
||||
setSingleAnimeWolf(WANM_PUSH_LIGHT, var_f31, 0.0f, 24, mpHIO->mWolf.mWlPush.m.mPushInterp);
|
||||
}
|
||||
|
||||
field_0x3478 = 17.0f;
|
||||
@@ -1726,7 +1726,7 @@ int daAlink_c::procCoPushMoveInit(int param_0, int param_1) {
|
||||
setSingleAnimeBase(ANM_PUSH_START);
|
||||
var_f31 = 1.0f;
|
||||
} else {
|
||||
setSingleAnimeBaseSpeed(ANM_PUSH_LIGHT, var_f31, daAlinkHIO_pushpull_c0::m.mPushInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_PUSH_LIGHT, var_f31, mpHIO->mPushpull.m.mPushInterpolation);
|
||||
}
|
||||
|
||||
field_0x3478 = 15.0f;
|
||||
@@ -1853,7 +1853,7 @@ int daAlink_c::procPullMoveInit(int param_0) {
|
||||
setSingleAnimeBase(ANM_PULL_START);
|
||||
} else {
|
||||
var_f31 = getPushPullAnimeSpeed();
|
||||
setSingleAnimeBaseSpeed(ANM_PULL_LIGHT, var_f31, daAlinkHIO_pushpull_c0::m.mPullInterpolation);
|
||||
setSingleAnimeBaseSpeed(ANM_PULL_LIGHT, var_f31, mpHIO->mPushpull.m.mPullInterpolation);
|
||||
}
|
||||
|
||||
mUnderFrameCtrl[0].setRate(var_f31);
|
||||
@@ -2000,7 +2000,7 @@ int daAlink_c::procGoatMoveInit() {
|
||||
field_0x37c8 = current.pos;
|
||||
field_0x2f98 = 3;
|
||||
current.angle.y = shape_angle.y + -0x4000;
|
||||
field_0x594 = daAlinkHIO_atnMove_c0::m.mMaxSpeed;
|
||||
field_0x594 = mpHIO->mAtnMove.m.mMaxSpeed;
|
||||
|
||||
setSingleAnimeBase(ANM_ATN_COW);
|
||||
mProcVar2.field_0x300c = 0;
|
||||
@@ -2085,7 +2085,7 @@ int daAlink_c::procGoatMove() {
|
||||
}
|
||||
|
||||
if (field_0x33a8 > (0.3f * (1.0f - fabsf(mNormalSpeed / field_0x594)))) {
|
||||
var_f31 = daAlinkHIO_atnMove_c0::m.mAcceleration * field_0x33a8;
|
||||
var_f31 = mpHIO->mAtnMove.m.mAcceleration * field_0x33a8;
|
||||
} else {
|
||||
var_f31 = 0.0f;
|
||||
}
|
||||
@@ -2093,7 +2093,7 @@ int daAlink_c::procGoatMove() {
|
||||
var_f31 = 0.0f;
|
||||
}
|
||||
|
||||
setNormalSpeedF(var_f31, daAlinkHIO_atnMove_c0::m.mDeceleration);
|
||||
setNormalSpeedF(var_f31, mpHIO->mAtnMove.m.mDeceleration);
|
||||
|
||||
if (checkZeroSpeedF()) {
|
||||
onModeFlg(1);
|
||||
@@ -2272,7 +2272,7 @@ int daAlink_c::procGoatCatch() {
|
||||
|
||||
if (temp_r27 == PROC_OBJ_GRA) {
|
||||
field_0x2f99 = 0x30;
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT_B, daAlinkHIO_move_c0::m.mWaitAnmSpeed, 3.0f);
|
||||
setSingleAnimeBaseSpeed(ANM_WAIT_B, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f);
|
||||
offModeFlg(0x8000);
|
||||
mProcVar1.field_0x300a = 0x1E;
|
||||
return 1;
|
||||
@@ -2457,7 +2457,7 @@ int daAlink_c::procGoronMoveInit() {
|
||||
mNormalSpeed = 0.0f;
|
||||
field_0x2f98 = 3;
|
||||
current.angle.y = shape_angle.y + -0x4000;
|
||||
field_0x594 = daAlinkHIO_atnMove_c0::m.mMaxSpeed;
|
||||
field_0x594 = mpHIO->mAtnMove.m.mMaxSpeed;
|
||||
setSingleAnimeBase(ANM_ATN_RIGHT);
|
||||
mProcVar2.field_0x300c = 1;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
@@ -2518,7 +2518,7 @@ int daAlink_c::procGoronMove() {
|
||||
}
|
||||
|
||||
if (field_0x33a8 > (0.3f * (1.0f - fabsf(mNormalSpeed / field_0x594)))) {
|
||||
var_f31 = daAlinkHIO_atnMove_c0::m.mAcceleration * field_0x33a8;
|
||||
var_f31 = mpHIO->mAtnMove.m.mAcceleration * field_0x33a8;
|
||||
} else {
|
||||
var_f31 = 0.0f;
|
||||
}
|
||||
@@ -2526,7 +2526,7 @@ int daAlink_c::procGoronMove() {
|
||||
var_f31 = 0.0f;
|
||||
}
|
||||
|
||||
setNormalSpeedF(var_f31, daAlinkHIO_atnMove_c0::m.mDeceleration);
|
||||
setNormalSpeedF(var_f31, mpHIO->mAtnMove.m.mDeceleration);
|
||||
|
||||
if (checkZeroSpeedF()) {
|
||||
onModeFlg(1);
|
||||
|
||||
@@ -44,10 +44,10 @@ void daAlink_c::stickArrowIncrement(int param_0) {
|
||||
s16 arrow_num = 0;
|
||||
|
||||
for (int i = 0; i < 16; i++) {
|
||||
if (mShieldArrowIDs[i] != -1) {
|
||||
if (mShieldArrowIDs[i] != fpcM_ERROR_PROCESS_ID_e) {
|
||||
if (field_0x2f7c[i] == 0 || param_0) {
|
||||
arrow_num++;
|
||||
mShieldArrowIDs[i] = -1;
|
||||
mShieldArrowIDs[i] = fpcM_ERROR_PROCESS_ID_e;
|
||||
field_0x2f7c[i] = 0;
|
||||
} else {
|
||||
field_0x2f7c[i]--;
|
||||
@@ -75,7 +75,7 @@ void daAlink_c::setArrowShieldActor(fopAc_ac_c* i_actor, int param_1) {
|
||||
|
||||
int arrow_num = 0;
|
||||
for (; arrow_num < 16; arrow_num++) {
|
||||
if (mShieldArrowIDs[arrow_num] == -1) {
|
||||
if (mShieldArrowIDs[arrow_num] == fpcM_ERROR_PROCESS_ID_e) {
|
||||
mShieldArrowIDs[arrow_num] = new_arrow_id;
|
||||
field_0x2f7c[arrow_num] = 10;
|
||||
break;
|
||||
@@ -220,14 +220,13 @@ void daAlink_c::setSmallGuard(dCcD_GObjInf* i_objinf) {
|
||||
mBodyAngle.y = 0;
|
||||
} else {
|
||||
mBodyAngle.y =
|
||||
cLib_minMaxLimit<s16>((s16)mBodyAngle.y, -daAlinkHIO_guard_c0::m.mSmallGuardLRAngleMax,
|
||||
daAlinkHIO_guard_c0::m.mSmallGuardLRAngleMax);
|
||||
cLib_minMaxLimit<s16>((s16)mBodyAngle.y, -mpHIO->mGuard.m.mSmallGuardLRAngleMax,
|
||||
mpHIO->mGuard.m.mSmallGuardLRAngleMax);
|
||||
}
|
||||
|
||||
mBodyAngle.x = cLib_minMaxLimit<s16>(cM_atan2s(dmg_vec->y, dmg_vec->absXZ()), -daAlinkHIO_guard_c0::m.mSmallGuardFBAngleMax, daAlinkHIO_guard_c0::m.mSmallGuardFBAngleMax);
|
||||
mBodyAngle.x = cLib_minMaxLimit<s16>(cM_atan2s(dmg_vec->y, dmg_vec->absXZ()), -mpHIO->mGuard.m.mSmallGuardFBAngleMax, mpHIO->mGuard.m.mSmallGuardFBAngleMax);
|
||||
}
|
||||
|
||||
// NONMATCHING - extra useless mr
|
||||
int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) {
|
||||
if (mProcID == PROC_GUARD_SLIP) {
|
||||
return 0;
|
||||
@@ -254,7 +253,7 @@ int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) {
|
||||
mProcVar2.field_0x300c = 0;
|
||||
mProcVar3.field_0x300e = 0;
|
||||
} else {
|
||||
const daAlinkHIO_anm_c* var_r27 = &daAlinkHIO_guard_c0::m.mGuardHitAnm;
|
||||
const daAlinkHIO_anm_c* var_r27 = &mpHIO->mGuard.m.mGuardHitAnm;
|
||||
daAlink_ANM var_r28;
|
||||
if (field_0x2f98 == 2) {
|
||||
var_r28 = ANM_GUARD_LEFT;
|
||||
@@ -269,11 +268,11 @@ int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) {
|
||||
if (abs(mProcVar2.field_0x300c) > 0x7000) {
|
||||
mProcVar2.field_0x300c = 0;
|
||||
} else {
|
||||
mProcVar2.field_0x300c = cLib_minMaxLimit<s16>((s16)mProcVar2.field_0x300c, -daAlinkHIO_guard_c0::m.mGuardLRAngleMax, daAlinkHIO_guard_c0::m.mGuardLRAngleMax);
|
||||
mProcVar2.field_0x300c = cLib_minMaxLimit<s16>((s16)mProcVar2.field_0x300c, -mpHIO->mGuard.m.mGuardLRAngleMax, mpHIO->mGuard.m.mGuardLRAngleMax);
|
||||
}
|
||||
|
||||
mProcVar3.field_0x300e = cLib_minMaxLimit<s16>(cM_atan2s(temp_r3->y, temp_r3->absXZ()), -daAlinkHIO_guard_c0::m.mGuardFBAngleMax, daAlinkHIO_guard_c0::m.mGuardFBAngleMax);
|
||||
mProcVar1.field_0x300a = daAlinkHIO_guard_c0::m.mGuardBodyInterpolation + 1;
|
||||
mProcVar3.field_0x300e = cLib_minMaxLimit<s16>(cM_atan2s(temp_r3->y, temp_r3->absXZ()), -mpHIO->mGuard.m.mGuardFBAngleMax, mpHIO->mGuard.m.mGuardFBAngleMax);
|
||||
mProcVar1.field_0x300a = mpHIO->mGuard.m.mGuardBodyInterpolation + 1;
|
||||
mProcVar2.field_0x300c = (mProcVar2.field_0x300c - mBodyAngle.y) / mProcVar1.field_0x300a;
|
||||
mProcVar3.field_0x300e = (mProcVar3.field_0x300e - mBodyAngle.x) / mProcVar1.field_0x300a;
|
||||
mProcVar1.field_0x300a--;
|
||||
@@ -287,10 +286,10 @@ int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) {
|
||||
|
||||
if (param_1 != NULL && param_1->GetTgHitAc() != NULL && fopAcM_GetName(param_1->GetTgHitAc()) == PROC_E_MM_MT && param_1->GetTgHitAc()->argument == 1) {
|
||||
if (checkBootsOrArmorHeavy()) {
|
||||
mNormalSpeed = daAlinkHIO_guard_c0::m.mMagneHvyGuardSpeed;
|
||||
mNormalSpeed = mpHIO->mGuard.m.mMagneHvyGuardSpeed;
|
||||
mProcVar5.field_0x3012 = 1;
|
||||
} else {
|
||||
mNormalSpeed = daAlinkHIO_guard_c0::m.mMagneGuardSpeed;
|
||||
mNormalSpeed = mpHIO->mGuard.m.mMagneGuardSpeed;
|
||||
mProcVar5.field_0x3012 = 0;
|
||||
}
|
||||
|
||||
@@ -299,12 +298,12 @@ int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) {
|
||||
if ((!checkBootsOrArmorHeavy() && checkMiddleBossGoronRoom()) || checkStageName("D_MN07B")) {
|
||||
mNormalSpeed = 40.0f;
|
||||
} else {
|
||||
mNormalSpeed = daAlinkHIO_guard_c0::m.mGuardSpeedHuge;
|
||||
mNormalSpeed = mpHIO->mGuard.m.mGuardSpeedHuge;
|
||||
}
|
||||
} else if (checkLargeAttack(param_0)) {
|
||||
mNormalSpeed = daAlinkHIO_guard_c0::m.mGuardSpeedLarge;
|
||||
mNormalSpeed = mpHIO->mGuard.m.mGuardSpeedLarge;
|
||||
} else {
|
||||
mNormalSpeed = daAlinkHIO_guard_c0::m.mGuardSpeedNormal;
|
||||
mNormalSpeed = mpHIO->mGuard.m.mGuardSpeedNormal;
|
||||
}
|
||||
|
||||
field_0x2f9d = 0x60;
|
||||
@@ -363,7 +362,7 @@ int daAlink_c::procGuardAttackInit() {
|
||||
}
|
||||
|
||||
commonProcInit(PROC_GUARD_ATTACK);
|
||||
const daAlinkHIO_guardAttack_c1* temp_r30 = &daAlinkHIO_gAtPush_c0::m;
|
||||
const daAlinkHIO_guardAttack_c1* temp_r30 = &mpHIO->mGuard.mAtPush.m;
|
||||
|
||||
field_0x2f98 = 3;
|
||||
field_0x34d4 = l_rWaitBaseAnime;
|
||||
@@ -393,7 +392,7 @@ int daAlink_c::procGuardAttackInit() {
|
||||
|
||||
mGuardAtCps.ResetAtHit();
|
||||
mGuardAtCps.SetAtSe(2);
|
||||
mGuardAtCps.SetR(daAlinkHIO_guard_c0::m.mAttackRadius);
|
||||
mGuardAtCps.SetR(mpHIO->mGuard.m.mAttackRadius);
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
@@ -410,7 +409,7 @@ int daAlink_c::procGuardAttack() {
|
||||
|
||||
setUpperGuardAnime(-1.0f);
|
||||
field_0x2f99 = 4;
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, daAlinkHIO_move_c0::m.mDeceleration);
|
||||
cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mMove.m.mDeceleration);
|
||||
setShapeAngleToAtnActor(1);
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
@@ -481,7 +480,7 @@ int daAlink_c::procGuardAttack() {
|
||||
|
||||
int daAlink_c::procGuardBreakInit() {
|
||||
commonProcInit(PROC_GUARD_BREAK);
|
||||
setSingleAnimeParam(ANM_GUARD_BREAK, &daAlinkHIO_guard_c0::m.mGuardBreakAnm);
|
||||
setSingleAnimeParam(ANM_GUARD_BREAK, &mpHIO->mGuard.m.mGuardBreakAnm);
|
||||
|
||||
if (mEquipItem == fpcNm_ITEM_IRONBALL) {
|
||||
deleteEquipItem(0, 0);
|
||||
@@ -506,7 +505,7 @@ int daAlink_c::procGuardBreak() {
|
||||
onEndResetFlg1(ERFLG1_UNK_20);
|
||||
}
|
||||
checkNextAction(0);
|
||||
} else if (temp_r30->getFrame() > daAlinkHIO_guard_c0::m.mGuardBreakAnm.mCancelFrame) {
|
||||
} else if (temp_r30->getFrame() > mpHIO->mGuard.m.mGuardBreakAnm.mCancelFrame) {
|
||||
if (!checkGuardActionChange()) {
|
||||
onEndResetFlg1(ERFLG1_UNK_20);
|
||||
}
|
||||
@@ -540,14 +539,14 @@ int daAlink_c::procTurnMoveInit(int param_0) {
|
||||
var_r29 = ANM_SIDE_ROLL_LEFT;
|
||||
}
|
||||
|
||||
f32 temp_f31 = daAlinkHIO_turnMove_c0::m.mTurnAnm.mSpeed;
|
||||
mProcVar1.field_0x300a = daAlinkHIO_turnMove_c0::m.mMaxTurnSpeed;
|
||||
f32 temp_f31 = mpHIO->mGuard.mTurnMove.m.mTurnAnm.mSpeed;
|
||||
mProcVar1.field_0x300a = mpHIO->mGuard.mTurnMove.m.mMaxTurnSpeed;
|
||||
|
||||
if (checkNoResetFlg0(FLG0_UNDERWATER)) {
|
||||
mProcVar1.field_0x300a = mProcVar1.field_0x300a * daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
|
||||
mProcVar1.field_0x300a = mProcVar1.field_0x300a * mpHIO->mItem.mIronBoots.m.mWaterVelocityX;
|
||||
}
|
||||
|
||||
setSingleAnime(var_r29, temp_f31, daAlinkHIO_turnMove_c0::m.mTurnAnm.mStartFrame, daAlinkHIO_turnMove_c0::m.mTurnAnm.mEndFrame, daAlinkHIO_turnMove_c0::m.mTurnAnm.mInterpolation);
|
||||
setSingleAnime(var_r29, temp_f31, mpHIO->mGuard.mTurnMove.m.mTurnAnm.mStartFrame, mpHIO->mGuard.mTurnMove.m.mTurnAnm.mEndFrame, mpHIO->mGuard.mTurnMove.m.mTurnAnm.mInterpolation);
|
||||
|
||||
if (var_r29 == ANM_SIDE_ROLL_LEFT) {
|
||||
mProcVar2.field_0x300c = -0x7FF0;
|
||||
@@ -591,7 +590,7 @@ int daAlink_c::procTurnMove() {
|
||||
onEndResetFlg0(ERFLG0_UNK_8000000);
|
||||
s16 temp_r28 = mProcVar2.field_0x300c;
|
||||
|
||||
cLib_addCalcAngleS(&mProcVar2.field_0x300c, 0, daAlinkHIO_turnMove_c0::m.mTurnSpeedRate, mProcVar1.field_0x300a, daAlinkHIO_turnMove_c0::m.mMinTurnSpeed);
|
||||
cLib_addCalcAngleS(&mProcVar2.field_0x300c, 0, mpHIO->mGuard.mTurnMove.m.mTurnSpeedRate, mProcVar1.field_0x300a, mpHIO->mGuard.mTurnMove.m.mMinTurnSpeed);
|
||||
|
||||
s16 temp_r29 = temp_r28 - mProcVar2.field_0x300c;
|
||||
if (temp_r28 > 0) {
|
||||
@@ -623,11 +622,11 @@ int daAlink_c::procTurnMove() {
|
||||
offNoResetFlg2(FLG2_UNK_8000000);
|
||||
}
|
||||
checkNextAction(0);
|
||||
} else if (mProcVar0.field_0x3008 != 0 && !checkNotJumpSinkLimit() && temp_r30->getFrame() > daAlinkHIO_turnMove_c0::m.mTwirlCutDelayF) {
|
||||
} else if (mProcVar0.field_0x3008 != 0 && !checkNotJumpSinkLimit() && temp_r30->getFrame() > mpHIO->mGuard.mTurnMove.m.mTwirlCutDelayF) {
|
||||
procCutFinishJumpUpInit();
|
||||
dComIfGp_setPlayerStatus0(0, 4);
|
||||
} else {
|
||||
if (temp_r30->getFrame() > daAlinkHIO_turnMove_c0::m.mTurnAnm.mCancelFrame) {
|
||||
if (temp_r30->getFrame() > mpHIO->mGuard.mTurnMove.m.mTurnAnm.mCancelFrame) {
|
||||
onModeFlg(4);
|
||||
|
||||
if (checkNextAction(1)) {
|
||||
|
||||
+100
-100
@@ -13,8 +13,8 @@
|
||||
#include "d/actor/d_a_obj_swhang.h"
|
||||
|
||||
f32 daAlink_c::getHangMoveAnmSpeed() {
|
||||
return getAnmSpeedStickRate(daAlinkHIO_wallMove_c0::m.mMinAnmSpeed,
|
||||
daAlinkHIO_wallMove_c0::m.mMaxAnmSpeed);
|
||||
return getAnmSpeedStickRate(mpHIO->mWallHang.mWallMove.m.mMinAnmSpeed,
|
||||
mpHIO->mWallHang.mWallMove.m.mMaxAnmSpeed);
|
||||
}
|
||||
|
||||
int daAlink_c::getHangDirectionFromAngle() {
|
||||
@@ -189,7 +189,7 @@ void daAlink_c::setHangGroundY() {
|
||||
int daAlink_c::changeHangEndProc() {
|
||||
setHangGroundY();
|
||||
|
||||
if (current.pos.y < field_0x33d8 + daAlinkHIO_wallHang_c0::m.hang_foot_pos_height - 1.0f &&
|
||||
if (current.pos.y < field_0x33d8 + mpHIO->mWallHang.m.hang_foot_pos_height - 1.0f &&
|
||||
(mProcID != PROC_HANG_FALL_START || !(mUnderFrameCtrl->getFrame() < 3.0f)) &&
|
||||
field_0x33d8 < current.pos.y - 5.0f)
|
||||
{
|
||||
@@ -200,7 +200,7 @@ int daAlink_c::changeHangEndProc() {
|
||||
|
||||
if (doTrigger()) {
|
||||
speed.y = 0.0f;
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -280,20 +280,20 @@ int daAlink_c::procHangStartInit() {
|
||||
|
||||
if (checkHangFootWall()) {
|
||||
if (!hang_ready && cM_rnd() < 0.7f) {
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &daAlinkHIO_ladder_c0::m.mWallAttachMissAnm);
|
||||
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachMissAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &mpHIO->mLadder.m.mWallAttachMissAnm);
|
||||
field_0x3478 = mpHIO->mLadder.m.mWallAttachMissAnm.mCancelFrame;
|
||||
voiceStart(Z2SE_AL_V_FOOT_MISS);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG, &daAlinkHIO_ladder_c0::m.mWallAttachAnm);
|
||||
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG, &mpHIO->mLadder.m.mWallAttachAnm);
|
||||
field_0x3478 = mpHIO->mLadder.m.mWallAttachAnm.mCancelFrame;
|
||||
voiceStart(Z2SE_AL_V_JUMP_HANG);
|
||||
}
|
||||
|
||||
field_0x2f92 = 0xFE;
|
||||
field_0x2f93 = 0xFE;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_HANG_READY, &daAlinkHIO_wallCatch_c0::m.mGrabAAnm);
|
||||
field_0x3478 = daAlinkHIO_wallCatch_c0::m.mGrabAAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_HANG_READY, &mpHIO->mWallHang.mWallCatch.m.mGrabAAnm);
|
||||
field_0x3478 = mpHIO->mWallHang.mWallCatch.m.mGrabAAnm.mCancelFrame;
|
||||
voiceStart(Z2SE_AL_V_JUMP_HANG);
|
||||
}
|
||||
|
||||
@@ -322,7 +322,7 @@ int daAlink_c::procHangStart() {
|
||||
} else if (frame_ctrl->getFrame() > field_0x3478 && checkInputOnR() &&
|
||||
getDirectionFromShapeAngle() == DIR_FORWARD)
|
||||
{
|
||||
procHangClimbInit(daAlinkHIO_wallCatch_c0::m.mClimbAnm.mStartFrame);
|
||||
procHangClimbInit(mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mStartFrame);
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -379,14 +379,14 @@ int daAlink_c::procHangFallStartInit(cM3dGPla* param_0) {
|
||||
if (mProcID == PROC_FRONT_ROLL) {
|
||||
morf = 0.0f;
|
||||
} else {
|
||||
morf = daAlinkHIO_wallFall_c0::m.mOneHandGrabAnm.mInterpolation;
|
||||
morf = mpHIO->mWallHang.mWallFall.m.mOneHandGrabAnm.mInterpolation;
|
||||
}
|
||||
|
||||
commonProcInit(PROC_HANG_FALL_START);
|
||||
offNoResetFlg2(FLG2_UNK_2000);
|
||||
setSingleAnime(ANM_HANG_ONE_HAND, daAlinkHIO_wallFall_c0::m.mOneHandGrabAnm.mSpeed,
|
||||
daAlinkHIO_wallFall_c0::m.mOneHandGrabAnm.mStartFrame,
|
||||
daAlinkHIO_wallFall_c0::m.mOneHandGrabAnm.mEndFrame, morf);
|
||||
setSingleAnime(ANM_HANG_ONE_HAND, mpHIO->mWallHang.mWallFall.m.mOneHandGrabAnm.mSpeed,
|
||||
mpHIO->mWallHang.mWallFall.m.mOneHandGrabAnm.mStartFrame,
|
||||
mpHIO->mWallHang.mWallFall.m.mOneHandGrabAnm.mEndFrame, morf);
|
||||
|
||||
mNormalSpeed = 0.0f;
|
||||
speed.y = 0.0f;
|
||||
@@ -403,7 +403,7 @@ int daAlink_c::procHangFallStart() {
|
||||
|
||||
BOOL bvar;
|
||||
if (checkAnmEnd(frame_ctrl) ||
|
||||
frame_ctrl->getFrame() > daAlinkHIO_wallFall_c0::m.mOneHandGrabAnm.mCancelFrame)
|
||||
frame_ctrl->getFrame() > mpHIO->mWallHang.mWallFall.m.mOneHandGrabAnm.mCancelFrame)
|
||||
{
|
||||
bvar = true;
|
||||
} else {
|
||||
@@ -431,7 +431,7 @@ int daAlink_c::procHangFallStart() {
|
||||
|
||||
int daAlink_c::procHangUpInit(int param_0) {
|
||||
commonProcInit(PROC_HANG_UP);
|
||||
setSingleAnimeParam(ANM_HANG_ONE_HAND_MOVE, &daAlinkHIO_wallFall_c0::m.mTwoHandGrabAnm);
|
||||
setSingleAnimeParam(ANM_HANG_ONE_HAND_MOVE, &mpHIO->mWallHang.mWallFall.m.mTwoHandGrabAnm);
|
||||
dComIfGp_setPlayerStatus0(0, 0x100);
|
||||
setBowHangAnime();
|
||||
field_0x3198 = param_0;
|
||||
@@ -451,10 +451,10 @@ int daAlink_c::procHangUp() {
|
||||
}
|
||||
return 1;
|
||||
} else if (checkAnmEnd(frame_ctrl) ||
|
||||
frame_ctrl->getFrame() > daAlinkHIO_wallFall_c0::m.mTwoHandGrabAnm.mCancelFrame)
|
||||
frame_ctrl->getFrame() > mpHIO->mWallHang.mWallFall.m.mTwoHandGrabAnm.mCancelFrame)
|
||||
{
|
||||
if (field_0x3198 == 0) {
|
||||
procHangClimbInit(daAlinkHIO_wallCatch_c0::m.mClimbAnm.mStartFrame);
|
||||
procHangClimbInit(mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mStartFrame);
|
||||
} else if (changeHangMoveProc(field_0x3198)) {
|
||||
procHangMoveInit(field_0x3198);
|
||||
} else {
|
||||
@@ -470,13 +470,13 @@ int daAlink_c::procHangWaitInit() {
|
||||
commonProcInit(PROC_HANG_WAIT);
|
||||
|
||||
if (checkNoResetFlg2(FLG2_UNK_2000) && checkHangFootWall()) {
|
||||
setSingleAnime(ANM_CLIMB_HANG, 0.0f, daAlinkHIO_ladder_c0::m.mWallAttachAnm.mEndFrame,
|
||||
daAlinkHIO_ladder_c0::m.mWallAttachAnm.mEndFrame, 5.0f);
|
||||
setSingleAnime(ANM_CLIMB_HANG, 0.0f, mpHIO->mLadder.m.mWallAttachAnm.mEndFrame,
|
||||
mpHIO->mLadder.m.mWallAttachAnm.mEndFrame, 5.0f);
|
||||
field_0x2f92 = 0xFE;
|
||||
field_0x2f93 = 0xFE;
|
||||
} else {
|
||||
setSingleAnime(ANM_HANG_READY, 0.0f, daAlinkHIO_wallCatch_c0::m.mGrabAAnm.mEndFrame,
|
||||
daAlinkHIO_wallCatch_c0::m.mGrabAAnm.mEndFrame, 5.0f);
|
||||
setSingleAnime(ANM_HANG_READY, 0.0f, mpHIO->mWallHang.mWallCatch.m.mGrabAAnm.mEndFrame,
|
||||
mpHIO->mWallHang.mWallCatch.m.mGrabAAnm.mEndFrame, 5.0f);
|
||||
}
|
||||
|
||||
setBowHangAnime();
|
||||
@@ -497,14 +497,14 @@ int daAlink_c::procHangWait() {
|
||||
setClimbShapeOffset();
|
||||
|
||||
if (checkNoResetFlg2(FLG2_UNK_2000) && !checkHangFootWall()) {
|
||||
setSingleAnime(ANM_HANG_READY, 0.0f, daAlinkHIO_wallCatch_c0::m.mGrabAAnm.mEndFrame,
|
||||
daAlinkHIO_wallCatch_c0::m.mGrabAAnm.mEndFrame, 10.0f);
|
||||
setSingleAnime(ANM_HANG_READY, 0.0f, mpHIO->mWallHang.mWallCatch.m.mGrabAAnm.mEndFrame,
|
||||
mpHIO->mWallHang.mWallCatch.m.mGrabAAnm.mEndFrame, 10.0f);
|
||||
}
|
||||
|
||||
if (checkInputOnR()) {
|
||||
int direction = getHangDirectionFromAngle();
|
||||
if (direction == DIR_FORWARD) {
|
||||
return procHangClimbInit(daAlinkHIO_wallCatch_c0::m.mClimbAnm.mStartFrame);
|
||||
return procHangClimbInit(mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mStartFrame);
|
||||
}
|
||||
|
||||
if (direction != DIR_BACKWARD && changeHangMoveProc(direction)) {
|
||||
@@ -547,7 +547,7 @@ int daAlink_c::procHangMoveInit(int param_0) {
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(anm, getHangMoveAnmSpeed(),
|
||||
daAlinkHIO_wallMove_c0::m.mInterpolation);
|
||||
mpHIO->mWallHang.mWallMove.m.mInterpolation);
|
||||
}
|
||||
|
||||
if (param_0 == 2) {
|
||||
@@ -571,7 +571,7 @@ int daAlink_c::procHangMove() {
|
||||
|
||||
if (!changeHangEndProc()) {
|
||||
if (direction == DIR_FORWARD && checkInputOnR()) {
|
||||
procHangClimbInit(daAlinkHIO_wallCatch_c0::m.mClimbAnm.mStartFrame);
|
||||
procHangClimbInit(mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mStartFrame);
|
||||
} else {
|
||||
daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl;
|
||||
|
||||
@@ -680,9 +680,9 @@ int daAlink_c::procHangClimbInit(f32 param_0) {
|
||||
|
||||
BOOL wall_catch = mProcID == PROC_HANG_WALL_CATCH;
|
||||
commonProcInit(PROC_HANG_CLIMB);
|
||||
setSingleAnime(ANM_HANG_CLIMB_TOP, daAlinkHIO_wallCatch_c0::m.mClimbAnm.mSpeed, param_0,
|
||||
daAlinkHIO_wallCatch_c0::m.mClimbAnm.mEndFrame,
|
||||
daAlinkHIO_wallCatch_c0::m.mClimbAnm.mInterpolation);
|
||||
setSingleAnime(ANM_HANG_CLIMB_TOP, mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mSpeed, param_0,
|
||||
mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mEndFrame,
|
||||
mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mInterpolation);
|
||||
|
||||
if (checkBowItem(mEquipItem)) {
|
||||
field_0x33dc = mUnderFrameCtrl[0].getFrame();
|
||||
@@ -730,7 +730,7 @@ int daAlink_c::procHangClimb() {
|
||||
|
||||
if (checkAnmEnd(frameCtrl)) {
|
||||
checkNextAction(0);
|
||||
} else if (frameCtrl->getFrame() > daAlinkHIO_wallCatch_c0::m.mClimbAnm.mCancelFrame) {
|
||||
} else if (frameCtrl->getFrame() > mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mCancelFrame) {
|
||||
onModeFlg(4);
|
||||
checkNextAction(1);
|
||||
}
|
||||
@@ -760,7 +760,7 @@ int daAlink_c::procHangWallCatchInit() {
|
||||
}
|
||||
|
||||
commonProcInit(PROC_HANG_WALL_CATCH);
|
||||
setSingleAnimeParam(ANM_CLIMB_TOP_SMALL, &daAlinkHIO_wallCatch_c0::m.mGrabBAnm);
|
||||
setSingleAnimeParam(ANM_CLIMB_TOP_SMALL, &mpHIO->mWallHang.mWallCatch.m.mGrabBAnm);
|
||||
setBowHangAnime();
|
||||
current.pos.x = sp38.x;
|
||||
current.pos.y = sp38.y;
|
||||
@@ -785,9 +785,9 @@ int daAlink_c::procHangWallCatch() {
|
||||
}
|
||||
|
||||
if (checkAnmEnd(mUnderFrameCtrl) &&
|
||||
!procHangClimbInit(daAlinkHIO_wallCatch_c0::m.mClimbStartFrame))
|
||||
!procHangClimbInit(mpHIO->mWallHang.mWallCatch.m.mClimbStartFrame))
|
||||
{
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -805,7 +805,7 @@ int daAlink_c::procHangReadyInit() {
|
||||
}
|
||||
|
||||
commonProcInit(PROC_HANG_READY);
|
||||
setSingleAnimeParam(ANM_CLIMB_JUMP, &daAlinkHIO_wallCatch_c0::m.mJumpAnm);
|
||||
setSingleAnimeParam(ANM_CLIMB_JUMP, &mpHIO->mWallHang.mWallCatch.m.mJumpAnm);
|
||||
mProcVar2.field_0x300c = field_0x306e + 0x8000;
|
||||
field_0x3198 = field_0x2f91;
|
||||
|
||||
@@ -847,7 +847,7 @@ int daAlink_c::procHangLeverDownInit() {
|
||||
|
||||
commonProcInit(PROC_HANG_LEVER_DOWN);
|
||||
field_0x280c.setData(field_0x27f4);
|
||||
setSingleAnimeParam(ANM_CLIMB_JUMP, &daAlinkHIO_wallCatch_c0::m.mJumpAnm);
|
||||
setSingleAnimeParam(ANM_CLIMB_JUMP, &mpHIO->mWallHang.mWallCatch.m.mJumpAnm);
|
||||
mProcVar2.field_0x300c = field_0x27f4->shape_angle.y + 0x8000;
|
||||
field_0x3198 = ANM_CLIMB_JUMP;
|
||||
|
||||
@@ -875,7 +875,7 @@ int daAlink_c::procHangLeverDown() {
|
||||
offModeFlg(1);
|
||||
onModeFlg(0x6042);
|
||||
|
||||
setSingleAnimeParam(ANM_HANG_READY, &daAlinkHIO_wallCatch_c0::m.mGrabAAnm);
|
||||
setSingleAnimeParam(ANM_HANG_READY, &mpHIO->mWallHang.mWallCatch.m.mGrabAAnm);
|
||||
voiceStart(Z2SE_AL_V_JUMP_HANG);
|
||||
field_0x2f99 = 0x50;
|
||||
field_0x3198 = ANM_HANG_READY;
|
||||
@@ -1090,13 +1090,13 @@ int daAlink_c::procBossBodyHang() {
|
||||
mProcVar1.field_0x300a = 3;
|
||||
} else {
|
||||
if (field_0x32cc != 0) {
|
||||
setSingleAnimeParam(ANM_DRAGON_CUT, &daAlinkHIO_cut_c0::m.mStabAnm);
|
||||
setSingleAnimeParam(ANM_DRAGON_CUT, &mpHIO->mCut.m.mStabAnm);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_MORPHEEL_CUT, &daAlinkHIO_cut_c0::m.mStabAnm);
|
||||
setSingleAnimeParam(ANM_MORPHEEL_CUT, &mpHIO->mCut.m.mStabAnm);
|
||||
}
|
||||
|
||||
field_0x3198 = 0x16C;
|
||||
field_0x3478 = daAlinkHIO_cut_c0::m.mStabAnm.mCancelFrame;
|
||||
field_0x3478 = mpHIO->mCut.m.mStabAnm.mCancelFrame;
|
||||
field_0x347c = 10.0f;
|
||||
mProcVar4.field_0x3010 = 0;
|
||||
mProcVar1.field_0x300a = 1;
|
||||
@@ -1161,7 +1161,7 @@ int daAlink_c::setLadderInit() {
|
||||
if (checkModeFlg(0x40000)) {
|
||||
setLadderPos(getLadderUnitCount() - 2);
|
||||
|
||||
while (mWaterY - current.pos.y > daAlinkHIO_swim_c0::m.mStartHeight) {
|
||||
while (mWaterY - current.pos.y > mpHIO->mSwim.m.mStartHeight) {
|
||||
current.pos.y += 37.5f;
|
||||
}
|
||||
|
||||
@@ -1235,8 +1235,8 @@ void daAlink_c::setLadderPos(int param_0) {
|
||||
|
||||
|
||||
f32 daAlink_c::getLadderMoveAnmSpeed() {
|
||||
return getAnmSpeedStickRate(daAlinkHIO_ladder_c0::m.mMoveMinASpeed,
|
||||
daAlinkHIO_ladder_c0::m.mMoveMaxSpeed);
|
||||
return getAnmSpeedStickRate(mpHIO->mLadder.m.mMoveMinASpeed,
|
||||
mpHIO->mLadder.m.mMoveMaxSpeed);
|
||||
}
|
||||
|
||||
int daAlink_c::changeLadderMoveProc(int param_0) {
|
||||
@@ -1302,7 +1302,7 @@ int daAlink_c::setMoveBGLadderCorrect() {
|
||||
field_0x37c8.z + cM_scos(current.angle.y) * 50.0f);
|
||||
|
||||
if (!commonLineCheck(&field_0x37c8, &sp28) || dComIfG_Bgsp().GetWallCode(mLinkLinChk) != 4) {
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
mPolyInfo1.SetPolyInfo(mLinkLinChk);
|
||||
@@ -1315,7 +1315,7 @@ int daAlink_c::checkLadderFall() {
|
||||
|
||||
if (doTrigger()) {
|
||||
field_0x2f99 = 0;
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -1332,8 +1332,8 @@ int daAlink_c::procLadderUpStartInit() {
|
||||
mNormalSpeed = 0.0f;
|
||||
speedF = 0.0f;
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_LADDER_UP_START, daAlinkHIO_ladder_c0::m.mClimbUpStartASpeed,
|
||||
daAlinkHIO_ladder_c0::m.mClimbUpStartInterp);
|
||||
setSingleAnimeBaseSpeed(ANM_LADDER_UP_START, mpHIO->mLadder.m.mClimbUpStartASpeed,
|
||||
mpHIO->mLadder.m.mClimbUpStartInterp);
|
||||
field_0x2f99 = 0x10;
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
dComIfGp_setPlayerStatus0(0, 0x2000000);
|
||||
@@ -1376,8 +1376,8 @@ int daAlink_c::procLadderUpEndInit(int param_0) {
|
||||
commonProcInit(PROC_LADDER_UP_END);
|
||||
|
||||
daAlink_ANM anm_id = param_0 != 0 ? ANM_LADDER_UP_END_LEFT : ANM_LADDER_UP_END_RIGHT;
|
||||
setSingleAnimeBaseSpeed(anm_id, daAlinkHIO_ladder_c0::m.mClimbUpEndASpeed,
|
||||
daAlinkHIO_ladder_c0::m.mClimbUpEndInterp);
|
||||
setSingleAnimeBaseSpeed(anm_id, mpHIO->mLadder.m.mClimbUpEndASpeed,
|
||||
mpHIO->mLadder.m.mClimbUpEndInterp);
|
||||
field_0x2f99 = 14;
|
||||
setSpecialGravity(0.0f, maxFallSpeed, 0);
|
||||
|
||||
@@ -1403,7 +1403,7 @@ int daAlink_c::procLadderUpEnd() {
|
||||
|
||||
if (checkAnmEnd(frame_ctrl)) {
|
||||
checkNextAction(0);
|
||||
} else if (!(frame_ctrl->getFrame() > daAlinkHIO_ladder_c0::m.mClimbUpEndCF) ||
|
||||
} else if (!(frame_ctrl->getFrame() > mpHIO->mLadder.m.mClimbUpEndCF) ||
|
||||
!checkNextAction(1))
|
||||
{
|
||||
if (frame_ctrl->getFrame() >= 23.0f) {
|
||||
@@ -1436,8 +1436,8 @@ int daAlink_c::procLadderDownStartInit() {
|
||||
shape_angle.y = field_0x306e + 0x8000;
|
||||
current.angle.y = field_0x306e;
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_LADDER_DOWN_START, daAlinkHIO_ladder_c0::m.mClimbDownStartASpeed,
|
||||
daAlinkHIO_ladder_c0::m.mClimbDownStartInterp);
|
||||
setSingleAnimeBaseSpeed(ANM_LADDER_DOWN_START, mpHIO->mLadder.m.mClimbDownStartASpeed,
|
||||
mpHIO->mLadder.m.mClimbDownStartInterp);
|
||||
field_0x2f99 = 0x10;
|
||||
field_0x3588 = l_waitBaseAnime;
|
||||
dComIfGp_setPlayerStatus0(0, 0x2000000);
|
||||
@@ -1487,8 +1487,8 @@ int daAlink_c::procLadderDownEndInit(int param_0) {
|
||||
commonProcInit(PROC_LADDER_DOWN_END);
|
||||
|
||||
daAlink_ANM anm_id = param_0 != 0 ? ANM_LADDER_DOWN_END_LEFT : ANM_LADDER_DOWN_END_RIGHT;
|
||||
setSingleAnimeBaseSpeed(anm_id, daAlinkHIO_ladder_c0::m.mClimbDownEndASpeed,
|
||||
daAlinkHIO_ladder_c0::m.mClimbDownEndInterp);
|
||||
setSingleAnimeBaseSpeed(anm_id, mpHIO->mLadder.m.mClimbDownEndASpeed,
|
||||
mpHIO->mLadder.m.mClimbDownEndInterp);
|
||||
field_0x2f99 = 14;
|
||||
setSpecialGravity(0.0f, maxFallSpeed, 0);
|
||||
|
||||
@@ -1509,7 +1509,7 @@ int daAlink_c::procLadderDownEnd() {
|
||||
|
||||
if (checkAnmEnd(frame_ctrl)) {
|
||||
checkNextAction(0);
|
||||
} else if (!(frame_ctrl->getFrame() > daAlinkHIO_ladder_c0::m.mClimbDownEndCF) ||
|
||||
} else if (!(frame_ctrl->getFrame() > mpHIO->mLadder.m.mClimbDownEndCF) ||
|
||||
!checkNextAction(1))
|
||||
{
|
||||
if (frame_ctrl->getFrame() >= 11.0f) {
|
||||
@@ -1566,7 +1566,7 @@ int daAlink_c::procLadderMoveInit(int param_0, int param_1, cXyz* param_2) {
|
||||
}
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(anm, anm_speed, daAlinkHIO_ladder_c0::m.mMoveInterp);
|
||||
setSingleAnimeBaseSpeed(anm, anm_speed, mpHIO->mLadder.m.mMoveInterp);
|
||||
field_0x2f98 = param_1;
|
||||
|
||||
if (!param_1) {
|
||||
@@ -1614,13 +1614,13 @@ int daAlink_c::procLadderMove() {
|
||||
}
|
||||
|
||||
f32 daAlink_c::getClimbMoveUpDownAnmSpeed() {
|
||||
return getAnmSpeedStickRate(daAlinkHIO_ladder_c0::m.mWallVerticalMinAnmSpeed,
|
||||
daAlinkHIO_ladder_c0::m.mWallVerticalMaxAnmSpeed);
|
||||
return getAnmSpeedStickRate(mpHIO->mLadder.m.mWallVerticalMinAnmSpeed,
|
||||
mpHIO->mLadder.m.mWallVerticalMaxAnmSpeed);
|
||||
}
|
||||
|
||||
f32 daAlink_c::getClimbMoveSideAnmSpeed() {
|
||||
return getAnmSpeedStickRate(daAlinkHIO_ladder_c0::m.mWallHorizontalMinAnmSpeed,
|
||||
daAlinkHIO_ladder_c0::m.mWallHorizontalMaxAnmSpeed);
|
||||
return getAnmSpeedStickRate(mpHIO->mLadder.m.mWallHorizontalMinAnmSpeed,
|
||||
mpHIO->mLadder.m.mWallHorizontalMaxAnmSpeed);
|
||||
}
|
||||
|
||||
BOOL daAlink_c::checkClimbCode(cBgS_PolyInfo& i_poly) {
|
||||
@@ -1810,7 +1810,7 @@ int daAlink_c::setMoveBGClimbCorrect() {
|
||||
}
|
||||
|
||||
if (mLinkAcch.ChkGroundHit()) {
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
f32 var_f31 = cM_ssin(shape_angle.y);
|
||||
@@ -1837,7 +1837,7 @@ int daAlink_c::setMoveBGClimbCorrect() {
|
||||
((mProcID == PROC_CLIMB_MOVE_UPDOWN || mProcID == PROC_CLIMB_MOVE_SIDE) &&
|
||||
current.pos.y - 15.0f < dComIfG_Bgsp().GroundCross(&mLinkGndChk)))
|
||||
{
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
cM3dGPla sp44;
|
||||
@@ -1845,7 +1845,7 @@ int daAlink_c::setMoveBGClimbCorrect() {
|
||||
|
||||
s16 temp_r29 = sp44.mNormal.atan2sX_Z();
|
||||
if (cLib_distanceAngleS(temp_r29, shape_angle.y) <= 0x549F) {
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
s16 temp_r28 = shape_angle.y;
|
||||
@@ -1993,7 +1993,7 @@ BOOL daAlink_c::checkBgClimbMove(int i_direction) {
|
||||
if (checkClimbGround(&sp8C, sp98.y)) {
|
||||
current.pos = sp8C;
|
||||
onResetFlg0(RFLG0_UNK_40000);
|
||||
return procHangClimbInit(daAlinkHIO_wallCatch_c0::m.mClimbAnm.mStartFrame);
|
||||
return procHangClimbInit(mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mStartFrame);
|
||||
} else {
|
||||
current.pos.y -= 30.0f;
|
||||
return procClimbWaitInit(1, 1);
|
||||
@@ -2059,12 +2059,12 @@ int daAlink_c::procClimbUpStartInit(int param_0) {
|
||||
mNormalSpeed = 0.0f;
|
||||
|
||||
if (param_0 || var_r29 || cM_rnd() < 0.3f) {
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG, &daAlinkHIO_ladder_c0::m.mWallAttachAnm);
|
||||
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG, &mpHIO->mLadder.m.mWallAttachAnm);
|
||||
field_0x3478 = mpHIO->mLadder.m.mWallAttachAnm.mCancelFrame;
|
||||
voiceStart(Z2SE_AL_V_JUMP_HANG);
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &daAlinkHIO_ladder_c0::m.mWallAttachMissAnm);
|
||||
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachMissAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &mpHIO->mLadder.m.mWallAttachMissAnm);
|
||||
field_0x3478 = mpHIO->mLadder.m.mWallAttachMissAnm.mCancelFrame;
|
||||
voiceStart(Z2SE_AL_V_FOOT_MISS);
|
||||
}
|
||||
|
||||
@@ -2072,7 +2072,7 @@ int daAlink_c::procClimbUpStartInit(int param_0) {
|
||||
dComIfGp_setPlayerStatus0(0, 8);
|
||||
|
||||
if (param_0) {
|
||||
current.pos.y = field_0x34ec.y + daAlinkHIO_ladder_c0::m.mWallApproachOffset;
|
||||
current.pos.y = field_0x34ec.y + mpHIO->mLadder.m.mWallApproachOffset;
|
||||
}
|
||||
|
||||
field_0x2f99 = 2;
|
||||
@@ -2138,12 +2138,12 @@ int daAlink_c::procClimbDownStartInit(s16 param_0) {
|
||||
deleteEquipItem(TRUE, FALSE);
|
||||
|
||||
if (cM_rnd() < 0.7f) {
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG, &daAlinkHIO_ladder_c0::m.mWallAttachAnm);
|
||||
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG, &mpHIO->mLadder.m.mWallAttachAnm);
|
||||
field_0x3478 = mpHIO->mLadder.m.mWallAttachAnm.mCancelFrame;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
} else {
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &daAlinkHIO_ladder_c0::m.mWallAttachMissAnm);
|
||||
field_0x3478 = daAlinkHIO_ladder_c0::m.mWallAttachMissAnm.mCancelFrame;
|
||||
setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &mpHIO->mLadder.m.mWallAttachMissAnm);
|
||||
field_0x3478 = mpHIO->mLadder.m.mWallAttachMissAnm.mCancelFrame;
|
||||
mProcVar0.field_0x3008 = 1;
|
||||
voiceStart(Z2SE_AL_V_FOOT_MISS);
|
||||
}
|
||||
@@ -2504,7 +2504,7 @@ int daAlink_c::procClimbToRoof() {
|
||||
if (sp38.y < current.pos.y + 214.0f + 110.0f) {
|
||||
procRoofHangStartInit(mLinkRoofChk, sp38, 1);
|
||||
} else {
|
||||
procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2513,13 +2513,13 @@ int daAlink_c::procClimbToRoof() {
|
||||
|
||||
|
||||
f32 daAlink_c::getRoofHangFMoveAnmSpeed() const {
|
||||
return getAnmSpeedStickRate(daAlinkHIO_roofHang_c0::m.mVertMoveMinASpeed,
|
||||
daAlinkHIO_roofHang_c0::m.mVertMoveMaxASpeed);
|
||||
return getAnmSpeedStickRate(mpHIO->mRoofHang.m.mVertMoveMinASpeed,
|
||||
mpHIO->mRoofHang.m.mVertMoveMaxASpeed);
|
||||
}
|
||||
|
||||
f32 daAlink_c::getRoofHangSMoveAnmSpeed() const {
|
||||
return getAnmSpeedStickRate(daAlinkHIO_roofHang_c0::m.mHorizMoveMinASpeed,
|
||||
daAlinkHIO_roofHang_c0::m.mHorizMoveMaxASpeed);
|
||||
return getAnmSpeedStickRate(mpHIO->mRoofHang.m.mHorizMoveMinASpeed,
|
||||
mpHIO->mRoofHang.m.mHorizMoveMaxASpeed);
|
||||
}
|
||||
|
||||
void daAlink_c::setRoofHangHandOnSE(cBgS_PolyInfo* unused) {
|
||||
@@ -2566,7 +2566,7 @@ int daAlink_c::commonRoofHangProc() {
|
||||
setDoStatus(0x33);
|
||||
|
||||
if (doTrigger()) {
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
cXyz sp28(current.pos.x, (current.pos.y + 214.0f) - 10.0f, current.pos.z);
|
||||
@@ -2579,7 +2579,7 @@ int daAlink_c::commonRoofHangProc() {
|
||||
current.pos.y = roof_y - 214.0f;
|
||||
mPolyInfo2.SetPolyInfo(mLinkRoofChk);
|
||||
} else {
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -2624,7 +2624,7 @@ int daAlink_c::checkNextActionRoofHang() {
|
||||
int daAlink_c::procRoofHangStartInit(cBgS_PolyInfo const& param_0, cXyz const& param_1,
|
||||
int param_2) {
|
||||
commonProcInit(PROC_ROOF_HANG_START);
|
||||
setSingleAnimeParam(ANM_ROOF_HANG, &daAlinkHIO_roofHang_c0::m.mRoofHangAnm);
|
||||
setSingleAnimeParam(ANM_ROOF_HANG, &mpHIO->mRoofHang.m.mRoofHangAnm);
|
||||
mPolyInfo2.SetPolyInfo(param_0);
|
||||
|
||||
current.pos = param_1;
|
||||
@@ -2655,7 +2655,7 @@ int daAlink_c::procRoofHangStart() {
|
||||
if (mProcVar0.field_0x3008 == 0 &&
|
||||
(checkAnmEnd(frame_ctrl) ||
|
||||
(checkInputOnR() &&
|
||||
frame_ctrl->getFrame() > daAlinkHIO_roofHang_c0::m.mRoofHangAnm.mCancelFrame)))
|
||||
frame_ctrl->getFrame() > mpHIO->mRoofHang.m.mRoofHangAnm.mCancelFrame)))
|
||||
{
|
||||
checkNextActionRoofHang();
|
||||
} else if (checkAnmEnd(frame_ctrl)) {
|
||||
@@ -2684,7 +2684,7 @@ int daAlink_c::procRoofHangWaitInit(int param_0) {
|
||||
}
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_WAIT, daAlinkHIO_roofHang_c0::m.mStandbyASpeed, daAlinkHIO_roofHang_c0::m.mStandbyInterp);
|
||||
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_WAIT, mpHIO->mRoofHang.m.mStandbyASpeed, mpHIO->mRoofHang.m.mStandbyInterp);
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
setSpecialGravity(0.0f, maxFallSpeed, 0);
|
||||
@@ -2731,7 +2731,7 @@ int daAlink_c::procRoofHangFrontMoveInit() {
|
||||
frame = mUnderFrameCtrl[0].getFrame();
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_MOVE, anm_speed, daAlinkHIO_roofHang_c0::m.mVertMoveInterp);
|
||||
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_MOVE, anm_speed, mpHIO->mRoofHang.m.mVertMoveInterp);
|
||||
|
||||
if (frame >= 0) {
|
||||
mUnderFrameCtrl[0].setFrame(frame);
|
||||
@@ -2758,9 +2758,9 @@ int daAlink_c::procRoofHangFrontMove() {
|
||||
checkNextActionRoofHang();
|
||||
} else {
|
||||
if (!checkAttentionLock()) {
|
||||
cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, daAlinkHIO_roofHang_c0::m.mTurnAngleRate,
|
||||
daAlinkHIO_roofHang_c0::m.mMaxTurnAngle,
|
||||
daAlinkHIO_roofHang_c0::m.mMinTurnAngle);
|
||||
cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, mpHIO->mRoofHang.m.mTurnAngleRate,
|
||||
mpHIO->mRoofHang.m.mMaxTurnAngle,
|
||||
mpHIO->mRoofHang.m.mMinTurnAngle);
|
||||
|
||||
if (field_0x2f98 == 0) {
|
||||
shape_angle.y = current.angle.y;
|
||||
@@ -2776,8 +2776,8 @@ int daAlink_c::procRoofHangFrontMove() {
|
||||
frame = frameCtrl->getFrame();
|
||||
}
|
||||
|
||||
mNormalSpeed = getAnmSpeedStickRate(daAlinkHIO_roofHang_c0::m.mVertMoveMinSpeed,
|
||||
daAlinkHIO_roofHang_c0::m.mVertMoveMaxSpeed) *
|
||||
mNormalSpeed = getAnmSpeedStickRate(mpHIO->mRoofHang.m.mVertMoveMinSpeed,
|
||||
mpHIO->mRoofHang.m.mVertMoveMaxSpeed) *
|
||||
cM_fsin((frame * M_PI) * 0.083333336f);
|
||||
if (mNormalSpeed < 0.0f) {
|
||||
mNormalSpeed = 0.0f;
|
||||
@@ -2804,7 +2804,7 @@ int daAlink_c::procRoofHangFrontMove() {
|
||||
if (cLib_distanceAngleS(sp70.mNormal.atan2sX_Z(), shape_angle.y) > 0x6000) {
|
||||
current.pos.x = sp70.mNormal.x * 15.0f + mLinkLinChk.GetCross().x;
|
||||
current.pos.z = sp70.mNormal.z * 15.0f + mLinkLinChk.GetCross().z;
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2833,7 +2833,7 @@ int daAlink_c::procRoofHangSideMoveInit() {
|
||||
}
|
||||
|
||||
setSingleAnimeBaseSpeed(anm_id, getRoofHangSMoveAnmSpeed(),
|
||||
daAlinkHIO_roofHang_c0::m.mHorizMoveInterp);
|
||||
mpHIO->mRoofHang.m.mHorizMoveInterp);
|
||||
setSpecialGravity(0.0f, maxFallSpeed, 0);
|
||||
|
||||
f32 tmp_0 = 0.0f;
|
||||
@@ -2874,7 +2874,7 @@ int daAlink_c::procRoofHangTurnInit() {
|
||||
|
||||
f32 anm_speed;
|
||||
if ((s16)(field_0x2fe2 - shape_angle.y) < 0) {
|
||||
anm_speed = -daAlinkHIO_roofHang_c0::m.mInvertASpeed;
|
||||
anm_speed = -mpHIO->mRoofHang.m.mInvertASpeed;
|
||||
mProcVar0.field_0x3008 = 1;
|
||||
shape_angle.y += 0x8000;
|
||||
setOldRootQuaternion(0, -0x8000, 0);
|
||||
@@ -2883,7 +2883,7 @@ int daAlink_c::procRoofHangTurnInit() {
|
||||
field_0x3478 = 0.0f;
|
||||
field_0x347c = 10.0f;
|
||||
} else {
|
||||
anm_speed = daAlinkHIO_roofHang_c0::m.mInvertASpeed;
|
||||
anm_speed = mpHIO->mRoofHang.m.mInvertASpeed;
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
mProcVar2.field_0x300c = field_0x2fe2 + 0x8000;
|
||||
field_0x3478 = 10.0f;
|
||||
@@ -2891,7 +2891,7 @@ int daAlink_c::procRoofHangTurnInit() {
|
||||
}
|
||||
|
||||
current.angle.y = shape_angle.y;
|
||||
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_TURN, anm_speed, daAlinkHIO_roofHang_c0::m.mInvertInterp);
|
||||
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_TURN, anm_speed, mpHIO->mRoofHang.m.mInvertInterp);
|
||||
|
||||
if (mProcVar0.field_0x3008 != 0) {
|
||||
setFaceBasicTexture(FTANM_UNK_4);
|
||||
@@ -2945,7 +2945,7 @@ void daAlink_c::setRoofHangSwitch() {
|
||||
int daAlink_c::procRoofSwitchHangInit(fopAc_ac_c* param_0) {
|
||||
commonProcInit(PROC_ROOF_SWITCH_HANG);
|
||||
deleteEquipItem(TRUE, FALSE);
|
||||
setSingleAnimeParam(ANM_ROOF_HANG, &daAlinkHIO_roofHang_c0::m.mRoofHangAnm);
|
||||
setSingleAnimeParam(ANM_ROOF_HANG, &mpHIO->mRoofHang.m.mRoofHangAnm);
|
||||
|
||||
setSpecialGravity(0.0f, maxFallSpeed, 0);
|
||||
f32 tmp_0 = 0.0f;
|
||||
@@ -2970,20 +2970,20 @@ int daAlink_c::procRoofSwitchHangInit(fopAc_ac_c* param_0) {
|
||||
|
||||
int daAlink_c::procRoofSwitchHang() {
|
||||
if (field_0x280c.getActor() == NULL) {
|
||||
return procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
|
||||
setRoofHangSwitch();
|
||||
|
||||
if (checkAnmEnd(mUnderFrameCtrl)) {
|
||||
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_WAIT, daAlinkHIO_roofHang_c0::m.mStandbyASpeed,
|
||||
daAlinkHIO_roofHang_c0::m.mStandbyInterp);
|
||||
setSingleAnimeBaseSpeed(ANM_ROOF_HANG_WAIT, mpHIO->mRoofHang.m.mStandbyASpeed,
|
||||
mpHIO->mRoofHang.m.mStandbyInterp);
|
||||
mProcVar2.field_0x300c = 1;
|
||||
} else if (mProcVar2.field_0x300c != 0) {
|
||||
setDoStatus(0x33);
|
||||
|
||||
if (doTrigger()) {
|
||||
procFallInit(1, daAlinkHIO_autoJump_c0::m.mFallInterpolation);
|
||||
procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -123,26 +123,26 @@ void daAlink_c::hsChainShape_c::draw() {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
const cXyz& sp3C = temp_r3->getHsChainRootPos();
|
||||
const cXyz& sp38 = temp_r3->getHsChainTopPos();
|
||||
cXyz spA4 = sp3C - sp38;
|
||||
const cXyz& chainRootPos = temp_r3->getHsChainRootPos();
|
||||
const cXyz& chainTopPos = temp_r3->getHsChainTopPos();
|
||||
cXyz maxDistance = chainRootPos - chainTopPos;
|
||||
|
||||
f32 temp_f31 = spA4.abs();
|
||||
f32 maxDistanceF = maxDistance.abs();
|
||||
f32 var_f30;
|
||||
cXyz sp98;
|
||||
csXyz sp6C;
|
||||
|
||||
if (temp_f31 > 1.0f) {
|
||||
spA4 *= (1.0f / temp_f31);
|
||||
if (maxDistanceF > 1.0f) {
|
||||
maxDistance *= (1.0f / maxDistanceF);
|
||||
var_f30 = 0.0f;
|
||||
|
||||
sp98 = sp38;
|
||||
sp6C.set(spA4.atan2sY_XZ(), spA4.atan2sX_Z(), 0);
|
||||
sp98 = sp38;
|
||||
sp98 = chainTopPos;
|
||||
sp6C.set(maxDistance.atan2sY_XZ(), maxDistance.atan2sX_Z(), 0);
|
||||
sp98 = chainTopPos;
|
||||
|
||||
csXyz sp64(sp6C);
|
||||
|
||||
f32 sp34 = M_PI / temp_f31;
|
||||
f32 sp34 = M_PI / maxDistanceF;
|
||||
|
||||
f32 temp_f27;
|
||||
f32 var_f26 = 0.0f;
|
||||
@@ -153,7 +153,7 @@ void daAlink_c::hsChainShape_c::draw() {
|
||||
var_f28 *= -1.0f;
|
||||
}
|
||||
|
||||
while (temp_f31 > var_f30) {
|
||||
while (maxDistanceF > var_f30) {
|
||||
temp_f27 = var_f28 * cM_fsin(sp34 * var_f30);
|
||||
s16 spC = cM_atan2s(temp_f27 - var_f26, 5.0f);
|
||||
sp64.x = sp6C.x + spC;
|
||||
@@ -180,15 +180,15 @@ void daAlink_c::hsChainShape_c::draw() {
|
||||
|
||||
const cXyz& sp30 = temp_r3->getHsSubChainRootPos();
|
||||
const cXyz& sp2C = temp_r3->getHsSubChainTopPos();
|
||||
spA4 = sp30 - sp2C;
|
||||
maxDistance = sp30 - sp2C;
|
||||
|
||||
f32 temp_f1 = spA4.abs();
|
||||
f32 temp_f1 = maxDistance.abs();
|
||||
if (temp_f1 > 1.0f) {
|
||||
spA4 *= (1.0f / temp_f1);
|
||||
maxDistance *= (1.0f / temp_f1);
|
||||
var_f30 = 0.0f;
|
||||
|
||||
sp98 = sp2C;
|
||||
sp6C.set(spA4.atan2sY_XZ(), spA4.atan2sX_Z(), 0);
|
||||
sp6C.set(maxDistance.atan2sY_XZ(), maxDistance.atan2sX_Z(), 0);
|
||||
|
||||
while (temp_f1 > var_f30) {
|
||||
mDoMtx_stack_c::copy(j3dSys.getViewMtx());
|
||||
@@ -200,7 +200,7 @@ void daAlink_c::hsChainShape_c::draw() {
|
||||
|
||||
sp5C->getShape()->simpleDrawCache();
|
||||
|
||||
sp98 += spA4 * 5.0f;
|
||||
sp98 += maxDistance * 5.0f;
|
||||
sp6C.z += 0x3000;
|
||||
var_f30 += 5.0f;
|
||||
}
|
||||
@@ -395,7 +395,7 @@ void daAlink_c::setHookshotModel() {
|
||||
mpHookshotLinChk->OffFullGrp();
|
||||
mpHookshotLinChk->OnWaterGrp();
|
||||
|
||||
J3DAnmTransform* bck2 = (J3DAnmTransform*)loadAram(0x17F, 0x800);
|
||||
J3DAnmTransform* bck2 = (J3DAnmTransform*)loadAram(dRes_ID_ALANM_BCK_HS_TIP_OPEN_e, 0x800);
|
||||
mHookTipBck.init(bck2, 0, 2, 1.0f, 0, -1, false);
|
||||
mDoExt_setCurrentHeap(heap);
|
||||
|
||||
@@ -426,9 +426,9 @@ void daAlink_c::setHookshotSight() {
|
||||
cXyz sight_pos;
|
||||
f32 length;
|
||||
if (checkLv7BossRoom()) {
|
||||
length = daAlinkHIO_hookshot_c0::m.mBossMaxLength;
|
||||
length = mpHIO->mItem.mHookshot.m.mBossMaxLength;
|
||||
} else {
|
||||
length = daAlinkHIO_hookshot_c0::m.mMaxLength;
|
||||
length = mpHIO->mItem.mHookshot.m.mMaxLength;
|
||||
}
|
||||
|
||||
BOOL line_cross = checkSightLine(length, &sight_pos);
|
||||
@@ -519,7 +519,7 @@ int daAlink_c::initHookshotUpperAnimeSpeed(int param_0) {
|
||||
mUpperFrameCtrl[2].setFrame(tmp_0);
|
||||
getNowAnmPackUpper(UPPER_2)->setFrame(tmp_0);
|
||||
} else {
|
||||
setWaterInAnmRate(&mUpperFrameCtrl[2], daAlinkHIO_hookshot_c0::m.mWaitAnmSpeed);
|
||||
setWaterInAnmRate(&mUpperFrameCtrl[2], mpHIO->mItem.mHookshot.m.mWaitAnmSpeed);
|
||||
}
|
||||
|
||||
return 1;
|
||||
@@ -545,10 +545,10 @@ void daAlink_c::setHookshotReadyAnime() {
|
||||
if (!checkAttentionLock() && mFastShotTime == 0) {
|
||||
speed = 0.0f;
|
||||
} else {
|
||||
speed = daAlinkHIO_hookshot_c0::m.mWaitAnmSpeed;
|
||||
speed = mpHIO->mItem.mHookshot.m.mWaitAnmSpeed;
|
||||
}
|
||||
|
||||
setUpperAnimeBaseSpeed(0x18D, speed, 3.0f);
|
||||
setUpperAnimeBaseSpeed(dRes_INDEX_ALANM_BCK_HSWAIT_e, speed, 3.0f);
|
||||
field_0x3020 = 0;
|
||||
initHookshotReady();
|
||||
}
|
||||
@@ -583,7 +583,7 @@ int daAlink_c::checkUpperItemActionHookshot() {
|
||||
|
||||
setSingleAnimeBaseMorf(anmID, 0.0f);
|
||||
} else if (checkModeFlg(0x40400)) {
|
||||
setUpperAnimeParam(0x18C, UPPER_2, &daAlinkHIO_hookshot_c0::m.mShootAnm);
|
||||
setUpperAnimeParam(0x18C, UPPER_2, &mpHIO->mItem.mHookshot.m.mShootAnm);
|
||||
|
||||
if (checkModeFlg(0x40000)) {
|
||||
mNormalSpeed = 0.0f;
|
||||
@@ -599,7 +599,7 @@ int daAlink_c::checkUpperItemActionHookshot() {
|
||||
mSpeedModifier = tmp_0;
|
||||
mNowAnmPackUpper[2].setRatio(tmp_0);
|
||||
|
||||
setSingleAnimeParam(ANM_HOOKSHOT_SHOOT, &daAlinkHIO_hookshot_c0::m.mShootAnm);
|
||||
setSingleAnimeParam(ANM_HOOKSHOT_SHOOT, &mpHIO->mItem.mHookshot.m.mShootAnm);
|
||||
}
|
||||
|
||||
if (!checkNoResetFlg3(FLG3_UNK_4)) {
|
||||
@@ -701,7 +701,7 @@ void daAlink_c::setHookshotReturnEnd() {
|
||||
field_0x2060->initOldFrameMorf(3.0f, field_0x30a8, field_0x30aa);
|
||||
} else if (checkHookshotShootAnime()) {
|
||||
setUpperAnimeBaseSpeed(
|
||||
0x18D, checkAttentionLock() ? daAlinkHIO_hookshot_c0::m.mWaitAnmSpeed : 0.0f, 3.0f);
|
||||
0x18D, checkAttentionLock() ? mpHIO->mItem.mHookshot.m.mWaitAnmSpeed : 0.0f, 3.0f);
|
||||
}
|
||||
|
||||
mFastShotTime = 0;
|
||||
@@ -863,21 +863,21 @@ void daAlink_c::setHookshotPos() {
|
||||
f32 shoot_speed;
|
||||
f32 length;
|
||||
if (checkLv7BossRoom()) {
|
||||
return_speed = daAlinkHIO_hookshot_c0::m.mBossReturnSpeed;
|
||||
shoot_speed = daAlinkHIO_hookshot_c0::m.mBossShootSpeed;
|
||||
length = daAlinkHIO_hookshot_c0::m.mBossMaxLength;
|
||||
return_speed = mpHIO->mItem.mHookshot.m.mBossReturnSpeed;
|
||||
shoot_speed = mpHIO->mItem.mHookshot.m.mBossShootSpeed;
|
||||
length = mpHIO->mItem.mHookshot.m.mBossMaxLength;
|
||||
} else {
|
||||
return_speed = daAlinkHIO_hookshot_c0::m.mReturnSpeed;
|
||||
shoot_speed = daAlinkHIO_hookshot_c0::m.mShootSpeed;
|
||||
length = daAlinkHIO_hookshot_c0::m.mMaxLength;
|
||||
return_speed = mpHIO->mItem.mHookshot.m.mReturnSpeed;
|
||||
shoot_speed = mpHIO->mItem.mHookshot.m.mShootSpeed;
|
||||
length = mpHIO->mItem.mHookshot.m.mMaxLength;
|
||||
}
|
||||
|
||||
if (mItemMode == HS_MODE_RETURN_e) {
|
||||
if (targetAc_p != NULL) {
|
||||
if (checkLv7BossRoom()) {
|
||||
return_speed = daAlinkHIO_hookshot_c0::m.mBossStickReturnSpeed;
|
||||
return_speed = mpHIO->mItem.mHookshot.m.mBossStickReturnSpeed;
|
||||
} else {
|
||||
return_speed = daAlinkHIO_hookshot_c0::m.mStickReturnSpeed;
|
||||
return_speed = mpHIO->mItem.mHookshot.m.mStickReturnSpeed;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1209,7 +1209,7 @@ void daAlink_c::hookshotRoofTurn() {
|
||||
BOOL play_sound = false;
|
||||
if (!dComIfGp_checkPlayerStatus0(0, 0x2000)) {
|
||||
f32 max_rise_y = (mIronBallBgChkPos.y + 15.0f) - 1.5f;
|
||||
f32 min_descend_y = mIronBallBgChkPos.y - daAlinkHIO_hookshot_c0::m.mMaxLength;
|
||||
f32 min_descend_y = mIronBallBgChkPos.y - mpHIO->mItem.mHookshot.m.mMaxLength;
|
||||
|
||||
if (checkInputOnR()) {
|
||||
int stick_direction = getDirectionFromAngle(mStickAngle);
|
||||
@@ -1223,7 +1223,7 @@ void daAlink_c::hookshotRoofTurn() {
|
||||
current.angle.y = shape_angle.y;
|
||||
|
||||
if (stick_direction == DIR_FORWARD) {
|
||||
current.pos.y += daAlinkHIO_hookshot_c0::m.mRoofHangRiseSpeed * field_0x33a8;
|
||||
current.pos.y += mpHIO->mItem.mHookshot.m.mRoofHangRiseSpeed * field_0x33a8;
|
||||
if (current.pos.y > max_rise_y) {
|
||||
current.pos.y = max_rise_y;
|
||||
} else {
|
||||
@@ -1231,7 +1231,7 @@ void daAlink_c::hookshotRoofTurn() {
|
||||
play_sound = true;
|
||||
}
|
||||
} else if (stick_direction == DIR_BACKWARD) {
|
||||
f32 descend_speed = daAlinkHIO_hookshot_c0::m.mRoofHangDecendSpeed * field_0x33ac;
|
||||
f32 descend_speed = mpHIO->mItem.mHookshot.m.mRoofHangDecendSpeed * field_0x33ac;
|
||||
if (checkBootsOrArmorHeavy()) {
|
||||
descend_speed *= 1.5f;
|
||||
}
|
||||
@@ -1379,7 +1379,7 @@ int daAlink_c::procHookshotSubjectInit() {
|
||||
|
||||
if (initHookshotUpperAnimeSpeed(1)) {
|
||||
setSingleAnimeBaseSpeed(ANM_ATN_WAIT_LEFT, 0.0f,
|
||||
daAlinkHIO_hookshot_c0::m.mStartInterpolation);
|
||||
mpHIO->mItem.mHookshot.m.mStartInterpolation);
|
||||
}
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x4000);
|
||||
@@ -1422,7 +1422,7 @@ int daAlink_c::procHookshotMoveInit() {
|
||||
}
|
||||
|
||||
if (initHookshotUpperAnimeSpeed(0)) {
|
||||
setBlendAtnMoveAnime(daAlinkHIO_hookshot_c0::m.mStartInterpolation);
|
||||
setBlendAtnMoveAnime(mpHIO->mItem.mHookshot.m.mStartInterpolation);
|
||||
}
|
||||
|
||||
dComIfGp_setPlayerStatus0(0, 0x4000);
|
||||
@@ -1440,7 +1440,7 @@ int daAlink_c::procHookshotMove() {
|
||||
|
||||
if (field_0x2f98 != 2) {
|
||||
field_0x2f98 = 2;
|
||||
blend = daAlinkHIO_basic_c0::m.mBasicInterpolation;
|
||||
blend = mpHIO->mBasic.m.mBasicInterpolation;
|
||||
}
|
||||
} else {
|
||||
offModeFlg(1);
|
||||
@@ -1529,7 +1529,7 @@ int daAlink_c::procHookshotFly() {
|
||||
} else {
|
||||
mProcVar0.field_0x3008 = 0;
|
||||
f32 temp_f31 = field_0x37d4.abs();
|
||||
f32 temp_f30 = daAlinkHIO_hookshot_c0::m.mStickReturnSpeed + spAC.abs(mHookshotTopPos);
|
||||
f32 temp_f30 = mpHIO->mItem.mHookshot.m.mStickReturnSpeed + spAC.abs(mHookshotTopPos);
|
||||
|
||||
if (temp_f31 < temp_f30 || mProcVar1.field_0x300a == 0) {
|
||||
setHookshotReturnEnd();
|
||||
@@ -1665,7 +1665,7 @@ int daAlink_c::procHookshotRoofWaitInit(int param_0, fopAc_ac_c* param_1, int pa
|
||||
}
|
||||
|
||||
mProcVar2.field_0x300c = 0;
|
||||
setSingleAnimeParam(anm, &daAlinkHIO_hookshot_c0::m.mRoofHangAnm);
|
||||
setSingleAnimeParam(anm, &mpHIO->mItem.mHookshot.m.mRoofHangAnm);
|
||||
} else {
|
||||
setHookshotRoofWaitAnime();
|
||||
mProcVar2.field_0x300c = 1;
|
||||
@@ -1737,7 +1737,7 @@ int daAlink_c::procHookshotRoofWait() {
|
||||
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
|
||||
if (frameCtrl_p->checkAnmEnd() ||
|
||||
((checkInputOnR() || mProcVar5.field_0x3012 != 0 || checkHookshotRoofLv7Boss()) &&
|
||||
frameCtrl_p->getFrame() > daAlinkHIO_hookshot_c0::m.mRoofHangAnm.mCancelFrame))
|
||||
frameCtrl_p->getFrame() > mpHIO->mItem.mHookshot.m.mRoofHangAnm.mCancelFrame))
|
||||
{
|
||||
setHookshotRoofWaitAnime();
|
||||
mProcVar2.field_0x300c = 1;
|
||||
@@ -1930,7 +1930,7 @@ int daAlink_c::procHookshotWallWaitInit(int param_0, s16 param_1, int param_2) {
|
||||
}
|
||||
|
||||
mProcVar2.field_0x300c = 0;
|
||||
setSingleAnimeParam(anm, &daAlinkHIO_hookshot_c0::m.mWallHangAnm);
|
||||
setSingleAnimeParam(anm, &mpHIO->mItem.mHookshot.m.mWallHangAnm);
|
||||
} else {
|
||||
setHookshotWallWaitAnime();
|
||||
mProcVar2.field_0x300c = 1;
|
||||
@@ -2003,7 +2003,7 @@ int daAlink_c::procHookshotWallWait() {
|
||||
daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl;
|
||||
if (frameCtrl_p->checkAnmEnd() ||
|
||||
((checkInputOnR() || mProcVar5.field_0x3012 != 0) &&
|
||||
frameCtrl_p->getFrame() > daAlinkHIO_hookshot_c0::m.mWallHangAnm.mCancelFrame))
|
||||
frameCtrl_p->getFrame() > mpHIO->mItem.mHookshot.m.mWallHangAnm.mCancelFrame))
|
||||
{
|
||||
setHookshotWallWaitAnime();
|
||||
mProcVar2.field_0x300c = 1;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user