Skip to content

Commit

Permalink
d_a_alink_hang done (#2172)
Browse files Browse the repository at this point in the history
  • Loading branch information
TakaRikka committed Jul 6, 2024
1 parent 57a1d21 commit 8599b13
Show file tree
Hide file tree
Showing 9 changed files with 2,301 additions and 75 deletions.
21 changes: 11 additions & 10 deletions include/d/a/d_a_alink.h
Original file line number Diff line number Diff line change
Expand Up @@ -2256,17 +2256,17 @@ class daAlink_c : public daPy_py_c {
/* 800FC240 */ int procHangReady();
/* 800FC2F4 */ int procHangLeverDownInit();
/* 800FC390 */ int procHangLeverDown();
/* 800FC5A4 */ void setDragonHangPos();
/* 800FC5A4 */ int setDragonHangPos();
/* 800FC6B4 */ int setOctaIealHangPos();
/* 800FC748 */ void setBossBodyHangPos();
/* 800FC748 */ int setBossBodyHangPos();
/* 800FC77C */ int procBossBodyHangInit(fopAc_ac_c*);
/* 800FC870 */ int procBossBodyHang();
/* 800FCF58 */ int getLadderUnitCount() const;
/* 800FCF84 */ int setLadderInit();
/* 800FD048 */ void setLadderPosInit();
/* 800FD1F0 */ void setLadderPos(int);
/* 800FD288 */ f32 getLadderMoveAnmSpeed();
/* 800FD2AC */ void changeLadderMoveProc(int);
/* 800FD2AC */ int changeLadderMoveProc(int);
/* 800FD4A8 */ int setMoveBGLadderCorrect();
/* 800FD5E4 */ int checkLadderFall();
/* 800FD648 */ int procLadderUpStartInit();
Expand All @@ -2286,14 +2286,14 @@ class daAlink_c : public daPy_py_c {
/* 800FE174 */ void setClimbShapeOffset();
/* 800FE3C4 */ int getClimbDirectionFromAngle();
/* 800FE438 */ void changeClimbMoveProc(int);
/* 800FE5A0 */ void checkClimbMoveUpDownProc(int);
/* 800FE6E8 */ void checkClimbMoveSideProc(int);
/* 800FE868 */ void setMoveBGClimbCorrect();
/* 800FE5A0 */ BOOL checkClimbMoveUpDownProc(int);
/* 800FE6E8 */ BOOL checkClimbMoveSideProc(int);
/* 800FE868 */ int setMoveBGClimbCorrect();
/* 800FEB90 */ int checkBgCorrectClimbMove(cXyz*, cXyz*);
/* 800FEC70 */ void checkClimbRoof(f32);
/* 800FEC70 */ BOOL checkClimbRoof(f32);
/* 800FED50 */ int checkClimbGround(cXyz*, f32);
/* 800FEEC0 */ void checkBgClimbMove(int);
/* 800FF28C */ void setClimbStartNotGround();
/* 800FEEC0 */ BOOL checkBgClimbMove(int);
/* 800FF28C */ int setClimbStartNotGround();
/* 800FF450 */ int procClimbUpStartInit(int);
/* 800FF704 */ int procClimbUpStart();
/* 800FF818 */ int procClimbDownStartInit(s16);
Expand All @@ -2311,7 +2311,7 @@ class daAlink_c : public daPy_py_c {
/* 80100614 */ void setRoofHangHandOnSE(cBgS_PolyInfo*);
/* 80100668 */ int checkRoofHangMovePos();
/* 80100770 */ int commonRoofHangProc();
/* 801008EC */ void checkNextActionRoofHang();
/* 801008EC */ int checkNextActionRoofHang();
/* 80100A10 */ int procRoofHangStartInit(cBgS_PolyInfo const&, cXyz const&, int);
/* 80100AE4 */ int procRoofHangStart();
/* 80100BB4 */ int procRoofHangWaitInit(int);
Expand Down Expand Up @@ -3230,6 +3230,7 @@ class daAlink_c : public daPy_py_c {
static bool checkMidnaChargeAttack() { return dComIfGs_isEventBit(0x501); }
u16 getMidnaMsgNum() const { return mMidnaMsgNum; }
u32 getStartEvent() { return fopAcM_GetParam(this) >> 0x18; }
BOOL checkClimbFall() { return checkLadderFall(); }

const daAlink_AnmData* getAnmData(daAlink_ANM anmID) const { return &m_anmDataTable[anmID]; }
const daAlink_FaceTexData* getFaceTexData(daAlink_FTANM i_anmID) const { return &m_faceTexDataTable[i_anmID]; }
Expand Down
1 change: 1 addition & 0 deletions include/d/a/d_a_player.h
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,7 @@ class daPy_py_c : public fopAc_ac_c {
RFLG0_UNK_8000000 = 0x8000000,
RFLG0_UNK_4000000 = 0x4000000,
RFLG0_GRAB_PUT_START = 0x400000,
RFLG0_UNK_40000 = 0x40000,
RFLG0_UNK_20000 = 0x20000,
RFLG0_UNK_10000 = 0x10000,
RFLG0_UNK_8000 = 0x8000,
Expand Down
2 changes: 2 additions & 0 deletions include/rel/d/a/b/d_a_b_dr/d_a_b_dr.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,8 @@ class daB_DR_c : public fopEn_enemy_c {
/* 805C5974 */ void create();
/* 805C62B0 */ daB_DR_c();

MtxP getMtx() { return mpModelMorf->getModel()->getAnmMtx(15); }

void onTarget() { mTarget = true; }
bool isBack() { return mPrm0; }

Expand Down
44 changes: 42 additions & 2 deletions include/rel/d/a/b/d_a_b_dre/d_a_b_dre.h
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
#ifndef D_A_B_DRE_H
#define D_A_B_DRE_H

#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "d/bg/d_bg_s_acch.h"
#include "Z2AudioLib/Z2Creature.h"

/**
* @ingroup actors-enemies
Expand Down Expand Up @@ -37,8 +38,47 @@ class daB_DRE_c : public fopEn_enemy_c {
/* 805CA6C0 */ void setBaseMtx();
/* 805CA944 */ void create();

MtxP getMtx() { return field_0x6ec->getModel()->getAnmMtx(15); }

private:
/* 0x5ac */ u8 field_0x5ac[0x930 - 0x5ac];
/* 0x5AC */ u8 field_0x5AC[0x5B0 - 0x5AC];
/* 0x5B0 */ int mAnm;
/* 0x5B4 */ u8 field_0x5b4;
/* 0x5B5 */ u8 field_0x5b5;
/* 0x5B6 */ u8 field_0x5B6[0x5B7 - 0x5B6];
/* 0x5B7 */ u8 field_0x5b7;
/* 0x5B8 */ u8 field_0x5b8;
/* 0x5B9 */ u8 field_0x5b9;
/* 0x5BA */ u8 field_0x5BA[0x5C8 - 0x5BA];
/* 0x5C8 */ cXyz field_0x5c8;
/* 0x5D4 */ cXyz field_0x5d4;
/* 0x5E0 */ cXyz field_0x5e0;
/* 0x5EC */ cXyz field_0x5ec;
/* 0x5F8 */ f32 field_0x5f8;
/* 0x5FC */ s16 field_0x5fc;
/* 0x5FE */ u8 field_0x5FE[0x600 - 0x5FE];
/* 0x600 */ f32 field_0x600;
/* 0x604 */ mDoExt_brkAnm* field_0x604;
/* 0x608 */ f32 field_0x608;
/* 0x60C */ u8 field_0x60C[0x610 - 0x60C];
/* 0x610 */ f32 field_0x610;
/* 0x614 */ f32 field_0x614;
/* 0x618 */ f32 field_0x618;
/* 0x61C */ u32 field_0x61c[4];
/* 0x62C */ s16 field_0x62c[5];
/* 0x636 */ u8 field_0x636;
/* 0x637 */ u8 field_0x637;
/* 0x638 */ u8 field_0x638;
/* 0x639 */ u8 field_0x639[0x63C - 0x639];
/* 0x63C */ request_of_phase_process_class mPhase;
/* 0x644 */ Z2CreatureEnemy mSound;
/* 0x6E8 */ u8 field_0x6E8[0x6EC - 0x6E8];
/* 0x6EC */ mDoExt_McaMorfSO* field_0x6ec;
/* 0x6F0 */ dBgS_AcchCir mAcchCir;
/* 0x730 */ dBgS_ObjAcch mAcch;
/* 0x908 */ u8 field_0x908[0x910 - 0x908];
/* 0x910 */ Z2CreatureEnemy* field_0x910;
/* 0x914 */ u8 field_0x914[0x930 - 0x914];
};

STATIC_ASSERT(sizeof(daB_DRE_c) == 0x930);
Expand Down
37 changes: 30 additions & 7 deletions include/rel/d/a/obj/d_a_obj_lv5yiblltray/d_a_obj_lv5yiblltray.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
#define D_A_OBJ_LV5YIBLLTRAY_H

#include "f_op/f_op_actor_mng.h"
#include "d/bg/d_bg_s_movebg_actor.h"
#include "d/cc/d_cc_d.h"

/**
* @ingroup actors-objects
Expand All @@ -11,24 +13,45 @@
* @details
*
*/
class daObjYIblltray_c : public fopAc_ac_c {
class daObjYIblltray_c : public dBgS_MoveBgActor, public request_of_phase_process_class {
public:
/* 80C6EBF8 */ void create1st();
/* 80C6EC88 */ void setMtx();
/* 80C6EDA8 */ void CreateHeap();
/* 80C6EEFC */ void Create();
/* 80C6F1E8 */ void rideActor(fopAc_ac_c*);
/* 80C6F23C */ void sendBall(unsigned int);
/* 80C6F440 */ void onAttention();
/* 80C6F450 */ void offAttention();
/* 80C6F460 */ void Execute(f32 (**)[3][4]);
/* 80C702E0 */ void initRotTo();
/* 80C70330 */ void Draw();
/* 80C70408 */ void Delete();
/* 80C7088C */ ~daObjYIblltray_c();

/* 80C6EDA8 */ virtual int CreateHeap();
/* 80C6EEFC */ virtual int Create();
/* 80C6F460 */ virtual int Execute(Mtx**);
/* 80C70330 */ virtual int Draw();
/* 80C70408 */ virtual int Delete();

cXyz& getHandlePos() { return mHandlePos; }
void onHang() { mIsHang = true; }

private:
/* 0x568 */ u8 field_0x568[0xa94 - 0x568];
/* 0x5A8 */ cXyz field_0x5a8;
/* 0x5B4 */ cXyz field_0x5b4;
/* 0x5C0 */ Mtx field_0x5c0;
/* 0x5F0 */ Mtx field_0x5f0;
/* 0x620 */ J3DModel* field_0x620;
/* 0x624 */ s16 field_0x624;
/* 0x628 */ cXyz field_0x628;
/* 0x634 */ u32 field_0x634;
/* 0x638 */ int field_0x638;
/* 0x63C */ f32 field_0x63c;
/* 0x640 */ int field_0x640;
/* 0x644 */ dCcD_Cyl mCcCyl[3];
/* 0x9F8 */ dCcD_Stts mCcStts;
/* 0xA34 */ J3DModel* field_0xa34;
/* 0xA38 */ mDoExt_bckAnm mBck;
/* 0xA54 */ Mtx field_0xa54;
/* 0xA84 */ u8 mIsHang;
/* 0xA88 */ cXyz mHandlePos;
};

STATIC_ASSERT(sizeof(daObjYIblltray_c) == 0xa94);
Expand Down
3 changes: 2 additions & 1 deletion include/rel/d/a/obj/d_a_obj_swhang/d_a_obj_swhang.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
*/
class daObjSwHang_c : public dBgS_MoveBgActor {
public:
/* 80101874 */ cXyz getHangPos();
/* 80CFB9D8 */ void initBaseMtx();
/* 80CFBA60 */ void setBaseMtx();
/* 80CFBDD0 */ void create1st();
Expand All @@ -39,6 +38,8 @@ class daObjSwHang_c : public dBgS_MoveBgActor {
/* 80CFCD04 */ virtual int Draw();
/* 80CFCD98 */ virtual int Delete();

cXyz getHangPos() { return mHangPos; }

void setHangPlayer() { mHangPlayer = 1; }
u8 getType() { return field_0x730; }

Expand Down
12 changes: 6 additions & 6 deletions rel/d/a/obj/d_a_obj_lv5yiblltray/d_a_obj_lv5yiblltray.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
*/

#include "rel/d/a/obj/d_a_obj_lv5yiblltray/d_a_obj_lv5yiblltray.h"
#include "d/cc/d_cc_d.h"
#include "dol2asm.h"


Expand Down Expand Up @@ -200,7 +199,8 @@ COMPILER_STRIP_GATE(0x80C709C8, &lit_3719);
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjYIblltray_c::CreateHeap() {
// asm int daObjYIblltray_c::CreateHeap() {
extern "C" asm void CreateHeap__16daObjYIblltray_cFv() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_lv5yiblltray/d_a_obj_lv5yiblltray/CreateHeap__16daObjYIblltray_cFv.s"
}
Expand Down Expand Up @@ -272,7 +272,7 @@ static dCcD_SrcCyl l_cc_cyl_src = {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjYIblltray_c::Create() {
asm int daObjYIblltray_c::Create() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_lv5yiblltray/d_a_obj_lv5yiblltray/Create__16daObjYIblltray_cFv.s"
}
Expand Down Expand Up @@ -470,7 +470,7 @@ COMPILER_STRIP_GATE(0x80C70A28, &lit_4451);
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjYIblltray_c::Execute(f32 (**param_0)[3][4]) {
asm int daObjYIblltray_c::Execute(f32 (**param_0)[3][4]) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_lv5yiblltray/d_a_obj_lv5yiblltray/Execute__16daObjYIblltray_cFPPA3_A4_f.s"
}
Expand All @@ -490,7 +490,7 @@ asm void daObjYIblltray_c::initRotTo() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjYIblltray_c::Draw() {
asm int daObjYIblltray_c::Draw() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_lv5yiblltray/d_a_obj_lv5yiblltray/Draw__16daObjYIblltray_cFv.s"
}
Expand All @@ -500,7 +500,7 @@ asm void daObjYIblltray_c::Draw() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjYIblltray_c::Delete() {
asm int daObjYIblltray_c::Delete() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_lv5yiblltray/d_a_obj_lv5yiblltray/Delete__16daObjYIblltray_cFv.s"
}
Expand Down
11 changes: 7 additions & 4 deletions src/d/a/d_a_alink.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3926,8 +3926,11 @@ SECTION_SDATA2 static f32 lit_25874 = -0.00016276042151730508f;
SECTION_SDATA2 static f32 lit_25916 = 214.0f;

/* 80452FA8-80452FB0 0015A8 0008+00 1/1 0/0 0/0 .sdata2 offsetAngle$25945 */
SECTION_SDATA2 static u8 offsetAngle[8] = {
0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0xC0, 0x00,
SECTION_SDATA2 static s16 offsetAngle[] = {
0x0000,
0x8000,
0x4000,
0xC000,
};

/* 80452FB0-80452FB4 0015B0 0004+00 1/1 0/0 0/0 .sdata2 @26233 */
Expand Down Expand Up @@ -5760,8 +5763,8 @@ SECTION_RODATA static Vec const localPaddleTop = {
COMPILER_STRIP_GATE(0x803919E4, &localPaddleTop);

/* 803919F0-803919FC 01E050 000C+00 1/1 0/0 0/0 .rodata underOffsetY$23302 */
SECTION_RODATA static u8 const underOffsetY[12] = {
0x41, 0x70, 0x00, 0x00, 0x42, 0xB4, 0x00, 0x00, 0x43, 0x16, 0x00, 0x00,
SECTION_RODATA static f32 const underOffsetY[3] = {
15.0f, 90.0f, 150.0f,
};
COMPILER_STRIP_GATE(0x803919F0, &underOffsetY);

Expand Down
Loading

0 comments on commit 8599b13

Please sign in to comment.