Ticket #442: navit-variable-cursor-offset.patch

File navit-variable-cursor-offset.patch, 1.6 KB (added by niccolo, 12 years ago)
  • navit-0.1.1.~svn2270

    diff -Naur navit-0.1.1.~svn2270.orig/navit/navit.c navit-0.1.1.~svn2270/navit/navit.c
    old new  
    14581458{
    14591459        int width, height;
    14601460        struct navit_vehicle *nv=this_->vehicle;
     1461
     1462        float offset;               // Cursor offset from the center of the screen (percent).
     1463        float min_offset = 0.;      // Percent offset at min_offset_speed.
     1464        float max_offset = 30.;     // Percent offset at max_offset_speed.
     1465        int min_offset_speed = 2;   // Speed in km/h
     1466        int max_offset_speed = 50;  // Speed ini km/h
     1467        // Calculate cursor offset from the center of the screen, upon speed.
     1468        if (nv->speed <= min_offset_speed) {
     1469            offset = min_offset;
     1470        } else if (nv->speed > max_offset_speed) {
     1471            offset = max_offset;
     1472        } else {
     1473            offset = (max_offset - min_offset) / (max_offset_speed - min_offset_speed) * (nv->speed - min_offset_speed);
     1474        }
     1475
    14611476        transform_get_size(this_->trans, &width, &height);
    14621477        if (this_->orientation == -1) {
    14631478                p->x=50*width/100;
    1464                 p->y=80*height/100;
     1479                p->y=(50 + offset)*height/100;
    14651480                if (dir)
    14661481                        *dir=nv->dir;
    14671482        } else {
     
    14721487                        mdir=nv->dir-this_->orientation;
    14731488                }
    14741489
    1475                 p->x=(50 - 30.*sin(M_PI*mdir/180.))*width/100;
    1476                 p->y=(50 + 30.*cos(M_PI*mdir/180.))*height/100;
     1490                p->x=(50 - offset*sin(M_PI*mdir/180.))*width/100;
     1491                p->y=(50 + offset*cos(M_PI*mdir/180.))*height/100;
    14771492                if (dir)
    14781493                        *dir=this_->orientation;
    14791494        }