mirror of https://github.com/zeldaret/tp.git
d_file_select::dFile_select3D_c (#1899)
This commit is contained in:
parent
d369e2908c
commit
6a4e50e74b
20
Progress.md
20
Progress.md
|
|
@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes)
|
|||
.init | 97.972973% | 9280 | 9472
|
||||
.extab | 100.000000% | 96 | 96
|
||||
.extabindex | 100.000000% | 96 | 96
|
||||
.text | 31.559742% | 1135060 | 3596544
|
||||
.text | 31.572087% | 1135504 | 3596544
|
||||
.ctors | 100.000000% | 448 | 448
|
||||
.dtors | 100.000000% | 32 | 32
|
||||
.rodata | 100.000000% | 193856 | 193856
|
||||
.data | 100.000000% | 197632 | 197632
|
||||
.sdata | 100.000000% | 1408 | 1408
|
||||
.sdata2 | 100.000000% | 20832 | 20832
|
||||
Total | 38.774513% | 1558996 | 4020672
|
||||
Total | 38.785556% | 1559440 | 4020672
|
||||
|
||||
## Total
|
||||
|
||||
Section | Percentage | Decompiled (bytes) | Total (bytes)
|
||||
---|---|---|---
|
||||
main.dol | 38.774513% | 1558996 | 4020672
|
||||
RELs | 34.280808% | 3942404 | 11500324
|
||||
Total | 35.444890% | 5501400 | 15520996
|
||||
main.dol | 38.785556% | 1559440 | 4020672
|
||||
RELs | 34.306025% | 3945304 | 11500324
|
||||
Total | 35.466435% | 5504744 | 15520996
|
||||
|
||||
## RELs
|
||||
|
||||
|
|
@ -407,7 +407,7 @@ d_a_obj_firepillar2 | 32.320564% | 2936 | 9084
|
|||
d_a_obj_flag | 37.518248% | 2056 | 5480
|
||||
d_a_obj_flag2 | 46.370840% | 5852 | 12620
|
||||
d_a_obj_flag3 | 33.292929% | 3296 | 9900
|
||||
d_a_obj_fmobj | 55.200000% | 1104 | 2000
|
||||
d_a_obj_fmobj | 80.800000% | 1616 | 2000
|
||||
d_a_obj_food | 36.994728% | 3368 | 9104
|
||||
d_a_obj_fw | 43.368592% | 2132 | 4916
|
||||
d_a_obj_gadget | 34.371565% | 3752 | 10916
|
||||
|
|
@ -536,7 +536,7 @@ d_a_obj_magLift | 41.319181% | 2180 | 5276
|
|||
d_a_obj_magLiftRot | 51.744186% | 3916 | 7568
|
||||
d_a_obj_magne_arm | 34.395028% | 7084 | 20596
|
||||
d_a_obj_maki | 45.531587% | 2364 | 5192
|
||||
d_a_obj_master_sword | 43.575419% | 2808 | 6444
|
||||
d_a_obj_master_sword | 59.776536% | 3852 | 6444
|
||||
d_a_obj_mato | 37.093023% | 2552 | 6880
|
||||
d_a_obj_metalbox | 50.268097% | 1500 | 2984
|
||||
d_a_obj_mgate | 100.000000% | 4152 | 4152
|
||||
|
|
@ -654,7 +654,7 @@ d_a_obj_tp | 35.262726% | 3436 | 9744
|
|||
d_a_obj_treesh | 48.098664% | 1872 | 3892
|
||||
d_a_obj_twGate | 57.395498% | 2856 | 4976
|
||||
d_a_obj_udoor | 49.156627% | 1632 | 3320
|
||||
d_a_obj_usaku | 55.081301% | 1084 | 1968
|
||||
d_a_obj_usaku | 100.000000% | 1968 | 1968
|
||||
d_a_obj_vground | 100.000000% | 2856 | 2856
|
||||
d_a_obj_volcball | 50.478183% | 6756 | 13384
|
||||
d_a_obj_volcbom | 32.897713% | 5236 | 15916
|
||||
|
|
@ -716,7 +716,7 @@ d_a_tag_attack_item | 43.212237% | 1808 | 4184
|
|||
d_a_tag_attention | 100.000000% | 2024 | 2024
|
||||
d_a_tag_bottle_item | 100.000000% | 2656 | 2656
|
||||
d_a_tag_camera | 37.023593% | 1632 | 4408
|
||||
d_a_tag_chgrestart | 73.981900% | 1308 | 1768
|
||||
d_a_tag_chgrestart | 100.000000% | 1768 | 1768
|
||||
d_a_tag_chkpoint | 43.726937% | 948 | 2168
|
||||
d_a_tag_csw | 35.869565% | 3696 | 10304
|
||||
d_a_tag_escape | 100.000000% | 712 | 712
|
||||
|
|
@ -785,4 +785,4 @@ d_a_vrbox2 | 44.907111% | 2804 | 6244
|
|||
d_a_warp_bug | 100.000000% | 2024 | 2024
|
||||
d_a_ykgr | 44.400631% | 2252 | 5072
|
||||
f_pc_profile_lst | 100.000000% | 28156 | 28156
|
||||
Total | 34.280808% | 3942404 | 11500324
|
||||
Total | 34.306025% | 3945304 | 11500324
|
||||
|
|
|
|||
|
|
@ -1,51 +0,0 @@
|
|||
lbl_801904E4:
|
||||
/* 801904E4 94 21 FF C0 */ stwu r1, -0x40(r1)
|
||||
/* 801904E8 7C 08 02 A6 */ mflr r0
|
||||
/* 801904EC 90 01 00 44 */ stw r0, 0x44(r1)
|
||||
/* 801904F0 93 E1 00 3C */ stw r31, 0x3c(r1)
|
||||
/* 801904F4 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 801904F8 80 03 00 08 */ lwz r0, 8(r3)
|
||||
/* 801904FC 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80190500 41 82 00 94 */ beq lbl_80190594
|
||||
/* 80190504 80 9F 03 9C */ lwz r4, 0x39c(r31)
|
||||
/* 80190508 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 8019050C 80 A4 00 04 */ lwz r5, 4(r4)
|
||||
/* 80190510 38 C0 00 00 */ li r6, 0
|
||||
/* 80190514 38 E0 00 00 */ li r7, 0
|
||||
/* 80190518 48 0C 49 A5 */ bl getGlobalVtxCenter__8CPaneMgrFP7J2DPanebs
|
||||
/* 8019051C 80 61 00 08 */ lwz r3, 8(r1)
|
||||
/* 80190520 80 01 00 0C */ lwz r0, 0xc(r1)
|
||||
/* 80190524 90 61 00 14 */ stw r3, 0x14(r1)
|
||||
/* 80190528 90 01 00 18 */ stw r0, 0x18(r1)
|
||||
/* 8019052C 80 01 00 10 */ lwz r0, 0x10(r1)
|
||||
/* 80190530 90 01 00 1C */ stw r0, 0x1c(r1)
|
||||
/* 80190534 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80190538 C0 21 00 14 */ lfs f1, 0x14(r1)
|
||||
/* 8019053C C0 1F 03 B8 */ lfs f0, 0x3b8(r31)
|
||||
/* 80190540 EC 21 00 2A */ fadds f1, f1, f0
|
||||
/* 80190544 C0 41 00 18 */ lfs f2, 0x18(r1)
|
||||
/* 80190548 C0 1F 03 BC */ lfs f0, 0x3bc(r31)
|
||||
/* 8019054C EC 42 00 2A */ fadds f2, f2, f0
|
||||
/* 80190550 C0 62 9F B4 */ lfs f3, lit_8459(r2)
|
||||
/* 80190554 38 81 00 20 */ addi r4, r1, 0x20
|
||||
/* 80190558 48 00 0A 91 */ bl toItem3Dpos__16dFile_select3D_cFfffP4cXyz
|
||||
/* 8019055C C0 01 00 20 */ lfs f0, 0x20(r1)
|
||||
/* 80190560 D0 1F 03 A4 */ stfs f0, 0x3a4(r31)
|
||||
/* 80190564 C0 01 00 24 */ lfs f0, 0x24(r1)
|
||||
/* 80190568 D0 1F 03 A8 */ stfs f0, 0x3a8(r31)
|
||||
/* 8019056C C0 01 00 28 */ lfs f0, 0x28(r1)
|
||||
/* 80190570 D0 1F 03 AC */ stfs f0, 0x3ac(r31)
|
||||
/* 80190574 38 00 00 00 */ li r0, 0
|
||||
/* 80190578 B0 1F 03 B0 */ sth r0, 0x3b0(r31)
|
||||
/* 8019057C B0 1F 03 B2 */ sth r0, 0x3b2(r31)
|
||||
/* 80190580 B0 1F 03 B4 */ sth r0, 0x3b4(r31)
|
||||
/* 80190584 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80190588 48 00 04 8D */ bl animePlay__16dFile_select3D_cFv
|
||||
/* 8019058C 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80190590 48 00 03 CD */ bl set_mtx__16dFile_select3D_cFv
|
||||
lbl_80190594:
|
||||
/* 80190594 83 E1 00 3C */ lwz r31, 0x3c(r1)
|
||||
/* 80190598 80 01 00 44 */ lwz r0, 0x44(r1)
|
||||
/* 8019059C 7C 08 03 A6 */ mtlr r0
|
||||
/* 801905A0 38 21 00 40 */ addi r1, r1, 0x40
|
||||
/* 801905A4 4E 80 00 20 */ blr
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
lbl_801905A8:
|
||||
/* 801905A8 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 801905AC 7C 08 02 A6 */ mflr r0
|
||||
/* 801905B0 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 801905B4 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 801905B8 93 C1 00 08 */ stw r30, 8(r1)
|
||||
/* 801905BC 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 801905C0 80 03 00 08 */ lwz r0, 8(r3)
|
||||
/* 801905C4 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 801905C8 41 82 00 7C */ beq lbl_80190644
|
||||
/* 801905CC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 801905D0 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 801905D4 80 04 5F 98 */ lwz r0, 0x5f98(r4)
|
||||
/* 801905D8 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
|
||||
/* 801905DC 3B E3 4A C8 */ addi r31, r3, j3dSys@l /* 0x80434AC8@l */
|
||||
/* 801905E0 90 1F 00 48 */ stw r0, 0x48(r31)
|
||||
/* 801905E4 80 04 5F 9C */ lwz r0, 0x5f9c(r4)
|
||||
/* 801905E8 90 1F 00 4C */ stw r0, 0x4c(r31)
|
||||
/* 801905EC 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */
|
||||
/* 801905F0 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */
|
||||
/* 801905F4 38 80 00 0D */ li r4, 0xd
|
||||
/* 801905F8 38 BE 03 A4 */ addi r5, r30, 0x3a4
|
||||
/* 801905FC 38 DE 00 14 */ addi r6, r30, 0x14
|
||||
/* 80190600 48 01 31 C5 */ bl settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c
|
||||
/* 80190604 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */
|
||||
/* 80190608 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */
|
||||
/* 8019060C 80 9E 00 08 */ lwz r4, 8(r30)
|
||||
/* 80190610 80 84 00 04 */ lwz r4, 4(r4)
|
||||
/* 80190614 38 BE 00 14 */ addi r5, r30, 0x14
|
||||
/* 80190618 48 01 47 89 */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c
|
||||
/* 8019061C 7F C3 F3 78 */ mr r3, r30
|
||||
/* 80190620 48 00 05 25 */ bl animeEntry__16dFile_select3D_cFv
|
||||
/* 80190624 80 7E 00 08 */ lwz r3, 8(r30)
|
||||
/* 80190628 4B E7 D6 9D */ bl mDoExt_modelUpdateDL__FP8J3DModel
|
||||
/* 8019062C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 80190630 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 80190634 80 03 5F 80 */ lwz r0, 0x5f80(r3)
|
||||
/* 80190638 90 1F 00 48 */ stw r0, 0x48(r31)
|
||||
/* 8019063C 80 03 5F 84 */ lwz r0, 0x5f84(r3)
|
||||
/* 80190640 90 1F 00 4C */ stw r0, 0x4c(r31)
|
||||
lbl_80190644:
|
||||
/* 80190644 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 80190648 83 C1 00 08 */ lwz r30, 8(r1)
|
||||
/* 8019064C 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80190650 7C 08 03 A6 */ mtlr r0
|
||||
/* 80190654 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80190658 4E 80 00 20 */ blr
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
lbl_801904A0:
|
||||
/* 801904A0 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 801904A4 7C 08 02 A6 */ mflr r0
|
||||
/* 801904A8 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 801904AC 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 801904B0 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 801904B4 80 63 00 04 */ lwz r3, 4(r3)
|
||||
/* 801904B8 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 801904BC 41 82 00 14 */ beq lbl_801904D0
|
||||
/* 801904C0 4B E7 EC CD */ bl mDoExt_destroySolidHeap__FP12JKRSolidHeap
|
||||
/* 801904C4 38 00 00 00 */ li r0, 0
|
||||
/* 801904C8 90 1F 00 04 */ stw r0, 4(r31)
|
||||
/* 801904CC 90 1F 00 08 */ stw r0, 8(r31)
|
||||
lbl_801904D0:
|
||||
/* 801904D0 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 801904D4 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 801904D8 7C 08 03 A6 */ mtlr r0
|
||||
/* 801904DC 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 801904E0 4E 80 00 20 */ blr
|
||||
|
|
@ -34,6 +34,10 @@ public:
|
|||
J3DModel() {
|
||||
initialize();
|
||||
}
|
||||
J3DModel(J3DModelData* param_0, u32 param_1, u32 param_2) {
|
||||
initialize();
|
||||
entryModelData(param_0, param_1, param_2);
|
||||
}
|
||||
|
||||
/* 800CFFF4 */ void setBaseTRMtx(f32 (*)[4]);
|
||||
/* 80327100 */ void initialize();
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ struct J3DAnmBase;
|
|||
struct J3DAnmLoaderDataBase {
|
||||
/* 80337B40 */ static void* load(void const*, J3DAnmLoaderDataBaseFlag);
|
||||
/* 80338134 */ static void setResource(J3DAnmBase*, void const*);
|
||||
|
||||
static void* load(void const* param_0) { return load(param_0, J3DLOADER_UNK_FLAG0); }
|
||||
};
|
||||
|
||||
#endif /* J3DANMLOADER_H */
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ public:
|
|||
class dFile_select3D_c {
|
||||
public:
|
||||
/* 801902F0 */ dFile_select3D_c();
|
||||
/* 80190380 */ ~dFile_select3D_c();
|
||||
/* 80190380 */ /* virtual */ ~dFile_select3D_c();
|
||||
/* 801903DC */ void _create(u8, u8);
|
||||
/* 8019049C */ void _delete();
|
||||
/* 801904A0 */ void freeHeap();
|
||||
|
|
@ -33,7 +33,7 @@ public:
|
|||
/* 80190BA8 */ void createMaskModel();
|
||||
/* 80190D68 */ void createMirrorModel();
|
||||
/* 80190FE8 */ void toItem3Dpos(f32, f32, f32, cXyz*);
|
||||
/* 801910D4 */ void calcViewMtx(f32 (*)[4]);
|
||||
/* 801910D4 */ void calcViewMtx(Mtx);
|
||||
|
||||
void drawOff() { mpModel = 0; }
|
||||
|
||||
|
|
@ -42,12 +42,9 @@ public:
|
|||
/* 0x0008 */ J3DModel* mpModel;
|
||||
/* 0x000C */ mDoExt_bckAnm* mBckAnm;
|
||||
/* 0x0010 */ mDoExt_brkAnm* mBrkAnm;
|
||||
/* 0x0014 */ J3DLightInfo mLightInfo;
|
||||
/* 0x0048 */ u8 field_0x0048[0x0088 - 0x0048];
|
||||
/* 0x0088 */ J3DLightObj mLightObjects[6];
|
||||
/* 0x0340 */ u8 field_0x0340[0x039C - 0x0340];
|
||||
/* 0x039C */ J2DPane* pane;
|
||||
/* 0x03A0 */ u8 field_0x03A0[0x03A4 - 0x03A0];
|
||||
/* 0x0014 */ dKy_tevstr_c mTevstr;
|
||||
/* 0x039C */ CPaneMgr* mPaneMgr;
|
||||
/* 0x03A0 */ J2DPane* mPane;
|
||||
/* 0x03A4 */ cXyz field_0x03a4;
|
||||
/* 0x03B0 */ csXyz field_0x03b0;
|
||||
/* 0x03B6 */ u8 padding[2];
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ inline void cMtx_multVec(Mtx mtx, const Vec* src, Vec* dst) {
|
|||
mDoMtx_multVec(mtx, src, dst);
|
||||
}
|
||||
|
||||
inline void cMtx_lookAt(f32 (*param_0)[4],Vec const* param_1, Vec const* param_2,Vec const* param_3, s16 param_4) {
|
||||
inline void cMtx_lookAt(Mtx param_0, const Vec* param_1, const Vec* param_2, const Vec* param_3, s16 param_4) {
|
||||
mDoMtx_lookAt(param_0,param_1,param_2,param_3,param_4);
|
||||
}
|
||||
|
||||
|
|
@ -107,6 +107,14 @@ inline void mDoMtx_concat(const Mtx a, const Mtx b, Mtx c) {
|
|||
PSMTXConcat(a, b, c);
|
||||
}
|
||||
|
||||
inline void mDoMtx_inverse(const Mtx a, Mtx b) {
|
||||
PSMTXInverse(a, b);
|
||||
}
|
||||
|
||||
inline void cMtx_inverse(const Mtx a, Mtx b) {
|
||||
mDoMtx_inverse(a, b);
|
||||
}
|
||||
|
||||
class mDoMtx_stack_c {
|
||||
public:
|
||||
/* 8000CCC8 */ static bool push();
|
||||
|
|
|
|||
|
|
@ -8,7 +8,11 @@
|
|||
|
||||
#include "d/file/d_file_select.h"
|
||||
#include "JSystem/J2DGraph/J2DTextBox.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
|
||||
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
||||
#include "JSystem/JKernel/JKRSolidHeap.h"
|
||||
#include "d/meter/d_meter2_info.h"
|
||||
#include "d/s/d_s_play.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/dvd/dvd.h"
|
||||
#include "dolphin/types.h"
|
||||
|
|
@ -4882,9 +4886,14 @@ asm void dFile_select_c::dataSave() {
|
|||
#endif
|
||||
|
||||
/* 801902F0-80190380 18AC30 0090+00 1/1 0/0 0/0 .text __ct__16dFile_select3D_cFv */
|
||||
// vtable data
|
||||
#ifdef NONMATCHING
|
||||
dFile_select3D_c::dFile_select3D_c() {
|
||||
mLightInfo.dKy_tevstr_c();
|
||||
mpHeap = NULL;
|
||||
mpModel = NULL;
|
||||
field_0x03b8.y = 0.0f;
|
||||
field_0x03b8.x = 0.0f;
|
||||
field_0x03b8.z = 1.0f;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
|
|
@ -4898,6 +4907,12 @@ asm dFile_select3D_c::dFile_select3D_c() {
|
|||
#endif
|
||||
|
||||
/* 80190380-801903DC 18ACC0 005C+00 1/0 0/0 0/0 .text __dt__16dFile_select3D_cFv */
|
||||
// vtable data
|
||||
#ifdef NONMATCHING
|
||||
dFile_select3D_c::~dFile_select3D_c() {
|
||||
freeHeap();
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -4906,14 +4921,15 @@ asm dFile_select3D_c::~dFile_select3D_c() {
|
|||
#include "asm/d/file/d_file_select/__dt__16dFile_select3D_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 801903DC-8019049C 18AD1C 00C0+00 1/1 0/0 0/0 .text _create__16dFile_select3D_cFUcUc */
|
||||
#ifdef NONMATCHING
|
||||
// matches with literals
|
||||
void dFile_select3D_c::_create(u8 i_mirrorIdx, u8 i_maskIdx) {
|
||||
JKRHeap* ppHeap[2];
|
||||
JKRHeap* ppHeap;
|
||||
|
||||
mpHeap = mDoExt_createSolidHeapFromGameToCurrent(ppHeap,0x25800,32);
|
||||
mpHeap = mDoExt_createSolidHeapFromGameToCurrent(&ppHeap,0x25800,32);
|
||||
field_0x03c4 = 0.0f;
|
||||
field_0x03c8 = 0.0f;
|
||||
mMirrorIdx = i_mirrorIdx;
|
||||
|
|
@ -4927,10 +4943,10 @@ void dFile_select3D_c::_create(u8 i_mirrorIdx, u8 i_maskIdx) {
|
|||
}
|
||||
|
||||
mpHeap->adjustSize();
|
||||
mDoExt_setCurrentHeap(*ppHeap);
|
||||
mDoExt_setCurrentHeap(ppHeap);
|
||||
|
||||
if (mpModel) {
|
||||
dKy_tevstr_init((dKy_tevstr_c *)&mLightInfo,0xFF,0xFF);
|
||||
dKy_tevstr_init(&mTevstr,0xFF,0xFF);
|
||||
set_mtx();
|
||||
}
|
||||
}
|
||||
|
|
@ -4951,40 +4967,75 @@ void dFile_select3D_c::_delete() {
|
|||
}
|
||||
|
||||
/* 801904A0-801904E4 18ADE0 0044+00 2/2 0/0 0/0 .text freeHeap__16dFile_select3D_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dFile_select3D_c::freeHeap() {
|
||||
nofralloc
|
||||
#include "asm/d/file/d_file_select/freeHeap__16dFile_select3D_cFv.s"
|
||||
void dFile_select3D_c::freeHeap() {
|
||||
if (mpHeap) {
|
||||
mDoExt_destroySolidHeap(mpHeap);
|
||||
mpHeap = NULL;
|
||||
mpModel = NULL;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804539B4-804539B8 001FB4 0004+00 1/1 0/0 0/0 .sdata2 @8459 */
|
||||
SECTION_SDATA2 static f32 lit_8459 = 720.0f;
|
||||
|
||||
/* 801904E4-801905A8 18AE24 00C4+00 1/1 0/0 0/0 .text _move__16dFile_select3D_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dFile_select3D_c::_move() {
|
||||
nofralloc
|
||||
#include "asm/d/file/d_file_select/_move__16dFile_select3D_cFv.s"
|
||||
void dFile_select3D_c::_move() {
|
||||
if (mpModel) {
|
||||
cXyz stack_20;
|
||||
Vec stack_8 = mPaneMgr->getGlobalVtxCenter(false, 0);
|
||||
toItem3Dpos(stack_8.x + field_0x03b8.x, stack_8.y + field_0x03b8.y, 720.0f, &stack_20);
|
||||
field_0x03a4.set(stack_20);
|
||||
field_0x03b0.set(0, 0, 0);
|
||||
animePlay();
|
||||
set_mtx();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801905A8-8019065C 18AEE8 00B4+00 1/1 0/0 0/0 .text draw__16dFile_select3D_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dFile_select3D_c::draw() {
|
||||
nofralloc
|
||||
#include "asm/d/file/d_file_select/draw__16dFile_select3D_cFv.s"
|
||||
void dFile_select3D_c::draw() {
|
||||
if (mpModel) {
|
||||
dComIfGd_setListItem3D();
|
||||
g_env_light.settingTevStruct(13, &field_0x03a4, &mTevstr);
|
||||
g_env_light.setLightTevColorType_MAJI(mpModel, &mTevstr);
|
||||
animeEntry();
|
||||
mDoExt_modelUpdateDL(mpModel);
|
||||
dComIfGd_setList();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8019065C-8019095C 18AF9C 0300+00 2/2 0/0 0/0 .text setJ3D__16dFile_select3D_cFPCcPCcPCc */
|
||||
#ifdef NONMATCHING
|
||||
// double branch, regswap
|
||||
void dFile_select3D_c::setJ3D(char const* param_0, char const* param_1, char const* param_2) {
|
||||
JKRArchive* archive = dComIfGp_getCollectResArchive();
|
||||
J3DModelData* modelData = (J3DModelData*)J3DModelLoaderDataBase::load(
|
||||
archive->getResource('BMD ', param_0), 0x51020010);
|
||||
for (u16 i = 0; i < modelData->getMaterialNum(); i++) {
|
||||
J3DMaterialAnm* local_48 = new J3DMaterialAnm();
|
||||
modelData->getMaterialNodePointer(i)->change();
|
||||
modelData->getMaterialNodePointer(i)->setMaterialAnm(local_48);
|
||||
}
|
||||
mpModel = new J3DModel(modelData, 0, 1);
|
||||
if (param_1) {
|
||||
J3DAnmTransform* pbck =
|
||||
(J3DAnmTransform*)J3DAnmLoaderDataBase::load(archive->getResource('BCK ', param_1));
|
||||
mBckAnm = new mDoExt_bckAnm();
|
||||
if (mBckAnm && !mBckAnm->init(pbck, 1, 2, 1.0f, 0, -1, false)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (param_2) {
|
||||
J3DAnmTevRegKey* pbrk =
|
||||
(J3DAnmTevRegKey*)J3DAnmLoaderDataBase::load(archive->getResource('BRK ', param_2));
|
||||
pbrk->searchUpdateMaterialID(modelData);
|
||||
mBrkAnm = new mDoExt_brkAnm();
|
||||
if (mBrkAnm && !mBrkAnm->init(modelData, pbrk, -1, 2, 1.0f, 0, -1)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -4993,12 +5044,28 @@ asm void dFile_select3D_c::setJ3D(char const* param_0, char const* param_1, char
|
|||
#include "asm/d/file/d_file_select/setJ3D__16dFile_select3D_cFPCcPCcPCc.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804539B8-804539BC 001FB8 0004+00 1/1 0/0 0/0 .sdata2 @8608 */
|
||||
SECTION_SDATA2 static f32 lit_8608 = 1.0f / 10.0f;
|
||||
|
||||
/* 8019095C-80190A14 18B29C 00B8+00 2/2 0/0 0/0 .text set_mtx__16dFile_select3D_cFv */
|
||||
#ifdef NONMATCHING
|
||||
// matches with literals
|
||||
void dFile_select3D_c::set_mtx() {
|
||||
cXyz stack_8;
|
||||
f32 tmp = mPane->getScaleX();
|
||||
if (tmp <= 0.1f) {
|
||||
tmp = 0.0f;
|
||||
}
|
||||
stack_8.x = stack_8.y = stack_8.z = tmp * field_0x03b8.z;
|
||||
mDoMtx_stack_c::transS(field_0x03a4.x, field_0x03a4.y, field_0x03a4.z);
|
||||
mDoMtx_stack_c::XYZrotM(field_0x03b0.x, field_0x03b0.y, field_0x03b0.z);
|
||||
mpModel->setBaseScale(stack_8);
|
||||
mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -5007,8 +5074,30 @@ asm void dFile_select3D_c::set_mtx() {
|
|||
#include "asm/d/file/d_file_select/set_mtx__16dFile_select3D_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80190A14-80190B44 18B354 0130+00 1/1 0/0 0/0 .text animePlay__16dFile_select3D_cFv */
|
||||
#ifdef NONMATCHING
|
||||
// matches with literals
|
||||
void dFile_select3D_c::animePlay() {
|
||||
if (mBrkAnm) {
|
||||
field_0x03c4 += 1.0f;
|
||||
if (field_0x03c4 >= mBrkAnm->getEndFrame()) {
|
||||
field_0x03c4 -= mBrkAnm->getEndFrame();
|
||||
}
|
||||
mBrkAnm->setFrame(field_0x03c4);
|
||||
mBrkAnm->play();
|
||||
}
|
||||
if (mBckAnm) {
|
||||
field_0x03c8 += 1.0f;
|
||||
if (field_0x03c8 >= mBckAnm->getEndFrame()) {
|
||||
field_0x03c8 -= mBckAnm->getEndFrame();
|
||||
}
|
||||
mBckAnm->setFrame(field_0x03c8);
|
||||
mBckAnm->play();
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -5017,6 +5106,7 @@ asm void dFile_select3D_c::animePlay() {
|
|||
#include "asm/d/file/d_file_select/animePlay__16dFile_select3D_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80190B44-80190BA8 18B484 0064+00 1/1 0/0 0/0 .text animeEntry__16dFile_select3D_cFv */
|
||||
void dFile_select3D_c::animeEntry() {
|
||||
|
|
@ -5067,6 +5157,34 @@ COMPILER_STRIP_GATE(0x80394338, &m_kamen_scale);
|
|||
#pragma pop
|
||||
|
||||
/* 80190BA8-80190D68 18B4E8 01C0+00 1/1 0/0 0/0 .text createMaskModel__16dFile_select3D_cFv */
|
||||
#ifdef NONMATCHING
|
||||
// matches with literals
|
||||
void dFile_select3D_c::createMaskModel() {
|
||||
field_0x03b8.x = m_kamen_offset_x[mMaskIdx];
|
||||
field_0x03b8.y = m_kamen_offset_y[mMaskIdx];
|
||||
field_0x03b8.z = m_kamen_scale[mMaskIdx];
|
||||
field_0x03a4.set(0.0f, 0.0f, 0.0f);
|
||||
field_0x03b0.set(0, 0, 0);
|
||||
mpModel = NULL;
|
||||
mBckAnm = NULL;
|
||||
mBrkAnm = NULL;
|
||||
if (mMaskIdx == 0) {
|
||||
return;
|
||||
}
|
||||
setJ3D("md_mask_UI.bmd", bck_name_8683[mMaskIdx - 1], brk_name_8684[mMaskIdx - 1]);
|
||||
switch (mMaskIdx) {
|
||||
case 1:
|
||||
mpModel->getModelData()->getMaterialNodePointer(0)->getShape()->hide();
|
||||
mpModel->getModelData()->getMaterialNodePointer(1)->getShape()->hide();
|
||||
case 2:
|
||||
mpModel->getModelData()->getMaterialNodePointer(2)->getShape()->hide();
|
||||
mpModel->getModelData()->getMaterialNodePointer(3)->getShape()->hide();
|
||||
case 3:
|
||||
mpModel->getModelData()->getMaterialNodePointer(6)->getShape()->hide();
|
||||
mpModel->getModelData()->getMaterialNodePointer(7)->getShape()->hide();
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -5075,6 +5193,7 @@ asm void dFile_select3D_c::createMaskModel() {
|
|||
#include "asm/d/file/d_file_select/createMaskModel__16dFile_select3D_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8039434C-80394360 0209AC 0014+00 0/1 0/0 0/0 .rodata m_mirror_offset_x$8781 */
|
||||
|
|
@ -5125,6 +5244,40 @@ SECTION_DEAD static char const* const pad_80394827 = "";
|
|||
#pragma pop
|
||||
|
||||
/* 80190D68-80190FE8 18B6A8 0280+00 1/1 0/0 0/0 .text createMirrorModel__16dFile_select3D_cFv */
|
||||
#ifdef NONMATCHING
|
||||
// matches with literals
|
||||
void dFile_select3D_c::createMirrorModel() {
|
||||
field_0x03b8.x = m_mirror_offset_x[mMirrorIdx];
|
||||
field_0x03b8.y = m_mirror_offset_y[mMirrorIdx];
|
||||
field_0x03b8.z = m_mirror_scale[mMirrorIdx];
|
||||
field_0x03a4.set(0.0f, 0.0f, 0.0f);
|
||||
field_0x03b0.set(0, 0, 0);
|
||||
mpModel = NULL;
|
||||
mBckAnm = NULL;
|
||||
mBrkAnm = NULL;
|
||||
if (mMirrorIdx == 0) {
|
||||
return;
|
||||
}
|
||||
setJ3D("kageri_mirrer_UI.bmd", bck_name_8786[mMirrorIdx - 1], brk_name_8787[mMirrorIdx - 1]);
|
||||
switch (mMirrorIdx) {
|
||||
case 1:
|
||||
mpModel->getModelData()->getMaterialNodePointer(4)->getShape()->hide();
|
||||
mpModel->getModelData()->getMaterialNodePointer(5)->getShape()->hide();
|
||||
mpModel->getModelData()->getMaterialNodePointer(6)->getShape()->hide();
|
||||
mpModel->getModelData()->getMaterialNodePointer(7)->getShape()->hide();
|
||||
case 2:
|
||||
mpModel->getModelData()->getMaterialNodePointer(8)->getShape()->hide();
|
||||
mpModel->getModelData()->getMaterialNodePointer(9)->getShape()->hide();
|
||||
mpModel->getModelData()->getMaterialNodePointer(10)->getShape()->hide();
|
||||
mpModel->getModelData()->getMaterialNodePointer(11)->getShape()->hide();
|
||||
case 3:
|
||||
mpModel->getModelData()->getMaterialNodePointer(12)->getShape()->hide();
|
||||
mpModel->getModelData()->getMaterialNodePointer(13)->getShape()->hide();
|
||||
mpModel->getModelData()->getMaterialNodePointer(14)->getShape()->hide();
|
||||
mpModel->getModelData()->getMaterialNodePointer(15)->getShape()->hide();
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -5133,6 +5286,7 @@ asm void dFile_select3D_c::createMirrorModel() {
|
|||
#include "asm/d/file/d_file_select/createMirrorModel__16dFile_select3D_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804539BC-804539C0 001FBC 0004+00 1/1 0/0 0/0 .sdata2 @8978 */
|
||||
|
|
@ -5152,6 +5306,21 @@ SECTION_SDATA2 static f64 lit_8980 = 0.39269909262657166;
|
|||
SECTION_SDATA2 static f32 lit_8981 = 19.0f / 14.0f;
|
||||
|
||||
/* 80190FE8-801910D4 18B928 00EC+00 1/1 0/0 0/0 .text toItem3Dpos__16dFile_select3D_cFfffP4cXyz */
|
||||
#ifdef NONMATCHING
|
||||
// floating point hell
|
||||
void dFile_select3D_c::toItem3Dpos(f32 param_0, f32 param_1, f32 param_2, cXyz* param_3) {
|
||||
f32 f28 = ((param_0 - mDoGph_gInf_c::getMinXF()) / mDoGph_gInf_c::getWidthF()) * 2.0f - 1.0f;
|
||||
f32 f29 = ((param_1 - -100.0f) / 448.0f) * 2.0f - 1.0f;
|
||||
Mtx stack_50;
|
||||
Mtx stack_20;
|
||||
calcViewMtx(&stack_50);
|
||||
cMtx_inverse(stack_50, stack_20);
|
||||
f32 f31 = tan(0.3926990926265717);
|
||||
cXyz stack_10((f28 * param_2) * (f31 * mDoGph_gInf_c::getAspect()), f31 * (f29 * -param_2),
|
||||
-param_2);
|
||||
cMtx_multVec(stack_20, &stack_10, param_3);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -5160,6 +5329,7 @@ asm void dFile_select3D_c::toItem3Dpos(f32 param_0, f32 param_1, f32 param_2, cX
|
|||
#include "asm/d/file/d_file_select/toItem3Dpos__16dFile_select3D_cFfffP4cXyz.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804539D4-804539D8 001FD4 0004+00 1/1 0/0 0/0 .sdata2 @8993 */
|
||||
|
|
@ -5168,14 +5338,14 @@ SECTION_SDATA2 static f32 lit_8993 = -1000.0f;
|
|||
/* 801910D4-80191130 18BA14 005C+00 1/1 0/0 0/0 .text calcViewMtx__16dFile_select3D_cFPA4_f */
|
||||
#ifdef NONMATCHING
|
||||
// matches with literals
|
||||
void dFile_select3D_c::calcViewMtx(f32 (*param_0)[4]) {
|
||||
void dFile_select3D_c::calcViewMtx(Mtx param_0) {
|
||||
cMtx_lookAt(param_0,&cXyz(0.0f,0.0f,-1000.0f),&cXyz::Zero,&cXyz(0.0f,1.0f,0.0f),0);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dFile_select3D_c::calcViewMtx(f32 (*param_0)[4]) {
|
||||
asm void dFile_select3D_c::calcViewMtx(Mtx param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/file/d_file_select/calcViewMtx__16dFile_select3D_cFPA4_f.s"
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue