comparison Indoor.cpp @ 1308:ad903bb5b702

Слияние
author Ritor1
date Mon, 24 Jun 2013 18:59:39 +0600
parents 13b7be8b06a0 18665b8f66b2
children 995d2f8ad71b
comparison
equal deleted inserted replaced
1307:d346e11b550b 1308:ad903bb5b702
1302 nodes[num_nodes].viewing_portal_id = -1; 1302 nodes[num_nodes].viewing_portal_id = -1;
1303 //v39 = &pIndoor->pFaces[uFaceID]; 1303 //v39 = &pIndoor->pFaces[uFaceID];
1304 1304
1305 auto pFace = &pIndoor->pFaces[uFaceID]; 1305 auto pFace = &pIndoor->pFaces[uFaceID];
1306 auto p = &nodes[node_id]; 1306 auto p = &nodes[node_id];
1307 1307 for (int i = 0; i < pIndoor->uNumFaces; ++i)
1308 {
1309 if (pIndoor->pFaces[i].Portal())
1310 {
1311 if ( pIndoor->pFaces[i].uSectorID == nodes[0].uSectorID )
1312 {
1313 Log::Warning(L"portal id = %u", i);
1314 //pIndoor->pFaces[i].uBitmapID = 9;
1315 }
1316 }
1317 }
1308 if (!pFace->Portal()) 1318 if (!pFace->Portal())
1309 { 1319 {
1310 if (num_faces < 1000) 1320 if (num_faces < 1000)
1311 { 1321 {
1312 faces[num_faces].uFaceID = uFaceID; 1322 faces[num_faces].uFaceID = uFaceID;
7178 } 7188 }
7179 //----- (00423B5D) -------------------------------------------------------- 7189 //----- (00423B5D) --------------------------------------------------------
7180 int __fastcall sub_423B5D(unsigned int uFaceID) 7190 int __fastcall sub_423B5D(unsigned int uFaceID)
7181 { 7191 {
7182 BLVFace *pFace; // ebx@1 7192 BLVFace *pFace; // ebx@1
7183 Vec3_short_ *v2; // esi@1 7193 //Vec3_short_ *v2; // esi@1
7184 //int v3; // ST28_4@1 7194 //int v3; // ST28_4@1
7185 //__int16 v4; // ST2C_2@1 7195 //__int16 v4; // ST2C_2@1
7186 signed int v5; // esi@1 7196 //signed int v5; // esi@1
7187 //Vec3_short_ *v6; // eax@4 7197 //Vec3_short_ *v6; // eax@4
7188 signed int v7; // edi@5 7198 //signed int v7; // edi@5
7189 signed int v8; // eax@5 7199 //signed int bFound; // eax@5
7190 signed int v9; // ecx@10 7200 //signed int v9; // ecx@10
7191 int v10; // eax@10 7201 //int v10; // eax@10
7192 int v11; // edx@11 7202 //int v11; // edx@11
7193 int v12; // ST28_4@12 7203 int v12; // ST28_4@12
7194 signed int v13; // edx@12 7204 signed int v13; // edx@12
7195 signed __int64 v14; // qtt@12 7205 signed __int64 v14; // qtt@12
7196 char *v15; // ebx@12 7206 char *v15; // ebx@12
7197 int v16; // ST28_4@14 7207 int v16; // ST28_4@14
7241 char v61; // zf@72 7251 char v61; // zf@72
7242 signed int v62; // edx@75 7252 signed int v62; // edx@75
7243 int v63; // ecx@76 7253 int v63; // ecx@76
7244 int v64; // esi@76 7254 int v64; // esi@76
7245 int v65; // ecx@83 7255 int v65; // ecx@83
7246 signed int v66; // [sp+14h] [bp-14h]@3 7256 //signed int v66; // [sp+14h] [bp-14h]@3
7247 int v67; // [sp+14h] [bp-14h]@34 7257 int v67; // [sp+14h] [bp-14h]@34
7248 int v68; // [sp+14h] [bp-14h]@44 7258 int v68; // [sp+14h] [bp-14h]@44
7249 int v69; // [sp+14h] [bp-14h]@54 7259 int v69; // [sp+14h] [bp-14h]@54
7250 int v70; // [sp+14h] [bp-14h]@64 7260 int v70; // [sp+14h] [bp-14h]@64
7251 signed int v71; // [sp+14h] [bp-14h]@75 7261 signed int v71; // [sp+14h] [bp-14h]@75
7252 IndoorCameraD3D *_this; // [sp+18h] [bp-10h]@1 7262 //IndoorCameraD3D *_this; // [sp+18h] [bp-10h]@1
7253 bool thisa; // [sp+18h] [bp-10h]@9 7263 bool current_vertices_flag; // [sp+18h] [bp-10h]@9
7254 int thisb; // [sp+18h] [bp-10h]@12 7264 int thisb; // [sp+18h] [bp-10h]@12
7255 int thisc; // [sp+18h] [bp-10h]@20 7265 int thisc; // [sp+18h] [bp-10h]@20
7256 bool thisd; // [sp+18h] [bp-10h]@41 7266 bool thisd; // [sp+18h] [bp-10h]@41
7257 bool thise; // [sp+18h] [bp-10h]@61 7267 bool thise; // [sp+18h] [bp-10h]@61
7258 int thisf; // [sp+18h] [bp-10h]@74 7268 int thisf; // [sp+18h] [bp-10h]@74
7259 signed int v79; // [sp+1Ch] [bp-Ch]@9 7269 signed int depth_num_vertices; // [sp+1Ch] [bp-Ch]@9
7260 int v80; // [sp+1Ch] [bp-Ch]@76 7270 int v80; // [sp+1Ch] [bp-Ch]@76
7261 bool v81; // [sp+20h] [bp-8h]@10 7271 bool next_vertices_flag; // [sp+20h] [bp-8h]@10
7262 bool v82; // [sp+20h] [bp-8h]@32 7272 bool v82; // [sp+20h] [bp-8h]@32
7263 bool v83; // [sp+20h] [bp-8h]@42 7273 bool v83; // [sp+20h] [bp-8h]@42
7264 bool v84; // [sp+20h] [bp-8h]@52 7274 bool v84; // [sp+20h] [bp-8h]@52
7265 bool v85; // [sp+20h] [bp-8h]@62 7275 bool v85; // [sp+20h] [bp-8h]@62
7266 signed int v86; // [sp+24h] [bp-4h]@9 7276 //signed int v86; // [sp+24h] [bp-4h]@9
7267 signed int v87; // [sp+24h] [bp-4h]@19 7277 signed int v87; // [sp+24h] [bp-4h]@19
7268 signed int v88; // [sp+24h] [bp-4h]@31 7278 signed int v88; // [sp+24h] [bp-4h]@31
7269 signed int v89; // [sp+24h] [bp-4h]@41 7279 signed int v89; // [sp+24h] [bp-4h]@41
7270 signed int v90; // [sp+24h] [bp-4h]@51 7280 signed int v90; // [sp+24h] [bp-4h]@51
7271 signed int v91; // [sp+24h] [bp-4h]@61 7281 signed int v91; // [sp+24h] [bp-4h]@61
7272 7282
7273 pFace = &pIndoor->pFaces[uFaceID]; 7283 pFace = &pIndoor->pFaces[uFaceID];
7274 _this = pGame->pIndoorCameraD3D; 7284 memset(&stru_50B700, 0, sizeof(stru367));
7275 v2 = &pIndoor->pVertices[pIndoor->pFaces[uFaceID].pVertexIDs[0]]; 7285 //_this = pGame->pIndoorCameraD3D;
7286 //v2 = &pIndoor->pVertices[pIndoor->pFaces[uFaceID].pVertexIDs[0]];
7276 //v3 = *(_DWORD *)pIndoor->pVertices[pIndoor->pFaces[uFaceID].pVertexIDs[0]].x; 7287 //v3 = *(_DWORD *)pIndoor->pVertices[pIndoor->pFaces[uFaceID].pVertexIDs[0]].x;
7277 //v4 = pIndoor->pVertices[pIndoor->pFaces[uFaceID].pVertexIDs[0]].z; 7288 //v4 = pIndoor->pVertices[pIndoor->pFaces[uFaceID].pVertexIDs[0]].z;
7278 v5 = 0; 7289 //v5 = 0;
7279 if ( pFace->pFacePlane_old.vNormal.x * (pIndoor->pVertices[pIndoor->pFaces[uFaceID].pVertexIDs[0]].x - pBLVRenderParams->vPartyPos.x) 7290 if ( pFace->pFacePlane_old.vNormal.x * (pIndoor->pVertices[pIndoor->pFaces[uFaceID].pVertexIDs[0]].x - pBLVRenderParams->vPartyPos.x)
7280 + pFace->pFacePlane_old.vNormal.y * (pIndoor->pVertices[pIndoor->pFaces[uFaceID].pVertexIDs[0]].y - pBLVRenderParams->vPartyPos.y) 7291 + pFace->pFacePlane_old.vNormal.y * (pIndoor->pVertices[pIndoor->pFaces[uFaceID].pVertexIDs[0]].y - pBLVRenderParams->vPartyPos.y)
7281 + pFace->pFacePlane_old.vNormal.z * (pIndoor->pVertices[pIndoor->pFaces[uFaceID].pVertexIDs[0]].z - pBLVRenderParams->vPartyPos.z) < 0 ) 7292 + pFace->pFacePlane_old.vNormal.z * (pIndoor->pVertices[pIndoor->pFaces[uFaceID].pVertexIDs[0]].z - pBLVRenderParams->vPartyPos.z) < 0 )
7282 { 7293 {
7283 stru_50B700.field_0 = 1; 7294 stru_50B700.field_0 = 1;
7284 } 7295 }
7285 else 7296 else
7286 { 7297 {
7287 stru_50B700.field_0 = 0; 7298 stru_50B700.field_0 = 0;
7288 if ( !(pFace->uAttributes & 1) ) 7299 if ( !(pFace->Portal()) )
7289 return 0; 7300 return 0;
7290 } 7301 }
7291 v66 = pFace->uNumVertices; 7302 //v66 = pFace->uNumVertices;
7292 if ( (signed int)pFace->uNumVertices > 0 ) 7303 if ( (signed int)pFace->uNumVertices > 0 )
7293 { 7304 {
7294 do 7305 for (uint i = 0; i < pFace->uNumVertices; ++i)
7295 { 7306 {
7296 //v6 = &pIndoor->pVertices[pFace->pVertexIDs[v5]]; 7307 //v6 = &pIndoor->pVertices[pFace->pVertexIDs[v5]];
7297 pGame->pIndoorCameraD3D->ApplyViewTransform_TrueIfStillVisible( 7308 pGame->pIndoorCameraD3D->ApplyViewTransform_TrueIfStillVisible(
7298 pIndoor->pVertices[pFace->pVertexIDs[v5]].x, 7309 pIndoor->pVertices[pFace->pVertexIDs[i]].x,
7299 pIndoor->pVertices[pFace->pVertexIDs[v5]].y, 7310 pIndoor->pVertices[pFace->pVertexIDs[i]].y,
7300 pIndoor->pVertices[pFace->pVertexIDs[v5]].z, 7311 pIndoor->pVertices[pFace->pVertexIDs[i]].z,
7301 &stru_50B700._view_transformed_xs[v5 + 3], 7312 &stru_50B700._view_transformed_xs[i + 3],
7302 &stru_50B700._view_transformed_zs[v5 + 3], 7313 &stru_50B700._view_transformed_zs[i + 3],
7303 &stru_50B700._view_transformed_ys[v5 + 3], 7314 &stru_50B700._view_transformed_ys[i + 3],
7304 0); 7315 0);
7305 ++v5; 7316 }
7306 } 7317 }
7307 while ( v5 < v66 ); 7318 //v7 = pFace->uNumVertices;
7308 } 7319 if ( pFace->uNumVertices <= 0 )
7309 v7 = v66;
7310 v8 = 0;
7311 if ( v66 <= 0 )
7312 return 0; 7320 return 0;
7313 do 7321 bool bFound = false;
7314 { 7322 for (uint i = 0; i < pFace->uNumVertices; ++i)
7315 if ( stru_50B700._view_transformed_xs[v8 + 3] >= 524288 ) 7323 {
7324 if ( stru_50B700._view_transformed_xs[i + 3] >= 524288 )
7325 {
7326 bFound = true;
7316 break; 7327 break;
7317 ++v8; 7328 }
7318 } 7329 }
7319 while ( v8 < v66 ); 7330 if ( !bFound )
7320 if ( v8 >= v66 )
7321 return 0; 7331 return 0;
7322 v79 = 0; 7332
7323 stru_50B700._view_transformed_xs[v66 + 3] = stru_50B700._view_transformed_xs[3]; 7333 depth_num_vertices = 0;
7324 stru_50B700._view_transformed_zs[v66 + 3] = stru_50B700._view_transformed_zs[3]; 7334 stru_50B700._view_transformed_xs[pFace->uNumVertices + 3] = stru_50B700._view_transformed_xs[3];
7325 stru_50B700._view_transformed_ys[v66 + 3] = stru_50B700._view_transformed_ys[3]; 7335 stru_50B700._view_transformed_zs[pFace->uNumVertices + 3] = stru_50B700._view_transformed_zs[3];
7326 thisa = stru_50B700._view_transformed_xs[3] >= 524288; 7336 stru_50B700._view_transformed_ys[pFace->uNumVertices + 3] = stru_50B700._view_transformed_ys[3];
7327 v86 = 1; 7337 current_vertices_flag = stru_50B700._view_transformed_xs[3] >= 524288;
7328 if ( v66 >= 1 ) 7338 //v86 = 1;
7329 { 7339 if ( pFace->uNumVertices >= 1 )
7330 do 7340 {
7331 { 7341 for ( uint i = 1; i <= pFace->uNumVertices; ++i)
7332 v9 = v86; 7342 {
7333 v10 = stru_50B700._view_transformed_xs[v86 + 3]; 7343 //v9 = v86;
7334 v81 = v10 >= 524288; 7344 //v10 = stru_50B700._view_transformed_xs[v86 + 3];
7335 if ( thisa ^ v81 ) 7345 next_vertices_flag = stru_50B700._view_transformed_xs[i + 3] >= 524288;
7336 { 7346 if ( current_vertices_flag ^ next_vertices_flag )
7337 v11 = stru_50B700._view_transformed_xs[v9 + 2]; 7347 {
7338 if ( v10 >= 524288 ) 7348 //v11 = stru_50B700._view_transformed_xs[i + 2];
7349 if ( stru_50B700._view_transformed_xs[i + 3] >= 524288 )
7339 { 7350 {
7340 v12 = v10 - v11; 7351 v12 = stru_50B700._view_transformed_xs[i + 3] - stru_50B700._view_transformed_xs[i + 2];
7341 v13 = 524288 - v11; 7352 v13 = 524288 - stru_50B700._view_transformed_xs[i + 2];
7342 LODWORD(v14) = v13 << 16; 7353 LODWORD(v14) = v13 << 16;
7343 HIDWORD(v14) = v13 >> 16; 7354 HIDWORD(v14) = v13 >> 16;
7344 v15 = (char *)&stru_50B700._view_transformed_ys[v9 + 2]; 7355 v15 = (char *)&stru_50B700._view_transformed_ys[i + 2];
7345 stru_50B700._view_transformed_zs[v79] = ((unsigned __int64)((stru_50B700._view_transformed_zs[v9 + 3] 7356 stru_50B700._view_transformed_zs[depth_num_vertices] = ((unsigned __int64)((stru_50B700._view_transformed_zs[i + 3]
7346 - stru_50B700._view_transformed_zs[v9 + 2]) 7357 - stru_50B700._view_transformed_zs[i + 2])
7347 * v14 7358 * v14
7348 / v12) >> 16) 7359 / v12) >> 16)
7349 + stru_50B700._view_transformed_zs[v9 + 2]; 7360 + stru_50B700._view_transformed_zs[i + 2];
7350 thisb = (unsigned __int64)((stru_50B700._view_transformed_ys[v9 + 3] - stru_50B700._view_transformed_ys[v9 + 2]) 7361 thisb = (unsigned __int64)((stru_50B700._view_transformed_ys[i + 3] - stru_50B700._view_transformed_ys[i + 2])
7351 * v14 7362 * v14
7352 / v12) >> 16; 7363 / v12) >> 16;
7353 } 7364 }
7354 else 7365 else
7355 { 7366 {
7356 v16 = v11 - v10; 7367 v16 = stru_50B700._view_transformed_xs[i + 2] - stru_50B700._view_transformed_xs[i + 3];
7357 v17 = 524288 - v10; 7368 v17 = 524288 - stru_50B700._view_transformed_xs[i + 3];
7358 LODWORD(v18) = v17 << 16; 7369 LODWORD(v18) = v17 << 16;
7359 HIDWORD(v18) = v17 >> 16; 7370 HIDWORD(v18) = v17 >> 16;
7360 v15 = (char *)&stru_50B700._view_transformed_ys[v9 + 3]; 7371 v15 = (char *)&stru_50B700._view_transformed_ys[i + 3];
7361 stru_50B700._view_transformed_zs[v79] = ((unsigned __int64)((stru_50B700._view_transformed_zs[v9 + 2] 7372 stru_50B700._view_transformed_zs[depth_num_vertices] = ((unsigned __int64)((stru_50B700._view_transformed_zs[i + 2]
7362 - stru_50B700._view_transformed_zs[v9 + 3]) 7373 - stru_50B700._view_transformed_zs[i + 3])
7363 * v18 7374 * v18
7364 / v16) >> 16) 7375 / v16) >> 16)
7365 + stru_50B700._view_transformed_zs[v9 + 3]; 7376 + stru_50B700._view_transformed_zs[i + 3];
7366 thisb = (unsigned __int64)((stru_50B700._view_transformed_ys[v9 + 2] - stru_50B700._view_transformed_ys[v9 + 3]) 7377 thisb = (unsigned __int64)((stru_50B700._view_transformed_ys[i + 2] - stru_50B700._view_transformed_ys[i + 3])
7367 * v18 7378 * v18
7368 / v16) >> 16; 7379 / v16) >> 16;
7369 } 7380 }
7370 v19 = v79++; 7381 v19 = depth_num_vertices++;
7371 v7 = v66; 7382 //v7 = pFace->uNumVertices;
7372 stru_50B700._view_transformed_ys[v19] = thisb + *(_DWORD *)v15; 7383 stru_50B700._view_transformed_ys[v19] = thisb + *(_DWORD *)v15;
7373 stru_50B700._view_transformed_xs[v19] = 524288; 7384 stru_50B700._view_transformed_xs[v19] = 524288;
7374 } 7385 }
7375 if ( v81 ) 7386 if ( next_vertices_flag )
7376 { 7387 {
7377 v20 = v79++; 7388 v20 = depth_num_vertices++;
7378 stru_50B700._view_transformed_xs[v20] = stru_50B700._view_transformed_xs[v9 + 3]; 7389 stru_50B700._view_transformed_xs[v20] = stru_50B700._view_transformed_xs[i + 3];
7379 stru_50B700._view_transformed_zs[v20] = stru_50B700._view_transformed_zs[v9 + 3]; 7390 stru_50B700._view_transformed_zs[v20] = stru_50B700._view_transformed_zs[i + 3];
7380 stru_50B700._view_transformed_ys[v20] = stru_50B700._view_transformed_ys[v9 + 3]; 7391 stru_50B700._view_transformed_ys[v20] = stru_50B700._view_transformed_ys[i + 3];
7381 } 7392 }
7382 ++v86; 7393 current_vertices_flag = next_vertices_flag;
7383 thisa = v81; 7394 }
7384 } 7395 }
7385 while ( v86 <= v7 ); 7396
7386 }
7387 v87 = 0; 7397 v87 = 0;
7388 v21 = v79; 7398 v21 = depth_num_vertices;
7389 stru_50B700._view_transformed_xs[v79] = stru_50B700._view_transformed_xs[0]; 7399 stru_50B700._view_transformed_xs[depth_num_vertices] = stru_50B700._view_transformed_xs[0];
7390 stru_50B700._view_transformed_zs[v79] = stru_50B700._view_transformed_zs[0]; 7400 stru_50B700._view_transformed_zs[depth_num_vertices] = stru_50B700._view_transformed_zs[0];
7391 for ( stru_50B700._view_transformed_ys[v79] = stru_50B700._view_transformed_ys[0]; 7401 for ( stru_50B700._view_transformed_ys[depth_num_vertices] = stru_50B700._view_transformed_ys[0];
7392 v87 < v79; 7402 v87 < depth_num_vertices;
7393 stru_50B700._screen_space_y[v22 + 12] = pBLVRenderParams->uViewportCenterY - v35 ) 7403 stru_50B700._screen_space_y[v22 + 12] = pBLVRenderParams->uViewportCenterY - v35 )
7394 { 7404 {
7395 v22 = v87; 7405 v22 = v87;
7396 thisc = abs(stru_50B700._view_transformed_xs[v87]); 7406 thisc = abs(stru_50B700._view_transformed_xs[v87]);
7397 if ( abs(stru_50B700._view_transformed_zs[v87]) >> 13 <= thisc ) 7407 if ( abs(stru_50B700._view_transformed_zs[v87]) >> 13 <= thisc )
7406 { 7416 {
7407 v23 = 0; 7417 v23 = 0;
7408 v24 = 0; 7418 v24 = 0;
7409 if ( stru_50B700._view_transformed_zs[v22] >= 0 ) 7419 if ( stru_50B700._view_transformed_zs[v22] >= 0 )
7410 { 7420 {
7411 LOBYTE(v24) = stru_50B700._view_transformed_xs[v22] >= 0; 7421 //LOBYTE(v24) = stru_50B700._view_transformed_xs[v22] >= 0;
7412 v26 = ((v24 - 1) & 0xFF800000) + 4194304; 7422 //v26 = ((v24 - 1) & 0xFF800000) + 4194304;
7423 if (stru_50B700._view_transformed_xs[v22] >= 0)
7424 v26 = 0x400000; // 64.0
7425 else
7426 v26 = 0xFFC00000;
7413 } 7427 }
7414 else 7428 else
7415 { 7429 {
7416 LOBYTE(v24) = stru_50B700._view_transformed_xs[v22] >= 0; 7430 //LOBYTE(v24) = stru_50B700._view_transformed_xs[v22] >= 0;
7417 v25 = v24 - 1; 7431 //v25 = v24 - 1;
7418 v26 = (v25 & 0x800000) - 4194304; 7432 //v26 = (v25 & 0x800000) - 4194304;
7419 } 7433 if (stru_50B700._view_transformed_xs[v22] >= 0)
7420 } 7434 v26 = 0xFFC00000; // -63.0
7435 else
7436 v26 = 0x400000;
7437 }
7438 }
7439
7421 v29 = stru_50B700._view_transformed_ys[v22]; 7440 v29 = stru_50B700._view_transformed_ys[v22];
7422 stru_50B700._screen_space_x[v22 + 12] = v26; 7441 stru_50B700._screen_space_x[v22 + 12] = v26;
7423 if ( abs(v29) >> 13 <= thisc ) 7442 if ( abs(v29) >> 13 <= thisc )
7424 { 7443 {
7425 v33 = stru_50B700._view_transformed_ys[v22]; 7444 v33 = stru_50B700._view_transformed_ys[v22];
7430 else 7449 else
7431 { 7450 {
7432 v30 = 0; 7451 v30 = 0;
7433 if ( stru_50B700._view_transformed_ys[v22] >= v23 ) 7452 if ( stru_50B700._view_transformed_ys[v22] >= v23 )
7434 { 7453 {
7435 LOBYTE(v30) = stru_50B700._view_transformed_xs[v22] >= v23; 7454 //LOBYTE(v30) = stru_50B700._view_transformed_xs[v22] >= v23;
7436 v32 = ((v30 - 1) & 0xFF800000) + 4194304; 7455 //v32 = ((v30 - 1) & 0xFF800000) + 4194304;
7456 if (stru_50B700._view_transformed_xs[v22] >= v23)
7457 v32 = 0x400000; // 64.0
7458 else
7459 v32 = 0xFFC00000;
7437 } 7460 }
7438 else 7461 else
7439 { 7462 {
7440 LOBYTE(v30) = stru_50B700._view_transformed_xs[v22] >= v23; 7463 //LOBYTE(v30) = stru_50B700._view_transformed_xs[v22] >= v23;
7441 v31 = v30 - 1; 7464 //v31 = v30 - 1;
7442 v32 = (v31 & 0x800000) - 4194304; 7465 //v32 = (v31 & 0x800000) - 4194304;
7466 if (stru_50B700._view_transformed_xs[v22] >= v23)
7467 v32 = 0xFFC00000; // -63.0
7468 else
7469 v32 = 0x400000;
7443 } 7470 }
7444 } 7471 }
7445 stru_50B700._screen_space_y[v22 + 12] = v32; 7472 stru_50B700._screen_space_y[v22 + 12] = v32;
7446 stru_50B700._screen_space_x[v22 + 12] = (unsigned __int64)(SHIWORD(pBLVRenderParams->field_40) 7473 stru_50B700._screen_space_x[v22 + 12] = (unsigned __int64)(SHIWORD(pBLVRenderParams->field_40)
7447 * (signed __int64)stru_50B700._screen_space_x[v22 + 12]) >> 16; 7474 * (signed __int64)stru_50B700._screen_space_x[v22 + 12]) >> 16;
7455 v37 = pBLVRenderParams->uViewportX; 7482 v37 = pBLVRenderParams->uViewportX;
7456 v38 = stru_50B700._screen_space_x[12] < (signed int)pBLVRenderParams->uViewportX; 7483 v38 = stru_50B700._screen_space_x[12] < (signed int)pBLVRenderParams->uViewportX;
7457 LOBYTE(v38) = stru_50B700._screen_space_x[12] >= (signed int)pBLVRenderParams->uViewportX; 7484 LOBYTE(v38) = stru_50B700._screen_space_x[12] >= (signed int)pBLVRenderParams->uViewportX;
7458 v39 = 1; 7485 v39 = 1;
7459 v88 = 1; 7486 v88 = 1;
7460 if ( v79 < 1 ) 7487 if ( depth_num_vertices < 1 )
7461 return 0; 7488 return 0;
7462 do 7489 do
7463 { 7490 {
7464 v40 = v39; 7491 v40 = v39;
7465 v41 = stru_50B700._screen_space_x[v40 + 12]; 7492 v41 = stru_50B700._screen_space_x[v40 + 12];
7491 stru_50B700._screen_space_x[v36 + 9] = stru_50B700._screen_space_x[v40 + 12]; 7518 stru_50B700._screen_space_x[v36 + 9] = stru_50B700._screen_space_x[v40 + 12];
7492 stru_50B700._screen_space_y[v36++ + 9] = stru_50B700._screen_space_y[v40 + 12]; 7519 stru_50B700._screen_space_y[v36++ + 9] = stru_50B700._screen_space_y[v40 + 12];
7493 } 7520 }
7494 v39 = v88++ + 1; 7521 v39 = v88++ + 1;
7495 } 7522 }
7496 while ( v88 <= v79 ); 7523 while ( v88 <= depth_num_vertices );
7497 if ( !v36 7524 if ( !v36
7498 || (v43 = 0, 7525 || (v43 = 0,
7499 stru_50B700._screen_space_x[v36 + 9] = stru_50B700._screen_space_x[9], 7526 stru_50B700._screen_space_x[v36 + 9] = stru_50B700._screen_space_x[9],
7500 stru_50B700._screen_space_y[v36 + 9] = stru_50B700._screen_space_y[9], 7527 stru_50B700._screen_space_y[v36 + 9] = stru_50B700._screen_space_y[9],
7501 v44 = pBLVRenderParams->uViewportZ, 7528 v44 = pBLVRenderParams->uViewportZ,