Skip to content

Commit b6e5228

Browse files
committed
fix resolver definitions of NWM T intersections
moving definitions out of nested for-loop
1 parent 2a71326 commit b6e5228

1 file changed

Lines changed: 103 additions & 104 deletions

File tree

src/main/scala/module/NwmResolver.scala

Lines changed: 103 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -235,115 +235,114 @@ class NwmResolver extends IdResolver {
235235
builder ++= withProjections(n~SE & n2~WS, IdTile(off8(id + 0x8000 + rev11), R0F0), when = asymmOrShared(n) && asymmOrShared(n2))
236236
}
237237

238-
//T-intersections
239-
//OxO NWM-Thru
240-
for (n <- Seq(Tla3, Ave2, Ard3, Owr1, Owr3, Nrd4)) {
241-
add(nwmRangeId(n) + 0x3000, n~WE & Street~CS) // Street
242-
add(nwmRangeId(n) + 0x3100, n~WE & Road~CS) // Road
243-
add(nwmRangeId(n) + 0x3200, n~WE & Onewayroad~CS) // Onewayroad
244-
add(nwmRangeId(n) + 0x4300, n~WE & Avenue~NC, when = n != Owr1) // Avenue
245-
add(nwmRangeId(n) + 0x3800, n~NS & Tla3~CE) // TLA-3
246-
add(nwmRangeId(n) + 0x3900, n~NS & Ave2~CE) // AVE-2
247-
add(nwmRangeId(n) + 0x3A00, n~NS & Ard3~EC, when = n != Owr1 && n != Tla3) // ARD-3a
248-
// add(nwmRangeId(n) + 0x3A80, n~NS & Ard3~EC, when = n != Owr1 && (n == Ard3)) // ARD-3b
249-
add(nwmRangeId(n) + 0x3B00, n~NS & Owr1~CE) // OWR-1
250-
add(nwmRangeId(n) + 0x3C00, n~NS & Owr3~CE, when = n != Ave2 || n != Owr1) // OWR-3
251-
add(nwmRangeId(n) + 0x3D00, n~NS & Nrd4~CE, when = n != Owr1) // NRD-4
252-
add(nwmRangeId(n) + 0x4800, n~NS & Tla5~EC, when = n != Owr1) // TLA-5
253-
add(nwmRangeId(n) + 0x4A00, n~NS & Rd4~EC, when = n != Owr1) // RD-4
254-
}
238+
}
255239

256-
for (n <- Seq(Ard3, Owr3, Nrd4)) {
257-
add(nwmRangeId(n) + 0x4B00, n~NS & Rd6~EC) // RD-4
258-
add(nwmRangeId(n) + 0x4C00, n~NS & Ave6~EC) // AVE-6
259-
add(nwmRangeId(n) + 0x4C09, n~NS & Tla7m~EC) // TLA-M
260-
add(nwmRangeId(n) + 0x4D09, n~NS & Ave6m~EC) // AVE-M
261-
}
240+
//T-intersections
241+
//OxO NWM-Thru
242+
for (n <- Seq(Tla3, Ave2, Ard3, Owr1, Owr3, Nrd4)) {
243+
add(nwmRangeId(n) + 0x3000, n~WE & Street~CS) // Street
244+
add(nwmRangeId(n) + 0x3100, n~WE & Road~CS) // Road
245+
add(nwmRangeId(n) + 0x3200, n~WE & Onewayroad~CS) // Onewayroad
246+
add(nwmRangeId(n) + 0x4300, n~WE & Avenue~NC, when = n != Owr1) // Avenue
247+
add(nwmRangeId(n) + 0x3800, n~NS & Tla3~CE) // TLA-3
248+
add(nwmRangeId(n) + 0x3900, n~NS & Ave2~CE) // AVE-2
249+
add(nwmRangeId(n) + 0x3A00, n~NS & Ard3~EC, when = n != Owr1 && n != Tla3) // ARD-3a
250+
// add(nwmRangeId(n) + 0x3A80, n~NS & Ard3~EC, when = n != Owr1 && (n == Ard3)) // ARD-3b
251+
add(nwmRangeId(n) + 0x3B00, n~NS & Owr1~CE) // OWR-1
252+
add(nwmRangeId(n) + 0x3C00, n~NS & Owr3~CE, when = n != Ave2 || n != Owr1) // OWR-3
253+
add(nwmRangeId(n) + 0x3D00, n~NS & Nrd4~CE, when = n != Owr1) // NRD-4
254+
add(nwmRangeId(n) + 0x4800, n~NS & Tla5~EC, when = n != Owr1) // TLA-5
255+
add(nwmRangeId(n) + 0x4A00, n~NS & Rd4~EC, when = n != Owr1) // RD-4
256+
}
262257

