Files
iw3sp-mod/src/Components/Loader.hpp
Rim 9524593d8e
Some checks failed
Build / Build binary (Debug) (push) Has been cancelled
Build / Build binary (Release) (push) Has been cancelled
chore: remove auto-updater & changelog, rename binary to match convention
2025-05-06 09:36:29 -04:00

87 lines
2.0 KiB
C++

#pragma once
namespace Components
{
class Component
{
public:
Component() = default;
virtual ~Component() = default;
virtual void preDestroy() {}
};
class Loader
{
public:
static void Initialize();
static void Uninitialize();
static void PreDestroy();
static void PreDestroyNoPostGame();
static void Register(Component* component);
static bool IsPregame();
static bool IsPostgame();
static bool IsUninitializing();
static bool BinaryCheck();
template <typename T>
static T* GetInstance()
{
for (auto& component : Loader::Components)
{
if (typeid(*component) == typeid(T))
{
return reinterpret_cast<T*>(component);
}
}
return nullptr;
}
private:
static bool Pregame;
static bool Postgame;
static bool Uninitializing;
static std::vector<Component*> Components;
};
}
#include "Modules/Singleton.hpp"
#include "Modules/Config.hpp"
#include "Modules/Flags.hpp"
#include "Modules/Branding.hpp"
#include "Modules/FastFiles.hpp"
#include "Modules/Scheduler.hpp"
#include "Modules/Command.hpp"
#include "Modules/AssetHandler.hpp"
#include "Modules/FileSystem.hpp"
#include "Modules/CommonPatch.hpp"
#include "Modules/Language.hpp"
#include "Modules/Maps.hpp"
#include "Modules/RawMouse.hpp"
#include "Modules/Renderer.hpp"
#include "Modules/D3D9Ex.hpp"
#include "Modules/GSC/GSC.hpp"
#include "Modules/GSC/ScriptExtension.hpp"
#include "Modules/Movement.hpp"
#include "Modules/Weapons.hpp"
#include "Modules/Discord.hpp"
#include "Modules/TextRenderer.hpp"
#include "Modules/UIScript.hpp"
#include "Modules/ServerCommand.hpp"
#include "Modules/LocalizedStrings.hpp"
#include "Modules/Toast.hpp"
#include "Modules/Achievements.hpp"
#include "Modules/Events.hpp"
#include "Modules/Exception.hpp"
// #include "Modules/Updater.hpp"
#include "Modules/Window.hpp"
#include "Modules/Sound.hpp"
#include "Modules/Gamepad.hpp"
#include "Modules/GUI/GUI.hpp"
#include "Modules/GUI/Markdown.hpp"
#include "Modules/Changelog.hpp"
#include "Modules/Paintball.hpp"
#include "Modules/PlayerStats.hpp"