Mercurial > mm7
comparison Render.cpp @ 1642:8971dc85b8fb
More camera unifications.
author | Nomad |
---|---|
date | Tue, 17 Sep 2013 20:15:56 +0200 |
parents | 466c5e15f524 |
children | dbd6f940f26c |
comparison
equal
deleted
inserted
replaced
1641:466c5e15f524 | 1642:8971dc85b8fb |
---|---|
544 } | 544 } |
545 v12 = (x - pGame->pIndoorCameraD3D->vPartyPos.x) << 16; | 545 v12 = (x - pGame->pIndoorCameraD3D->vPartyPos.x) << 16; |
546 if (pGame->pIndoorCameraD3D->sRotationX) | 546 if (pGame->pIndoorCameraD3D->sRotationX) |
547 { | 547 { |
548 v13 = (y - pGame->pIndoorCameraD3D->vPartyPos.y) << 16; | 548 v13 = (y - pGame->pIndoorCameraD3D->vPartyPos.y) << 16; |
549 v30 = ((unsigned __int64)(v12 * (signed __int64)pODMRenderParams->camera_rotation_y_int_cosine) >> 16) | 549 v30 = ((unsigned __int64)(v12 * (signed __int64)pGame->pIndoorCameraD3D->int_cosine_y) >> 16) |
550 + ((unsigned __int64)(v13 * (signed __int64)pODMRenderParams->camera_rotation_y_int_sine) >> 16); | 550 + ((unsigned __int64)(v13 * (signed __int64)pGame->pIndoorCameraD3D->int_sine_y) >> 16); |
551 v37 = (unsigned __int64)(v12 * (signed __int64)pODMRenderParams->camera_rotation_y_int_sine) >> 16; | 551 v37 = (unsigned __int64)(v12 * (signed __int64)pGame->pIndoorCameraD3D->int_sine_y) >> 16; |
552 a6a = (unsigned __int64)(v13 * (signed __int64)pODMRenderParams->camera_rotation_y_int_cosine) >> 16; | 552 a6a = (unsigned __int64)(v13 * (signed __int64)pGame->pIndoorCameraD3D->int_cosine_y) >> 16; |
553 v33 = (z - pGame->pIndoorCameraD3D->vPartyPos.z) << 16; | 553 v33 = (z - pGame->pIndoorCameraD3D->vPartyPos.z) << 16; |
554 v14 = (unsigned __int64)(v30 * (signed __int64)pODMRenderParams->camera_rotation_x_int_cosine) >> 16; | 554 v14 = (unsigned __int64)(v30 * (signed __int64)pGame->pIndoorCameraD3D->int_cosine_x) >> 16; |
555 v15 = (unsigned __int64)(v33 * (signed __int64)pODMRenderParams->camera_rotation_x_int_sine) >> 16; | 555 v15 = (unsigned __int64)(v33 * (signed __int64)pGame->pIndoorCameraD3D->int_sine_x) >> 16; |
556 v16 = v15 + v14; | 556 v16 = v15 + v14; |
557 v42 = v15 + v14; | 557 v42 = v15 + v14; |
558 if ( v15 + v14 >= 262144 && v16 <= pODMRenderParams->shading_dist_mist << 16 ) | 558 if ( v15 + v14 >= 262144 && v16 <= pODMRenderParams->shading_dist_mist << 16 ) |
559 { | 559 { |
560 v17 = a6a - v37; | 560 v17 = a6a - v37; |
561 v40 = a6a - v37; | 561 v40 = a6a - v37; |
562 v18 = ((unsigned __int64)(v33 * (signed __int64)pODMRenderParams->camera_rotation_x_int_cosine) >> 16) | 562 v18 = ((unsigned __int64)(v33 * (signed __int64)pGame->pIndoorCameraD3D->int_cosine_x) >> 16) |
563 - ((unsigned __int64)(v30 * (signed __int64)pODMRenderParams->camera_rotation_x_int_sine) >> 16); | 563 - ((unsigned __int64)(v30 * (signed __int64)pGame->pIndoorCameraD3D->int_sine_x) >> 16); |
564 goto LABEL_29; | 564 goto LABEL_29; |
565 } | 565 } |
566 } | 566 } |
567 else | 567 else |
568 { | 568 { |
569 v34 = (y - pGame->pIndoorCameraD3D->vPartyPos.y) << 16; | 569 v34 = (y - pGame->pIndoorCameraD3D->vPartyPos.y) << 16; |
570 v19 = (unsigned __int64)(v12 * (signed __int64)pODMRenderParams->camera_rotation_y_int_cosine) >> 16; | 570 v19 = (unsigned __int64)(v12 * (signed __int64)pGame->pIndoorCameraD3D->int_cosine_y) >> 16; |
571 v20 = (unsigned __int64)(v34 * (signed __int64)pODMRenderParams->camera_rotation_y_int_sine) >> 16; | 571 v20 = (unsigned __int64)(v34 * (signed __int64)pGame->pIndoorCameraD3D->int_sine_y) >> 16; |
572 v16 = v20 + v19; | 572 v16 = v20 + v19; |
573 v42 = v20 + v19; | 573 v42 = v20 + v19; |
574 if ( v20 + v19 >= 262144 && v16 <= pODMRenderParams->shading_dist_mist << 16 ) | 574 if ( v20 + v19 >= 262144 && v16 <= pODMRenderParams->shading_dist_mist << 16 ) |
575 { | 575 { |
576 v21 = (unsigned __int64)(((x - pGame->pIndoorCameraD3D->vPartyPos.x) << 16) * (signed __int64)pODMRenderParams->camera_rotation_y_int_sine) >> 16; | 576 v21 = (unsigned __int64)(((x - pGame->pIndoorCameraD3D->vPartyPos.x) << 16) * (signed __int64)pGame->pIndoorCameraD3D->int_sine_y) >> 16; |
577 v17 = ((unsigned __int64)(v34 * (signed __int64)pODMRenderParams->camera_rotation_y_int_cosine) >> 16) - v21; | 577 v17 = ((unsigned __int64)(v34 * (signed __int64)pGame->pIndoorCameraD3D->int_cosine_y) >> 16) - v21; |
578 v40 = ((unsigned __int64)(v34 * (signed __int64)pODMRenderParams->camera_rotation_y_int_cosine) >> 16) - v21; | 578 v40 = ((unsigned __int64)(v34 * (signed __int64)pGame->pIndoorCameraD3D->int_cosine_y) >> 16) - v21; |
579 v18 = (z - pGame->pIndoorCameraD3D->vPartyPos.z) << 16; | 579 v18 = (z - pGame->pIndoorCameraD3D->vPartyPos.z) << 16; |
580 LABEL_29: | 580 LABEL_29: |
581 v31 = v18; | 581 v31 = v18; |
582 v22 = abs(v17); | 582 v22 = abs(v17); |
583 if ( abs(v16) >= v22 ) | 583 if ( abs(v16) >= v22 ) |
1042 } | 1042 } |
1043 v17 = (decor->vPosition.x - pGame->pIndoorCameraD3D->vPartyPos.x) << 16; | 1043 v17 = (decor->vPosition.x - pGame->pIndoorCameraD3D->vPartyPos.x) << 16; |
1044 if (pGame->pIndoorCameraD3D->sRotationX) | 1044 if (pGame->pIndoorCameraD3D->sRotationX) |
1045 { | 1045 { |
1046 v40 = (decor->vPosition.y - pGame->pIndoorCameraD3D->vPartyPos.y) << 16; | 1046 v40 = (decor->vPosition.y - pGame->pIndoorCameraD3D->vPartyPos.y) << 16; |
1047 v18 = ((unsigned __int64)(v17 * (signed __int64)pODMRenderParams->camera_rotation_y_int_cosine) >> 16) | 1047 v18 = ((unsigned __int64)(v17 * (signed __int64)pGame->pIndoorCameraD3D->int_cosine_y) >> 16) |
1048 + ((unsigned __int64)(v40 * (signed __int64)pODMRenderParams->camera_rotation_y_int_sine) >> 16); | 1048 + ((unsigned __int64)(v40 * (signed __int64)pGame->pIndoorCameraD3D->int_sine_y) >> 16); |
1049 v42 = v18; | 1049 v42 = v18; |
1050 b = (unsigned __int64)(v17 * (signed __int64)pODMRenderParams->camera_rotation_y_int_sine) >> 16; | 1050 b = (unsigned __int64)(v17 * (signed __int64)pGame->pIndoorCameraD3D->int_sine_y) >> 16; |
1051 a5 = (unsigned __int64)(v40 * (signed __int64)pODMRenderParams->camera_rotation_y_int_cosine) >> 16; | 1051 a5 = (unsigned __int64)(v40 * (signed __int64)pGame->pIndoorCameraD3D->int_cosine_y) >> 16; |
1052 v40 = (decor->vPosition.z - pGame->pIndoorCameraD3D->vPartyPos.z) << 16; | 1052 v40 = (decor->vPosition.z - pGame->pIndoorCameraD3D->vPartyPos.z) << 16; |
1053 v41 = (unsigned __int64)(v40 * (signed __int64)pODMRenderParams->camera_rotation_x_int_sine) >> 16; | 1053 v41 = (unsigned __int64)(v40 * (signed __int64)pGame->pIndoorCameraD3D->int_sine_x) >> 16; |
1054 v19 = (unsigned __int64)(v18 * (signed __int64)pODMRenderParams->camera_rotation_x_int_cosine) >> 16; | 1054 v19 = (unsigned __int64)(v18 * (signed __int64)pGame->pIndoorCameraD3D->int_cosine_x) >> 16; |
1055 v20 = v19 + ((unsigned __int64)(v40 * (signed __int64)pODMRenderParams->camera_rotation_x_int_sine) >> 16); | 1055 v20 = v19 + ((unsigned __int64)(v40 * (signed __int64)pGame->pIndoorCameraD3D->int_sine_x) >> 16); |
1056 v39 = v19 + ((unsigned __int64)(v40 * (signed __int64)pODMRenderParams->camera_rotation_x_int_sine) >> 16); | 1056 v39 = v19 + ((unsigned __int64)(v40 * (signed __int64)pGame->pIndoorCameraD3D->int_sine_x) >> 16); |
1057 if ( v20 >= 262144 && v20 <= pODMRenderParams->shading_dist_mist << 16 ) | 1057 if ( v20 >= 262144 && v20 <= pODMRenderParams->shading_dist_mist << 16 ) |
1058 { | 1058 { |
1059 v21 = a5 - b; | 1059 v21 = a5 - b; |
1060 v41 = a5 - b; | 1060 v41 = a5 - b; |
1061 a5 = (unsigned __int64)(v42 * (signed __int64)pODMRenderParams->camera_rotation_x_int_sine) >> 16; | 1061 a5 = (unsigned __int64)(v42 * (signed __int64)pGame->pIndoorCameraD3D->int_sine_x) >> 16; |
1062 b = (unsigned __int64)(v40 * (signed __int64)pODMRenderParams->camera_rotation_x_int_cosine) >> 16; | 1062 b = (unsigned __int64)(v40 * (signed __int64)pGame->pIndoorCameraD3D->int_cosine_x) >> 16; |
1063 v22 = ((unsigned __int64)(v40 * (signed __int64)pODMRenderParams->camera_rotation_x_int_cosine) >> 16) - a5; | 1063 v22 = ((unsigned __int64)(v40 * (signed __int64)pGame->pIndoorCameraD3D->int_cosine_x) >> 16) - a5; |
1064 LABEL_30: | 1064 LABEL_30: |
1065 v42 = v22; | 1065 v42 = v22; |
1066 v40 = 2 * abs(v20); | 1066 v40 = 2 * abs(v20); |
1067 v23 = abs(v21); | 1067 v23 = abs(v21); |
1068 if ( v40 >= v23 ) | 1068 if ( v40 >= v23 ) |
1125 } | 1125 } |
1126 else | 1126 else |
1127 { | 1127 { |
1128 v42 = (decor->vPosition.x - pGame->pIndoorCameraD3D->vPartyPos.x) << 16; | 1128 v42 = (decor->vPosition.x - pGame->pIndoorCameraD3D->vPartyPos.x) << 16; |
1129 v40 = (decor->vPosition.y - pGame->pIndoorCameraD3D->vPartyPos.y) << 16; | 1129 v40 = (decor->vPosition.y - pGame->pIndoorCameraD3D->vPartyPos.y) << 16; |
1130 b = (unsigned __int64)(v17 * (signed __int64)pODMRenderParams->camera_rotation_y_int_cosine) >> 16; | 1130 b = (unsigned __int64)(v17 * (signed __int64)pGame->pIndoorCameraD3D->int_cosine_y) >> 16; |
1131 a5 = (unsigned __int64)(v40 * (signed __int64)pODMRenderParams->camera_rotation_y_int_sine) >> 16; | 1131 a5 = (unsigned __int64)(v40 * (signed __int64)pGame->pIndoorCameraD3D->int_sine_y) >> 16; |
1132 v20 = b + ((unsigned __int64)(v40 * (signed __int64)pODMRenderParams->camera_rotation_y_int_sine) >> 16); | 1132 v20 = b + ((unsigned __int64)(v40 * (signed __int64)pGame->pIndoorCameraD3D->int_sine_y) >> 16); |
1133 v39 = b + ((unsigned __int64)(v40 * (signed __int64)pODMRenderParams->camera_rotation_y_int_sine) >> 16); | 1133 v39 = b + ((unsigned __int64)(v40 * (signed __int64)pGame->pIndoorCameraD3D->int_sine_y) >> 16); |
1134 if ( v20 >= 262144 && v20 <= pODMRenderParams->shading_dist_mist << 16 ) | 1134 if ( v20 >= 262144 && v20 <= pODMRenderParams->shading_dist_mist << 16 ) |
1135 { | 1135 { |
1136 a5 = (unsigned __int64)(v42 * (signed __int64)pODMRenderParams->camera_rotation_y_int_sine) >> 16; | 1136 a5 = (unsigned __int64)(v42 * (signed __int64)pGame->pIndoorCameraD3D->int_sine_y) >> 16; |
1137 b = (unsigned __int64)(v40 * (signed __int64)pODMRenderParams->camera_rotation_y_int_cosine) >> 16; | 1137 b = (unsigned __int64)(v40 * (signed __int64)pGame->pIndoorCameraD3D->int_cosine_y) >> 16; |
1138 v21 = ((unsigned __int64)(v40 * (signed __int64)pODMRenderParams->camera_rotation_y_int_cosine) >> 16) - a5; | 1138 v21 = ((unsigned __int64)(v40 * (signed __int64)pGame->pIndoorCameraD3D->int_cosine_y) >> 16) - a5; |
1139 v41 = ((unsigned __int64)(v40 * (signed __int64)pODMRenderParams->camera_rotation_y_int_cosine) >> 16) - a5; | 1139 v41 = ((unsigned __int64)(v40 * (signed __int64)pGame->pIndoorCameraD3D->int_cosine_y) >> 16) - a5; |
1140 v22 = (decor->vPosition.z - pGame->pIndoorCameraD3D->vPartyPos.z) << 16; | 1140 v22 = (decor->vPosition.z - pGame->pIndoorCameraD3D->vPartyPos.z) << 16; |
1141 goto LABEL_30; | 1141 goto LABEL_30; |
1142 } | 1142 } |
1143 } | 1143 } |
1144 } | 1144 } |
4914 ErrD3D(pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, v8)); | 4914 ErrD3D(pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, v8)); |
4915 } | 4915 } |
4916 } | 4916 } |
4917 | 4917 |
4918 //if (pIndoorCamera->flags & INDOOR_CAMERA_DRAW_TERRAIN_OUTLINES || pBLVRenderParams->uFlags & INDOOR_CAMERA_DRAW_TERRAIN_OUTLINES) | 4918 //if (pIndoorCamera->flags & INDOOR_CAMERA_DRAW_TERRAIN_OUTLINES || pBLVRenderParams->uFlags & INDOOR_CAMERA_DRAW_TERRAIN_OUTLINES) |
4919 if (pODMRenderParams->flags & ODM_RENDER_DRAW_TERRAIN_OUTLINES) | 4919 if (pGame->pIndoorCameraD3D->debug_flags & ODM_RENDER_DRAW_TERRAIN_OUTLINES) |
4920 pGame->pIndoorCameraD3D->debug_outline_d3d(d3d_vertex_buffer, uNumVertices, 0x00FFFFFF, 0.0); | 4920 pGame->pIndoorCameraD3D->debug_outline_d3d(d3d_vertex_buffer, uNumVertices, 0x00FFFFFF, 0.0); |
4921 } | 4921 } |
4922 // 4A26BC: could not find valid save-restore pair for esi | 4922 // 4A26BC: could not find valid save-restore pair for esi |
4923 // 4D864C: using guessed type char byte_4D864C; | 4923 // 4D864C: using guessed type char byte_4D864C; |
4924 | 4924 |