Kinoko
A reimplementation of Mario Kart Wii's physics engine in C++
Loading...
Searching...
No Matches
Context.hh
1
#pragma once
2
3
#include "
Common.hh
"
4
5
#include <filesystem>
6
#include <functional>
7
#include <optional>
8
9
class
KSystem
;
10
11
namespace
Abstract::Memory {
12
class
MEMList;
13
}
// namespace Abstract::Memory
14
15
namespace
EGG
{
16
class
Archive;
17
class
Heap;
18
class
SceneManager;
19
}
// namespace EGG
20
21
namespace
Field
{
22
class
BoxColManager;
23
class
CollisionDirector;
24
class
CourseColMgr;
25
class
ObjectCollisionBase;
26
class
ObjectDirector;
27
class
ObjectDrivableDirector;
28
class
RailManager;
29
}
// namespace Field
30
31
namespace
Item
{
32
class
ItemDirector;
33
}
// namespace Item
34
35
namespace
Kart
{
36
class
KartObjectManager;
37
class
KartParamFileManager;
38
}
// namespace Kart
39
40
namespace
System
{
41
class
CourseMap;
42
class
KPadDirector;
43
class
KPadHostController;
44
class
RaceConfig;
45
typedef
std::function<void(RaceConfig *,
void
*)> InitCallback;
46
class
RaceInputState;
47
class
RaceManager;
48
class
ResourceManager;
49
class
KSystem
;
50
}
// namespace System
51
52
namespace
Host
{
53
59
class
Context
{
60
public
:
61
Context
();
62
Context
(
const
Context
&c);
63
Context
(
Context
&&c);
64
~Context
();
65
66
Context
&operator=(
const
Context
&rhs);
67
Context
&operator=(
Context
&&rhs);
68
69
bool
operator==(
const
Context
&rhs)
const
;
70
71
static
void
SetActiveContext(
const
Context
&rhs);
72
73
private
:
74
struct
Pointers
{
75
Abstract::Memory::MEMList
m_rootList;
76
Abstract::Memory::MEMList
m_archiveList;
77
Abstract::Memory::MEMList
m_heapList;
78
EGG::Heap
*m_currentHeap;
79
EGG::Heap
*m_heapForCreateScene;
80
Field::BoxColManager
*m_boxColMgr;
81
Field::CollisionDirector
*m_colDir;
82
Field::CourseColMgr
*m_courseColMgr;
83
Field::ObjectDirector
*m_objDir;
84
Field::ObjectDrivableDirector
*m_objDrivableDir;
85
Field::RailManager
*m_railMgr;
86
Item::ItemDirector
*m_itemDir;
87
Kart::KartObjectManager
*m_kartObjMgr;
88
Kart::KartParamFileManager
*m_paramFileMgr;
89
System::CourseMap
*m_courseMap;
90
System::KPadDirector
*m_padDir;
91
System::RaceConfig
*m_raceConfig;
92
System::InitCallback m_onInitCallback;
93
void
*m_onInitCallbackArg;
94
System::RaceManager
*m_raceMgr;
95
System::ResourceManager
*m_resMgr;
96
};
97
98
void
*m_contextMemory;
99
Pointers
m_ptrs;
100
};
101
102
}
// namespace Host
Common.hh
This header houses common data types such as our integral types and enums.
EGG::Heap
A high-level representation of a memory heap for managing dynamic memory allocation....
Definition
Heap.hh:22
Field::BoxColManager
Spatial indexing manager for entities with dynamic collision.
Definition
BoxColManager.hh:73
Field::CollisionDirector
Manages the caching of colliding KCL triangles and exposes queries for collision checks.
Definition
CollisionDirector.hh:21
Field::CourseColMgr
Manager for course KCL interactions.
Definition
CourseColMgr.hh:24
Field::ObjectDirector
Definition
ObjectDirector.hh:19
Field::ObjectDrivableDirector
Definition
ObjectDrivableDirector.hh:17
Field::RailManager
Definition
RailManager.hh:16
Host::Context
Contexts can be used to restore a previous memory state for the current session.
Definition
Context.hh:59
Item::ItemDirector
Definition
ItemDirector.hh:17
KSystem
Base interface for a Kinoko system.
Definition
KSystem.hh:8
Kart::KartObjectManager
Responsible for the lifecycle and calculation of KartObjects.
Definition
KartObjectManager.hh:18
Kart::KartParamFileManager
Abstraction for the process of retrieving kart parameters from files.
Definition
KartParamFileManager.hh:18
System::CourseMap
Contains course metadata, notably the starting position.
Definition
CourseMap.hh:32
System::KPadDirector
The highest level abstraction for controller processing.
Definition
KPadDirector.hh:15
System::RaceConfig
Initializes the player with parameters specified in the provided ghost file.
Definition
RaceConfig.hh:21
System::RaceManager
Manages the timers that track the stages of a race. Also acts as the interface between the physics en...
Definition
RaceManager.hh:25
System::ResourceManager
Highest level abstraction for archive management and subsequent file retrieval.
Definition
ResourceManager.hh:22
EGG
EGG core library.
Definition
Archive.cc:6
Field
Pertains to collision.
Definition
BoxColManager.cc:8
Host
Represents the host application.
Definition
HeapCommon.hh:9
Item
Pertains to item handling.
Definition
ItemDirector.cc:5
Kart
Pertains to kart-related functionality.
Definition
BoxColManager.hh:12
System
High-level handling for generic system operations, such as input reading, race configuration,...
Definition
CourseMap.cc:5
Abstract::Memory::MEMList
Intrusive doubly-linked list. Links are placed within the corresponding object.
Definition
List.hh:14
Host::Context::Pointers
Definition
Context.hh:74
host
Context.hh
Made by
Malleo
. Logo by
vabold
. Website generated by
Doxygen
1.12.0