diff --git a/MathLib b/MathLib index 40ca0c321..8937bfc0c 160000 --- a/MathLib +++ b/MathLib @@ -1 +1 @@ -Subproject commit 40ca0c32191ca691c8a2d8b645a22616bff751aa +Subproject commit 8937bfc0c61e8e0f2d4a43026b49e5ef2025160d diff --git a/Runtime/CRandom16.hpp b/Runtime/CRandom16.hpp index dd3cec0ff..cfac70aa6 100644 --- a/Runtime/CRandom16.hpp +++ b/Runtime/CRandom16.hpp @@ -1,7 +1,7 @@ #ifndef RETRO_CRANDOM16_HPP #define RETRO_CRANDOM16_HPP -#include +#include "GCNTypes.hpp" namespace Retro { @@ -11,22 +11,22 @@ extern class CGlobalRandom* GLOBAL_RANDOM_TOKEN; class CRandom16 { - uint32_t m_seed; + u32 m_seed; public: - CRandom16(uint32_t p) : m_seed(p) {} + CRandom16(u32 p) : m_seed(p) {} - inline uint32_t Next() + inline u32 Next() { m_seed = (m_seed * 0x41c64e6d) + 0x00003039; return m_seed >> 16; } - inline uint32_t GetSeed() const + inline u32 GetSeed() const { return m_seed; } - inline void SetSeed(uint32_t p) + inline void SetSeed(u32 p) { m_seed = p; } @@ -41,12 +41,12 @@ public: return min + Float() * (max - min); } - inline int32_t Range(int32_t min, int32_t max) + inline s32 Range(s32 min, s32 max) { - int64_t diff = max - min; - int64_t rand = -1; + s32 diff = max - min; + s32 rand = -1; while (rand < 0) - rand = int32_t((Next() << 16) | Next()); + rand = s32((Next() << 16) | Next()); return rand % diff + min; } diff --git a/Runtime/Input/CFinalInput.cpp b/Runtime/Input/CFinalInput.cpp index 9795605a6..e32e07b0a 100644 --- a/Runtime/Input/CFinalInput.cpp +++ b/Runtime/Input/CFinalInput.cpp @@ -157,18 +157,18 @@ CFinalInput::CFinalInput(int cIdx, float dt, x23_enableAnaRightNegYP(DRADown() && !prevInput.DRADown()), x24_anaLeftTriggerP(DLTrigger() && !prevInput.DLTrigger()), x28_anaRightTriggerP(DRTrigger() && !prevInput.DRTrigger()), - x2c_b24_A(data.m_mouseButtons[boo::IWindowCallback::BUTTON_PRIMARY]), + x2c_b24_A(data.m_mouseButtons[boo::BUTTON_PRIMARY]), x2c_b25_B(data.m_charKeys[' ']), x2c_b26_X(data.m_charKeys['c']), - x2c_b27_Y(data.m_mouseButtons[boo::IWindowCallback::BUTTON_SECONDARY]), + x2c_b27_Y(data.m_mouseButtons[boo::BUTTON_SECONDARY]), x2c_b28_Z(data.m_charKeys['\t']), x2c_b29_L(data.m_charKeys['q']), x2c_b30_R(data.m_charKeys['e']), - x2c_b31_DPUp(data.m_specialKeys[boo::IWindowCallback::KEY_UP]), - x2d_b24_DPRight(data.m_specialKeys[boo::IWindowCallback::KEY_RIGHT]), - x2d_b25_DPDown(data.m_specialKeys[boo::IWindowCallback::KEY_DOWN]), - x2d_b26_DPLeft(data.m_specialKeys[boo::IWindowCallback::KEY_LEFT]), - x2d_b27_Start(data.m_specialKeys[boo::IWindowCallback::KEY_ESC]), + x2c_b31_DPUp(data.m_specialKeys[boo::KEY_UP]), + x2d_b24_DPRight(data.m_specialKeys[boo::KEY_RIGHT]), + x2d_b25_DPDown(data.m_specialKeys[boo::KEY_DOWN]), + x2d_b26_DPLeft(data.m_specialKeys[boo::KEY_LEFT]), + x2d_b27_Start(data.m_specialKeys[boo::KEY_ESC]), x2d_b28_PA(DA() && !prevInput.DA()), x2d_b29_PB(DB() && !prevInput.DB()), x2d_b30_PX(DX() && !prevInput.DX()), diff --git a/Runtime/Input/CInputGenerator.hpp b/Runtime/Input/CInputGenerator.hpp index f2e94f502..48673e1c9 100644 --- a/Runtime/Input/CInputGenerator.hpp +++ b/Runtime/Input/CInputGenerator.hpp @@ -39,52 +39,52 @@ public: { CKeyboardMouseControllerData m_data; - void mouseDown(const SWindowCoord&, EMouseButton button, EModifierKey) + void mouseDown(const boo::SWindowCoord&, boo::EMouseButton button, boo::EModifierKey) { m_data.m_mouseButtons[button] = true; } - void mouseUp(const SWindowCoord&, EMouseButton button, EModifierKey) + void mouseUp(const boo::SWindowCoord&, boo::EMouseButton button, boo::EModifierKey) { m_data.m_mouseButtons[button] = false; } - void mouseMove(const SWindowCoord& coord) + void mouseMove(const boo::SWindowCoord& coord) { m_data.m_mouseCoord = coord; } - void scroll(const SWindowCoord&, const SScrollDelta& scroll) + void scroll(const boo::SWindowCoord&, const boo::SScrollDelta& scroll) { m_data.m_accumScroll += scroll; } - void charKeyDown(unsigned long charCode, EModifierKey, bool) + void charKeyDown(unsigned long charCode, boo::EModifierKey, bool) { charCode = tolower(charCode); if (charCode > 255) return; m_data.m_charKeys[charCode] = true; } - void charKeyUp(unsigned long charCode, EModifierKey mods) + void charKeyUp(unsigned long charCode, boo::EModifierKey mods) { charCode = tolower(charCode); if (charCode > 255) return; m_data.m_charKeys[charCode] = false; } - void specialKeyDown(ESpecialKey key, EModifierKey, bool) + void specialKeyDown(boo::ESpecialKey key, boo::EModifierKey, bool) { m_data.m_specialKeys[key] = true; } - void specialKeyUp(ESpecialKey key, EModifierKey) + void specialKeyUp(boo::ESpecialKey key, boo::EModifierKey) { m_data.m_specialKeys[key] = false; } - void modKeyDown(EModifierKey mod, bool) + void modKeyDown(boo::EModifierKey mod, bool) { - m_data.m_modMask = EModifierKey(m_data.m_modMask | mod); + m_data.m_modMask = boo::EModifierKey(m_data.m_modMask | mod); } - void modKeyUp(EModifierKey mod) + void modKeyUp(boo::EModifierKey mod) { - m_data.m_modMask = EModifierKey(m_data.m_modMask & ~mod); + m_data.m_modMask = boo::EModifierKey(m_data.m_modMask & ~mod); } void reset() diff --git a/Runtime/Input/CKeyboardMouseController.hpp b/Runtime/Input/CKeyboardMouseController.hpp index df64fb068..1cbbc0aef 100644 --- a/Runtime/Input/CKeyboardMouseController.hpp +++ b/Runtime/Input/CKeyboardMouseController.hpp @@ -11,9 +11,9 @@ struct CKeyboardMouseControllerData bool m_charKeys[256] = {}; bool m_specialKeys[26] = {}; bool m_mouseButtons[6] = {}; - boo::IWindowCallback::EModifierKey m_modMask = boo::IWindowCallback::MKEY_NONE; - boo::IWindowCallback::SWindowCoord m_mouseCoord; - boo::IWindowCallback::SScrollDelta m_accumScroll; + boo::EModifierKey m_modMask = boo::MKEY_NONE; + boo::SWindowCoord m_mouseCoord; + boo::SScrollDelta m_accumScroll; }; } diff --git a/Runtime/MP1/CMain.hpp b/Runtime/MP1/CMain.hpp index 1f7a651be..8975cbea0 100644 --- a/Runtime/MP1/CMain.hpp +++ b/Runtime/MP1/CMain.hpp @@ -29,11 +29,9 @@ class WindowCallback : public boo::IWindowCallback class CMain : public boo::IApplicationCallback { boo::IWindow* mainWindow; - //ApplicationDeviceFinder devFinder; - WindowCallback windowCallback; int appMain(boo::IApplication* app); void appQuitting(boo::IApplication*) - {} + { xe8_b24_finished = true; } void appFilesOpen(boo::IApplication*, const std::vector& paths) { fprintf(stderr, "OPENING: "); diff --git a/Runtime/MP1/main.cpp b/Runtime/MP1/main.cpp index 72b3e3825..7638759b3 100644 --- a/Runtime/MP1/main.cpp +++ b/Runtime/MP1/main.cpp @@ -32,6 +32,7 @@ #include "GameGlobalObjects.hpp" #include "CArchitectureQueue.hpp" #include "CMain.hpp" +#include "CTimeProvider.hpp" #include "DataSpec/DNAMP1/Tweaks/CTweakPlayer.hpp" #include "DataSpec/DNAMP1/Tweaks/CTweakGame.hpp" @@ -114,6 +115,7 @@ public: m_inputGenerator(0.0f /*g_tweakPlayer->GetLeftLogicalThreshold()*/, 0.0f /*g_tweakPlayer->GetRightLogicalThreshold()*/) { + m_inputGenerator.startScanning(); } bool Update() { @@ -148,13 +150,8 @@ void CMain::AddWorldPaks() while (i <= 255) { std::string pakName = CBasics::Stringize("%s%i.pak", g_tweakGame->GetWorldPrefix().c_str(), i); - if (!CDvdFile::FileExists(pakName.c_str())) - { - i++; - continue; - } - - g_ResFactory->GetLoader().AddPakFile(pakName, false); + if (CDvdFile::FileExists(pakName.c_str())) + g_ResFactory->GetLoader().AddPakFile(pakName, false); i++; } #endif @@ -171,9 +168,7 @@ int CMain::appMain(boo::IApplication* app) { Zeus::detectCPU(); mainWindow = app->newWindow("Metroid Prime 1 Reimplementation vZygote"); - mainWindow->setCallback(&windowCallback); mainWindow->showWindow(); - //devFinder.startScanning(); TOneStatic globalObjs; InitializeSubsystems(); globalObjs->PostInitialize(x6c_memSys); @@ -187,14 +182,20 @@ int CMain::appMain(boo::IApplication* app) float rgba[4] = { 0.5f, 0.5f, 0.5f, 1.0f}; gfxQ->setClearColor(rgba); + float time = 0.0f; + int frame = 0; + CTimeProvider test(time); + while (!xe8_b24_finished) { mainWindow->waitForRetrace(); xe8_b24_finished = archSupport->Update(); gfxQ->clearTarget(); - gfxQ->present(); gfxQ->execute(); + + time = (frame++) / 60.f; + //fprintf(stderr, "%f\n", test.x0_currentTime); } return 0; } diff --git a/Runtime/Particle/CElementGen.hpp b/Runtime/Particle/CElementGen.hpp index da344d2c8..5dd17eb97 100644 --- a/Runtime/Particle/CElementGen.hpp +++ b/Runtime/Particle/CElementGen.hpp @@ -12,7 +12,6 @@ class CElementGen : public CParticleGen float x78_generatorRate; Zeus::CVector3f x88_globalTranslation; Zeus::CTransform x1d8_globalOrientation; - std::vector x238_children; std::vector x240_children; std::vector x254_children; public: diff --git a/libBoo b/libBoo index 4f650ce5f..2be32d6ca 160000 --- a/libBoo +++ b/libBoo @@ -1 +1 @@ -Subproject commit 4f650ce5f558b68e06cb120648be0b8d8619a93a +Subproject commit 2be32d6ca42a59d254874578248b7d4e91a1ee99