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
|
if (!parinit) {
loopi(MAXPARTICLES)
{
particles[i].next = parempty;
parempty = &particles[i];
}
parinit = true;
};
if (parempty) {
particle *p = parempty;
parempty = p->next;
p->o = o;
p->d = d;
p->fade = fade;
p->type = type;
p->millis = lastmillis;
p->next = parlist;
parlist = p;
};
}
VAR(demotracking, 0, 0, 1);
VARP(particlesize, 20, 100, 500);
OFVector3D right, up;
|
<
>
<
>
|
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
|
if (!parinit) {
loopi(MAXPARTICLES)
{
particles[i].next = parempty;
parempty = &particles[i];
}
parinit = true;
}
if (parempty) {
particle *p = parempty;
parempty = p->next;
p->o = o;
p->d = d;
p->fade = fade;
p->type = type;
p->millis = lastmillis;
p->next = parlist;
parlist = p;
}
}
VAR(demotracking, 0, 0, 1);
VARP(particlesize, 20, 100, 500);
OFVector3D right, up;
|
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
glDisable(GL_FOG);
struct parttype {
float r, g, b;
int gr, tex;
float sz;
} parttypes[] = {
{0.7f, 0.6f, 0.3f, 2, 3, 0.06f}, // yellow: sparks
{0.5f, 0.5f, 0.5f, 20, 7, 0.15f}, // grey: small smoke
{0.2f, 0.2f, 1.0f, 20, 3, 0.08f}, // blue: edit mode entities
{1.0f, 0.1f, 0.1f, 1, 7, 0.06f}, // red: blood spats
{1.0f, 0.8f, 0.8f, 20, 6, 1.2f}, // yellow: fireball1
{0.5f, 0.5f, 0.5f, 20, 7, 0.6f}, // grey: big smoke
{1.0f, 1.0f, 1.0f, 20, 8, 1.2f}, // blue: fireball2
{1.0f, 1.0f, 1.0f, 20, 9, 1.2f}, // green: fireball3
{1.0f, 0.1f, 0.1f, 0, 7, 0.2f}, // red: demotrack
};
int numrender = 0;
for (particle *p, **pp = &parlist; p = *pp;) {
parttype *pt = &parttypes[p->type];
|
|
|
|
>
|
|
|
|
|
|
|
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
glDisable(GL_FOG);
struct parttype {
float r, g, b;
int gr, tex;
float sz;
} parttypes[] = {
{ 0.7f, 0.6f, 0.3f, 2, 3, 0.06f }, // yellow: sparks
{ 0.5f, 0.5f, 0.5f, 20, 7, 0.15f }, // grey: small smoke
{ 0.2f, 0.2f, 1.0f, 20, 3,
0.08f }, // blue: edit mode entities
{ 1.0f, 0.1f, 0.1f, 1, 7, 0.06f }, // red: blood spats
{ 1.0f, 0.8f, 0.8f, 20, 6, 1.2f }, // yellow: fireball1
{ 0.5f, 0.5f, 0.5f, 20, 7, 0.6f }, // grey: big smoke
{ 1.0f, 1.0f, 1.0f, 20, 8, 1.2f }, // blue: fireball2
{ 1.0f, 1.0f, 1.0f, 20, 9, 1.2f }, // green: fireball3
{ 1.0f, 0.1f, 0.1f, 0, 7, 0.2f }, // red: demotrack
};
int numrender = 0;
for (particle *p, **pp = &parlist; p = *pp;) {
parttype *pt = &parttypes[p->type];
|