struct point p, p2[4];
char *str,*next,*start,*end,*key,*subkey,*index,*value;
int do_draw = 0;
- struct attr attr, vehicle_attr, flags_attr, maxspeed_attr;
+ struct attr attr, vehicle_attr, maxspeed_attr;
struct navigation *nav = NULL;
struct tracking *tracking = NULL;
struct route *route = NULL;
item=tracking_get_current_item(tracking);
if (item && !strcmp(key,"route_speed")) {
double routespeed = -1;
- if (item_attr_get(item, attr_flags, &flags_attr) && (flags_attr.u.num & AF_SPEED_LIMIT)) {
- if (item_attr_get(item, attr_maxspeed, &maxspeed_attr)) {
- routespeed = maxspeed_attr.u.num;
- value = format_speed(routespeed, "");
- }
+ if ((tracking_get_current_flags(tracking) & AF_SPEED_LIMIT) && tracking_get_current_attr(tracking, attr_maxspeed, &maxspeed_attr)) {
+ routespeed = maxspeed_attr.u.num;
+ value = format_speed(routespeed, "");
}
if ((routespeed == -1) && route && (speedlist=route_get_speedlist(route))) {
return &_this->curr_line->street->item;
}
+int
+tracking_get_current_flags(struct tracking *_this)
+{
+ if (! _this->curr_line || ! _this->curr_line->street)
+ return NULL;
+ return &_this->curr_line->street->flags;
+}
+
static void
tracking_get_angles(struct tracking_line *tl)
{
void tracking_set_route(struct tracking *this_, struct route *rt);
int tracking_get_current_attr(struct tracking *_this, enum attr_type type, struct attr *attr);
struct item *tracking_get_current_item(struct tracking *_this);
+int tracking_get_current_flags(struct tracking *_this);
void tracking_destroy(struct tracking *tr);
struct map * tracking_get_map(struct tracking *this_);
void tracking_init(void);