static int report_getmovpos(TrackLocation *t, TrackAdvanceContext *c,
MovPosComb *use_io) {
PredictUserContext *u= c->u;
+ if (u->done_fdet && t->seg != u->train->foredetect)
+ /* we must use current posn for foredetect itself */
+ u->usecurrentposn= 0;
if (!u->usecurrentposn && t->seg->motion)
*use_io= movpos_change_intent(t->seg->motion);
assert(*use_io>=0);
strcat(flags,"*");
if (t->seg->det_ignore)
strcat(flags,".");
- if (t->seg == u->train->foredetect) {
+ if (t->seg == u->train->foredetect && !u->done_fdet) {
strcat(flags,"!");
- u->usecurrentposn= 0;
u->done_fdet= 1;
}