1 #include "simulation/ElementCommon.h" 2 3 static int update(UPDATE_FUNC_ARGS); 4 static void create(ELEMENT_CREATE_FUNC_ARGS); 5 Element_GLAS()6void Element::Element_GLAS() 7 { 8 Identifier = "DEFAULT_PT_GLAS"; 9 Name = "GLAS"; 10 Colour = PIXPACK(0x404040); 11 MenuVisible = 1; 12 MenuSection = SC_SOLIDS; 13 Enabled = 1; 14 15 Advection = 0.0f; 16 AirDrag = 0.00f * CFDS; 17 AirLoss = 0.90f; 18 Loss = 0.00f; 19 Collision = 0.0f; 20 Gravity = 0.0f; 21 Diffusion = 0.00f; 22 HotAir = 0.000f * CFDS; 23 Falldown = 0; 24 25 Flammable = 0; 26 Explosive = 0; 27 Meltable = 0; 28 Hardness = 0; 29 30 Weight = 100; 31 32 HeatConduct = 150; 33 Description = "Glass. Meltable. Shatters under pressure, and refracts photons."; 34 35 Properties = TYPE_SOLID | PROP_NEUTPASS | PROP_HOT_GLOW | PROP_SPARKSETTLE; 36 37 LowPressure = IPL; 38 LowPressureTransition = NT; 39 HighPressure = IPH; 40 HighPressureTransition = NT; 41 LowTemperature = ITL; 42 LowTemperatureTransition = NT; 43 HighTemperature = 1973.0f; 44 HighTemperatureTransition = PT_LAVA; 45 46 Update = &update; 47 Create = &create; 48 } 49 update(UPDATE_FUNC_ARGS)50static int update(UPDATE_FUNC_ARGS) 51 { 52 parts[i].pavg[0] = parts[i].pavg[1]; 53 parts[i].pavg[1] = sim->pv[y/CELL][x/CELL]; 54 float diff = parts[i].pavg[1] - parts[i].pavg[0]; 55 if (diff > 0.25f || diff < -0.25f) 56 { 57 sim->part_change_type(i,x,y,PT_BGLA); 58 } 59 return 0; 60 } 61 create(ELEMENT_CREATE_FUNC_ARGS)62static void create(ELEMENT_CREATE_FUNC_ARGS) 63 { 64 sim->parts[i].pavg[1] = sim->pv[y/CELL][x/CELL]; 65 } 66