mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-11-14 21:45:16 -05:00
219804cbe4
* Initial controller hud ui * Reverted fbdemo changes * Moved config to json and implemented controller config * fix build on linux, gitignore new config file * fix build * Fix compilation and file directory paths * Call save on cvar save * Fixed cvar loading and added deck slots to the config * Changed control deck port 0 to use a physical device by default * Added gyro and rumble & fixed loading errors * Save config on toggle menubar * fix linux build * Fixed drift calculation * Controller config now saves when pressing F1 * Removed ExitGame hook from ImGuiImpl * Moved mappings to a map * Added GetKeyName * untranslate scancodes * Fixed hud layout on keyboard device * Fixed keyboard read on hud * Fixed crash when reloading controllers * Removed ConfigFile and changed file extension * Changed Dummy to Disconnected and fixed filters * Removed function leftover * Changed ControllerHud to InputEditor Co-authored-by: briaguya <briaguya@alice> Co-authored-by: David Chavez <david@dcvz.io>
51 lines
1.1 KiB
C++
51 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#ifdef __cplusplus
|
|
|
|
#include <functional>
|
|
|
|
#include "UltraController.h"
|
|
#include "Controller.h"
|
|
|
|
#define DEFINE_HOOK(name, type) struct name { typedef std::function<type> fn; }
|
|
|
|
namespace ModInternal {
|
|
|
|
template <typename H>
|
|
struct RegisteredHooks {
|
|
inline static std::vector<typename H::fn> functions;
|
|
};
|
|
|
|
template <typename H>
|
|
void RegisterHook(typename H::fn h) {
|
|
RegisteredHooks<H>::functions.push_back(h);
|
|
}
|
|
|
|
template <typename H, typename... Args>
|
|
void ExecuteHooks(Args&&... args) {
|
|
for (auto& fn : RegisteredHooks<H>::functions) {
|
|
fn(std::forward<Args>(args)...);
|
|
}
|
|
}
|
|
|
|
DEFINE_HOOK(ControllerRead, void(OSContPad* cont_pad));
|
|
DEFINE_HOOK(ControllerRawInput, void(Ship::Controller* backend, uint32_t raw));
|
|
DEFINE_HOOK(AudioInit, void());
|
|
DEFINE_HOOK(LoadTexture, void(const char* path, uint8_t** texture));
|
|
DEFINE_HOOK(GfxInit, void());
|
|
DEFINE_HOOK(ExitGame, void());
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
void ModInternal_ExecuteAudioInitHooks();
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|