263-
for (n <- Seq(Nrd4)) {
264-
add(nwmRangeId(n) + 0x4900, n~NS & Owr4~EC) // OWR-4
265-
add(nwmRangeId(n) + 0x4909, n~NS & Owr4m~EC) // OWR-4m
266-
add(nwmRangeId(n) + 0x4D00, n~NS & Ave8~EC) // AVE-8
267-
}
258+
for (n <- Seq(Ard3, Owr3, Nrd4)) {
259+
add(nwmRangeId(n) + 0x4B00, n~NS & Rd6~EC) // RD-4
260+
add(nwmRangeId(n) + 0x4C00, n~NS & Ave6~EC) // AVE-6
261+
add(nwmRangeId(n) + 0x4C09, n~NS & Tla7m~EC) // TLA-M
262+
add(nwmRangeId(n) + 0x4D09, n~NS & Ave6m~EC) // AVE-M
263+
}
268264

269-
for (n <- Seq(Tla3)) {
270-
builder.addOne((Tla3~NS).projectLeft & Ard3~CE, IdTile(0x51003A80, R0F0, nonMirroredOnly))
271-
builder.addOne((Tla3~NS).projectRight & Ard3~EC, IdTile(0x51003A00, R0F0, nonMirroredOnly))
272-
}
273-
274-
for (n <- Seq(Ard3)) {
275-
add(nwmRangeId(n) + 0x3080, n~EW & Street~CS) // Street
276-
add(nwmRangeId(n) + 0x3180, n~EW & Road~CS) // Road
277-
add(nwmRangeId(n) + 0x3280, n~EW & Onewayroad~CS) // Onewayroad
278-
add(nwmRangeId(n) + 0x4380, n~EW & Avenue~NC) // Avenue
279-
add(nwmRangeId(n) + 0x3880, n~SN & Tla3~CE) // TLA-3b
280-
add(nwmRangeId(n) + 0x3980, n~SN & Ave2~CE) // AVE-2b
281-
add(nwmRangeId(n) + 0x3A80, n~SN & Ard3~CE) // ARD-3b
282-
add(nwmRangeId(n) + 0x3B80, n~SN & Owr1~CE) // OWR-1b
283-
add(nwmRangeId(n) + 0x3C80, n~SN & Owr3~CE) // OWR-3b
284-
add(nwmRangeId(n) + 0x3D80, n~SN & Nrd4~CE) // NRD-4b
285-
add(nwmRangeId(n) + 0x4880, n~SN & Tla5~EC) // TLA-5b
286-
add(nwmRangeId(n) + 0x4A80, n~SN & Rd4~EC) // RD-4b
287-
add(nwmRangeId(n) + 0x4B80, n~SN & Rd6~EC) // RD-6b
288-
add(nwmRangeId(n) + 0x4C80, n~SN & Ave6~EC) // AVE-6b
289-
add(nwmRangeId(n) + 0x4C89, n~SN & Tla7m~EC) // TLA-Mb
290-
add(nwmRangeId(n) + 0x4D89, n~SN & Ave6m~EC) // AVE-Mb
291-
}
292-
293-
for (n <- Seq(Tla5, Owr4, Owr4m, Owr5, Rd4, Rd6, Ave6, Ave8)) {
294-
add(nwmRangeId(n) + 0x3000, n~EW & Street~NC) // Street Short
295-
add(nwmRangeId(n) + 0x3080, n~WE & Street~NC) // Street Long
296-
add(nwmRangeId(n) + 0x3100, n~EW & Road~NC) // Road Short
297-
add(nwmRangeId(n) + 0x3180, n~WE & Road~NC) // Road Long
298-
add(nwmRangeId(n) + 0x3200, n~EW & Onewayroad~NC) // Onewayroad Short
299-
add(nwmRangeId(n) + 0x3280, n~WE & Onewayroad~NC) // Onewayroad Long
300-
add(nwmRangeId(n) + 0x4300, n~EW & Avenue~NC) // Avenue Short
301-
add(nwmRangeId(n) + 0x4400, n~WE & Avenue~NC) // Avenue Long
302-
add(nwmRangeId(n) + 0x3800, n~EW & Tla3~NC) // TLA-3 Short
303-
add(nwmRangeId(n) + 0x3880, n~WE & Tla3~NC) // TLA-3 Long
304-
add(nwmRangeId(n) + 0x3900, n~EW & Ave2~NC) // AVE-2 Short
305-
add(nwmRangeId(n) + 0x3980, n~WE & Ave2~NC) // AVE-2 Long
306-
add(nwmRangeId(n) + 0x3A00, n~EW & Ard3~NC) // ARD-3 Short
307-
add(nwmRangeId(n) + 0x3A80, n~WE & Ard3~NC) // ARD-3 Long
308-
add(nwmRangeId(n) + 0x3B00, n~EW & Owr1~NC) // OWR-1 Short
309-
add(nwmRangeId(n) + 0x3B80, n~WE & Owr1~NC) // OWR-1 Long
310-
add(nwmRangeId(n) + 0x3C00, n~EW & Owr3~NC) // OWR-3 Short - restrict to Owr4/m, Owr5, Rd6, Ave6, Ave8
311-
add(nwmRangeId(n) + 0x3C80, n~WE & Owr3~NC) // OWR-3 Long
312-
add(nwmRangeId(n) + 0x3D00, n~EW & Nrd4~NC) // NRD-4 Short
313-
add(nwmRangeId(n) + 0x3D80, n~WE & Nrd4~NC) // NRD-4 Long
314-
add(nwmRangeId(n) + 0x3E00, n~WE & Tla5~NC) // TLA-5 Long
315-
add(nwmRangeId(n) + 0x3F00, n~WE & Owr4~NC) // OWR-4 Long
316-
add(nwmRangeId(n) + 0x3F09, n~WE & Owr4m~NC) // OWR-4m Long
317-
add(nwmRangeId(n) + 0x4000, n~WE & Owr5~NC) // OWR-5 Long
318-
add(nwmRangeId(n) + 0x4100, n~WE & Rd4~NC) // RD-4 Long
319-
add(nwmRangeId(n) + 0x4200, n~WE & Rd6~NC) // RD-6 Long
320-
add(nwmRangeId(n) + 0x4800, n~WE & Ave6~NC) // AVE-6 Long
321-
add(nwmRangeId(n) + 0x4880, n~WE & Tla7m~NC) // TLA-M Long
322-
add(nwmRangeId(n) + 0x4900, n~WE & Ave8~NC) // AVE-8 Long
323-
add(nwmRangeId(n) + 0x4980, n~WE & Ave6m~NC) // AVE-M Long
324-
}
325-
326-
//OxO NWM-End
327-
for (n <- Seq(Tla3, Ave2, Ard3, Owr1, Owr3, Nrd4)) {
328-
add(nwmRangeId(n) + 0x4000, n~CE & Street~NS) // Street
329-
add(nwmRangeId(n) + 0x4100, n~CE & Road~NS) // Road
330-
add(nwmRangeId(n) + 0x4200, n~CE & Onewayroad~NS) // Onewayroad
331-
add(nwmRangeId(n) + 0x3300, n~CE & Avenue~SN, when = n != Owr3) // Avenue Short - disable for OWR-3
332-
add(nwmRangeId(n) + 0x3400, n~WC & Avenue~SN) // Avenue Long
333-
}
334-
//OWR-5 does not have any valid T-ints with Maxis networks - just itself, RD-6, and the Triple-Tile networks
335-
for (n <- Seq(Tla5, Owr4, Owr4m, Rd4, Rd6, Ave6, Ave8, Tla7m, Ave6m)) {
336-
add(nwmRangeId(n) + 0x3400, n~NC & Avenue~WE, when = n != Owr5) // Avenue Long
337-
}
338-
//OWR-5 does not have any valid T-ints with Maxis networks - just itself, RD-6, and the Triple-Tile networks
339-
for (n <- Seq(Tla5, Rd4)) {
340-
add(nwmRangeId(n) + 0x4500, n~CE & Road~NS) // Road - dummy for OWR-5/RD-6/AVE-6/AVE-8
341-
add(nwmRangeId(n) + 0x4600, n~CE & Onewayroad~NS) // Onewayroad - dummy for OWR-5/RD-6/AVE-6/AVE-8
342-
add(nwmRangeId(n) + 0x4700, n~CE & Street~NS) // Street
343-
// add(nwmRangeId(n) + 0x3300, n~NC & Avenue~EW) // Avenue Short - disable for all but TLA-5 and RD-4
344-
}
265+
for (n <- Seq(Nrd4)) {
266+
add(nwmRangeId(n) + 0x4900, n~NS & Owr4~EC) // OWR-4
267+
add(nwmRangeId(n) + 0x4909, n~NS & Owr4m~EC) // OWR-4m
268+
add(nwmRangeId(n) + 0x4D00, n~NS & Ave8~EC) // AVE-8
269+
}
270+
271+
for (n <- Seq(Tla3)) {
272+
builder.addOne((Tla3~NS).projectLeft & Ard3~CE, IdTile(0x51003A80, R0F0, nonMirroredOnly))
273+
builder.addOne((Tla3~NS).projectRight & Ard3~EC, IdTile(0x51003A00, R0F0, nonMirroredOnly))
274+
}
345275

