Mercurial > mm7
diff Indoor.cpp @ 581:2d4204de7a8c
ExecDraw_d3d
author | Ritor1 |
---|---|
date | Wed, 06 Mar 2013 16:51:31 +0600 |
parents | f54481c85df8 |
children | 55d6b756e03a |
line wrap: on
line diff
--- a/Indoor.cpp Wed Mar 06 09:28:27 2013 +0600 +++ b/Indoor.cpp Wed Mar 06 16:51:31 2013 +0600 @@ -372,20 +372,19 @@ _this.uFlags |= INDOOR_CAMERA_DRAW_D3D_OUTLINES; _this.field_0_timer = pEventTimer->uTotalGameTimeElapsed; - _this.vPosition.x = pParty->vPosition.x - ((unsigned __int64)(stru_5C6E00->Cos(pParty->sRotationY) * (signed __int64)pParty->y_rotation_granularity) >> 16); - v2 = stru_5C6E00->Sin(pParty->sRotationY); - v3 = (unsigned __int64)(v2 * (signed __int64)pParty->y_rotation_granularity) >> 16; _this.field_1C_mb_fov = 65; - _this.vPosition.y = pParty->vPosition.y - v3; + _this.vPosition.x = pParty->vPosition.x - ((stru_5C6E00->Cos(pParty->sRotationY) * (signed __int64)pParty->y_rotation_granularity) >> 16); + _this.vPosition.y = pParty->vPosition.y - ((stru_5C6E00->Sin(pParty->sRotationY) * (signed __int64)pParty->y_rotation_granularity) >> 16); + _this.vPosition.z = pParty->vPosition.z + pParty->sEyelevel; + _this.sRotationX = pParty->sRotationX; _this.sRotationY = pParty->sRotationY; - _this.sRotationX = pParty->sRotationX; _this.pRenderTarget = pRenderer->pTargetSurface; _this.uViewportX = pViewport->uScreenX; _this.uViewportY = pViewport->uScreenY; _this.uViewportZ = pViewport->uScreenZ; _this.uViewportW = pViewport->uScreenW; _this.field_3C = pViewport->field_30; - _this.vPosition.z = pParty->vPosition.z + pParty->sEyelevel; + _this.uTargetWidth = 640; _this.uTargetHeight = 480; _this.pTargetZ = pRenderer->pActiveZBuffer; @@ -507,15 +506,8 @@ if (!pVertices || (pGame->pStru9Instance->_498377(a4, 4u, pVertices, static_vertices_F7C228, &uNumVerticesa), uNumVerticesa) ) { - if (pGame->pIndoorCameraD3D->_437285_prolly_colide_vertices_against_frustrum( - static_vertices_F7C228, - &uNumVerticesa, - static_vertices_F7B628, - pGame->pIndoorCameraD3D->std__vector_000034_prolly_frustrum, - 4, - false, - 0) != 1 - || uNumVerticesa ) + if (pGame->pIndoorCameraD3D->_437285_prolly_colide_vertices_against_frustrum(static_vertices_F7C228, &uNumVerticesa, + static_vertices_F7B628, pGame->pIndoorCameraD3D->std__vector_000034_prolly_frustrum, 4, false, 0) != 1 || uNumVerticesa ) { a4a = SHIWORD(stru_F8AD28.uCurrentAmbientLightLevel); v17 = (248 - 8 * SHIWORD(stru_F8AD28.uCurrentAmbientLightLevel)) | (((248 - 8 * SHIWORD(stru_F8AD28.uCurrentAmbientLightLevel)) | ((248 - 8 * SHIWORD(stru_F8AD28.uCurrentAmbientLightLevel)) << 8)) << 8); @@ -535,26 +527,12 @@ stru_F7B60C.face_plane.dist = pFace->pFacePlane.dist; } - if (stru_F8AD28.uNumLightsApplied > 0 && - !(pFace->uAttributes & 0x400000)) - pGame->pLightmapBuilder->ApplyLights( - &stru_F8AD28, - &stru_F7B60C, - uNumVerticesa, - array_507D30, - pVertices, - 0); + if (stru_F8AD28.uNumLightsApplied > 0 && !pFace->uAttributes) + //!(pFace->uAttributes & 0x400000)) + pGame->pLightmapBuilder->ApplyLights(&stru_F8AD28, &stru_F7B60C, uNumVerticesa, array_507D30, pVertices, 0); if (pDecalBuilder->uNumDecals > 0) - pDecalBuilder->ApplyDecals( - a4a, - 1, - &stru_F7B60C, - uNumVerticesa, - array_507D30, - pVertices, - 0, - pFace->uSectorID); + pDecalBuilder->ApplyDecals(a4a, 1, &stru_F7B60C, uNumVerticesa, array_507D30, pVertices, 0, pFace->uSectorID); if (pFace->Animated() && pFace->uBitmapID == pRenderer->hd_water_tile_id ) @@ -579,18 +557,16 @@ v23 = pFace->uBitmapID; goto LABEL_42; } - else if (pFace->uAttributes & 0x4000) + else if (pFace->uAttributes)//(pFace->uAttributes & 0x4000) { - v23 = pTextureFrameTable->GetFrameTexture( - pFace->uBitmapID, - pBLVRenderParams->field_0_timer_); + v23 = pTextureFrameTable->GetFrameTexture(pFace->uBitmapID, pBLVRenderParams->field_0_timer_); LABEL_42: - v27 = pBitmaps_LOD->pHardwareTextures[v23]; - if (pFace->uAttributes & 0x400000) - _479A53_draw_some_blv_poly(uNumVerticesa, uFaceID); - else - pRenderer->DrawIndoorPolygon(uNumVerticesa, pFace, v27, v28, 8 * uFaceID | 6, v17, 0); - return; + v27 = pBitmaps_LOD->pHardwareTextures[v23]; + if (pFace->uAttributes & 0x400000) + _479A53_draw_some_blv_poly(uNumVerticesa, uFaceID); + else + pRenderer->DrawIndoorPolygon(uNumVerticesa, pFace, v27, v28, 8 * uFaceID | 6, v17, 0); + return; } } }