]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Model/src/splitter.cpp
Mini bugfix.
[z.facultad/75.42/plaqui.git] / Model / src / splitter.cpp
index 38742f66e708d832b1f3b318b87b957bc9010645..cf8804ab16b012467c0e9672811a3fc5d7fca649 100644 (file)
@@ -34,13 +34,18 @@ void Splitter::recieve_msg(int msg, IConector *who, void *data)
                        }
                        // Me preguntan por el flujo máximo.
                        // Primero me actualizo, y luego respondo
                        }
                        // Me preguntan por el flujo máximo.
                        // Primero me actualizo, y luego respondo
-                       actual_flow =  *((float *)data);
+                       float tmp = *((float *)data);
+
+                       if (tmp < actual_flow) actual_flow = tmp;
 
                        if (max_flow < actual_flow) actual_flow = max_flow;
 
                        if (out_on_zero == 0)
                                actual_flow /= 2.0f;
 
 
                        if (max_flow < actual_flow) actual_flow = max_flow;
 
                        if (out_on_zero == 0)
                                actual_flow /= 2.0f;
 
+                       if (actual_flow == 0) {
+                               out_ready = 2;
+                       }
                        send_msg(OUT, MSG_QUERY_MAX_FLOW_OUT, &actual_flow);
 
                        // Listo, mi flujo ahora es el doble de lo que me pueden
                        send_msg(OUT, MSG_QUERY_MAX_FLOW_OUT, &actual_flow);
 
                        // Listo, mi flujo ahora es el doble de lo que me pueden
@@ -52,6 +57,7 @@ void Splitter::recieve_msg(int msg, IConector *who, void *data)
                break;
                case MSG_RESPONSE_MAX_FLOW: {
                        float max = *((float *)data);
                break;
                case MSG_RESPONSE_MAX_FLOW: {
                        float max = *((float *)data);
+                       if (out_ready == 2) break;
 #ifdef DEBUG
                        std::cout << name << ":Split " << max << std::endl;
 #endif
 #ifdef DEBUG
                        std::cout << name << ":Split " << max << std::endl;
 #endif