diff options
Diffstat (limited to 'libs/JSystem/J2DGraph/J2DMaterialFactory.cpp')
| -rw-r--r-- | libs/JSystem/J2DGraph/J2DMaterialFactory.cpp | 539 |
1 files changed, 348 insertions, 191 deletions
diff --git a/libs/JSystem/J2DGraph/J2DMaterialFactory.cpp b/libs/JSystem/J2DGraph/J2DMaterialFactory.cpp index ab65ee3cb4..8ea44dd5b2 100644 --- a/libs/JSystem/J2DGraph/J2DMaterialFactory.cpp +++ b/libs/JSystem/J2DGraph/J2DMaterialFactory.cpp @@ -5,6 +5,9 @@ #include "JSystem/J2DGraph/J2DMaterialFactory.h" #include "JSystem/J2DGraph/J2DMaterial.h" +#include "JSystem/J2DGraph/J2DScreen.h" +#include "JSystem/JSupport/JSupport.h" +#include "JSystem/JUtility/JUTResource.h" #include "MSL_C/string.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -13,14 +16,6 @@ // Types: // -struct JUTResReference { - /* 802DE120 */ void getResource(void const*, u32, JKRArchive*); -}; - -struct J2DScreen { - static u8 mDataManage[4 + 4 /* padding */]; -}; - // // Forward References: // @@ -88,17 +83,8 @@ extern "C" void _savegpr_19(); extern "C" void _savegpr_29(); extern "C" void _restgpr_19(); extern "C" void _restgpr_29(); -extern "C" extern u8 const j2dDefaultTexCoordInfo[32]; -extern "C" extern u8 const j2dDefaultIndTexMtxInfo[28]; -extern "C" extern u8 const j2dDefaultIndTevStageInfo[12]; extern "C" u8 mDataManage__9J2DScreen[4 + 4 /* padding */]; -extern "C" extern u32 j2dDefaultTevOrderInfoNull; -extern "C" extern u16 j2dDefaultIndTexOrderNull[1 + 1 /* padding */]; -extern "C" extern u8 j2dDefaultIndTexCoordScaleInfo[2 + 2 /* padding */]; extern "C" extern u8 j2dDefaultTevSwapMode[4]; -extern "C" extern u32 j2dDefaultTevSwapModeTable; -extern "C" extern u32 j2dDefaultColorChanInfo; -extern "C" extern u16 j2dDefaultAlphaCmp; // // Declarations: @@ -106,6 +92,39 @@ extern "C" extern u16 j2dDefaultAlphaCmp; /* 802F2AD0-802F2C94 2ED410 01C4+00 0/0 1/1 0/0 .text * __ct__18J2DMaterialFactoryFRC16J2DMaterialBlock */ +// JSUConvertOffsetToPtr issues. Probably function order. +#ifdef NONMATCHING +J2DMaterialFactory::J2DMaterialFactory(J2DMaterialBlock const& param_0) { + field_0x0 = param_0.field_0x8; + field_0x4 = JSUConvertOffsetToPtr<J2DMaterialInitData>(¶m_0, (void*)param_0.field_0xc); + field_0x8 = JSUConvertOffsetToPtr<u16>(¶m_0, (void*)param_0.field_0x10); + if (param_0.field_0x18 && param_0.field_0x18 - param_0.field_0x14 > 4) { + field_0xc = JSUConvertOffsetToPtr<J2DIndInitData>(¶m_0, (void*)param_0.field_0x18); + } + else { + field_0xc = NULL; + } + field_0x30 = JSUConvertOffsetToPtr<_GXCullMode>(¶m_0, (void*)param_0.field_0x1c); + field_0x10 = JSUConvertOffsetToPtr<GXColor>(¶m_0, (void*)param_0.field_0x20); + field_0x14 = JSUConvertOffsetToPtr<u8>(¶m_0, (void*)param_0.field_0x24); + field_0x18 = JSUConvertOffsetToPtr<J2DColorChanInfo>(¶m_0, (void*)param_0.field_0x28); + field_0x1c = JSUConvertOffsetToPtr<u8>(¶m_0, (void*)param_0.field_0x2c); + field_0x20 = JSUConvertOffsetToPtr<J2DTexCoordInfo>(¶m_0, (void*)param_0.field_0x30); + field_0x24 = JSUConvertOffsetToPtr<J2DTexMtxInfo>(¶m_0, (void*)param_0.field_0x34); + field_0x28 = JSUConvertOffsetToPtr<u16>(¶m_0, (void*)param_0.field_0x38); + field_0x2c = JSUConvertOffsetToPtr<u16>(¶m_0, (void*)param_0.field_0x3c); + field_0x34 = JSUConvertOffsetToPtr<J2DTevOrderInfo>(¶m_0, (void*)param_0.field_0x40); + field_0x38 = JSUConvertOffsetToPtr<J2DGXColorS10>(¶m_0, (void*)param_0.field_0x44); + field_0x3c = JSUConvertOffsetToPtr<GXColor>(¶m_0, (void*)param_0.field_0x48); + field_0x40 = JSUConvertOffsetToPtr<u8>(¶m_0, (void*)param_0.field_0x4c); + field_0x44 = JSUConvertOffsetToPtr<J2DTevStageInfo>(¶m_0, (void*)param_0.field_0x50); + field_0x48 = JSUConvertOffsetToPtr<J2DTevSwapModeInfo>(¶m_0, (void*)param_0.field_0x54); + field_0x4c = JSUConvertOffsetToPtr<J2DTevSwapModeTableInfo>(¶m_0, (void*)param_0.field_0x58); + field_0x50 = JSUConvertOffsetToPtr<J2DAlphaCompInfo>(¶m_0, (void*)param_0.field_0x5c); + field_0x54 = JSUConvertOffsetToPtr<J2DBlendInfo>(¶m_0, (void*)param_0.field_0x60); + field_0x58 = JSUConvertOffsetToPtr<u8>(¶m_0, (void*)param_0.field_0x64); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -114,283 +133,421 @@ asm J2DMaterialFactory::J2DMaterialFactory(J2DMaterialBlock const& param_0) { #include "asm/JSystem/J2DGraph/J2DMaterialFactory/__ct__18J2DMaterialFactoryFRC16J2DMaterialBlock.s" } #pragma pop +#endif /* 802F2C94-802F2D1C 2ED5D4 0088+00 1/1 0/0 0/0 .text countStages__18J2DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::countStages(int param_0) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/countStages__18J2DMaterialFactoryCFi.s" +u32 J2DMaterialFactory::countStages(int param_0) const { + J2DMaterialInitData* iVar5 = &field_0x4[field_0x8[param_0]]; + u32 uVar4 = 0; + u32 uVar3 = 0; + if (iVar5->field_0x4 != 0xff) { + uVar3 = field_0x40[iVar5->field_0x4]; + } + for (int i = 0; i < 8; i++) { + if (iVar5->field_0x38[i] != 0xffff) { + uVar4++; + } + } + if ((uVar3 != uVar4 && uVar4 != 0)) { + if (uVar3 > uVar4) { + return uVar3; + } + return uVar4; + } + return uVar3; } -#pragma pop /* 802F2D1C-802F362C 2ED65C 0910+00 0/0 1/1 0/0 .text * create__18J2DMaterialFactoryCFP11J2DMaterialiUlP15J2DResReferenceP15J2DResReferenceP10JKRArchive */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::create(J2DMaterial* param_0, int param_1, u32 param_2, +// Stack issues +#ifdef NONMATCHING +J2DMaterial* J2DMaterialFactory::create(J2DMaterial* param_0, int index, u32 param_2, + J2DResReference* param_3, J2DResReference* param_4, + JKRArchive* param_5) const { + u32 stages = countStages(index); + u32 uVar1 = ((param_2 & 0x1f0000) >> 16); + u32 r28 = stages > uVar1 ? stages : uVar1; + + u32 r25 = r28 <= 8 ? r28 : 8; + + s32 local_3bc = ((param_2 & 0x1000000) != 0); + s32 local_3c0 = (param_2 & 0x1f0000) ? local_3bc : 0; + bool temp = (param_2 & 0x1f0000); + u16 tevBlockNum = r28; + param_0->mTevBlock = J2DMaterial::createTevBlock(tevBlockNum, temp); + param_0->mIndBlock = J2DMaterial::createIndBlock(local_3c0, temp); + param_0->mIndex = index; + param_0->field_0x8 = getMaterialMode(index); + param_0->getColorBlock()->setColorChanNum(newColorChanNum(index)); + param_0->getColorBlock()->setCullMode(newCullMode(index)); + param_0->getTexGenBlock()->setTexGenNum(newTexGenNum(index)); + param_0->getPEBlock()->setAlphaComp(newAlphaComp(index)); + param_0->getPEBlock()->setBlend(newBlend(index)); + param_0->getPEBlock()->setDither(newDither(index)); + param_0->getTevBlock()->setTevStageNum(newTevStageNum(index)); + param_0->mMaterialAlphaCalc = getMaterialAlphaCalc(index); + + JUTResReference aJStack_12c; + for (u8 i = 0; i < r25; i++) { + u16 texNo = newTexNo(index, i); + s8* local_37c = param_3->getResReference(texNo); + void* local_380 = NULL; + if (local_37c != NULL) { + local_380 = aJStack_12c.getResource(local_37c, 'TIMG', param_5); + if (local_380 == NULL && param_5 != NULL) { + local_380 = aJStack_12c.getResource(local_37c, 'TIMG', NULL); + } + if (local_380 == NULL && J2DScreen::getDataManage() != NULL) { + char acStack_230[256]; + strcpy(acStack_230, param_3->getName(texNo)); + local_380 = J2DScreen::getDataManage()->get(acStack_230); + } + } + param_0->getTevBlock()->insertTexture(i, (ResTIMG*)local_380); + param_0->getTevBlock()->setTexNo(i, texNo); + } + u16 fontNo = newFontNo(index); + param_0->getTevBlock()->setFontNo(fontNo); + + s8* local_384 = param_4->getResReference(param_0->getTevBlock()->getFontNo()); + void* local_388 = NULL; + if (local_384 != NULL) { + local_388 = aJStack_12c.getResource(local_384, 'FONT', param_5); + if (local_388 == NULL && param_5 != NULL) { + local_388 = aJStack_12c.getResource(local_384, 'FONT', NULL); + } + if (local_388 == NULL && J2DScreen::getDataManage() != NULL) { + char* pcVar9 = param_4->getName(param_0->getTevBlock()->getFontNo()); + char acStack_334[256]; + strcpy(acStack_334, pcVar9); + local_388 = J2DScreen::getDataManage()->get(acStack_334); + } + } + + param_0->getTevBlock()->setFont((ResFONT*)local_388); + for (u8 i = 0; i < r28; i++) { + param_0->getTevBlock()->setTevOrder(i, newTevOrder(index, i)); + } + for (u8 i = 0; i < r28; i++) { + J2DMaterialInitData* local_38c = &field_0x4[field_0x8[index]]; + param_0->getTevBlock()->setTevStage(i, newTevStage(index, i)); + if (local_38c->field_0xba[i] != 0xffff) { + param_0->getTevBlock()->getTevStage(i)->setTexSel(field_0x48[local_38c->field_0xba[i]].field_0x1); + param_0->getTevBlock()->getTevStage(i)->setRasSel(field_0x48[local_38c->field_0xba[i]].field_0x0); + } + } + for (u8 i = 0; i < 4; i++) { + param_0->getTevBlock()->setTevKColor(i, newTevKColor(index, i)); + } + for (u8 i = 0; i < 4; i++) { + J2DTevBlock* block = param_0->getTevBlock(); + block->setTevColor(i, newTevColor(index, i)); + } + for (u8 i = 0; i < 4; i++) { + param_0->getTevBlock()->setTevSwapModeTable(i, newTevSwapModeTable(index, i)); + } + for (u8 i = 0; i < 2; i++) { + param_0->getColorBlock()->setMatColor(i, newMatColor(index, i)); + } + for (u8 i = 0; i < 4; i++) { + param_0->getColorBlock()->setColorChan(i, newColorChan(index, i)); + } + for (u8 i = 0; i < 8; i++) { + param_0->getTexGenBlock()->setTexCoord(i, newTexCoord(index, i)); + } + for (u8 i = 0; i < 8; i++) { + param_0->getTexGenBlock()->setTexMtx(i, newTexMtx(index, i)); + } + J2DMaterialInitData* local_394 = &field_0x4[field_0x8[index]]; + for (u8 i = 0; i < r28; i++) { + param_0->getTevBlock()->setTevKColorSel(i, local_394->field_0x52[i]); + } + for (u8 i = 0; i < r28; i++) { + param_0->getTevBlock()->setTevKAlphaSel(i, local_394->field_0x62[i]); + } + if (field_0xc != NULL || local_3c0 != 0) { + u8 local_410 = newIndTexStageNum(index); + param_0->mIndBlock->setIndTexStageNum(local_410); + for (u8 i = 0; i < local_410; i++) { + param_0->getIndBlock()->setIndTexMtx(i, newIndTexMtx(index, i)); + } + for (u8 i = 0; i < local_410; i++) { + param_0->getIndBlock()->setIndTexOrder(i, newIndTexOrder(index, i)); + } + for (u8 i = 0; i < local_410; i++) { + param_0->getIndBlock()->setIndTexCoordScale(i, newIndTexCoordScale(index, i)); + } + for (u8 i = 0; i < r28; i++) { + param_0->getTevBlock()->setIndTevStage(i, newIndTevStage(index, i)); + } + } + return param_0; +} +#else +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm J2DMaterial* J2DMaterialFactory::create(J2DMaterial* param_0, int param_1, u32 param_2, J2DResReference* param_3, J2DResReference* param_4, JKRArchive* param_5) const { nofralloc #include "asm/JSystem/J2DGraph/J2DMaterialFactory/func_802F2D1C.s" } #pragma pop +#endif /* ############################################################################################## */ -/* 804561C0-804561C4 0047C0 0004+00 1/1 0/0 0/0 .sdata2 @1887 */ -SECTION_SDATA2 static u32 lit_1887 = 0xFFFFFFFF; /* 802F362C-802F36CC 2EDF6C 00A0+00 1/1 0/0 0/0 .text newMatColor__18J2DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newMatColor(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newMatColor__18J2DMaterialFactoryCFii.s" +JUtility::TColor J2DMaterialFactory::newMatColor(int param_0, int param_1) const { + GXColor color = {0xff,0xff,0xff,0xff}; + JUtility::TColor local_20 = GXColor(color); + J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]]; + if (iVar2->field_0x8[param_1] != 0xffff) { + return field_0x10[iVar2->field_0x8[param_1]]; + } + return local_20; } -#pragma pop /* 802F36CC-802F3704 2EE00C 0038+00 1/1 0/0 0/0 .text newColorChanNum__18J2DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newColorChanNum(int param_0) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newColorChanNum__18J2DMaterialFactoryCFi.s" +u8 J2DMaterialFactory::newColorChanNum(int param_0) const { + J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]]; + if (iVar2->field_0x2 != 0xff) { + return field_0x14[iVar2->field_0x2]; + } + return 0; } -#pragma pop /* 802F3704-802F3758 2EE044 0054+00 1/1 0/0 0/0 .text newColorChan__18J2DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newColorChan(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newColorChan__18J2DMaterialFactoryCFii.s" +J2DColorChan J2DMaterialFactory::newColorChan(int param_0, int param_1) const { + J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]]; + if (iVar2->field_0xc[param_1] != 0xffff) { + return J2DColorChan(field_0x18[iVar2->field_0xc[param_1]]); + } + return J2DColorChan(); } -#pragma pop /* 802F3758-802F3790 2EE098 0038+00 1/1 0/0 0/0 .text newTexGenNum__18J2DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newTexGenNum(int param_0) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newTexGenNum__18J2DMaterialFactoryCFi.s" +u32 J2DMaterialFactory::newTexGenNum(int param_0) const { + J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]]; + if (iVar2->field_0x3 != 0xff) { + return field_0x1c[iVar2->field_0x3]; + } + return 0; } -#pragma pop /* 802F3790-802F3804 2EE0D0 0074+00 1/1 0/0 0/0 .text newTexCoord__18J2DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newTexCoord(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newTexCoord__18J2DMaterialFactoryCFii.s" +J2DTexCoord J2DMaterialFactory::newTexCoord(int param_0, int param_1) const { + J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]]; + if (iVar2->field_0x14[param_1] != 0xffff) { + return J2DTexCoord(field_0x20[iVar2->field_0x14[param_1]]); + } + return J2DTexCoord(); } -#pragma pop /* 802F3804-802F38E0 2EE144 00DC+00 1/1 0/0 0/0 .text newTexMtx__18J2DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newTexMtx(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newTexMtx__18J2DMaterialFactoryCFii.s" +J2DTexMtx* J2DMaterialFactory::newTexMtx(int param_0, int param_1) const { + J2DTexMtx* rv = NULL; + J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]]; + if (iVar2->field_0x24[param_1] != 0xffff) { + rv = new J2DTexMtx(field_0x24[iVar2->field_0x24[param_1]]); + rv->calc(); + } + return rv; } -#pragma pop /* 802F38E0-802F3920 2EE220 0040+00 1/1 0/0 0/0 .text newCullMode__18J2DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newCullMode(int param_0) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newCullMode__18J2DMaterialFactoryCFi.s" +u8 J2DMaterialFactory::newCullMode(int param_0) const { + J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]]; + if (iVar2->field_0x1 != 0xff) { + return field_0x30[iVar2->field_0x1]; + } + return 0xff; } -#pragma pop /* 802F3920-802F3968 2EE260 0048+00 1/1 0/0 0/0 .text newTexNo__18J2DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newTexNo(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newTexNo__18J2DMaterialFactoryCFii.s" +u16 J2DMaterialFactory::newTexNo(int param_0, int param_1) const { + J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]]; + if (iVar2->field_0x38[param_1] != 0xffff) { + return field_0x28[iVar2->field_0x38[param_1]]; + } + return 0x1FFFF; } -#pragma pop /* 802F3968-802F39A8 2EE2A8 0040+00 1/1 0/0 0/0 .text newFontNo__18J2DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newFontNo(int param_0) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newFontNo__18J2DMaterialFactoryCFi.s" +u16 J2DMaterialFactory::newFontNo(int param_0) const { + J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]]; + if (iVar2->field_0x48 != 0xffff) { + return field_0x2c[iVar2->field_0x48]; + } + return 0x1FFFF; } -#pragma pop /* 802F39A8-802F3A1C 2EE2E8 0074+00 1/1 0/0 0/0 .text newTevOrder__18J2DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newTevOrder(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newTevOrder__18J2DMaterialFactoryCFii.s" +J2DTevOrder J2DMaterialFactory::newTevOrder(int param_0, int param_1) const { + J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]]; + if (iVar2->field_0x72[param_1] != 0xffff) { + return J2DTevOrder(field_0x34[iVar2->field_0x72[param_1]]); + } + return J2DTevOrder(); } -#pragma pop /* ############################################################################################## */ /* 80456BB0-80456BB4 000050 0004+00 1/1 0/0 0/0 .sbss2 @2018 */ -SECTION_SBSS2 static u8 lit_2018[4]; - -/* 80456BB4-80456BB8 000054 0004+00 1/1 0/0 0/0 .sbss2 None */ -SECTION_SBSS2 static u8 data_80456BB4[4]; +SECTION_SBSS2 static GXColorS10 lit_2018; /* 802F3A1C-802F3AB4 2EE35C 0098+00 1/1 0/0 0/0 .text newTevColor__18J2DMaterialFactoryCFii */ +// J2DGXColorS10 init issues +#ifdef NONMATCHING +J2DGXColorS10 J2DMaterialFactory::newTevColor(int param_0, int param_1) const { + GXColorS10 x = lit_2018; + J2DGXColorS10 rv = J2DGXColorS10(x); + J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]]; + if (iVar2->field_0x92[param_1] != 0xffff) { + return field_0x38[iVar2->field_0x92[param_1]]; + } + return rv; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J2DMaterialFactory::newTevColor(int param_0, int param_1) const { +asm J2DGXColorS10 J2DMaterialFactory::newTevColor(int param_0, int param_1) const { nofralloc #include "asm/JSystem/J2DGraph/J2DMaterialFactory/newTevColor__18J2DMaterialFactoryCFii.s" } #pragma pop +#endif /* ############################################################################################## */ -/* 804561C4-804561C8 0047C4 0004+00 1/1 0/0 0/0 .sdata2 @2039 */ -SECTION_SDATA2 static u32 lit_2039 = 0xFFFFFFFF; /* 802F3AB4-802F3B54 2EE3F4 00A0+00 1/1 0/0 0/0 .text newTevKColor__18J2DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newTevKColor(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newTevKColor__18J2DMaterialFactoryCFii.s" +JUtility::TColor J2DMaterialFactory::newTevKColor(int param_0, int param_1) const { + GXColor x = {0xFF, 0xFF, 0xFF, 0xFF}; + JUtility::TColor local_20 = GXColor(x); + J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]]; + if (iVar2->field_0x4a[param_1] != 0xffff) { + return field_0x3c[iVar2->field_0x4a[param_1]]; + } + return local_20; } -#pragma pop /* 802F3B54-802F3B8C 2EE494 0038+00 1/1 0/0 0/0 .text newTevStageNum__18J2DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newTevStageNum(int param_0) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newTevStageNum__18J2DMaterialFactoryCFi.s" +u8 J2DMaterialFactory::newTevStageNum(int param_0) const { + J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]]; + if (iVar2->field_0x4 != 0xff) { + return field_0x40[iVar2->field_0x4]; + } + return 0xFF; } -#pragma pop /* 802F3B8C-802F3BEC 2EE4CC 0060+00 1/1 0/0 0/0 .text newTevStage__18J2DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newTevStage(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newTevStage__18J2DMaterialFactoryCFii.s" +J2DTevStage J2DMaterialFactory::newTevStage(int param_0, int param_1) const { + J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]]; + if (iVar2->field_0x9a[param_1] != 0xffff) { + return J2DTevStage(field_0x44[iVar2->field_0x9a[param_1]]); + } + return J2DTevStage(); } -#pragma pop /* 802F3BEC-802F3C88 2EE52C 009C+00 1/1 0/0 0/0 .text * newTevSwapModeTable__18J2DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newTevSwapModeTable(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newTevSwapModeTable__18J2DMaterialFactoryCFii.s" +J2DTevSwapModeTable J2DMaterialFactory::newTevSwapModeTable(int param_0, int param_1) const { + J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]]; + if (iVar2->field_0xda[param_1] != 0xffff) { + return J2DTevSwapModeTable(field_0x4c[iVar2->field_0xda[param_1]]); + } + return J2DTevSwapModeTable(j2dDefaultTevSwapModeTable); } -#pragma pop /* 802F3C88-802F3CB8 2EE5C8 0030+00 1/1 0/0 0/0 .text newIndTexStageNum__18J2DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newIndTexStageNum(int param_0) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newIndTexStageNum__18J2DMaterialFactoryCFi.s" +u8 J2DMaterialFactory::newIndTexStageNum(int param_0) const { + if (field_0xc != NULL) { + if (field_0xc[param_0].field_0x0 == 1) { + return field_0xc[param_0].field_0x1; + } + } + return 0; } -#pragma pop /* 802F3CB8-802F3D20 2EE5F8 0068+00 1/1 0/0 0/0 .text newIndTexOrder__18J2DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newIndTexOrder(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newIndTexOrder__18J2DMaterialFactoryCFii.s" +J2DIndTexOrder J2DMaterialFactory::newIndTexOrder(int param_0, int param_1) const { + J2DIndTexOrder rv; + if (field_0xc != NULL) { + if (field_0xc[param_0].field_0x0 == 1) { + return J2DIndTexOrder(field_0xc[param_0].field_0x4[param_1]); + } + } + return rv; } -#pragma pop /* 802F3D20-802F3E24 2EE660 0104+00 1/1 0/0 0/0 .text newIndTexMtx__18J2DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newIndTexMtx(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newIndTexMtx__18J2DMaterialFactoryCFii.s" +J2DIndTexMtx J2DMaterialFactory::newIndTexMtx(int param_0, int param_1) const { + J2DIndTexMtx rv; + if (field_0xc != NULL) { + if (field_0xc[param_0].field_0x0 == 1) { + return J2DIndTexMtx(field_0xc[param_0].field_0xc[param_1]); + } + } + return rv; } -#pragma pop /* 802F3E24-802F3F78 2EE764 0154+00 1/1 0/0 0/0 .text newIndTevStage__18J2DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newIndTevStage(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newIndTevStage__18J2DMaterialFactoryCFii.s" +J2DIndTevStage J2DMaterialFactory::newIndTevStage(int param_0, int param_1) const { + J2DIndTevStage rv; + if (field_0xc != NULL) { + if (field_0xc[param_0].field_0x0 == 1) { + return J2DIndTevStage(field_0xc[param_0].field_0x68[param_1]); + } + } + return rv; } -#pragma pop /* 802F3F78-802F3FE0 2EE8B8 0068+00 1/1 0/0 0/0 .text * newIndTexCoordScale__18J2DMaterialFactoryCFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newIndTexCoordScale(int param_0, int param_1) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newIndTexCoordScale__18J2DMaterialFactoryCFii.s" +J2DIndTexCoordScale J2DMaterialFactory::newIndTexCoordScale(int param_0, int param_1) const { + J2DIndTexCoordScale rv; + if (field_0xc != NULL) { + if (field_0xc[param_0].field_0x0 == 1) { + return J2DIndTexCoordScale(field_0xc[param_0].field_0x60[param_1]); + } + } + return rv; } -#pragma pop /* 802F3FE0-802F405C 2EE920 007C+00 1/1 0/0 0/0 .text newAlphaComp__18J2DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newAlphaComp(int param_0) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newAlphaComp__18J2DMaterialFactoryCFi.s" +J2DAlphaComp J2DMaterialFactory::newAlphaComp(int param_0) const { + J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]]; + if (iVar2->field_0xe2 != 0xffff) { + return J2DAlphaComp(field_0x50[iVar2->field_0xe2]); + } + return J2DAlphaComp(); } -#pragma pop /* 802F405C-802F40D8 2EE99C 007C+00 1/1 0/0 0/0 .text newBlend__18J2DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newBlend(int param_0) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newBlend__18J2DMaterialFactoryCFi.s" +J2DBlend J2DMaterialFactory::newBlend(int param_0) const { + J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]]; + if (iVar2->field_0xe4 != 0xffff) { + return J2DBlend(field_0x54[iVar2->field_0xe4]); + } + return J2DBlend(); } -#pragma pop /* 802F40D8-802F4110 2EEA18 0038+00 1/1 0/0 0/0 .text newDither__18J2DMaterialFactoryCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DMaterialFactory::newDither(int param_0) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DMaterialFactory/newDither__18J2DMaterialFactoryCFi.s" +u8 J2DMaterialFactory::newDither(int param_0) const { + J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]]; + if (iVar2->field_0x5 != 0xff) { + return field_0x58[iVar2->field_0x5]; + } + return 0; } -#pragma pop /* 802F4110-802F4170 2EEA50 0060+00 1/1 0/0 0/0 .text __ct__11J2DTevStageFRC15J2DTevStageInfo */ #pragma push |
