MCPcopy Create free account
hub / github.com/demoth/jake2 / Heatbeam

Method Heatbeam

client/src/main/java/jake2/client/CL_newfx.java:234–317  ·  view source on GitHub ↗
(float[] start, float[] forward)

Source from the content-addressed store, hash-verified

232 private static final float[] end = {0, 0, 0};
233
234 static void Heatbeam(float[] start, float[] forward) {
235 float len;
236 int j;
237 cparticle_t p;
238 int i;
239 float c, s;
240 float ltime;
241 float step = 32.0f, rstep;
242 float start_pt;
243 float rot;
244 float variance;
245
246 Math3D.VectorMA(start, 4096, forward, end);
247
248 Math3D.VectorCopy(start, move);
249 Math3D.VectorSubtract(end, start, vec);
250 len = Math3D.VectorNormalize(vec);
251
252 // FIXME - pmm - these might end up using old values?
253 // MakeNormalVectors (vec, right, up);
254 Math3D.VectorCopy(ClientGlobals.cl.v_right, right);
255 Math3D.VectorCopy(ClientGlobals.cl.v_up, up);
256 if (ClientGlobals.vidref_val == Defines.VIDREF_GL) { // GL mode
257 Math3D.VectorMA(move, -0.5f, right, move);
258 Math3D.VectorMA(move, -0.5f, up, move);
259 }
260 // otherwise assume SOFT
261
262 ltime = (float) ClientGlobals.cl.time / 1000.0f;
263 start_pt = ltime * 96.0f % step;
264 Math3D.VectorMA(move, start_pt, vec, move);
265
266 Math3D.VectorScale(vec, step, vec);
267
268 // Com_Printf ("%f\n", ltime);
269 rstep = (float) (Math.PI / 10.0);
270 float M_PI2 = (float) (Math.PI * 2.0);
271 for (i = (int) start_pt; i < len; i += step) {
272 if (i > step * 5) // don't bother after the 5th ring
273 break;
274
275 for (rot = 0; rot < M_PI2; rot += rstep) {
276
277 if (CL_fx.free_particles == null)
278 return;
279
280 p = CL_fx.free_particles;
281 CL_fx.free_particles = p.next;
282 p.next = CL_fx.active_particles;
283 CL_fx.active_particles = p;
284
285 p.time = ClientGlobals.cl.time;
286 Math3D.VectorClear(p.accel);
287 // rot+= fmod(ltime, 12.0)*M_PI;
288 // c = cos(rot)/2.0;
289 // s = sin(rot)/2.0;
290 // variance = 0.4 + ((float)rand()/(float)RAND_MAX) *0.2;
291 variance = 0.5f;

Callers 1

AddPlayerBeamsMethod · 0.95

Calls 8

VectorMAMethod · 0.95
VectorCopyMethod · 0.95
VectorSubtractMethod · 0.95
VectorNormalizeMethod · 0.95
VectorScaleMethod · 0.95
VectorClearMethod · 0.95
randMethod · 0.95
VectorAddMethod · 0.95

Tested by

no test coverage detected