mirror of https://github.com/zeldaret/tp.git
Misc changes (#2156)
* daB_YO_Draw & onIceBreak * misc changes * remove asm / progress
This commit is contained in:
parent
fa325034fd
commit
522c051b1a
|
|
@ -21,8 +21,8 @@ Total | 54.954197% | 2209528 | 4020672
|
|||
Section | Percentage | Decompiled (bytes) | Total (bytes)
|
||||
---|---|---|---
|
||||
main.dol | 54.954197% | 2209528 | 4020672
|
||||
RELs | 38.671154% | 4447308 | 11500324
|
||||
Total | 42.889232% | 6656836 | 15520996
|
||||
RELs | 38.671676% | 4447368 | 11500324
|
||||
Total | 42.889619% | 6656896 | 15520996
|
||||
|
||||
## RELs
|
||||
|
||||
|
|
@ -50,7 +50,7 @@ d_a_b_ob | 31.572858% | 18556 | 58772
|
|||
d_a_b_oh | 35.387431% | 4640 | 13112
|
||||
d_a_b_oh2 | 100.000000% | 5532 | 5532
|
||||
d_a_b_tn | 24.850960% | 21176 | 85212
|
||||
d_a_b_yo | 25.613486% | 14404 | 56236
|
||||
d_a_b_yo | 25.720179% | 14464 | 56236
|
||||
d_a_b_yo_ice | 28.297953% | 5972 | 21104
|
||||
d_a_b_zant | 22.203940% | 19432 | 87516
|
||||
d_a_b_zant_magic | 42.453480% | 2464 | 5804
|
||||
|
|
@ -785,4 +785,4 @@ d_a_vrbox2 | 44.907111% | 2804 | 6244
|
|||
d_a_warp_bug | 100.000000% | 2024 | 2024
|
||||
d_a_ykgr | 44.400631% | 2252 | 5072
|
||||
f_pc_profile_lst | 100.000000% | 28156 | 28156
|
||||
Total | 38.671154% | 4447308 | 11500324
|
||||
Total | 38.671676% | 4447368 | 11500324
|
||||
|
|
|
|||
|
|
@ -1,9 +0,0 @@
|
|||
lbl_8062FBCC:
|
||||
/* 8062FBCC 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 8062FBD0 7C 08 02 A6 */ mflr r0
|
||||
/* 8062FBD4 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 8062FBD8 4B FF F9 45 */ bl draw__8daB_YO_cFv
|
||||
/* 8062FBDC 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 8062FBE0 7C 08 03 A6 */ mtlr r0
|
||||
/* 8062FBE4 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 8062FBE8 4E 80 00 20 */ blr
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
lbl_8062FBEC:
|
||||
/* 8062FBEC A0 C3 0F 6E */ lhz r6, 0xf6e(r3)
|
||||
/* 8062FBF0 38 A0 00 01 */ li r5, 1
|
||||
/* 8062FBF4 54 80 04 3E */ clrlwi r0, r4, 0x10
|
||||
/* 8062FBF8 7C A0 00 30 */ slw r0, r5, r0
|
||||
/* 8062FBFC 7C C0 03 78 */ or r0, r6, r0
|
||||
/* 8062FC00 B0 03 0F 6E */ sth r0, 0xf6e(r3)
|
||||
/* 8062FC04 4E 80 00 20 */ blr
|
||||
|
|
@ -3720,7 +3720,8 @@ public:
|
|||
/* 0x03062 */ s16 field_0x3062;
|
||||
/* 0x03064 */ s16 field_0x3064;
|
||||
/* 0x03066 */ s16 field_0x3066;
|
||||
/* 0x03068 */ u8 field_0x3068[4];
|
||||
/* 0x03068 */ u8 field_0x3068[2];
|
||||
/* 0x0306A */ s16 field_0x306a;
|
||||
/* 0x0306C */ s16 field_0x306c;
|
||||
/* 0x0306E */ s16 field_0x306e;
|
||||
/* 0x03070 */ s16 field_0x3070;
|
||||
|
|
|
|||
|
|
@ -224,7 +224,7 @@ public:
|
|||
/* 0xB4 */ u16 mWindowAccept;
|
||||
/* 0xB6 */ u16 mOilGaugeBackUp;
|
||||
/* 0xB8 */ u8 mDirectUseItem;
|
||||
/* 0xB9 */ u8 mWindowStatus;
|
||||
/* 0xB9 */ u8 mWindowStatus; // 0: normal play, 2: item wheel, 3: pause menu, 4: map, 10: pause menu submenus, 11: map in dungeon
|
||||
/* 0xBA */ u8 unk186;
|
||||
/* 0xBB */ u8 mMaxCount;
|
||||
/* 0xBC */ u8 mNowCount;
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
*/
|
||||
class daB_YO_c : public fopEn_enemy_c {
|
||||
public:
|
||||
/* 8062F51C */ void draw();
|
||||
/* 8062F51C */ s32 draw();
|
||||
/* 8062FBEC */ void onIceBreak(u16);
|
||||
/* 8062FC08 */ void setBck(int, u8, f32, f32);
|
||||
/* 8062FE0C */ void setActionMode(int, int);
|
||||
|
|
@ -71,11 +71,15 @@ private:
|
|||
/* 0xF54 */ f32 mModeRarius;
|
||||
/* 0xF58 */ u8 field_0xf58[0xF5C - 0xF58];
|
||||
/* 0xF5C */ s16 mRollAngle;
|
||||
/* 0xF5E */ u8 field_0xf5e[0xFA8 - 0xF5E];
|
||||
/* 0xF5E */ u8 field_0xf5e[0xF6E - 0xF5E];
|
||||
/* 0xF6E */ u16 field_0xf6e;
|
||||
/* 0xF70 */ u8 field_0xf70[0xFA8 - 0xF70];
|
||||
/* 0xFA8 */ u8 mModelNo;
|
||||
/* 0xFA9 */ u8 field_0xfa9[0xFAD - 0xFA9];
|
||||
/* 0xFAD */ u8 mFrizadAttack;
|
||||
/* 0xFAE */ u8 field_0xfae[0x1B88 - 0xFAE];
|
||||
};
|
||||
STATIC_ASSERT(sizeof(daB_YO_c) == 0x1B88);
|
||||
|
||||
struct daB_YO_HIO_c {
|
||||
/* 8062F46C */ daB_YO_HIO_c();
|
||||
|
|
|
|||
|
|
@ -2,5 +2,79 @@
|
|||
#define D_A_E_YMB_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class daE_YMB_c : public fopEn_enemy_c {
|
||||
public:
|
||||
/* 8081615C */ void ctrlJoint(J3DJoint*, J3DModel*);
|
||||
/* 808164F0 */ void JointCallBack(J3DJoint*, int);
|
||||
/* 80816554 */ void draw();
|
||||
/* 8081697C */ void setBck(int, u8, f32, f32);
|
||||
/* 80816A20 */ void checkBck(int);
|
||||
/* 80816A7C */ void setActionMode(int, int);
|
||||
/* 80816A88 */ void setLastDamage();
|
||||
/* 80816B7C */ void damage_check();
|
||||
/* 80816E78 */ void setCameraSwitch();
|
||||
/* 80817064 */ void checkWaterPos();
|
||||
/* 80817164 */ void checkGroundPos();
|
||||
/* 80817200 */ void setFlyWaitVoice();
|
||||
/* 8081727C */ void setDownWaitVoice();
|
||||
/* 808172F8 */ void setHitBoardSe();
|
||||
/* 808173B0 */ void setElecEffect1();
|
||||
/* 8081756C */ void setElecEffect2();
|
||||
/* 80817744 */ void setWaterEffect1();
|
||||
/* 8081785C */ void setWaterEffect2();
|
||||
/* 80817974 */ void setBoilEffect(int);
|
||||
/* 80817AEC */ void setDamageEffect(int);
|
||||
/* 80817BD8 */ void setDownHamonEffect();
|
||||
/* 80817CF0 */ void setFlyBlurEffect();
|
||||
/* 80817E7C */ void setRockDamageEffect();
|
||||
/* 80817FDC */ void setDeathEffect();
|
||||
/* 808181F4 */ void executeWait();
|
||||
/* 80818328 */ void setBitePos(int);
|
||||
/* 80818370 */ void setInclination();
|
||||
/* 80818518 */ void setBodyAngle();
|
||||
/* 80818930 */ void checkWolfLockIn();
|
||||
/* 80818AE8 */ void executeFly();
|
||||
/* 80819610 */ void executeFlyAttack();
|
||||
/* 80819FD0 */ void executeRunAway();
|
||||
/* 8081A718 */ void executeGuard();
|
||||
/* 8081A88C */ void executeSwim();
|
||||
/* 8081B78C */ void executeWaterJump();
|
||||
/* 8081BC10 */ void getNearDownPos();
|
||||
/* 8081BEE8 */ void executeDamage();
|
||||
/* 8081C4EC */ void setMidnaBindInit(cXyz*);
|
||||
/* 8081C7D0 */ void setMidnaBindLevel(int);
|
||||
/* 8081C908 */ void setWolfLockEffect();
|
||||
/* 8081CC14 */ void initDownToWater();
|
||||
/* 8081CD00 */ void calcDownToWater();
|
||||
/* 8081CE6C */ void executeDown();
|
||||
/* 8081D4D8 */ void setCreateDrop();
|
||||
/* 8081D594 */ void executeDeath();
|
||||
/* 8081DBD0 */ void demo_skip(int);
|
||||
/* 8081DDE0 */ void DemoSkipCallBack(void*, int);
|
||||
/* 8081DE14 */ void calcLakeDemoPlayerPos();
|
||||
/* 8081DE84 */ void executeLakeDemo();
|
||||
/* 8081E5B4 */ void executeStartDemo();
|
||||
/* 8081F140 */ void checkStartBattleDemo();
|
||||
/* 8081F2E0 */ void executeBattleDemo();
|
||||
/* 8081FAC8 */ void action();
|
||||
/* 8081FF88 */ void mtx_set();
|
||||
/* 808200A0 */ void getBellyBitePos(cXyz*);
|
||||
/* 80820128 */ void getDownLockPoint();
|
||||
/* 808203D8 */ void setAttentionPos();
|
||||
/* 80820668 */ void cc_set();
|
||||
/* 808207AC */ void execute();
|
||||
/* 80820A40 */ void _delete();
|
||||
/* 80820AF0 */ void CreateHeap();
|
||||
/* 80820DD0 */ void create();
|
||||
|
||||
int getMaxLockAttack() { return 6; }
|
||||
};
|
||||
|
||||
struct daE_YMB_HIO_c {
|
||||
/* 8081610C */ daE_YMB_HIO_c();
|
||||
/* 80821460 */ ~daE_YMB_HIO_c();
|
||||
};
|
||||
|
||||
#endif /* D_A_E_YMB_H */
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: d_a_b_yo
|
||||
//
|
||||
/**
|
||||
* @file d_a_b_yo.cpp
|
||||
* @brief Actor - Blizzeta (Boss)
|
||||
*
|
||||
*/
|
||||
|
||||
#include "rel/d/a/b/d_a_b_yo/d_a_b_yo.h"
|
||||
#include "rel/d/a/obj/d_a_obj_ystone/d_a_obj_ystone.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
|
|
@ -274,7 +276,6 @@ extern "C" extern void* __vt__12cCcD_CylAttr[25];
|
|||
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
|
||||
extern "C" extern void* __vt__9cCcD_Stts[8];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32];
|
||||
// extern "C" extern u8 g_env_light[4880];
|
||||
// extern "C" extern u8 j3dSys[284];
|
||||
|
|
@ -477,12 +478,26 @@ SECTION_DATA static u8 yo_material_draw[27 + 1 /* padding */] = {
|
|||
/* 80639B60-80639BAC 000100 004C+00 0/1 0/0 0/0 .data yo_demo_bck_idx */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u8 yo_demo_bck_idx[76] = {
|
||||
0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x11,
|
||||
0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15,
|
||||
0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17,
|
||||
0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0A,
|
||||
0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x09,
|
||||
static u32 yo_demo_bck_idx[19] = {
|
||||
0x00000007,
|
||||
0x00000008,
|
||||
0x0000000D,
|
||||
0x00000011,
|
||||
0x00000012,
|
||||
0x00000013,
|
||||
0x00000014,
|
||||
0x00000015,
|
||||
0x00000019,
|
||||
0x0000000F,
|
||||
0x00000010,
|
||||
0x00000017,
|
||||
0x00000016,
|
||||
0x0000000E,
|
||||
0x00000018,
|
||||
0x0000000A,
|
||||
0x0000000B,
|
||||
0x0000000C,
|
||||
0x00000009,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
|
|
@ -820,7 +835,7 @@ COMPILER_STRIP_GATE(0x80639834, &lit_4080);
|
|||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daB_YO_c::draw() {
|
||||
asm s32 daB_YO_c::draw() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/b/d_a_b_yo/d_a_b_yo/draw__8daB_YO_cFv.s"
|
||||
}
|
||||
|
|
@ -838,24 +853,14 @@ asm void __dt__4cXyzFv() {
|
|||
#pragma pop
|
||||
|
||||
/* 8062FBCC-8062FBEC 00084C 0020+00 1/0 0/0 0/0 .text daB_YO_Draw__FP8daB_YO_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daB_YO_Draw(daB_YO_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/b/d_a_b_yo/d_a_b_yo/daB_YO_Draw__FP8daB_YO_c.s"
|
||||
static s32 daB_YO_Draw(daB_YO_c* i_this) {
|
||||
return i_this->draw();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8062FBEC-8062FC08 00086C 001C+00 0/0 0/0 4/4 .text onIceBreak__8daB_YO_cFUs */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daB_YO_c::onIceBreak(u16 param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/b/d_a_b_yo/d_a_b_yo/onIceBreak__8daB_YO_cFUs.s"
|
||||
void daB_YO_c::onIceBreak(u16 param_0) {
|
||||
field_0xf6e |= (1 << param_0);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80639838-8063983C 000044 0004+00 0/4 0/0 0/0 .rodata @4149 */
|
||||
|
|
@ -872,6 +877,46 @@ SECTION_DEAD static char const* const stringBase_80639A34 = "B_YO";
|
|||
#pragma pop
|
||||
|
||||
/* 8062FC08-8062FE0C 000888 0204+00 4/4 0/0 0/0 .text setBck__8daB_YO_cFiUcff */
|
||||
#ifdef NONMATCHING
|
||||
void daB_YO_c::setBck(int i_bckIdx, u8 param_1, f32 param_2, f32 param_3) {
|
||||
J3DModel* l_model = (J3DModel*)dComIfG_getObjectRes("B_YO",yo_demo_bck_idx[i_bckIdx]);
|
||||
setAnm();
|
||||
(*(mDoExt_McaMorfSO **)(this + 0x5fc),pJVar3,(uint)param_2,param_3,(float)dVar8,0.0,-1.0
|
||||
);
|
||||
this_00 = (J3DModel *)mDoExt_McaMorfSO::getModel(*(mDoExt_McaMorfSO **)(this + 0x5fc));
|
||||
ctx = (J3DModelData *)J3DModel::getModelData(this_00);
|
||||
mDoExt_btkAnm::remove(*(mDoExt_btkAnm **)(this + 0x5e0),(char *)ctx);
|
||||
iVar5 = *(int *)(&d_a_b_yo::yo_demo_btk_idx + param_1 * 4);
|
||||
if (iVar5 == 0xff) {
|
||||
this[0x1005] = (daB_YO_c)0x0;
|
||||
}
|
||||
else {
|
||||
this[0x1005] = (daB_YO_c)0x1;
|
||||
pJVar4 = (J3DAnmTextureSRTKey *)f_op_actor::dComIfG_getObjectRes(&d_a_b_yo::@118744,iVar5);
|
||||
mDoExt_btkAnm::init(*(mDoExt_btkAnm **)(this + 0x5e0),ctx,pJVar4,1,(float)dVar8,(ushort)param_2,
|
||||
0);
|
||||
}
|
||||
mDoExt_btpAnm::remove(*(mDoExt_btpAnm **)(this + 0x5e4),(char *)ctx);
|
||||
f_op_actor::dComIfG_getObjectRes
|
||||
(&d_a_b_yo::@118744,*(undefined4 *)(&d_a_b_yo::yo_demo_btp_idx + param_1 * 4));
|
||||
mDoExt_btpAnm::init(*(mDoExt_btpAnm **)(this + 0x5e4),(EVP_PKEY_CTX *)ctx);
|
||||
if (param_1 == 0) {
|
||||
this[0x1004] = (daB_YO_c)0x1;
|
||||
uVar6 = 0x25;
|
||||
}
|
||||
else if (param_1 == 1) {
|
||||
uVar6 = 0x26;
|
||||
}
|
||||
else if (this[0x1004] == (daB_YO_c)0x0) {
|
||||
uVar6 = 0x25;
|
||||
}
|
||||
else {
|
||||
uVar6 = 0x24;
|
||||
}
|
||||
f_op_actor::dComIfG_getObjectRes(&d_a_b_yo::@118744,uVar6);
|
||||
::mDoExt_brkAnm::init(*(mDoExt_brkAnm **)(this + 0x5e8),(EVP_PKEY_CTX *)ctx);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -880,6 +925,7 @@ asm void daB_YO_c::setBck(int param_0, u8 param_1, f32 param_2, f32 param_3) {
|
|||
#include "asm/rel/d/a/b/d_a_b_yo/d_a_b_yo/setBck__8daB_YO_cFiUcff.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8062FE0C-8062FE18 000A8C 000C+00 11/11 0/0 0/0 .text setActionMode__8daB_YO_cFii */
|
||||
#pragma push
|
||||
|
|
|
|||
|
|
@ -6,386 +6,6 @@
|
|||
#include "rel/d/a/e/d_a_e_ymb/d_a_e_ymb.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct request_of_phase_process_class {};
|
||||
|
||||
struct csXyz {};
|
||||
|
||||
struct Vec {};
|
||||
|
||||
struct cXyz {
|
||||
/* 80266AE4 */ void operator+(Vec const&) const;
|
||||
/* 80266B34 */ void operator-(Vec const&) const;
|
||||
/* 80266B84 */ void operator*(f32) const;
|
||||
/* 808164B4 */ ~cXyz();
|
||||
};
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
/* 8000CD64 */ void transS(cXyz const&);
|
||||
/* 8000CD9C */ void transM(f32, f32, f32);
|
||||
/* 8000CE38 */ void scaleM(f32, f32, f32);
|
||||
/* 8000CF44 */ void ZXYrotM(csXyz const&);
|
||||
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct J3DModel {};
|
||||
|
||||
struct mDoExt_invisibleModel {
|
||||
/* 8000E53C */ void create(J3DModel*, u8);
|
||||
/* 8000E7C0 */ void entryDL(cXyz*);
|
||||
};
|
||||
|
||||
struct J3DMaterialTable {};
|
||||
|
||||
struct J3DAnmTevRegKey {};
|
||||
|
||||
struct mDoExt_brkAnm {
|
||||
/* 8000D70C */ void init(J3DMaterialTable*, J3DAnmTevRegKey*, int, int, f32, s16, s16);
|
||||
/* 8000D7A8 */ void entry(J3DMaterialTable*, f32);
|
||||
};
|
||||
|
||||
struct mDoExt_baseAnm {
|
||||
/* 8000D428 */ void play();
|
||||
};
|
||||
|
||||
struct mDoExt_McaMorfCallBack2_c {};
|
||||
|
||||
struct mDoExt_McaMorfCallBack1_c {};
|
||||
|
||||
struct J3DAnmTransform {};
|
||||
|
||||
struct J3DModelData {};
|
||||
|
||||
struct Z2Creature {};
|
||||
|
||||
struct mDoExt_McaMorfSO {
|
||||
/* 800107D0 */ mDoExt_McaMorfSO(J3DModelData*, mDoExt_McaMorfCallBack1_c*,
|
||||
mDoExt_McaMorfCallBack2_c*, J3DAnmTransform*, int, f32, int,
|
||||
int, Z2Creature*, u32, u32);
|
||||
/* 80010E70 */ void setAnm(J3DAnmTransform*, int, f32, f32, f32, f32);
|
||||
/* 800110B0 */ void play(u32, s8);
|
||||
/* 800111C0 */ void entryDL();
|
||||
/* 800111EC */ void modelCalc();
|
||||
};
|
||||
|
||||
struct fopAc_ac_c {
|
||||
/* 80018B64 */ fopAc_ac_c();
|
||||
};
|
||||
|
||||
struct daPy_py_c {
|
||||
/* 8015F424 */ void checkNowWolfEyeUp();
|
||||
|
||||
static u8 m_midnaActor[4];
|
||||
};
|
||||
|
||||
struct daObjDrop_c {
|
||||
/* 8082187C */ void setPos(cXyz);
|
||||
};
|
||||
|
||||
struct J3DJoint {};
|
||||
|
||||
struct daE_YMB_c {
|
||||
/* 8081615C */ void ctrlJoint(J3DJoint*, J3DModel*);
|
||||
/* 808164F0 */ void JointCallBack(J3DJoint*, int);
|
||||
/* 80816554 */ void draw();
|
||||
/* 8081697C */ void setBck(int, u8, f32, f32);
|
||||
/* 80816A20 */ void checkBck(int);
|
||||
/* 80816A7C */ void setActionMode(int, int);
|
||||
/* 80816A88 */ void setLastDamage();
|
||||
/* 80816B7C */ void damage_check();
|
||||
/* 80816E78 */ void setCameraSwitch();
|
||||
/* 80817064 */ void checkWaterPos();
|
||||
/* 80817164 */ void checkGroundPos();
|
||||
/* 80817200 */ void setFlyWaitVoice();
|
||||
/* 8081727C */ void setDownWaitVoice();
|
||||
/* 808172F8 */ void setHitBoardSe();
|
||||
/* 808173B0 */ void setElecEffect1();
|
||||
/* 8081756C */ void setElecEffect2();
|
||||
/* 80817744 */ void setWaterEffect1();
|
||||
/* 8081785C */ void setWaterEffect2();
|
||||
/* 80817974 */ void setBoilEffect(int);
|
||||
/* 80817AEC */ void setDamageEffect(int);
|
||||
/* 80817BD8 */ void setDownHamonEffect();
|
||||
/* 80817CF0 */ void setFlyBlurEffect();
|
||||
/* 80817E7C */ void setRockDamageEffect();
|
||||
/* 80817FDC */ void setDeathEffect();
|
||||
/* 808181F4 */ void executeWait();
|
||||
/* 80818328 */ void setBitePos(int);
|
||||
/* 80818370 */ void setInclination();
|
||||
/* 80818518 */ void setBodyAngle();
|
||||
/* 80818930 */ void checkWolfLockIn();
|
||||
/* 80818AE8 */ void executeFly();
|
||||
/* 80819610 */ void executeFlyAttack();
|
||||
/* 80819FD0 */ void executeRunAway();
|
||||
/* 8081A718 */ void executeGuard();
|
||||
/* 8081A88C */ void executeSwim();
|
||||
/* 8081B78C */ void executeWaterJump();
|
||||
/* 8081BC10 */ void getNearDownPos();
|
||||
/* 8081BEE8 */ void executeDamage();
|
||||
/* 8081C4EC */ void setMidnaBindInit(cXyz*);
|
||||
/* 8081C7D0 */ void setMidnaBindLevel(int);
|
||||
/* 8081C908 */ void setWolfLockEffect();
|
||||
/* 8081CC14 */ void initDownToWater();
|
||||
/* 8081CD00 */ void calcDownToWater();
|
||||
/* 8081CE6C */ void executeDown();
|
||||
/* 8081D4D8 */ void setCreateDrop();
|
||||
/* 8081D594 */ void executeDeath();
|
||||
/* 8081DBD0 */ void demo_skip(int);
|
||||
/* 8081DDE0 */ void DemoSkipCallBack(void*, int);
|
||||
/* 8081DE14 */ void calcLakeDemoPlayerPos();
|
||||
/* 8081DE84 */ void executeLakeDemo();
|
||||
/* 8081E5B4 */ void executeStartDemo();
|
||||
/* 8081F140 */ void checkStartBattleDemo();
|
||||
/* 8081F2E0 */ void executeBattleDemo();
|
||||
/* 8081FAC8 */ void action();
|
||||
/* 8081FF88 */ void mtx_set();
|
||||
/* 808200A0 */ void getBellyBitePos(cXyz*);
|
||||
/* 80820128 */ void getDownLockPoint();
|
||||
/* 808203D8 */ void setAttentionPos();
|
||||
/* 80820668 */ void cc_set();
|
||||
/* 808207AC */ void execute();
|
||||
/* 80820A40 */ void _delete();
|
||||
/* 80820AF0 */ void CreateHeap();
|
||||
/* 80820DD0 */ void create();
|
||||
};
|
||||
|
||||
struct daE_YMB_HIO_c {
|
||||
/* 8081610C */ daE_YMB_HIO_c();
|
||||
/* 80821460 */ ~daE_YMB_HIO_c();
|
||||
};
|
||||
|
||||
struct dVibration_c {
|
||||
/* 8006FA24 */ void StartShock(int, int, cXyz);
|
||||
/* 8006FB10 */ void StartQuake(int, int, cXyz);
|
||||
/* 8006FC0C */ void StartQuake(u8 const*, int, int, cXyz);
|
||||
/* 8006FD94 */ void StopQuake(int);
|
||||
};
|
||||
|
||||
struct dSv_memBit_c {
|
||||
/* 80034810 */ void onSwitch(int);
|
||||
/* 80034860 */ void isSwitch(int) const;
|
||||
};
|
||||
|
||||
struct dSv_info_c {
|
||||
/* 80035200 */ void onSwitch(int, int);
|
||||
/* 800352B0 */ void offSwitch(int, int);
|
||||
/* 80035360 */ void isSwitch(int, int) const;
|
||||
};
|
||||
|
||||
struct dSv_event_flag_c {
|
||||
static u8 saveBitLabels[1644 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct dSv_event_c {
|
||||
/* 8003498C */ void onEventBit(u16);
|
||||
/* 800349BC */ void isEventBit(u16) const;
|
||||
};
|
||||
|
||||
struct dKy_tevstr_c {};
|
||||
|
||||
struct dScnKy_env_light_c {
|
||||
/* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*);
|
||||
/* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*);
|
||||
};
|
||||
|
||||
struct dRes_info_c {};
|
||||
|
||||
struct dRes_control_c {
|
||||
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
|
||||
};
|
||||
|
||||
struct dPa_levelEcallBack {};
|
||||
|
||||
struct _GXColor {};
|
||||
|
||||
struct dPa_control_c {
|
||||
struct level_c {
|
||||
/* 8004B918 */ void getEmitter(u32);
|
||||
};
|
||||
|
||||
/* 8004C218 */ void setHitMark(u16, fopAc_ac_c*, cXyz const*, csXyz const*, cXyz const*, u32);
|
||||
/* 8004D4CC */ void set(u32, u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*,
|
||||
cXyz const*, u8, dPa_levelEcallBack*, s8, _GXColor const*,
|
||||
_GXColor const*, cXyz const*, f32);
|
||||
/* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*,
|
||||
u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*,
|
||||
cXyz const*, f32);
|
||||
};
|
||||
|
||||
struct dEvt_control_c {
|
||||
/* 80042468 */ void reset();
|
||||
/* 80042914 */ void setSkipProc(void*, int (*)(void*, int), int);
|
||||
/* 8004368C */ void setPtT(void*);
|
||||
};
|
||||
|
||||
struct dDlst_shadowControl_c {
|
||||
static u8 mSimpleTexObj[32];
|
||||
};
|
||||
|
||||
struct dCcU_AtInfo {};
|
||||
|
||||
struct dCcD_Stts {
|
||||
/* 80083860 */ void Init(int, int, fopAc_ac_c*);
|
||||
};
|
||||
|
||||
struct dCcD_SrcSph {};
|
||||
|
||||
struct dCcD_Sph {
|
||||
/* 80084A34 */ void Set(dCcD_SrcSph const&);
|
||||
/* 8082124C */ ~dCcD_Sph();
|
||||
/* 80821318 */ dCcD_Sph();
|
||||
};
|
||||
|
||||
struct dCcD_GStts {
|
||||
/* 80083760 */ dCcD_GStts();
|
||||
/* 8082139C */ ~dCcD_GStts();
|
||||
};
|
||||
|
||||
struct dCcD_GObjInf {
|
||||
/* 80083A28 */ dCcD_GObjInf();
|
||||
/* 800840E4 */ ~dCcD_GObjInf();
|
||||
/* 800842C0 */ void ChkAtHit();
|
||||
/* 80084358 */ void GetAtHitObj();
|
||||
/* 80084460 */ void ChkTgHit();
|
||||
/* 800844B8 */ void ResetTgHit();
|
||||
/* 800844F8 */ void GetTgHitObj();
|
||||
};
|
||||
|
||||
struct dCamera_c {
|
||||
/* 801614AC */ void Start();
|
||||
/* 801614D0 */ void Stop();
|
||||
/* 8016300C */ void SetTrimSize(s32);
|
||||
/* 80180AE0 */ void Set(cXyz, cXyz, f32, s16);
|
||||
/* 80180C18 */ void Reset(cXyz, cXyz);
|
||||
/* 80181E64 */ void Eye();
|
||||
/* 80181E98 */ void Center();
|
||||
};
|
||||
|
||||
struct dBgW_Base {};
|
||||
|
||||
struct dBgW {
|
||||
/* 8007B970 */ dBgW();
|
||||
/* 8007B9C0 */ void Move();
|
||||
};
|
||||
|
||||
struct dBgS_ObjGndChk_Spl {
|
||||
/* 800777B0 */ dBgS_ObjGndChk_Spl();
|
||||
/* 80077848 */ ~dBgS_ObjGndChk_Spl();
|
||||
};
|
||||
|
||||
struct dBgS_GndChk {
|
||||
/* 8007757C */ dBgS_GndChk();
|
||||
};
|
||||
|
||||
struct dBgS {
|
||||
/* 80074A08 */ void Regist(dBgW_Base*, fopAc_ac_c*);
|
||||
};
|
||||
|
||||
struct dAttention_c {
|
||||
/* 8007353C */ void LockonTarget(s32);
|
||||
/* 800737E4 */ void LockonTruth();
|
||||
};
|
||||
|
||||
struct cM3dGSph {
|
||||
/* 8026F648 */ void SetC(cXyz const&);
|
||||
/* 8026F708 */ void SetR(f32);
|
||||
/* 808211BC */ ~cM3dGSph();
|
||||
};
|
||||
|
||||
struct cM3dGAab {
|
||||
/* 80821204 */ ~cM3dGAab();
|
||||
};
|
||||
|
||||
struct cCcD_Obj {
|
||||
/* 80263A48 */ void GetAc();
|
||||
};
|
||||
|
||||
struct cCcS {
|
||||
/* 80264BA8 */ void Set(cCcD_Obj*);
|
||||
};
|
||||
|
||||
struct cCcD_GStts {
|
||||
/* 80821418 */ ~cCcD_GStts();
|
||||
};
|
||||
|
||||
struct cBgW_BgId {
|
||||
/* 802681D4 */ void ChkUsed() const;
|
||||
};
|
||||
|
||||
struct cBgD_t {};
|
||||
|
||||
struct cBgW {
|
||||
/* 80079F38 */ void Set(cBgD_t*, u32, f32 (*)[3][4]);
|
||||
};
|
||||
|
||||
struct cBgS_PolyInfo {};
|
||||
|
||||
struct cBgS_GndChk {
|
||||
/* 80267D28 */ void SetPos(cXyz const*);
|
||||
/* 80267D0C */ void SetPos(Vec const*);
|
||||
};
|
||||
|
||||
struct cBgS {
|
||||
/* 80074250 */ void Release(dBgW_Base*);
|
||||
/* 800744A0 */ void GroundCross(cBgS_GndChk*);
|
||||
};
|
||||
|
||||
struct _GXTexObj {};
|
||||
|
||||
struct Z2SoundObjMgr {
|
||||
/* 802BF980 */ void setForceBattleArea(bool, u16, u16, u16);
|
||||
};
|
||||
|
||||
struct Z2SeqMgr {
|
||||
/* 802AF49C */ void subBgmStart(u32);
|
||||
/* 802AF884 */ void subBgmStop();
|
||||
/* 802B1DF4 */ void changeSubBgmStatus(s32);
|
||||
/* 802B4164 */ void setBattleBgmOff(bool);
|
||||
};
|
||||
|
||||
struct JAISoundID {};
|
||||
|
||||
struct Z2SeMgr {
|
||||
/* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
|
||||
/* 802AC50C */ void seStartLevel(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
|
||||
};
|
||||
|
||||
struct Z2CreatureEnemy {
|
||||
/* 802C0F64 */ Z2CreatureEnemy();
|
||||
/* 802C1094 */ void init(Vec*, Vec*, u8, u8);
|
||||
/* 802C1B7C */ void setLinkSearch(bool);
|
||||
/* 802C1B90 */ void setEnemyName(char const*);
|
||||
};
|
||||
|
||||
struct Z2AudioMgr {
|
||||
static u8 mAudioMgrPtr[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct JMath {
|
||||
static u8 sincosTable_[65536];
|
||||
};
|
||||
|
||||
struct JGeometry {
|
||||
template <typename A1>
|
||||
struct TVec3 {};
|
||||
/* TVec3<f32> */
|
||||
struct TVec3__template0 {};
|
||||
};
|
||||
|
||||
struct J3DSys {
|
||||
static u8 mCurrentMtx[48];
|
||||
};
|
||||
|
||||
struct J3DFrameCtrl {
|
||||
/* 803283FC */ void init(s16);
|
||||
/* 8032842C */ void checkPass(f32);
|
||||
/* 80820D68 */ ~J3DFrameCtrl();
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
|
@ -607,11 +227,6 @@ extern "C" void* __nw__FUl();
|
|||
extern "C" void __dl__FPv();
|
||||
extern "C" void init__12J3DFrameCtrlFs();
|
||||
extern "C" void checkPass__12J3DFrameCtrlFf();
|
||||
extern "C" void PSMTXCopy();
|
||||
extern "C" void PSMTXTrans();
|
||||
extern "C" void PSVECAdd();
|
||||
extern "C" void PSVECSquareMag();
|
||||
extern "C" void PSVECSquareDistance();
|
||||
extern "C" void __construct_array();
|
||||
extern "C" void _savegpr_22();
|
||||
extern "C" void _savegpr_23();
|
||||
|
|
@ -629,9 +244,6 @@ extern "C" void _restgpr_26();
|
|||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" void abs();
|
||||
extern "C" extern void* g_fopAc_Method[8];
|
||||
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
|
||||
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
|
||||
extern "C" extern void* __vt__8dCcD_Sph[36];
|
||||
extern "C" extern void* __vt__9dCcD_Stts[11];
|
||||
|
|
@ -641,12 +253,9 @@ extern "C" extern void* __vt__9cCcD_Stts[8];
|
|||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32];
|
||||
extern "C" extern u8 g_env_light[4880];
|
||||
extern "C" extern u8 j3dSys[284];
|
||||
extern "C" u8 mCurrentMtx__6J3DSys[48];
|
||||
extern "C" extern u8 j3dZModeTable[96];
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
extern "C" extern u32 __float_nan;
|
||||
extern "C" u8 m_midnaActor__9daPy_py_c[4];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
extern "C" void __register_global_object();
|
||||
|
|
@ -1096,7 +705,8 @@ asm void daE_YMB_c::ctrlJoint(J3DJoint* param_0, J3DModel* param_1) {
|
|||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cXyz::~cXyz() {
|
||||
// asm cXyz::~cXyz() {
|
||||
extern "C" asm void __dt__4cXyzFv(void) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/e/d_a_e_ymb/d_a_e_ymb/__dt__4cXyzFv.s"
|
||||
}
|
||||
|
|
@ -2803,7 +2413,8 @@ asm void daE_YMB_c::CreateHeap() {
|
|||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DFrameCtrl::~J3DFrameCtrl() {
|
||||
// asm J3DFrameCtrl::~J3DFrameCtrl() {
|
||||
extern "C" asm void __dt__12J3DFrameCtrlFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/e/d_a_e_ymb/d_a_e_ymb/__dt__12J3DFrameCtrlFv.s"
|
||||
}
|
||||
|
|
@ -2847,7 +2458,8 @@ asm void daE_YMB_c::create() {
|
|||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cM3dGSph::~cM3dGSph() {
|
||||
// asm cM3dGSph::~cM3dGSph() {
|
||||
extern "C" asm void __dt__8cM3dGSphFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/e/d_a_e_ymb/d_a_e_ymb/__dt__8cM3dGSphFv.s"
|
||||
}
|
||||
|
|
@ -2857,7 +2469,8 @@ asm cM3dGSph::~cM3dGSph() {
|
|||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cM3dGAab::~cM3dGAab() {
|
||||
// asm cM3dGAab::~cM3dGAab() {
|
||||
extern "C" asm void __dt__8cM3dGAabFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/e/d_a_e_ymb/d_a_e_ymb/__dt__8cM3dGAabFv.s"
|
||||
}
|
||||
|
|
@ -2867,7 +2480,8 @@ asm cM3dGAab::~cM3dGAab() {
|
|||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dCcD_Sph::~dCcD_Sph() {
|
||||
// asm dCcD_Sph::~dCcD_Sph() {
|
||||
extern "C" asm void __dt__8dCcD_SphFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/e/d_a_e_ymb/d_a_e_ymb/__dt__8dCcD_SphFv.s"
|
||||
}
|
||||
|
|
@ -2877,7 +2491,8 @@ asm dCcD_Sph::~dCcD_Sph() {
|
|||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dCcD_Sph::dCcD_Sph() {
|
||||
// asm dCcD_Sph::dCcD_Sph() {
|
||||
extern "C" asm void __ct__8dCcD_SphFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/e/d_a_e_ymb/d_a_e_ymb/__ct__8dCcD_SphFv.s"
|
||||
}
|
||||
|
|
@ -2887,7 +2502,8 @@ asm dCcD_Sph::dCcD_Sph() {
|
|||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dCcD_GStts::~dCcD_GStts() {
|
||||
// asm dCcD_GStts::~dCcD_GStts() {
|
||||
extern "C" asm void __dt__10dCcD_GSttsFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/e/d_a_e_ymb/d_a_e_ymb/__dt__10dCcD_GSttsFv.s"
|
||||
}
|
||||
|
|
@ -2907,7 +2523,8 @@ static asm void daE_YMB_Create(daE_YMB_c* param_0) {
|
|||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cCcD_GStts::~cCcD_GStts() {
|
||||
// asm cCcD_GStts::~cCcD_GStts() {
|
||||
extern "C" asm void __dt__10cCcD_GSttsFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/e/d_a_e_ymb/d_a_e_ymb/__dt__10cCcD_GSttsFv.s"
|
||||
}
|
||||
|
|
@ -3167,7 +2784,8 @@ REGISTER_CTORS(0x808214A8, __sinit_d_a_e_ymb_cpp);
|
|||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjDrop_c::setPos(cXyz param_0) {
|
||||
// asm void daObjDrop_c::setPos(cXyz param_0) {
|
||||
extern "C" asm void setPos__11daObjDrop_cF4cXyz() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/e/d_a_e_ymb/d_a_e_ymb/setPos__11daObjDrop_cF4cXyz.s"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17522,7 +17522,7 @@ void daAlink_c::posMove() {
|
|||
speed.y = daAlinkHIO_swim_c0::m.mMaxFloatUpSpeed;
|
||||
}
|
||||
}
|
||||
} else if (!checkModeFlg(0x400)) {
|
||||
} else if (!checkModeFlg(MODE_RIDE)) {
|
||||
if (checkHeavyStateOn(1, 1) && mProcID != PROC_SPINNER_READY &&
|
||||
!checkNoResetFlg0(FLG0_UNDERWATER))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -762,15 +762,15 @@ void daAlink_c::setCutJumpSpeed(int i_airAt) {
|
|||
targetPos.y = mTargetedActor->eyePos.y;
|
||||
}
|
||||
|
||||
f32 dvar12 = speed.y + gravity;
|
||||
f32 dvar10 = 1.0f / gravity;
|
||||
f32 fvar1 = targetPos.y - (current.pos.y - (dvar10 * (dvar12 * dvar12) * 0.5f));
|
||||
f32 speed_y_delta = speed.y + gravity; // 23.6
|
||||
f32 inverse_gravity = 1.0f / gravity; // -0.29
|
||||
f32 fvar1 = targetPos.y - (current.pos.y - (inverse_gravity * (speed_y_delta * speed_y_delta) * 0.5f));
|
||||
|
||||
if (fvar1 > 0.0f) {
|
||||
fvar1 = 0.0f;
|
||||
}
|
||||
f32 sqrt = JMAFastSqrt(fvar1 * 2.0f * dvar10);
|
||||
f32 speedDiv = sqrt - (dvar12 * dvar10);
|
||||
f32 sqrt = JMAFastSqrt(fvar1 * 2.0f * inverse_gravity);
|
||||
f32 speedDiv = sqrt - (speed_y_delta * inverse_gravity);
|
||||
f32 squareDist = current.pos.absXZ(targetPos);
|
||||
|
||||
if (squareDist > 500.0f) {
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
#include "rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.h"
|
||||
#include "rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl.h"
|
||||
#include "rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump.h"
|
||||
#include "rel/d/a/e/d_a_e_ymb/d_a_e_ymb.h"
|
||||
|
||||
/* 80126740-80126928 121080 01E8+00 2/2 0/0 0/0 .text changeCommon__9daAlink_cFv */
|
||||
// matches with literals
|
||||
|
|
@ -6715,6 +6716,69 @@ int daAlink_c::procWolfDownAtMissLand() {
|
|||
}
|
||||
|
||||
/* 8013BE24-8013C3E4 136764 05C0+00 2/2 0/0 0/0 .text procWolfLockAttackInit__9daAlink_cFi */
|
||||
#ifdef NONMATCHING
|
||||
// wrong float regist + float literals
|
||||
int daAlink_c::procWolfLockAttackInit(int param_0) {
|
||||
commonProcInit(PROC_WOLF_LOCK_ATTACK);
|
||||
setSingleAnimeWolfParam(WANM_ATTACK_A_START, &daAlinkHIO_wlAtLock_c0::m.field_0x0);
|
||||
|
||||
if (fopAcM_GetName(mWolfLockAcKeep[0].getActor()) == PROC_E_YMB) {
|
||||
mProcVar3.field_0x300e.z = 1;
|
||||
|
||||
if (param_0 == 0) {
|
||||
mProcVar1.field_0x300a = static_cast<daE_YMB_c*>(mWolfLockAcKeep[0].getActor())->getMaxLockAttack();
|
||||
}
|
||||
|
||||
mProcVar1.field_0x300a--;
|
||||
field_0x37c8 = mWolfLockAcKeep[0].getActor()->eyePos;
|
||||
|
||||
if (mProcVar1.field_0x300a == 0) {
|
||||
mWolfLockAcKeep[0].clearData();
|
||||
}
|
||||
} else {
|
||||
field_0x37c8 = mWolfLockAcKeep[0].getActor()->eyePos;
|
||||
mWolfLockAcKeep[0].clearData();
|
||||
mProcVar3.field_0x300e.z = 0;
|
||||
}
|
||||
|
||||
shape_angle.y = cLib_targetAngleY(¤t.pos,&field_0x37c8);
|
||||
current.angle.y = shape_angle.y;
|
||||
cXyz l_eyePosDelta = field_0x37c8 - eyePos;
|
||||
|
||||
if (l_eyePosDelta.y < 10.0f) {
|
||||
l_eyePosDelta.y = 10.0f;
|
||||
} else {
|
||||
if (l_eyePosDelta.y > daAlinkHIO_wlAtLock_c0::m.field_0x4C)
|
||||
l_eyePosDelta.y = daAlinkHIO_wlAtLock_c0::m.field_0x4C;
|
||||
}
|
||||
|
||||
f32 tmp_f = l_eyePosDelta.absXZ();
|
||||
|
||||
if (tmp_f > daAlinkHIO_wlAtLock_c0::m.field_0x50) {
|
||||
f32 tmp = daAlinkHIO_wlAtLock_c0::m.field_0x50 / tmp_f;
|
||||
l_eyePosDelta.x *= tmp;
|
||||
l_eyePosDelta.z *= tmp;
|
||||
}
|
||||
|
||||
f32 abs = l_eyePosDelta.abs() / daAlinkHIO_wlAtLock_c0::m.field_0x28.mCheckFrame;
|
||||
|
||||
if (abs < 1.0f)
|
||||
abs = 1.0f;
|
||||
|
||||
f32 check_frame = daAlinkHIO_wlAtLock_c0::m.field_0x28.mCheckFrame / abs;
|
||||
mNormalSpeed = check_frame * l_eyePosDelta.absXZ();
|
||||
setSpecialGravity((l_eyePosDelta.y * -2.0f) / (abs * abs), maxFallSpeed, 0);
|
||||
speed.y = -gravity * abs;
|
||||
mProcVar0.field_0x3008 = abs;
|
||||
setCylAtParam(0x8000000,dCcG_At_Spl_UNK_0,1,4,6,daAlinkHIO_wlAtLock_c0::m.field_0x40,daAlinkHIO_wlAtLock_c0::m.field_0x44);
|
||||
field_0x3438 = daAlinkHIO_wlAtLock_c0::m.field_0x3C;
|
||||
setCutType(CUT_TYPE_WOLF_LOCK);
|
||||
voiceStart(Z2SE_WL_V_ATTACK_THRUST);
|
||||
dComIfGp_setPlayerStatus1(0,0x1000000);
|
||||
dComIfGp_particle_set(0x247,¤t.pos,¤t.angle,0);
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -6723,12 +6787,15 @@ asm int daAlink_c::procWolfLockAttackInit(int param_0) {
|
|||
#include "asm/d/a/d_a_alink/procWolfLockAttackInit__9daAlink_cFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8013C3E4-8013C630 136D24 024C+00 1/0 0/0 0/0 .text procWolfLockAttack__9daAlink_cFv */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daAlink_c::procWolfLockAttack() {
|
||||
BOOL var_r29 = false;
|
||||
|
||||
// check if any field_0x850 clylinders collided with at shields
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (checkAtShieldHit(field_0x850[i])) {
|
||||
var_r29 = true;
|
||||
|
|
@ -6736,6 +6803,8 @@ int daAlink_c::procWolfLockAttack() {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
// early return checks for colliding with at shields or if the actor hit is not freezard
|
||||
if (var_r29 || (checkAtShieldHit(mAtCyl) && (mAtCyl.GetAtHitAc() == NULL ||
|
||||
fopAcM_GetName(mAtCyl.GetAtHitAc()) != PROC_E_FB)))
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue