case MSG_RESPONSE_COLOR:
if (in_colors == 0) {
color1 = *((RGB *)data);
- flow1 = static_cast<PlantItem *>(who)->get_actual_flow();
+ entrada1 = static_cast<PlantItem *>(who);
+ flow1 = entrada1->get_actual_flow();
in_colors++;
- } else {
+ } else if ((in_colors == 1) && (entrada1 != who)) {
color2 = *((RGB *)data);
flow2 = static_cast<PlantItem *>(who)->get_actual_flow();
+ in_colors++;
+ if (color1 == color2) {
+ std::cout << "TODO MAL" << std::endl << std::endl;
+ }
/* Ya tengo mis 2 colores, los sumo */
int r,g,b;
if (flow2 == 0) n--;
float suma = flow1+flow2;
if (n != 0) {
- r = (int)(color1.r()*flow1/suma + color2.r()*flow2/suma)/n;
- g = (int)(color1.g()*flow1/suma + color2.g()*flow2/suma)/n;
- b = (int)(color1.b()*flow1/suma + color2.b()*flow2/suma)/n;
- r %= 256;
- g %= 256;
- b %= 256;
+ r = (int)(color1.r()*flow1/suma + color2.r()*flow2/suma);
+ g = (int)(color1.g()*flow1/suma + color2.g()*flow2/suma);
+ b = (int)(color1.b()*flow1/suma + color2.b()*flow2/suma);
set_color(RGB(r,g,b));
} else {
set_color(RGB(0,0,0));