From 4ddd90e71988f16c5ea79f5de86a9fcb63973ded Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Mon, 1 Dec 2003 02:35:56 +0000 Subject: [PATCH] * Se agrega carga de lineas entre compuertas. Al parecer ya esta todo lo que es load/save. Yo estoy haciendo algunas pruebas con cosas raras y para verificar lo que estoy haciendo es cargar un archivo, salvarlo con otro nombre y luego hacer : diff file1.xml file2.xml para ver si hay alguna diferencia. Si hay alguna diferencia estamos mal :-) --- Constructor/src/constructor.cpp | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/Constructor/src/constructor.cpp b/Constructor/src/constructor.cpp index e352f4a..acf5bc1 100644 --- a/Constructor/src/constructor.cpp +++ b/Constructor/src/constructor.cpp @@ -1055,16 +1055,36 @@ void Constructor::create_line(xmlNodePtr nodo, int logic_id) t_line tmp_line; tmp_line.logic_id = logic_id; //workplace->get_logic_item(logic_id)->set_out_connected(true); - tmp_line.store_id = workplace->get_item_id(otro); - std::cout << otro << " " << tmp_line.logic_id << " " << tmp_line.store_id << std::endl; - workplace->lista_lineas_in.push_back(tmp_line); + if (workplace->get_item_id(otro) != -1) { + tmp_line.store_id = workplace->get_item_id(otro); + std::cout << otro << " se conecta a una compuerta" << std::endl; + workplace->lista_lineas_in.push_back(tmp_line); + } else { + /* Como no era un item, debe ser una compuerta */ + tmp_line.store_id = workplace->get_logic_id(otro); + workplace->lista_lineas_logic.push_back(tmp_line); + } } else if (xmlStrcmp(nodo->name, BAD_CAST"entrada")==0) { otro = (char *)XML_GET_CONTENT(nodo->children); t_line tmp_line; tmp_line.logic_id = logic_id; - tmp_line.store_id = workplace->get_item_id(otro); - workplace->lista_lineas_out.push_back(tmp_line); - std::cout << otro << " " << tmp_line.logic_id << " " << tmp_line.store_id << std::endl; + if (workplace->get_item_id(otro) != -1) { + tmp_line.store_id = workplace->get_item_id(otro); + /* Tengo que ver si es un tanque, para setearlo correctamente */ + if (dynamic_cast(workplace->get_item(workplace->get_item_id(otro)))) { + std::string donde = (char *)xmlGetProp(nodo, BAD_CAST"id"); + tmp_line.cistern_out1 = true; + if (donde == "inferior") { + tmp_line.cistern_out1 = false; + } + } + workplace->lista_lineas_out.push_back(tmp_line); + std::cout << otro << " se conecta a una compuerta" << std::endl; + } else { + /* Como no era un item, debe ser una compuerta */ + tmp_line.store_id = workplace->get_logic_id(otro); + workplace->lista_lineas_logic.push_back(tmp_line); + } } } nodo = nodo->next; -- 2.43.0