1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
#include "simulation/Elements.h"
Element::Element():
Identifier("DEFAULT_INVALID"),
Name(""),
Colour(PIXPACK(0xFF00FF)),
MenuVisible(0),
MenuSection(0),
Enabled(0),
Advection(0.0f),
AirDrag(-0.0f * CFDS),
AirLoss(1.0f),
Loss(1.0f),
Collision(0.0f),
Gravity(0.0f),
Diffusion(0.0f),
HotAir(0.0f * CFDS),
Falldown(0),
Flammable(0),
Explosive(0),
Meltable(0),
Hardness(30),
Weight(50),
Temperature(273.15f),
HeatConduct(128),
Description("No description"),
State(ST_SOLID),
Properties(TYPE_SOLID),
LowPressure(IPL),
LowPressureTransition(NT),
HighPressure(IPH),
HighPressureTransition(NT),
LowTemperature(ITL),
LowTemperatureTransition(NT),
HighTemperature(ITH),
HighTemperatureTransition(NT),
Update(NULL),
Graphics(&Element::defaultGraphics),
IconGenerator(NULL)
{
}
int Element::defaultGraphics(GRAPHICS_FUNC_ARGS)
{
int t = cpart->type;
//Property based defaults
if(ren->sim->elements[t].Properties & PROP_RADIOACTIVE) *pixel_mode |= PMODE_GLOW;
if(ren->sim->elements[t].Properties & TYPE_LIQUID)
{
*pixel_mode |= PMODE_BLUR;
}
if(ren->sim->elements[t].Properties & TYPE_GAS)
{
*pixel_mode &= ~PMODE;
*pixel_mode |= FIRE_BLEND;
*firer = *colr/2;
*fireg = *colg/2;
*fireb = *colb/2;
*firea = 125;
*pixel_mode |= DECO_FIRE;
}
return 1;
}
|