Mercurial > mm7
diff Render.cpp @ 2274:90f56da08d76
small cleaning
author | Ritor1 |
---|---|
date | Fri, 14 Mar 2014 09:32:25 +0600 |
parents | 2e02c384c62b |
children | 8193a64c7461 |
line wrap: on
line diff
--- a/Render.cpp Thu Feb 27 00:36:31 2014 +0100 +++ b/Render.cpp Fri Mar 14 09:32:25 2014 +0600 @@ -322,11 +322,11 @@ (norm->y * (float)pOutdoor->vSunlight.y / 65536.0) - (norm->z * (float)pOutdoor->vSunlight.z / 65536.0)); pTilePolygon->dimming_level = 20.0 - floorf(20.0 * _f + 0.5f); - //if ( norm_idx < 0 || norm_idx > uNumTerrainNormals - 1 ) - //norm = 0; - //else - //norm = &pTerrainNormals[norm_idx]; - //pGame->pLightmapBuilder->StackLights_TerrainFace(norm, &a3a, array_50AC10, 4, 1); + if ( norm_idx < 0 || norm_idx > uNumTerrainNormals - 1 ) + norm = 0; + else + norm = &pTerrainNormals[norm_idx]; + //pGame->pLightmapBuilder->StackLights_TerrainFace(norm, &a3a, array_50AC10, 4, 1);//Ritor1: slows //pDecalBuilder->_49BE8A(pTilePolygon, norm, &a3a, array_50AC10, 4, 1); //----------------------------------------------------------------------------------------------- @@ -871,16 +871,17 @@ for (int i = 0; i < uNumLevelDecorations; ++i) { - LevelDecoration* decor = &pLevelDecorations[i]; - if ((!(decor->uFlags & LEVEL_DECORATION_OBELISK_CHEST) || decor->IsObeliskChestActive()) && !(decor->uFlags & LEVEL_DECORATION_INVISIBLE)) - { - DecorationDesc* decor_desc = pDecorationList->pDecorations + decor->uDecorationDescID; + //LevelDecoration* decor = &pLevelDecorations[i]; + if ((!(pLevelDecorations[i].uFlags & LEVEL_DECORATION_OBELISK_CHEST) + || pLevelDecorations[i].IsObeliskChestActive()) && !(pLevelDecorations[i].uFlags & LEVEL_DECORATION_INVISIBLE)) + { + DecorationDesc* decor_desc = &pDecorationList->pDecorations[pLevelDecorations[i].uDecorationDescID]; if ( (char)decor_desc->uFlags >= 0 ) { if ( !(decor_desc->uFlags & 0x22) ) { v6 = pMiscTimer->uTotalGameTimeElapsed; - v7 = abs(decor->vPosition.x + decor->vPosition.y); + v7 = abs(pLevelDecorations[i].vPosition.x + pLevelDecorations[i].vPosition.y); #pragma region "New: seasons change" extern bool change_seasons; @@ -949,10 +950,10 @@ #pragma endregion //v8 = pSpriteFrameTable->GetFrame(decor_desc->uSpriteID, v6 + v7); - v10 = (unsigned __int16 *)stru_5C6E00->Atan2(decor->vPosition.x - pGame->pIndoorCameraD3D->vPartyPos.x, - decor->vPosition.y - pGame->pIndoorCameraD3D->vPartyPos.y); + v10 = (unsigned __int16 *)stru_5C6E00->Atan2(pLevelDecorations[i].vPosition.x - pGame->pIndoorCameraD3D->vPartyPos.x, + pLevelDecorations[i].vPosition.y - pGame->pIndoorCameraD3D->vPartyPos.y); v38 = 0; - v13 = ((signed int)(stru_5C6E00->uIntegerPi + ((signed int)stru_5C6E00->uIntegerPi >> 3) + decor->field_10_y_rot - (signed int)v10) >> 8) & 7; + v13 = ((signed int)(stru_5C6E00->uIntegerPi + ((signed int)stru_5C6E00->uIntegerPi >> 3) + pLevelDecorations[i].field_10_y_rot - (signed int)v10) >> 8) & 7; v37 = (unsigned __int16 *)v13; if ( v8->uFlags & 2 ) v38 = 2; @@ -976,21 +977,21 @@ v14 = 255; v15 = 255; } - pStationaryLightsStack->AddLight(decor->vPosition.x, decor->vPosition.y, decor->vPosition.z + decor_desc->uDecorationHeight / 2, + pStationaryLightsStack->AddLight(pLevelDecorations[i].vPosition.x, pLevelDecorations[i].vPosition.y, pLevelDecorations[i].vPosition.z + decor_desc->uDecorationHeight / 2, v8->uGlowRadius, v14, v15, v16, _4E94D0_light_type); } - v17 = (decor->vPosition.x - pGame->pIndoorCameraD3D->vPartyPos.x) << 16; + v17 = (pLevelDecorations[i].vPosition.x - pGame->pIndoorCameraD3D->vPartyPos.x) << 16; if (pGame->pIndoorCameraD3D->sRotationX) { - v40 = (decor->vPosition.y - pGame->pIndoorCameraD3D->vPartyPos.y) << 16; + v40 = (pLevelDecorations[i].vPosition.y - pGame->pIndoorCameraD3D->vPartyPos.y) << 16; v18 = fixpoint_mul(v17, pGame->pIndoorCameraD3D->int_cosine_y) + fixpoint_mul(v40, pGame->pIndoorCameraD3D->int_sine_y); - v41 = fixpoint_mul((decor->vPosition.z - pGame->pIndoorCameraD3D->vPartyPos.z) << 16, pGame->pIndoorCameraD3D->int_sine_x); + v41 = fixpoint_mul((pLevelDecorations[i].vPosition.z - pGame->pIndoorCameraD3D->vPartyPos.z) << 16, pGame->pIndoorCameraD3D->int_sine_x); v19 = fixpoint_mul(v18, pGame->pIndoorCameraD3D->int_cosine_x); - v20 = v19 + fixpoint_mul((decor->vPosition.z - pGame->pIndoorCameraD3D->vPartyPos.z) << 16, pGame->pIndoorCameraD3D->int_sine_x); + v20 = v19 + fixpoint_mul((pLevelDecorations[i].vPosition.z - pGame->pIndoorCameraD3D->vPartyPos.z) << 16, pGame->pIndoorCameraD3D->int_sine_x); if ( v20 >= 0x40000 && v20 <= pODMRenderParams->shading_dist_mist << 16 ) { v21 = fixpoint_mul(v40, pGame->pIndoorCameraD3D->int_cosine_y) - fixpoint_mul(v17, pGame->pIndoorCameraD3D->int_sine_y); - v22 = fixpoint_mul((decor->vPosition.z - pGame->pIndoorCameraD3D->vPartyPos.z) << 16, pGame->pIndoorCameraD3D->int_cosine_x) - fixpoint_mul(v18, pGame->pIndoorCameraD3D->int_sine_x); + v22 = fixpoint_mul((pLevelDecorations[i].vPosition.z - pGame->pIndoorCameraD3D->vPartyPos.z) << 16, pGame->pIndoorCameraD3D->int_cosine_x) - fixpoint_mul(v18, pGame->pIndoorCameraD3D->int_sine_x); if ( 2 * abs(v20) >= abs(v21) ) { LODWORD(v24) = 0; @@ -1014,9 +1015,9 @@ HIBYTE(v29) |= 2; pBillboardRenderList[::uNumBillboardsToDraw].uPalette = v8->uPaletteIndex; pBillboardRenderList[::uNumBillboardsToDraw].field_1E = v29; - pBillboardRenderList[::uNumBillboardsToDraw].world_x = decor->vPosition.x; - pBillboardRenderList[::uNumBillboardsToDraw].world_y = decor->vPosition.y; - pBillboardRenderList[::uNumBillboardsToDraw].world_z = decor->vPosition.z; + pBillboardRenderList[::uNumBillboardsToDraw].world_x = pLevelDecorations[i].vPosition.x; + pBillboardRenderList[::uNumBillboardsToDraw].world_y = pLevelDecorations[i].vPosition.y; + pBillboardRenderList[::uNumBillboardsToDraw].world_z = pLevelDecorations[i].vPosition.z; pBillboardRenderList[::uNumBillboardsToDraw].uScreenSpaceY = v40; HIWORD(v30) = HIWORD(v20); v31 = PID(OBJECT_Decoration,i); @@ -1035,13 +1036,13 @@ } else { - v42 = (decor->vPosition.x - pGame->pIndoorCameraD3D->vPartyPos.x) << 16; - v40 = (decor->vPosition.y - pGame->pIndoorCameraD3D->vPartyPos.y) << 16; + v42 = (pLevelDecorations[i].vPosition.x - pGame->pIndoorCameraD3D->vPartyPos.x) << 16; + v40 = (pLevelDecorations[i].vPosition.y - pGame->pIndoorCameraD3D->vPartyPos.y) << 16; v20 = fixpoint_mul(v17, pGame->pIndoorCameraD3D->int_cosine_y) + fixpoint_mul(v40, pGame->pIndoorCameraD3D->int_sine_y); if ( v20 >= 0x40000 && v20 <= pODMRenderParams->shading_dist_mist << 16 ) { v21 = fixpoint_mul(v40, pGame->pIndoorCameraD3D->int_cosine_y) - fixpoint_mul(v42, pGame->pIndoorCameraD3D->int_sine_y); - v22 = (decor->vPosition.z - pGame->pIndoorCameraD3D->vPartyPos.z) << 16; + v22 = (pLevelDecorations[i].vPosition.z - pGame->pIndoorCameraD3D->vPartyPos.z) << 16; v42 = v22; if ( 2 * abs(v20) >= abs(v21) ) { @@ -1066,9 +1067,9 @@ HIBYTE(v29) |= 2; pBillboardRenderList[::uNumBillboardsToDraw].uPalette = v8->uPaletteIndex; pBillboardRenderList[::uNumBillboardsToDraw].field_1E = v29; - pBillboardRenderList[::uNumBillboardsToDraw].world_x = decor->vPosition.x; - pBillboardRenderList[::uNumBillboardsToDraw].world_y = decor->vPosition.y; - pBillboardRenderList[::uNumBillboardsToDraw].world_z = decor->vPosition.z; + pBillboardRenderList[::uNumBillboardsToDraw].world_x = pLevelDecorations[i].vPosition.x; + pBillboardRenderList[::uNumBillboardsToDraw].world_y = pLevelDecorations[i].vPosition.y; + pBillboardRenderList[::uNumBillboardsToDraw].world_z = pLevelDecorations[i].vPosition.z; pBillboardRenderList[::uNumBillboardsToDraw].uScreenSpaceY = v40; HIWORD(v30) = HIWORD(v20); v31 = PID(OBJECT_Decoration,i); @@ -1092,9 +1093,9 @@ memset(&local_0, 0, 0x68); local_0.type = ParticleType_Bitmap | ParticleType_Rotating | ParticleType_8; local_0.uDiffuse = 0xFF3C1E; - local_0.x = (double)decor->vPosition.x; - local_0.y = (double)decor->vPosition.y; - local_0.z = (double)decor->vPosition.z; + local_0.x = (double)pLevelDecorations[i].vPosition.x; + local_0.y = (double)pLevelDecorations[i].vPosition.y; + local_0.z = (double)pLevelDecorations[i].vPosition.z; local_0.r = 0.0; local_0.g = 0.0; local_0.b = 0.0;