diff --git a/Code/client/Games/References.cpp b/Code/client/Games/References.cpp index efbc15a13..c143d901c 100644 --- a/Code/client/Games/References.cpp +++ b/Code/client/Games/References.cpp @@ -456,15 +456,6 @@ void TESObjectREFR::Enable() const noexcept s_pEnable(this, true); } -uint32_t TESObjectREFR::GetAnimationVariableInt(BSFixedString* apVariableName) noexcept -{ - using ObjectReference = TESObjectREFR; - - PAPYRUS_FUNCTION(uint32_t, ObjectReference, GetAnimationVariableInt, BSFixedString*); - - return s_pGetAnimationVariableInt(this, apVariableName); -} - // Skyrim: MoveTo() can fail, causing the object to be deleted void TESObjectREFR::MoveTo(TESObjectCELL* apCell, const NiPoint3& acPosition) const noexcept { @@ -855,12 +846,6 @@ void Actor::StopCombat() noexcept s_pStopCombat(this); } -bool Actor::PlayIdle(TESIdleForm* apIdle) noexcept -{ - PAPYRUS_FUNCTION(bool, Actor, PlayIdle, TESIdleForm*); - return s_pPlayIdle(this, apIdle); -} - bool Actor::HasPerk(uint32_t aPerkFormId) const noexcept { return GetPerkRank(aPerkFormId) != 0; diff --git a/Code/client/Games/Skyrim/Actor.cpp b/Code/client/Games/Skyrim/Actor.cpp index 17a11051f..f587dcab1 100644 --- a/Code/client/Games/Skyrim/Actor.cpp +++ b/Code/client/Games/Skyrim/Actor.cpp @@ -580,6 +580,12 @@ void Actor::Reset() noexcept s_pReset(this, 0, nullptr); } +bool Actor::PlayIdle(TESIdleForm* apIdle) noexcept +{ + PAPYRUS_FUNCTION(bool, Actor, PlayIdle, TESIdleForm*); + return s_pPlayIdle(this, apIdle); +} + void Actor::Respawn() noexcept { Resurrect(false); diff --git a/Code/client/Games/Skyrim/TESObjectREFR.cpp b/Code/client/Games/Skyrim/TESObjectREFR.cpp index 5a444405f..eb56bd92f 100644 --- a/Code/client/Games/Skyrim/TESObjectREFR.cpp +++ b/Code/client/Games/Skyrim/TESObjectREFR.cpp @@ -536,6 +536,15 @@ void TESObjectREFR::EnableImpl() noexcept TiltedPhoques::ThisCall(s_enable, this, false); } +uint32_t TESObjectREFR::GetAnimationVariableInt(BSFixedString* apVariableName) noexcept +{ + using ObjectReference = TESObjectREFR; + + PAPYRUS_FUNCTION(uint32_t, ObjectReference, GetAnimationVariableInt, BSFixedString*); + + return s_pGetAnimationVariableInt(this, apVariableName); +} + static thread_local bool s_cancelAnimationWaitEvent = false; bool TESObjectREFR::PlayAnimationAndWait(BSFixedString* apAnimation, BSFixedString* apEventName) noexcept diff --git a/Code/client/Services/Generic/CharacterService.cpp b/Code/client/Services/Generic/CharacterService.cpp index c33734a64..0bb9f705f 100644 --- a/Code/client/Services/Generic/CharacterService.cpp +++ b/Code/client/Services/Generic/CharacterService.cpp @@ -1529,8 +1529,10 @@ void CharacterService::RunRemoteUpdates() noexcept if (pActor->IsDead() != waitingFor3D.SpawnRequest.IsDead) waitingFor3D.SpawnRequest.IsDead ? pActor->Kill() : pActor->Respawn(); +#if TP_SKYRIM64 if (pActor->IsVampireLord()) pActor->FixVampireLordModel(); +#endif toRemove.push_back(entity); diff --git a/Code/client/Services/Generic/PlayerService.cpp b/Code/client/Services/Generic/PlayerService.cpp index 397f586f8..bf4def43b 100644 --- a/Code/client/Services/Generic/PlayerService.cpp +++ b/Code/client/Services/Generic/PlayerService.cpp @@ -359,6 +359,7 @@ void PlayerService::RunLevelUpdates() const noexcept void PlayerService::RunBeastFormDetection() const noexcept { +#if TP_SKYRIM64 static uint32_t lastRaceFormID = 0; static std::chrono::steady_clock::time_point lastSendTimePoint; constexpr auto cDelayBetweenUpdates = 250ms; @@ -380,6 +381,7 @@ void PlayerService::RunBeastFormDetection() const noexcept m_world.GetDispatcher().trigger(BeastFormChangeEvent()); lastRaceFormID = pPlayer->race->formID; +#endif } void PlayerService::ToggleDeathSystem(bool aSet) noexcept