Mercurial > mm7
diff Indoor.cpp @ 1438:bc99e1a48bea
m
author | Ritor1 |
---|---|
date | Mon, 22 Jul 2013 18:00:34 +0600 |
parents | 22cb507446a4 |
children | 468f434a8d8a |
line wrap: on
line diff
--- a/Indoor.cpp Sat Jul 06 09:07:04 2013 +0600 +++ b/Indoor.cpp Mon Jul 22 18:00:34 2013 +0600 @@ -7177,13 +7177,13 @@ //signed int v9; // ecx@10 //int v10; // eax@10 //int v11; // edx@11 - int v12; // ST28_4@12 - signed int v13; // edx@12 - signed __int64 v14; // qtt@12 - char *v15; // ebx@12 - int v16; // ST28_4@14 - signed int v17; // eax@14 - signed __int64 v18; // qtt@14 + int t; + //signed int v13; // edx@12 + //signed __int64 v14; // qtt@12 + //char *v15; // ebx@12 + //int v16; // ST28_4@14 + //signed int v17; // eax@14 + //signed __int64 v18; // qtt@14 signed int v19; // edx@15 signed int v20; // edx@17 signed int v21; // ebx@19 @@ -7323,42 +7323,35 @@ if ( current_vertices_flag ^ next_vertices_flag ) { //v11 = stru_50B700._view_transformed_xs[i + 2]; - if ( stru_50B700._view_transformed_xs[i + 3] >= 524288 ) + if ( next_vertices_flag ) { - v12 = stru_50B700._view_transformed_xs[i + 3] - stru_50B700._view_transformed_xs[i + 2]; - v13 = 524288 - stru_50B700._view_transformed_xs[i + 2]; - LODWORD(v14) = v13 << 16; - HIDWORD(v14) = v13 >> 16; - v15 = (char *)&stru_50B700._view_transformed_ys[i + 2]; - stru_50B700._view_transformed_zs[depth_num_vertices] = ((unsigned __int64)((stru_50B700._view_transformed_zs[i + 3] - - stru_50B700._view_transformed_zs[i + 2]) - * v14 - / v12) >> 16) - + stru_50B700._view_transformed_zs[i + 2]; - thisb = (unsigned __int64)((stru_50B700._view_transformed_ys[i + 3] - stru_50B700._view_transformed_ys[i + 2]) - * v14 - / v12) >> 16; + //t = near_clip - v0.z/v1.z - v0.z + // near_clip = 8.0(524288) + t = 524288 - stru_50B700._view_transformed_xs[i + 2] / stru_50B700._view_transformed_xs[i + 3] - stru_50B700._view_transformed_xs[i + 2]; + // new_x = (v1.x - v0.x) * t + v0.x + stru_50B700._view_transformed_zs[depth_num_vertices] = (unsigned __int64)(stru_50B700._view_transformed_zs[i + 3] + - stru_50B700._view_transformed_zs[i + 2]) * t + stru_50B700._view_transformed_zs[i + 2]; + //new_y = (v1.y - v0.y)*t + v0.y + stru_50B700._view_transformed_ys[depth_num_vertices] = (unsigned __int64)(stru_50B700._view_transformed_ys[i + 3] - stru_50B700._view_transformed_ys[i + 2]) + * t + stru_50B700._view_transformed_ys[i + 2]; + stru_50B700._view_transformed_xs[depth_num_vertices] = 524288; } else { - v16 = stru_50B700._view_transformed_xs[i + 2] - stru_50B700._view_transformed_xs[i + 3]; - v17 = 524288 - stru_50B700._view_transformed_xs[i + 3]; - LODWORD(v18) = v17 << 16; - HIDWORD(v18) = v17 >> 16; - v15 = (char *)&stru_50B700._view_transformed_ys[i + 3]; - stru_50B700._view_transformed_zs[depth_num_vertices] = ((unsigned __int64)((stru_50B700._view_transformed_zs[i + 2] - - stru_50B700._view_transformed_zs[i + 3]) - * v18 - / v16) >> 16) - + stru_50B700._view_transformed_zs[i + 3]; - thisb = (unsigned __int64)((stru_50B700._view_transformed_ys[i + 2] - stru_50B700._view_transformed_ys[i + 3]) - * v18 - / v16) >> 16; + //t = near_clip - v1.z/v0.z - v1.z + t = 524288 - stru_50B700._view_transformed_xs[i + 3] / stru_50B700._view_transformed_xs[i + 2] - stru_50B700._view_transformed_xs[i + 3]; + // new_x = (v0.x - v1.x) * t + v1.x + stru_50B700._view_transformed_zs[depth_num_vertices] = (unsigned __int64)(stru_50B700._view_transformed_zs[i + 2] + - stru_50B700._view_transformed_zs[i + 3]) * t + stru_50B700._view_transformed_zs[i + 3]; + //new_y = (v0.y - v1.y)*t + v1.y + stru_50B700._view_transformed_ys[depth_num_vertices] = (unsigned __int64)(stru_50B700._view_transformed_ys[i + 2] - stru_50B700._view_transformed_ys[i + 3]) + * t + stru_50B700._view_transformed_ys[i + 3]; + stru_50B700._view_transformed_xs[depth_num_vertices] = 524288; } v19 = depth_num_vertices++; //v7 = pFace->uNumVertices; - stru_50B700._view_transformed_ys[v19] = thisb + *(_DWORD *)v15; - stru_50B700._view_transformed_xs[v19] = 524288; + //stru_50B700._view_transformed_ys[v19] = thisb + *(_DWORD *)v15; + //stru_50B700._view_transformed_xs[v19] = 524288; } if ( next_vertices_flag ) { @@ -7371,17 +7364,16 @@ } } - v87 = 0; + v21 = depth_num_vertices; stru_50B700._view_transformed_xs[depth_num_vertices] = stru_50B700._view_transformed_xs[0]; stru_50B700._view_transformed_zs[depth_num_vertices] = stru_50B700._view_transformed_zs[0]; - for ( stru_50B700._view_transformed_ys[depth_num_vertices] = stru_50B700._view_transformed_ys[0]; - v87 < depth_num_vertices; - stru_50B700._screen_space_y[v22 + 12] = pBLVRenderParams->uViewportCenterY - v35 ) + stru_50B700._view_transformed_ys[depth_num_vertices] = stru_50B700._view_transformed_ys[0]; + for ( v87 = 0; v87 < depth_num_vertices; ++v87 ) { v22 = v87; thisc = abs(stru_50B700._view_transformed_xs[v87]); - if ( abs(stru_50B700._view_transformed_zs[v87]) >> 13 <= thisc ) + if ( (abs(stru_50B700._view_transformed_zs[v87]) >> 13) <= thisc ) { v27 = stru_50B700._view_transformed_zs[v22]; LODWORD(v28) = v27 << 16; @@ -7416,7 +7408,7 @@ v29 = stru_50B700._view_transformed_ys[v22]; stru_50B700._screen_space_x[v22 + 12] = v26; - if ( abs(v29) >> 13 <= thisc ) + if ( (abs(v29) >> 13) <= thisc ) { v33 = stru_50B700._view_transformed_ys[v22]; LODWORD(v34) = v33 << 16; @@ -7451,7 +7443,8 @@ * (signed __int64)stru_50B700._screen_space_x[v22 + 12]) >> 16; v35 = (unsigned __int64)(SHIWORD(pBLVRenderParams->field_40) * (signed __int64)stru_50B700._screen_space_y[v22 + 12]) >> 16; stru_50B700._screen_space_x[v22 + 12] = pBLVRenderParams->uViewportCenterX - stru_50B700._screen_space_x[v22 + 12]; - ++v87; + stru_50B700._screen_space_y[v22 + 12] = pBLVRenderParams->uViewportCenterY - v35; + //++v87; } v36 = 0; stru_50B700._screen_space_x[v21 + 12] = stru_50B700._screen_space_x[12];