comparison mm7_3.cpp @ 1427:1987f2cca08f

m
author Ritor1
date Thu, 01 Aug 2013 09:26:05 +0600
parents 5930342f092b
children 6de9c1316852
comparison
equal deleted inserted replaced
1424:5930342f092b 1427:1987f2cca08f
5359 int v1; // eax@2 5359 int v1; // eax@2
5360 int v8; // eax@4 5360 int v8; // eax@4
5361 int v9; // eax@4 5361 int v9; // eax@4
5362 int v10; // ebx@4 5362 int v10; // ebx@4
5363 signed __int64 v11; // qax@6 5363 signed __int64 v11; // qax@6
5364 //double v12; // st7@6
5365 int v13; // edi@6 5364 int v13; // edi@6
5366 int v14; // ecx@6 5365 int v14; // ecx@6
5367 //int v15; // eax@8
5368 int v16; // eax@12 5366 int v16; // eax@12
5369 signed __int64 v17; // qtt@13 5367 //signed __int64 v17; // qtt@13
5370 signed int pShading; // ecx@13 5368 signed int pShading; // ecx@13
5371 struct Polygon pSky; // [sp+14h] [bp-150h]@1 5369 struct Polygon pSkyPolygon; // [sp+14h] [bp-150h]@1
5372 float v28; // [sp+12Ch] [bp-38h]@2 5370 float v28; // [sp+12Ch] [bp-38h]@2
5373 int v29; // [sp+130h] [bp-34h]@4 5371 int v29; // [sp+130h] [bp-34h]@4
5374 int v30; // [sp+134h] [bp-30h]@1 5372 int v30; // [sp+134h] [bp-30h]@1
5375 int v32; // [sp+13Ch] [bp-28h]@6 5373 int v32; // [sp+13Ch] [bp-28h]@6
5376 int v33; // [sp+140h] [bp-24h]@2 5374 int v33; // [sp+140h] [bp-24h]@2
5377 int v34; // [sp+144h] [bp-20h]@1 5375 int v34; // [sp+144h] [bp-20h]@1
5378 int v35; // [sp+148h] [bp-1Ch]@4 5376 int v35; // [sp+148h] [bp-1Ch]@4
5379 int v36; // [sp+14Ch] [bp-18h]@2 5377 int screen_center_x; // [sp+14Ch] [bp-18h]@2
5380 int v37; // [sp+154h] [bp-10h]@8 5378 int v37; // [sp+154h] [bp-10h]@8
5381 int v38; // [sp+158h] [bp-Ch]@1 5379 int v38; // [sp+158h] [bp-Ch]@1
5382 int v39; // [sp+15Ch] [bp-8h]@4 5380 int v39; // [sp+15Ch] [bp-8h]@4
5383 int v40; // [sp+160h] [bp-4h]@7 5381 //int v40; // [sp+160h] [bp-4h]@7
5384 5382
5385 extern bool new_sky; 5383 extern bool new_sky;
5386 if (new_sky) 5384 if (new_sky)
5387 { 5385 {
5388 if (DrawSkyD3D_Skybox()) 5386 if (DrawSkyD3D_Skybox())
5389 return; 5387 return;
5390 } 5388 }
5391 5389
5392 v30 = ((double)(pOutdoorCamera->int_fov_rad * pIndoorCamera->pos.z) 5390 v30 = ((double)(pOutdoorCamera->int_fov_rad * pIndoorCamera->pos.z)
5393 / ((double)pOutdoorCamera->int_fov_rad + 8192.0) + pViewport->uScreenCenterY); 5391 / ((double)pOutdoorCamera->int_fov_rad + 8192.0) + pViewport->uScreenCenterY);//184 изменяется при подъёме на высоту
5394 v38 = pViewport->uScreenCenterY - pOutdoorCamera->int_fov_rad / 5392 v38 = pViewport->uScreenCenterY - pOutdoorCamera->int_fov_rad /
5395 (pOutdoorCamera->shading_dist_mist * cos(pIndoorCamera->sRotationX * 0.003066406352445483) + 0.0000001000000011686097) * 5393 (pOutdoorCamera->shading_dist_mist * cos(pIndoorCamera->sRotationX * 0.003066406352445483) + 0.0000001000000011686097) *
5396 (pOutdoorCamera->shading_dist_mist * -sin(pIndoorCamera->sRotationX * 0.003066406352445483) - pIndoorCamera->pos.z); 5394 (pOutdoorCamera->shading_dist_mist * -sin(pIndoorCamera->sRotationX * 0.003066406352445483) - pIndoorCamera->pos.z);//61 / 184 / 310 изменяется при наклоне камеры
5397 5395
5398 pSky._48607B(&stru_8019C8); 5396 pSkyPolygon.Create_48607B(&stru_8019C8);
5399 pSky.ptr_38->sky_48694B(); 5397 pSkyPolygon.ptr_38->Inverse_sky_48694B();//maybe creating skydome(возможно создание купола неба)
5400 pSky.uTileBitmapID = pOutdoor->uSky_TextureID;//номер текстуры 5398 pSkyPolygon.uTileBitmapID = pOutdoor->uSky_TextureID;//номер текстуры
5401 pSky.pTexture = (Texture *)(pOutdoor->uSky_TextureID != -1 ? &pBitmaps_LOD->pTextures[pOutdoor->uSky_TextureID] : 0);//текстура неба 5399 pSkyPolygon.pTexture = (Texture *)(pOutdoor->uSky_TextureID != -1 ? &pBitmaps_LOD->pTextures[pOutdoor->uSky_TextureID] : 0);//текстура неба
5402 if (pOutdoor->uSky_TextureID == -1) 5400 if (pOutdoor->uSky_TextureID == -1)
5403 return; 5401 return;
5404 5402
5405 pSky.dimming_level = 0;//затемнение 5403 pSkyPolygon.dimming_level = 0;//затемнение
5406 pSky.uNumVertices = 4;//количество вершин 5404 pSkyPolygon.uNumVertices = 4;//количество вершин
5407 5405
5408 //centering(центруем)--------------------------------------------------------------- 5406 //centering(центруем)--наклон камеры ----------------------------------------//
5409 pSky.v_18.x = -stru_5C6E00->Sin(pIndoorCamera->sRotationX + 16);//-3216 5407 pSkyPolygon.v_18.x = -stru_5C6E00->Sin(pIndoorCamera->sRotationX + 16);//-3216, вверх: -28020, вниз: 22078
5410 pSky.v_18.y = 0; 5408 pSkyPolygon.v_18.y = 0;
5411 pSky.v_18.z = -stru_5C6E00->Cos(pIndoorCamera->sRotationX + 16);//-65457 5409 pSkyPolygon.v_18.z = -stru_5C6E00->Cos(pIndoorCamera->sRotationX + 16);//-65457, вверх: -59244, вниз: -61705
5412 //--------------------------------------------------------------------------- 5410 //---------------------------------------------------------------------------//
5413 5411
5414 pSky.field_24 = 0x2000000; 5412 pSkyPolygon.field_24 = 0x2000000;
5415 5413
5416 pSky.sTextureDeltaU = 224 * pMiscTimer->uTotalGameTimeElapsed; 5414 pSkyPolygon.sTextureDeltaU = 224 * pMiscTimer->uTotalGameTimeElapsed;//60928
5417 pSky.sTextureDeltaV = 224 * pMiscTimer->uTotalGameTimeElapsed; 5415 pSkyPolygon.sTextureDeltaV = 224 * pMiscTimer->uTotalGameTimeElapsed;
5418 5416
5419 //sky position(положение неба)---------------------------------------------- 5417 //sky position(положение неба)----------------------------------------------
5420 array_50AC10[0].vWorldViewProjX = pViewport->uViewportTL_X; 5418 // X
5421 array_50AC10[0].vWorldViewProjY = pViewport->uViewportTL_Y; 5419 // 0._____________________________.3
5422 5420 // |8,8 468,8 |
5423 array_50AC10[1].vWorldViewProjX = pViewport->uViewportTL_X; 5421 // | |
5424 array_50AC10[1].vWorldViewProjY = v38; 5422 // | |
5425 5423 // Y| |
5426 array_50AC10[2].vWorldViewProjX = pViewport->uViewportBR_X; 5424 // | |
5427 array_50AC10[2].vWorldViewProjY = v38; 5425 // |8,? 468,? |
5428 5426 // 1._____________________________.2
5429 array_50AC10[3].vWorldViewProjX = pViewport->uViewportBR_X; 5427 //
5430 array_50AC10[3].vWorldViewProjY = pViewport->uViewportTL_Y; 5428
5429 array_50AC10[0].vWorldViewProjX = pViewport->uViewportTL_X;//8
5430 array_50AC10[0].vWorldViewProjY = pViewport->uViewportTL_Y;//8
5431
5432 array_50AC10[1].vWorldViewProjX = pViewport->uViewportTL_X;//8
5433 array_50AC10[1].vWorldViewProjY = v38;//61 / 184 / 310
5434
5435 array_50AC10[2].vWorldViewProjX = pViewport->uViewportBR_X;//468
5436 array_50AC10[2].vWorldViewProjY = v38;//61 / 184 / 310
5437
5438 array_50AC10[3].vWorldViewProjX = pViewport->uViewportBR_X;//468
5439 array_50AC10[3].vWorldViewProjY = pViewport->uViewportTL_Y;//8
5431 //-------------------------------------------------------------------------- 5440 //--------------------------------------------------------------------------
5432 5441
5433 //pParty->sRotationY / 2048.0f 5442 //pParty->sRotationY / 2048.0f
5434 // move sky(двидение неба)--------------include----------------------------- 5443 // move sky(движение неба)--------------include(вставка)---------------------
5435 float t = (GetTickCount() % 96000) / 96000.0f; 5444 float t = (GetTickCount() % 96000) / 96000.0f;
5436 array_50AC10[0].u = t - pParty->sRotationY / 1024.0f; 5445 array_50AC10[0].u = t - pParty->sRotationY / 1024.0f;
5437 array_50AC10[0].v = t - pParty->sRotationX / 512.0f; 5446 array_50AC10[0].v = t - pParty->sRotationX / 512.0f;
5438 5447
5439 array_50AC10[1].u = t - pParty->sRotationY / 1024.0f; 5448 array_50AC10[1].u = t - pParty->sRotationY / 1024.0f;
5442 array_50AC10[2].u = 1 + t - pParty->sRotationY / 1024.0f; 5451 array_50AC10[2].u = 1 + t - pParty->sRotationY / 1024.0f;
5443 array_50AC10[2].v = 1 + t - pParty->sRotationX / 512.0f; 5452 array_50AC10[2].v = 1 + t - pParty->sRotationX / 512.0f;
5444 5453
5445 array_50AC10[3].u = 1 + t - pParty->sRotationY / 1024.0f; 5454 array_50AC10[3].u = 1 + t - pParty->sRotationY / 1024.0f;
5446 array_50AC10[3].v = t - pParty->sRotationX / 512.0f; 5455 array_50AC10[3].v = t - pParty->sRotationX / 512.0f;
5456 //--------------------------------------------------------------------------//
5457
5458 //rotate skydome(вращение купола неба)--------------------------------------
5459 // В игре принята своя система измерения углов. Полный угол в 2П радиан соответствует 65536 еденицам. Значению угла 0 соответствует
5460 // направление на восток, значению 16384(0х4000) - на север и т.д..
5461
5462 //нахождение вектора взгляда------------------------------------------------
5463 //положение камеры----------------------------------------------------------
5464 screen_center_x = (pViewport->uViewportBR_X - pViewport->uViewportTL_X) / 2;//центр экрана по X = 230
5465 v33 = 65536 / (signed int)(screen_center_x / tan(0.6457717418670654) + 0.5);//360 : (расстояние от экрана до камеры в пикселях) = 214
5447 //-------------------------------------------------------------------------- 5466 //--------------------------------------------------------------------------
5448 5467
5449 //rotate skydome(вращение купола неба)-------------------------------------- 5468 for (uint i = 0; i < pSkyPolygon.uNumVertices; ++i)
5450 v36 = (pViewport->uViewportBR_X - pViewport->uViewportTL_X) * 0.5;//центр экрана 230
5451 v33 = 65536 / (signed int)(v36 / tan(0.6457717418670654) + 0.5);//214
5452
5453 for (uint i = 0; i < pSky.uNumVertices; ++i)
5454 { 5469 {
5455 v29 = floorf(array_50AC10[i].vWorldViewProjY + 0.5f);//8 5470 v29 = floorf(array_50AC10[i].vWorldViewProjY + 0.5f);//8
5456 v39 = (unsigned __int64)(pSky.ptr_38->field_14 * v33 * (v30 - v29)) / 65536;//0 5471 v39 = (unsigned __int64)(pSkyPolygon.ptr_38->field_14 * v33 * (v30 - v29)) / 65536;//0
5457 v8 = v39 + pSky.ptr_38->field_C;//0 5472 v8 = v39 + pSkyPolygon.ptr_38->field_C;//0
5458 5473
5459 v39 = (unsigned __int64)(pSky.ptr_38->field_20 * v33 * (v30 - v29)) / 65536;//0 5474 v39 = (unsigned __int64)(pSkyPolygon.ptr_38->field_20 * v33 * (v30 - v29)) / 65536;//0
5460 v36 = v39 + pSky.ptr_38->field_18;//65536 5475 screen_center_x = v39 + pSkyPolygon.ptr_38->field_18;//65536
5461 5476
5462 v9 = (unsigned __int64)(pSky.v_18.z * v33 * (v30 - v29)) / 65536;//27917 5477 v9 = (unsigned __int64)(pSkyPolygon.v_18.z * v33 * (v30 - v29)) / 65536;//27917
5463 v10 = pSky.v_18.x + v9;//24701 5478 v10 = pSkyPolygon.v_18.x + v9;//24701
5464 v39 = pSky.v_18.x + v9;//24701 5479 v39 = pSkyPolygon.v_18.x + v9;//24701
5465 if ( pSky.v_18.x + v9 > 0 ) 5480 if ( pSkyPolygon.v_18.x + v9 > 0 )
5466 { 5481 {
5467 v10 = 0; 5482 v10 = 0;
5468 v39 = 0; 5483 v39 = 0;
5469 } 5484 }
5470 //v11 = (signed __int64)array_50AC10[i].vWorldViewProjX; 5485 //v11 = (signed __int64)array_50AC10[i].vWorldViewProjX;
5471 v38 = v10; 5486 v38 = v10;
5472 //v12 = array_50AC10[i].vWorldViewProjY - 1.0; 5487 //v12 = array_50AC10[i].vWorldViewProjY - 1.0;
5473 v13 = v33 * (pViewport->uScreenCenterX - (signed __int64)array_50AC10[i].vWorldViewProjX); 5488 v13 = v33 * (pViewport->uScreenCenterX - (signed __int64)array_50AC10[i].vWorldViewProjX);
5474 v34 = -pSky.field_24; 5489 v34 = -pSkyPolygon.field_24;
5475 v32 = (signed __int64)array_50AC10[i].vWorldViewProjY - 1.0; 5490 v32 = (signed __int64)array_50AC10[i].vWorldViewProjY - 1.0;
5476 v14 = v33 * (v30 - v32); 5491 v14 = v33 * (v30 - v32);
5477 5492
5478 while ( 1 ) 5493 while ( 1 )
5479 { 5494 {
5480 v40 = v14; 5495 //v40 = v14;
5481 if ( !v10 ) 5496 if ( !v10 )
5482 { 5497 {
5483 v37 = pSky.v_18.z; 5498 v37 = pSkyPolygon.v_18.z;
5484 v16 = (unsigned __int64)(pSky.v_18.z * (signed __int64)v14) >> 16; 5499 v16 = (unsigned __int64)(pSkyPolygon.v_18.z * (signed __int64)v14) >> 16;
5485 --v32; 5500 --v32;
5486 v14 += v33; 5501 v14 += v33;
5487 v10 = pSky.v_18.x + v16; 5502 v10 = pSkyPolygon.v_18.x + v16;
5488 v39 = pSky.v_18.x + v16; 5503 v39 = pSkyPolygon.v_18.x + v16;
5489 v38 = pSky.v_18.x + v16; 5504 v38 = pSkyPolygon.v_18.x + v16;
5490 break; 5505 break;
5491 } 5506 }
5492 v37 = abs(v34 >> 14); 5507 v37 = abs(v34 >> 14);//2048
5493 if ( abs(v34 >> 14) <= abs(v10) || v32 <= pViewport->uViewportTL_Y ) 5508 if ( abs(v34 >> 14) <= abs(v10) || v32 <= pViewport->uViewportTL_Y )
5494 { 5509 {
5495 if ( v39 <= 0 ) 5510 if ( v39 <= 0 )
5496 break; 5511 break;
5497 } 5512 }
5498 v14 = v40; 5513 //v14 = v40;
5499 v37 = pSky.v_18.z; 5514 v37 = pSkyPolygon.v_18.z;
5500 v16 = (unsigned __int64)(pSky.v_18.z * v14) >> 16; 5515 v16 = (unsigned __int64)(pSkyPolygon.v_18.z * v14) >> 16;
5501 --v32; 5516 --v32;
5502 v14 += v33; 5517 v14 += v33;
5503 v10 = pSky.v_18.x + v16; 5518 v10 = pSkyPolygon.v_18.x + v16;
5504 v39 = pSky.v_18.x + v16; 5519 v39 = pSkyPolygon.v_18.x + v16;
5505 v38 = pSky.v_18.x + v16; 5520 v38 = pSkyPolygon.v_18.x + v16;
5506 break; 5521 break;
5507 } 5522 }
5508 5523
5509 LODWORD(v17) = v34 << 16; 5524 pShading = fixpoint_div(v34, v38);
5510 HIDWORD(v17) = v34 >> 16;
5511 pShading = v17 / v38;
5512 if ( pShading < 0 ) 5525 if ( pShading < 0 )
5513 pShading = pOutdoorCamera->shading_dist_mist; 5526 pShading = pOutdoorCamera->shading_dist_mist;
5514 5527
5515 v37 += ((unsigned __int64)(pSky.ptr_38->field_10 * v13) >> 16); 5528 v37 += ((unsigned __int64)(pSkyPolygon.ptr_38->field_10 * v13) >> 16);
5516 v36 += ((unsigned __int64)(pSky.ptr_38->field_1C * v13) >> 16); 5529 screen_center_x += ((unsigned __int64)(pSkyPolygon.ptr_38->field_1C * v13) >> 16);
5517 v35 = 224 * pMiscTimer->uTotalGameTimeElapsed + fixpoint_sub0(v37, pShading) / 8; 5530 v35 = 224 * pMiscTimer->uTotalGameTimeElapsed + fixpoint_sub0(v37, pShading) / 8;
5518 v36 = 224 * pMiscTimer->uTotalGameTimeElapsed + fixpoint_sub0(v36, pShading) / 8; 5531 screen_center_x = 224 * pMiscTimer->uTotalGameTimeElapsed + fixpoint_sub0(screen_center_x, pShading) / 8;
5519 5532
5520 //array_50AC10[i].vWorldViewPosition.x = pOutdoorCamera->shading_dist_mist; 5533 //array_50AC10[i].vWorldViewPosition.x = pOutdoorCamera->shading_dist_mist;
5521 //array_50AC10[i].vWorldPosition.x = v36 / (pSky.pTexture->uTextureHeight * 65536.0); 5534 //array_50AC10[i].vWorldPosition.x = v36 / (pSky.pTexture->uTextureHeight * 65536.0);
5522 //array_50AC10[i].vWorldPosition.y = 1.0 / (pOutdoorCamera->shading_dist_mist >> 16); 5535 //array_50AC10[i].vWorldPosition.y = 1.0 / (pOutdoorCamera->shading_dist_mist >> 16);
5523 //array_50AC10[i].vWorldPosition.z = v35 / (pSky.pTexture->uTextureWidth * 65536.0); 5536 //array_50AC10[i].vWorldPosition.z = v35 / (pSky.pTexture->uTextureWidth * 65536.0);
5524 //array_50AC10[i]._rhw = 1.0f / (v18 >> 16); 5537 //array_50AC10[i]._rhw = 1.0f / (pShading >> 16);
5525 //array_50AC10[i].u = (double)v35 / (65536.0 * pSky.pTexture->uTextureWidth); 5538 //array_50AC10[i].u = (double)v35 / (65536.0 * pSkyPolygon.pTexture->uTextureWidth);
5526 //array_50AC10[i].v = (double)v36 / (65536.0 * pSky.pTexture->uTextureHeight); 5539 //array_50AC10[i].v = (double)screen_center_x / (65536.0 * pSkyPolygon.pTexture->uTextureHeight);
5527 //----------------------------------------------------------------------------------------- 5540 //-----------------------------------------------------------------------------------------
5528 5541
5529 array_50AC10[i]._rhw = 1.0f; 5542 array_50AC10[i]._rhw = 1.0f;
5530 } 5543 }
5531 //if ( i == _this.uNumVertices - 1 ) 5544 //if ( i == _this.uNumVertices - 1 )
5532 //{ 5545 //{
5533 pRenderer->DrawSkyPolygon(pSky.uNumVertices, &pSky, pBitmaps_LOD->pHardwareTextures[pSky.uTileBitmapID]); 5546 pRenderer->DrawSkyPolygon(pSkyPolygon.uNumVertices, &pSkyPolygon, pBitmaps_LOD->pHardwareTextures[pSkyPolygon.uTileBitmapID]);
5534 5547
5535 array_50AC10[0].vWorldViewProjY = v38; 5548 array_50AC10[0].vWorldViewProjY = v38;
5536 array_50AC10[1].vWorldViewProjY = array_50AC10[1].vWorldViewProjY + 30.0; 5549 array_50AC10[1].vWorldViewProjY = array_50AC10[1].vWorldViewProjY + 30.0;
5537 array_50AC10[2].vWorldViewProjY = array_50AC10[2].vWorldViewProjY + 30.0; 5550 array_50AC10[2].vWorldViewProjY = array_50AC10[2].vWorldViewProjY + 30.0;
5538 array_50AC10[3].vWorldViewProjY = v38; 5551 array_50AC10[3].vWorldViewProjY = v38;
5539 5552
5540 pRenderer->DrawSkyPolygon(pSky.uNumVertices, &pSky, pBitmaps_LOD->pHardwareTextures[pSky.uTileBitmapID]); 5553 pRenderer->DrawSkyPolygon(pSkyPolygon.uNumVertices, &pSkyPolygon, pBitmaps_LOD->pHardwareTextures[pSkyPolygon.uTileBitmapID]);
5541 //} 5554 //}
5542 } 5555 }
5543 5556
5544 //----- (0047A384) -------------------------------------------------------- 5557 //----- (0047A384) --------------------------------------------------------
5545 void ODM_LoadAndInitialize(const char *pLevelFilename, OutdoorCamera *thisa) 5558 void ODM_LoadAndInitialize(const char *pLevelFilename, OutdoorCamera *thisa)
6193 if ( v->y > 1000 ) 6206 if ( v->y > 1000 )
6194 v->y = 0; 6207 v->y = 0;
6195 } 6208 }
6196 6209
6197 //----- (0048607B) -------------------------------------------------------- 6210 //----- (0048607B) --------------------------------------------------------
6198 void Polygon::_48607B(stru149 *a2) 6211 void Polygon::Create_48607B(stru149 *a2)
6199 { 6212 {
6200 this->pTexture = 0; 6213 this->pTexture = 0;
6201 this->ptr_38 = a2; 6214 this->ptr_38 = a2;
6202 } 6215 }
6203 6216
6335 this->field_28 = v29 + result + ((unsigned __int64)(this->field_20 * (signed __int64)this->field_8) >> 16); 6348 this->field_28 = v29 + result + ((unsigned __int64)(this->field_20 * (signed __int64)this->field_8) >> 16);
6336 return result; 6349 return result;
6337 } 6350 }
6338 6351
6339 //----- (0048694B) -------------------------------------------------------- 6352 //----- (0048694B) --------------------------------------------------------
6340 int stru149::sky_48694B() 6353 void stru149::Inverse_sky_48694B()
6341 { 6354 {
6342 int v1; // eax@1
6343 int v2; // ST04_4@1
6344 int v3; // ST00_4@1
6345 int v4; // eax@1
6346 int v5; // ST0C_4@1
6347 int result; // eax@1
6348
6349 v1 = this->field_C;
6350 this->field_18 = -this->field_18; 6355 this->field_18 = -this->field_18;
6351 this->field_1C = -this->field_1C; 6356 this->field_1C = -this->field_1C;
6352 this->field_20 = -this->field_20; 6357 this->field_20 = -this->field_20;
6353 v2 = (unsigned __int64)(v1 * (signed __int64)this->field_0_party_dir_x) >> 16; 6358 this->field_24 = ((unsigned __int64)(this->field_C * (signed __int64)this->field_0_party_dir_x) >> 16)
6354 v3 = this->field_18;
6355 v4 = this->field_0_party_dir_x;
6356 this->field_24 = v2
6357 + ((unsigned __int64)(this->field_10 * (signed __int64)this->field_4_party_dir_y) >> 16) 6359 + ((unsigned __int64)(this->field_10 * (signed __int64)this->field_4_party_dir_y) >> 16)
6358 + ((unsigned __int64)(this->field_14 * (signed __int64)this->field_8) >> 16); 6360 + ((unsigned __int64)(this->field_14 * (signed __int64)this->field_8) >> 16);
6359 v5 = (unsigned __int64)(v3 * (signed __int64)v4) >> 16; 6361 this->field_28 = ((unsigned __int64)(this->field_18 * (signed __int64)this->field_0_party_dir_x) >> 16)
6360 result = (unsigned __int64)(this->field_1C * (signed __int64)this->field_4_party_dir_y) >> 16; 6362 + ((unsigned __int64)(this->field_1C * (signed __int64)this->field_4_party_dir_y) >> 16)
6361 this->field_28 = v5 + result + ((unsigned __int64)(this->field_20 * (signed __int64)this->field_8) >> 16); 6363 + ((unsigned __int64)(this->field_20 * (signed __int64)this->field_8) >> 16);
6362 return result;
6363 } 6364 }
6364 6365
6365 //----- (0044100D) -------------------------------------------------------- 6366 //----- (0044100D) --------------------------------------------------------
6366 bool sub_44100D() 6367 bool sub_44100D()
6367 { 6368 {