diff --git a/src/simulation/Air.cpp b/src/simulation/Air.cpp index 2dfcae090..10c45690d 100644 --- a/src/simulation/Air.cpp +++ b/src/simulation/Air.cpp @@ -2,6 +2,7 @@ #include #include "Config.h" #include "Air.h" +#include "Simulation.h" //#include //#include #include "Gravity.h" @@ -110,7 +111,7 @@ void Air::update_airh(void) dh += AIR_VADV*(1.0f-tx)*ty*(bmap_blockairh[j+1][i] ? odh : hv[j+1][i]); dh += AIR_VADV*tx*ty*(bmap_blockairh[j+1][i+1] ? odh : hv[j+1][i+1]); } - //if(!gravityMode) TODO: GET REAL VALUE + if(!sim.gravityMode) { //Vertical gravity only for the time being float airdiff = hv[y-1][x]-hv[y][x]; if(airdiff>0 && !bmap_blockairh[y-1][x]) @@ -309,9 +310,12 @@ void Air::Invert() } } -Air::Air(): - airMode(0) +Air::Air(Simulation & simulation): + airMode(0), + sim(simulation) { //Simulation should do this. make_kernel(); + + } diff --git a/src/simulation/Air.h b/src/simulation/Air.h index 8fa6f6edb..936f54b92 100644 --- a/src/simulation/Air.h +++ b/src/simulation/Air.h @@ -7,6 +7,7 @@ class Simulation; class Air { public: + Simulation & sim; int airMode; //Arrays from the simulation unsigned char (*bmap)[XRES/CELL]; @@ -30,7 +31,7 @@ public: void update_air(void); void Clear(); void Invert(); - Air(); + Air(Simulation & sim); }; #endif diff --git a/src/simulation/Simulation.cpp b/src/simulation/Simulation.cpp index 2db746ab5..23c1a219e 100644 --- a/src/simulation/Simulation.cpp +++ b/src/simulation/Simulation.cpp @@ -4520,7 +4520,7 @@ Simulation::Simulation(): gravmap = grav->gravmap; //Create and attach air simulation - air = new Air(); + air = new Air(*this); //Give air sim references to our data air->bmap = bmap; air->emap = emap;