void NeoWindow::RedrawChartWindow() { if ( chart_wind == NULL ) return; fl_freeze_form( chart_wind->chart_window ); int c = FL_BLACK + 1; fl_set_chart_maxnumb( chart_wind->population, 127 ); if ( neo->time_step % 500 < 50 ) { char tmp[5]; sprintf( tmp, "%d", neo->num_creatures ); fl_add_chart_value( chart_wind->population, neo->num_creatures, tmp, c ); } else { fl_add_chart_value( chart_wind->population, neo->num_creatures, "", c ); } int values[32]; for ( int i = 1; i < 11; i ++ ) { for ( int j = 0; j < 32; j ++ ) values[j] = 0; for ( long k = 0; k < neo->max_index+1; k ++ ) { if ( neo->ppCreatureList[k] != NULL ) { Creature *c = neo->ppCreatureList[k]; Genome *g = c->genome; switch ( i ) { case 1: values[ *(g->maximum_mass) >> 3 ] ++; break; case 2: values[ *(g->plant_eff) >> 3 ] ++; break; case 3: values[ *(g->attack_defend) >> 3 ] ++; break; case 4: values[ *(g->color1) >> 3 ] ++; break; case 5: values[ *(g->color2) >> 3 ] ++; break; case 6: values[ *(g->min_age_reproduce) >> 3 ] ++; break; case 7: values[ *(g->min_energy_reproduce) >> 3 ] ++; break; case 8: values[ c->energy >> 6 ] ++; break; case 9: values[ c->a_ucMass >> 3 ] ++; break; case 10: values[ *(g->metabolism) >> 3 ] ++; break; } } } FL_OBJECT *chart = NULL; switch ( i ) { case 1: chart = chart_wind->max_mass; break; case 2: chart = chart_wind->plant_eff; break; case 3: chart = chart_wind->attack; break; case 4: chart = chart_wind->color1; break; case 5: chart = chart_wind->color2; break; case 6: chart = chart_wind->breeding_age; break; case 7: chart = chart_wind->breeding_energy; break; case 8: chart = chart_wind->energy; break; case 9: chart = chart_wind->mass; break; case 10: chart = chart_wind->metabolism; break; } fl_clear_chart( chart ); for ( int j = 0; j < 32; j ++ ) fl_add_chart_value( chart, values[j], "", c ); }
void fill_in( FL_OBJECT * ob ) { int c = FL_BLACK; fl_add_chart_value( ob, 15.0, "item 1", ++c ); fl_add_chart_value( ob, 5.0, "item 2", ++c ); fl_add_chart_value( ob, 0.0, "item 3", ++c ); fl_add_chart_value( ob, -10., "item 4", ++c ); fl_add_chart_value( ob, 25.0, "item 5", ++c ); fl_add_chart_value( ob, 12.0, "item 6", ++c ); }