Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void __thiscall CGameMode::SetCamera(CGameMode *this)
- {
- CGameMode *v1; // esi@1
- signed int v2; // edi@1
- CPlayer *v3; // ecx@1
- int v4; // eax@1
- double v5; // st7@1
- double v6; // st6@1
- int v7; // eax@1
- CPlayer *v8; // ecx@1
- double v9; // st7@1
- double v10; // st6@1
- int v11; // ebx@2
- const char *v12; // eax@3
- double v13; // st7@6
- int v14; // eax@6
- CView *v15; // ecx@8
- double v16; // st7@11
- CView *v17; // eax@18
- CView *v18; // edx@18
- int isExist; // [sp+8h] [bp-8h]@1
- float ViewPointParamList; // [sp+Ch] [bp-4h]@1
- v1 = this;
- v2 = 0;
- v3 = this->m_world->m_player;
- v4 = (int)&v1->m_view->m_cur;
- v5 = v3->baseclass_0.baseclass_0.baseclass_0.baseclass_0.m_pos.z;
- v6 = v3->baseclass_0.baseclass_0.baseclass_0.baseclass_0.m_pos.y;
- *(float *)v4 = v3->baseclass_0.baseclass_0.baseclass_0.baseclass_0.m_pos.x;
- *(float *)(v4 + 4) = v6;
- *(float *)(v4 + 8) = v5;
- v7 = (int)&v1->m_view->m_dest;
- v8 = v1->m_world->m_player;
- v9 = v8->baseclass_0.baseclass_0.baseclass_0.baseclass_0.m_pos.z;
- v10 = v8->baseclass_0.baseclass_0.baseclass_0.baseclass_0.m_pos.y;
- *(float *)v7 = v8->baseclass_0.baseclass_0.baseclass_0.baseclass_0.m_pos.x;
- *(float *)(v7 + 4) = v10;
- *(float *)(v7 + 8) = v9;
- v1->m_hasViewPoint = 0;
- LODWORD(ViewPointParamList) = CSession::GetViewPointParameter(&g_session, v1->m_rswName, &isExist);
- if ( isExist )
- {
- v1->m_hasViewPoint = 1;
- v11 = (int)v1->ViewPointData;
- do
- {
- v12 = *(const char **)(*(_DWORD *)(LODWORD(ViewPointParamList) + 4) + v2 + 4);
- if ( !v12 )
- v12 = _C;
- *(_WORD *)v11 = (signed __int64)atof(v12);
- v2 += 16;
- v11 += 2;
- }
- while ( v2 < 144 );
- }
- v13 = 10.0;
- v14 = CSession::IsIndoorRswName(&g_session, v1->m_rswName) == 0;
- v1->m_canRotateView = v14;
- ViewPointParamList = AVG_DIST;
- if ( v14 )
- {
- ViewPointParamList = FAR_DIST;
- v13 = 20.0;
- LODWORD(g_viewLatitude) = *(_DWORD *)g_outdoorViewLatitude;
- LODWORD(g_viewDistance) = *(_DWORD *)g_outdoorViewDistance;
- }
- else
- {
- v15 = v1->m_view;
- LODWORD(v1->m_fixedLongitude) = 1110704128;
- LODWORD(v15->m_cur.longitude) = 1110704128;
- v1->m_view->m_dest.longitude = v1->m_fixedLongitude;
- LODWORD(g_viewLatitude) = *(_DWORD *)g_indoorViewLatitude;
- LODWORD(g_viewDistance) = *(_DWORD *)g_indoorViewDistance;
- }
- if ( g_viewLatitude < -45.0 - v13 )
- g_viewLatitude = -45.0 - v13;
- v16 = v13 - 45.0;
- if ( g_viewLatitude > v16 )
- g_viewLatitude = v16;
- if ( g_viewDistance < (double)CLOSE_DIST )
- g_viewDistance = CLOSE_DIST;
- if ( g_viewDistance > (double)ViewPointParamList )
- g_viewDistance = ViewPointParamList;
- if ( v1->m_hasViewPoint )
- {
- LODWORD(ViewPointParamList) = v1->ViewPointData[2];
- g_viewDistance = (double)SLODWORD(ViewPointParamList);
- v17 = v1->m_view;
- LODWORD(ViewPointParamList) = v1->ViewPointData[5];
- v17->m_cur.longitude = (double)SLODWORD(ViewPointParamList);
- v18 = v1->m_view;
- LODWORD(ViewPointParamList) = v1->ViewPointData[5];
- v18->m_dest.longitude = (double)SLODWORD(ViewPointParamList);
- isExist = v1->ViewPointData[8];
- g_viewLatitude = (double)isExist;
- }
- v1->m_view->m_cur.latitude = g_viewLatitude;
- v1->m_view->m_dest.latitude = g_viewLatitude;
- v1->m_view->m_cur.distance = g_viewDistance;
- v1->m_view->m_dest.distance = g_viewDistance;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement