#include "workplace.h"
#include "item.h"
+#include "pump.h"
+#include "exclusa.h"
int WorkPlace::pointed = -1;
}
int a, b, w, z, x_offset, y_offset, img;
+ int item_x_offset, item_y_offset;
std::list<t_line>::iterator i = lista_lineas_in.begin();
while ( i != lista_lineas_in.end() ) {
t_line temp = *i;
if ( get_item(temp.store_id) != NULL && get_logic_item(temp.logic_id) != NULL ) {
img = get_logic_item(temp.logic_id)->get_img_actual();
+ item_y_offset = item_x_offset = 0;
x_offset = y_offset = 0;
+ if (dynamic_cast<Pump *>(get_item(temp.store_id))) {
+ item_y_offset = -15;
+ } else if (dynamic_cast<Exclusa *>(get_item(temp.store_id))) {
+ if (get_item(temp.store_id)->get_img_actual()==0) {
+ item_y_offset = -15;
+ } else {
+ item_x_offset = 15;
+ }
+ }
switch (img) {
case 0:
x_offset = 15;
}
get_logic_item(temp.logic_id)->get_out_logic_connect_position(a, b);
get_item(temp.store_id)->get_in_logic_connect_position(w,z);
- draw_line(a+x_offset, b+y_offset, w,z, color_in);
+ draw_line(a+x_offset, b+y_offset, w+item_x_offset, z+item_y_offset, color_in);
get_window()->draw_line(gc, a, b, a+x_offset, b+y_offset);
+ get_window()->draw_line(gc, w, z, w+item_x_offset, z+item_y_offset);
}
i++;
}
t_line temp = *i;
if ( get_item(temp.store_id) != NULL && get_logic_item(temp.logic_id) != NULL ) {
img = get_logic_item(temp.logic_id)->get_img_actual();
+ item_y_offset = item_x_offset = 0;
x_offset = y_offset = 0;
switch (img) {
case 0:
- x_offset = 15;
+ x_offset = -15;
break;
case 1:
- y_offset = 15;
+ y_offset = -15;
break;
case 2:
- x_offset = -15;
+ x_offset = 15;
break;
case 3:
- y_offset = -15;
+ y_offset = 15;
}
get_item(temp.store_id)->get_out_logic_connect_position(w,z);
get_logic_item(temp.logic_id)->get_in_logic_connect_position(a, b);
-// draw_line(w, z, a, b, color_out);
- draw_line(w, z, a+x_offset, b+y_offset,color_out);
+ draw_line(w+item_y_offset, z+item_y_offset, a+x_offset, b+y_offset,color_out);
get_window()->draw_line(gc, a, b, a+x_offset, b+y_offset);
}
i++;