Mercurial > might-and-magic-trilogy
comparison Render.cpp @ 47:8a8dd0164b12
BLV render
cd check fix
author | Nomad |
---|---|
date | Tue, 23 Oct 2012 13:51:21 +0200 |
parents | 79a30ee1ecdb |
children | fde5c5acb66e |
comparison
equal
deleted
inserted
replaced
46:79a30ee1ecdb | 47:8a8dd0164b12 |
---|---|
4612 v1->bTinting = 1; | 4612 v1->bTinting = 1; |
4613 LOBYTE(v1->field_103668) = 0; | 4613 LOBYTE(v1->field_103668) = 0; |
4614 v1->field_1036B8 = 0; | 4614 v1->field_1036B8 = 0; |
4615 v1->_gpu_memory_used = 0; | 4615 v1->_gpu_memory_used = 0; |
4616 uNumBillboardsToDraw = 0; | 4616 uNumBillboardsToDraw = 0; |
4617 bFogEnabled = false; | |
4617 } | 4618 } |
4618 | 4619 |
4619 bool Render::Initialize(bool bWindowed, uint uDefaultDevice, | 4620 bool Render::Initialize(bool bWindowed, uint uDefaultDevice, |
4620 bool bColoredLights, uint uDetailLevel, uint bTinting) | 4621 bool bColoredLights, uint uDetailLevel, uint bTinting) |
4621 { | 4622 { |
7104 { | 7105 { |
7105 return pRenderer->pBillboardRenderListD3D[uBillboardID].uParentBillboardID; | 7106 return pRenderer->pBillboardRenderListD3D[uBillboardID].uParentBillboardID; |
7106 } | 7107 } |
7107 | 7108 |
7108 //----- (004A1EB6) -------------------------------------------------------- | 7109 //----- (004A1EB6) -------------------------------------------------------- |
7109 void Render::SetGameRenderStates() | 7110 void Render::BeginSceneD3D() |
7110 { | 7111 { |
7111 Render *v1; // esi@1 | 7112 if (!uNumD3DSceneBegins++) |
7112 unsigned int v2; // eax@1 | 7113 { |
7113 RenderD3D *v3; // ecx@2 | |
7114 unsigned int uFogColor; // edi@6 | |
7115 IDirect3DDevice3 *v5; // eax@8 | |
7116 //IDirect3DDevice3Vtbl *v6; // ecx@8 | |
7117 RenderD3D *v7; // eax@9 | |
7118 RenderD3D *v8; // eax@9 | |
7119 std::string v9; // [sp-14h] [bp-2Ch]@4 | |
7120 IDirect3DDevice3 *v10; // [sp-8h] [bp-20h]@9 | |
7121 signed int v11; // [sp-4h] [bp-1Ch]@4 | |
7122 int v12; // [sp+0h] [bp-18h]@4 | |
7123 std::string *v13; // [sp+10h] [bp-8h]@4 | |
7124 int a3; // [sp+17h] [bp-1h]@4 | |
7125 | |
7126 v1 = this; | |
7127 v2 = this->uNumD3DSceneBegins; | |
7128 this->uNumD3DSceneBegins = v2 + 1; | |
7129 if ( !v2 ) | |
7130 { | |
7131 v3 = this->pRenderD3D; | |
7132 if (pRenderD3D) | 7114 if (pRenderD3D) |
7133 { | 7115 { |
7134 pRenderD3D->ClearTarget(1u, 0, 1u, 1.0); | 7116 pRenderD3D->ClearTarget(1u, 0, 1u, 1.0); |
7135 pRenderer->uNumBillboardsToDraw = 0; | 7117 pRenderer->uNumBillboardsToDraw = 0; |
7136 pRenderD3D->pDevice->BeginScene(); | 7118 pRenderD3D->pDevice->BeginScene(); |
7140 } | 7122 } |
7141 if ( uCurrentlyLoadedLevelType == LEVEL_Outdoor ) | 7123 if ( uCurrentlyLoadedLevelType == LEVEL_Outdoor ) |
7142 uFogColor = GetLevelFogColor(); | 7124 uFogColor = GetLevelFogColor(); |
7143 else | 7125 else |
7144 uFogColor = 0; | 7126 uFogColor = 0; |
7145 v5 = v1->pRenderD3D->pDevice; | 7127 |
7146 //v6 = v5->lpVtbl; | |
7147 if ( uFogColor & 0xFF000000 ) | 7128 if ( uFogColor & 0xFF000000 ) |
7148 { | 7129 { |
7149 v12 = 1; | 7130 pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_FOGENABLE, 1); |
7150 v11 = 28; | |
7151 v10 = v5; | |
7152 pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_FOGENABLE, 1u); | |
7153 //v7 = v1->pRenderD3D; | |
7154 v12 = uFogColor & 0xFFFFFF; | |
7155 v11 = 34; | |
7156 //v10 = v7->pDevice; | |
7157 pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_FOGCOLOR, uFogColor & 0xFFFFFF); | 7131 pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_FOGCOLOR, uFogColor & 0xFFFFFF); |
7158 v8 = v1->pRenderD3D; | |
7159 *(float *)&v12 = 0.0; | |
7160 v11 = 35; | |
7161 //v10 = v8->pDevice; | |
7162 pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_FOGTABLEMODE, 0); | 7132 pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_FOGTABLEMODE, 0); |
7163 v1->bUsingSpecular = 1; | 7133 bUsingSpecular = true; |
7164 } | 7134 } |
7165 else | 7135 else |
7166 { | 7136 { |
7167 *(float *)&v12 = 0.0; | |
7168 v11 = 28; | |
7169 v10 = v5; | |
7170 pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_FOGENABLE, 0); | 7137 pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_FOGENABLE, 0); |
7171 v1->bUsingSpecular = 0; | 7138 bUsingSpecular = 0; |
7172 } | 7139 } |
7173 } | 7140 } |
7174 else | 7141 else |
7175 { | 7142 { |
7176 LockRenderSurface((void **)&v1->pTargetSurface, &v1->uTargetSurfacePitch); | 7143 LockRenderSurface((void **)&pTargetSurface, &uTargetSurfacePitch); |
7177 if ( v1->pTargetSurface ) | 7144 if (pTargetSurface) |
7178 v1->field_18_locked_pitch = v1->uTargetSurfacePitch; | 7145 field_18_locked_pitch = uTargetSurfacePitch; |
7179 else | 7146 else |
7180 --v1->uNumD3DSceneBegins; | 7147 --uNumD3DSceneBegins; |
7181 } | 7148 } |
7182 } | 7149 } |
7183 } | 7150 } |
7184 | 7151 |
7185 //----- (004A1FE1) -------------------------------------------------------- | 7152 //----- (004A1FE1) -------------------------------------------------------- |