comparison Indoor.cpp @ 1291:1577d75db258

m
author Ritor1
date Fri, 14 Jun 2013 16:06:20 +0600
parents 6c55c6bd67e0
children 24bc24b64ec2
comparison
equal deleted inserted replaced
1290:93911045d8f1 1291:1577d75db258
345 { 345 {
346 BspRenderer_stru0 *pNode = &pBspRenderer->nodes[i]; 346 BspRenderer_stru0 *pNode = &pBspRenderer->nodes[i];
347 v4 = pRenderer->uTargetSurfacePitch * pNode->field_C._viewport_space_y; 347 v4 = pRenderer->uTargetSurfacePitch * pNode->field_C._viewport_space_y;
348 if ( pNode->field_C._viewport_space_y <= pNode->field_C._viewport_space_w ) 348 if ( pNode->field_C._viewport_space_y <= pNode->field_C._viewport_space_w )
349 { 349 {
350 //v5 = (char *)&pBspRenderer->nodes[0].field_C.array_3D8[pNode->field_C._viewport_space_y + v7]; 350 //v5 = (char *)&pBspRenderer->nodes[0].field_C.viewport_right_side[pNode->field_C._viewport_space_y + v7];
351 v5 = &pNode->field_C.array_3D8[pNode->field_C._viewport_space_y]; 351 v5 = &pNode->field_C.viewport_right_side[pNode->field_C._viewport_space_y];
352 v8 = &pNode->field_C.array_18[pNode->field_C._viewport_space_y]; 352 v8 = &pNode->field_C.viewport_left_side[pNode->field_C._viewport_space_y];
353 do 353 do
354 { 354 {
355 v1[v4 + *v8] = 255; 355 v1[v4 + *v8] = 255;
356 ++pNode->field_C._viewport_space_y; 356 ++pNode->field_C._viewport_space_y;
357 v1[v4 + *v5] = 255; 357 v1[v4 + *v5] = 255;
873 { 873 {
874 v24 = 2 * stru_F8A590._viewport_space_y; 874 v24 = 2 * stru_F8A590._viewport_space_y;
875 v120 = 2 * stru_F8A590._viewport_space_y; 875 v120 = 2 * stru_F8A590._viewport_space_y;
876 while ( 1 ) 876 while ( 1 )
877 { 877 {
878 a1 = *(__int16 *)((char *)stru_F8A590.array_18 + v24); 878 a1 = *(__int16 *)((char *)stru_F8A590.viewport_left_side + v24);
879 sub_4AE313(a1, v21, &stru_F81018.field_0); 879 sub_4AE313(a1, v21, &stru_F81018.field_0);
880 if ( LOBYTE(viewparams->field_20) ) 880 if ( LOBYTE(viewparams->field_20) )
881 { 881 {
882 v27 = v111 * (v24 - pBLVRenderParams->uViewportY); 882 v27 = v111 * (v24 - pBLVRenderParams->uViewportY);
883 pZPixel = &pBLVRenderParams->pTargetZBuffer[2 883 pZPixel = &pBLVRenderParams->pTargetZBuffer[2
884 * (*(__int16 *)((char *)stru_F8A590.array_18 + v24) 884 * (*(__int16 *)((char *)stru_F8A590.viewport_left_side + v24)
885 + 320 * (v24 - pBLVRenderParams->uViewportY)) 885 + 320 * (v24 - pBLVRenderParams->uViewportY))
886 - pBLVRenderParams->uViewportX]; 886 - pBLVRenderParams->uViewportX];
887 pColorPixel = &pBLVRenderParams->pRenderTarget[v27 887 pColorPixel = &pBLVRenderParams->pRenderTarget[v27
888 + 2 * *(__int16 *)((char *)stru_F8A590.array_18 + v24) 888 + 2 * *(__int16 *)((char *)stru_F8A590.viewport_left_side + v24)
889 - pBLVRenderParams->uViewportX]; 889 - pBLVRenderParams->uViewportX];
890 v26 = &pBLVRenderParams->pRenderTarget[v27 890 v26 = &pBLVRenderParams->pRenderTarget[v27
891 + 2 * *(__int16 *)((char *)stru_F8A590.array_3D8 + v24) 891 + 2 * *(__int16 *)((char *)stru_F8A590.viewport_right_side + v24)
892 - pBLVRenderParams->uViewportX]; 892 - pBLVRenderParams->uViewportX];
893 v23 = v119; 893 v23 = v119;
894 } 894 }
895 else 895 else
896 { 896 {
897 v25 = *(__int16 *)((char *)stru_F8A590.array_18 + v24); 897 v25 = *(__int16 *)((char *)stru_F8A590.viewport_left_side + v24);
898 pZPixel = &pBLVRenderParams->pTargetZBuffer[v25 + v23]; 898 pZPixel = &pBLVRenderParams->pTargetZBuffer[v25 + v23];
899 pColorPixel = &pBLVRenderParams->pRenderTarget[v25 + v110]; 899 pColorPixel = &pBLVRenderParams->pRenderTarget[v25 + v110];
900 v26 = &pBLVRenderParams->pRenderTarget[v110 + *(__int16 *)((char *)stru_F8A590.array_3D8 + v24)]; 900 v26 = &pBLVRenderParams->pRenderTarget[v110 + *(__int16 *)((char *)stru_F8A590.viewport_right_side + v24)];
901 } 901 }
902 v131 = (unsigned int)v26; 902 v131 = (unsigned int)v26;
903 HIWORD(v28) = HIWORD(stru_F81018.field_0.field_0); 903 HIWORD(v28) = HIWORD(stru_F81018.field_0.field_0);
904 LOWORD(v28) = 0; 904 LOWORD(v28) = 0;
905 v105 = stru_F8AD28.field_0 | v28; 905 v105 = stru_F8AD28.field_0 | v28;
1257 { 1257 {
1258 //unsigned int v3; // edx@1 1258 //unsigned int v3; // edx@1
1259 //stru170 *v4; // ebx@1 1259 //stru170 *v4; // ebx@1
1260 //BLVFace *v5; // eax@1 1260 //BLVFace *v5; // eax@1
1261 //int v6; // ecx@2 1261 //int v6; // ecx@2
1262 unsigned __int16 v7; // ax@11 1262 unsigned __int16 TransitionSectorID; // ax@11
1263 Vec3_short_ *v8; // esi@15 1263 //Vec3_short_ *v8; // esi@15
1264 int v9; // edx@15 1264 int v9; // edx@15
1265 //signed int v10; // eax@18 1265 //signed int v10; // eax@18
1266 //signed int v11; // edi@19 1266 //signed int v11; // edi@19
1267 //signed int v12; // ecx@19 1267 //signed int v12; // ecx@19
1268 //signed int v13; // esi@19 1268 //signed int v13; // esi@19
1324 { 1324 {
1325 if ( abs(pFace->pFacePlane_old.dist + pBLVRenderParams->vPartyPos.x * pFace->pFacePlane_old.vNormal.x 1325 if ( abs(pFace->pFacePlane_old.dist + pBLVRenderParams->vPartyPos.x * pFace->pFacePlane_old.vNormal.x
1326 + pBLVRenderParams->vPartyPos.y * pFace->pFacePlane_old.vNormal.y 1326 + pBLVRenderParams->vPartyPos.y * pFace->pFacePlane_old.vNormal.y
1327 + pBLVRenderParams->vPartyPos.z * pFace->pFacePlane_old.vNormal.z) <= 589824 ) // we sure are standing at the portal plane 1327 + pBLVRenderParams->vPartyPos.z * pFace->pFacePlane_old.vNormal.z) <= 589824 ) // we sure are standing at the portal plane
1328 { 1328 {
1329 v7 = pFace->uSectorID; 1329 TransitionSectorID = pFace->uSectorID;
1330 if ( nodes[0].uSectorID == v7 ) // draw back sector 1330 if ( nodes[0].uSectorID == TransitionSectorID ) // draw back sector
1331 v7 = pFace->uBackSectorID; 1331 TransitionSectorID = pFace->uBackSectorID;
1332 nodes[num_nodes].uSectorID = v7; 1332 nodes[num_nodes].uSectorID = TransitionSectorID;
1333 nodes[num_nodes].uFaceID = uFaceID; 1333 nodes[num_nodes].uFaceID = uFaceID;
1334 nodes[num_nodes].uViewportX = pBLVRenderParams->uViewportX; 1334 nodes[num_nodes].uViewportX = pBLVRenderParams->uViewportX;
1335 nodes[num_nodes].uViewportZ = pBLVRenderParams->uViewportZ; 1335 nodes[num_nodes].uViewportZ = pBLVRenderParams->uViewportZ;
1336 nodes[num_nodes].uViewportY = pBLVRenderParams->uViewportY; 1336 nodes[num_nodes].uViewportY = pBLVRenderParams->uViewportY;
1337 nodes[num_nodes].uViewportW = pBLVRenderParams->uViewportW; 1337 nodes[num_nodes].uViewportW = pBLVRenderParams->uViewportW;
1338 nodes[num_nodes].field_C._43F9E1(pBLVRenderParams->uViewportX, pBLVRenderParams->uViewportY, 1338 nodes[num_nodes].field_C.GetViewportData(pBLVRenderParams->uViewportX, pBLVRenderParams->uViewportY,
1339 pBLVRenderParams->uViewportZ, pBLVRenderParams->uViewportW); 1339 pBLVRenderParams->uViewportZ, pBLVRenderParams->uViewportW);
1340 AddBspNodeToRenderList(++num_nodes - 1); 1340 AddBspNodeToRenderList(++num_nodes - 1);
1341 return; 1341 return;
1342 } 1342 }
1343 //v5 = v39; 1343 //v5 = v39;
1344 //v6 = a0; 1344 //v6 = a0;
1345 } 1345 }
1346 1346
1347 v8 = &pIndoor->pVertices[pFace->pVertexIDs[0]]; 1347 //отбраковка по ориентации
1348 v9 = pFace->pFacePlane_old.vNormal.x * (v8->x - pBLVRenderParams->vPartyPos.x) 1348 v9 = pFace->pFacePlane_old.vNormal.x * (pIndoor->pVertices[pFace->pVertexIDs[0]].x - pBLVRenderParams->vPartyPos.x)
1349 + pFace->pFacePlane_old.vNormal.y * (v8->y - pBLVRenderParams->vPartyPos.y) 1349 + pFace->pFacePlane_old.vNormal.y * (pIndoor->pVertices[pFace->pVertexIDs[0]].y - pBLVRenderParams->vPartyPos.y)
1350 + pFace->pFacePlane_old.vNormal.z * (v8->z - pBLVRenderParams->vPartyPos.z); 1350 + pFace->pFacePlane_old.vNormal.z * (pIndoor->pVertices[pFace->pVertexIDs[0]].z - pBLVRenderParams->vPartyPos.z);
1351 if (p->uSectorID != pFace->uSectorID) 1351 if (p->uSectorID != pFace->uSectorID)
1352 v9 = -v9; 1352 v9 = -v9;
1353 if (v9 >= 0) 1353 if (v9 >= 0)
1354 return; 1354 return;
1355 1355
1489 v3->nodes[v3->num_nodes].uFaceID = uFaceID; 1489 v3->nodes[v3->num_nodes].uFaceID = uFaceID;
1490 v3->nodes[v3->num_nodes].uViewportX = LOWORD(pBLVRenderParams->uViewportX); 1490 v3->nodes[v3->num_nodes].uViewportX = LOWORD(pBLVRenderParams->uViewportX);
1491 v3->nodes[v3->num_nodes].uViewportZ = LOWORD(pBLVRenderParams->uViewportZ); 1491 v3->nodes[v3->num_nodes].uViewportZ = LOWORD(pBLVRenderParams->uViewportZ);
1492 v3->nodes[v3->num_nodes].uViewportY = LOWORD(pBLVRenderParams->uViewportY); 1492 v3->nodes[v3->num_nodes].uViewportY = LOWORD(pBLVRenderParams->uViewportY);
1493 v3->nodes[v3->num_nodes].uViewportW = LOWORD(pBLVRenderParams->uViewportW); 1493 v3->nodes[v3->num_nodes].uViewportW = LOWORD(pBLVRenderParams->uViewportW);
1494 v3->nodes[v3->num_nodes++].field_C._43F9E1( 1494 v3->nodes[v3->num_nodes++].field_C.GetViewportData(
1495 SLOWORD(pBLVRenderParams->uViewportX), 1495 SLOWORD(pBLVRenderParams->uViewportX),
1496 pBLVRenderParams->uViewportY, 1496 pBLVRenderParams->uViewportY,
1497 SLOWORD(pBLVRenderParams->uViewportZ), 1497 SLOWORD(pBLVRenderParams->uViewportZ),
1498 pBLVRenderParams->uViewportW); 1498 pBLVRenderParams->uViewportW);
1499 v7 = v3->num_nodes - 1; 1499 v7 = v3->num_nodes - 1;
1608 if ( stru_F8A590._viewport_space_y <= stru_F8A590._viewport_space_w ) 1608 if ( stru_F8A590._viewport_space_y <= stru_F8A590._viewport_space_w )
1609 { 1609 {
1610 v6 = 640 * stru_F8A590._viewport_space_y; 1610 v6 = 640 * stru_F8A590._viewport_space_y;
1611 do 1611 do
1612 { 1612 {
1613 v5[v6 + stru_F8A590.array_18[v4]] = -1; 1613 v5[v6 + stru_F8A590.viewport_left_side[v4]] = -1;
1614 v7 = v6 + stru_F8A590.array_3D8[v4]; 1614 v7 = v6 + stru_F8A590.viewport_right_side[v4];
1615 v6 += 640; 1615 v6 += 640;
1616 v5[v7] = -1; 1616 v5[v7] = -1;
1617 ++v4; 1617 ++v4;
1618 } 1618 }
1619 while ( v4 <= stru_F8A590._viewport_space_w ); 1619 while ( v4 <= stru_F8A590._viewport_space_w );