for (j = 0; getnews(i + j, &news); j++) {
if (news.nws_vrb == 0)
break;
- ef_set_uid(EF_NEWS, &news, j);
putnews(j, &news);
}
CANT_HAPPEN(i + j != news_tail);
struct newscache *np;
int i;
int oldslot;
- time_t oldtime;
+ time_t oldtime, dur;
time_t now = time(NULL);
oldslot = -1;
}
if (np->news.nws_vrb == 0)
continue;
- if ((now - np->news.nws_when) > minutes(5))
+ dur = now - np->news.nws_when;
+ if (dur > minutes(5))
continue;
if (np->news.nws_vrb == event && np->news.nws_vno == victim &&
np->news.nws_ntm + times <= 127) {
np->news.nws_ntm += times;
+ np->news.nws_duration = dur;
return np;
}
}
np = &cache[actor][oldslot];
ef_blank(EF_NEWS, news_tail, &np->news);
np->news.nws_ano = actor;
- np->news.nws_vno = victim;
- np->news.nws_when = now;
np->news.nws_vrb = event;
+ np->news.nws_vno = victim;
np->news.nws_ntm = times;
+ np->news.nws_duration = 0;
+ np->news.nws_when = now;
np->id = news_tail++;
return np;
}