Compare commits

..
Author SHA1 Message Date
vladislav.khorev 13ac4fc9dd Some changes 2019-02-04 03:48:04 +05:00
emil.kabirov 55b042a979 working on opengl resources reinitialization 2018-10-15 17:29:14 +05:00
11 changed files with 250 additions and 366 deletions

No files matched your search

+6 -8
View File
@@ -4,7 +4,7 @@
{ {
"preloading": 4, "preloading": 4,
"texturePath": "", "texturePath": "textures/magic-star.png",
"textureSize": [ 22.625, 12.5 ], "textureSize": [ 22.625, 12.5 ],
"hasInertion": "false", "hasInertion": "false",
@@ -24,7 +24,7 @@
}, },
{ {
"t": 1, "t": 1,
"value": 1 "value": 4
} }
] ]
}, },
@@ -90,7 +90,7 @@
"maxParticles": 110, "maxParticles": 110,
"preloading": 110, "preloading": 110,
"texturePath": "", "texturePath": "textures/spark-white.png",
"textureSize": [ 10, 10 ], "textureSize": [ 10, 10 ],
"gravity": [0, -200, 0], "gravity": [0, -200, 0],
@@ -109,7 +109,7 @@
}, },
{ {
"t": 1, "t": 1,
"value": 0 "value": 50
} }
] ]
}, },
@@ -159,7 +159,6 @@
"color": "color":
{ {
"interpolation": "LINEAR_SPLINE", "interpolation": "LINEAR_SPLINE",
"matchDeathTime": "true",
"timeline": "timeline":
[ [
{ {
@@ -203,7 +202,7 @@
}, },
{ {
"t": 2.000, "t": 2.000,
"value": 1 "value": 300
} }
] ]
}, },
@@ -252,7 +251,6 @@
"color": "color":
{ {
"matchDeathTime": "true",
"interpolation": "LINEAR_SPLINE", "interpolation": "LINEAR_SPLINE",
"timeline": "timeline":
[ [
@@ -266,7 +264,7 @@
}, },
{ {
"t": 1.200, "t": 1.200,
"value": [ 1, 0, 0, 1 ] "value": [ 1, 0, 0, 0 ]
} }
] ]
} }
+16 -16
View File
@@ -7,7 +7,7 @@
"y_coord": 0.0 "y_coord": 0.0
}, },
"texture": "galaxy_0.png", "texture": "galaxy_0.png",
"scale": 1, "scale": 1.2,
"Stars": [ "Stars": [
{ {
"name": "star2", "name": "star2",
@@ -157,7 +157,7 @@
"y_coord": 0.55 "y_coord": 0.55
}, },
"texture": "levels/star3/star-flare-3.png", "texture": "levels/star3/star-flare-3.png",
"scale": 0.15, "scale": 0.3,
"levels": [ "levels": [
{ {
"name": "levels/star3/star3_level1" "name": "levels/star3/star3_level1"
@@ -204,7 +204,7 @@
"y_coord": 0.0 "y_coord": 0.0
}, },
"texture": "levels/star4/star-flare-4.png", "texture": "levels/star4/star-flare-4.png",
"scale": 0.15, "scale": 0.3,
"levels": [ "levels": [
{ {
"name": "levels/star4/star4_level1" "name": "levels/star4/star4_level1"
@@ -247,11 +247,11 @@
{ {
"name": "star_0_5", "name": "star_0_5",
"position": { "position": {
"x_coord": 0.6, "x_coord": 0.5,
"y_coord": -0.25 "y_coord": -0.25
}, },
"texture": "levels/star5/star-flare-5.png", "texture": "levels/star5/star-flare-5.png",
"scale": 0.15, "scale": 0.3,
"levels": [ "levels": [
{ {
"name": "levels/star5/star5_level1" "name": "levels/star5/star5_level1"
@@ -298,7 +298,7 @@
"y_coord": -0.55 "y_coord": -0.55
}, },
"texture": "levels/star6/star-flare-6.png", "texture": "levels/star6/star-flare-6.png",
"scale": 0.15, "scale": 0.3,
"levels": [ "levels": [
{ {
"name": "levels/star6/star6_level1" "name": "levels/star6/star6_level1"
@@ -345,7 +345,7 @@
"y_coord": -0.5 "y_coord": -0.5
}, },
"texture": "levels/star7/star-flare-7.png", "texture": "levels/star7/star-flare-7.png",
"scale": 0.15, "scale": 0.3,
"levels": [ "levels": [
{ {
"name": "levels/star7/star7_level1" "name": "levels/star7/star7_level1"
@@ -392,7 +392,7 @@
"y_coord": -0.26 "y_coord": -0.26
}, },
"texture": "levels/star8/star-flare-8.png", "texture": "levels/star8/star-flare-8.png",
"scale": 0.15, "scale": 0.3,
"levels": [ "levels": [
{ {
"name": "levels/star8/star8_level1" "name": "levels/star8/star8_level1"
@@ -439,7 +439,7 @@
"y_coord": 0.15 "y_coord": 0.15
}, },
"texture": "levels/star9/star-flare-9.png", "texture": "levels/star9/star-flare-9.png",
"scale": 0.15, "scale": 0.3,
"levels": [ "levels": [
{ {
"name": "levels/star9/star9_level1" "name": "levels/star9/star9_level1"
@@ -486,7 +486,7 @@
"y_coord": 0.35 "y_coord": 0.35
}, },
"texture": "levels/star10/star-flare-10.png", "texture": "levels/star10/star-flare-10.png",
"scale": 0.15, "scale": 0.3,
"levels": [ "levels": [
{ {
"name": "levels/star10/star10_level1" "name": "levels/star10/star10_level1"
@@ -533,7 +533,7 @@
"y_coord": 0.09 "y_coord": 0.09
}, },
"texture": "levels/star11/star-flare-11.png", "texture": "levels/star11/star-flare-11.png",
"scale": 0.15, "scale": 0.3,
"levels": [ "levels": [
{ {
"name": "levels/star11/star11_level1" "name": "levels/star11/star11_level1"
@@ -580,7 +580,7 @@
"y_coord": -0.05 "y_coord": -0.05
}, },
"texture": "levels/star12/star-flare-12.png", "texture": "levels/star12/star-flare-12.png",
"scale": 0.15, "scale": 0.3,
"levels": [ "levels": [
{ {
"name": "levels/star12/star12_level1" "name": "levels/star12/star12_level1"
@@ -627,7 +627,7 @@
"y_coord": -0.14 "y_coord": -0.14
}, },
"texture": "levels/star13/star-flare-13.png", "texture": "levels/star13/star-flare-13.png",
"scale": 0.15, "scale": 0.3,
"levels": [ "levels": [
{ {
"name": "levels/star13/star13_level1" "name": "levels/star13/star13_level1"
@@ -674,7 +674,7 @@
"y_coord": -0.0 "y_coord": -0.0
}, },
"texture": "levels/star14/star-flare-14.png", "texture": "levels/star14/star-flare-14.png",
"scale": 0.15, "scale": 0.3,
"levels": [ "levels": [
{ {
"name": "levels/star14/star14_level1" "name": "levels/star14/star14_level1"
@@ -721,7 +721,7 @@
"y_coord": 0.3 "y_coord": 0.3
}, },
"texture": "levels/star15/star-flare-15.png", "texture": "levels/star15/star-flare-15.png",
"scale": 0.15, "scale": 0.3,
"levels": [ "levels": [
{ {
"name": "levels/star15/star15_level1" "name": "levels/star15/star15_level1"
@@ -735,7 +735,7 @@
"y_coord": 0.07 "y_coord": 0.07
}, },
"texture": "levels/star16/star-flare-16.png", "texture": "levels/star16/star-flare-16.png",
"scale": 0.15, "scale": 0.3,
"levels": [ "levels": [
{ {
"name": "levels/star16/star16_level1" "name": "levels/star16/star16_level1"
+24 -31
View File
@@ -92,15 +92,6 @@ bool GalaxyMenu::InitGalaxyMenu(std::string config_json, float scale) {
void GalaxyMenu::UpdateGalaxyMenu(float s_width, float s_height, size_t dt) { void GalaxyMenu::UpdateGalaxyMenu(float s_width, float s_height, size_t dt) {
/*..Reset..*/ /*..Reset..*/
if (s_width == currentWindowWidth && s_height == currentWindowHeight)
{
return;
}
currentWindowWidth = s_width;
currentWindowHeight = s_height;
galaxies_params.clear(); galaxies_params.clear();
stars_params.clear(); stars_params.clear();
@@ -120,7 +111,6 @@ void GalaxyMenu::UpdateGalaxyMenu(float s_width, float s_height, size_t dt) {
);*/ );*/
/*..Menu geometry..*/ /*..Menu geometry..*/
xDimension = menuScale * gameScreenWidth; xDimension = menuScale * gameScreenWidth;
yDimension = menuScale * gameScreenHeight; yDimension = menuScale * gameScreenHeight;
Eigen::Vector2f currentMenuPos = Eigen::Vector2f(gameScreenCenter(0) + (gameScreenWidth/2/*relative to the screen x-dimension*/)*(menuPosition(0) - menu_offset(0)), gameScreenCenter(1) + (gameScreenHeight/2/*relative to the screen y-dimension*/)*(menuPosition(1) - menu_offset(1))); Eigen::Vector2f currentMenuPos = Eigen::Vector2f(gameScreenCenter(0) + (gameScreenWidth/2/*relative to the screen x-dimension*/)*(menuPosition(0) - menu_offset(0)), gameScreenCenter(1) + (gameScreenHeight/2/*relative to the screen y-dimension*/)*(menuPosition(1) - menu_offset(1)));
@@ -168,24 +158,34 @@ void GalaxyMenu::UpdateGalaxyMenu(float s_width, float s_height, size_t dt) {
} }
Eigen::Vector2f GalaxyMenu::textureSizeNormalize(Eigen::Vector2f texVec, int t_type) Eigen::Vector2f GalaxyMenu::textureSizeNormalize(Eigen::Vector2f texVec, int t_type) {
{ float tex_ratio = texVec(0)/texVec(1);
float x_dim, y_dim; float x_dim, y_dim;
float Xmax; // Max normalized texture width
float tex_ratio = texVec(0) / texVec(1); float Xmin;
float Ymax; // Max normalized texture height
float screenRatio = SE::Renderer->GetScreenWidth() / (float)SE::Renderer->GetScreenHeight(); float Ymin;
if (t_type == 0) {
if (tex_ratio > screenRatio) Xmax = SE::Renderer->GetScreenWidth();
{ Xmin = Xmax;
y_dim = SE::Renderer->GetScreenHeight(); Ymax = SE::Renderer->GetScreenHeight();
x_dim = y_dim * tex_ratio; Ymin = Ymax;
} }
else else { // temp for star textures
{ Xmax = (((float)SE::Renderer->GetScreenWidth())/2);
x_dim = SE::Renderer->GetScreenWidth(); Xmin = Xmax;
Ymax = (((float)SE::Renderer->GetScreenHeight())/2);
Ymin = Ymax;
}
if (texVec(0) > texVec(1)) {
x_dim = val_clamp(texVec(0), Xmin, Xmax);
y_dim = x_dim / tex_ratio; y_dim = x_dim / tex_ratio;
} }
else {
y_dim = val_clamp(texVec(1), Ymin, Ymax);
x_dim = y_dim * tex_ratio;
}
return Eigen::Vector2f(x_dim, y_dim); return Eigen::Vector2f(x_dim, y_dim);
} }
@@ -201,10 +201,6 @@ float GalaxyMenu::val_clamp(float val, float min, float max) {
void GalaxyMenu::DrawGalaxyMenu() { void GalaxyMenu::DrawGalaxyMenu() {
Renderer->PushOrthoProjection();
Renderer->PushMatrix();
Renderer->LoadIdentity();
for (int i = 0; i < galaxies_params.size(); i++) { for (int i = 0; i < galaxies_params.size(); i++) {
glBindTexture(GL_TEXTURE_2D, SE::ResourceManager->TexList["galaxy_" + std::to_string(i)]); glBindTexture(GL_TEXTURE_2D, SE::ResourceManager->TexList["galaxy_" + std::to_string(i)]);
@@ -250,9 +246,6 @@ void GalaxyMenu::DrawGalaxyMenu() {
} }
Renderer->PopMatrix();
Renderer->PopProjectionMatrix();
} }
void GalaxyMenu::InteractWithGalaxy(size_t dt) { void GalaxyMenu::InteractWithGalaxy(size_t dt) {
-2
View File
@@ -36,8 +36,6 @@ public:
// ::#Params#:: // ::#Params#::
Eigen::Vector2f menuPosition = Eigen::Vector2f(0.f, 0.f); // relative to the screen center(0.f,0.f means center) (not const!!) Eigen::Vector2f menuPosition = Eigen::Vector2f(0.f, 0.f); // relative to the screen center(0.f,0.f means center) (not const!!)
float menuScale = 1.f; // (not const!!) float menuScale = 1.f; // (not const!!)
int currentWindowWidth;
int currentWindowHeight;
float xDimension; float xDimension;
float yDimension; float yDimension;
float anchorSize = 1.f; float anchorSize = 1.f;
+83 -162
View File
@@ -89,28 +89,12 @@ void TBrick::SetInvisible()
void TBrick::TryDrawAppear(int ipos, int jpos, int screenWidth) void TBrick::TryDrawAppear(int ipos, int jpos, int screenWidth)
{ {
float screenRatio = Renderer->GetMatrixWidth() / (float)Renderer->GetMatrixHeight();
float screenRatioToFixedRatio = screenRatio / 1.6f;
Vector2f offset;
float scale;
if (screenRatioToFixedRatio > 1.f)
{
offset[0] = (Renderer->GetMatrixWidth() - Renderer->GetMatrixWidth() / screenRatioToFixedRatio) / 2.f;
offset[1] = 0;
scale = Renderer->GetMatrixHeight() / 480.f;
}
else
{
offset[0] = 0;
offset[1] = 0;// (screenHeight - screenHeight * screenRatioToFixedRatio) / 2.f;
scale = Renderer->GetMatrixWidth() / 768.f;
}
Vector2f centerPos = GetPosFrom(ipos, jpos, screenWidth); Vector2f centerPos = GetPosFrom(ipos, jpos, screenWidth);
//float LEVEL_VIEWPORT_WIDTH = Application->GetGameLevelScreenWidth(); float LEVEL_VIEWPORT_WIDTH = Application->GetGameLevelScreenWidth();
//float LEVEL_VIEWPORT_HEIGHT = Application->GetGameLevelScreenHeight(); float LEVEL_VIEWPORT_HEIGHT = Application->GetGameLevelScreenHeight();
Vector2f blockHalfSize = Vector2f(0.5f*CONST_BRICK_WIDTH * (768/480.f), 0.5f*CONST_BRICK_HEIGHT * (480/320.f)); Vector2f blockHalfSize = Vector2f(0.5f*CONST_BRICK_WIDTH * (LEVEL_VIEWPORT_WIDTH/480.f), 0.5f*CONST_BRICK_HEIGHT * (LEVEL_VIEWPORT_HEIGHT/320.f));
std::string texName; std::string texName;
if (Locked == 2) if (Locked == 2)
@@ -126,16 +110,13 @@ void TBrick::TryDrawAppear(int ipos, int jpos, int screenWidth)
texName = CONST_BLOCK_TEXTURE1; texName = CONST_BLOCK_TEXTURE1;
} }
//Vector2f offset = { (Renderer->GetMatrixWidth() - 768) / 2.f,
// (Renderer->GetMatrixHeight() - 480) / 2.f };
if (State == CONST_BRICKSTATE_DISAPPEAR) if (State == CONST_BRICKSTATE_DISAPPEAR)
{ {
RenderUniform1f("Transparency", StateTimer/CONST_BRICK_DISAPPEAR_TIME); RenderUniform1f("Transparency", StateTimer/CONST_BRICK_DISAPPEAR_TIME);
RenderUniform4fv("BrickColor", (Color.data())); RenderUniform4fv("BrickColor", (Color.data()));
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[texName]); glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[texName]);
Renderer->DrawRect((centerPos - blockHalfSize) * scale + offset, (centerPos + blockHalfSize) * scale + offset); Renderer->DrawRect(centerPos - blockHalfSize, centerPos + blockHalfSize);
} }
else if (State == CONST_BRICKSTATE_APPEAR) else if (State == CONST_BRICKSTATE_APPEAR)
{ {
@@ -143,7 +124,7 @@ void TBrick::TryDrawAppear(int ipos, int jpos, int screenWidth)
RenderUniform1f("Transparency", 1.f - StateTimer/CONST_BRICK_APPEAR_TIME); RenderUniform1f("Transparency", 1.f - StateTimer/CONST_BRICK_APPEAR_TIME);
RenderUniform4fv("BrickColor", Color.data()); RenderUniform4fv("BrickColor", Color.data());
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[texName]); glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[texName]);
Renderer->DrawRect((centerPos - blockHalfSize) * scale + offset, (centerPos + blockHalfSize) * scale + offset); Renderer->DrawRect(centerPos - blockHalfSize, centerPos + blockHalfSize);
} }
} }
@@ -179,15 +160,14 @@ Vector4f TBrick::GetColor()
Vector2f TBrick::GetPosFrom(int ipos, int jpos, int screenWidth) Vector2f TBrick::GetPosFrom(int ipos, int jpos, int screenWidth)
{ {
//float LEVEL_VIEWPORT_WIDTH = Application->GetGameLevelScreenWidth(); float LEVEL_VIEWPORT_WIDTH = Application->GetGameLevelScreenWidth();
//float LEVEL_VIEWPORT_HEIGHT = Application->GetGameLevelScreenHeight(); float LEVEL_VIEWPORT_HEIGHT = Application->GetGameLevelScreenHeight();
const Vector2f BorderShift(CONST_BRICK_SHIFT_X * (768/480.f), CONST_BRICK_SHIFT_Y * (480 /320.f)); const Vector2f BorderShift(CONST_BRICK_SHIFT_X * (LEVEL_VIEWPORT_WIDTH/480.f), CONST_BRICK_SHIFT_Y * (LEVEL_VIEWPORT_HEIGHT/320.f));
//Vector2f outlineShift = Vector2f(((screenWidth - LEVEL_VIEWPORT_WIDTH)*0.5f),0.f); Vector2f outlineShift = Vector2f(((screenWidth - LEVEL_VIEWPORT_WIDTH)*0.5f),0.f);
return BorderShift+Vector2f(CONST_BRICK_WIDTH*(768 /480.f)*ipos + 0.5f*CONST_BRICK_WIDTH*(768 /480.f), return outlineShift+BorderShift+Vector2f(CONST_BRICK_WIDTH*(LEVEL_VIEWPORT_WIDTH/480.f)*ipos + 0.5f*CONST_BRICK_WIDTH*(LEVEL_VIEWPORT_WIDTH/480.f), LEVEL_VIEWPORT_HEIGHT - CONST_BRICK_HEIGHT*(LEVEL_VIEWPORT_HEIGHT/320.f)*(jpos)-0.5f*CONST_BRICK_HEIGHT*(LEVEL_VIEWPORT_HEIGHT/320.f));
480 - CONST_BRICK_HEIGHT*(480 /320.f)*(jpos)-0.5f*CONST_BRICK_HEIGHT*(480.f /320.f));
} }
void TBrick::Disappear() void TBrick::Disappear()
@@ -277,22 +257,6 @@ int TBonusFalling::GetType()
void TBonusFalling::Draw() void TBonusFalling::Draw()
{ {
float screenRatio = Renderer->GetMatrixWidth() / (float)Renderer->GetMatrixHeight();
float screenRatioToFixedRatio = screenRatio / 1.6f;
Vector2f offset;
float scale;
if (screenRatioToFixedRatio > 1.f)
{
offset[0] = (Renderer->GetMatrixWidth() - Renderer->GetMatrixWidth() / screenRatioToFixedRatio) / 2.f;
offset[1] = 0;
scale = Renderer->GetMatrixHeight() / 480.f;
}
else
{
offset[0] = 0;
offset[1] = 0;// (screenHeight - screenHeight * screenRatioToFixedRatio) / 2.f;
scale = Renderer->GetMatrixWidth() / 768.f;
}
Vector2f BonusHalfSize = Vector2f(16.f, 16.f); Vector2f BonusHalfSize = Vector2f(16.f, 16.f);
@@ -302,7 +266,7 @@ void TBonusFalling::Draw()
RenderUniform1f("Transparency", transparency); RenderUniform1f("Transparency", transparency);
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[TexName]); glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[TexName]);
Renderer->DrawRect((Pos - BonusHalfSize) * scale + offset, (Pos + BonusHalfSize) * scale + offset); Renderer->DrawRect(Pos - BonusHalfSize, Pos + BonusHalfSize);
} }
@@ -346,11 +310,12 @@ void TBall::Go()
{ {
// Velocity = Normalize(Vector2f(2.f, 1.f)); // Velocity = Normalize(Vector2f(2.f, 1.f));
Velocity = { 0, 1 }; // Vector2f(2.f, 1.f).normalized(); Velocity = Vector2f(2.f, 1.f).normalized();
} }
void TBall::ReflectToLeft() void TBall::ReflectToLeft()
{ {
Application->hitSpark("left",Pos); Application->hitSpark("left",Pos);
if (Velocity(0) > 0.f) if (Velocity(0) > 0.f)
@@ -361,6 +326,7 @@ void TBall::ReflectToLeft()
void TBall::ReflectToRight() void TBall::ReflectToRight()
{ {
Application->hitSpark("right", Pos); Application->hitSpark("right", Pos);
if (Velocity(0) < 0.f) if (Velocity(0) < 0.f)
@@ -371,6 +337,7 @@ void TBall::ReflectToRight()
void TBall::ReflectToUp() void TBall::ReflectToUp()
{ {
Application->hitSpark("up", Pos); Application->hitSpark("up", Pos);
if (Velocity(1) < 0.f) if (Velocity(1) < 0.f)
@@ -381,6 +348,7 @@ void TBall::ReflectToUp()
void TBall::ReflectToDown() void TBall::ReflectToDown()
{ {
Application->hitSpark("down", Pos); Application->hitSpark("down", Pos);
if (Velocity(1) > 0.f) if (Velocity(1) > 0.f)
@@ -399,11 +367,11 @@ float ReflectorPlaneFunction(float shift)
Something like this Something like this
*/ */
//float LEVEL_VIEWPORT_WIDTH = Application->GetGameLevelScreenWidth(); float LEVEL_VIEWPORT_WIDTH = Application->GetGameLevelScreenWidth();
//float LEVEL_VIEWPORT_HEIGHT = Application->GetGameLevelScreenHeight(); float LEVEL_VIEWPORT_HEIGHT = Application->GetGameLevelScreenHeight();
float hRW = (CONST_REFLECTOR_WIDTH*768 / 700.f)*0.5f; // Half Reflector width float hRW = (CONST_REFLECTOR_WIDTH*LEVEL_VIEWPORT_WIDTH / 700.f)*0.5f; // Half Reflector width
float hRPW = hRW*0.594f; // Half Reflector plane width float hRPW = hRW*0.594f; // Half Reflector plane width
float cRH = CONST_REFLECTOR_HEIGHT*480 / 480.f; // Current Reflector Height float cRH = CONST_REFLECTOR_HEIGHT*LEVEL_VIEWPORT_HEIGHT / 480.f; // Current Reflector Height
if (shift >= -(hRW) && shift < -(hRPW)) { if (shift >= -(hRW) && shift < -(hRPW)) {
float t = (shift+ hRW)/cRH; float t = (shift+ hRW)/cRH;
@@ -422,9 +390,9 @@ float ReflectorPlaneFunction(float shift)
void TBall::TryReflectOnReflector(Vector2f refPos) void TBall::TryReflectOnReflector(Vector2f refPos)
{ {
//float LEVEL_VIEWPORT_HEIGHT = Application->GetGameLevelScreenHeight(); float LEVEL_VIEWPORT_HEIGHT = Application->GetGameLevelScreenHeight();
const float reflectionShiftY = 13.f; const float reflectionShiftY = 13.f;
const float reflectionMaxHeight = CONST_REFLECTOR_HEIGHT*480/480.f; const float reflectionMaxHeight = CONST_REFLECTOR_HEIGHT*LEVEL_VIEWPORT_HEIGHT/480.f;
@@ -470,7 +438,6 @@ void TBall::Update(size_t dt)
//=========================================== //===========================================
//=========================================== //===========================================
bool TGameLevel::XXX = true;
TGameLevel::TGameLevel(int levelStar, int levelIndex) TGameLevel::TGameLevel(int levelStar, int levelIndex)
{ {
@@ -513,8 +480,8 @@ int TGameLevel::getLevelIndex()
void TGameLevel::ReloadBlockInstansingList(int screenWidth) void TGameLevel::ReloadBlockInstansingList(int screenWidth)
{ {
//float LEVEL_VIEWPORT_WIDTH = Application->GetGameLevelScreenWidth(); float LEVEL_VIEWPORT_WIDTH = Application->GetGameLevelScreenWidth();
//float LEVEL_VIEWPORT_HEIGHT = Application->GetGameLevelScreenHeight(); float LEVEL_VIEWPORT_HEIGHT = Application->GetGameLevelScreenHeight();
std::map<int, std::string> ConstTextureBlockMap = boost::assign::map_list_of (0,CONST_BLOCK_TEXTURE1) (1,CONST_BLOCK_TEXTURE2) (2,CONST_BLOCK_TEXTURE3); std::map<int, std::string> ConstTextureBlockMap = boost::assign::map_list_of (0,CONST_BLOCK_TEXTURE1) (1,CONST_BLOCK_TEXTURE2) (2,CONST_BLOCK_TEXTURE3);
@@ -548,8 +515,8 @@ void TGameLevel::ReloadBlockInstansingList(int screenWidth)
itr--; itr--;
} }
Vector2f posFrom = BlockMatrix[i][j].GetPosFrom(i,j, screenWidth) + Vector2f(-0.5f*CONST_BRICK_WIDTH*(768/480.f), -0.5f*CONST_BRICK_HEIGHT*(480/320.f)); Vector2f posFrom = BlockMatrix[i][j].GetPosFrom(i,j, screenWidth) + Vector2f(-0.5f*CONST_BRICK_WIDTH*(LEVEL_VIEWPORT_WIDTH/480.f), -0.5f*CONST_BRICK_HEIGHT*(LEVEL_VIEWPORT_HEIGHT/320.f));
Vector2f posTo = BlockMatrix[i][j].GetPosFrom(i,j, screenWidth) + Vector2f(+0.5f*CONST_BRICK_WIDTH*(768 /480.f), +0.5f*CONST_BRICK_HEIGHT*(480 /320.f)); Vector2f posTo = BlockMatrix[i][j].GetPosFrom(i,j, screenWidth) + Vector2f(+0.5f*CONST_BRICK_WIDTH*(LEVEL_VIEWPORT_WIDTH/480.f), +0.5f*CONST_BRICK_HEIGHT*(LEVEL_VIEWPORT_HEIGHT/320.f));
itr->second.Data += MakeDataTriangleList(posFrom, posTo); itr->second.Data += MakeDataTriangleList(posFrom, posTo);
@@ -567,10 +534,10 @@ void TGameLevel::ReloadBlockInstansingList(int screenWidth)
Vector2f TGameLevel::GetBlock(const Vector2f& pos) Vector2f TGameLevel::GetBlock(const Vector2f& pos)
{ {
//float LEVEL_VIEWPORT_WIDTH = Application->GetGameLevelScreenWidth(); float LEVEL_VIEWPORT_WIDTH = Application->GetGameLevelScreenWidth();
//float LEVEL_VIEWPORT_HEIGHT = Application->GetGameLevelScreenHeight(); float LEVEL_VIEWPORT_HEIGHT = Application->GetGameLevelScreenHeight();
int x = static_cast<int>((pos(0) - CONST_BRICK_SHIFT_X*(768 /480.f)) / (CONST_BRICK_WIDTH*(768 /480.f))); int x = static_cast<int>((pos(0) - CONST_BRICK_SHIFT_X*(LEVEL_VIEWPORT_WIDTH /480.f) - ((Renderer->GetScreenWidth() - LEVEL_VIEWPORT_WIDTH)*0.5f)) / (CONST_BRICK_WIDTH*(LEVEL_VIEWPORT_WIDTH /480.f)));
int y = static_cast<int>((480 + CONST_BRICK_SHIFT_Y*(480/320.f) - pos(1)) / (CONST_BRICK_HEIGHT*(480/320.f))); int y = static_cast<int>((LEVEL_VIEWPORT_HEIGHT + CONST_BRICK_SHIFT_Y*(LEVEL_VIEWPORT_HEIGHT/320.f) - pos(1)) / (CONST_BRICK_HEIGHT*(LEVEL_VIEWPORT_HEIGHT/320.f)));
if (x < 0) if (x < 0)
@@ -725,7 +692,7 @@ void TGameLevel::ReloadLevel()
rowColorIterator++; rowColorIterator++;
} }
ReloadBlockInstansingList(Application->GetGameLevelScreenHeight()); ReloadBlockInstansingList(Renderer->GetScreenWidth());
} }
@@ -755,7 +722,7 @@ void TGameLevel::SetStandBy()
void TGameLevel::SetLoading() void TGameLevel::SetLoading()
{ {
InitLevel(Application->GetGameLevelScreenWidth(), Application->GetGameLevelScreenHeight()); InitLevel(Renderer->GetScreenWidth(), Renderer->GetScreenHeight());
StateTimer = CONST_TIMER_LOADING; StateTimer = CONST_TIMER_LOADING;
LevelState = CONST_LEVELSTATE_LOADING; LevelState = CONST_LEVELSTATE_LOADING;
} }
@@ -763,10 +730,10 @@ void TGameLevel::SetLoading()
void TGameLevel::InitLevel(int screenWidth, int screenHeight) void TGameLevel::InitLevel(int screenWidth, int screenHeight)
{ {
//float LEVEL_VIEWPORT_WIDTH = Application->GetGameLevelScreenWidth(); float LEVEL_VIEWPORT_WIDTH = Application->GetGameLevelScreenWidth();
//float LEVEL_VIEWPORT_HEIGHT = Application->GetGameLevelScreenHeight(); float LEVEL_VIEWPORT_HEIGHT = Application->GetGameLevelScreenHeight();
ReflectorPos = { 0.5f, 43.5 / Application->GetGameLevelScreenHeight() }; // Vector2f(screenWidth*0.5f, 16 * LEVEL_VIEWPORT_HEIGHT / 320.f + 13 * LEVEL_VIEWPORT_HEIGHT / 320.f); ReflectorPos = Vector2f(screenWidth*0.5f, 16* LEVEL_VIEWPORT_HEIGHT/320.f + 13 * LEVEL_VIEWPORT_HEIGHT / 320.f);
Vector2f ballPos = Vector2f(screenWidth*0.5f, 80* 480/320.f); Vector2f ballPos = Vector2f(screenWidth*0.5f, 80* LEVEL_VIEWPORT_HEIGHT/320.f);
BallList.clear(); BallList.clear();
BallList.push_back(TBall(ballPos, Vector2f(0, 0), BallColor)); BallList.push_back(TBall(ballPos, Vector2f(0, 0), BallColor));
@@ -849,8 +816,6 @@ void TGameLevel::Draw()
void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, int matrixHeight, bool blackAndWhite) void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, int matrixHeight, bool blackAndWhite)
{ {
Application->EffectsDraw();
return;
// Scaling math // Scaling math
float tSW = Application->GetGameLevelScreenWidth(); // Screen Width float tSW = Application->GetGameLevelScreenWidth(); // Screen Width
float tSH = Application->GetGameLevelScreenHeight(); // Screen Height float tSH = Application->GetGameLevelScreenHeight(); // Screen Height
@@ -870,13 +835,10 @@ void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, i
return; return;
} }
Renderer->PushProjectionMatrix(screenWidth, screenHeight);
Renderer->PushMatrix();
Renderer->LoadIdentity();
if (LevelState == CONST_LEVELSTATE_LOADING) if (LevelState == CONST_LEVELSTATE_LOADING)
{ {
Renderer->PushMatrix();
float scale = 1.f - 0.5f*StateTimer/CONST_TIMER_LOADING; float scale = 1.f - 0.5f*StateTimer/CONST_TIMER_LOADING;
if (scale < 0.5f) if (scale < 0.5f)
scale = 0.5f; scale = 0.5f;
@@ -884,13 +846,13 @@ void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, i
if (scale > 1.f) if (scale > 1.f)
scale = 1.f; scale = 1.f;
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[levelName + "_prerender"]); Renderer->TranslateMatrix(Vector3f(matrixWidth * 0.5f, matrixHeight * 0.5f, 0));
Renderer->ScaleMatrix(scale);
Renderer->TranslateMatrix(-Vector3f(matrixWidth * 0.5f, matrixHeight * 0.5f, 0));
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[levelName + "_prerendered"]);
Renderer->DrawRect(Vector2f(xlOffset, ylOffset), Vector2f(xlOffset+tSW, ylOffset+tSH), Vector2f (0.f,0.f), Vector2f(1.f,1.f)); // Game Screen Scale Renderer->DrawRect(Vector2f(xlOffset, ylOffset), Vector2f(xlOffset+tSW, ylOffset+tSH), Vector2f (0.f,0.f), Vector2f(1.f,1.f)); // Game Screen Scale
CheckGlError();
Renderer->PopMatrix(); Renderer->PopMatrix();
Renderer->PopProjectionMatrix(); CheckGlError();
return; return;
} }
@@ -907,24 +869,20 @@ void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, i
{ {
//See also below (same method) //See also below (same method)
// Renderer->PushMatrix(); Renderer->PushMatrix();
//Renderer->TranslateMatrix(Vector3f(matrixWidth * 0.5f, matrixHeight * 0.5f, 0)); Renderer->TranslateMatrix(Vector3f(matrixWidth * 0.5f, matrixHeight * 0.5f, 0));
// Renderer->ScaleMatrix(OutScale); Renderer->ScaleMatrix(OutScale);
//Renderer->TranslateMatrix(-Vector3f(matrixWidth * 0.5f, matrixHeight * 0.5f, 0)); Renderer->TranslateMatrix(-Vector3f(matrixWidth * 0.5f, matrixHeight * 0.5f, 0));
DrawBuffer(); DrawBuffer();
if (mustShowButtons) if (mustShowButtons)
{ {
DrawPauseButtons(); DrawPauseButtons();
} }
//Renderer->PopMatrix(); Renderer->PopMatrix();
CheckGlError(); CheckGlError();
drawOutline(screenWidth, screenHeight); drawOutline(screenWidth, screenHeight);
Renderer->PopMatrix();
Renderer->PopProjectionMatrix();
return; return;
} }
@@ -960,6 +918,9 @@ void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, i
} }
// ::::::::::: // :::::::::::
GetConsole() << BkgTexture;
GetConsole() << std::to_string(ResourceManager->TexList[BkgTexture]);
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[BkgTexture]); glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[BkgTexture]);
//Renderer->DrawRect(Vector2f(xlOffset, ylOffset), Vector2f(xlOffset+tSW, ylOffset+tSH),Vector2f(0.f, 0.f), Vector2f(1.f, 1.f)); //Renderer->DrawRect(Vector2f(xlOffset, ylOffset), Vector2f(xlOffset+tSW, ylOffset+tSH),Vector2f(0.f, 0.f), Vector2f(1.f, 1.f));
Renderer->DrawRect(Vector2f(bkgSWO, bkgSHO), Vector2f(bkgSWO + bkgSW, bkgSHO + bkgSH), Vector2f(0.f, 0.f), Vector2f(1.f, 1.f)); Renderer->DrawRect(Vector2f(bkgSWO, bkgSHO), Vector2f(bkgSWO + bkgSW, bkgSHO + bkgSH), Vector2f(0.f, 0.f), Vector2f(1.f, 1.f));
@@ -969,42 +930,19 @@ void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, i
std::list<TBall>::iterator iBall; std::list<TBall>::iterator iBall;
float screenRatio = screenWidth / (float)screenHeight;
float screenRatioToFixedRatio = screenRatio / 1.6f;
Vector2f offset;
float scale;
if (screenRatioToFixedRatio > 1.f)
{
offset[0] = (screenWidth - screenWidth / screenRatioToFixedRatio) / 2.f;
offset[1] = 0;
scale = matrixHeight / 480.f;
}
else
{
offset[0] = 0;
offset[1] = 0;// (screenHeight - screenHeight * screenRatioToFixedRatio) / 2.f;
scale = matrixWidth / 768.f;
}
Renderer->PushShader("BrickShader"); Renderer->PushShader("BrickShader");
for (int i = 0; i < CONST_BRICKMATRIX_WIDTH; i++) for (int i=0; i<CONST_BRICKMATRIX_WIDTH; i++)
{ {
for (int j = 0; j < CONST_BRICKMATRIX_HEIGHT; j++) for (int j=0; j<CONST_BRICKMATRIX_HEIGHT; j++)
{ {
BlockMatrix[i][j].TryDrawAppear(i, j, screenWidth); //Draws only appearing/disappearing blocks BlockMatrix[i][j].TryDrawAppear(i,j, screenWidth); //Draws only appearing/disappearing blocks
} }
} }
RenderUniform1f("Transparency", 1.f); RenderUniform1f("Transparency", 1.f);
//Vector2f outlineShift = Vector2f(((screenWidth - Application->GetGameLevelScreenWidth())*0.5f), 0.f);
Renderer->PushMatrix();
Renderer->TranslateMatrix(Vector3f(offset[0], offset[1], 0));
Renderer->ScaleMatrix(scale);
std::list<std::pair<PairColorTexture, TTriangleList>>::iterator colorBlockIterator; std::list<std::pair<PairColorTexture, TTriangleList>>::iterator colorBlockIterator;
for (colorBlockIterator = BlockInstansingList.ColorBlockList.begin(); colorBlockIterator != BlockInstansingList.ColorBlockList.end(); ++colorBlockIterator) for (colorBlockIterator = BlockInstansingList.ColorBlockList.begin(); colorBlockIterator != BlockInstansingList.ColorBlockList.end(); ++colorBlockIterator)
{ {
@@ -1023,12 +961,6 @@ void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, i
Renderer->DrawTriangleList(colorBlockIterator->second); Renderer->DrawTriangleList(colorBlockIterator->second);
} }
DrawBallInstancingList(blackAndWhite);
Application->EffectsDraw();
Renderer->PopMatrix();
std::list<TBonusFalling>::iterator iBonus; std::list<TBonusFalling>::iterator iBonus;
@@ -1037,17 +969,19 @@ void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, i
iBonus->Draw(); iBonus->Draw();
} }
Application->EffectsDraw();
DrawBallInstancingList(blackAndWhite);
Renderer->PopShader(); Renderer->PopShader();
//float LEVEL_VIEWPORT_WIDTH = Application->GetGameLevelScreenWidth();
//float LEVEL_VIEWPORT_HEIGHT = Application->GetGameLevelScreenHeight();
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_REFLECTOR_TEXTURE]); glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_REFLECTOR_TEXTURE]);
float xRW = 210.f * tSW/700.f; // x Reflector Width float xRW = 210.f * tSW/700.f; // x Reflector Width
float yRH = 45.f * tSH/480.f; // y Reflector Height float yRH = 45.f * tSH/480.f; // y Reflector Height
Vector2f matrixSize = ReflectorPos.cwiseProduct(Vector2f(Application->GetGameLevelScreenWidth(), Application->GetGameLevelScreenHeight())); Renderer->DrawRect(Vector2f(-xRW*0.5f, -yRH*0.5f)+ReflectorPos, Vector2f(xRW*0.5f, yRH*0.5f)+ReflectorPos, Vector2f(0.f, 0.f), Vector2f(1.f, 1.f));
Renderer->DrawRect(Vector2f(-xRW * 0.5f, -yRH * 0.5f) + matrixSize + offset,
Vector2f(xRW*0.5f, yRH*0.5f) + matrixSize + offset, Vector2f(0.f, 0.f), Vector2f(1.f, 1.f));
const Vector2f wallUpPos1(xlOffset, tSH-ylOffset-uWTW); const Vector2f wallUpPos1(xlOffset, tSH-ylOffset-uWTW);
const Vector2f wallUpPos2(tSW + xlOffset, tSH-ylOffset); const Vector2f wallUpPos2(tSW + xlOffset, tSH-ylOffset);
@@ -1118,8 +1052,6 @@ void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, i
Renderer->PopMatrix();
Renderer->PopProjectionMatrix();
CheckGlError(); CheckGlError();
} }
@@ -1127,14 +1059,11 @@ void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, i
void TGameLevel::DrawPauseButtons() //continue from void TGameLevel::DrawPauseButtons() //continue from
{ {
float x_levelScreenCenter = Renderer->GetScreenWidth()*0.5f;
float y_levelScreenCenter = Renderer->GetScreenHeight()*0.5f;
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_SLIDE_UP_BTN_TEXTURE]); glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_SLIDE_UP_BTN_TEXTURE]);
Renderer->DrawRect(Vector2f(x_levelScreenCenter - 128.f, y_levelScreenCenter - 64.f) + CONST_SLIDE_UP_POS, Vector2f(x_levelScreenCenter + 128.f, y_levelScreenCenter + 64.f) + CONST_SLIDE_UP_POS); Renderer->DrawRect(Vector2f(-128.f, -64.f)+CONST_SLIDE_UP_POS, Vector2f(128.f, 64.f)+CONST_SLIDE_UP_POS);
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_TAP_TO_CONTINUE_BTN_TEXTURE]); glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_TAP_TO_CONTINUE_BTN_TEXTURE]);
Renderer->DrawRect(Vector2f(x_levelScreenCenter - 128.f, y_levelScreenCenter - 128.f) + CONST_TAP_TO_CONTINUE_POS, Vector2f(x_levelScreenCenter + 128.f, y_levelScreenCenter + 128.f) + CONST_TAP_TO_CONTINUE_POS); Renderer->DrawRect(Vector2f(-128.f, -128.f)+CONST_TAP_TO_CONTINUE_POS, Vector2f(128.f, 128.f)+CONST_TAP_TO_CONTINUE_POS);
} }
@@ -1236,6 +1165,7 @@ bool TGameLevel::IsPaused()
void TGameLevel::Update(size_t dt) void TGameLevel::Update(size_t dt)
{ {
if (LevelState == CONST_LEVELSTATE_NODRAW) if (LevelState == CONST_LEVELSTATE_NODRAW)
{ {
return; return;
@@ -1332,8 +1262,8 @@ void TGameLevel::Update(size_t dt)
{ {
iBonus->Update(dt); iBonus->Update(dt);
if ((fabs(ReflectorPos(0) * 768 - iBonus->GetPos()(0))<CONST_BONUS_CATCH_DISTANCE_X) && if ((fabs(ReflectorPos(0) - iBonus->GetPos()(0))<CONST_BONUS_CATCH_DISTANCE_X) &&
(fabs(ReflectorPos(1) * 480 - iBonus->GetPos()(1))<CONST_BONUS_CATCH_DISTANCE_Y)) (fabs(ReflectorPos(1) - iBonus->GetPos()(1))<CONST_BONUS_CATCH_DISTANCE_Y))
{ {
int bonusType = iBonus->GetType(); int bonusType = iBonus->GetType();
iBonus = BonusFallingList.erase(iBonus); iBonus = BonusFallingList.erase(iBonus);
@@ -1628,8 +1558,8 @@ void TGameLevel::UpdateBallList(size_t dt)
std::list<TBall>::iterator iBall; std::list<TBall>::iterator iBall;
//float LEVEL_VIEWOPRT_WIDTH = Application->GetGameLevelScreenWidth(); float LEVEL_VIEWOPRT_WIDTH = Application->GetGameLevelScreenWidth();
//float LEVEL_VIEWPORT_HEIGHT = Application->GetGameLevelScreenHeight(); float LEVEL_VIEWPORT_HEIGHT = Application->GetGameLevelScreenHeight();
bool mustReloadBalls = false; bool mustReloadBalls = false;
@@ -1675,34 +1605,33 @@ void TGameLevel::UpdateBallList(size_t dt)
Vector2f ballPos = iBall->GetPos(); Vector2f ballPos = iBall->GetPos();
// float xWO = (Renderer->GetScreenWidth()-LEVEL_VIEWOPRT_WIDTH)*0.5f; // x Wall Offest float xWO = (Renderer->GetScreenWidth()-LEVEL_VIEWOPRT_WIDTH)*0.5f; // x Wall Offest
//float yWO = (Renderer->GetScreenHeight()-LEVEL_VIEWPORT_HEIGHT)*0.5f; // y Wall Offset float yWO = (Renderer->GetScreenHeight()-LEVEL_VIEWPORT_HEIGHT)*0.5f; // y Wall Offset
if (ballPos(0) > (768)-15.f*(768 /480.f)) if (ballPos(0) > (xWO + LEVEL_VIEWOPRT_WIDTH)-15.f*(LEVEL_VIEWOPRT_WIDTH/480.f))
{ {
iBall->ReflectToLeft(); iBall->ReflectToLeft();
} }
if (ballPos(0) < 15.f) if (ballPos(0) < xWO + 15.f)
{ {
iBall->ReflectToRight(); iBall->ReflectToRight();
} }
if (ballPos(1) > (480)-16.f * (480 /320.f)) if (ballPos(1) > (yWO+LEVEL_VIEWPORT_HEIGHT)-16.f * (LEVEL_VIEWPORT_HEIGHT/320.f))
{ {
iBall->ReflectToDown(); iBall->ReflectToDown();
} }
if (BonusFloorTimer > 0.f) if (BonusFloorTimer > 0.f)
{ {
if (ballPos(1) < 13.0f*(480 /320.f)) if (ballPos(1) < yWO+13.0f*(LEVEL_VIEWPORT_HEIGHT/320.f))
{ {
iBall->ReflectToUp(); iBall->ReflectToUp();
} }
} }
Vector2f matrixSize = { 768, 480 }; iBall->TryReflectOnReflector(ReflectorPos);
iBall->TryReflectOnReflector(ReflectorPos.cwiseProduct(matrixSize));
Vector2f ipos = GetBlock(ballPos); Vector2f ipos = GetBlock(ballPos);
if (!(ipos == iBall->BallInBlock)) if (!(ipos == iBall->BallInBlock))
@@ -1777,7 +1706,7 @@ void TGameLevel::UpdateBallList(size_t dt)
if (blockListChanged) if (blockListChanged)
{ {
ReloadBlockInstansingList(Application->GetGameLevelScreenWidth()); ReloadBlockInstansingList(Renderer->GetScreenWidth());
} }
if (mustReloadBalls) if (mustReloadBalls)
@@ -1819,20 +1748,10 @@ void TGameLevel::MultiplyBalls(Vector2f pos, Vector2f velocity)
void TGameLevel::OnTapDown(Vector2f pos) void TGameLevel::OnTapDown(Vector2f pos)
{ {
float xOffset = (Renderer->GetMatrixWidth() - Application->GetGameLevelScreenWidth()) / 2.f;
float yOffset = (Renderer->GetMatrixHeight() - Application->GetGameLevelScreenHeight()) / 2.f;
float xPos = pos(0) - xOffset;
float yPos = pos(1) - yOffset;
Application->hitSpark("left", { xPos, yPos });
Application->fireworkEffect();
return;
if (LevelState == CONST_LEVELSTATE_STANDBY) if (LevelState == CONST_LEVELSTATE_STANDBY)
{ {
if (TapInBackBtnArea({ xPos, yPos })) if (TapInBackBtnArea(pos))
{ {
SetPause(); SetPause();
PrevLevelStateIsStandby = true; PrevLevelStateIsStandby = true;
@@ -1846,19 +1765,21 @@ void TGameLevel::OnTapDown(Vector2f pos)
} }
else if (LevelState == CONST_LEVELSTATE_PLAYING) else if (LevelState == CONST_LEVELSTATE_PLAYING)
{ {
if (TapInBackBtnArea({ xPos, yPos }))
if (TapInBackBtnArea(pos))
{ {
SetPause(); SetPause();
} }
else// if (fabs(ReflectorPos(0) - xPos / Application->GetGameLevelScreenWidth()) > 64.f / Application->GetGameLevelScreenWidth()) else if (fabs(ReflectorPos(0) - pos(0))>64.f)
{ {
ReflectorPos(0) = xPos / Application->GetGameLevelScreenWidth(); ReflectorPos(0) = pos(0);
} }
} }
else if (LevelState == CONST_LEVELSTATE_PAUSE) else if (LevelState == CONST_LEVELSTATE_PAUSE)
{ {
if (yPos > 128.f) if (pos(1) > 128.f)
{ {
ReleasePause(); ReleasePause();
} }
@@ -1885,7 +1806,7 @@ void TGameLevel::OnScroll(Vector2f shift)
const float CONST_SCROLL_SCALE = 1.1f; const float CONST_SCROLL_SCALE = 1.1f;
if (LevelState == CONST_LEVELSTATE_PLAYING || LevelState == CONST_LEVELSTATE_STANDBY) if (LevelState == CONST_LEVELSTATE_PLAYING || LevelState == CONST_LEVELSTATE_STANDBY)
{ {
ReflectorPos(0) -= CONST_SCROLL_SCALE * shift(0) / Application->GetGameLevelScreenWidth(); ReflectorPos(0) -= CONST_SCROLL_SCALE*shift(0);
} }
else if (LevelState == CONST_LEVELSTATE_PAUSE) else if (LevelState == CONST_LEVELSTATE_PAUSE)
{ {
-2
View File
@@ -196,8 +196,6 @@ public:
TGameLevel(int levelStar, int levelIndex); TGameLevel(int levelStar, int levelIndex);
~TGameLevel(); ~TGameLevel();
static bool XXX;
void FillWithFile(const std::string& filename); void FillWithFile(const std::string& filename);
//void setBackground(const std::string& assignedShutterstock); //void setBackground(const std::string& assignedShutterstock);
+110 -136
View File
@@ -130,11 +130,6 @@ void TMyApplication::SaveUserProgress(int levelStar, int levelIndex)
#endif #endif
} }
void TMyApplication::InnerChangeWidthHeight(int screenWidth, int screenHeight, float matrixWidth, float matrixHeight)
{
Menu.GalaxMenu.UpdateGalaxyMenu(matrixWidth, matrixHeight, 0);
SetGameLevelScreenScale();
}
void TMyApplication::InnerInit() void TMyApplication::InnerInit()
{ {
@@ -157,7 +152,6 @@ void TMyApplication::InnerInit()
ST::PathToResources = ""; ST::PathToResources = "";
#endif #endif
LoadUserProgress();
GetConsole() <<"APP INIT\n"; GetConsole() <<"APP INIT\n";
@@ -165,67 +159,70 @@ void TMyApplication::InnerInit()
GameState = CONST_GAMESTATE_PRELOADING; GameState = CONST_GAMESTATE_PRELOADING;
StateTimer = 0.f; StateTimer = 0.f;
/*
ResourceManager->ShaderManager.AddShader("DefaultShader", "shader1vertex", "shader1fragment.txt");
ResourceManager->ShaderManager.AddShader("FrameShader", "frameshader_vertex.txt", "frameshader_fragment.txt");
ResourceManager->ShaderManager.AddShader("BrickShader", "brickshader_vertex.txt", "brickshader_fragment.txt");
Renderer->PushShader("DefaultShader");
*/
//ResourceManager->ShaderManager.AddShader("DefaultShader", "shaders/texture-shader.vertex", "shaders/texture-shader.fragment");
ResourceManager->ShaderManager.AddShader("DefaultShader", "shaders/gui_transparent.vertex", "shaders/gui_transparent.fragment"); ResourceManager->ShaderManager.AddShader("DefaultShader", "shaders/gui_transparent.vertex", "shaders/gui_transparent.fragment");
ResourceManager->ShaderManager.AddShader("HoverableButtonShader", "shaders/gui_transparent.vertex", "shaders/hoverable-button.fragment");
ResourceManager->ShaderManager.AddShader("BlackAndWhiteShader", "shaders/gui_transparent_blackandwhite.vertex", "shaders/gui_transparent_blackandwhite.fragment");
ResourceManager->ShaderManager.AddShader("ColorShader", "shaders/color-shader.vertex", "shaders/color-shader.fragment");
ResourceManager->ShaderManager.AddShader("FrameShader", "shaders/frameshader_vertex.txt", "shaders/frameshader_fragment.txt");
ResourceManager->ShaderManager.AddShader("BrickShader", "shaders/brickshader_vertex.txt", "shaders/brickshader_fragment.txt");
ResourceManager->ShaderManager.AddShader(ParticleEffect::PARTICLE_SHADER, "shaders/particle-shader.vertex", "shaders/particle-shader.fragment");
Renderer->PushShader("DefaultShader"); Renderer->PushShader("DefaultShader");
//ResourceManager->TexList.AddTexture(CONST_LOADING_BACKGROUND_BLACK + ".png", CONST_LOADING_BACKGROUND_BLACK);
//ResourceManager->TexList.AddTexture(CONST_LOADING_TEXTURE + ".png", CONST_LOADING_TEXTURE);
//ResourceManager->TexList.AddTexture(CONST_LOGO_SMALL_TEXTURE + ".png", CONST_LOGO_SMALL_TEXTURE);
ResourceManager->TexList.AddTexture("console_bkg.bmp"); ResourceManager->TexList.AddTexture("console_bkg.bmp");
ResourceManager->TexList.AddTexture("white.bmp"); ResourceManager->TexList.AddTexture("white.bmp");
ResourceManager->FontManager.AddFont("arial32", "arial32.png", "arial32.txt");
ResourceManager->FrameManager.AddFrameRenderBuffer("LevelBuffer", 256, 256); ResourceManager->FontManager.AddFont("lucon12", "lucon12.png", "lucon12.txt");
ResourceManager->FontManager.PushFont("lucon12");
//OnDrawSignal.connect(boost::bind(&TGameLoading::Draw, boost::ref(GameLoading)));
Inited = true;
Renderer->SetOrthoProjection(); Renderer->SetOrthoProjection();
Renderer->SetFullScreenViewport(); Renderer->SetFullScreenViewport();
Application->SetGameLevelScreenScale();
//GameLevel.SetLevelScale();
EffectsInit();
// ------- UI -------
ResourceManager->FontManager.AddFont("arial32", "arial32.png", "arial32.txt");
ResourceManager->FontManager.AddFont("lucon12", "lucon12.png", "lucon12.txt");
ResourceManager->FontManager.PushFont("lucon12");
//ResourceManager->newGuiManager.LoadFromConfig("gui_main_menu.json");
ResourceManager->newGuiManager.LoadFromConfig("gui_loading.json"); ResourceManager->newGuiManager.LoadFromConfig("gui_loading.json");
// ------- UI ------- skipUpdateToUpdateScreen = true;
StateTimer = 0.f;
}
// TESTS of menu void TMyApplication::InnerReinitGLResources()
if (Menu.GalaxMenu.InitGalaxyMenu("levels/galaxy_ptree.json")) { {
std::cout << "ok" << std::endl; RenderLevelSnapshots();
lsparkler.reinitGlResources();
rsparkler.reinitGlResources();
tsparkler.reinitGlResources();
bsparkler.reinitGlResources();
lvlFirework.reinitGlResources();
}
void TMyApplication::RenderLevelSnapshots()
{
Renderer->SwitchToFrameBuffer("LevelBuffer");
Renderer->SetProjectionMatrix(768, 480);
Renderer->LoadIdentity();
for (auto &star : Menu.GalaxMenu.galaxies[0].Stars)
{
for (auto level : star.selectionMenu.gameLevels)
{
level->DrawSnapshot("LevelBuffer", false);
Renderer->PushShader("BlackAndWhiteShader");
level->DrawSnapshot("LevelBuffer", true);
Renderer->PopShader();
} }
else {
std::cout << "menu error" << std::endl;
} }
Renderer->SwitchToScreen();
Renderer->SetOrthoProjection();
} }
void TMyApplication::InnerDeinit() void TMyApplication::InnerDeinit()
{ {
Inited = false; Inited = false;
Loaded = false; Loaded = false;
GetConsole() <<"APP DEINIT\n";
GetConsole() << "APP DEINIT\n";
OnTapUpSignal.disconnect(boost::bind(&TGameLevel::OnTapUp, boost::ref(GameLevel), _1)); OnTapUpSignal.disconnect(boost::bind(&TGameLevel::OnTapUp, boost::ref(GameLevel), _1));
OnTapUpSignal.disconnect(boost::bind(&TGameMenu::OnTapUp, boost::ref(Menu), _1)); OnTapUpSignal.disconnect(boost::bind(&TGameMenu::OnTapUp, boost::ref(Menu), _1));
@@ -475,10 +472,7 @@ void TMyApplication::TrySaveGame()
} }
void TMyApplication::OnKeyPress(size_t key)
{
TGameLevel::XXX = !TGameLevel::XXX;
}
void TMyApplication::InnerDraw() void TMyApplication::InnerDraw()
{ {
@@ -498,10 +492,48 @@ void TMyApplication::InnerUpdate(size_t dt)
StateTimer += dt/1000.f; StateTimer += dt/1000.f;
if (StateTimer >= 1.f) if (StateTimer >= 1.f)
{ {
StateTimer -= 1.f;
skipUpdateToUpdateScreen = false;
}
if (skipUpdateToUpdateScreen)
{
return;
}
LoadUserProgress();
ResourceManager->ShaderManager.AddShader("HoverableButtonShader", "shaders/gui_transparent.vertex", "shaders/hoverable-button.fragment");
ResourceManager->ShaderManager.AddShader("BlackAndWhiteShader", "shaders/gui_transparent_blackandwhite.vertex", "shaders/gui_transparent_blackandwhite.fragment");
ResourceManager->ShaderManager.AddShader("ColorShader", "shaders/color-shader.vertex", "shaders/color-shader.fragment");
ResourceManager->ShaderManager.AddShader("FrameShader", "shaders/frameshader_vertex.txt", "shaders/frameshader_fragment.txt");
ResourceManager->ShaderManager.AddShader("BrickShader", "shaders/brickshader_vertex.txt", "shaders/brickshader_fragment.txt");
ResourceManager->ShaderManager.AddShader(ParticleEffect::PARTICLE_SHADER, "shaders/particle-shader.vertex", "shaders/particle-shader.fragment");
ResourceManager->FrameManager.AddFrameRenderBuffer("LevelBuffer", 256, 256);
//OnDrawSignal.connect(boost::bind(&TGameLoading::Draw, boost::ref(GameLoading)));
Inited = true;
Application->SetGameLevelScreenScale();
//GameLevel.SetLevelScale();
EffectsInit();
// ------- UI -------
// TESTS of menu
if (Menu.GalaxMenu.InitGalaxyMenu("levels/galaxy_ptree.json")) {
std::cout << "ok" << std::endl;
}
else {
std::cout << "menu error" << std::endl;
}
RenderLevelSnapshots();
LoadResources(); LoadResources();
GameState = CONST_GAMESTATE_LOADING; GameState = CONST_GAMESTATE_LOADING;
StateTimer = 0.f;
}
} }
else if (GameState == CONST_GAMESTATE_LOADING) else if (GameState == CONST_GAMESTATE_LOADING)
{ {
@@ -520,36 +552,11 @@ void TMyApplication::InnerUpdate(size_t dt)
} }
else else
{ {
Renderer->SwitchToFrameBuffer("LevelBuffer");
Renderer->LoadIdentity();
for (auto &star : Menu.GalaxMenu.galaxies[0].Stars)
{
for (auto level : star.selectionMenu.gameLevels)
{
level->DrawSnapshot("LevelBuffer", false);
Renderer->PushShader("BlackAndWhiteShader");
level->DrawSnapshot("LevelBuffer", true);
Renderer->PopShader();
}
}
Renderer->SwitchToScreen();
Renderer->SetOrthoProjection();
GameState = CONST_GAMESTATE_MENU; GameState = CONST_GAMESTATE_MENU;
ApplySignalsToMenu(); ApplySignalsToMenu();
LoadGalaxyUi(); LoadGalaxyUi();
Menu.GalaxMenu.UpdateGalaxyMenu(Renderer->GetMatrixWidth(), Renderer->GetMatrixHeight(), 0);
OnDrawSignal.connect(0, boost::bind(&TGameMenu::Draw, boost::ref(Menu))); OnDrawSignal.connect(0, boost::bind(&TGameMenu::Draw, boost::ref(Menu)));
StateTimer = 0.f; StateTimer = 0.f;
Loaded = true; Loaded = true;
@@ -855,26 +862,26 @@ void TMyApplication::EffectsInit() {
std::string effectJSON; std::string effectJSON;
// LEFT // LEFT
//effectJSON = JSONconfig.get<std::string>("lefteffect"); effectJSON = JSONconfig.get<std::string>("lefteffect");
////boost::property_tree::json_parser::read_json(ST::PathToResources + effectJSON, JSONsource); //boost::property_tree::json_parser::read_json(ST::PathToResources + effectJSON, JSONsource);
// JSONsource = SE::ReadJsonFile(ST::PathToResources + effectJSON); JSONsource = SE::ReadJsonFile(ST::PathToResources + effectJSON);
//lsparkler.parse(JSONsource); // parse JSON lsparkler.parse(JSONsource); // parse JSON
//lsparkler.load(); // load textures lsparkler.load(); // load textures
//// RIGHT // RIGHT
//effectJSON = JSONconfig.get<std::string>("righteffect"); effectJSON = JSONconfig.get<std::string>("righteffect");
// JSONsource = SE::ReadJsonFile(ST::PathToResources + effectJSON); JSONsource = SE::ReadJsonFile(ST::PathToResources + effectJSON);
//rsparkler.parse(JSONsource); rsparkler.parse(JSONsource);
//rsparkler.load(); rsparkler.load();
//// TOP // TOP
//effectJSON = JSONconfig.get<std::string>("topeffect"); effectJSON = JSONconfig.get<std::string>("topeffect");
// JSONsource = SE::ReadJsonFile(ST::PathToResources + effectJSON); JSONsource = SE::ReadJsonFile(ST::PathToResources + effectJSON);
//tsparkler.parse(JSONsource); tsparkler.parse(JSONsource);
//tsparkler.load(); tsparkler.load();
//// BOTTOM // BOTTOM
//effectJSON = JSONconfig.get<std::string>("boteffect"); effectJSON = JSONconfig.get<std::string>("boteffect");
// JSONsource = SE::ReadJsonFile(ST::PathToResources + effectJSON); JSONsource = SE::ReadJsonFile(ST::PathToResources + effectJSON);
//bsparkler.parse(JSONsource); bsparkler.parse(JSONsource);
//bsparkler.load(); bsparkler.load();
// Level finish // Level finish
effectJSON = JSONconfig.get<std::string>("lvlFinish"); effectJSON = JSONconfig.get<std::string>("lvlFinish");
JSONsource = SE::ReadJsonFile(ST::PathToResources + effectJSON); JSONsource = SE::ReadJsonFile(ST::PathToResources + effectJSON);
@@ -892,54 +899,21 @@ void TMyApplication::EffectsInit() {
} }
void TMyApplication::EffectsUpdate(size_t dt) { void TMyApplication::EffectsUpdate(size_t dt) {
//lsparkler.update(dt / 1000.f); lsparkler.update(dt / 1000.f);
//rsparkler.update(dt / 1000.f); rsparkler.update(dt / 1000.f);
//tsparkler.update(dt / 1000.f); tsparkler.update(dt / 1000.f);
//bsparkler.update(dt / 1000.f); bsparkler.update(dt / 1000.f);
lvlFirework.update(dt / 1000.f); lvlFirework.update(dt / 1000.f);
} }
void TMyApplication::EffectsDraw() { void TMyApplication::EffectsDraw() {
lsparkler.draw();
float screenRatio = Renderer->GetMatrixWidth() / (float)Renderer->GetMatrixHeight(); rsparkler.draw();
float screenRatioToFixedRatio = screenRatio / 1.6f; tsparkler.draw();
Vector2f offset; bsparkler.draw();
float scale;
if (screenRatioToFixedRatio > 1.f)
{
offset[0] = (Renderer->GetMatrixWidth() - Renderer->GetMatrixWidth() / screenRatioToFixedRatio) / 2.f;
offset[1] = 0;
scale = Renderer->GetMatrixHeight() / 480.f;
}
else
{
offset[0] = 0;
offset[1] = 0;// (screenHeight - screenHeight * screenRatioToFixedRatio) / 2.f;
scale = Renderer->GetMatrixWidth() / 768.f;
}
Renderer->PushMatrix();
Renderer->TranslateMatrix(Vector3f(offset[0], offset[1], 0));
Renderer->ScaleMatrix(scale);
glPushAttrib(GL_ALL_ATTRIB_BITS);
glDisable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
//lsparkler.draw();
//rsparkler.draw();
//tsparkler.draw();
//bsparkler.draw();
lvlFirework.draw(); lvlFirework.draw();
Renderer->PopMatrix();
glPopAttrib();
} }
void TMyApplication::hitSpark(std::string direct,Vector2f Pos) { void TMyApplication::hitSpark(std::string direct,Vector2f Pos) {
if (direct == "left") { if (direct == "left") {
lsparkler.setCoords({ Pos(0),Pos(1),0 }); lsparkler.setCoords({ Pos(0),Pos(1),0 });
lsparkler.stopSpawn(); lsparkler.stopSpawn();
+6 -4
View File
@@ -89,6 +89,8 @@ const int CONST_GAMESTATE_PRELOADING = 7;
class TMyApplication : public TApplication class TMyApplication : public TApplication
{ {
protected: protected:
bool skipUpdateToUpdateScreen;
int levelScreenWidth; int levelScreenWidth;
int levelScreenHeight; int levelScreenHeight;
float levelScreenRatio = 1.6; float levelScreenRatio = 1.6;
@@ -141,12 +143,12 @@ public:
void LoadUserProgress(); void LoadUserProgress();
void SaveUserProgress(int levelStar, int levelIndex); void SaveUserProgress(int levelStar, int levelIndex);
void InnerChangeWidthHeight(int screenWidth, int screenHeight, float matrixWidth, float matrixHeight) override;
virtual void OnKeyPress(size_t key);
virtual void InnerInit(); virtual void InnerInit();
virtual void RenderLevelSnapshots();
virtual void InnerReinitGLResources();
virtual void InnerDeinit(); virtual void InnerDeinit();
virtual void InnerDraw(); virtual void InnerDraw();
+1 -1
View File
@@ -90,7 +90,7 @@ void TGameMenu::Update(size_t dt)
#ifdef GALAX_MENU_UPDATE #ifdef GALAX_MENU_UPDATE
/*..Galaxy Menu..*/ /*..Galaxy Menu..*/
GalaxMenu.InteractWithGalaxy(dt); GalaxMenu.InteractWithGalaxy(dt);
//GalaxMenu.UpdateGalaxyMenu((float)SE::Renderer->GetScreenWidth(), (float)SE::Renderer->GetScreenHeight(), dt); GalaxMenu.UpdateGalaxyMenu((float)SE::Renderer->GetScreenWidth(), (float)SE::Renderer->GetScreenHeight(), dt);
#else #else
if (HoldToTap) if (HoldToTap)
return; return;
@@ -65,7 +65,7 @@ public class GL2JNIActivity extends Activity
@Override @Override
protected void onPause() protected void onPause()
{ {
EngineWrapper.CallDestroy(); //EngineWrapper.CallDestroy();
super.onPause(); super.onPause();
mView.onPause(); mView.onPause();
} }
@@ -22,7 +22,7 @@
<ProjectGuid>{1CC98EEE-BBCB-4D79-B6D7-8511789172C5}</ProjectGuid> <ProjectGuid>{1CC98EEE-BBCB-4D79-B6D7-8511789172C5}</ProjectGuid>
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
<RootNamespace>DoubleHitBallswin</RootNamespace> <RootNamespace>DoubleHitBallswin</RootNamespace>
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion> <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
@@ -110,7 +110,7 @@
</PrecompiledHeader> </PrecompiledHeader>
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>TARGET_WIN32;DEBUG;_WIN32_WINNT=0x0501;_DISABLE_EXTENDED_ALIGNED_STORAGE;EIGEN_DONT_ALIGN_STATICALLY;_WINDOWS;WIN32;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>TARGET_WIN32;DEBUG;_WIN32_WINNT=0x0501;EIGEN_DONT_ALIGN_STATICALLY;_WINDOWS;WIN32;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>../../../game;../../../../tes-engine;../../../../../boost_1_67_0;../../../../eigen;../../../../boost_1_67_0;../../../../boost_1_67_0/bin.v2/libs/system/build/msvc-14.1/debug/address-model-64/link-static/threading-multi;../../../../boost_1_67_0/bin.v2/libs/date_time/build/msvc-14.1/debug/address-model-64/link-static/threading-multi/;../../../../boost_1_67_0/bin.v2/libs/regex/build/msvc-14.1/debug/address-model-64/link-static/threading-multi;../../../../boost_1_67_0/bin.v2/libs/thread/build/msvc-14.1/debug/address-model-64/link-static/threading-multi;../../../../boost_1_67_0/bin.v2/libs/chrono/build/msvc-14.1/debug/address-model-64/link-static/threading-multi;../../../../boost_1_67_0/bin.v2/libs/signals/build/msvc-14.1/debug/address-model-64/link-static/threading-multi;../../../../libs/boost-gil-extension;../../../../libs/jpeg-9;../../../../libs/jpeg-9/vc10;../../../../libs/lpng1510</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>../../../game;../../../../tes-engine;../../../../../boost_1_67_0;../../../../eigen;../../../../boost_1_67_0;../../../../boost_1_67_0/bin.v2/libs/system/build/msvc-14.1/debug/address-model-64/link-static/threading-multi;../../../../boost_1_67_0/bin.v2/libs/date_time/build/msvc-14.1/debug/address-model-64/link-static/threading-multi/;../../../../boost_1_67_0/bin.v2/libs/regex/build/msvc-14.1/debug/address-model-64/link-static/threading-multi;../../../../boost_1_67_0/bin.v2/libs/thread/build/msvc-14.1/debug/address-model-64/link-static/threading-multi;../../../../boost_1_67_0/bin.v2/libs/chrono/build/msvc-14.1/debug/address-model-64/link-static/threading-multi;../../../../boost_1_67_0/bin.v2/libs/signals/build/msvc-14.1/debug/address-model-64/link-static/threading-multi;../../../../libs/boost-gil-extension;../../../../libs/jpeg-9;../../../../libs/jpeg-9/vc10;../../../../libs/lpng1510</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4503</DisableSpecificWarnings> <DisableSpecificWarnings>4503</DisableSpecificWarnings>
</ClCompile> </ClCompile>
@@ -150,7 +150,7 @@
<Optimization>MaxSpeed</Optimization> <Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking> <FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;TARGET_WIN32;_WIN32_WINNT=0x0501;WIN32_LEAN_AND_MEAN;_DISABLE_EXTENDED_ALIGNED_STORAGE;EIGEN_DONT_ALIGN_STATICALLY;EIGEN_DONT_VECTORIZE;EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;TARGET_WIN32;_WIN32_WINNT=0x0501;WIN32_LEAN_AND_MEAN;EIGEN_DONT_ALIGN_STATICALLY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>../../../game;../../../../tes-engine;../../../../eigen;../../../../boost_1_67_0/;../../../../libs/boost-gil-extension;../../../../libs/jpeg-9;../../../../libs/jpeg-9/vc10;../../../../libs/lpng1510</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>../../../game;../../../../tes-engine;../../../../eigen;../../../../boost_1_67_0/;../../../../libs/boost-gil-extension;../../../../libs/jpeg-9;../../../../libs/jpeg-9/vc10;../../../../libs/lpng1510</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4503</DisableSpecificWarnings> <DisableSpecificWarnings>4503</DisableSpecificWarnings>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>