d_file_select::dFile_select3D_c (#1899)

This commit is contained in:
Jcw87 2023-08-27 20:09:20 -07:00 committed by GitHub
parent d369e2908c
commit 6a4e50e74b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 228 additions and 164 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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();

View File

@ -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 */

View File

@ -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];

View File

@ -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();

View File

@ -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"
}