Mercurial > mm7
diff Render.cpp @ 2166:00bd098f6435
fixpoint_mul in different functions and others
author | Ritor1 |
---|---|
date | Fri, 17 Jan 2014 17:58:48 +0600 |
parents | 0a1438c16c2b |
children | 5b27c035a241 |
line wrap: on
line diff
--- a/Render.cpp Thu Jan 16 17:34:48 2014 +0600 +++ b/Render.cpp Fri Jan 17 17:58:48 2014 +0600 @@ -4323,18 +4323,8 @@ //----- (004A1B22) -------------------------------------------------------- unsigned int Render::Billboard_ProbablyAddToListAndSortByZOrder(float z) { - //unsigned int v2; // ebx@1 - //double v4; // st7@5 - //unsigned int v5; // esi@5 - //int v6; // ecx@5 unsigned int v7; // edx@6 - char *v8; // ecx@12 - void *v9; // edi@16 - unsigned int v10; // eax@16 - void *v11; // edi@21 - unsigned int v12; // eax@21 - - //v2 = uNumBillboardsToDraw; + if (uNumBillboardsToDraw >= 999 ) return 0; if (!uNumBillboardsToDraw) @@ -4343,9 +4333,6 @@ return 0; } - //v4 = *(float *)&a1; - //v5 = pRenderer->uNumBillboardsToDraw; - //v6 = 0; for (int left = 0, right = uNumBillboardsToDraw; left < right; ) // binsearch { v7 = left + (right - left) / 2; @@ -4355,48 +4342,37 @@ left = v7 + 1; } - v8 = (char *)&pRenderer->pBillboardRenderListD3D[v7].z_order; - if (z > *(float *)v8 ) + if (z > pRenderer->pBillboardRenderListD3D[v7].z_order ) { if ( v7 == pRenderer->uNumBillboardsToDraw - 1 ) - { v7 = pRenderer->uNumBillboardsToDraw; - } else { if ( (signed int)pRenderer->uNumBillboardsToDraw > (signed int)v7 ) { - v9 = &pRenderer->pBillboardRenderListD3D[pRenderer->uNumBillboardsToDraw]; - v10 = pRenderer->uNumBillboardsToDraw - v7; - do + for ( uint i = 0; i < pRenderer->uNumBillboardsToDraw - v7; i++ ) { - memcpy(v9, (char *)v9 - 156, 0x9Cu); - v9 = (char *)v9 - 156; - --v10; + memcpy(&pRenderer->pBillboardRenderListD3D[pRenderer->uNumBillboardsToDraw - i], + &pRenderer->pBillboardRenderListD3D[pRenderer->uNumBillboardsToDraw - (i + 1)], + sizeof(pRenderer->pBillboardRenderListD3D[pRenderer->uNumBillboardsToDraw - i])); } - while ( v10 ); } ++v7; } -//LABEL_23: uNumBillboardsToDraw++; return v7; } - if (z <= *(float *)v8 ) + if (z <= pRenderer->pBillboardRenderListD3D[v7].z_order ) { if ( (signed int)pRenderer->uNumBillboardsToDraw > (signed int)v7 ) { - v11 = &pRenderer->pBillboardRenderListD3D[pRenderer->uNumBillboardsToDraw]; - v12 = pRenderer->uNumBillboardsToDraw - v7; - do - { - memcpy(v11, (char *)v11 - 156, 0x9Cu); - v11 = (char *)v11 - 156; - --v12; - } - while ( v12 ); - } - //goto LABEL_23; + for ( uint i = 0; i < pRenderer->uNumBillboardsToDraw - v7; i++ ) + { + memcpy(&pRenderer->pBillboardRenderListD3D[pRenderer->uNumBillboardsToDraw - i], + &pRenderer->pBillboardRenderListD3D[pRenderer->uNumBillboardsToDraw -(i + 1)], + sizeof(pRenderer->pBillboardRenderListD3D[pRenderer->uNumBillboardsToDraw - i])); + } + } uNumBillboardsToDraw++; return v7; } @@ -8587,7 +8563,6 @@ { if (pBillboardRenderListD3D[i].opacity != RenderBillboardD3D::NoBlend) SetBillboardBlendOptions(pBillboardRenderListD3D[i].opacity); - pRenderD3D->pDevice->SetTexture(0, pBillboardRenderListD3D[i].pTexture); ErrD3D(pRenderD3D->pDevice->DrawPrimitive(D3DPT_TRIANGLEFAN, @@ -8817,14 +8792,14 @@ array_77EC08[pODMRenderParams->uNumPolygons].flags |= 2; if (pOutdoor->pBModels[model_id].pFaces[face_id].uAttributes & FACE_INDOOR_SKY ) HIBYTE(array_77EC08[pODMRenderParams->uNumPolygons].flags) |= 4; - if ( pOutdoor->pBModels[model_id].pFaces[face_id].uAttributes & 4 ) + if ( pOutdoor->pBModels[model_id].pFaces[face_id].uAttributes & FACE_UNKNOW8 ) HIBYTE(array_77EC08[pODMRenderParams->uNumPolygons].flags) |= 4; else { - if ( pOutdoor->pBModels[model_id].pFaces[face_id].uAttributes & 0x20 ) + if ( pOutdoor->pBModels[model_id].pFaces[face_id].uAttributes & FACE_UNKNOW9 ) HIBYTE(array_77EC08[pODMRenderParams->uNumPolygons].flags) |= 8; } - if (pOutdoor->pBModels[model_id].pFaces[face_id].uAttributes & 0x0800) + if (pOutdoor->pBModels[model_id].pFaces[face_id].uAttributes & FACE_UNKNOW10) array_77EC08[pODMRenderParams->uNumPolygons].flags |= 0x2000; else {