Kinoko
A reimplementation of Mario Kart Wii's physics engine in C++
Loading...
Searching...
No Matches
ResourceManager.hh
1
#pragma once
2
3
#include "game/system/MultiDvdArchive.hh"
4
5
namespace
Kinoko {
6
7
namespace
Host {
8
9
class
Context;
10
11
}
// namespace Host
12
13
namespace
System {
14
15
enum class
ArchiveId {
16
Core = 0,
17
Course = 1,
18
};
19
24
class
ResourceManager
:
EGG::Disposer
{
25
friend
class
Host::Context
;
26
27
public
:
28
void
*getFile(
const
char
*filename,
size_t
*size, ArchiveId
id
);
29
void
*getBsp(Vehicle vehicle,
size_t
*size);
30
[[nodiscard]]
MultiDvdArchive
*load(Course courseId);
31
[[nodiscard]]
MultiDvdArchive
*load(s32 idx,
const
char
*filename);
32
void
unmount(
MultiDvdArchive
*archive);
33
35
[[nodiscard]]
static
const
char
*GetVehicleName(Vehicle vehicle) {
36
return
vehicle < Vehicle::Max ? VEHICLE_NAMES[static_cast<u8>(vehicle)] :
nullptr
;
37
}
38
39
static
ResourceManager
*CreateInstance();
40
static
void
DestroyInstance();
41
42
[[nodiscard]]
static
ResourceManager
*Instance() {
43
return
s_instance;
44
}
45
46
private
:
47
ResourceManager
();
48
~ResourceManager
()
override
;
49
50
// 0: Core archive
51
// 1: Course archive
52
MultiDvdArchive
**m_archives;
53
54
[[nodiscard]]
static
MultiDvdArchive
*Create(u8 i);
55
static
ResourceManager
*s_instance;
56
};
57
58
}
// namespace System
59
60
}
// namespace Kinoko
Kinoko::EGG::Disposer
An interface for ensuring certain structures and classes are destroyed with the heap.
Definition
Disposer.hh:11
Kinoko::Host::Context
Contexts can be used to restore a previous memory state for the current session.
Definition
Context.hh:71
Kinoko::System::MultiDvdArchive
Definition
MultiDvdArchive.hh:9
Kinoko::System::ResourceManager
Highest level abstraction for archive management and subsequent file retrieval.
Definition
ResourceManager.hh:24
game
system
ResourceManager.hh
Made by
Malleo
. Logo by
vabold
. Website generated by
Doxygen
1.12.0