Mercurial > mm7
comparison Vis.cpp @ 869:715064ae1792
Слияние
author | Ritor1 |
---|---|
date | Mon, 01 Apr 2013 09:05:51 +0600 |
parents | f4394e320312 |
children | 897b10712a1a |
comparison
equal
deleted
inserted
replaced
868:6759478c2f14 | 869:715064ae1792 |
---|---|
327 if ( Intersect_Ray_Face(pRay, pRay + 1, &fDepth, &a1, &pIndoor->pFaces[pFaceID], 0xFFFFFFFFu) ) | 327 if ( Intersect_Ray_Face(pRay, pRay + 1, &fDepth, &a1, &pIndoor->pFaces[pFaceID], 0xFFFFFFFFu) ) |
328 { | 328 { |
329 pGame->pIndoorCameraD3D->ViewTransform(&a1, 1); | 329 pGame->pIndoorCameraD3D->ViewTransform(&a1, 1); |
330 v9 = _48B561_mess_with_scaling_along_z(/*v8, */a1.vWorldViewPosition.x); | 330 v9 = _48B561_mess_with_scaling_along_z(/*v8, */a1.vWorldViewPosition.x); |
331 LOWORD(v9) = 0; | 331 LOWORD(v9) = 0; |
332 v15 = (void *)((8 * pFaceID | 6) + v9); | 332 v15 = (void *)((PID(OBJECT_BModel,pFaceID)) + v9); |
333 pNumPointers = &list->uNumPointers; | 333 pNumPointers = &list->uNumPointers; |
334 //v16 = 2; | 334 //v16 = 2; |
335 //v11 = list->uNumPointers; | 335 //v11 = list->uNumPointers; |
336 pFace = &pIndoor->pFaces[pFaceID]; | 336 pFace = &pIndoor->pFaces[pFaceID]; |
337 v12 = &list->object_pool[list->uNumPointers]; | 337 v12 = &list->object_pool[list->uNumPointers]; |
535 int Vis::get_picked_object_zbuf_val() | 535 int Vis::get_picked_object_zbuf_val() |
536 { | 536 { |
537 if (!default_list.uNumPointers) | 537 if (!default_list.uNumPointers) |
538 return -1; | 538 return -1; |
539 | 539 |
540 return get_object_zbuf_val(default_list.object_pointers[0]); | 540 return get_object_zbuf_val(default_list.object_pointers[0]);//Click to the Rat in dragon cave result crash. Maybe object_pointers incorrect |
541 } | 541 } |
542 | 542 |
543 //----- (004C1C0C) -------------------------------------------------------- | 543 //----- (004C1C0C) -------------------------------------------------------- |
544 bool Vis::Intersect_Ray_Face(RenderVertexSoft *pRayStart, RenderVertexSoft *pRayEnd, float *pDepth, RenderVertexSoft *a4, BLVFace *a5, unsigned int a6) | 544 bool Vis::Intersect_Ray_Face(RenderVertexSoft *pRayStart, RenderVertexSoft *pRayEnd, float *pDepth, RenderVertexSoft *a4, BLVFace *a5, unsigned int a6) |
545 { | 545 { |
1557 return true; | 1557 return true; |
1558 | 1558 |
1559 case VisObjectType_Sprite: | 1559 case VisObjectType_Sprite: |
1560 { | 1560 { |
1561 v5 = filter->field_10; | 1561 v5 = filter->field_10; |
1562 int object_idx = (pBillboardRenderList[pRenderer->pBillboardRenderListD3D[(int)uD3DBillboardIdx_or_pBLVFace_or_pODMFace].uParentBillboardID].object_pid & 0xFFFF) >> 3; | 1562 int object_idx = PID_ID(pBillboardRenderList[pRenderer->pBillboardRenderListD3D[(int)uD3DBillboardIdx_or_pBLVFace_or_pODMFace].uParentBillboardID].object_pid); |
1563 int object_type = pBillboardRenderList[pRenderer->pBillboardRenderListD3D[(int)uD3DBillboardIdx_or_pBLVFace_or_pODMFace].uParentBillboardID].object_pid & 7; | 1563 int object_type = PID_TYPE(pBillboardRenderList[pRenderer->pBillboardRenderListD3D[(int)uD3DBillboardIdx_or_pBLVFace_or_pODMFace].uParentBillboardID].object_pid); |
1564 if ( v5 & 2 ) | 1564 if ( v5 & 2 ) |
1565 { | 1565 { |
1566 if (object_type == filter->object_id) | 1566 if (object_type == filter->object_id) |
1567 return false; | 1567 return false; |
1568 return true; | 1568 return true; |