diff --git a/Source/Contents/Effects/Primitives/EffectPrim.h b/Source/Contents/Effects/Primitives/EffectPrim.h index cce72adf6..10970037a 100644 --- a/Source/Contents/Effects/Primitives/EffectPrim.h +++ b/Source/Contents/Effects/Primitives/EffectPrim.h @@ -157,7 +157,7 @@ struct CEffectPrim : CRenderObject { bool IsPartyVisible(); unsigned char FollowMasterAndAdvance(); void FollowMasterAndTickSlots(); - void FollowMasterAndTickSlots2(); + bool FollowMasterAndTickSlots2(); void ShiftSegment(); void InitSegment(); void RenderTeiRect(int* rpCnt, short alpha, vector3d vec1, vector3d vec2, vector3d vec3, vector3d vec4, matrix& wtm, short pw, char tn, char f1, unsigned char r, unsigned char g, unsigned char b, float ty1, float ty2, float tx, float tx2, char extra); diff --git a/Source/Contents/Effects/Primitives/EffectPrimitiveMotion.cpp b/Source/Contents/Effects/Primitives/EffectPrimitiveMotion.cpp index 39965fd9d..1a796583e 100644 --- a/Source/Contents/Effects/Primitives/EffectPrimitiveMotion.cpp +++ b/Source/Contents/Effects/Primitives/EffectPrimitiveMotion.cpp @@ -89,8 +89,11 @@ namespace { // INLINED __forceinline void FaceCamera(EffectPrimitiveSlot* slots) { const CView* view = static_cast(g_modeMgr.GetGameMode())->camera; - slots[0].alphaT = static_cast(360 - static_cast(view->camera.yaw)); - slots[1].alphaT = static_cast(360 - static_cast(view->camera.pitch) + 90); + slots[0].alphaT = static_cast(view->camera.yaw); + slots[0].alphaT = 360 - slots[0].alphaT; + + slots[1].alphaT = static_cast(view->camera.pitch); + slots[1].alphaT = 360 - slots[1].alphaT + 90; if (slots[1].alphaT >= 360) { slots[1].alphaT -= 360; @@ -3006,9 +3009,10 @@ __declspec(noinline) void CEffectPrim::FollowMasterAndTickSlots() { // OFFSET: 0x00BE8770 // FUNCTION: fn_19944 -__declspec(noinline) void CEffectPrim::FollowMasterAndTickSlots2() { +__declspec(noinline) bool CEffectPrim::FollowMasterAndTickSlots2() { FollowMaster(*this); TickLiveSlots(this->state.slots); + return true; } // INLINED