comparison mm7_3.cpp @ 770:02bfc82f429c

Слияние
author Ritor1
date Sat, 23 Mar 2013 09:26:07 +0600
parents 2f40f4b35ce0 e0914a9bc424
children fbae3100f991
comparison
equal deleted inserted replaced
769:2f40f4b35ce0 770:02bfc82f429c
6822 6822
6823 v4 = a2; 6823 v4 = a2;
6824 v18 = a2; 6824 v18 = a2;
6825 if ( pParty->armageddon_timer ) 6825 if ( pParty->armageddon_timer )
6826 return PaletteManager::Get(a2); 6826 return PaletteManager::Get(a2);
6827 if ( !pWeather->field_FA0 ) 6827 if ( !pWeather->bNight )
6828 { 6828 {
6829 if ( day_attrib & 1 ) 6829 if ( day_attrib & 1 )
6830 { 6830 {
6831 v14 = day_fogrange_1 << 16; 6831 v14 = day_fogrange_1 << 16;
6832 if ( a3 >= day_fogrange_1 << 16 ) 6832 if ( a3 >= day_fogrange_1 << 16 )
6871 if ( v10 > pOutdoor->max_terrain_dimming_level ) 6871 if ( v10 > pOutdoor->max_terrain_dimming_level )
6872 v10 = pOutdoor->max_terrain_dimming_level; 6872 v10 = pOutdoor->max_terrain_dimming_level;
6873 return PaletteManager::Get_Dark_or_Red_LUT(v4, v10, 1); 6873 return PaletteManager::Get_Dark_or_Red_LUT(v4, v10, 1);
6874 } 6874 }
6875 v6 = 0; 6875 v6 = 0;
6876 if ( pWeather->field_FA0 == 1 ) 6876 if (pWeather->bNight)
6877 { 6877 {
6878 v8 = 67108864; 6878 v8 = 67108864;
6879 if ( (signed __int64)pParty->pPartyBuffs[16].uExpireTime > 0 ) 6879 if ( (signed __int64)pParty->pPartyBuffs[16].uExpireTime > 0 )
6880 v8 = pParty->pPartyBuffs[16].uPower << 26; 6880 v8 = pParty->pPartyBuffs[16].uPower << 26;
6881 if ( a3 <= v8 ) 6881 if ( a3 <= v8 )
6952 if ( a1 < 0 ) 6952 if ( a1 < 0 )
6953 { 6953 {
6954 v26 = v8->field_34 << 16; 6954 v26 = v8->field_34 << 16;
6955 v9 = v8->field_34 << 16; 6955 v9 = v8->field_34 << 16;
6956 } 6956 }
6957 v10 = pWeather->field_FA0; 6957 v10 = pWeather->bNight;
6958 if ( bUnderwater == 1 ) 6958 if ( bUnderwater == 1 )
6959 v10 = 0; 6959 v10 = 0;
6960 if ( !v10 ) 6960 if ( !v10 )
6961 { 6961 {
6962 if ( !(day_attrib & 1) && !bUnderwater ) 6962 if ( !(day_attrib & 1) && !bUnderwater )
7238 } 7238 }
7239 else 7239 else
7240 { 7240 {
7241 if ( day_attrib & 1 ) 7241 if ( day_attrib & 1 )
7242 { 7242 {
7243 if ( pWeather->field_FA0 ) 7243 if ( pWeather->bNight )
7244 { 7244 {
7245 v2 = -(pWeather->field_FA0 != 1); 7245 __debugbreak(); // decompilation can be inaccurate, please send savegame to Nomad
7246 v2 = -(pWeather->bNight != 1);
7246 result = (v2 & 0xE0E0E1) - 0xE0E0E1; 7247 result = (v2 & 0xE0E0E1) - 0xE0E0E1;
7247 } 7248 }
7248 else 7249 else
7249 { 7250 {
7250 v1 = (signed __int64)((1.0 - pOutdoor->fFogDensity) * 200.0 + pOutdoor->fFogDensity * 31.0); 7251 v1 = (signed __int64)((1.0 - pOutdoor->fFogDensity) * 200.0 + pOutdoor->fFogDensity * 31.0);
7272 double v9; // st7@15 7273 double v9; // st7@15
7273 double v10; // st6@16 7274 double v10; // st6@16
7274 float v11; // ST14_4@17 7275 float v11; // ST14_4@17
7275 double v12; // ST08_8@17 7276 double v12; // ST08_8@17
7276 7277
7277 v3 = pWeather->field_FA0; 7278 v3 = pWeather->bNight;
7278 if ( bUnderwater == 1 ) 7279 if ( bUnderwater == 1 )
7279 v3 = 0; 7280 v3 = 0;
7280 if ( pParty->armageddon_timer || !(day_attrib & 1) && !bUnderwater ) 7281 if ( pParty->armageddon_timer || !(day_attrib & 1) && !bUnderwater )
7281 return 0xFF000000; 7282 return 0xFF000000;
7282 if ( v3 ) 7283 if ( v3 )
7283 { 7284 {
7284 if ( v3 != 1 )
7285 return 0;
7286 v5 = (double)day_fogrange_1; 7285 v5 = (double)day_fogrange_1;
7287 v6 = 216; 7286 v6 = 216;
7288 if ( a3 < v5 ) 7287 if ( a3 < v5 )
7289 goto LABEL_11; 7288 goto LABEL_11;
7290 v8 = (double)day_fogrange_2; 7289 v8 = (double)day_fogrange_2;
7335 //int v5; // esi@1 7334 //int v5; // esi@1
7336 signed int v6; // edx@1 7335 signed int v6; // edx@1
7337 //signed int result; // eax@2 7336 //signed int result; // eax@2
7338 int v8; // eax@3 7337 int v8; // eax@3
7339 double v9; // st7@12 7338 double v9; // st7@12
7340 double v10; // ST0C_8@18 7339 //double v10; // ST0C_8@18
7341 int v11; // ecx@28 7340 int v11; // ecx@28
7342 //signed int v12; // edi@28 7341 //signed int v12; // edi@28
7343 //double v13; // ST0C_8@33 7342 //double v13; // ST0C_8@33
7344 //double v14; // ST0C_8@34 7343 //double v14; // ST0C_8@34
7345 double v15; // st7@44 7344 double v15; // st7@44
7350 signed int v20; // [sp+10h] [bp-4h]@10 7349 signed int v20; // [sp+10h] [bp-4h]@10
7351 float a3a; // [sp+1Ch] [bp+8h]@33 7350 float a3a; // [sp+1Ch] [bp+8h]@33
7352 //float a3b; // [sp+1Ch] [bp+8h]@34 7351 //float a3b; // [sp+1Ch] [bp+8h]@34
7353 float a3c; // [sp+1Ch] [bp+8h]@44 7352 float a3c; // [sp+1Ch] [bp+8h]@44
7354 //float a3d; // [sp+1Ch] [bp+8h]@44 7353 //float a3d; // [sp+1Ch] [bp+8h]@44
7355 float a4b; // [sp+20h] [bp+Ch]@18 7354 //float a4b; // [sp+20h] [bp+Ch]@18
7356 //int a4a; // [sp+20h] [bp+Ch]@33 7355 //int a4a; // [sp+20h] [bp+Ch]@33
7357 //float a4c; // [sp+20h] [bp+Ch]@44 7356 //float a4c; // [sp+20h] [bp+Ch]@44
7358 //float a4d; // [sp+20h] [bp+Ch]@44 7357 //float a4d; // [sp+20h] [bp+Ch]@44
7359 int a5a; // [sp+24h] [bp+10h]@44 7358 int a5a; // [sp+24h] [bp+10h]@44
7360 7359
7365 return 8 * (31 - max_dimm) | ((8 * (31 - max_dimm) | ((31 - max_dimm) << 11)) << 8); 7364 return 8 * (31 - max_dimm) | ((8 * (31 - max_dimm) | ((31 - max_dimm) << 11)) << 8);
7366 7365
7367 if (pParty->armageddon_timer) 7366 if (pParty->armageddon_timer)
7368 return 0xFFFF0000; 7367 return 0xFFFF0000;
7369 7368
7370 v8 = pWeather->field_FA0; 7369 v8 = pWeather->bNight;
7371 if (bUnderwater) 7370 if (bUnderwater)
7372 v8 = 0; 7371 v8 = 0;
7373 if ( v8 ) 7372 if ( v8 )
7374 { 7373 {
7375 //__debugbreak(); // doubt that weather-related stuff will ever trigger, but if it suddenly does - find out what it is
7376 if ( v8 != 1 )
7377 return 0;
7378 v20 = 1; 7374 v20 = 1;
7379 if ( (signed __int64)pParty->pPartyBuffs[PARTY_BUFF_TORCHLIGHT].uExpireTime > 0 ) 7375 if ( (signed __int64)pParty->pPartyBuffs[PARTY_BUFF_TORCHLIGHT].uExpireTime > 0 )
7380 v20 = pParty->pPartyBuffs[PARTY_BUFF_TORCHLIGHT].uPower; 7376 v20 = pParty->pPartyBuffs[PARTY_BUFF_TORCHLIGHT].uPower;
7381 v9 = (double)v20 * 1024.0; 7377 v9 = (double)v20 * 1024.0;
7382 if ( a4 ) 7378 if ( a4 )
7383 goto LABEL_19; 7379 goto LABEL_19;
7384 if ( distance <= v9 ) 7380 if ( distance <= v9 )
7385 { 7381 {
7386 if ( distance > 0.0 ) 7382 if ( distance > 0.0 )
7387 { 7383 {
7388 a4b = distance * 216.0 / v9; 7384 //a4b = distance * 216.0 / v9;
7389 v10 = a4b + 6.7553994e15; 7385 //v10 = a4b + 6.7553994e15;
7390 v6 = LODWORD(v10); 7386 //v6 = LODWORD(v10);
7391 if ( SLODWORD(v10) > 216 ) 7387 v6 = floorf(0.5f + distance * 216.0 / v9);
7388 if (v6 > 216 )
7392 goto LABEL_19; 7389 goto LABEL_19;
7393 } 7390 }
7394 } 7391 }
7395 else 7392 else
7396 { 7393 {
10648 v11 = v10 + pOutdoorCamera->camera_rotation_y_int_sine * -pIndoorCamera->pos.y; 10645 v11 = v10 + pOutdoorCamera->camera_rotation_y_int_sine * -pIndoorCamera->pos.y;
10649 if ( pIndoorCamera->sRotationX ) 10646 if ( pIndoorCamera->sRotationX )
10650 { 10647 {
10651 v14 = v10 + pOutdoorCamera->camera_rotation_y_int_sine * -pIndoorCamera->pos.y; 10648 v14 = v10 + pOutdoorCamera->camera_rotation_y_int_sine * -pIndoorCamera->pos.y;
10652 v15 = pOutdoorCamera->camera_rotation_y_int_cosine * v8 - pOutdoorCamera->camera_rotation_y_int_sine * v24; 10649 v15 = pOutdoorCamera->camera_rotation_y_int_cosine * v8 - pOutdoorCamera->camera_rotation_y_int_sine * v24;
10653 this->field_0 = ((unsigned __int64)(v11 * (signed __int64)pOutdoorCamera->camera_rotation_x_int_cosine) >> 16) 10650 this->field_0_party_dir_x = ((unsigned __int64)(v11 * (signed __int64)pOutdoorCamera->camera_rotation_x_int_cosine) >> 16)
10654 + ((unsigned __int64)(-65536 10651 + ((unsigned __int64)(-65536
10655 * pIndoorCamera->pos.z 10652 * pIndoorCamera->pos.z
10656 * (signed __int64)pOutdoorCamera->camera_rotation_x_int_sine) >> 16); 10653 * (signed __int64)pOutdoorCamera->camera_rotation_x_int_sine) >> 16);
10657 this->field_4 = v15; 10654 this->field_4_party_dir_y = v15;
10658 v12 = v25; 10655 v12 = v25;
10659 v13 = ((unsigned __int64)((v26 << 16) * (signed __int64)v25) >> 16) 10656 v13 = ((unsigned __int64)((v26 << 16) * (signed __int64)v25) >> 16)
10660 - ((unsigned __int64)(v14 * (signed __int64)v27) >> 16); 10657 - ((unsigned __int64)(v14 * (signed __int64)v27) >> 16);
10661 } 10658 }
10662 else 10659 else
10663 { 10660 {
10664 this->field_4 = pOutdoorCamera->camera_rotation_y_int_cosine * v8 - pOutdoorCamera->camera_rotation_y_int_sine * v24; 10661 this->field_4_party_dir_y = pOutdoorCamera->camera_rotation_y_int_cosine * v8 - pOutdoorCamera->camera_rotation_y_int_sine * v24;
10665 v12 = v25; 10662 v12 = v25;
10666 this->field_0 = v11; 10663 this->field_0_party_dir_x = v11;
10667 v13 = v26 << 16; 10664 v13 = v26 << 16;
10668 } 10665 }
10669 this->field_8 = v13; 10666 this->field_8 = v13;
10670 if ( pIndoorCamera->sRotationX ) 10667 if ( pIndoorCamera->sRotationX )
10671 { 10668 {
10705 this->field_18 = -this->field_18; 10702 this->field_18 = -this->field_18;
10706 this->field_1C = -this->field_1C; 10703 this->field_1C = -this->field_1C;
10707 this->field_20 = v18; 10704 this->field_20 = v18;
10708 v20 = this->field_C; 10705 v20 = this->field_C;
10709 this->field_20 = -this->field_20; 10706 this->field_20 = -this->field_20;
10710 v21 = ((unsigned __int64)(v20 * (signed __int64)this->field_0) >> 16) 10707 v21 = ((unsigned __int64)(v20 * (signed __int64)this->field_0_party_dir_x) >> 16)
10711 + ((unsigned __int64)(this->field_10 * (signed __int64)this->field_4) >> 16) 10708 + ((unsigned __int64)(this->field_10 * (signed __int64)this->field_4_party_dir_y) >> 16)
10712 + ((unsigned __int64)(this->field_14 * (signed __int64)this->field_8) >> 16); 10709 + ((unsigned __int64)(this->field_14 * (signed __int64)this->field_8) >> 16);
10713 v28 = this->field_18; 10710 v28 = this->field_18;
10714 v22 = this->field_0; 10711 v22 = this->field_0_party_dir_x;
10715 this->field_24 = v21; 10712 this->field_24 = v21;
10716 v29 = (unsigned __int64)(v28 * (signed __int64)v22) >> 16; 10713 v29 = (unsigned __int64)(v28 * (signed __int64)v22) >> 16;
10717 result = (unsigned __int64)(this->field_1C * (signed __int64)this->field_4) >> 16; 10714 result = (unsigned __int64)(this->field_1C * (signed __int64)this->field_4_party_dir_y) >> 16;
10718 this->field_28 = v29 + result + ((unsigned __int64)(this->field_20 * (signed __int64)this->field_8) >> 16); 10715 this->field_28 = v29 + result + ((unsigned __int64)(this->field_20 * (signed __int64)this->field_8) >> 16);
10719 return result; 10716 return result;
10720 } 10717 }
10721 10718
10722 //----- (0048653D) -------------------------------------------------------- 10719 //----- (0048653D) --------------------------------------------------------
10723 int stru149::_48653D(int a2, int a3, int a4, int a5, int a6, int a7) 10720 int stru149::_48653D(int a2, int a3, int a4, int a5, int a6, int a7)
10724 { 10721 {
10725 stru149 *v7; // esi@1 10722 stru149 *v7; // esi@1
10726 int v8; // edi@1 10723 int v8; // edi@1
10727 int v9; // eax@1 10724 int v9; // eax@1
10728 int v10; // edx@1 10725 //int v10; // edx@1
10729 int v11; // ecx@1 10726 //int v11; // ecx@1
10730 int v12; // eax@1 10727 int v12; // eax@1
10731 int v13; // ebx@2 10728 int v13; // ebx@2
10732 int v14; // ecx@2 10729 int v14; // ecx@2
10733 int v15; // eax@2 10730 int v15; // eax@2
10734 int v16; // ST14_4@3 10731 int v16; // ST14_4@3
10739 int v21; // ST10_4@9 10736 int v21; // ST10_4@9
10740 int v22; // eax@10 10737 int v22; // eax@10
10741 int v23; // ecx@10 10738 int v23; // ecx@10
10742 int v24; // eax@10 10739 int v24; // eax@10
10743 int result; // eax@10 10740 int result; // eax@10
10744 int v26; // [sp+14h] [bp-14h]@1 10741 //int v26; // [sp+14h] [bp-14h]@1
10745 int v27; // [sp+18h] [bp-10h]@1 10742 int v27; // [sp+18h] [bp-10h]@1
10746 int v28; // [sp+1Ch] [bp-Ch]@1 10743 int v28; // [sp+1Ch] [bp-Ch]@1
10747 int v29; // [sp+24h] [bp-4h]@1 10744 int v29; // [sp+24h] [bp-4h]@1
10748 int v30; // [sp+30h] [bp+8h]@10 10745 int v30; // [sp+30h] [bp+8h]@10
10749 int v31; // [sp+3Ch] [bp+14h]@10 10746 int v31; // [sp+3Ch] [bp+14h]@10
10751 v7 = this; 10748 v7 = this;
10752 v8 = stru_5C6E00->Cos(pBLVRenderParams->sPartyRotY); 10749 v8 = stru_5C6E00->Cos(pBLVRenderParams->sPartyRotY);
10753 v29 = stru_5C6E00->Sin(pBLVRenderParams->sPartyRotY); 10750 v29 = stru_5C6E00->Sin(pBLVRenderParams->sPartyRotY);
10754 v28 = stru_5C6E00->Cos(pBLVRenderParams->sPartyRotX); 10751 v28 = stru_5C6E00->Cos(pBLVRenderParams->sPartyRotX);
10755 v9 = stru_5C6E00->Sin(pBLVRenderParams->sPartyRotX); 10752 v9 = stru_5C6E00->Sin(pBLVRenderParams->sPartyRotX);
10756 v11 = -pBLVRenderParams->vPartyPos.y; 10753 //v11 = -pBLVRenderParams->vPartyPos.y;
10757 v26 = -pBLVRenderParams->vPartyPos.x; 10754 //v26 = -pBLVRenderParams->vPartyPos.x;
10758 v27 = v9; 10755 v27 = v9;
10759 v12 = -pBLVRenderParams->vPartyPos.z; 10756 v12 = -pBLVRenderParams->vPartyPos.z;
10760 if ( pBLVRenderParams->sPartyRotX ) 10757 if ( pBLVRenderParams->sPartyRotX )
10761 { 10758 {
10762 v16 = v8 * -pBLVRenderParams->vPartyPos.x + v29 * -pBLVRenderParams->vPartyPos.y; 10759 v16 = v8 * -pBLVRenderParams->vPartyPos.x + v29 * -pBLVRenderParams->vPartyPos.y;
10763 v13 = v28; 10760 v13 = v28;
10764 v17 = -65536 * pBLVRenderParams->vPartyPos.z; 10761 v17 = -65536 * pBLVRenderParams->vPartyPos.z;
10765 v7->field_0 = ((unsigned __int64)(v16 * (signed __int64)v28) >> 16) 10762 v7->field_0_party_dir_x = ((unsigned __int64)(v16 * (signed __int64)v28) >> 16)
10766 + ((unsigned __int64)(-65536 * pBLVRenderParams->vPartyPos.z * (signed __int64)v27) >> 16); 10763 + ((unsigned __int64)(-65536 * pBLVRenderParams->vPartyPos.z * (signed __int64)v27) >> 16);
10767 v7->field_4 = v8 * v11 - v29 * v26; 10764 v7->field_4_party_dir_y = v8 * -pBLVRenderParams->vPartyPos.y - v29 * -pBLVRenderParams->vPartyPos.x;
10768 v14 = v27; 10765 v14 = v27;
10769 v15 = ((unsigned __int64)(v17 * (signed __int64)v28) >> 16) - ((unsigned __int64)(v16 * (signed __int64)v27) >> 16); 10766 v15 = ((unsigned __int64)(v17 * (signed __int64)v28) >> 16) - ((unsigned __int64)(v16 * (signed __int64)v27) >> 16);
10770 } 10767 }
10771 else 10768 else
10772 { 10769 {
10773 v7->field_0 = v10 + v29 * -pBLVRenderParams->vPartyPos.y; 10770 v7->field_0_party_dir_x = v8 * -pBLVRenderParams->vPartyPos.x + v29 * -pBLVRenderParams->vPartyPos.y;
10774 v13 = v28; 10771 v13 = v28;
10775 v7->field_4 = v8 * v11 - v29 * v26; 10772 v7->field_4_party_dir_y = v8 * -pBLVRenderParams->vPartyPos.y - v29 * -pBLVRenderParams->vPartyPos.x;
10776 v14 = v27; 10773 v14 = v27;
10777 v15 = v12 << 16; 10774 v15 = v12 << 16;
10778 } 10775 }
10779 v7->field_8 = v15; 10776 v7->field_8 = v15;
10780 if ( pBLVRenderParams->sPartyRotX ) 10777 if ( pBLVRenderParams->sPartyRotX )
10815 v7->field_18 = -v7->field_18; 10812 v7->field_18 = -v7->field_18;
10816 v7->field_1C = -v7->field_1C; 10813 v7->field_1C = -v7->field_1C;
10817 v7->field_20 = v20; 10814 v7->field_20 = v20;
10818 v22 = v7->field_C; 10815 v22 = v7->field_C;
10819 v7->field_20 = -v7->field_20; 10816 v7->field_20 = -v7->field_20;
10820 v23 = ((unsigned __int64)(v22 * (signed __int64)v7->field_0) >> 16) 10817 v23 = ((unsigned __int64)(v22 * (signed __int64)v7->field_0_party_dir_x) >> 16)
10821 + ((unsigned __int64)(v7->field_10 * (signed __int64)v7->field_4) >> 16) 10818 + ((unsigned __int64)(v7->field_10 * (signed __int64)v7->field_4_party_dir_y) >> 16)
10822 + ((unsigned __int64)(v7->field_14 * (signed __int64)v7->field_8) >> 16); 10819 + ((unsigned __int64)(v7->field_14 * (signed __int64)v7->field_8) >> 16);
10823 v30 = v7->field_18; 10820 v30 = v7->field_18;
10824 v24 = v7->field_0; 10821 v24 = v7->field_0_party_dir_x;
10825 v7->field_24 = v23; 10822 v7->field_24 = v23;
10826 v31 = (unsigned __int64)(v30 * (signed __int64)v24) >> 16; 10823 v31 = (unsigned __int64)(v30 * (signed __int64)v24) >> 16;
10827 result = (unsigned __int64)(v7->field_1C * (signed __int64)v7->field_4) >> 16; 10824 result = (unsigned __int64)(v7->field_1C * (signed __int64)v7->field_4_party_dir_y) >> 16;
10828 v7->field_28 = v31 + result + ((unsigned __int64)(v7->field_20 * (signed __int64)v7->field_8) >> 16); 10825 v7->field_28 = v31 + result + ((unsigned __int64)(v7->field_20 * (signed __int64)v7->field_8) >> 16);
10829 return result; 10826 return result;
10830 } 10827 }
10831 10828
10832 //----- (0048694B) -------------------------------------------------------- 10829 //----- (0048694B) --------------------------------------------------------
10841 10838
10842 v1 = this->field_C; 10839 v1 = this->field_C;
10843 this->field_18 = -this->field_18; 10840 this->field_18 = -this->field_18;
10844 this->field_1C = -this->field_1C; 10841 this->field_1C = -this->field_1C;
10845 this->field_20 = -this->field_20; 10842 this->field_20 = -this->field_20;
10846 v2 = (unsigned __int64)(v1 * (signed __int64)this->field_0) >> 16; 10843 v2 = (unsigned __int64)(v1 * (signed __int64)this->field_0_party_dir_x) >> 16;
10847 v3 = this->field_18; 10844 v3 = this->field_18;
10848 v4 = this->field_0; 10845 v4 = this->field_0_party_dir_x;
10849 this->field_24 = v2 10846 this->field_24 = v2
10850 + ((unsigned __int64)(this->field_10 * (signed __int64)this->field_4) >> 16) 10847 + ((unsigned __int64)(this->field_10 * (signed __int64)this->field_4_party_dir_y) >> 16)
10851 + ((unsigned __int64)(this->field_14 * (signed __int64)this->field_8) >> 16); 10848 + ((unsigned __int64)(this->field_14 * (signed __int64)this->field_8) >> 16);
10852 v5 = (unsigned __int64)(v3 * (signed __int64)v4) >> 16; 10849 v5 = (unsigned __int64)(v3 * (signed __int64)v4) >> 16;
10853 result = (unsigned __int64)(this->field_1C * (signed __int64)this->field_4) >> 16; 10850 result = (unsigned __int64)(this->field_1C * (signed __int64)this->field_4_party_dir_y) >> 16;
10854 this->field_28 = v5 + result + ((unsigned __int64)(this->field_20 * (signed __int64)this->field_8) >> 16); 10851 this->field_28 = v5 + result + ((unsigned __int64)(this->field_20 * (signed __int64)this->field_8) >> 16);
10855 return result; 10852 return result;
10856 } 10853 }
10857 10854
10858 10855