Plugins: enforce declared input ownership and preserve holds through rebuilds

This commit is contained in:
hypnomalice committed 2026-10-25 00:01:46 +01:00
1 parent 4c2b500a99
commit c29cffdf9b
10 files changed
+64 -92

No files matched your search

@@ -19,7 +19,6 @@
#include "Extension/Skater/skater_events.h"
#include "Extension/Skater/outfit_overlay.h"
#include "Extension/Skater/board_pose.h"
#include "Extension/Multiplayer/Remote/native_skater.h"
#include "Extension/Customization/board_material.h"
#include "Engine/Vfs/mod_catalog.h"
#include "Engine/Core/Log/logging.h"
@@ -501,13 +500,7 @@ public:
return thrower_ == plugin ? multiplayer::throwdown_relay_host_status() : std::string{};
}
// ---- board -----------------------------------------------------------------------------------------
void prepare_board() override {
if (board_hooks_ready_) return;
std::string detail;
board_hooks_ready_ = multiplayer::install_entity_hooks(base_, detail);
}
std::optional<std::array<BoardBone, 16>> board_bones() override {
if (!board_hooks_ready_) return std::nullopt;
const auto drawn = board_pose::read();
if (!drawn) return std::nullopt;
std::array<BoardBone, 16> out{};
@@ -1816,7 +1809,6 @@ private:
}
std::uintptr_t base_;
bool board_hooks_ready_{};
std::string capture_owner_, capture_file_; // the plugin whose capture it is, and where it saved to
std::string camera_holder_, follower_, camera_status_;
std::array<float, 16> camera_pose_{};