Mercurial > mm7
diff Render.cpp @ 693:e0a1fccc89b1
map render fixes
author | Gloval |
---|---|
date | Sun, 17 Mar 2013 01:50:34 +0400 |
parents | c0bfb386b15f |
children | af08fc9e29c8 a5ee769b02c6 |
line wrap: on
line diff
--- a/Render.cpp Sat Mar 16 21:57:32 2013 +0400 +++ b/Render.cpp Sun Mar 17 01:50:34 2013 +0400 @@ -332,7 +332,7 @@ v5 = v4->pTexture; if ( v5 ) { - if ( v3->field_8 >= (signed int)pViewport->uViewportX || v3->field_C != pViewport->uViewportX ) + if ( v3->field_8 >= (signed int)pViewport->uViewportTL_X || v3->field_C != pViewport->uViewportTL_X ) { LOBYTE(v4->field_32) |= 2u; v14 = *(int *)&v4->flags; @@ -650,17 +650,17 @@ v2 = (stru148 *)v30->field_E; if ( v2 != (stru148 *)unnamed_6BE060[1] ) { - LOWORD(v2) = LOWORD(pViewport->uViewportX); - if ( v30->field_8 >= (signed int)pViewport->uViewportX ) + LOWORD(v2) = LOWORD(pViewport->uViewportTL_X); + if ( v30->field_8 >= (signed int)pViewport->uViewportTL_X ) goto LABEL_124; - if ( v30->field_C == pViewport->uViewportX ) + if ( v30->field_C == pViewport->uViewportTL_X ) { v30->field_E = LOWORD(unnamed_6BE060[1]); } else { - v30->field_8 = LOWORD(pViewport->uViewportX); - v30->field_C -= LOWORD(pViewport->uViewportX); + v30->field_8 = LOWORD(pViewport->uViewportTL_X); + v30->field_C -= LOWORD(pViewport->uViewportTL_X); if ( v30->field_C >= 0 ) { LABEL_124: @@ -693,13 +693,13 @@ v2 = (stru148 *)v13->field_E; if ( v2 != (stru148 *)unnamed_6BE060[1] ) { - LOWORD(v2) = LOWORD(pViewport->uViewportX); - if ( v13->field_8 >= (signed int)pViewport->uViewportX ) + LOWORD(v2) = LOWORD(pViewport->uViewportTL_X); + if ( v13->field_8 >= (signed int)pViewport->uViewportTL_X ) goto LABEL_109; - if ( v13->field_C != pViewport->uViewportX ) - { - v13->field_8 = LOWORD(pViewport->uViewportX); - v13->field_C -= LOWORD(pViewport->uViewportX); + if ( v13->field_C != pViewport->uViewportTL_X ) + { + v13->field_8 = LOWORD(pViewport->uViewportTL_X); + v13->field_C -= LOWORD(pViewport->uViewportTL_X); if ( v13->field_C >= 0 ) { LABEL_109: @@ -790,7 +790,7 @@ v3 = a2; v4 = a1; - v5 = (double)(pViewport->uViewportZ - pViewport->uViewportX) * 0.5 / tan(0.6457717418670654) + 0.5; + v5 = (double)(pViewport->uViewportBR_X - pViewport->uViewportTL_X) * 0.5 / tan(0.6457717418670654) + 0.5; v35 = v5 + 6.7553994e15; if ( LODWORD(v35) ) { @@ -824,7 +824,7 @@ break; v12 = a1a; } - if ( v11 <= (signed int)pViewport->uViewportY ) + if ( v11 <= (signed int)pViewport->uViewportTL_Y ) break; v9 = ((unsigned __int64)(v3->v_18.z * (signed __int64)v12) >> 16) + v3->v_18.x; --v54; @@ -3004,10 +3004,10 @@ billboard.pTarget = pRenderer->pTargetSurface; billboard.pTargetZ = pRenderer->pActiveZBuffer; billboard.uTargetPitch = pRenderer->uTargetSurfacePitch; - billboard.uViewportX = pViewport->uViewportX; - billboard.uViewportY = pViewport->uViewportY; - billboard.uViewportZ = pViewport->uViewportZ - 1; - billboard.uViewportW = pViewport->uViewportW; + billboard.uViewportX = pViewport->uViewportTL_X; + billboard.uViewportY = pViewport->uViewportTL_Y; + billboard.uViewportZ = pViewport->uViewportBR_X - 1; + billboard.uViewportW = pViewport->uViewportBR_Y; pOutdoorCamera->uNumBillboards = uNumBillboardsToDraw; for (int i = 0; i < ::uNumBillboardsToDraw; ++i) @@ -3723,7 +3723,7 @@ v42 = pSprites_LOD->pSpriteHeaders[(signed __int16)*v37].uWidth >> 1; b = (unsigned __int64)(v42 * (signed __int64)v41) >> 16; } - if ( b + v25 >= (signed int)pViewport->uViewportX && v25 - b <= (signed int)pViewport->uViewportZ ) + if ( b + v25 >= (signed int)pViewport->uViewportTL_X && v25 - b <= (signed int)pViewport->uViewportBR_X ) { if (::uNumBillboardsToDraw >= 500) return; @@ -9244,11 +9244,11 @@ a3 = v4 * 255.0; v39 = a3 + 6.7553994e15; LODWORD(v40) = LODWORD(v39); - v5 = (double)(signed int)pViewport->uViewportX; + v5 = (double)(signed int)pViewport->uViewportTL_X; v36[0].pos.x = v5; - v6 = (double)(signed int)pViewport->uViewportY; + v6 = (double)(signed int)pViewport->uViewportTL_Y; v7 = this_ | (LODWORD(v39) << 24); - this_ = pViewport->uViewportW + 1; + this_ = pViewport->uViewportBR_Y + 1; v36[0].specular = 0; v36[0].pos.y = v6; v36[0].diffuse = v7; @@ -9263,13 +9263,13 @@ v36[3].specular = 0; v36[0].texcoord.y = 0.0; v36[1].pos.x = v5; - v8 = (double)(pViewport->uViewportW + 1); + v8 = (double)(pViewport->uViewportBR_Y + 1); v36[1].pos.y = v8; v36[1].pos.z = 0.0; v36[1].rhw = 1.0; v36[1].texcoord.x = 0.0; v36[1].texcoord.y = 0.0; - v9 = (double)(signed int)pViewport->uViewportZ; + v9 = (double)(signed int)pViewport->uViewportBR_X; v36[2].pos.x = v9; v36[2].pos.y = v8; v36[2].pos.z = 0.0; @@ -9308,10 +9308,10 @@ v40 = (1.0 - a3) * 65536.0; v39 = v40 + 6.7553994e15; LODWORD(a3) = LODWORD(v39); - v38 = (signed int)(pViewport->uViewportZ - pViewport->uViewportX) >> 1; - HIDWORD(v39) = pViewport->uViewportW - pViewport->uViewportY + 1; - v13 = pViewport->uViewportX + ecx0->uTargetSurfacePitch - pViewport->uViewportZ; - v14 = &ecx0->pTargetSurface[pViewport->uViewportX + pViewport->uViewportY * ecx0->uTargetSurfacePitch]; + v38 = (signed int)(pViewport->uViewportBR_X - pViewport->uViewportTL_X) >> 1; + HIDWORD(v39) = pViewport->uViewportBR_Y - pViewport->uViewportTL_Y + 1; + v13 = pViewport->uViewportTL_X + ecx0->uTargetSurfacePitch - pViewport->uViewportBR_X; + v14 = &ecx0->pTargetSurface[pViewport->uViewportTL_X + pViewport->uViewportTL_Y * ecx0->uTargetSurfacePitch]; v37 = 2 * v13; LODWORD(v40) = (int)v14;