actual_in_flow = capacity - litros;
if (*((float *)data) < actual_in_flow)
actual_in_flow = *((float *)data);
- actual_out_flow = litros;
+ actual_flow = actual_out_flow = litros;
updated = true;
send_msg(OUT, MSG_QUERY_MAX_FLOW_OUT, &actual_out_flow);
case MSG_RESPONSE_MAX_FLOW:
if (pos == OUT) {
if (*((float *)data) < actual_out_flow)
- actual_out_flow = *((float *)data);
+ actual_flow = actual_out_flow = *((float *)data);
}
break;
case MSG_RESPONSE_COLOR:
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 {
case 2:
actual_flow = 0;
}
- if (!updated)
- send_msg(OUT, MSG_QUERY_MAX_FLOW_OUT, &actual_flow);
+ send_msg(OUT, MSG_QUERY_MAX_FLOW_OUT, &actual_flow);
tmp = (in_on_zero==0)?actual_flow/2.0f:actual_flow;
who->recieve_msg(MSG_RESPONSE_MAX_FLOW, this, &tmp);
}