diff options
| author | elijah-thomas774 <elijahthomas774@gmail.com> | 2025-03-30 15:26:26 -0400 |
|---|---|---|
| committer | elijah-thomas774 <elijahthomas774@gmail.com> | 2025-03-30 15:26:26 -0400 |
| commit | 0913f060546f19b03b1e8849e75ee869def77a49 (patch) | |
| tree | 551a140f5ea84dc3c5444c806daaa180a38ee9c5 /src/egg/gfx/eggLightObject.cpp | |
| parent | 5f8c997d9d40d0cfee9d0367be514577d773d90d (diff) | |
brief lightObject cleanup
Diffstat (limited to 'src/egg/gfx/eggLightObject.cpp')
| -rw-r--r-- | src/egg/gfx/eggLightObject.cpp | 81 |
1 files changed, 33 insertions, 48 deletions
diff --git a/src/egg/gfx/eggLightObject.cpp b/src/egg/gfx/eggLightObject.cpp index d1d63711..baf6a6a8 100644 --- a/src/egg/gfx/eggLightObject.cpp +++ b/src/egg/gfx/eggLightObject.cpp @@ -47,9 +47,9 @@ LightObject::LightObject() field_0x3D(1), mSpotFn(GX_SP_OFF), mDistAttnFn(GX_DA_OFF), - field_0x40(90.0f), - field_0x44(0.5f), - field_0x48(0.5f), + mCutoff(90.0f), + mRefDist(0.5f), + mRefBrightness(0.5f), mShininess(16.0f), mFlags(0x661) {} @@ -61,18 +61,16 @@ void LightObject::Reset() { field_0x30 = 1.0; field_0x3C = 0; field_0x3D = 1; - field_0x40 = 90.0; - field_0x44 = 0.5; - field_0x48 = 0.5; + mCutoff = 90.0; + mRefDist = 0.5; + mRefBrightness = 0.5; mSpotFn = GX_SP_OFF; mDistAttnFn = GX_DA_OFF; mShininess = 16.0; - field_0x58.x = 1.0; - field_0x4C.x = 1.0; - field_0x58.z = 0.0; - field_0x4C.z = 0.0; - field_0x58.y = 0.0; - field_0x4C.y = 0.0; + + field_0x4C.x = field_0x58.x = 1.0f; + field_0x4C.z = field_0x58.z = 0.0f; + field_0x4C.y = field_0x58.y = 0.0f; } void LightObject::Calc() { @@ -100,9 +98,7 @@ void LightObject::CalcView(nw4r::math::MTX34 const &viewMtx) { field_0x94.y = mViewPos.y = 0.0f; field_0x94.z = mViewPos.z = 1.0f; mViewPos.z *= mDist; - mViewAt.z = 0.0f; - mViewAt.y = 0.0f; - mViewAt.x = 0.0f; + mViewAt.x = mViewAt.y = mViewAt.z = 0.0f; break; } case 2: @@ -121,8 +117,7 @@ void LightObject::CalcView(nw4r::math::MTX34 const &viewMtx) { nw4r::math::VEC3Scale(&field_0x6C, &angle, -1.0f); PSVECNormalize(field_0x6C, field_0x6C); } else { - field_0x6C.y = 0.0f; - field_0x6C.x = 0.0f; + field_0x6C.x = field_0x6C.y = 0.0f; field_0x6C.z = 1.0f; } } @@ -172,13 +167,13 @@ void LightObject::InitGX(GXLightObj *obj) const { if ((mFlags & 0x80) != 0) { GXInitLightAttnA(obj, field_0x4C.x, field_0x4C.y, field_0x4C.z); } else { - GXInitLightSpot(obj, field_0x40 > 0.0f ? field_0x40 : 0.0001f, getSpotFn()); + GXInitLightSpot(obj, mCutoff > 0.0f ? mCutoff : 0.0001f, getSpotFn()); } if ((mFlags & 0x100) != 0) { GXInitLightAttnK(obj, field_0x58.x, field_0x58.y, field_0x58.z); } else { - GXInitLightDistAttn(obj, field_0x44 * getDistance(), field_0x48, getDistAttnFn()); + GXInitLightDistAttn(obj, mRefDist * getDistance(), mRefBrightness, getDistAttnFn()); } if ((mFlags & 0x800) != 0) { @@ -207,13 +202,13 @@ void LightObject::CopyToG3D_World(nw4r::g3d::LightObj &g3dObj) const { if ((mFlags & 0x80) != 0) { g3dObj.InitLightAttnA(field_0x4C.x, field_0x4C.y, field_0x4C.z); } else { - g3dObj.InitLightSpot(field_0x40 > 0.0f ? field_0x40 : 0.0001f, getSpotFn()); + g3dObj.InitLightSpot(mCutoff > 0.0f ? mCutoff : 0.0001f, getSpotFn()); } if ((mFlags & 0x100) != 0) { g3dObj.InitLightAttnK(field_0x58.x, field_0x58.y, field_0x58.z); } else { - g3dObj.InitLightDistAttn(field_0x44 * getDistance(), field_0x48, getDistAttnFn()); + g3dObj.InitLightDistAttn(mRefDist * getDistance(), mRefBrightness, getDistAttnFn()); } if ((mFlags & 0x800) != 0) { @@ -229,7 +224,6 @@ void LightObject::CopyToG3D_View(nw4r::g3d::LightObj &g3dObj, const nw4r::math:: return; } - // TODO if (!((mFlags >> 11) & 1)) { nw4r::math::VEC3 dir; nw4r::math::VEC3 pos; @@ -237,16 +231,12 @@ void LightObject::CopyToG3D_View(nw4r::g3d::LightObj &g3dObj, const nw4r::math:: case 1: { nw4r::math::VEC3TransformNormal(&dir, &viewMtx, &field_0x94); nw4r::math::VEC3Scale(&pos, &dir, -1e10f); - dir.z = 0.0f; - dir.y = 0.0f; - dir.x = 0.0f; + dir.x = dir.y = dir.z = 0.0f; break; } case 0: { PSMTXMultVec(viewMtx, mViewPos, pos); - dir.z = 0.0f; - dir.y = 0.0f; - dir.x = 0.0f; + dir.x = dir.y = dir.z = 0.0f; break; } case 2: { @@ -275,7 +265,6 @@ void LightObject::CopyFromG3D( optObj->mFlags |= 2; } } else { - // TODO ClearFlag2(); if (optObj != nullptr) { optObj->ClearFlag2(); @@ -287,19 +276,17 @@ void LightObject::CopyFromG3D( void LightObject::ApplyAnmResultInner(const nw4r::g3d::LightAnmResult &res) { // TODO mFlags = mFlags & 0xF07E; - field_0x40 = 90.0f; - field_0x44 = 0.5f; - field_0x48 = 0.5f; + mCutoff = 90.0f; + mRefDist = 0.5f; + mRefBrightness = 0.5f; mSpotFn = GX_SP_OFF; mDistAttnFn = GX_DA_OFF; mShininess = 16.0f; - // ... - field_0x58.x = 1.0f; - field_0x4C.x = 1.0f; - field_0x58.z = 0.0f; - field_0x4C.z = 0.0f; - field_0x58.y = 0.0f; - field_0x4C.y = 0.0f; + + field_0x4C.x = field_0x58.x = 1.0f; + field_0x4C.z = field_0x58.z = 0.0f; + field_0x4C.y = field_0x58.y = 0.0f; + if ((res.flags & nw4r::g3d::LightAnmResult::FLAG_COLOR_ENABLE) != 0) { mFlags |= 0x200; } @@ -318,10 +305,10 @@ void LightObject::ApplyAnmResultA(const nw4r::g3d::LightAnmResult &res) { field_0x3D = 0; mWhite = res.color; SetPosAt(res.pos, res.pos); - field_0x40 = 0.0f; + mCutoff = 0.0f; mSpotFn = GX_SP_OFF; - field_0x44 = res.refDistance; - field_0x48 = res.refBrightness; + mRefDist = res.refDistance; + mRefBrightness = res.refBrightness; mDistAttnFn = res.distFunc; break; } @@ -338,10 +325,10 @@ void LightObject::ApplyAnmResultA(const nw4r::g3d::LightAnmResult &res) { mWhite = res.color; SetPosAt(res.pos, res.aim); mSpotFn = res.spotFunc; - field_0x40 = res.cutoff; + mCutoff = res.cutoff; mDistAttnFn = res.distFunc; - field_0x44 = res.refDistance; - field_0x48 = res.refBrightness; + mRefDist = res.refDistance; + mRefBrightness = res.refBrightness; break; } } @@ -370,9 +357,7 @@ void LightObject::CalcDirDist() { if (mDist > 0.0f) { nw4r::math::VEC3Scale(&mDir, &mDir, 1.0f / nw4r::math::FSqrt(mDist)); } else { - mDir.z = 0.0f; - mDir.y = 0.0f; - mDir.x = 0.0f; + mDir.x = mDir.y = mDir.z = 0.0f; } } |
