diff --git a/include/Pack/RPGraphics/RPGrpModelScene.h b/include/Pack/RPGraphics/RPGrpModelScene.h index 2f4fed43..16bf9693 100644 --- a/include/Pack/RPGraphics/RPGrpModelScene.h +++ b/include/Pack/RPGraphics/RPGrpModelScene.h @@ -9,12 +9,20 @@ class RPGrpCamera; class RPGrpScreen; +namespace EGG { +class ScnRenderer; +} + /** * @brief Model rendering scene */ class RPGrpModelScene { private: - char unk00[0xA4]; + char unk00[0x2]; + u8 mCameraIndex; // at 0x2 + char unk03[0x9C - 0x3]; + EGG::ScnRenderer* mpScnRenderer; // at 0x9C + char unkA0[0xA4 - 0xA0]; public: virtual ~RPGrpModelScene(); // at 0x8 diff --git a/include/Pack/RPUtility/RPUtlRandom.h b/include/Pack/RPUtility/RPUtlRandom.h index e73fba7d..05e3a17b 100644 --- a/include/Pack/RPUtility/RPUtlRandom.h +++ b/include/Pack/RPUtility/RPUtlRandom.h @@ -35,11 +35,8 @@ class RPUtlRandom { // Limited to u16 bounds u16 iRnd = static_cast(RANDF_MAX & (getU32() >> RANDF_SHIFT)); - // Convert to float - f32 fRnd = static_cast(iRnd); - // Convert to percentage (+1 makes the upper bound exclusive!) - return fRnd / static_cast(RANDF_MAX + 1); + return static_cast(iRnd) / static_cast(RANDF_MAX + 1); } private: diff --git a/src/Pack/RPGraphics/RPGrpModelScene.cpp b/src/Pack/RPGraphics/RPGrpModelScene.cpp new file mode 100644 index 00000000..2ea9a2a9 --- /dev/null +++ b/src/Pack/RPGraphics/RPGrpModelScene.cpp @@ -0,0 +1,10 @@ +#include + +#include + +void RPGrpModelScene::DrawPrepare(const RPGrpCamera* pCamera, + const RPGrpScreen* pScreen) { + mpScnRenderer->SetCurrentCamera(mCameraIndex++, + pCamera->GetSavedCameraMatrix(), *pScreen); + mpScnRenderer->CalcView(); +}