# HG changeset patch
# User Ritor1
# Date 1431609381 -21600
# Node ID 44d9df75dc13d2c6b20138fec6e0000e979724ed
# Parent 6ab1273bc507d893ea29ac7945959b4411b0dd85# Parent 91c75d202d30d3e37e69bda462fc412302b02304
Слияние
diff -r 91c75d202d30 -r 44d9df75dc13 Build/Visual Studio 2012/World of Might and Magic.vcxproj
--- a/Build/Visual Studio 2012/World of Might and Magic.vcxproj Thu May 14 11:03:14 2015 +0200
+++ b/Build/Visual Studio 2012/World of Might and Magic.vcxproj Thu May 14 19:16:21 2015 +0600
@@ -93,8 +93,8 @@
+
-
@@ -152,15 +152,27 @@
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
@@ -168,10 +180,10 @@
-
-
+
+
@@ -253,10 +265,10 @@
+
-
@@ -312,7 +324,6 @@
-
@@ -324,15 +335,27 @@
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
@@ -340,10 +363,10 @@
-
-
+
+
diff -r 91c75d202d30 -r 44d9df75dc13 Build/Visual Studio 2012/World of Might and Magic.vcxproj.filters
--- a/Build/Visual Studio 2012/World of Might and Magic.vcxproj.filters Thu May 14 11:03:14 2015 +0200
+++ b/Build/Visual Studio 2012/World of Might and Magic.vcxproj.filters Thu May 14 19:16:21 2015 +0600
@@ -109,6 +109,9 @@
{740b8731-e3ff-44cb-b6c8-85a64c7cbfc0}
+
+ {6dd9bc0c-a6d9-40ea-9eb9-d0f38abd514b}
+
@@ -441,9 +444,6 @@
Engine
-
- Engine
-
Engine
@@ -490,15 +490,6 @@
GUI\NewUI
-
- GUI\UI\Books
-
-
- GUI\UI\Books
-
-
- GUI\UI\Books
-
GUI\UI
@@ -508,12 +499,6 @@
GUI\UI
-
- GUI\UI
-
-
- GUI\UI
-
GUI\UI
@@ -574,6 +559,60 @@
Media
+
+ Engine
+
+
+ Game
+
+
+ Game
+
+
+ Game
+
+
+ GUI\UI
+
+
+ GUI\UI
+
+
+ GUI\UI\Books
+
+
+ GUI\UI\Books
+
+
+ GUI\UI\Books
+
+
+ GUI\UI\Books
+
+
+ GUI\UI\Books
+
+
+ GUI\UI\Books
+
+
+ GUI\UI\Books
+
+
+ GUI\UI
+
+
+ GUI\UI
+
+
+ Game
+
+
+ Game
+
+
+ Game
+
@@ -1140,9 +1179,6 @@
Engine
-
- Engine
-
Engine
@@ -1173,9 +1209,6 @@
Engine
-
- Engine
-
Engine
@@ -1234,15 +1267,6 @@
GUI\NewUI
-
- GUI\UI\Books
-
-
- GUI\UI\Books
-
-
- GUI\UI\Books
-
GUI\UI
@@ -1255,12 +1279,6 @@
GUI\UI
-
- GUI\UI
-
-
- GUI\UI
-
GUI\UI
@@ -1321,6 +1339,60 @@
Media
+
+ Engine
+
+
+ Game
+
+
+ Game
+
+
+ Game
+
+
+ GUI\UI
+
+
+ GUI\UI
+
+
+ GUI\UI\Books
+
+
+ GUI\UI\Books
+
+
+ GUI\UI\Books
+
+
+ GUI\UI\Books
+
+
+ GUI\UI\Books
+
+
+ GUI\UI\Books
+
+
+ GUI\UI\Books
+
+
+ GUI\UI
+
+
+ GUI\UI
+
+
+ Game
+
+
+ Game
+
+
+ Game
+
diff -r 91c75d202d30 -r 44d9df75dc13 Engine/Graphics/LightmapBuilder.cpp
--- a/Engine/Graphics/LightmapBuilder.cpp Thu May 14 11:03:14 2015 +0200
+++ b/Engine/Graphics/LightmapBuilder.cpp Thu May 14 19:16:21 2015 +0600
@@ -79,7 +79,7 @@
}
//----- (0045D0D5) --------------------------------------------------------
-bool LightmapBuilder::StackLight_TerrainFace(StationaryLight *pLight, Vec3_float_ *pNormal, float *a3, RenderVertexSoft *a1, unsigned int uStripType, int X, unsigned int *pSlot)
+bool LightmapBuilder::StackLight_TerrainFace(StationaryLight *pLight, Vec3_float_ *pNormal, float *a3, RenderVertexSoft *TerrainVertices, unsigned int uStripType, int X, unsigned int *pSlot)
{
//For outdoor terrain light (II)
bool result; // eax@1
@@ -95,37 +95,49 @@
float tY_0;
float tY_1; // [sp+1Ch] [bp-4h]@5
+ // x0,y0 x1,y1
+ // .____________.
+ // | |
+ // | |
+ // | |
+ // .____________.
+ // x3,y3 x2,y2
+
+
if ( pLight->uRadius <= 0 )
- return 0;
+ return false;
if ( uStripType == 4 )
{
- tX_0 = a1->vWorldPosition.x;
- tX_1 = a1[3].vWorldPosition.x;
- tY_0 = a1[1].vWorldPosition.y;
- tY_1 = a1->vWorldPosition.y;
+ tX_0 = TerrainVertices[0].vWorldPosition.x;
+ tX_1 = TerrainVertices[3].vWorldPosition.x;
+
+ tY_0 = TerrainVertices[1].vWorldPosition.y;
+ tY_1 = TerrainVertices[0].vWorldPosition.y;
}
- else // uStripType == 3
+ else if(uStripType == 3)
{
- if ( uStripType != 3 )
- MessageBoxW(nullptr, L"Uknown strip type detected!", L"E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\Light.cpp:981", 0);
- else if ((unsigned char)X)
+ if ((unsigned char)X)
{
- tX_0 = a1->vWorldPosition.x;
- tX_1 = a1[2].vWorldPosition.x;
- tY_0 = a1[1].vWorldPosition.y;
- tY_1 = a1[2].vWorldPosition.y;
+ tX_0 = TerrainVertices[0].vWorldPosition.x;
+ tX_1 = TerrainVertices[2].vWorldPosition.x;
+
+ tY_0 = TerrainVertices[1].vWorldPosition.y;
+ tY_1 = TerrainVertices[2].vWorldPosition.y;
}
else
{
- tX_0 = a1[1].vWorldPosition.x;
- tX_1 = a1[2].vWorldPosition.x;
- tY_0 = a1[1].vWorldPosition.y;
- tY_1 = a1->vWorldPosition.y;
+ tX_0 = TerrainVertices[1].vWorldPosition.x;
+ tX_1 = TerrainVertices[2].vWorldPosition.x;
+
+ tY_0 = TerrainVertices[1].vWorldPosition.y;
+ tY_1 = TerrainVertices[0].vWorldPosition.y;
}
}
+ else
+ MessageBoxW(nullptr, L"Uknown strip type detected!", L"E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\Light.cpp:981", 0);
- minz = pIndoorCameraD3D->GetPolygonMinZ(a1, uStripType);
- maxz = pIndoorCameraD3D->GetPolygonMaxZ(a1, uStripType);
+ minz = pIndoorCameraD3D->GetPolygonMinZ(TerrainVertices, uStripType);
+ maxz = pIndoorCameraD3D->GetPolygonMaxZ(TerrainVertices, uStripType);
float bounding_x1 = tX_0 - (float)pLight->uRadius; //13 976 - 128 = 13848.0
float bounding_y1 = tY_0 - (float)pLight->uRadius; // 3 800 - 128 = 3672.0
@@ -135,16 +147,17 @@
float bounding_y2 = (float)pLight->uRadius + tY_1; //3 792 + 128 = 3920.0
float bounding_z2 = (float)pLight->uRadius + maxz;// 260.0
+ //
if ( (float)pLight->vPosition.x <= bounding_x1 || (float)pLight->vPosition.x >= bounding_x2
|| (float)pLight->vPosition.y <= bounding_y1 || (float)pLight->vPosition.y >= bounding_y2
|| (float)pLight->vPosition.z <= bounding_z1 || (float)pLight->vPosition.z >= bounding_z2 )
- return 0;
+ return false;
- Vec3_float_::NegDot(&a1->vWorldPosition, pNormal, a3);
- float p_dot = (float)pLight->vPosition.x * pNormal->x
- + (float)pLight->vPosition.y * pNormal->y
- + (float)pLight->vPosition.z * pNormal->z + *a3;
- p_dot = p_dot + 0.5f;
+ Vec3_float_::NegDot(&TerrainVertices->vWorldPosition, pNormal, a3);
+ float p_dot = (float)pLight->vPosition.x * pNormal->x
+ + (float)pLight->vPosition.y * pNormal->y
+ + (float)pLight->vPosition.z * pNormal->z + *a3;
+ p_dot = p_dot + 0.5f;
if ( (//v49 = pNormal,
//Vec3_float_::NegDot(&a1->vWorldPosition, pNormal, a3),
//X = v8->vPosition.y,
@@ -160,7 +173,7 @@
//X = LODWORD(v61),
//v52 = v63,
p_dot > pLight->uRadius) )
- return 0;
+ return false;
/*
v49 = pNormal;
Vec3_float_::NegDot(&v11->vWorldPosition, pNormal, a3);
@@ -192,18 +205,18 @@
v57 = _4E94D2_light_type;
stru_F8AD28._blv_lights_types[*pSlot] = v57;
- result = 4 * *pSlot;
+ int id = 4 * *pSlot;
if ( /*pRenderer->pRenderD3D &&*/ pRenderer->bUsingSpecular )
{
if ( stru_F8AD28._blv_lights_types[*pSlot] & 4 )
{
- stru_F8AD28._blv_lights_rs[result] = stru_F8AD28._blv_lights_rs[result] * 0.3300000131130219;
- stru_F8AD28._blv_lights_gs[result] = stru_F8AD28._blv_lights_gs[result] * 0.3300000131130219;
- stru_F8AD28._blv_lights_bs[result] = stru_F8AD28._blv_lights_bs[result] * 0.3300000131130219;
+ stru_F8AD28._blv_lights_rs[id] = stru_F8AD28._blv_lights_rs[id] * 0.3300000131130219;
+ stru_F8AD28._blv_lights_gs[id] = stru_F8AD28._blv_lights_gs[id] * 0.3300000131130219;
+ stru_F8AD28._blv_lights_bs[id] = stru_F8AD28._blv_lights_bs[id] * 0.3300000131130219;
}
}
++*pSlot;
- return 1;
+ return true;
}
//----- (0045CE50) --------------------------------------------------------
@@ -869,7 +882,7 @@
}
}
else
- if (for_refactoring)
+ //if (for_refactoring)
{
for (unsigned int i = 0; i < std__vector_000004_size; ++i)
if ( !pRenderer->DrawLightmap(std__vector_000004 + i, &arg4, 0.0) )
diff -r 91c75d202d30 -r 44d9df75dc13 Engine/Graphics/Render.cpp
--- a/Engine/Graphics/Render.cpp Thu May 14 11:03:14 2015 +0200
+++ b/Engine/Graphics/Render.cpp Thu May 14 19:16:21 2015 +0600
@@ -383,7 +383,7 @@
norm = 0;
else
norm = &pTerrainNormals[norm_idx];
- if (for_refactoring)
+ //if (for_refactoring)
{
//MessageBoxA(nullptr, "Ritor1: function StackLights_TerrainFace needed refactoring and result - slows", "", 0);
//__debugbreak();
diff -r 91c75d202d30 -r 44d9df75dc13 GUI/GUIWindow.cpp
--- a/GUI/GUIWindow.cpp Thu May 14 11:03:14 2015 +0200
+++ b/GUI/GUIWindow.cpp Thu May 14 19:16:21 2015 +0600
@@ -1246,7 +1246,7 @@
}
//GUIWindow* pWindow = &pWindowList[uNextFreeWindowID];
- pWindowList[uNextFreeWindowID] = this;
+ pWindowList[uNextFreeWindowID] = this;//sometimes uNextFreeWindowID == 20. it's result crash
this->uFrameWidth = uWidth;
this->uFrameHeight = uHeight;
diff -r 91c75d202d30 -r 44d9df75dc13 Media/Audio/AudioPlayer.cpp
--- a/Media/Audio/AudioPlayer.cpp Thu May 14 11:03:14 2015 +0200
+++ b/Media/Audio/AudioPlayer.cpp Thu May 14 19:16:21 2015 +0600
@@ -1425,7 +1425,6 @@
double v11; // st7@13
SpriteObject *v12; // eax@14
Actor *v13; // eax@15
-// signed int v14; // edx@15
BLVDoor *pDoor; // eax@19
double v16; // st7@22
double v17; // st6@22
@@ -1439,8 +1438,6 @@
int v25; // eax@32
float v26; // ST10_4@34
float v27; // ST08_4@34
-// int v38; // eax@53
-// __int16 v51; // ax@71
signed int v53; // eax@88
RenderVertexSoft a1; // [sp+24h] [bp-48h]@1
float v55; // [sp+54h] [bp-18h]@22
@@ -1449,11 +1446,7 @@
float v58; // [sp+60h] [bp-Ch]@23
int v59; // [sp+64h] [bp-8h]@4
- //pAudioPlayer = this;
v2 = 0;
- //thisa = this;
- //v3 = this->bPlayerReady == 0;
- //a1.flt_2C = 0.0;
if (!bPlayerReady)
return;
@@ -1515,11 +1508,11 @@
v19 = *(float *)&uNumRepeats * v56 + v58 * v55;
v20 = v58 * v56 - *(float *)&uNumRepeats * v55;
}
- /*else
- {
- v19 = v58 * v55 - *(float *)&uNumRepeats * v56;
- v20 = v58 * v56 + *(float *)&uNumRepeats * v55;
- }*/
+ //else
+ // {
+ // v19 = v58 * v55 - *(float *)&uNumRepeats * v56;
+ // v20 = v58 * v56 + *(float *)&uNumRepeats * v55;
+ //}
a1.vWorldViewPosition.x = v19 * v16 - v18 * v17;
a1.vWorldViewPosition.y = v20;
a1.vWorldViewPosition.z = v19 * v17 + v18 * v16;
@@ -1533,11 +1526,11 @@
a1.vWorldViewPosition.x = *(float *)&uNumRepeats * v56 + v58 * v55;
v21 = v58 * v56 - *(float *)&uNumRepeats * v55;
}
- /*else
- {
- a1.vWorldViewPosition.x = v58 * v55 - *(float *)&uNumRepeats * v56;
- v21 = v58 * v56 + *(float *)&uNumRepeats * v55;
- }*/
+ //else
+ //{
+ // a1.vWorldViewPosition.x = v58 * v55 - *(float *)&uNumRepeats * v56;
+ // v21 = v58 * v56 + *(float *)&uNumRepeats * v55;
+ //}
a1.vWorldViewPosition.y = v21;
a1.vWorldViewPosition.z = a1.vWorldPosition.z - (double)pParty->vPosition.z;
}
@@ -1586,11 +1579,11 @@
v19 = *(float *)&uNumRepeats * v56 + v58 * v55;
v20 = v58 * v56 - *(float *)&uNumRepeats * v55;
}
- /*else
- {
- v19 = v58 * v55 - *(float *)&uNumRepeats * v56;
- v20 = v58 * v56 + *(float *)&uNumRepeats * v55;
- }*/
+ //else
+ //{
+ // v19 = v58 * v55 - *(float *)&uNumRepeats * v56;
+ // v20 = v58 * v56 + *(float *)&uNumRepeats * v55;
+ //}
a1.vWorldViewPosition.x = v19 * v16 - v18 * v17;
a1.vWorldViewPosition.y = v20;
a1.vWorldViewPosition.z = v19 * v17 + v18 * v16;
@@ -1604,11 +1597,11 @@
a1.vWorldViewPosition.x = *(float *)&uNumRepeats * v56 + v58 * v55;
v21 = v58 * v56 - *(float *)&uNumRepeats * v55;
}
- /*else
- {
- a1.vWorldViewPosition.x = v58 * v55 - *(float *)&uNumRepeats * v56;
- v21 = v58 * v56 + *(float *)&uNumRepeats * v55;
- }*/
+ //else
+ //{
+ // a1.vWorldViewPosition.x = v58 * v55 - *(float *)&uNumRepeats * v56;
+ // v21 = v58 * v56 + *(float *)&uNumRepeats * v55;
+ //}
a1.vWorldViewPosition.y = v21;
a1.vWorldViewPosition.z = a1.vWorldPosition.z - (double)pParty->vPosition.z;
}
@@ -1660,11 +1653,11 @@
v19 = *(float *)&uNumRepeats * v56 + v58 * v55;
v20 = v58 * v56 - *(float *)&uNumRepeats * v55;
}
- /*else
- {
- v19 = v58 * v55 - *(float *)&uNumRepeats * v56;
- v20 = v58 * v56 + *(float *)&uNumRepeats * v55;
- }*/
+ //else
+ // {
+ // v19 = v58 * v55 - *(float *)&uNumRepeats * v56;
+ // v20 = v58 * v56 + *(float *)&uNumRepeats * v55;
+ //}
a1.vWorldViewPosition.x = v19 * v16 - v18 * v17;
a1.vWorldViewPosition.y = v20;
a1.vWorldViewPosition.z = v19 * v17 + v18 * v16;
@@ -1678,11 +1671,11 @@
a1.vWorldViewPosition.x = *(float *)&uNumRepeats * v56 + v58 * v55;
v21 = v58 * v56 - *(float *)&uNumRepeats * v55;
}
- /*else
- {
- a1.vWorldViewPosition.x = v58 * v55 - *(float *)&uNumRepeats * v56;
- v21 = v58 * v56 + *(float *)&uNumRepeats * v55;
- }*/
+ //else
+ //{
+ //a1.vWorldViewPosition.x = v58 * v55 - *(float *)&uNumRepeats * v56;
+ //v21 = v58 * v56 + *(float *)&uNumRepeats * v55;
+ //}
a1.vWorldViewPosition.y = v21;
a1.vWorldViewPosition.z = a1.vWorldPosition.z - (double)pParty->vPosition.z;
}
@@ -1758,11 +1751,11 @@
v19 = *(float *)&uNumRepeats * v56 + v58 * v55;
v20 = v58 * v56 - *(float *)&uNumRepeats * v55;
}
- /*else
- {
- v19 = v58 * v55 - *(float *)&uNumRepeats * v56;
- v20 = v58 * v56 + *(float *)&uNumRepeats * v55;
- }*/
+ //else
+ //{
+ // v19 = v58 * v55 - *(float *)&uNumRepeats * v56;
+ // v20 = v58 * v56 + *(float *)&uNumRepeats * v55;
+ //}
a1.vWorldViewPosition.x = v19 * v16 - v18 * v17;
a1.vWorldViewPosition.y = v20;
a1.vWorldViewPosition.z = v19 * v17 + v18 * v16;
@@ -1776,11 +1769,11 @@
a1.vWorldViewPosition.x = *(float *)&uNumRepeats * v56 + v58 * v55;
v21 = v58 * v56 - *(float *)&uNumRepeats * v55;
}
- /*else
- {
- a1.vWorldViewPosition.x = v58 * v55 - *(float *)&uNumRepeats * v56;
- v21 = v58 * v56 + *(float *)&uNumRepeats * v55;
- }*/
+ //else
+ //{
+ // a1.vWorldViewPosition.x = v58 * v55 - *(float *)&uNumRepeats * v56;
+ // v21 = v58 * v56 + *(float *)&uNumRepeats * v55;
+ //}
a1.vWorldViewPosition.y = v21;
a1.vWorldViewPosition.z = a1.vWorldPosition.z - (double)pParty->vPosition.z;
}