1 #include "simulation/ElementCommon.h"
2 
3 static int update(UPDATE_FUNC_ARGS);
4 static void create(ELEMENT_CREATE_FUNC_ARGS);
5 
Element_GLAS()6 void 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)50 static 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)62 static void create(ELEMENT_CREATE_FUNC_ARGS)
63 {
64 	sim->parts[i].pavg[1] = sim->pv[y/CELL][x/CELL];
65 }
66