summaryrefslogtreecommitdiff
path: root/libs/JSystem/J3DGraphLoader
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2024-02-06 07:04:35 +0200
committerGitHub <noreply@github.com>2024-02-06 07:04:35 +0200
commitc19d9b02be5d894f91cd45884eed67152dffffa4 (patch)
treeeaa14d73085ab7adfdd657ba8d1b2d2e23e149f2 /libs/JSystem/J3DGraphLoader
parente98d9c845c3476b3060a4bada25ced6a736835de (diff)
J3D work (#2064)
Diffstat (limited to 'libs/JSystem/J3DGraphLoader')
-rw-r--r--libs/JSystem/J3DGraphLoader/J3DMaterialFactory_v21.cpp80
1 files changed, 47 insertions, 33 deletions
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 {