mirror of https://github.com/AxioDL/metaforce.git
parent
812967ffbf
commit
9cb8b10fda
2
MathLib
2
MathLib
|
@ -1 +1 @@
|
|||
Subproject commit 40ca0c32191ca691c8a2d8b645a22616bff751aa
|
||||
Subproject commit 8937bfc0c61e8e0f2d4a43026b49e5ef2025160d
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef RETRO_CRANDOM16_HPP
|
||||
#define RETRO_CRANDOM16_HPP
|
||||
|
||||
#include <stdint.h>
|
||||
#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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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()),
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -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<std::string>& paths)
|
||||
{
|
||||
fprintf(stderr, "OPENING: ");
|
||||
|
|
|
@ -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,12 +150,7 @@ 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;
|
||||
}
|
||||
|
||||
if (CDvdFile::FileExists(pakName.c_str()))
|
||||
g_ResFactory->GetLoader().AddPakFile(pakName, false);
|
||||
i++;
|
||||
}
|
||||
|
@ -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<CGameGlobalObjects> 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;
|
||||
}
|
||||
|
|
|
@ -12,7 +12,6 @@ class CElementGen : public CParticleGen
|
|||
float x78_generatorRate;
|
||||
Zeus::CVector3f x88_globalTranslation;
|
||||
Zeus::CTransform x1d8_globalOrientation;
|
||||
std::vector<CElementGen> x238_children;
|
||||
std::vector<CElementGen> x240_children;
|
||||
std::vector<CElementGen> x254_children;
|
||||
public:
|
||||
|
|
2
libBoo
2
libBoo
|
@ -1 +1 @@
|
|||
Subproject commit 4f650ce5f558b68e06cb120648be0b8d8619a93a
|
||||
Subproject commit 2be32d6ca42a59d254874578248b7d4e91a1ee99
|
Loading…
Reference in New Issue