summaryrefslogtreecommitdiff
path: root/src/simulation
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-08-21 12:00:31 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-08-21 12:00:31 (GMT)
commitb6736f967e9889c7fc8a68b11abd5be1ad4cc5d7 (patch)
tree693cf90faed1cef2ec0e7ff6859e062134316859 /src/simulation
parente25d934856fdd7c2288e3a515cac907a0451e9c4 (diff)
downloadpowder-b6736f967e9889c7fc8a68b11abd5be1ad4cc5d7.zip
powder-b6736f967e9889c7fc8a68b11abd5be1ad4cc5d7.tar.gz
Add EMP flash, fixes #137
Diffstat (limited to 'src/simulation')
-rw-r--r--src/simulation/Simulation.cpp5
-rw-r--r--src/simulation/Simulation.h1
-rw-r--r--src/simulation/elements/EMP.cpp6
3 files changed, 9 insertions, 3 deletions
diff --git a/src/simulation/Simulation.cpp b/src/simulation/Simulation.cpp
index 23c1a21..c5a07e5 100644
--- a/src/simulation/Simulation.cpp
+++ b/src/simulation/Simulation.cpp
@@ -1860,6 +1860,7 @@ void Simulation::create_arc(int sx, int sy, int dx, int dy, int midpoints, int v
void Simulation::clear_sim(void)
{
int i, x, y;
+ emp_decor = 0;
signs.clear();
currentTick = 0;
memset(bmap, 0, sizeof(bmap));
@@ -4394,6 +4395,10 @@ void Simulation::update_particles()//doesn't update the particles themselves, bu
gravWallChanged = false;
}
}
+ if(emp_decor>0)
+ emp_decor -= emp_decor/25+2;
+ if(emp_decor < 0)
+ emp_decor = 0;
}
memset(pmap, 0, sizeof(pmap));
diff --git a/src/simulation/Simulation.h b/src/simulation/Simulation.h
index 0dafe33..7737c2b 100644
--- a/src/simulation/Simulation.h
+++ b/src/simulation/Simulation.h
@@ -76,6 +76,7 @@ public:
int elementCount[PT_NUM];
int ISWIRE;
int force_stacking_check;
+ int emp_decor;
//Gol sim
int CGOL;
int ISGOL;
diff --git a/src/simulation/elements/EMP.cpp b/src/simulation/elements/EMP.cpp
index 175e7e7..e21f69c 100644
--- a/src/simulation/elements/EMP.cpp
+++ b/src/simulation/elements/EMP.cpp
@@ -68,9 +68,9 @@ int Element_EMP::update(UPDATE_FUNC_ARGS)
if (!ok)
return 0;
parts[i].life=220;
- //emp_decor+=3; TODO: Fix
- //if (emp_decor>40)
- // emp_decor=40;
+ sim->emp_decor += 3;
+ if (sim->emp_decor > 40)
+ sim->emp_decor = 40;
for (r=0; r<=sim->parts_lastActiveIndex; r++)
{
t=parts[r].type;