276+
for (n <- Seq(Ard3)) {
277+
add(nwmRangeId(n) + 0x3080, n~EW & Street~CS) // Street
278+
add(nwmRangeId(n) + 0x3180, n~EW & Road~CS) // Road
279+
add(nwmRangeId(n) + 0x3280, n~EW & Onewayroad~CS) // Onewayroad
280+
add(nwmRangeId(n) + 0x4380, n~EW & Avenue~NC) // Avenue
281+
add(nwmRangeId(n) + 0x3880, n~SN & Tla3~CE) // TLA-3b
282+
add(nwmRangeId(n) + 0x3980, n~SN & Ave2~CE) // AVE-2b
283+
add(nwmRangeId(n) + 0x3A80, n~SN & Ard3~CE) // ARD-3b
284+
add(nwmRangeId(n) + 0x3B80, n~SN & Owr1~CE) // OWR-1b
285+
add(nwmRangeId(n) + 0x3C80, n~SN & Owr3~CE) // OWR-3b
286+
add(nwmRangeId(n) + 0x3D80, n~SN & Nrd4~CE) // NRD-4b
287+
add(nwmRangeId(n) + 0x4880, n~SN & Tla5~EC) // TLA-5b
288+
add(nwmRangeId(n) + 0x4A80, n~SN & Rd4~EC) // RD-4b
289+
add(nwmRangeId(n) + 0x4B80, n~SN & Rd6~EC) // RD-6b
290+
add(nwmRangeId(n) + 0x4C80, n~SN & Ave6~EC) // AVE-6b
291+
add(nwmRangeId(n) + 0x4C89, n~SN & Tla7m~EC) // TLA-Mb
292+
add(nwmRangeId(n) + 0x4D89, n~SN & Ave6m~EC) // AVE-Mb
293+
}
294+
295+
for (n <- Seq(Tla5, Owr4, Owr4m, Owr5, Rd4, Rd6, Ave6, Ave8)) {
296+
add(nwmRangeId(n) + 0x3000, n~EW & Street~NC) // Street Short
297+
add(nwmRangeId(n) + 0x3080, n~WE & Street~NC) // Street Long
298+
add(nwmRangeId(n) + 0x3100, n~EW & Road~NC) // Road Short
299+
add(nwmRangeId(n) + 0x3180, n~WE & Road~NC) // Road Long
300+
add(nwmRangeId(n) + 0x3200, n~EW & Onewayroad~NC) // Onewayroad Short
301+
add(nwmRangeId(n) + 0x3280, n~WE & Onewayroad~NC) // Onewayroad Long
302+
add(nwmRangeId(n) + 0x4300, n~EW & Avenue~NC) // Avenue Short
303+
add(nwmRangeId(n) + 0x4400, n~WE & Avenue~NC) // Avenue Long
304+
add(nwmRangeId(n) + 0x3800, n~EW & Tla3~NC) // TLA-3 Short
305+
add(nwmRangeId(n) + 0x3880, n~WE & Tla3~NC) // TLA-3 Long
306+
add(nwmRangeId(n) + 0x3900, n~EW & Ave2~NC) // AVE-2 Short
307+
add(nwmRangeId(n) + 0x3980, n~WE & Ave2~NC) // AVE-2 Long
308+
add(nwmRangeId(n) + 0x3A00, n~EW & Ard3~NC) // ARD-3 Short
309+
add(nwmRangeId(n) + 0x3A80, n~WE & Ard3~NC) // ARD-3 Long
310+
add(nwmRangeId(n) + 0x3B00, n~EW & Owr1~NC) // OWR-1 Short
311+
add(nwmRangeId(n) + 0x3B80, n~WE & Owr1~NC) // OWR-1 Long
312+
add(nwmRangeId(n) + 0x3C00, n~EW & Owr3~NC) // OWR-3 Short - restrict to Owr4/m, Owr5, Rd6, Ave6, Ave8
313+
add(nwmRangeId(n) + 0x3C80, n~WE & Owr3~NC) // OWR-3 Long
314+
add(nwmRangeId(n) + 0x3D00, n~EW & Nrd4~NC) // NRD-4 Short
315+
add(nwmRangeId(n) + 0x3D80, n~WE & Nrd4~NC) // NRD-4 Long
316+
add(nwmRangeId(n) + 0x3E00, n~WE & Tla5~NC) // TLA-5 Long
317+
add(nwmRangeId(n) + 0x3F00, n~WE & Owr4~NC) // OWR-4 Long
318+
add(nwmRangeId(n) + 0x3F09, n~WE & Owr4m~NC) // OWR-4m Long
319+
add(nwmRangeId(n) + 0x4000, n~WE & Owr5~NC) // OWR-5 Long
320+
add(nwmRangeId(n) + 0x4100, n~WE & Rd4~NC) // RD-4 Long
321+
add(nwmRangeId(n) + 0x4200, n~WE & Rd6~NC) // RD-6 Long
322+
add(nwmRangeId(n) + 0x4800, n~WE & Ave6~NC) // AVE-6 Long
323+
add(nwmRangeId(n) + 0x4880, n~WE & Tla7m~NC) // TLA-M Long
324+
add(nwmRangeId(n) + 0x4900, n~WE & Ave8~NC) // AVE-8 Long
325+
add(nwmRangeId(n) + 0x4980, n~WE & Ave6m~NC) // AVE-M Long
326+
}
346327

