mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-07 08:21:59 +00:00
this might fix the lightning bug (produces better code anyway)
This commit is contained in:
parent
4223aaa4c0
commit
0deb11eeae
1 changed files with 13 additions and 6 deletions
|
@ -202,7 +202,7 @@ void
|
||||||
CL_ParseBeam (model_t *m)
|
CL_ParseBeam (model_t *m)
|
||||||
{
|
{
|
||||||
beam_t *b;
|
beam_t *b;
|
||||||
int ent, i;
|
int ent;
|
||||||
vec3_t start, end;
|
vec3_t start, end;
|
||||||
|
|
||||||
ent = MSG_ReadShort (net_message);
|
ent = MSG_ReadShort (net_message);
|
||||||
|
@ -211,9 +211,12 @@ CL_ParseBeam (model_t *m)
|
||||||
MSG_ReadCoordV (net_message, end);
|
MSG_ReadCoordV (net_message, end);
|
||||||
|
|
||||||
if ((b = CL_AllocBeam (ent))) {
|
if ((b = CL_AllocBeam (ent))) {
|
||||||
for (i = 0; i < b->ent_count; i++)
|
if (b->ent_count) {
|
||||||
if (b->ent_list[i].efrag)
|
entity_t *e = b->ent_list + b->ent_count;
|
||||||
R_RemoveEfrags (&b->ent_list[i]);
|
while (e != b->ent_list)
|
||||||
|
R_RemoveEfrags (e-- - 1);
|
||||||
|
b->ent_count = 0;
|
||||||
|
}
|
||||||
b->entity = ent;
|
b->entity = ent;
|
||||||
b->model = m;
|
b->model = m;
|
||||||
b->endtime = cl.time + 0.2;
|
b->endtime = cl.time + 0.2;
|
||||||
|
@ -411,8 +414,12 @@ CL_UpdateBeams (void)
|
||||||
// update lightning
|
// update lightning
|
||||||
for (i = 0, b = cl_beams; i < MAX_BEAMS; i++, b++) {
|
for (i = 0, b = cl_beams; i < MAX_BEAMS; i++, b++) {
|
||||||
if (!b->model || b->endtime < cl.time) {
|
if (!b->model || b->endtime < cl.time) {
|
||||||
while (b->ent_count)
|
if (b->ent_count) {
|
||||||
R_RemoveEfrags (&b->ent_list[--b->ent_count]);
|
entity_t *e = b->ent_list + b->ent_count;
|
||||||
|
while (e != b->ent_list)
|
||||||
|
R_RemoveEfrags (e-- - 1);
|
||||||
|
b->ent_count = 0;
|
||||||
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue