docs: add plugin setup guide

This commit is contained in:
2026-05-30 18:33:24 +12:00
parent f3db41c402
commit b61043a3fe
1776 changed files with 122386 additions and 2 deletions
+66
View File
@@ -0,0 +1,66 @@
#pragma once
#include "REX/LOG.h"
namespace F4SE
{
using PluginHandle = std::uint32_t;
class PreLoadInterface;
class LoadInterface;
struct PluginInfo;
class MessagingInterface;
class ScaleformInterface;
class PapyrusInterface;
class SerializationInterface;
class TaskInterface;
class ObjectInterface;
class TrampolineInterface;
struct InitInfo
{
bool log{ true };
#ifndef NDEBUG
REX::ELogLevel logLevel{ REX::ELogLevel::Debug };
#else
REX::ELogLevel logLevel{ REX::ELogLevel::Info };
#endif
const char* logName{ nullptr };
const char* logPattern{ nullptr };
std::size_t logRotate{ 0 };
bool trampoline{ false };
std::size_t trampolineSize{ 0 };
bool hook{ true };
};
void Init(const PreLoadInterface* a_intfc, InitInfo a_info = {}) noexcept;
void Init(const LoadInterface* a_intfc, InitInfo a_info = {}) noexcept;
[[nodiscard]] REL::Version GetF4SEVersion() noexcept;
[[nodiscard]] std::string_view GetPluginName() noexcept;
[[nodiscard]] std::string_view GetPluginAuthor() noexcept;
[[nodiscard]] REL::Version GetPluginVersion() noexcept;
[[nodiscard]] PluginHandle GetPluginHandle() noexcept;
[[nodiscard]] const PluginInfo* GetPluginInfo(std::string_view a_plugin) noexcept;
[[nodiscard]] std::uint32_t GetReleaseIndex() noexcept;
[[nodiscard]] std::string_view GetSaveFolderName() noexcept;
[[nodiscard]] const MessagingInterface* GetMessagingInterface() noexcept;
[[nodiscard]] const ScaleformInterface* GetScaleformInterface() noexcept;
[[nodiscard]] const PapyrusInterface* GetPapyrusInterface() noexcept;
[[nodiscard]] const SerializationInterface* GetSerializationInterface() noexcept;
[[nodiscard]] const TaskInterface* GetTaskInterface() noexcept;
[[nodiscard]] const ObjectInterface* GetObjectInterface() noexcept;
[[nodiscard]] const TrampolineInterface* GetTrampolineInterface() noexcept;
}
namespace F4SE
{
// DEPRECATED
[[deprecated("Use F4SE::Init(..., {}) instead")]] void Init(const LoadInterface* a_intfc, bool a_log) noexcept;
// DEPRECATED
[[deprecated("Use F4SE::Init(..., {}) instead")]] void AllocTrampoline(std::size_t a_size) noexcept;
}