Files
Commonwealth-Online-Public/plugin/lib/commonlibf4/include/RE/B/BSGFxObject.h
T
2026-05-30 18:33:24 +12:00

46 lines
1.5 KiB
C++

#pragma once
#include "RE/U/UsesBSGFXFunctionHandler.h"
#include "Scaleform/G/GFx_Movie.h"
#include "Scaleform/G/GFx_Value.h"
namespace RE
{
class BSGFxObject :
public Scaleform::GFx::Value, // 00
public UsesBSGFXFunctionHandler // 20
{
public:
static constexpr auto RTTI{ RTTI::BSGFxObject };
BSGFxObject(const Scaleform::GFx::Value& a_flashObject) :
Scaleform::GFx::Value(a_flashObject)
{}
BSGFxObject(const Scaleform::GFx::Value& a_flashObject, const char* a_relativePathToMember)
{
AcquireFlashObjectByMemberName(a_flashObject, a_relativePathToMember);
}
BSGFxObject(const Scaleform::GFx::Movie& a_parentMovie, const char* a_pathToObject)
{
AcquireFlashObjectByPath(a_parentMovie, a_pathToObject);
}
Scaleform::GFx::Value* AcquireFlashObjectByMemberName(const Scaleform::GFx::Value& a_flashObject, const char* a_relativePathToMember)
{
using func_t = decltype(&BSGFxObject::AcquireFlashObjectByMemberName);
static REL::Relocation<func_t> func{ ID::BSGFxObject::AcquireFlashObjectByMemberName };
return func(this, a_flashObject, a_relativePathToMember);
}
Scaleform::GFx::Value* AcquireFlashObjectByPath(const Scaleform::GFx::Movie& a_parentMovie, const char* a_absolutePathToMember)
{
using func_t = decltype(&BSGFxObject::AcquireFlashObjectByPath);
static REL::Relocation<func_t> func{ ID::BSGFxObject::AcquireFlashObjectByPath };
return func(this, a_parentMovie, a_absolutePathToMember);
}
};
static_assert(sizeof(BSGFxObject) == 0x38);
}