diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2021-11-10 23:54:31 -0800 |
|---|---|---|
| committer | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2021-11-10 23:54:31 -0800 |
| commit | 70eabb12bd5e9327ccd01b1f9367fca109d4fbfa (patch) | |
| tree | bc478c843622a25b54dd87479b6575be425b7488 /src/d | |
| parent | 74ed2da8bc93804373cddf64c0c878603150b699 (diff) | |
wip
Diffstat (limited to 'src/d')
| -rw-r--r-- | src/d/a/d_a_alink.cpp | 3563 | ||||
| -rw-r--r-- | src/d/a/d_a_player.cpp | 83 | ||||
| -rw-r--r-- | src/d/bg/d_bg_s_acch.cpp | 4 | ||||
| -rw-r--r-- | src/d/com/d_com_inf_game.cpp | 36 | ||||
| -rw-r--r-- | src/d/d_att_dist.cpp | 674 | ||||
| -rw-r--r-- | src/d/d_attention.cpp | 4 | ||||
| -rw-r--r-- | src/d/d_drawlist.cpp | 2 | ||||
| -rw-r--r-- | src/d/d_jnt_col.cpp | 1 | ||||
| -rw-r--r-- | src/d/event/d_event_manager.cpp | 2 | ||||
| -rw-r--r-- | src/d/kankyo/d_kankyo.cpp | 2 | ||||
| -rw-r--r-- | src/d/particle/d_particle.cpp | 2 | ||||
| -rw-r--r-- | src/d/save/d_save.cpp | 14 |
12 files changed, 2020 insertions, 2367 deletions
diff --git a/src/d/a/d_a_alink.cpp b/src/d/a/d_a_alink.cpp index cb7d394ae0..4827466f51 100644 --- a/src/d/a/d_a_alink.cpp +++ b/src/d/a/d_a_alink.cpp @@ -4,7 +4,10 @@ // #include "d/a/d_a_alink.h" +#include "d/d_bomb.h" #include "JSystem/J3DGraphLoader/J3DAnmLoader.h" +#include "JSystem/JMath/JMath.h" +#include "SSystem/SComponent/c_math.h" #include "Z2AudioLib/Z2AudioMgr.h" #include "d/a/d_a_horse_static.h" #include "d/com/d_com_inf_game.h" @@ -12,7 +15,10 @@ #include "dolphin/types.h" #include "f_op/f_op_actor_mng.h" #include "m_Do/m_Do_ext.h" +#include "m_Do/m_Do_audio.h" #include "m_Do/m_Do_mtx.h" +#include "rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h" +#include "rel/d/a/d_a_crod/d_a_crod.h" // // Types: @@ -70,19 +76,6 @@ struct daMirror_c { /* 8003194C */ void entry(J3DModel*); }; -struct daCrod_c { - /* 80141A94 */ void setControllActorData(); -}; - -struct daAlink_matAnm_c { - /* 8009D8E4 */ void init(); - /* 8009D90C */ void calc(J3DMaterial*) const; - /* 800D0180 */ void offSetFlg(); - /* 800D0B8C */ ~daAlink_matAnm_c(); -}; - -struct dCcG_At_Spl {}; - struct dDemo_actor_c { /* 8003819C */ void getPrm_Morf(); /* 80038338 */ void getDemoIDData(int*, int*, int*, u16*, u8*); @@ -188,10 +181,6 @@ struct daAlinkHIO_wlBackJump_c0 { static u8 const m[56]; }; -struct daAlinkHIO_wlAttack_c0 { - static u8 const m[56]; -}; - struct daAlinkHIO_wlAtnMove_c0 { static u8 const m[56]; }; @@ -236,10 +225,6 @@ struct daAlinkHIO_wlAtBite_c0 { static u8 const m[92]; }; -struct daAlinkHIO_wallMove_c0 { - static u8 const m[20]; -}; - struct daAlinkHIO_wallHang_c0 { static u8 const m[28]; }; @@ -252,10 +237,6 @@ struct daAlinkHIO_wallCatch_c0 { static u8 const m[84]; }; -struct daAlinkHIO_turnMove_c0 { - static u8 const m[44]; -}; - struct daAlinkHIO_swim_c0 { static u8 const m[252]; }; @@ -268,14 +249,6 @@ struct daAlinkHIO_smallJump_c0 { static u8 const m[72]; }; -struct daAlinkHIO_slide_c0 { - static u8 const m[120]; -}; - -struct daAlinkHIO_sideStep_c0 { - static u8 const m[104]; -}; - struct daAlinkHIO_roofHang_c0 { static u8 const m[76]; }; @@ -292,14 +265,6 @@ struct daAlinkHIO_noActAtnMove_c0 { static u8 const m[84]; }; -struct daAlinkHIO_move_c0 { - static u8 const m[88]; -}; - -struct daAlinkHIO_magneBoots_c0 { - static u8 const m[76]; -}; - struct daAlinkHIO_ladder_c0 { static u8 const m[112]; }; @@ -364,10 +329,6 @@ struct daAlinkHIO_gAtKick_c0 { static u8 const m[36]; }; -struct daAlinkHIO_frontRoll_c0 { - static u8 const m[112]; -}; - struct daAlinkHIO_fmChain_c0 { static u8 const m[40]; }; @@ -404,10 +365,6 @@ struct daAlinkHIO_damCaught_c0 { static u8 const m[36]; }; -struct daAlinkHIO_cut_c0 { - static u8 const m[156]; -}; - struct daAlinkHIO_cut_c { /* 80140BD4 */ ~daAlinkHIO_cut_c(); }; @@ -440,10 +397,6 @@ struct daAlinkHIO_cutLargeJump_c0 { static u8 const m[116]; }; -struct daAlinkHIO_cutJump_c0 { - static u8 const m[68]; -}; - struct daAlinkHIO_cutHead_c0 { static u8 const m[96]; }; @@ -521,10 +474,6 @@ struct daAlinkHIO_boom_c0 { static u8 const m[76]; }; -struct daAlinkHIO_bomb_c0 { - static u8 const m[76]; -}; - struct daAlinkHIO_board_c0 { static u8 const m[156]; }; @@ -533,10 +482,6 @@ struct daAlinkHIO_backJump_c0 { static u8 const m[56]; }; -struct daAlinkHIO_atnMove_c0 { - static u8 const m[84]; -}; - struct dPa_control_c { struct level_c { /* 8004B8B4 */ void forceOnEventMove(u32); @@ -621,12 +566,6 @@ struct JAISeq { /* 802A0A8C */ JAISeq(JAISeqMgr*, JAISoundStrategyMgr<JAISeq>*); }; -struct J3DMaterialAnm { - /* 800A4820 */ ~J3DMaterialAnm(); - /* 8032C320 */ void initialize(); - /* 8032C3C4 */ void calc(J3DMaterial*) const; -}; - struct J2DAnmLoaderDataBase { /* 80308A6C */ void load(void const*); }; @@ -3638,6 +3577,14 @@ inline Z2CreatureLink* Z2GetLink() { return Z2CreatureLink::mLinkPtr; } +inline u16 i_dComIfGs_getLife() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getLife(); +} + +inline BOOL i_dComIfGs_isEventBit(u16 id) { + return g_dComIfG_gameInfo.info.getEvent().isEventBit(id); +} + /* 8009D87C-8009D884 0981BC 0008+00 0/0 1/1 0/0 .text getE3Zhint__9daAlink_cFv */ bool daAlink_c::getE3Zhint() { return false; @@ -3713,8 +3660,10 @@ static u8 struct_80450FC4[4]; /* 80450FC8-80450FCC -00001 0004+00 5/5 0/0 0/0 .sbss None */ /* 80450FC8 0001+00 data_80450FC8 None */ +static bool struct_80450FC8; // sEyeMoveFlg + /* 80450FC9 0003+00 data_80450FC9 None */ -static u8 struct_80450FC8[4]; +static u8 sMorfFrame; /* 80452C98-80452C9C 001298 0004+00 102/102 0/0 0/0 .sdata2 @5943 */ SECTION_SDATA2 static f32 lit_5943 = 0.5f; @@ -3752,14 +3701,16 @@ SECTION_SDATA2 static u8 lit_6108[4] = { }; /* 8009D8E4-8009D90C 098224 0028+00 2/2 0/0 0/0 .text init__16daAlink_matAnm_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_matAnm_c::init() { - nofralloc -#include "asm/d/a/d_a_alink/init__16daAlink_matAnm_cFv.s" +void daAlink_matAnm_c::init() { + f32 tmp_0 = FLOAT_LABEL(lit_6108); + field_0xf4 = tmp_0; + field_0xf8 = tmp_0; + mNowOffsetX = tmp_0; + mNowOffsetY = tmp_0; + struct_80450FC8 = false; // sEyeMoveFlg + sMorfFrame = 0; + mSetFlag = 0; } -#pragma pop /* 8009D90C-8009DA60 09824C 0154+00 1/0 0/0 0/0 .text calc__16daAlink_matAnm_cCFP11J3DMaterial */ #pragma push @@ -3771,6 +3722,37 @@ asm void daAlink_matAnm_c::calc(J3DMaterial* param_0) const { } #pragma pop +/* void daAlink_matAnm_c::calc(J3DMaterial* param_0) const { + J3DMaterialAnm::calc(param_0); + + if (!daAlink_getAlinkActorClass()->checkStatusWindowDraw()) { + for (u32 i = 0; i < 8; i++) { + if (getTexMtxAnm(i).getAnmFlag()) { + J3DTexMtxInfo* info = ¶m_0->getTexGenBlock()->getTexMtx(i)->getTexMtxInfo(); + if (sMorfFrame != 0) { + if (mSetFlag == 0) { + f32 tmp = 1.0f / sMorfFrame; + info->field_0x10.field_0xc = field_0xf4 * (1.0f - tmp) + info->field_0x10.field_0xc * tmp; + info->field_0x10.field_0x10 = field_0xf8 * (1.0f - tmp) + info->field_0x10.field_0xc * tmp; + //mSetFlag = 1; + } else { + info->field_0x10.field_0xc = field_0xf4; + info->field_0x10.field_0x10 = field_0xf8; + } + } + + if (struct_80450FC8) { + info->field_0x10.field_0xc = mNowOffsetX; + info->field_0x10.field_0x10 = mNowOffsetY; + } + + + + } + } + } +} */ + bool daAlink_c::checkStageName(const char* stage) { return strcmp(dComIfGp_getStartStageName(), stage) == 0; } @@ -5076,26 +5058,16 @@ daAlinkHIO_basic_c1 const daAlinkHIO_basic_c0::m = { 60.0f, 85.0f, 300.0f, 200.0f, 20.0f, 30.0f, 23.0f, 41.0f, 0.7f, 0.5f, 0.7f, 400.0f, 5000.0f}; /* 8038D6BC-8038D714 019D1C 0058+00 34/47 0/0 0/0 .rodata m__18daAlinkHIO_move_c0 */ -SECTION_RODATA u8 const daAlinkHIO_move_c0::m[88] = { - 0x00, 0x0B, 0x00, 0x00, 0x3F, 0x33, 0x33, 0x33, 0x40, 0x40, 0x00, 0x00, 0x40, 0x80, 0x00, - 0x00, 0x41, 0x40, 0x00, 0x00, 0x11, 0x94, 0x00, 0x64, 0x00, 0x05, 0x00, 0x00, 0x3F, 0x80, - 0x00, 0x00, 0x3F, 0x40, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x3E, 0xCC, 0xCC, 0xCD, 0x3F, - 0x4C, 0xCC, 0xCD, 0x41, 0xB8, 0x00, 0x00, 0x3F, 0xF3, 0x33, 0x33, 0x40, 0x0C, 0xCC, 0xCD, - 0x3F, 0x19, 0x99, 0x9A, 0x3F, 0x8C, 0xCC, 0xCD, 0x3F, 0xC0, 0x00, 0x00, 0x3F, 0x7D, 0x70, - 0xA4, 0x40, 0x40, 0x00, 0x00, 0x3F, 0x33, 0x33, 0x33, 0x3E, 0xCC, 0xCC, 0xCD, +daAlinkHIO_move_c1 const daAlinkHIO_move_c0::m = { + { 11, 0.7f, 3.0f, 4.0f, 12.0f }, + 4500, 100, 5, 1.0f, 0.75f, 1.5f, 0.4f, 0.8f, 23.0f, 1.9f, 2.2f, 0.6f, 1.1f, 1.5f, 0.99f, 3.0f, 0.7f, 0.4f }; -COMPILER_STRIP_GATE(0x8038D6BC, &daAlinkHIO_move_c0::m); /* 8038D714-8038D768 019D74 0054+00 10/16 0/0 0/0 .rodata m__21daAlinkHIO_atnMove_c0 */ -SECTION_RODATA u8 const daAlinkHIO_atnMove_c0::m[84] = { - 0x0B, 0xB8, 0x07, 0xD0, 0x00, 0x06, 0x00, 0x00, 0x3F, 0x99, 0x99, 0x9A, 0x3F, 0x8C, - 0xCC, 0xCD, 0x3F, 0xC0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x19, 0x99, 0x9A, - 0x41, 0x50, 0x00, 0x00, 0x40, 0xC0, 0x00, 0x00, 0x40, 0xF0, 0x00, 0x00, 0x3F, 0x33, - 0x33, 0x33, 0x3F, 0xB3, 0x33, 0x33, 0x3E, 0x80, 0x00, 0x00, 0x3F, 0x33, 0x33, 0x33, - 0x41, 0x70, 0x00, 0x00, 0x40, 0x20, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3F, 0x00, - 0x00, 0x00, 0x3E, 0xCC, 0xCC, 0xCD, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0xA6, 0x66, 0x66, +daAlinkHIO_atnMove_c1 const daAlinkHIO_atnMove_c0::m = { + 3000, 2000, 6, 1.2f, 1.1f, 1.5f, 0.5f, 0.6f, 13.0f, 6.0f, 7.5f, + 0.7f, 1.4f, 0.25f, 0.7f, 15.0f, 2.5f, 8.0f, 0.5f, 0.4f, 1.0f, 1.3f }; -COMPILER_STRIP_GATE(0x8038D714, &daAlinkHIO_atnMove_c0::m); /* 8038D768-8038D7BC 019DC8 0054+00 3/9 0/0 0/0 .rodata m__26daAlinkHIO_noActAtnMove_c0 */ SECTION_RODATA u8 const daAlinkHIO_noActAtnMove_c0::m[84] = { @@ -5109,16 +5081,12 @@ SECTION_RODATA u8 const daAlinkHIO_noActAtnMove_c0::m[84] = { COMPILER_STRIP_GATE(0x8038D768, &daAlinkHIO_noActAtnMove_c0::m); /* 8038D7BC-8038D82C 019E1C 0070+00 5/7 0/0 0/0 .rodata m__23daAlinkHIO_frontRoll_c0 */ -SECTION_RODATA u8 const daAlinkHIO_frontRoll_c0::m[112] = { - 0x00, 0x1D, 0x00, 0x00, 0x3F, 0x8C, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x41, 0xB0, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x3F, 0x4C, 0xCC, 0xCD, 0x40, 0x40, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x41, 0xC8, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x3F, 0x99, 0x99, 0x9A, - 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x41, 0xC8, 0x00, 0x00, 0x27, 0x10, 0x00, 0x05, - 0x03, 0xE8, 0x00, 0x64, 0x40, 0x40, 0x00, 0x00, 0x3F, 0xA6, 0x66, 0x66, 0x41, 0xC8, 0x00, 0x00, - 0x41, 0x20, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, - 0x41, 0x40, 0x00, 0x00, 0x41, 0x10, 0x00, 0x00, 0x41, 0x98, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, +daAlinkHIO_frontRoll_c1 const daAlinkHIO_frontRoll_c0::m = { + { 29, 1.1f, 0.0f, 3.0f, 22.0f }, + { 29, 0.8f, 3.0f, 2.0f, 25.0f }, + { 33, 1.2f, 0.0f, 1.0f, 25.0f }, + 10000, 5, 1000, 100, 3.0f, 1.3f, 25.0f, 10.0f, 3.0f, 15.0f, 10.0f, 12.0f, 9.0f, 19.0f, 60.0f }; -COMPILER_STRIP_GATE(0x8038D7BC, &daAlinkHIO_frontRoll_c0::m); /* 8038D82C-8038D864 019E8C 0038+00 5/5 0/0 0/0 .rodata m__22daAlinkHIO_backJump_c0 */ SECTION_RODATA u8 const daAlinkHIO_backJump_c0::m[56] = { @@ -5130,29 +5098,22 @@ SECTION_RODATA u8 const daAlinkHIO_backJump_c0::m[56] = { COMPILER_STRIP_GATE(0x8038D82C, &daAlinkHIO_backJump_c0::m); /* 8038D864-8038D8CC 019EC4 0068+00 3/3 0/0 0/0 .rodata m__22daAlinkHIO_sideStep_c0 */ -SECTION_RODATA u8 const daAlinkHIO_sideStep_c0::m[104] = { - 0x00, 0x05, 0x00, 0x00, 0x3F, 0x8C, 0xCC, 0xCD, 0x3F, 0x80, 0x00, 0x00, 0x40, 0x40, 0x00, - 0x00, 0x40, 0xC0, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x3F, - 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x40, 0xE0, 0x00, 0x00, - 0x00, 0x09, 0x00, 0x00, 0x3F, 0x8C, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, - 0x00, 0x40, 0x80, 0x00, 0x00, 0x41, 0xE0, 0x00, 0x00, 0x41, 0xB0, 0x00, 0x00, 0x41, 0xC8, - 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, +daAlinkHIO_sideStep_c1 const daAlinkHIO_sideStep_c0::m = { + { 5, 1.1f, 1.0f, 3.0f, 6.0f }, + { 9, 1.0f, 0.0f, 3.0f, 2.0f }, + { 6, 1.0f, 0.0f, 3.0f, 7.0f }, + { 9, 1.1f, 0.0f, 3.0f, 4.0f }, + 28.0f, 22.0f, 25.0f, 20.0f, 100.0f, 10.0f }; -COMPILER_STRIP_GATE(0x8038D864, &daAlinkHIO_sideStep_c0::m); /* 8038D8CC-8038D944 019F2C 0078+00 5/10 0/0 0/0 .rodata m__19daAlinkHIO_slide_c0 */ -SECTION_RODATA u8 const daAlinkHIO_slide_c0::m[120] = { - 0x00, 0x0E, 0x00, 0x00, 0x3F, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xA0, 0x00, - 0x00, 0x41, 0x70, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x3F, 0x66, 0x66, 0x66, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x40, 0xE0, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x3F, - 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0x10, 0x00, 0x00, - 0x00, 0x14, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, - 0x00, 0x41, 0x80, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x42, 0x48, - 0x00, 0x00, 0x41, 0xD8, 0x00, 0x00, 0x3E, 0x4C, 0xCC, 0xCD, 0x41, 0x40, 0x00, 0x00, 0x42, - 0x48, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x42, 0x04, 0x00, 0x00, 0x3F, 0x99, 0x99, 0x9A, -}; -COMPILER_STRIP_GATE(0x8038D8CC, &daAlinkHIO_slide_c0::m); +daAlinkHIO_slide_c1 const daAlinkHIO_slide_c0::m = { + { 14, 0.75f, 0.0f, 5.0f, 15.0f }, + { 6, 0.9f, 0.0f, 3.0f, 7.0f }, + { 15, 1.0f, 0.0f, 3.0f, 9.0f }, + { 20, 1.0f, 0.0f, 3.0f, 16.0f }, + 40.0f, 3.0f, 50.0f, 27.0f, 0.2f, 12.0f, 50.0f, 3.0f, 33.0f, 1.2f +}; /* 8038D944-8038D964 019FA4 0020+00 0/1 0/0 0/0 .rodata m__20daAlinkHIO_cutNmV_c0 */ #pragma push @@ -5282,14 +5243,11 @@ SECTION_RODATA u8 const daAlinkHIO_cutFnJU_c0::m[84] = { COMPILER_STRIP_GATE(0x8038DAEC, &daAlinkHIO_cutFnJU_c0::m); /* 8038DB40-8038DB84 01A1A0 0044+00 4/4 0/0 0/0 .rodata m__21daAlinkHIO_cutJump_c0 */ -SECTION_RODATA u8 const daAlinkHIO_cutJump_c0::m[68] = { - 0x00, 0x11, 0x00, 0x00, 0x3F, 0x8C, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, - 0x00, 0x00, 0x41, 0x90, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x10, 0x00, 0x00, 0x41, 0xC8, - 0x00, 0x00, 0x41, 0xD8, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, 0x41, 0x50, 0x00, 0x00, - 0x41, 0x50, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, +daAlinkHIO_cutJump_c1 const daAlinkHIO_cutJump_c0::m = { + { 17, 1.1f, 0.0f, 2.0f, 18.0f }, + { 29, 1.0f, 2.0f, 0.0f, 9.0f }, + 25.0f, 27.0f, 15.0f, 13.0f, 13.0f, 1.0f, 3.0f }; -COMPILER_STRIP_GATE(0x8038DB40, &daAlinkHIO_cutJump_c0::m); /* 8038DB84-8038DC1C 01A1E4 0098+00 5/6 0/0 0/0 .rodata m__21daAlinkHIO_cutTurn_c0 */ SECTION_RODATA u8 const daAlinkHIO_cutTurn_c0::m[152] = { @@ -5425,19 +5383,16 @@ SECTION_RODATA u8 const daAlinkHIO_cutLargeJump_c0::m[116] = { COMPILER_STRIP_GATE(0x8038DE18, &daAlinkHIO_cutLargeJump_c0::m); /* 8038DE8C-8038DF28 01A4EC 009C+00 21/30 0/0 0/0 .rodata m__17daAlinkHIO_cut_c0 */ -SECTION_RODATA u8 const daAlinkHIO_cut_c0::m[156] = { - 0x00, 0x12, 0x00, 0x00, 0xBF, 0x8C, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0xBF, 0x80, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x3F, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x40, 0x00, 0x00, 0x41, 0xB8, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x41, 0xD8, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x0F, 0x00, 0x08, 0x00, 0x0A, 0x00, 0x5A, 0x00, 0x4B, 0x0F, 0xA0, - 0xF0, 0x60, 0x00, 0x1E, 0x41, 0x40, 0x00, 0x00, 0x3F, 0xA0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x3F, 0xCC, 0xCC, 0xCD, 0x42, 0x34, 0x00, 0x00, 0x3F, 0xD3, 0x33, 0x33, - 0x42, 0x82, 0x00, 0x00, 0x3F, 0x9A, 0xE1, 0x48, 0x42, 0x0C, 0x00, 0x00, 0x40, 0x13, 0x33, 0x33, - 0x40, 0x0C, 0xCC, 0xCD, 0x42, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8038DE8C, &daAlinkHIO_cut_c0::m); +daAlinkHIO_cut_c1 const daAlinkHIO_cut_c0::m = { + { 18, -1.100f, 0.0f, 3.0f, -1.0f }, + { 22, 0.9f, 0.0f, 3.0f, 23.0f }, + { 45, 1.0f, 0.0f, 3.0f, 15.0f }, + { 47, 1.0f, 0.0f, 5.0f, 27.0f }, + 0, 1, 15, 8, 10, 90, 75, 4000, -4000, 30, + 12.0f, 1.250f, 1.0f, 1.0f, 1.6f, 45.0f, + 1.65f, 65.0f, 1.21f, 35.0f, 2.3f, 2.2f, 65.0f, + 0.0f +}; /* 8038DF28-8038DF4C 01A588 0024+00 1/1 0/0 0/0 .rodata m__21daAlinkHIO_gAtPush_c0 */ SECTION_RODATA u8 const daAlinkHIO_gAtPush_c0::m[36] = { @@ -5459,12 +5414,10 @@ COMPILER_STRIP_GATE(0x8038DF4C, &daAlinkHIO_gAtKick_c0::m); #pragma pop /* 8038DF70-8038DF9C 01A5D0 002C+00 4/4 0/0 0/0 .rodata m__22daAlinkHIO_turnMove_c0 */ -SECTION_RODATA u8 const daAlinkHIO_turnMove_c0::m[44] = { - 0x00, 0x1B, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, - 0x00, 0x41, 0xB0, 0x00, 0x00, 0x00, 0x05, 0x09, 0xC4, 0x00, 0xC8, 0x03, 0xE8, 0x3F, 0x8C, - 0xCC, 0xCD, 0x41, 0x98, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x41, 0xC8, 0x00, 0x00, +daAlinkHIO_turnMove_c1 const daAlinkHIO_turnMove_c0::m = { + { 27, 1.0f, 0.0f, 3.0f, 22.0f }, + 5, 2500, 200, 1000, 1.1f, 19.0f, 1.5f, 25.0f, }; -COMPILER_STRIP_GATE(0x8038DF70, &daAlinkHIO_turnMove_c0::m); /* 8038DF9C-8038E01C 01A5FC 0080+00 6/7 0/0 0/0 .rodata m__19daAlinkHIO_guard_c0 */ SECTION_RODATA u8 const daAlinkHIO_guard_c0::m[128] = { @@ -5552,11 +5505,9 @@ SECTION_RODATA u8 const daAlinkHIO_wallFall_c0::m[40] = { COMPILER_STRIP_GATE(0x8038E1B8, &daAlinkHIO_wallFall_c0::m); /* 8038E1E0-8038E1F4 01A840 0014+00 2/2 0/0 0/0 .rodata m__22daAlinkHIO_wallMove_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wallMove_c0::m[20] = { - 0x3F, 0x4C, 0xCC, 0xCD, 0x3F, 0x8C, 0xCC, 0xCD, 0x40, 0x40, - 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, +daAlinkHIO_wallMove_c1 const daAlinkHIO_wallMove_c0::m = { + 0.8f, 1.1f, 3.0f, 2.0f, 3.0f }; -COMPILER_STRIP_GATE(0x8038E1E0, &daAlinkHIO_wallMove_c0::m); /* 8038E1F4-8038E210 01A854 001C+00 2/5 0/0 0/0 .rodata m__22daAlinkHIO_wallHang_c0 */ SECTION_RODATA u8 const daAlinkHIO_wallHang_c0::m[28] = { @@ -5749,14 +5700,10 @@ SECTION_RODATA u8 const daAlinkHIO_boom_c0::m[76] = { COMPILER_STRIP_GATE(0x8038E6C8, &daAlinkHIO_boom_c0::m); /* 8038E714-8038E760 01AD74 004C+00 14/14 0/0 0/0 .rodata m__18daAlinkHIO_bomb_c0 */ -SECTION_RODATA u8 const daAlinkHIO_bomb_c0::m[76] = { - 0x00, 0xA0, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0xC0, 0x86, 0x66, 0x66, 0xC2, 0xC8, 0x00, 0x00, - 0x3E, 0xB3, 0x33, 0x33, 0x40, 0x00, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0x3F, 0xA6, 0x66, 0x66, - 0x43, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x4C, 0xCC, 0xCD, 0xC0, 0xE0, 0x00, 0x00, - 0x41, 0xD0, 0x00, 0x00, 0x42, 0x04, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, - 0x42, 0x20, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, +daAlinkHIO_bomb_c1 const daAlinkHIO_bomb_c0::m = { + 160, 50, 50, -4.2f, -100.0f, 0.350f, 2.0f, 20.0f, 1.3f, 225.0f, 0.0f, -0.8f, -7.0f, 26.0f, 33.0f, + 10.0f, 15.0f, 40.0f, 15.0f, 300.0f }; -COMPILER_STRIP_GATE(0x8038E714, &daAlinkHIO_bomb_c0::m); /* 8038E760-8038E77C 01ADC0 001C+00 0/1 0/0 0/0 .rodata m__21daAlinkHIO_huLight_c0 */ #pragma push @@ -5787,14 +5734,10 @@ SECTION_RODATA u8 const daAlinkHIO_fmChain_c0::m[40] = { COMPILER_STRIP_GATE(0x8038E7CC, &daAlinkHIO_fmChain_c0::m); /* 8038E7F4-8038E840 01AE54 004C+00 17/21 0/0 0/0 .rodata m__24daAlinkHIO_magneBoots_c0 */ -SECTION_RODATA u8 const daAlinkHIO_magneBoots_c0::m[76] = { - 0x00, 0x1D, 0x00, 0x00, 0x3F, 0x8C, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x41, 0xB8, 0x00, 0x00, 0x3E, 0xCC, 0xCC, 0xCD, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0xE6, 0x66, 0x66, - 0x3F, 0x33, 0x33, 0x33, 0x3F, 0x40, 0x00, 0x00, 0x3E, 0xE6, 0x66, 0x66, 0x3F, 0x19, 0x99, 0x9A, - 0x42, 0x48, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x3E, 0xB3, 0x33, 0x33, 0x3E, 0x99, 0x99, 0x9A, - 0x3F, 0x33, 0x33, 0x33, 0x3F, 0x4C, 0xCC, 0xCD, 0x3F, 0x33, 0x33, 0x33, +daAlinkHIO_magneBoots_c1 const daAlinkHIO_magneBoots_c0::m = { + {29, 1.1f, 0.0f, 3.0f, 23.0f}, + 0.4f, 1.0f, 1.8f, 0.7f, 0.75f, 0.45, 0.6f, 50.0f, 10.0f, 0.35f, 0.3f, 0.7f, 0.8f, 0.7f }; -COMPILER_STRIP_GATE(0x8038E7F4, &daAlinkHIO_magneBoots_c0::m); /* 8038E840-8038E870 01AEA0 0030+00 6/6 0/0 0/0 .rodata m__20daAlinkHIO_pickUp_c0 */ SECTION_RODATA u8 const daAlinkHIO_pickUp_c0::m[48] = { @@ -6293,13 +6236,10 @@ SECTION_RODATA u8 const daAlinkHIO_wlAtBite_c0::m[92] = { COMPILER_STRIP_GATE(0x8038F748, &daAlinkHIO_wlAtBite_c0::m); /* 8038F7A4-8038F7DC 01BE04 0038+00 7/10 0/0 0/0 .rodata m__22daAlinkHIO_wlAttack_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlAttack_c0::m[56] = { - 0x00, 0x3B, 0x00, 0x00, 0x3F, 0x99, 0x99, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, - 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x05, 0x42, 0xC8, 0x00, 0x00, - 0x41, 0x20, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x43, 0x66, 0x00, 0x00, 0x41, 0x20, - 0x00, 0x00, 0x41, 0x40, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, +daAlinkHIO_wlAttack_c1 const daAlinkHIO_wlAttack_c0::m = { + { 59, 1.2f, 0.0f, 2.0f, 5.0f }, + 15, 5, 100.0f, 10.0f, 5.0f, 230.0f, 10.0f, 12.0f, 35.0f, 30.0f }; -COMPILER_STRIP_GATE(0x8038F7A4, &daAlinkHIO_wlAttack_c0::m); /* 8038F7DC-8038F858 01BE3C 007C+00 5/5 0/0 0/0 .rodata m__21daAlinkHIO_wlPoint_c0 */ SECTION_RODATA u8 const daAlinkHIO_wlPoint_c0::m[124] = { @@ -6444,7 +6384,7 @@ asm void daAlink_c::commonLineCheck(cXyz* param_0, cXyz* param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::getMoveBGActorName(cBgS_PolyInfo& param_0, int param_1) { +asm s16 daAlink_c::getMoveBGActorName(cBgS_PolyInfo& param_0, int param_1) { nofralloc #include "asm/d/a/d_a_alink/getMoveBGActorName__9daAlink_cFR13cBgS_PolyInfoi.s" } @@ -7405,101 +7345,81 @@ COMPILER_STRIP_GATE(0x80391734, &lit_5908); /* 80391740-80391754 01DDA0 0014+00 0/1 0/0 0/0 .rodata atnNormalType1$6976 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const atnNormalType1[20] = { - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +static int const atnNormalType1[5] = { + 4, 1, 1, 2, 0 }; -COMPILER_STRIP_GATE(0x80391740, &atnNormalType1); #pragma pop /* 80391754-80391768 01DDB4 0014+00 0/1 0/0 0/0 .rodata atnNormalType2$6977 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const atnNormalType2[20] = { - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, +static int const atnNormalType2[5] = { + 3, 0, 0, 1, 1 }; -COMPILER_STRIP_GATE(0x80391754, &atnNormalType2); #pragma pop /* 80391768-8039177C 01DDC8 0014+00 0/1 0/0 0/0 .rodata atnNormalType3$6978 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const atnNormalType3[20] = { - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +static int const atnNormalType3[5] = { + 4, 1, 1, 0, 0 }; -COMPILER_STRIP_GATE(0x80391768, &atnNormalType3); #pragma pop /* 8039177C-80391790 01DDDC 0014+00 0/1 0/0 0/0 .rodata atnFinishType$6979 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const atnFinishType[20] = { - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, +static int const atnFinishType[5] = { + 2, 1, 0, 5, 1 }; -COMPILER_STRIP_GATE(0x8039177C, &atnFinishType); #pragma pop /* 80391790-803917A4 01DDF0 0014+00 0/1 0/0 0/0 .rodata hitType$6980 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const hitType[20] = { - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +static int const hitType[5] = { + 4, 0, 5, 0, 1 }; -COMPILER_STRIP_GATE(0x80391790, &hitType); #pragma pop /* 803917A4-803917B8 01DE04 0014+00 0/1 0/0 0/0 .rodata hitFinishType$6981 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const hitFinishType[20] = { - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +static int const hitFinishType[5] = { + 2, 1, 0, 5, 0 }; -COMPILER_STRIP_GATE(0x803917A4, &hitFinishType); #pragma pop /* 803917B8-803917CC 01DE18 0014+00 0/1 0/0 0/0 .rodata normalType1$6982 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const normalType1_6982[20] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, +static int const normalType1_6982[5] = { + 0, 2, 1, 2, 1 }; -COMPILER_STRIP_GATE(0x803917B8, &normalType1_6982); #pragma pop /* 803917CC-803917E0 01DE2C 0014+00 0/1 0/0 0/0 .rodata normalType2$6983 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const normalType2[20] = { - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, +static int const normalType2[5] = { + 1, 1, 2, 1, 2 }; -COMPILER_STRIP_GATE(0x803917CC, &normalType2); #pragma pop /* 803917E0-803917F4 01DE40 0014+00 0/1 0/0 0/0 .rodata normalType3$6984 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const normalType3[20] = { - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, +static int const normalType3[5] = { + 4, 0, 1, 2, 1 }; -COMPILER_STRIP_GATE(0x803917E0, &normalType3); #pragma pop /* 803917F4-80391808 01DE54 0014+00 0/1 0/0 0/0 .rodata finishType$6985 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const finishType[20] = { - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, +static int const finishType[5] = { + 2, 0, 0, 5, 1 }; -COMPILER_STRIP_GATE(0x803917F4, &finishType); #pragma pop /* 80391808-80391858 01DE68 0050+00 0/1 0/0 0/0 .rodata cutParamTable$7312 */ @@ -7530,28 +7450,24 @@ COMPILER_STRIP_GATE(0x80391858, &cutParamTable_7455); #pragma pop /* 803918B8-803918C4 01DF18 000C+00 1/1 0/0 0/0 .rodata localCenter$11047 */ -SECTION_RODATA static u8 const localCenter[12] = { - 0xC1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x90, 0x00, 0x00, +static Vec const localCenter = { + -15.0f, 0.0f, 18.0f }; -COMPILER_STRIP_GATE(0x803918B8, &localCenter); /* 803918C4-803918D0 01DF24 000C+00 1/1 0/0 0/0 .rodata localPos$11819 */ -SECTION_RODATA static u8 const localPos[12] = { - 0x40, 0x5C, 0xCC, 0xCD, 0x42, 0x35, 0x47, 0xAE, 0xC0, 0xE0, 0x00, 0x00, +static Vec const localPos = { + 3.45f, 45.32f, -7.0f }; -COMPILER_STRIP_GATE(0x803918C4, &localPos); /* 803918D0-803918DC 01DF30 000C+00 1/1 0/0 0/0 .rodata slingLocalPos$12042 */ -SECTION_RODATA static u8 const slingLocalPos[12] = { - 0x41, 0x20, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +static Vec const slingLocalPos = { + 10.0f, 10.0f, 0.0f }; -COMPILER_STRIP_GATE(0x803918D0, &slingLocalPos); /* 803918DC-803918E8 01DF3C 000C+00 1/1 0/0 0/0 .rodata localSidePos$14270 */ -SECTION_RODATA static u8 const localSidePos[12] = { - 0x40, 0x13, 0x33, 0x33, 0xC1, 0x78, 0x00, 0x00, 0x41, 0x79, 0x99, 0x9A, +static Vec const localSidePos = { + 2.3f, -15.5f, 15.6f }; -COMPILER_STRIP_GATE(0x803918DC, &localSidePos); /* 803918E8-803918F4 01DF48 000C+00 0/1 0/0 0/0 .rodata m_handLeftOutSidePos__9daAlink_c */ #pragma push @@ -14334,7 +14250,8 @@ asm void daAlink_c::createHeap() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J3DMaterialAnm::~J3DMaterialAnm() { +// asm J3DMaterialAnm::~J3DMaterialAnm() { +extern "C" asm void __dt__14J3DMaterialAnmFv() { nofralloc #include "asm/d/a/d_a_alink/__dt__14J3DMaterialAnmFv.s" } @@ -14342,14 +14259,9 @@ asm J3DMaterialAnm::~J3DMaterialAnm() { /* 800A48F0-800A4910 09F230 0020+00 1/1 0/0 0/0 .text daAlink_createHeap__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daAlink_createHeap(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_alink/daAlink_createHeap__FP10fopAc_ac_c.s" +static void daAlink_createHeap(fopAc_ac_c* param_0) { + daAlink_c::createHeap(); } -#pragma pop /* 800A4910-800A4BC8 09F250 02B8+00 5/5 0/0 0/0 .text setSelectEquipItem__9daAlink_cFi */ #pragma push @@ -14362,24 +14274,16 @@ asm void daAlink_c::setSelectEquipItem(int param_0) { #pragma pop /* 800A4BC8-800A4C40 09F508 0078+00 2/2 0/0 0/0 .text checkBoarStart__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkBoarStart() { - nofralloc -#include "asm/d/a/d_a_alink/checkBoarStart__9daAlink_cFv.s" +BOOL daAlink_c::checkBoarStart() { + // Stage: Bulblin Camp Room: Outside Arbiter's + return (checkStageName("F_SP118") && getStartRoomNo() == 3) && dComIfGs_getStartPoint() == 0; } -#pragma pop /* 800A4C40-800A4CB4 09F580 0074+00 2/2 0/0 0/0 .text checkCanoeStart__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkCanoeStart() { - nofralloc -#include "asm/d/a/d_a_alink/checkCanoeStart__9daAlink_cFv.s" +BOOL daAlink_c::checkCanoeStart() { + // Stage: Lake Hylia Room: Lake + return (checkStageName("F_SP115") && getStartRoomNo() == 0) && dComIfGs_getStartPoint() == 2; } -#pragma pop /* 800A4CB4-800A54F4 09F5F4 0840+00 1/1 0/0 0/0 .text playerInit__9daAlink_cFv */ #pragma push @@ -14393,13 +14297,7 @@ asm void daAlink_c::playerInit() { /* 800A54F4-800A551C 09FE34 0028+00 3/3 0/0 0/0 .text checkHorseStart__9daAlink_cFUli */ BOOL daAlink_c::checkHorseStart(u32 pLastMode, int pStartMode) { - bool horseStart = false; - - if (pLastMode == 1 || pStartMode == 2 || pLastMode == 8) { - horseStart = true; - } - - return horseStart; + return pLastMode == 1 || pStartMode == 2 || pLastMode == 8; } /* 800A551C-800A5CC8 09FE5C 07AC+00 1/1 0/0 0/0 .text setStartProcInit__9daAlink_cFv */ @@ -14414,7 +14312,7 @@ asm void daAlink_c::setStartProcInit() { /* ############################################################################################## */ /* 80450FCC-80450FD0 0004CC 0004+00 1/1 0/0 0/0 .sbss bgWaitFlg$58404 */ -static u8 bgWaitFlg[4]; +static s32 bgWaitFlg; /* 80450FD0-80450FD8 -00001 0008+00 2/2 0/0 0/0 .sbss None */ /* 80450FD0 0001+00 data_80450FD0 None */ @@ -15063,24 +14961,21 @@ asm void daAlink_c::setWolfCollisionPos() { #pragma pop /* 800ABAE0-800ABB28 0A6420 0048+00 2/2 0/0 0/0 .text initLockAt__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::initLockAt() { - nofralloc -#include "asm/d/a/d_a_alink/initLockAt__9daAlink_cFv.s" +void daAlink_c::initLockAt() { + field_0x122C[0].OnAtSPrmBit(0x20); + field_0x122C[0].OnAtNoHitMark(); + field_0x122C[0].OffAtNoConHit(); + field_0x122C[0].ResetAtHit(); } -#pragma pop /* 800ABB28-800ABB84 0A6468 005C+00 3/3 0/0 0/0 .text cancelLockAt__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::cancelLockAt() { - nofralloc -#include "asm/d/a/d_a_alink/cancelLockAt__9daAlink_cFv.s" +void daAlink_c::cancelLockAt() { + field_0x122C[0].OffAtSPrmBit(0x20); + field_0x122C[0].OffAtNoHitMark(); + field_0x122C[0].OnAtNoConHit(); + field_0x122C[0].ResetAtHit(); + field_0x814.SetAtApid(0xFFFFFFFF); } -#pragma pop /* 800ABB84-800ABDB8 0A64C4 0234+00 1/1 0/0 0/0 .text setCollisionPos__9daAlink_cFv */ #pragma push @@ -15113,26 +15008,28 @@ asm float daAlink_c::getBaseAnimeFrame() const { #pragma pop /* 800AC378-800AC394 0A6CB8 001C+00 1/0 0/0 0/0 .text setAnimeFrame__9daAlink_cFf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setAnimeFrame(f32 param_0) { - nofralloc -#include "asm/d/a/d_a_alink/setAnimeFrame__9daAlink_cFf.s" +void daAlink_c::setAnimeFrame(f32 frame) { + mFrameCtrl1[0].setFrame(frame); + mFrameCtrl1[1].setFrame(frame); + mFrameCtrl1[2].setFrame(frame); + mFrameCtrl2[0].setFrame(frame); + mFrameCtrl2[1].setFrame(frame); + mFrameCtrl2[2].setFrame(frame); } -#pragma pop /* 800AC394-800AC450 0A6CD4 00BC+00 6/6 0/0 0/0 .text * setFrameCtrl__9daAlink_cFP16daPy_frameCtrl_cUcssff */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setFrameCtrl(daPy_frameCtrl_c* param_0, u8 param_1, s16 param_2, s16 param_3, - f32 param_4, f32 param_5) { - nofralloc -#include "asm/d/a/d_a_alink/setFrameCtrl__9daAlink_cFP16daPy_frameCtrl_cUcssff.s" +void daAlink_c::setFrameCtrl(daPy_frameCtrl_c* p_ctrl, u8 attr, s16 start, s16 end, + f32 rate, f32 frame) { + if (i_checkNoResetFlg0(UNDER_WATER_MOVEMENT)) { + if (checkZoraWearAbility()) { + rate *= daAlinkHIO_magneBoots_c0::m.mZoraWaterAnmSpeed; + } else { + rate *= daAlinkHIO_magneBoots_c0::m.mWaterWalkAnmRate; + } + } + p_ctrl->setFrameCtrl(attr, start, end, rate, frame); } -#pragma pop /* ############################################################################################## */ /* 80453278-80453280 001878 0008+00 1/1 0/0 0/0 .sdata2 kandelaarAnm$62207 */ @@ -15187,14 +15084,13 @@ asm void daAlink_c::getUnderUpperAnime(daAlink_c::daAlink_ANM param_0, J3DAnmTra #pragma pop /* 800AC738-800AC754 0A7078 001C+00 7/7 0/0 0/0 .text setDoubleAnimeBlendRatio__9daAlink_cFf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setDoubleAnimeBlendRatio(f32 param_0) { - nofralloc -#include "asm/d/a/d_a_alink/setDoubleAnimeBlendRatio__9daAlink_cFf.s" +void daAlink_c::setDoubleAnimeBlendRatio(f32 param_0) { + f32 tmp = lit_6040; // remove later + field_0x1f28[0].setRatio(tmp - param_0); + field_0x1f28[1].setRatio(param_0); + field_0x1f40[0].setRatio(tmp - param_0); + field_0x1f40[1].setRatio(param_0); } -#pragma pop /* 800AC754-800ACA14 0A7094 02C0+00 2/2 0/0 0/0 .text * commonDoubleAnime__9daAlink_cFP15J3DAnmTransformP15J3DAnmTransformP15J3DAnmTransformP15J3DAnmTransformfffi @@ -15237,37 +15133,22 @@ asm void daAlink_c::commonSingleAnime(J3DAnmTransform* param_0, J3DAnmTransform* /* 800ACF80-800ACFB0 0A78C0 0030+00 88/88 0/0 0/0 .text * setSingleAnimeBase__9daAlink_cFQ29daAlink_c11daAlink_ANM */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setSingleAnimeBase(daAlink_c::daAlink_ANM param_0) { - nofralloc -#include "asm/d/a/d_a_alink/setSingleAnimeBase__9daAlink_cFQ29daAlink_c11daAlink_ANM.s" +void daAlink_c::setSingleAnimeBase(daAlink_c::daAlink_ANM anm) { + setSingleAnime(anm, lit_6040, FLOAT_LABEL(lit_6108), -1, lit_6109); } -#pragma pop /* 800ACFB0-800ACFE0 0A78F0 0030+00 27/27 0/0 0/0 .text * setSingleAnimeBaseMorf__9daAlink_cFQ29daAlink_c11daAlink_ANMf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setSingleAnimeBaseMorf(daAlink_c::daAlink_ANM param_0, f32 param_1) { - nofralloc -#include "asm/d/a/d_a_alink/setSingleAnimeBaseMorf__9daAlink_cFQ29daAlink_c11daAlink_ANMf.s" +void daAlink_c::setSingleAnimeBaseMorf(daAlink_c::daAlink_ANM anm, f32 param_1) { + setSingleAnime(anm, lit_6040, FLOAT_LABEL(lit_6108), -1, param_1); } -#pragma pop /* 800ACFE0-800AD00C 0A7920 002C+00 77/77 0/0 0/0 .text * setSingleAnimeBaseSpeed__9daAlink_cFQ29daAlink_c11daAlink_ANMff */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setSingleAnimeBaseSpeed(daAlink_c::daAlink_ANM param_0, f32 param_1, +void daAlink_c::setSingleAnimeBaseSpeed(daAlink_c::daAlink_ANM anm, f32 param_1, f32 param_2) { - nofralloc -#include "asm/d/a/d_a_alink/setSingleAnimeBaseSpeed__9daAlink_cFQ29daAlink_c11daAlink_ANMff.s" + setSingleAnime(anm, param_1, FLOAT_LABEL(lit_6108), -1, param_2); } -#pragma pop /* 800AD00C-800AD0F4 0A794C 00E8+00 58/58 0/0 0/0 .text * setSingleAnime__9daAlink_cFQ29daAlink_c11daAlink_ANMffsf */ @@ -15295,14 +15176,12 @@ asm void daAlink_c::setSingleAnimeParam(daAlink_c::daAlink_ANM param_0, /* 800AD128-800AD170 0A7A68 0048+00 1/1 0/0 0/0 .text * animePlay__9daAlink_cFP15J3DAnmTransformP16daPy_frameCtrl_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::animePlay(J3DAnmTransform* param_0, daPy_frameCtrl_c* param_1) { - nofralloc -#include "asm/d/a/d_a_alink/animePlay__9daAlink_cFP15J3DAnmTransformP16daPy_frameCtrl_c.s" +void daAlink_c::animePlay(J3DAnmTransform* param_0, daPy_frameCtrl_c* param_1) { + if (param_0 != NULL) { + param_1->updateFrame(); + param_0->setFrame(param_1->getFrame()); + } } -#pragma pop /* 800AD170-800AD2D8 0A7AB0 0168+00 2/2 0/0 0/0 .text allAnimePlay__9daAlink_cFv */ #pragma push @@ -15891,13 +15770,13 @@ asm void daAlink_c::setPlayerPosAndAngle(f32 (*param_0)[4]) { /* 800B25CC-800B25E8 0ACF0C 001C+00 16/16 0/0 0/0 .text itemTriggerCheck__9daAlink_cFUc */ -u32 daAlink_c::itemTriggerCheck(u8 pTrigger) { +BOOL daAlink_c::itemTriggerCheck(u8 pTrigger) { field_0x2fae |= pTrigger; return mItemTrigger & pTrigger; } /* 800B25E8-800B2604 0ACF28 001C+00 11/11 0/0 0/0 .text itemButtonCheck__9daAlink_cFUc */ -u32 daAlink_c::itemButtonCheck(u8 pButton) { +BOOL daAlink_c::itemButtonCheck(u8 pButton) { field_0x2fae |= pButton; return mItemButton & pButton; } @@ -15918,12 +15797,12 @@ void daAlink_c::spActionTrigger() { itemTriggerCheck(64); } -u32 daAlink_c::midnaTalkTrigger() const { +BOOL daAlink_c::midnaTalkTrigger() const { return mItemTrigger & 4; } -void daAlink_c::swordSwingTrigger() { - itemTriggerCheck(8); +BOOL daAlink_c::swordSwingTrigger() { + return itemTriggerCheck(8); } /* 800B26DC-800B26FC 0AD01C 0020+00 2/2 0/0 0/0 .text setItemActionButtonStatus__9daAlink_cFUc */ @@ -15991,7 +15870,7 @@ void daAlink_c::setBStatus(u8 status) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkAtnWaitAnime() { +asm BOOL daAlink_c::checkAtnWaitAnime() { nofralloc #include "asm/d/a/d_a_alink/checkAtnWaitAnime__9daAlink_cFv.s" } @@ -15999,14 +15878,15 @@ asm void daAlink_c::checkAtnWaitAnime() { /* 800B3358-800B33E4 0ADC98 008C+00 2/2 0/0 0/0 .text * setTiredVoice__9daAlink_cFP16daPy_frameCtrl_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setTiredVoice(daPy_frameCtrl_c* param_0) { - nofralloc -#include "asm/d/a/d_a_alink/setTiredVoice__9daAlink_cFP16daPy_frameCtrl_c.s" +void daAlink_c::setTiredVoice(daPy_frameCtrl_c* param_0) { + if (param_0->checkPass(lit_7448)) { + if (i_dComIfGs_getLife() <= 2) { + voiceStart(Z2SE_AL_V_TIRED_L); + } else { + voiceStart(Z2SE_AL_V_TIRED_S); + } + } } -#pragma pop /* 800B33E4-800B3494 0ADD24 00B0+00 4/4 0/0 0/0 .text checkRestHPAnime__9daAlink_cFv */ #pragma push @@ -16144,22 +16024,20 @@ asm void daAlink_c::checkServiceWaitMode() { #pragma pop /* 800B48D0-800B4908 0AF210 0038+00 18/18 0/0 0/0 .text setJumpMode__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setJumpMode() { - nofralloc -#include "asm/d/a/d_a_alink/setJumpMode__9daAlink_cFv.s" +void daAlink_c::setJumpMode() { + onModeFlg(MODE_JUMP); + field_0x34f8 = mCurrent.mPosition; + field_0x33c4 = field_0x34f8.y; + field_0x33c8 = field_0x34f8.y; } -#pragma pop /* 800B4908-800B4918 0AF248 0010+00 0/0 0/0 1/1 .text getMetamorphoseNearDis__9daAlink_cCFv */ -float daAlink_c::getMetamorphoseNearDis() const { +f32 daAlink_c::getMetamorphoseNearDis() const { return daAlinkHIO_basic_c0::m.mTransformBlockNearDis; } /* 800B4918-800B4928 0AF258 0010+00 0/0 0/0 1/1 .text getMetamorphoseFarDis__9daAlink_cCFv */ -float daAlink_c::getMetamorphoseFarDis() const { +f32 daAlink_c::getMetamorphoseFarDis() const { return daAlinkHIO_basic_c0::m.mTransformBlockFarDis; } @@ -16169,24 +16047,27 @@ s16 daAlink_c::getMetamorphoseFarAngle() const { } /* 800B4938-800B4950 0AF278 0018+00 0/0 1/1 0/0 .text setMidnaMsg__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setMidnaMsg() { - nofralloc -#include "asm/d/a/d_a_alink/setMidnaMsg__9daAlink_cFv.s" +void daAlink_c::setMidnaMsg() { + if (mMidnaMsg != NULL) { + mMidnaMsg->onUseFlg(); + } } -#pragma pop /* 800B4950-800B4A08 0AF290 00B8+00 3/3 0/0 0/0 .text notTalk__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::notTalk() { - nofralloc -#include "asm/d/a/d_a_alink/notTalk__9daAlink_cFv.s" +bool daAlink_c::notTalk() { + BOOL chk; + if (dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd) && dBgS_CheckBGroundPoly(mLinkAcch.m_gnd)) { + chk = true; + } else { + chk = false; + } + + if ((mMidnaTalkDelayTimer != 0 || (i_checkMagneBootsOn() && !cBgW_CheckBGround(mMagneBootsTopVec.y))) || + !i_checkModeFlg(MODE_SWIMMING | MODE_ROPE_WALK | MODE_VINE_CLIMB | MODE_UNK_800 | MODE_RIDING | MODE_NO_COLLISION | MODE_CLIMB | MODE_JUMP) && !chk) { + return true; + } + return false; } -#pragma pop /* 800B4A08-800B4B2C 0AF348 0124+00 11/11 0/0 0/0 .text setTalkStatus__9daAlink_cFv */ #pragma push @@ -16199,14 +16080,13 @@ asm void daAlink_c::setTalkStatus() { #pragma pop /* 800B4B2C-800B4B7C 0AF46C 0050+00 1/1 0/0 0/0 .text getFrontRollRate__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getFrontRollRate() { - nofralloc -#include "asm/d/a/d_a_alink/getFrontRollRate__9daAlink_cFv.s" +f32 daAlink_c::getFrontRollRate() { + if (checkHeavyStateOn(1, 1)) { + return lit_16641 * mHeavySpeedMultiplier; + } else { + return lit_16641; + } } -#pragma pop /* 800B4B7C-800B5284 0AF4BC 0708+00 2/2 0/0 0/0 .text decideCommonDoStatus__9daAlink_cFv */ @@ -16233,34 +16113,47 @@ asm void daAlink_c::decideDoStatus() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkWaitAction() { +asm BOOL daAlink_c::checkWaitAction() { nofralloc #include "asm/d/a/d_a_alink/checkWaitAction__9daAlink_cFv.s" } #pragma pop /* 800B5BC0-800B5C34 0B0500 0074+00 3/3 0/0 0/0 .text setFallVoice__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setFallVoice() { - nofralloc -#include "asm/d/a/d_a_alink/setFallVoice__9daAlink_cFv.s" +void daAlink_c::setFallVoice() { + if (field_0x3014 == 0 && lit_8782 * (field_0x33c4 - mCurrent.mPosition.y) > lit_8676) { + voiceStart(Z2SE_AL_V_FALL); + field_0x3014 = 1; + } } -#pragma pop /* 800B5C34-800B5C64 0B0574 0030+00 2/2 0/0 0/0 .text setLandPassiveData__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setLandPassiveData() { - nofralloc -#include "asm/d/a/d_a_alink/setLandPassiveData__9daAlink_cFv.s" +void daAlink_c::setLandPassiveData() { + if (field_0x30f0 == 0) { + if (doTrigger()) { + field_0x30f0 = 0x41; + } + } else { + field_0x30f0--; + } } -#pragma pop /* 800B5C64-800B5CCC 0B05A4 0068+00 5/5 0/0 0/0 .text setStepLandVibration__9daAlink_cFv */ +// cXyz issues +#ifdef NONMATCHING +void daAlink_c::setStepLandVibration() { + int shock; + if (checkBootsOrArmorHeavy()) { + shock = 3; + } else { + shock = 1; + } + cXyz xyz(0.0f, 1.0f, 0.0f); + + dComIfGp_getVibration().StartShock(shock, 15, xyz); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -16269,6 +16162,7 @@ asm void daAlink_c::setStepLandVibration() { #include "asm/d/a/d_a_alink/setStepLandVibration__9daAlink_cFv.s" } #pragma pop +#endif /* 800B5CCC-800B5F6C 0B060C 02A0+00 5/5 0/0 0/0 .text checkLandAction__9daAlink_cFi */ #pragma push @@ -16302,14 +16196,12 @@ asm void daAlink_c::checkAutoJumpAction() { #pragma pop /* 800B69CC-800B6A30 0B130C 0064+00 2/2 0/0 0/0 .text checkCutJumpInFly__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkCutJumpInFly() { - nofralloc -#include "asm/d/a/d_a_alink/checkCutJumpInFly__9daAlink_cFv.s" +bool daAlink_c::checkCutJumpInFly() { + if ((mEquipItem == EQUIP_SWORD && i_checkResetFlg0(RFLG0_UNK_80)) || checkForceSwordSwing()) { + return procCutJumpInit(1); + } + return false; } -#pragma pop /* ############################################################################################## */ /* 80450698-8045069C 000118 0004+00 4/4 0/0 0/0 .sdata l_ladderAnmBaseTransY */ @@ -16391,7 +16283,7 @@ asm void daAlink_c::checkItemActorPointer() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkSwordTwirlAction() { +asm bool daAlink_c::checkSwordTwirlAction() { nofralloc #include "asm/d/a/d_a_alink/checkSwordTwirlAction__9daAlink_cFv.s" } @@ -16401,7 +16293,7 @@ asm void daAlink_c::checkSwordTwirlAction() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkUpperItemActionFly() { +asm BOOL daAlink_c::checkUpperItemActionFly() { nofralloc #include "asm/d/a/d_a_alink/checkUpperItemActionFly__9daAlink_cFv.s" } @@ -16506,7 +16398,7 @@ asm void daAlink_c::checkNormalAction() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkReadyItem() { +asm bool daAlink_c::checkReadyItem() { nofralloc #include "asm/d/a/d_a_alink/checkReadyItem__9daAlink_cFv.s" } @@ -16542,7 +16434,7 @@ asm void daAlink_c::checkMoveDoAction() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkSideRollAction(int param_0) { +asm BOOL daAlink_c::checkSideRollAction(int param_0) { nofralloc #include "asm/d/a/d_a_alink/checkSideRollAction__9daAlink_cFi.s" } @@ -16553,7 +16445,7 @@ asm void daAlink_c::checkSideRollAction(int param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkNoUpperAnime() const { +asm BOOL daAlink_c::checkNoUpperAnime() const { nofralloc #include "asm/d/a/d_a_alink/checkNoUpperAnime__9daAlink_cCFv.s" } @@ -16584,7 +16476,7 @@ asm void daAlink_c::checkItemEquipAnime() const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkEquipAnime() const { +asm BOOL daAlink_c::checkEquipAnime() const { nofralloc #include "asm/d/a/d_a_alink/checkEquipAnime__9daAlink_cCFv.s" } @@ -16680,7 +16572,7 @@ asm void daAlink_c::allUnequip(int param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkItemChangeFromButton() { +asm BOOL daAlink_c::checkItemChangeFromButton() { nofralloc #include "asm/d/a/d_a_alink/checkItemChangeFromButton__9daAlink_cFv.s" } @@ -16690,7 +16582,7 @@ asm void daAlink_c::checkItemChangeFromButton() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkNextActionFromButton() { +asm BOOL daAlink_c::checkNextActionFromButton() { nofralloc #include "asm/d/a/d_a_alink/checkNextActionFromButton__9daAlink_cFv.s" } @@ -16700,7 +16592,7 @@ asm void daAlink_c::checkNextActionFromButton() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkGroundSpecialMode() { +asm BOOL daAlink_c::checkGroundSpecialMode() { nofralloc #include "asm/d/a/d_a_alink/checkGroundSpecialMode__9daAlink_cFv.s" } @@ -16845,7 +16737,7 @@ BOOL daAlink_c::checkBootsOrArmorHeavy() const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkHeavyStateOn(int param_0, int param_1) { +asm BOOL daAlink_c::checkHeavyStateOn(int param_0, int param_1) { nofralloc #include "asm/d/a/d_a_alink/checkHeavyStateOn__9daAlink_cFii.s" } @@ -17059,6 +16951,12 @@ asm void daAlink_c::checkSceneChange(int param_0) { #pragma pop /* 800BF084-800BF0B8 0B99C4 0034+00 1/0 0/0 0/0 .text voiceStart__9daAlink_cFUl */ +// matches, but JAISoundID(u32) constructor needs to be inlined? +#ifdef NONMATCHING +void daAlink_c::voiceStart(u32 sfx_id) { + mZ2Link.startLinkVoice(sfx_id, mVoiceReverbIntensity); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -17067,6 +16965,7 @@ asm void daAlink_c::voiceStart(u32 param_0) { #include "asm/d/a/d_a_alink/voiceStart__9daAlink_cFUl.s" } #pragma pop +#endif /* 800BF0B8-800BF0EC 0B99F8 0034+00 14/14 0/0 0/0 .text voiceStartLevel__9daAlink_cFUl */ #pragma push @@ -17202,45 +17101,146 @@ asm void daAlink_c::returnKeepItemData() { } #pragma pop +inline daHorse_c* i_dComIfGp_getHorseActor() { + return (daHorse_c*)g_dComIfG_gameInfo.play.getPlayerPtr(1); +} + /* 800BF8D0-800BF9F0 0BA210 0120+00 2/2 0/0 0/0 .text setItemModel__9daAlink_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::setItemModel() { +asm BOOL daAlink_c::setItemModel() { nofralloc #include "asm/d/a/d_a_alink/setItemModel__9daAlink_cFv.s" } #pragma pop /* 800BF9F0-800BFD74 0BA330 0384+00 4/4 0/0 0/0 .text setItemActor__9daAlink_cFv */ +// register issues +#ifdef NONMATCHING +BOOL daAlink_c::setItemActor() { + if (mEquipItem == BOOMERANG) { + fopAc_ac_c* actor = (fopAc_ac_c*)fopAcM_fastCreate(0xFE, 0, &mCurrent.mPosition, -1, NULL, NULL, -1, NULL, NULL); + if (actor == NULL) { + deleteEquipItem(0, 0); + return false; + } else { + mItemActor.setData(actor); + field_0x2f94 = 2; + return true; + } + } + else if (mEquipItem == COPY_ROD) { + fopAc_ac_c* actor = (fopAc_ac_c*)fopAcM_fastCreate(0x2F4, 0, &mCurrent.mPosition, -1, NULL, NULL, -1, NULL, NULL); + if (actor == NULL) { + deleteEquipItem(0, 0); + return false; + } else { + mItemActor.setData(actor); + field_0x2f94 = 2; + return true; + } + } + else if (mEquipItem == IRONBALL) { + fopAc_ac_c* actor = daCrod_c::makeIronBallDummy(this); + if (actor == NULL) { + if (checkIronBallWaitAnime()) { + resetUpperAnime(UPPER_NOW, -1.0f); + } + deleteEquipItem(0, 0); + return false; + } else { + mItemActor.setData(actor); + field_0x173c.SetActor(actor); + return true; + } + } + else if (checkFisingRodLure()) { + u32 id = fopAcM_create(0x2E4, 0x10D, &mLeftHandPos, -1, NULL, NULL, 0xFF); + mItemActor.setID(id); + initFishingRodHand(); + return 1; + } + else if (checkFishingRodItem(mEquipItem)) { + setGroundFishingRodActor(); + return 1; + } + else if (checkBombItem(mEquipItem)) { + if (checkHorseRide()) { + if (!i_dComIfGp_getHorseActor()->checkNoBombProc() && (mActionID != HORSE_TURN || !i_checkModeFlg(MODE_DISABLE_ITEMS))) { + mEquipItem = NO_ITEM; + return 1; + } + } + cXyz create_pos = (mLeftHandPos + mRightHandPos) * 0.5f; + if (checkReadyItem()) { + fopAc_ac_c* actor; + if (mEquipItem == NORMAL_BOMB) { + actor = dBomb_c::createNormalBombPlayer(&create_pos); + } else { + actor = dBomb_c::createWaterBombPlayer(&create_pos); + } + if (actor != NULL) { + mActiveBombNum++; + setGrabItemActor(actor); + dComIfGp_addSelectItemNum(mSelectItemId, -1); + field_0x33e4 = 38.0f; + setGrabUpperAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); + } + } + mEquipItem = NO_ITEM; + return true; + } + return false; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::setItemActor() { +asm BOOL daAlink_c::setItemActor() { nofralloc #include "asm/d/a/d_a_alink/setItemActor__9daAlink_cFv.s" } #pragma pop +#endif /* 800BFD74-800BFDB0 0BA6B4 003C+00 2/2 0/0 0/0 .text makeItemType__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::makeItemType() { - nofralloc -#include "asm/d/a/d_a_alink/makeItemType__9daAlink_cFv.s" +void daAlink_c::makeItemType() { + if (!setItemModel()) { + setItemActor(); + } +} + +bool daPy_py_c::checkZoraWearFlg() const { + return dComIfGs_getSelectEquipClothes() == WEAR_ZORA; } -#pragma pop /* 800BFDB0-800BFDFC 0BA6F0 004C+00 28/28 0/0 0/0 .text checkZoraWearAbility__9daAlink_cCFv */ +// li 0 needs to be mr +#ifdef NONMATCHING +BOOL daAlink_c::checkZoraWearAbility() const { + bool ret = false; + bool wear_zora = false; + if (!i_checkWolf()) { + if (checkZoraWearFlg()) { + wear_zora = true; + } + } + if (wear_zora && !i_checkNoResetFlg2(UNK_ARMOR)) { + ret = true; + } + return ret; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkZoraWearAbility() const { +asm BOOL daAlink_c::checkZoraWearAbility() const { nofralloc #include "asm/d/a/d_a_alink/checkZoraWearAbility__9daAlink_cCFv.s" } #pragma pop +#endif /* 800BFDFC-800BFE48 0BA73C 004C+00 5/5 0/0 0/0 .text checkMagicArmorWearAbility__9daAlink_cCFv */ #pragma push @@ -17387,7 +17387,7 @@ asm bool daAlink_c::checkCastleTown() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkCloudSea() { +asm bool daAlink_c::checkCloudSea() { nofralloc #include "asm/d/a/d_a_alink/checkCloudSea__9daAlink_cFv.s" } @@ -17397,109 +17397,72 @@ asm void daAlink_c::checkCloudSea() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkRoomOnly() { +asm bool daAlink_c::checkRoomOnly() { nofralloc #include "asm/d/a/d_a_alink/checkRoomOnly__9daAlink_cFv.s" } #pragma pop -/* ############################################################################################## */ -/* 80392094-80392094 01E6F4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_803925C2 = "D_MN04"; -#pragma pop - /* 800C044C-800C04B4 0BAD8C 0068+00 3/3 0/0 0/0 .text checkLv2DungeonRoomSpecial__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkLv2DungeonRoomSpecial() { - nofralloc -#include "asm/d/a/d_a_alink/checkLv2DungeonRoomSpecial__9daAlink_cFv.s" +bool daAlink_c::checkLv2DungeonRoomSpecial() { + return checkStageName("D_MN04") && (dComIfGp_roomControl_getStayNo() == 14 || dComIfGp_roomControl_getStayNo() == 16 || dComIfGp_roomControl_getStayNo() == 17); } -#pragma pop /* 800C04B4-800C0520 0BADF4 006C+00 2/2 0/0 0/0 .text checkRoomSpecial__9daAlink_cFv */ +// 1 wrong branch +#ifdef NONMATCHING +bool daAlink_c::checkRoomSpecial() { + return !checkStageName("D_MN11") || dComIfGp_roomControl_getStayNo() == 1 || dComIfGp_roomControl_getStayNo() == 2 || checkLv2DungeonRoomSpecial(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkRoomSpecial() { +asm bool daAlink_c::checkRoomSpecial() { nofralloc #include "asm/d/a/d_a_alink/checkRoomSpecial__9daAlink_cFv.s" } #pragma pop +#endif /* 800C0520-800C0594 0BAE60 0074+00 1/1 0/0 0/0 .text checkRoom__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkRoom() { - nofralloc -#include "asm/d/a/d_a_alink/checkRoom__9daAlink_cFv.s" +bool daAlink_c::checkRoom() { + return checkRoomOnly() || checkRoomSpecial() || checkStageName("R_SP161") && !dComIfGs_isOneZoneSwitch(14, -1); } -#pragma pop /* 800C0594-800C05DC 0BAED4 0048+00 8/8 0/0 0/0 .text checkNotBattleStage__9daAlink_cFv */ -#ifdef NONMATCHING -bool daAlink_c::checkNotBattleStage(void) { - bool isNotBattleStage = false; - - if (checkRoom() || checkCastleTown()) { - isNotBattleStage = true; - } - - return isNotBattleStage; -} -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkNotBattleStage() { - nofralloc -#include "asm/d/a/d_a_alink/checkNotBattleStage__9daAlink_cFv.s" +bool daAlink_c::checkNotBattleStage() { + return checkRoom() || checkCastleTown(); } -#pragma pop -#endif /* 800C05DC-800C0630 0BAF1C 0054+00 2/2 0/0 0/0 .text checkNotHeavyBootsStage__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkNotHeavyBootsStage() { - nofralloc -#include "asm/d/a/d_a_alink/checkNotHeavyBootsStage__9daAlink_cFv.s" +bool daAlink_c::checkNotHeavyBootsStage() { + return (checkNotBattleStage() || checkCloudSea()) && !checkLv2DungeonRoomSpecial(); } -#pragma pop /* 800C0630-800C0678 0BAF70 0048+00 1/1 0/0 0/0 .text checkNotAutoJumpStage__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkNotAutoJumpStage() { - nofralloc -#include "asm/d/a/d_a_alink/checkNotAutoJumpStage__9daAlink_cFv.s" +bool daAlink_c::checkNotAutoJumpStage() { + return checkRoomOnly() || checkCastleTown(); } -#pragma pop - -/* ############################################################################################## */ -/* 80392094-80392094 01E6F4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_803925C9 = "R_SP128"; -#pragma pop /* 800C0678-800C077C 0BAFB8 0104+00 3/3 0/0 0/0 .text checkCastleTownUseItem__9daAlink_cFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkCastleTownUseItem(u16 param_0) { - nofralloc -#include "asm/d/a/d_a_alink/checkCastleTownUseItem__9daAlink_cFUs.s" +bool daAlink_c::checkCastleTownUseItem(u16 item_id) { + if (checkNotBattleStage()) { + if (item_id == KANTERA || checkTradeItem(item_id) || + (item_id == DUNGEON_BACK && checkLv7DungeonShop()) || + (checkRoomSpecial() && (item_id == EMPTY_BOTTLE || checkDungeonWarpItem(item_id))) || + (checkStageName("R_SP128") && item_id == COPY_ROD) || + (checkLv2DungeonRoomSpecial() && item_id == HVY_BOOTS) || + (checkBottleItem(item_id) && item_id != EMPTY_BOTTLE)) { + return true; + } else { + return false; + } + } + return true; } -#pragma pop /* 800C077C-800C0A9C 0BB0BC 0320+00 1/1 0/0 0/0 .text changeItemTriggerKeepProc__9daAlink_cFUci */ #pragma push @@ -17594,11 +17557,11 @@ MtxP daAlink_c::getModelJointMtx(u16 param_0) { /* 800C1DE0-800C1E0C 0BC720 002C+00 1/0 0/0 0/0 .text onFrollCrashFlg__9daAlink_cFUci */ void daAlink_c::onFrollCrashFlg(u8 param_0, int param_1) { if (param_1 != 0) { - i_onNoResetFlg0(UnkFrollCrashFlg2); + i_onNoResetFlg0(UNK_F_ROLL_CRASH_2); } else { - i_onNoResetFlg0(UnkFrollCrashFlg1); + i_onNoResetFlg0(UNK_F_ROLL_CRASH_1); } - field_0x2fa4 = param_0; + mRollCrashFlg = param_0; } /* ############################################################################################## */ @@ -17657,7 +17620,7 @@ void daAlink_c::procPreActionUnequipInit(int param_0, fopAc_ac_c* param_1) { field_0x280c.setData(param_1); field_0x300e = 1; if (fopAcM_GetName(param_1) == 0x2cb) { - if (field_0x2fdc == 0x48) { + if (mEquipItem == KANTERA) { field_0x3010 = 1; } else { if (i_checkNoResetFlg2(1) != 0) { @@ -17694,35 +17657,34 @@ asm void daAlink_c::procPreActionUnequip() { /* 800C3098-800C30F0 0BD9D8 0058+00 1/1 0/0 0/0 .text procServiceWaitInit__9daAlink_cFv */ -#ifdef NONMATCHING bool daAlink_c::procServiceWaitInit() { commonProcInit(SERVICE_WAIT); - setSingleAnimeBase(0x90); - mNormalSpeed = 0.0f; - mNext.mAngle.y = mCollisionRot.y; + setSingleAnimeBase(ANM_SERVICE_WAIT); + mNormalSpeed = FLOAT_LABEL(lit_6108); + mCurrent.mAngle.y = mCollisionRot.y; field_0x2f98 = 4; return true; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::procServiceWaitInit() { - nofralloc -#include "asm/d/a/d_a_alink/procServiceWaitInit__9daAlink_cFv.s" -} -#pragma pop -#endif /* 800C30F0-800C3224 0BDA30 0134+00 1/0 0/0 0/0 .text procServiceWait__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procServiceWait() { - nofralloc -#include "asm/d/a/d_a_alink/procServiceWait__9daAlink_cFv.s" +bool daAlink_c::procServiceWait() { + J3DFrameCtrl* ctrl = &mFrameCtrl1[0]; + if ((!checkNextAction(0) && !checkFrontWallTypeAction()) && (checkEventRun() || checkGuardActionChange() || mCollisionRot.y != field_0x2fe6)) { + ctrl->setRate(FLOAT_LABEL(lit_6108)); + procWaitInit(); + } else { + if (ctrl->checkPass(lit_10040)) { + voiceStart(Z2SE_AL_V_RELAX_A); + } + else if (ctrl->checkPass(lit_11673)) { + voiceStart(Z2SE_AL_V_RELAX_B); + } + else if (ctrl->checkPass(lit_25684)) { + voiceStart(Z2SE_AL_V_RELAX_C); + } + } + return true; } -#pragma pop /* 800C3224-800C3338 0BDB64 0114+00 2/2 0/0 0/0 .text procTiredWaitInit__9daAlink_cFv */ #pragma push @@ -17735,20 +17697,24 @@ asm void daAlink_c::procTiredWaitInit() { #pragma pop /* 800C3338-800C33B8 0BDC78 0080+00 1/0 0/0 0/0 .text procTiredWait__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procTiredWait() { - nofralloc -#include "asm/d/a/d_a_alink/procTiredWait__9daAlink_cFv.s" +bool daAlink_c::procTiredWait() { + daPy_frameCtrl_c* ctrl = &mFrameCtrl1[0]; + if (!checkNextAction(0)) { + if (ctrl->checkAnmEnd()) { + setSingleAnimeBase(ANM_TIRED_WAIT); + } + else if (ctrl->getAttribute() == 2) { + setTiredVoice(ctrl); + } + } + return true; } -#pragma pop /* 800C33B8-800C3504 0BDCF8 014C+00 26/26 0/0 0/0 .text procWaitInit__9daAlink_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::procWaitInit() { +asm bool daAlink_c::procWaitInit() { nofralloc #include "asm/d/a/d_a_alink/procWaitInit__9daAlink_cFv.s" } @@ -17765,34 +17731,50 @@ asm void daAlink_c::procWait() { #pragma pop /* 800C36CC-800C3730 0BE00C 0064+00 3/3 0/0 0/0 .text procMoveInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procMoveInit() { - nofralloc -#include "asm/d/a/d_a_alink/procMoveInit__9daAlink_cFv.s" +bool daAlink_c::procMoveInit() { + if (!commonProcInitNotSameProc(HUMAN_MOVE)) { + return false; + } + setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); + setFootEffectProcType(3); + return true; } -#pragma pop /* 800C3730-800C3810 0BE070 00E0+00 1/0 0/0 0/0 .text procMove__9daAlink_cFv */ +// results of cLib_minMaxLimit are put in r4 instead of r3 +#ifdef NONMATCHING +bool daAlink_c::procMove() { + setFootEffectProcType(3); + if (!checkNextAction(0) && !checkFrontWallTypeAction()) { + if (mDemo.getDemoMode() == 2 && mNormalSpeed > field_0x594 * daAlinkHIO_move_c0::m.mWalkChangeRate) { + mNormalSpeed = field_0x594 * daAlinkHIO_move_c0::m.mWalkChangeRate; + } + setBlendMoveAnime(-1.0f); + if (field_0x3174 != 8) { + field_0x30a0 = cLib_minMaxLimit((s16)(field_0x2ff0 >> 1), daAlinkHIO_basic_c0::m.mNeckMaxUp, daAlinkHIO_basic_c0::m.mNeckMaxDown); + } + } + return true; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::procMove() { +asm bool daAlink_c::procMove() { nofralloc #include "asm/d/a/d_a_alink/procMove__9daAlink_cFv.s" } #pragma pop +#endif /* 800C3810-800C3868 0BE150 0058+00 1/1 0/0 0/0 .text procAtnMoveInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procAtnMoveInit() { - nofralloc -#include "asm/d/a/d_a_alink/procAtnMoveInit__9daAlink_cFv.s" +bool daAlink_c::procAtnMoveInit() { + if (!commonProcInitNotSameProc(HUMAN_ATN_MOVE)) { + return false; + } + setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); + return true; } -#pragma pop /* 800C3868-800C38CC 0BE1A8 0064+00 1/0 0/0 0/0 .text procAtnMove__9daAlink_cFv */ bool daAlink_c::procAtnMove() { @@ -17806,136 +17788,329 @@ bool daAlink_c::procAtnMove() { /* 800C38CC-800C397C 0BE20C 00B0+00 4/4 0/0 0/0 .text procAtnActorWaitInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procAtnActorWaitInit() { - nofralloc -#include "asm/d/a/d_a_alink/procAtnActorWaitInit__9daAlink_cFv.s" +bool daAlink_c::procAtnActorWaitInit() { + if (!commonProcInitNotSameProc(HUMAN_ATN_ACTOR_WAIT)) { + return false; + } + + if (mTargetedActor != NULL) { + fopAcM_searchActorAngleY(this, mTargetedActor); + } + mNormalSpeed = FLOAT_LABEL(lit_6108); + if (field_0x2f98 != 2) { + field_0x2f98 = 3; + } + + if (checkAtnWaitAnime()) { + setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); + } else { + setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); + } + + return true; } -#pragma pop /* 800C397C-800C39EC 0BE2BC 0070+00 1/0 0/0 0/0 .text procAtnActorWait__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procAtnActorWait() { - nofralloc -#include "asm/d/a/d_a_alink/procAtnActorWait__9daAlink_cFv.s" +bool daAlink_c::procAtnActorWait() { + if (!checkNextAction(0)) { + if (checkAtnWaitAnime()) { + setBlendAtnMoveAnime(lit_6041); + } else { + setBlendMoveAnime(lit_6041); + } + checkSwordTwirlAction(); + } + return true; } -#pragma pop /* 800C39EC-800C3A44 0BE32C 0058+00 3/3 0/0 0/0 .text procAtnActorMoveInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procAtnActorMoveInit() { - nofralloc -#include "asm/d/a/d_a_alink/procAtnActorMoveInit__9daAlink_cFv.s" +bool daAlink_c::procAtnActorMoveInit() { + if (!commonProcInitNotSameProc(HUMAN_ATN_ACTOR_MOVE)) { + return false; + } + setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); + return true; } -#pragma pop /* 800C3A44-800C3A94 0BE384 0050+00 1/0 0/0 0/0 .text procAtnActorMove__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procAtnActorMove() { - nofralloc -#include "asm/d/a/d_a_alink/procAtnActorMove__9daAlink_cFv.s" +bool daAlink_c::procAtnActorMove() { + if (!checkNextAction(0)) { + setBlendAtnMoveAnime(lit_6041); + checkSwordTwirlAction(); + } + return 1; } -#pragma pop /* 800C3A94-800C3B1C 0BE3D4 0088+00 2/2 0/0 0/0 .text procWaitTurnInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procWaitTurnInit() { - nofralloc -#include "asm/d/a/d_a_alink/procWaitTurnInit__9daAlink_cFv.s" +bool daAlink_c::procWaitTurnInit() { + if (!commonProcInitNotSameProc(HUMAN_WAIT_TURN)) { + return false; + } + + setSingleAnimeBaseSpeed(ANM_WAIT_TURN, daAlinkHIO_basic_c0::m.mWaitTurnSpeed, daAlinkHIO_basic_c0::m.mAnmBlendFactor); + if (checkEventRun()) { + mNormalSpeed = FLOAT_LABEL(lit_6108); + } + field_0x300e = field_0x2fe2; + mCurrent.mAngle.y = mCollisionRot.y; + return true; } -#pragma pop /* 800C3B1C-800C3C3C 0BE45C 0120+00 1/0 0/0 0/0 .text procWaitTurn__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procWaitTurn() { - nofralloc -#include "asm/d/a/d_a_alink/procWaitTurn__9daAlink_cFv.s" +BOOL daAlink_c::procWaitTurn() { + cLib_chaseF(&mNormalSpeed, FLOAT_LABEL(lit_6108), daAlinkHIO_move_c0::m.mDeceleration); + if (checkGroundSpecialMode()) { + return true; + } else { + if (i_checkEndResetFlg0(ERFLG0_UNK_100000)) { + return procFloorDownReboundInit(); + } else { + s16 angle = cLib_addCalcAngleS(&mCollisionRot.y, field_0x300e, 30, 0x3CDF, 8000); + mCurrent.mAngle.y = mCollisionRot.y; + if (checkNextActionFromButton()) { + return true; + } else { + if (angle == 0) { + if (checkEventRun()) { + if (mDemo.getDemoMode() == 5) { + dComIfGp_evmng_cutEnd(field_0x3184); + } + else if (!checkNextAction(0)) { + checkWaitAction(); + } + } else { + checkNextAction(0); + } + } + } + } + } + return true; } -#pragma pop /* 800C3C3C-800C3D38 0BE57C 00FC+00 2/2 0/0 0/0 .text procMoveTurnInit__9daAlink_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procMoveTurnInit(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/procMoveTurnInit__9daAlink_cFi.s" +bool daAlink_c::procMoveTurnInit(int param_0) { + if (!commonProcInitNotSameProc(HUMAN_MOVE_TURN)) { + return false; + } + + setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); + dComIfGp_setPlayerStatus0(0, 0x800); + + if (param_0 != 0) { + field_0x300e = (daAlinkHIO_move_c0::m.mMaxTurnAngle << 2) + 19030; + field_0x3010 = daAlinkHIO_move_c0::m.mMaxTurnAngle << 1; + field_0x300a = 2; + mCurrent.mAngle.y = field_0x2fe2; + mNormalSpeed *= lit_5943; + } else { + field_0x300e = daAlinkHIO_move_c0::m.mMaxTurnAngle << 1; + field_0x3010 = daAlinkHIO_move_c0::m.mMaxTurnAngle; + field_0x300a = 3; + } + field_0x300e = daAlinkHIO_move_c0::m.mMaxTurnAngle << 1; + field_0x3010 = daAlinkHIO_move_c0::m.mMaxTurnAngle; + return true; } -#pragma pop /* 800C3D38-800C3DA0 0BE678 0068+00 1/0 0/0 0/0 .text procMoveTurn__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procMoveTurn() { - nofralloc -#include "asm/d/a/d_a_alink/procMoveTurn__9daAlink_cFv.s" +bool daAlink_c::procMoveTurn() { + setSpeedAndAngleNormal(); + cLib_addCalcAngleS(&mCollisionRot.y, mCurrent.mAngle.y, field_0x300a, field_0x300e, field_0x3010); + + if (!checkNextAction(0)) { + setBlendMoveAnime(lit_6041); + } + return true; } -#pragma pop /* 800C3DA0-800C3F60 0BE6E0 01C0+00 2/2 0/0 0/0 .text procSideStepInit__9daAlink_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procSideStepInit(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/procSideStepInit__9daAlink_cFi.s" +bool daAlink_c::procSideStepInit(int jump_type) { + if (jump_type == 1 && !checkHeavyStateOn(1, 1) && (checkNoUpperAnime() || checkEquipAnime() || field_0x2fcc != 0 && checkUpperGuardAnime())) { + return procBackJumpInit(0); + } else { + commonProcInit(HUMAN_SIDESTEP); + field_0x2f98 = jump_type; + + if (field_0x2f98 == 1) { + mCurrent.mAngle.y = mCollisionRot.y + 0x8000; + setSingleAnimeParam(ANM_BACK_JUMP, &daAlinkHIO_sideStep_c0::m.mBackJumpAnm); + mNormalSpeed = daAlinkHIO_sideStep_c0::m.mBackJumpSpeedH; + mSpeed.y = daAlinkHIO_sideStep_c0::m.mBackJumpSpeedV; + field_0x300a = 0; + } else { + daAlink_ANM anm_id; + if (field_0x2f98 == 2) { + anm_id = ANM_SIDE_STEP_LEFT; + mCurrent.mAngle.y = mCollisionRot.y + 0x4000; + } else { + anm_id = ANM_SIDE_STEP_RIGHT; + mCurrent.mAngle.y = mCollisionRot.y - 0x4000; + } + setSingleAnimeParam(anm_id, &daAlinkHIO_sideStep_c0::m.mSideJumpAnm); + mNormalSpeed = daAlinkHIO_sideStep_c0::m.mSideJumpSpeedH; + mSpeed.y = daAlinkHIO_sideStep_c0::m.mSideJumpSpeedV; + field_0x300a = 1; + } + if (i_checkNoResetFlg0(UNDER_WATER_MOVEMENT)) { + mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX; + mSpeed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY; + } + voiceStart(Z2SE_AL_V_JUMP_S); + mCommonCounter = 0; + field_0x300e = 0; + return 1; + } } -#pragma pop /* 800C3F60-800C40F0 0BE8A0 0190+00 1/0 0/0 0/0 .text procSideStep__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procSideStep() { - nofralloc -#include "asm/d/a/d_a_alink/procSideStep__9daAlink_cFv.s" +bool daAlink_c::procSideStep() { + if (mTargetedActor != NULL && field_0x300a != 0) { + s16 actor_angle = fopAcM_searchActorAngleY(this, mTargetedActor); + cLib_addCalcAngleS(&mCollisionRot.y, actor_angle, 5, 0x5E8, 0x13C); + if (field_0x2f98 == 2) { + mCurrent.mAngle.y = mCollisionRot.y + 0x4000; + } else { + mCurrent.mAngle.y = mCollisionRot.y - 0x4000; + } + } + if (doTrigger() && field_0x300a != 0) { + mCommonCounter = 1; + } + + if (checkUpperItemActionFly()) { + return true; + } + else if (mLinkAcch.ChkGroundHit() && field_0x300e != 0) { + if (mCommonCounter != 0 && checkSideRollAction(field_0x2f98)) { + return true; + } else { + return procSideStepLandInit(); + } + } + else if (checkNoUpperAnime() && checkForceSwordSwing()) { + setCutDash(1, 0); + } + else if (mDemo.getDemoMode() != 16 && mCurrent.mPosition.y < field_0x34f8.y - daAlinkHIO_sideStep_c0::m.mFallHeight) { + return procFallInit(2, daAlinkHIO_sideStep_c0::m.mFallInterpolation); + } + + field_0x300e = 1; + checkItemChangeFromButton(); + return true; } -#pragma pop /* 800C40F0-800C4278 0BEA30 0188+00 1/1 0/0 0/0 .text procSideStepLandInit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procSideStepLandInit() { - nofralloc -#include "asm/d/a/d_a_alink/procSideStepLandInit__9daAlink_cFv.s" +bool daAlink_c::procSideStepLandInit() { + commonProcInit(HUMAN_SIDESTEP_LAND); + if (field_0x2f98 == 1) { + field_0x2f9d = 4; + setSingleAnimeParam(ANM_BACK_JUMP_LAND, &daAlinkHIO_sideStep_c0::m.mBackLandAnm); + field_0x3478 = daAlinkHIO_sideStep_c0::m.mBackLandAnm.field_0x10; + field_0x2f98 = 2; + field_0x300a = 0; + field_0x2fb0 = 0; + field_0x2fcc = 10; + } else { + daAlink_ANM anm_id; + u16 uvar3; + if (field_0x2f98 == 2) { + anm_id = ANM_SIDE_STEP_LEFT_LAND; + uvar3 = 0x3F; + } else { + anm_id = ANM_SIDE_STEP_RIGHT_LAND; + uvar3 = 0x40; + } + setSingleAnimeParam(anm_id, &daAlinkHIO_sideStep_c0::m.mSideLandAnm); + field_0x3478 = daAlinkHIO_sideStep_c0::m.mSideLandAnm.field_0x10; + field_0x300a = 1; + field_0x2fb0 = 8; + field_0x2fcc = 0; + if (checkEnemyGroup(mTargetedActor) && mEquipItem == EQUIP_SWORD && checkNoUpperAnime()) { + setUpperAnimeBaseSpeed(uvar3, daAlinkHIO_atnMove_c0::m.mWaitAnmSpeed, lit_6041); + seStartSwordCut(Z2SE_AL_WAIT_SWORD_SWING); + } + } + field_0x2f9d = 4; + setFootEffectProcType(2); + i_onResetFlg1(0x30); + mNormalSpeed = FLOAT_LABEL(lit_6108); + mCommonCounter = 0; + mCurrent.mAngle.y = mCollisionRot.y; + setStepLandVibration(); + return true; } -#pragma pop /* 800C4278-800C4378 0BEBB8 0100+00 1/0 0/0 0/0 .text procSideStepLand__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procSideStepLand() { - nofralloc -#include "asm/d/a/d_a_alink/procSideStepLand__9daAlink_cFv.s" +bool daAlink_c::procSideStepLand() { + daPy_frameCtrl_c* ctrl = &mFrameCtrl1[0]; + i_onEndResetFlg0(ERFLG0_UNK_8000000); + if (field_0x2fcc != 0) { + field_0x2fcc = 10; + } + + if (doTrigger() && field_0x300a != 0) { + mCommonCounter = 1; + } + + if (ctrl->checkAnmEnd()) { + if (mDemo.getDemoMode() == 16) { + dComIfGp_evmng_cutEnd(field_0x3184); + } else { + checkNextAction(0); + } + } + else if (ctrl->getFrame() > field_0x3478) { + if (mCommonCounter != 0 && checkSideRollAction(field_0x2f98)) { + return true; + } + checkNextAction(1); + } + + return true; } -#pragma pop /* 800C4378-800C4514 0BECB8 019C+00 1/1 0/0 0/0 .text procSlideInit__9daAlink_cFs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procSlideInit(s16 param_0) { - nofralloc -#include "asm/d/a/d_a_alink/procSlideInit__9daAlink_cFs.s" +bool daAlink_c::procSlideInit(s16 param_0) { + commonProcInit(HUMAN_SLIDE); + + field_0x814.SetWeight(255); + field_0x3090 = 8; + mCurrent.mAngle.y = param_0; + + if (getMoveBGActorName(mLinkAcch.m_gnd, 0) == 0xD4) { + field_0x300e = 1; + } else { + field_0x300e = 0; + } + + if (cLib_distanceAngleS(param_0, mCollisionRot.y) < 0x3800 || field_0x300e != 0) { + field_0x3198 = 1; + setSingleAnimeParam(ANM_FORWARD_SLIDE, &daAlinkHIO_slide_c0::m.mForwardSlideAnm); + dComIfGp_setPlayerStatus1(0, 0x100); + onModeFlg(MODE_UNK_8000); + onModeFlg(MODE_UNK_2000000); + onModeFlg(MODE_UNK_20000000); + mNormalSpeed = FLOAT_LABEL(lit_6108); + field_0x2f9d = 4; + setUpperAnimeBaseMorf(0xCE, lit_6041); + i_onNoResetFlg1(0x10000000); + setFootEffectProcType(0); + } else { + field_0x3198 = 0; + setSingleAnimeParam(ANM_BACKWARD_SLIDE, &daAlinkHIO_slide_c0::m.mBackwardSlideAnm); + dComIfGp_setPlayerStatus1(0, 0x200); + field_0x2f9d = 0x60; + setFootEffectProcType(1); + } + field_0x594 = daAlinkHIO_slide_c0::m.mMaxSpeed; + field_0x33cc = FLOAT_LABEL(lit_6108); + mCommonCounter = 0; + field_0x3010 = 0; + return true; } -#pragma pop /* ############################################################################################## */ /* 804532E0-804532E4 0018E0 0004+00 1/1 0/0 0/0 .sdata2 @73057 */ @@ -17952,34 +18127,113 @@ asm void daAlink_c::procSlide() { #pragma pop /* 800C47AC-800C4894 0BF0EC 00E8+00 1/1 0/0 0/0 .text procSlideLandInit__9daAlink_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procSlideLandInit(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/procSlideLandInit__9daAlink_cFi.s" +bool daAlink_c::procSlideLandInit(int param_0) { + commonProcInit(HUMAN_SLIDE_LAND); + + if (param_0 != 0) { + setSingleAnimeParam(ANM_BACKWARD_SLIDE_LAND, &daAlinkHIO_slide_c0::m.mForwardLandAnm); + field_0x3478 = daAlinkHIO_slide_c0::m.mForwardLandAnm.field_0x10; + field_0x3198 = 1; + field_0x2f99 = 4; + field_0x3588.x = l_waitBaseAnime[0]; + field_0x3588.y = l_waitBaseAnime[1]; + field_0x3588.z = l_waitBaseAnime[2]; + } else { + setSingleAnimeParam(ANM_FORWARD_SLIDE_LAND, &daAlinkHIO_slide_c0::m.mBackwardLandAnm); + field_0x3478 = daAlinkHIO_slide_c0::m.mBackwardLandAnm.field_0x10; + field_0x3198 = 0; + } + field_0x814.SetWeight(255); + mNormalSpeed *= lit_5943; + return true; } -#pragma pop /* 800C4894-800C494C 0BF1D4 00B8+00 1/0 0/0 0/0 .text procSlideLand__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procSlideLand() { - nofralloc -#include "asm/d/a/d_a_alink/procSlideLand__9daAlink_cFv.s" +bool daAlink_c::procSlideLand() { + daPy_frameCtrl_c* ctrl = &mFrameCtrl1[0]; + + cLib_chaseF(&mNormalSpeed, FLOAT_LABEL(lit_6108), lit_7450); + if (field_0x3198 != 0) { + field_0x2f99 = 4; + } + + if (ctrl->checkAnmEnd()) { + mCurrent.mAngle.y = mCollisionRot.y; + checkNextAction(0); + } else { + if (ctrl->getFrame() > field_0x3478) { + s16 tmp_angle = mCurrent.mAngle.y; + mCurrent.mAngle.y = mCollisionRot.y; + if (!checkNextAction(1)) { + mCurrent.mAngle.y = tmp_angle; + } + } + } + return true; } -#pragma pop /* 800C494C-800C4B40 0BF28C 01F4+00 4/3 0/0 0/0 .text procFrontRollInit__9daAlink_cFv */ +#ifdef NONMATCHING +bool daAlink_c::procFrontRollInit() { + BOOL check = checkUpperGuardAnime(); + if (mActionID == FRONT_ROLL && mDemo.getDemoMode() == 0x28) { + return 0; + } else { + BOOL check = mActionID == 0x16; + commonProcInit(FRONT_ROLL); + + f32 fvar1; + if (!check) { + fvar1 = daAlinkHIO_frontRoll_c0::m.mRollAnm.field_0x04; + } else { + fvar1 = lit_7977; + } + setSingleAnime(ANM_FRONT_ROLL, daAlinkHIO_frontRoll_c0::m.mRollAnm.field_0x04, fvar1, daAlinkHIO_frontRoll_c0::m.mRollAnm.field_0x00, daAlinkHIO_frontRoll_c0::m.mRollAnm.field_0x0c); + mNormalSpeed = mSpeedF * daAlinkHIO_frontRoll_c0::m.mInitSpeed + daAlinkHIO_frontRoll_c0::m.mSpeedRate; + if (mNormalSpeed > daAlinkHIO_frontRoll_c0::m.mCrashHitAnm.field_0x08) { + mNormalSpeed = daAlinkHIO_frontRoll_c0::m.mCrashHitAnm.field_0x08; + } + if (mNormalSpeed < daAlinkHIO_frontRoll_c0::m.mMinSpeed) { + mNormalSpeed = daAlinkHIO_frontRoll_c0::m.mMinSpeed; + } + + if (!i_checkNoResetFlg0(UNDER_WATER_MOVEMENT)) { + if (checkHeavyStateOn(1, 1)) { + mNormalSpeed *= mHeavySpeedMultiplier; + } + } else { + mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX; + } + mCurrent.mAngle.y = mCollisionRot.y; + voiceStart(Z2SE_AL_V_BACKTEN); + mCommonCounter = 0; + setFootEffectProcType(0); + if (check) { + i_onNoResetFlg0(2); + } + if (i_checkEquipHeavyBoots()) { + field_0xFB8.SetAtType(0x200000); + field_0xFB8.SetAtHitMark(1); + field_0xFB8.SetAtSe(9); + field_0xFB8.SetAtAtp(2); + field_0xFB8.SetAtMtrl(0); + field_0xFB8.ResetAtHit(); + field_0xFB8.SetR(daAlinkHIO_frontRoll_c0::m.mBootsAttackRadius); + field_0xFB8.OnAtSetBit(); + } + return true; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::procFrontRollInit() { +asm bool daAlink_c::procFrontRollInit() { nofralloc #include "asm/d/a/d_a_alink/procFrontRollInit__9daAlink_cFv.s" } #pragma pop +#endif /* 800C4B40-800C4F14 0BF480 03D4+00 1/0 0/0 0/0 .text procFrontRoll__9daAlink_cFv */ #pragma push @@ -18053,20 +18307,31 @@ asm void daAlink_c::procSideRoll() { #pragma pop /* 800C5700-800C57A4 0C0040 00A4+00 2/2 0/0 0/0 .text backJumpSpeedDec__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::backJumpSpeedDec() { - nofralloc -#include "asm/d/a/d_a_alink/backJumpSpeedDec__9daAlink_cFv.s" +void daAlink_c::backJumpSpeedDec() { + if (mLinkAcch.ChkGroundHit()) { + if (dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd)) { + f32 jump_speed; + if (dBgS_CheckBWallPoly(mLinkAcch.m_gnd)) { + jump_speed = FLOAT_LABEL(lit_6108); + } else { + jump_speed = field_0x3478 * cM_scos(field_0x2ff0); + if (field_0x2ff0 > 0) { + jump_speed *= cM_scos(field_0x2ff0); + } + } + + if (mNormalSpeed > jump_speed) { + mNormalSpeed = jump_speed; + } + } + } } -#pragma pop /* 800C57A4-800C5964 0C00E4 01C0+00 6/6 0/0 0/0 .text procBackJumpInit__9daAlink_cFi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::procBackJumpInit(int param_0) { +asm bool daAlink_c::procBackJumpInit(int param_0) { nofralloc #include "asm/d/a/d_a_alink/procBackJumpInit__9daAlink_cFi.s" } @@ -18195,7 +18460,7 @@ asm void daAlink_c::procRollJump() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::procFallInit(int param_0, f32 param_1) { +asm bool daAlink_c::procFallInit(int param_0, f32 param_1) { nofralloc #include "asm/d/a/d_a_alink/procFallInit__9daAlink_cFif.s" } @@ -18404,7 +18669,7 @@ asm void daAlink_c::procCoMetamorphoseOnly() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::procFloorDownReboundInit() { +asm BOOL daAlink_c::procFloorDownReboundInit() { nofralloc #include "asm/d/a/d_a_alink/procFloorDownReboundInit__9daAlink_cFv.s" } @@ -18502,35 +18767,33 @@ asm void daAlink_c::setDrawHand() { } #pragma pop +BOOL daPy_py_c::i_checkSwordGet() { + return dComIfGs_getSelectEquipSword() != 0xFF; +} + /* 800CB480-800CB53C 0C5DC0 00BC+00 3/3 0/0 0/0 .text checkSwordDraw__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkSwordDraw() { - nofralloc -#include "asm/d/a/d_a_alink/checkSwordDraw__9daAlink_cFv.s" +bool daAlink_c::checkSwordDraw() { + return ((i_checkSwordGet() && mSwordChangeWaitTimer == 0) && !i_checkNoResetFlg2(FLG2_UNK_2080000)) && (!i_checkWolf() || !i_dComIfGs_isEventBit(0x0C08)); +} + +bool daPy_py_c::i_checkShieldGet() const { + return dComIfGs_getSelectEquipShield() != NO_ITEM; } -#pragma pop /* 800CB53C-800CB5F8 0C5E7C 00BC+00 3/3 0/0 0/0 .text checkShieldDraw__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkShieldDraw() { - nofralloc -#include "asm/d/a/d_a_alink/checkShieldDraw__9daAlink_cFv.s" +bool daAlink_c::checkShieldDraw() { + return ((i_checkShieldGet() && mShieldChangeWaitTimer == 0) && !i_checkNoResetFlg2(FLG2_UNK_4080000)) && (!i_checkWolf() || !i_dComIfGs_isEventBit(0x0C08)); } -#pragma pop /* 800CB5F8-800CB694 0C5F38 009C+00 2/2 0/0 0/0 .text checkItemDraw__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkItemDraw() { - nofralloc -#include "asm/d/a/d_a_alink/checkItemDraw__9daAlink_cFv.s" +bool daAlink_c::checkItemDraw() { + if (mHeldItemModel != NULL && (mEquipItem != IRONBALL || !checkSwordEquipAnime())) { + if (!checkBowAndSlingItem(mEquipItem) || checkBowGrabLeftHand() || !i_checkShieldGet() || field_0x2e44.checkPassNum(15)) { + return true; + } + } + return false; } -#pragma pop /* 800CB694-800CBA38 0C5FD4 03A4+00 0/0 0/0 1/1 .text initShadowScaleLight__9daAlink_cFv */ @@ -18569,14 +18832,11 @@ asm void daAlink_c::shadowDraw() { #pragma pop /* 800CC25C-800CC298 0C6B9C 003C+00 3/3 0/0 0/0 .text modelCalc__9daAlink_cFP8J3DModel */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::modelCalc(J3DModel* param_0) { - nofralloc -#include "asm/d/a/d_a_alink/modelCalc__9daAlink_cFP8J3DModel.s" +void daAlink_c::modelCalc(J3DModel* p_model) { + if (mClothesChangeWaitTimer == 0) { + p_model->calc(); + } } -#pragma pop /* 800CC298-800CC2E0 0C6BD8 0048+00 2/2 0/0 0/0 .text basicModelDraw__9daAlink_cFP8J3DModel */ #pragma push @@ -18617,14 +18877,14 @@ asm void daAlink_c::setWaterDropColor(J3DGXColorS10 const* param_0) { #pragma pop /* 800CC7DC-800CC7FC 0C711C 0020+00 2/2 0/0 0/0 .text initTevCustomColor__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::initTevCustomColor() { - nofralloc -#include "asm/d/a/d_a_alink/initTevCustomColor__9daAlink_cFv.s" +void daAlink_c::initTevCustomColor() { + mTevStr.field_0x367 = 0; + mTevStr.field_0x358 = 0; + mTevStr.field_0x35a = 0; + mTevStr.field_0x35c = 0; + mTevStr.field_0x360 = 0; + mTevStr.field_0x362 = 0; } -#pragma pop /* 800CC7FC-800CD78C 0C713C 0F90+00 1/1 0/0 0/0 .text draw__9daAlink_cFv */ #pragma push @@ -18692,14 +18952,31 @@ asm daAlink_c::~daAlink_c() { #pragma pop /* 800CE208-800CE294 0C8B48 008C+00 1/0 0/0 0/0 .text daAlink_Delete__FP9daAlink_c */ +// destructor issue +#ifdef NONMATCHING +static bool daAlink_Delete(daAlink_c* p_link) { + if (p_link->getClothesChangeWaitTimer() != 0) { + p_link->loadModelDVD(); + return false; + } + else if (p_link->getShieldChangeWaitTimer() != 0) { + p_link->loadShieldModelDVD(); + return false; + } else { + delete p_link; + return true; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void daAlink_Delete(daAlink_c* param_0) { +static asm bool daAlink_Delete(daAlink_c* param_0) { nofralloc #include "asm/d/a/d_a_alink/daAlink_Delete__FP9daAlink_c.s" } #pragma pop +#endif /* 800CE294-800CE468 0C8BD4 01D4+00 1/1 0/0 0/0 .text checkNoSubjectModeCamera__9daAlink_cFv */ #pragma push @@ -18878,14 +19155,9 @@ u32 daAlink_c::checkHorseRide() const { } /* 800CF298-800CF2B4 0C9BD8 001C+00 1/0 0/0 0/0 .text getLeftItemMatrix__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm Mtx* daAlink_c::getLeftItemMatrix() { - nofralloc -#include "asm/d/a/d_a_alink/getLeftItemMatrix__9daAlink_cFv.s" +MtxP daAlink_c::getLeftItemMatrix() { + return field_0x0650->i_getAnmMtx(field_0x30c0); } -#pragma pop /* 800CF2B4-800CF2C8 0C9BF4 0014+00 1/0 0/0 0/0 .text checkBoarRide__9daAlink_cCFv */ u32 daAlink_c::checkBoarRide() const { @@ -18898,55 +19170,32 @@ u32 daAlink_c::checkSpinnerRide() const { } /* 800CF2DC-800CF2F8 0C9C1C 001C+00 1/0 0/0 0/0 .text getLeftHandMatrix__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm Mtx* daAlink_c::getLeftHandMatrix() { - nofralloc -#include "asm/d/a/d_a_alink/getLeftHandMatrix__9daAlink_cFv.s" +MtxP daAlink_c::getLeftHandMatrix() { + return field_0x0650->i_getAnmMtx(field_0x30b8); } -#pragma pop /* 800CF2F8-800CF314 0C9C38 001C+00 1/0 0/0 0/0 .text getRightHandMatrix__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm Mtx* daAlink_c::getRightHandMatrix() { - nofralloc -#include "asm/d/a/d_a_alink/getRightHandMatrix__9daAlink_cFv.s" +MtxP daAlink_c::getRightHandMatrix() { + return field_0x0650->i_getAnmMtx(field_0x30ba); } -#pragma pop /* 800CF314-800CF328 0C9C54 0014+00 1/0 0/0 0/0 .text * onSceneChangeArea__9daAlink_cFUcUcP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::onSceneChangeArea(u8 param_0, u8 param_1, fopAc_ac_c* param_2) { - nofralloc -#include "asm/d/a/d_a_alink/onSceneChangeArea__9daAlink_cFUcUcP10fopAc_ac_c.s" +void daAlink_c::onSceneChangeArea(u8 param_0, u8 param_1, fopAc_ac_c* param_2) { + field_0x3112 = param_0; + field_0x2fac = param_1; + field_0x2808 = param_2; } -#pragma pop /* 800CF328-800CF344 0C9C68 001C+00 1/0 0/0 0/0 .text getRightItemMatrix__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm Mtx* daAlink_c::getRightItemMatrix() { - nofralloc -#include "asm/d/a/d_a_alink/getRightItemMatrix__9daAlink_cFv.s" +MtxP daAlink_c::getRightItemMatrix() { + return field_0x0650->i_getAnmMtx(field_0x30c2); } -#pragma pop /* 800CF344-800CF380 0C9C84 003C+00 1/0 0/0 0/0 .text checkPlayerNoDraw__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkPlayerNoDraw() { - nofralloc -#include "asm/d/a/d_a_alink/checkPlayerNoDraw__9daAlink_cFv.s" +BOOL daAlink_c::checkPlayerNoDraw() { + return dComIfGp_checkCameraAttentionStatus(field_0x317c, 2) || i_checkNoResetFlg0(FLG0_UNK_8000000); } -#pragma pop /* 800CF380-800CFC3C 0C9CC0 08BC+00 1/1 0/0 0/0 .text __ct__9daAlink_cFv */ #pragma push @@ -19067,33 +19316,18 @@ static asm void cMtx_multVec(f32 const (*param_0)[4], Vec const* param_1, Vec* p #pragma pop /* 800CFFE0-800CFFF4 0CA920 0014+00 1/1 0/0 0/0 .text getAnmMtx__8J3DModelFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm Mtx* J3DModel::getAnmMtx(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/getAnmMtx__8J3DModelFi.s" +MtxP J3DModel::getAnmMtx(int i) { + return mMtxBuffer->getAnmMtx(i); } -#pragma pop /* 800CFFF4-800D0020 0CA934 002C+00 1/1 0/0 0/0 .text setBaseTRMtx__8J3DModelFPA4_f */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DModel::setBaseTRMtx(f32 (*param_0)[4]) { - nofralloc -#include "asm/d/a/d_a_alink/setBaseTRMtx__8J3DModelFPA4_f.s" +void J3DModel::setBaseTRMtx(MtxP matrix) { + PSMTXCopy(matrix, mBaseTransformMtx); } -#pragma pop /* 800D0020-800D0048 0CA960 0028+00 1/1 0/0 0/0 .text checkFmChainGrabAnime__9daAlink_cCFv */ BOOL daAlink_c::checkFmChainGrabAnime() const { - bool fmChainGrab = false; - - if (checkUpperAnime(ANM_HUMAN_CHAIN_GRAB) || checkUpperAnime(ANM_WOLF_CHAIN_GRAB)) { - fmChainGrab = true; - } - return fmChainGrab; + return checkUpperAnime(ANM_HUMAN_CHAIN_GRAB) || checkUpperAnime(ANM_WOLF_CHAIN_GRAB); } /* 800D0048-800D005C 0CA988 0014+00 1/1 0/0 0/0 .text checkSmallUpperGuardAnime__9daAlink_cCFv */ @@ -19139,35 +19373,13 @@ void dBgS_Acch::ClrGroundHit() { } /* 800D00EC-800D0110 0CAA2C 0024+00 1/1 0/0 0/0 .text checkReinRide__9daAlink_cCFv */ -// regalloc -#ifdef NONMATCHING BOOL daAlink_c::checkReinRide() const { - bool reinRide = false; - - if (mRideStatus == 1 || mRideStatus == 2) { - reinRide = true; - } - return reinRide; -} -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL daAlink_c::checkReinRide() const { - nofralloc -#include "asm/d/a/d_a_alink/checkReinRide__9daAlink_cCFv.s" + return mRideStatus == 1 || mRideStatus == 2; } -#pragma pop -#endif /* 800D0110-800D0138 0CAA50 0028+00 1/1 0/0 0/0 .text checkWolfEnemyThrowAnime__9daAlink_cCFv */ BOOL daAlink_c::checkWolfEnemyThrowAnime() const { - bool wolfEnemyThrowAnime = false; - - if (checkUpperAnime(ANM_WOLF_ENEMY_THROW_LEFT) || checkUpperAnime(ANM_WOLF_ENEMY_THROW_RIGHT)) { - wolfEnemyThrowAnime = true; - } - return wolfEnemyThrowAnime; + return checkUpperAnime(ANM_WOLF_ENEMY_THROW_LEFT) || checkUpperAnime(ANM_WOLF_ENEMY_THROW_RIGHT); } /* 800D0138-800D014C 0CAA78 0014+00 1/1 0/0 0/0 .text checkSpecialDemoMode__9daAlink_cCFv @@ -19183,24 +19395,14 @@ void daAlink_c::setMidnaTalkStatus(u8 status) { } /* 800D0164-800D0180 0CAAA4 001C+00 1/1 0/0 0/0 .text set3DStatus__9daAlink_cFUcUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::set3DStatus(u8 param_0, u8 param_1) { - nofralloc -#include "asm/d/a/d_a_alink/set3DStatus__9daAlink_cFUcUc.s" +void daAlink_c::set3DStatus(u8 status, u8 direction) { + dComIfGp_set3DStatus(status, direction, 0); } -#pragma pop /* 800D0180-800D018C 0CAAC0 000C+00 1/1 0/0 0/0 .text offSetFlg__16daAlink_matAnm_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_matAnm_c::offSetFlg() { - nofralloc -#include "asm/d/a/d_a_alink/offSetFlg__16daAlink_matAnm_cFv.s" +void daAlink_matAnm_c::offSetFlg() { + mSetFlag = 0; } -#pragma pop /* 800D018C-800D0198 0CAACC 000C+00 1/1 0/0 0/0 .text checkModeFlg__9daAlink_cCFUl */ u32 daAlink_c::checkModeFlg(u32 pFlag) const { @@ -19218,24 +19420,18 @@ u8 daAlink_c::getClothesChangeWaitTimer() const { } /* 800D01A8-800D01E0 0CAAE8 0038+00 1/0 0/0 0/0 .text checkHorseStart__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkHorseStart() { - nofralloc -#include "asm/d/a/d_a_alink/checkHorseStart__9daAlink_cFv.s" +u32 daPy_py_c::getLastSceneMode() { + return dComIfGs_getLastSceneMode(); +} + +BOOL daAlink_c::checkHorseStart() { + return checkHorseStart(getLastSceneMode() & 0xF, getStartMode()); } -#pragma pop /* 800D01E0-800D0208 0CAB20 0028+00 1/0 0/0 0/0 .text checkCutTurnCharge__9daAlink_cCFv */ BOOL daAlink_c::checkCutTurnCharge() const { - bool cutTurnCharge = false; - - if (mActionID == CUT_TURN_MOVE && mCommonCounter == 0) { - cutTurnCharge = true; - } - return cutTurnCharge; + return mActionID == CUT_TURN_MOVE && mCommonCounter == 0; } /* 800D0208-800D0228 0CAB48 0020+00 1/0 0/0 0/0 .text checkAcceptDungeonWarpAlink__9daAlink_cFi */ @@ -19270,86 +19466,55 @@ s16 daAlink_c::checkSumouWithstand() const { */ void daAlink_c::setMidnaMsgNum(fopAc_ac_c* param_0, u16 pMsgNum) { mMidnaMsgNum = pMsgNum; - field_0x2800 = param_0; + static_cast<fopAc_ac_c*>(mMidnaMsg) = param_0; } /* 800D0290-800D029C 0CABD0 000C+00 1/0 0/0 0/0 .text getModelMtx__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm Mtx* daAlink_c::getModelMtx() { - nofralloc -#include "asm/d/a/d_a_alink/getModelMtx__9daAlink_cFv.s" +MtxP daAlink_c::getModelMtx() { + return field_0x0650->getBaseTRMtx(); } -#pragma pop /* 800D029C-800D02A4 0CABDC 0008+00 1/0 0/0 0/0 .text getInvMtx__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm Mtx* daAlink_c::getInvMtx() { - nofralloc -#include "asm/d/a/d_a_alink/getInvMtx__9daAlink_cFv.s" +MtxP daAlink_c::getInvMtx() { + return mInvMtx; } -#pragma pop /* 800D02A4-800D02B8 0CABE4 0014+00 1/0 0/0 0/0 .text getLinkBackBone1Matrix__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm Mtx* daAlink_c::getLinkBackBone1Matrix() { - nofralloc -#include "asm/d/a/d_a_alink/getLinkBackBone1Matrix__9daAlink_cFv.s" +MtxP daAlink_c::getLinkBackBone1Matrix() { + return field_0x0650->i_getAnmMtx(1); } -#pragma pop /* 800D02B8-800D02CC 0CABF8 0014+00 1/0 0/0 0/0 .text getWolfMouthMatrix__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm Mtx* daAlink_c::getWolfMouthMatrix() { - nofralloc -#include "asm/d/a/d_a_alink/getWolfMouthMatrix__9daAlink_cFv.s" +MtxP daAlink_c::getWolfMouthMatrix() { + return field_0x0650->i_getAnmMtx(13); } -#pragma pop /* 800D02CC-800D02E0 0CAC0C 0014+00 1/0 0/0 0/0 .text getWolfBackbone2Matrix__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm Mtx* daAlink_c::getWolfBackbone2Matrix() { - nofralloc -#include "asm/d/a/d_a_alink/getWolfBackbone2Matrix__9daAlink_cFv.s" +MtxP daAlink_c::getWolfBackbone2Matrix() { + return field_0x0650->i_getAnmMtx(2); } -#pragma pop /* 800D02E0-800D0334 0CAC20 0054+00 1/0 0/0 0/0 .text getBottleMtx__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::getBottleMtx() { - nofralloc -#include "asm/d/a/d_a_alink/getBottleMtx__9daAlink_cFv.s" +MtxP daAlink_c::getBottleMtx() { + if (mHeldItemModel != NULL && checkBottleItem(mEquipItem)) { + return mHeldItemModel->getBaseTRMtx(); + } + + return NULL; } -#pragma pop /* 800D0334-800D0350 0CAC74 001C+00 1/0 0/0 0/0 .text getHeadMtx__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::getHeadMtx() { - nofralloc -#include "asm/d/a/d_a_alink/getHeadMtx__9daAlink_cFv.s" +MtxP daAlink_c::getHeadMtx() { + return field_0x0650->i_getAnmMtx(field_0x30b4); } -#pragma pop /* 800D0350-800D0358 0CAC90 0008+00 1/0 0/0 0/0 .text getGroundY__9daAlink_cFv */ -float daAlink_c::getGroundY() { +f32 daAlink_c::getGroundY() { return mLinkAcch.GetGroundH(); } /* 800D0358-800D0360 0CAC98 0008+00 1/0 0/0 0/0 .text getBaseAnimeFrameRate__9daAlink_cCFv */ -float daAlink_c::getBaseAnimeFrameRate() const { +f32 daAlink_c::getBaseAnimeFrameRate() const { return mFrameCtrl1[0].getRate(); } @@ -19365,10 +19530,10 @@ s32 daAlink_c::getItemID() const { /* 800D0370-800D038C 0CACB0 001C+00 1/0 0/0 0/0 .text getGrabActorID__9daAlink_cCFv */ s32 daAlink_c::getGrabActorID() const { - if (field_0x2fdc == 0x102) { + if (mEquipItem == 0x102) { return mItemActor.getID(); } else { - return field_0x282c.getID(); + return mGrabItemActor.getID(); } } @@ -19376,12 +19541,12 @@ s32 daAlink_c::getGrabActorID() const { */ void daAlink_c::setForcePutPos(cXyz const& pPutPos) { mForcePutPos = pPutPos; - i_onEndResetFlg1(UnkForcePutPos); + i_onEndResetFlg1(UNK_FORCE_PUT_POS); } /* 800D03B4-800D03C8 0CACF4 0014+00 1/0 0/0 0/0 .text checkPlayerFly__9daAlink_cCFv */ u32 daAlink_c::checkPlayerFly() const { - return i_checkModeFlg(PLAYER_FLY); + return i_checkModeFlg(MODE_SWIMMING | MODE_ROPE_WALK | MODE_VINE_CLIMB | MODE_UNK_800 | MODE_NO_COLLISION | MODE_CLIMB | MODE_JUMP); } /* 800D03C8-800D03DC 0CAD08 0014+00 1/0 0/0 0/0 .text checkFrontRoll__9daAlink_cCFv */ @@ -19390,605 +19555,349 @@ BOOL daAlink_c::checkFrontRoll() const { } /* 800D03DC-800D03F0 0CAD1C 0014+00 1/0 0/0 0/0 .text checkWolfDash__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkWolfDash() const { - nofralloc -#include "asm/d/a/d_a_alink/checkWolfDash__9daAlink_cCFv.s" +BOOL daAlink_c::checkWolfDash() const { + return mActionID == WOLF_DASH; } -#pragma pop /* 800D03F0-800D0414 0CAD30 0024+00 1/0 0/0 0/0 .text checkAutoJump__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkAutoJump() const { - nofralloc -#include "asm/d/a/d_a_alink/checkAutoJump__9daAlink_cCFv.s" +BOOL daAlink_c::checkAutoJump() const { + return mActionID == HUMAN_AUTOJUMP || mActionID == WOLF_AUTOJUMP; } -#pragma pop /* 800D0414-800D0444 0CAD54 0030+00 1/0 0/0 0/0 .text checkSideStep__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkSideStep() const { - nofralloc -#include "asm/d/a/d_a_alink/checkSideStep__9daAlink_cCFv.s" +bool daAlink_c::checkSideStep() const { + return (mActionID == HUMAN_SIDESTEP || mActionID == WOLF_SIDESTEP) && field_0x300a != 0; } -#pragma pop /* 800D0444-800D0468 0CAD84 0024+00 1/0 0/0 0/0 .text checkWolfTriggerJump__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkWolfTriggerJump() const { - nofralloc -#include "asm/d/a/d_a_alink/checkWolfTriggerJump__9daAlink_cCFv.s" +bool daAlink_c::checkWolfTriggerJump() const { + return mActionID == WOLF_SIDESTEP || mActionID == WOLF_JUMPATTACK; } -#pragma pop /* 800D0468-800D047C 0CADA8 0014+00 1/0 0/0 0/0 .text checkGuardBreakMode__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkGuardBreakMode() const { - nofralloc -#include "asm/d/a/d_a_alink/checkGuardBreakMode__9daAlink_cCFv.s" +BOOL daAlink_c::checkGuardBreakMode() const { + return mActionID == GUARD_BREAK; } -#pragma pop /* 800D047C-800D04A4 0CADBC 0028+00 1/0 0/0 0/0 .text checkLv3Slide__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkLv3Slide() const { - nofralloc -#include "asm/d/a/d_a_alink/checkLv3Slide__9daAlink_cCFv.s" +bool daAlink_c::checkLv3Slide() const { + return mActionID == HUMAN_SLIDE && field_0x300e != 0; } -#pragma pop /* 800D04A4-800D04B8 0CADE4 0014+00 1/0 0/0 0/0 .text checkWolfHowlDemoMode__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkWolfHowlDemoMode() const { - nofralloc -#include "asm/d/a/d_a_alink/checkWolfHowlDemoMode__9daAlink_cCFv.s" +bool daAlink_c::checkWolfHowlDemoMode() const { + return mActionID == WOLF_HOWL; } -#pragma pop /* 800D04B8-800D04CC 0CADF8 0014+00 1/0 0/0 0/0 .text checkElecDamage__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkElecDamage() const { - nofralloc -#include "asm/d/a/d_a_alink/checkElecDamage__9daAlink_cCFv.s" +BOOL daAlink_c::checkElecDamage() const { + return mActionID == ELEC_DAMAGE; } -#pragma pop /* 800D04CC-800D04F4 0CAE0C 0028+00 1/0 0/0 0/0 .text checkEmptyBottleSwing__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkEmptyBottleSwing() const { - nofralloc -#include "asm/d/a/d_a_alink/checkEmptyBottleSwing__9daAlink_cCFv.s" +BOOL daAlink_c::checkEmptyBottleSwing() const { + return mEquipItem == EMPTY_BOTTLE && mActionID == BOTTLE_SWING; } -#pragma pop /* 800D04F4-800D0508 0CAE34 0014+00 1/0 0/0 0/0 .text checkBottleSwingMode__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkBottleSwingMode() const { - nofralloc -#include "asm/d/a/d_a_alink/checkBottleSwingMode__9daAlink_cCFv.s" +BOOL daAlink_c::checkBottleSwingMode() const { + return mActionID == BOTTLE_SWING; } -#pragma pop /* 800D0508-800D051C 0CAE48 0014+00 1/0 0/0 0/0 .text checkHawkWait__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkHawkWait() const { - nofralloc -#include "asm/d/a/d_a_alink/checkHawkWait__9daAlink_cCFv.s" +BOOL daAlink_c::checkHawkWait() const { + return mActionID == HAWK_WAIT; } -#pragma pop /* 800D051C-800D0544 0CAE5C 0028+00 1/0 0/0 0/0 .text checkGoatThrow__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkGoatThrow() const { - nofralloc -#include "asm/d/a/d_a_alink/checkGoatThrow__9daAlink_cCFv.s" +BOOL daAlink_c::checkGoatThrow() const { + return mActionID == GOAT_THROW && mCommonCounter != 0; } -#pragma pop /* 800D0544-800D0570 0CAE84 002C+00 1/0 0/0 0/0 .text checkGoatThrowAfter__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkGoatThrowAfter() const { - nofralloc -#include "asm/d/a/d_a_alink/checkGoatThrowAfter__9daAlink_cCFv.s" +BOOL daAlink_c::checkGoatThrowAfter() const { + return mActionID == GOAT_THROW && field_0x3478 > FLOAT_LABEL(lit_6108); } -#pragma pop /* 800D0570-800D0598 0CAEB0 0028+00 1/0 0/0 0/0 .text checkWolfTagLockJump__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkWolfTagLockJump() const { - nofralloc -#include "asm/d/a/d_a_alink/checkWolfTagLockJump__9daAlink_cCFv.s" +BOOL daAlink_c::checkWolfTagLockJump() const { + return mActionID == WOLF_TAGLOCK_JUMP && field_0x3198 == 0; } -#pragma pop /* 800D0598-800D05AC 0CAED8 0014+00 1/0 0/0 0/0 .text checkWolfTagLockJumpLand__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkWolfTagLockJumpLand() const { - nofralloc -#include "asm/d/a/d_a_alink/checkWolfTagLockJumpLand__9daAlink_cCFv.s" +BOOL daAlink_c::checkWolfTagLockJumpLand() const { + return mActionID == WOLF_TAGLOCK_LAND; } -#pragma pop /* 800D05AC-800D05C0 0CAEEC 0014+00 1/0 0/0 0/0 .text checkWolfRopeHang__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkWolfRopeHang() const { - nofralloc -#include "asm/d/a/d_a_alink/checkWolfRopeHang__9daAlink_cCFv.s" +BOOL daAlink_c::checkWolfRopeHang() const { + return mActionID == WOLF_ROPE_HANG; } -#pragma pop /* 800D05C0-800D05D4 0CAF00 0014+00 1/0 0/0 0/0 .text checkRollJump__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkRollJump() const { - nofralloc -#include "asm/d/a/d_a_alink/checkRollJump__9daAlink_cCFv.s" +BOOL daAlink_c::checkRollJump() const { + return mActionID == ROLL_JUMP; } -#pragma pop /* 800D05D4-800D05E8 0CAF14 0014+00 1/0 0/0 0/0 .text checkGoronRideWait__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkGoronRideWait() const { - nofralloc -#include "asm/d/a/d_a_alink/checkGoronRideWait__9daAlink_cCFv.s" +BOOL daAlink_c::checkGoronRideWait() const { + return mActionID == GORON_RIDE_WAIT; } -#pragma pop /* 800D05E8-800D05FC 0CAF28 0014+00 1/0 0/0 0/0 .text checkWolfChain__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkWolfChain() const { - nofralloc -#include "asm/d/a/d_a_alink/checkWolfChain__9daAlink_cCFv.s" +BOOL daAlink_c::checkWolfChain() const { + return mActionID == WOLF_CHAIN; } -#pragma pop /* 800D05FC-800D0610 0CAF3C 0014+00 1/0 0/0 0/0 .text checkWolfWait__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkWolfWait() const { - nofralloc -#include "asm/d/a/d_a_alink/checkWolfWait__9daAlink_cCFv.s" +BOOL daAlink_c::checkWolfWait() const { + return mActionID == WOLF_WAIT; } -#pragma pop /* 800D0610-800D0624 0CAF50 0014+00 1/0 0/0 0/0 .text checkWolfJumpAttack__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkWolfJumpAttack() const { - nofralloc -#include "asm/d/a/d_a_alink/checkWolfJumpAttack__9daAlink_cCFv.s" +BOOL daAlink_c::checkWolfJumpAttack() const { + return mActionID == WOLF_JUMPATTACK; } -#pragma pop /* 800D0624-800D0638 0CAF64 0014+00 1/0 0/0 0/0 .text checkWolfRSit__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkWolfRSit() const { - nofralloc -#include "asm/d/a/d_a_alink/checkWolfRSit__9daAlink_cCFv.s" +BOOL daAlink_c::checkWolfRSit() const { + return mActionID == WOLF_RSIT; } -#pragma pop /* 800D0638-800D0660 0CAF78 0028+00 1/0 0/0 0/0 .text checkBottleDrinkEnd__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkBottleDrinkEnd() const { - nofralloc -#include "asm/d/a/d_a_alink/checkBottleDrinkEnd__9daAlink_cCFv.s" +BOOL daAlink_c::checkBottleDrinkEnd() const { + return mActionID == BOTTLE_DRINK && field_0x300e != 0; } -#pragma pop /* 800D0660-800D0674 0CAFA0 0014+00 1/0 0/0 0/0 .text checkWolfDig__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkWolfDig() const { - nofralloc -#include "asm/d/a/d_a_alink/checkWolfDig__9daAlink_cCFv.s" +BOOL daAlink_c::checkWolfDig() const { + return mActionID == WOLF_DIG; } -#pragma pop /* 800D0674-800D0688 0CAFB4 0014+00 1/0 0/0 0/0 .text checkCutCharge__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkCutCharge() const { - nofralloc -#include "asm/d/a/d_a_alink/checkCutCharge__9daAlink_cCFv.s" +BOOL daAlink_c::checkCutCharge() const { + return mActionID == CUT_TURN_MOVE; } -#pragma pop /* 800D0688-800D06B0 0CAFC8 0028+00 1/0 0/0 0/0 .text checkCutLargeJumpCharge__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkCutLargeJumpCharge() const { - nofralloc -#include "asm/d/a/d_a_alink/checkCutLargeJumpCharge__9daAlink_cCFv.s" +BOOL daAlink_c::checkCutLargeJumpCharge() const { + return mActionID == CUT_TURN_MOVE && mCommonCounter != 0; } -#pragma pop /* 800D06B0-800D06D8 0CAFF0 0028+00 1/0 0/0 0/0 .text checkComboCutTurn__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkComboCutTurn() const { - nofralloc -#include "asm/d/a/d_a_alink/checkComboCutTurn__9daAlink_cCFv.s" +BOOL daAlink_c::checkComboCutTurn() const { + return mActionID == COMBO_CUT_TURN && mComboCutCount != 0; } -#pragma pop /* 800D06D8-800D0704 0CB018 002C+00 1/0 0/0 0/0 .text checkClimbMove__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkClimbMove() const { - nofralloc -#include "asm/d/a/d_a_alink/checkClimbMove__9daAlink_cCFv.s" +BOOL daAlink_c::checkClimbMove() const { + return mActionID == CLIMB_MOVE_VERTICAL || mActionID == CLIMB_MOVE_LADDER || mActionID == CLIMB_MOVE_HORIZONTAL; } -#pragma pop /* 800D0704-800D0718 0CB044 0014+00 1/0 0/0 0/0 .text checkGrassWhistle__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkGrassWhistle() const { - nofralloc -#include "asm/d/a/d_a_alink/checkGrassWhistle__9daAlink_cCFv.s" +BOOL daAlink_c::checkGrassWhistle() const { + return mActionID == GRASS_WHISTLE; } -#pragma pop /* 800D0718-800D072C 0CB058 0014+00 1/0 0/0 0/0 .text checkBoarRun__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkBoarRun() const { - nofralloc -#include "asm/d/a/d_a_alink/checkBoarRun__9daAlink_cCFv.s" +BOOL daAlink_c::checkBoarRun() const { + return mActionID == BOAR_RUN; } -#pragma pop /* 800D072C-800D0794 0CB06C 0068+00 1/0 0/0 0/0 .text checkHorseRideNotReady__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkHorseRideNotReady() const { - nofralloc -#include "asm/d/a/d_a_alink/checkHorseRideNotReady__9daAlink_cCFv.s" +BOOL daAlink_c::checkHorseRideNotReady() const { + return checkHorseRide() && mActionID != HORSE_RIDE && mActionID != HORSE_GETOFF; } -#pragma pop /* 800D0794-800D079C 0CB0D4 0008+00 1/0 0/0 0/0 .text getSearchBallScale__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getSearchBallScale() const { - nofralloc -#include "asm/d/a/d_a_alink/getSearchBallScale__9daAlink_cCFv.s" +f32 daAlink_c::getSearchBallScale() const { + return mSearchBallScale; } -#pragma pop /* 800D079C-800D07A4 0CB0DC 0008+00 1/0 0/0 0/0 .text checkFastShotTime__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkFastShotTime() { - nofralloc -#include "asm/d/a/d_a_alink/checkFastShotTime__9daAlink_cFv.s" +s16 daAlink_c::checkFastShotTime() { + return mFastShotTime; } -#pragma pop /* 800D07A4-800D07D4 0CB0E4 0030+00 1/0 0/0 0/0 .text checkCutJumpCancelTurn__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkCutJumpCancelTurn() const { - nofralloc -#include "asm/d/a/d_a_alink/checkCutJumpCancelTurn__9daAlink_cCFv.s" +BOOL daAlink_c::checkCutJumpCancelTurn() const { + return (mActionID == CUT_JUMP || mActionID == CUT_JUMP_LAND) && field_0x3198 != 2; } -#pragma pop /* 800D07D4-800D07FC 0CB114 0028+00 1/0 0/0 0/0 .text * checkSingleBoarBattleSecondBowReady__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkSingleBoarBattleSecondBowReady() const { - nofralloc -#include "asm/d/a/d_a_alink/checkSingleBoarBattleSecondBowReady__9daAlink_cCFv.s" +BOOL daAlink_c::checkSingleBoarBattleSecondBowReady() const { + return mActionID == RIDE_BOW_READY && mCommonCounter != 0; } -#pragma pop /* 800D07FC-800D0818 0CB13C 001C+00 1/0 0/0 0/0 .text cancelDungeonWarpReadyNeck__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::cancelDungeonWarpReadyNeck() { - nofralloc -#include "asm/d/a/d_a_alink/cancelDungeonWarpReadyNeck__9daAlink_cFv.s" +void daAlink_c::cancelDungeonWarpReadyNeck() { + if (mActionID != DUNGEON_WARP_READY) { + return; + } + offModeFlg(MODE_UNK_100); } -#pragma pop /* 800D0818-800D0830 0CB158 0018+00 1/0 0/0 0/0 .text * onSceneChangeAreaJump__9daAlink_cFUcUcP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::onSceneChangeAreaJump(u8 param_0, u8 param_1, fopAc_ac_c* param_2) { - nofralloc -#include "asm/d/a/d_a_alink/onSceneChangeAreaJump__9daAlink_cFUcUcP10fopAc_ac_c.s" +void daAlink_c::onSceneChangeAreaJump(u8 param_0, u8 param_1, fopAc_ac_c* param_2) { + field_0x3112 = param_0 | 0x8000; + field_0x2fac = param_1; + field_0x2808 = param_2; } -#pragma pop /* 800D0830-800D084C 0CB170 001C+00 1/0 0/0 0/0 .text onSceneChangeDead__9daAlink_cFUci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::onSceneChangeDead(u8 param_0, int param_1) { - nofralloc -#include "asm/d/a/d_a_alink/onSceneChangeDead__9daAlink_cFUci.s" +void daAlink_c::onSceneChangeDead(u8 param_0, int param_1) { + if (mActionID != DEAD) { + return; + } + field_0x3012 = param_0; + field_0x3198 = param_1; } -#pragma pop /* 800D084C-800D0860 0CB18C 0014+00 1/0 0/0 0/0 .text checkNoEquipItem__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkNoEquipItem() const { - nofralloc -#include "asm/d/a/d_a_alink/checkNoEquipItem__9daAlink_cCFv.s" +bool daAlink_c::checkNoEquipItem() const { + return mEquipItem == NO_ITEM; } -#pragma pop /* 800D0860-800D087C 0CB1A0 001C+00 1/0 0/0 0/0 .text getBoardCutTurnOffsetAngleY__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::getBoardCutTurnOffsetAngleY() const { - nofralloc -#include "asm/d/a/d_a_alink/getBoardCutTurnOffsetAngleY__9daAlink_cCFv.s" +s16 daAlink_c::getBoardCutTurnOffsetAngleY() const { + if (mActionID == BOARD_CUT_TURN) { + return field_0x3012; + } + return 0; } -#pragma pop /* 800D087C-800D0884 0CB1BC 0008+00 1/0 0/0 0/0 .text getMagneBootsTopVec__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm cXyz* daAlink_c::getMagneBootsTopVec() { - nofralloc -#include "asm/d/a/d_a_alink/getMagneBootsTopVec__9daAlink_cFv.s" +cXyz* daAlink_c::getMagneBootsTopVec() { + return &mMagneBootsTopVec; } -#pragma pop /* 800D0884-800D08B0 0CB1C4 002C+00 1/0 0/0 0/0 .text setCargoCarry__9daAlink_cFP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setCargoCarry(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_alink/setCargoCarry__9daAlink_cFP10fopAc_ac_c.s" +void daAlink_c::setCargoCarry(fopAc_ac_c* p_actor) { + mSpecialMode = SMODE_CARGO_CARRY; + mCargoCarryActor.setData(p_actor); } -#pragma pop /* 800D08B0-800D08DC 0CB1F0 002C+00 1/0 0/0 0/0 .text setGoronSideMove__9daAlink_cFP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setGoronSideMove(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_alink/setGoronSideMove__9daAlink_cFP10fopAc_ac_c.s" +void daAlink_c::setGoronSideMove(fopAc_ac_c* p_actor) { + mSpecialMode = SMODE_GORON_THROW; + mCargoCarryActor.setData(p_actor); } -#pragma pop /* 800D08DC-800D091C 0CB21C 0040+00 1/0 0/0 0/0 .text setSumouReady__9daAlink_cFP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setSumouReady(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_alink/setSumouReady__9daAlink_cFP10fopAc_ac_c.s" +void daAlink_c::setSumouReady(fopAc_ac_c* p_actor) { + mSpecialMode = SMODE_SUMO_READY; + mCargoCarryActor.setData(p_actor); + mDemo.setDemoMode(1); } -#pragma pop /* 800D091C-800D0930 0CB25C 0014+00 1/0 0/0 0/0 .text setSumouPushBackDirection__9daAlink_cFs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setSumouPushBackDirection(s16 param_0) { - nofralloc -#include "asm/d/a/d_a_alink/setSumouPushBackDirection__9daAlink_cFs.s" +void daAlink_c::setSumouPushBackDirection(s16 param_0) { + if (mActionID != SUMOU_PUSH) { + return; + } + field_0x3010 = param_0; } -#pragma pop /* 800D0930-800D0948 0CB270 0018+00 1/0 0/0 0/0 .text setSumouLoseHeadUp__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setSumouLoseHeadUp() { - nofralloc -#include "asm/d/a/d_a_alink/setSumouLoseHeadUp__9daAlink_cFv.s" +void daAlink_c::setSumouLoseHeadUp() { + if (mActionID != SUMOU_WIN_LOSE) { + return; + } + mSpecialMode = SMODE_SUMO_LOSE; } -#pragma pop /* 800D0948-800D095C 0CB288 0014+00 1/0 0/0 0/0 .text checkPriActorOwn__9daAlink_cCFPC10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkPriActorOwn(fopAc_ac_c const* param_0) const { - nofralloc -#include "asm/d/a/d_a_alink/checkPriActorOwn__9daAlink_cCFPC10fopAc_ac_c.s" +bool daAlink_c::checkPriActorOwn(fopAc_ac_c const* p_actor) const { + return field_0x27f4 == p_actor; } -#pragma pop /* 800D095C-800D0970 0CB29C 0014+00 1/0 0/0 0/0 .text * checkWolfEnemyBiteAllOwn__9daAlink_cCFPC10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkWolfEnemyBiteAllOwn(fopAc_ac_c const* param_0) const { - nofralloc -#include "asm/d/a/d_a_alink/checkWolfEnemyBiteAllOwn__9daAlink_cCFPC10fopAc_ac_c.s" +bool daAlink_c::checkWolfEnemyBiteAllOwn(fopAc_ac_c const* p_actor) const { + return field_0x281c.getActorConst() == p_actor; } -#pragma pop /* 800D0970-800D0984 0CB2B0 0014+00 1/0 0/0 0/0 .text setWolfEnemyHangBiteAngle__9daAlink_cFs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setWolfEnemyHangBiteAngle(s16 param_0) { - nofralloc -#include "asm/d/a/d_a_alink/setWolfEnemyHangBiteAngle__9daAlink_cFs.s" +void daAlink_c::setWolfEnemyHangBiteAngle(s16 angle) { + if (mActionID != WOLF_ENEMY_HANG_BITE) { + return; + } + field_0x3010 = angle; } -#pragma pop /* 800D0984-800D0998 0CB2C4 0014+00 1/0 0/0 0/0 .text setSumouGraspCancelCount__9daAlink_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setSumouGraspCancelCount(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/setSumouGraspCancelCount__9daAlink_cFi.s" +void daAlink_c::setSumouGraspCancelCount(int param_0) { + if (mActionID != SUMOU_PUSH) { + return; + } + mCommonCounter = param_0; } -#pragma pop /* 800D0998-800D09AC 0CB2D8 0014+00 1/0 0/0 0/0 .text checkItemSwordEquip__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkItemSwordEquip() const { - nofralloc -#include "asm/d/a/d_a_alink/checkItemSwordEquip__9daAlink_cCFv.s" +bool daAlink_c::checkItemSwordEquip() const { + return mEquipItem == EQUIP_SWORD; } -#pragma pop /* 800D09AC-800D09B4 0CB2EC 0008+00 1/0 0/0 0/0 .text getSinkShapeOffset__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm float daAlink_c::getSinkShapeOffset() const { - nofralloc -#include "asm/d/a/d_a_alink/getSinkShapeOffset__9daAlink_cCFv.s" +f32 daAlink_c::getSinkShapeOffset() const { + return mSinkShapeOffset; } -#pragma pop /* 800D09B4-800D09C8 0CB2F4 0014+00 1/0 0/0 0/0 .text checkSinkDead__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkSinkDead() const { - nofralloc -#include "asm/d/a/d_a_alink/checkSinkDead__9daAlink_cCFv.s" +BOOL daAlink_c::checkSinkDead() const { + return field_0x2fbd == 0xFF; } -#pragma pop /* 800D09C8-800D09DC 0CB308 0014+00 1/0 0/0 0/0 .text checkCutJumpMode__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkCutJumpMode() const { - nofralloc -#include "asm/d/a/d_a_alink/checkCutJumpMode__9daAlink_cCFv.s" +BOOL daAlink_c::checkCutJumpMode() const { + return mActionID == CUT_JUMP; } -#pragma pop /* 800D09DC-800D09E4 0CB31C 0008+00 1/0 0/0 0/0 .text getGiantPuzzleAimAngle__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s16 daAlink_c::getGiantPuzzleAimAngle() const { - nofralloc -#include "asm/d/a/d_a_alink/getGiantPuzzleAimAngle__9daAlink_cCFv.s" +s16 daAlink_c::getGiantPuzzleAimAngle() const { + return mCommonCounter; } -#pragma pop /* 800D09E4-800D09EC 0CB324 0008+00 1/0 0/0 0/0 .text getSwordChangeWaitTimer__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::getSwordChangeWaitTimer() const { - nofralloc -#include "asm/d/a/d_a_alink/getSwordChangeWaitTimer__9daAlink_cCFv.s" +u8 daAlink_c::getSwordChangeWaitTimer() const { + return mSwordChangeWaitTimer; } -#pragma pop /* 800D09EC-800D0A14 0CB32C 0028+00 1/0 0/0 0/0 .text checkMetamorphose__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkMetamorphose() const { - nofralloc -#include "asm/d/a/d_a_alink/checkMetamorphose__9daAlink_cCFv.s" +BOOL daAlink_c::checkMetamorphose() const { + return mActionID == METAMORPHOSE && field_0x300a == 0; } -#pragma pop /* 800D0A14-800D0A28 0CB354 0014+00 1/0 0/0 0/0 .text checkWolfDownAttackPullOut__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkWolfDownAttackPullOut() const { - nofralloc -#include "asm/d/a/d_a_alink/checkWolfDownAttackPullOut__9daAlink_cCFv.s" +BOOL daAlink_c::checkWolfDownAttackPullOut() const { + return mActionID == WOLF_DOWNATTACK_PULLOUT; } -#pragma pop /* 800D0A28-800D0A30 0CB368 0008+00 1/0 0/0 0/0 .text getMidnaAtnPos__9daAlink_cCFv */ +// vtable issue +#ifdef NONMATCHING +cXyz* daAlink_c::getMidnaAtnPos() const { + return &mMidnaAtnPos; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -19998,135 +19907,86 @@ extern "C" asm void getMidnaAtnPos__9daAlink_cCFv() { #include "asm/d/a/d_a_alink/getMidnaAtnPos__9daAlink_cCFv.s" } #pragma pop +#endif /* 800D0A30-800D0A44 0CB370 0014+00 1/0 0/0 0/0 .text checkCopyRodEquip__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkCopyRodEquip() const { - nofralloc -#include "asm/d/a/d_a_alink/checkCopyRodEquip__9daAlink_cCFv.s" +bool daAlink_c::checkCopyRodEquip() const { + return mEquipItem == COPY_ROD; } -#pragma pop /* 800D0A44-800D0A6C 0CB384 0028+00 1/0 0/0 0/0 .text checkCanoeFishingGetLeft__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkCanoeFishingGetLeft() const { - nofralloc -#include "asm/d/a/d_a_alink/checkCanoeFishingGetLeft__9daAlink_cCFv.s" +bool daAlink_c::checkCanoeFishingGetLeft() const { + return mActionID == CANOE_FISHING_GET && field_0x300e == 0; } -#pragma pop /* 800D0A6C-800D0A94 0CB3AC 0028+00 1/0 0/0 0/0 .text checkCanoeFishingGetRight__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkCanoeFishingGetRight() const { - nofralloc -#include "asm/d/a/d_a_alink/checkCanoeFishingGetRight__9daAlink_cCFv.s" +bool daAlink_c::checkCanoeFishingGetRight() const { + return mActionID == CANOE_FISHING_GET && field_0x300e == 1; } -#pragma pop /* 800D0A94-800D0A9C 0CB3D4 0008+00 1/0 0/0 0/0 .text checkBeeChildDrink__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkBeeChildDrink() const { - nofralloc -#include "asm/d/a/d_a_alink/checkBeeChildDrink__9daAlink_cCFv.s" +u8 daAlink_c::checkBeeChildDrink() const { + return field_0x2fd3; } -#pragma pop /* 800D0A9C-800D0AA4 0CB3DC 0008+00 1/0 0/0 0/0 .text getWolfHowlMgrP__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::getWolfHowlMgrP() { - nofralloc -#include "asm/d/a/d_a_alink/getWolfHowlMgrP__9daAlink_cFv.s" +Z2WolfHowlMgr* daAlink_c::getWolfHowlMgrP() { + return &mZ2WolfHowlMgr; } -#pragma pop /* 800D0AA4-800D0AC8 0CB3E4 0024+00 1/0 0/0 0/0 .text checkWolfHowlSuccessAnime__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkWolfHowlSuccessAnime() const { - nofralloc -#include "asm/d/a/d_a_alink/checkWolfHowlSuccessAnime__9daAlink_cCFv.s" +BOOL daAlink_c::checkWolfHowlSuccessAnime() const { + return checkUnderMove0BckNoArcWolf(ANM_WOLF_HOWL_SUCCESS); } -#pragma pop /* 800D0AC8-800D0AF0 0CB408 0028+00 1/0 0/0 0/0 .text checkOctaIealHang__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkOctaIealHang() const { - nofralloc -#include "asm/d/a/d_a_alink/checkOctaIealHang__9daAlink_cCFv.s" +bool daAlink_c::checkOctaIealHang() const { + return mActionID == BOSS_ENEMY_HANG && field_0x32cc == 0; } -#pragma pop /* 800D0AF0-800D0B08 0CB430 0018+00 1/0 0/0 0/0 .text cancelOctaIealHang__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::cancelOctaIealHang() { - nofralloc -#include "asm/d/a/d_a_alink/cancelOctaIealHang__9daAlink_cFv.s" +void daAlink_c::cancelOctaIealHang() { + if (mActionID != BOSS_ENEMY_HANG) { + return; + } + field_0x300e = 1; } -#pragma pop /* 800D0B08-800D0B20 0CB448 0018+00 1/0 0/0 0/0 .text cancelDragonHangBackJump__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::cancelDragonHangBackJump() { - nofralloc -#include "asm/d/a/d_a_alink/cancelDragonHangBackJump__9daAlink_cFv.s" +void daAlink_c::cancelDragonHangBackJump() { + if (mActionID != BOSS_ENEMY_HANG) { + return; + } + field_0x300e = -1; } -#pragma pop /* 800D0B20-800D0B38 0CB460 0018+00 1/0 0/0 0/0 .text setOctaIealWildHang__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setOctaIealWildHang() { - nofralloc -#include "asm/d/a/d_a_alink/setOctaIealWildHang__9daAlink_cFv.s" +void daAlink_c::setOctaIealWildHang() { + if (mActionID != BOSS_ENEMY_HANG) { + return; + } + field_0x3008 = 1; } -#pragma pop /* 800D0B38-800D0B60 0CB478 0028+00 1/0 0/0 0/0 .text checkDragonHangRide__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkDragonHangRide() const { - nofralloc -#include "asm/d/a/d_a_alink/checkDragonHangRide__9daAlink_cCFv.s" +bool daAlink_c::checkDragonHangRide() const { + return mActionID == BOSS_ENEMY_HANG && field_0x32cc != 0; } -#pragma pop /* 800D0B60-800D0B8C 0CB4A0 002C+00 1/0 0/0 0/0 .text playerStartCollisionSE__9daAlink_cFUlUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::playerStartCollisionSE(u32 param_0, u32 param_1) { - nofralloc -#include "asm/d/a/d_a_alink/playerStartCollisionSE__9daAlink_cFUlUl.s" +void daAlink_c::playerStartCollisionSE(u32 param_0, u32 param_1) { + mZ2Link.startCollisionSE(param_0, param_1); } -#pragma pop /* 800D0B8C-800D0C6C 0CB4CC 00E0+00 1/0 0/0 0/0 .text __dt__16daAlink_matAnm_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm daAlink_matAnm_c::~daAlink_matAnm_c() { +// asm daAlink_matAnm_c::~daAlink_matAnm_c() { +extern "C" asm void __dt__16daAlink_matAnm_cFv() { nofralloc #include "asm/d/a/d_a_alink/__dt__16daAlink_matAnm_cFv.s" } @@ -20207,76 +20067,70 @@ asm void daAlink_c::checkLightSwordMtrl() { /* 800D0E98-800D0ECC 0CB7D8 0034+00 5/5 0/0 0/0 .text checkSwordEquipAnime__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkSwordEquipAnime() const { - nofralloc -#include "asm/d/a/d_a_alink/checkSwordEquipAnime__9daAlink_cCFv.s" +BOOL daAlink_c::checkSwordEquipAnime() const { + return !i_checkNoResetFlg0(FLG0_UNK_1000000) && (checkUpperAnime(0x255) || checkUpperAnime(0x261)); } -#pragma pop /* 800D0ECC-800D0EFC 0CB80C 0030+00 8/8 0/0 0/0 .text checkCutDashAnime__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkCutDashAnime() const { - nofralloc -#include "asm/d/a/d_a_alink/checkCutDashAnime__9daAlink_cCFv.s" +BOOL daAlink_c::checkCutDashAnime() const { + return checkUpperAnime(0x80) || checkUpperAnime(0x82) || checkUpperAnime(0x81); } -#pragma pop /* 800D0EFC-800D0F5C 0CB83C 0060+00 1/1 0/0 0/0 .text * checkCutDashEnemyHit__9daAlink_cFR12dCcD_GObjInf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkCutDashEnemyHit(dCcD_GObjInf& param_0) { - nofralloc -#include "asm/d/a/d_a_alink/checkCutDashEnemyHit__9daAlink_cFR12dCcD_GObjInf.s" +BOOL daAlink_c::checkCutDashEnemyHit(dCcD_GObjInf& obj) { + return obj.ChkAtHit() && checkEnemyGroup(obj.GetAtHitAc()); } -#pragma pop /* 800D0F5C-800D0F90 0CB89C 0034+00 6/6 0/0 0/0 .text getSwordAtType__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getSwordAtType() { - nofralloc -#include "asm/d/a/d_a_alink/getSwordAtType__9daAlink_cFv.s" +u32 daAlink_c::getSwordAtType() { + return checkMasterSwordEquip() ? 0x4000002 : 2; } -#pragma pop /* 800D0F90-800D102C 0CB8D0 009C+00 3/3 0/0 0/0 .text initCutTurnAt__9daAlink_cFfi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::initCutTurnAt(f32 param_0, int param_1) { - nofralloc -#include "asm/d/a/d_a_alink/initCutTurnAt__9daAlink_cFfi.s" +void daAlink_c::initCutTurnAt(f32 param_0, int param_1) { + field_0xFB8.ResetAtHit(); + field_0xFB8.OnAtSetBit(); + field_0xFB8.SetAtType(getSwordAtType()); + field_0xFB8.SetAtHitMark(3); + field_0xFB8.SetAtSe(1); + field_0xFB8.SetAtAtp(param_1); + u8 mtrl; + if (!i_checkNoResetFlg3(FLG3_UNK_100000)) { + mtrl = 0; + } else { + mtrl = 4; + } + field_0xFB8.SetAtMtrl(mtrl); + field_0xFB8.SetR(param_0); + field_0x2fd0 = 1; } -#pragma pop /* 800D102C-800D1088 0CB96C 005C+00 2/2 0/0 0/0 .text checkCutFinishJumpUp__9daAlink_cFv */ +#ifdef NONMATCHING +bool daAlink_c::checkCutFinishJumpUp() { + return checkCutBackState() && (!checkNotBattleStage() && swordSwingTrigger()); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkCutFinishJumpUp() { +asm bool daAlink_c::checkCutFinishJumpUp() { nofralloc #include "asm/d/a/d_a_alink/checkCutFinishJumpUp__9daAlink_cFv.s" } #pragma pop +#endif /* 800D1088-800D10E0 0CB9C8 0058+00 2/2 0/0 0/0 .text changeCutFast__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::changeCutFast() { - nofralloc -#include "asm/d/a/d_a_alink/changeCutFast__9daAlink_cFv.s" +void daAlink_c::changeCutFast() { + deleteEquipItem(0, 0); + setSwordModel(); + mComboCutCount = 3; + checkCutAction(); + i_onNoResetFlg0(FLG0_UNK_80000); } -#pragma pop /* 800D10E0-800D1268 0CBA20 0188+00 1/1 0/0 0/0 .text checkCutFastReady__9daAlink_cFv */ #pragma push @@ -20288,42 +20142,48 @@ asm void daAlink_c::checkCutFastReady() { } #pragma pop +bool daPy_py_c::checkWoodSwordEquip() { + return dComIfGs_getSelectEquipSword() == WOOD_STICK; +} + /* 800D1268-800D1310 0CBBA8 00A8+00 9/9 0/0 0/0 .text setSwordModel__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setSwordModel() { - nofralloc -#include "asm/d/a/d_a_alink/setSwordModel__9daAlink_cFv.s" +void daAlink_c::setSwordModel() { + field_0x2fde = 0xFF; + mEquipItem = EQUIP_SWORD; + + mDoAud_bgmSetSwordUsing(1); + field_0x2f94 = 0; + + if (checkWoodSwordEquip()) { + mSwordModel->getModelData()->getMaterialNodePointer(1)->getShape()->hide(); + } else { + mSwordModel->getModelData()->getMaterialNodePointer(0)->getShape()->show(); + } } -#pragma pop /* 800D1310-800D13AC 0CBC50 009C+00 2/2 0/0 0/0 .text offSwordModel__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::offSwordModel() { - nofralloc -#include "asm/d/a/d_a_alink/offSwordModel__9daAlink_cFv.s" +void daAlink_c::offSwordModel() { + mDoAud_bgmSetSwordUsing(0); + + if (mSwordModel == field_0x0668 || mSwordModel == field_0x0660) { + mSwordModel->getModelData()->getMaterialNodePointer(0)->getShape()->hide(); + } + else if (mSwordModel == field_0x0670) { + field_0x0670->getModelData()->getMaterialNodePointer(1)->getShape()->show(); + } } -#pragma pop /* 800D13AC-800D13E4 0CBCEC 0038+00 1/1 0/0 0/0 .text checkCutTypeNoBlur__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkCutTypeNoBlur() const { - nofralloc -#include "asm/d/a/d_a_alink/checkCutTypeNoBlur__9daAlink_cCFv.s" +BOOL daAlink_c::checkCutTypeNoBlur() const { + return mCutType == TYPE_CUT_STAB || mCutType == TYPE_CUT_STAB_COMBO || mCutType == TYPE_CUT_STAB_FINISH || i_checkNoResetFlg0(UNDER_WATER_MOVEMENT); } -#pragma pop /* 800D13E4-800D1424 0CBD24 0040+00 7/7 0/0 0/0 .text checkCutTurnInput__9daAlink_cCFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkCutTurnInput() const { +asm bool daAlink_c::checkCutTurnInput() const { nofralloc #include "asm/d/a/d_a_alink/checkCutTurnInput__9daAlink_cCFv.s" } @@ -20331,26 +20191,33 @@ asm void daAlink_c::checkCutTurnInput() const { /* 800D1424-800D1430 0CBD64 000C+00 7/7 0/0 0/0 .text getCutTurnDirection__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getCutTurnDirection() const { - nofralloc -#include "asm/d/a/d_a_alink/getCutTurnDirection__9daAlink_cCFv.s" +int daAlink_c::getCutTurnDirection() const { + return field_0x3180 < 0; } -#pragma pop /* 800D1430-800D1454 0CBD70 0024+00 17/17 0/0 0/0 .text resetCombo__9daAlink_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::resetCombo(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/resetCombo__9daAlink_cFi.s" +void daAlink_c::resetCombo(int param_0) { + mComboCutCount = 0; + i_offNoResetFlg0(FLG0_UNK_8000); + if (param_0 != 0) { + mRunCutComboCount = 0; + } } -#pragma pop /* 800D1454-800D152C 0CBD94 00D8+00 1/1 0/0 0/0 .text checkComboCnt__9daAlink_cFv */ +// something with i_checkAttentionLock +#ifdef NONMATCHING +void daAlink_c::checkComboCnt() { + if ((mEquipItem == EQUIP_SWORD && mComboCutCount == 2) && (i_checkAttentionLock() && (field_0x122C[0].ChkAtHit() || field_0x122C[1].ChkAtHit() || field_0x122C[2].ChkAtHit()))) { + i_onNoResetFlg0(FLG0_UNK_8000); + } + if (field_0x307e > 0) { + field_0x307e--; + } else { + resetCombo(1); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -20359,16 +20226,13 @@ asm void daAlink_c::checkComboCnt() { #include "asm/d/a/d_a_alink/checkComboCnt__9daAlink_cFv.s" } #pragma pop +#endif /* 800D152C-800D1540 0CBE6C 0014+00 22/22 0/0 0/0 .text setCutType__9daAlink_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setCutType(u8 param_0) { - nofralloc -#include "asm/d/a/d_a_alink/setCutType__9daAlink_cFUc.s" +void daAlink_c::setCutType(u8 type) { + mCutType = type; + i_offResetFlg0(RFLG0_UNK_8000000); } -#pragma pop /* 800D1540-800D1688 0CBE80 0148+00 8/8 0/0 0/0 .text * setCylAtParam__9daAlink_cFUl11dCcG_At_SplUcUciff */ @@ -20396,14 +20260,15 @@ asm void daAlink_c::setSwordAtParam(dCcG_At_Spl param_0, u8 param_1, u8 param_2, /* 800D1788-800D17EC 0CC0C8 0064+00 1/1 0/0 1/1 .text * notSwordHitVibActor__9daAlink_cFP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::notSwordHitVibActor(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_alink/notSwordHitVibActor__9daAlink_cFP10fopAc_ac_c.s" +bool daAlink_c::notSwordHitVibActor(fopAc_ac_c* p_actor) { + if (p_actor != NULL && fopAcM_GetGroup(p_actor) == 4) { + s16 name = fopAcM_GetName(p_actor); + if (!checkSpecialNpc(p_actor) && name != 0x108 && name != 0x240) { + return true; + } + } + return false; } -#pragma pop /* 800D17EC-800D1920 0CC12C 0134+00 4/4 0/0 0/0 .text * setSwordHitVibration__9daAlink_cFP12dCcD_GObjInf */ @@ -20418,32 +20283,23 @@ asm void daAlink_c::setSwordHitVibration(dCcD_GObjInf* param_0) { /* 800D1920-800D1978 0CC260 0058+00 3/3 0/0 0/0 .text checkAtShieldHit__9daAlink_cFR12dCcD_GObjInf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkAtShieldHit(dCcD_GObjInf& param_0) { - nofralloc -#include "asm/d/a/d_a_alink/checkAtShieldHit__9daAlink_cFR12dCcD_GObjInf.s" +BOOL daAlink_c::checkAtShieldHit(dCcD_GObjInf& param_0) { + return param_0.ChkAtHit() && param_0.ChkAtShieldHit(); } -#pragma pop /* 800D1978-800D19C8 0CC2B8 0050+00 1/1 0/0 0/0 .text * checkCutReverseAt__9daAlink_cFP12dCcD_GObjInf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkCutReverseAt(dCcD_GObjInf* param_0) { - nofralloc -#include "asm/d/a/d_a_alink/checkCutReverseAt__9daAlink_cFP12dCcD_GObjInf.s" +bool daAlink_c::checkCutReverseAt(dCcD_GObjInf* param_0) { + param_0->GetAtHitAc(); + return checkAtShieldHit(*param_0) ? true : false; } -#pragma pop /* 800D19C8-800D1E1C 0CC308 0454+00 5/5 0/0 0/0 .text * changeCutReverseProc__9daAlink_cFQ29daAlink_c11daAlink_ANM */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::changeCutReverseProc(daAlink_c::daAlink_ANM param_0) { +asm BOOL daAlink_c::changeCutReverseProc(daAlink_c::daAlink_ANM param_0) { nofralloc #include "asm/d/a/d_a_alink/changeCutReverseProc__9daAlink_cFQ29daAlink_c11daAlink_ANM.s" } @@ -20461,85 +20317,87 @@ asm void daAlink_c::setCutDash(int param_0, int param_1) { /* 800D20B4-800D20FC 0CC9F4 0048+00 4/4 0/0 0/0 .text checkForceSwordSwing__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkForceSwordSwing() { - nofralloc -#include "asm/d/a/d_a_alink/checkForceSwordSwing__9daAlink_cFv.s" +BOOL daAlink_c::checkForceSwordSwing() { + return mEquipItem == EQUIP_SWORD && swordSwingTrigger(); } -#pragma pop /* 800D20FC-800D2188 0CCA3C 008C+00 7/7 0/0 0/0 .text setComboReserb__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setComboReserb() { - nofralloc -#include "asm/d/a/d_a_alink/setComboReserb__9daAlink_cFv.s" +void daAlink_c::setComboReserb() { + if (i_checkWolf()) { + field_0x307e = daAlinkHIO_wlAttack_c0::m.mComboDuration; + } else { + field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration; + } + if (mComboCutCount != 4 && field_0x2fce == 0 && swordSwingTrigger()) { + i_onNoResetFlg2(UNK_FLG2_2); + } } -#pragma pop /* 800D2188-800D21D0 0CCAC8 0048+00 1/1 0/0 0/0 .text checkComboReserb__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkComboReserb() { - nofralloc -#include "asm/d/a/d_a_alink/checkComboReserb__9daAlink_cFv.s" +BOOL daAlink_c::checkComboReserb() { + return i_checkNoResetFlg2(UNK_FLG2_2) && !checkEventRun(); +} + +inline u8 i_dComIfGp_getDoStatus() { + return g_dComIfG_gameInfo.play.getDoStatus(); } -#pragma pop /* 800D21D0-800D2284 0CCB10 00B4+00 1/1 0/0 0/0 .text commonCutAction__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::commonCutAction() { - nofralloc -#include "asm/d/a/d_a_alink/commonCutAction__9daAlink_cFv.s" +bool daAlink_c::commonCutAction() { + if (mComboCutCount == 4) { + resetCombo(1); + } + + if (i_dComIfGp_getDoStatus() == 4) { + setDoStatus(0); + } + mComboCutCount++; + + if (i_checkReinRide()) { + procHorseCutInit(); + if (mComboCutCount > 1) { + mComboCutCount = 1; + } + return true; + } else { + return false; + } } -#pragma pop /* 800D2284-800D22BC 0CCBC4 0038+00 13/13 0/0 0/0 .text setSwordVoiceSe__9daAlink_cFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setSwordVoiceSe(u32 param_0) { - nofralloc -#include "asm/d/a/d_a_alink/setSwordVoiceSe__9daAlink_cFUl.s" +void daAlink_c::setSwordVoiceSe(u32 sfx_id) { + if (!i_checkNoResetFlg0(UNDER_WATER_MOVEMENT)) { + voiceStart(sfx_id); + } } -#pragma pop /* 800D22BC-800D2304 0CCBFC 0048+00 3/3 0/0 0/0 .text setSwordChargeVoiceSe__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setSwordChargeVoiceSe() { - nofralloc -#include "asm/d/a/d_a_alink/setSwordChargeVoiceSe__9daAlink_cFv.s" +void daAlink_c::setSwordChargeVoiceSe() { + if (mCommonCounter != 0) { + mCommonCounter--; + if (mCommonCounter == 0) { + setSwordVoiceSe(Z2SE_AL_V_TAME); + } + } } -#pragma pop /* 800D2304-800D2368 0CCC44 0064+00 3/3 0/0 0/0 .text setSwordComboVoice__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setSwordComboVoice() { - nofralloc -#include "asm/d/a/d_a_alink/setSwordComboVoice__9daAlink_cFv.s" +void daAlink_c::setSwordComboVoice() { + if (mActionID == CUT_JUMP || mComboCutCount == 4) { + setSwordVoiceSe(Z2SE_AL_V_ATTACK_L); + } + else if (mComboCutCount == 1) { + setSwordVoiceSe(Z2SE_AL_V_ATTACK_S); + } else { + setSwordVoiceSe(Z2SE_AL_V_ATTACK_M); + } } -#pragma pop /* 800D2368-800D23C0 0CCCA8 0058+00 3/3 0/0 0/0 .text checkCutTurnInputTrigger__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkCutTurnInputTrigger() { - nofralloc -#include "asm/d/a/d_a_alink/checkCutTurnInputTrigger__9daAlink_cFv.s" +bool daAlink_c::checkCutTurnInputTrigger() { + return swordSwingTrigger() && checkCutTurnInput(); } -#pragma pop /* 800D23C0-800D2684 0CCD00 02C4+00 7/7 0/0 0/0 .text checkCutAction__9daAlink_cFv */ #pragma push @@ -20552,14 +20410,17 @@ asm void daAlink_c::checkCutAction() { #pragma pop /* 800D2684-800D26EC 0CCFC4 0068+00 9/9 0/0 0/0 .text checkCutTurnCharge__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkCutTurnCharge() { - nofralloc -#include "asm/d/a/d_a_alink/checkCutTurnCharge__9daAlink_cFv.s" +void daAlink_c::checkCutTurnCharge() { + if (swordButton()) { + if (field_0x3012 < 3) { + field_0x3012++; + } else { + i_onResetFlg0(RFLG0_UNK_40); + } + } else { + field_0x3012 = 0; + } } -#pragma pop /* 800D26EC-800D2760 0CD02C 0074+00 4/4 0/0 0/0 .text getCutDirection__9daAlink_cFv */ #pragma push @@ -20595,7 +20456,7 @@ asm void daAlink_c::checkDoCutAction() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkCutBackState() { +asm BOOL daAlink_c::checkCutBackState() { nofralloc #include "asm/d/a/d_a_alink/checkCutBackState__9daAlink_cFv.s" } @@ -20664,6 +20525,47 @@ asm void daAlink_c::checkCutAtnActorChange() { #pragma pop /* 800D2C78-800D2F58 0CD5B8 02E0+00 2/2 0/0 0/0 .text setCutJumpSpeed__9daAlink_cFi */ +// literals, and small issue with JMAFastSqrt instructions +#ifdef NONMATCHING +void daAlink_c::setCutJumpSpeed(int cut_type) { + if (i_checkNoResetFlg0(UNDER_WATER_MOVEMENT)) { + mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX; + mSpeed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY; + } else if (checkHeavyStateOn(1, 1)) { + mSpeed.y *= 1.35f; + } + + // cut_type 0 = standing jump attack + if (mTargetedActor != NULL && cut_type == 0) { + mCollisionRot.y = cLib_targetAngleY(&mCurrent.mPosition, &mTargetedActor->mEyePos); + cXyz targetPos(mTargetedActor->mEyePos.x - (cM_ssin(mCollisionRot.y) * 70.0f), + mTargetedActor->mEyePos.y + 50.0f, + mTargetedActor->mEyePos.z - (cM_scos(mCollisionRot.y) * 70.0f)); + + if (fopAcM_gc_c::gndCheck(&targetPos)) { + targetPos.y = fopAcM_gc_c::getGroundY(); + } else { + targetPos.y = mTargetedActor->mEyePos.y; + } + + f32 dvar12 = mSpeed.y + mGravity; + f32 dvar10 = 1.0f / mGravity; + f32 fvar1 = targetPos.y - (mCurrent.mPosition.y - (dvar10 * (dvar12 * dvar12) * 0.5f)); + + if (fvar1 > 0.0f) { + fvar1 = 0.0f; + } + f32 sqrt = JMAFastSqrt(fvar1 * 2.0f * dvar10); + f32 speedDiv = sqrt - (dvar12 * dvar10); + f32 squareDist = mCurrent.mPosition.absXZ(targetPos); + + if (squareDist > 500.0f) { + squareDist = 500.0f; + } + mNormalSpeed = squareDist / speedDiv; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -20672,6 +20574,7 @@ asm void daAlink_c::setCutJumpSpeed(int param_0) { #include "asm/d/a/d_a_alink/setCutJumpSpeed__9daAlink_cFi.s" } #pragma pop +#endif /* 800D2F58-800D31B8 0CD898 0260+00 3/3 0/0 0/0 .text procCutNormalInit__9daAlink_cFi */ #pragma push @@ -20776,24 +20679,63 @@ asm void daAlink_c::procCutReverse() { #pragma pop /* 800D42FC-800D43F8 0CEC3C 00FC+00 2/2 0/0 0/0 .text procCutJumpInit__9daAlink_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procCutJumpInit(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/procCutJumpInit__9daAlink_cFi.s" +bool daAlink_c::procCutJumpInit(int jump_type) { + commonProcInit(CUT_JUMP); + setSingleAnimeParam(ANM_CUT_JUMP, &daAlinkHIO_cutJump_c0::m.mCutAnm); + if (jump_type != 0) { + mNormalSpeed = daAlinkHIO_cutJump_c0::m.mAirJumpSpeedH; + mSpeed.y = daAlinkHIO_cutJump_c0::m.mAirJumpSpeedV; + } else { + mNormalSpeed = daAlinkHIO_cutJump_c0::m.mBaseJumpSpeedH; + mSpeed.y = daAlinkHIO_cutJump_c0::m.mBaseJumpSpeedV; + } + setCutJumpSpeed(jump_type); + mCurrent.mAngle.y = mCollisionRot.y; + setSwordAtParam(dCcG_At_Spl_UNK_01, 3, 1, 3, daAlinkHIO_cut_c0::m.mSwordLength, daAlinkHIO_cut_c0::m.mSwordRadius); + setCutType(TYPE_CUT_JUMP); + setSwordComboVoice(); + dComIfGp_setPlayerStatus0(0, 0x8000); + field_0x3198 = 2; + return true; } -#pragma pop /* 800D43F8-800D452C 0CED38 0134+00 1/0 0/0 0/0 .text procCutJump__9daAlink_cFv */ +#ifdef NONMATCHING +bool daAlink_c::procCutJump() { + if (mCurrent.mAngle.y == mCollisionRot.y && changeCutReverseProc(ANM_CUT_JUMP)) { + mCurrent.mAngle.y += 0x8000; + mNormalSpeed = 27.0f; + cXyz xyz(0.0f, 1.0f, 0.0f); + dComIfGp_getVibration().StartShock(5, 31, xyz); + } + else if (mCurrent.mAngle.y != mCollisionRot.y) { + cLib_chaseF(&mNormalSpeed, 5.0f, 1.0f); + } + + if (checkCutTurnInput()) { + field_0x3198 = getCutTurnDirection(); + } + if (mLinkAcch.ChkGroundHit()) { + procCutJumpLandInit(field_0x3198); + } + else if (mFrameCtrl1[0].getFrame() >= daAlinkHIO_cutJump_c0::m.mStartAttackFrame) { + if (!i_checkNoResetFlg0(FLG0_UNK_40)) { + seStartSwordCut(Z2SE_AL_SWORD_SWING_L); + } + i_onResetFlg0(RFLG0_UNK_2); + } + return true; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::procCutJump() { +asm bool daAlink_c::procCutJump() { nofralloc #include "asm/d/a/d_a_alink/procCutJump__9daAlink_cFv.s" } #pragma pop +#endif /* 800D452C-800D4684 0CEE6C 0158+00 1/1 0/0 0/0 .text procCutJumpLandInit__9daAlink_cFi */ @@ -21584,7 +21526,7 @@ asm void daAlink_c::procCoSwimFreezeReturn() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkEnemyGroup(fopAc_ac_c* param_0) { +asm BOOL daAlink_c::checkEnemyGroup(fopAc_ac_c* param_0) { nofralloc #include "asm/d/a/d_a_alink/checkEnemyGroup__9daAlink_cFP10fopAc_ac_c.s" } @@ -21594,7 +21536,7 @@ asm void daAlink_c::checkEnemyGroup(fopAc_ac_c* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkSpecialNpc(fopAc_ac_c* param_0) { +asm BOOL daAlink_c::checkSpecialNpc(fopAc_ac_c* param_0) { nofralloc #include "asm/d/a/d_a_alink/checkSpecialNpc__9daAlink_cFP10fopAc_ac_c.s" } @@ -21614,7 +21556,7 @@ asm void daAlink_c::checkShieldAttackEmphasys() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkGuardActionChange() { +asm BOOL daAlink_c::checkGuardActionChange() { nofralloc #include "asm/d/a/d_a_alink/checkGuardActionChange__9daAlink_cFv.s" } @@ -21681,21 +21623,43 @@ asm void daAlink_c::setArrowShieldPos(cXyz* param_0, csXyz* param_1, cXyz const* #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkUpperGuardAnime() const { +asm BOOL daAlink_c::checkUpperGuardAnime() const { nofralloc #include "asm/d/a/d_a_alink/checkUpperGuardAnime__9daAlink_cCFv.s" } #pragma pop /* 800DCE6C-800DCF04 0D77AC 0098+00 1/0 0/0 0/0 .text checkPlayerGuard__9daAlink_cCFv */ +#ifdef NONMATCHING +BOOL daAlink_c::checkPlayerGuard() const { + bool ret = true; + bool bvar2 = true; + if (!i_checkSmallUpperGuardAnime()) { + bool bvar1 = false; + if (i_checkShieldGet() && checkHorseLieAnime()) { + bvar1 = true; + } + if (!bvar1) { + bvar2 = false; + } + } + + if (!bvar2 && !checkUpperGuardAnime()) { + ret = false; + } + + return ret; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm bool daAlink_c::checkPlayerGuard() const { +asm BOOL daAlink_c::checkPlayerGuard() const { nofralloc #include "asm/d/a/d_a_alink/checkPlayerGuard__9daAlink_cCFv.s" } #pragma pop +#endif /* 800DCF04-800DCF64 0D7844 0060+00 5/5 0/0 0/0 .text checkPlayerGuardAndAttack__9daAlink_cCFv */ #pragma push @@ -21895,7 +21859,7 @@ asm void daAlink_c::getArrowIncAtMax() const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkBowAndSlingItem(int param_0) { +asm BOOL daAlink_c::checkBowAndSlingItem(int param_0) { nofralloc #include "asm/d/a/d_a_alink/checkBowAndSlingItem__9daAlink_cFi.s" } @@ -22079,7 +22043,7 @@ asm void daAlink_c::setBowModel() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkBowGrabLeftHand() const { +asm bool daAlink_c::checkBowGrabLeftHand() const { nofralloc #include "asm/d/a/d_a_alink/checkBowGrabLeftHand__9daAlink_cCFv.s" } @@ -22911,168 +22875,97 @@ asm void daAlink_c::procMagneBootsFly() { /* 800E3760-800E3770 0DE0A0 0010+00 0/0 0/0 7/7 .text getBombExplodeTime__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getBombExplodeTime() const { - nofralloc -#include "asm/d/a/d_a_alink/getBombExplodeTime__9daAlink_cCFv.s" +s16 daAlink_c::getBombExplodeTime() const { + return daAlinkHIO_bomb_c0::m.mExplodeTime; } -#pragma pop /* 800E3770-800E3780 0DE0B0 0010+00 0/0 0/0 2/2 .text getBombGravity__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getBombGravity() const { - nofralloc -#include "asm/d/a/d_a_alink/getBombGravity__9daAlink_cCFv.s" +f32 daAlink_c::getBombGravity() const { + return daAlinkHIO_bomb_c0::m.mGravity; } -#pragma pop /* 800E3780-800E3790 0DE0C0 0010+00 0/0 0/0 2/2 .text getBombMaxFallSpeed__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getBombMaxFallSpeed() const { - nofralloc -#include "asm/d/a/d_a_alink/getBombMaxFallSpeed__9daAlink_cCFv.s" +f32 daAlink_c::getBombMaxFallSpeed() const { + return daAlinkHIO_bomb_c0::m.mMaxFallSpeed; } -#pragma pop /* 800E3790-800E37A0 0DE0D0 0010+00 0/0 0/0 1/1 .text getBombBoundRate__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getBombBoundRate() const { - nofralloc -#include "asm/d/a/d_a_alink/getBombBoundRate__9daAlink_cCFv.s" +f32 daAlink_c::getBombBoundRate() const { + return daAlinkHIO_bomb_c0::m.mBoundRate; } -#pragma pop /* 800E37A0-800E37B0 0DE0E0 0010+00 0/0 0/0 1/1 .text getBombStopSpeedY__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getBombStopSpeedY() const { - nofralloc -#include "asm/d/a/d_a_alink/getBombStopSpeedY__9daAlink_cCFv.s" +f32 daAlink_c::getBombStopSpeedY() const { + return daAlinkHIO_bomb_c0::m.mStopSpeedY; } -#pragma pop /* 800E37B0-800E37C0 0DE0F0 0010+00 0/0 0/0 1/1 .text getBombMaxSpeedY__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getBombMaxSpeedY() const { - nofralloc -#include "asm/d/a/d_a_alink/getBombMaxSpeedY__9daAlink_cCFv.s" +f32 daAlink_c::getBombMaxSpeedY() const { + return daAlinkHIO_bomb_c0::m.mMaxSpeedY; } -#pragma pop /* 800E37C0-800E37D0 0DE100 0010+00 0/0 0/0 1/1 .text getBombEffScale__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getBombEffScale() const { - nofralloc -#include "asm/d/a/d_a_alink/getBombEffScale__9daAlink_cCFv.s" +f32 daAlink_c::getBombEffScale() const { + return daAlinkHIO_bomb_c0::m.mEffScale; } -#pragma pop /* 800E37D0-800E37E0 0DE110 0010+00 0/0 0/0 1/1 .text getBombAtR__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getBombAtR() const { - nofralloc -#include "asm/d/a/d_a_alink/getBombAtR__9daAlink_cCFv.s" +f32 daAlink_c::getBombAtR() const { + return daAlinkHIO_bomb_c0::m.mAtRadius; } -#pragma pop /* 800E37E0-800E37F0 0DE120 0010+00 0/0 0/0 1/1 .text getEnemyBombColorR__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getEnemyBombColorR() const { - nofralloc -#include "asm/d/a/d_a_alink/getEnemyBombColorR__9daAlink_cCFv.s" +s16 daAlink_c::getEnemyBombColorR() const { + return daAlinkHIO_bomb_c0::m.mEnemyBombColorR; } -#pragma pop /* 800E37F0-800E3800 0DE130 0010+00 0/0 0/0 2/2 .text getBombWaterGravity__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getBombWaterGravity() const { - nofralloc -#include "asm/d/a/d_a_alink/getBombWaterGravity__9daAlink_cCFv.s" +f32 daAlink_c::getBombWaterGravity() const { + return daAlinkHIO_bomb_c0::m.mWaterGravity; } -#pragma pop /* 800E3800-800E3810 0DE140 0010+00 0/0 0/0 2/2 .text getBombWaterMaxFallSpeed__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getBombWaterMaxFallSpeed() const { - nofralloc -#include "asm/d/a/d_a_alink/getBombWaterMaxFallSpeed__9daAlink_cCFv.s" +f32 daAlink_c::getBombWaterMaxFallSpeed() const { + return daAlinkHIO_bomb_c0::m.mWaterMaxFallSpeed; } -#pragma pop /* 800E3810-800E3820 0DE150 0010+00 0/0 0/0 1/1 .text * getBombExplodeWaterEffectLimit__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getBombExplodeWaterEffectLimit() const { - nofralloc -#include "asm/d/a/d_a_alink/getBombExplodeWaterEffectLimit__9daAlink_cCFv.s" +f32 daAlink_c::getBombExplodeWaterEffectLimit() const { + return daAlinkHIO_bomb_c0::m.mExplodeWaterEffectLimit; } -#pragma pop /* 800E3820-800E3830 0DE160 0010+00 0/0 0/0 1/1 .text getBombInsectLimitAngle__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getBombInsectLimitAngle() const { - nofralloc -#include "asm/d/a/d_a_alink/getBombInsectLimitAngle__9daAlink_cCFv.s" +s16 daAlink_c::getBombInsectLimitAngle() const { + return daAlinkHIO_bomb_c0::m.mBombInsectLimitAngle; } -#pragma pop /* 800E3830-800E3858 0DE170 0028+00 2/2 0/0 0/0 .text daAlink_checkLightBallA__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daAlink_checkLightBallA(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_alink/daAlink_checkLightBallA__FP10fopAc_ac_c.s" +static bool daAlink_checkLightBallA(fopAc_ac_c* p_actor) { + if (fopAcM_GetName(p_actor) == 0x2FC && static_cast<daObjCarry_c*>(p_actor)->getType() == daObjCarry_c::TYPE_BALL_S) { + return true; + } + return false; } -#pragma pop /* 800E3858-800E3880 0DE198 0028+00 2/2 0/0 0/0 .text daAlink_checkLightBallB__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daAlink_checkLightBallB(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_alink/daAlink_checkLightBallB__FP10fopAc_ac_c.s" +static bool daAlink_checkLightBallB(fopAc_ac_c* p_actor) { + if (fopAcM_GetName(p_actor) == 0x2FC && static_cast<daObjCarry_c*>(p_actor)->getType() == daObjCarry_c::TYPE_BALL_S_2) { + return true; + } + return false; } -#pragma pop /* 800E3880-800E38EC 0DE1C0 006C+00 1/1 0/0 0/0 .text daAlink_searchLightBall__FP10fopAc_ac_cPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daAlink_searchLightBall(fopAc_ac_c* param_0, void* param_1) { - nofralloc -#include "asm/d/a/d_a_alink/daAlink_searchLightBall__FP10fopAc_ac_cPv.s" +static fopAc_ac_c* daAlink_searchLightBall(fopAc_ac_c* p_actor, void* param_1) { + if ((daPy_py_c::checkCarryStartLightBallA() && daAlink_checkLightBallA(p_actor)) || (daPy_py_c::checkCarryStartLightBallB() && daAlink_checkLightBallB(p_actor))) { + return p_actor; + } + return NULL; } -#pragma pop /* 800E38EC-800E3994 0DE22C 00A8+00 1/1 0/0 0/0 .text checkGrabLineCheck__9daAlink_cFv */ #pragma push @@ -23097,24 +22990,38 @@ asm void daAlink_c::setGrabCollisionOffset(f32 param_0, f32 param_1, cBgS_PolyIn /* 800E3A14-800E3A9C 0DE354 0088+00 1/0 0/0 0/0 .text exchangeGrabActor__9daAlink_cFP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::exchangeGrabActor(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_alink/exchangeGrabActor__9daAlink_cFP10fopAc_ac_c.s" +bool daAlink_c::exchangeGrabActor(fopAc_ac_c* p_actor) { + fopAc_ac_c* actor = mGrabItemActor.getActor(); + + if (actor == NULL) { + return false; + } + + fopAcM_cancelCarryNow(actor); + actor->mCollisionRot.z = 0; + actor->mCollisionRot.x = 0; + if (checkGrabCarryActor()) { + actor->mCurrent.mAngle.z = 0; + actor->mCurrent.mAngle.x = 0; + } + setGrabItemActor(p_actor); + return true; } -#pragma pop /* 800E3A9C-800E3BCC 0DE3DC 0130+00 1/0 0/0 0/0 .text setForceGrab__9daAlink_cFP10fopAc_ac_cii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::setForceGrab(fopAc_ac_c* param_0, int param_1, int param_2) { - nofralloc -#include "asm/d/a/d_a_alink/setForceGrab__9daAlink_cFP10fopAc_ac_cii.s" +bool daAlink_c::setForceGrab(fopAc_ac_c* p_actor, int param_1, int param_2) { + if (((param_1 != 0 || !checkEventRun()) && !i_checkWolf()) && + (((mEquipItem == NO_ITEM || (param_2 != 0 && checkHookshotItem(mEquipItem)))) && + ((i_checkModeFlg(MODE_UNK_10000000) && (checkHorseNoUpperAnime() || checkHorseTurnAnime())) || + param_2 != 0 && checkHookshotAnime()))) { + deleteEquipItem(1, 0); + setGrabItemActor(p_actor); + field_0x33e4 = lit_8785; + setGrabUpperAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor); + return true; + } + return false; } -#pragma pop /* 800E3BCC-800E3C1C 0DE50C 0050+00 2/2 0/0 0/0 .text getGrabThrowRate__9daAlink_cFv */ #pragma push @@ -23162,7 +23069,7 @@ asm void daAlink_c::checkGrabAnimeAndThrow() const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkGrabCarryActor() { +asm BOOL daAlink_c::checkGrabCarryActor() { nofralloc #include "asm/d/a/d_a_alink/checkGrabCarryActor__9daAlink_cFv.s" } @@ -23700,14 +23607,19 @@ asm void daAlink_c::setFmChainPosFromOut(fopAc_ac_c* param_0, cXyz* param_1, int #pragma pop /* 800E7BD0-800E7C30 0E2510 0060+00 1/0 0/0 0/0 .text checkChainBlockPushPull__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkChainBlockPushPull() { - nofralloc -#include "asm/d/a/d_a_alink/checkChainBlockPushPull__9daAlink_cFv.s" +bool daAlink_c::checkChainBlockPushPull() { + if (i_checkFmChainGrabAnime()) { + fopAc_ac_c* actor = field_0x2844.getActor(); + if (actor != NULL) { + s16 name = fopAcM_GetName(actor); + // actor is Cblock || chainSw || Cwall + if (name == 0x7E || name == 0x16F || name == 0x7F) { + return true; + } + } + } + return false; } -#pragma pop /* 800E7C30-800E7CC0 0E2570 0090+00 2/2 0/0 0/0 .text procFmChainUpInit__9daAlink_cFv */ #pragma push @@ -23815,10 +23727,10 @@ asm void daAlink_c::checkPullBehindWall() { /* 800E8298-800E82B0 0E2BD8 0018+00 3/3 0/0 0/0 .text offGoatStopGame__9daAlink_cFv */ void daAlink_c::offGoatStopGame() { - if (field_0x560[0xA] != 0x2a) { + if (mSpecialMode != SMODE_GOAT_STOP) { return; } else { - field_0x560[0xA] = 0; + mSpecialMode = 0; } } @@ -24057,8 +23969,8 @@ asm void daAlink_c::checkSumouVsActor() { /* 800EA8D0-800EA908 0E5210 0038+00 5/5 0/0 0/0 .text cancelSumouMode__9daAlink_cFv */ void daAlink_c::cancelSumouMode() { - field_0x2854.clearData(); - field_0x560[0xA] = 0; + mCargoCarryActor.clearData(); + mSpecialMode = 0; } /* 800EA908-800EA92C 0E5248 0024+00 2/2 0/0 0/0 .text sumouPunchTrigger__9daAlink_cFv */ @@ -24386,7 +24298,7 @@ asm void daAlink_c::getReinHandType() const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkHorseLieAnime() const { +asm BOOL daAlink_c::checkHorseLieAnime() const { nofralloc #include "asm/d/a/d_a_alink/checkHorseLieAnime__9daAlink_cCFv.s" } @@ -24427,7 +24339,7 @@ asm void daAlink_c::setHorseTurnUpperAnime(int param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkHorseNoUpperAnime() const { +asm BOOL daAlink_c::checkHorseNoUpperAnime() const { nofralloc #include "asm/d/a/d_a_alink/checkHorseNoUpperAnime__9daAlink_cCFv.s" } @@ -27970,7 +27882,8 @@ asm void daAlink_c::procBoardCutTurn() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::hsChainShape_c::draw() { +extern "C" asm void draw__Q29daAlink_c14hsChainShape_cFv() { +// asm void daAlink_c::hsChainShape_c::draw() { nofralloc #include "asm/d/a/d_a_alink/draw__Q29daAlink_c14hsChainShape_cFv.s" } @@ -29652,7 +29565,7 @@ asm void daAlink_c::procIronBallReturn() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkEventRun() const { +asm BOOL daAlink_c::checkEventRun() const { nofralloc #include "asm/d/a/d_a_alink/checkEventRun__9daAlink_cCFv.s" } @@ -30739,10 +30652,10 @@ asm void daAlink_c::procGanonFinishInit() { /* 8011EA78-8011EAE8 1193B8 0070+00 1/0 0/0 0/0 .text procGanonFinish__9daAlink_cFv */ bool daAlink_c::procGanonFinish() { - i_onEndResetFlg1(GanonFinish); + i_onEndResetFlg1(GANON_FINISH); mCurrent.mPosition = field_0x37c8; if (mFrameCtrl1[0].checkAnmEnd()) { - setSingleAnimeBaseMorf(GANON_FINISH, lit_6041); + setSingleAnimeBaseMorf(ANM_GANON_FINISH, lit_6041); } return true; } @@ -30815,7 +30728,7 @@ asm void daAlink_c::procMasterSwordPull() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkLv7DungeonShop() { +asm BOOL daAlink_c::checkLv7DungeonShop() { nofralloc #include "asm/d/a/d_a_alink/checkLv7DungeonShop__9daAlink_cFv.s" } @@ -31831,7 +31744,7 @@ asm void daAlink_c::checkWolfAtnWait() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkUnderMove0BckNoArcWolf(daAlink_c::daAlink_WANM param_0) const { +asm BOOL daAlink_c::checkUnderMove0BckNoArcWolf(daAlink_c::daAlink_WANM param_0) const { nofralloc #include "asm/d/a/d_a_alink/checkUnderMove0BckNoArcWolf__9daAlink_cCFQ29daAlink_c12daAlink_WANM.s" } @@ -32763,6 +32676,22 @@ asm void daObj_Sekizoa_c::setWolfHowling() { #pragma pop /* 80131408-80131450 12BD48 0048+00 1/0 0/0 0/0 .text checkWolfRope__9daAlink_cFv */ +#ifdef NONMATCHING +bool daAlink_c::checkWolfRope() { + bool ret = false; + bool bvar1 = false; + + if (i_checkModeFlg(MODE_UNK_20000) && field_0x280c.getActor() != NULL) { + bvar1 = true; + } + + // actor is Crope + if (bvar1 && fopAcM_GetName(field_0x280c.getActor()) == 0x2BE) { + ret = true; + } + return ret; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -32771,6 +32700,7 @@ asm bool daAlink_c::checkWolfRope() { #include "asm/d/a/d_a_alink/checkWolfRope__9daAlink_cFv.s" } #pragma pop +#endif /* 80131450-80131628 12BD90 01D8+00 2/2 0/0 0/0 .text * checkWolfRopeHit__9daAlink_cCFP12dCcD_GObjInfPC4cXyzi */ @@ -33579,35 +33509,35 @@ asm void daAlink_c::checkWolfLockData() { #pragma pop /* 8013911C-8013916C 133A5C 0050+00 1/0 0/0 0/0 .text checkWolfLock__9daAlink_cCFP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkWolfLock(fopAc_ac_c* param_0) const { - nofralloc -#include "asm/d/a/d_a_alink/checkWolfLock__9daAlink_cCFP10fopAc_ac_c.s" +bool daAlink_c::checkWolfLock(fopAc_ac_c* p_actor) const { + u32 id = fopAcM_GetID(p_actor); + + for (int i = 0; i < mWolfLockNum; i++) { + if (id == mWolfLockAcKeep[i].getID()) { + return true; + } + } + return false; } -#pragma pop /* 8013916C-801391DC 133AAC 0070+00 1/0 0/0 0/0 .text cancelWolfLock__9daAlink_cFP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::cancelWolfLock(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_alink/cancelWolfLock__9daAlink_cFP10fopAc_ac_c.s" +bool daAlink_c::cancelWolfLock(fopAc_ac_c* p_actor) { + u32 id = fopAcM_GetID(p_actor); + + for (int i = 0; i < mWolfLockNum; i++) { + if (id == mWolfLockAcKeep[i].getID()) { + mWolfLockAcKeep[i].clearData(); + return true; + } + } + return false; } -#pragma pop /* 801391DC-801391E4 133B1C 0008+00 0/0 0/0 1/1 .text getWolfLockActorEnd__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getWolfLockActorEnd() { - nofralloc -#include "asm/d/a/d_a_alink/getWolfLockActorEnd__9daAlink_cFv.s" +fopAc_ac_c* daAlink_c::getWolfLockActorEnd() { + return mWolfLockAcKeep[0].getActor(); } -#pragma pop /* 801391E4-801392A8 133B24 00C4+00 1/1 0/0 0/0 .text * searchWolfLockEnemy__9daAlink_cFP10fopAc_ac_cPv */ @@ -34718,14 +34648,9 @@ asm void dEvt_info_c::offCondition(u16 param_0) { #pragma pop /* 80141210-80141230 13BB50 0020+00 1/1 0/0 0/0 .text checkShieldGet__9daPy_py_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_py_c::checkShieldGet() { - nofralloc -#include "asm/d/a/d_a_alink/checkShieldGet__9daPy_py_cFv.s" +BOOL daPy_py_c::checkShieldGet() { + return dComIfGs_getSelectEquipShield() != NO_ITEM; } -#pragma pop /* 80141230-80141264 13BB70 0034+00 1/1 0/0 0/0 .text fopAcM_onSwitch__FPC10fopAc_ac_ci */ @@ -34767,7 +34692,7 @@ static asm void dComIfGp_getStage() { /* 801412B0-801412BC 13BBF0 000C+00 1/1 0/0 0/0 .text checkEquipHeavyBoots__9daPy_py_cCFv */ BOOL daPy_py_c::checkEquipHeavyBoots() const { - return i_checkNoResetFlg0(EquipHeavyBoots); + return i_checkNoResetFlg0(EQUIP_HEAVY_BOOTS); } /* 801412BC-801412C4 13BBFC 0008+00 1/1 4/4 0/0 .text fopAcM_GetName__FPv */ @@ -34886,29 +34811,19 @@ asm bool dEvt_info_c::checkCommandCatch() { #pragma pop /* 8014139C-801413CC 13BCDC 0030+00 1/1 1/1 0/0 .text dComIfGs_isEventBit__FUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL dComIfGs_isEventBit(u16 param_0) { - nofralloc -#include "asm/d/a/d_a_alink/dComIfGs_isEventBit__FUs.s" +BOOL dComIfGs_isEventBit(u16 id) { + return g_dComIfG_gameInfo.info.getEvent().isEventBit(id); } -#pragma pop /* 801413CC-801413D8 13BD0C 000C+00 1/1 0/0 0/0 .text checkWolf__9daPy_py_cCFv */ int daPy_py_c::checkWolf() const { - return i_checkNoResetFlg1(Wolf); + return i_checkNoResetFlg1(IS_WOLF); } /* 801413D8-801413F8 13BD18 0020+00 1/1 0/0 0/0 .text checkSwordGet__9daPy_py_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_py_c::checkSwordGet() { - nofralloc -#include "asm/d/a/d_a_alink/checkSwordGet__9daPy_py_cFv.s" +BOOL daPy_py_c::checkSwordGet() { + return dComIfGs_getSelectEquipSword() != 0xFF; } -#pragma pop /* 801413F8-80141404 13BD38 000C+00 1/1 0/0 0/0 .text * checkResetFlg0__9daPy_py_cCFQ29daPy_py_c10daPy_RFLG0 */ @@ -34928,6 +34843,11 @@ int daPy_py_c::checkNoResetFlg0(daPy_FLG0 pFlag) const { } /* 8014141C-80141438 13BD5C 001C+00 1/1 0/0 0/0 .text dComIfGp_getPlayerCameraID__Fi */ +#ifdef NONMATCHING +static s32 dComIfGp_getPlayerCameraID(int i) { + return g_dComIfG_gameInfo.play.getPlayerCameraID(i); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -34936,48 +34856,29 @@ static asm void dComIfGp_getPlayerCameraID(int param_0) { #include "asm/d/a/d_a_alink/dComIfGp_getPlayerCameraID__Fi.s" } #pragma pop +#endif /* 80141438-80141450 13BD78 0018+00 1/1 0/0 0/0 .text dComIfGp_event_chkEventFlag__FUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dComIfGp_event_chkEventFlag(u16 param_0) { - nofralloc -#include "asm/d/a/d_a_alink/dComIfGp_event_chkEventFlag__FUs.s" +static u16 dComIfGp_event_chkEventFlag(u16 flag) { + return g_dComIfG_gameInfo.play.getEvent().chkEventFlag(flag); } -#pragma pop /* 80141450-80141464 13BD90 0014+00 1/1 0/0 0/0 .text checkCommandDoor__11dEvt_info_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool dEvt_info_c::checkCommandDoor() { - nofralloc -#include "asm/d/a/d_a_alink/checkCommandDoor__11dEvt_info_cFv.s" +BOOL dEvt_info_c::checkCommandDoor() { + return mCommand == 3; } -#pragma pop /* 80141464-801414A4 13BDA4 0040+00 1/1 0/0 0/0 .text * dComIfGp_evmng_getMyStaffId__FPCcP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dComIfGp_evmng_getMyStaffId(char const* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/a/d_a_alink/dComIfGp_evmng_getMyStaffId__FPCcP10fopAc_ac_ci.s" +static s32 dComIfGp_evmng_getMyStaffId(char const* param_0, fopAc_ac_c* param_1, int param_2) { + return dComIfGp_getPEvtManager()->getMyStaffId(param_0, param_1, param_2); } -#pragma pop /* 801414A4-801414C0 13BDE4 001C+00 1/1 0/0 0/0 .text dComIfGp_event_runCheck__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dComIfGp_event_runCheck() { - nofralloc -#include "asm/d/a/d_a_alink/dComIfGp_event_runCheck__Fv.s" +static BOOL dComIfGp_event_runCheck() { + return g_dComIfG_gameInfo.play.getEvent().runCheck(); } -#pragma pop /* 801414C0-801414CC 13BE00 000C+00 1/1 0/0 0/0 .text * checkNoResetFlg2__9daPy_py_cCFQ29daPy_py_c9daPy_FLG2 */ @@ -34987,22 +34888,17 @@ int daPy_py_c::checkNoResetFlg2(daPy_FLG2 pFlag) const { /* 801414CC-801414D8 13BE0C 000C+00 1/1 2/2 0/0 .text checkMagneBootsOn__9daPy_py_cCFv */ int daPy_py_c::checkMagneBootsOn() const { - return i_checkNoResetFlg0(MagneBootsOn); + return i_checkNoResetFlg0(MAGNE_BOOTS_ON); } /* 801414D8-801414E8 13BE18 0010+00 1/1 2/2 0/0 .text dComIfGp_getHorseActor__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dComIfGp_getHorseActor() { - nofralloc -#include "asm/d/a/d_a_alink/dComIfGp_getHorseActor__Fv.s" +daHorse_c* dComIfGp_getHorseActor() { + return (daHorse_c*)g_dComIfG_gameInfo.play.getPlayerPtr(1); } -#pragma pop /* 801414E8-801414F4 13BE28 000C+00 1/1 0/0 0/0 .text checkBoarSingleBattle__9daPy_py_cCFv */ int daPy_py_c::checkBoarSingleBattle() const { - return i_checkNoResetFlg2(BoarSingleBattle); + return i_checkNoResetFlg2(BOAR_SINGLE_BATTLE); } /* 801414F4-80141500 13BE34 000C+00 1/1 0/0 0/0 .text @@ -35024,12 +34920,12 @@ void daPy_py_c::setMidnaMsgNum(fopAc_ac_c* param_0, u16 param_1) { } /* 8014150C-80141514 13BE4C 0008+00 1/0 0/0 0/0 .text getModelMtx__9daPy_py_cFv */ -Mtx* daPy_py_c::getModelMtx() { +MtxP daPy_py_c::getModelMtx() { return mCullMtx; } /* 80141514-8014151C 13BE54 0008+00 1/0 0/0 0/0 .text getInvMtx__9daPy_py_cFv */ -Mtx* daPy_py_c::getInvMtx() { +MtxP daPy_py_c::getInvMtx() { return mCullMtx; } @@ -35040,52 +34936,52 @@ cXyz* daPy_py_c::getShadowTalkAtnPos() { } /* 80141524-8014152C 13BE64 0008+00 1/0 0/0 0/0 .text getLeftItemMatrix__9daPy_py_cFv */ -Mtx* daPy_py_c::getLeftItemMatrix() { +MtxP daPy_py_c::getLeftItemMatrix() { return mCullMtx; } /* 8014152C-80141534 13BE6C 0008+00 1/0 0/0 0/0 .text getRightItemMatrix__9daPy_py_cFv */ -Mtx* daPy_py_c::getRightItemMatrix() { +MtxP daPy_py_c::getRightItemMatrix() { return mCullMtx; } /* 80141534-8014153C 13BE74 0008+00 1/0 0/0 0/0 .text getLeftHandMatrix__9daPy_py_cFv */ -Mtx* daPy_py_c::getLeftHandMatrix() { +MtxP daPy_py_c::getLeftHandMatrix() { return mCullMtx; } /* 8014153C-80141544 13BE7C 0008+00 1/0 0/0 0/0 .text getRightHandMatrix__9daPy_py_cFv */ -Mtx* daPy_py_c::getRightHandMatrix() { +MtxP daPy_py_c::getRightHandMatrix() { return mCullMtx; } /* 80141544-8014154C 13BE84 0008+00 1/0 0/0 0/0 .text getLinkBackBone1Matrix__9daPy_py_cFv */ -Mtx* daPy_py_c::getLinkBackBone1Matrix() { +MtxP daPy_py_c::getLinkBackBone1Matrix() { return mCullMtx; } /* 8014154C-80141554 13BE8C 0008+00 1/0 0/0 0/0 .text getWolfMouthMatrix__9daPy_py_cFv */ -Mtx* daPy_py_c::getWolfMouthMatrix() { +MtxP daPy_py_c::getWolfMouthMatrix() { return mCullMtx; } /* 80141554-8014155C 13BE94 0008+00 1/0 0/0 0/0 .text getWolfBackbone2Matrix__9daPy_py_cFv */ -Mtx* daPy_py_c::getWolfBackbone2Matrix() { +MtxP daPy_py_c::getWolfBackbone2Matrix() { return mCullMtx; } /* 8014155C-80141564 13BE9C 0008+00 1/0 0/0 0/0 .text getBottleMtx__9daPy_py_cFv */ -bool daPy_py_c::getBottleMtx() { - return false; +MtxP daPy_py_c::getBottleMtx() { + return NULL; } /* 80141564-8014156C 13BEA4 0008+00 1/0 0/0 0/0 .text checkPlayerGuard__9daPy_py_cCFv */ -bool daPy_py_c::checkPlayerGuard() const { +BOOL daPy_py_c::checkPlayerGuard() const { return false; } /* 8014156C-80141574 13BEAC 0008+00 1/0 0/0 0/0 .text checkAutoJump__9daPy_py_cCFv */ -bool daPy_py_c::checkAutoJump() const { +BOOL daPy_py_c::checkAutoJump() const { return false; } @@ -35102,7 +34998,7 @@ bool daPy_py_c::checkWolfTriggerJump() const { /* 80141584-8014158C 13BEC4 0008+00 1/0 0/0 0/0 .text checkGuardBreakMode__9daPy_py_cCFv */ -bool daPy_py_c::checkGuardBreakMode() const { +BOOL daPy_py_c::checkGuardBreakMode() const { return false; } @@ -35122,45 +35018,45 @@ bool daPy_py_c::checkChainBlockPushPull() { } /* 801415A4-801415AC 13BEE4 0008+00 1/0 0/0 0/0 .text checkElecDamage__9daPy_py_cCFv */ -bool daPy_py_c::checkElecDamage() const { +BOOL daPy_py_c::checkElecDamage() const { return false; } /* 801415AC-801415B4 13BEEC 0008+00 1/0 0/0 0/0 .text checkEmptyBottleSwing__9daPy_py_cCFv */ -bool daPy_py_c::checkEmptyBottleSwing() const { +BOOL daPy_py_c::checkEmptyBottleSwing() const { return false; } /* 801415B4-801415BC 13BEF4 0008+00 1/0 0/0 0/0 .text checkBottleSwingMode__9daPy_py_cCFv */ -bool daPy_py_c::checkBottleSwingMode() const { +BOOL daPy_py_c::checkBottleSwingMode() const { return false; } /* 801415BC-801415C4 13BEFC 0008+00 1/0 0/0 0/0 .text checkHawkWait__9daPy_py_cCFv */ -bool daPy_py_c::checkHawkWait() const { +BOOL daPy_py_c::checkHawkWait() const { return false; } /* 801415C4-801415CC 13BF04 0008+00 1/0 0/0 0/0 .text checkGoatThrow__9daPy_py_cCFv */ -bool daPy_py_c::checkGoatThrow() const { +BOOL daPy_py_c::checkGoatThrow() const { return false; } /* 801415CC-801415D4 13BF0C 0008+00 1/0 0/0 0/0 .text checkGoatThrowAfter__9daPy_py_cCFv */ -bool daPy_py_c::checkGoatThrowAfter() const { +BOOL daPy_py_c::checkGoatThrowAfter() const { return false; } /* 801415D4-801415DC 13BF14 0008+00 1/0 0/0 0/0 .text checkWolfTagLockJump__9daPy_py_cCFv */ -bool daPy_py_c::checkWolfTagLockJump() const { +BOOL daPy_py_c::checkWolfTagLockJump() const { return false; } /* 801415DC-801415E4 13BF1C 0008+00 1/0 0/0 0/0 .text checkWolfTagLockJumpLand__9daPy_py_cCFv */ -bool daPy_py_c::checkWolfTagLockJumpLand() const { +BOOL daPy_py_c::checkWolfTagLockJumpLand() const { return false; } @@ -35170,39 +35066,39 @@ bool daPy_py_c::checkWolfRope() { } /* 801415EC-801415F4 13BF2C 0008+00 1/0 0/0 0/0 .text checkWolfRopeHang__9daPy_py_cCFv */ -bool daPy_py_c::checkWolfRopeHang() const { +BOOL daPy_py_c::checkWolfRopeHang() const { return false; } /* 801415F4-801415FC 13BF34 0008+00 1/0 0/0 0/0 .text checkRollJump__9daPy_py_cCFv */ -bool daPy_py_c::checkRollJump() const { +BOOL daPy_py_c::checkRollJump() const { return false; } /* 801415FC-80141604 13BF3C 0008+00 1/0 0/0 0/0 .text checkGoronRideWait__9daPy_py_cCFv */ -bool daPy_py_c::checkGoronRideWait() const { +BOOL daPy_py_c::checkGoronRideWait() const { return false; } /* 80141604-8014160C 13BF44 0008+00 1/0 0/0 0/0 .text checkWolfChain__9daPy_py_cCFv */ -bool daPy_py_c::checkWolfChain() const { +BOOL daPy_py_c::checkWolfChain() const { return false; } /* 8014160C-80141614 13BF4C 0008+00 1/0 0/0 0/0 .text checkWolfWait__9daPy_py_cCFv */ -bool daPy_py_c::checkWolfWait() const { +BOOL daPy_py_c::checkWolfWait() const { return false; } /* 80141614-8014161C 13BF54 0008+00 1/0 0/0 0/0 .text checkWolfJumpAttack__9daPy_py_cCFv */ -bool daPy_py_c::checkWolfJumpAttack() const { +BOOL daPy_py_c::checkWolfJumpAttack() const { return false; } /* 8014161C-80141624 13BF5C 0008+00 1/0 0/0 0/0 .text checkWolfRSit__9daPy_py_cCFv */ -bool daPy_py_c::checkWolfRSit() const { +BOOL daPy_py_c::checkWolfRSit() const { return false; } @@ -35213,28 +35109,28 @@ bool daPy_py_c::checkBubbleFly() const { /* 8014162C-80141634 13BF6C 0008+00 1/0 0/0 0/0 .text checkBottleDrinkEnd__9daPy_py_cCFv */ -bool daPy_py_c::checkBottleDrinkEnd() const { +BOOL daPy_py_c::checkBottleDrinkEnd() const { return false; } /* 80141634-8014163C 13BF74 0008+00 1/0 0/0 0/0 .text checkWolfDig__9daPy_py_cCFv */ -bool daPy_py_c::checkWolfDig() const { +BOOL daPy_py_c::checkWolfDig() const { return false; } /* 8014163C-80141644 13BF7C 0008+00 1/0 0/0 0/0 .text checkCutCharge__9daPy_py_cCFv */ -bool daPy_py_c::checkCutCharge() const { +BOOL daPy_py_c::checkCutCharge() const { return false; } /* 80141644-8014164C 13BF84 0008+00 1/0 0/0 0/0 .text checkCutTurnCharge__9daPy_py_cCFv */ -bool daPy_py_c::checkCutTurnCharge() const { +BOOL daPy_py_c::checkCutTurnCharge() const { return false; } /* 8014164C-80141654 13BF8C 0008+00 1/0 0/0 0/0 .text checkCutLargeJumpCharge__9daPy_py_cCFv */ -bool daPy_py_c::checkCutLargeJumpCharge() const { +BOOL daPy_py_c::checkCutLargeJumpCharge() const { return false; } @@ -35245,22 +35141,22 @@ bool daPy_py_c::getBokoFlamePos(cXyz* param_0) { } /* 8014165C-80141664 13BF9C 0008+00 1/0 0/0 0/0 .text checkComboCutTurn__9daPy_py_cCFv */ -bool daPy_py_c::checkComboCutTurn() const { +BOOL daPy_py_c::checkComboCutTurn() const { return false; } /* 80141664-8014166C 13BFA4 0008+00 1/0 0/0 0/0 .text checkClimbMove__9daPy_py_cCFv */ -bool daPy_py_c::checkClimbMove() const { +BOOL daPy_py_c::checkClimbMove() const { return false; } /* 8014166C-80141674 13BFAC 0008+00 1/0 0/0 0/0 .text checkGrassWhistle__9daPy_py_cCFv */ -bool daPy_py_c::checkGrassWhistle() const { +BOOL daPy_py_c::checkGrassWhistle() const { return false; } /* 80141674-8014167C 13BFB4 0008+00 1/0 0/0 0/0 .text checkBoarRun__9daPy_py_cCFv */ -bool daPy_py_c::checkBoarRun() const { +BOOL daPy_py_c::checkBoarRun() const { return false; } @@ -35281,14 +35177,9 @@ float daPy_py_c::getBaseAnimeFrameRate() const { } /* 80141694-8014169C 13BFD4 0008+00 1/0 0/0 0/0 .text getBaseAnimeFrame__9daPy_py_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm float daPy_py_c::getBaseAnimeFrame() const { - nofralloc -#include "asm/d/a/d_a_alink/getBaseAnimeFrame__9daPy_py_cCFv.s" +f32 daPy_py_c::getBaseAnimeFrame() const { + return FLOAT_LABEL(lit_6108); } -#pragma pop /* 8014169C-801416A0 13BFDC 0004+00 1/0 0/0 0/0 .text setAnimeFrame__9daPy_py_cFf */ void daPy_py_c::setAnimeFrame(f32 param_0) { @@ -35369,13 +35260,13 @@ void daPy_py_c::onMagneGrab(f32 param_0, f32 param_1) { } /* 801416F4-801416FC 13C034 0008+00 1/0 0/0 0/0 .text getModelJointMtx__9daPy_py_cFUs */ -bool daPy_py_c::getModelJointMtx(u16 param_0) { - return false; +MtxP daPy_py_c::getModelJointMtx(u16 param_0) { + return NULL; } /* 801416FC-80141704 13C03C 0008+00 1/0 0/0 0/0 .text getHeadMtx__9daPy_py_cFv */ -bool daPy_py_c::getHeadMtx() { - return false; +MtxP daPy_py_c::getHeadMtx() { + return NULL; } /* 80141704-8014170C 13C044 0008+00 1/0 0/0 0/0 .text setHookshotCarryOffset__9daPy_py_cFUiPC4cXyz @@ -35397,7 +35288,7 @@ bool daPy_py_c::checkIronBallGroundStop() const { /* 8014171C-80141724 13C05C 0008+00 1/0 0/0 0/0 .text * checkSingleBoarBattleSecondBowReady__9daPy_py_cCFv */ -bool daPy_py_c::checkSingleBoarBattleSecondBowReady() const { +BOOL daPy_py_c::checkSingleBoarBattleSecondBowReady() const { return false; } @@ -35485,12 +35376,12 @@ void daPy_py_c::onSceneChangeDead(u8 param_0, int param_1) { } /* 80141770-80141778 13C0B0 0008+00 1/0 0/0 0/0 .text getSpinnerActor__9daPy_py_cFv */ -bool daPy_py_c::getSpinnerActor() { - return false; +fopAc_ac_c* daPy_py_c::getSpinnerActor() { + return NULL; } /* 80141778-80141780 13C0B8 0008+00 1/0 0/0 0/0 .text checkHorseRideNotReady__9daPy_py_cCFv */ -bool daPy_py_c::checkHorseRideNotReady() const { +BOOL daPy_py_c::checkHorseRideNotReady() const { return false; } @@ -35502,18 +35393,13 @@ bool daPy_py_c::checkArrowChargeEnd() const { /* 80141788-80141790 13C0C8 0008+00 1/0 0/0 0/0 .text getSearchBallScale__9daPy_py_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_py_c::getSearchBallScale() const { - nofralloc -#include "asm/d/a/d_a_alink/getSearchBallScale__9daPy_py_cCFv.s" +f32 daPy_py_c::getSearchBallScale() const { + return FLOAT_LABEL(lit_6108); } -#pragma pop /* 80141790-80141798 13C0D0 0008+00 1/0 0/0 0/0 .text checkFastShotTime__9daPy_py_cFv */ -bool daPy_py_c::checkFastShotTime() { - return false; +s16 daPy_py_c::checkFastShotTime() { + return 0; } /* 80141798-801417A0 13C0D8 0008+00 1/0 0/0 0/0 .text checkNoEquipItem__9daPy_py_cCFv */ @@ -35534,8 +35420,8 @@ bool daPy_py_c::checkKandelaarSwing(int param_0) const { /* 801417B0-801417B8 13C0F0 0008+00 1/0 0/0 0/0 .text getBoardCutTurnOffsetAngleY__9daPy_py_cCFv */ -bool daPy_py_c::getBoardCutTurnOffsetAngleY() const { - return false; +s16 daPy_py_c::getBoardCutTurnOffsetAngleY() const { + return 0; } /* 801417B8-801417C0 13C0F8 0008+00 2/0 0/0 0/0 .text getMagneHitPos__9daPy_py_cFv */ @@ -35638,7 +35524,7 @@ bool daPy_py_c::checkCanoeFishingGetRight() const { /* 80141834-8014183C 13C174 0008+00 1/0 0/0 0/0 .text checkBeeChildDrink__9daPy_py_cCFv */ -bool daPy_py_c::checkBeeChildDrink() const { +u8 daPy_py_c::checkBeeChildDrink() const { return false; } @@ -35663,14 +35549,14 @@ bool daPy_py_c::checkAcceptDungeonWarpAlink(int param_0) { } /* 80141854-8014185C 13C194 0008+00 1/0 0/0 0/0 .text getSumouCounter__9daPy_py_cCFv */ -bool daPy_py_c::getSumouCounter() const { - return false; +s16 daPy_py_c::getSumouCounter() const { + return 0; } /* 8014185C-80141864 13C19C 0008+00 1/0 0/0 0/0 .text checkSumouWithstand__9daPy_py_cCFv */ -bool daPy_py_c::checkSumouWithstand() const { - return false; +s16 daPy_py_c::checkSumouWithstand() const { + return 0; } /* 80141864-80141868 13C1A4 0004+00 1/0 0/0 0/0 .text cancelGoronThrowEvent__9daPy_py_cFv @@ -35765,32 +35651,32 @@ void daPy_py_c::changeDragonActor(fopAc_ac_c* param_0) { } /* 801418C4-801418CC 13C204 0008+00 1/0 0/0 0/0 .text getClothesChangeWaitTimer__9daPy_py_cCFv */ -bool daPy_py_c::getClothesChangeWaitTimer() const { - return false; +u8 daPy_py_c::getClothesChangeWaitTimer() const { + return 0; } /* 801418CC-801418D4 13C20C 0008+00 1/0 0/0 0/0 .text getShieldChangeWaitTimer__9daPy_py_cCFv */ -bool daPy_py_c::getShieldChangeWaitTimer() const { - return false; +u8 daPy_py_c::getShieldChangeWaitTimer() const { + return 0; } /* 801418D4-801418DC 13C214 0008+00 1/0 0/0 0/0 .text getSwordChangeWaitTimer__9daPy_py_cCFv */ -bool daPy_py_c::getSwordChangeWaitTimer() const { - return false; +u8 daPy_py_c::getSwordChangeWaitTimer() const { + return 0; } /* 801418DC-801418E4 13C21C 0008+00 1/0 0/0 0/0 .text checkMetamorphose__9daPy_py_cCFv */ -bool daPy_py_c::checkMetamorphose() const { +BOOL daPy_py_c::checkMetamorphose() const { return false; } /* 801418E4-801418EC 13C224 0008+00 1/0 0/0 0/0 .text checkWolfDownAttackPullOut__9daPy_py_cCFv */ -bool daPy_py_c::checkWolfDownAttackPullOut() const { +BOOL daPy_py_c::checkWolfDownAttackPullOut() const { return false; } /* 801418EC-801418F4 13C22C 0008+00 1/0 0/0 0/0 .text checkBootsOrArmorHeavy__9daPy_py_cCFv */ -bool daPy_py_c::checkBootsOrArmorHeavy() const { +BOOL daPy_py_c::checkBootsOrArmorHeavy() const { return false; } @@ -35807,32 +35693,27 @@ bool daPy_py_c::checkItemSwordEquip() const { /* 80141904-8014190C 13C244 0008+00 1/0 0/0 0/0 .text getSinkShapeOffset__9daPy_py_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm float daPy_py_c::getSinkShapeOffset() const { - nofralloc -#include "asm/d/a/d_a_alink/getSinkShapeOffset__9daPy_py_cCFv.s" +f32 daPy_py_c::getSinkShapeOffset() const { + return FLOAT_LABEL(lit_6108); } -#pragma pop /* 8014190C-80141914 13C24C 0008+00 1/0 0/0 0/0 .text checkSinkDead__9daPy_py_cCFv */ -bool daPy_py_c::checkSinkDead() const { +BOOL daPy_py_c::checkSinkDead() const { return false; } /* 80141914-8014191C 13C254 0008+00 1/0 0/0 0/0 .text checkHorseStart__9daPy_py_cFv */ -bool daPy_py_c::checkHorseStart() { +BOOL daPy_py_c::checkHorseStart() { return false; } /* 8014191C-80141924 13C25C 0008+00 1/0 0/0 0/0 .text getWolfHowlMgrP__9daPy_py_cFv */ -bool daPy_py_c::getWolfHowlMgrP() { - return false; +Z2WolfHowlMgr* daPy_py_c::getWolfHowlMgrP() { + return NULL; } /* 80141924-8014192C 13C264 0008+00 1/0 0/0 0/0 .text checkWolfHowlSuccessAnime__9daPy_py_cCFv */ -bool daPy_py_c::checkWolfHowlSuccessAnime() const { +BOOL daPy_py_c::checkWolfHowlSuccessAnime() const { return false; } @@ -35847,7 +35728,7 @@ bool daPy_py_c::checkCopyRodEquip() const { } /* 8014193C-80141944 13C27C 0008+00 1/0 0/0 0/0 .text checkCutJumpMode__9daPy_py_cCFv */ -bool daPy_py_c::checkCutJumpMode() const { +BOOL daPy_py_c::checkCutJumpMode() const { return false; } @@ -35914,18 +35795,18 @@ static void dMeter2Info_setFloatingMessage(u16 pMessageID, s16 pMessageTimer, bo /* 801419F4-80141A04 13C334 0010+00 1/1 0/0 0/0 .text onForcePanic__9daMidna_cFv */ void daMidna_c::onForcePanic() { - onEndResetStateFlg0(ForcePanic); + onEndResetStateFlg0(FORCE_PANIC); } /* 80141A04-80141A10 13C344 000C+00 1/1 0/0 0/0 .text checkForceNormalColor__9daMidna_cCFv */ u32 daMidna_c::checkForceNormalColor() const { - return checkStateFlg1(ForceNormalColor); + return checkStateFlg1(FORCE_NORMAL_COLOR); } /* 80141A10-80141A1C 13C350 000C+00 1/1 0/0 0/0 .text checkForceTiredColor__9daMidna_cCFv */ u32 daMidna_c::checkForceTiredColor() const { - return checkStateFlg1(ForceTiredColor); + return checkStateFlg1(FORCE_TIRED_COLOR); } /* 80141A1C-80141A84 13C35C 0068+00 1/1 0/0 0/0 .text checkMidnaTired__9daMidna_cFv */ @@ -35940,7 +35821,7 @@ asm bool daMidna_c::checkMidnaTired() { /* 80141A84-80141A94 13C3C4 0010+00 1/1 0/0 0/0 .text onNoServiceWait__9daMidna_cFv */ void daMidna_c::onNoServiceWait() { - onEndResetStateFlg0(NoServiceWait); + onEndResetStateFlg0(NO_SERVICE_WAIT); } /* 80141A94-80141ACC 13C3D4 0038+00 1/1 0/0 0/0 .text setControllActorData__8daCrod_cFv diff --git a/src/d/a/d_a_player.cpp b/src/d/a/d_a_player.cpp index 9249f54536..c625449590 100644 --- a/src/d/a/d_a_player.cpp +++ b/src/d/a/d_a_player.cpp @@ -10,6 +10,8 @@ #include "dolphin/types.h" #include "f_op/f_op_actor_iter.h" #include "f_op/f_op_actor_mng.h" +#include "SSystem/SComponent/c_math.h" +#include "rel/d/a/d_a_boomerang/d_a_boomerang.h" // // Types: @@ -21,10 +23,6 @@ struct mDoMtx_stack_c { static u8 now[48]; }; -struct JMath { - static u8 sincosTable_[65536]; -}; - struct J3DAnmLoaderDataBaseFlag {}; struct J3DAnmLoaderDataBase { @@ -219,14 +217,18 @@ SECTION_SDATA2 static f32 lit_4250 = 65536.0f; /* 8015E5B0-8015E654 158EF0 00A4+00 0/0 1/1 18/18 .text initOffset__20daPy_boomerangMove_cFPC4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_boomerangMove_c::initOffset(cXyz const* param_0) { - nofralloc -#include "asm/d/a/d_a_player/initOffset__20daPy_boomerangMove_cFPC4cXyz.s" +void daPy_boomerangMove_c::initOffset(cXyz const* param_0) { + daBoomerang_c* boomerang = daPy_py_c::getThrowBoomerangActor(); + if (boomerang != NULL) { + bgCheckAfterOffset(param_0); + boomerang->onWindCatch(); + } else { + field_0x4 = cM_rndF(lit_4248) + lit_4247; + field_0x8 = cM_rndF(lit_4249) + lit_4249; + field_0x2 = cM_rndF(lit_4250); + } + field_0x0 = 0; } -#pragma pop /* ############################################################################################## */ /* 80451018-8045101C 000518 0004+00 2/2 33/32 103/103 .sbss m_midnaActor__9daPy_py_c */ @@ -277,6 +279,17 @@ SECTION_SDATA2 static u8 lit_4381[8] = { /* 8015E87C-8015EA0C 1591BC 0190+00 1/1 1/1 17/17 .text * bgCheckAfterOffset__20daPy_boomerangMove_cFPC4cXyz */ +// matches with literals (used in inlines) +#ifdef NONMATCHING +void daPy_boomerangMove_c::bgCheckAfterOffset(cXyz const* param_0) { + daBoomerang_c* boomerang = daPy_py_c::getThrowBoomerangActor(); + if (boomerang != NULL) { + field_0x4 = param_0->y - boomerang->mCurrent.mPosition.y; + field_0x8 = boomerang->mCurrent.mPosition.absXZ(*param_0); + field_0x2 = cM_atan2s(param_0->x - boomerang->mCurrent.mPosition.x, param_0->z - boomerang->mCurrent.mPosition.z); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -285,6 +298,7 @@ asm void daPy_boomerangMove_c::bgCheckAfterOffset(cXyz const* param_0) { #include "asm/d/a/d_a_player/bgCheckAfterOffset__20daPy_boomerangMove_cFPC4cXyz.s" } #pragma pop +#endif /* 8015EA0C-8015EA20 15934C 0014+00 0/0 3/3 0/0 .text setParamData__9daPy_py_cFiiii */ #pragma push @@ -323,7 +337,7 @@ asm BOOL daPy_py_c::checkFishingRodItem(int param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daPy_py_c::checkBombItem(int param_0) { +asm BOOL daPy_py_c::checkBombItem(int param_0) { nofralloc #include "asm/d/a/d_a_player/checkBombItem__9daPy_py_cFi.s" } @@ -333,7 +347,7 @@ asm void daPy_py_c::checkBombItem(int param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daPy_py_c::checkBottleItem(int param_0) { +asm BOOL daPy_py_c::checkBottleItem(int param_0) { nofralloc #include "asm/d/a/d_a_player/checkBottleItem__9daPy_py_cFi.s" } @@ -352,40 +366,24 @@ asm void daPy_py_c::checkDrinkBottleItem(int param_0) { /* 8015EB40-8015EB68 159480 0028+00 0/0 4/4 0/0 .text checkOilBottleItem__9daPy_py_cFi */ BOOL daPy_py_c::checkOilBottleItem(int i_itemNo) { - bool isOilBottleItem = false; - if (i_itemNo == CHUCHU_YELLOW || i_itemNo == OIL_BOTTLE_2 || i_itemNo == OIL_BOTTLE) { - isOilBottleItem = true; - } - return isOilBottleItem; + return i_itemNo == CHUCHU_YELLOW || i_itemNo == OIL_BOTTLE_2 || i_itemNo == OIL_BOTTLE; } /* 8015EB68-8015EB90 1594A8 0028+00 0/0 2/2 0/0 .text checkOpenBottleItem__9daPy_py_cFi */ BOOL daPy_py_c::checkOpenBottleItem(int i_itemNo) { - bool isOpenBottleItem = false; - if (i_itemNo == WATER_BOTTLE || i_itemNo == WORM || i_itemNo == FAIRY) { - isOpenBottleItem = true; - } - return isOpenBottleItem; + return i_itemNo == WATER_BOTTLE || i_itemNo == WORM || i_itemNo == FAIRY; } /* 8015EB90-8015EBB8 1594D0 0028+00 0/0 11/11 0/0 .text checkBowItem__9daPy_py_cFi */ BOOL daPy_py_c::checkBowItem(int i_itemNo) { - bool isBowItem = false; - if (i_itemNo == BOW || i_itemNo == BOMB_ARROW || i_itemNo == HAWK_ARROW) { - isBowItem = true; - } - return isBowItem; + return i_itemNo == BOW || i_itemNo == BOMB_ARROW || i_itemNo == HAWK_ARROW; } /* 8015EBB8-8015EBD8 1594F8 0020+00 0/0 23/23 0/0 .text checkHookshotItem__9daPy_py_cFi */ BOOL daPy_py_c::checkHookshotItem(int i_itemNo) { - bool isHookshotItem = false; - if (i_itemNo == HOOKSHOT || i_itemNo == W_HOOKSHOT) { - isHookshotItem = true; - } - return isHookshotItem; + return i_itemNo == HOOKSHOT || i_itemNo == W_HOOKSHOT; } /* 8015EBD8-8015EC28 159518 0050+00 0/0 3/3 0/0 .text checkTradeItem__9daPy_py_cFi */ @@ -401,11 +399,7 @@ asm BOOL daPy_py_c::checkTradeItem(int param_0) { /* 8015EC28-8015EC48 159568 0020+00 0/0 2/2 0/0 .text checkDungeonWarpItem__9daPy_py_cFi */ BOOL daPy_py_c::checkDungeonWarpItem(int i_itemNo) { - bool isDungeonWarpItem = false; - if (i_itemNo == DUNGEON_EXIT || i_itemNo == DUNGEON_BACK) { - isDungeonWarpItem = true; - } - return isDungeonWarpItem; + return i_itemNo == DUNGEON_EXIT || i_itemNo == DUNGEON_BACK; } /* 8015EC48-8015ECB8 159588 0070+00 0/0 10/10 3/3 .text setActor__16daPy_actorKeep_cFv */ @@ -909,7 +903,7 @@ asm void daPy_py_c::checkRoomRestartStart() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daPy_py_c::checkCarryStartLightBallA() { +asm u32 daPy_py_c::checkCarryStartLightBallA() { nofralloc #include "asm/d/a/d_a_player/checkCarryStartLightBallA__9daPy_py_cFv.s" } @@ -919,7 +913,7 @@ asm void daPy_py_c::checkCarryStartLightBallA() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daPy_py_c::checkCarryStartLightBallB() { +asm u32 daPy_py_c::checkCarryStartLightBallB() { nofralloc #include "asm/d/a/d_a_player/checkCarryStartLightBallB__9daPy_py_cFv.s" } @@ -962,14 +956,9 @@ bool daPy_py_c::checkBoomerangChargeTime() { } /* 8015F8D0-8015F8E4 15A210 0014+00 3/3 1/1 5/5 .text getThrowBoomerangActor__9daPy_py_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daPy_py_c::getThrowBoomerangActor() { - nofralloc -#include "asm/d/a/d_a_player/getThrowBoomerangActor__9daPy_py_cFv.s" +daBoomerang_c* daPy_py_c::getThrowBoomerangActor() { + return static_cast<daBoomerang_c*>(daAlink_getAlinkActorClass()->getThrowBoomerangAcKeep()->getActor()); } -#pragma pop /* 8015F8E4-8015F914 15A224 0030+00 0/0 0/0 2/2 .text * cancelBoomerangLockActor__9daPy_py_cFP10fopAc_ac_c */ diff --git a/src/d/bg/d_bg_s_acch.cpp b/src/d/bg/d_bg_s_acch.cpp index 5c1fedf3e1..8dd0d7bb34 100644 --- a/src/d/bg/d_bg_s_acch.cpp +++ b/src/d/bg/d_bg_s_acch.cpp @@ -813,6 +813,6 @@ static asm void func_8007748C() { #pragma pop /* 80077494-8007749C 071DD4 0008+00 0/0 1/0 0/0 .text checkPlayerFly__9daPy_py_cCFv */ -bool daPy_py_c::checkPlayerFly() const { - return false; +u32 daPy_py_c::checkPlayerFly() const { + return 0; } diff --git a/src/d/com/d_com_inf_game.cpp b/src/d/com/d_com_inf_game.cpp index 9f39275a30..557b44267a 100644 --- a/src/d/com/d_com_inf_game.cpp +++ b/src/d/com/d_com_inf_game.cpp @@ -401,7 +401,7 @@ inline u8 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0) { } inline BOOL dComIfGs_isEventBit(u16 id) { - return g_dComIfG_gameInfo.info.getSavedata().getEvent().isEventBit(id); + return g_dComIfG_gameInfo.info.getEvent().isEventBit(id); } inline int dComIfGs_isItemFirstBit(u8 i_no) { @@ -978,9 +978,9 @@ int dComIfG_play_c::getLayerNo_common_common(const char* stageName, int roomId, else if (dComIfGs_isTmpBit(0x0601)) { if (dComIfGs_isTmpBit(0x0602)) { layer = 2; + } else { + layer = 3; } - } else { - layer = 3; } } @@ -1150,22 +1150,22 @@ int dComIfG_play_c::getLayerNo_common_common(const char* stageName, int roomId, layer = 13; } } + } - // Stage is Hyrule Castle Sewers and room is Prison Cell - if (!strcmp(stageName, "R_SP107") && roomId == 0) { - // Haven't been to Hyrule Castle Sewers - if (!dComIfGs_isEventBit(0x4D08)) { - layer = 11; - } + // Stage is Hyrule Castle Sewers and room is Prison Cell + if (!strcmp(stageName, "R_SP107") && roomId == 0) { + // Haven't been to Hyrule Castle Sewers + if (!dComIfGs_isEventBit(0x4D08)) { + layer = 11; } - // Stage and room is Zant Throne Room - else if (!strcmp(stageName, "D_MN08A") && roomId == 10) { - // Defeated Zant - if (dComIfGs_isEventBit(0x5410)) { - layer = 1; - } else { - layer = 0; - } + } + // Stage and room is Zant Throne Room + else if (!strcmp(stageName, "D_MN08A") && roomId == 10) { + // Defeated Zant + if (dComIfGs_isEventBit(0x5410)) { + layer = 1; + } else { + layer = 0; } } } @@ -1728,7 +1728,7 @@ asm void dComIfGs_offOneZoneSwitch(int param_0, int param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dComIfGs_isOneZoneSwitch(int param_0, int param_1) { +asm BOOL dComIfGs_isOneZoneSwitch(int param_0, int param_1) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_isOneZoneSwitch__Fii.s" } diff --git a/src/d/d_att_dist.cpp b/src/d/d_att_dist.cpp index 80dd6e347d..f1669d0140 100644 --- a/src/d/d_att_dist.cpp +++ b/src/d/d_att_dist.cpp @@ -1,445 +1,243 @@ -// -// Generated By: dol2asm -// Translation Unit: d/d_att_dist -// - #include "d/d_att_dist.h" +#include "d/d_attention.h" #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct dAttention_c { - static u8 dist_table[6552]; -}; - -// -// Forward References: -// - -extern "C" u8 dist_table__12dAttention_c[6552]; - -// -// External References: -// - -// -// Declarations: -// - /* ############################################################################################## */ /* 803A9C70-803AB608 006D90 1998+00 0/0 5/5 13/13 .data dist_table__12dAttention_c */ -SECTION_DATA u8 dAttention_c::dist_table[6552] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3C, 0x23, 0xD7, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x43, 0x7A, 0x00, 0x00, - 0x43, 0xBB, 0x80, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0xC3, 0xC8, 0x00, 0x00, - 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x3B, 0x80, 0x00, 0x43, 0x7A, 0x00, 0x00, - 0x43, 0x9C, 0x40, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0xBB, 0x80, 0x00, 0x44, 0x1C, 0x40, 0x00, 0x43, 0xFA, 0x00, 0x00, - 0x43, 0xFA, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0xFA, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, 0x44, 0xBB, 0x80, 0x00, 0x44, 0xFA, 0x00, 0x00, - 0xC4, 0xFA, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x3B, 0x80, 0x00, - 0x43, 0x7A, 0x00, 0x00, 0x43, 0x9C, 0x40, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0xA0, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, 0xC3, 0x02, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x42, 0x48, 0x00, 0x00, 0xC2, 0xF0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, - 0xC2, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x42, 0xC8, 0x00, 0x00, - 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0xC3, 0x02, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x42, 0xA0, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0xC2, 0xDC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x42, 0xA0, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x41, 0x20, 0x00, 0x00, 0xC3, 0x02, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x43, 0x48, 0x00, 0x00, 0x43, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, - 0xC2, 0xF0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x42, 0xC8, 0x00, 0x00, - 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, 0xC3, 0x70, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x43, 0x48, 0x00, 0x00, 0x43, 0x5C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00, 0xC3, 0x48, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x48, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, - 0xC2, 0xF0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00, - 0x43, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0xC2, 0xF0, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x2F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, 0xC4, 0x48, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x44, 0x48, 0x00, 0x00, 0xC4, 0x48, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x44, 0x7A, 0x00, 0x00, 0x44, 0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x16, 0x00, 0x00, - 0x43, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, - 0x45, 0x8C, 0xA0, 0x00, 0x44, 0xFA, 0x00, 0x00, 0xC4, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x43, 0xE1, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00, - 0x43, 0xFA, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x1C, 0x40, 0x00, 0x45, 0x22, 0x80, 0x00, 0x45, 0x1C, 0x40, 0x00, 0x45, 0x1C, 0x40, 0x00, - 0xC4, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x9C, 0x40, 0x00, - 0x45, 0xAB, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0xFA, 0x00, 0x00, 0xC4, 0xFA, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x9C, 0x40, 0x00, 0x45, 0xAB, 0xE0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x44, 0xFA, 0x00, 0x00, 0xC4, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x34, 0x00, 0x00, 0x43, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x41, 0xF0, 0x00, 0x00, 0xC3, 0x02, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0xFA, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, - 0xC2, 0xF0, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x7A, 0x00, 0x00, - 0x44, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x41, 0xF0, 0x00, 0x00, 0xC3, 0x02, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x16, 0x00, 0x00, 0x43, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00, - 0xC3, 0x48, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x43, 0x16, 0x00, 0x00, - 0x43, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x16, 0x00, 0x00, 0xC3, 0x16, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x44, 0x7A, 0x00, 0x00, 0x44, 0x96, 0x00, 0x00, - 0x44, 0xE1, 0x00, 0x00, 0x44, 0xFA, 0x00, 0x00, 0xC4, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0xBB, 0x80, 0x00, 0x44, 0x1C, 0x40, 0x00, 0x43, 0xFA, 0x00, 0x00, - 0x44, 0x3B, 0x80, 0x00, 0xC3, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x44, 0x96, 0x00, 0x00, 0x44, 0xE1, 0x00, 0x00, 0x44, 0x96, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, - 0xC4, 0x89, 0x80, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3C, 0x23, 0xD7, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00, 0x43, 0x5C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x44, 0x44, 0xED, 0x80, 0x00, 0x44, 0xED, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x44, 0xFA, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x44, 0xED, 0x80, 0x00, 0x44, 0xFA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0xFA, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x42, 0xA0, 0x00, 0x00, - 0x42, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, 0xC3, 0x02, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xDC, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0xC2, 0xF0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x43, 0x02, 0x00, 0x00, 0x43, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x42, 0x34, 0x00, 0x00, 0xC2, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x43, 0x20, 0x00, 0x00, 0x43, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, - 0xC3, 0x02, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x43, 0x3E, 0x00, 0x00, - 0x43, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0xC2, 0xDC, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x43, 0xBB, 0x80, 0x00, 0x44, 0x1C, 0x40, 0x00, - 0x43, 0xFA, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, - 0x43, 0xFA, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x16, 0x00, 0x00, 0x43, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00, - 0xC3, 0x48, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x44, 0x7A, 0x00, 0x00, - 0x44, 0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00, 0xC3, 0x48, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x1C, 0x40, 0x00, 0x46, 0x1F, 0x60, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x46, 0x1C, 0x40, 0x00, 0xC6, 0x1C, 0x40, 0x00, 0x42, 0xC8, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x46, 0x1C, 0x40, 0x00, 0x46, 0x1F, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x46, 0x1C, 0x40, 0x00, 0xC6, 0x1C, 0x40, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x44, 0xBB, 0x80, 0x00, 0x44, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x44, 0x7A, 0x00, 0x00, - 0x44, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0xC3, 0xC8, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x46, 0x1C, 0x40, 0x00, 0x46, 0x1F, 0x60, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x46, 0x1C, 0x40, 0x00, 0xC6, 0x1C, 0x40, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x48, 0x00, 0x00, 0x43, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x00, 0x00, - 0x42, 0xC8, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, - 0x44, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x00, 0x00, 0x44, 0x7A, 0x00, 0x00, - 0x43, 0xFA, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x02, 0x00, 0x00, 0x43, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x42, 0x34, 0x00, 0x00, 0xC2, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0xC3, 0x50, 0x00, 0x47, 0xC3, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0xC3, 0x50, 0x00, - 0xC7, 0xC3, 0x50, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x1C, 0x40, 0x00, - 0x46, 0x1D, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x3B, 0x80, 0x00, 0xC4, 0xFA, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x00, 0x00, 0x44, 0x7A, 0x00, 0x00, - 0x43, 0xFA, 0x00, 0x00, 0x44, 0x7A, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0xFA, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x44, 0x2F, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x00, 0x00, - 0xC4, 0x2F, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x1C, 0x40, 0x00, - 0x46, 0x1F, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x1C, 0x40, 0x00, 0xC6, 0x1C, 0x40, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x43, 0xE1, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, 0xC4, 0x16, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x44, 0x16, 0x00, 0x00, 0xC4, 0x16, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x44, 0xFA, 0x00, 0x00, 0x45, 0x09, 0x80, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, - 0xC3, 0xFA, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, - 0x44, 0x16, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, 0xC4, 0x16, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x44, 0x16, 0x00, 0x00, 0xC4, 0x16, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x44, 0x96, 0x00, 0x00, 0x44, 0xFA, 0x00, 0x00, 0x44, 0x96, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, - 0xC3, 0xFA, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x20, 0x00, 0x00, - 0x43, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0xC3, 0x02, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x0C, 0x00, 0x00, 0x43, 0x16, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x7A, 0x00, 0x00, 0xC2, 0x48, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, 0x44, 0x3B, 0x80, 0x00, - 0x44, 0xFA, 0x00, 0x00, 0xC4, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0xFA, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, 0x44, 0x3B, 0x80, 0x00, 0x43, 0x48, 0x00, 0x00, - 0xC3, 0x48, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00, - 0x43, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC4, 0x7A, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC4, 0x7A, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x44, 0x7A, 0x00, 0x00, 0x44, 0xFA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x44, 0x7A, 0x00, 0x00, 0xC4, 0x7A, 0x00, 0x00, 0x3D, 0xCC, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x48, 0x00, 0x00, 0x43, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x43, 0x96, 0x00, 0x00, - 0x43, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x45, 0x3B, 0x80, 0x00, 0x45, 0x41, 0xC0, 0x00, - 0x43, 0x96, 0x00, 0x00, 0x45, 0x3B, 0x80, 0x00, 0xC5, 0x3B, 0x80, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x44, 0xFA, 0x00, 0x00, 0x45, 0x03, 0x40, 0x00, 0x43, 0x96, 0x00, 0x00, - 0x44, 0xFA, 0x00, 0x00, 0xC4, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x16, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, - 0xC2, 0xC8, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x45, 0x5A, 0xC0, 0x00, - 0x45, 0x5A, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x3B, 0x80, 0x00, 0xC5, 0x3B, 0x80, 0x00, - 0x42, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0xBB, 0x80, 0x00, 0x44, 0x1C, 0x40, 0x00, - 0x43, 0xFA, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00, 0x43, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC4, 0x7A, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, - 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC4, 0x7A, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x43, 0x16, 0x00, 0x00, - 0x43, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0xC3, 0x02, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0xC3, 0x02, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0xBB, 0x80, 0x00, 0x44, 0x7A, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, - 0x43, 0xFA, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x44, 0xFA, 0x00, 0x00, 0x44, 0xFA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x7A, 0x00, 0x00, - 0xC4, 0x7A, 0x00, 0x00, 0x3D, 0xCC, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x04, 0x42, 0xC8, 0x00, 0x00, - 0x43, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x20, 0x00, 0x00, 0xC3, 0x16, 0x00, 0x00, - 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x42, 0x48, 0x00, 0x00, 0x42, 0x8C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0C, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, - 0x43, 0x16, 0x00, 0x00, 0x43, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x43, 0x48, 0x00, 0x00, - 0x43, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x43, 0x7A, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0C, 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, - 0x43, 0xAF, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x43, 0xC8, 0x00, 0x00, - 0x43, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x43, 0xE1, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0C, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, - 0x44, 0x09, 0x80, 0x00, 0x44, 0x22, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x44, 0x16, 0x00, 0x00, - 0x44, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x44, 0x22, 0x80, 0x00, 0x44, 0x2F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0C, 0x44, 0x2F, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, - 0x44, 0x3B, 0x80, 0x00, 0x44, 0x54, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x44, 0x48, 0x00, 0x00, - 0x44, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x44, 0x54, 0x80, 0x00, 0x44, 0x7A, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0C, 0x44, 0x61, 0x00, 0x00, 0x44, 0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, - 0x44, 0x6D, 0x80, 0x00, 0x44, 0x8F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x44, 0x7A, 0x00, 0x00, - 0x44, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x42, 0x48, 0x00, 0x00, 0x42, 0x8C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x14, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, - 0x43, 0x16, 0x00, 0x00, 0x43, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x43, 0x48, 0x00, 0x00, - 0x43, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x43, 0x7A, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x14, 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, - 0x43, 0xAF, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x43, 0xC8, 0x00, 0x00, - 0x43, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x43, 0xE1, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x14, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, - 0x44, 0x09, 0x80, 0x00, 0x44, 0x22, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x16, 0x00, 0x00, - 0x44, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x22, 0x80, 0x00, 0x44, 0x2F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x14, 0x44, 0x2F, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, - 0x44, 0x3B, 0x80, 0x00, 0x44, 0x54, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x48, 0x00, 0x00, - 0x44, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x54, 0x80, 0x00, 0x44, 0x7A, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x14, 0x44, 0x61, 0x00, 0x00, 0x44, 0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, - 0x44, 0x6D, 0x80, 0x00, 0x44, 0x8F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x7A, 0x00, 0x00, - 0x44, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x42, 0x48, 0x00, 0x00, 0x42, 0x8C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x24, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, - 0x43, 0x16, 0x00, 0x00, 0x43, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x43, 0x48, 0x00, 0x00, - 0x43, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x43, 0x7A, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x24, 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, - 0x43, 0xAF, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x43, 0xC8, 0x00, 0x00, - 0x43, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x43, 0xE1, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x24, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, - 0x44, 0x09, 0x80, 0x00, 0x44, 0x22, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x44, 0x16, 0x00, 0x00, - 0x44, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x44, 0x22, 0x80, 0x00, 0x44, 0x2F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x24, 0x44, 0x2F, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, - 0x44, 0x3B, 0x80, 0x00, 0x44, 0x54, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x44, 0x48, 0x00, 0x00, - 0x44, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x44, 0x54, 0x80, 0x00, 0x44, 0x7A, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x24, 0x44, 0x61, 0x00, 0x00, 0x44, 0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, - 0x44, 0x6D, 0x80, 0x00, 0x44, 0x8F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x44, 0x7A, 0x00, 0x00, - 0x44, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x42, 0x48, 0x00, 0x00, 0x42, 0x8C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x44, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, - 0x43, 0x16, 0x00, 0x00, 0x43, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x43, 0x48, 0x00, 0x00, - 0x43, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x43, 0x7A, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x44, 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, - 0x43, 0xAF, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x43, 0xC8, 0x00, 0x00, - 0x43, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x43, 0xE1, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x44, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, - 0x44, 0x09, 0x80, 0x00, 0x44, 0x22, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x16, 0x00, 0x00, - 0x44, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x22, 0x80, 0x00, 0x44, 0x3B, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x44, 0x44, 0x2F, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, - 0x44, 0x3B, 0x80, 0x00, 0x44, 0x54, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x48, 0x00, 0x00, - 0x44, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x54, 0x80, 0x00, 0x44, 0x7A, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x44, 0x44, 0x61, 0x00, 0x00, 0x44, 0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, - 0x44, 0x6D, 0x80, 0x00, 0x44, 0x8F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x7A, 0x00, 0x00, - 0x44, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x42, 0x48, 0x00, 0x00, 0x42, 0x8C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x84, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, - 0x43, 0x16, 0x00, 0x00, 0x43, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x43, 0x48, 0x00, 0x00, - 0x43, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x43, 0x7A, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x84, 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, - 0x43, 0xAF, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x43, 0xC8, 0x00, 0x00, - 0x43, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x43, 0xE1, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x84, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, - 0x44, 0x09, 0x80, 0x00, 0x44, 0x22, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x44, 0x16, 0x00, 0x00, - 0x44, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x44, 0x22, 0x80, 0x00, 0x44, 0x3B, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x84, 0x44, 0x2F, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, - 0x44, 0x3B, 0x80, 0x00, 0x44, 0x54, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x44, 0x48, 0x00, 0x00, - 0x44, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x44, 0x54, 0x80, 0x00, 0x44, 0x7A, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x84, 0x44, 0x61, 0x00, 0x00, 0x44, 0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, - 0x44, 0x6D, 0x80, 0x00, 0x44, 0x8F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x44, 0x7A, 0x00, 0x00, - 0x44, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x42, 0x48, 0x00, 0x00, 0x42, 0x8C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x04, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, - 0x43, 0x16, 0x00, 0x00, 0x43, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x43, 0x48, 0x00, 0x00, - 0x43, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x43, 0x7A, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x04, 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, - 0x43, 0xAF, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x43, 0xC8, 0x00, 0x00, - 0x43, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x43, 0xE1, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x04, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, - 0x44, 0x09, 0x80, 0x00, 0x44, 0x22, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x44, 0x16, 0x00, 0x00, - 0x44, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x44, 0x22, 0x80, 0x00, 0x44, 0x3B, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x04, 0x44, 0x2F, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, - 0x44, 0x3B, 0x80, 0x00, 0x44, 0x54, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x44, 0x48, 0x00, 0x00, - 0x44, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x44, 0x54, 0x80, 0x00, 0x44, 0x7A, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x04, 0x44, 0x61, 0x00, 0x00, 0x44, 0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, - 0x44, 0x6D, 0x80, 0x00, 0x44, 0x8F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x44, 0x7A, 0x00, 0x00, - 0x44, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x42, 0x48, 0x00, 0x00, 0x42, 0x8C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x43, 0x16, 0x00, 0x00, 0x43, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x43, 0x48, 0x00, 0x00, - 0x43, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x43, 0x7A, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x43, 0xAF, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x43, 0xC8, 0x00, 0x00, - 0x43, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x43, 0xE1, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x44, 0x09, 0x80, 0x00, 0x44, 0x22, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x44, 0x16, 0x00, 0x00, - 0x44, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x44, 0x22, 0x80, 0x00, 0x44, 0x3B, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x44, 0x2F, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x44, 0x3B, 0x80, 0x00, 0x44, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x44, 0x48, 0x00, 0x00, - 0x44, 0x6D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x44, 0x54, 0x80, 0x00, 0x44, 0x7A, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x44, 0x61, 0x00, 0x00, 0x44, 0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x44, 0x6D, 0x80, 0x00, 0x44, 0x8F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x44, 0x7A, 0x00, 0x00, - 0x44, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, +dist_entry dAttention_c::dist_table[234] = { + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.01f, 0 }, + { 250.0f, 375.0f, 500.0f, 400.0f, -400.0f, 0.5f, 0 }, + { 187.5f, 250.0f, 312.5f, 300.0f, -300.0f, 1.0f, 0 }, + { 375.0f, 625.0f, 500.0f, 500.0f, -500.0f, 10.0f, 0 }, + { 500.0f, 600.0f, 1500.0f, 2000.0f, -2000.0f, 10.0f, 0 }, + { 187.5f, 250.0f, 312.5f, 300.0f, -300.0f, 1.0f, 0 }, + { 80.0f, 100.0f, 0.0f, 30.0f, -130.0f, 1.0f, 1 }, + { 100.0f, 120.0f, 0.0f, 50.0f, -120.0f, 1.0f, 1 }, + { 100.0f, 120.0f, 0.0f, 45.0f, -125.0f, 1.0f, 1 }, + { 100.0f, 120.0f, 0.0f, 40.0f, -130.0f, 1.0f, 1 }, + { 80.0f, 100.0f, 0.0f, 40.0f, -110.0f, 1.0f, 1 }, + { 80.0f, 100.0f, 0.0f, 10.0f, -130.0f, 1.0f, 1 }, + { 200.0f, 240.0f, 0.0f, 100.0f, -120.0f, 1.0f, 1 }, + { 100.0f, 120.0f, 0.0f, 30.0f, -240.0f, 1.0f, 1 }, + { 200.0f, 220.0f, 0.0f, 200.0f, -200.0f, 10.0f, 4 }, + { 100.0f, 120.0f, 300.0f, 300.0f, -200.0f, 1.0f, 4 }, + { 100.0f, 120.0f, 0.0f, 20.0f, -120.0f, 1.0f, 0 }, + { 200.0f, 200.0f, 0.0f, 400.0f, -120.0f, 1.0f, 1 }, + { 500.0f, 700.0f, 0.0f, 800.0f, -800.0f, 1.0f, 0 }, + { 500.0f, 700.0f, 0.0f, 800.0f, -800.0f, 1.0f, 0 }, + { 1000.0f, 1100.0f, 0.0f, 700.0f, -300.0f, 1.0f, 0 }, + { 150.0f, 200.0f, 0.0f, 300.0f, -300.0f, 1.0f, 0 }, + { 500.0f, 600.0f, 4500.0f, 2000.0f, -2000.0f, 1.0f, 0 }, + { 400.0f, 450.0f, 200.0f, 500.0f, -500.0f, 1.0f, 0 }, + { 2500.0f, 2600.0f, 2500.0f, 2500.0f, -2000.0f, 1.0f, 0 }, + { 5000.0f, 5500.0f, 0.0f, 2000.0f, -2000.0f, 1.0f, 0 }, + { 5000.0f, 5500.0f, 0.0f, 2000.0f, -2000.0f, 1.0f, 0 }, + { 180.0f, 180.0f, 0.0f, 30.0f, -130.0f, 1.0f, 0 }, + { 500.0f, 600.0f, 0.0f, 600.0f, -120.0f, 100.0f, 0 }, + { 1000.0f, 1000.0f, 0.0f, 500.0f, -500.0f, 1.0f, 0 }, + { -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0 }, + { 120.0f, 120.0f, 0.0f, 30.0f, -130.0f, 1.0f, 0 }, + { 150.0f, 160.0f, 0.0f, 200.0f, -200.0f, 1.0f, 4 }, + { 150.0f, 160.0f, 0.0f, 150.0f, -150.0f, 1.0f, 132 }, + { 1000.0f, 1200.0f, 1800.0f, 2000.0f, -2000.0f, 1.0f, 0 }, + { 375.0f, 625.0f, 500.0f, 750.0f, -500.0f, 1.0f, 0 }, + { 1200.0f, 1800.0f, 1200.0f, 500.0f, -1100.0f, 1.0f, 0 }, + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.01f, 0 }, + { 200.0f, 220.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 }, + { 1900.0f, 1900.0f, 0.0f, 2000.0f, -300.0f, 1.0f, 0 }, + { 1900.0f, 2000.0f, 0.0f, 2000.0f, -300.0f, 1.0f, 1 }, + { 80.0f, 100.0f, 0.0f, 30.0f, -130.0f, 1.0f, 1 }, + { 100.0f, 110.0f, 0.0f, 50.0f, -120.0f, 1.0f, 4 }, + { 130.0f, 140.0f, 0.0f, 45.0f, -125.0f, 1.0f, 1 }, + { 160.0f, 180.0f, 0.0f, 40.0f, -130.0f, 1.0f, 1 }, + { 190.0f, 210.0f, 0.0f, 40.0f, -110.0f, 1.0f, 1 }, + { 375.0f, 625.0f, 500.0f, 800.0f, -500.0f, 10.0f, 0 }, + { 100.0f, 400.0f, 500.0f, 500.0f, -500.0f, 10.0f, 0 }, + { 150.0f, 160.0f, 0.0f, 200.0f, -200.0f, 1.0f, 4 }, + { 1000.0f, 1100.0f, 0.0f, 200.0f, -200.0f, 1.0f, 0 }, + { 10000.0f, 10200.0f, 0.0f, 10000.0f, -10000.0f, 100.0f, 0 }, + { 10000.0f, 10200.0f, 0.0f, 10000.0f, -10000.0f, 1.0f, 0 }, + { 1500.0f, 1800.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 }, + { 1000.0f, 1200.0f, 0.0f, 400.0f, -400.0f, 1.0f, 4 }, + { 10000.0f, 10200.0f, 0.0f, 10000.0f, -10000.0f, 1.0f, 0 }, + { 300.0f, 350.0f, 0.0f, 300.0f, -300.0f, 1.0f, 0 }, + { 200.0f, 240.0f, 0.0f, 700.0f, 100.0f, 1.0f, 0 }, + { 600.0f, 700.0f, 0.0f, 700.0f, 100.0f, 1.0f, 0 }, + { 700.0f, 1000.0f, 500.0f, 500.0f, -500.0f, 10.0f, 0 }, + { 130.0f, 140.0f, 0.0f, 45.0f, -125.0f, 1.0f, 0 }, + { 100000.0f, 100100.0f, 0.0f, 100000.0f, -100000.0f, 1.0f, 0 }, + { 10000.0f, 10100.0f, 0.0f, 3000.0f, -2000.0f, 300.0f, 0 }, + { 700.0f, 1000.0f, 500.0f, 1000.0f, -500.0f, 10.0f, 0 }, + { 500.0f, 600.0f, 0.0f, 500.0f, -500.0f, 1.0f, 0 }, + { 700.0f, 800.0f, 0.0f, 700.0f, -700.0f, 1.0f, 0 }, + { 10000.0f, 10200.0f, 0.0f, 10000.0f, -10000.0f, 1.0f, 0 }, + { 400.0f, 450.0f, 0.0f, 600.0f, -600.0f, 1.0f, 4 }, + { 500.0f, 550.0f, 0.0f, 600.0f, -600.0f, 1.0f, 4 }, + { 2000.0f, 2200.0f, 500.0f, 500.0f, -500.0f, 10.0f, 0 }, + { 500.0f, 600.0f, 200.0f, 500.0f, -500.0f, 1.0f, 0 }, + { 300.0f, 350.0f, 0.0f, 600.0f, -600.0f, 1.0f, 4 }, + { 500.0f, 550.0f, 0.0f, 600.0f, -600.0f, 1.0f, 4 }, + { 1200.0f, 2000.0f, 1200.0f, 800.0f, -500.0f, 2.0f, 0 }, + { 160.0f, 180.0f, 0.0f, 40.0f, -130.0f, 1.0f, 0 }, + { 140.0f, 150.0f, 0.0f, 250.0f, -50.0f, 1.0f, 1 }, + { 500.0f, 600.0f, 750.0f, 2000.0f, -2000.0f, 1.0f, 0 }, + { 500.0f, 600.0f, 750.0f, 200.0f, -200.0f, 1.0f, 0 }, + { 200.0f, 250.0f, 0.0f, 300.0f, -1000.0f, 1.0f, 4 }, + { 300.0f, 350.0f, 0.0f, 300.0f, -1000.0f, 1.0f, 4 }, + { 1000.0f, 2000.0f, 0.0f, 1000.0f, -1000.0f, 0.1f, 0 }, + { 200.0f, 250.0f, 0.0f, 300.0f, -300.0f, 2.5f, 4 }, + { 300.0f, 350.0f, 0.0f, 300.0f, -300.0f, 2.5f, 4 }, + { 3000.0f, 3100.0f, 300.0f, 3000.0f, -3000.0f, 1.0f, 0 }, + { 2000.0f, 2100.0f, 300.0f, 2000.0f, -2000.0f, 1.0f, 0 }, + { 150.0f, 200.0f, 0.0f, 100.0f, -100.0f, 1.0f, 17 }, + { 3500.0f, 3500.0f, 0.0f, 3000.0f, -3000.0f, 100.0f, 0 }, + { 375.0f, 625.0f, 500.0f, 500.0f, -500.0f, 40.0f, 0 }, + { 200.0f, 250.0f, 0.0f, 300.0f, -1000.0f, 1.0f, 68 }, + { 300.0f, 350.0f, 0.0f, 300.0f, -1000.0f, 1.0f, 68 }, + { 150.0f, 150.0f, 0.0f, 40.0f, -130.0f, 1.0f, 1 }, + { 100.0f, 100.0f, 0.0f, 40.0f, -130.0f, 1.0f, 0 }, + { 375.0f, 1000.0f, 500.0f, 500.0f, -500.0f, 10.0f, 0 }, + { 2000.0f, 2000.0f, 0.0f, 1000.0f, -1000.0f, 0.1f, 4 }, + { 100.0f, 200.0f, 0.0f, 160.0f, -150.0f, 10.0f, 4 }, + { 50.0f, 70.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 }, + { 100.0f, 120.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 }, + { 150.0f, 180.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 }, + { 200.0f, 240.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 }, + { 250.0f, 300.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 }, + { 300.0f, 350.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 }, + { 350.0f, 400.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 }, + { 400.0f, 450.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 }, + { 450.0f, 500.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 }, + { 500.0f, 550.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 }, + { 550.0f, 650.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 }, + { 600.0f, 700.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 }, + { 650.0f, 700.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 }, + { 700.0f, 800.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 }, + { 750.0f, 850.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 }, + { 800.0f, 900.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 }, + { 850.0f, 1000.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 }, + { 900.0f, 1100.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 }, + { 950.0f, 1150.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 }, + { 1000.0f, 1200.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 }, + { 50.0f, 70.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 }, + { 100.0f, 120.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 }, + { 150.0f, 180.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 }, + { 200.0f, 240.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 }, + { 250.0f, 300.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 }, + { 300.0f, 350.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 }, + { 350.0f, 400.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 }, + { 400.0f, 450.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 }, + { 450.0f, 500.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 }, + { 500.0f, 550.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 }, + { 550.0f, 650.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 }, + { 600.0f, 700.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 }, + { 650.0f, 700.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 }, + { 700.0f, 800.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 }, + { 750.0f, 850.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 }, + { 800.0f, 900.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 }, + { 850.0f, 1000.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 }, + { 900.0f, 1100.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 }, + { 950.0f, 1150.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 }, + { 1000.0f, 1200.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 }, + { 50.0f, 70.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 }, + { 100.0f, 120.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 }, + { 150.0f, 180.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 }, + { 200.0f, 250.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 }, + { 250.0f, 300.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 }, + { 300.0f, 350.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 }, + { 350.0f, 400.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 }, + { 400.0f, 450.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 }, + { 450.0f, 500.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 }, + { 500.0f, 550.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 }, + { 550.0f, 650.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 }, + { 600.0f, 700.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 }, + { 650.0f, 700.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 }, + { 700.0f, 800.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 }, + { 750.0f, 850.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 }, + { 800.0f, 900.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 }, + { 850.0f, 1000.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 }, + { 900.0f, 1100.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 }, + { 950.0f, 1150.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 }, + { 1000.0f, 1200.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 }, + { 50.0f, 70.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 }, + { 100.0f, 120.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 }, + { 150.0f, 180.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 }, + { 200.0f, 250.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 }, + { 250.0f, 300.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 }, + { 300.0f, 350.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 }, + { 350.0f, 400.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 }, + { 400.0f, 450.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 }, + { 450.0f, 500.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 }, + { 500.0f, 550.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 }, + { 550.0f, 650.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 }, + { 600.0f, 700.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 }, + { 650.0f, 750.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 }, + { 700.0f, 800.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 }, + { 750.0f, 850.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 }, + { 800.0f, 900.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 }, + { 850.0f, 1000.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 }, + { 900.0f, 1100.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 }, + { 950.0f, 1150.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 }, + { 1000.0f, 1200.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 }, + { 50.0f, 70.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 }, + { 100.0f, 120.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 }, + { 150.0f, 180.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 }, + { 200.0f, 250.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 }, + { 250.0f, 300.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 }, + { 300.0f, 350.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 }, + { 350.0f, 400.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 }, + { 400.0f, 450.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 }, + { 450.0f, 500.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 }, + { 500.0f, 550.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 }, + { 550.0f, 650.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 }, + { 600.0f, 700.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 }, + { 650.0f, 750.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 }, + { 700.0f, 800.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 }, + { 750.0f, 850.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 }, + { 800.0f, 900.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 }, + { 850.0f, 1000.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 }, + { 900.0f, 1100.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 }, + { 950.0f, 1150.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 }, + { 1000.0f, 1200.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 }, + { 50.0f, 70.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 }, + { 100.0f, 120.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 }, + { 150.0f, 180.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 }, + { 200.0f, 250.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 }, + { 250.0f, 300.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 }, + { 300.0f, 350.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 }, + { 350.0f, 400.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 }, + { 400.0f, 450.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 }, + { 450.0f, 500.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 }, + { 500.0f, 550.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 }, + { 550.0f, 650.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 }, + { 600.0f, 700.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 }, + { 650.0f, 750.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 }, + { 700.0f, 800.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 }, + { 750.0f, 850.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 }, + { 800.0f, 900.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 }, + { 850.0f, 1000.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 }, + { 900.0f, 1100.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 }, + { 950.0f, 1150.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 }, + { 1000.0f, 1200.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 }, + { 50.0f, 70.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 }, + { 100.0f, 120.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 }, + { 150.0f, 180.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 }, + { 200.0f, 250.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 }, + { 250.0f, 300.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 }, + { 300.0f, 350.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 }, + { 350.0f, 400.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 }, + { 400.0f, 450.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 }, + { 450.0f, 500.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 }, + { 500.0f, 550.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 }, + { 550.0f, 650.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 }, + { 600.0f, 700.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 }, + { 650.0f, 750.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 }, + { 700.0f, 800.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 }, + { 750.0f, 900.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 }, + { 800.0f, 950.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 }, + { 850.0f, 1000.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 }, + { 900.0f, 1100.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 }, + { 950.0f, 1150.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 }, + { 1000.0f, 1200.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 }, }; diff --git a/src/d/d_attention.cpp b/src/d/d_attention.cpp index 61117fabb1..951cbc5c5b 100644 --- a/src/d/d_attention.cpp +++ b/src/d/d_attention.cpp @@ -177,13 +177,11 @@ extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void tan(); extern "C" extern void* __vt__25mDoExt_McaMorfCallBack1_c[3]; extern "C" u8 dist_table__12dAttention_c[6552]; extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; extern "C" u8 now__14mDoMtx_stack_c[48]; extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u32 __float_nan; extern "C" extern u32 __float_max; extern "C" extern u8 data_80450F58[8]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; @@ -936,7 +934,7 @@ asm void dAttention_c::CheckObjectTarget(s32 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dAttention_c::LockonTruth() { +asm bool dAttention_c::LockonTruth() { nofralloc #include "asm/d/d_attention/LockonTruth__12dAttention_cFv.s" } diff --git a/src/d/d_drawlist.cpp b/src/d/d_drawlist.cpp index 65b36253a7..596e402697 100644 --- a/src/d/d_drawlist.cpp +++ b/src/d/d_drawlist.cpp @@ -288,7 +288,6 @@ extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void fmod(); extern "C" extern u8 g_mDoMtx_identity[48 + 24 /* padding */]; extern "C" extern void* __vt__26mDoExt_3DlineMatSortPacket[5]; extern "C" extern void* __vt__12dDlst_base_c[3]; @@ -303,7 +302,6 @@ extern "C" u8 mBackColor__13mDoGph_gInf_c[4]; extern "C" extern u8 g_clearColor[4]; extern "C" extern u32 g_blackColor; extern "C" extern u32 g_whiteColor; -extern "C" extern u32 __float_nan; extern "C" extern u32 __float_max; extern "C" f32 mSystemFar__14mDoLib_clipper; extern "C" f32 mFovyRate__14mDoLib_clipper; diff --git a/src/d/d_jnt_col.cpp b/src/d/d_jnt_col.cpp index 9089295591..564620c3f0 100644 --- a/src/d/d_jnt_col.cpp +++ b/src/d/d_jnt_col.cpp @@ -88,7 +88,6 @@ extern "C" extern void* __vt__8cM3dGPla[3]; extern "C" extern void* __vt__8cM3dGCyl[3]; extern "C" u8 now__14mDoMtx_stack_c[48]; extern "C" u8 BaseZ__4cXyz[12]; -extern "C" extern u32 __float_nan; extern "C" extern u32 __float_max; // diff --git a/src/d/event/d_event_manager.cpp b/src/d/event/d_event_manager.cpp index abcc88e10d..bc3f611c13 100644 --- a/src/d/event/d_event_manager.cpp +++ b/src/d/event/d_event_manager.cpp @@ -616,7 +616,7 @@ SECTION_DEAD static char const* const stringBase_8037A0C5 = "Link"; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dEvent_manager_c::getMyStaffId(char const* param_0, fopAc_ac_c* param_1, int param_2) { +asm s32 dEvent_manager_c::getMyStaffId(char const* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/event/d_event_manager/getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci.s" } diff --git a/src/d/kankyo/d_kankyo.cpp b/src/d/kankyo/d_kankyo.cpp index fbdf59e1e1..e0f640af35 100644 --- a/src/d/kankyo/d_kankyo.cpp +++ b/src/d/kankyo/d_kankyo.cpp @@ -3204,7 +3204,7 @@ static asm void dKy_F_SP121Check(char const* param_0, int param_1, u8* param_2, #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm BOOL dKy_darkworld_stage_check(char const* param_0, int param_1) { +asm bool dKy_darkworld_stage_check(char const* param_0, int param_1) { nofralloc #include "asm/d/kankyo/d_kankyo/dKy_darkworld_stage_check__FPCci.s" } diff --git a/src/d/particle/d_particle.cpp b/src/d/particle/d_particle.cpp index a963fd0cb8..c677279916 100644 --- a/src/d/particle/d_particle.cpp +++ b/src/d/particle/d_particle.cpp @@ -605,8 +605,6 @@ extern "C" extern u8 g_dComIfG_gameInfo[122384]; extern "C" extern u8 g_env_light[4880]; extern "C" u8 sincosTable___5JMath[65536]; extern "C" extern u32 g_whiteColor; -extern "C" extern u32 __float_nan; -extern "C" extern u32 __float_epsilon; extern "C" u8 mFrameBufferTimg__13mDoGph_gInf_c[4]; extern "C" extern u8 JPTracePCB4[4]; extern "C" f32 mWaterY__11fopAcM_wt_c[1 + 1 /* padding */]; diff --git a/src/d/save/d_save.cpp b/src/d/save/d_save.cpp index 20ed84ed21..43a7a57c25 100644 --- a/src/d/save/d_save.cpp +++ b/src/d/save/d_save.cpp @@ -9,15 +9,7 @@ #include "d/meter/d_meter2_info.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Types: -// - -struct daObjCarry_c { - /* 80031CF8 */ void clrSaveFlag(); - /* 80031D04 */ void setSaveFlag(); -}; +#include "rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h" // // Forward References: @@ -1456,11 +1448,11 @@ bool dSv_danBit_c::init(s8 i_stage) { unk28[i] = 0xFFFF; } - clrSaveFlag__12daObjCarry_cFv(); + daObjCarry_c::clrSaveFlag(); return true; } else { - setSaveFlag__12daObjCarry_cFv(); + daObjCarry_c::setSaveFlag(); return false; } } |
