Olympe Engine
2.0
2D Game Engine with ECS Architecture
Loading...
Searching...
No Matches
Source
InputConfigLoader.h
Go to the documentation of this file.
1
/*
2
Olympe Engine V2 - 2026
3
Input Configuration Loader
4
5
Loads input configuration from JSON files including:
6
- Input profiles
7
- Action maps
8
- Device assignments
9
- User overrides
10
*/
11
12
#pragma once
13
14
#include "
InputDevice.h
"
15
#include <string>
16
#include "third_party/nlohmann/json.hpp"
17
18
using
json
=
nlohmann::json
;
19
20
class
InputConfigLoader
{
21
public
:
22
InputConfigLoader
() =
default
;
23
~InputConfigLoader
() =
default
;
24
25
// Singleton access
26
static
InputConfigLoader
&
Get
() {
27
static
InputConfigLoader
instance
;
28
return
instance
;
29
}
30
31
// Load complete input configuration
32
bool
LoadInputConfig
(
const
std::string& path);
33
34
// Load olympe-config.json for engine settings
35
bool
LoadEngineConfig
(
const
std::string& path);
36
37
// Override specific profiles from user config
38
bool
LoadProfileOverride
(
const
std::string& path);
39
40
// Save current configuration
41
bool
SaveInputConfig
(
const
std::string& path);
42
43
private
:
44
// Parsing helpers
45
bool
ParseProfiles
(
const
json
&
j
);
46
bool
ParseActionMaps
(
const
json
&
j
);
47
bool
ParseGlobalSettings
(
const
json
&
j
);
48
bool
ParseDefaultAssignments
(
const
json
&
j
);
49
50
InputBinding
ParseInputBinding
(
const
json
&
j
);
51
SDL_Scancode
ParseKeyName
(
const
std::string&
keyName
);
52
53
// Logging
54
int
m_logLevel
= 2;
// 0=error, 1=warning, 2=info, 3=debug
55
};
56
json
nlohmann::json json
Definition
BehaviorTree.cpp:25
GetComponentTypeID_Static
ComponentTypeID GetComponentTypeID_Static()
Definition
ECS_Entity.h:56
InputDevice.h
InputConfigLoader
Definition
InputConfigLoader.h:20
InputConfigLoader::~InputConfigLoader
~InputConfigLoader()=default
InputConfigLoader::ParseKeyName
SDL_Scancode ParseKeyName(const std::string &keyName)
Definition
InputConfigLoader.cpp:60
InputConfigLoader::Get
static InputConfigLoader & Get()
Definition
InputConfigLoader.h:26
InputConfigLoader::SaveInputConfig
bool SaveInputConfig(const std::string &path)
Definition
InputConfigLoader.cpp:419
InputConfigLoader::ParseDefaultAssignments
bool ParseDefaultAssignments(const json &j)
Definition
InputConfigLoader.cpp:332
InputConfigLoader::ParseInputBinding
InputBinding ParseInputBinding(const json &j)
Definition
InputConfigLoader.cpp:223
InputConfigLoader::ParseGlobalSettings
bool ParseGlobalSettings(const json &j)
Definition
InputConfigLoader.cpp:352
InputConfigLoader::ParseProfiles
bool ParseProfiles(const json &j)
Definition
InputConfigLoader.cpp:162
InputConfigLoader::LoadInputConfig
bool LoadInputConfig(const std::string &path)
Definition
InputConfigLoader.cpp:115
InputConfigLoader::LoadProfileOverride
bool LoadProfileOverride(const std::string &path)
Definition
InputConfigLoader.cpp:367
InputConfigLoader::InputConfigLoader
InputConfigLoader()=default
InputConfigLoader::ParseActionMaps
bool ParseActionMaps(const json &j)
Definition
InputConfigLoader.cpp:289
InputConfigLoader::m_logLevel
int m_logLevel
Definition
InputConfigLoader.h:54
InputConfigLoader::LoadEngineConfig
bool LoadEngineConfig(const std::string &path)
Definition
InputConfigLoader.cpp:76
nlohmann::json
nlohmann::json json
Definition
ParameterSchema.h:23
InputBinding
Definition
InputDevice.h:55
Generated on Tue Feb 17 2026 13:49:10 for Olympe Engine by
1.9.8