From b00c20da4032bc28a0710984a1a1cfce3d589b38 Mon Sep 17 00:00:00 2001 From: ian Date: Mon, 5 May 2008 13:21:20 +0000 Subject: [PATCH] do not regard a train as satisfying detection at a location if the movposcomb is not known --- hostside/resolve.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/hostside/resolve.c b/hostside/resolve.c index 7fdd39d..7a35f99 100644 --- a/hostside/resolve.c +++ b/hostside/resolve.c @@ -158,15 +158,19 @@ static int resmain_getmovpos(TrackLocation *t, TrackAdvanceContext *c, MovPosComb *use_io) { Segment *d= t->seg; + const char *pn= d->i->pname; if (d->home && d->home->resolution == RR_H) { d->tr_backwards= d->ho_backwards; *use_io= 0; /* a bit kludgey */ + oprintf(DUPO("resolving") " resmain getmovpos %s H\n", pn); } else if (d->owner) { d->tr_backwards ^= d->owner->backwards; *use_io= d->movposcomb; + oprintf(DUPO("resolving") " resmain getmovpos %s E %u\n", pn, *use_io); } else { *use_io= -1; + oprintf(DUPO("resolving") " resmain getmovpos %s N -1\n", pn); } return 0; } @@ -202,14 +206,15 @@ static int resolve_complete_main(void) { FOR_SEGMENT(d,NOOP,NOOP) { /* calculate U */ unsigned updated= 0; -#define ADDTO_U_EH(homeowner,HH_HE,string) \ - if (d->homeowner && d->homeowner->resolution == HH_HE) { \ +#define ADDTO_U_EH(homeowner,HH_HE,string) \ + if (d->homeowner && d->homeowner->resolution == HH_HE) { \ oprintf(DUPO("resolving") " covered %s " string " %s\n", \ - di->pname, d->homeowner->pname); \ - updated++; \ + di->pname, d->homeowner->pname); \ + updated++; \ } ADDTO_U_EH(home, RR_H, "at-home"); - ADDTO_U_EH(owner, RR_E, "as-expected"); + if (d->movposcomb >= 0) + ADDTO_U_EH(owner, RR_E, "as-expected"); assert(updated<=1); d->iselem_u= updated; @@ -320,8 +325,6 @@ static int resolve_complete_main(void) { } } - if (problems) return problems; - TrackAdvanceContext tac; MovPosComb target; tac.getmovpos= resmain_getmovpos; @@ -385,7 +388,7 @@ static int findends_getmovpos(TrackLocation *t, TrackAdvanceContext *c, oprintf(DUPO("resolving") " ends getmovpos %s fails\n", pn); return -1; } -// oprintf(DUPO("resolving") " ends getmovpos %s -> %d\n", pn, *use_io); + oprintf(DUPO("resolving") " ends getmovpos %s -> %d\n", pn, *use_io); return 0; } -- 2.30.2