Ticket #371: osd_core.c.v2.diff

File osd_core.c.v2.diff, 1.4 KB (added by stressedpiper, 11 years ago)
  • osd_core.c

     
    146146{
    147147        struct point p,bbox[4];
    148148        struct attr attr_dir, destination_attr, position_attr;
    149         double dir, vdir = 0;
     149        double dir, yaw = 0;
    150150        char *buffer;
    151151        struct coord c1, c2;
    152152        enum projection pro;
     
    157157        graphics_draw_circle(this->osd_item.gr,
    158158                             this->osd_item.graphic_fg_white, &p, this->osd_item.w*5/6);
    159159        if (v) {
    160                 if (vehicle_get_attr(v, attr_position_direction, &attr_dir, NULL)) {
    161                         vdir = *attr_dir.u.numd;
    162                         handle(this->osd_item.gr, this->osd_item.graphic_fg_white, &p, this->osd_item.w/3, -vdir);
    163                 }
     160                yaw=transform_get_yaw(navit_get_trans(nav));
     161                handle(this->osd_item.gr, this->osd_item.graphic_fg_white, &p, this->osd_item.w/3, -yaw);
    164162
    165163                if (navit_get_attr(nav, attr_destination, &destination_attr, NULL)
    166164                    && vehicle_get_attr(v, attr_position_coord_geo,&position_attr, NULL)) {
     
    169167                        c2.x = destination_attr.u.pcoord->x;
    170168                        c2.y = destination_attr.u.pcoord->y;
    171169                        dir = atan2(c2.x - c1.x, c2.y - c1.y) * 180.0 / M_PI;
    172                         dir -= vdir;
     170                        dir -= yaw;
    173171                        handle(this->osd_item.gr, this->green, &p, this->osd_item.w/3, dir);
    174172                        buffer=format_distance(transform_distance(pro, &c1, &c2),"");
    175173                        graphics_get_text_bbox(this->osd_item.gr, this->osd_item.font, buffer, 0x10000, 0, bbox, 0);