Mercurial > mm7
diff DecalBuilder.cpp @ 1076:9b6e252658e8
more DecalBuilder
author | zipi |
---|---|
date | Sat, 25 May 2013 14:43:27 +0100 |
parents | 1e38e5c049f3 |
children | 2210109f280d |
line wrap: on
line diff
--- a/DecalBuilder.cpp Sat May 25 14:07:26 2013 +0100 +++ b/DecalBuilder.cpp Sat May 25 14:43:27 2013 +0100 @@ -145,6 +145,9 @@ int v43; // [sp+3Ch] [bp-Ch]@21 //DecalBuilder *thisa; // [sp+40h] [bp-8h]@1 //RenderVertexSoft *a11; // [sp+44h] [bp-4h]@8 + int a6a; + int *a6b; + // __debugbreak(); @@ -177,22 +180,12 @@ //a11 = a6; if ( a7 ) { - if ( a5 > 0 ) - { - v11 = static_AE4F90; - v12 = (char *)a6 - (char *)static_AE4F90; - a6 = (RenderVertexSoft *)a5; - do + for(int i=0; i < a5;i++) { - v13 = (RenderVertexSoft *)((char *)v11 + v12); - v14 = v11; - ++v11; - v15 = a6 == (RenderVertexSoft *)1; - a6 = (RenderVertexSoft *)((char *)a6 - 1); - memcpy(v14, v13, 0x30u); + memcpy(&static_AE4F90[i], a6, 0x30u); + ++a6; } while ( !v15 ); - } v16 = a4; if ( pGame->pIndoorCameraD3D->_437376(a4, static_AE4F90, (unsigned int *)&a5) == 1 ) { @@ -221,14 +214,11 @@ int _a7 = 0; if ( this->uNumDecals > 0 ) { - a6 = (RenderVertexSoft *)this->std__vector_30B00C; + a6b = this->std__vector_30B00C; do { - v21 = &pBloodsplatContainer->std__vector_pBloodsplats[LODWORD(a6->vWorldPosition.x)]; - *(float *)&v37 = v21->z; - v36 = v21->y; - v35 = v21->x; - v22 = _43F5C8_get_point_light_level_with_respect_to_lights(light_level, uSectorID, v35, v36, *(float *)&v37); + v21 = &pBloodsplatContainer->std__vector_pBloodsplats[*a6b]; + v22 = _43F5C8_get_point_light_level_with_respect_to_lights(light_level, uSectorID, v21->x, v21->y, v21->z); v23 = v21->b; v24 = v21->x; v42 = v22; @@ -242,7 +232,7 @@ v37 = a8; v40 = (signed __int64)v26; v28 = v21->dot_dist; - LODWORD(v36) = (uint32)a6; + //LODWORD(v36) = (uint32)a6; a5a = v25; v39 = v27; LODWORD(v35) = a5; @@ -257,7 +247,7 @@ MessageBoxW(nullptr, L"Error: Failed to build decal geometry", L"E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\PolyProjector.cpp:114", 0); } ++_a7; - a6 = (RenderVertexSoft *)((char *)a6 + 4); + ++a6b; } while ( _a7 < this->uNumDecals ); }