Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Absturz beim Abriss von hohen Hochspannungsleitungen
#10
Hier ist ein Fix für den Bug:
Code:
Index: simwerkz.cc
===================================================================
--- simwerkz.cc    (revision 2795)
+++ simwerkz.cc    (working copy)
@@ -407,7 +407,7 @@
            msg = brueckenbauer_t::remove(welt, sp, gr->get_pos(), powerline_wt );
            return msg == NULL;
        }
-        else {
+        else if( !gr->ist_bruecke() ){
            lt->entferne(sp);
            delete lt;
            return true;
Index: bauer/brueckenbauer.cc
===================================================================
--- bauer/brueckenbauer.cc    (revision 2795)
+++ bauer/brueckenbauer.cc    (working copy)
@@ -612,8 +612,10 @@
        // search neighbors
        for(int r = 0; r < 4; r++) {
            if(  (zv == koord::invalid  ||  zv == koord::nsow[r])  &&  from->get_neighbour(to, delete_wegtyp, koord::nsow[r])  &&  !marker.ist_markiert(to)  &&  to->ist_bruecke()  ) {
-                tmp_list.insert(to->get_pos());
-                marker.markiere(to);
+                if(  wegtyp != powerline_wt  ||  to->find<bruecke_t>()->get_besch()->get_waytype() == powerline_wt  ) {
+                    tmp_list.insert(to->get_pos());
+                    marker.markiere(to);
+                }
            }
        }
    } while (!tmp_list.empty());
@@ -657,7 +659,6 @@

        grund_t *gr = welt->lookup(pos);
        if(wegtyp==powerline_wt) {
-            gr->get_leitung()->calc_bild();
            ding_t *br;
            while ((br = gr->find<bruecke_t>()) != 0) {
                br->entferne(sp);
@@ -700,6 +701,10 @@
        grund_t *gr_new = new boden_t(welt, pos, gr->get_grund_hang());
        gr_new->take_obj_from( gr );
        welt->access(pos.get_2d())->kartenboden_setzen(gr_new );
+
+        if(  wegtyp == powerline_wt  ) {
+            gr_new->get_leitung()->calc_neighbourhood(); // Recalc the image. calc_bild() doesn't do the right job...
+        }
    }

    welt->set_dirty();

Es werden noch 2 weitere Bugs gefixt:
- Die Grafik der Leitung am Brückenende wird nach dem Löschen einer Brücke korrekt angezeigt.
- Man kann keine Leitungen auf Leitungsbrücken direkt löschen.
Zitieren


Nachrichten in diesem Thema
[Kein Betreff] - von schlupp - 18-10-2009, Sunday-23:17:06
[Kein Betreff] - von The Transporter - 19-10-2009, Monday-00:20:13
[Kein Betreff] - von whoami - 19-10-2009, Monday-03:34:30
[Kein Betreff] - von m_k_w - 19-10-2009, Monday-10:50:50

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste