mirror of
https://github.com/Jous99/F4MP.git
synced 2026-01-12 23:40:53 +01:00
41 lines
1.2 KiB
C++
41 lines
1.2 KiB
C++
|
|
#include <World.h>
|
||
|
|
#include <Components.h>
|
||
|
|
#include <Actor.h>
|
||
|
|
|
||
|
|
namespace Utils
|
||
|
|
{
|
||
|
|
|
||
|
|
std::optional<uint32_t> GetServerId(entt::entity aEntity) noexcept
|
||
|
|
{
|
||
|
|
const auto* pLocalComponent = World::Get().try_get<LocalComponent>(aEntity);
|
||
|
|
const auto* pRemoteComponent = World::Get().try_get<RemoteComponent>(aEntity);
|
||
|
|
const auto* pObjectComponent = World::Get().try_get<ObjectComponent>(aEntity);
|
||
|
|
|
||
|
|
uint32_t serverId = -1;
|
||
|
|
if (pLocalComponent)
|
||
|
|
serverId = pLocalComponent->Id;
|
||
|
|
else if (pRemoteComponent)
|
||
|
|
serverId = pRemoteComponent->Id;
|
||
|
|
else if (pObjectComponent)
|
||
|
|
serverId = pObjectComponent->Id;
|
||
|
|
else
|
||
|
|
{
|
||
|
|
const auto* pFormIdComponent = World::Get().try_get<FormIdComponent>(aEntity);
|
||
|
|
spdlog::debug("{}: This entity has neither a local or remote component: {:X}, form id: {:X}", __FUNCTION__, to_integral(aEntity), pFormIdComponent ? pFormIdComponent->Id : 0);
|
||
|
|
return std::nullopt;
|
||
|
|
}
|
||
|
|
|
||
|
|
return {serverId};
|
||
|
|
}
|
||
|
|
|
||
|
|
void ShowHudMessage(const TiltedPhoques::String& acMessage)
|
||
|
|
{
|
||
|
|
using TShowHudMessage = void(const char*, const char*, bool);
|
||
|
|
|
||
|
|
POINTER_SKYRIMSE(TShowHudMessage, s_showHudMessage, 52933);
|
||
|
|
|
||
|
|
s_showHudMessage(acMessage.c_str(), nullptr, false);
|
||
|
|
}
|
||
|
|
|
||
|
|
} // namespace Utils
|