chiark / gitweb /
giant reorg abolishes TrainNum most of the time; working on making it build
[trains.git] / hostside / trackloc.c
index 4a1771448a2e110d3d3ba76251a70ad5db2eb09a..0818c6b751b976edf2cb54bf83c608539d505c27 100644 (file)
@@ -3,15 +3,13 @@
 
 #include <assert.h>
 
-#include "safety.h"
+#include "realtime.h"
 
 const SegPosCombInfo *trackloc_segposcomb(const TrackLocation *tloc) {
-  State *s= &safety_state;
-  SegmentState *seg= &s->segments[tloc->segn];
-  const SegmentInfo *segi= &info_segments[tloc->segn];
+  Segment *seg= tloc->seg;
 
-  assert(seg->movposcomb < segi->n_poscombs);
-  return &segi->poscombs[seg->movposcomb];
+  assert(seg->movposcomb < seg->i->n_poscombs);
+  return &seg->i->poscombs[seg->movposcomb];
 }
 
 const SegmentLinkInfo *trackloc_segmentlink(const TrackLocation *tloc,
@@ -44,7 +42,7 @@ void trackloc_further(TrackLocation *tloc, long *remain_io) {
     pci= trackloc_segposcomb(tloc);
     lnki_far= trackloc_segmentlink(tloc, pci, 1);
     *remain_io -= segment_remain;
-    tloc->segn= lnki_far->next;
+    tloc->seg= &segments[lnki_far->next];
     tloc->into= 0;
     tloc->backwards ^= lnki_far->next_backwards;
   }