+ R_RegisterModule("R_Particles", r_part_start, r_part_shutdown);
+}
+
+#define particle(ptype, pcolor, ptex, pscale, palpha, ptime, px, py, pz, pvx, pvy, pvz)\
+{\
+ particle_t *p;\
+ ALLOCPARTICLE\
+ p->type = (ptype);\
+ p->color = (pcolor);\
+ p->texnum = (ptex);\
+ p->scale = (pscale);\
+ p->alpha = (palpha);\
+ p->die = cl.time + (ptime);\
+ p->org[0] = (px);\
+ p->org[1] = (py);\
+ p->org[2] = (pz);\
+ p->vel[0] = (pvx);\
+ p->vel[1] = (pvy);\
+ p->vel[2] = (pvz);\
+}
+#define particle2(ptype, pcolor, ptex, pscale, palpha, ptime, pbase, poscale, pvscale)\
+{\
+ particle_t *p;\
+ ALLOCPARTICLE\
+ p->type = (ptype);\
+ p->color = (pcolor);\
+ p->texnum = (ptex);\
+ p->scale = (pscale);\
+ p->alpha = (palpha);\
+ p->die = cl.time + (ptime);\
+ p->org[0] = lhrandom(-(poscale), (poscale)) + (pbase)[0];\
+ p->org[1] = lhrandom(-(poscale), (poscale)) + (pbase)[1];\
+ p->org[2] = lhrandom(-(poscale), (poscale)) + (pbase)[2];\
+ p->vel[0] = lhrandom(-(pvscale), (pvscale));\
+ p->vel[1] = lhrandom(-(pvscale), (pvscale));\
+ p->vel[2] = lhrandom(-(pvscale), (pvscale));\
+}
+#define particle3(ptype, pcolor, ptex, pscale, palpha, ptime, pbase, pscalex, pscaley, pscalez, pvscalex, pvscaley, pvscalez)\
+{\
+ particle_t *p;\
+ ALLOCPARTICLE\
+ p->type = (ptype);\
+ p->color = (pcolor);\
+ p->texnum = (ptex);\
+ p->scale = (pscale);\
+ p->alpha = (palpha);\
+ p->die = cl.time + (ptime);\
+ p->org[0] = lhrandom(-(pscalex), (pscalex)) + (pbase)[0];\
+ p->org[1] = lhrandom(-(pscaley), (pscaley)) + (pbase)[1];\
+ p->org[2] = lhrandom(-(pscalez), (pscalez)) + (pbase)[2];\
+ p->vel[0] = lhrandom(-(pvscalex), (pvscalex));\
+ p->vel[1] = lhrandom(-(pvscaley), (pvscaley));\
+ p->vel[2] = lhrandom(-(pvscalez), (pvscalez));\
+}
+/*
+void particle(int type, int color, int tex, float scale, int alpha, float time, float x, float y, float z, float vx, float vy, float vz)
+{
+ particle_t *p;
+ ALLOCPARTICLE
+
+ p->type = type;
+ p->color = color;
+ p->texnum = tex;
+ p->scale = scale;
+ p->alpha = alpha;
+ p->die = cl.time + time;
+ p->org[0] = x;
+ p->org[1] = y;
+ p->org[2] = z;
+ p->vel[0] = vx;
+ p->vel[1] = vy;
+ p->vel[2] = vz;
+}
+void particle2(int type, int color, int tex, float scale, int alpha, float time, vec3_t base, float oscale, float vscale)
+{
+ particle_t *p;
+ ALLOCPARTICLE
+
+ p->type = type;
+ p->color = color;
+ p->texnum = tex;
+ p->scale = scale;
+ p->alpha = alpha;
+ p->die = cl.time + time;
+ p->org[0] = lhrandom(-oscale, oscale) + base[0];
+ p->org[1] = lhrandom(-oscale, oscale) + base[1];
+ p->org[2] = lhrandom(-oscale, oscale) + base[2];
+ p->vel[0] = lhrandom(-vscale, vscale);
+ p->vel[1] = lhrandom(-vscale, vscale);
+ p->vel[2] = lhrandom(-vscale, vscale);
+}
+void particle3(int type, int color, int tex, float scale, int alpha, float time, vec3_t base, float scalex, float scaley, float scalez, float vscalex, float vscaley, float vscalez)
+{
+ particle_t *p;
+ ALLOCPARTICLE
+
+ p->type = type;
+ p->color = color;
+ p->texnum = tex;
+ p->scale = scale;
+ p->alpha = alpha;
+ p->die = cl.time + time;
+ p->org[0] = lhrandom(-scalex, scalex) + base[0];
+ p->org[1] = lhrandom(-scaley, scaley) + base[1];
+ p->org[2] = lhrandom(-scalez, scalez) + base[2];
+ p->vel[0] = lhrandom(-vscalex, vscalex);
+ p->vel[1] = lhrandom(-vscaley, vscaley);
+ p->vel[2] = lhrandom(-vscalez, vscalez);