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
|
newparticle(OFVector3D &o, OFVector3D &d, int fade, int type)
{
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;
void
|
<
>
<
>
|
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
|
newparticle(OFVector3D &o, OFVector3D &d, int fade, int type)
{
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;
void
|
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
if (numrender++ > maxparticles || (p->fade -= time) < 0) {
*pp = p->next;
p->next = parempty;
parempty = p;
} else {
if (pt->gr)
p->o.z -= ((lastmillis - p->millis) / 3.0f) *
curtime / (pt->gr * 10000);
OFVector3D a = p->d;
vmul(a, time);
vdiv(a, 20000.0f);
vadd(p->o, a);
pp = &p->next;
}
}
glEnable(GL_FOG);
glDisable(GL_BLEND);
glDepthMask(GL_TRUE);
};
void
particle_splash(int type, int num, int fade, OFVector3D &p)
{
loopi(num)
{
const int radius = type == 5 ? 50 : 150;
|
|
<
>
|
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
if (numrender++ > maxparticles || (p->fade -= time) < 0) {
*pp = p->next;
p->next = parempty;
parempty = p;
} else {
if (pt->gr)
p->o.z -= ((lastmillis - p->millis) / 3.0f) *
curtime / (pt->gr * 10000);
OFVector3D a = p->d;
vmul(a, time);
vdiv(a, 20000.0f);
vadd(p->o, a);
pp = &p->next;
}
}
glEnable(GL_FOG);
glDisable(GL_BLEND);
glDepthMask(GL_TRUE);
}
void
particle_splash(int type, int num, int fade, OFVector3D &p)
{
loopi(num)
{
const int radius = type == 5 ? 50 : 150;
|