Mercurial > mm7
diff mm7_5.cpp @ 1184:a90dc4aee8f4
arcomage refactoring continued
author | Gloval |
---|---|
date | Thu, 06 Jun 2013 08:33:43 +0400 |
parents | fa30ea497e94 |
children | 0dbf6c4dd029 |
line wrap: on
line diff
--- a/mm7_5.cpp Thu Jun 06 00:58:07 2013 +0400 +++ b/mm7_5.cpp Thu Jun 06 08:33:43 2013 +0400 @@ -9034,210 +9034,7 @@ } // 40DFA7: using guessed type int __stdcall retzero_sub_40DFA7(int); -//----- (0040DFD1) -------------------------------------------------------- -void stru272::_40DFD1() -{ - stru272 *v1; // esi@1 - stru272_stru0 *v2; // eax@1 - - v1 = this; - v2 = (stru272_stru0 *)malloc(0x5Cu); - v1->ptr_0 = v2; - v2->field_0 = 0x67707274u; - v1->ptr_0->field_8 = 0; - v1->ptr_0->field_30 = 0.0; - v1->ptr_0->field_58 = 0; - v1->ptr_0->field_59 = 0; -} - -//----- (0040DFFE) -------------------------------------------------------- -int stru272_stru0::_40DFFE() -{ - signed int result; // eax@2 - - if ( this->field_0 == 0x67707274 ) - { - this->field_0 = 0x78787878u; - free(this); - result = 0; - } - else - { - result = 2; - } - return result; -} - -//----- (0040E01A) -------------------------------------------------------- -int stru272_stru0::_40E01A(int a2) -{ - signed int result; // eax@2 - - auto a1 = this; - if ( a1->field_0 == 0x67707274 ) - { - a1->field_4 = *(int *)(a2 + 32); - a1->field_C = *(int *)a2 << 16; - a1->field_10 = *(int *)(a2 + 4) << 16; - a1->field_14 = *(int *)(a2 + 8) << 16; - a1->field_18 = *(int *)(a2 + 12) << 16; - a1->field_1C = *(int *)(a2 + 16); - a1->field_20 = *(int *)(a2 + 20); - a1->field_24 = *(int *)(a2 + 24); - a1->field_28 = *(float *)(a2 + 28) * 65536.0; - LODWORD(a1->field_2C) = *(int *)(a2 + 36); - a1->field_34 = (signed __int64)(*(float *)(a2 + 40) * 65536.0); - a1->field_38 = (signed __int64)(*(float *)(a2 + 44) * 65536.0); - a1->field_3C = *(int *)(a2 + 48); - a1->field_40 = *(int *)(a2 + 52); - a1->field_54 = *(int *)(a2 + 56); - a1->field_59 = 1; - result = 0; - } - else - { - result = 2; - } - return result; -} - -//----- (0040E0F5) -------------------------------------------------------- -int stru272_stru0::_40E0F5(char a2, char a3) -{ - signed int result; // eax@2 - int v4; // edx@7 - int v5; // eax@7 - - auto a1 = this; - if ( a1->field_0 == 0x67707274 ) - { - if ( a2 ) - { - a1->field_8 = 0; - a1->field_30 = 0.0; - } - if ( a1->field_59 && a3 ) - { - v4 = a1->field_4; - v5 = a1->field_54; - do - { - *(int *)v5 = 0; - v5 += 28; - --v4; - } - while ( v4 ); - a1->field_58 = 0; - } - result = 0; - } - else - { - result = 2; - } - return result; -} - -//----- (0040E133) -------------------------------------------------------- -int stru272_stru0::_40E133() -{ - stru272_stru0 *v1; // edi@1 - int v3; // ST18_4@3 - double v4; // st7@3 - double v5; // st6@4 - char v6; // bl@8 - int v7; // esi@8 - int v8; // ecx@10 - signed int v9; // eax@10 - int v10; // ecx@10 - signed int v11; // eax@10 - signed int v12; // edx@12 - signed int v13; // edx@12 - int v14; // [sp+8h] [bp-10h]@8 - int v15; // [sp+Ch] [bp-Ch]@8 - float v16; // [sp+14h] [bp-4h]@3 - - v1 = this; - if ( this->field_0 != 0x67707274 ) - return 2; - v3 = this->field_8; - v16 = this->field_30; - v4 = (double)v3; - if ( v3 > 0 ) - { - v5 = v16 + this->field_2C; - v16 = v5; - if ( v5 > v4 ) - v16 = v4; - } - if ( v16 >= 1.0 || this->field_58 ) - { - v6 = 0; - v7 = this->field_54; - v14 = (signed __int64)this->field_28; - v15 = this->field_4; - while ( *(int *)v7 <= 0 ) - { - if ( v16 >= 1.0 ) - { - *(int *)v7 = v1->field_3C + rand() % (v1->field_40 - v1->field_3C + 1); - *(int *)(v7 + 20) = (rand() % 17 - 8) << 16; - *(int *)(v7 + 24) = (rand() % 17 - 8) << 16; - v12 = v1->field_C + rand() % (v1->field_14 - 1 - v1->field_C + 1); - *(int *)(v7 + 12) = v12; - *(int *)(v7 + 4) = v12 >> 16; - v16 = v16 - 1.0; - v13 = v1->field_10 + rand() % (v1->field_18 - 1 - v1->field_10 + 1); - *(int *)(v7 + 16) = v13; - *(int *)(v7 + 8) = v13 >> 16; - --v1->field_8; - goto LABEL_13; - } -LABEL_14: - v7 += 28; - --v15; - if ( !v15 ) - { - v1->field_58 = v6; - v1->field_30 = v16; - return 0; - } - } - v8 = *(int *)(v7 + 20); - --*(int *)v7; - v9 = v8 + *(int *)(v7 + 12); - v10 = v14 + *(int *)(v7 + 24); - *(int *)(v7 + 12) = v9; - *(int *)(v7 + 4) = v9 >> 16; - v11 = v10 + *(int *)(v7 + 16); - *(int *)(v7 + 24) = v10; - *(int *)(v7 + 16) = v11; - *(int *)(v7 + 8) = v11 >> 16; -LABEL_13: - v6 = 1; - goto LABEL_14; - } - return 0; -} - -//----- (0040E2A7) -------------------------------------------------------- -int stru272_stru0::_40E2A7() -{ - int result; // eax@2 - - if ( this->field_0 == 0x67707274 ) - { - if ( this->field_8 <= 0 ) - result = this->field_58 != 0 ? 2 : 0; - else - result = 1; - } - else - { - result = 3; - } - return result; -} + //----- (0040F82D) -------------------------------------------------------- void __fastcall ZBuffer_Fill(int *pZBuffer, int uTextureId, int iZValue)