From c19d9b02be5d894f91cd45884eed67152dffffa4 Mon Sep 17 00:00:00 2001 From: hatal175 Date: Tue, 6 Feb 2024 07:04:35 +0200 Subject: J3D work (#2064) --- .../J3DGraphLoader/J3DMaterialFactory_v21.cpp | 80 +++++++++++++--------- 1 file changed, 47 insertions(+), 33 deletions(-) (limited to 'libs/JSystem/J3DGraphLoader/J3DMaterialFactory_v21.cpp') diff --git a/libs/JSystem/J3DGraphLoader/J3DMaterialFactory_v21.cpp b/libs/JSystem/J3DGraphLoader/J3DMaterialFactory_v21.cpp index 957cb1828b..12a70d343d 100644 --- a/libs/JSystem/J3DGraphLoader/J3DMaterialFactory_v21.cpp +++ b/libs/JSystem/J3DGraphLoader/J3DMaterialFactory_v21.cpp @@ -169,19 +169,16 @@ asm J3DMaterial* J3DMaterialFactory_v21::create(J3DMaterial* param_0, int param_ } #pragma pop -/* ############################################################################################## */ -/* 804564B8-804564BC 004AB8 0004+00 1/1 0/0 0/0 .sdata2 @1130 */ -SECTION_SDATA2 static u32 lit_1130 = 0xFFFFFFFF; - /* 803337D8-80333834 32E118 005C+00 1/1 0/0 0/0 .text newMatColor__22J3DMaterialFactory_v21CFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DGXColor J3DMaterialFactory_v21::newMatColor(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newMatColor__22J3DMaterialFactory_v21CFii.s" +J3DGXColor J3DMaterialFactory_v21::newMatColor(int i_idx, int i_no) const { + GXColor defaultColor = {0xff,0xff,0xff,0xff}; + J3DGXColor defaultJ3DGXColor = J3DGXColor(defaultColor); + J3DMaterialInitData_v21* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]]; + if (mtl_init_data->mMatColorIdx[i_no] != 0xffff) { + return J3DGXColor(mpMatColor[mtl_init_data->mMatColorIdx[i_no]]); + } + return J3DGXColor(defaultJ3DGXColor); } -#pragma pop /* 80333834-8033386C 32E174 0038+00 1/1 0/0 0/0 .text newColorChanNum__22J3DMaterialFactory_v21CFi */ @@ -196,6 +193,17 @@ u8 J3DMaterialFactory_v21::newColorChanNum(int i_idx) const { /* 8033386C-80333A10 32E1AC 01A4+00 1/1 0/0 0/0 .text newColorChan__22J3DMaterialFactory_v21CFii */ +// J3DColorChan ctor +#ifdef NONMATCHING +J3DColorChan J3DMaterialFactory_v21::newColorChan(int i_idx, int i_no) const { + J3DMaterialInitData_v21* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]]; + if (mtl_init_data->mColorChanIdx[i_no] != 0xffff) { + return J3DColorChan(mpColorChanInfo[mtl_init_data->mColorChanIdx[i_no]]); + } else { + return J3DColorChan(); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -204,6 +212,7 @@ asm J3DColorChan J3DMaterialFactory_v21::newColorChan(int param_0, int param_1) #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newColorChan__22J3DMaterialFactory_v21CFii.s" } #pragma pop +#endif /* 80333A10-80333A48 32E350 0038+00 1/1 0/0 0/0 .text newTexGenNum__22J3DMaterialFactory_v21CFi */ u32 J3DMaterialFactory_v21::newTexGenNum(int i_idx) const { @@ -265,34 +274,29 @@ J3DTevOrder J3DMaterialFactory_v21::newTevOrder(int i_idx, int i_no) const { } } -/* 80456BC0-80456BC4 000060 0004+00 1/1 0/0 0/0 .sbss2 @1299 */ -SECTION_SBSS2 static GXColorS10 defaultTevColor; - /* 80333C04-80333C74 32E544 0070+00 1/1 0/0 0/0 .text newTevColor__22J3DMaterialFactory_v21CFii */ J3DGXColorS10 J3DMaterialFactory_v21::newTevColor(int i_idx, int i_no) const { + GXColorS10 defaultTevColor = {0,0,0,0}; J3DGXColorS10 dflt = defaultTevColor; J3DMaterialInitData_v21* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]]; if (mtl_init_data->mTevColorIdx[i_no] != 0xffff) { return mpTevColor[mtl_init_data->mTevColorIdx[i_no]]; } else { - return dflt; + return defaultTevColor; } } -/* ############################################################################################## */ -/* 804564BC-804564C0 004ABC 0004+00 1/1 0/0 0/0 .sdata2 @1317 */ -SECTION_SDATA2 static u32 lit_1317 = 0xFFFFFFFF; - /* 80333C74-80333CD0 32E5B4 005C+00 1/1 0/0 0/0 .text newTevKColor__22J3DMaterialFactory_v21CFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DGXColor J3DMaterialFactory_v21::newTevKColor(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newTevKColor__22J3DMaterialFactory_v21CFii.s" +J3DGXColor J3DMaterialFactory_v21::newTevKColor(int i_idx, int param_1) const { + GXColor defaultColor = {0xff,0xff,0xff,0xff}; + J3DGXColor defaultJ3DGXColor = J3DGXColor(defaultColor); + J3DMaterialInitData_v21* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]]; + if (mtl_init_data->mTevKColorIdx[param_1] != 0xffff) { + return J3DGXColor(mpTevKColor[mtl_init_data->mTevKColorIdx[param_1]]); + } + return J3DGXColor(defaultJ3DGXColor); } -#pragma pop /* 80333CD0-80333D08 32E610 0038+00 1/1 0/0 0/0 .text newTevStageNum__22J3DMaterialFactory_v21CFi */ @@ -317,14 +321,13 @@ J3DTevStage J3DMaterialFactory_v21::newTevStage(int i_idx, int i_no) const { /* 80333D68-80333E04 32E6A8 009C+00 1/1 0/0 0/0 .text * newTevSwapModeTable__22J3DMaterialFactory_v21CFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DTevSwapModeTable J3DMaterialFactory_v21::newTevSwapModeTable(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newTevSwapModeTable__22J3DMaterialFactory_v21CFii.s" +J3DTevSwapModeTable J3DMaterialFactory_v21::newTevSwapModeTable(int i_idx, int param_1) const { + J3DMaterialInitData_v21* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]]; + if (mtl_init_data->mTevSwapModeTableIdx[param_1] != 0xffff) { + return J3DTevSwapModeTable(mpTevSwapModeTableInfo[mtl_init_data->mTevSwapModeTableIdx[param_1]]); + } + return J3DTevSwapModeTable(j3dDefaultTevSwapModeTable); } -#pragma pop /* 80333E04-80333EE0 32E744 00DC+00 1/1 0/0 0/0 .text newFog__22J3DMaterialFactory_v21CFi */ @@ -338,6 +341,16 @@ J3DFog J3DMaterialFactory_v21::newFog(int i_idx) const { } /* 80333EE0-80333F60 32E820 0080+00 1/1 0/0 0/0 .text newAlphaComp__22J3DMaterialFactory_v21CFi */ +// calcAlphaCmpID issue +#ifdef NONMATCHING +J3DAlphaComp J3DMaterialFactory_v21::newAlphaComp(int i_idx) const { + J3DMaterialInitData_v21* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]]; + if (mtl_init_data->mAlphaCompIdx != 0xffff) { + return J3DAlphaComp(mpAlphaCompInfo[mtl_init_data->mAlphaCompIdx]); + } + return J3DAlphaComp(0xffff); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -346,6 +359,7 @@ asm J3DAlphaComp J3DMaterialFactory_v21::newAlphaComp(int param_0) const { #include "asm/JSystem/J3DGraphLoader/J3DMaterialFactory_v21/newAlphaComp__22J3DMaterialFactory_v21CFi.s" } #pragma pop +#endif /* 80333F60-80333FA4 32E8A0 0044+00 1/1 0/0 0/0 .text newBlend__22J3DMaterialFactory_v21CFi */ J3DBlend J3DMaterialFactory_v21::newBlend(int i_idx) const { -- cgit v1.2.3