summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-08-05 14:26:17 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-08-05 14:26:17 (GMT)
commited270d8dbf685fdc00e01959e1aa63c2163f152b (patch)
tree6653c43fd2875f32cde195ac43b9d63e8f9b96cb /src
parent351ce1525f570a52d571d1da720ae4f6a5815a22 (diff)
downloadpowder-ed270d8dbf685fdc00e01959e1aa63c2163f152b.zip
powder-ed270d8dbf685fdc00e01959e1aa63c2163f152b.tar.gz
Draw gravity zones when using grav wall
Diffstat (limited to 'src')
-rw-r--r--src/game/GameController.cpp8
-rw-r--r--src/game/GameModel.cpp1
-rw-r--r--src/game/QuickOptions.h22
-rw-r--r--src/graphics/Renderer.cpp11
-rw-r--r--src/graphics/Renderer.h3
-rw-r--r--src/simulation/Gravity.h2
6 files changed, 40 insertions, 7 deletions
diff --git a/src/game/GameController.cpp b/src/game/GameController.cpp
index 350bc25..ea21fd1 100644
--- a/src/game/GameController.cpp
+++ b/src/game/GameController.cpp
@@ -653,6 +653,14 @@ void GameController::SetActiveMenu(Menu * menu)
void GameController::SetActiveTool(int toolSelection, Tool * tool)
{
gameModel->SetActiveTool(toolSelection, tool);
+ gameModel->GetRenderer()->gravityZonesEnabled = false;
+ for(int i = 0; i < 3; i++)
+ {
+ if(gameModel->GetActiveTool(i) == gameModel->GetMenuList().at(SC_WALL)->GetToolList().at(WL_GRAV))
+ {
+ gameModel->GetRenderer()->gravityZonesEnabled = true;
+ }
+ }
}
void GameController::OpenSearch()
diff --git a/src/game/GameModel.cpp b/src/game/GameModel.cpp
index 85f54d3..9a9e807 100644
--- a/src/game/GameModel.cpp
+++ b/src/game/GameModel.cpp
@@ -138,6 +138,7 @@ void GameModel::BuildQuickOptionMenu()
quickOptions.push_back(new DecorationsOption(this));
quickOptions.push_back(new NGravityOption(this));
quickOptions.push_back(new AHeatOption(this));
+ quickOptions.push_back(new DrawGravWallOption(this));
notifyQuickOptionsChanged();
UpdateQuickOptions();
diff --git a/src/game/QuickOptions.h b/src/game/QuickOptions.h
index f194c1c..b22834c 100644
--- a/src/game/QuickOptions.h
+++ b/src/game/QuickOptions.h
@@ -29,11 +29,11 @@ public:
}
virtual bool GetToggle()
{
- return m->GetRenderer()->gravifyFieldEnabled;
+ return m->GetRenderer()->gravityFieldEnabled;
}
virtual void perform()
{
- m->GetRenderer()->gravifyFieldEnabled = !m->GetRenderer()->gravifyFieldEnabled;
+ m->GetRenderer()->gravityFieldEnabled = !m->GetRenderer()->gravityFieldEnabled;
}
};
@@ -96,4 +96,22 @@ public:
{
m->GetSimulation()->aheat_enable = !m->GetSimulation()->aheat_enable;
}
+};
+
+class DrawGravWallOption: public QuickOption
+{
+public:
+ DrawGravWallOption(GameModel * m):
+ QuickOption("Z", "Draw gravity zones", m, Toggle)
+ {
+
+ }
+ virtual bool GetToggle()
+ {
+ return m->GetRenderer()->gravityZonesEnabled;
+ }
+ virtual void perform()
+ {
+ m->GetRenderer()->gravityZonesEnabled = !m->GetRenderer()->gravityZonesEnabled;
+ }
}; \ No newline at end of file
diff --git a/src/graphics/Renderer.cpp b/src/graphics/Renderer.cpp
index 9949926..c1f24da 100644
--- a/src/graphics/Renderer.cpp
+++ b/src/graphics/Renderer.cpp
@@ -43,6 +43,7 @@ void Renderer::RenderBegin()
render_parts();
render_fire();
DrawWalls();
+ draw_grav_zones();
DrawSigns();
#ifndef OGLR
FinaliseParts();
@@ -1901,7 +1902,7 @@ void Renderer::draw_grav()
int x, y, i, ca;
float nx, ny, dist;
- if(!gravifyFieldEnabled)
+ if(!gravityFieldEnabled)
return;
for (y=0; y<YRES/CELL; y++)
@@ -2062,12 +2063,15 @@ void Renderer::draw_air()
void Renderer::draw_grav_zones()
{
+ if(!gravityZonesEnabled)
+ return;
+
int x, y, i, j;
for (y=0; y<YRES/CELL; y++)
{
for (x=0; x<XRES/CELL; x++)
{
- //if(sim->gravmask[y*(XRES/CELL)+x])
+ if(sim->grav->gravmask[y*(XRES/CELL)+x])
{
for (j=0; j<CELL; j++)//draws the colors
for (i=0; i<CELL; i++)
@@ -2102,7 +2106,8 @@ Renderer::Renderer(Graphics * g, Simulation * sim):
ZFACTOR(8),
zoomEnabled(false),
decorations_enable(1),
- gravifyFieldEnabled(false)
+ gravityFieldEnabled(false),
+ gravityZonesEnabled(false)
{
this->g = g;
this->sim = sim;
diff --git a/src/graphics/Renderer.h b/src/graphics/Renderer.h
index 721d39e..bf0f448 100644
--- a/src/graphics/Renderer.h
+++ b/src/graphics/Renderer.h
@@ -42,7 +42,8 @@ public:
char * plasma_data;
int emp_decor;
//
- bool gravifyFieldEnabled;
+ bool gravityZonesEnabled;
+ bool gravityFieldEnabled;
int decorations_enable;
Simulation * sim;
Graphics * g;
diff --git a/src/simulation/Gravity.h b/src/simulation/Gravity.h
index e78332a..8d81211 100644
--- a/src/simulation/Gravity.h
+++ b/src/simulation/Gravity.h
@@ -43,7 +43,6 @@ typedef struct mask_el mask_el;
class Gravity
{
private:
- unsigned *gravmask;
float *th_ogravmap;
float *th_gravmap;
@@ -68,6 +67,7 @@ private:
//Simulation * sim;
public:
+ unsigned *gravmask;
float *gravmap;
float *gravp;
float *gravy;