+ float local_x = vg_mouse_ws[0] - (float)world.tile_x;
+
+ if( vg_get_button_up("secondary") && world.id_drag_from == world.selected )
+ {
+ u32 link_id = local_x > 0.5f? 1: 0;
+
+ // break existing connection off
+ if( cell_ptr->links[ link_id ] )
+ {
+ struct cell *current_connection = &world.data[ cell_ptr->links[ link_id ]];
+
+ if( !current_connection->links[ link_id ^ 0x1 ] )
+ current_connection->state &= ~FLAG_TARGETED;
+
+ current_connection->links[ link_id ] = 0;
+ cell_ptr->links[ link_id ] = 0;
+ }
+
+ cell_ptr->state &= ~FLAG_IS_TRIGGER;
+ world.id_drag_from = 0;
+ }
+
+ if( world.id_drag_from && (cell_ptr->state & FLAG_CANAL) && (cell_ptr->config == k_cell_type_split) )