float m_data = *((float *)data)*2;
float tmp;
- if (updated) {
- float tmp = actual_flow/2.0f;
+/* if (updated) {
+ if (m_data == 0) {
+ tmp = 0;
+ actual_flow /= 2.0f;
+ } else {
+ tmp = actual_flow/2.0f;
+ }
who->recieve_msg(MSG_RESPONSE_MAX_FLOW, this, &tmp);
break;
- }
+ }*/
updated = true;
if (m_data == 0) {
in_on_zero++;
tmp = 0.0f;
who->recieve_msg(MSG_RESPONSE_MAX_FLOW, this, &tmp);
- if (in_on_zero == 1) {
- if (in_ready == 0)
- tmp = max_flow;
- else
- tmp = actual_flow/2.0f;
+ switch (in_on_zero) {
+ case 1:
+ if (in_ready == 0)
+ tmp = max_flow;
+ else
+ tmp = actual_flow/2.0f;
+ break;
+ case 0:
+ if (in_ready == 1) {
+ tmp = actual_flow/2.0f;
+ }
+ break;
+ case 2:
+ tmp = 0.0f;
}
send_msg(OUT, MSG_QUERY_MAX_FLOW_OUT, &tmp);
} else {
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));