From 7c5e74410bb45b02eca2b9ff2073e67225bd00b7 Mon Sep 17 00:00:00 2001 From: Simon Robertshaw Date: Tue, 12 Jun 2012 18:16:40 +0100 Subject: [PATCH] TPT: New element: Titanium, absorbs some neutrons, acts as a solid wall to air d7fa0b139e --- src/simulation/Simulation.cpp | 7 ++++ src/simulation/elements/NEUT.cpp | 7 +++- src/simulation/elements/TTAN.cpp | 59 ++++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 src/simulation/elements/TTAN.cpp diff --git a/src/simulation/Simulation.cpp b/src/simulation/Simulation.cpp index 1cedb5c88..395bc6508 100644 --- a/src/simulation/Simulation.cpp +++ b/src/simulation/Simulation.cpp @@ -4029,6 +4029,13 @@ void Simulation::update_particles()//doesn't update the particles themselves, bu } } + for (y=0; ybmap_blockair[y][x] = (bmap[y][x]==WL_WALL || bmap[y][x]==WL_WALLELEC || (bmap[y][x]==WL_EWALL && !emap[y][x])); + air->bmap_blockairh[y][x] = (bmap[y][x]==WL_WALL || bmap[y][x]==WL_WALLELEC || bmap[y][x]==WL_GRAV || (bmap[y][x]==WL_EWALL && !emap[y][x])); + } + if(!sys_pause||framerender) update_particles_i(0, 1); diff --git a/src/simulation/elements/NEUT.cpp b/src/simulation/elements/NEUT.cpp index 108ae7223..5c963e76d 100644 --- a/src/simulation/elements/NEUT.cpp +++ b/src/simulation/elements/NEUT.cpp @@ -129,6 +129,11 @@ int Element_NEUT::update(UPDATE_FUNC_ARGS) parts[r>>8].ctype = PT_DUST; else if ((r&0xFF)==PT_ACID && 5>(rand()%100)) sim->create_part(r>>8, x+rx, y+ry, PT_ISOZ); + else if ((r&0xFF)==PT_TTAN && 5>(rand()%100)) + { + sim->kill_part(i); + return 1; + } /*if(parts[r>>8].type>1 && parts[r>>8].type!=PT_NEUT && parts[r>>8].type-1!=PT_NEUT && parts[r>>8].type-1!=PT_STKM && (elements[parts[r>>8].type-1].menusection==SC_LIQUID|| elements[parts[r>>8].type-1].menusection==SC_EXPLOSIVE|| @@ -197,4 +202,4 @@ int Element_NEUT::create_n_parts(Simulation * sim, int n, int x, int y, float vx } -Element_NEUT::~Element_NEUT() {} \ No newline at end of file +Element_NEUT::~Element_NEUT() {} diff --git a/src/simulation/elements/TTAN.cpp b/src/simulation/elements/TTAN.cpp new file mode 100644 index 000000000..c728c9913 --- /dev/null +++ b/src/simulation/elements/TTAN.cpp @@ -0,0 +1,59 @@ +#include "simulation/Elements.h" +#include "simulation/Air.h" +//#TPT-Directive ElementClass Element_TTAN PT_TTAN 144 +Element_TTAN::Element_TTAN() +{ + Identifier = "DEFAULT_PT_TTAN"; + Name = "TTAN"; + Colour = PIXPACK(0x909090); + MenuVisible = 1; + MenuSection = SC_SOLIDS; + Enabled = 1; + + Advection = 0.0f; + AirDrag = 0.00f * CFDS; + AirLoss = 0.90f; + Loss = 0.00f; + Collision = 0.0f; + Gravity = 0.0f; + Diffusion = 0.00f; + HotAir = 0.000f * CFDS; + Falldown = 0; + + Flammable = 0; + Explosive = 0; + Meltable = 1; + Hardness = 50; + + Weight = 100; + + Temperature = R_TEMP+0.0f +273.15f; + HeatConduct = 251; + Description = "Titanium, Higher melting temperature than other metals, blocks all air pressure"; + + State = ST_SOLID; + Properties = TYPE_SOLID|PROP_CONDUCTS|PROP_HOT_GLOW; + + LowPressure = IPL; + LowPressureTransition = NT; + HighPressure = IPH; + HighPressureTransition = NT; + LowTemperature = ITL; + LowTemperatureTransition = NT; + HighTemperature = 1687.0f; + HighTemperatureTransition = PT_LAVA; + + Update = &Element_TTAN::update; + Graphics = NULL; +} + +//#TPT-Directive ElementHeader Element_TTAN static int update(UPDATE_FUNC_ARGS) +int Element_TTAN::update(UPDATE_FUNC_ARGS) + { + sim->air->bmap_blockair[y/CELL][x/CELL] = 1; + sim->air->bmap_blockairh[y/CELL][x/CELL] = 1; + return 0; +} + + +Element_TTAN::~Element_TTAN() {}