Advertisement
Guest User

Untitled

a guest
Mar 29th, 2012
373
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.41 KB | None | 0 0
  1. void __thiscall CGameMode::SetCamera(CGameMode *this)
  2. {
  3.   CGameMode *v1; // esi@1
  4.   signed int v2; // edi@1
  5.   CPlayer *v3; // ecx@1
  6.   int v4; // eax@1
  7.   double v5; // st7@1
  8.   double v6; // st6@1
  9.   int v7; // eax@1
  10.   CPlayer *v8; // ecx@1
  11.   double v9; // st7@1
  12.   double v10; // st6@1
  13.   int v11; // ebx@2
  14.   const char *v12; // eax@3
  15.   double v13; // st7@6
  16.   int v14; // eax@6
  17.   CView *v15; // ecx@8
  18.   double v16; // st7@11
  19.   CView *v17; // eax@18
  20.   CView *v18; // edx@18
  21.   int isExist; // [sp+8h] [bp-8h]@1
  22.   float ViewPointParamList; // [sp+Ch] [bp-4h]@1
  23.  
  24.   v1 = this;
  25.   v2 = 0;
  26.   v3 = this->m_world->m_player;
  27.   v4 = (int)&v1->m_view->m_cur;
  28.   v5 = v3->baseclass_0.baseclass_0.baseclass_0.baseclass_0.m_pos.z;
  29.   v6 = v3->baseclass_0.baseclass_0.baseclass_0.baseclass_0.m_pos.y;
  30.   *(float *)v4 = v3->baseclass_0.baseclass_0.baseclass_0.baseclass_0.m_pos.x;
  31.   *(float *)(v4 + 4) = v6;
  32.   *(float *)(v4 + 8) = v5;
  33.   v7 = (int)&v1->m_view->m_dest;
  34.   v8 = v1->m_world->m_player;
  35.   v9 = v8->baseclass_0.baseclass_0.baseclass_0.baseclass_0.m_pos.z;
  36.   v10 = v8->baseclass_0.baseclass_0.baseclass_0.baseclass_0.m_pos.y;
  37.   *(float *)v7 = v8->baseclass_0.baseclass_0.baseclass_0.baseclass_0.m_pos.x;
  38.   *(float *)(v7 + 4) = v10;
  39.   *(float *)(v7 + 8) = v9;
  40.   v1->m_hasViewPoint = 0;
  41.   LODWORD(ViewPointParamList) = CSession::GetViewPointParameter(&g_session, v1->m_rswName, &isExist);
  42.   if ( isExist )
  43.   {
  44.     v1->m_hasViewPoint = 1;
  45.     v11 = (int)v1->ViewPointData;
  46.     do
  47.     {
  48.       v12 = *(const char **)(*(_DWORD *)(LODWORD(ViewPointParamList) + 4) + v2 + 4);
  49.       if ( !v12 )
  50.         v12 = _C;
  51.       *(_WORD *)v11 = (signed __int64)atof(v12);
  52.       v2 += 16;
  53.       v11 += 2;
  54.     }
  55.     while ( v2 < 144 );
  56.   }
  57.   v13 = 10.0;
  58.   v14 = CSession::IsIndoorRswName(&g_session, v1->m_rswName) == 0;
  59.   v1->m_canRotateView = v14;
  60.   ViewPointParamList = AVG_DIST;
  61.   if ( v14 )
  62.   {
  63.     ViewPointParamList = FAR_DIST;
  64.     v13 = 20.0;
  65.     LODWORD(g_viewLatitude) = *(_DWORD *)g_outdoorViewLatitude;
  66.     LODWORD(g_viewDistance) = *(_DWORD *)g_outdoorViewDistance;
  67.   }
  68.   else
  69.   {
  70.     v15 = v1->m_view;
  71.     LODWORD(v1->m_fixedLongitude) = 1110704128;
  72.     LODWORD(v15->m_cur.longitude) = 1110704128;
  73.     v1->m_view->m_dest.longitude = v1->m_fixedLongitude;
  74.     LODWORD(g_viewLatitude) = *(_DWORD *)g_indoorViewLatitude;
  75.     LODWORD(g_viewDistance) = *(_DWORD *)g_indoorViewDistance;
  76.   }
  77.   if ( g_viewLatitude < -45.0 - v13 )
  78.     g_viewLatitude = -45.0 - v13;
  79.   v16 = v13 - 45.0;
  80.   if ( g_viewLatitude > v16 )
  81.     g_viewLatitude = v16;
  82.   if ( g_viewDistance < (double)CLOSE_DIST )
  83.     g_viewDistance = CLOSE_DIST;
  84.   if ( g_viewDistance > (double)ViewPointParamList )
  85.     g_viewDistance = ViewPointParamList;
  86.   if ( v1->m_hasViewPoint )
  87.   {
  88.     LODWORD(ViewPointParamList) = v1->ViewPointData[2];
  89.     g_viewDistance = (double)SLODWORD(ViewPointParamList);
  90.     v17 = v1->m_view;
  91.     LODWORD(ViewPointParamList) = v1->ViewPointData[5];
  92.     v17->m_cur.longitude = (double)SLODWORD(ViewPointParamList);
  93.     v18 = v1->m_view;
  94.     LODWORD(ViewPointParamList) = v1->ViewPointData[5];
  95.     v18->m_dest.longitude = (double)SLODWORD(ViewPointParamList);
  96.     isExist = v1->ViewPointData[8];
  97.     g_viewLatitude = (double)isExist;
  98.   }
  99.   v1->m_view->m_cur.latitude = g_viewLatitude;
  100.   v1->m_view->m_dest.latitude = g_viewLatitude;
  101.   v1->m_view->m_cur.distance = g_viewDistance;
  102.   v1->m_view->m_dest.distance = g_viewDistance;
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement