Air invert and grid mode switching
This commit is contained in:
parent
ca30e9f091
commit
f19c7f62c7
@ -231,6 +231,20 @@ void GameController::Install()
|
||||
#endif
|
||||
}
|
||||
|
||||
void GameController::AdjustGridSize(int direction)
|
||||
{
|
||||
if(direction > 0)
|
||||
gameModel->GetRenderer()->SetGridSize((gameModel->GetRenderer()->GetGridSize()+1)%10);
|
||||
else
|
||||
gameModel->GetRenderer()->SetGridSize((gameModel->GetRenderer()->GetGridSize()+9)%10);
|
||||
}
|
||||
|
||||
void GameController::InvertAirSim()
|
||||
{
|
||||
gameModel->GetSimulation()->air->Invert();
|
||||
}
|
||||
|
||||
|
||||
void GameController::AdjustBrushSize(int direction, bool logarithmic, bool xAxis, bool yAxis)
|
||||
{
|
||||
if(xAxis && yAxis)
|
||||
|
@ -69,6 +69,8 @@ public:
|
||||
|
||||
void Install();
|
||||
|
||||
void AdjustGridSize(int direction);
|
||||
void InvertAirSim();
|
||||
void LoadRenderPreset(RenderPreset preset);
|
||||
void SetZoomEnabled(bool zoomEnable);
|
||||
void SetZoomPosition(ui::Point position);
|
||||
|
@ -1243,6 +1243,12 @@ void GameView::OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool
|
||||
case 'f':
|
||||
c->FrameStep();
|
||||
break;
|
||||
case 'g':
|
||||
if(shift)
|
||||
c->AdjustGridSize(-1);
|
||||
else
|
||||
c->AdjustGridSize(1);
|
||||
break;
|
||||
case 'd':
|
||||
showDebug = !showDebug;
|
||||
break;
|
||||
@ -1345,6 +1351,8 @@ void GameView::OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool
|
||||
case 'i':
|
||||
if(ctrl)
|
||||
c->Install();
|
||||
else
|
||||
c->InvertAirSim();
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1086,17 +1086,17 @@ void Renderer::render_parts()
|
||||
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, partsFbo);
|
||||
glTranslated(0, MENUSIZE, 0);
|
||||
#else
|
||||
/*if (GRID_MODE)//draws the grid
|
||||
if (gridSize)//draws the grid
|
||||
{
|
||||
for (ny=0; ny<YRES; ny++)
|
||||
for (nx=0; nx<XRES; nx++)
|
||||
{
|
||||
if (ny%(4*GRID_MODE)==0)
|
||||
if (ny%(4*gridSize)==0)
|
||||
blendpixel(nx, ny, 100, 100, 100, 80);
|
||||
if (nx%(4*GRID_MODE)==0)
|
||||
if (nx%(4*gridSize)==0)
|
||||
blendpixel(nx, ny, 100, 100, 100, 80);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
#endif
|
||||
for(i = 0; i<=sim->parts_lastActiveIndex; i++) {
|
||||
if (sim->parts[i].type) {
|
||||
@ -2284,7 +2284,8 @@ Renderer::Renderer(Graphics * g, Simulation * sim):
|
||||
mousePosY(-1),
|
||||
display_mode(0),
|
||||
render_mode(0),
|
||||
colour_mode(0)
|
||||
colour_mode(0),
|
||||
gridSize(0)
|
||||
{
|
||||
this->g = g;
|
||||
this->sim = sim;
|
||||
|
@ -131,12 +131,16 @@ public:
|
||||
void SetColourMode(unsigned int mode);
|
||||
unsigned int GetColourMode();
|
||||
|
||||
int GetGridSize() { return gridSize; }
|
||||
void SetGridSize(int value) { gridSize = value; }
|
||||
|
||||
static VideoBuffer * WallIcon(int wallID, int width, int height);
|
||||
|
||||
Renderer(Graphics * g, Simulation * sim);
|
||||
~Renderer();
|
||||
|
||||
private:
|
||||
int gridSize;
|
||||
#ifdef OGLR
|
||||
GLuint zoomTex, airBuf, fireAlpha, glowAlpha, blurAlpha, partsFboTex, partsFbo, partsTFX, partsTFY, airPV, airVY, airVX;
|
||||
GLuint fireProg, airProg_Pressure, airProg_Velocity, airProg_Cracker, lensProg;
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include <cmath>
|
||||
#include <algorithm>
|
||||
#include "Config.h"
|
||||
#include "Air.h"
|
||||
//#include <powder.h>
|
||||
@ -295,6 +296,19 @@ void Air::update_air(void)
|
||||
memcpy(pv, opv, sizeof(pv));
|
||||
}
|
||||
}
|
||||
|
||||
void Air::Invert()
|
||||
{
|
||||
int nx, ny;
|
||||
for (nx = 0; nx<XRES/CELL; nx++)
|
||||
for (ny = 0; ny<YRES/CELL; ny++)
|
||||
{
|
||||
pv[ny][nx] = -pv[ny][nx];
|
||||
vx[ny][nx] = -vx[ny][nx];
|
||||
vy[ny][nx] = -vy[ny][nx];
|
||||
}
|
||||
}
|
||||
|
||||
Air::Air():
|
||||
airMode(0)
|
||||
{
|
||||
|
@ -29,6 +29,7 @@ public:
|
||||
void update_airh(void);
|
||||
void update_air(void);
|
||||
void Clear();
|
||||
void Invert();
|
||||
Air();
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user