Kinoko
A reimplementation of Mario Kart Wii's physics engine in C++
Loading...
Searching...
No Matches
RailManager.hh
1
#pragma once
2
3
#include "game/field/RailInterpolator.hh"
4
5
#include <vector>
6
7
namespace
Kinoko {
8
9
namespace
Host {
10
11
class
Context;
12
13
}
// namespace Host
14
15
namespace
Field {
16
17
// TODO: Inherit EGG::Disposer
18
class
RailManager
{
19
friend
class
Host::Context
;
20
21
public
:
23
[[nodiscard]]
Rail
*rail(
size_t
idx) {
24
ASSERT(idx < m_rails.size());
25
return
m_rails[idx];
26
}
27
28
[[nodiscard]]
const
Rail
*rail(
size_t
idx)
const
{
29
ASSERT(idx < m_rails.size());
30
return
m_rails[idx];
31
}
33
34
static
RailManager
*CreateInstance();
35
static
void
DestroyInstance();
36
37
[[nodiscard]]
static
RailManager
*Instance() {
38
return
s_instance;
39
}
40
41
private
:
42
RailManager
();
43
~RailManager
();
44
45
void
createPaths();
46
47
std::vector<Rail *> m_rails;
48
u16
m_totalRails;
49
u16
m_extraInterplatorCount;
50
u16
m_pointCount;
51
52
static
RailManager
*s_instance;
53
};
54
55
}
// namespace Field
56
57
}
// namespace Kinoko
Kinoko::Field::RailManager
Definition
RailManager.hh:18
Kinoko::Field::Rail
Definition
Rail.hh:22
Kinoko::Host::Context
Contexts can be used to restore a previous memory state for the current session.
Definition
Context.hh:71
uint16_t
game
field
RailManager.hh
Made by
Malleo
. Logo by
vabold
. Website generated by
Doxygen
1.12.0