40 [[nodiscard]]
u16 checkpointId()
const {
41 return m_checkpointId;
44 [[nodiscard]] f32 raceCompletion()
const {
45 return m_raceCompletion;
48 [[nodiscard]] s8 jugemId()
const {
52 [[nodiscard]]
const std::array<Timer, 3> &lapTimers()
const {
56 [[nodiscard]]
const Timer &lapTimer(
size_t idx)
const {
57 ASSERT(idx < m_lapTimers.size());
58 return m_lapTimers[idx];
61 [[nodiscard]]
const Timer &raceTimer()
const {
65 [[nodiscard]]
const KPad *inputs()
const {
73 u16 nextCheckpointId)
const;
77 void endRace(
const Timer &finishTime);
82 f32 m_checkpointStartLapCompletion;
88 std::array<Timer, 3> m_lapTimers;
104 void endPlayerRace(
u32 idx);
109 [[nodiscard]]
bool isStageReached(Stage stage)
const {
110 return static_cast<std::underlying_type_t<Stage>
>(m_stage) >=
111 static_cast<std::underlying_type_t<Stage>
>(stage);
114 [[nodiscard]] MapdataJugemPoint *jugemPoint()
const;
118 [[nodiscard]]
int getCountdownTimer()
const {
119 return STAGE_COUNTDOWN_DURATION - m_timer;
122 [[nodiscard]]
const Player &player()
const {
126 [[nodiscard]]
const TimerManager &timerManager()
const {
127 return m_timerManager;
130 [[nodiscard]] Stage stage()
const {
134 [[nodiscard]]
u32 timer()
const {
139 static RaceManager *CreateInstance();
140 static void DestroyInstance();
142 [[nodiscard]]
static RaceManager *Instance() {
148 ~RaceManager()
override;
152 TimerManager m_timerManager;
157 static constexpr u16 STAGE_COUNTDOWN_DURATION = 240;
158 static constexpr u32 RNG_SEED = 0x74A1B095;
160 static RaceManager *s_instance;
Contexts can be used to restore a previous memory state for the current session.