mirror of https://github.com/zeldaret/tp.git
d_a_boomerang / d_a_grass mostly done, d_a_spinner done (#2304)
* d_a_boomerang mostly done * d_a_grass mostly done * d_a_spinner done
This commit is contained in:
parent
376a5be6e3
commit
bbc7944e54
|
|
@ -175,32 +175,32 @@ l_pos = .data:0x00001020; // type:object size:0x3C0 scope:global
|
|||
l_normal = .data:0x000013E0; // type:object size:0xC scope:global
|
||||
l_color = .data:0x000013EC; // type:object size:0x14 scope:global
|
||||
l_texCoord = .data:0x00001400; // type:object size:0xA0 scope:global
|
||||
l_M_Kusa_9qDL = .data:0x000014A0; // type:object size:0xCB scope:global
|
||||
l_M_Kusa_9q_cDL = .data:0x00001580; // type:object size:0xCB scope:global
|
||||
l_M_TenGusaDL = .data:0x00001660; // type:object size:0xD4 scope:global
|
||||
l_M_Kusa_9qDL = .data:0x000014A0; // type:object size:0xCB scope:global align:32
|
||||
l_M_Kusa_9q_cDL = .data:0x00001580; // type:object size:0xCB scope:global align:32
|
||||
l_M_TenGusaDL = .data:0x00001660; // type:object size:0xD4 scope:global align:32
|
||||
l_Tengusa_matDL = .data:0x00001740; // type:object size:0xA8 scope:global
|
||||
l_kusa9q_matDL = .data:0x00001800; // type:object size:0xA8 scope:global
|
||||
l_kusa9q_l4_matDL = .data:0x000018C0; // type:object size:0xA8 scope:global
|
||||
@4620 = .data:0x00001968; // type:object size:0xC scope:local
|
||||
l_vtxDescList$4654 = .data:0x00001974; // type:object size:0x28 scope:local
|
||||
l_vtxAttrFmtList$4655 = .data:0x0000199C; // type:object size:0x50 scope:local
|
||||
l_J_Ohana00_64TEX = .data:0x00001A00; // type:object size:0x800 scope:global
|
||||
l_J_Ohana00_64TEX = .data:0x00001A00; // type:object size:0x800 scope:global align:32
|
||||
l_flowerPos = .data:0x00002200; // type:object size:0x2C4 scope:global
|
||||
l_flowerNormal = .data:0x000024C4; // type:object size:0xB4 scope:global
|
||||
l_flowerColor = .data:0x00002578; // type:object size:0x8 scope:global
|
||||
l_flowerTexCoord = .data:0x00002580; // type:object size:0x138 scope:global
|
||||
l_J_hana00DL = .data:0x000026C0; // type:object size:0x150 scope:global
|
||||
l_J_hana00_cDL = .data:0x00002820; // type:object size:0xDE scope:global
|
||||
l_J_hana00DL = .data:0x000026C0; // type:object size:0x150 scope:global align:32
|
||||
l_J_hana00_cDL = .data:0x00002820; // type:object size:0xDE scope:global align:32
|
||||
l_matDL = .data:0x00002900; // type:object size:0x99 scope:global
|
||||
l_matLight4DL = .data:0x000029A0; // type:object size:0x99 scope:global
|
||||
l_J_Ohana01_64128_0419TEX = .data:0x00002A40; // type:object size:0x1000 scope:global
|
||||
l_J_Ohana01_64128_0419TEX = .data:0x00002A40; // type:object size:0x1000 scope:global align:32
|
||||
l_flowerPos2 = .data:0x00003A40; // type:object size:0x4C8 scope:global
|
||||
l_flowerNormal2 = .data:0x00003F08; // type:object size:0x120 scope:global
|
||||
l_flowerColor2 = .data:0x00004028; // type:object size:0x8 scope:global
|
||||
l_flowerTexCoord2 = .data:0x00004030; // type:object size:0x120 scope:global
|
||||
l_J_hana01DL = .data:0x00004160; // type:object size:0x138 scope:global
|
||||
l_J_hana01_c_00DL = .data:0x000042A0; // type:object size:0xDE scope:global
|
||||
l_J_hana01_c_01DL = .data:0x00004380; // type:object size:0x128 scope:global
|
||||
l_J_hana01DL = .data:0x00004160; // type:object size:0x138 scope:global align:32
|
||||
l_J_hana01_c_00DL = .data:0x000042A0; // type:object size:0xDE scope:global align:32
|
||||
l_J_hana01_c_01DL = .data:0x00004380; // type:object size:0x128 scope:global align:32
|
||||
l_mat2DL = .data:0x000044C0; // type:object size:0x99 scope:global
|
||||
l_mat2Light4DL = .data:0x00004560; // type:object size:0x99 scope:global
|
||||
@5875 = .data:0x000045FC; // type:object size:0xC scope:local data:4byte
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ _unresolved = .text:0x00000058; // type:function size:0x20 scope:global
|
|||
__register_global_object = .text:0x00000078; // type:function size:0x1C scope:global
|
||||
__destroy_global_chain = .text:0x00000094; // type:function size:0x58 scope:global
|
||||
createHeap__11daSpinner_cFv = .text:0x000000EC; // type:function size:0xC4 scope:global
|
||||
daSpinner_createHeap__FP10fopAc_ac_c = .text:0x000001B0; // type:function size:0x20 scope:global
|
||||
daSpinner_createHeap__FP10fopAc_ac_c = .text:0x000001B0; // type:function size:0x20 scope:local
|
||||
create__11daSpinner_cFv = .text:0x000001D0; // type:function size:0x2F0 scope:global
|
||||
__dt__8cM3dGCylFv = .text:0x000004C0; // type:function size:0x48 scope:global
|
||||
__dt__8cM3dGAabFv = .text:0x00000508; // type:function size:0x48 scope:global
|
||||
|
|
@ -13,9 +13,9 @@ __dt__4cXyzFv = .text:0x000005AC; // type:function size:0x3C scope:global
|
|||
__dt__13dBgS_LinkAcchFv = .text:0x000005E8; // type:function size:0x70 scope:global
|
||||
__dt__12dBgS_AcchCirFv = .text:0x00000658; // type:function size:0x70 scope:global
|
||||
__dt__12J3DFrameCtrlFv = .text:0x000006C8; // type:function size:0x48 scope:global
|
||||
daSpinner_Create__FP10fopAc_ac_c = .text:0x00000710; // type:function size:0x20 scope:global
|
||||
daSpinner_Create__FP10fopAc_ac_c = .text:0x00000710; // type:function size:0x20 scope:local
|
||||
__dt__11daSpinner_cFv = .text:0x00000730; // type:function size:0x1E8 scope:global
|
||||
daSpinner_Delete__FP11daSpinner_c = .text:0x00000918; // type:function size:0x28 scope:global
|
||||
daSpinner_Delete__FP11daSpinner_c = .text:0x00000918; // type:function size:0x28 scope:local
|
||||
setRoomInfo__11daSpinner_cFv = .text:0x00000940; // type:function size:0x98 scope:global
|
||||
setMatrix__11daSpinner_cFv = .text:0x000009D8; // type:function size:0xA8 scope:global
|
||||
setEffect__11daSpinner_cFv = .text:0x00000A80; // type:function size:0x2D4 scope:global
|
||||
|
|
@ -32,9 +32,9 @@ checkPathMove__11daSpinner_cFv = .text:0x00001ED4; // type:function size:0x5EC s
|
|||
setSpreadEffect__11daSpinner_cFv = .text:0x000024C0; // type:function size:0x1B4 scope:global
|
||||
clearSpreadEffect__11daSpinner_cFv = .text:0x00002674; // type:function size:0x78 scope:global
|
||||
execute__11daSpinner_cFv = .text:0x000026EC; // type:function size:0xC08 scope:global
|
||||
daSpinner_Execute__FP11daSpinner_c = .text:0x000032F4; // type:function size:0x20 scope:global
|
||||
daSpinner_Execute__FP11daSpinner_c = .text:0x000032F4; // type:function size:0x20 scope:local
|
||||
draw__11daSpinner_cFv = .text:0x00003314; // type:function size:0x154 scope:global
|
||||
daSpinner_Draw__FP11daSpinner_c = .text:0x00003468; // type:function size:0x20 scope:global
|
||||
daSpinner_Draw__FP11daSpinner_c = .text:0x00003468; // type:function size:0x20 scope:local
|
||||
__dt__10cCcD_GSttsFv = .text:0x00003488; // type:function size:0x48 scope:global
|
||||
@36@__dt__13dBgS_LinkAcchFv = .text:0x000034D0; // type:function size:0x8 scope:local
|
||||
@20@__dt__13dBgS_LinkAcchFv = .text:0x000034D8; // type:function size:0x8 scope:local
|
||||
|
|
@ -90,8 +90,8 @@ effName$5299 = .rodata:0x000000D8; // type:object size:0x4 scope:local
|
|||
@5723 = .rodata:0x00000108; // type:object size:0x4 scope:local
|
||||
@5724 = .rodata:0x0000010C; // type:object size:0x4 scope:local
|
||||
@stringBase0 = .rodata:0x00000110; // type:object size:0x8 scope:local data:string_table
|
||||
l_cylSrc = .data:0x00000000; // type:object size:0x44 scope:global
|
||||
l_daSpinner_Method = .data:0x00000044; // type:object size:0x20 scope:global
|
||||
l_cylSrc = .data:0x00000000; // type:object size:0x44 scope:local
|
||||
l_daSpinner_Method = .data:0x00000044; // type:object size:0x20 scope:local
|
||||
g_profile_SPINNER = .data:0x00000064; // type:object size:0x30 scope:global
|
||||
__vt__8cM3dGPla = .data:0x00000094; // type:object size:0xC scope:global
|
||||
__vt__8cM3dGLin = .data:0x000000A0; // type:object size:0xC scope:global
|
||||
|
|
|
|||
|
|
@ -1486,7 +1486,7 @@ config.libs = [
|
|||
ActorRel(Equivalent, "d_a_nbomb"), # weak func order
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_life_container"),
|
||||
ActorRel(NonMatching, "d_a_obj_yousei"),
|
||||
ActorRel(NonMatching, "d_a_spinner"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_spinner"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_suspend"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_tag_attention"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_alldie"),
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
struct counter_class {
|
||||
u32 mCounter0;
|
||||
s32 mCounter1;
|
||||
s32 mTimer;
|
||||
u32 mTimer;
|
||||
};
|
||||
|
||||
extern counter_class g_Counter;
|
||||
|
|
|
|||
|
|
@ -3555,6 +3555,40 @@ public:
|
|||
mDoMtx_multVec(getRightHandMatrix(), &m_handRightInSidePos, o_pos);
|
||||
}
|
||||
|
||||
cXyz* getLineTopPosP() {
|
||||
return mSight.getPosP();
|
||||
}
|
||||
|
||||
cXyz* getBoomerangLockPosP() {
|
||||
return &mHeldItemRootPos;
|
||||
}
|
||||
|
||||
BOOL boomerangLockTrigger() {
|
||||
return itemActionTrigger();
|
||||
}
|
||||
|
||||
BOOL checkBoomerangLockTrigger() {
|
||||
return boomerangLockTrigger();
|
||||
}
|
||||
|
||||
BOOL checkDemoSpinnerKeep() const {
|
||||
return mDemo.getDemoMode() == 14 && mDemo.getParam0() == 1;
|
||||
}
|
||||
|
||||
BOOL checkDemoSpinnerKeepSpeed() const {
|
||||
return mDemo.getDemoMode() == 14 && mDemo.getParam0() == 2;
|
||||
}
|
||||
|
||||
bool checkSpinnerRideOwn(const fopAc_ac_c* param_0) {
|
||||
return checkSpinnerRide() && mRideAcKeep.getActorConst() == param_0;
|
||||
}
|
||||
|
||||
BOOL checkSpinnerReady() const { return mProcID == PROC_SPINNER_READY; }
|
||||
|
||||
BOOL checkGameOverWindow() const { return mProcID == PROC_DEAD && field_0x3478 < 0.01f; }
|
||||
|
||||
f32 getSlideLimit() const { return field_0x3470; }
|
||||
|
||||
inline bool checkWindSpeedOnXZ() const;
|
||||
inline void startRestartRoomFromOut(int, u32, int);
|
||||
inline u16 getReadyItem();
|
||||
|
|
|
|||
|
|
@ -5,7 +5,9 @@
|
|||
#include "d/d_particle_copoly.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class daBoomerang_sight_c {
|
||||
#define BOOMERANG_LOCK_MAX 5
|
||||
|
||||
class daBoomerang_sight_c : public dDlst_base_c {
|
||||
public:
|
||||
/* 8049E0B8 */ int createHeap();
|
||||
/* 8049E36C */ void initialize();
|
||||
|
|
@ -13,48 +15,48 @@ public:
|
|||
/* 8049EDA8 */ void initFrame(int);
|
||||
/* 8049EDE8 */ void copyNumData(int);
|
||||
/* 8049EEC8 */ void setSight(cXyz const*, int);
|
||||
/* 8049EF60 */ void draw();
|
||||
|
||||
/* 804A278C */ virtual ~daBoomerang_sight_c();
|
||||
/* 8049EF60 */ virtual void draw();
|
||||
/* 804A278C */ virtual ~daBoomerang_sight_c() {}
|
||||
|
||||
u8 getReserve() const { return mReserve; }
|
||||
u8 getAlpha(int i_index) { return mAlpha[i_index]; }
|
||||
void offRedSight() { mRedSight = false; }
|
||||
u8 getAlpha(int i_index) { return m_alpha[i_index]; }
|
||||
void offRedSight() { m_redSight = false; }
|
||||
void onReserve() { mReserve = 1; }
|
||||
void offReserve() { mReserve = 0; }
|
||||
|
||||
private:
|
||||
/* 0x04 */ J2DScreen* field_0x4;
|
||||
/* 0x08 */ J2DPane* field_0x8;
|
||||
/* 0x0C */ J2DPane* field_0xc;
|
||||
/* 0x10 */ J2DPane* field_0x10;
|
||||
/* 0x14 */ J2DPane* field_0x14;
|
||||
/* 0x18 */ J2DAnmTevRegKey* field_0x18;
|
||||
/* 0x1C */ J2DAnmTevRegKey* field_0x1c;
|
||||
/* 0x20 */ J2DScreen* field_0x20;
|
||||
/* 0x24 */ J2DPane* field_0x24;
|
||||
/* 0x28 */ J2DPane* field_0x28;
|
||||
/* 0x2C */ J2DPane* field_0x2c;
|
||||
/* 0x30 */ J2DPane* field_0x30;
|
||||
/* 0x34 */ J2DAnmTevRegKey* field_0x34;
|
||||
/* 0x38 */ J2DAnmTevRegKey* field_0x38;
|
||||
/* 0x3C */ J2DScreen* field_0x3c;
|
||||
/* 0x40 */ J2DPane* field_0x40;
|
||||
/* 0x44 */ J2DPane* field_0x44;
|
||||
/* 0x48 */ J2DPane* field_0x48;
|
||||
/* 0x4C */ J2DPane* field_0x4c;
|
||||
/* 0x50 */ J2DAnmTevRegKey* field_0x50;
|
||||
/* 0x54 */ J2DAnmTevRegKey* field_0x54;
|
||||
/* 0x58 */ J2DAnmColor* field_0x58;
|
||||
/* 0x5C */ J2DAnmTransform* field_0x5c;
|
||||
/* 0x60 */ bool mRedSight;
|
||||
/* 0x04 */ J2DScreen* m_cursorYellowScrn;
|
||||
/* 0x08 */ J2DPane* m_cursorYellowAllPane;
|
||||
/* 0x0C */ J2DPane* m_cursorYellow0Pane;
|
||||
/* 0x10 */ J2DPane* m_cursorYellow1Pane;
|
||||
/* 0x14 */ J2DPane* m_cursorYellow2Pane;
|
||||
/* 0x18 */ J2DAnmTevRegKey* m_cursorYellow2Brk;
|
||||
/* 0x1C */ J2DAnmTevRegKey* m_cursorYellowBrk;
|
||||
/* 0x20 */ J2DScreen* m_cursorRedScrn;
|
||||
/* 0x24 */ J2DPane* m_cursorRedAllPane;
|
||||
/* 0x28 */ J2DPane* m_cursorRed0Pane;
|
||||
/* 0x2C */ J2DPane* m_cursorRed1Pane;
|
||||
/* 0x30 */ J2DPane* m_cursorRed2Pane;
|
||||
/* 0x34 */ J2DAnmTevRegKey* m_cursorRed2Brk;
|
||||
/* 0x38 */ J2DAnmTevRegKey* m_cursorRedBrk;
|
||||
/* 0x3C */ J2DScreen* m_cursorOrangeScrn;
|
||||
/* 0x40 */ J2DPane* m_cursorOrangeAllPane;
|
||||
/* 0x44 */ J2DPane* m_cursorOrange0Pane;
|
||||
/* 0x48 */ J2DPane* m_cursorOrange1Pane;
|
||||
/* 0x4C */ J2DPane* m_cursorOrange2Pane;
|
||||
/* 0x50 */ J2DAnmTevRegKey* m_cursorOrange2Brk;
|
||||
/* 0x54 */ J2DAnmTevRegKey* m_cursorOrangeBrk;
|
||||
/* 0x58 */ J2DAnmColor* m_cursorYellowBpk;
|
||||
/* 0x5C */ J2DAnmTransform* m_cursorYellowBck;
|
||||
/* 0x60 */ bool m_redSight;
|
||||
/* 0x61 */ u8 mReserve;
|
||||
/* 0x62 */ u8 mAlpha[6];
|
||||
/* 0x68 */ f32 field_0x68[6];
|
||||
/* 0x80 */ f32 field_0x80[6];
|
||||
/* 0x62 */ u8 m_alpha[6];
|
||||
/* 0x68 */ f32 m_proj_posX[6];
|
||||
/* 0x80 */ f32 m_proj_posY[6];
|
||||
/* 0x98 */ f32 field_0x98[6];
|
||||
/* 0xB0 */ f32 field_0xb0[6];
|
||||
/* 0xC8 */ cXyz field_0xc8[6];
|
||||
/* 0xC8 */ cXyz m_pos[6];
|
||||
}; // Size: 0x110
|
||||
|
||||
class daAlink_c;
|
||||
|
|
@ -70,10 +72,16 @@ class daAlink_c;
|
|||
class daBoomerang_c : public fopAc_ac_c {
|
||||
public:
|
||||
enum daBoomerang_FLG0 {
|
||||
/* 0x001 */ FLG0_1 = 0x001,
|
||||
/* 0x004 */ FLG0_UNK = 0x004,
|
||||
/* 0x010 */ FLG0_10 = 0x010,
|
||||
/* 0x200 */ FLG0_0x200 = 0x200,
|
||||
/* 0x001 */ FLG0_1 = 0x1,
|
||||
/* 0x002 */ FLG0_2 = 0x2,
|
||||
/* 0x004 */ FLG0_4 = 0x4,
|
||||
/* 0x010 */ FLG0_10 = 0x10,
|
||||
/* 0x020 */ FLG0_20 = 0x20,
|
||||
/* 0x040 */ FLG0_40 = 0x40,
|
||||
/* 0x080 */ FLG0_80 = 0x80,
|
||||
/* 0x100 */ FLG0_100 = 0x100,
|
||||
/* 0x200 */ FLG0_200 = 0x200,
|
||||
/* 0x400 */ FLG0_400 = 0x400,
|
||||
/* 0x800 */ FLG0_LOCK_DIST_CANCEL = 0x800,
|
||||
/* 0x080 */ WIND_CATCH = 0x80,
|
||||
};
|
||||
|
|
@ -95,85 +103,86 @@ public:
|
|||
/* 8049FE6C */ void checkBgHit(cXyz*, cXyz*);
|
||||
/* 804A006C */ JPABaseEmitter* setEffectTraceMatrix(u32*, u16);
|
||||
/* 804A012C */ void setEffect();
|
||||
/* 804A0874 */ void procWait();
|
||||
/* 804A0F0C */ void procMove();
|
||||
/* 804A0874 */ int procWait();
|
||||
/* 804A0F0C */ int procMove();
|
||||
/* 804A1814 */ int execute();
|
||||
/* 804A1BF4 */ ~daBoomerang_c();
|
||||
/* 804A1EE4 */ int createHeap();
|
||||
/* 804A2084 */ int create();
|
||||
/* 804A230C */ daBoomerang_c();
|
||||
|
||||
u32 checkStateFlg0(daBoomerang_FLG0 i_flag) { return mStateFlg0 & i_flag; }
|
||||
void onStateFlg0(daBoomerang_FLG0 flag) { mStateFlg0 |= flag; }
|
||||
u32 checkStateFlg0(daBoomerang_FLG0 i_flag) const { return m_stateFlg0 & i_flag; }
|
||||
void onStateFlg0(daBoomerang_FLG0 flag) { m_stateFlg0 |= flag; }
|
||||
void offStateFlg0(daBoomerang_FLG0 flag) { m_stateFlg0 &= ~flag; }
|
||||
void onWindCatch() { onStateFlg0(WIND_CATCH); }
|
||||
bool checkForceDelete() const { return mForceDelete; }
|
||||
void onForceDelete() { mForceDelete = true; }
|
||||
bool checkForceDelete() const { return m_forceDelete; }
|
||||
void onForceDelete() { m_forceDelete = true; }
|
||||
bool checkCharge() const { return true; }
|
||||
void setThrow() { fopAcM_SetParam(this, 1); }
|
||||
void setAimActor(fopAc_ac_c* i_actor) { (this->*mpSetAimActorFn)(i_actor); }
|
||||
void cancelLockActor(fopAc_ac_c* i_actor) { (this->*mpCancelLockActorFn)(i_actor); }
|
||||
u8 getLockReserve() const { return mSight.getReserve(); }
|
||||
bool getLockCntMax() { return mLockCnt >= 5; }
|
||||
void setAimActor(fopAc_ac_c* i_actor) { (this->*m_setAimActorFn)(i_actor); }
|
||||
void cancelLockActor(fopAc_ac_c* i_actor) { (this->*m_cancelLockActorFn)(i_actor); }
|
||||
u8 getLockReserve() const { return m_sight.getReserve(); }
|
||||
bool getLockCntMax() { return m_lockCnt >= BOOMERANG_LOCK_MAX; }
|
||||
void onLockDistanceCancel() { onStateFlg0(FLG0_LOCK_DIST_CANCEL); }
|
||||
|
||||
private:
|
||||
/* 0x568 */ J3DModel* field_0x568;
|
||||
/* 0x56C */ J3DModel* field_0x56c;
|
||||
/* 0x568 */ J3DModel* mp_boomModel;
|
||||
/* 0x56C */ J3DModel* mp_shippuModel;
|
||||
/* 0x570 */ J3DAnmTextureSRTKey* m_windBtk;
|
||||
/* 0x574 */ mDoExt_bckAnm mBck;
|
||||
/* 0x590 */ J3DModel* field_0x590;
|
||||
/* 0x574 */ mDoExt_bckAnm m_shippuBck;
|
||||
/* 0x590 */ J3DModel* mp_setboomEfModel;
|
||||
/* 0x594 */ J3DAnmTextureSRTKey* m_waitEffBtk;
|
||||
/* 0x598 */ daBoomerang_sight_c mSight;
|
||||
/* 0x6A8 */ s32 field_0x6a8;
|
||||
/* 0x6AC */ s32 field_0x6ac[5];
|
||||
/* 0x6C0 */ fopAc_ac_c* mLockActors[5]; // Actors corresponding to the five target points
|
||||
/* 0x6D4 */ u32 field_0x6d4;
|
||||
/* 0x598 */ daBoomerang_sight_c m_sight;
|
||||
/* 0x6A8 */ fpc_ProcID m_lockLineActorID;
|
||||
/* 0x6AC */ fpc_ProcID m_lockActorIDs[BOOMERANG_LOCK_MAX];
|
||||
/* 0x6C0 */ fopAc_ac_c* m_lockActors[BOOMERANG_LOCK_MAX]; // Actors corresponding to the five target points
|
||||
/* 0x6D4 */ fpc_ProcID field_0x6d4;
|
||||
/* 0x6D8 */ fopAc_ac_c* field_0x6d8;
|
||||
/* 0x6DC */ cXyz mLockActorsPositions[5];
|
||||
/* 0x718 */ u8 field_0x718[5];
|
||||
/* 0x720 */ Z2SoundObjSimple field_0x720;
|
||||
/* 0x740 */ dBgS_Acch field_0x740;
|
||||
/* 0x918 */ dPaPo_c field_0x918;
|
||||
/* 0x950 */ u8 mLockCnt;
|
||||
/* 0x6DC */ cXyz m_lockActorsPositions[BOOMERANG_LOCK_MAX];
|
||||
/* 0x718 */ u8 field_0x718[BOOMERANG_LOCK_MAX];
|
||||
/* 0x720 */ Z2SoundObjSimple m_sound;
|
||||
/* 0x740 */ dBgS_ObjAcch m_acch;
|
||||
/* 0x918 */ dPaPo_c m_papo;
|
||||
/* 0x950 */ u8 m_lockCnt;
|
||||
/* 0x951 */ u8 field_0x951;
|
||||
/* 0x952 */ u8 field_0x952;
|
||||
/* 0x953 */ u8 field_0x953;
|
||||
/* 0x953 */ s8 m_reverb;
|
||||
/* 0x954 */ u8 field_0x954;
|
||||
/* 0x955 */ u8 field_0x955;
|
||||
/* 0x956 */ bool mForceDelete;
|
||||
/* 0x956 */ bool m_forceDelete;
|
||||
/* 0x957 */ u8 field_0x957;
|
||||
/* 0x958 */ s16 field_0x958;
|
||||
/* 0x95A */ s16 field_0x95a;
|
||||
/* 0x95A */ s16 m_modelRotY;
|
||||
/* 0x95C */ s16 field_0x95c;
|
||||
/* 0x95E */ s16 field_0x95e;
|
||||
/* 0x960 */ s16 field_0x960;
|
||||
/* 0x962 */ s16 field_0x962;
|
||||
/* 0x964 */ u32 mStateFlg0;
|
||||
/* 0x964 */ u32 m_stateFlg0;
|
||||
/* 0x968 */ u32 field_0x968;
|
||||
/* 0x96C */ u32 field_0x96c;
|
||||
/* 0x970 */ u32 field_0x970;
|
||||
/* 0x974 */ u32 field_0x974;
|
||||
/* 0x978 */ u32 field_0x978;
|
||||
/* 0x97C */ u32 field_0x97c;
|
||||
/* 0x980 */ f32 field_0x980;
|
||||
/* 0x984 */ f32 field_0x984;
|
||||
/* 0x980 */ f32 mGroundY;
|
||||
/* 0x984 */ f32 m_lockLineSqdist;
|
||||
/* 0x988 */ f32 field_0x988;
|
||||
/* 0x98C */ f32 field_0x98c;
|
||||
/* 0x990 */ cXyz field_0x990;
|
||||
/* 0x98C */ f32 m_shippuFrame;
|
||||
/* 0x990 */ cXyz m_aimPos;
|
||||
/* 0x99C */ cXyz field_0x99c;
|
||||
/* 0x9A8 */ f32 field_0x9a8;
|
||||
/* 0x9AC */ cXyz field_0x9ac;
|
||||
/* 0x9A8 */ f32 m_shippuSize;
|
||||
/* 0x9AC */ cXyz m_moveTargetPos;
|
||||
/* 0x9B8 */ cXyz field_0x9b8;
|
||||
/* 0x9C4 */ cXyz field_0x9c4;
|
||||
/* 0x9D0 */ dCcD_Stts field_0x9d0;
|
||||
/* 0xA0C */ dCcD_Cps field_0xa0c;
|
||||
/* 0xB50 */ dCcD_Cyl field_0xb50;
|
||||
/* 0xC8C */ dBgS_BoomerangLinChk field_0xc8c;
|
||||
/* 0xCFC */ dBgS_ObjLinChk field_0xcfc;
|
||||
/* 0xD6C */ dBgS_ObjGndChk field_0xd6c;
|
||||
/* 0xDC0 */ int (daBoomerang_c::*mpProcFn)();
|
||||
/* 0xDCC */ void (daBoomerang_c::*mpSetAimActorFn)(fopAc_ac_c*);
|
||||
/* 0xDD8 */ void (daBoomerang_c::*mpCancelLockActorFn)(fopAc_ac_c*);
|
||||
/* 0x9C4 */ cXyz m_movePos;
|
||||
/* 0x9D0 */ dCcD_Stts m_colliderStts;
|
||||
/* 0xA0C */ dCcD_Cps m_atCps;
|
||||
/* 0xB50 */ dCcD_Cyl m_windAtCyl;
|
||||
/* 0xC8C */ dBgS_BoomerangLinChk m_boomLineChk;
|
||||
/* 0xCFC */ dBgS_ObjLinChk m_lineChk;
|
||||
/* 0xD6C */ dBgS_ObjGndChk m_gndChk;
|
||||
/* 0xDC0 */ int (daBoomerang_c::*m_procFn)();
|
||||
/* 0xDCC */ void (daBoomerang_c::*m_setAimActorFn)(fopAc_ac_c*);
|
||||
/* 0xDD8 */ void (daBoomerang_c::*m_cancelLockActorFn)(fopAc_ac_c*);
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daBoomerang_c) == 0xDE4);
|
||||
|
|
@ -188,5 +197,4 @@ public:
|
|||
static f32 const m_lockWindScale;
|
||||
};
|
||||
|
||||
|
||||
#endif /* D_A_BOOMERANG_H */
|
||||
|
|
|
|||
|
|
@ -35,6 +35,8 @@ public:
|
|||
/* 8051EDF0 */ void deleteData();
|
||||
/* 80520928 */ dGrass_room_c();
|
||||
|
||||
dGrass_data_c* getData() { return mp_data; }
|
||||
|
||||
/* 0x0 */ dGrass_data_c* mp_data;
|
||||
};
|
||||
|
||||
|
|
@ -60,17 +62,19 @@ public:
|
|||
/* 805208E4 */ void setAnm(int, s16);
|
||||
|
||||
/* 8051F03C */ virtual void draw();
|
||||
/* 8051BFBC */ virtual ~dGrass_packet_c();
|
||||
/* 8051BFBC */ virtual ~dGrass_packet_c() {}
|
||||
|
||||
typedef void (dGrass_packet_c::*deleteFunc)(int);
|
||||
static deleteFunc m_deleteRoom;
|
||||
|
||||
dGrass_anm_c* getAnm() { return m_anm; }
|
||||
dGrass_anm_c* getAnm(int i_no) { return &m_anm[i_no]; }
|
||||
|
||||
dGrass_data_c* getData() { return m_data; }
|
||||
|
||||
void deleteAnm(int i_idx) { m_anm[i_idx].m_state = 0; }
|
||||
|
||||
/* 0x00010 */ u16 field_0x10;
|
||||
/* 0x00010 */ u16 m_dataNum;
|
||||
/* 0x00014 */ dGrass_data_c m_data[1500];
|
||||
/* 0x1BD64 */ dGrass_anm_c m_anm[112];
|
||||
/* 0x1D5E4 */ dGrass_room_c m_room[64];
|
||||
|
|
@ -86,7 +90,7 @@ public:
|
|||
/* 0x1D708 */ u32 m_Mkusa_9q_DL_size;
|
||||
/* 0x1D70C */ u8* mp_Mkusa_9q_cDL;
|
||||
/* 0x1D710 */ u32 m_Mkusa_9q_cDL_size;
|
||||
/* 0x1D714 */ u16 field_0x1d714;
|
||||
/* 0x1D714 */ s16 field_0x1d714;
|
||||
}; // Size: 0x1D718
|
||||
|
||||
STATIC_ASSERT(sizeof(dGrass_packet_c) == 0x1D718);
|
||||
|
|
@ -117,6 +121,8 @@ public:
|
|||
/* 80521C08 */ void deleteData();
|
||||
/* 80522FB4 */ dFlower_room_c();
|
||||
|
||||
dFlower_data_c* getData() { return mp_data; }
|
||||
|
||||
/* 0x0 */ dFlower_data_c* mp_data;
|
||||
};
|
||||
|
||||
|
|
@ -148,11 +154,18 @@ public:
|
|||
static deleteFunc m_deleteRoom;
|
||||
|
||||
dFlower_anm_c* getAnm(int i_idx) { return &m_anm[i_idx]; }
|
||||
dFlower_anm_c* getAnm() { return &m_anm[0]; }
|
||||
dFlower_data_c* getData() { return m_data; }
|
||||
|
||||
void deleteAnm(int i_idx) { m_anm[i_idx].m_state = 0; }
|
||||
|
||||
/* 0x00010 */ u16 field_0x10;
|
||||
void setPlayerCutFlg(int i_flag) { m_playerCutFlg = i_flag != 0; }
|
||||
void setPlayerSwordAngY(s16 i_angY) { m_playerSwordAngY = i_angY; }
|
||||
void setPlayerSwordMoveAngY(s16 i_angY) { m_playerSwordMoveAngY = i_angY; }
|
||||
void setPlayerSwordTop(cXyz& i_pos) { m_playerSwordTop = i_pos; }
|
||||
cXyz& getPlayerSwordTop() { return m_playerSwordTop; }
|
||||
|
||||
/* 0x00010 */ u16 m_dataNum;
|
||||
/* 0x00014 */ dFlower_data_c m_data[1000];
|
||||
/* 0x11954 */ dFlower_anm_c m_anm[72];
|
||||
/* 0x12914 */ dFlower_room_c m_room[64];
|
||||
|
|
@ -183,17 +196,18 @@ public:
|
|||
*/
|
||||
class daGrass_c : public fopAc_ac_c {
|
||||
public:
|
||||
/* 8051BEFC */ int createGrass();
|
||||
/* 8051BEFC */ bool createGrass();
|
||||
/* 8051BF68 */ void deleteGrass();
|
||||
/* 8051C040 */ void executeGrass();
|
||||
/* 8051C074 */ void drawGrass();
|
||||
/* 8051C0A8 */ void newGrassData(cXyz&, int, u8, u8, s16, u8);
|
||||
/* 8051C0D4 */ int createFlower();
|
||||
/* 8051C0D4 */ bool createFlower();
|
||||
/* 8051C140 */ void deleteFlower();
|
||||
/* 8051C218 */ void executeFlower();
|
||||
/* 8051C24C */ void drawFlower();
|
||||
/* 8051C280 */ void newFlowerData(s8, cXyz&, int, s8, s16);
|
||||
/* 8051C304 */ int create();
|
||||
|
||||
/* 8051C304 */ inline int create();
|
||||
|
||||
inline int Delete();
|
||||
inline int execute();
|
||||
|
|
@ -217,7 +231,7 @@ namespace daGrass_prm {
|
|||
inline u8 getItemBitNo(daGrass_c* i_this) { return (fopAcM_GetParam(i_this) >> 8) & 0xFF; }
|
||||
};
|
||||
|
||||
struct offset_data {
|
||||
struct daGrass_offsetData {
|
||||
/* 0x0 */ u8 num;
|
||||
/* 0x4 */ csXyz* set_type;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ public:
|
|||
|
||||
static void initDropAngleY() { m_dropAngleY = 0x4000; }
|
||||
static void offEventKeepFlg() { m_eventKeepFlg = 0; }
|
||||
static void onEventKeepFlg() { m_eventKeepFlg = 1; }
|
||||
|
||||
static s16 m_dropAngleY;
|
||||
static s16 m_eventKeepFlg;
|
||||
|
|
@ -935,6 +936,8 @@ public:
|
|||
void offWolfEnemyHangBite() { offNoResetFlg2(FLG2_WOLF_ENEMY_HANG_BITE); }
|
||||
bool onWolfEnemyHangBite(fopAc_ac_c* param_0) { return onWolfEnemyBiteAll(param_0, FLG2_WOLF_ENEMY_HANG_BITE); }
|
||||
|
||||
u32 checkItemSightBgHit() const { return checkResetFlg0(RFLG0_UNK_2000000); }
|
||||
|
||||
void setCanoeSlider() { mSpecialMode = 0x2D; }
|
||||
|
||||
void offCanoeSlider() {
|
||||
|
|
@ -1002,6 +1005,8 @@ public:
|
|||
cXyz* getRightHandPosP() { return &mRightHandPos; }
|
||||
cXyz* getHeadTopPosP() { return &mHeadTopPos; }
|
||||
|
||||
const cXyz& getSwordTopPos() const { return mSwordTopPos; }
|
||||
|
||||
u32 checkWolf() const { return checkNoResetFlg1(FLG1_IS_WOLF); }
|
||||
u32 checkEquipHeavyBoots() const { return checkNoResetFlg0(FLG0_EQUIP_HVY_BOOTS); }
|
||||
u32 checkMagneBootsOn() const { return checkNoResetFlg0(FLG0_MAGNE_BOOTS_ON); }
|
||||
|
|
|
|||
|
|
@ -15,6 +15,15 @@
|
|||
*/
|
||||
class daSpinner_c : public fopAc_ac_c {
|
||||
public:
|
||||
enum daSpinner_TAG {
|
||||
TAG_NONE,
|
||||
TAG_START,
|
||||
TAG_2,
|
||||
TAG_INTO,
|
||||
TAG_INTO_INC_ROT,
|
||||
TAG_END,
|
||||
};
|
||||
|
||||
/* 804D198C */ int createHeap();
|
||||
/* 804D1A70 */ int create();
|
||||
/* 804D1FD0 */ ~daSpinner_c();
|
||||
|
|
@ -40,28 +49,28 @@ public:
|
|||
|
||||
static u32 getWaitArg() { return 0; }
|
||||
|
||||
int getDeleteFlg() const { return mDeleteFlg; }
|
||||
BOOL getDeleteFlg() const { return mDeleteFlg; }
|
||||
|
||||
bool checkSpinnerTagEnd() const { return mSpinnerTag == 5; }
|
||||
bool checkSpinnerTagIntoIncRot() const { return mSpinnerTag == 4; }
|
||||
bool checkSpinnerTagInto() const { return mSpinnerTag == 3; }
|
||||
bool checkSpinnerTagEnd() const { return mSpinnerTag == TAG_END; }
|
||||
bool checkSpinnerTagIntoIncRot() const { return mSpinnerTag == TAG_INTO_INC_ROT; }
|
||||
bool checkSpinnerTagInto() const { return mSpinnerTag == TAG_INTO; }
|
||||
bool checkGroundHit() { return mAcch.ChkGroundHit(); }
|
||||
|
||||
u8 getButtonJump() const { return mButtonJump; }
|
||||
u8 getJumpFlg() const { return mJumpFlg; }
|
||||
|
||||
void setMove(f32 i_speed, s16 param_1) {
|
||||
void setMove(f32 i_speed, s16 i_moveTime) {
|
||||
fopAcM_SetParam(this, 1);
|
||||
speedF = i_speed;
|
||||
field_0xa7a = param_1;
|
||||
mRideMoveTime = i_moveTime;
|
||||
mCyl.OnAtSetBit();
|
||||
}
|
||||
|
||||
void clearPathMove() { mpPathMove = NULL; }
|
||||
|
||||
void setSpinnerTag(const cXyz& param_0) {
|
||||
if (!mSpinnerTag) {
|
||||
mSpinnerTag = 1;
|
||||
if (mSpinnerTag == TAG_NONE) {
|
||||
mSpinnerTag = TAG_START;
|
||||
}
|
||||
|
||||
clearPathMove();
|
||||
|
|
@ -69,61 +78,61 @@ public:
|
|||
}
|
||||
|
||||
void offSpinnerTag() {
|
||||
if (mSpinnerTag != 0) {
|
||||
mSpinnerTag = 5;
|
||||
if (mSpinnerTag != TAG_NONE) {
|
||||
mSpinnerTag = TAG_END;
|
||||
}
|
||||
}
|
||||
|
||||
bool reflectAccept() {
|
||||
bool accept = false;
|
||||
if (!mBck.isStop() && mSpinnerTag == 0) {
|
||||
if (!mBck.isStop() && mSpinnerTag == TAG_NONE) {
|
||||
accept = true;
|
||||
}
|
||||
|
||||
return accept;
|
||||
}
|
||||
|
||||
MtxP getModelMtx() { return mpModel->getBaseTRMtx(); }
|
||||
MtxPtr getModelMtx() { return mpModel->getBaseTRMtx(); }
|
||||
|
||||
s16 getAngleY() { return shape_angle.y + field_0xa7e; }
|
||||
s16 getAngleY() { return shape_angle.y + mRotY; }
|
||||
|
||||
void forceDelete() { mDeleteFlg = 1; }
|
||||
void forceDelete() { mDeleteFlg = true; }
|
||||
|
||||
private:
|
||||
/* 0x568 */ J3DModel* mpModel;
|
||||
/* 0x56C */ mDoExt_bckAnm mBck;
|
||||
/* 0x588 */ J3DAnmTransform* field_0x588;
|
||||
/* 0x588 */ J3DAnmTransform* mpSpoutBck;
|
||||
/* 0x58C */ dBgS_AcchCir mAcchCir[3];
|
||||
/* 0x64C */ dBgS_Acch mAcch;
|
||||
/* 0x64C */ dBgS_LinkAcch mAcch;
|
||||
/* 0x824 */ dBgS_LinkLinChk mLinChk;
|
||||
/* 0x894 */ dPaPo_c field_0x894;
|
||||
/* 0x8CC */ Z2SoundObjSimple field_0x8cc;
|
||||
/* 0x894 */ dPaPo_c mPaPo;
|
||||
/* 0x8CC */ Z2SoundObjSimple mSound;
|
||||
/* 0x8EC */ dCcD_Stts mStts;
|
||||
/* 0x928 */ dCcD_Cyl mCyl;
|
||||
/* 0xA64 */ dPath* mpPathMove;
|
||||
/* 0xA68 */ dPath* field_0xa68;
|
||||
/* 0xA6C */ u8 field_0xa6c;
|
||||
/* 0xA6D */ u8 mJumpFlg;
|
||||
/* 0xA6E */ s8 field_0xa6e;
|
||||
/* 0xA6E */ s8 mReverb;
|
||||
/* 0xA6F */ u8 mSpinnerTag;
|
||||
/* 0xA70 */ u8 mButtonJump;
|
||||
/* 0xA71 */ u8 mDeleteFlg;
|
||||
/* 0xA72 */ u8 field_0xa72;
|
||||
/* 0xA73 */ s8 field_0xa73;
|
||||
/* 0xA72 */ u8 mPathNo;
|
||||
/* 0xA73 */ s8 mPathDirection;
|
||||
/* 0xA74 */ u8 field_0xa74;
|
||||
/* 0xA75 */ u8 field_0xa75;
|
||||
/* 0xA76 */ u8 field_0xa76;
|
||||
/* 0xA75 */ u8 mTrigJump;
|
||||
/* 0xA76 */ s8 field_0xa76;
|
||||
/* 0xA77 */ u8 mPathForceRemove;
|
||||
/* 0xA78 */ u8 field_0xa78;
|
||||
/* 0xA79 */ u8 field_0xa79;
|
||||
/* 0xA7A */ s16 field_0xa7a;
|
||||
/* 0xA7A */ s16 mRideMoveTime;
|
||||
/* 0xA7C */ s16 field_0xa7c;
|
||||
/* 0xA7E */ s16 field_0xa7e;
|
||||
/* 0xA7E */ s16 mRotY;
|
||||
/* 0xA80 */ s16 field_0xa80;
|
||||
/* 0xA82 */ s16 field_0xa82;
|
||||
/* 0xA84 */ f32 field_0xa84;
|
||||
/* 0xA88 */ f32 field_0xa88;
|
||||
/* 0xA8C */ u32 field_0xa8c[2];
|
||||
/* 0xA8C */ u32 mSpreadEmitterIDs[2];
|
||||
/* 0xA94 */ u32 field_0xa94;
|
||||
/* 0xA98 */ cXyz field_0xa98;
|
||||
/* 0xAA4 */ cXyz field_0xaa4;
|
||||
|
|
|
|||
|
|
@ -12,6 +12,11 @@ public:
|
|||
/* 80D62024 */ int getNearPathPos(cXyz*, dPath*);
|
||||
/* 80D629C0 */ int execute();
|
||||
|
||||
dPath* getKeepPath() { return mpBestPath; }
|
||||
u16 getKeepPointNum() const { return mBestNo; }
|
||||
bool checkDirectionFront() const { return field_0x6e8 == 1; }
|
||||
bool checkDirectionNone() const { return field_0x6e8 == 0; }
|
||||
|
||||
/* 0x568 */ dPath* mpInitPath;
|
||||
/* 0x56C */ dPath* mpBestPath;
|
||||
/* 0x570 */ dCcD_Cyl mCyl;
|
||||
|
|
|
|||
|
|
@ -407,6 +407,7 @@ public:
|
|||
cXyz* GetTgRVecP() { return mGObjTg.GetRVecP(); }
|
||||
bool ChkTgHookshotThrough() { return mGObjTg.ChkSPrm(0x80); }
|
||||
bool ChkTgShieldHit() { return mGObjTg.ChkRPrm(2); }
|
||||
bool ChkTgSpinnerReflect() { return mGObjTg.ChkSPrm(0x200); }
|
||||
|
||||
static const Z2SoundID m_hitSeID[24];
|
||||
|
||||
|
|
|
|||
|
|
@ -35,6 +35,8 @@ private:
|
|||
/* 0x0C */ f32 mCoHitLen;
|
||||
|
||||
public:
|
||||
virtual ~dCcMassS_HitInf() {}
|
||||
|
||||
void ClearPointer();
|
||||
void SetAreaHitObj(cCcD_Obj* obj) { mpArea = obj; }
|
||||
void SetCoHitObj(cCcD_Obj* obj) { mpCoObj = obj; }
|
||||
|
|
|
|||
|
|
@ -49,6 +49,15 @@ public:
|
|||
u32 GetMassResultCam() { return mMass_Mng.GetResultCam(); }
|
||||
void PrepareMass() { mMass_Mng.Prepare(); }
|
||||
|
||||
u32 ChkMass(cXyz* param_0, fopAc_ac_c** param_1, dCcMassS_HitInf* param_2) {
|
||||
u32 rt = mMass_Mng.Chk(param_0, param_1, param_2);
|
||||
return rt;
|
||||
}
|
||||
|
||||
void SetMassAttr(f32 radius, f32 height, u8 param_2, u8 param_3) {
|
||||
mMass_Mng.SetAttr(radius, height, param_2, param_3);
|
||||
}
|
||||
|
||||
static bool m_mtrl_hit_tbl[64];
|
||||
|
||||
// /* 0x0000 */ cCcS mCCcS;
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
#include "d/d_event_manager.h"
|
||||
#include "d/d_particle.h"
|
||||
#include "f_op/f_op_camera_mng.h"
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include "global.h"
|
||||
|
||||
class JKRAramArchive;
|
||||
|
|
@ -848,6 +849,8 @@ int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* i_arcNa
|
|||
int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* i_resName, JKRHeap* heap);
|
||||
int dComIfG_TimerDeleteRequest(int i_mode);
|
||||
int dComIfG_TimerStart(int i_mode, s16 i_time);
|
||||
u32 dComIfG_getTrigA(u32 i_padNo);
|
||||
|
||||
bool dComIfGp_isLightDropMapVisible();
|
||||
int dComIfG_TimerEnd(int i_mode, int param_1);
|
||||
void dComIfGs_onStageBossEnemy(int i_stageNo);
|
||||
|
|
@ -981,6 +984,10 @@ inline int dComIfG_getObjctResName2Index(const char* i_arcName, const char* i_re
|
|||
return g_dComIfG_gameInfo.mResControl.getObjectResName2Index(i_arcName, i_resName);
|
||||
}
|
||||
|
||||
inline u32 dComIfG_getTrigB(u32 i_padNo) {
|
||||
return mDoCPd_c::getTrig(i_padNo) & PAD_BUTTON_B;
|
||||
}
|
||||
|
||||
u8 dComIfGs_getMixItemIndex(int i_no);
|
||||
void dComIfGs_setSelectItemIndex(int i_no, u8 item_index);
|
||||
void dComIfGs_setMixItemIndex(int i_no, u8 item_index);
|
||||
|
|
@ -1029,6 +1036,7 @@ u8 dComIfGs_checkGetInsectNum();
|
|||
u8 dComIfGs_getSelectMixItemNoArrowIndex(int i_selmixItemIdx);
|
||||
BOOL dComIfGs_isStageTbox(int i_stageNo, int i_no);
|
||||
s8 dComIfGs_PolyDamageOff_Check();
|
||||
void dComIfGs_Grass_hide_Set(s8 param_0);
|
||||
|
||||
inline void dComIfGs_init() {
|
||||
g_dComIfG_gameInfo.info.init();
|
||||
|
|
|
|||
|
|
@ -615,5 +615,6 @@ BOOL dKy_SunMoon_Light_Check();
|
|||
void dKy_bgparts_activelight_set(LIGHT_INFLUENCE* light_inf_p, int bgpart_id);
|
||||
void dKy_bgparts_activelight_cut(int bgpart_id);
|
||||
int dKy_Indoor_check();
|
||||
void dKy_GfFog_tevstr_set(dKy_tevstr_c* tevstr_p);
|
||||
|
||||
#endif /* D_KANKYO_D_KANKYO_H */
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ struct dPath {
|
|||
/* 0x4 */ u8 field_0x4;
|
||||
/* 0x5 */ bool m_closed;
|
||||
/* 0x6 */ u8 field_0x6;
|
||||
/* 0x7 */ u8 field_0x7;
|
||||
/* 0x8 */ dStage_dPnt_c* m_points;
|
||||
};
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -1,6 +1,326 @@
|
|||
#include "d/actor/d_a_grass.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "d/d_s_play.h"
|
||||
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
|
||||
#include "SSystem/SComponent/c_counter.h"
|
||||
|
||||
/* 80524BD8-805253D8 001A00 0800+00 0/1 0/0 0/0 .data l_J_Ohana00_64TEX */
|
||||
const u16 l_J_Ohana00_64TEX__width = 63;
|
||||
const u16 l_J_Ohana00_64TEX__height = 63;
|
||||
#include "assets/l_J_Ohana00_64TEX.h"
|
||||
|
||||
/* 805253D8-8052569C 002200 02C4+00 0/1 0/0 0/0 .data l_flowerPos */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u8 l_flowerPos[708] = {
|
||||
0xC0, 0x8C, 0x2C, 0xF7, 0x42, 0x05, 0xBC, 0xDF, 0xC1, 0xA1, 0x00, 0x70, 0xBF, 0x50, 0x51, 0xB9,
|
||||
0x42, 0x12, 0x58, 0xAD, 0xC0, 0xDE, 0xCE, 0x40, 0xC1, 0x04, 0x67, 0x23, 0x41, 0xE5, 0x87, 0x25,
|
||||
0xC1, 0x1B, 0xF3, 0xF8, 0xC1, 0x8F, 0x17, 0x3E, 0x42, 0x05, 0x7F, 0xC6, 0xC1, 0x83, 0x9B, 0xFC,
|
||||
0xC1, 0x65, 0x1D, 0x1B, 0x42, 0x12, 0x1B, 0x94, 0xC0, 0x52, 0x78, 0xE2, 0x41, 0x4A, 0xF2, 0x65,
|
||||
0x41, 0xB8, 0x6D, 0xEC, 0xC1, 0x05, 0xB8, 0xB9, 0x41, 0x59, 0xA0, 0x35, 0x41, 0xC8, 0x8E, 0xEA,
|
||||
0x3F, 0xD7, 0x00, 0xBD, 0x40, 0xFD, 0x20, 0x08, 0x41, 0xA5, 0x7C, 0x50, 0xC0, 0x1A, 0x58, 0x21,
|
||||
0x40, 0x45, 0x4A, 0xF1, 0x41, 0xD5, 0xC3, 0x79, 0xC1, 0x03, 0x76, 0xC0, 0x40, 0x80, 0x01, 0x19,
|
||||
0x41, 0xE5, 0xE4, 0x79, 0x3F, 0xE9, 0x10, 0x80, 0xC0, 0xC5, 0xE3, 0xA8, 0x41, 0x8D, 0x10, 0xEF,
|
||||
0x41, 0x5D, 0x5E, 0x8F, 0xC1, 0x83, 0x4F, 0x3A, 0x41, 0x95, 0x37, 0x4A, 0x41, 0x13, 0xAB, 0xB0,
|
||||
0xC1, 0x0B, 0x2F, 0x13, 0x41, 0x82, 0x79, 0x28, 0x40, 0xBC, 0x27, 0x0F, 0xBF, 0xE5, 0x81, 0x9D,
|
||||
0x41, 0xBD, 0xAD, 0xB1, 0x40, 0xAD, 0xAF, 0x4F, 0xC1, 0x40, 0x5C, 0xAB, 0x41, 0xC5, 0xD4, 0x0B,
|
||||
0x3F, 0x52, 0x4A, 0x06, 0xC1, 0x92, 0x9C, 0x90, 0x41, 0x6B, 0x5E, 0x96, 0xC1, 0x70, 0xB5, 0x34,
|
||||
0x40, 0x09, 0xC7, 0xFC, 0x41, 0xA1, 0xD1, 0xA9, 0xC1, 0x99, 0xED, 0xD6, 0x40, 0x93, 0x3C, 0x3E,
|
||||
0x41, 0x91, 0x1A, 0x4B, 0xC0, 0xFD, 0x15, 0x96, 0xC1, 0x7E, 0x0D, 0x00, 0x41, 0x49, 0xEF, 0xDC,
|
||||
0xC0, 0x6D, 0x90, 0xAC, 0x40, 0x51, 0xDE, 0xF0, 0x40, 0x89, 0x1C, 0x93, 0xBE, 0xF1, 0xC4, 0x11,
|
||||
0xC1, 0x70, 0xB0, 0x8B, 0x40, 0xFE, 0x20, 0x45, 0x41, 0x30, 0xC6, 0x50, 0xC1, 0xA1, 0x7C, 0x11,
|
||||
0x41, 0x24, 0xCB, 0xE5, 0x3F, 0xE9, 0xDE, 0xBE, 0xBF, 0xEE, 0x7E, 0xD8, 0x40, 0xD4, 0x94, 0x18,
|
||||
0xC1, 0x1B, 0x18, 0xC1, 0xC1, 0x84, 0x20, 0x71, 0x40, 0xF3, 0x8A, 0x69, 0x40, 0x98, 0xEA, 0x1F,
|
||||
0x40, 0x97, 0xB4, 0x48, 0x41, 0x51, 0xF6, 0x25, 0x40, 0xA6, 0xAE, 0x30, 0x40, 0x5F, 0xA7, 0xB1,
|
||||
0x41, 0x89, 0x17, 0x78, 0x41, 0x75, 0xAC, 0x70, 0xC1, 0x8E, 0x18, 0x8E, 0x41, 0x39, 0xFE, 0x02,
|
||||
0x41, 0x6E, 0xCA, 0x67, 0x40, 0x9E, 0x6A, 0x68, 0x41, 0x10, 0x81, 0x11, 0x41, 0x1B, 0x6F, 0x7F,
|
||||
0x40, 0xAD, 0x4B, 0x29, 0x41, 0x3B, 0x3A, 0x41, 0xC1, 0x41, 0x4C, 0x98, 0x41, 0x7E, 0x28, 0x15,
|
||||
0x41, 0x6F, 0x56, 0x2E, 0xC1, 0x37, 0x57, 0x88, 0x41, 0x76, 0xB7, 0xB5, 0x41, 0x44, 0x9C, 0xFE,
|
||||
0x41, 0x25, 0x64, 0x90, 0x40, 0xE2, 0xFC, 0xE5, 0x41, 0xA7, 0xF4, 0x9C, 0xBF, 0xE7, 0xAE, 0x14,
|
||||
0x41, 0x0A, 0x36, 0x26, 0x41, 0xA4, 0x39, 0xDE, 0xC0, 0x24, 0xAB, 0x93, 0xBB, 0xF0, 0x06, 0x8E,
|
||||
0xC1, 0x20, 0x00, 0x00, 0x3F, 0x16, 0x81, 0x13, 0xBD, 0x88, 0xA2, 0x66, 0xC1, 0x20, 0x00, 0x00,
|
||||
0x3F, 0x1D, 0xDC, 0x0E, 0x40, 0xF1, 0x74, 0x95, 0x41, 0xA6, 0x44, 0xA9, 0xC0, 0x36, 0xA5, 0x59,
|
||||
0x41, 0x02, 0xFB, 0x9C, 0x41, 0xA5, 0xE9, 0xDA, 0xBF, 0xC3, 0xB5, 0x4A, 0xBC, 0xD0, 0x6B, 0xBE,
|
||||
0xC1, 0x20, 0x00, 0x00, 0x3F, 0x20, 0x46, 0x20, 0xBD, 0x47, 0x89, 0x61, 0xC1, 0x1F, 0xFF, 0xFF,
|
||||
0x3F, 0x14, 0x35, 0xDF, 0xC0, 0xFA, 0x9D, 0xC7, 0x41, 0x85, 0xC1, 0xB7, 0x40, 0xAA, 0xE7, 0x6F,
|
||||
0xC1, 0x10, 0x29, 0xEB, 0x41, 0x80, 0x9F, 0x20, 0x40, 0xD0, 0x7A, 0xD1, 0x3E, 0xC2, 0x2B, 0x7C,
|
||||
0xC1, 0x20, 0x00, 0x00, 0x3F, 0x29, 0xC0, 0x01, 0x3F, 0x38, 0x85, 0x7F, 0xC1, 0x1F, 0xFF, 0xFF,
|
||||
0x3E, 0xAF, 0xF4, 0x56, 0xC0, 0xFD, 0x71, 0xD8, 0x41, 0x83, 0xAB, 0x96, 0x40, 0xCE, 0xD3, 0xB1,
|
||||
0xC1, 0x0E, 0xBE, 0xA4, 0x41, 0x82, 0xB5, 0x43, 0x40, 0xAC, 0x90, 0x1F, 0x3E, 0xD9, 0x21, 0x68,
|
||||
0xC1, 0x20, 0x00, 0x00, 0x3E, 0xBF, 0x6C, 0x48, 0x3F, 0x2D, 0xCF, 0xBC, 0xC1, 0x20, 0x00, 0x00,
|
||||
0x3F, 0x21, 0x31, 0x44, 0xC0, 0xF8, 0xE0, 0x22, 0x41, 0xE8, 0x4B, 0x4B, 0xC1, 0x14, 0x36, 0x1F,
|
||||
0xC1, 0x0C, 0x7F, 0xA6, 0x41, 0xE4, 0x93, 0x45, 0xC1, 0x24, 0x12, 0xDA, 0xC0, 0x01, 0x25, 0x39,
|
||||
0xC1, 0x20, 0x00, 0x00, 0x3F, 0xB5, 0xEB, 0x3A, 0xBF, 0xF6, 0x43, 0x3D, 0xC1, 0x1F, 0xFF, 0xFE,
|
||||
0x3F, 0xC2, 0x77, 0x2D, 0xC1, 0x0B, 0x64, 0x82, 0x41, 0xE6, 0x84, 0x99, 0xC1, 0x15, 0x34, 0xD0,
|
||||
0xC0, 0xFB, 0x14, 0x70, 0x41, 0xE6, 0x5A, 0x05, 0xC1, 0x23, 0x13, 0xB7, 0xBF, 0xF7, 0x6B, 0x09,
|
||||
0xC1, 0x20, 0x00, 0x00, 0x3F, 0xB7, 0x60, 0x63, 0xC0, 0x00, 0x83, 0x99, 0xC1, 0x20, 0x00, 0x01,
|
||||
0x3F, 0xC1, 0x1A, 0x97, 0xC0, 0xCA, 0x0C, 0x4E, 0x41, 0x9A, 0x38, 0x78, 0xC0, 0xD2, 0x29, 0xBB,
|
||||
0xC0, 0xE2, 0xE4, 0x1F, 0x41, 0x97, 0x6E, 0x73, 0xC0, 0xEA, 0xBD, 0x92, 0xC0, 0xE1, 0x27, 0x37,
|
||||
0x41, 0x98, 0xE3, 0x73, 0xC0, 0xD3, 0xBD, 0x8E, 0xC0, 0xCB, 0xC6, 0x04, 0x41, 0x98, 0xC3, 0x84,
|
||||
0xC0, 0xE9, 0x27, 0x8D,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 8052569C-80525750 0024C4 00B4+00 0/1 0/0 0/0 .data l_flowerNormal */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u8 l_flowerNormal[180] = {
|
||||
0x3C, 0x8D, 0x2C, 0x38, 0x3F, 0x7F, 0xF5, 0xF9, 0x3B, 0x46, 0xF7, 0xA1, 0x3C, 0x76, 0x83,
|
||||
0x7F, 0x3F, 0x7F, 0xF5, 0xF9, 0x3C, 0x12, 0x5F, 0xE9, 0xBB, 0xE5, 0xA3, 0x5D, 0x3F, 0x7F,
|
||||
0xF5, 0xF9, 0x3C, 0x83, 0x57, 0xA3, 0x3B, 0xF9, 0xB1, 0x31, 0x3F, 0x7F, 0xF5, 0xF9, 0x3C,
|
||||
0x81, 0x0A, 0x57, 0xBC, 0x80, 0x86, 0x38, 0x3F, 0x7F, 0xF5, 0xF9, 0x3B, 0xFD, 0xE2, 0xEF,
|
||||
0xBC, 0x43, 0xEB, 0x7D, 0x3F, 0x7F, 0xF5, 0xF9, 0xBC, 0x51, 0x4E, 0x3C, 0x3C, 0x4B, 0x2D,
|
||||
0x90, 0x3F, 0x7F, 0xF5, 0xF9, 0xBC, 0x4A, 0x42, 0xAF, 0x3C, 0x4F, 0x0B, 0x6B, 0x3F, 0x7F,
|
||||
0xF5, 0xF9, 0xBC, 0x46, 0x4B, 0xA9, 0x3C, 0x4B, 0xF2, 0xB2, 0x3F, 0x7F, 0xF5, 0xF9, 0x3C,
|
||||
0x49, 0x7D, 0x8D, 0x3C, 0x8D, 0x2A, 0x20, 0x3F, 0x7F, 0xF5, 0xF9, 0x3B, 0x47, 0x5C, 0x4B,
|
||||
0xBC, 0x80, 0x84, 0x1F, 0x3F, 0x7F, 0xF5, 0xF9, 0x3B, 0xFD, 0xF3, 0xB6, 0xBC, 0x43, 0xFC,
|
||||
0x44, 0x3F, 0x7F, 0xF5, 0xF9, 0xBC, 0x51, 0x3D, 0x75, 0x3C, 0x4B, 0x3E, 0x57, 0x3F, 0x7F,
|
||||
0xF5, 0xF9, 0xBC, 0x4A, 0x31, 0xE8, 0x3C, 0x4F, 0x07, 0x3A, 0x3F, 0x7F, 0xF5, 0xF9, 0xBC,
|
||||
0x46, 0x54, 0x0D, 0x3C, 0x4B, 0xEE, 0x80, 0x3F, 0x7F, 0xF5, 0xF9, 0x3C, 0x49, 0x81, 0xBF,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80525750-80525758 002578 0008+00 0/1 0/0 0/0 .data l_flowerColor */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u8 l_flowerColor[8] = {
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xB2, 0xB2, 0xB2, 0xFF,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80525758-80525898 002580 0138+08 0/1 0/0 0/0 .data l_flowerTexCoord */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u8 l_flowerTexCoord[] = {
|
||||
0x40, 0x40, 0xD0, 0xEA, 0x3D, 0x69, 0x70, 0x72, 0x40, 0x7D, 0xD8, 0x30, 0x3F, 0x81, 0x3D, 0xC9,
|
||||
0x40, 0x40, 0xCE, 0x85, 0x3F, 0x81, 0x3D, 0xC9, 0x40, 0x01, 0xDD, 0x33, 0x3F, 0x81, 0x3D, 0xC9,
|
||||
0x40, 0x40, 0xD0, 0xEA, 0x3F, 0xF9, 0x46, 0xD4, 0x40, 0x00, 0xCD, 0xB8, 0xBF, 0x7F, 0xD4, 0x39,
|
||||
0x40, 0x40, 0xC2, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0xC8, 0x3F, 0x3E, 0xFF, 0xD4, 0x39,
|
||||
0x3F, 0xC1, 0xA6, 0x61, 0xBE, 0xFF, 0xD4, 0x39, 0x40, 0x00, 0xCD, 0xB8, 0x3F, 0x7F, 0xD4, 0x39,
|
||||
0x3F, 0x81, 0xB1, 0x53, 0x00, 0x00, 0x00, 0x00, 0x3D, 0x49, 0x75, 0x29, 0xBD, 0xFA, 0x4F, 0x87,
|
||||
0x3C, 0x54, 0x88, 0x83, 0xBD, 0xFA, 0x4F, 0x87, 0x3C, 0xF8, 0x85, 0x4D, 0xBF, 0x27, 0x85, 0x40,
|
||||
0x3D, 0x01, 0x8D, 0x69, 0xBF, 0x27, 0x98, 0x20, 0xBD, 0x44, 0x30, 0xB1, 0xBD, 0xFC, 0xC3, 0xA0,
|
||||
0xBB, 0xEE, 0x06, 0xD9, 0xBD, 0xFC, 0xC3, 0xA0, 0xBC, 0xF4, 0x1F, 0x21, 0xBF, 0x27, 0x90, 0xA8,
|
||||
0xBD, 0x00, 0x00, 0x00, 0xBF, 0x27, 0x92, 0x7D, 0xBE, 0x03, 0x5A, 0x86, 0xBD, 0x67, 0x4C, 0x0A,
|
||||
0xBE, 0x03, 0x5A, 0x86, 0xBC, 0x82, 0xCD, 0x3A, 0xBF, 0x25, 0x30, 0x59, 0xBD, 0x06, 0x8E, 0xC5,
|
||||
0xBF, 0x25, 0xFA, 0x66, 0xBD, 0x2F, 0x2B, 0x67, 0xBE, 0x03, 0x59, 0x79, 0x3D, 0x40, 0x8E, 0x9B,
|
||||
0xBE, 0x03, 0x59, 0x79, 0x3B, 0xAF, 0xE6, 0x0C, 0xBF, 0x25, 0xB3, 0x4A, 0x3C, 0x9E, 0x81, 0xCB,
|
||||
0xBF, 0x25, 0xD9, 0x3C, 0x3C, 0xF1, 0xE6, 0xCD, 0x3E, 0x1C, 0xD0, 0x78, 0x3D, 0x36, 0xDC, 0xA0,
|
||||
0x3E, 0x1C, 0xD0, 0x78, 0x3B, 0x48, 0x68, 0xBA, 0x3F, 0x59, 0x32, 0x61, 0x3C, 0xDD, 0x5F, 0x57,
|
||||
0x3F, 0x59, 0x61, 0xF6, 0x3C, 0xFB, 0x13, 0x9D, 0x3E, 0x1C, 0xD0, 0x78, 0xBB, 0xEB, 0xED, 0xFA,
|
||||
0x3E, 0x1C, 0xD0, 0x78, 0xBD, 0x47, 0xD3, 0xD4, 0x3F, 0x59, 0x49, 0x41, 0xBC, 0xCB, 0x3E, 0x57,
|
||||
0x3F, 0x59, 0x4B, 0x6A, 0xBC, 0xAD, 0x94, 0x8E, 0x3E, 0xA7, 0x7F, 0x28, 0x3D, 0x28, 0x87, 0xA9,
|
||||
0x3E, 0xA7, 0x67, 0x4D, 0x3C, 0x14, 0x46, 0x74, 0x3E, 0xA7, 0x73, 0xE2, 0xBC, 0x2F, 0x46, 0xAA,
|
||||
0x3E, 0xA7, 0x72, 0xD6, 0xBD, 0x2F, 0x46, 0xAA};
|
||||
#pragma pop
|
||||
|
||||
/* 80525898-805259F8 0026C0 0150+10 0/1 0/0 0/0 .data l_J_hana00DL */
|
||||
#include "assets/l_J_hana00DL.h"
|
||||
|
||||
/* 805259F8-80525AD8 002820 00DE+02 0/1 0/0 0/0 .data l_J_hana00_cDL */
|
||||
#include "assets/l_J_hana00_cDL.h"
|
||||
|
||||
/* 80525AD8-80525B78 002900 0099+07 0/2 0/0 0/0 .data l_matDL */
|
||||
#include "assets/l_matDL__d_a_grass.h"
|
||||
l_matDL__d_a_grass(l_J_Ohana00_64TEX)
|
||||
|
||||
/* 80525B78-80525C18 0029A0 0099+07 0/2 0/0 0/0 .data l_matLight4DL */
|
||||
#include "assets/l_matLight4DL.h"
|
||||
l_matLight4DL(l_J_Ohana00_64TEX)
|
||||
|
||||
/* 80525C18-80526C18 002A40 1000+00 0/1 0/0 0/0 .data l_J_Ohana01_64128_0419TEX */
|
||||
const u16 l_J_Ohana01_64128_0419TEX__width = 63;
|
||||
const u16 l_J_Ohana01_64128_0419TEX__height = 127;
|
||||
#include "assets/l_J_Ohana01_64128_0419TEX.h"
|
||||
|
||||
/* 80526C18-805270E0 003A40 04C8+00 0/1 0/0 0/0 .data l_flowerPos2 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u8 l_flowerPos2[1224] = {
|
||||
0x40, 0x25, 0x9F, 0x34, 0x42, 0xC2, 0x95, 0x72, 0xC1, 0x22, 0x34, 0x78, 0x41, 0x4D, 0xF9, 0x63,
|
||||
0x43, 0x09, 0x35, 0x0D, 0x40, 0x97, 0xD7, 0x54, 0x41, 0x76, 0x80, 0x55, 0x42, 0xBA, 0x1C, 0xB4,
|
||||
0x41, 0x91, 0x3E, 0x0D, 0xC0, 0x99, 0x8D, 0x47, 0x42, 0xC2, 0x8D, 0xF5, 0x41, 0x12, 0xA1, 0x12,
|
||||
0x41, 0xB9, 0x1A, 0xFF, 0x42, 0xBA, 0x37, 0xE3, 0xBF, 0xBD, 0xD2, 0xA6, 0x41, 0x4D, 0xF9, 0x34,
|
||||
0x43, 0x09, 0x35, 0x0F, 0x40, 0x97, 0xD6, 0xB6, 0xC1, 0x07, 0x14, 0xD0, 0x42, 0xCC, 0x9E, 0xFD,
|
||||
0xC1, 0x42, 0x39, 0x8F, 0xC0, 0xC1, 0xA4, 0x94, 0x43, 0x14, 0xDF, 0xBB, 0x40, 0xD1, 0x75, 0xE2,
|
||||
0x40, 0x32, 0xFE, 0x8B, 0x42, 0xC7, 0x29, 0xAC, 0x41, 0x9E, 0x0C, 0xC8, 0xC0, 0xC1, 0xA4, 0xE1,
|
||||
0x43, 0x14, 0xDF, 0xBB, 0x40, 0xD1, 0x75, 0x8E, 0xC1, 0x95, 0xAF, 0x93, 0x42, 0xC4, 0x31, 0xF1,
|
||||
0x41, 0x1A, 0xB9, 0x87, 0x41, 0x51, 0x09, 0xAB, 0x42, 0xCF, 0x96, 0xC1, 0xC0, 0x03, 0x66, 0x1F,
|
||||
0xC1, 0x01, 0x95, 0x6E, 0x42, 0xB3, 0x6A, 0x42, 0xC1, 0x8B, 0x4C, 0x1D, 0xC0, 0xD4, 0xA5, 0x9C,
|
||||
0x42, 0xFE, 0x7B, 0x90, 0xC1, 0x0A, 0x4F, 0x99, 0x40, 0x1C, 0xE1, 0x15, 0x42, 0xC2, 0x2D, 0x47,
|
||||
0x41, 0x06, 0xA6, 0x41, 0xC1, 0x7B, 0x73, 0x6E, 0x42, 0xB8, 0x6D, 0x93, 0x3F, 0x5A, 0xCC, 0xA3,
|
||||
0x41, 0x21, 0x15, 0xF4, 0x42, 0xBD, 0x29, 0xFE, 0xC1, 0x1D, 0x9F, 0x3A, 0xC0, 0xD4, 0xA5, 0xEC,
|
||||
0x42, 0xFE, 0x7B, 0x93, 0xC1, 0x0A, 0x4F, 0xE9, 0x41, 0x06, 0x70, 0xFC, 0x42, 0xC4, 0x24, 0x9D,
|
||||
0x40, 0x7C, 0x3E, 0xE6, 0x41, 0x24, 0x1D, 0x91, 0x42, 0xC3, 0xD6, 0x8C, 0x40, 0x7C, 0x3E, 0xE6,
|
||||
0x3F, 0xEA, 0x26, 0xBB, 0xC1, 0x20, 0x00, 0x00, 0x3E, 0x25, 0x61, 0x91, 0xBF, 0x8B, 0x0E, 0xC3,
|
||||
0xC1, 0x20, 0x00, 0x01, 0x3E, 0x1C, 0xD6, 0x80, 0x41, 0x15, 0x52, 0x2B, 0x42, 0xC4, 0x0E, 0x24,
|
||||
0x40, 0x40, 0xBB, 0xC3, 0x41, 0x15, 0x3C, 0x61, 0x42, 0xC3, 0xED, 0x00, 0x40, 0x9B, 0xE1, 0x05,
|
||||
0x3E, 0xBE, 0xC3, 0xFC, 0xC1, 0x20, 0x00, 0x00, 0x3F, 0xCE, 0x28, 0xBB, 0x3E, 0xBE, 0xBA, 0x6B,
|
||||
0xC1, 0x1F, 0xFF, 0xFF, 0xBF, 0xA5, 0xFF, 0xCE, 0xC0, 0x6B, 0x3A, 0x75, 0x42, 0xC1, 0x3D, 0x51,
|
||||
0xC0, 0xA0, 0xCD, 0x8E, 0xBF, 0xDC, 0xEC, 0x63, 0x42, 0xC1, 0x54, 0xB6, 0xC0, 0xA0, 0x6C, 0x42,
|
||||
0x3F, 0x88, 0xCC, 0x2D, 0xC1, 0x1F, 0xFF, 0xFF, 0xBF, 0x24, 0x6B, 0xBE, 0xBF, 0xC0, 0xE6, 0x08,
|
||||
0xC1, 0x20, 0x00, 0x01, 0xBF, 0x29, 0x08, 0x81, 0xC0, 0x2C, 0x6A, 0x66, 0x42, 0xC1, 0x36, 0x4D,
|
||||
0xC0, 0xBF, 0xC9, 0xD6, 0xC0, 0x2D, 0x46, 0x30, 0x42, 0xC1, 0x5B, 0xB5, 0xC0, 0x81, 0x6F, 0xF4,
|
||||
0xBE, 0x68, 0x6B, 0xDF, 0xC1, 0x20, 0x00, 0x00, 0x3F, 0x23, 0x29, 0xD4, 0xBE, 0x58, 0xD0, 0xCC,
|
||||
0xC1, 0x20, 0x00, 0x01, 0xBF, 0xF8, 0x39, 0x71, 0xC0, 0x79, 0x82, 0x0E, 0x42, 0xD0, 0x8E, 0xE6,
|
||||
0x40, 0x7C, 0x3E, 0xE6, 0xC0, 0x00, 0x2E, 0x23, 0x42, 0xD0, 0xA5, 0xB2, 0x40, 0x7C, 0x3E, 0xE6,
|
||||
0x3F, 0x2F, 0x08, 0x57, 0xC1, 0x1F, 0x8E, 0x06, 0xBB, 0xAE, 0xF2, 0xC7, 0xBF, 0xD7, 0xC7, 0x1D,
|
||||
0xC1, 0x20, 0x71, 0xFC, 0xBB, 0xAE, 0xF2, 0xC7, 0xC0, 0x3C, 0xE3, 0xDE, 0x42, 0xD0, 0xAB, 0x13,
|
||||
0x40, 0x3F, 0x99, 0x18, 0xC0, 0x3C, 0xCC, 0x57, 0x42, 0xD0, 0x89, 0x86, 0x40, 0x9C, 0x72, 0x58,
|
||||
0xBF, 0x00, 0x08, 0x31, 0xC1, 0x20, 0xA7, 0xBD, 0x3F, 0x96, 0xEC, 0x4A, 0xBF, 0x00, 0x7D, 0xB3,
|
||||
0xC1, 0x1F, 0x58, 0x45, 0xBF, 0x98, 0x4A, 0x30, 0x40, 0xBD, 0x8F, 0x9B, 0x42, 0x63, 0xF3, 0x30,
|
||||
0x40, 0x23, 0x56, 0x11, 0x41, 0x65, 0x2F, 0xC6, 0x42, 0xBB, 0x00, 0xB1, 0xC1, 0x8C, 0x12, 0x7A,
|
||||
0x41, 0xCA, 0x62, 0xA7, 0x42, 0xBB, 0x00, 0xB0, 0x41, 0x28, 0xB1, 0x15, 0xC1, 0x5B, 0xA6, 0x8E,
|
||||
0x42, 0xBB, 0x00, 0xAE, 0xC0, 0xD1, 0x1E, 0x86, 0xC0, 0x30, 0x44, 0xBF, 0x42, 0xBB, 0x00, 0xAD,
|
||||
0x41, 0xAC, 0x23, 0x4E, 0xBF, 0xAD, 0xFA, 0x8F, 0x41, 0xB0, 0x93, 0x1B, 0x3F, 0x85, 0x39, 0x9F,
|
||||
0x41, 0x9F, 0x2B, 0xD3, 0x42, 0x90, 0x9F, 0x64, 0xC1, 0x8A, 0x85, 0x5E, 0x41, 0x7B, 0x1C, 0x3E,
|
||||
0x42, 0x90, 0x9F, 0x63, 0x41, 0xA7, 0xF3, 0x96, 0xC1, 0x13, 0xCB, 0x32, 0x42, 0x90, 0x9F, 0x65,
|
||||
0xC1, 0x92, 0x20, 0x52, 0xC1, 0x7F, 0xDB, 0xED, 0x42, 0x90, 0x9F, 0x65, 0x41, 0x46, 0xD3, 0x80,
|
||||
0xBF, 0x24, 0xCA, 0xC5, 0x42, 0x44, 0xF1, 0x22, 0xC0, 0x3B, 0xEA, 0xC4, 0xC0, 0x35, 0x33, 0xCE,
|
||||
0x42, 0x44, 0xDE, 0xC0, 0xC0, 0x3C, 0xDA, 0x27, 0xBF, 0xDF, 0x4A, 0x77, 0x42, 0x44, 0xF6, 0xA3,
|
||||
0xBF, 0xEC, 0xBC, 0x8C, 0xBF, 0xDD, 0x8A, 0x1A, 0x42, 0x44, 0xD9, 0x3D, 0xC0, 0x81, 0x30, 0x55,
|
||||
0xBF, 0x4A, 0x36, 0xF4, 0x42, 0x56, 0x1A, 0x91, 0x40, 0x0B, 0xFC, 0x11, 0xC0, 0x3B, 0xC6, 0x93,
|
||||
0x42, 0x55, 0xE6, 0xFE, 0x40, 0x0B, 0xFC, 0x0D, 0xBF, 0xEE, 0x39, 0xBD, 0x42, 0x55, 0xDA, 0xD7,
|
||||
0x40, 0x50, 0x93, 0xC4, 0xBF, 0xEE, 0x6E, 0xEB, 0x42, 0x56, 0x26, 0xB9, 0x3F, 0x8E, 0xC8, 0xB4,
|
||||
0x40, 0xBF, 0xC7, 0x22, 0x42, 0x8E, 0x14, 0xBA, 0x40, 0x3F, 0x9A, 0x4E, 0x41, 0x03, 0x00, 0x18,
|
||||
0x42, 0x8D, 0xE7, 0xA4, 0x40, 0x3F, 0xCE, 0xF6, 0x40, 0xE2, 0xF3, 0x95, 0x42, 0x8E, 0x07, 0xC0,
|
||||
0x3F, 0xF2, 0xF4, 0xA5, 0x40, 0xE2, 0xDA, 0xA3, 0x42, 0x8D, 0xF4, 0x9D, 0x40, 0x82, 0xF4, 0x90,
|
||||
0xBE, 0x9C, 0x1E, 0xDE, 0x42, 0x00, 0x1D, 0x6A, 0xC0, 0xD3, 0x0E, 0xA8, 0x41, 0x2D, 0xDB, 0x19,
|
||||
0x42, 0x00, 0x1D, 0x68, 0xC0, 0xC8, 0xE4, 0xE0, 0x40, 0x17, 0x47, 0xAA, 0x41, 0x99, 0xE3, 0xCB,
|
||||
0x3F, 0x88, 0x3F, 0x79, 0x41, 0x12, 0xF6, 0x8B, 0x42, 0x00, 0x1D, 0x67, 0x41, 0x10, 0xBB, 0x1F,
|
||||
0xC0, 0x40, 0x6B, 0x66, 0x42, 0x00, 0x1D, 0x68, 0x40, 0xB5, 0xCE, 0x40, 0x40, 0xB0, 0x3B, 0xDA,
|
||||
0x42, 0x08, 0x7F, 0x60, 0x40, 0xB3, 0xDC, 0xD7, 0xC0, 0x7B, 0x9C, 0x13, 0x42, 0x08, 0x7F, 0x5F,
|
||||
0x41, 0x39, 0xAA, 0x67, 0xBF, 0x7D, 0x10, 0x1B, 0x41, 0xB4, 0xF6, 0xEB, 0x3F, 0x43, 0x3A, 0x04,
|
||||
0xC1, 0x31, 0xB5, 0x84, 0x42, 0x08, 0x7F, 0x5E, 0xC0, 0x02, 0x89, 0x9C, 0x3F, 0x61, 0xC2, 0x2B,
|
||||
0x42, 0x08, 0x7F, 0x5F, 0xC0, 0xC2, 0x2D, 0xCD, 0xC0, 0xB7, 0xA5, 0x40, 0x42, 0x03, 0xBD, 0x64,
|
||||
0xC0, 0xF9, 0x2E, 0x71, 0x40, 0x97, 0xF6, 0x62, 0x42, 0x03, 0xBD, 0x63, 0xC1, 0x3A, 0x58, 0x92,
|
||||
0xBE, 0xD3, 0x65, 0xED, 0x41, 0x99, 0xE3, 0xCC, 0xBF, 0xD5, 0x9D, 0xED, 0x41, 0x0E, 0x33, 0x4E,
|
||||
0x42, 0x03, 0xBD, 0x61, 0x40, 0x4C, 0xFD, 0x0D, 0xBE, 0x25, 0xBF, 0xF0, 0x42, 0x09, 0x9F, 0xF5,
|
||||
0xC0, 0x05, 0xBD, 0x6F, 0x3F, 0x87, 0x66, 0x17, 0xC1, 0x1E, 0x5D, 0x2E, 0xBF, 0x22, 0xBD, 0x5E,
|
||||
0xBF, 0xBE, 0xED, 0x1C, 0xC1, 0x1E, 0x5D, 0x30, 0xBF, 0x27, 0x4E, 0x12, 0xC0, 0x0C, 0x84, 0x34,
|
||||
0x42, 0x09, 0x96, 0x95, 0xC0, 0x06, 0xA0, 0xBA, 0xBF, 0x97, 0xAF, 0xEA, 0x42, 0x09, 0xA2, 0xC4,
|
||||
0xBF, 0x8A, 0x29, 0x63, 0xBE, 0x66, 0x0B, 0x70, 0xC1, 0x1E, 0x5D, 0x2E, 0x3F, 0x21, 0x7E, 0xBB,
|
||||
0xBE, 0x56, 0x99, 0x42, 0xC1, 0x1E, 0x5D, 0x30, 0xBF, 0xF5, 0xAF, 0xB0, 0xBF, 0x96, 0x19, 0x3B,
|
||||
0x42, 0x09, 0x93, 0xC4, 0xC0, 0x47, 0x42, 0x91, 0xBE, 0xB2, 0xE9, 0xEE, 0x42, 0x09, 0x50, 0x68,
|
||||
0x3F, 0xB1, 0x1A, 0xCA, 0x3F, 0x2D, 0x3E, 0x2D, 0xC1, 0x1D, 0xEC, 0x5F, 0xBB, 0xAD, 0x2D, 0xCB,
|
||||
0xBF, 0xD5, 0x92, 0x4B, 0xC1, 0x1E, 0xCE, 0x00, 0xBB, 0xAD, 0x2D, 0xCB, 0xC0, 0x17, 0x75, 0x3A,
|
||||
0x42, 0x09, 0x1F, 0xE3, 0x3F, 0xB1, 0x1A, 0xCA, 0xBF, 0xAD, 0xB9, 0x73, 0x42, 0x09, 0x14, 0x75,
|
||||
0x40, 0x19, 0x14, 0xF9, 0xBE, 0xFD, 0x72, 0x15, 0xC1, 0x1F, 0x03, 0x34, 0x3F, 0x95, 0x61, 0x35,
|
||||
0xBE, 0xFE, 0x5A, 0xBC, 0xC1, 0x1D, 0xB7, 0x2A, 0xBF, 0x96, 0xBB, 0x88, 0xBF, 0xAD, 0xEB, 0x7D,
|
||||
0x42, 0x09, 0x5B, 0xD8, 0x3E, 0xC0, 0x2E, 0xA9, 0x40, 0x1E, 0x27, 0x67, 0x42, 0x02, 0x4C, 0x03,
|
||||
0x3F, 0xC0, 0x2D, 0xB6, 0x40, 0x94, 0xBE, 0xD1, 0x42, 0x02, 0x30, 0x38, 0x3F, 0xC0, 0xDA, 0xE4,
|
||||
0x3F, 0xE7, 0xC1, 0xCE, 0xC1, 0x1E, 0x5D, 0x2E, 0x3E, 0x23, 0xB0, 0x81, 0xBF, 0x89, 0xA2, 0xBE,
|
||||
0xC1, 0x1E, 0x5D, 0x30, 0x3E, 0x1B, 0x3B, 0xFB, 0x40, 0x63, 0xE5, 0x3F, 0x42, 0x02, 0x44, 0x03,
|
||||
0x3E, 0xD5, 0xAB, 0x19, 0x40, 0x63, 0xD6, 0x7C, 0x42, 0x02, 0x38, 0x37, 0x40, 0x25, 0xC5, 0x61,
|
||||
0x3E, 0xBC, 0xD0, 0x9A, 0xC1, 0x1E, 0x5D, 0x2E, 0x3F, 0xCC, 0x0D, 0x13, 0x3E, 0xBC, 0xC7, 0x2A,
|
||||
0xC1, 0x1E, 0x5D, 0x2D, 0xBF, 0xA4, 0x4D, 0x4D,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 805270E0-80527200 003F08 0120+00 0/1 0/0 0/0 .data l_flowerNormal2 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u8 l_flowerNormal2[288] = {
|
||||
0xBB, 0xC4, 0x93, 0x42, 0x3F, 0x7F, 0xF6, 0x6F, 0xBC, 0x83, 0x0E, 0x3D, 0x3C, 0x83, 0x0C, 0x24,
|
||||
0x3F, 0x7F, 0xF5, 0x84, 0x3C, 0x03, 0x0E, 0x3D, 0xB8, 0x51, 0xB7, 0x17, 0x3F, 0x7F, 0xF5, 0xF9,
|
||||
0x3C, 0x8F, 0x57, 0xF7, 0xBC, 0x8F, 0x57, 0xF7, 0x3F, 0x7F, 0xF5, 0xF9, 0x38, 0x1F, 0x62, 0x30,
|
||||
0xBD, 0xB8, 0xC9, 0xFB, 0x3F, 0x7E, 0x68, 0x3C, 0xBD, 0x85, 0xBD, 0x94, 0xBD, 0xD9, 0x65, 0xB2,
|
||||
0x3F, 0x7E, 0x28, 0x13, 0xBD, 0x63, 0x62, 0xA6, 0xBD, 0xB8, 0x12, 0x7B, 0x3F, 0x7E, 0x6B, 0x0E,
|
||||
0xBD, 0x85, 0x62, 0x5A, 0xBD, 0xFD, 0x2D, 0x88, 0x3F, 0x7D, 0x58, 0x32, 0xBD, 0x95, 0xE3, 0x97,
|
||||
0xBD, 0xB5, 0xC6, 0x3B, 0x3F, 0x7E, 0xFB, 0x4C, 0x3C, 0x01, 0xC7, 0x15, 0xB8, 0xFF, 0xDA, 0x40,
|
||||
0x3F, 0x7F, 0xF5, 0xF9, 0x3C, 0x8F, 0x57, 0xF7, 0x37, 0x38, 0x8C, 0xA4, 0x3F, 0x7F, 0xF5, 0xF9,
|
||||
0xBC, 0x8F, 0x57, 0xF7, 0xBC, 0x8F, 0x57, 0xF7, 0x3F, 0x7F, 0xF5, 0xF9, 0xB8, 0xBE, 0xD7, 0x41,
|
||||
0x38, 0x06, 0x37, 0xBD, 0x3F, 0x7F, 0xF5, 0xF9, 0xBC, 0x8F, 0x57, 0xF7, 0x37, 0x6A, 0xE1, 0x8B,
|
||||
0x3F, 0x7F, 0xF5, 0xF9, 0x3C, 0x8F, 0x57, 0xF7, 0xBC, 0x8E, 0xC7, 0x43, 0x3F, 0x7F, 0xF5, 0xF9,
|
||||
0x3A, 0xCB, 0xF2, 0xB2, 0xBC, 0x8F, 0x57, 0xF7, 0x3F, 0x7F, 0xF5, 0xF9, 0x00, 0x00, 0x00, 0x00,
|
||||
0xBC, 0x8F, 0x57, 0xF7, 0x3F, 0x7F, 0xF5, 0xF9, 0xB7, 0xD1, 0xB7, 0x17, 0xBC, 0x8F, 0x55, 0xDE,
|
||||
0x3F, 0x7F, 0xF5, 0xF9, 0x39, 0x4E, 0x91, 0xC9, 0xBA, 0x02, 0x49, 0x1B, 0x3F, 0x7F, 0xF5, 0xF9,
|
||||
0x3C, 0x8F, 0x49, 0x49, 0x3C, 0x80, 0x34, 0x6E, 0x3F, 0x7F, 0xF5, 0xF9, 0x3C, 0x00, 0x3C, 0xD1,
|
||||
0xBC, 0x8E, 0x7F, 0xF6, 0x3F, 0x7F, 0xF5, 0xF9, 0xBA, 0xF8, 0xE7, 0xDE, 0x3B, 0x98, 0xD4, 0x78,
|
||||
0x3F, 0x7F, 0xF5, 0xF9, 0xBC, 0x8A, 0x28, 0x78, 0x3C, 0x8B, 0xFE, 0x3B, 0x3F, 0x7F, 0xF5, 0xF9,
|
||||
0x3B, 0x76, 0x7B, 0x1C, 0x3B, 0x99, 0x6B, 0x76, 0x3F, 0x7F, 0xF5, 0xF9, 0xBC, 0x8A, 0x1D, 0xFC,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80527200-80527208 004028 0008+00 0/1 0/0 0/0 .data l_flowerColor2 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u8 l_flowerColor2[8] = {
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xB2, 0xFF,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80527208-80527338 004030 0120+10 0/1 0/0 0/0 .data l_flowerTexCoord2 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u8 l_flowerTexCoord2[] = {
|
||||
0x3F, 0xF3, 0x6D, 0x11, 0x3F, 0x72, 0x0B, 0xA2, 0x3F, 0x80, 0x00, 0x00, 0x3C, 0xAB, 0xDC, 0x27,
|
||||
0x3D, 0xC9, 0x2E, 0xE8, 0x3F, 0x72, 0x0B, 0xA2, 0x40, 0x2B, 0x93, 0x9A, 0x3F, 0x81, 0x7B, 0x96,
|
||||
0x40, 0x2B, 0x93, 0x9A, 0x3F, 0x7B, 0xB5, 0x18, 0x40, 0x06, 0x1F, 0xCD, 0x3F, 0x7B, 0xB5, 0x18,
|
||||
0x40, 0x06, 0x00, 0x47, 0x3F, 0x81, 0x7B, 0x96, 0x40, 0x06, 0x16, 0xBE, 0x3F, 0x81, 0x7B, 0x96,
|
||||
0x40, 0x06, 0x09, 0x5B, 0x3F, 0x7B, 0xB5, 0x18, 0x40, 0x07, 0xBB, 0x1F, 0x3F, 0x7B, 0xB5, 0x18,
|
||||
0x40, 0x07, 0xC2, 0xF8, 0x3F, 0x81, 0x7B, 0x96, 0x40, 0x07, 0xB8, 0xC3, 0x3F, 0x81, 0x7B, 0x96,
|
||||
0x40, 0x07, 0xC5, 0x50, 0x3F, 0x7B, 0xB5, 0x18, 0x40, 0x03, 0xA9, 0x58, 0x3F, 0x7B, 0xB5, 0x18,
|
||||
0x40, 0x03, 0xA9, 0x58, 0x3F, 0x81, 0x7B, 0x96, 0x40, 0x00, 0x7B, 0xB7, 0xC0, 0xA0, 0x9B, 0xA2,
|
||||
0x40, 0x39, 0x01, 0x1D, 0xC0, 0xBD, 0x25, 0x1C, 0x40, 0x00, 0x7B, 0xB7, 0xC0, 0xBE, 0x0D, 0xCC,
|
||||
0x40, 0x00, 0x7B, 0xB7, 0xC0, 0xBD, 0x25, 0x1C, 0x40, 0x25, 0xD5, 0xA2, 0x3F, 0x7B, 0xB5, 0x18,
|
||||
0x40, 0x25, 0xD9, 0x1F, 0x3F, 0x81, 0x7B, 0x96, 0x40, 0x25, 0xD4, 0x95, 0x3F, 0x81, 0x7B, 0x96,
|
||||
0x40, 0x25, 0xDA, 0x2B, 0x3F, 0x7B, 0xB5, 0x18, 0x40, 0x24, 0x06, 0x9E, 0x3F, 0x7B, 0xB5, 0x18,
|
||||
0x40, 0x24, 0x06, 0x9E, 0x3F, 0x81, 0x7B, 0x96, 0x40, 0x2F, 0xF0, 0x35, 0x3F, 0x81, 0x7B, 0x96,
|
||||
0x40, 0x2F, 0xF8, 0x16, 0x3F, 0x7B, 0xB5, 0x18, 0x40, 0x2F, 0xF2, 0x78, 0x3F, 0x7B, 0xB5, 0x18,
|
||||
0x40, 0x2F, 0xF5, 0xCF, 0x3F, 0x81, 0x7B, 0x96, 0x40, 0x66, 0xBD, 0x6A, 0x3F, 0x51, 0x10, 0x6F,
|
||||
0x40, 0x66, 0xBD, 0x6A, 0x3F, 0x97, 0xF6, 0xBA, 0x40, 0x7C, 0x19, 0xB1, 0x3F, 0x80, 0x5E, 0x57,
|
||||
0x40, 0x1B, 0x7D, 0x52, 0x3F, 0x97, 0xF6, 0xBA, 0x40, 0x04, 0x26, 0x74, 0x3F, 0x80, 0x3F, 0x79,
|
||||
0x40, 0x1B, 0x7D, 0x52, 0x3F, 0x80, 0x3F, 0x79, 0x40, 0x1B, 0x7D, 0x52, 0x3F, 0x51, 0x10, 0x6F};
|
||||
#pragma pop
|
||||
|
||||
/* 80527338-80527478 004160 0138+08 0/1 0/0 0/0 .data l_J_hana01DL */
|
||||
#include "assets/l_J_hana01DL.h"
|
||||
|
||||
/* 80527478-80527558 0042A0 00DE+02 0/0 0/0 0/0 .data l_J_hana01_c_00DL */
|
||||
#include "assets/l_J_hana01_c_00DL.h"
|
||||
|
||||
/* 80527558-80527698 004380 0128+18 0/1 0/0 0/0 .data l_J_hana01_c_01DL */
|
||||
#include "assets/l_J_hana01_c_01DL.h"
|
||||
|
||||
/* 80527698-80527738 0044C0 0099+07 0/2 0/0 0/0 .data l_mat2DL */
|
||||
#include "assets/l_mat2DL__d_a_grass.h"
|
||||
l_mat2DL__d_a_grass(l_J_Ohana01_64128_0419TEX)
|
||||
|
||||
/* 80527738-805277D4 004560 0099+03 0/2 0/0 0/0 .data l_mat2Light4DL */
|
||||
#include "assets/l_mat2Light4DL.h"
|
||||
l_mat2Light4DL(l_J_Ohana01_64128_0419TEX)
|
||||
|
||||
/* 80520988-80520AD8 004D28 0150+00 1/1 0/0 0/0 .text WorkCo__14dFlower_data_cFP10fopAc_ac_cUli */
|
||||
void dFlower_data_c::WorkCo(fopAc_ac_c* param_0, u32 param_1, int param_2) {
|
||||
// NONMATCHING
|
||||
void dFlower_data_c::WorkCo(fopAc_ac_c* i_hitActor, u32 i_massFlg, int i_roomNo) {
|
||||
cXyz sp8;
|
||||
sp8.x = m_pos.x - i_hitActor->current.pos.x;
|
||||
sp8.z = m_pos.z - i_hitActor->current.pos.z;
|
||||
|
||||
f32 temp_f1 = sp8.abs2XZ();
|
||||
if (!(temp_f1 > 900.0f)) {
|
||||
sp8.y = m_pos.y - i_hitActor->current.pos.y;
|
||||
|
||||
s16 temp_r26 = cM_atan2s(sp8.x, sp8.z);
|
||||
f32 var_f31 = JMAFastSqrt(temp_f1);
|
||||
|
||||
dFlower_anm_c* var_r29;
|
||||
if (field_0x01 < 8) {
|
||||
int temp_r3_2 = daGrass_c::getFlower()->newAnm();
|
||||
if (temp_r3_2 < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
field_0x01 = temp_r3_2;
|
||||
var_r29 = daGrass_c::getFlower()->getAnm(field_0x01);
|
||||
} else {
|
||||
var_r29 = daGrass_c::getFlower()->getAnm(field_0x01);
|
||||
}
|
||||
|
||||
var_r29->m_angY = temp_r26;
|
||||
var_r29->m_angX = cM_atan2s(30.0f - var_f31, 65.0f);
|
||||
}
|
||||
}
|
||||
|
||||
/* 80520AD8-80520B34 004E78 005C+00 4/4 0/0 0/0 .text deleteAnm__14dFlower_data_cFv */
|
||||
|
|
@ -14,21 +334,198 @@ void dFlower_data_c::deleteAnm() {
|
|||
|
||||
/* 80520B34-80520CFC 004ED4 01C8+00 1/1 0/0 0/0 .text
|
||||
* WorkAt_NoCutAnim__14dFlower_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInfP8cCcD_Obj */
|
||||
void dFlower_data_c::WorkAt_NoCutAnim(fopAc_ac_c* param_0, u32 param_1, int param_2,
|
||||
dCcMassS_HitInf* param_3, cCcD_Obj* param_4) {
|
||||
// NONMATCHING
|
||||
void dFlower_data_c::WorkAt_NoCutAnim(fopAc_ac_c* i_hitActor, u32 i_massFlg, int i_roomNo,
|
||||
dCcMassS_HitInf* i_hitinf, cCcD_Obj* i_hitobj) {
|
||||
dCcD_GObjInf* var_r26 = dCcD_GetGObjInf(i_hitobj);
|
||||
cXyz sp14(*var_r26->GetAtVecP());
|
||||
|
||||
f32 temp_f31 = sp14.abs2XZ();
|
||||
if (cM3d_IsZero(temp_f31) && fopAcM_GetName(i_hitActor) == PROC_ALINK) {
|
||||
sp14.x = m_pos.x - i_hitActor->current.pos.x;
|
||||
sp14.y = m_pos.y - i_hitActor->current.pos.y;
|
||||
sp14.z = m_pos.z - i_hitActor->current.pos.z;
|
||||
temp_f31 = sp14.abs2XZ();
|
||||
}
|
||||
|
||||
temp_f31 = sp14.abs2XZ();
|
||||
|
||||
s16 temp_r25 = cM_atan2s(sp14.x, sp14.z);
|
||||
temp_f31 = JMAFastSqrt(temp_f31);
|
||||
|
||||
dFlower_anm_c* var_r29;
|
||||
if (field_0x01 < 8) {
|
||||
int temp_r3_2 = daGrass_c::getFlower()->newAnm();
|
||||
if (temp_r3_2 < 0) {
|
||||
return;
|
||||
}
|
||||
field_0x01 = temp_r3_2;
|
||||
var_r29 = daGrass_c::getFlower()->getAnm(field_0x01);
|
||||
} else {
|
||||
var_r29 = daGrass_c::getFlower()->getAnm(field_0x01);
|
||||
}
|
||||
|
||||
var_r29->m_angY = temp_r25;
|
||||
var_r29->m_angX = cM_atan2s(temp_f31, 220.0f);
|
||||
}
|
||||
|
||||
/* 805284E8-805284EC 000C20 0004+00 1/2 0/0 0/0 .bss None */
|
||||
static bool data_805284E8;
|
||||
|
||||
/* 80520CFC-80521A3C 00509C 0D40+00 1/1 0/0 0/0 .text
|
||||
* WorkAt__14dFlower_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInf */
|
||||
void dFlower_data_c::WorkAt(fopAc_ac_c* param_0, u32 param_1, int param_2,
|
||||
dCcMassS_HitInf* param_3) {
|
||||
// NONMATCHING
|
||||
void dFlower_data_c::WorkAt(fopAc_ac_c* i_hitActor, u32 i_massFlg, int i_roomNo, dCcMassS_HitInf* i_hitinf) {
|
||||
cCcD_Obj* hitobj_p = i_hitinf->GetAtHitObj();
|
||||
|
||||
if (hitobj_p != NULL &&
|
||||
(hitobj_p->ChkAtType(0) || hitobj_p->ChkAtType(AT_TYPE_ARROW) || hitobj_p->ChkAtType(AT_TYPE_SLINGSHOT) ||
|
||||
hitobj_p->ChkAtType(AT_TYPE_20000000) || hitobj_p->ChkAtType(AT_TYPE_SHIELD_ATTACK) ||
|
||||
hitobj_p->ChkAtType(AT_TYPE_BOOMERANG) || hitobj_p->ChkAtType(AT_TYPE_100) ||
|
||||
hitobj_p->ChkAtType(AT_TYPE_LANTERN_SWING) || hitobj_p->ChkAtType(AT_TYPE_HOOKSHOT)))
|
||||
{
|
||||
WorkAt_NoCutAnim(i_hitActor, i_massFlg, i_roomNo, i_hitinf, hitobj_p);
|
||||
return;
|
||||
}
|
||||
|
||||
if (field_0x03 == 0) {
|
||||
fopAc_ac_c* temp_r26 = dComIfGp_getPlayer(0);
|
||||
if (hitobj_p->ChkAtType(AT_TYPE_BOMB) || hitobj_p->ChkAtType(AT_TYPE_IRON_BALL) ||
|
||||
hitobj_p->ChkAtType(AT_TYPE_SPINNER) || hitobj_p->ChkAtType(AT_TYPE_WOLF_ATTACK) ||
|
||||
hitobj_p->ChkAtType(AT_TYPE_WOLF_CUT_TURN))
|
||||
{
|
||||
if (i_hitActor != NULL && !hitobj_p->ChkAtType(AT_TYPE_IRON_BALL) && m_pos.abs(i_hitActor->current.pos) > 200.0f) {
|
||||
WorkAt_NoCutAnim(i_hitActor, i_massFlg, i_roomNo, i_hitinf, hitobj_p);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
if (cLib_checkBit<u8>(m_state, 0x10) || !cLib_checkBit<u8>(m_state, 0x40)) {
|
||||
if ((daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_NM_VERTICAL) ||
|
||||
(daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_NM_STAB) ||
|
||||
(daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_TURN_RIGHT) ||
|
||||
(daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_TURN_LEFT) ||
|
||||
(daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_RIGHT) ||
|
||||
(daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_LEFT))
|
||||
{
|
||||
if (m_pos.abs(temp_r26->current.pos) > 180.0f) {
|
||||
WorkAt_NoCutAnim(i_hitActor, i_massFlg, i_roomNo, i_hitinf, hitobj_p);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
WorkAt_NoCutAnim(i_hitActor, i_massFlg, i_roomNo, i_hitinf, hitobj_p);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if ((daPy_getPlayerActorClass()->getCutType() >= 3) && (daPy_getPlayerActorClass()->getCutType() <= 7)) {
|
||||
if (m_pos.abs(temp_r26->current.pos) > 128.0f) {
|
||||
if (m_pos.abs(temp_r26->current.pos) < 200.0f) {
|
||||
WorkAt_NoCutAnim(i_hitActor, i_massFlg, i_roomNo, i_hitinf, hitobj_p);
|
||||
}
|
||||
return;
|
||||
}
|
||||
} else if ((daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_TURN_RIGHT) ||
|
||||
(daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_TURN_LEFT) ||
|
||||
(daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_RIGHT) ||
|
||||
(daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_LEFT))
|
||||
{
|
||||
if (m_pos.abs(temp_r26->current.pos) > 150.0f) {
|
||||
WorkAt_NoCutAnim(i_hitActor, i_massFlg, i_roomNo, i_hitinf, hitobj_p);
|
||||
return;
|
||||
}
|
||||
} else if ((daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_NM_VERTICAL) || (daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_NM_STAB)) {
|
||||
if (m_pos.abs(temp_r26->current.pos) > 80.0f) {
|
||||
return;
|
||||
}
|
||||
} else if ((m_pos.abs(i_hitActor->current.pos) > 128.0f) && (m_pos.abs(temp_r26->current.pos) < 200.0f)) {
|
||||
WorkAt_NoCutAnim(i_hitActor, i_massFlg, i_roomNo, i_hitinf, hitobj_p);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (field_0x01 >= 8) {
|
||||
deleteAnm();
|
||||
}
|
||||
|
||||
if (cLib_checkBit<u8>(m_state, 0x40)) {
|
||||
if (hitobj_p->ChkAtType(AT_TYPE_BOMB) || hitobj_p->ChkAtType(AT_TYPE_IRON_BALL) ||
|
||||
hitobj_p->ChkAtType(AT_TYPE_SPINNER) || hitobj_p->ChkAtType(AT_TYPE_WOLF_ATTACK) ||
|
||||
hitobj_p->ChkAtType(AT_TYPE_WOLF_CUT_TURN) ||
|
||||
(daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_TURN_RIGHT) ||
|
||||
(daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_TURN_LEFT) ||
|
||||
(daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_RIGHT) ||
|
||||
(daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_LEFT))
|
||||
{
|
||||
cLib_onBit<u8>(m_state, 8);
|
||||
} else if (cLib_checkBit<u8>(m_state, 0x10)) {
|
||||
cLib_onBit<u8>(m_state, 8);
|
||||
} else {
|
||||
field_0x03 = 0x14;
|
||||
cLib_onBit<u8>(m_state, 0x10);
|
||||
}
|
||||
} else {
|
||||
cLib_onBit<u8>(m_state, 8);
|
||||
}
|
||||
|
||||
static csXyz ang(0, 0, 0);
|
||||
|
||||
cXyz particle_pos;
|
||||
dKy_tevstr_c* room_tevstr = dComIfGp_roomControl_getTevStr(i_roomNo);
|
||||
|
||||
particle_pos.set(m_pos.x, m_pos.y, m_pos.z);
|
||||
|
||||
if (cLib_checkBit<u8>(m_state, 0x40)) {
|
||||
dComIfGp_particle_set(0x8297, &particle_pos, room_tevstr, NULL, NULL);
|
||||
dComIfGp_particle_set(0x8298, &particle_pos, room_tevstr, NULL, NULL);
|
||||
} else {
|
||||
dComIfGp_particle_set(0x8299, &particle_pos, room_tevstr, NULL, NULL);
|
||||
dComIfGp_particle_set(0x829A, &particle_pos, room_tevstr, NULL, NULL);
|
||||
}
|
||||
|
||||
if (m_tableNo >= 0) {
|
||||
fopAcM_createItemFromTable(&m_pos, m_tableNo, -1, i_roomNo, NULL, 0, NULL, NULL, NULL, false);
|
||||
}
|
||||
|
||||
if (data_805284E8 == 0) {
|
||||
data_805284E8 = 1;
|
||||
mDoAud_seStart(JA_SE_LK_CUT_GRASS, &m_pos, 0, dComIfGp_getReverb(i_roomNo));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 80521A3C-80521BF8 005DDC 01BC+00 1/1 0/0 0/0 .text hitCheck__14dFlower_data_cFP10fopAc_ac_ci */
|
||||
void dFlower_data_c::hitCheck(fopAc_ac_c* param_0, int param_1) {
|
||||
// NONMATCHING
|
||||
void dFlower_data_c::hitCheck(fopAc_ac_c* i_hitActor, int i_roomNo) {
|
||||
dCcMassS_HitInf hitinf;
|
||||
|
||||
cXyz sp14;
|
||||
sp14 = m_pos;
|
||||
|
||||
if (cLib_checkBit<u8>(m_state, 0x40)) {
|
||||
sp14.y += 60.0f;
|
||||
}
|
||||
|
||||
fopAc_ac_c* hit_actor;
|
||||
u32 mass_flags = dComIfG_Ccsp()->ChkMass(&sp14, &hit_actor, &hitinf);
|
||||
bool at_hit = (mass_flags & 1) && (hit_actor != NULL && fopAcM_GetName(hit_actor) != PROC_Obj_Carry);
|
||||
|
||||
if (!(mass_flags & 2) && !at_hit) {
|
||||
if (field_0x01 >= 8) {
|
||||
dFlower_anm_c* temp_r3 = daGrass_c::getFlower()->getAnm(field_0x01);
|
||||
s16 spA = (temp_r3->m_angY & 0xE000);
|
||||
int spC = (temp_r3->m_angY >> 0xD) & 7;
|
||||
|
||||
if (cLib_addCalcAngleS(&temp_r3->m_angX, daGrass_c::getFlower()->getAnm(spC)->m_angX, 8, 4000, 100) == 0 &&
|
||||
cLib_chaseAngleS(&temp_r3->m_angY, spA, 800) != 0) {
|
||||
deleteAnm();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mass_flags & 2) {
|
||||
WorkCo(hit_actor, mass_flags, i_roomNo);
|
||||
}
|
||||
|
||||
if (!cLib_checkBit<u8>(m_state, 8) && at_hit) {
|
||||
WorkAt(hit_actor, mass_flags, i_roomNo, &hitinf);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 80521BF8-80521C08 005F98 0010+00 1/1 0/0 0/0 .text newData__14dFlower_room_cFP14dFlower_data_c
|
||||
|
|
@ -67,34 +564,372 @@ dFlower_packet_c::dFlower_packet_c() {
|
|||
unused += 0x2000;
|
||||
}
|
||||
|
||||
m_deleteRoom = &deleteRoom;
|
||||
m_deleteRoom = &dFlower_packet_c::deleteRoom;
|
||||
}
|
||||
|
||||
|
||||
/* 80521DAC-80522774 00614C 09C8+00 2/0 0/0 0/0 .text draw__16dFlower_packet_cFv */
|
||||
// void dFlower_packet_c::draw() {
|
||||
extern "C" asm void draw__16dFlower_packet_cFv() {
|
||||
// NONMATCHING
|
||||
// NONMATCHING
|
||||
void dFlower_packet_c::draw() {
|
||||
dScnKy_env_light_c* kankyo = dKy_getEnvlight();
|
||||
j3dSys.reinitGX();
|
||||
|
||||
GXSetNumIndStages(0);
|
||||
dKy_setLight_again();
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_INDEX8);
|
||||
GXSetVtxDesc(GX_VA_NRM, GX_INDEX8);
|
||||
GXSetVtxDesc(GX_VA_CLR0, GX_INDEX8);
|
||||
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX8);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
|
||||
GXSetArray(GX_VA_POS, &l_flowerPos, 0xC);
|
||||
GXSetArray(GX_VA_NRM, &l_flowerNormal, 0xC);
|
||||
GXSetArray(GX_VA_CLR0, &l_flowerColor, 4);
|
||||
GXSetArray(GX_VA_TEX0, &l_flowerTexCoord, 8);
|
||||
|
||||
dFlower_room_c* sp5C = m_room;
|
||||
|
||||
for (int i = 0; i < 64; i++) {
|
||||
dFlower_data_c* sp54 = sp5C->getData();
|
||||
if (sp54 != NULL && dComIfGp_roomControl_checkStatusFlag(i, 0x10)) {
|
||||
dKy_tevstr_c* sp50 = dComIfGp_roomControl_getTevStr(i);
|
||||
GXColorS10 sp80 = {0, 0, 0, 0};
|
||||
int sp84 = 0;
|
||||
int sp4C = 6;
|
||||
|
||||
if (dComIfGp_roomControl_getStatusRoomDt(i) != NULL) {
|
||||
sp4C = dComIfGp_roomControl_getStatusRoomDt(i)->mRoomDt.getLightVecInfoNum();
|
||||
}
|
||||
|
||||
if (dKy_SunMoon_Light_Check() == TRUE && sp4C < 2) {
|
||||
sp4C = 2;
|
||||
}
|
||||
|
||||
for (int j = 0; j < 6; j++) {
|
||||
if (kankyo->field_0x0c18[j].field_0x26 == 1) {
|
||||
sp4C++;
|
||||
}
|
||||
}
|
||||
|
||||
if (sp4C <= 2) {
|
||||
GXCallDisplayList(&l_matLight4DL, 0x80);
|
||||
} else {
|
||||
GXCallDisplayList(&l_matDL, 0x80);
|
||||
}
|
||||
|
||||
GXSetTevColorS10(GX_TEVREG0, sp80);
|
||||
dKy_Global_amb_set(sp50);
|
||||
dKy_GxFog_tevstr_set(sp50);
|
||||
dKy_setLight_nowroom_grass(sp50->room_no, 1.0f);
|
||||
|
||||
for (dFlower_data_c* sp44 = sp5C->getData(); sp44 != NULL; sp44 = sp44->mp_next) {
|
||||
GXColor sp64;
|
||||
sp64.r = (sp44->field_0x04 & 0x1F) * 2;
|
||||
sp64.g = ((sp44->field_0x04 >> 5) & 0x1F) * 2;
|
||||
sp64.b = ((sp44->field_0x04 >> 0xA) & 0x1F) * 2;
|
||||
|
||||
if (daPy_py_c::checkNowWolfPowerUp()) {
|
||||
f32 var_f31 = g_env_light.bg_amb_col[0].r / 255.0f;
|
||||
sp64.r = (((sp44->field_0x04 & 0x1F) * 2) + 0x10) * (4.0f * var_f31);
|
||||
|
||||
var_f31 = g_env_light.bg_amb_col[0].g / 255.0f;
|
||||
sp64.g = ((((sp44->field_0x04 >> 5) & 0x1F) * 2) + 0x10) * (4.0f * var_f31);
|
||||
|
||||
var_f31 = g_env_light.bg_amb_col[0].b / 255.0f;
|
||||
sp64.b = ((((sp44->field_0x04 >> 0xA) & 0x1F) * 2) + 0x10) * (4.0f * var_f31);
|
||||
}
|
||||
|
||||
if (sp64.r == 0x3E) {
|
||||
sp64.r = sp50->AmbCol.r;
|
||||
}
|
||||
|
||||
if (sp64.g == 0x3E) {
|
||||
sp64.g = sp50->AmbCol.g;
|
||||
}
|
||||
|
||||
if (sp64.b == 0x3E) {
|
||||
sp64.b = sp50->AmbCol.b;
|
||||
}
|
||||
|
||||
GXSetChanAmbColor(GX_COLOR0A0, sp64);
|
||||
|
||||
if (!cLib_checkBit<u8>(sp44->m_state, 4) && !cLib_checkBit<u8>(sp44->m_state, 0x40)) {
|
||||
GXLoadPosMtxImm(sp44->m_modelMtx, 0);
|
||||
GXLoadNrmMtxImm(j3dSys.getViewMtx(), 0);
|
||||
|
||||
if (!cLib_checkBit<u8>(sp44->m_state, 8)) {
|
||||
GXCallDisplayList(&l_J_hana00DL, 0x140);
|
||||
} else {
|
||||
GXCallDisplayList(&l_J_hana00_cDL, 0xC0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
sp5C++;
|
||||
}
|
||||
|
||||
GXSetArray(GX_VA_POS, mp_pos, 0xC);
|
||||
GXSetArray(GX_VA_NRM, &l_flowerNormal2, 0xC);
|
||||
GXSetArray(GX_VA_CLR0, mp_colors, 4);
|
||||
GXSetArray(GX_VA_TEX0, mp_texCoords, 8);
|
||||
|
||||
sp5C = m_room;
|
||||
|
||||
for (int i = 0; i < 64; i++) {
|
||||
GXColor sp3C = {0xFF, 0xFF, 0xFF, 0xFF};
|
||||
dFlower_data_c* sp38 = sp5C->getData();
|
||||
if (sp38 != NULL) {
|
||||
dFlower_data_c* sp34 = sp5C->getData();
|
||||
int sp30 = 0;
|
||||
int sp2C = 6;
|
||||
dKy_tevstr_c* temp_r29 = dComIfGp_roomControl_getTevStr(i);
|
||||
GXColorS10 sp78 = {0, 0, 0, 0};
|
||||
int sp7C = 0;
|
||||
|
||||
if (dComIfGp_roomControl_getStatusRoomDt(i) != NULL) {
|
||||
sp2C = dComIfGp_roomControl_getStatusRoomDt(i)->mRoomDt.getLightVecInfoNum();
|
||||
}
|
||||
|
||||
if (dKy_SunMoon_Light_Check() == TRUE && sp2C < 2) {
|
||||
sp2C = 2;
|
||||
}
|
||||
|
||||
if (sp2C <= 2) {
|
||||
GXCallDisplayList(mp_mat2Light4DL, m_mat2Light4DL_size);
|
||||
} else {
|
||||
GXCallDisplayList(mp_mat2DL, m_mat2DL_size);
|
||||
}
|
||||
|
||||
GXSetTevColorS10(GX_TEVREG0, sp78);
|
||||
dKy_Global_amb_set(temp_r29);
|
||||
dKy_GxFog_tevstr_set(temp_r29);
|
||||
dKy_setLight_nowroom_grass(temp_r29->room_no, 1.0f);
|
||||
|
||||
while (sp34 != NULL) {
|
||||
f32 var_f29 = temp_r29->AmbCol.r * 0.03125f;
|
||||
if (var_f29 > 1.0f) {
|
||||
var_f29 = 1.0f;
|
||||
}
|
||||
|
||||
f32 var_f28 = temp_r29->AmbCol.g * 0.03125f;
|
||||
if (var_f28 > 1.0f) {
|
||||
var_f28 = 1.0f;
|
||||
}
|
||||
|
||||
f32 var_f27 = temp_r29->AmbCol.b * 0.03125f;
|
||||
if (var_f27 > 1.0f) {
|
||||
var_f27 = 1.0f;
|
||||
}
|
||||
|
||||
GXColor sp28;
|
||||
|
||||
u8 sp24 = -0.4f * temp_r29->AmbCol.r * var_f29;
|
||||
u8 sp25 = -0.4f * temp_r29->AmbCol.g * var_f28;
|
||||
u8 sp26 = -0.4f * temp_r29->AmbCol.b * var_f27;
|
||||
|
||||
u8 sp8 = sp30 & 7;
|
||||
switch (sp8) {
|
||||
case 0:
|
||||
sp28.r = temp_r29->AmbCol.r + sp24;
|
||||
sp28.g = temp_r29->AmbCol.g;
|
||||
sp28.b = temp_r29->AmbCol.b;
|
||||
break;
|
||||
case 1:
|
||||
sp28.r = temp_r29->AmbCol.r;
|
||||
sp28.g = temp_r29->AmbCol.g + sp25;
|
||||
sp28.b = temp_r29->AmbCol.b;
|
||||
break;
|
||||
case 2:
|
||||
sp28.r = temp_r29->AmbCol.r;
|
||||
sp28.g = temp_r29->AmbCol.g;
|
||||
sp28.b = temp_r29->AmbCol.b + sp26;
|
||||
break;
|
||||
case 3:
|
||||
sp28.r = temp_r29->AmbCol.r + sp24;
|
||||
sp28.g = temp_r29->AmbCol.g + sp25;
|
||||
sp28.b = temp_r29->AmbCol.b;
|
||||
break;
|
||||
case 4:
|
||||
sp28.r = temp_r29->AmbCol.r;
|
||||
sp28.g = temp_r29->AmbCol.g + sp25;
|
||||
sp28.b = temp_r29->AmbCol.b + sp26;
|
||||
break;
|
||||
case 5:
|
||||
sp28.r = temp_r29->AmbCol.r + sp24;
|
||||
sp28.g = temp_r29->AmbCol.g;
|
||||
sp28.b = temp_r29->AmbCol.b + sp26;
|
||||
break;
|
||||
case 6:
|
||||
sp28.r = temp_r29->AmbCol.r + sp24;
|
||||
sp28.g = temp_r29->AmbCol.g + sp25;
|
||||
sp28.b = temp_r29->AmbCol.b + sp26;
|
||||
break;
|
||||
case 7:
|
||||
break;
|
||||
}
|
||||
|
||||
if (daPy_py_c::checkNowWolfPowerUp()) {
|
||||
f32 var_f30 = g_env_light.bg_amb_col[0].r / 255.0f;
|
||||
sp28.r = (sp28.r + 8) * (6.0f * var_f30);
|
||||
|
||||
var_f30 = g_env_light.bg_amb_col[0].g / 255.0f;
|
||||
sp28.g = (sp28.g + 8) * (6.0f * var_f30);
|
||||
|
||||
var_f30 = g_env_light.bg_amb_col[0].b / 255.0f;
|
||||
sp28.b = (sp28.b + 8) * (6.0f * var_f30);
|
||||
}
|
||||
|
||||
GXSetChanAmbColor(GX_COLOR0A0, sp28);
|
||||
|
||||
sp30++;
|
||||
|
||||
if (!cLib_checkBit<u8>(sp34->m_state, 4) && cLib_checkBit<u8>(sp34->m_state, 0x40)) {
|
||||
GXLoadPosMtxImm(sp34->m_modelMtx, 0);
|
||||
GXLoadNrmMtxImm(j3dSys.getViewMtx(), 0);
|
||||
|
||||
if (!cLib_checkBit<u8>(sp34->m_state, 8)) {
|
||||
if (!cLib_checkBit<u8>(sp34->m_state, 0x10)) {
|
||||
GXCallDisplayList(mp_Jhana01DL, m_Jhana01DL_size);
|
||||
} else {
|
||||
GXCallDisplayList(&l_J_hana01_c_00DL, 0xC0);
|
||||
}
|
||||
} else {
|
||||
GXCallDisplayList(mp_Jhana01_cDL, m_Jhana01_cDL_size);
|
||||
}
|
||||
}
|
||||
|
||||
sp34 = sp34->mp_next;
|
||||
}
|
||||
}
|
||||
sp5C++;
|
||||
}
|
||||
|
||||
J3DShape::resetVcdVatCache();
|
||||
}
|
||||
|
||||
/* 80522774-8052299C 006B14 0228+00 1/1 0/0 0/0 .text calc__16dFlower_packet_cFv */
|
||||
// NONMATCHING
|
||||
void dFlower_packet_c::calc() {
|
||||
// NONMATCHING
|
||||
dFlower_anm_c* anm_p = getAnm();
|
||||
|
||||
for (int i = 0; i < 8; i++) {
|
||||
anm_p->m_angX = 1000.0f + (100.0f * cM_scos(1000.0f * (g_Counter.mTimer + (i * 250))));
|
||||
anm_p++;
|
||||
}
|
||||
|
||||
int room_no = dComIfGp_roomControl_getStayNo();
|
||||
dFlower_data_c* data_p = m_room[room_no].getData();
|
||||
|
||||
if (data_p != NULL) {
|
||||
daPy_py_c* temp_r26 = (daPy_py_c*)dComIfGp_getPlayer(0);
|
||||
cXyz sp38;
|
||||
cXyz sp2C;
|
||||
|
||||
setPlayerCutFlg(temp_r26->getCutAtFlg());
|
||||
|
||||
sp38 = temp_r26->getSwordTopPos();
|
||||
sp2C = sp38 - temp_r26->current.pos;
|
||||
|
||||
setPlayerSwordAngY(cM_atan2s(sp2C.x, sp2C.z));
|
||||
|
||||
sp2C = getPlayerSwordTop() - sp38;
|
||||
setPlayerSwordMoveAngY(cM_atan2s(sp2C.x, sp2C.z));
|
||||
setPlayerSwordTop(sp38);
|
||||
|
||||
data_805284E8 = 0;
|
||||
|
||||
if (!cLib_checkBit<u8>(data_p->m_state, 0x40)) {
|
||||
dComIfG_Ccsp()->SetMassAttr(30.0f, 50.0f, 11, 2);
|
||||
} else {
|
||||
dComIfG_Ccsp()->SetMassAttr(30.0f, 160.0f, 11, 2);
|
||||
}
|
||||
|
||||
do {
|
||||
if (!cLib_checkBit<u8>(data_p->m_state, 4)) {
|
||||
data_p->hitCheck(temp_r26, room_no);
|
||||
}
|
||||
data_p = data_p->mp_next;
|
||||
} while (data_p != NULL);
|
||||
}
|
||||
}
|
||||
|
||||
/* 8052299C-80522A64 006D3C 00C8+00 2/2 0/0 0/0 .text flowerCheckGroundY__FR4cXyz */
|
||||
static f32 flowerCheckGroundY(cXyz& param_0) {
|
||||
// NONMATCHING
|
||||
dBgS_GndChk sp8;
|
||||
param_0.y += 50.0f;
|
||||
|
||||
sp8.SetPos(¶m_0);
|
||||
|
||||
f32 temp_f31 = dComIfG_Bgsp().GroundCross(&sp8);
|
||||
param_0.y -= 50.0f;
|
||||
|
||||
if (temp_f31 <= -1000000000.0f) {
|
||||
return param_0.y;
|
||||
} else {
|
||||
return temp_f31;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80522A64-80522CBC 006E04 0258+00 1/1 0/0 0/0 .text update__16dFlower_packet_cFv */
|
||||
void dFlower_packet_c::update() {
|
||||
// NONMATCHING
|
||||
dFlower_anm_c* var_r29 = getAnm();
|
||||
|
||||
for (int i = 0; i < 72; i++) {
|
||||
mDoMtx_stack_c::YrotS(var_r29->m_angY);
|
||||
mDoMtx_stack_c::XrotM(var_r29->m_angX);
|
||||
mDoMtx_stack_c::YrotM(-var_r29->m_angY);
|
||||
cMtx_copy(mDoMtx_stack_c::get(), var_r29->m_animMtx);
|
||||
var_r29++;
|
||||
}
|
||||
|
||||
dFlower_data_c* data_p = getData();
|
||||
var_r29 = getAnm();
|
||||
|
||||
cXyz sp28;
|
||||
int sp14 = 0;
|
||||
|
||||
for (int i = 0; i < 1000; i++) {
|
||||
if (cLib_checkBit<u8>(data_p->m_state, 2)) {
|
||||
cLib_calcTimer<u8>(&data_p->field_0x03);
|
||||
|
||||
if (cLib_checkBit<u8>(data_p->m_state, 0x20) && sp14 < 8) {
|
||||
data_p->m_pos.y = flowerCheckGroundY(data_p->m_pos);
|
||||
cLib_offBit<u8>(data_p->m_state, 0x20);
|
||||
sp14++;
|
||||
}
|
||||
|
||||
sp28.set(data_p->m_pos.x, 260.0f + data_p->m_pos.y, data_p->m_pos.z);
|
||||
|
||||
if (mDoLib_clipper::clip(j3dSys.getViewMtx(), sp28, 260.0f)) {
|
||||
cLib_onBit<u8>(data_p->m_state, 4);
|
||||
data_p->deleteAnm();
|
||||
} else {
|
||||
cLib_offBit<u8>(data_p->m_state, 4);
|
||||
|
||||
MtxPtr temp_r28 = var_r29[data_p->field_0x01].m_animMtx;
|
||||
temp_r28[0][3] = data_p->m_pos.x;
|
||||
temp_r28[1][3] = data_p->m_pos.y;
|
||||
temp_r28[2][3] = data_p->m_pos.z;
|
||||
|
||||
f32 temp_f31 = 0.69999999f + (0.3f * ((((s16)data_p->m_pos.x * 3535) & 0xFFF) / 4096.0f));
|
||||
|
||||
mDoMtx_stack_c::copy(temp_r28);
|
||||
mDoMtx_stack_c::scaleM(temp_f31, temp_f31, temp_f31);
|
||||
cMtx_concat(j3dSys.getViewMtx(), temp_r28, data_p->m_modelMtx);
|
||||
}
|
||||
}
|
||||
|
||||
data_p++;
|
||||
}
|
||||
|
||||
dComIfGd_getListPacket()->entryImm(this, 0);
|
||||
}
|
||||
|
||||
/* 80522CBC-80522E28 00705C 016C+00 1/1 0/0 0/0 .text
|
||||
* setData__16dFlower_packet_cFP14dFlower_data_ciScR4cXyziScs */
|
||||
void dFlower_packet_c::setData(dFlower_data_c* i_data, int param_1, s8 param_2, cXyz& i_pos,
|
||||
void dFlower_packet_c::setData(dFlower_data_c* i_data, int i_dataNo, s8 param_2, cXyz& i_pos,
|
||||
int i_roomNo, s8 i_tableNo, s16 i_addCol) {
|
||||
f32 y_pos;
|
||||
if (fopOvlpM_IsPeek()) {
|
||||
|
|
@ -109,7 +944,7 @@ void dFlower_packet_c::setData(dFlower_data_c* i_data, int param_1, s8 param_2,
|
|||
cLib_onBit<u8>(i_data->m_state, 0x40);
|
||||
}
|
||||
|
||||
i_data->field_0x01 = cM_rndF(FLOAT_LABEL(lit_6262));
|
||||
i_data->field_0x01 = cM_rndF(7.0f);
|
||||
i_data->m_pos.set(i_pos.x, y_pos, i_pos.z);
|
||||
i_data->m_tableNo = i_tableNo;
|
||||
i_data->field_0x03 = 0;
|
||||
|
|
@ -130,15 +965,15 @@ void dFlower_packet_c::setData(dFlower_data_c* i_data, int param_1, s8 param_2,
|
|||
}
|
||||
|
||||
m_room[i_roomNo].newData(i_data);
|
||||
field_0x10 = param_1;
|
||||
m_dataNum = i_dataNo;
|
||||
}
|
||||
|
||||
/* 80522E28-80522F0C 0071C8 00E4+00 1/1 0/0 0/0 .text newData__16dFlower_packet_cFScR4cXyziScs */
|
||||
dFlower_data_c* dFlower_packet_c::newData(s8 param_0, cXyz& i_pos, int i_roomNo, s8 i_tableNo,
|
||||
s16 i_addCol) {
|
||||
dFlower_data_c* data_p = m_data + field_0x10;
|
||||
dFlower_data_c* data_p = m_data + m_dataNum;
|
||||
|
||||
for (int i = field_0x10; i < 1000; i++) {
|
||||
for (int i = m_dataNum; i < 1000; i++) {
|
||||
if (!cLib_checkBit<u8>(data_p->m_state, 2)) {
|
||||
setData(data_p, i, param_0, i_pos, i_roomNo, i_tableNo, i_addCol);
|
||||
return data_p;
|
||||
|
|
@ -147,7 +982,7 @@ dFlower_data_c* dFlower_packet_c::newData(s8 param_0, cXyz& i_pos, int i_roomNo,
|
|||
}
|
||||
|
||||
data_p = m_data;
|
||||
for (int i = 0; i < field_0x10; i++) {
|
||||
for (int i = 0; i < m_dataNum; i++) {
|
||||
if (!cLib_checkBit<u8>(data_p->m_state, 2)) {
|
||||
setData(data_p, i, param_0, i_pos, i_roomNo, i_tableNo, i_addCol);
|
||||
return data_p;
|
||||
|
|
@ -181,11 +1016,11 @@ int dFlower_packet_c::newAnm() {
|
|||
}
|
||||
|
||||
/* 80522F8C-80522FB4 00732C 0028+00 1/1 0/0 0/0 .text setAnm__16dFlower_packet_cFis */
|
||||
void dFlower_packet_c::setAnm(int i_idx, s16 param_1) {
|
||||
void dFlower_packet_c::setAnm(int i_idx, s16 i_angY) {
|
||||
dFlower_anm_c* anm_p = m_anm + i_idx;
|
||||
|
||||
anm_p->m_state = 1;
|
||||
anm_p->m_angY = param_1;
|
||||
anm_p->m_angY = i_angY;
|
||||
anm_p->m_angX = 0;
|
||||
}
|
||||
|
||||
|
|
@ -205,4 +1040,4 @@ dFlower_data_c::~dFlower_data_c() {}
|
|||
/* 80523008-80523014 0073A8 000C+00 1/1 0/0 0/0 .text __ct__14dFlower_data_cFv */
|
||||
dFlower_data_c::dFlower_data_c() {
|
||||
m_state = 0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,52 +1,327 @@
|
|||
#include "d/actor/d_a_grass.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "d/d_s_play.h"
|
||||
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
|
||||
#include "SSystem/SComponent/c_lib.h"
|
||||
#include "f_op/f_op_overlap_mng.h"
|
||||
#include <dolphin/gf.h>
|
||||
|
||||
/* 805231F8-805239F8 000020 0800+00 0/1 0/0 0/0 .data l_M_kusa05_RGBATEX */
|
||||
const u16 l_M_Hijiki00TEX__width = 31;
|
||||
const u16 l_M_Hijiki00TEX__height = 31;
|
||||
#include "assets/l_M_kusa05_RGBATEX.h" // ALIGN 32
|
||||
|
||||
/* 805239F8-805241F8 000820 0800+00 0/1 0/0 0/0 .data l_M_Hijiki00TEX */
|
||||
const u16 l_M_kusa05_RGBATEX__width = 31;
|
||||
const u16 l_M_kusa05_RGBATEX__height = 31;
|
||||
#include "assets/l_M_Hijiki00TEX.h" // ALIGN 32
|
||||
|
||||
/* 805241F8-805245B8 001020 03C0+00 0/1 0/0 0/0 .data l_pos */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u8 l_pos[960] = {
|
||||
0x3F, 0x4A, 0x56, 0xEF, 0xC2, 0x20, 0x00, 0x00, 0x41, 0xFB, 0x17, 0xE4, 0x41, 0xAA, 0xBB, 0xEA,
|
||||
0xC2, 0x20, 0x00, 0x00, 0xC1, 0xB7, 0x03, 0x7A, 0x42, 0x55, 0x8D, 0x6F, 0x43, 0x13, 0x16, 0x3F,
|
||||
0xC0, 0xC7, 0x24, 0x07, 0x41, 0xE3, 0xC5, 0x31, 0x43, 0x13, 0x16, 0x3F, 0x42, 0x3A, 0x76, 0x90,
|
||||
0xC1, 0xDE, 0xF6, 0x89, 0xC2, 0x20, 0x00, 0x00, 0xC1, 0x4E, 0xFE, 0x02, 0xC2, 0x28, 0x22, 0x86,
|
||||
0x43, 0x13, 0x16, 0x3F, 0xC2, 0x07, 0x6E, 0x2C, 0x41, 0x51, 0x51, 0xEE, 0x43, 0x13, 0x16, 0x3F,
|
||||
0xC2, 0x54, 0xE3, 0xFA, 0xC1, 0x89, 0xD7, 0x9B, 0x43, 0x13, 0x16, 0x3F, 0x42, 0x47, 0x60, 0x87,
|
||||
0xC2, 0x59, 0x1D, 0x0E, 0x43, 0x13, 0x16, 0x3F, 0x40, 0x95, 0x9B, 0x11, 0x3F, 0x3A, 0x78, 0x8E,
|
||||
0x43, 0x13, 0x16, 0x3F, 0x41, 0xE0, 0xD9, 0x17, 0xC1, 0xE3, 0x1B, 0x10, 0x43, 0x13, 0x16, 0x3F,
|
||||
0x42, 0x5A, 0xDD, 0x48, 0xC1, 0xEE, 0x39, 0x52, 0xC2, 0x20, 0x00, 0x00, 0x41, 0xC4, 0x63, 0x09,
|
||||
0x00, 0x00, 0x00, 0x00, 0xC2, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x03, 0x56, 0x8B,
|
||||
0xC2, 0x20, 0x00, 0x00, 0x41, 0x08, 0xF1, 0x43, 0x42, 0x14, 0xBE, 0x15, 0x43, 0x13, 0x16, 0x3F,
|
||||
0x42, 0x3E, 0x56, 0x15, 0x41, 0x9A, 0x86, 0xFF, 0x43, 0x13, 0x16, 0x3F, 0xC1, 0xA7, 0xC6, 0xC3,
|
||||
0x42, 0x6A, 0xD4, 0x7A, 0x43, 0x13, 0x16, 0x3F, 0xC1, 0x97, 0x6D, 0x9D, 0xC1, 0x19, 0xCD, 0xF3,
|
||||
0xC2, 0x20, 0x00, 0x00, 0xC2, 0x15, 0xFA, 0x6B, 0x40, 0xF2, 0xA2, 0x21, 0x43, 0x13, 0x16, 0x3F,
|
||||
0xC2, 0x72, 0x6C, 0x7F, 0xC1, 0xC9, 0x8C, 0x79, 0x43, 0x13, 0x16, 0x3F, 0xC1, 0x3F, 0xB7, 0x0B,
|
||||
0xC2, 0x12, 0xFB, 0xE4, 0x43, 0x13, 0x16, 0x3F, 0xC2, 0x46, 0xC9, 0xEB, 0xC2, 0x69, 0xB2, 0x46,
|
||||
0x43, 0x13, 0x16, 0x3F, 0x41, 0x49, 0x97, 0x1C, 0x3E, 0xBA, 0x78, 0x8E, 0x42, 0x0E, 0x6B, 0x09,
|
||||
0x41, 0x60, 0xD9, 0x17, 0xC1, 0xE8, 0xAA, 0x31, 0x42, 0x0E, 0x6B, 0x09, 0x42, 0x1E, 0x87, 0x66,
|
||||
0xC1, 0xEE, 0x39, 0x52, 0xC1, 0xA0, 0x00, 0x00, 0x41, 0xC4, 0x63, 0x09, 0x00, 0x00, 0x00, 0x00,
|
||||
0xC1, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x03, 0x56, 0x8B, 0xC1, 0xA0, 0x00, 0x00,
|
||||
0x41, 0x08, 0xF1, 0x43, 0x42, 0x0C, 0x0A, 0x50, 0x42, 0x0E, 0x6B, 0x09, 0x41, 0xE0, 0x92, 0x67,
|
||||
0x41, 0x1A, 0x86, 0xFF, 0x42, 0x0E, 0x6B, 0x09, 0xC1, 0x27, 0xC6, 0xC3, 0x42, 0x37, 0x15, 0x83,
|
||||
0x42, 0x0E, 0x6B, 0x09, 0xC0, 0xA5, 0xE9, 0xF7, 0xC1, 0x19, 0xCD, 0xF3, 0xC1, 0xA0, 0x00, 0x00,
|
||||
0xC2, 0x15, 0xFA, 0x6B, 0xBF, 0x81, 0xF3, 0x8C, 0x42, 0x0E, 0x6B, 0x09, 0xC2, 0x44, 0x33, 0x76,
|
||||
0xC1, 0x49, 0x8C, 0x7A, 0x42, 0x0E, 0x6B, 0x09, 0xC0, 0xBF, 0xB7, 0x0B, 0xC1, 0xB9, 0x6F, 0x60,
|
||||
0x42, 0x0E, 0x6B, 0x09, 0xC2, 0x2E, 0x62, 0x2B, 0xC2, 0x30, 0x67, 0x78, 0x42, 0x0E, 0x6B, 0x09,
|
||||
0x41, 0x94, 0x97, 0x4B, 0x3F, 0x4A, 0x56, 0xEF, 0xC1, 0xA0, 0x00, 0x00, 0x41, 0xFB, 0x17, 0xE4,
|
||||
0x41, 0xAA, 0xBB, 0xEA, 0xC1, 0xA0, 0x00, 0x00, 0xC1, 0xB7, 0x03, 0x7A, 0x42, 0x15, 0x75, 0xB2,
|
||||
0x41, 0xD4, 0xFE, 0xE0, 0xC1, 0x68, 0xCC, 0x7C, 0x41, 0x6A, 0x17, 0xE7, 0x41, 0xD4, 0xFE, 0xE0,
|
||||
0x42, 0x1C, 0x01, 0x41, 0xC1, 0xDE, 0xF6, 0x89, 0xC1, 0xA0, 0x00, 0x00, 0xC1, 0x4E, 0xFE, 0x02,
|
||||
0xC2, 0x0B, 0xCE, 0xE5, 0x41, 0xD4, 0xFE, 0xE0, 0xC1, 0xBB, 0x2D, 0xAD, 0x41, 0x89, 0xB2, 0x71,
|
||||
0x41, 0xD4, 0xFE, 0xE0, 0xC2, 0x18, 0x32, 0xDB, 0xC1, 0x03, 0x84, 0xE4, 0x41, 0xD4, 0xFE, 0xE0,
|
||||
0x42, 0x22, 0x76, 0x3C, 0xC2, 0x24, 0x4C, 0x29, 0x41, 0xD4, 0xFE, 0xE0, 0xC0, 0x84, 0x30, 0x7B,
|
||||
0x41, 0x47, 0x75, 0x1E, 0x43, 0x9F, 0x77, 0x6C, 0x42, 0xE0, 0x3F, 0xC6, 0x41, 0x8A, 0x76, 0x75,
|
||||
0xC2, 0x05, 0x2D, 0xB7, 0xC1, 0xCF, 0xDC, 0xAC, 0xC1, 0x8C, 0x34, 0xB2, 0xC2, 0x3A, 0xD2, 0x49,
|
||||
0x40, 0xA1, 0xFC, 0xF0, 0x43, 0x07, 0x5C, 0xA5, 0x43, 0x37, 0x70, 0xEE, 0x42, 0x80, 0x8E, 0x59,
|
||||
0x40, 0xAF, 0x73, 0x3F, 0x40, 0x5B, 0xFC, 0x44, 0x41, 0xA2, 0xC5, 0x58, 0xBE, 0x8F, 0xF1, 0x0F,
|
||||
0x41, 0xD6, 0xD6, 0xFB, 0xC0, 0xFF, 0xAA, 0x6F, 0x42, 0x47, 0x87, 0xFB, 0x43, 0x71, 0x58, 0x6A,
|
||||
0xC2, 0x6A, 0x7B, 0x21, 0x41, 0x79, 0x6D, 0x34, 0x42, 0x7D, 0x14, 0x66, 0x41, 0xC5, 0x98, 0xA7,
|
||||
0xC1, 0x3D, 0x22, 0x18, 0x42, 0x94, 0x1C, 0x80, 0x41, 0xF6, 0xE0, 0x36, 0x42, 0xDF, 0xB0, 0x65,
|
||||
0x43, 0xA2, 0xC0, 0xAF, 0xC1, 0x24, 0x3C, 0xD0, 0xC1, 0xD2, 0x1A, 0x2E, 0xC1, 0xD5, 0xC7, 0x38,
|
||||
0xC1, 0x71, 0xB4, 0x9D, 0x40, 0x99, 0x06, 0xE6, 0xC2, 0x20, 0x88, 0x2D, 0x41, 0x9D, 0xD0, 0xD9,
|
||||
0x41, 0xBB, 0x21, 0x46, 0x43, 0x39, 0xA7, 0xB9, 0xC3, 0x11, 0x8D, 0x20, 0x41, 0x8D, 0xE2, 0x64,
|
||||
0x40, 0xB4, 0xD7, 0xAE, 0xC0, 0xDD, 0x14, 0x64, 0xC1, 0x02, 0x49, 0xD6, 0x41, 0xE8, 0x8D, 0x5E,
|
||||
0x40, 0xBF, 0xC4, 0x15, 0xC1, 0xD9, 0x0C, 0xDC, 0x43, 0x68, 0x5A, 0x22, 0xC2, 0x4F, 0xE7, 0x5E,
|
||||
0x41, 0x82, 0x49, 0x5F, 0x42, 0x5A, 0x19, 0xB6, 0xC1, 0x89, 0xC1, 0xA5, 0x41, 0xB3, 0x90, 0xED,
|
||||
0x42, 0x82, 0x9F, 0x28, 0x41, 0x23, 0x0C, 0x02, 0xC1, 0x8D, 0x1C, 0xF7, 0x43, 0x9F, 0x77, 0x6C,
|
||||
0xC2, 0xE5, 0xDF, 0x4C, 0xC1, 0xB3, 0xD8, 0xDD, 0xC2, 0x05, 0x2D, 0xB7, 0x41, 0xB9, 0x5E, 0x95,
|
||||
0x41, 0x45, 0xA4, 0x94, 0xC2, 0x3A, 0xD2, 0x49, 0xC0, 0xFB, 0xF5, 0x4D, 0xC3, 0x16, 0x18, 0x11,
|
||||
0x43, 0x39, 0xA7, 0xB9, 0xC2, 0x07, 0x6F, 0xB1, 0xC1, 0x71, 0x27, 0xE6, 0x40, 0xB4, 0xD7, 0xAE,
|
||||
0xC1, 0xAE, 0x78, 0x69, 0xC0, 0x0A, 0xEE, 0xAA, 0x41, 0xE8, 0x8D, 0x5E, 0x40, 0x82, 0x3B, 0x99,
|
||||
0xC2, 0x33, 0x95, 0x59, 0x43, 0x5F, 0x75, 0x5E, 0x3D, 0xF4, 0x6A, 0x1A, 0xC1, 0x9E, 0xD4, 0x98,
|
||||
0x42, 0x7D, 0x14, 0x66, 0xC1, 0xDD, 0xD4, 0x93, 0x40, 0xF1, 0xCC, 0x38, 0x42, 0x94, 0x1C, 0x80,
|
||||
0xC2, 0x07, 0x8E, 0x11, 0xC2, 0xE0, 0xEF, 0x0C, 0x43, 0xA0, 0x12, 0xC6, 0xC1, 0x91, 0xCE, 0x9E,
|
||||
0x41, 0x9D, 0x73, 0x77, 0xC2, 0x00, 0x52, 0xDD, 0x41, 0xB1, 0x90, 0xD0, 0xBF, 0xA5, 0x21, 0x04,
|
||||
0xC2, 0x35, 0xF7, 0x70, 0xC1, 0x9B, 0xE3, 0x38, 0xC2, 0x84, 0xB6, 0xB8, 0x43, 0x43, 0x0C, 0x16,
|
||||
0x42, 0xFA, 0x80, 0xC7, 0xC1, 0xCC, 0x7C, 0xFD, 0x41, 0x7A, 0x99, 0xDC, 0x40, 0x0F, 0xBE, 0x34,
|
||||
0x40, 0x31, 0x97, 0xA6, 0x42, 0x1C, 0x52, 0x30, 0xC0, 0x61, 0x26, 0x39, 0x42, 0x41, 0xBD, 0x21,
|
||||
0x43, 0x72, 0x8F, 0x21, 0x42, 0x23, 0xF4, 0x30, 0xC1, 0xE5, 0xEB, 0x07, 0x42, 0x80, 0xF7, 0x9F,
|
||||
0x40, 0xD8, 0x8F, 0xF3, 0xC1, 0xDC, 0xC3, 0xBB, 0x42, 0x96, 0x89, 0xEC, 0xC1, 0xAA, 0x6C, 0x09,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 805245B8-805245C4 0013E0 000C+00 0/1 0/0 0/0 .data l_normal */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static Vec l_normal = {0.0f, 1.0f, 0.0f};
|
||||
#pragma pop
|
||||
|
||||
/* 805245C4-805245D8 0013EC 0014+00 0/1 0/0 0/0 .data l_color */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static GXColor l_color[] = {
|
||||
{0xFF, 0xFF, 0xFF, 0x00}, {0xFF, 0xFF, 0xFF, 0x80}, {0xFF, 0xFF, 0xFF, 0x79},
|
||||
{0xFF, 0xFF, 0xFF, 0x73}, {0xFF, 0xFF, 0xFF, 0xFF},
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 805245D8-80524678 001400 00A0+00 0/1 0/0 0/0 .data l_texCoord */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u8 l_texCoord[160] = {
|
||||
0x3F, 0x86, 0xF6, 0x27, 0x3F, 0x9C, 0x00, 0x00, 0x40, 0x03, 0x7B, 0x14, 0x3F, 0x9C, 0x00, 0x00,
|
||||
0x40, 0x03, 0x7B, 0x14, 0x3D, 0x00, 0x00, 0x00, 0x3F, 0x86, 0xF6, 0x27, 0x3D, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00,
|
||||
0xBF, 0x80, 0x00, 0x00, 0x3F, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9C, 0x00, 0x00,
|
||||
0x3F, 0x80, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x9C, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x3E, 0xC4, 0xF3, 0xBA, 0xBF, 0x80, 0x00, 0x00, 0x3E, 0xC4, 0xF3, 0xBA,
|
||||
0x3F, 0x80, 0x00, 0x00, 0x3E, 0xC4, 0xF3, 0xBA, 0x40, 0x03, 0x7B, 0x14, 0x3E, 0xC4, 0xF3, 0xBA,
|
||||
0x3F, 0x86, 0xF6, 0x27, 0x3E, 0xC4, 0xF3, 0xBA, 0x3E, 0xF0, 0x00, 0x00, 0xBF, 0xDC, 0x00, 0x00,
|
||||
0x3F, 0x94, 0x00, 0x00, 0x3F, 0x9C, 0x00, 0x00, 0xBD, 0xC0, 0x00, 0x00, 0x3F, 0x9C, 0x00, 0x00,
|
||||
0x3F, 0x94, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xBD, 0xC0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80524678-80524758 0014A0 00CB+15 0/1 0/0 0/0 .data l_M_Kusa_9qDL */
|
||||
#include "assets/l_M_Kusa_9qDL.h"
|
||||
|
||||
/* 80524758-80524838 001580 00CB+15 0/1 0/0 0/0 .data l_M_Kusa_9q_cDL */
|
||||
#include "assets/l_M_Kusa_9q_cDL.h"
|
||||
|
||||
/* 80524838-80524918 001660 00D4+0C 0/1 0/0 0/0 .data l_M_TenGusaDL */
|
||||
#include "assets/l_M_TenGusaDL.h"
|
||||
|
||||
/* 80524918-805249D8 001740 00A8+18 0/2 0/0 0/0 .data l_Tengusa_matDL */
|
||||
#include "assets/l_Tengusa_matDL.h"
|
||||
l_Tengusa_matDL(l_M_Hijiki00TEX)
|
||||
|
||||
/* 805249D8-80524A98 001800 00A8+18 0/2 0/0 0/0 .data l_kusa9q_matDL */
|
||||
#include "assets/l_kusa9q_matDL.h"
|
||||
l_kusa9q_matDL(l_M_kusa05_RGBATEX)
|
||||
|
||||
/* 80524A98-80524B40 0018C0 00A8+00 0/2 0/0 0/0 .data l_kusa9q_l4_matDL */
|
||||
#include "assets/l_kusa9q_l4_matDL.h"
|
||||
l_kusa9q_l4_matDL(l_M_kusa05_RGBATEX)
|
||||
|
||||
/* 8051D88C-8051DA20 001C2C 0194+00 1/1 0/0 0/0 .text WorkCo__13dGrass_data_cFP10fopAc_ac_cUli */
|
||||
void dGrass_data_c::WorkCo(fopAc_ac_c* param_0, u32 param_1, int param_2) {
|
||||
// NONMATCHING
|
||||
void dGrass_data_c::WorkCo(fopAc_ac_c* i_hitActor, u32 i_massFlg, int i_roomNo) {
|
||||
cXyz sp18;
|
||||
|
||||
if (!(dKyw_get_wind_pow() >= 0.6f)) {
|
||||
sp18.x = m_pos.x - i_hitActor->current.pos.x;
|
||||
sp18.z = m_pos.z - i_hitActor->current.pos.z;
|
||||
|
||||
f32 var_f31 = sp18.abs2XZ();
|
||||
if (!(var_f31 > 1600.0f)) {
|
||||
sp18.y = m_pos.y - i_hitActor->current.pos.y;
|
||||
|
||||
s16 temp_r26 = cM_atan2s(sp18.x, sp18.z);
|
||||
var_f31 = JMAFastSqrt(var_f31);
|
||||
|
||||
dGrass_anm_c* var_r28;
|
||||
if (field_0x02 < 16) {
|
||||
if (i_hitActor->speedF > 16.0f) {
|
||||
cXyz spC(m_pos.x, 20.0f + m_pos.y, m_pos.z);
|
||||
dKy_tevstr_c* var_r25 = dComIfGp_roomControl_getTevStr(i_roomNo);
|
||||
}
|
||||
|
||||
int var_r27 = daGrass_c::getGrass()->newAnm();
|
||||
if (var_r27 < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
field_0x02 = var_r27;
|
||||
var_r28 = daGrass_c::getGrass()->getAnm(field_0x02);
|
||||
} else {
|
||||
var_r28 = daGrass_c::getGrass()->getAnm(field_0x02);
|
||||
}
|
||||
|
||||
cLib_addCalcAngleS(&var_r28->m_angY, temp_r26, 20, 4000, 1);
|
||||
cLib_addCalcAngleS(&var_r28->m_angX, cM_atan2s(40.0f - var_f31, 65.0f), 10, 4000, 1);
|
||||
var_r28->m_state = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 8051DA20-8051DF54 001DC0 0534+00 1/1 0/0 0/0 .text
|
||||
* WorkAt_NoCutAnim__13dGrass_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInfP8cCcD_Obj */
|
||||
void dGrass_data_c::WorkAt_NoCutAnim(fopAc_ac_c* param_0, u32 param_1, int param_2,
|
||||
dCcMassS_HitInf* param_3, cCcD_Obj* param_4) {
|
||||
// NONMATCHING
|
||||
void dGrass_data_c::WorkAt_NoCutAnim(fopAc_ac_c* i_hitActor, u32 i_massFlg, int i_roomNo, dCcMassS_HitInf* i_hitinf, cCcD_Obj* i_hitObj) {
|
||||
cXyz spC;
|
||||
dCcD_GObjInf* gobj_p = dCcD_GetGObjInf(i_hitObj);
|
||||
|
||||
f32 var_f31;
|
||||
s16 var_r26;
|
||||
if (i_hitObj == NULL) {
|
||||
spC.x = m_pos.x - i_hitActor->current.pos.x;
|
||||
spC.y = m_pos.y - i_hitActor->current.pos.y;
|
||||
spC.z = m_pos.z - i_hitActor->current.pos.z;
|
||||
|
||||
var_f31 = spC.abs2XZ();
|
||||
var_r26 = i_hitActor->shape_angle.y;
|
||||
} else {
|
||||
spC = *dCcD_GetGObjInf(i_hitObj)->GetAtVecP();
|
||||
var_f31 = spC.abs2XZ();
|
||||
|
||||
if (cM3d_IsZero(var_f31)) {
|
||||
cCcD_ShapeAttr* shape = i_hitObj->GetShapeAttr();
|
||||
if (shape->GetNVec(m_pos, &spC)) {
|
||||
PSVECScale(&spC, &spC, 5.0f);
|
||||
var_f31 = spC.abs2XZ();
|
||||
} else {
|
||||
spC.x = m_pos.x - i_hitActor->current.pos.x;
|
||||
spC.y = m_pos.y - i_hitActor->current.pos.y;
|
||||
spC.z = m_pos.z - i_hitActor->current.pos.z;
|
||||
|
||||
var_f31 = spC.abs2XZ();
|
||||
}
|
||||
}
|
||||
|
||||
if (cM3d_IsZero(var_f31)) {
|
||||
return;
|
||||
}
|
||||
|
||||
var_r26 = cM_atan2s(spC.x, spC.z);
|
||||
}
|
||||
|
||||
dGrass_anm_c* anm_p;
|
||||
if (field_0x02 < 16) {
|
||||
int var_r25 = daGrass_c::getGrass()->newAnm();
|
||||
if (var_r25 < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
field_0x02 = var_r25;
|
||||
anm_p = daGrass_c::getGrass()->getAnm(field_0x02);
|
||||
} else {
|
||||
anm_p = daGrass_c::getGrass()->getAnm(field_0x02);
|
||||
}
|
||||
|
||||
anm_p->m_angY = var_r26 * (0.9f + (0.2f * cM_rnd()));
|
||||
|
||||
if (i_hitObj->ChkAtType(AT_TYPE_BOMB)) {
|
||||
anm_p->m_angX = cM_atan2s(var_f31, 40.0f) * (2.5f + (0.5f * cM_rnd()));
|
||||
} else if (i_hitObj->ChkAtType(AT_TYPE_BOOMERANG)) {
|
||||
anm_p->m_angX = cM_atan2s(var_f31, 40.0f) * (1.5f + (0.5f * cM_rnd()));
|
||||
} else if (i_hitObj->ChkAtType(AT_TYPE_100) || i_hitObj->ChkAtType(AT_TYPE_LANTERN_SWING)) {
|
||||
anm_p->m_angX = 0.05f * (cM_atan2s(var_f31, 40.0f) * (1.5f + cM_rnd()));
|
||||
} else if (daPy_getPlayerActorClass()->getCutType() >= daPy_py_c::CUT_TYPE_NM_VERTICAL && daPy_getPlayerActorClass()->getCutType() <= daPy_py_c::CUT_TYPE_FINISH_VERTICAL) {
|
||||
anm_p->m_angX = 0.5f * (cM_atan2s(var_f31, 20.0f) * (0.5f + (0.2f * cM_rnd())));
|
||||
} else if (daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_TURN_RIGHT ||
|
||||
daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_TURN_LEFT ||
|
||||
daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_RIGHT ||
|
||||
daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_LEFT)
|
||||
{
|
||||
anm_p->m_angX = cM_atan2s(var_f31, 40.0f) * (1.5f + (0.3f * cM_rnd()));
|
||||
} else {
|
||||
anm_p->m_angX = cM_atan2s(var_f31, 40.0f) * (0.9f + (0.2f * cM_rnd()));
|
||||
}
|
||||
|
||||
anm_p->m_state = 2;
|
||||
}
|
||||
|
||||
/* 8051DF54-8051E1C8 0022F4 0274+00 1/1 0/0 0/0 .text
|
||||
* Direction_Set__13dGrass_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInfP8cCcD_ObjP5csXyz */
|
||||
void dGrass_data_c::Direction_Set(fopAc_ac_c* param_0, u32 param_1, int param_2,
|
||||
dCcMassS_HitInf* param_3, cCcD_Obj* param_4, csXyz* param_5) {
|
||||
// NONMATCHING
|
||||
void dGrass_data_c::Direction_Set(fopAc_ac_c* i_hitActor, u32 i_massFlg, int i_roomNo,
|
||||
dCcMassS_HitInf* i_hitinf, cCcD_Obj* i_hitObj, csXyz* i_rotation) {
|
||||
cXyz sp8;
|
||||
|
||||
f32 var_f31;
|
||||
s16 var_r27;
|
||||
if (i_hitObj == NULL) {
|
||||
sp8.x = m_pos.x - i_hitActor->current.pos.x;
|
||||
sp8.y = m_pos.y - i_hitActor->current.pos.y;
|
||||
sp8.z = m_pos.z - i_hitActor->current.pos.z;
|
||||
|
||||
var_f31 = sp8.abs2XZ();
|
||||
var_r27 = i_hitActor->shape_angle.y;
|
||||
} else {
|
||||
sp8 = *dCcD_GetGObjInf(i_hitObj)->GetAtVecP();
|
||||
var_f31 = sp8.abs2XZ();
|
||||
|
||||
if (cM3d_IsZero(var_f31)) {
|
||||
cCcD_ShapeAttr* shape = i_hitObj->GetShapeAttr();
|
||||
if (shape->GetNVec(m_pos, &sp8)) {
|
||||
PSVECScale(&sp8, &sp8, 5.0f);
|
||||
var_f31 = sp8.abs2XZ();
|
||||
} else {
|
||||
sp8.x = m_pos.x - i_hitActor->current.pos.x;
|
||||
sp8.y = m_pos.y - i_hitActor->current.pos.y;
|
||||
sp8.z = m_pos.z - i_hitActor->current.pos.z;
|
||||
|
||||
var_f31 = sp8.abs2XZ();
|
||||
}
|
||||
}
|
||||
|
||||
if (cM3d_IsZero(var_f31)) {
|
||||
return;
|
||||
}
|
||||
|
||||
var_r27 = cM_atan2s(sp8.x, sp8.z);
|
||||
}
|
||||
|
||||
i_rotation->y = var_r27 * (0.89999998f + (0.2f * cM_rnd()));
|
||||
i_rotation->x = 0.6f * (cM_atan2s(var_f31, 40.0f));
|
||||
i_rotation->z = 0;
|
||||
}
|
||||
|
||||
static u8 data_8052790d;
|
||||
|
||||
/* 8051E1C8-8051EB4C 002568 0984+00 1/1 0/0 0/0 .text
|
||||
* WorkAt__13dGrass_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInfUs */
|
||||
// NONMATCHING - literals / regswap, equivalent?
|
||||
void dGrass_data_c::WorkAt(fopAc_ac_c* param_0, u32 param_1, int i_roomNo, dCcMassS_HitInf* param_3,
|
||||
void dGrass_data_c::WorkAt(fopAc_ac_c* i_hitActor, u32 i_massFlg, int i_roomNo, dCcMassS_HitInf* i_hitinf,
|
||||
u16 i_particleID) {
|
||||
cCcD_Obj* hit_obj = param_3->GetAtHitObj();
|
||||
cCcD_Obj* hit_obj = i_hitinf->GetAtHitObj();
|
||||
|
||||
if (hit_obj != NULL) {
|
||||
if (hit_obj->ChkAtType(0) || hit_obj->ChkAtType(AT_TYPE_ARROW) ||
|
||||
hit_obj->ChkAtType(AT_TYPE_SLINGSHOT) || hit_obj->ChkAtType(0x20000000) ||
|
||||
hit_obj->ChkAtType(AT_TYPE_SLINGSHOT) || hit_obj->ChkAtType(AT_TYPE_20000000) ||
|
||||
hit_obj->ChkAtType(AT_TYPE_SHIELD_ATTACK) || hit_obj->ChkAtType(AT_TYPE_BOOMERANG) ||
|
||||
hit_obj->ChkAtType(0x100) || hit_obj->ChkAtType(AT_TYPE_LANTERN_SWING) ||
|
||||
hit_obj->ChkAtType(AT_TYPE_100) || hit_obj->ChkAtType(AT_TYPE_LANTERN_SWING) ||
|
||||
hit_obj->ChkAtType(AT_TYPE_HOOKSHOT))
|
||||
{
|
||||
WorkAt_NoCutAnim(param_0, param_1, i_roomNo, param_3, hit_obj);
|
||||
WorkAt_NoCutAnim(i_hitActor, i_massFlg, i_roomNo, i_hitinf, hit_obj);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
fopAc_ac_c* player_p = dComIfGp_getPlayer(0);
|
||||
if (hit_obj->ChkAtType(AT_TYPE_BOMB)) {
|
||||
if (param_0 != NULL && m_pos.abs(param_0->current.pos) > 200.0f) {
|
||||
WorkAt_NoCutAnim(param_0, param_1, i_roomNo, param_3, hit_obj);
|
||||
if (i_hitActor != NULL && m_pos.abs(i_hitActor->current.pos) > 200.0f) {
|
||||
WorkAt_NoCutAnim(i_hitActor, i_massFlg, i_roomNo, i_hitinf, hit_obj);
|
||||
return;
|
||||
}
|
||||
} else if (daPy_getPlayerActorClass()->getCutType() >= daPy_py_c::CUT_TYPE_NM_RIGHT &&
|
||||
|
|
@ -54,7 +329,7 @@ void dGrass_data_c::WorkAt(fopAc_ac_c* param_0, u32 param_1, int i_roomNo, dCcMa
|
|||
{
|
||||
if (m_pos.abs(player_p->current.pos) > 158.0f) {
|
||||
if (m_pos.abs(player_p->current.pos) < 200.0f) {
|
||||
WorkAt_NoCutAnim(param_0, param_1, i_roomNo, param_3, hit_obj);
|
||||
WorkAt_NoCutAnim(i_hitActor, i_massFlg, i_roomNo, i_hitinf, hit_obj);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
@ -62,14 +337,14 @@ void dGrass_data_c::WorkAt(fopAc_ac_c* param_0, u32 param_1, int i_roomNo, dCcMa
|
|||
daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_TURN_LEFT)
|
||||
{
|
||||
if (m_pos.abs(player_p->current.pos) > 200.0f) {
|
||||
WorkAt_NoCutAnim(param_0, param_1, i_roomNo, param_3, hit_obj);
|
||||
WorkAt_NoCutAnim(i_hitActor, i_massFlg, i_roomNo, i_hitinf, hit_obj);
|
||||
return;
|
||||
}
|
||||
} else if (daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_RIGHT ||
|
||||
daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_LEFT)
|
||||
{
|
||||
if (m_pos.abs(player_p->current.pos) > 500.0f) {
|
||||
WorkAt_NoCutAnim(param_0, param_1, i_roomNo, param_3, hit_obj);
|
||||
WorkAt_NoCutAnim(i_hitActor, i_massFlg, i_roomNo, i_hitinf, hit_obj);
|
||||
return;
|
||||
}
|
||||
} else if (daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_NM_VERTICAL ||
|
||||
|
|
@ -101,48 +376,60 @@ void dGrass_data_c::WorkAt(fopAc_ac_c* param_0, u32 param_1, int i_roomNo, dCcMa
|
|||
|
||||
static csXyz ang(0, 0, 0);
|
||||
|
||||
cXyz sp50(m_pos.x, m_pos.y + 25.0f, m_pos.z);
|
||||
cXyz particle_pos(m_pos.x, m_pos.y + 25.0f, m_pos.z);
|
||||
dKy_tevstr_c* tevstr = dComIfGp_roomControl_getTevStr(i_roomNo);
|
||||
|
||||
csXyz sp40;
|
||||
Direction_Set(param_0, param_1, i_roomNo, param_3, hit_obj, &sp40);
|
||||
csXyz particle_rot;
|
||||
Direction_Set(i_hitActor, i_massFlg, i_roomNo, i_hitinf, hit_obj, &particle_rot);
|
||||
|
||||
GXColor envcolor;
|
||||
envcolor.r = (m_addCol >> 8) & 0xFF;
|
||||
envcolor.r = m_addCol >> 8;
|
||||
envcolor.g = m_addCol & 0xFF;
|
||||
dComIfGp_particle_set(i_particleID, &sp50, tevstr, &sp40, NULL, 255,
|
||||
dComIfGp_particle_set(i_particleID, &particle_pos, tevstr, &particle_rot, NULL, 255,
|
||||
dPa_control_c::getLight8EcallBack(), -1, &envcolor, NULL, NULL);
|
||||
|
||||
static bool init;
|
||||
if (!init) {
|
||||
init = true;
|
||||
if (data_8052790d == 0) {
|
||||
data_8052790d = 1;
|
||||
mDoAud_seStart(JA_SE_LK_CUT_GRASS, &m_pos, 0, dComIfGp_getReverb(i_roomNo));
|
||||
}
|
||||
}
|
||||
|
||||
/* 8051EB4C-8051EB88 002EEC 003C+00 3/3 0/0 0/0 .text __dt__5csXyzFv */
|
||||
// csXyz::~csXyz() {
|
||||
extern "C" asm void __dt__5csXyzFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 805278B8-805278C4 0046E0 000C+00 3/3 0/0 0/0 .data __vt__15dCcMassS_HitInf */
|
||||
SECTION_DATA extern void* __vt__15dCcMassS_HitInf[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__15dCcMassS_HitInfFv,
|
||||
};
|
||||
|
||||
/* 8051EB88-8051ED98 002F28 0210+00 1/1 0/0 0/0 .text hitCheck__13dGrass_data_cFiUs */
|
||||
void dGrass_data_c::hitCheck(int param_0, u16 param_1) {
|
||||
// NONMATCHING
|
||||
}
|
||||
void dGrass_data_c::hitCheck(int i_roomNo, u16 i_particleName) {
|
||||
dCcMassS_HitInf hitinf;
|
||||
fopAc_ac_c* hit_actor;
|
||||
|
||||
/* 8051ED98-8051EDE0 003138 0048+00 1/0 0/0 0/0 .text __dt__15dCcMassS_HitInfFv */
|
||||
// dCcMassS_HitInf::~dCcMassS_HitInf() {
|
||||
extern "C" asm void __dt__15dCcMassS_HitInfFv() {
|
||||
// NONMATCHING
|
||||
u32 mass_flags = dComIfG_Ccsp()->ChkMass(&m_pos, &hit_actor, &hitinf);
|
||||
bool at_hit = (mass_flags & 1) && (hit_actor != NULL && fopAcM_GetName(hit_actor) != PROC_Obj_Carry);
|
||||
|
||||
if (!(mass_flags & 2) && !at_hit) {
|
||||
if (field_0x02 >= 16) {
|
||||
dGrass_anm_c* anm_p = daGrass_c::getGrass()->getAnm(field_0x02);
|
||||
s16 spC = anm_p->m_angY & 0xE000;
|
||||
int sp10 = field_0x02 & 15;
|
||||
dGrass_anm_c* temp_r27 = daGrass_c::getGrass()->getAnm(sp10);
|
||||
|
||||
if (anm_p->m_state == 2) {
|
||||
mDoAud_seStart(JA_SE_FT_ADD_GRASS, &m_pos, 0, dComIfGp_getReverb(i_roomNo));
|
||||
anm_p->m_state = 1;
|
||||
}
|
||||
|
||||
if (cLib_addCalcAngleS(&anm_p->m_angX, temp_r27->m_angX, 10, 4400, 400) == 0) {
|
||||
if (cLib_addCalcAngleS(&anm_p->m_angY, temp_r27->m_angY, 10, 4400, 400) == 0) {
|
||||
daGrass_c::getGrass()->deleteAnm(field_0x02);
|
||||
field_0x02 &= 15;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (mass_flags & 2) {
|
||||
WorkCo(hit_actor, mass_flags, i_roomNo);
|
||||
}
|
||||
|
||||
if (at_hit) {
|
||||
WorkAt(hit_actor, mass_flags, i_roomNo, &hitinf, i_particleName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 8051EDE0-8051EDF0 003180 0010+00 1/1 0/0 0/0 .text newData__13dGrass_room_cFP13dGrass_data_c */
|
||||
|
|
@ -159,7 +446,7 @@ void dGrass_room_c::deleteData() {
|
|||
s8 anm_id = mp_data->field_0x02;
|
||||
if (anm_id >= 16) {
|
||||
daGrass_c::getGrass()->deleteAnm(anm_id);
|
||||
mp_data->field_0x02 = cM_rnd() * FLOAT_LABEL(lit_4600);
|
||||
mp_data->field_0x02 = cM_rnd() * 15.0f;
|
||||
}
|
||||
|
||||
mp_data = mp_data->mp_next;
|
||||
|
|
@ -174,7 +461,7 @@ dGrass_packet_c::dGrass_packet_c() {
|
|||
data_p++;
|
||||
}
|
||||
|
||||
field_0x10 = 0;
|
||||
m_dataNum = 0;
|
||||
|
||||
dGrass_anm_c* anm_p = m_anm;
|
||||
for (int i = 0; i < 112; i++) {
|
||||
|
|
@ -202,28 +489,359 @@ dGrass_packet_c::dGrass_packet_c() {
|
|||
m_Mkusa_9q_cDL_size = 0xC0;
|
||||
field_0x1d714 = 0;
|
||||
|
||||
m_deleteRoom = &deleteRoom;
|
||||
m_deleteRoom = &dGrass_packet_c::deleteRoom;
|
||||
}
|
||||
|
||||
|
||||
/* 8051F03C-8051FABC 0033DC 0A80+00 1/0 0/0 0/0 .text draw__15dGrass_packet_cFv */
|
||||
// void dGrass_packet_c::draw() {
|
||||
extern "C" asm void draw__15dGrass_packet_cFv() {
|
||||
// NONMATCHING
|
||||
// NONMATCHING
|
||||
void dGrass_packet_c::draw() {
|
||||
dScnKy_env_light_c* kankyo = dKy_getEnvlight();
|
||||
cXyz spB4;
|
||||
cXyz spA8;
|
||||
|
||||
j3dSys.reinitGX();
|
||||
GXSetNumIndStages(0);
|
||||
dKy_setLight_again();
|
||||
GXClearVtxDesc();
|
||||
|
||||
static GXVtxDescList l_vtxDescList[] = {
|
||||
{GX_VA_POS, GX_INDEX8},
|
||||
{GX_VA_NRM, GX_INDEX8},
|
||||
{GX_VA_CLR0, GX_INDEX8},
|
||||
{GX_VA_TEX0, GX_INDEX8},
|
||||
{GX_VA_NULL, GX_NONE},
|
||||
};
|
||||
|
||||
static GXVtxAttrFmtList l_vtxAttrFmtList[] = {
|
||||
GX_VA_POS,
|
||||
GX_POS_XYZ,
|
||||
GX_F32,
|
||||
0,
|
||||
|
||||
GX_VA_NRM,
|
||||
GX_NRM_XYZ,
|
||||
GX_F32,
|
||||
0,
|
||||
|
||||
GX_VA_CLR0,
|
||||
GX_CLR_RGBA,
|
||||
GX_RGBA8,
|
||||
0,
|
||||
|
||||
GX_VA_TEX0,
|
||||
GX_TEX_ST,
|
||||
GX_F32,
|
||||
0,
|
||||
|
||||
GX_VA_NULL,
|
||||
GX_TEX_ST,
|
||||
GX_S8,
|
||||
0,
|
||||
};
|
||||
|
||||
GXSetVtxDescv(l_vtxDescList);
|
||||
GXSetVtxAttrFmtv(GX_VTXFMT0, l_vtxAttrFmtList);
|
||||
GXSetArray(GX_VA_POS, mp_pos, sizeof(Vec));
|
||||
GXSetArray(GX_VA_NRM, mp_normal, sizeof(Vec));
|
||||
GXSetArray(GX_VA_CLR0, mp_colors, sizeof(GXColor));
|
||||
GXSetArray(GX_VA_TEX0, mp_texCoords, 8);
|
||||
|
||||
GXColorS10 spA0 = {0, 0, 0, 0};
|
||||
GXColorS10 sp98 = {0, 0, 0, 0};
|
||||
|
||||
dGrass_room_c* sp54 = m_room;
|
||||
|
||||
f32 var_f31 = g_env_light.getDaytime();
|
||||
f32 var_f30;
|
||||
f32 var_f29;
|
||||
if (var_f31 >= 90.0f && var_f31 < 135.0f) {
|
||||
var_f30 = 1.0f - (0.022222223f * (135.0f - var_f31));
|
||||
var_f29 = 100.0f - (18.0f * var_f30);
|
||||
} else if (var_f31 >= 135.0f && var_f31 < 225.0f) {
|
||||
var_f30 = 1.0f - (0.011111111f * (225.0f - var_f31));
|
||||
var_f29 = 82.0f - (25.0f * var_f30);
|
||||
} else if (var_f31 >= 225.0f && var_f31 < 270.0f) {
|
||||
var_f30 = 1.0f - (0.022222223f * (270.0f - var_f31));
|
||||
var_f29 = 57.0f - (-25.0f * var_f30);
|
||||
} else if (var_f31 >= 270.0f && var_f31 < 315.0f) {
|
||||
var_f30 = (1.0f - (0.022222223f * (315.0f - var_f31)));
|
||||
var_f29 = 82.0f - (-18.0f * var_f30);
|
||||
} else {
|
||||
var_f29 = 100.0f;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 64; i++) {
|
||||
dGrass_data_c* var_r29 = sp54->getData();
|
||||
if (var_r29 != NULL && dComIfGp_roomControl_checkStatusFlag(i, 0x10)) {
|
||||
int sp4C = 0;
|
||||
int sp48 = 6;
|
||||
dKy_tevstr_c* sp44 = dComIfGp_roomControl_getTevStr(i);
|
||||
|
||||
f32 temp_f27 = g_env_light.grass_light_inf_rate * g_env_light.bg_light_influence;
|
||||
f32 sp58 = 1.0f - temp_f27;
|
||||
temp_f27 += 0.5f * sp58;
|
||||
|
||||
J3DLightInfo& sp40 = sp44->mLights[0].getLightInfo();
|
||||
sp98.r = sp40.mColor.r * temp_f27;
|
||||
sp98.g = sp40.mColor.g * temp_f27;
|
||||
sp98.b = sp40.mColor.b * temp_f27;
|
||||
sp98.a = var_f29;
|
||||
|
||||
if (memcmp(dComIfGp_getStartStageName(), "D_MN01", 6) == 0) {
|
||||
sp98.r = 0;
|
||||
sp98.g = 0x1E;
|
||||
sp98.b = 5;
|
||||
sp98.a = 0x50;
|
||||
}
|
||||
|
||||
GFSetTevColorS10(GX_TEVREG1, sp98);
|
||||
|
||||
if (dComIfGp_roomControl_getStatusRoomDt(i) != NULL) {
|
||||
sp48 = dComIfGp_roomControl_getStatusRoomDt(i)->mRoomDt.getLightVecInfoNum();
|
||||
}
|
||||
|
||||
if (dKy_SunMoon_Light_Check() == TRUE && sp48 < 2) {
|
||||
sp48 = 2;
|
||||
}
|
||||
|
||||
for (int j = 0; j < 6; j++) {
|
||||
if (kankyo->field_0x0c18[j].field_0x26 == 1) {
|
||||
sp48++;
|
||||
}
|
||||
}
|
||||
|
||||
if (var_r29->field_0x05 <= 3 || var_r29->field_0x05 >= 10) {
|
||||
if (sp48 <= 3) {
|
||||
GXCallDisplayList(mp_kusa9q_14_DL, m_kusa9q_DL_14_size);
|
||||
} else {
|
||||
GXCallDisplayList(mp_kusa9q_DL, m_kusa9q_DL_size);
|
||||
}
|
||||
} else {
|
||||
GXCallDisplayList(l_Tengusa_matDL, 0xA0);
|
||||
}
|
||||
|
||||
GFSetTevColorS10(GX_TEVREG2, spA0);
|
||||
|
||||
dKy_Global_amb_set(sp44);
|
||||
dKy_GfFog_tevstr_set(sp44);
|
||||
dKy_setLight_nowroom_grass(sp44->room_no, 0.0f);
|
||||
|
||||
while (var_r29 != NULL) {
|
||||
if (var_r29->field_0x05 <= 3 || var_r29->field_0x05 >= 10) {
|
||||
if (sp48 <= 2) {
|
||||
GXCallDisplayList(mp_kusa9q_14_DL, m_kusa9q_DL_14_size);
|
||||
} else {
|
||||
GXCallDisplayList(mp_kusa9q_DL, m_kusa9q_DL_size);
|
||||
}
|
||||
} else {
|
||||
GXCallDisplayList(l_Tengusa_matDL, 0xA0);
|
||||
}
|
||||
|
||||
if (var_r29->field_0x02 <= -1) {
|
||||
sp98.a = 0;
|
||||
} else {
|
||||
sp98.a = var_f29;
|
||||
}
|
||||
|
||||
GFSetTevColorS10(GX_TEVREG1, sp98);
|
||||
|
||||
GXColor sp38;
|
||||
sp38.r = (var_r29->m_addCol & 0x1F) * 2;
|
||||
sp38.g = ((var_r29->m_addCol >> 5) & 0x1F) * 2;
|
||||
sp38.b = ((var_r29->m_addCol >> 0xA) & 0x1F) * 2;
|
||||
|
||||
if (daPy_py_c::checkNowWolfPowerUp()) {
|
||||
f32 var_f26 = g_env_light.bg_amb_col[0].r / 255.0f;
|
||||
sp38.r = (((var_r29->m_addCol & 0x1F) * 2) + 0x10) * (4.0f * var_f26);
|
||||
|
||||
var_f26 = g_env_light.bg_amb_col[0].g / 255.0f;
|
||||
sp38.g = ((((var_r29->m_addCol >> 5) & 0x1F) * 2) + 0x10) * (4.0f * var_f26);
|
||||
|
||||
var_f26 = g_env_light.bg_amb_col[0].b / 255.0f;
|
||||
sp38.b = ((((var_r29->m_addCol >> 0xA) & 0x1F) * 2) + 0x10) * (4.0f * var_f26);
|
||||
}
|
||||
|
||||
f32 sp2C = 1.0f - ((int)var_r29->m_pos.x * 0.001953125f);
|
||||
|
||||
f32 var_f28 = 1.1f - ((int)var_r29->m_pos.x / 2000.0f);
|
||||
var_f28 -= (int)var_r29->m_pos.z / 2000.0f;
|
||||
|
||||
if (var_f28 > 1.0f) {
|
||||
var_f28 = 1.0f;
|
||||
}
|
||||
|
||||
if (sp38.r == 0x3E) {
|
||||
sp38.r = sp44->AmbCol.r * sp2C;
|
||||
} else {
|
||||
sp38.r = sp38.r * var_f28;
|
||||
}
|
||||
|
||||
if (sp38.g == 0x3E) {
|
||||
sp38.g = sp44->AmbCol.g * sp2C;
|
||||
} else {
|
||||
sp38.g = sp38.g * var_f28;
|
||||
}
|
||||
|
||||
if (sp38.b == 0x3E) {
|
||||
sp38.b = sp44->AmbCol.b * sp2C;
|
||||
} else {
|
||||
sp38.b = sp38.b * var_f28;
|
||||
}
|
||||
|
||||
GXSetChanAmbColor(GX_COLOR0A0, sp38);
|
||||
|
||||
if (!cLib_checkBit<u8>(var_r29->field_0x01, 2)) {
|
||||
GXLoadPosMtxImm(var_r29->m_modelMtx, 0);
|
||||
GXLoadNrmMtxImm(j3dSys.getViewMtx(), 0);
|
||||
if (var_r29->field_0x05 <= 3 || var_r29->field_0x05 >= 10) {
|
||||
if (var_r29->field_0x02 < -1) {
|
||||
spA0.a = (-0x100 - ((var_r29->field_0x02 << 8) / 40));
|
||||
GFSetTevColorS10(GX_TEVREG2, spA0);
|
||||
|
||||
if (var_r29->field_0x02 != -2) {
|
||||
GXCallDisplayList(mp_Mkusa_9q_DL, m_Mkusa_9q_DL_size);
|
||||
} else {
|
||||
GXCallDisplayList(mp_Mkusa_9q_cDL, m_Mkusa_9q_cDL_size);
|
||||
}
|
||||
|
||||
spA0.a = 0;
|
||||
GFSetTevColorS10(GX_TEVREG2, spA0);
|
||||
} else if (var_r29->field_0x02 >= 0) {
|
||||
GXCallDisplayList(mp_Mkusa_9q_DL, m_Mkusa_9q_DL_size);
|
||||
} else {
|
||||
GXCallDisplayList(mp_Mkusa_9q_cDL, m_Mkusa_9q_cDL_size);
|
||||
}
|
||||
} else if (var_r29->field_0x02 < -1) {
|
||||
spA0.a = (-0x100 - ((var_r29->field_0x02 << 8) / 40));
|
||||
GFSetTevColorS10(GX_TEVREG2, spA0);
|
||||
|
||||
if (var_r29->field_0x02 != -2) {
|
||||
GXCallDisplayList(l_M_TenGusaDL, 0xC0);
|
||||
} else {
|
||||
GXCallDisplayList(mp_Mkusa_9q_cDL, m_Mkusa_9q_cDL_size);
|
||||
}
|
||||
|
||||
spA0.a = 0;
|
||||
GFSetTevColorS10(GX_TEVREG2, spA0);
|
||||
} else if (var_r29->field_0x02 >= 0) {
|
||||
GXCallDisplayList(l_M_TenGusaDL, 0xC0);
|
||||
} else {
|
||||
GXCallDisplayList(mp_Mkusa_9q_cDL, m_Mkusa_9q_cDL_size);
|
||||
}
|
||||
}
|
||||
|
||||
var_r29 = var_r29->mp_next;
|
||||
}
|
||||
}
|
||||
sp54++;
|
||||
}
|
||||
|
||||
J3DShape::resetVcdVatCache();
|
||||
}
|
||||
|
||||
/* 8051FABC-8051FF88 003E5C 04CC+00 1/1 0/0 0/0 .text calc__15dGrass_packet_cFv */
|
||||
// NONMATCHING
|
||||
void dGrass_packet_c::calc() {
|
||||
// NONMATCHING
|
||||
cXyz* temp_r29 = dKyw_get_wind_vec();
|
||||
f32 var_f31 = dKyw_get_wind_pow() * dKyw_get_wind_pow();
|
||||
|
||||
static s16 exec_count_dammy = 0;
|
||||
static s16 exec_count_dammy2 = 0;
|
||||
|
||||
if (var_f31 < 0.09f) {
|
||||
var_f31 = 0.09f;
|
||||
}
|
||||
|
||||
if (memcmp(dComIfGp_getStartStageName(), "D_MN01", 6) == 0 && temp_r29 != NULL) {
|
||||
temp_r29->x = 0.0f;
|
||||
temp_r29->y = 0.0f;
|
||||
temp_r29->z = 0.0f;
|
||||
var_f31 = 0.0f;
|
||||
}
|
||||
|
||||
if (memcmp(dComIfGp_getStartStageName(), "D_MN54", 6) == 0 && temp_r29 != NULL) {
|
||||
temp_r29->x = 0.0f;
|
||||
temp_r29->y = 0.0f;
|
||||
temp_r29->z = 0.0f;
|
||||
var_f31 = 0.01f;
|
||||
}
|
||||
|
||||
dGrass_anm_c* sp14 = getAnm();
|
||||
f32 temp_f30 = cM_scos(field_0x1d714);
|
||||
field_0x1d714 += (int)(40.0f + cM_rndF(290.0f));
|
||||
|
||||
int sp18 = 1.0f + ((1.0f - var_f31) * (2.0f + NREG_F(3)));
|
||||
|
||||
for (int i = 0; i < 16; i++) {
|
||||
f32 temp_f28 = i * 0.0625f;
|
||||
f32 temp_f29 = cLib_maxLimit<f32>(500.0f + (500.0f * (i / 16)), 2000.0f);
|
||||
f32 temp_f27_2 = 1.6f + (0.69999999f * cM_ssin(exec_count_dammy2));
|
||||
|
||||
s16 sp8 = 0.69999999f * var_f31 * (temp_f29 + ((1.0f + (-0.2f * temp_f28)) * (10.0f * temp_f29 * (cM_ssin(exec_count_dammy + (i * 3050)) + temp_f27_2))));
|
||||
|
||||
exec_count_dammy += (int)(525.0f * var_f31);
|
||||
exec_count_dammy2 += (int)(325.0f * var_f31);
|
||||
|
||||
cLib_addCalcAngleS(&sp14->m_angX, (s16)sp8, sp18, 4000, 1);
|
||||
cLib_addCalcAngleS(&sp14->m_angY, (s16)cM_atan2s(temp_r29->x, temp_r29->z), 20, 4000, 1);
|
||||
|
||||
sp14++;
|
||||
}
|
||||
|
||||
int sp10 = dComIfGp_roomControl_getStayNo();
|
||||
dGrass_data_c* var_r30 = m_room[sp10].getData();
|
||||
dComIfGs_Grass_hide_Set(0);
|
||||
|
||||
if (var_r30 != NULL) {
|
||||
data_8052790d = 0;
|
||||
dComIfG_Ccsp()->SetMassAttr(40.0f, 120.0f, 11, 0);
|
||||
|
||||
do {
|
||||
u16 spA = 0x89D7;
|
||||
if (var_r30->field_0x05 >= 7 && var_r30->field_0x05 <= 9) {
|
||||
spA = 0x89D6;
|
||||
} else if (var_r30->field_0x05 >= 4 && var_r30->field_0x05 <= 6) {
|
||||
spA = 0x89D8;
|
||||
}
|
||||
|
||||
if (!cLib_checkBit<u8>(var_r30->field_0x01, 2)) {
|
||||
if (var_r30->field_0x02 >= 0) {
|
||||
var_r30->hitCheck(sp10, spA);
|
||||
} else if (var_r30->field_0x02 < -2) {
|
||||
var_r30->field_0x02 += 1;
|
||||
}
|
||||
} else if (var_r30->field_0x02 >= 16) {
|
||||
daGrass_c::getGrass()->deleteAnm(var_r30->field_0x02);
|
||||
var_r30->field_0x02 = 15.0f * cM_rnd();
|
||||
}
|
||||
|
||||
var_r30 = var_r30->mp_next;
|
||||
} while (var_r30 != NULL);
|
||||
} else {
|
||||
dComIfG_Ccsp()->SetMassAttr(40.0f, 40.0f, 11, 0);
|
||||
}
|
||||
}
|
||||
|
||||
/* 8051FF88-80520030 004328 00A8+00 2/3 0/0 0/1 .text checkGroundY__FR4cXyz */
|
||||
static f32 checkGroundY(cXyz& param_0) {
|
||||
// NONMATCHING
|
||||
dBgS_GndChk sp8;
|
||||
param_0.y += 50.0f;
|
||||
|
||||
bool temp_r3 = fopAcM_gc_c::gndCheck(¶m_0);
|
||||
f32 temp_f31 = fopAcM_gc_c::getGroundY();
|
||||
|
||||
param_0.y -= 50.0f;
|
||||
|
||||
f32 temp_f30;
|
||||
if (!temp_r3) {
|
||||
temp_f30 = param_0.y;
|
||||
return temp_f30;
|
||||
}
|
||||
|
||||
return temp_f31;
|
||||
}
|
||||
|
||||
/* 80520030-8052067C 0043D0 064C+00 1/1 0/0 0/0 .text update__15dGrass_packet_cFv */
|
||||
// NONMATCHING - mostly matches except literals, some regalloc, and one out of order block
|
||||
void dGrass_packet_c::update() {
|
||||
static s16 mAngleZ[1500];
|
||||
|
||||
|
|
@ -243,7 +861,7 @@ void dGrass_packet_c::update() {
|
|||
|
||||
cXyz sp1C;
|
||||
f32 far = mDoLib_clipper::getFar();
|
||||
mDoLib_clipper::changeFar(far * 1.636364f);
|
||||
mDoLib_clipper::changeFar(far * 1.6363636f);
|
||||
|
||||
for (int i = 0; i < 1500; i++) {
|
||||
if (data_p->m_state != 0) {
|
||||
|
|
@ -269,14 +887,13 @@ void dGrass_packet_c::update() {
|
|||
mAngleZ[i] = 0;
|
||||
}
|
||||
|
||||
f32 temp_f2 = ((((s16)data_p->m_pos.x * 3535) & 0xFFF) / 4096.0f) +
|
||||
((((s16)data_p->m_pos.z * 3535) & 0xFFF) / 4096.0f);
|
||||
temp_f2 *= 0.5f;
|
||||
f32 temp_f2 = (((s16)data_p->m_pos.x * 3535) & 0xFFF) / 4096.0f;
|
||||
temp_f2 = (temp_f2 + ((((s16)data_p->m_pos.z * 3535) & 0xFFF) / 4096.0f)) / 2;
|
||||
|
||||
f32 var_f31;
|
||||
f32 var_f30;
|
||||
if (data_p->field_0x05 >= 10) {
|
||||
var_f31 = temp_f2 * 0.4f + 0.6f;
|
||||
var_f31 = temp_f2 * 0.39999998f + 0.6f;
|
||||
var_f30 = temp_f2 * 0.3f + 0.7f;
|
||||
} else {
|
||||
var_f31 = temp_f2 * 0.3f + 0.7f;
|
||||
|
|
@ -314,10 +931,7 @@ void dGrass_packet_c::update() {
|
|||
if (data_p->field_0x05 >= 10 &&
|
||||
memcmp(dComIfGp_getStartStageName(), "D_MN54", 6) != 0)
|
||||
{
|
||||
f32 pow =
|
||||
dKyw_get_wind_pow() * dKyw_get_wind_pow() * dKyw_get_wind_pow();
|
||||
s16 ang = (((i + 1) & 0xF) * 25.0f + 3200.0f) * pow;
|
||||
mAngleZ[i] = mAngleZ[i] + ang;
|
||||
mAngleZ[i] += (int)((((i + 1) & 0xF) * 25.0f + 3200.0f) * (dKyw_get_wind_pow() * dKyw_get_wind_pow() * dKyw_get_wind_pow()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -345,7 +959,7 @@ void dGrass_packet_c::update() {
|
|||
|
||||
/* 8052067C-80520770 004A1C 00F4+00 1/1 0/0 0/0 .text
|
||||
* setData__15dGrass_packet_cFP13dGrass_data_ciR4cXyziUcUcsUc */
|
||||
void dGrass_packet_c::setData(dGrass_data_c* i_data, int param_1, cXyz& i_pos, int i_roomNo,
|
||||
void dGrass_packet_c::setData(dGrass_data_c* i_data, int i_dataNo, cXyz& i_pos, int i_roomNo,
|
||||
u8 i_tableNo, u8 i_itemBitNo, s16 i_addCol, u8 param_7) {
|
||||
f32 y_pos;
|
||||
if (fopOvlpM_IsPeek()) {
|
||||
|
|
@ -357,7 +971,7 @@ void dGrass_packet_c::setData(dGrass_data_c* i_data, int param_1, cXyz& i_pos, i
|
|||
}
|
||||
|
||||
i_data->field_0x01 = 2;
|
||||
i_data->field_0x02 = cM_rndF(FLOAT_LABEL(lit_4600));
|
||||
i_data->field_0x02 = cM_rndF(15.0f);
|
||||
i_data->m_pos.set(i_pos.x, y_pos, i_pos.z);
|
||||
i_data->m_tableNo = i_tableNo;
|
||||
i_data->m_itemBitNo = i_itemBitNo;
|
||||
|
|
@ -365,15 +979,15 @@ void dGrass_packet_c::setData(dGrass_data_c* i_data, int param_1, cXyz& i_pos, i
|
|||
i_data->field_0x05 = param_7;
|
||||
|
||||
m_room[i_roomNo].newData(i_data);
|
||||
field_0x10 = param_1;
|
||||
m_dataNum = i_dataNo;
|
||||
}
|
||||
|
||||
/* 80520770-80520864 004B10 00F4+00 1/1 0/0 0/0 .text newData__15dGrass_packet_cFR4cXyziUcUcsUc */
|
||||
dGrass_data_c* dGrass_packet_c::newData(cXyz& i_pos, int i_roomNo, u8 i_tableNo, u8 i_itemBitNo,
|
||||
s16 i_addCol, u8 param_5) {
|
||||
dGrass_data_c* data_p = m_data + field_0x10;
|
||||
dGrass_data_c* data_p = m_data + m_dataNum;
|
||||
|
||||
for (int i = field_0x10; i < 1500; i++) {
|
||||
for (int i = m_dataNum; i < 1500; i++) {
|
||||
if (data_p->m_state == 0) {
|
||||
setData(data_p, i, i_pos, i_roomNo, i_tableNo, i_itemBitNo, i_addCol, param_5);
|
||||
return data_p;
|
||||
|
|
@ -382,7 +996,7 @@ dGrass_data_c* dGrass_packet_c::newData(cXyz& i_pos, int i_roomNo, u8 i_tableNo,
|
|||
}
|
||||
|
||||
data_p = m_data;
|
||||
for (int i = 0; i < field_0x10; i++) {
|
||||
for (int i = 0; i < m_dataNum; i++) {
|
||||
if (data_p->m_state == 0) {
|
||||
setData(data_p, i, i_pos, i_roomNo, i_tableNo, i_itemBitNo, i_addCol, param_5);
|
||||
return data_p;
|
||||
|
|
@ -424,12 +1038,6 @@ void dGrass_packet_c::setAnm(int i_idx, s16) {
|
|||
anm_p->m_angX = 0;
|
||||
}
|
||||
|
||||
/* 8052090C-80520928 004CAC 001C+00 1/1 0/0 0/0 .text getSwordTopPos__9daPy_py_cCFv */
|
||||
// void daPy_py_c::getSwordTopPos() const {
|
||||
extern "C" asm void getSwordTopPos__9daPy_py_cCFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80520928-80520934 004CC8 000C+00 1/1 0/0 0/0 .text __ct__13dGrass_room_cFv */
|
||||
dGrass_room_c::dGrass_room_c() {
|
||||
mp_data = NULL;
|
||||
|
|
|
|||
Loading…
Reference in New Issue