summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarco_21 <144170194+carter-ktb21@users.noreply.github.com>2025-07-10 19:16:30 -0400
committerGitHub <noreply@github.com>2025-07-11 02:16:30 +0300
commitb67414ef1a5f084b6d3fc08b066e5d1cabc3cb2a (patch)
tree80474d17ac06c8eb3884e60136d393d29a6ee334 /src
parent3de6b37edf0ddf48eff336f66130f4379460e3d4 (diff)
d_a_demo00 work (#2525)
* Initial work * Got to ke_control * draw function * tiny execute work * all functions worked on * PR cleanup * Took out static keyword for dDemo_setDemoData
Diffstat (limited to 'src')
-rw-r--r--src/d/actor/d_a_demo00.cpp3161
-rw-r--r--src/d/d_demo.cpp3
-rw-r--r--src/m_Do/m_Do_ext.cpp36
3 files changed, 1785 insertions, 1415 deletions
diff --git a/src/d/actor/d_a_demo00.cpp b/src/d/actor/d_a_demo00.cpp
index f0481a9404..f2ca3d4e2c 100644
--- a/src/d/actor/d_a_demo00.cpp
+++ b/src/d/actor/d_a_demo00.cpp
@@ -4,1505 +4,1886 @@
*/
#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
-}
-
-/* 804A449C-804A44D8 00027C 003C+00 5/5 0/0 0/0 .text __dt__4cXyzFv */
-// cXyz::~cXyz() {
-extern "C" void __dt__4cXyzFv() {
- // NONMATCHING
-}
+demo_s1_ke_s::~demo_s1_ke_s() {}
-/* ############################################################################################## */
/* 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
-
-/* 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,
-};
-
-/* 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
-
-/* 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
-
-/* 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,
-};
-
-/* 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,
-};
+static char const* const stringBase_804A8998 = "V_24_tri_joint";
-/* 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,
-};
-
-/* 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,
-};
-
-/* 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
-
-/* 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
-
-/* 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
-
-/* 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
-
-/* 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,
- 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,
-};
-
-/* 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),
-};
-
-/* 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),
-};
-
-/* 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),
-};
+UNK_REL_DATA;
-/* 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),
-};
-
-/* 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),
-};
-
-/* 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),
-};
-
-/* 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,
-};
-
-/* 804A8BB4-804A8BE4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_DEMO00 */
-extern actor_process_profile_definition g_profile_DEMO00 = {
- fpcLy_CURRENT_e, // mLayerID
- 7, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_DEMO00, // mProcName
- &g_fpcLf_Method.base, // sub_method
- sizeof(daDemo00_c), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 685, // mPriority
- &l_daDemo00_Method, // sub_method
- 0x00044000, // mStatus
- 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() {
+/* 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
-}
-
-/* ############################################################################################## */
-/* 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);
+ cXyz sp38;
-/* 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
+ 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();
}
-/* ############################################################################################## */
-/* 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
+ s16 sVar1, sVar2;
+ cXyz sp38;
+ BOOL bVar1 = FALSE;
+ cM3dGPla plane;
+
+ if (tevStr.mInitTimer == 1) {
+ field_0x574 = shape_angle;
+ }
+
+ sp38 = current.pos;
+
+ 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);
+ }
+
+ 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, &current.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;
+ }
+ }
+
+ field_0x568 = current.pos;
+
+ if (mground2 != 0) {
+ if (sp38.y != -1000000000.0f) {
+ bVar1 = dComIfG_Bgsp().GetTriPla(mBgc->mGndChk, &plane);
+ }
+
+ if (bVar1 && cBgW_CheckBGround(plane.mNormal.y)) {
+ shape_angle.x = fopAcM_getPolygonAngle(&plane, shape_angle.y);
+ }
+ }
+
+ if (tevStr.mInitTimer != 0 || mground2 == 0) {
+ current.angle = shape_angle;
+ } else {
+ cLib_addCalcAngleS2(&current.angle.x, shape_angle.x, 4, 0x2000);
+ cLib_addCalcAngleS2(&current.angle.y, shape_angle.y, 4, 0x2000);
+ cLib_addCalcAngleS2(&current.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);
}
-/* ############################################################################################## */
-/* 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
+ 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;
}
-/* ############################################################################################## */
-/* 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
+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 void createHeapCallBack(fopAc_ac_c* param_0) {
- // NONMATCHING
+/* 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();
}
-/* ############################################################################################## */
-/* 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() {
+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;
}
-/* ############################################################################################## */
-/* 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) {
+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;
}
-/* ############################################################################################## */
-/* 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) {
+/* 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 */
-void daDemo00_c::actLeaving(dDemo_actor_c* param_0) {
+/* 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* param_0, int param_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);
+ }
}
-/* ############################################################################################## */
-/* 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) {
+/* 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++;
+ }
}
-/* ############################################################################################## */
-/* 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
+UNK_REL_BSS;
/* 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
+static cXyz teduna_posL[16];
/* 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
+static cXyz teduna_posR[16];
/* 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
+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 u8 S_ganon_right_hand_pos[12];
+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* param_0, mDoExt_3DlineMat1_c* param_1, dKy_tevstr_c* param_2,
- int param_3, int param_4, int param_5, int param_6) {
+/* 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* param_0, int param_1, int param_2) {
+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);
}
-/* ############################################################################################## */
-/* 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) {
+/* 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);
+ }
+
}
-/* ############################################################################################## */
-/* 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) {
+/* 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++;
+ }
}
-/* ############################################################################################## */
-/* 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) {
+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 void daDemo00_Draw(daDemo00_c* param_0) {
- // NONMATCHING
+static int daDemo00_Draw(daDemo00_c* i_this) {
+ return i_this->draw();
}
-/* ############################################################################################## */
-/* 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() {
+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 void daDemo00_Execute(daDemo00_c* param_0) {
- // NONMATCHING
+static int daDemo00_Execute(daDemo00_c* i_this) {
+ return i_this->execute();
}
+static u8 const l_itemNo[4] = {
+ 0x29,
+ 0xFF,
+ 0xFF,
+ 0xFF,
+};
+
/* 804A7BA8-804A84AC 003988 0904+00 7/1 0/0 0/0 .text execute__10daDemo00_cFv */
-void daDemo00_c::execute() {
+int daDemo00_c::execute() {
// NONMATCHING
+
+ field_0x6a1 = 0;
+ dDemo_actor_c* actor = dDemo_c::getActor(demoActorID);
+
+ if (actor == NULL) {
+ fopAcM_delete(this);
+ OS_REPORT("汎用くん<dactor%d>削除!!\n", subtype);
+ } else {
+ if (actor->checkEnable(dDemo_actor_c::ENABLE_SHAPE_e)) {
+ mModel.field_0x0.mShapeID = actor->getShapeId();
+ }
+
+ if (actor->checkEnable(dDemo_actor_c::ENABLE_ANM_e)) {
+ mModel.field_0x0.field_0x4 = actor->getAnmId();
+ }
+
+ 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;
+
+ case 2:
+ field_0x6a5 = 1;
+ break;
+
+ 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(&current.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 bool daDemo00_IsDelete(daDemo00_c* param_0) {
- return true;
+/* 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 void daDemo00_Delete(daDemo00_c* param_0) {
- // NONMATCHING
+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 void daDemo00_Create(fopAc_ac_c* param_0) {
+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() {
- // NONMATCHING
-}
-
-/* 804A871C-804A8720 0044FC 0004+00 2/2 0/0 0/0 .text __ct__4cXyzFv */
-// cXyz::cXyz() {
-extern "C" void __ct__4cXyzFv() {
- /* empty function */
-}
+demo_s1_ke_s::demo_s1_ke_s() {}
-/* 804A8720-804A87DC 004500 00BC+00 0/0 1/0 0/0 .text __sinit_d_a_demo00_cpp */
-void __sinit_d_a_demo00_cpp() {
- // NONMATCHING
-}
+AUDIO_INSTANCES;
-#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
+/* 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,
+ (process_method_func)daDemo00_Delete,
+ (process_method_func)daDemo00_Execute,
+ (process_method_func)daDemo00_IsDelete,
+ (process_method_func)daDemo00_Draw,
+};
-/* 804A8998-804A8998 000138 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+/* 804A8BB4-804A8BE4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_DEMO00 */
+extern actor_process_profile_definition g_profile_DEMO00 = {
+ fpcLy_CURRENT_e, // mLayerID
+ 7, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_DEMO00, // mProcName
+ &g_fpcLf_Method.base, // sub_method
+ sizeof(daDemo00_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 685, // mPriority
+ &l_daDemo00_Method, // sub_method
+ 0x00044000, // mStatus
+ fopAc_ACTOR_e, // mActorType
+ fopAc_CULLBOX_0_e, // cullType
+};
diff --git a/src/d/d_demo.cpp b/src/d/d_demo.cpp
index a9fde337c8..b118b85cfa 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<u16> > data(pdata);
diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp
index 1d4d4ed660..a1ad4021dd 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();