comparison Render.cpp @ 2014:7a2fc95f3b99

Слияние
author Ritor1
date Thu, 07 Nov 2013 09:19:10 +0600
parents bb1e7b0780d8 30c2b575d25c
children f1fd2ed4e9ba
comparison
equal deleted inserted replaced
2013:bb1e7b0780d8 2014:7a2fc95f3b99
126 pSurface1->Release(); 126 pSurface1->Release();
127 pSurface2->Release(); 127 pSurface2->Release();
128 return v0; 128 return v0;
129 } 129 }
130 130
131 void Render::sub_4A19B0()
132 {
133 char *result; // eax@1
134 signed int v1; // ecx@1
135 /*
136 result = (char *)&this->pBillboardRenderListD3D[0].uOpacity;
137 v1 = 1000;
138 do
139 {
140 *(_DWORD *)result = 0;
141 *((_DWORD *)result + 1) = -1;
142 *((_DWORD *)result + 3) = -1;
143 *((_DWORD *)result - 34) = 4;
144 result += 156;
145 --v1;
146 }
147 while ( v1 );
148 */
149 for( int i = 0; i < 1000; i++ )
150 {
151 this->pBillboardRenderListD3D[i].uOpacity = (RenderBillboardD3D::OpacityType)0;
152 this->pBillboardRenderListD3D[i].field_90 = -1;
153 this->pBillboardRenderListD3D[i].sParentBillboardID = -1;
154 this->pBillboardRenderListD3D[i].uNumVertices = 4;
155 }
156
157 return;
158 }
159
131 //----- (00440CB8) -------------------------------------------------------- 160 //----- (00440CB8) --------------------------------------------------------
132 void Render::DrawBillboardList_BLV() 161 void Render::DrawBillboardList_BLV()
133 { 162 {
134 __int16 v2; // ax@3 163 __int16 v2; // ax@3
135 int v5; // eax@11 164 int v5; // eax@11
136 RenderBillboardTransform_local0 soft_billboard; // [sp+4h] [bp-50h]@1 165 RenderBillboardTransform_local0 soft_billboard; // [sp+4h] [bp-50h]@1
137 166
138 soft_billboard.uParentBillboardID = -1; 167 soft_billboard.sParentBillboardID = -1;
139 soft_billboard.pTarget = pBLVRenderParams->pRenderTarget; 168 soft_billboard.pTarget = pBLVRenderParams->pRenderTarget;
140 soft_billboard.pTargetZ = pBLVRenderParams->pTargetZBuffer; 169 soft_billboard.pTargetZ = pBLVRenderParams->pTargetZBuffer;
141 soft_billboard.uTargetPitch = pRenderer->uTargetSurfacePitch; 170 soft_billboard.uTargetPitch = pRenderer->uTargetSurfacePitch;
142 soft_billboard.uViewportX = pBLVRenderParams->uViewportX; 171 soft_billboard.uViewportX = pBLVRenderParams->uViewportX;
143 soft_billboard.uViewportY = pBLVRenderParams->uViewportY; 172 soft_billboard.uViewportY = pBLVRenderParams->uViewportY;
148 for (uint i = 0; i < ::uNumBillboardsToDraw; ++i) 177 for (uint i = 0; i < ::uNumBillboardsToDraw; ++i)
149 { 178 {
150 RenderBillboard* p = &pBillboardRenderList[i]; 179 RenderBillboard* p = &pBillboardRenderList[i];
151 180
152 soft_billboard.uScreenSpaceX = p->uScreenSpaceX; 181 soft_billboard.uScreenSpaceX = p->uScreenSpaceX;
153 soft_billboard.uParentBillboardID = i; 182 soft_billboard.sParentBillboardID = i;
154 soft_billboard.uScreenSpaceY = p->uScreenSpaceY; 183 soft_billboard.uScreenSpaceY = p->uScreenSpaceY;
155 soft_billboard._screenspace_x_scaler_packedfloat = p->_screenspace_x_scaler_packedfloat; 184 soft_billboard._screenspace_x_scaler_packedfloat = p->_screenspace_x_scaler_packedfloat;
156 soft_billboard._screenspace_y_scaler_packedfloat = p->_screenspace_y_scaler_packedfloat; 185 soft_billboard._screenspace_y_scaler_packedfloat = p->_screenspace_y_scaler_packedfloat;
157 soft_billboard.sZValue = p->sZValue; 186 soft_billboard.sZValue = p->sZValue;
158 soft_billboard.uFlags = p->field_1E; 187 soft_billboard.uFlags = p->field_1E;
159 soft_billboard.uTintColor = p->uTintColor; 188 soft_billboard.sTintColor = p->sTintColor;
160 v2 = p->uHwSpriteID; 189 v2 = p->uHwSpriteID;
161 if ( v2 != -1 ) 190 if ( v2 != -1 )
162 { 191 {
163 if ( pRenderer->pRenderD3D ) 192 if ( pRenderer->pRenderD3D )
164 pRenderer->DrawBillboard_Indoor(&soft_billboard, &pSprites_LOD->pHardwareSprites[v2], p->dimming_level); 193 pRenderer->DrawBillboard_Indoor(&soft_billboard, &pSprites_LOD->pHardwareSprites[v2], p->dimming_level);
376 int v15; // [sp+54h] [bp-10h]@13 405 int v15; // [sp+54h] [bp-10h]@13
377 //int v16; // [sp+58h] [bp-Ch]@1 406 //int v16; // [sp+58h] [bp-Ch]@1
378 //int v17; // [sp+5Ch] [bp-8h]@2 407 //int v17; // [sp+5Ch] [bp-8h]@2
379 int v18; // [sp+60h] [bp-4h]@13 408 int v18; // [sp+60h] [bp-4h]@13
380 409
381 billboard.uParentBillboardID = -1; 410 billboard.sParentBillboardID = -1;
382 billboard.pTarget = pRenderer->pTargetSurface; 411 billboard.pTarget = pRenderer->pTargetSurface;
383 billboard.pTargetZ = pRenderer->pActiveZBuffer; 412 billboard.pTargetZ = pRenderer->pActiveZBuffer;
384 billboard.uTargetPitch = pRenderer->uTargetSurfacePitch; 413 billboard.uTargetPitch = pRenderer->uTargetSurfacePitch;
385 billboard.uViewportX = pViewport->uViewportTL_X; 414 billboard.uViewportX = pViewport->uViewportTL_X;
386 billboard.uViewportY = pViewport->uViewportTL_Y; 415 billboard.uViewportY = pViewport->uViewportTL_Y;
392 { 421 {
393 RenderBillboard* pBillboard = &pBillboardRenderList[i]; 422 RenderBillboard* pBillboard = &pBillboardRenderList[i];
394 423
395 billboard.uScreenSpaceX = pBillboard->uScreenSpaceX; 424 billboard.uScreenSpaceX = pBillboard->uScreenSpaceX;
396 billboard.uScreenSpaceY = pBillboard->uScreenSpaceY; 425 billboard.uScreenSpaceY = pBillboard->uScreenSpaceY;
397 billboard.uParentBillboardID = i; 426 billboard.sParentBillboardID = i;
398 billboard._screenspace_x_scaler_packedfloat = pBillboard->_screenspace_x_scaler_packedfloat; 427 billboard._screenspace_x_scaler_packedfloat = pBillboard->_screenspace_x_scaler_packedfloat;
399 billboard.uTintColor = pBillboard->uTintColor; 428 billboard.sTintColor = pBillboard->sTintColor;
400 billboard._screenspace_y_scaler_packedfloat = pBillboard->_screenspace_y_scaler_packedfloat; 429 billboard._screenspace_y_scaler_packedfloat = pBillboard->_screenspace_y_scaler_packedfloat;
401 billboard.sZValue = pBillboard->sZValue; 430 billboard.sZValue = pBillboard->sZValue;
402 billboard.uFlags = pBillboard->field_1E; 431 billboard.uFlags = pBillboard->field_1E;
403 if (pBillboard->uHwSpriteID != -1) 432 if (pBillboard->uHwSpriteID != -1)
404 { 433 {
616 HIWORD(v26) = HIWORD(v42); 645 HIWORD(v26) = HIWORD(v42);
617 LOWORD(v26) = 0; 646 LOWORD(v26) = 0;
618 v27 = (object->uAttributes & 0x20) == 0; 647 v27 = (object->uAttributes & 0x20) == 0;
619 v3->sZValue = v26 + (PID(OBJECT_Item,i)); 648 v3->sZValue = v26 + (PID(OBJECT_Item,i));
620 v3->dimming_level = 0; 649 v3->dimming_level = 0;
621 v3->uTintColor = 0; 650 v3->sTintColor = 0;
622 if ( !v27 ) 651 if ( !v27 )
623 { 652 {
624 if ( !pRenderer->pRenderD3D ) 653 if ( !pRenderer->pRenderD3D )
625 v3->sZValue = 0; 654 v3->sZValue = 0;
626 } 655 }
1118 LOWORD(v30) = 0; 1147 LOWORD(v30) = 0;
1119 v27->uIndoorSectorID = 0; 1148 v27->uIndoorSectorID = 0;
1120 v27->sZValue = v30 + v31; 1149 v27->sZValue = v30 + v31;
1121 v27->dimming_level = 0; 1150 v27->dimming_level = 0;
1122 v27->pSpriteFrame = v8; 1151 v27->pSpriteFrame = v8;
1123 v27->uTintColor = 0; 1152 v27->sTintColor = 0;
1124 } 1153 }
1125 } 1154 }
1126 goto LABEL_38; 1155 goto LABEL_38;
1127 } 1156 }
1128 } 1157 }
1847 LightmapBuilder *v53; // [sp+58h] [bp-10h]@3 1876 LightmapBuilder *v53; // [sp+58h] [bp-10h]@3
1848 unsigned int v54; // [sp+5Ch] [bp-Ch]@3 1877 unsigned int v54; // [sp+5Ch] [bp-Ch]@3
1849 unsigned int v55; // [sp+5Ch] [bp-Ch]@34 1878 unsigned int v55; // [sp+5Ch] [bp-Ch]@34
1850 unsigned int v56; // [sp+60h] [bp-8h]@12 1879 unsigned int v56; // [sp+60h] [bp-8h]@12
1851 int v57; // [sp+60h] [bp-8h]@34 1880 int v57; // [sp+60h] [bp-8h]@34
1852 unsigned int a2; // [sp+64h] [bp-4h]@4 1881 signed int a2; // [sp+64h] [bp-4h]@4
1853 1882
1854 v5 = this; 1883 v5 = this;
1855 v6 = 0; 1884 v6 = 0;
1856 if ( this->uNumD3DSceneBegins && (signed int)uNumVertices >= 3 ) 1885 if ( this->uNumD3DSceneBegins && (signed int)uNumVertices >= 3 )
1857 { 1886 {
1858 v7 = pGame->pLightmapBuilder; 1887 v7 = pGame->pLightmapBuilder;
1859 v53 = v7; 1888 v53 = v7;
1860 v54 = v7->std__vector_000004_size; 1889 v54 = v7->std__vector_000004_size;
1861 if ( v7->std__vector_000004_size) 1890 if ( v7->std__vector_000004_size)
1862 a2 = 0xFFFFFFFF; 1891 a2 = -1;
1863 pGame->AlterGamma_ODM(a4, &a2); 1892 pGame->AlterGamma_ODM(a4, &a2);
1864 if ( byte_4D864C && pGame->uFlags & GAME_FLAGS_1_01) 1893 if ( byte_4D864C && pGame->uFlags & GAME_FLAGS_1_01)
1865 { 1894 {
1866 v8 = ::GetActorTintColor(a3->dimming_level, 0, array_50AC10[0].vWorldViewPosition.x, 0, 0); 1895 v8 = ::GetActorTintColor(a3->dimming_level, 0, array_50AC10[0].vWorldViewPosition.x, 0, 0);
1867 v7->DrawLightmaps(/*v8, 0*/); 1896 v7->DrawLightmaps(/*v8, 0*/);
2093 uNumBillboardsToDraw = 0; 2122 uNumBillboardsToDraw = 0;
2094 bFogEnabled = false; 2123 bFogEnabled = false;
2095 2124
2096 hd_water_tile_id = -1; 2125 hd_water_tile_id = -1;
2097 hd_water_current_frame = 0; 2126 hd_water_current_frame = 0;
2127 sub_4A19B0();
2098 } 2128 }
2099 2129
2100 bool Render::Initialize(bool bWindowed, OSWindow *window, bool bColoredLights, uint32_t uDetailLevel, bool bTinting) 2130 bool Render::Initialize(bool bWindowed, OSWindow *window, bool bColoredLights, uint32_t uDetailLevel, bool bTinting)
2101 { 2131 {
2102 //bUserDirect3D = true;//ReadWindowsRegistryInt("Use D3D", 0); 2132 //bUserDirect3D = true;//ReadWindowsRegistryInt("Use D3D", 0);
4506 } 4536 }
4507 4537
4508 //----- (004A1EA3) -------------------------------------------------------- 4538 //----- (004A1EA3) --------------------------------------------------------
4509 unsigned int Render::GetParentBillboardID(unsigned int uBillboardID) 4539 unsigned int Render::GetParentBillboardID(unsigned int uBillboardID)
4510 { 4540 {
4511 return pRenderer->pBillboardRenderListD3D[uBillboardID].uParentBillboardID; 4541 return pRenderer->pBillboardRenderListD3D[uBillboardID].sParentBillboardID;
4512 } 4542 }
4513 4543
4514 //----- (004A1EB6) -------------------------------------------------------- 4544 //----- (004A1EB6) --------------------------------------------------------
4515 void Render::BeginSceneD3D() 4545 void Render::BeginSceneD3D()
4516 { 4546 {
5365 //auto a3 = pFace; 5395 //auto a3 = pFace;
5366 //auto a6 = uPackedID; 5396 //auto a6 = uPackedID;
5367 //v59 = pGame->pLightmapBuilder; 5397 //v59 = pGame->pLightmapBuilder;
5368 //v9 = v59->std__vector_000004_size; 5398 //v9 = v59->std__vector_000004_size;
5369 5399
5370 uint uCorrectedColor = uColor; 5400 int sCorrectedColor = uColor;
5371 if (pGame->pLightmapBuilder->std__vector_000004_size) 5401 if (pGame->pLightmapBuilder->std__vector_000004_size)
5372 uCorrectedColor = 0xFFFFFFFF; 5402 sCorrectedColor = -1;
5373 pGame->AlterGamma_BLV(pFace, &uCorrectedColor); 5403 pGame->AlterGamma_BLV(pFace, &sCorrectedColor);
5374 5404
5375 5405
5376 if (pFace->uAttributes & FACE_OUTLINED) 5406 if (pFace->uAttributes & FACE_OUTLINED)
5377 { 5407 {
5378 int color; 5408 int color;
5379 if (GetTickCount() % 300 >= 150) 5409 if (GetTickCount() % 300 >= 150)
5380 uColor = uCorrectedColor = 0xFF20FF20; 5410 uColor = sCorrectedColor = 0xFF20FF20;
5381 else uColor = uCorrectedColor = 0xFF109010; 5411 else uColor = sCorrectedColor = 0xFF109010;
5382 } 5412 }
5383 5413
5384 if (byte_4D864C && pGame->uFlags & GAME_FLAGS_1_01) 5414 if (byte_4D864C && pGame->uFlags & GAME_FLAGS_1_01)
5385 { 5415 {
5386 __debugbreak(); 5416 __debugbreak();
5390 { 5420 {
5391 d3d_vertex_buffer[i].pos.x = array_507D30[i].vWorldViewProjX; 5421 d3d_vertex_buffer[i].pos.x = array_507D30[i].vWorldViewProjX;
5392 d3d_vertex_buffer[i].pos.y = array_507D30[i].vWorldViewProjY; 5422 d3d_vertex_buffer[i].pos.y = array_507D30[i].vWorldViewProjY;
5393 d3d_vertex_buffer[i].pos.z = 1.0 - 1.0 / (array_507D30[i].vWorldViewPosition.x * 0.061758894); 5423 d3d_vertex_buffer[i].pos.z = 1.0 - 1.0 / (array_507D30[i].vWorldViewPosition.x * 0.061758894);
5394 d3d_vertex_buffer[i].rhw = 1.0 / array_507D30[i].vWorldViewPosition.x; 5424 d3d_vertex_buffer[i].rhw = 1.0 / array_507D30[i].vWorldViewPosition.x;
5395 d3d_vertex_buffer[i].diffuse = uCorrectedColor; 5425 d3d_vertex_buffer[i].diffuse = sCorrectedColor;
5396 d3d_vertex_buffer[i].specular = 0; 5426 d3d_vertex_buffer[i].specular = 0;
5397 d3d_vertex_buffer[i].texcoord.x = array_507D30[i].u / (double)pTex->uTextureWidth; 5427 d3d_vertex_buffer[i].texcoord.x = array_507D30[i].u / (double)pTex->uTextureWidth;
5398 d3d_vertex_buffer[i].texcoord.y = array_507D30[i].v / (double)pTex->uTextureHeight; 5428 d3d_vertex_buffer[i].texcoord.y = array_507D30[i].v / (double)pTex->uTextureHeight;
5399 } 5429 }
5400 5430
5417 { 5447 {
5418 d3d_vertex_buffer[i].pos.x = array_507D30[i].vWorldViewProjX; 5448 d3d_vertex_buffer[i].pos.x = array_507D30[i].vWorldViewProjX;
5419 d3d_vertex_buffer[i].pos.y = array_507D30[i].vWorldViewProjY; 5449 d3d_vertex_buffer[i].pos.y = array_507D30[i].vWorldViewProjY;
5420 d3d_vertex_buffer[i].pos.z = 1.0 - 1.0 / (array_507D30[i].vWorldViewPosition.x * 0.061758894); 5450 d3d_vertex_buffer[i].pos.z = 1.0 - 1.0 / (array_507D30[i].vWorldViewPosition.x * 0.061758894);
5421 d3d_vertex_buffer[i].rhw = 1.0 / array_507D30[i].vWorldViewPosition.x; 5451 d3d_vertex_buffer[i].rhw = 1.0 / array_507D30[i].vWorldViewPosition.x;
5422 d3d_vertex_buffer[i].diffuse = uCorrectedColor; 5452 d3d_vertex_buffer[i].diffuse = sCorrectedColor;
5423 d3d_vertex_buffer[i].specular = 0; 5453 d3d_vertex_buffer[i].specular = 0;
5424 d3d_vertex_buffer[i].texcoord.x = array_507D30[i].u / (double)pTex->uTextureWidth; 5454 d3d_vertex_buffer[i].texcoord.x = array_507D30[i].u / (double)pTex->uTextureWidth;
5425 d3d_vertex_buffer[i].texcoord.y = array_507D30[i].v / (double)pTex->uTextureHeight; 5455 d3d_vertex_buffer[i].texcoord.y = array_507D30[i].v / (double)pTex->uTextureHeight;
5426 } 5456 }
5427 5457
5487 5517
5488 ErrD3D(pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_CULLMODE, D3DCULL_NONE)); 5518 ErrD3D(pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_CULLMODE, D3DCULL_NONE));
5489 pGame->pLightmapBuilder->DrawLightmaps(/*-1, 0*/); 5519 pGame->pLightmapBuilder->DrawLightmaps(/*-1, 0*/);
5490 5520
5491 for (uint i = 0; i < uNumVertices; ++i) 5521 for (uint i = 0; i < uNumVertices; ++i)
5492 d3d_vertex_buffer[i].diffuse = uCorrectedColor; 5522 d3d_vertex_buffer[i].diffuse = sCorrectedColor;
5493 /*v33 = uNumVertices; 5523 /*v33 = uNumVertices;
5494 if ( (signed int)uNumVertices > 0 ) 5524 if ( (signed int)uNumVertices > 0 )
5495 { 5525 {
5496 v34 = (char *)&d3d_vertex_buffer[0].diffuse; 5526 v34 = (char *)&d3d_vertex_buffer[0].diffuse;
5497 do 5527 do
5571 else 5601 else
5572 pBillboardRenderListD3D[v7].uOpacity = RenderBillboardD3D::Transparent; 5602 pBillboardRenderListD3D[v7].uOpacity = RenderBillboardD3D::Transparent;
5573 //v10 = a3; 5603 //v10 = a3;
5574 pBillboardRenderListD3D[v7].field_90 = pSoftBillboard->field_44; 5604 pBillboardRenderListD3D[v7].field_90 = pSoftBillboard->field_44;
5575 pBillboardRenderListD3D[v7].sZValue = pSoftBillboard->sZValue; 5605 pBillboardRenderListD3D[v7].sZValue = pSoftBillboard->sZValue;
5576 pBillboardRenderListD3D[v7].uParentBillboardID = pSoftBillboard->uParentBillboardID; 5606 pBillboardRenderListD3D[v7].sParentBillboardID = pSoftBillboard->sParentBillboardID;
5577 //v25 = pSoftBillboard->uScreenSpaceX; 5607 //v25 = pSoftBillboard->uScreenSpaceX;
5578 //v24 = pSoftBillboard->uScreenSpaceY; 5608 //v24 = pSoftBillboard->uScreenSpaceY;
5579 a1 = (pSoftBillboard->_screenspace_x_scaler_packedfloat & 0xFFFF) * 0.000015260186 + HIWORD(pSoftBillboard->_screenspace_x_scaler_packedfloat); 5609 a1 = (pSoftBillboard->_screenspace_x_scaler_packedfloat & 0xFFFF) * 0.000015260186 + HIWORD(pSoftBillboard->_screenspace_x_scaler_packedfloat);
5580 v29 = (pSoftBillboard->_screenspace_y_scaler_packedfloat & 0xFFFF) * 0.000015260186 + HIWORD(pSoftBillboard->_screenspace_y_scaler_packedfloat); 5610 v29 = (pSoftBillboard->_screenspace_y_scaler_packedfloat & 0xFFFF) * 0.000015260186 + HIWORD(pSoftBillboard->_screenspace_y_scaler_packedfloat);
5581 v31 = (double)((pSprite->uBufferWidth >> 1) - pSprite->uAreaX); 5611 v31 = (double)((pSprite->uBufferWidth >> 1) - pSprite->uAreaX);
5582 v27 = (double)(pSprite->uBufferHeight - pSprite->uAreaY); 5612 v27 = (double)(pSprite->uBufferHeight - pSprite->uAreaY);
5583 if ( pSoftBillboard->uFlags & 4 ) 5613 if ( pSoftBillboard->uFlags & 4 )
5584 v31 = v31 * -1.0; 5614 v31 = v31 * -1.0;
5585 if ( pSoftBillboard->uTintColor && this->bTinting ) 5615 if ( pSoftBillboard->sTintColor && this->bTinting )
5586 { 5616 {
5587 v11 = ::GetActorTintColor(dimming_level, 0, pSoftBillboard->zbuffer_depth, 0, 0); 5617 v11 = ::GetActorTintColor(dimming_level, 0, pSoftBillboard->zbuffer_depth, 0, 0);
5588 v12 = BlendColors(pSoftBillboard->uTintColor, v11); 5618 v12 = BlendColors(pSoftBillboard->sTintColor, v11);
5589 if ( v28 ) 5619 if ( v28 )
5590 v12 = (unsigned int)((char *)&array_77EC08[1852].pEdgeList1[17] + 3) & ((unsigned int)v12 >> 1); 5620 v12 = (unsigned int)((char *)&array_77EC08[1852].pEdgeList1[17] + 3) & ((unsigned int)v12 >> 1);
5591 } 5621 }
5592 else 5622 else
5593 { 5623 {
5704 //v7 = v5; 5734 //v7 = v5;
5705 v8 = Billboard_ProbablyAddToListAndSortByZOrder(a2->zbuffer_depth); 5735 v8 = Billboard_ProbablyAddToListAndSortByZOrder(a2->zbuffer_depth);
5706 pBillboardRenderListD3D[v8].uOpacity = RenderBillboardD3D::Opaque_1; 5736 pBillboardRenderListD3D[v8].uOpacity = RenderBillboardD3D::Opaque_1;
5707 pBillboardRenderListD3D[v8].field_90 = a2->field_44; 5737 pBillboardRenderListD3D[v8].field_90 = a2->field_44;
5708 pBillboardRenderListD3D[v8].sZValue = a2->sZValue; 5738 pBillboardRenderListD3D[v8].sZValue = a2->sZValue;
5709 pBillboardRenderListD3D[v8].uParentBillboardID = a2->uParentBillboardID; 5739 pBillboardRenderListD3D[v8].sParentBillboardID = a2->sParentBillboardID;
5710 //v9 = a2->uScreenSpaceX; 5740 //v9 = a2->uScreenSpaceX;
5711 //v10 = a2->uScreenSpaceY; 5741 //v10 = a2->uScreenSpaceY;
5712 v11 = (a2->_screenspace_x_scaler_packedfloat & 0xFFFF) * 0.000015260186 + HIWORD(a2->_screenspace_x_scaler_packedfloat); 5742 v11 = (a2->_screenspace_x_scaler_packedfloat & 0xFFFF) * 0.000015260186 + HIWORD(a2->_screenspace_x_scaler_packedfloat);
5713 //v12 = (double) a2->uScreenSpaceX; 5743 //v12 = (double) a2->uScreenSpaceX;
5714 //v13 = v12; 5744 //v13 = v12;
5877 v7 = v5; 5907 v7 = v5;
5878 v8 = Billboard_ProbablyAddToListAndSortByZOrder(LODWORD(v7)); 5908 v8 = Billboard_ProbablyAddToListAndSortByZOrder(LODWORD(v7));
5879 pBillboardRenderListD3D[v8].uOpacity = RenderBillboardD3D::Opaque_1; 5909 pBillboardRenderListD3D[v8].uOpacity = RenderBillboardD3D::Opaque_1;
5880 pBillboardRenderListD3D[v8].field_90 = a2->field_44; 5910 pBillboardRenderListD3D[v8].field_90 = a2->field_44;
5881 pBillboardRenderListD3D[v8].sZValue = a2->sZValue; 5911 pBillboardRenderListD3D[v8].sZValue = a2->sZValue;
5882 pBillboardRenderListD3D[v8].uParentBillboardID = a2->uParentBillboardID; 5912 pBillboardRenderListD3D[v8].sParentBillboardID = a2->sParentBillboardID;
5883 v9 = a2->uScreenSpaceX; 5913 v9 = a2->uScreenSpaceX;
5884 v10 = a2->uScreenSpaceY; 5914 v10 = a2->uScreenSpaceY;
5885 v11 = (a2->_screenspace_x_scaler_packedfloat & 0xFFFF) * 0.000015260186 + HIWORD(a2->_screenspace_x_scaler_packedfloat); 5915 v11 = (a2->_screenspace_x_scaler_packedfloat & 0xFFFF) * 0.000015260186 + HIWORD(a2->_screenspace_x_scaler_packedfloat);
5886 v12 = (double)v9; 5916 v12 = (double)v9;
5887 v13 = v12; 5917 v13 = v12;
6023 6053
6024 v30 = (a2->_screenspace_x_scaler_packedfloat & 0xFFFF) / 65530.0 + HIWORD(a2->_screenspace_x_scaler_packedfloat); 6054 v30 = (a2->_screenspace_x_scaler_packedfloat & 0xFFFF) / 65530.0 + HIWORD(a2->_screenspace_x_scaler_packedfloat);
6025 v29 = (a2->_screenspace_y_scaler_packedfloat & 0xFFFF) / 65530.0 + HIWORD(a2->_screenspace_y_scaler_packedfloat); 6055 v29 = (a2->_screenspace_y_scaler_packedfloat & 0xFFFF) / 65530.0 + HIWORD(a2->_screenspace_y_scaler_packedfloat);
6026 6056
6027 unsigned int diffuse = ::GetActorTintColor(dimming_level, 0, a2->zbuffer_depth, 0, pBillboard); 6057 unsigned int diffuse = ::GetActorTintColor(dimming_level, 0, a2->zbuffer_depth, 0, pBillboard);
6028 if (a2->uTintColor & 0x00FFFFFF && bTinting) 6058 if (a2->sTintColor & 0x00FFFFFF && bTinting)
6029 { 6059 {
6030 diffuse = BlendColors(a2->uTintColor, diffuse); 6060 diffuse = BlendColors(a2->sTintColor, diffuse);
6031 if (a2->uTintColor & 0xFF000000) 6061 if (a2->sTintColor & 0xFF000000)
6032 diffuse = 0x007F7F7F & ((unsigned int)diffuse >> 1); 6062 diffuse = 0x007F7F7F & ((unsigned int)diffuse >> 1);
6033 } 6063 }
6034 6064
6035 unsigned int specular = 0; 6065 unsigned int specular = 0;
6036 if (bUsingSpecular) 6066 if (bUsingSpecular)
6091 pBillboardRenderListD3D[v8].uNumVertices = 4; 6121 pBillboardRenderListD3D[v8].uNumVertices = 4;
6092 pBillboardRenderListD3D[v8].pTexture = pSprite->pTexture; 6122 pBillboardRenderListD3D[v8].pTexture = pSprite->pTexture;
6093 pBillboardRenderListD3D[v8].z_order = a2->zbuffer_depth; 6123 pBillboardRenderListD3D[v8].z_order = a2->zbuffer_depth;
6094 pBillboardRenderListD3D[v8].field_90 = a2->field_44; 6124 pBillboardRenderListD3D[v8].field_90 = a2->field_44;
6095 pBillboardRenderListD3D[v8].sZValue = a2->sZValue; 6125 pBillboardRenderListD3D[v8].sZValue = a2->sZValue;
6096 pBillboardRenderListD3D[v8].uParentBillboardID = a2->uParentBillboardID; 6126 pBillboardRenderListD3D[v8].sParentBillboardID = a2->sParentBillboardID;
6097 6127
6098 if (a2->uTintColor & 0xFF000000) 6128 if (a2->sTintColor & 0xFF000000)
6099 pBillboardRenderListD3D[v8].uOpacity = RenderBillboardD3D::Opaque_3; 6129 pBillboardRenderListD3D[v8].uOpacity = RenderBillboardD3D::Opaque_3;
6100 else 6130 else
6101 pBillboardRenderListD3D[v8].uOpacity = RenderBillboardD3D::Transparent; 6131 pBillboardRenderListD3D[v8].uOpacity = RenderBillboardD3D::Transparent;
6102 } 6132 }
6103 6133
6280 depth = a1->field_104[i * 4].z; 6310 depth = a1->field_104[i * 4].z;
6281 } 6311 }
6282 6312
6283 v5 = Billboard_ProbablyAddToListAndSortByZOrder(depth); 6313 v5 = Billboard_ProbablyAddToListAndSortByZOrder(depth);
6284 pBillboardRenderListD3D[v5].field_90 = 0; 6314 pBillboardRenderListD3D[v5].field_90 = 0;
6285 pBillboardRenderListD3D[v5].uParentBillboardID = -1; 6315 pBillboardRenderListD3D[v5].sParentBillboardID = -1;
6286 pBillboardRenderListD3D[v5].uOpacity = RenderBillboardD3D::Opaque_2; 6316 pBillboardRenderListD3D[v5].uOpacity = RenderBillboardD3D::Opaque_2;
6287 pBillboardRenderListD3D[v5].pTexture = 0; 6317 pBillboardRenderListD3D[v5].pTexture = 0;
6288 pBillboardRenderListD3D[v5].uNumVertices = a1->uNumVertices; 6318 pBillboardRenderListD3D[v5].uNumVertices = a1->uNumVertices;
6289 pBillboardRenderListD3D[v5].z_order = depth; 6319 pBillboardRenderListD3D[v5].z_order = depth;
6290 6320
8278 v5->uParticleTrailColor = v5->uParticleTrailColorB | (v4 << 8); 8308 v5->uParticleTrailColor = v5->uParticleTrailColorB | (v4 << 8);
8279 } 8309 }
8280 SetUserInterface(pParty->alignment, true); 8310 SetUserInterface(pParty->alignment, true);
8281 if ( pVideoPlayer->pVideoFrame.pPixels ) 8311 if ( pVideoPlayer->pVideoFrame.pPixels )
8282 pVideoPlayer->pVideoFrame.Load(pVideoPlayer->pVideoFrameTextureFilename, 1); 8312 pVideoPlayer->pVideoFrame.Load(pVideoPlayer->pVideoFrameTextureFilename, 1);
8283 if ( uCurrentMenuID != MENU_CREATEPARTY ) 8313 if ( sCurrentMenuID != MENU_CREATEPARTY )
8284 { 8314 {
8285 if ( uCurrentMenuID == MENU_CREDITSPROC ) 8315 if ( sCurrentMenuID == MENU_CREDITSPROC )
8286 dword_A74C88 = 1; 8316 dword_A74C88 = 1;
8287 } 8317 }
8288 else 8318 else
8289 { 8319 {
8290 if ( uCurrentMenuID ) 8320 if ( sCurrentMenuID )
8291 { 8321 {
8292 v6 = &pTexture_PCX; 8322 v6 = &pTexture_PCX;
8293 pTexture_PCX.Release(); 8323 pTexture_PCX.Release();
8294 v8 = "makeme.pcx"; 8324 v8 = "makeme.pcx";
8295 } 8325 }
8296 else 8326 else
8297 { 8327 {
8298 v6 = &pTexture_PCX; 8328 v6 = &pTexture_PCX;
8299 pTexture_PCX.Release(); 8329 pTexture_PCX.Release();
8300 v8 = "title.pcx"; 8330 v8 = "title.pcx";
8301 if ( uCurrentMenuID ) 8331 if ( sCurrentMenuID )
8302 v8 = "lsave640.pcx"; 8332 v8 = "lsave640.pcx";
8303 } 8333 }
8304 v6->Load(v8, 0); 8334 v6->Load(v8, 0);
8305 } 8335 }
8306 } 8336 }
8576 RenderBillboardD3D* p = &pRenderer->pBillboardRenderListD3D[i]; 8606 RenderBillboardD3D* p = &pRenderer->pBillboardRenderListD3D[i];
8577 8607
8578 if (p->uOpacity != RenderBillboardD3D::NoBlend) 8608 if (p->uOpacity != RenderBillboardD3D::NoBlend)
8579 SetBillboardBlendOptions(p->uOpacity); 8609 SetBillboardBlendOptions(p->uOpacity);
8580 8610
8611 //if((int)p->pTexture!=0xcdcdcdcd)
8581 pRenderer->pRenderD3D->pDevice->SetTexture(0, p->pTexture); 8612 pRenderer->pRenderD3D->pDevice->SetTexture(0, p->pTexture);
8582 ErrD3D(pRenderer->pRenderD3D->pDevice->DrawPrimitive(D3DPT_TRIANGLEFAN, 8613 ErrD3D(pRenderer->pRenderD3D->pDevice->DrawPrimitive(D3DPT_TRIANGLEFAN,
8583 D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | D3DFVF_TEX1, 8614 D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | D3DFVF_TEX1,
8584 p->pQuads, p->uNumVertices, 8615 p->pQuads, p->uNumVertices,
8585 D3DDP_DONOTLIGHT | D3DDP_DONOTUPDATEEXTENTS)); 8616 D3DDP_DONOTLIGHT | D3DDP_DONOTUPDATEEXTENTS));
8998 * (sin((double)pGame->pIndoorCameraD3D->sRotationX * 0.0030664064) 9029 * (sin((double)pGame->pIndoorCameraD3D->sRotationX * 0.0030664064)
8999 * (double)-0x2000//(double)pODMRenderParams->shading_dist_mist 9030 * (double)-0x2000//(double)pODMRenderParams->shading_dist_mist
9000 - (double)pGame->pIndoorCameraD3D->vPartyPos.z)); 9031 - (double)pGame->pIndoorCameraD3D->vPartyPos.z));
9001 pSkyPolygon.Create_48607B(&stru_8019C8);// ptr_38 9032 pSkyPolygon.Create_48607B(&stru_8019C8);// ptr_38
9002 pSkyPolygon.ptr_38->_48694B_frustum_sky(); 9033 pSkyPolygon.ptr_38->_48694B_frustum_sky();
9003 pSkyPolygon.uTileBitmapID = pOutdoor->uSky_TextureID;//179(original 166) 9034 pSkyPolygon.uTileBitmapID = pOutdoor->sSky_TextureID;//179(original 166)
9004 pSkyPolygon.pTexture = (Texture *)(SLOWORD(pOutdoor->uSky_TextureID) != -1 ? (int)&pBitmaps_LOD->pTextures[SLOWORD(pOutdoor->uSky_TextureID)] : 0); 9035 pSkyPolygon.pTexture = (Texture *)(SLOWORD(pOutdoor->sSky_TextureID) != -1 ? (int)&pBitmaps_LOD->pTextures[SLOWORD(pOutdoor->sSky_TextureID)] : 0);
9005 if ( pSkyPolygon.pTexture ) 9036 if ( pSkyPolygon.pTexture )
9006 { 9037 {
9007 pSkyPolygon.dimming_level = 0; 9038 pSkyPolygon.dimming_level = 0;
9008 pSkyPolygon.uNumVertices = 4; 9039 pSkyPolygon.uNumVertices = 4;
9009 //centering()-- ---------------------------------------- 9040 //centering()-- ----------------------------------------