prime/include/MetroidPrime/CGameArchitectureSupport.hpp

60 lines
1.4 KiB
C++
Raw Normal View History

#ifndef _CGAMEARCHITECTURESUPPORT_HPP
#define _CGAMEARCHITECTURESUPPORT_HPP
#include "types.h"
#include "GuiSys/CGuiSys.hpp"
#include "Kyoto/Audio/CAudioSys.hpp"
2022-07-18 22:42:58 +00:00
#include "Kyoto/Basics/COsContext.hpp"
#include "Kyoto/Basics/CStopwatch.hpp"
#include "Kyoto/TOneStatic.hpp"
2022-08-09 23:03:51 +00:00
#include "MetroidPrime/CIOWinManager.hpp"
#include "MetroidPrime/CInputGenerator.hpp"
class CSavableState;
class Unknown {
private:
u8 pad[0x2c];
};
class CGameArchitectureSupport : public TOneStatic< CGameArchitectureSupport > {
public:
CGameArchitectureSupport(COsContext&);
~CGameArchitectureSupport();
void PreloadAudio();
bool UpdateTicks();
void Update();
inline CStopwatch& GetStopwatch1() { return x20_stopwatch1; }
inline CStopwatch& GetStopwatch2() { return x28_stopwatch2; }
// TODO
inline CIOWinManager& GetIOWinManager() { return *(CIOWinManager*)(((u8*)this) + 0x58); }
inline int& GetFramesDrawn() const { return *(int*)(((u8*)this) + 0x78); }
private:
CAudioSys x0_audioSys;
rstl::list< CSavableState > x8_;
u32 pad;
CStopwatch x20_stopwatch1;
CStopwatch x28_stopwatch2;
CInputGenerator x30_inputGenerator;
CGuiSys x44_guiSys;
CIOWinManager x58_ioWinMgr;
uint x78_gameFrameCount;
f32 x7c_;
f32 x80_;
f32 x84_;
uint x88_;
uint x8c_; // unused?
uint x90_;
uint x94_;
uint x98_;
rstl::optional_object< Unknown > x9c_;
u8 pad2[0x4];
};
CHECK_SIZEOF(CGameArchitectureSupport, 0xd0)
#endif