need fix at galaxy_menu.cpp #222
This commit is contained in:
parent
1abfa608b2
commit
e25f4e3237
@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
GalaxyMenu::GalaxyMenu()
|
GalaxyMenu::GalaxyMenu()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GalaxyMenu::~GalaxyMenu()
|
GalaxyMenu::~GalaxyMenu()
|
||||||
@ -46,7 +47,12 @@ bool GalaxyMenu::InitGalaxyMenu(std::string config_json, float scale) {
|
|||||||
/*..Levels..*/
|
/*..Levels..*/
|
||||||
BOOST_FOREACH(auto levels_pt, stars_pt.second.get_child("levels")) {
|
BOOST_FOREACH(auto levels_pt, stars_pt.second.get_child("levels")) {
|
||||||
|
|
||||||
star.selectionMenu.levels.push_back(levels_pt.second.get<std::string>("name", "empty"));
|
std::string levelName = levels_pt.second.get<std::string>("name", "empty");
|
||||||
|
star.selectionMenu.levels.push_back(levelName);
|
||||||
|
|
||||||
|
TGameLevel lvl;
|
||||||
|
lvl.FillWithFile(ST::PathToResources + "level" + levelName.substr(levelName.find("_") + 1) + ".txt");
|
||||||
|
star.selectionMenu.gameLevels.push_back(lvl);
|
||||||
|
|
||||||
}
|
}
|
||||||
galax.Stars.push_back(star);
|
galax.Stars.push_back(star);
|
||||||
@ -158,8 +164,15 @@ void GalaxyMenu::UpdateGalaxyMenu(float s_width, float s_height, size_t dt) {
|
|||||||
|
|
||||||
// buttons
|
// buttons
|
||||||
std::vector<std::pair<Eigen::Vector2f, Eigen::Vector2f>> buttons_params;
|
std::vector<std::pair<Eigen::Vector2f, Eigen::Vector2f>> buttons_params;
|
||||||
buttons_params.resize(galaxies[i].Stars[j].selectionMenu.levels.size());
|
std::vector<std::vector<GameLevelInterior>> interior_params;
|
||||||
for (int y = 0; y < buttons_params.size(); y++) {
|
int levelsCount = galaxies[i].Stars[j].selectionMenu.levels.size();
|
||||||
|
buttons_params.resize(levelsCount);
|
||||||
|
interior_params.resize(levelsCount);
|
||||||
|
for (int v = 0; v < interior_params.size(); v++) {
|
||||||
|
interior_params[v].resize(CONST_BRICKMATRIX_HEIGHT*CONST_BRICKMATRIX_WIDTH);
|
||||||
|
}
|
||||||
|
for (int y = 0; y < levelsCount; y++) {
|
||||||
|
GameLevelInterior levelInter;
|
||||||
|
|
||||||
float x_rpos = (galaxies[i].Stars[j].selectionMenu.border_x_offset + (y - floor((float)y / (float)galaxies[i].Stars[j].selectionMenu.columns)*(float)galaxies[i].Stars[j].selectionMenu.columns)*(button_x_dim + galaxies[i].Stars[j].selectionMenu.buttons_offset) + button_x_dim/2);
|
float x_rpos = (galaxies[i].Stars[j].selectionMenu.border_x_offset + (y - floor((float)y / (float)galaxies[i].Stars[j].selectionMenu.columns)*(float)galaxies[i].Stars[j].selectionMenu.columns)*(button_x_dim + galaxies[i].Stars[j].selectionMenu.buttons_offset) + button_x_dim/2);
|
||||||
//float y_rpos = (/**/ galaxies[i].Stars[j].selectionMenu.border_y_offset + (floor((float)y / (float)galaxies[i].Stars[j].selectionMenu.columns))*(/*..*/ galaxies[i].Stars[j].selectionMenu.buttons_offset + button_x_dim / galaxies[i].Stars[j].selectionMenu.buttons_ratio /*..*/) + button_x_dim/galaxies[i].Stars[j].selectionMenu.buttons_ratio/2 /**/);
|
//float y_rpos = (/**/ galaxies[i].Stars[j].selectionMenu.border_y_offset + (floor((float)y / (float)galaxies[i].Stars[j].selectionMenu.columns))*(/*..*/ galaxies[i].Stars[j].selectionMenu.buttons_offset + button_x_dim / galaxies[i].Stars[j].selectionMenu.buttons_ratio /*..*/) + button_x_dim/galaxies[i].Stars[j].selectionMenu.buttons_ratio/2 /**/);
|
||||||
@ -176,7 +189,46 @@ void GalaxyMenu::UpdateGalaxyMenu(float s_width, float s_height, size_t dt) {
|
|||||||
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/*..Interior params..*/
|
||||||
|
/*.matrix init.*/
|
||||||
|
int brickMatr[CONST_BRICKMATRIX_WIDTH][CONST_BRICKMATRIX_HEIGHT];
|
||||||
|
for (int w = 0; w < CONST_BRICKMATRIX_WIDTH; w++)
|
||||||
|
{
|
||||||
|
for (int h = 0; h < CONST_BRICKMATRIX_HEIGHT; h++)
|
||||||
|
{
|
||||||
|
if (galaxies[i].Stars[j].selectionMenu.gameLevels[y].BlockMatrix[w][h].IsAppear()) {
|
||||||
|
brickMatr[w][h] = 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
brickMatr[w][h] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*.params init.*/
|
||||||
|
float brick_w = 0.06f;
|
||||||
|
float brick_ratio = 1.6f;
|
||||||
|
float brick_h = brick_w / brick_ratio;
|
||||||
|
float xb_offset = 0.01f; // x border offset * 0.5
|
||||||
|
float yb_offset = 0.01f; // offset from top
|
||||||
|
int loop_itr = 0;
|
||||||
|
for (int w = 0; w < CONST_BRICKMATRIX_WIDTH; w++) {
|
||||||
|
for (int h = 0; h < CONST_BRICKMATRIX_HEIGHT; h++) {
|
||||||
|
levelInter.position = Eigen::Vector2f(
|
||||||
|
(buttons_params[y].first(0) - buttons_params[y].second(0)*0.5f) + (xb_offset + brick_w * w + brick_w * 0.5f) * buttons_params[y].second(0),
|
||||||
|
(buttons_params[y].first(1) + buttons_params[y].second(1)*0.5f) - (yb_offset + brick_h * h + brick_h * 0.5f)*buttons_params[y].second(1)
|
||||||
|
);
|
||||||
|
levelInter.dimensions = Eigen::Vector2f(
|
||||||
|
buttons_params[y].second(0)*brick_w/* * brickMatr[w][h]*/, //drawable block coefficient - #NOW NEED TO BE FIXED AT (matrix init) sections#
|
||||||
|
buttons_params[y].second(1)*brick_h/* * brickMatr[w][h]*/
|
||||||
|
);
|
||||||
|
//inited
|
||||||
|
interior_params[y][loop_itr++] = levelInter;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
galaxies[i].Stars[j].selectionMenu.levelInterior = interior_params;
|
||||||
galaxies[i].Stars[j].selectionMenu.buttons = buttons_params;
|
galaxies[i].Stars[j].selectionMenu.buttons = buttons_params;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -618,6 +670,18 @@ void GalaxyMenu::drawSelectionMenu(int index) {
|
|||||||
galaxies[0].Stars[i].selectionMenu.buttons[j].first(1) + galaxies[0].Stars[i].selectionMenu.buttons[j].second(1) / 2
|
galaxies[0].Stars[i].selectionMenu.buttons[j].first(1) + galaxies[0].Stars[i].selectionMenu.buttons[j].second(1) / 2
|
||||||
)
|
)
|
||||||
); // DrawRect
|
); // DrawRect
|
||||||
|
|
||||||
|
/*..draw level interior..*/
|
||||||
|
drawLevelInterior(i,j);
|
||||||
|
|
||||||
|
/*std::list<std::pair<PairColorTexture, TTriangleList>>::iterator colorBlockIterator;
|
||||||
|
for (colorBlockIterator = galaxies[0].Stars[i].selectionMenu.levelInterior[j].BlockInstansingList.ColorBlockList.begin(); colorBlockIterator != galaxies[0].Stars[i].selectionMenu.levelInterior[j].BlockInstansingList.ColorBlockList.end(); ++colorBlockIterator)
|
||||||
|
{
|
||||||
|
RenderUniform4fv("BrickColor", colorBlockIterator->first.first.data());
|
||||||
|
glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList[colorBlockIterator->first.second]);
|
||||||
|
|
||||||
|
Renderer->DrawTriangleList(colorBlockIterator->second);
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -723,3 +787,20 @@ void GalaxyMenu::drawBorder(Eigen::Vector2f lb_, Eigen::Vector2f rt_, float scal
|
|||||||
); // bottom
|
); // bottom
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GalaxyMenu::drawLevelInterior(int star, int button) {
|
||||||
|
glBindTexture(GL_TEXTURE_2D, SE::ResourceManager->TexList[CONST_BLOCK_TEXTURE1]);
|
||||||
|
for (int i = 0; i < galaxies[0].Stars[star].selectionMenu.levelInterior[button].size(); i++) {
|
||||||
|
Renderer->DrawRect(
|
||||||
|
Eigen::Vector2f(
|
||||||
|
galaxies[0].Stars[star].selectionMenu.levelInterior[button][i].position(0) - galaxies[0].Stars[star].selectionMenu.levelInterior[button][i].dimensions(0)*0.5f,
|
||||||
|
galaxies[0].Stars[star].selectionMenu.levelInterior[button][i].position(1) - galaxies[0].Stars[star].selectionMenu.levelInterior[button][i].dimensions(1)*0.5f
|
||||||
|
),
|
||||||
|
Eigen::Vector2f(
|
||||||
|
galaxies[0].Stars[star].selectionMenu.levelInterior[button][i].position(0) + galaxies[0].Stars[star].selectionMenu.levelInterior[button][i].dimensions(0)*0.5f,
|
||||||
|
galaxies[0].Stars[star].selectionMenu.levelInterior[button][i].position(1) + galaxies[0].Stars[star].selectionMenu.levelInterior[button][i].dimensions(1)*0.5f
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -5,6 +5,7 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include "galaxy.h"
|
#include "galaxy.h"
|
||||||
|
#include "level_interior.h"
|
||||||
|
|
||||||
#include "include/Engine.h"
|
#include "include/Engine.h"
|
||||||
|
|
||||||
@ -47,6 +48,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|
||||||
void readSaveData(); // inner init method
|
void readSaveData(); // inner init method
|
||||||
|
|
||||||
/*..calc methodes..*/
|
/*..calc methodes..*/
|
||||||
@ -83,6 +85,7 @@ private:
|
|||||||
/*..draw methodes..*/
|
/*..draw methodes..*/
|
||||||
void drawSelectionMenu(int index);
|
void drawSelectionMenu(int index);
|
||||||
void drawBorder(Eigen::Vector2f lb_, Eigen::Vector2f rt_, float scale, std::string mode);
|
void drawBorder(Eigen::Vector2f lb_, Eigen::Vector2f rt_, float scale, std::string mode);
|
||||||
|
void drawLevelInterior(int star = -1, int button = -1);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -4,10 +4,17 @@
|
|||||||
#include "include/Engine.h"
|
#include "include/Engine.h"
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
#include "gamecode.h" // tmp
|
||||||
|
#include "level_interior.h"
|
||||||
|
|
||||||
class LevelSelection {
|
class LevelSelection {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
std::vector<std::string> levels;
|
/*..LEVELS..*/
|
||||||
|
std::vector<std::string> levels; // levels names, uses gameLevels init
|
||||||
|
/*..levels interior info..*/
|
||||||
|
std::vector<TGameLevel> gameLevels;
|
||||||
|
std::vector<std::vector<GameLevelInterior>> levelInterior;
|
||||||
|
|
||||||
// #params
|
// #params
|
||||||
//float buttons_plane_Yoffset = 0.2f; // relative to the screen
|
//float buttons_plane_Yoffset = 0.2f; // relative to the screen
|
||||||
@ -53,6 +60,7 @@ public:
|
|||||||
Eigen::Vector2f position;
|
Eigen::Vector2f position;
|
||||||
float scale;
|
float scale;
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|
||||||
|
@ -1744,3 +1744,13 @@ void TGameLevel::TryGoToMenu()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TBrick::IsAppear() {
|
||||||
|
if (State == CONST_BRICKSTATE_DISAPPEAR)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include "include/Engine.h"
|
#include "include/Engine.h"
|
||||||
#include "game_area_interface.h"
|
#include "game_area_interface.h"
|
||||||
|
//#include "galaxy_menu.h"
|
||||||
|
|
||||||
#include <list>
|
#include <list>
|
||||||
|
|
||||||
@ -60,6 +61,7 @@ public:
|
|||||||
void Disappear();
|
void Disappear();
|
||||||
int GetLocked();
|
int GetLocked();
|
||||||
bool CanReact();
|
bool CanReact();
|
||||||
|
bool IsAppear();
|
||||||
};
|
};
|
||||||
|
|
||||||
class TBonusFalling
|
class TBonusFalling
|
||||||
@ -120,6 +122,7 @@ struct TBallInstancingList
|
|||||||
class TGameLevel : public TGameAreaAncestor
|
class TGameLevel : public TGameAreaAncestor
|
||||||
{
|
{
|
||||||
friend class TMyApplication;
|
friend class TMyApplication;
|
||||||
|
friend class GalaxyMenu;
|
||||||
protected:
|
protected:
|
||||||
float lvlWidth;
|
float lvlWidth;
|
||||||
float lvlHeight;
|
float lvlHeight;
|
||||||
|
13
game/level_interior.h
Executable file
13
game/level_interior.h
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
#ifndef LEVEL_INTERIOR_H
|
||||||
|
#define LEVEL_INTERIOR_H
|
||||||
|
|
||||||
|
#include "include/Engine.h"
|
||||||
|
#include "gamecode.h"
|
||||||
|
|
||||||
|
struct GameLevelInterior {
|
||||||
|
Eigen::Vector2f position;
|
||||||
|
Eigen::Vector2f dimensions;
|
||||||
|
//reserved
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
@ -81,7 +81,8 @@ void TMyApplication::InnerInit()
|
|||||||
StateTimer = 0.f;
|
StateTimer = 0.f;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
ResourceManager->ShaderManager.AddShader("DefaultShader", "shader1vertex.txt", "shader1fragment.txt");
|
ResourceManager->ShaderManager.AddShader("DefaultShader", "shader1vertex
|
||||||
|
", "shader1fragment.txt");
|
||||||
ResourceManager->ShaderManager.AddShader("FrameShader", "frameshader_vertex.txt", "frameshader_fragment.txt");
|
ResourceManager->ShaderManager.AddShader("FrameShader", "frameshader_vertex.txt", "frameshader_fragment.txt");
|
||||||
ResourceManager->ShaderManager.AddShader("BrickShader", "brickshader_vertex.txt", "brickshader_fragment.txt");
|
ResourceManager->ShaderManager.AddShader("BrickShader", "brickshader_vertex.txt", "brickshader_fragment.txt");
|
||||||
Renderer->PushShader("DefaultShader");
|
Renderer->PushShader("DefaultShader");
|
||||||
@ -511,7 +512,7 @@ void TMyApplication::GoFromMenuToGame(int level)
|
|||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
GameLevel.FillWithFile(ST::PathToResources + "level"+tostr(level+1)+".txt");
|
GameLevel.FillWithFile(ST::PathToResources + "level"+tostr(level+1)+".txt");
|
||||||
GameLevel.SetLoading("shutterstock" + tostr(level+1), "levelshot"+tostr(level+1));
|
GameLevel.SetLoading("shutterstock" + tostr(level+1), "shutterstock" + tostr(level + 1));
|
||||||
GameState = CONST_GAMESTATE_FROM_MENU_TO_LEVEL;
|
GameState = CONST_GAMESTATE_FROM_MENU_TO_LEVEL;
|
||||||
OnDrawSignal.connect(1, boost::bind(&TGameLevel::Draw, boost::ref(GameLevel)));
|
OnDrawSignal.connect(1, boost::bind(&TGameLevel::Draw, boost::ref(GameLevel)));
|
||||||
|
|
||||||
|
@ -182,6 +182,7 @@
|
|||||||
<ClInclude Include="..\..\..\game\galaxy_objects.h" />
|
<ClInclude Include="..\..\..\game\galaxy_objects.h" />
|
||||||
<ClInclude Include="..\..\..\game\gamecode.h" />
|
<ClInclude Include="..\..\..\game\gamecode.h" />
|
||||||
<ClInclude Include="..\..\..\game\game_area_interface.h" />
|
<ClInclude Include="..\..\..\game\game_area_interface.h" />
|
||||||
|
<ClInclude Include="..\..\..\game\level_interior.h" />
|
||||||
<ClInclude Include="..\..\..\game\loadingcode.h" />
|
<ClInclude Include="..\..\..\game\loadingcode.h" />
|
||||||
<ClInclude Include="..\..\..\game\main_code.h" />
|
<ClInclude Include="..\..\..\game\main_code.h" />
|
||||||
<ClInclude Include="..\..\..\game\menucode.h" />
|
<ClInclude Include="..\..\..\game\menucode.h" />
|
||||||
|
@ -74,5 +74,8 @@
|
|||||||
<ClInclude Include="..\..\..\game\galaxy_menu.h">
|
<ClInclude Include="..\..\..\game\galaxy_menu.h">
|
||||||
<Filter>Заголовочные файлы</Filter>
|
<Filter>Заголовочные файлы</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\game\level_interior.h">
|
||||||
|
<Filter>Заголовочные файлы</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
Loading…
Reference in New Issue
Block a user