[CF-Devel] code question
crossfire-devel-admin at archives.real-time.com
crossfire-devel-admin at archives.real-time.com
Sun May 11 14:33:47 CDT 2003
in socket/info.c are these 2 functions.
What is their usage? I don't understand them in the context
of the other functions of info.c.
Michael
void flush_output_element(object *pl, Output_Buf *outputs)
{
char tbuf[MAX_BUF];
if (outputs->buf==NULL) return;
sprintf(tbuf,"%d times %s", outputs->count, outputs->buf);
print_message(NDI_BLACK, pl, tbuf);
free_string(outputs->buf);
outputs->buf=NULL;
outputs->first_update=0;
}
/* Following checks the various buffers in the player structure and
* other things, and stores/prints/whatever's the data, as appropriate.
*/
void check_output_buffers(object *pl, char *buf)
{
int i, oldest=0;
if (pl->contr->outputs_count<2) {
print_message(NDI_BLACK, pl, buf);
return;
}
else {
for (i=0; i<NUM_OUTPUT_BUFS; i++) {
if (pl->contr->outputs[i].buf &&
!strcmp(buf, pl->contr->outputs[i].buf)) break;
else if (pl->contr->outputs[i].first_update <
pl->contr->outputs[oldest].first_update)
oldest=i;
}
if (i<NUM_OUTPUT_BUFS) {
pl->contr->outputs[i].count++;
if (pl->contr->outputs[i].count>=pl->contr->outputs_count) {
flush_output_element(pl, &pl->contr->outputs[i]);
}
}
else {
flush_output_element(pl, &pl->contr->outputs[oldest]);
pl->contr->outputs[oldest].first_update = pticks;
pl->contr->outputs[oldest].count = 1;
if (pl->contr->outputs[oldest].buf!=NULL)
free_string(pl->contr->outputs[oldest].buf);
pl->contr->outputs[oldest].buf = add_string(buf);
}
}
}
_______________________________________________
crossfire-devel mailing list
crossfire-devel at lists.real-time.com
https://mailman.real-time.com/mailman/listinfo/crossfire-devel
More information about the crossfire
mailing list