Ticket #371: osd_core.c.diff

File osd_core.c.diff, 1.2 KB (added by Stressedpiper, 11 years ago)
  • osd_core.c

     
    145145{
    146146        struct point p;
    147147        struct attr attr_dir, destination_attr, position_attr;
    148         double dir, vdir = 0;
     148        double dir, yaw = 0;
    149149        char *buffer;
    150150        struct coord c1, c2;
    151151        enum projection pro;
     
    156156        graphics_draw_circle(this->osd_item.gr,
    157157                             this->osd_item.graphic_fg_white, &p, 50);
    158158        if (v) {
    159                 if (vehicle_get_attr
    160                     (v, attr_position_direction, &attr_dir, NULL)) {
    161                         vdir = *attr_dir.u.numd;
    162                         handle(this->osd_item.gr,
    163                                this->osd_item.graphic_fg_white, &p, 20,
    164                                -vdir);
    165                 }
     159                yaw=transform_get_yaw(navit_get_trans(nav));
     160        handle(this->osd_item.gr,
     161               this->osd_item.graphic_fg_white, &p, 20,
     162               -yaw);
    166163
    167164                if (navit_get_attr
    168165                    (nav, attr_destination, &destination_attr, NULL)
     
    175172                        c2.y = destination_attr.u.pcoord->y;
    176173                        dir =
    177174                            atan2(c2.x - c1.x, c2.y - c1.y) * 180.0 / M_PI;
    178                         dir -= vdir;
     175                        dir -= yaw;
    179176                        handle(this->osd_item.gr, this->green, &p, 20,
    180177                               dir);
    181178                        buffer=format_distance(transform_distance(pro, &c1, &c2),"");