summaryrefslogtreecommitdiff
path: root/src/egg/gfx/eggLightTexture.cpp
diff options
context:
space:
mode:
authorelijah-thomas774 <elijahthomas774@gmail.com>2025-11-15 02:00:54 -0500
committerelijah-thomas774 <elijahthomas774@gmail.com>2025-11-15 02:00:54 -0500
commit02efcf0a65212583c068a270e6ed08ae62524d8d (patch)
tree229f8aebca8019d674340f23a6779c9c797b011c /src/egg/gfx/eggLightTexture.cpp
parentcd4f0d74de1e285ed9dbc37bca4cb32bba5b12cb (diff)
Some Symbols
Diffstat (limited to 'src/egg/gfx/eggLightTexture.cpp')
-rw-r--r--src/egg/gfx/eggLightTexture.cpp71
1 files changed, 38 insertions, 33 deletions
diff --git a/src/egg/gfx/eggLightTexture.cpp b/src/egg/gfx/eggLightTexture.cpp
index edf02b41..b8b823ca 100644
--- a/src/egg/gfx/eggLightTexture.cpp
+++ b/src/egg/gfx/eggLightTexture.cpp
@@ -42,7 +42,7 @@ bool LightTexture::sUseDebug;
u16 LightTexture::sTextureSize = 0x20;
-static s8 lbl_80574F3A = 0xFE;
+s8 LightTexture::sScaleExp = 0xFE;
template <>
const char *IBinary<LightTexture>::GetBinaryType() {
@@ -53,18 +53,25 @@ template <>
int IBinary<LightTexture>::GetVersion() {
return 3;
}
+} // namespace EGG
+
+namespace {
-void LightTexture::fn_804AB270() {
+static const GXTevColorArg TEV_MAIN_COLOR[3] = {GX_CC_C0, GX_CC_C1, GX_CC_C2};
+static const GXTevKColorSel TEV_SUB_COLOR[3] = {GX_TEV_KCSEL_K0, GX_TEV_KCSEL_K1, GX_TEV_KCSEL_K2};
+static const GXIndTexMtxID TEV_MTX_ID[3] = {GX_ITM_0, GX_ITM_1, GX_ITM_2};
+
+void setMaterialCommon() {
GXSetNumChans(1);
GXSetCullMode(GX_CULL_BACK);
GXSetChanCtrl(GX_COLOR0A0, false, GX_SRC_VTX, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_SIGN, GX_AF_NONE);
GXSetChanCtrl(GX_COLOR1A1, false, GX_SRC_VTX, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_NONE, GX_AF_NONE);
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0);
GXSetZMode(false, GX_LEQUAL, false);
- EGG::DrawGX::SetBlendMode(DrawGX::BLEND_14);
+ EGG::DrawGX::SetBlendMode(EGG::DrawGX::BLEND_14);
}
-void LightTexture::fn_804AB310(const GXColor &color) {
+void setMaterialAmbient(const GXColor &color) {
GXSetNumTexGens(0);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3c, 0, 0x7d);
GXSetNumIndStages(0);
@@ -79,14 +86,9 @@ void LightTexture::fn_804AB310(const GXColor &color) {
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, true, GX_TEVPREV);
- EGG::DrawGX::SetBlendMode(DrawGX::BLEND_14);
+ EGG::DrawGX::SetBlendMode(EGG::DrawGX::BLEND_14);
}
-
-static const GXTevColorArg sTevkColorArg[3] = {GX_CC_C0, GX_CC_C1, GX_CC_C2};
-static const GXTevKColorSel sTevkColorSel[3] = {GX_TEV_KCSEL_K0, GX_TEV_KCSEL_K1, GX_TEV_KCSEL_K2};
-static const GXIndTexMtxID sIndTexMtxId[3] = {GX_ITM_0, GX_ITM_1, GX_ITM_2};
-
-void LightTexture::fn_804AB440() {
+void setMaterialNormalSphere() {
GXSetNumTexGens(1);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3c, 0, 0x7d);
GXSetNumIndStages(1);
@@ -101,20 +103,20 @@ void LightTexture::fn_804AB440() {
GXSetTevSwapMode(id, GX_TEV_SWAP0, GX_TEV_SWAP0);
GXSetTevOrder(id, GX_TEXCOORD_NULL, static_cast<GXTexMapID>(GX_TEXMAP1 + i), GX_COLOR_NULL);
- GXSetTevKColorSel(id, sTevkColorSel[i]);
+ GXSetTevKColorSel(id, TEV_SUB_COLOR[i]);
GXSetTevKAlphaSel(id, GX_TEV_KASEL_1);
- GXSetTevColorIn(id, GX_CC_KONST, sTevkColorArg[i], GX_CC_TEXC, tevColorArg);
+ GXSetTevColorIn(id, GX_CC_KONST, TEV_MAIN_COLOR[i], GX_CC_TEXC, tevColorArg);
GXSetTevColorOp(id, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV);
GXSetTevAlphaIn(id, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST);
GXSetTevAlphaOp(id, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, true, GX_TEVPREV);
GXSetTevIndirect(
- id, GX_INDTEXSTAGE0, GX_ITF_8, GX_ITB_STU, sIndTexMtxId[i], GX_ITW_0, GX_ITW_0, false, false, GX_ITBA_OFF
+ id, GX_INDTEXSTAGE0, GX_ITF_8, GX_ITB_STU, TEV_MTX_ID[i], GX_ITW_0, GX_ITW_0, false, false, GX_ITBA_OFF
);
}
- EGG::DrawGX::SetBlendMode(DrawGX::BLEND_2);
+ EGG::DrawGX::SetBlendMode(EGG::DrawGX::BLEND_2);
}
-void LightTexture::fn_804AB600() {
+void setMaterialCrossOver() {
GXSetNumTexGens(2);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3c, 0, 0x7d);
GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX0, 0x1e, 0, 0x7d);
@@ -128,17 +130,20 @@ void LightTexture::fn_804AB600() {
GXSetTevOrder(
id, static_cast<GXTexCoordID>(GX_TEXCOORD0 + i), static_cast<GXTexMapID>(GX_TEXMAP0 + i), GX_COLOR_NULL
);
- GXSetTevKColorSel(id, sTevkColorSel[i]);
+ GXSetTevKColorSel(id, TEV_SUB_COLOR[i]);
GXSetTevKAlphaSel(id, GX_TEV_KASEL_1);
- GXSetTevColorIn(id, GX_CC_KONST, sTevkColorArg[i], GX_CC_TEXC, tevColorArg);
+ GXSetTevColorIn(id, GX_CC_KONST, TEV_MAIN_COLOR[i], GX_CC_TEXC, tevColorArg);
GXSetTevColorOp(id, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV);
GXSetTevAlphaIn(id, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST);
GXSetTevAlphaOp(id, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, true, GX_TEVPREV);
GXSetTevDirect(id);
}
- EGG::DrawGX::SetBlendMode(DrawGX::BLEND_2);
+ EGG::DrawGX::SetBlendMode(EGG::DrawGX::BLEND_2);
}
+} // namespace
+namespace EGG {
+
void LightTexture::initialize(u16 textureSize, Heap *pHeap) {
static const int sCpuTexGradientOp[NUM_CPU_TEX] = {0, 0, 0, 1, 2, 3, 4, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0};
@@ -174,19 +179,19 @@ void LightTexture::initialize(u16 textureSize, Heap *pHeap) {
tex->fillGradient(sCpuTexGradientOp[i], 0x73, a + 1, b - 1, DrawGX::BLACK, DrawGX::WHITE, true, true);
}
if (sTextureSize == 0x100) {
- lbl_80574F3A = 1;
+ sScaleExp = 1;
} else if (sTextureSize == 0x80) {
- lbl_80574F3A = 0;
+ sScaleExp = 0;
} else if (sTextureSize == 0x40) {
- lbl_80574F3A = -1;
+ sScaleExp = -1;
} else if (sTextureSize == 0x20) {
- lbl_80574F3A = -2;
+ sScaleExp = -2;
} else if (sTextureSize == 0x10) {
- lbl_80574F3A = -3;
+ sScaleExp = -3;
} else if (sTextureSize == 0x8) {
- lbl_80574F3A = -4;
+ sScaleExp = -4;
} else if (sTextureSize == 0x4) {
- lbl_80574F3A = -5;
+ sScaleExp = -5;
}
spNormalEnvironment = new (pHeap) CpuTexture(sTextureSize, sTextureSize, GX_TF_RGBA8);
@@ -274,7 +279,7 @@ void LightTexture::loadTextureFromResTimg(int index, EGG::ResTIMG *img) {
}
void LightTexture::initDrawSetting(u16 u1, u16 u2, u16 u3, u16 u4) {
- static const u8 ALIGN_DECL(32) sVtxBuf[] = {0, 0, 0, 1, 1, 1, 1, 0};
+ static const u8 ALIGN_DECL(32) vtx[] = {0, 0, 0, 1, 1, 1, 1, 0};
nw4r::math::MTX44 mtx;
C_MTXOrtho(mtx, u4, 0.0f, 0.0f, u3, 0.0f, 1.0f);
@@ -285,7 +290,7 @@ void LightTexture::initDrawSetting(u16 u1, u16 u2, u16 u3, u16 u4) {
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_INDEX8);
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
- GXSetArray(GX_VA_POS, sVtxBuf, 2);
+ GXSetArray(GX_VA_POS, vtx, 2);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGB, GX_RGB565, 0);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_F32, 0);
@@ -298,7 +303,7 @@ void LightTexture::initDrawSetting(u16 u1, u16 u2, u16 u3, u16 u4) {
sDrawPosX = u1;
sDrawPosY = u2;
- fn_804AB270();
+ setMaterialCommon();
GXSetCurrentMtx(0);
GXSetTevSwapModeTable(GX_TEV_SWAP0, GX_CH_RED, GX_CH_GREEN, GX_CH_BLUE, GX_CH_ALPHA);
}
@@ -352,7 +357,7 @@ void LightTexture::fn_804AC0E0(int i, const GXColor &color, bool b) {
c = DrawGX::BLACK;
}
- fn_804AB310(c);
+ setMaterialAmbient(c);
f32 origin = 0.0f;
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
@@ -374,13 +379,13 @@ void LightTexture::fn_804AC0E0(int i, const GXColor &color, bool b) {
case 0:
case 2:
spNormalEnvironment->load(GX_TEXMAP0);
- fn_804AB440();
+ setMaterialNormalSphere();
field_0x9D = 3;
field_0x9E = 1;
break;
case 1:
- fn_804AB600();
+ setMaterialCrossOver();
field_0x9D = 2;
field_0x9E = 0;
break;
@@ -568,7 +573,7 @@ void LightTexture::addLight(const EGG::LightObject &obj) {
mtx[1][1] = 0.0f;
mtx[1][2] = 0.0f;
- GXSetIndTexMtx(sIndTexMtxId[remainder], mtx, -1);
+ GXSetIndTexMtx(TEV_MTX_ID[remainder], mtx, -1);
}
if (remainder == field_0x9D - 1) {