Add EMP flash, fixes #137
This commit is contained in:
parent
e25d934856
commit
b6736f967e
@ -41,6 +41,7 @@ void Renderer::RenderBegin()
|
||||
render_parts();
|
||||
render_fire();
|
||||
DrawWalls();
|
||||
draw_other();
|
||||
draw_grav_zones();
|
||||
DrawSigns();
|
||||
|
||||
@ -84,6 +85,7 @@ void Renderer::RenderBegin()
|
||||
}
|
||||
|
||||
DrawWalls();
|
||||
draw_other();
|
||||
draw_grav_zones();
|
||||
DrawSigns();
|
||||
if(display_mode & DISPLAY_WARP)
|
||||
@ -127,6 +129,7 @@ void Renderer::RenderBegin()
|
||||
}
|
||||
|
||||
DrawWalls();
|
||||
draw_other();
|
||||
draw_grav_zones();
|
||||
DrawSigns();
|
||||
|
||||
@ -2025,10 +2028,10 @@ void Renderer::render_parts()
|
||||
void Renderer::draw_other() // EMP effect
|
||||
{
|
||||
int i, j;
|
||||
//if (emp_decor>0 && !sys_pause) emp_decor-=emp_decor/25+2; TODO: Render should render only, do not change simulation state
|
||||
if (emp_decor>40) emp_decor=40;
|
||||
int emp_decor = sim->emp_decor;
|
||||
if (emp_decor>40) emp_decor = 40;
|
||||
if (emp_decor<0) emp_decor = 0;
|
||||
if (!(display_mode & DISPLAY_EFFE)) // no in nothing mode
|
||||
if (!(render_mode & EFFECT)) // not in nothing mode
|
||||
return;
|
||||
if (emp_decor>0)
|
||||
{
|
||||
@ -2485,7 +2488,6 @@ void Renderer::CompileRenderMode()
|
||||
|
||||
void Renderer::ClearAccumulation()
|
||||
{
|
||||
emp_decor = 0;
|
||||
std::fill(fire_r[0]+0, fire_r[(YRES/CELL)-1]+((XRES/CELL)-1), 0);
|
||||
std::fill(fire_g[0]+0, fire_g[(YRES/CELL)-1]+((XRES/CELL)-1), 0);
|
||||
std::fill(fire_b[0]+0, fire_b[(YRES/CELL)-1]+((XRES/CELL)-1), 0);
|
||||
|
@ -39,7 +39,6 @@ public:
|
||||
unsigned int fire_alpha[CELL*3][CELL*3];
|
||||
char * flm_data;
|
||||
char * plasma_data;
|
||||
int emp_decor;
|
||||
//
|
||||
bool gravityZonesEnabled;
|
||||
bool gravityFieldEnabled;
|
||||
|
@ -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));
|
||||
|
@ -76,6 +76,7 @@ public:
|
||||
int elementCount[PT_NUM];
|
||||
int ISWIRE;
|
||||
int force_stacking_check;
|
||||
int emp_decor;
|
||||
//Gol sim
|
||||
int CGOL;
|
||||
int ISGOL;
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user