Kinoko
A reimplementation of Mario Kart Wii's physics engine in C++
Loading...
Searching...
No Matches
KartParamFileManager.hh
1
#pragma once
2
3
#include "game/kart/KartParam.hh"
4
5
#include "game/system/ResourceManager.hh"
6
7
namespace
Kinoko {
8
9
namespace
Host {
10
11
class
Context;
12
13
}
// namespace Host
14
15
namespace
Kart {
16
20
class
KartParamFileManager
:
EGG::Disposer
{
21
friend
class
Host::Context
;
22
23
public
:
24
void
clear();
25
void
init
();
26
[[nodiscard]]
EGG::RamStream
getDriverStream(Character character)
const
;
27
[[nodiscard]]
EGG::RamStream
getVehicleStream(Vehicle vehicle)
const
;
28
[[nodiscard]]
EGG::RamStream
getHitboxStream(Vehicle vehicle)
const
;
29
[[nodiscard]]
EGG::RamStream
getBikeDispParamsStream(Vehicle vehicle)
const
;
30
[[nodiscard]]
EGG::RamStream
getKartDispParamsStream(Vehicle vehicle)
const
;
31
[[nodiscard]]
EGG::RamStream
getKartCameraStream(Character character)
const
;
32
33
static
KartParamFileManager
*CreateInstance();
34
static
void
DestroyInstance();
35
36
[[nodiscard]]
static
KartParamFileManager
*Instance() {
37
return
s_instance;
38
}
39
40
private
:
41
template
<
typename
T>
42
struct
ParamFile
{
43
u32 count;
44
T params[];
45
};
46
47
struct
FileInfo
{
48
void
clear() {
49
file =
nullptr
;
50
size = 0;
51
}
52
53
void
load(
const
char
*filename) {
54
auto
*resourceManager = System::ResourceManager::Instance();
55
file = resourceManager->getFile(filename, &size, System::ArchiveId::Core);
56
}
57
58
void
*file;
59
size_t
size;
60
};
61
62
KartParamFileManager
();
63
~KartParamFileManager
()
override
;
64
65
[[nodiscard]]
bool
validate
()
const
;
66
67
FileInfo
m_kartParam;
// kartParam.bin
68
FileInfo
m_driverParam;
// driverParam.bin
69
FileInfo
m_bikeDispParam;
// bikePartsDispParam.bin
70
FileInfo
m_kartDispParam;
// kartPartsDispParam.bin
71
FileInfo
m_kartCameraParam;
// kartCameraParam.bin
72
73
static
KartParamFileManager
*s_instance;
74
};
75
76
}
// namespace Kart
77
78
}
// namespace Kinoko
Kinoko::EGG::Disposer
An interface for ensuring certain structures and classes are destroyed with the heap.
Definition
Disposer.hh:11
Kinoko::EGG::RamStream
A stream of data stored in memory.
Definition
Stream.hh:83
Kinoko::Host::Context
Contexts can be used to restore a previous memory state for the current session.
Definition
Context.hh:71
Kinoko::Kart::KartParamFileManager
Abstraction for the process of retrieving kart parameters from files.
Definition
KartParamFileManager.hh:20
Kinoko::Kart::KartParamFileManager::validate
bool validate() const
Performs a few checks to make sure the files were loaded successfully.
Definition
KartParamFileManager.cc:161
Kinoko::Kart::KartParamFileManager::init
void init()
Loads and validates the kart parameter files.
Definition
KartParamFileManager.cc:16
Kinoko::Kart::KartParamFileManager::FileInfo
Definition
KartParamFileManager.hh:47
Kinoko::Kart::KartParamFileManager::ParamFile
Definition
KartParamFileManager.hh:42
game
kart
KartParamFileManager.hh
Made by
Malleo
. Logo by
vabold
. Website generated by
Doxygen
1.12.0