kiwidog

FB2 Spectator Mode Patch

Jul 12th, 2013
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.31 KB | None | 0 0
  1. /*
  2.     * Name: Spectator Mode fix for Frostbite 2 Engine (Battlefield 3/Need for Speed)
  3.     * Description: Someone automatically adds roll to the spectator camera for some reason
  4.     * this is present in Battlefield 3, 4 Alpha Trial, and Need for Speed
  5.     * Patch by: kiwidog (http://allenthinks.com)
  6.     * Patch for: DICE
  7.  
  8.     * Functions Hooked: fb::GameRenderer::UpdateViewParams
  9. */
  10.  
  11. void __fastcall cfb_GameRenderer_updateViewParams(fb::GameRenderer* thisGameRenderer, void*, fb::GameRenderViewParams* viewParams)
  12. {
  13.     if (viewParams)
  14.     {
  15.         D3DXVECTOR3 mLeft(viewParams->view.m_desc.transform.left.x, 0, viewParams->view.m_desc.transform.left.z);
  16.         D3DXVECTOR3 mForward(viewParams->view.m_desc.transform.forward.x, viewParams->view.m_desc.transform.forward.y, viewParams->view.m_desc.transform.forward.z);
  17.  
  18. #ifdef SPECTATING
  19.         // YO FIX THIS SHIT
  20.         D3DXVECTOR3 fixedUp;
  21.         D3DXVec3Cross(&fixedUp, &mForward, &mLeft);
  22.  
  23.         viewParams->view.m_desc.transform.up.x = fixedUp.x;
  24.         viewParams->view.m_desc.transform.up.y = fixedUp.y;
  25.         viewParams->view.m_desc.transform.up.z = fixedUp.z;
  26.  
  27.         viewParams->view.m_desc.transform.left.x = mLeft.x;
  28.         viewParams->view.m_desc.transform.left.y = mLeft.y;
  29.         viewParams->view.m_desc.transform.left.z = mLeft.z;
  30. #endif
  31.     }
  32.     return fb_GameRenderer_updateViewParams(thisGameRenderer, viewParams);
  33. }
Advertisement
Add Comment
Please, Sign In to add comment