Mercurial > mm7
diff Render.cpp @ 265:96bc024a5fed
Render overflows
author | Nomad |
---|---|
date | Mon, 18 Feb 2013 10:04:47 +0200 |
parents | 9b77686e2239 |
children | 2a09e1d6fc8f |
line wrap: on
line diff
--- a/Render.cpp Mon Feb 18 09:20:47 2013 +0200 +++ b/Render.cpp Mon Feb 18 10:04:47 2013 +0200 @@ -1834,21 +1834,23 @@ v8->field_58 = 0; ++pOutdoorCamera->numStru148s; ++pOutdoorCamera->field_44; + assert(pOutdoorCamera->numStru148s < 20000); + v8->uBModelID = 0; v8->uBModelFaceID = 0; v31 = (8 * (0 | (0 << 6))); v8->field_50 = v31 | 6; - for (unsigned int k = 0; k < 4; ++k) + for (unsigned int k = 0; k < v8->uNumVertices; ++k) { memcpy(&array_50AC10[k], &array_73D150[k], sizeof(struct RenderVertexSoft)); array_50AC10[k]._rhw = 1.0 / (array_73D150[k].vWorldViewPosition.x + 0.0000001000000011686097); } bool transparent = false; - if ( v8->flags & 2 && v8->uTileBitmapID == pRenderer->field_1036AC_bitmapid ) + if ( v8->flags & 2 && v8->uTileBitmapID == pRenderer->hd_water_tile_id) { //v80 = false; - v6 = pRenderer->pHDWaterBitmapIDs[pRenderer->field_1036A8_bitmapid]; + v6 = pRenderer->pHDWaterBitmapIDs[pRenderer->hd_water_current_frame]; } else { @@ -1862,7 +1864,7 @@ if (!strnicmp(pBitmaps_LOD->pTextures[v8->uTileBitmapID].pName, "wtrdr", 5)) // all shore tile filenames are wtrdrXXX { pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_ZWRITEENABLE, FALSE); // no Z writing: the shore tile will be draw in the same place, so taking care about z-fighting - pRenderer->DrawTerrainPolygon(v8->uNumVertices, v8, pBitmaps_LOD->pHardwareTextures[pRenderer->pHDWaterBitmapIDs[pRenderer->field_1036A8_bitmapid]], false, true); + pRenderer->DrawTerrainPolygon(v8->uNumVertices, v8, pBitmaps_LOD->pHardwareTextures[pRenderer->pHDWaterBitmapIDs[pRenderer->hd_water_current_frame]], false, true); pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_ZWRITEENABLE, TRUE); } @@ -2174,10 +2176,10 @@ //v37 = *(int *)&v16->flags; if ( ~v16->flags & 1 ) { - if ( v16->flags & 2 && v16->uTileBitmapID == pRenderer->field_1036AC_bitmapid ) + if ( v16->flags & 2 && v16->uTileBitmapID == pRenderer->hd_water_tile_id ) { v80 = false; - v39 = pRenderer->pHDWaterBitmapIDs[pRenderer->field_1036A8_bitmapid]; + v39 = pRenderer->pHDWaterBitmapIDs[pRenderer->hd_water_current_frame]; } else { @@ -2324,10 +2326,10 @@ } else { - if ( v57 & 2 && v40->uTileBitmapID == pRenderer->field_1036AC_bitmapid ) + if ( v57 & 2 && v40->uTileBitmapID == pRenderer->hd_water_tile_id ) { v81 = 0; - v58 = pRenderer->pHDWaterBitmapIDs[pRenderer->field_1036A8_bitmapid]; + v58 = pRenderer->pHDWaterBitmapIDs[pRenderer->hd_water_current_frame]; } else { @@ -2439,10 +2441,10 @@ v74 = v71->flags; if ( !(BYTE1(v74) & 1) ) { - if ( v74 & 2 && v71->uTileBitmapID == pRenderer->field_1036AC_bitmapid ) + if ( v74 & 2 && v71->uTileBitmapID == pRenderer->hd_water_tile_id ) { v80 = false; - v75 = pRenderer->pHDWaterBitmapIDs[pRenderer->field_1036A8_bitmapid]; + v75 = pRenderer->pHDWaterBitmapIDs[pRenderer->hd_water_current_frame]; } else { @@ -4694,6 +4696,9 @@ v1->_gpu_memory_used = 0; uNumBillboardsToDraw = 0; bFogEnabled = false; + + hd_water_tile_id = -1; + hd_water_current_frame = 0; } bool Render::Initialize(bool bWindowed, uint uDefaultDevice,