eggLightObject good enough

This commit is contained in:
robojumper
2025-03-22 12:34:18 +01:00
parent 818e818b56
commit 510df58ea4
4 changed files with 256 additions and 48 deletions
+17 -6
View File
@@ -1,8 +1,9 @@
#ifndef EGG_LIGHT_OBJ_H
#define EGG_LIGHT_OBJ_H
#include "egg/math/eggVector.h"
#include "egg/egg_types.h"
#include "egg/prim/eggBinary.h"
#include "nw4r/g3d/res/g3d_resanmlight.h"
#include "nw4r/math/math_types.h"
#include "rvl/GX/GXLight.h"
#include "rvl/GX/GXTypes.h"
@@ -23,7 +24,17 @@ public:
void Reset();
void Calc();
void CalcView(nw4r::math::MTX34 const &);
void fn_804A9C30(const LightTexture *, nw4r::math::VEC3 *, GXColor *) const;
void InitGX(GXLightObj *obj) const;
void CopyToG3D_World(nw4r::g3d::LightObj &) const;
void CopyToG3D_View(nw4r::g3d::LightObj &, const nw4r::math::MTX34 &) const;
void CopyFromG3D(const nw4r::g3d::ResAnmLight &, f32, EGG::LightObject *, bool);
void ApplyAnmResultInner(const nw4r::g3d::LightAnmResult &);
void ApplyAnmResultA(const nw4r::g3d::LightAnmResult &);
bool ApplyAnmResultB(const nw4r::g3d::LightAnmResult &);
void CalcAt();
void SetPos(const nw4r::math::VEC3 &);
@@ -66,12 +77,12 @@ private:
/* 0x48 */ f32 field_0x48;
/* 0x4C */ nw4r::math::VEC3 field_0x4C;
/* 0x58 */ nw4r::math::VEC3 field_0x58;
/* 0x64 */ f32 field_0x64;
/* 0x68 */ u16 field_0x68;
/* 0x64 */ f32 mShininess;
/* 0x68 */ u16 mFlags;
/* 0x6C */ nw4r::math::VEC3 field_0x6C;
/* 0x78 */ GXColor field_0x78;
/* 0x7C */ nw4r::math::VEC3 field_0x7C;
/* 0x88 */ nw4r::math::VEC3 field_0x88;
/* 0x78 */ GXColor mLightColor;
/* 0x7C */ nw4r::math::VEC3 mViewPos;
/* 0x88 */ nw4r::math::VEC3 mViewAt;
/* 0x94 */ nw4r::math::VEC3 field_0x94;
/* 0xA0 */ u16 field_0xA0;
};
+3 -2
View File
@@ -53,12 +53,13 @@ public:
const char *getName() const {
return mName1;
}
private:
f32 getFloat(u16 idx) const {
return mpFloatData[idx];
}
private:
u8 getByte1(u16 idx) const {
return mpByteData1[idx];
}