328+
//OxO NWM-End
329+
for (n <- Seq(Tla3, Ave2, Ard3, Owr1, Owr3, Nrd4)) {
330+
add(nwmRangeId(n) + 0x4000, n~CE & Street~NS) // Street
331+
add(nwmRangeId(n) + 0x4100, n~CE & Road~NS) // Road
332+
add(nwmRangeId(n) + 0x4200, n~CE & Onewayroad~NS) // Onewayroad
333+
add(nwmRangeId(n) + 0x3300, n~CE & Avenue~SN, when = n != Owr3) // Avenue Short - disable for OWR-3
334+
add(nwmRangeId(n) + 0x3400, n~WC & Avenue~SN) // Avenue Long
335+
}
336+
//OWR-5 does not have any valid T-ints with Maxis networks - just itself, RD-6, and the Triple-Tile networks
337+
for (n <- Seq(Tla5, Owr4, Owr4m, Rd4, Rd6, Ave6, Ave8, Tla7m, Ave6m)) {
338+
add(nwmRangeId(n) + 0x3400, n~NC & Avenue~WE, when = n != Owr5) // Avenue Long
339+
}
340+
//OWR-5 does not have any valid T-ints with Maxis networks - just itself, RD-6, and the Triple-Tile networks
341+
for (n <- Seq(Tla5, Rd4)) {
342+
add(nwmRangeId(n) + 0x4500, n~CE & Road~NS) // Road - dummy for OWR-5/RD-6/AVE-6/AVE-8
343+
add(nwmRangeId(n) + 0x4600, n~CE & Onewayroad~NS) // Onewayroad - dummy for OWR-5/RD-6/AVE-6/AVE-8
344+
add(nwmRangeId(n) + 0x4700, n~CE & Street~NS) // Street
345+
// add(nwmRangeId(n) + 0x3300, n~NC & Avenue~EW) // Avenue Short - disable for all but TLA-5 and RD-4
347346
}
348347

349348
builder.result()

0 commit comments

Comments
 (0)