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;