changeset 78:d56c13146285

Rotate fixed correct
author Ritor1
date Tue, 29 Jan 2013 07:51:31 +0600
parents 7ad8eaa172c5
children 6ad816231528 3f2d5c80e162 41145af69341
files Game.cpp Outdoor.cpp
diffstat 2 files changed, 6 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/Game.cpp	Mon Jan 28 23:46:41 2013 +0600
+++ b/Game.cpp	Tue Jan 29 07:51:31 2013 +0600
@@ -74,14 +74,14 @@
   }
   else
   {
-    if ( pParty->vPosition.x != pParty->vPrevPosition.x | pParty->sRotationY != pParty->sPrevRotationY | pParty->vPosition.y != pParty->vPrevPosition.z 
-		| pParty->sRotationX != pParty->sPrevRotationX | pParty->vPosition.z != pParty->vPrevPosition.y | pParty->sEyelevel != pParty->sPrevEyelevel )
+    if ( pParty->vPosition.x != pParty->vPrevPosition.x | pParty->sRotationY != pParty->sPrevRotationY | pParty->vPosition.y != pParty->vPrevPosition.y 
+		| pParty->sRotationX != pParty->sPrevRotationX | pParty->vPosition.z != pParty->vPrevPosition.z | pParty->sEyelevel != pParty->sPrevEyelevel )
       pParty->uFlags |= 2u;
-    pParty->vPrevPosition.x = pParty->vPosition.x;
-    pParty->vPrevPosition.y = pParty->vPosition.z;
+    pParty->vPrevPosition = pParty->vPosition;
+    pParty->vPrevPosition.y = pParty->vPosition.y;
     //v0 = &pRenderer;
     pParty->sPrevRotationY = pParty->sRotationY;
-    pParty->vPrevPosition.z = pParty->vPosition.y;
+    pParty->vPrevPosition.z = pParty->vPosition.z;
     pParty->sPrevRotationX = pParty->sRotationX;
     pParty->sPrevEyelevel = pParty->sEyelevel;
     pRenderer->BeginSceneD3D();
--- a/Outdoor.cpp	Mon Jan 28 23:46:41 2013 +0600
+++ b/Outdoor.cpp	Tue Jan 29 07:51:31 2013 +0600
@@ -63,7 +63,7 @@
                                           * (signed __int64)pParty->field_18) >> 16);
   v3 = stru_5C6E00->SinCos(pParty->sRotationY - stru_5C6E00->uIntegerHalfPi);
   pIndoorCamera->field_4C = v1;
-  pIndoorCamera->pos.y = pParty->vPosition.y - ((unsigned __int64)(v3 * (signed __int64)pParty->field_18) >> 16);
+  pIndoorCamera->pos.y = pParty->vPosition.y - pParty->field_18 * ((stru_5C6E00->SinCos(pParty->sRotationY)) >> 16);
   pIndoorCamera->pos.z = pParty->vPosition.z + pParty->sEyelevel;
   if ( v2 || pRenderer->pRenderD3D )
   {