Mercurial > mm7
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 { |