diff --git a/include/JSystem/J3DGraphAnimator/J3DJoint.h b/include/JSystem/J3DGraphAnimator/J3DJoint.h index cd759add7f0..d5854e996f5 100644 --- a/include/JSystem/J3DGraphAnimator/J3DJoint.h +++ b/include/JSystem/J3DGraphAnimator/J3DJoint.h @@ -70,6 +70,8 @@ public: static J3DMtxCalc* mCurrentMtxCalc; + inline u8 getKind() { return mKind & 15; } + private: friend struct J3DJointFactory; friend class J3DJointTree; diff --git a/include/JSystem/J3DGraphAnimator/J3DModel.h b/include/JSystem/J3DGraphAnimator/J3DModel.h index eca87c81277..9e412af3529 100644 --- a/include/JSystem/J3DGraphAnimator/J3DModel.h +++ b/include/JSystem/J3DGraphAnimator/J3DModel.h @@ -100,6 +100,7 @@ public: Vec* getBaseScale() { return &mBaseScale; } void setAnmMtx(int jointNo, Mtx m) { mMtxBuffer->setAnmMtx(jointNo, m); } MtxP getAnmMtx(int jointNo) { return mMtxBuffer->getAnmMtx(jointNo); } + J3DSkinDeform* getSkinDeform() { return mSkinDeform; } /* 0x04 */ J3DModelData* mModelData; /* 0x08 */ u32 mFlags; diff --git a/include/JSystem/J3DGraphBase/J3DMatBlock.h b/include/JSystem/J3DGraphBase/J3DMatBlock.h index 08ffccddb99..9d255870421 100644 --- a/include/JSystem/J3DGraphBase/J3DMatBlock.h +++ b/include/JSystem/J3DGraphBase/J3DMatBlock.h @@ -726,6 +726,8 @@ struct J3DBlend : public J3DBlendInfo { void load(u8 ditherEnable) { J3DGDSetBlendMode(getBlendMode(), getSrcFactor(), getDstFactor(), getLogicOp(), ditherEnable); } + + void setBlendInfo(const J3DBlendInfo& i_blendInfo) { *static_cast(this) = i_blendInfo; } }; extern const J3DFogInfo j3dDefaultFogInfo; diff --git a/include/d/actor/d_a_demo00.h b/include/d/actor/d_a_demo00.h index 91397ecd3bb..5a9cc4d21da 100644 --- a/include/d/actor/d_a_demo00.h +++ b/include/d/actor/d_a_demo00.h @@ -1,6 +1,7 @@ #ifndef D_A_DEMO00_H #define D_A_DEMO00_H +#include "d/d_com_inf_game.h" #include "f_op/f_op_actor_mng.h" #include "d/d_demo.h" @@ -8,16 +9,46 @@ struct demo_s1_ke_s { public: /* 804A4420 */ ~demo_s1_ke_s(); /* 804A86B4 */ demo_s1_ke_s(); + + /* 0x000 */ cXyz field_0x0[16]; + /* 0x0C0 */ cXyz field_0xc0[16]; + /* 0x180 */ cXyz field_0x180; }; class daDemo00_resID_c { public: /* 804A430C */ void reset(); + + /* 0x00 */ u32 mShapeID; + /* 0x04 */ u32 field_0x4; + /* 0x08 */ u32 field_0x8; + /* 0x0C */ u32 field_0xc; + /* 0x10 */ u32 field_0x10; + /* 0x14 */ u32 field_0x14; + /* 0x18 */ u32 field_0x18; + /* 0x1C */ u32 field_0x1c; + /* 0x20 */ u32 field_0x20; }; class daDemo00_model_c { public: /* 804A4338 */ void reset(); + + /* 0x00 */ daDemo00_resID_c field_0x0; + /* 0x24 */ daDemo00_resID_c mID; +}; + +struct daDemo00_bgc_c { + /* 0x00 */ dBgS_GndChk mGndChk; + /* 0x54 */ f32 field_0x54; +}; + +struct daDemo00_shadow_c { + /* 0x00 */ u32 field_0x0; + /* 0x04 */ cXyz field_0x4; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ f32 field_0x1c; + /* 0x20 */ f32 field_0x20; }; /** @@ -30,18 +61,84 @@ public: */ class daDemo00_c : public fopAc_ac_c { public: + typedef int (daDemo00_c::*actionFunc)(dDemo_actor_c*); + /* 804A4388 */ ~daDemo00_c(); /* 804A45A0 */ void setBaseMtx(); /* 804A4948 */ void setShadowSize(); - /* 804A4F74 */ void createHeap(); - /* 804A5798 */ void actStandby(dDemo_actor_c*); - /* 804A594C */ void actPerformance(dDemo_actor_c*); - /* 804A604C */ void actLeaving(dDemo_actor_c*); - /* 804A6F94 */ void draw(); - /* 804A7BA8 */ void execute(); + /* 804A4F74 */ int createHeap(); + /* 804A5798 */ int actStandby(dDemo_actor_c*); + /* 804A594C */ int actPerformance(dDemo_actor_c*); + /* 804A604C */ int actLeaving(dDemo_actor_c*); + /* 804A6F94 */ int draw(); + /* 804A7BA8 */ int execute(); -private: - /* 0x568 */ u8 field_0x568[0x292c - 0x568]; + int create() { + dKy_tevstr_init(&tevStr, dComIfGp_roomControl_getStayNo(), 0xFF); + tevStr.field_0x384 = 1; + mSound.init(&eyePos, NULL, 10, 1); + setAction(&daDemo00_c::actStandby); + mModel.field_0x0.reset(); + field_0x6a0 = -1; + return 4; + } + + void setAction(actionFunc action) { field_0x57c = action; } + void action(dDemo_actor_c* actor) { (this->*field_0x57c)(actor); } + + /* 0x0568 */ cXyz field_0x568; + /* 0x0574 */ csXyz field_0x574; + /* 0x057C */ actionFunc field_0x57c; + /* 0x0584 */ daDemo00_model_c mModel; + /* 0x05D0 */ mDoExt_McaMorfSO* mpModelMorf; + /* 0x05D4 */ J3DModel* field_0x5d4; + /* 0x05D8 */ mDoExt_invisibleModel* field_0x5d8; + /* 0x05DC */ mDoExt_bpkAnm* mpBpkAnm; + /* 0x05E0 */ mDoExt_btpAnm* mpBtpAnm; + /* 0x05E4 */ mDoExt_btkAnm* mpBtkAnm; + /* 0x05E8 */ mDoExt_brkAnm* mpBrkAnm; + /* 0x05EC */ daDemo00_shadow_c* mShadow; + /* 0x05F0 */ J3DDeformData* mDeformData; + /* 0x05F4 */ mDoExt_blkAnm* mpBlkAnm; + /* 0x05F8 */ daDemo00_bgc_c* mBgc; + /* 0x05FC */ Z2Creature mSound; + /* 0x068C */ u32 field_0x68c; + /* 0x0690 */ u8 field_0x690[0x694 - 0x690]; + /* 0x0694 */ s32 field_0x694; + /* 0x0698 */ int field_0x698; + /* 0x069C */ s16 field_0x69c; + /* 0x069E */ s16 field_0x69e; + /* 0x06A0 */ s8 field_0x6a0; + /* 0x06A1 */ u8 field_0x6a1; + /* 0x06A2 */ u8 field_0x6a2; + /* 0x06A3 */ u8 mground2; + /* 0x06A4 */ u8 field_0x6a4; + /* 0x06A5 */ u8 field_0x6a5; + /* 0x06A6 */ u8 field_0x6a6; + /* 0x06A7 */ s8 field_0x6a7; + /* 0x06A8 */ s8 field_0x6a8; + /* 0x06A9 */ s8 field_0x6a9; + /* 0x06AA */ s8 field_0x6aa; + /* 0x06AB */ s8 field_0x6ab; + /* 0x06AC */ u8 field_0x6ac; + /* 0x06AD */ u8 field_0x6ad; + /* 0x06AE */ u8 field_0x6ae; + /* 0x06AF */ s8 field_0x6af; + /* 0x06B0 */ s8 field_0x6b0; + /* 0x06B1 */ s8 field_0x6b1; + /* 0x06B2 */ u8 field_0x6b2; + /* 0x06B3 */ s8 field_0x6b3; + /* 0x06B4 */ s8 field_0x6b4; + /* 0x06B5 */ u8 field_0x6b5; + /* 0x06B6 */ u8 field_0x6b6; + /* 0x06B7 */ u8 field_0x6b7; + /* 0x06B8 */ u8 field_0x6b8; + /* 0x06B9 */ s8 field_0x6b9; + /* 0x06BC */ mDoExt_3DlineMat1_c field_0x6bc; + /* 0x06F8 */ demo_s1_ke_s field_0x6f8[22]; + /* 0x2900 */ mDoExt_3DlineMat0_c field_0x2900; + /* 0x291C */ cXyz field_0x291c; + /* 0x2928 */ u8 field_0x2928[0x292c - 0x2928]; }; STATIC_ASSERT(sizeof(daDemo00_c) == 0x292c); diff --git a/include/d/d_demo.h b/include/d/d_demo.h index d8d88941cc6..6ff7317a324 100644 --- a/include/d/d_demo.h +++ b/include/d/d_demo.h @@ -65,6 +65,7 @@ public: class dDemo_actor_c : public JStage::TActor { public: enum Enable_e { + ENABLE_UNK_e = 1, ENABLE_TRANS_e = (1 << 1), ENABLE_SCALE_e = (1 << 2), ENABLE_ROTATE_e = (1 << 3), @@ -123,6 +124,7 @@ public: void setModel(J3DModel* p_model) { mModel = p_model; } BOOL checkEnable(u16 flag) { return mFlags & flag; } void onEnable(u16 flag) { mFlags |= flag; } + void offEnable(u16 flag) { mFlags &= ~flag; } cXyz& getTrans() { return mTrans; } cXyz& getScale() { return mScale; } csXyz& getRatate() { return mRotate; } @@ -132,6 +134,8 @@ public: void setAnmFrameMax(f32 max) { mAnmFrameMax = max; } f32 getAnmFrame() { return mAnmFrame; } dDemo_prm_c* getPrm() { return &mPrm; } + f32 getAnmTransition() { return mAnmTransition; } + u32 getShapeId() { return mShape; } private: /* 0x04 */ u16 mFlags; @@ -343,6 +347,8 @@ public: }; // namespace +int dDemo_setDemoData(fopAc_ac_c*, u8, mDoExt_McaMorf*, char const*, int, u16*, u32, s8); + class dDemo_c { public: /* 80039678 */ static void create(); diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h index 19fdcd029d3..f38cdaf8803 100644 --- a/include/m_Do/m_Do_ext.h +++ b/include/m_Do/m_Do_ext.h @@ -207,6 +207,9 @@ public: J3DAnmCluster* getBlkAnm() { return mpAnm; } + void entryFrame() { entryFrame(getFrame()); } + void entryFrame(f32 frame) { mpAnm->setFrame(frame); } + private: /* 0x14 */ J3DAnmCluster* mpAnm; }; @@ -851,6 +854,7 @@ void mDoExt_setupStageTexture(J3DModelData* i_modelData); OSThread* mDoExt_GetCurrentRunningThread(); void mDoExt_setupShareTexture(J3DModelData* i_modelData, J3DModelData* i_shareModelData); void mDoExt_btkAnmRemove(J3DModelData* i_modelData); +void mDoExt_modelTexturePatch(J3DModelData* i_modelData); #if VERSION == VERSION_SHIELD_DEBUG s32 mDoExt_getSafeZeldaHeapSize(); diff --git a/src/d/actor/d_a_demo00.cpp b/src/d/actor/d_a_demo00.cpp index f0481a94044..f2ca3d4e2c3 100644 --- a/src/d/actor/d_a_demo00.cpp +++ b/src/d/actor/d_a_demo00.cpp @@ -4,458 +4,1870 @@ */ #include "d/actor/d_a_demo00.h" -#include "dol2asm.h" +#include "JSystem/JKernel/JKRSolidHeap.h" +#include "SSystem/SComponent/c_counter.h" +#include "d/d_com_inf_game.h" +#include "d/d_item.h" +#include "d/d_kankyo_rain.h" #include "d/d_camera.h" - - - - - -// -// Forward References: -// - -extern "C" void reset__16daDemo00_resID_cFv(); -extern "C" void reset__16daDemo00_model_cFv(); -extern "C" void __dt__10daDemo00_cFv(); -extern "C" void __dt__12demo_s1_ke_sFv(); -extern "C" void __dt__4cXyzFv(); -extern "C" void __dt__8cM3dGPlaFv(); -extern "C" static void get_foward_angle__FP4cXyzP4cXyzPsPs(); -extern "C" void setBaseMtx__10daDemo00_cFv(); -extern "C" void setShadowSize__10daDemo00_cFv(); -extern "C" static void awaCheck__FP8J3DModel(); -extern "C" static void createHeapCallBack__FP10fopAc_ac_c(); -extern "C" void createHeap__10daDemo00_cFv(); -extern "C" void __dt__12J3DFrameCtrlFv(); -extern "C" void actStandby__10daDemo00_cFP13dDemo_actor_c(); -extern "C" void actPerformance__10daDemo00_cFP13dDemo_actor_c(); -extern "C" void actLeaving__10daDemo00_cFP13dDemo_actor_c(); -extern "C" static void mDad00_changeXluMaterial__FP11J3DMateriali(); -extern "C" static void teduna_calc__FP4cXyzP4cXyzP4cXyzsi(); -extern "C" static void teduna_draw__FP8J3DModelP19mDoExt_3DlineMat1_cP12dKy_tevstr_ciiii(); -extern "C" static void teduna_ganon_hand_set__FP8J3DModelii(); -extern "C" static void ke_control__FP10daDemo00_cP12demo_s1_ke_sif(); -extern "C" static void ke_move__FP10daDemo00_cP19mDoExt_3DlineMat0_cP12demo_s1_ke_sif(); -extern "C" static void ke_set__FP10daDemo00_c(); -extern "C" static void daDemo00_Draw__FP10daDemo00_c(); -extern "C" void draw__10daDemo00_cFv(); -extern "C" static void daDemo00_Execute__FP10daDemo00_c(); -extern "C" void execute__10daDemo00_cFv(); -extern "C" static bool daDemo00_IsDelete__FP10daDemo00_c(); -extern "C" static void daDemo00_Delete__FP10daDemo00_c(); -extern "C" static void daDemo00_Create__FP10fopAc_ac_c(); -extern "C" void __ct__12demo_s1_ke_sFv(); -extern "C" void __ct__4cXyzFv(); -extern "C" void __sinit_d_a_demo00_cpp(); -extern "C" void func_804A87DC(); -extern "C" void func_804A8814(); -extern "C" extern char const* const d_a_demo00__stringBase0; - -// -// External References: -// - -extern "C" void fadeOut__13mDoGph_gInf_cFfR8_GXColor(); -extern "C" void fadeOut__13mDoGph_gInf_cFf(); -extern "C" void mDoMtx_XYZrotM__FPA4_fsss(); -extern "C" void mDoMtx_XrotS__FPA4_fs(); -extern "C" void mDoMtx_XrotM__FPA4_fs(); -extern "C" void mDoMtx_YrotS__FPA4_fs(); -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void mDoMtx_ZrotM__FPA4_fs(); -extern "C" void play__14mDoExt_baseAnmFv(); -extern "C" void init__13mDoExt_bpkAnmFP16J3DMaterialTableP11J3DAnmColoriifss(); -extern "C" void entry__13mDoExt_bpkAnmFP16J3DMaterialTablef(); -extern "C" void init__13mDoExt_btpAnmFP16J3DMaterialTableP16J3DAnmTexPatterniifss(); -extern "C" void entry__13mDoExt_btpAnmFP16J3DMaterialTables(); -extern "C" void init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss(); -extern "C" void entry__13mDoExt_btkAnmFP16J3DMaterialTablef(); -extern "C" void init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss(); -extern "C" void entry__13mDoExt_brkAnmFP16J3DMaterialTablef(); -extern "C" void init__13mDoExt_blkAnmFP13J3DDeformDataP13J3DAnmClusteriifss(); -extern "C" void mDoExt_modelTexturePatch__FP12J3DModelData(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void create__21mDoExt_invisibleModelFP8J3DModelUc(); -extern "C" void entryDL__21mDoExt_invisibleModelFP4cXyz(); -extern "C" void -__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl(); -extern "C" void setAnm__16mDoExt_McaMorfSOFP15J3DAnmTransformiffff(); -extern "C" void play__16mDoExt_McaMorfSOFUlSc(); -extern "C" void updateDL__16mDoExt_McaMorfSOFv(); -extern "C" void modelCalc__16mDoExt_McaMorfSOFv(); -extern "C" void stopZelAnime__16mDoExt_McaMorfSOFv(); -extern "C" void init__19mDoExt_3DlineMat0_cFUsUsi(); -extern "C" void update__19mDoExt_3DlineMat0_cFiR8_GXColorP12dKy_tevstr_c(); -extern "C" void init__19mDoExt_3DlineMat1_cFUsUsP7ResTIMGi(); -extern "C" void update__19mDoExt_3DlineMat1_cFiR8_GXColorP12dKy_tevstr_c(); -extern "C" void setMat__26mDoExt_3DlineMatSortPacketFP18mDoExt_3DlineMat_c(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void mDoLib_project__FP3VecP3Vec(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcM_delete__FP10fopAc_ac_c(); -extern "C" void fopAcM_create__FsUlPC4cXyziPC5csXyzPC4cXyzSc(); -extern "C" void fopAcM_DeleteHeap__FP10fopAc_ac_c(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_getPolygonAngle__FPC8cM3dGPlas(); -extern "C" void dComIfGp_getReverb__Fi(); -extern "C" void dComIfGd_setSimpleShadow__FP4cXyzffR13cBgS_PolyInfosfP9_GXTexObj(); -extern "C" void -dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj(); -extern "C" void daMP_c_THPPlayerPlay__6daMP_cFv(); -extern "C" void daMP_c_THPPlayerPause__6daMP_cFv(); -extern "C" void onEventBit__11dSv_event_cFUs(); -extern "C" void getDemoIDData__13dDemo_actor_cFPiPiPiPUsPUc(); -extern "C" void dDemo_setDemoData__FP10fopAc_ac_cUcP14mDoExt_McaMorfPCciPUsUlSc(); -extern "C" void getActor__14dDemo_object_cFUc(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void getIDRes__14dRes_control_cFPCcUsP11dRes_info_ci(); -extern "C" void -setWaterRipple__13dPa_control_cFPUlR13cBgS_PolyInfoPC4cXyzfPC12dKy_tevstr_cPC4cXyzSc(); -extern "C" void -set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); -extern "C" void dKyw_rain_set__Fi(); -extern "C" void dKyr_get_vectle_calc__FP4cXyzP4cXyzP4cXyz(); -extern "C" void StartShock__12dVibration_cFii4cXyz(); -extern "C" void StartQuake__12dVibration_cFii4cXyz(); -extern "C" void StopQuake__12dVibration_cFi(); -extern "C" void GroundCross__4cBgSFP11cBgS_GndChk(); -extern "C" void GetTriPla__4cBgSCFRC13cBgS_PolyInfoP8cM3dGPla(); -extern "C" void __ct__11dBgS_GndChkFv(); -extern "C" void __ct__18dBgS_CamGndChk_WtrFv(); -extern "C" void __dt__18dBgS_CamGndChk_WtrFv(); -extern "C" void execItemGet__FUc(); -extern "C" void StartBlure__9dCamera_cFiP10fopAc_ac_cff(); -extern "C" void dCam_getBody__Fv(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void dKy_change_colpat__FUc(); -extern "C" void dKy_tevstr_init__FP12dKy_tevstr_cScUc(); -extern "C" void dKy_BossSpotLight_set__FP4cXyzfffP8_GXColorfUcUc(); -extern "C" void dKy_pol_sound_get__FPC13cBgS_PolyInfo(); -extern "C" void dKy_bg_MAxx_proc__FPv(); -extern "C" void __pl__4cXyzCFRC3Vec(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void __ml__4cXyzCFf(); -extern "C" bool __ne__4cXyzCFRC3Vec(); -extern "C" void atan2sX_Z__4cXyzCFv(); -extern "C" void cM_atan2s__Fff(); -extern "C" void cM_initRnd2__Fiii(); -extern "C" void cM_rndF2__Ff(); -extern "C" void SetPos__11cBgS_GndChkFPC4cXyz(); -extern "C" void cBgW_CheckBGround__Ff(); -extern "C" void cLib_addCalc__FPfffff(); -extern "C" void cLib_addCalcAngleS2__FPssss(); -extern "C" void MtxPosition__FP4cXyzP4cXyz(); -extern "C" void MtxPush__Fv(); -extern "C" void MtxPull__Fv(); -extern "C" void __ct__10Z2CreatureFv(); -extern "C" void __dt__10Z2CreatureFv(); -extern "C" void init__10Z2CreatureFP3VecP3VecUcUc(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void getName__10JUTNameTabCFUs(); -extern "C" void setDeformData__8J3DModelFP13J3DDeformDataUl(); -extern "C" void setSkinDeform__8J3DModelFP13J3DSkinDeformUl(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void __ct__13J3DSkinDeformFv(); -extern "C" void removeMatColorAnimator__16J3DMaterialTableFP11J3DAnmColor(); -extern "C" void removeTexNoAnimator__16J3DMaterialTableFP16J3DAnmTexPattern(); -extern "C" void removeTexMtxAnimator__16J3DMaterialTableFP19J3DAnmTextureSRTKey(); -extern "C" void removeTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey(); -extern "C" void __destroy_arr(); -extern "C" void __construct_array(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_19(); -extern "C" void _savegpr_22(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_19(); -extern "C" void _restgpr_22(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" u8 const tempBitLabels__20dSv_event_tmp_flag_c[370 + 2 /* padding */]; -extern "C" extern void* __vt__19mDoExt_3DlineMat1_c[5]; -extern "C" extern void* __vt__19mDoExt_3DlineMat0_c[5]; -extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mWaterCheck__11fopAcM_wt_c[84 + 4 /* padding */]; -extern "C" u8 mDemoArcName__20dStage_roomControl_c[10 + 2 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32]; -extern "C" extern u8 g_Counter[12 + 4 /* padding */]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" extern u32 g_blackColor; -extern "C" extern u32 g_saftyWhiteColor; -extern "C" u8 mFrameBufferTimg__13mDoGph_gInf_c[4]; -extern "C" u8 m_object__7dDemo_c[4]; -extern "C" void __register_global_object(); - -// -// Declarations: -// +#include "m_Do/m_Do_graphic.h" +#include "m_Do/m_Do_ext.h" +#include "d/d_demo.h" +#include "Z2AudioLib/Z2Instances.h" +#include "m_Do/m_Do_lib.h" +#include "d/actor/d_a_movie_player.h" +#ifdef DEBUG +#include "d/d_debug_viewer.h" +#endif /* 804A430C-804A4338 0000EC 002C+00 3/3 0/0 0/0 .text reset__16daDemo00_resID_cFv */ void daDemo00_resID_c::reset() { - // NONMATCHING + mShapeID = -1; + field_0x4 = -1; + field_0x8 = -1; + field_0xc = -1; + field_0x10 = -1; + field_0x14 = -1; + field_0x18 = -1; + field_0x1c = -1; + field_0x20 = -1; } /* 804A4338-804A4388 000118 0050+00 1/1 0/0 0/0 .text reset__16daDemo00_model_cFv */ void daDemo00_model_c::reset() { // NONMATCHING + field_0x0.reset(); + mID.mShapeID = 0; + mID.field_0xc = 0; + mID.field_0x10 = 0; + mID.field_0x14 = 0; + mID.field_0x8 = 0; + mID.field_0x18 = 0; + mID.field_0x1c = 0; + mID.field_0x20 = 0; } /* 804A4388-804A4420 000168 0098+00 1/1 0/0 0/0 .text __dt__10daDemo00_cFv */ daDemo00_c::~daDemo00_c() { - // NONMATCHING + if (heap != NULL) { + if (mpModelMorf != NULL) { + mpModelMorf->stopZelAnime(); + } + } } /* 804A4420-804A449C 000200 007C+00 2/2 0/0 0/0 .text __dt__12demo_s1_ke_sFv */ -demo_s1_ke_s::~demo_s1_ke_s() { - // NONMATCHING -} +demo_s1_ke_s::~demo_s1_ke_s() {} -/* 804A449C-804A44D8 00027C 003C+00 5/5 0/0 0/0 .text __dt__4cXyzFv */ -// cXyz::~cXyz() { -extern "C" void __dt__4cXyzFv() { - // NONMATCHING -} - -/* ############################################################################################## */ /* 804A8998-804A8998 000138 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_804A8998 = "V_24_tri_joint"; -#pragma pop +static char const* const stringBase_804A8998 = "V_24_tri_joint"; -/* 804A89C0-804A89CC 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ -SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; +UNK_REL_DATA; -/* 804A89CC-804A89E0 00000C 0004+10 0/0 0/0 0/0 .data @1787 */ -#pragma push -#pragma force_active on -SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { - 0x02000201, - /* padding */ - 0x40080000, - 0x00000000, - 0x3FE00000, - 0x00000000, -}; -#pragma pop +/* 804A4520-804A45A0 000300 0080+00 1/1 0/0 0/0 .text get_foward_angle__FP4cXyzP4cXyzPsPs */ +static void get_foward_angle(cXyz* param_1, cXyz* param_2, s16* param_3, s16* param_4) { + // NONMATCHING + cXyz sp38; -/* 804A89E0-804A89F8 -00001 0018+00 0/0 0/0 0/0 .data l_lightData */ -#pragma push -#pragma force_active on -SECTION_DATA static void* l_lightData[6] = { - (void*)0x01010000, (void*)&d_a_demo00__stringBase0, - (void*)0x00010000, (void*)NULL, - (void*)0x00010000, (void*)NULL, -}; -#pragma pop + dKyr_get_vectle_calc(param_1, param_2, &sp38); + *param_3 = cM_atan2s(JMAFastSqrt(sp38.x * sp38.x + sp38.z * sp38.z), sp38.y); + *param_4 = sp38.atan2sX_Z(); +} -/* 804A89F8-804A8A04 -00001 000C+00 1/1 0/0 0/0 .data @4662 */ -SECTION_DATA static void* lit_4662[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actStandby__10daDemo00_cFP13dDemo_actor_c, -}; +/* 804A45A0-804A4948 000380 03A8+00 2/2 0/0 0/0 .text setBaseMtx__10daDemo00_cFv */ +void daDemo00_c::setBaseMtx() { + // NONMATCHING + s16 sVar1, sVar2; + cXyz sp38; + BOOL bVar1 = FALSE; + cM3dGPla plane; -/* 804A8A04-804A8A10 -00001 000C+00 1/1 0/0 0/0 .data @4676 */ -SECTION_DATA static void* lit_4676[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actPerformance__10daDemo00_cFP13dDemo_actor_c, -}; + if (tevStr.mInitTimer == 1) { + field_0x574 = shape_angle; + } -/* 804A8A10-804A8A1C -00001 000C+00 1/1 0/0 0/0 .data @4725 */ -SECTION_DATA static void* lit_4725[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actLeaving__10daDemo00_cFP13dDemo_actor_c, -}; + sp38 = current.pos; -/* 804A8A1C-804A8A28 -00001 000C+00 1/1 0/0 0/0 .data @4999 */ -SECTION_DATA static void* lit_4999[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actStandby__10daDemo00_cFP13dDemo_actor_c, -}; + if (field_0x6a2 != 0 || mground2 != 0) { + cXyz sp44(current.pos.x, current.pos.y + 1000.0f, current.pos.z); + mBgc->mGndChk.SetPos(&sp44); + sp38.y = dComIfG_Bgsp().GroundCross(&mBgc->mGndChk); + } -/* 804A8A28-804A8A2C 000068 0004+00 0/1 0/0 0/0 .data l_blendInfoOPA$5172 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_blendInfoOPA[4] = { - 0x00, - 0x01, - 0x00, - 0x03, -}; -#pragma pop + if (field_0x6a4 != 0 && field_0x568.x != 10000000.0f) { + if (current.pos != field_0x568) { + if (current.pos.abs(field_0x568) >= 1.5f) { + get_foward_angle(&field_0x568, ¤t.pos, &sVar1, &sVar2); + shape_angle.x = field_0x574.x = sVar1; + shape_angle.y = field_0x574.y = sVar2; + } + } else { + shape_angle.x = field_0x574.x; + shape_angle.y = field_0x574.y; + } + } -/* 804A8A2C-804A8A30 00006C 0004+00 0/1 0/0 0/0 .data l_blendInfo$5173 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_blendInfo[4] = { - 0x01, - 0x04, - 0x05, - 0x03, -}; -#pragma pop + field_0x568 = current.pos; -/* 804A8A30-804A8A34 000070 0004+00 0/1 0/0 0/0 .data l_zmodeInfoOPA$5174 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_zmodeInfoOPA[4] = { - 0x01, - 0x03, - 0x01, - 0x00, -}; -#pragma pop + if (mground2 != 0) { + if (sp38.y != -1000000000.0f) { + bVar1 = dComIfG_Bgsp().GetTriPla(mBgc->mGndChk, &plane); + } -/* 804A8A34-804A8A38 000074 0004+00 0/1 0/0 0/0 .data l_zmodeInfo$5175 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_zmodeInfo[4] = { - 0x01, - 0x03, - 0x00, - 0x00, -}; -#pragma pop + if (bVar1 && cBgW_CheckBGround(plane.mNormal.y)) { + shape_angle.x = fopAcM_getPolygonAngle(&plane, shape_angle.y); + } + } -/* 804A8A38-804A8A3C 000078 0004+00 1/1 0/0 0/0 .data l_color$5341 */ -SECTION_DATA static u8 l_color[4] = { - 0x14, - 0x0F, - 0x00, + if (tevStr.mInitTimer != 0 || mground2 == 0) { + current.angle = shape_angle; + } else { + cLib_addCalcAngleS2(¤t.angle.x, shape_angle.x, 4, 0x2000); + cLib_addCalcAngleS2(¤t.angle.y, shape_angle.y, 4, 0x2000); + cLib_addCalcAngleS2(¤t.angle.z, shape_angle.z, 4, 0x2000); + } + + mDoMtx_stack_c::transS(sp38.x, sp38.y, sp38.z); + mDoMtx_stack_c::XYZrotM(current.angle.x, current.angle.y, current.angle.z); + field_0x5d4->setBaseTRMtx(mDoMtx_stack_c::get()); + field_0x5d4->setBaseScale(scale); +} + +/* 804A4948-804A4D48 000728 0400+00 1/1 0/0 0/0 .text setShadowSize__10daDemo00_cFv */ +void daDemo00_c::setShadowSize() { + // NONMATCHING + J3DModelData* modelData = field_0x5d4->getModelData(); + cXyz sp98(100000000.0f, 100000000.0f, 100000000.0f); + cXyz spa4(-100000000.0f, -100000000.0f, -100000000.0f); + + for (u16 i = 0; i < modelData->getJointNum(); i++) { + J3DJoint* jntNodeP = modelData->getJointNodePointer(i); + if (jntNodeP->getKind() == 0) { + cXyz spb0, spbc; + cMtx_multVec(field_0x5d4->getAnmMtx(i), jntNodeP->getMin(), &spb0); + cMtx_multVec(field_0x5d4->getAnmMtx(i), jntNodeP->getMin(), &spbc); + + if (spb0.x < sp98.x) { + sp98.x = spb0.x; + } + + if (spb0.y < sp98.y) { + sp98.y = spb0.y; + } + + if (spb0.z < sp98.z) { + sp98.z = spb0.z; + } + + if (spa4.x < spbc.x) { + spa4.x = spbc.x; + } + + if (spa4.y < spbc.y) { + spa4.y = spbc.y; + } + + if (spa4.z < spbc.z) { + spa4.z = spbc.z; + } + } + } + + mShadow->field_0x4.x = (spa4.x + sp98.x) * 0.5f; + mShadow->field_0x4.y = (spa4.y + sp98.y) * 0.5f; + mShadow->field_0x4.z = (spa4.z + sp98.z) * 0.5f; + cXyz spc8(spa4 - sp98); + mShadow->field_0x1c = spc8.abs() * 3.0f; + mShadow->field_0x20 = spc8.absXZ() * 0.25f; +} + +/* 804A4D48-804A4F54 000B28 020C+00 1/1 0/0 0/0 .text awaCheck__FP8J3DModel */ +static BOOL awaCheck(J3DModel* i_model) { + J3DModelData* modelData = i_model->getModelData(); + J3DTexture* texture = modelData->getTexture(); + + if (texture != NULL) { + JUTNameTab* nameTab = modelData->getTextureName(); + if (nameTab != NULL) { + for (u16 i = 0; i < texture->getNum(); i++) { + const char* name = nameTab->getName(i); + if (strcmp(name, "B_dummy") == 0 || strcmp(name, "cy_kankyo") == 0) { + J3DSkinDeform* skinDeform = new J3DSkinDeform(); + if (skinDeform == NULL) { + return FALSE; + } + + if (i_model->setSkinDeform(skinDeform, 1) != 0) { + return FALSE; + } + + if (strcmp(name, "B_dummy") == 0) { + texture->setResTIMG(i, *mDoGph_gInf_c::getFrameBufferTimg()); + mDoExt_modelTexturePatch(modelData); + } + } + } + } + } + + return TRUE; +} + +/* 804A4F54-804A4F74 000D34 0020+00 1/1 0/0 0/0 .text createHeapCallBack__FP10fopAc_ac_c */ +static int createHeapCallBack(fopAc_ac_c* a_this) { + daDemo00_c* i_this = (daDemo00_c*)a_this; + return i_this->createHeap(); +} + +/* 804A4F74-804A5750 000D54 07DC+00 1/1 0/0 0/0 .text createHeap__10daDemo00_cFv */ +int daDemo00_c::createHeap() { + // NONMATCHING + if (mModel.mID.mShapeID != -1) { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.mID.mShapeID); + mDoExt_bckAnmRemove(modelData); + + if (modelData == NULL) { + OS_REPORT("\ngetDemoArcName=[%s]", dStage_roomControl_c::getDemoArcName()); + OS_REPORT("\nmModel.mID.mShapeID=[%d]\n", mModel.mID.mShapeID); + JUT_ASSERT(441, modelData != 0); + } + + s32 uVar1 = 0x11000084; + for (int i = 0; i < modelData->getShapeNum(); i++) { + if (modelData->getShapeNodePointer(i)->getTexMtxLoadType() == 0x2000) { + field_0x6ad = 1; + break; + } + } + + if (mModel.mID.field_0xc != -1) { + mpBtpAnm = new mDoExt_btpAnm(); + if (mpBtpAnm == NULL) { + return 0; + } + + J3DAnmTexPattern* i_btk = (J3DAnmTexPattern*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.mID.field_0xc); + if (i_btk == NULL) { + OS_REPORT("ESC_WARNING指定btpアニメーションが見つかりません!(%d)\n", mModel.mID.field_0xc); // ESC_WARNING: The specified BTP animation could not be found! (%d) + return 1; + } + + if (mpBtpAnm->init(modelData, i_btk, 1, -1, 1.0f, 0, -1) == 0) { + return 0; + } + + uVar1 = 0x15020084; + } + + if (mModel.mID.field_0x10 != -1) { + mpBtkAnm = new mDoExt_btkAnm(); + if (mpBtkAnm == NULL) { + return 0; + } + + J3DAnmTextureSRTKey* key = (J3DAnmTextureSRTKey*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.mID.field_0x10); + if (key == NULL) { + OS_REPORT("ESC_WARNING指定btkアニメーションが見つかりません!(%d)\n", mModel.mID.field_0x10); // ESC_WARNING: The specified btk animation could not be found! (%d) + return 1; + } + + if (mpBtkAnm->init(modelData, key, 1, -1, 1.0f, 0, -1) == 0) { + return 0; + } + + if ((mModel.mID.field_0x10 & 0x10000000U) != 0) { + uVar1 |= 0x1200; + } else { + uVar1 |= 0x200; + } + } + + if (mModel.mID.field_0x14 != -1) { + mpBrkAnm = new mDoExt_brkAnm(); + if (mpBrkAnm == NULL) { + return 0; + } + + J3DAnmTevRegKey* regKey = (J3DAnmTevRegKey*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.mID.field_0x14); + if (regKey == NULL) { + OS_REPORT("ESC_WARNING指定brkアニメーションが見つかりません!(%d)\n", mModel.mID.field_0x14); // ESC_WARNING: The specified brk animation could not be found! (%d) + return 1; + } + + if (mpBrkAnm->init(modelData, regKey, 1, -1, 1.0f, 0, -1) == 0) { + return 0; + } + } + + if (mModel.mID.field_0x8 != -1) { + mpBpkAnm = new mDoExt_bpkAnm(); + if (mpBpkAnm == NULL) { + return 0; + } + + J3DAnmColor* anm_color = (J3DAnmColor*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.mID.field_0x8); + if (anm_color == NULL) { + OS_REPORT("ESC_WARNING指定brkアニメーションが見つかりません!(%d)\n", mModel.mID.field_0x8); // ESC_WARNING: The specified brk animation could not be found! (%d) + return 1; + } + + if (mpBpkAnm->init(modelData, anm_color, 1, -1, 1.0f, 0, -1) == 0) { + return 0; + } + + uVar1 |= 1; + } + + if (mModel.mID.field_0x4 == -1) { + mpModelMorf = NULL; + if (field_0x6ad == 0) { + field_0x5d4 = mDoExt_J3DModel__create(modelData, 0x80000, uVar1); + } else { + field_0x5d4 = mDoExt_J3DModel__create(modelData, 0, uVar1); + } + + if (field_0x5d4 == NULL) { + return 0; + } + } else { + J3DAnmTransform* anm = (J3DAnmTransform*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.mID.field_0x4); + JUT_ASSERT(580, anm != 0); + + if (field_0x6a5 != 0) { + uVar1 |= 0x20000000; + } + + if (field_0x6ad == 0) { + mpModelMorf = new mDoExt_McaMorfSO(modelData, NULL, NULL, anm, -1, 1.0f, 0, -1, &mSound, 0x80000, uVar1); + } else { + mpModelMorf = new mDoExt_McaMorfSO(modelData, NULL, NULL, anm, -1, 1.0f, 0, -1, &mSound, 0, uVar1); + } + + if (mpModelMorf == NULL || mpModelMorf->getModel() == NULL) { + return 0; + } + + field_0x5d4 = mpModelMorf->getModel(); + + if (!awaCheck(field_0x5d4)) { + return 0; + } + } + + if (field_0x6b4 != 0) { + field_0x5d8 = new mDoExt_invisibleModel(); + if (field_0x5d8 == NULL) { + return 0; + } + + if (field_0x5d8->create(field_0x5d4, 1) == 0) { + return 0; + } + } else { + field_0x5d8 = NULL; + } + + mModel.mID.field_0x18 = 1; + if (mModel.mID.field_0x18 != -1) { + mShadow = new daDemo00_shadow_c(); + if (mShadow == NULL) { + return 0; + } + + field_0x5d4->calc(); + setShadowSize(); + } + + mBgc = new daDemo00_bgc_c(); + if (mBgc == NULL) { + return 0; + } + mBgc->mGndChk.OffWall(); + + if (mModel.mID.field_0x1c != -1) { + mDeformData = (J3DDeformData*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.mID.field_0x1c); + JUT_ASSERT(687, mModel.mDeformData != 0); + + if (mModel.mID.field_0x20 != -1) { + mpBlkAnm = new mDoExt_blkAnm(); + if (mpBlkAnm == NULL) { + return 0; + } + + J3DAnmCluster* anm_cluster = (J3DAnmCluster*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.mID.field_0x20); + if (anm_cluster == NULL) { + OS_REPORT("ESC_WARNING指定blkアニメーションが見つかりません!(%d)\n", field_0x5ac.field_0x20); // ESC_WARNING: Specified blk animation not found! (%d) + } else { + if (mpBlkAnm->init(mDeformData, anm_cluster, 1, -1, 1.0f, 0, -1) == 0) { + return 0; + } + } + } + + if (field_0x5d4->setDeformData(mDeformData, 1) != 0) { + return 0; + } + } + } + + if (field_0x6a7 >= 0 && field_0x6a7 <= 5) { + if (field_0x6bc.init(1, 0x20, (ResTIMG*)dComIfG_getObjectRes("Always", 0x54), 1) == 0) { + return 0; + } + + f32* pfVar1 = field_0x6bc.getSize(0); + for (int i = 0; i < 32; i++) { + if (field_0x6a7 >= 2 && field_0x6a7 <= 4) { + *pfVar1 = 5.0f; + } else { + *pfVar1 = 3.0f; + } + pfVar1++; + } + } + + if (field_0x6a7 == 8 && field_0x2900.init(0x16, 0x10, 1) == 0) { + return 0; + } + + return 1; +} + +/* 804A5798-804A594C 001578 01B4+00 2/0 0/0 0/0 .text actStandby__10daDemo00_cFP13dDemo_actor_c */ +int daDemo00_c::actStandby(dDemo_actor_c* actor) { + // NONMATCHING + if (mModel.field_0x0.mShapeID != -1) { + mModel.mID = mModel.field_0x0; + if (fopAcM_entrySolidHeap(this, createHeapCallBack, 0x9004c5e0)) { + OS_REPORT("汎用くん確保ヒープサイズ %d\n", heap->getHeapSize()); + + if (field_0x5d4 != NULL) { + dDemo_setDemoData(this, 42, NULL, NULL, 0, NULL, 0, 0); + setBaseMtx(); + fopAcM_SetMtx(this, field_0x5d4->getBaseTRMtx()); + actor->setModel(field_0x5d4); + + if (mpModelMorf != NULL) { + actor->setAnmFrameMax(mpModelMorf->getEndFrame()); + } + } + + setAction(&daDemo00_c::actPerformance); + action(actor); + } + } else { + if (field_0x6aa == 1 || field_0x6ab >= 0 || field_0x6b8 != 0 || field_0x6ae != 0) { + dDemo_setDemoData(this, 0x8E, NULL, NULL, 0, NULL, 0, 0); + } + } + + return 1; +} + +/* 804A594C-804A604C 00172C 0700+00 1/0 0/0 0/0 .text actPerformance__10daDemo00_cFP13dDemo_actor_c */ +int daDemo00_c::actPerformance(dDemo_actor_c* actor) { + // NONMATCHING + f32 fVar1; + int i_attribute; + if (mModel.mID.mShapeID != mModel.field_0x0.mShapeID) { + mModel.reset(); + setAction(&daDemo00_c::actLeaving); + } else if (field_0x5d4 != NULL) { + if (mpModelMorf != NULL && mModel.mID.field_0x4 != mModel.field_0x0.field_0x4) { + J3DAnmTransform* anm = (J3DAnmTransform*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.field_0x0.field_0x4); + if (anm == NULL) { + OS_REPORT("ESC_WARNING指定bckアニメーションが見つかりません!(%d)\n", mModel.field_0x0.field_0x4); // ESC_WARNING: Specified bck animation not found! (%d) + return 1; + } + + fVar1 = 0.0f; + if (actor->checkEnable(dDemo_actor_c::ENABLE_ANM_TRANSITION_e)) { + fVar1 = actor->getAnmTransition(); + } + mpModelMorf->setAnm(anm, -1, fVar1, 1.0f, 0.0f, -1.0f); + mModel.mID.field_0x4 = mModel.field_0x0.field_0x4; + } + + if (mModel.mID.field_0xc != mModel.field_0x0.field_0xc) { + J3DAnmTexPattern* anmTexPattern = (J3DAnmTexPattern*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.field_0x0.field_0xc); + if (anmTexPattern == NULL) { + OS_REPORT("ESC_WARNING指定btpアニメーションが見つかりません!(%d)\n", mModel.field_0x0.field_0xc); // ESC_WARNING: The specified btp animation could not be found! (%d) + return 1; + } + + mpBtpAnm->init(field_0x5d4->getModelData(), anmTexPattern, 1, -1, 1.0f, 0, -1); + mModel.mID.field_0xc = mModel.field_0x0.field_0xc; + } + + if (mModel.mID.field_0x10 != mModel.field_0x0.field_0x10) { + J3DAnmTextureSRTKey* key = (J3DAnmTextureSRTKey*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.field_0x0.field_0x10); + if (key == NULL) { + OS_REPORT("ESC_WARNING指定btkアニメーションが見つかりません!(%d)\n", mModel.field_0x0.field_0x10); // ESC_WARNING: The specified btk animation could not be found! (%d) + return 1; + } + + mpBtkAnm->init(field_0x5d4->getModelData(), key, 1, -1, 1.0f, 0, -1); + mModel.mID.field_0x10 = mModel.field_0x0.field_0x10; + } + + if (mModel.mID.field_0x14 != mModel.field_0x0.field_0x14) { + J3DAnmTevRegKey* anmTev = (J3DAnmTevRegKey*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.field_0x0.field_0x14); + if (anmTev == NULL) { + OS_REPORT("ESC_WARNING指定brkアニメーションが見つかりません!(%d)\n", mModel.field_0x0.field_0x14); // ESC_WARNING: The specified brk animation could not be found! (%d) + return 1; + } + + if ((mModel.mID.field_0x14 & 0x10000000) != 0) { + fVar1 = mpBrkAnm->getFrame(); + } else { + fVar1 = 0.0f; + } + + if ((mModel.mID.field_0x14 & 0x10000000) != 0) { + i_attribute = 2; + } else { + i_attribute = -1; + } + + mpBrkAnm->init(field_0x5d4->getModelData(), anmTev, 1, i_attribute, 1.0f, fVar1, -1); + mModel.mID.field_0x14 = mModel.field_0x0.field_0x14; + } + + if (mModel.mID.field_0x8 != mModel.field_0x0.field_0x8) { + J3DAnmColor* anm_color = (J3DAnmColor*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.field_0x0.field_0x8); + if (anm_color == NULL) { + OS_REPORT("ESC_WARNING指定bpkアニメーションが見つかりません!(%d)\n", mModel.field_0x0.field_0x8); // ESC_WARNING: The specified bpk animation could not be found! (%d) + return 1; + } + + if ((mModel.mID.field_0x14 & 0x10000000) != 0) { + fVar1 = mpBpkAnm->getFrame(); + } else { + fVar1 = 0.0f; + } + + if ((mModel.mID.field_0x14 & 0x10000000) != 0) { + i_attribute = 2; + } else { + i_attribute = -1; + } + + mpBpkAnm->init(field_0x5d4->getModelData(), anm_color, 1, i_attribute, 1.0f, fVar1, -1); + mModel.mID.field_0x8 = mModel.field_0x0.field_0x8; + } + + if (mModel.mID.field_0x20 != mModel.field_0x0.field_0x20) { + JUT_ASSERT(1049, mModel.mDeformData != 0 && mModel.mBlkAnm != 0); + + J3DAnmCluster* anmCluster = (J3DAnmCluster*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), (u16)mModel.field_0x0.field_0x20); + if (anmCluster == NULL) { + OS_REPORT("ESC_WARNING指定btpアニメーションが見つかりません!(%d)\n", mModel.field_0x0.field_0x20); // ESC_WARNING: The specified btp animation could not be found! (%d) + return 1; + } + + mpBlkAnm->init(mDeformData, anmCluster, 1, -1, 1.0f, 0, -1); + mModel.mID.field_0x20 = mModel.field_0x0.field_0x20; + } + + dDemo_setDemoData(this, 0x2A, 0, 0, 0, 0, 0, 0); + if (mBgc != NULL) { + cXyz sp70(current.pos.x, current.pos.y + 100.0f, current.pos.z); + mBgc->mGndChk.SetPos(&sp70); + mBgc->field_0x54 = dComIfG_Bgsp().GroundCross(&mBgc->mGndChk); + field_0x6a1 = 1; + } + + setBaseMtx(); + + if (actor->checkEnable(dDemo_actor_c::ENABLE_ANM_FRAME_e)) { + fVar1 = actor->getAnmFrame(); + if (fVar1 > 1.0f) { + f32 fVar2 = fVar1 - 1.0f; + if (mpModelMorf != NULL) { + mpModelMorf->setFrameF(fVar1 - 1.0f); + u32 sndId; + if (mBgc != NULL && field_0x6a1 != 0 && fabsf(mBgc->field_0x54 - current.pos.y) < 20.0f) { + sndId = dComIfG_Bgsp().GetMtrlSndId(mBgc->mGndChk); + } else { + sndId = 0; + } + + mpModelMorf->play(sndId, dComIfGp_getReverb(dComIfGp_roomControl_getStayNo())); + } + + if (mpBtpAnm != NULL) { + mpBtpAnm->setFrame(fVar2); + mpBtpAnm->play(); + } + + if (mpBtkAnm != NULL) { + if ((mModel.mID.field_0x10 & 0x10000000) == 0) { + mpBtkAnm->setFrame(fVar2); + } + mpBtkAnm->play(); + } + + if (mpBrkAnm != NULL) { + if ((mModel.mID.field_0x14 & 0x10000000) == 0) { + mpBrkAnm->setFrame(fVar2); + } + mpBrkAnm->play(); + } + + if (mpBpkAnm != NULL) { + if ((mModel.mID.field_0x8 & 0x10000000) == 0) { + mpBpkAnm->setFrame(fVar2); + } + mpBpkAnm->play(); + } + + if (mpBlkAnm != NULL) { + if ((mModel.mID.field_0x20 & 0x10000000) == 0) { + mpBlkAnm->setFrame(fVar2); + } + mpBlkAnm->play(); + } + } else { + if (mpModelMorf != NULL) { + mpModelMorf->setFrameF(fVar1); + } + + if (mpBtpAnm != NULL) { + mpBtpAnm->setFrame(fVar1); + } + + if (mpBtkAnm != NULL) { + if ((mModel.mID.field_0x10 & 0x10000000) == 0) { + mpBtkAnm->setFrame(fVar1); + } else { + mpBtkAnm->play(); + } + } + + if (mpBrkAnm != NULL) { + if ((mModel.mID.field_0x14 & 0x10000000) == 0) { + mpBrkAnm->setFrame(fVar1); + } else { + mpBrkAnm->play(); + } + } + + if (mpBpkAnm != NULL) { + if ((mModel.mID.field_0x8 & 0x10000000) == 0) { + mpBpkAnm->setFrame(fVar1); + } else { + mpBpkAnm->play(); + } + } + + if (mpBlkAnm != NULL) { + if ((mModel.mID.field_0x20 & 0x10000000) == 0) { + mpBlkAnm->setFrame(fVar1); + } else { + mpBlkAnm->play(); + } + } + } + } else if (mpModelMorf != NULL) { + mpModelMorf->play(0, 0); + } else if (mpBtpAnm != NULL) { + mpBtpAnm->play(); + } else if (mpBtkAnm != NULL) { + mpBtkAnm->play(); + } else if (mpBrkAnm != NULL) { + mpBrkAnm->play(); + } else if (mpBpkAnm != NULL) { + mpBpkAnm->play(); + } else if (mpBlkAnm != NULL) { + mpBlkAnm->play(); + } + + if (actor->checkEnable(dDemo_actor_c::ENABLE_SCALE_e)) { + scale = actor->getScale(); + } + } + + return 1; +} + +/* 804A604C-804A60B0 001E2C 0064+00 1/0 0/0 0/0 .text actLeaving__10daDemo00_cFP13dDemo_actor_c */ +int daDemo00_c::actLeaving(dDemo_actor_c* actor) { + // NONMATCHING + if (mpModelMorf != NULL) { + mpModelMorf->stopZelAnime(); + } + + fopAcM_DeleteHeap(this); + setAction(&daDemo00_c::actStandby); + return 1; +} + +/* 804A60B0-804A61F0 001E90 0140+00 1/1 0/0 0/0 .text mDad00_changeXluMaterial__FP11J3DMateriali */ +static void mDad00_changeXluMaterial(J3DMaterial* i_material, int param_2) { + // NONMATCHING + static J3DBlendInfo l_blendInfoOPA = { + 0, + 1, + 0, + 3, + }; + static J3DBlendInfo l_blendInfo = { + 1, + 4, + 5, + 3, + }; + static J3DZModeInfo l_zmodeInfoOPA = { + 1, + 3, + 1, + 0, + }; + static J3DZModeInfo l_zmodeInfo = { + 1, + 3, + 0, + 0, + }; + + i_material->change(); + + if (param_2 == 0) { + i_material->setMaterialMode(4); + i_material->getPEBlock()->getBlend()->setBlendInfo(l_blendInfo); + i_material->getPEBlock()->getZMode()->setZModeInfo(l_zmodeInfo); + } else { + i_material->setMaterialMode(1); + i_material->getPEBlock()->getBlend()->setBlendInfo(l_blendInfoOPA); + i_material->getPEBlock()->getZMode()->setZModeInfo(l_zmodeInfoOPA); + } +} + +/* 804A61F0-804A6428 001FD0 0238+00 1/1 0/0 0/0 .text teduna_calc__FP4cXyzP4cXyzP4cXyzsi */ +static void teduna_calc(cXyz* param_1, cXyz* param_2, cXyz* param_3, s16 param_4, int param_5) { + // NONMATCHING + cXyz sp70(*param_1 - *param_2); + f32 fVar1 = 6.0f; + cXyz sp7c, sp88; + + mDoMtx_stack_c::YrotS(param_4); + + if (param_5 == 5) { + sp7c.set(0.0f, -5.0f, 130.0f); + fVar1 = 1.0f; + } else if (param_5 == 5) { + sp7c.set(0.0f, -30.0f, 78.0f); + } else { + sp7c.set(0.0f, -30.0f, 60.0f); + } + + mDoMtx_stack_c::multVec(&sp7c, &sp88); + + for (int i = 0; i < 16; i++) { + *param_3 = *param_1 - (sp70 * (i / 15.0f)); + f32 fVar2 = cM_ssin((i / 15.0f) * 32768.0f); + *param_3 += sp88 * fVar2; + param_3->y += fVar2 * (fVar1 * cM_ssin(g_Counter.mCounter0 * 2500 + i * 1600)); + param_3++; + } +} + +UNK_REL_BSS; + +/* 804A8C64-804A8D24 000054 00C0+00 1/3 0/0 0/0 .bss teduna_posL */ +static cXyz teduna_posL[16]; + +/* 804A8D30-804A8DF0 000120 00C0+00 1/3 0/0 0/0 .bss teduna_posR */ +static cXyz teduna_posR[16]; + +/* 804A8DFC-804A8E08 0001EC 000C+00 2/4 0/0 0/0 .bss S_ganon_left_hand_pos */ +static cXyz S_ganon_left_hand_pos; + +/* 804A8E14-804A8E20 000204 000C+00 2/4 0/0 0/0 .bss S_ganon_right_hand_pos */ +static cXyz S_ganon_right_hand_pos; + +/* 804A6428-804A6868 002208 0440+00 1/1 0/0 0/0 .text teduna_draw__FP8J3DModelP19mDoExt_3DlineMat1_cP12dKy_tevstr_ciiii */ +static void teduna_draw(J3DModel* i_model, mDoExt_3DlineMat1_c* param_2, dKy_tevstr_c* param_3, int param_4, int param_5, int param_6, int param_7) { + // NONMATCHING + static GXColor l_color = { + 0x14, 0x0F, 0x00, 0xFF, + }; + + cXyz sp38, sp44, sp50; + s16 sVar1 = 0; + if (param_7 == 4) { + sVar1 = -0x3875; + } else if (param_7 == 5) { + sVar1 = -7000; + } + + MTXCopy(i_model->getAnmMtx(param_6), mDoMtx_stack_c::get()); + + if (param_7 == 5) { + sp38.set(0.0f, 9.0f, 15.0f); + } else if (param_7 == 2 || param_7 == 3 || param_7 == 4) { + sp38.set(107.0f, -32.0f, -68.0f); + } else { + sp38.set(79.0f, -26.0f, -48.0f); + } + + mDoMtx_stack_c::multVec(&sp38, &sp44); + + if (param_7 == 5) { + sp50 = S_ganon_left_hand_pos; + } else { + MTXCopy(i_model->getAnmMtx(param_4), mDoMtx_stack_c::get()); + + if (param_7 == 1) { + sp38.set(61.0f, 18.0f, 0.0f); + } else if (param_7 == 3) { + sp38.set(191.0f, 28.0f, -80.0f); + } else { + sp38.set(0.0f, 0.0f, 0.0f); + } + + mDoMtx_stack_c::multVec(&sp38, &sp50); + } + + teduna_calc(&sp44, &sp50, teduna_posL, sVar1 + cM_atan2s(sp44.x - sp50.x, sp44.z - sp50.z) + 0x6000, param_7); + MTXCopy(i_model->getAnmMtx(param_6), mDoMtx_stack_c::get()); + + if (param_7 == 5) { + sp38.set(0.0f, 9.0f, -15.0f); + } else if (param_7 == 2 || param_7 == 3 || param_7 == 4) { + sp38.set(107.0f, -32.0f, 68.0f); + } else { + sp38.set(79.0f, -26.0f, 48.0f); + } + + mDoMtx_stack_c::multVec(&sp38, &sp44); + + if (param_7 == 5) { + sp50 = S_ganon_right_hand_pos; + } else { + MTXCopy(i_model->getAnmMtx(param_5), mDoMtx_stack_c::get()); + + if (param_7 == 1) { + sp38.set(61.0f, 18.0f, 0.0f); + } else if (param_7 == 4) { + sp38.set(40.0f, -12.0f, 40.0f); + } else { + sp38.set(0.0f, 0.0f, 0.0f); + } + + mDoMtx_stack_c::multVec(&sp38, &sp50); + } + + teduna_calc(&sp44, &sp50, teduna_posR, sVar1 + cM_atan2s(sp44.x - sp50.x, sp44.z - sp50.z) + 0x6000, param_7); + cXyz* pcVar1 = teduna_posL; + cXyz* pcVar2 = param_2->getPos(0); + for (int i = 0; i < 16; i++) { + pcVar2 = pcVar1; + pcVar2++; + pcVar1++; + } + + pcVar1 = teduna_posR; + pcVar2 = param_2->getPos(0); + pcVar2 += 31; + for (int i = 0; i < 16; i++) { + pcVar2 = pcVar1; + pcVar2--; + pcVar1++; + } + + param_2->update(0x20, l_color, param_3); + dComIfGd_set3DlineMat(param_2); +} + +/* 804A6868-804A692C 002648 00C4+00 1/1 0/0 0/0 .text teduna_ganon_hand_set__FP8J3DModelii */ +static void teduna_ganon_hand_set(J3DModel* i_model, int param_2, int param_3) { + // NONMATCHING + cXyz sp20; + + MTXCopy(i_model->getAnmMtx(param_2), mDoMtx_stack_c::get()); + sp20.set(0.0f, 0.0f, 0.0f); + mDoMtx_stack_c::multVec(&sp20, &S_ganon_left_hand_pos); + + MTXCopy(i_model->getAnmMtx(param_3), mDoMtx_stack_c::get()); + sp20.set(0.0f, 0.0f, 0.0f); + mDoMtx_stack_c::multVec(&sp20, &S_ganon_right_hand_pos); +} + +/* 804A692C-804A6C48 00270C 031C+00 1/1 0/0 0/0 .text ke_control__FP10daDemo00_cP12demo_s1_ke_sif */ +static void ke_control(daDemo00_c* i_this, demo_s1_ke_s* param_2, int param_3, f32 param_4) { + // NONMATCHING + cXyz spa4, spb0; + cXyz* pcVar1 = param_2->field_0x0; + cXyz* pcVar2 = param_2->field_0xc0; + + spa4.x = 0.0f; + spa4.y = 0.0f; + spa4.z = param_4; + + cXyz spbc; + s16 sVar1 = cM_rndF2(65536.0f); + f32 fVar1 = 3.0f; + f32 fVar2 = i_this->current.pos.y; + f32 fVar3 = 0.8f; + + if (i_this->field_0x6b3 != 0) { + fVar3 = 0.0f; + } + + for (int i = 0; pcVar1++, pcVar2++, i < 16; i++) { + f32 fVar4 = fVar1 * cM_ssin(sVar1 + i * 7000); + f32 fVar5 = cM_ssin(sVar1 + i * 6000 + 10000); + f32 fVar6 = (16 - i) * 0.1f; + + spbc.x = pcVar2->x + fVar4 + param_2->field_0x180.x * fVar6; + spbc.y = pcVar2->y + param_2->field_0x180.y * fVar6; + spbc.z = pcVar2->z + (fVar1 * fVar5) + param_2->field_0x180.z * fVar6; + fVar6 = spbc.x + (pcVar1->x - pcVar1[-1].x); + fVar5 = spbc.z + (pcVar1->z - pcVar1[-1].z); + fVar4 = pcVar1->y + spbc.y + -12.0f; + + if (fVar4 < fVar2) { + fVar4 = fVar2; + } + + f32 fVar7 = fVar4 - pcVar1[-1].y; + + cMtx_XrotS(*calc_mtx, -cM_atan2s(fVar7, fVar5)); + cMtx_YrotM(*calc_mtx, cM_atan2s(fVar6, JMAFastSqrt(fVar4 * fVar4 + fVar5 * fVar5))); + MtxPosition(&spa4, &spb0); + + pcVar2 = pcVar1; + pcVar1->x = pcVar1[-1].x + spb0.x; + pcVar1->y = pcVar1[-1].y + spb0.y; + pcVar1->z = pcVar1[-1].z + spb0.z; + pcVar2->x = fVar3 * (pcVar1->x - pcVar2->x); + pcVar2->y = fVar3 * (pcVar1->y - pcVar2->y); + pcVar2->z = fVar3 * (pcVar1->x - pcVar2->z); + } + +} + +/* 804A6C48-804A6D20 002A28 00D8+00 1/1 0/0 0/0 .text ke_move__FP10daDemo00_cP19mDoExt_3DlineMat0_cP12demo_s1_ke_sif */ +static void ke_move(daDemo00_c* i_this, mDoExt_3DlineMat0_c* param_2, demo_s1_ke_s* param_3, int param_4, f32 param_5) { + // NONMATCHING + ke_control(i_this, param_3, param_4, param_5); + cXyz* pcVar1 = param_2->getPos(param_4); + f32* pfVar1 = param_2->getSize(param_4); + + for (int i = 0; i < 16; i++) { + *pcVar1 = param_3->field_0x0[i]; + if (i == 14) { + *pfVar1 = 0.6f; + } else if (i < 5) { + *pfVar1 = 3.5f; + } else { + *pfVar1 = cM_rndF2(1.0f) + 1.8f; + } + + pcVar1++; + pfVar1++; + } +} + +/* 804A6D20-804A6F74 002B00 0254+00 1/1 0/0 0/0 .text ke_set__FP10daDemo00_c */ +static void ke_set(daDemo00_c* i_this) { + // NONMATCHING + static s16 ke_za[22] = { + 0xFCE0, 0xFE70, 0, 0x0190, 0x0320, 0xFCE0, 0xFE70, 0, 0x0190, 0x0320, + 0xFCE0, 0xFE70, 0, 0x0190, 0x0320, 0x04B0, 0xFCE0, 0xFE70, 0, + 0x0190, 0x0320, 0x04B0, + }; + + cXyz sp58, sp64; + cM_initRnd2(12, 0x7B, fopAcM_GetID(i_this) * 2 + 0x32); + MTXCopy(i_this->field_0x5d4->getAnmMtx(4), *calc_mtx); + + f32 fVar1, fVar2, fVar3; + for (int i = 0; i < 22; i++) { + MtxPush(); + cMtx_YrotM(*calc_mtx, 0x4000); + cMtx_XrotM(*calc_mtx, (int)cM_rndF2(2000.0f) + 3000); + + if (i < 10) { + cMtx_ZrotM(*calc_mtx, ke_za[i] * 5); + fVar1 = cM_rndF2(2.25f) + 7.5f; + fVar2 = cM_rndF2(10.0f) - 5.0f; + fVar3 = cM_rndF2(20.0f) - 10.0f; + } else { + cMtx_ZrotM(*calc_mtx, ke_za[i] * 5 + 0x8000); + fVar1 = cM_rndF2(3.0f) + 8.0f; + fVar2 = cM_rndF2(20.0f) - 10.0f; + fVar3 = cM_rndF2(30.0f) - 15.0f; + } + + sp58.set(fVar2, 15.0f, fVar3); + MtxPosition(&sp58, &i_this->field_0x6f8[i].field_0x0[i]); + sp58.set(fVar2, 35.0f, fVar3); + MtxPosition(&sp58, &i_this->field_0x6f8[i].field_0x180); + + i_this->field_0x6f8[i].field_0x180 -= i_this->field_0x6f8[i].field_0x0[i]; + + ke_move(i_this, &i_this->field_0x2900, i_this->field_0x6f8, i, fVar1); + MtxPull(); + } +} + +/* 804A6F74-804A6F94 002D54 0020+00 1/0 0/0 0/0 .text daDemo00_Draw__FP10daDemo00_c */ +static int daDemo00_Draw(daDemo00_c* i_this) { + return i_this->draw(); +} + +/* 804A6F94-804A7B88 002D74 0BF4+00 1/1 0/0 0/0 .text draw__10daDemo00_cFv */ +int daDemo00_c::draw() { + // NONMATCHING + if (field_0x5d4 != NULL) { + if (field_0x6ac == 7) { + tevStr.TevColor.a = 0xFF; + } + + g_env_light.settingTevStruct(field_0x6ac, &eyePos, &tevStr); + g_env_light.setLightTevColorType_MAJI(field_0x5d4, &tevStr); + dKy_bg_MAxx_proc(field_0x5d4); + + if (mpBtpAnm != NULL) { + mpBtpAnm->entry(field_0x5d4->getModelData()); + } + + if (mpBtkAnm != NULL) { + mpBtkAnm->entry(field_0x5d4->getModelData()); + } + + if (mpBrkAnm != NULL){ + mpBrkAnm->entry(field_0x5d4->getModelData()); + } + + if (mpBpkAnm != NULL) { + mpBpkAnm->entry(field_0x5d4->getModelData()); + } + + if (mpBlkAnm != NULL) { + mpBlkAnm->entryFrame(); + } + + if (field_0x6a5 != 0) { + J3DModelData* modelData = field_0x5d4->getModelData(); + for (u16 i = 0; i < modelData->getMaterialNum(); i++) { + J3DMaterial* material = modelData->getMaterialNodePointer(i); + + if (field_0x6a5 == 1) { + mDad00_changeXluMaterial(material, 0); + } else { + mDad00_changeXluMaterial(material, 1); + } + } + } + + if (field_0x6a6 == 2) { + dComIfGd_setListDark(); + } else if (field_0x6a6 == 3) { + dComIfGd_setListFilter(); + } + + if (field_0x5d8 != NULL) { + mpModelMorf->calc(); + if (field_0x6b5 != 0) { + field_0x5d8->entryDL(NULL); + } + } else if (field_0x6b5 != 0) { + if (mpModelMorf != NULL) { + mpModelMorf->updateDL(); + } else { + mDoExt_modelUpdateDL(field_0x5d4); + } + } else if (mpModelMorf != NULL) { + mpModelMorf->modelCalc(); + } + + if (field_0x5d4->getSkinDeform() != NULL) { + dComIfGd_setList(); + } + + if (field_0x6a6 == 2 || field_0x6a6 == 3) { + dComIfGd_setList(); + } + + if (field_0x6a7 >= 0) { + if (field_0x6a7 == 0) { + teduna_draw(field_0x5d4, &field_0x6bc, &tevStr, 22, 0x1B, 0x27, field_0x6a7); + } else if (field_0x6a7 == 1) { + teduna_draw(field_0x5d4, &field_0x6bc, &tevStr, 0x2B, 0x2B, 0x27, field_0x6a7); + } else if (field_0x6a7 == 2) { + teduna_draw(field_0x5d4, &field_0x6bc, &tevStr, 0x17, 0x1F, 0x3E, field_0x6a7); + } else if (field_0x6a7 == 3) { + teduna_draw(field_0x5d4, &field_0x6bc, &tevStr, 0x1F, 0x1F, 0x3E, field_0x6a7); + } else if (field_0x6a7 == 4) { + teduna_draw(field_0x5d4, &field_0x6bc, &tevStr, 0x17, 0x17, 0x3E, field_0x6a7); + } else if (field_0x6a7 == 6) { + teduna_ganon_hand_set(field_0x5d4, 0x20, 0x21); + } else if (field_0x6a7 == 7) { + teduna_ganon_hand_set(field_0x5d4, 0x16, 0x17); + } else if (field_0x6a7 == 5) { + teduna_draw(field_0x5d4, &field_0x6bc, &tevStr, 0, 0, 0x13, field_0x6a7); + } else if (field_0x6a7 == 8) { + if ((current.pos - field_0x291c).abs() > 200.0f) { + field_0x6b3 = 5; + for (int i = 0; i < 10; i++) { + ke_set(this); + } + } + + ke_set(this); + GXColor color; + color.r = 0x14; + color.g = 0x14; + color.b = 0x14; + color.a = 0xFF; + + if (field_0x6b5 != 0) { + field_0x2900.update(0x10, color, &tevStr); + dComIfGd_set3DlineMatDark(&field_0x2900); + } + + field_0x291c = current.pos; + if (field_0x6b3 != 0) { + field_0x6b3--; + } + } + } + + if (field_0x6b6 != 0) { + if (field_0x6b6 == 1) { + if (field_0x5d4->getModelData() != NULL) { + if (field_0x5d4->getModelData()->getMaterialNodePointer(9) != NULL) { + if (field_0x5d4->getModelData()->getMaterialNodePointer(9)->getShape() != NULL) { + field_0x5d4->getModelData()->getMaterialNodePointer(9)->getShape()->show(); + } + } + } + } else if (field_0x5d4->getModelData() != NULL) { + if (field_0x5d4->getModelData()->getMaterialNodePointer(9) != NULL) { + if (field_0x5d4->getModelData()->getMaterialNodePointer(9)->getShape() != NULL) { + field_0x5d4->getModelData()->getMaterialNodePointer(9)->getShape()->hide(); + } + } + } + } + + if (mShadow != NULL && field_0x6b7 != 0 && field_0x6b5 != 0 && field_0x6a1 != 0) { + cXyz sp98, spa4, spb0; + + MTXCopy(field_0x5d4->getAnmMtx(0), mDoMtx_stack_c::get()); + spb0.set(0.0f, 0.0f, 0.0f); + mDoMtx_stack_c::multVec(&spb0, &sp98); + mDoLib_project(&sp98, &spa4); + + if (spa4.x >= -700.0f && spa4.x < 1600.0f && spa4.y >= -200.0f && spa4.y < 600.0f) { + if (mModel.mID.field_0x18 == 0 || mModel.mID.field_0x18 == 1) { + cXyz spbc = sp98 + mShadow->field_0x4; + spbc.y = mBgc->field_0x54 + 15.0f; + mShadow->field_0x0 = dComIfGd_setShadow(mShadow->field_0x0, mModel.mID.field_0x18, field_0x5d4, + &spbc, mShadow->field_0x1c, mShadow->field_0x20, sp98.y + 15.0f, sp98.y + 3.0f, + mBgc->mGndChk, &tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); + } else { + cXyz spc8(sp98.x, mBgc->field_0x54, sp98.z); + dComIfGd_setSimpleShadow(&spc8, spc8.y, mShadow->field_0x20, mBgc->mGndChk, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); + } + } + } + + if (mpBtpAnm != NULL) { + mpBtpAnm->remove(field_0x5d4->getModelData()); + } + + if (mpBtkAnm != NULL) { + mpBtkAnm->remove(field_0x5d4->getModelData()); + } + + if (mpBrkAnm != NULL) { + mpBrkAnm->remove(field_0x5d4->getModelData()); + } + + if (mpBpkAnm != NULL) { + mpBpkAnm->remove(field_0x5d4->getModelData()); + } + + cXyz spd4, spe0, spec; + + MTXCopy(field_0x5d4->getAnmMtx(0), mDoMtx_stack_c::get()); + spd4.set(0.0f, 0.0f, 0.0f); + mDoMtx_stack_c::multVec(&spd4, &spe0); + eyePos = spe0; + eyePos.y = spe0.y + 50.0f; + + if (field_0x6a8 > 0) { + cXyz spf8, sp104; + dBgS_CamGndChk_Wtr cam_gndchk; + cXyz sp110; + + if ((g_Counter.mCounter0 & 0x1F) == 0) { + spf8 = eyePos; + if (field_0x6a8 == 10) { + sp110.x = 2.0f; + sp110.y = 2.0f; + sp110.z = 2.0f; + } else if (field_0x6a8 == 6) { + cXyz sp11c, sp128, sp134; + + MTXCopy(field_0x5d4->getAnmMtx(7), mDoMtx_stack_c::get()); + sp11c.set(0.0f, 0.0f, 0.0f); + mDoMtx_stack_c::multVec(&sp11c, &sp128); + spf8 = sp128; + sp110.x = 1.0f; + sp110.y = 1.0f; + sp110.z = 1.0f; + } else { + sp110.x = 1.0f; + sp110.y = 1.0f; + sp110.z = 1.0f; + } + + spf8.y += 10000.0f; + cam_gndchk.SetPos(&spf8); + spf8.y = dComIfG_Bgsp().GroundCross(&cam_gndchk); + dComIfGp_particle_setWaterRipple(&field_0x68c, *fopAcM_wt_c::getWaterCheck(), &spf8, + 0.0f, &tevStr, &sp110, fopAcM_GetRoomNo(this)); + } + } + + #ifdef DEBUG + if (field_0x6aa > -1) { + dDbVw_Report(0x32, 0x91, "DEMOTOOL ERR : Model ga arunoni hisyakai sindo meirei!!!!"); + OSReport_Error("\nDEMOTOOL ERR : Model ga arunoni hisyakai sindo meirei!!!!"); + } + + if (field_0x6ab > -1) { + dDbVw_Report(0x32, 0x91, "DEMOTOOL ERR : Model ga arunoni monokuro meirei!!!!"); + OSReport_Error("\nDEMOTOOL ERR : Model ga arunoni monokuro meirei!!!!"); + } + #endif + } + + if (field_0x6a9 >= 1) { + dCam_getBody()->StartBlure(0x19, NULL, 0.85f, 1.0f); + } + + if (field_0x6aa != -1) { + if (field_0x6aa == 1) { + g_env_light.mDemoAttentionPoint = current.pos.x; + + if (g_env_light.mDemoAttentionPoint > 1.0f) { + g_env_light.mDemoAttentionPoint = 1.0f; + } + + if (g_env_light.mDemoAttentionPoint < -1.0f) { + g_env_light.mDemoAttentionPoint = -1.0f; + } + + #ifdef DEBUG + dDbVw_Report(300, 0x19, "DEMO Depth %f", g_env_light.mDemoAttentionPoint); + #endif + } else { + cLib_addCalc(&g_env_light.mDemoAttentionPoint, 0.0f, 0.5f, 0.1f, 0.0001f); + } + } + + if (field_0x6ab >= 0) { + g_env_light.field_0x1278 = current.pos.y / 100.0f; + g_env_light.field_0x12fc = field_0x6ab; + if (g_env_light.field_0x1278 >= 1.0f) { + g_env_light.field_0x1278 = 1.0f; + } + + #ifdef DEBUG + dDbVw_Report(10, 0x17C, "\nbloom pat[%d] ratio[%f]", g_env_light.field_0x1278, field_0x6ab); + #endif + } + + switch (field_0x6b2) { + case 0: + break; + + case 1: + if (g_env_light.mHousiCount < 200) { + g_env_light.mHousiCount += 3; + } + break; + + case 2: + if (g_env_light.mHousiCount > 3) { + g_env_light.mHousiCount -= 3; + } else { + g_env_light.mHousiCount = 0; + } + break; + } + + if (field_0x69c != -1) { + if (field_0x694 != field_0x69c) { + if (field_0x694 < field_0x69c) { + field_0x694++; + } else { + field_0x694--; + } + } + + dKyw_rain_set(field_0x694); + } + + if (field_0x69e != -1) { + if (field_0x698 != field_0x69e) { + if (field_0x698 < field_0x69e) { + field_0x698++; + } else { + field_0x698--; + } + } + + g_env_light.mMoyaMode = 1; + g_env_light.mMoyaCount = field_0x698; + } + + return 1; +} + +/* 804A7B88-804A7BA8 003968 0020+00 1/0 0/0 0/0 .text daDemo00_Execute__FP10daDemo00_c */ +static int daDemo00_Execute(daDemo00_c* i_this) { + return i_this->execute(); +} + +static u8 const l_itemNo[4] = { + 0x29, + 0xFF, + 0xFF, 0xFF, }; -/* 804A8A3C-804A8A68 00007C 002C+00 1/1 0/0 0/0 .data ke_za$5515 */ -SECTION_DATA static u8 ke_za[44] = { - 0xFC, 0xE0, 0xFE, 0x70, 0x00, 0x00, 0x01, 0x90, 0x03, 0x20, 0xFC, 0xE0, 0xFE, 0x70, 0x00, - 0x00, 0x01, 0x90, 0x03, 0x20, 0xFC, 0xE0, 0xFE, 0x70, 0x00, 0x00, 0x01, 0x90, 0x03, 0x20, - 0x04, 0xB0, 0xFC, 0xE0, 0xFE, 0x70, 0x00, 0x00, 0x01, 0x90, 0x03, 0x20, 0x04, 0xB0, -}; +/* 804A7BA8-804A84AC 003988 0904+00 7/1 0/0 0/0 .text execute__10daDemo00_cFv */ +int daDemo00_c::execute() { + // NONMATCHING -/* 804A8A68-804A8A8C -00001 0024+00 1/1 0/0 0/0 .data @6401 */ -SECTION_DATA static void* lit_6401[9] = { - (void*)(((char*)execute__10daDemo00_cFv) + 0x7B0), - (void*)(((char*)execute__10daDemo00_cFv) + 0x714), - (void*)(((char*)execute__10daDemo00_cFv) + 0x728), - (void*)(((char*)execute__10daDemo00_cFv) + 0x734), - (void*)(((char*)execute__10daDemo00_cFv) + 0x75C), - (void*)(((char*)execute__10daDemo00_cFv) + 0x784), - (void*)(((char*)execute__10daDemo00_cFv) + 0x790), - (void*)(((char*)execute__10daDemo00_cFv) + 0x79C), - (void*)(((char*)execute__10daDemo00_cFv) + 0x7A8), -}; + field_0x6a1 = 0; + dDemo_actor_c* actor = dDemo_c::getActor(demoActorID); -/* 804A8A8C-804A8AC8 -00001 003C+00 1/1 0/0 0/0 .data @6400 */ -SECTION_DATA static void* lit_6400[15] = { - (void*)(((char*)execute__10daDemo00_cFv) + 0x7B0), - (void*)(((char*)execute__10daDemo00_cFv) + 0x4D4), - (void*)(((char*)execute__10daDemo00_cFv) + 0x4E0), - (void*)(((char*)execute__10daDemo00_cFv) + 0x4EC), - (void*)(((char*)execute__10daDemo00_cFv) + 0x4F8), - (void*)(((char*)execute__10daDemo00_cFv) + 0x504), - (void*)(((char*)execute__10daDemo00_cFv) + 0x510), - (void*)(((char*)execute__10daDemo00_cFv) + 0x51C), - (void*)(((char*)execute__10daDemo00_cFv) + 0x528), - (void*)(((char*)execute__10daDemo00_cFv) + 0x534), - (void*)(((char*)execute__10daDemo00_cFv) + 0x540), - (void*)(((char*)execute__10daDemo00_cFv) + 0x54C), - (void*)(((char*)execute__10daDemo00_cFv) + 0x558), - (void*)(((char*)execute__10daDemo00_cFv) + 0x564), - (void*)(((char*)execute__10daDemo00_cFv) + 0x570), -}; + if (actor == NULL) { + fopAcM_delete(this); + OS_REPORT("汎用くん削除!!\n", subtype); + } else { + if (actor->checkEnable(dDemo_actor_c::ENABLE_SHAPE_e)) { + mModel.field_0x0.mShapeID = actor->getShapeId(); + } -/* 804A8AC8-804A8AF4 -00001 002C+00 1/1 0/0 0/0 .data @6399 */ -SECTION_DATA static void* lit_6399[11] = { - (void*)(((char*)execute__10daDemo00_cFv) + 0x3F8), - (void*)(((char*)execute__10daDemo00_cFv) + 0x404), - (void*)(((char*)execute__10daDemo00_cFv) + 0x410), - (void*)(((char*)execute__10daDemo00_cFv) + 0x41C), - (void*)(((char*)execute__10daDemo00_cFv) + 0x428), - (void*)(((char*)execute__10daDemo00_cFv) + 0x434), - (void*)(((char*)execute__10daDemo00_cFv) + 0x440), - (void*)(((char*)execute__10daDemo00_cFv) + 0x44C), - (void*)(((char*)execute__10daDemo00_cFv) + 0x458), - (void*)(((char*)execute__10daDemo00_cFv) + 0x464), - (void*)(((char*)execute__10daDemo00_cFv) + 0x470), -}; + if (actor->checkEnable(dDemo_actor_c::ENABLE_ANM_e)) { + mModel.field_0x0.field_0x4 = actor->getAnmId(); + } -/* 804A8AF4-804A8B10 -00001 001C+00 1/1 0/0 0/0 .data @6398 */ -SECTION_DATA static void* lit_6398[7] = { - (void*)(((char*)execute__10daDemo00_cFv) + 0x384), - (void*)(((char*)execute__10daDemo00_cFv) + 0x390), - (void*)(((char*)execute__10daDemo00_cFv) + 0x39C), - (void*)(((char*)execute__10daDemo00_cFv) + 0x3A8), - (void*)(((char*)execute__10daDemo00_cFv) + 0x3B4), - (void*)(((char*)execute__10daDemo00_cFv) + 0x3C0), - (void*)(((char*)execute__10daDemo00_cFv) + 0x3CC), -}; + int piVar1, piVar2, piVar3; + u16 upVar1; + u8 upVar2; + if (actor->checkEnable(dDemo_actor_c::ENABLE_UNK_e)) { + while (actor->getDemoIDData(&piVar1, &piVar2, &piVar3, &upVar1, &upVar2) != 0) { + if (piVar1 == 0) { + switch (piVar3) { + case 0: + u16 uVar1 = upVar1 >> 8; + u32 resID8 = uVar1 & 0xFF; + switch (uVar1) { + case 1: + switch ((u8)upVar1) { + case 1: + field_0x6b4 = 1; + break; -/* 804A8B10-804A8B2C -00001 001C+00 1/1 0/0 0/0 .data @6396 */ -SECTION_DATA static void* lit_6396[7] = { - (void*)(((char*)execute__10daDemo00_cFv) + 0x7B0), - (void*)(((char*)execute__10daDemo00_cFv) + 0x128), - (void*)(((char*)execute__10daDemo00_cFv) + 0x134), - (void*)(((char*)execute__10daDemo00_cFv) + 0x140), - (void*)(((char*)execute__10daDemo00_cFv) + 0x14C), - (void*)(((char*)execute__10daDemo00_cFv) + 0x158), - (void*)(((char*)execute__10daDemo00_cFv) + 0x164), -}; + case 2: + field_0x6a5 = 1; + break; -/* 804A8B2C-804A8B94 -00001 0068+00 1/1 0/0 0/0 .data @6395 */ -SECTION_DATA static void* lit_6395[26] = { - (void*)(((char*)execute__10daDemo00_cFv) + 0x7B0), - (void*)(((char*)execute__10daDemo00_cFv) + 0x108), - (void*)(((char*)execute__10daDemo00_cFv) + 0x170), - (void*)(((char*)execute__10daDemo00_cFv) + 0x1A8), - (void*)(((char*)execute__10daDemo00_cFv) + 0x1C4), - (void*)(((char*)execute__10daDemo00_cFv) + 0x1C4), - (void*)(((char*)execute__10daDemo00_cFv) + 0x1C4), - (void*)(((char*)execute__10daDemo00_cFv) + 0x1C4), - (void*)(((char*)execute__10daDemo00_cFv) + 0x2A4), - (void*)(((char*)execute__10daDemo00_cFv) + 0x330), - (void*)(((char*)execute__10daDemo00_cFv) + 0x350), - (void*)(((char*)execute__10daDemo00_cFv) + 0x364), - (void*)(((char*)execute__10daDemo00_cFv) + 0x3D8), - (void*)(((char*)execute__10daDemo00_cFv) + 0x47C), - (void*)(((char*)execute__10daDemo00_cFv) + 0x484), - (void*)(((char*)execute__10daDemo00_cFv) + 0x48C), - (void*)(((char*)execute__10daDemo00_cFv) + 0x4AC), - (void*)(((char*)execute__10daDemo00_cFv) + 0x4B4), - (void*)(((char*)execute__10daDemo00_cFv) + 0x57C), - (void*)(((char*)execute__10daDemo00_cFv) + 0x588), - (void*)(((char*)execute__10daDemo00_cFv) + 0x590), - (void*)(((char*)execute__10daDemo00_cFv) + 0x598), - (void*)(((char*)execute__10daDemo00_cFv) + 0x5A4), - (void*)(((char*)execute__10daDemo00_cFv) + 0x5AC), - (void*)(((char*)execute__10daDemo00_cFv) + 0x5B4), - (void*)(((char*)execute__10daDemo00_cFv) + 0x5C0), -}; + case 3: + field_0x6a5 = 2; + break; + + case 4: + field_0x6a6 = 1; + break; + + case 5: + field_0x6a6 = 2; + break; + + case 6: + field_0x6a6 = 3; + break; + } + break; + + case 2: + if (resID8 == 0) { + field_0x6a2 = 0; + mground2 = 0; + } else if (resID8 == 1) { + field_0x6a2 = 1; + } else { + mground2 = 1; + } + + OS_REPORT("\nmground2=[%d]", mground2); + break; + + case 3: + JUT_ASSERT(1389, resID8 < (sizeof(l_itemNo)/sizeof(u8))); + if (l_itemNo[resID8] != 0xFF) { + execItemGet(l_itemNo[resID8]); + } + break; + + case 4: + case 5: + case 6: + case 7: + BOOL bVar1 = FALSE; + BOOL bVar2 = FALSE; + if (uVar1 == 5 || uVar1 == 7) { + bVar1 = TRUE; + } + + if (uVar1 == 6 || uVar1 == 7) { + bVar2 = TRUE; + } + + u32 uVar2 = resID8; + if (resID8 == 0xFF) { + uVar2 = 0x1A; + } + + if (bVar1) { + if (!bVar1) { + GXColor fadeInColor; + if (!bVar2) { + fadeInColor = g_blackColor; + } else { + fadeInColor = g_saftyWhiteColor; + } + + mDoGph_gInf_c::fadeIn(1.0f / uVar2, fadeInColor); + } + } else { + GXColor fadeOutColor; + if (!bVar2) { + fadeOutColor = g_blackColor; + } else { + fadeOutColor = g_saftyWhiteColor; + } + + mDoGph_gInf_c::fadeOut(1.0f / uVar2, fadeOutColor); + } + break; + + case 8: + u32 uVar4 = upVar1 & 0x3F; + + switch ((upVar1 & 0xC0) >> 6) { + case 0: + dComIfGp_getVibration().StopQuake(1); + break; + + case 1: + dComIfGp_getVibration().StartShock(uVar4, 1, cXyz(0.0f, 1.0f, 0.0f)); + break; + + case 2: + dComIfGp_getVibration().StartQuake(uVar4, 1, cXyz(0.0f, 1.0f, 0.0f)); + + default: + OS_REPORT("\nデモ汎用君振動設定エラー!!"); // Demo General-Kun Vibration Setting Error!! + } + break; + + case 9: + if (resID8 == 0) { + field_0x6a4 = 0; + } else { + field_0x6a4 = 1; + } + break; + + case 10: + if ((uVar1 & 0xFF) < 0x40) { + dKy_change_colpat(resID8); + OS_REPORT("\nパレット型[%d]へ変更", resID8); + } + break; + + case 11: + switch (resID8) { + case 0: + g_env_light.mThunderEff.field_0x2 = 1; + break; + + case 1: + field_0x6b2 = 1; + break; + + case 2: + field_0x6b2 = 2; + break; + + case 3: + field_0x69c = 0xFA; + break; + + case 4: + field_0x69c = 0; + break; + + case 5: + field_0x69e = 0x32; + break; + + case 6: + field_0x69e = 0; + break; + } + break; + + case 12: + switch (resID8) { + case 0: + field_0x6a7 = 0; + break; + + case 1: + field_0x6a7 = 2; + break; + + case 2: + field_0x6a7 = 3; + break; + + case 3: + field_0x6a7 = 1; + break; + + case 4: + field_0x6a7 = 8; + break; + + case 5: + field_0x6a7 = 4; + break; + + case 6: + field_0x6b6 = 1; + break; + + case 7: + field_0x6b6 = 2; + break; + + case 8: + field_0x6a7 = 6; + break; + + case 9: + field_0x6a7 = 7; + break; + + case 10: + field_0x6a7 = 5; + break; + } + break; + + case 13: + field_0x6a9 = upVar1; + break; + + case 14: + field_0x6a8 = upVar1; + break; + + case 15: + if (resID8 == 1) { + field_0x6aa = 1; + } else { + field_0x6aa = 0; + } + break; + + case 16: + field_0x6ab = upVar1; + break; + + case 17: + switch (resID8) { + case 1: + field_0x6ac = 2; + break; + + case 2: + field_0x6ac = 4; + break; + + case 3: + field_0x6ac = 7; + break; + + case 4: + field_0x6ac = 9; + break; + + case 5: + field_0x6ac = 1; + break; + + case 6: + field_0x6ac = 16; + break; + + case 7: + field_0x6ac = 17; + break; + + case 8: + field_0x6ac = 18; + break; + + case 9: + field_0x6ac = 19; + break; + + case 10: + field_0x6ac = 10; + break; + + case 11: + field_0x6ac = 14; + break; + + case 12: + field_0x6ac = 3; + break; + + case 13: + field_0x6ac = 5; + break; + + case 14: + field_0x6ac = 15; + break; + } + break; + + case 18: + field_0x6ae = 1; + break; + + case 19: + field_0x6af = upVar1; + break; + + case 20: + field_0x6b0 = upVar1; + break; + + case 21: + field_0x6b1 = 1; + break; + + case 22: + field_0x6b5 = upVar1; + break; + + case 23: + field_0x6b7 = upVar1; + break; + + case 24: + field_0x6b8 = 1; + break; + + case 25: + cXyz sp90, sp9c; + sp90.x = 0.0f; + sp90.y = 0.0f; + sp90.z = 0.0f; + sp9c.x = 1.0f; + sp9c.y = 1.0f; + sp9c.z = 1.0f; + field_0x6b9 = 1; + dComIfGp_particle_set((u16)mModel.field_0x0.mShapeID, &sp90, NULL, NULL, &sp9c); + mModel.field_0x0.reset(); + mModel.field_0x0.mShapeID = -1; + actor->offEnable(16); + break; + } + break; + + case 1: + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[upVar1]); + break; + + case 2: + if ((upVar1 & 0xC000) == 0) { + fopAcM_create(PROC_MOVIE_PLAYER, upVar1, NULL, fopAcM_GetRoomNo(this), NULL, NULL, 0xFF); + mDoGph_gInf_c::fadeOut(1.0f); + } else { + switch (upVar1) { + case 0: + daMP_c::daMP_c_THPPlayerPlay(); + break; + + case 1: + daMP_c::daMP_c_THPPlayerPause(); + break; + } + } + break; + + case 3: + dComIfGs_onTmpBit(dSv_event_tmp_flag_c::tempBitLabels[upVar1]); + break; + } + } else { + switch (piVar3) { + case 1: + mModel.field_0x0.reset(); + mModel.field_0x0.mShapeID = upVar1; + break; + + case 2: + mModel.field_0x0.field_0x4 = upVar1; + break; + + case 3: + if (upVar2 == 0) { + mModel.field_0x0.field_0x10 = upVar1; + } else { + mModel.field_0x0.field_0x10 = upVar1 | 0x10000000; + } + break; + + case 4: + if (upVar2 == 0) { + mModel.field_0x0.field_0x14 = upVar1; + } else { + mModel.field_0x0.field_0x14 = upVar1 | 0x10000000; + } + break; + + case 5: + mModel.field_0x0.field_0xc = upVar1; + break; + + case 6: + mModel.field_0x0.field_0x1c = upVar1; + break; + + case 7: + mModel.field_0x0.field_0x20 = upVar1; + break; + + case 8: + mModel.field_0x0.field_0x8 = upVar1; + break; + } + } + } + + actor->offEnable(dDemo_actor_c::ENABLE_UNK_e); + } + + action(actor); + } + + if (field_0x6ae != 0) { + f32 cutoff = shape_angle.z / 182.04445f; + GXColor color; + color.r = scale.x; + color.g = scale.y; + color.b = scale.z; + color.a = 0xFF; + dKy_BossSpotLight_set(¤t.pos, shape_angle.x / 182.04445f, shape_angle.y / 182.04445f - 90.0f, + cutoff, &color, gravity, field_0x6b0, field_0x6af); + } + + if (field_0x6b8 != 0) { + dComIfGs_setTime(current.pos.x * 15.0f); + } + + return 1; +} + +/* 804A84AC-804A84B4 00428C 0008+00 1/0 0/0 0/0 .text daDemo00_IsDelete__FP10daDemo00_c */ +static int daDemo00_IsDelete(daDemo00_c* i_this) { + return 1; +} + +/* 804A84B4-804A84DC 004294 0028+00 1/0 0/0 0/0 .text daDemo00_Delete__FP10daDemo00_c */ +static int daDemo00_Delete(daDemo00_c* i_this) { + fopAcM_GetID(i_this); + i_this->~daDemo00_c(); + return 1; +} + +/* 804A84DC-804A86B4 0042BC 01D8+00 1/0 0/0 0/0 .text daDemo00_Create__FP10fopAc_ac_c */ +static int daDemo00_Create(fopAc_ac_c* a_this) { + // NONMATCHING + daDemo00_c* i_this = (daDemo00_c*)a_this; + fopAcM_SetupActor(a_this, daDemo00_c); + + i_this->field_0x6a2 = 0; + i_this->mground2 = 0; + i_this->field_0x6a4 = 0; + i_this->field_0x6b2 = 0; + i_this->field_0x69c = -1; + i_this->field_0x69e = -1; + i_this->field_0x694 = 0; + i_this->field_0x698 = 0; + i_this->field_0x568.x = 10000000.0f; + i_this->field_0x568.y = 10000000.0f; + i_this->field_0x568.z = 10000000.0f; + i_this->field_0x6a5 = 0; + i_this->field_0x6a6 = 0; + i_this->field_0x6a7 = 0xFF; + i_this->field_0x6a8 = -1; + i_this->field_0x6a9 = -1; + i_this->field_0x6aa = 0xFF; + i_this->field_0x6ab = -1; + i_this->field_0x6ac = 0; + i_this->field_0x6ad = 0; + i_this->field_0x6ae = 0; + i_this->field_0x6b8 = 0; + i_this->field_0x6b9 = 0; + i_this->field_0x6af = 3; + i_this->field_0x6b0 = 2; + i_this->field_0x6b4 = 0; + i_this->field_0x6b1 = 0; + i_this->field_0x6b5 = 1; + i_this->field_0x6b6 = 0; + i_this->field_0x6b7 = 1; + S_ganon_left_hand_pos.x = 0.0f; + S_ganon_left_hand_pos.y = 0.0f; + S_ganon_left_hand_pos.z = 0.0f; + S_ganon_right_hand_pos.x = 0.0f; + S_ganon_right_hand_pos.y = 0.0f; + S_ganon_right_hand_pos.z = 0.0f; + + return i_this->create(); +} + +/* 804A86B4-804A871C 004494 0068+00 1/1 0/0 0/0 .text __ct__12demo_s1_ke_sFv */ +demo_s1_ke_s::demo_s1_ke_s() {} + +AUDIO_INSTANCES; /* 804A8B94-804A8BB4 -00001 0020+00 1/0 0/0 0/0 .data l_daDemo00_Method */ static actor_method_class l_daDemo00_Method = { - (process_method_func)daDemo00_Create__FP10fopAc_ac_c, - (process_method_func)daDemo00_Delete__FP10daDemo00_c, - (process_method_func)daDemo00_Execute__FP10daDemo00_c, - (process_method_func)daDemo00_IsDelete__FP10daDemo00_c, - (process_method_func)daDemo00_Draw__FP10daDemo00_c, + (process_method_func)daDemo00_Create, + (process_method_func)daDemo00_Delete, + (process_method_func)daDemo00_Execute, + (process_method_func)daDemo00_IsDelete, + (process_method_func)daDemo00_Draw, }; /* 804A8BB4-804A8BE4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_DEMO00 */ @@ -475,1034 +1887,3 @@ extern actor_process_profile_definition g_profile_DEMO00 = { fopAc_ACTOR_e, // mActorType fopAc_CULLBOX_0_e, // cullType }; - -/* 804A8BE4-804A8BF8 000224 0014+00 1/1 0/0 0/0 .data __vt__18mDoExt_3DlineMat_c */ -SECTION_DATA extern void* __vt__18mDoExt_3DlineMat_c[5] = { - (void*)NULL /* RTTI */, (void*)NULL, (void*)NULL, (void*)NULL, (void*)NULL, -}; - -/* 804A8BF8-804A8C04 000238 000C+00 2/2 0/0 0/0 .data __vt__12J3DFrameCtrl */ -SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12J3DFrameCtrlFv, -}; - -/* 804A8C04-804A8C10 000244 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGPla */ -SECTION_DATA extern void* __vt__8cM3dGPla[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGPlaFv, -}; - -/* 804A44D8-804A4520 0002B8 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGPlaFv */ -// cM3dGPla::~cM3dGPla() { -extern "C" void __dt__8cM3dGPlaFv() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 804A8860-804A886C 000000 000C+00 11/11 0/0 0/0 .rodata @3727 */ -SECTION_RODATA static u8 const lit_3727[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x804A8860, &lit_3727); - -/* 804A886C-804A8870 00000C 0004+00 3/10 0/0 0/0 .rodata @4004 */ -SECTION_RODATA static u8 const lit_4004[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x804A886C, &lit_4004); - -/* 804A4520-804A45A0 000300 0080+00 1/1 0/0 0/0 .text get_foward_angle__FP4cXyzP4cXyzPsPs - */ -static void get_foward_angle(cXyz* param_0, cXyz* param_1, s16* param_2, s16* param_3) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 804A8870-804A8874 000010 0004+00 0/1 0/0 0/0 .rodata @4122 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4122 = 1000.0f; -COMPILER_STRIP_GATE(0x804A8870, &lit_4122); -#pragma pop - -/* 804A8874-804A8878 000014 0004+00 1/2 0/0 0/0 .rodata @4123 */ -SECTION_RODATA static f32 const lit_4123 = 10000000.0f; -COMPILER_STRIP_GATE(0x804A8874, &lit_4123); - -/* 804A8878-804A8880 000018 0008+00 0/3 0/0 0/0 .rodata @4124 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4124[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x804A8878, &lit_4124); -#pragma pop - -/* 804A8880-804A8888 000020 0008+00 0/3 0/0 0/0 .rodata @4125 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4125[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x804A8880, &lit_4125); -#pragma pop - -/* 804A8888-804A8890 000028 0008+00 0/3 0/0 0/0 .rodata @4126 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4126[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x804A8888, &lit_4126); -#pragma pop - -/* 804A8890-804A8894 000030 0004+00 0/1 0/0 0/0 .rodata @4127 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4127 = 1.5f; -COMPILER_STRIP_GATE(0x804A8890, &lit_4127); -#pragma pop - -/* 804A8894-804A8898 000034 0004+00 0/1 0/0 0/0 .rodata @4128 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4128 = -1000000000.0f; -COMPILER_STRIP_GATE(0x804A8894, &lit_4128); -#pragma pop - -/* 804A45A0-804A4948 000380 03A8+00 2/2 0/0 0/0 .text setBaseMtx__10daDemo00_cFv */ -void daDemo00_c::setBaseMtx() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 804A8898-804A889C 000038 0004+00 0/1 0/0 0/0 .rodata @4284 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4284 = 100000000.0f; -COMPILER_STRIP_GATE(0x804A8898, &lit_4284); -#pragma pop - -/* 804A889C-804A88A0 00003C 0004+00 0/1 0/0 0/0 .rodata @4285 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4285 = -100000000.0f; -COMPILER_STRIP_GATE(0x804A889C, &lit_4285); -#pragma pop - -/* 804A88A0-804A88A4 000040 0004+00 0/2 0/0 0/0 .rodata @4286 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4286 = 0.5f; -COMPILER_STRIP_GATE(0x804A88A0, &lit_4286); -#pragma pop - -/* 804A88A4-804A88A8 000044 0004+00 0/5 0/0 0/0 .rodata @4287 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4287 = 3.0f; -COMPILER_STRIP_GATE(0x804A88A4, &lit_4287); -#pragma pop - -/* 804A88A8-804A88AC 000048 0004+00 0/1 0/0 0/0 .rodata @4288 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4288 = 0.25f; -COMPILER_STRIP_GATE(0x804A88A8, &lit_4288); -#pragma pop - -/* 804A4948-804A4D48 000728 0400+00 1/1 0/0 0/0 .text setShadowSize__10daDemo00_cFv */ -void daDemo00_c::setShadowSize() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 804A8998-804A8998 000138 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_804A89A7 = "B_dummy"; -SECTION_DEAD static char const* const stringBase_804A89AF = "cy_kankyo"; -#pragma pop - -/* 804A4D48-804A4F54 000B28 020C+00 1/1 0/0 0/0 .text awaCheck__FP8J3DModel */ -static void awaCheck(J3DModel* param_0) { - // NONMATCHING -} - -/* 804A4F54-804A4F74 000D34 0020+00 1/1 0/0 0/0 .text createHeapCallBack__FP10fopAc_ac_c - */ -static void createHeapCallBack(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 804A88AC-804A88B0 00004C 0004+00 0/5 0/0 0/0 .rodata @4654 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4654 = 1.0f; -COMPILER_STRIP_GATE(0x804A88AC, &lit_4654); -#pragma pop - -/* 804A88B0-804A88B8 000050 0004+04 0/2 0/0 0/0 .rodata @4655 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4655[1 + 1 /* padding */] = { - 5.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x804A88B0, &lit_4655); -#pragma pop - -/* 804A8998-804A8998 000138 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_804A89B9 = "Always"; -#pragma pop - -/* 804A4F74-804A5750 000D54 07DC+00 1/1 0/0 0/0 .text createHeap__10daDemo00_cFv */ -void daDemo00_c::createHeap() { - // NONMATCHING -} - -/* 804A5750-804A5798 001530 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// J3DFrameCtrl::~J3DFrameCtrl() { -extern "C" void __dt__12J3DFrameCtrlFv() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 804A88B8-804A88C0 000058 0008+00 1/3 0/0 0/0 .rodata @4719 */ -SECTION_RODATA static u8 const lit_4719[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x804A88B8, &lit_4719); - -/* 804A5798-804A594C 001578 01B4+00 2/0 0/0 0/0 .text actStandby__10daDemo00_cFP13dDemo_actor_c */ -void daDemo00_c::actStandby(dDemo_actor_c* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 804A88C0-804A88C4 000060 0004+00 0/2 0/0 0/0 .rodata @4990 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4990 = -1.0f; -COMPILER_STRIP_GATE(0x804A88C0, &lit_4990); -#pragma pop - -/* 804A88C4-804A88C8 000064 0004+00 0/2 0/0 0/0 .rodata @4991 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4991 = 100.0f; -COMPILER_STRIP_GATE(0x804A88C4, &lit_4991); -#pragma pop - -/* 804A88C8-804A88CC 000068 0004+00 0/2 0/0 0/0 .rodata @4992 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4992 = 20.0f; -COMPILER_STRIP_GATE(0x804A88C8, &lit_4992); -#pragma pop - -/* 804A594C-804A604C 00172C 0700+00 1/0 0/0 0/0 .text - * actPerformance__10daDemo00_cFP13dDemo_actor_c */ -void daDemo00_c::actPerformance(dDemo_actor_c* param_0) { - // NONMATCHING -} - -/* 804A604C-804A60B0 001E2C 0064+00 1/0 0/0 0/0 .text actLeaving__10daDemo00_cFP13dDemo_actor_c */ -void daDemo00_c::actLeaving(dDemo_actor_c* param_0) { - // NONMATCHING -} - -/* 804A60B0-804A61F0 001E90 0140+00 1/1 0/0 0/0 .text mDad00_changeXluMaterial__FP11J3DMateriali - */ -static void mDad00_changeXluMaterial(J3DMaterial* param_0, int param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 804A88CC-804A88D0 00006C 0004+00 1/1 0/0 0/0 .rodata - * l_itemNo$localstatic3$execute__10daDemo00_cFv */ -SECTION_RODATA static u8 const data_804A88CC[4] = { - 0x29, - 0xFF, - 0xFF, - 0xFF, -}; -COMPILER_STRIP_GATE(0x804A88CC, &data_804A88CC); - -/* 804A88D0-804A88D4 000070 0004+00 0/1 0/0 0/0 .rodata @5279 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5279 = 6.0f; -COMPILER_STRIP_GATE(0x804A88D0, &lit_5279); -#pragma pop - -/* 804A88D4-804A88D8 000074 0004+00 0/1 0/0 0/0 .rodata @5280 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5280 = -5.0f; -COMPILER_STRIP_GATE(0x804A88D4, &lit_5280); -#pragma pop - -/* 804A88D8-804A88DC 000078 0004+00 0/1 0/0 0/0 .rodata @5281 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5281 = 130.0f; -COMPILER_STRIP_GATE(0x804A88D8, &lit_5281); -#pragma pop - -/* 804A88DC-804A88E0 00007C 0004+00 0/1 0/0 0/0 .rodata @5282 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5282 = -30.0f; -COMPILER_STRIP_GATE(0x804A88DC, &lit_5282); -#pragma pop - -/* 804A88E0-804A88E4 000080 0004+00 0/1 0/0 0/0 .rodata @5283 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5283 = 78.0f; -COMPILER_STRIP_GATE(0x804A88E0, &lit_5283); -#pragma pop - -/* 804A88E4-804A88E8 000084 0004+00 0/1 0/0 0/0 .rodata @5284 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5284 = 60.0f; -COMPILER_STRIP_GATE(0x804A88E4, &lit_5284); -#pragma pop - -/* 804A88E8-804A88EC 000088 0004+00 0/4 0/0 0/0 .rodata @5285 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5285 = 15.0f; -COMPILER_STRIP_GATE(0x804A88E8, &lit_5285); -#pragma pop - -/* 804A88EC-804A88F0 00008C 0004+00 0/1 0/0 0/0 .rodata @5286 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5286 = 32768.0f; -COMPILER_STRIP_GATE(0x804A88EC, &lit_5286); -#pragma pop - -/* 804A61F0-804A6428 001FD0 0238+00 1/1 0/0 0/0 .text teduna_calc__FP4cXyzP4cXyzP4cXyzsi - */ -static void teduna_calc(cXyz* param_0, cXyz* param_1, cXyz* param_2, s16 param_3, int param_4) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 804A88F0-804A88F4 000090 0004+00 0/1 0/0 0/0 .rodata @5403 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5403 = 9.0f; -COMPILER_STRIP_GATE(0x804A88F0, &lit_5403); -#pragma pop - -/* 804A88F4-804A88F8 000094 0004+00 0/1 0/0 0/0 .rodata @5404 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5404 = 107.0f; -COMPILER_STRIP_GATE(0x804A88F4, &lit_5404); -#pragma pop - -/* 804A88F8-804A88FC 000098 0004+00 0/1 0/0 0/0 .rodata @5405 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5405 = -32.0f; -COMPILER_STRIP_GATE(0x804A88F8, &lit_5405); -#pragma pop - -/* 804A88FC-804A8900 00009C 0004+00 0/1 0/0 0/0 .rodata @5406 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5406 = -68.0f; -COMPILER_STRIP_GATE(0x804A88FC, &lit_5406); -#pragma pop - -/* 804A8900-804A8904 0000A0 0004+00 0/1 0/0 0/0 .rodata @5407 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5407 = 79.0f; -COMPILER_STRIP_GATE(0x804A8900, &lit_5407); -#pragma pop - -/* 804A8904-804A8908 0000A4 0004+00 0/1 0/0 0/0 .rodata @5408 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5408 = -26.0f; -COMPILER_STRIP_GATE(0x804A8904, &lit_5408); -#pragma pop - -/* 804A8908-804A890C 0000A8 0004+00 0/1 0/0 0/0 .rodata @5409 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5409 = -48.0f; -COMPILER_STRIP_GATE(0x804A8908, &lit_5409); -#pragma pop - -/* 804A890C-804A8910 0000AC 0004+00 0/1 0/0 0/0 .rodata @5410 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5410 = 61.0f; -COMPILER_STRIP_GATE(0x804A890C, &lit_5410); -#pragma pop - -/* 804A8910-804A8914 0000B0 0004+00 0/1 0/0 0/0 .rodata @5411 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5411 = 18.0f; -COMPILER_STRIP_GATE(0x804A8910, &lit_5411); -#pragma pop - -/* 804A8914-804A8918 0000B4 0004+00 0/1 0/0 0/0 .rodata @5412 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5412 = 191.0f; -COMPILER_STRIP_GATE(0x804A8914, &lit_5412); -#pragma pop - -/* 804A8918-804A891C 0000B8 0004+00 0/1 0/0 0/0 .rodata @5413 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5413 = 28.0f; -COMPILER_STRIP_GATE(0x804A8918, &lit_5413); -#pragma pop - -/* 804A891C-804A8920 0000BC 0004+00 0/1 0/0 0/0 .rodata @5414 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5414 = -80.0f; -COMPILER_STRIP_GATE(0x804A891C, &lit_5414); -#pragma pop - -/* 804A8920-804A8924 0000C0 0004+00 0/1 0/0 0/0 .rodata @5415 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5415 = -15.0f; -COMPILER_STRIP_GATE(0x804A8920, &lit_5415); -#pragma pop - -/* 804A8924-804A8928 0000C4 0004+00 0/1 0/0 0/0 .rodata @5416 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5416 = 68.0f; -COMPILER_STRIP_GATE(0x804A8924, &lit_5416); -#pragma pop - -/* 804A8928-804A892C 0000C8 0004+00 0/1 0/0 0/0 .rodata @5417 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5417 = 48.0f; -COMPILER_STRIP_GATE(0x804A8928, &lit_5417); -#pragma pop - -/* 804A892C-804A8930 0000CC 0004+00 0/1 0/0 0/0 .rodata @5418 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5418 = 40.0f; -COMPILER_STRIP_GATE(0x804A892C, &lit_5418); -#pragma pop - -/* 804A8930-804A8934 0000D0 0004+00 0/2 0/0 0/0 .rodata @5419 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5419 = -12.0f; -COMPILER_STRIP_GATE(0x804A8930, &lit_5419); -#pragma pop - -/* 804A8C18-804A8C1C 000008 0001+03 2/2 0/0 0/0 .bss @1109 */ -static u8 lit_1109[1 + 3 /* padding */]; - -/* 804A8C1C-804A8C20 00000C 0001+03 0/0 0/0 0/0 .bss @1107 */ -#pragma push -#pragma force_active on -static u8 lit_1107[1 + 3 /* padding */]; -#pragma pop - -/* 804A8C20-804A8C24 000010 0001+03 0/0 0/0 0/0 .bss @1105 */ -#pragma push -#pragma force_active on -static u8 lit_1105[1 + 3 /* padding */]; -#pragma pop - -/* 804A8C24-804A8C28 000014 0001+03 0/0 0/0 0/0 .bss @1104 */ -#pragma push -#pragma force_active on -static u8 lit_1104[1 + 3 /* padding */]; -#pragma pop - -/* 804A8C28-804A8C2C 000018 0001+03 0/0 0/0 0/0 .bss @1099 */ -#pragma push -#pragma force_active on -static u8 lit_1099[1 + 3 /* padding */]; -#pragma pop - -/* 804A8C2C-804A8C30 00001C 0001+03 0/0 0/0 0/0 .bss @1097 */ -#pragma push -#pragma force_active on -static u8 lit_1097[1 + 3 /* padding */]; -#pragma pop - -/* 804A8C30-804A8C34 000020 0001+03 0/0 0/0 0/0 .bss @1095 */ -#pragma push -#pragma force_active on -static u8 lit_1095[1 + 3 /* padding */]; -#pragma pop - -/* 804A8C34-804A8C38 000024 0001+03 0/0 0/0 0/0 .bss @1094 */ -#pragma push -#pragma force_active on -static u8 lit_1094[1 + 3 /* padding */]; -#pragma pop - -/* 804A8C38-804A8C3C 000028 0001+03 0/0 0/0 0/0 .bss @1057 */ -#pragma push -#pragma force_active on -static u8 lit_1057[1 + 3 /* padding */]; -#pragma pop - -/* 804A8C3C-804A8C40 00002C 0001+03 0/0 0/0 0/0 .bss @1055 */ -#pragma push -#pragma force_active on -static u8 lit_1055[1 + 3 /* padding */]; -#pragma pop - -/* 804A8C40-804A8C44 000030 0001+03 0/0 0/0 0/0 .bss @1053 */ -#pragma push -#pragma force_active on -static u8 lit_1053[1 + 3 /* padding */]; -#pragma pop - -/* 804A8C44-804A8C48 000034 0001+03 0/0 0/0 0/0 .bss @1052 */ -#pragma push -#pragma force_active on -static u8 lit_1052[1 + 3 /* padding */]; -#pragma pop - -/* 804A8C48-804A8C4C 000038 0001+03 0/0 0/0 0/0 .bss @1014 */ -#pragma push -#pragma force_active on -static u8 lit_1014[1 + 3 /* padding */]; -#pragma pop - -/* 804A8C4C-804A8C50 00003C 0001+03 0/0 0/0 0/0 .bss @1012 */ -#pragma push -#pragma force_active on -static u8 lit_1012[1 + 3 /* padding */]; -#pragma pop - -/* 804A8C50-804A8C54 000040 0001+03 0/0 0/0 0/0 .bss @1010 */ -#pragma push -#pragma force_active on -static u8 lit_1010[1 + 3 /* padding */]; -#pragma pop - -/* 804A8C54-804A8C58 000044 0001+03 0/0 0/0 0/0 .bss @1009 */ -#pragma push -#pragma force_active on -static u8 lit_1009[1 + 3 /* padding */]; -#pragma pop - -/* 804A8C58-804A8C64 000048 000C+00 0/1 0/0 0/0 .bss @5212 */ -#pragma push -#pragma force_active on -static u8 lit_5212[12]; -#pragma pop - -/* 804A8C64-804A8D24 000054 00C0+00 1/3 0/0 0/0 .bss teduna_posL */ -static u8 teduna_posL[192]; - -/* 804A8D24-804A8D30 000114 000C+00 0/1 0/0 0/0 .bss @5214 */ -#pragma push -#pragma force_active on -static u8 lit_5214[12]; -#pragma pop - -/* 804A8D30-804A8DF0 000120 00C0+00 1/3 0/0 0/0 .bss teduna_posR */ -static u8 teduna_posR[192]; - -/* 804A8DF0-804A8DFC 0001E0 000C+00 0/1 0/0 0/0 .bss @5215 */ -#pragma push -#pragma force_active on -static u8 lit_5215[12]; -#pragma pop - -/* 804A8DFC-804A8E08 0001EC 000C+00 2/4 0/0 0/0 .bss S_ganon_left_hand_pos */ -static u8 S_ganon_left_hand_pos[12]; - -/* 804A8E08-804A8E14 0001F8 000C+00 0/1 0/0 0/0 .bss @5216 */ -#pragma push -#pragma force_active on -static u8 lit_5216[12]; -#pragma pop - -/* 804A8E14-804A8E20 000204 000C+00 2/4 0/0 0/0 .bss S_ganon_right_hand_pos */ -static u8 S_ganon_right_hand_pos[12]; - -/* 804A6428-804A6868 002208 0440+00 1/1 0/0 0/0 .text - * teduna_draw__FP8J3DModelP19mDoExt_3DlineMat1_cP12dKy_tevstr_ciiii */ -static void teduna_draw(J3DModel* param_0, mDoExt_3DlineMat1_c* param_1, dKy_tevstr_c* param_2, - int param_3, int param_4, int param_5, int param_6) { - // NONMATCHING -} - -/* 804A6868-804A692C 002648 00C4+00 1/1 0/0 0/0 .text teduna_ganon_hand_set__FP8J3DModelii */ -static void teduna_ganon_hand_set(J3DModel* param_0, int param_1, int param_2) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 804A8934-804A8938 0000D4 0004+00 0/1 0/0 0/0 .rodata @5483 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5483 = 65536.0f; -COMPILER_STRIP_GATE(0x804A8934, &lit_5483); -#pragma pop - -/* 804A8938-804A893C 0000D8 0004+00 0/1 0/0 0/0 .rodata @5484 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5484 = 4.0f / 5.0f; -COMPILER_STRIP_GATE(0x804A8938, &lit_5484); -#pragma pop - -/* 804A893C-804A8940 0000DC 0004+00 0/2 0/0 0/0 .rodata @5485 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5485 = 1.0f / 10.0f; -COMPILER_STRIP_GATE(0x804A893C, &lit_5485); -#pragma pop - -/* 804A692C-804A6C48 00270C 031C+00 1/1 0/0 0/0 .text ke_control__FP10daDemo00_cP12demo_s1_ke_sif - */ -static void ke_control(daDemo00_c* param_0, demo_s1_ke_s* param_1, int param_2, f32 param_3) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 804A8940-804A8944 0000E0 0004+00 0/1 0/0 0/0 .rodata @5509 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5509 = 3.0f / 5.0f; -COMPILER_STRIP_GATE(0x804A8940, &lit_5509); -#pragma pop - -/* 804A8944-804A8948 0000E4 0004+00 0/1 0/0 0/0 .rodata @5510 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5510 = 3.5f; -COMPILER_STRIP_GATE(0x804A8944, &lit_5510); -#pragma pop - -/* 804A8948-804A894C 0000E8 0004+00 0/1 0/0 0/0 .rodata @5511 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5511 = 9.0f / 5.0f; -COMPILER_STRIP_GATE(0x804A8948, &lit_5511); -#pragma pop - -/* 804A6C48-804A6D20 002A28 00D8+00 1/1 0/0 0/0 .text - * ke_move__FP10daDemo00_cP19mDoExt_3DlineMat0_cP12demo_s1_ke_sif */ -static void ke_move(daDemo00_c* param_0, mDoExt_3DlineMat0_c* param_1, demo_s1_ke_s* param_2, - int param_3, f32 param_4) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 804A894C-804A8950 0000EC 0004+00 0/1 0/0 0/0 .rodata @5560 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5560 = 2000.0f; -COMPILER_STRIP_GATE(0x804A894C, &lit_5560); -#pragma pop - -/* 804A8950-804A8954 0000F0 0004+00 0/1 0/0 0/0 .rodata @5561 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5561 = 7.5f; -COMPILER_STRIP_GATE(0x804A8950, &lit_5561); -#pragma pop - -/* 804A8954-804A8958 0000F4 0004+00 0/1 0/0 0/0 .rodata @5562 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5562 = 2.25f; -COMPILER_STRIP_GATE(0x804A8954, &lit_5562); -#pragma pop - -/* 804A8958-804A895C 0000F8 0004+00 0/1 0/0 0/0 .rodata @5563 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5563 = 10.0f; -COMPILER_STRIP_GATE(0x804A8958, &lit_5563); -#pragma pop - -/* 804A895C-804A8960 0000FC 0004+00 0/1 0/0 0/0 .rodata @5564 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5564 = 8.0f; -COMPILER_STRIP_GATE(0x804A895C, &lit_5564); -#pragma pop - -/* 804A8960-804A8964 000100 0004+00 0/1 0/0 0/0 .rodata @5565 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5565 = 30.0f; -COMPILER_STRIP_GATE(0x804A8960, &lit_5565); -#pragma pop - -/* 804A8964-804A8968 000104 0004+00 0/1 0/0 0/0 .rodata @5566 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5566 = 35.0f; -COMPILER_STRIP_GATE(0x804A8964, &lit_5566); -#pragma pop - -/* 804A6D20-804A6F74 002B00 0254+00 1/1 0/0 0/0 .text ke_set__FP10daDemo00_c */ -static void ke_set(daDemo00_c* param_0) { - // NONMATCHING -} - -/* 804A6F74-804A6F94 002D54 0020+00 1/0 0/0 0/0 .text daDemo00_Draw__FP10daDemo00_c */ -static void daDemo00_Draw(daDemo00_c* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 804A8968-804A896C 000108 0004+00 0/1 0/0 0/0 .rodata @6201 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6201 = 200.0f; -COMPILER_STRIP_GATE(0x804A8968, &lit_6201); -#pragma pop - -/* 804A896C-804A8970 00010C 0004+00 0/1 0/0 0/0 .rodata @6202 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6202 = -700.0f; -COMPILER_STRIP_GATE(0x804A896C, &lit_6202); -#pragma pop - -/* 804A8970-804A8974 000110 0004+00 0/1 0/0 0/0 .rodata @6203 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6203 = 1600.0f; -COMPILER_STRIP_GATE(0x804A8970, &lit_6203); -#pragma pop - -/* 804A8974-804A8978 000114 0004+00 0/1 0/0 0/0 .rodata @6204 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6204 = -200.0f; -COMPILER_STRIP_GATE(0x804A8974, &lit_6204); -#pragma pop - -/* 804A8978-804A897C 000118 0004+00 0/1 0/0 0/0 .rodata @6205 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6205 = 600.0f; -COMPILER_STRIP_GATE(0x804A8978, &lit_6205); -#pragma pop - -/* 804A897C-804A8980 00011C 0004+00 0/1 0/0 0/0 .rodata @6206 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6206 = 50.0f; -COMPILER_STRIP_GATE(0x804A897C, &lit_6206); -#pragma pop - -/* 804A8980-804A8984 000120 0004+00 0/1 0/0 0/0 .rodata @6207 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6207 = 2.0f; -COMPILER_STRIP_GATE(0x804A8980, &lit_6207); -#pragma pop - -/* 804A8984-804A8988 000124 0004+00 0/1 0/0 0/0 .rodata @6208 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6208 = 10000.0f; -COMPILER_STRIP_GATE(0x804A8984, &lit_6208); -#pragma pop - -/* 804A8988-804A898C 000128 0004+00 0/1 0/0 0/0 .rodata @6209 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6209 = 17.0f / 20.0f; -COMPILER_STRIP_GATE(0x804A8988, &lit_6209); -#pragma pop - -/* 804A898C-804A8990 00012C 0004+00 0/1 0/0 0/0 .rodata @6210 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_6210 = 0x38D1B717; -COMPILER_STRIP_GATE(0x804A898C, &lit_6210); -#pragma pop - -/* 804A6F94-804A7B88 002D74 0BF4+00 1/1 0/0 0/0 .text draw__10daDemo00_cFv */ -void daDemo00_c::draw() { - // NONMATCHING -} - -/* 804A7B88-804A7BA8 003968 0020+00 1/0 0/0 0/0 .text daDemo00_Execute__FP10daDemo00_c */ -static void daDemo00_Execute(daDemo00_c* param_0) { - // NONMATCHING -} - -/* 804A7BA8-804A84AC 003988 0904+00 7/1 0/0 0/0 .text execute__10daDemo00_cFv */ -void daDemo00_c::execute() { - // NONMATCHING -} - -/* 804A84AC-804A84B4 00428C 0008+00 1/0 0/0 0/0 .text daDemo00_IsDelete__FP10daDemo00_c - */ -static bool daDemo00_IsDelete(daDemo00_c* param_0) { - return true; -} - -/* 804A84B4-804A84DC 004294 0028+00 1/0 0/0 0/0 .text daDemo00_Delete__FP10daDemo00_c */ -static void daDemo00_Delete(daDemo00_c* param_0) { - // NONMATCHING -} - -/* 804A84DC-804A86B4 0042BC 01D8+00 1/0 0/0 0/0 .text daDemo00_Create__FP10fopAc_ac_c */ -static void daDemo00_Create(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 804A86B4-804A871C 004494 0068+00 1/1 0/0 0/0 .text __ct__12demo_s1_ke_sFv */ -demo_s1_ke_s::demo_s1_ke_s() { - // NONMATCHING -} - -/* 804A871C-804A8720 0044FC 0004+00 2/2 0/0 0/0 .text __ct__4cXyzFv */ -// cXyz::cXyz() { -extern "C" void __ct__4cXyzFv() { - /* empty function */ -} - -/* 804A8720-804A87DC 004500 00BC+00 0/0 1/0 0/0 .text __sinit_d_a_demo00_cpp */ -void __sinit_d_a_demo00_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x804A8720, __sinit_d_a_demo00_cpp); -#pragma pop - -/* 804A87DC-804A8814 0045BC 0038+00 1/1 0/0 0/0 .text __arraydtor$5213 */ -void func_804A87DC() { - // NONMATCHING -} - -/* 804A8814-804A884C 0045F4 0038+00 1/1 0/0 0/0 .text __arraydtor$5211 */ -void func_804A8814() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 804A8990-804A8994 000130 0004+00 0/0 0/0 0/0 .rodata @6393 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_6393 = 0x43360B61; -COMPILER_STRIP_GATE(0x804A8990, &lit_6393); -#pragma pop - -/* 804A8994-804A8998 000134 0004+00 0/0 0/0 0/0 .rodata @6394 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6394 = 90.0f; -COMPILER_STRIP_GATE(0x804A8994, &lit_6394); -#pragma pop - -/* 804A8E20-804A8E24 000210 0004+00 0/0 0/0 0/0 .bss - * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */ -#pragma push -#pragma force_active on -static u8 data_804A8E20[4]; -#pragma pop - -/* 804A8E24-804A8E28 000214 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14JASAudioThread> */ -#pragma push -#pragma force_active on -static u8 data_804A8E24[4]; -#pragma pop - -/* 804A8E28-804A8E2C 000218 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */ -#pragma push -#pragma force_active on -static u8 data_804A8E28[4]; -#pragma pop - -/* 804A8E2C-804A8E30 00021C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_804A8E2C[4]; -#pragma pop - -/* 804A8E30-804A8E34 000220 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr> - */ -#pragma push -#pragma force_active on -static u8 data_804A8E30[4]; -#pragma pop - -/* 804A8E34-804A8E38 000224 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr> - */ -#pragma push -#pragma force_active on -static u8 data_804A8E34[4]; -#pragma pop - -/* 804A8E38-804A8E3C 000228 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys> - */ -#pragma push -#pragma force_active on -static u8 data_804A8E38[4]; -#pragma pop - -/* 804A8E3C-804A8E40 00022C 0004+00 0/0 0/0 0/0 .bss - * sInstance__36JASGlobalInstance<15JAISoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_804A8E3C[4]; -#pragma pop - -/* 804A8E40-804A8E44 000230 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14Z2SoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_804A8E40[4]; -#pragma pop - -/* 804A8E44-804A8E48 000234 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */ -#pragma push -#pragma force_active on -static u8 data_804A8E44[4]; -#pragma pop - -/* 804A8E48-804A8E4C 000238 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */ -#pragma push -#pragma force_active on -static u8 data_804A8E48[4]; -#pragma pop - -/* 804A8E4C-804A8E50 00023C 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_804A8E4C[4]; -#pragma pop - -/* 804A8E50-804A8E54 000240 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAIStreamMgr> */ -#pragma push -#pragma force_active on -static u8 data_804A8E50[4]; -#pragma pop - -/* 804A8E54-804A8E58 000244 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr> - */ -#pragma push -#pragma force_active on -static u8 data_804A8E54[4]; -#pragma pop - -/* 804A8E58-804A8E5C 000248 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAISoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_804A8E58[4]; -#pragma pop - -/* 804A8E5C-804A8E60 00024C 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13JAUSoundTable> */ -#pragma push -#pragma force_active on -static u8 data_804A8E5C[4]; -#pragma pop - -/* 804A8E60-804A8E64 000250 0004+00 0/0 0/0 0/0 .bss - * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */ -#pragma push -#pragma force_active on -static u8 data_804A8E60[4]; -#pragma pop - -/* 804A8E64-804A8E68 000254 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAUSoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_804A8E64[4]; -#pragma pop - -/* 804A8E68-804A8E6C 000258 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo> - */ -#pragma push -#pragma force_active on -static u8 data_804A8E68[4]; -#pragma pop - -/* 804A8E6C-804A8E70 00025C 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */ -#pragma push -#pragma force_active on -static u8 data_804A8E6C[4]; -#pragma pop - -/* 804A8E70-804A8E74 000260 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience> - */ -#pragma push -#pragma force_active on -static u8 data_804A8E70[4]; -#pragma pop - -/* 804A8E74-804A8E78 000264 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr> - */ -#pragma push -#pragma force_active on -static u8 data_804A8E74[4]; -#pragma pop - -/* 804A8E78-804A8E7C 000268 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr> - */ -#pragma push -#pragma force_active on -static u8 data_804A8E78[4]; -#pragma pop - -/* 804A8E7C-804A8E80 00026C 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr> - */ -#pragma push -#pragma force_active on -static u8 data_804A8E7C[4]; -#pragma pop - -/* 804A8E80-804A8E84 000270 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */ -#pragma push -#pragma force_active on -static u8 data_804A8E80[4]; -#pragma pop - -/* 804A8E84-804A8E88 000274 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14JAUSectionHeap> */ -#pragma push -#pragma force_active on -static u8 data_804A8E84[4]; -#pragma pop - -/* 804A8998-804A8998 000138 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/d_demo.cpp b/src/d/d_demo.cpp index a9fde337c8f..b118b85cfa6 100644 --- a/src/d/d_demo.cpp +++ b/src/d/d_demo.cpp @@ -357,8 +357,7 @@ static void branchFile(char const* resName) { dDemo_c::setBranchData(branchData); } -/* 800387EC-80038920 03312C 0134+00 1/0 0/0 0/0 .text JSGSetData__13dDemo_actor_cFUlPCvUl - */ +/* 800387EC-80038920 03312C 0134+00 1/0 0/0 0/0 .text JSGSetData__13dDemo_actor_cFUlPCvUl */ void dDemo_actor_c::JSGSetData(u32 id, void const* pdata, u32 param_2) { if (id == ID_UNK_1) { JStudio::stb::TParseData_fixed<50, TValueIterator_misaligned > data(pdata); diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp index 1d4d4ed6607..a1ad4021dd8 100644 --- a/src/m_Do/m_Do_ext.cpp +++ b/src/m_Do/m_Do_ext.cpp @@ -213,15 +213,13 @@ int mDoExt_brkAnm::init(J3DMaterialTable* i_matTable, J3DAnmTevRegKey* i_brk, in return 1; } -/* 8000D7A8-8000D7DC 0080E8 0034+00 0/0 8/8 96/96 .text - * entry__13mDoExt_brkAnmFP16J3DMaterialTablef */ +/* 8000D7A8-8000D7DC 0080E8 0034+00 0/0 8/8 96/96 .text entry__13mDoExt_brkAnmFP16J3DMaterialTablef */ void mDoExt_brkAnm::entry(J3DMaterialTable* i_matTable, f32 i_frame) { mpAnm->setFrame(i_frame); i_matTable->entryTevRegAnimator(mpAnm); } -/* 8000D7DC-8000D8E4 00811C 0108+00 0/0 18/18 85/85 .text - * init__13mDoExt_bckAnmFP15J3DAnmTransformiifssb */ +/* 8000D7DC-8000D8E4 00811C 0108+00 0/0 18/18 85/85 .text init__13mDoExt_bckAnmFP15J3DAnmTransformiifssb */ int mDoExt_bckAnm::init(J3DAnmTransform* i_bck, int i_play, int i_attr, f32 i_rate, s16 i_startF, s16 i_endF, bool i_modify) { JUT_ASSERT(614, (i_modify || isCurrentSolidHeap()) && i_bck != 0); @@ -241,29 +239,25 @@ int mDoExt_bckAnm::init(J3DAnmTransform* i_bck, int i_play, int i_attr, f32 i_ra return 1; } -/* 8000D990-8000D9CC 0082D0 003C+00 0/0 5/5 31/31 .text - * changeBckOnly__13mDoExt_bckAnmFP15J3DAnmTransform */ +/* 8000D990-8000D9CC 0082D0 003C+00 0/0 5/5 31/31 .text changeBckOnly__13mDoExt_bckAnmFP15J3DAnmTransform */ void mDoExt_bckAnm::changeBckOnly(J3DAnmTransform* i_bck) { mAnm = i_bck; mpMtxCalc->setAnmTransform(mAnm); } -/* 8000D9CC-8000D9E8 00830C 001C+00 0/0 11/11 59/59 .text entry__13mDoExt_bckAnmFP12J3DModelDataf - */ +/* 8000D9CC-8000D9E8 00830C 001C+00 0/0 11/11 59/59 .text entry__13mDoExt_bckAnmFP12J3DModelDataf */ void mDoExt_bckAnm::entry(J3DModelData* i_modelData, f32 i_frame) { mAnm->setFrame(i_frame); i_modelData->getJointNodePointer(0)->setMtxCalc(mpMtxCalc); } -/* 8000D9E8-8000DA08 008328 0020+00 0/0 1/1 1/1 .text - * entryJoint__13mDoExt_bckAnmFP12J3DModelDataUsf */ +/* 8000D9E8-8000DA08 008328 0020+00 0/0 1/1 1/1 .text entryJoint__13mDoExt_bckAnmFP12J3DModelDataUsf */ void mDoExt_bckAnm::entryJoint(J3DModelData* i_modelData, u16 i_jntNo, f32 i_frame) { mAnm->setFrame(i_frame); i_modelData->getJointNodePointer(i_jntNo)->setMtxCalc(mpMtxCalc); } -/* 8000DA08-8000DAA8 008348 00A0+00 0/0 1/1 3/3 .text - * init__13mDoExt_blkAnmFP13J3DDeformDataP13J3DAnmClusteriifss */ +/* 8000DA08-8000DAA8 008348 00A0+00 0/0 1/1 3/3 .text init__13mDoExt_blkAnmFP13J3DDeformDataP13J3DAnmClusteriifss */ int mDoExt_blkAnm::init(J3DDeformData* i_deformData, J3DAnmCluster* i_blk, int i_anmPlay, int i_attribute, f32 i_rate, s16 i_start, s16 param_6) { mpAnm = i_blk; @@ -283,8 +277,7 @@ int mDoExt_blkAnm::init(J3DDeformData* i_deformData, J3DAnmCluster* i_blk, int i return 1; } -/* 8000DAA8-8000DB10 0083E8 0068+00 3/3 0/0 0/0 .text mDoExt_changeMaterial__FP8J3DModel - */ +/* 8000DAA8-8000DB10 0083E8 0068+00 3/3 0/0 0/0 .text mDoExt_changeMaterial__FP8J3DModel */ static void mDoExt_changeMaterial(J3DModel* i_model) { J3DModelData* model_data = i_model->getModelData(); @@ -293,8 +286,7 @@ static void mDoExt_changeMaterial(J3DModel* i_model) { } } -/* 8000DB10-8000DBC8 008450 00B8+00 0/0 0/0 1/1 .text mDoExt_modelTexturePatch__FP12J3DModelData - */ +/* 8000DB10-8000DBC8 008450 00B8+00 0/0 0/0 1/1 .text mDoExt_modelTexturePatch__FP12J3DModelData */ void mDoExt_modelTexturePatch(J3DModelData* i_modelData) { j3dSys.setTexture(i_modelData->getTexture()); @@ -355,8 +347,7 @@ void mDoExt_modelUpdateDL(J3DModel* i_model) { i_model->viewCalc(); } -/* 8000DD64-8000DDF0 0086A4 008C+00 4/4 3/3 10/10 .text mDoExt_modelEntryDL__FP8J3DModel - */ +/* 8000DD64-8000DDF0 0086A4 008C+00 4/4 3/3 10/10 .text mDoExt_modelEntryDL__FP8J3DModel */ void mDoExt_modelEntryDL(J3DModel* i_model) { J3DModelData* model_data = i_model->getModelData(); @@ -373,7 +364,7 @@ void mDoExt_modelEntryDL(J3DModel* i_model) { i_model->viewCalc(); } -/* 8000DDF0-8000DE8C 008730 009C+00 0/0 0/0 14/14 .text mDoExt_btkAnmRemove__FP12J3DModelData */ +/* 8000DDF0-8000DE8C 008730 009C+00 0/0 0/0 14/14 .text mDoExt_btkAnmRemove__FP12J3DModelData */ void mDoExt_btkAnmRemove(J3DModelData* i_modelData) { for (u16 i = 0; i < i_modelData->getMaterialNum(); i++) { J3DMaterialAnm* matAnm = i_modelData->getMaterialNodePointer(i)->getMaterialAnm(); @@ -386,7 +377,7 @@ void mDoExt_btkAnmRemove(J3DModelData* i_modelData) { } } -/* 8000DE8C-8000DF3C 0087CC 00B0+00 0/0 0/0 7/7 .text mDoExt_brkAnmRemove__FP12J3DModelData */ +/* 8000DE8C-8000DF3C 0087CC 00B0+00 0/0 0/0 7/7 .text mDoExt_brkAnmRemove__FP12J3DModelData */ void mDoExt_brkAnmRemove(J3DModelData* i_modelData) { for (u16 i = 0; i < i_modelData->getMaterialNum(); i++) { J3DMaterialAnm* matAnm = i_modelData->getMaterialNodePointer(i)->getMaterialAnm(); @@ -400,8 +391,7 @@ void mDoExt_brkAnmRemove(J3DModelData* i_modelData) { } } -/* 8000E53C-8000E5F8 008E7C 00BC+00 0/0 0/0 19/19 .text - * create__21mDoExt_invisibleModelFP8J3DModelUc */ +/* 8000E53C-8000E5F8 008E7C 00BC+00 0/0 0/0 19/19 .text create__21mDoExt_invisibleModelFP8J3DModelUc */ int mDoExt_invisibleModel::create(J3DModel* i_model, u8 param_1) { J3DModelData* model_data = i_model->getModelData(); @@ -421,7 +411,7 @@ int mDoExt_invisibleModel::create(J3DModel* i_model, u8 param_1) { return 1; } -/* 8000E6C8-8000E7C0 009008 00F8+00 1/1 0/0 0/0 .text entryJoint__21mDoExt_invisibleModelFP4cXyz +/* 8000E6C8-8000E7C0 009008 00F8+00 1/1 0/0 0/0 .text entryJoint__21mDoExt_invisibleModelFP4cXyz */ void mDoExt_invisibleModel::entryJoint(cXyz* param_0) { J3DModelData* modelData = mModel->getModelData();