Kinoko
A reimplementation of Mario Kart Wii's physics engine in C++
Toggle main menu visibility
Loading...
Searching...
No Matches
MapdataGeoObj.hh
1
#pragma once
2
3
#include "game/system/map/MapdataAccessorBase.hh"
4
5
#include <egg/math/Vector.hh>
6
7
namespace
Kinoko::System
{
8
9
class
MapdataGeoObj {
10
public
:
11
struct
SData
{
12
u16 id;
13
EGG::Vector3f
position;
14
EGG::Vector3f
rotation;
15
EGG::Vector3f
scale;
16
s16 pathId;
17
u16 settings[8];
18
u16 presenceFlag;
19
};
20
21
MapdataGeoObj(
const
SData
*data);
22
void
read(
EGG::Stream
&stream);
23
25
[[nodiscard]] u16 id()
const
{
26
return
m_id;
27
}
28
29
[[nodiscard]]
const
EGG::Vector3f
&pos()
const
{
30
return
m_pos;
31
}
32
33
[[nodiscard]]
const
EGG::Vector3f
&rot()
const
{
34
return
m_rot;
35
}
36
37
[[nodiscard]]
const
EGG::Vector3f &scale()
const
{
38
return
m_scale;
39
}
40
41
[[nodiscard]] s16 pathId()
const
{
42
return
m_pathId;
43
}
44
45
[[nodiscard]] u16 setting(
size_t
idx)
const
{
46
ASSERT(idx < m_settings.size());
47
return
m_settings[idx];
48
}
49
50
[[nodiscard]] u16 presenceFlag()
const
{
51
return
m_presenceFlag;
52
}
54
55
private
:
56
[[maybe_unused]]
const
SData
*m_rawData;
57
u16 m_id;
58
EGG::Vector3f m_pos;
59
EGG::Vector3f m_rot;
60
EGG::Vector3f m_scale;
61
s16 m_pathId;
62
std::array<u16, 8> m_settings;
63
u16 m_presenceFlag;
64
};
65
66
class
MapdataGeoObjAccessor :
public
MapdataAccessorBase<MapdataGeoObj, MapdataGeoObj::SData> {
67
public
:
68
MapdataGeoObjAccessor(
const
MapSectionHeader
*header);
69
~MapdataGeoObjAccessor()
override
;
70
};
71
72
}
// namespace Kinoko::System
Kinoko::EGG::Stream
A stream of data, abstracted to allow for continuous seeking.
Definition
Stream.hh:10
Kinoko::System
High-level handling for generic system operations, such as input reading, race configuration,...
Definition
CourseMap.cc:5
Kinoko::EGG::Vector3f
A 3D float vector.
Definition
Vector.hh:107
Kinoko::System::MapSectionHeader
Definition
MapdataAccessorBase.hh:7
Kinoko::System::MapdataGeoObj::SData
Definition
MapdataGeoObj.hh:11
game
system
map
MapdataGeoObj.hh
Made by
Malleo
. Logo by
vabold
. Website generated by
Doxygen
1.17.0