Skip to content

Commit 6b61dbf

Browse files
committed
Fixes some resolver definitions for base network intersections, mostly involving mirrored OWR situations.
1 parent 39a18f7 commit 6b61dbf

1 file changed

Lines changed: 187 additions & 1 deletion

File tree

src/main/scala/module/MiscResolver.scala

Lines changed: 187 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,10 @@ class MiscResolver extends IdResolver {
9595
add(0x00000700, Road~SW & Road~ES) // DxD
9696
add(0x00005700, Road~NS & Road~CE) // OxO T
9797
add(0x00006300, Road~NS & Road~CSE) // OxD T
98+
add(0x00003A00, Road~CS & Road~NE) // DxO T1
99+
add(0x00003C00, Road~CS & Road~WS) // DxO T2
100+
add(0x00002E00, Road~SE & Road~CEN) // DxD T1
101+
add(0x00002F00, Road~WN & Road~CSW) // DxD T2
98102
add(0x00000F00, Road~(0,0,2,2)) // 90 curve
99103
add(0x00000C00, Road~(0,0,1,13)) // curve
100104
add(0x00004D00, Road~(0,2,0,11)) // curve
@@ -196,12 +200,29 @@ class MiscResolver extends IdResolver {
196200
add(0x09000700, Onewayroad~SW & Onewayroad~ES) // DxD
197201
add(0x90005700, Onewayroad~NS & Onewayroad~CE) // OxO T
198202
add(0x09006300, Onewayroad~NS & Onewayroad~CSE) // OxD T
203+
// add(0x09003A00, Onewayroad~CS & Onewayroad~NE) // DxO T1
204+
// add(0x09003C00, Onewayroad~CS & Onewayroad~WS) // DxO T2
205+
builder.addOne((Onewayroad~NE).projectLeft & Onewayroad~CS, IdTile(0x09003A00, R0F0, nonMirroredOnly))
206+
builder.addOne((Onewayroad~NE).projectRight & Onewayroad~CS, IdTile(0x49003A00, R0F0, mirroredOnly))
207+
builder.addOne((Onewayroad~WS).projectLeft & Onewayroad~CS, IdTile(0x09003C00, R0F0, nonMirroredOnly))
208+
builder.addOne((Onewayroad~WS).projectRight & Onewayroad~CS, IdTile(0x49003C00, R0F0, mirroredOnly))
209+
// add(0x09002E00, Onewayroad~SE & Onewayroad~CEN) // DxD T1
210+
// add(0x09002F00, Onewayroad~WN & Onewayroad~CSW) // DxD T2
211+
builder.addOne((Onewayroad~SE).projectLeft & Onewayroad~CEN, IdTile(0x09002E00, R0F0, nonMirroredOnly))
212+
builder.addOne((Onewayroad~SE).projectRight & Onewayroad~CEN, IdTile(0x49002E00, R0F0, nonMirroredOnly))
213+
builder.addOne((Onewayroad~WN).projectLeft & Onewayroad~CSW, IdTile(0x09002E00, R0F0, nonMirroredOnly))
214+
builder.addOne((Onewayroad~WN).projectRight & Onewayroad~CSW, IdTile(0x49002E00, R0F0, nonMirroredOnly))
199215
add(0x09000F00, Onewayroad~(0,0,2,2)) // 90 curve
200216
add(0x09000C00, Onewayroad~(0,0,1,13)) // curve
201217
add(0x09004D00, Onewayroad~(0,2,0,11)) // curve
202218
add(0x09014E00, Onewayroad~SharedDiagRight) // shared diag
203219
add(0x09015600, Onewayroad~(1,3,11,3)) // add(0x5f940400, Onewayroad~(1,3,1,13)) // shared-diag curve
204220

221+
// builder.addOne((Street~WN).projectLeft & Rail~NS, IdTile(0x5f502600, R0F0, nonMirroredOnly))
222+
// builder.addOne((Street~WN).projectRight & Rail~NS, IdTile(0x5f502900, R0F0, mirroredOnly))
223+
224+
225+
205226
// shared diag OWR intersections TODO create these
206227
add(0x5f94a800, Onewayroad~SharedDiagRight & Road~NS)
207228
add(0x5f94a900, Onewayroad~SharedDiagRight & Road~SW)
@@ -229,6 +250,7 @@ class MiscResolver extends IdResolver {
229250
//add(0x5f94bf00, Onewayroad~SharedDiagRight & Monorail~SharedDiagLeft)
230251

231252
add(0x04007300, Avenue~CS) // orth stub
253+
add(0x04004200, Avenue~(1,0,0,3)) // diag stub inside
232254
add(0x04006400, Avenue~(-2,0,0,+2)) // 90 curve inside
233255
add(0x04006500, Avenue~(+2,0,0,-2)) // 90 curve outside
234256
add(0x04006300, Avenue~(+2,0,-113,0)) // 90 curve extended
@@ -245,6 +267,11 @@ class MiscResolver extends IdResolver {
245267
add(0x04003600, Avenue~ES & Avenue~NE) // DxD
246268
add(0x5f432c00, Avenue~NS & Avenue~WC) // OxO Short T
247269
add(0x04007100, Avenue~WE & Avenue~NC) // OxO Long T
270+
add(0x04005300, Avenue~NS & Avenue~CNE) // OxD Long T 1
271+
add(0x04005400, Avenue~NS & Avenue~(0,3,1,0)) // OxD Long T 2
272+
add(0x04005200, Avenue~NS & Avenue~CES) // OxD Long T 3
273+
add(0x04008500, Avenue~NC & Avenue~NE) // DxO T
274+
248275

249276
// Road intersections
250277
add(0x03010100, Road~NS & Rail~WE)
@@ -292,8 +319,11 @@ class MiscResolver extends IdResolver {
292319
add(0x04008800, Road~WC & Avenue~SN)
293320
add(0x04001300, Road~ES & Avenue~SN)
294321
add(0x04001900, Road~WN & Avenue~SN)
322+
add(0x04001400, Road~CSE & Avenue~SN)
323+
add(0x04002000, Road~CWN & Avenue~SN)
295324
add(0x04005700, Road~NS & Avenue~ES)
296325
add(0x04006000, Road~NS & Avenue~SharedDiagRight)
326+
add(0x04006600, Road~CS & Avenue~ES)
297327
add(0x04020200, Road~ES & Avenue~NE)
298328
add(0x04023800, Road~ES & Avenue~SharedDiagLeft)
299329
add(0x08dd0100, Road~ES & Lightrail~NS)
@@ -325,6 +355,25 @@ class MiscResolver extends IdResolver {
325355
add(0x5f072700, Road~(0,0,2,2) & Street~(2,3,0,0))
326356
add(0x5760c700, Road~(0,2,2,0) & Dirtroad~CS)
327357
add(0x5760b500, Road~(2,2,0,0) & Dirtroad~(0,0,2,2))
358+
// Diagonal T-Ints
359+
add(0x5F972600, Road~WE & Onewayroad~CNE) // Onewayroad OxD T
360+
add(0x09703A00, Road~NE & Onewayroad~CS) // Onewayroad DxO T1
361+
add(0x09703C00, Road~WS & Onewayroad~CS) // Onewayroad DxO T2
362+
add(0x09802E00, Road~SE & Onewayroad~CEN) // Onewayroad DxD T1
363+
add(0x09802F00, Road~WN & Onewayroad~CSW) // Onewayroad DxD T2
364+
add(0x5F471300, Road~NS & Avenue~(0,0,0,1)) // Avenue OxD T1
365+
add(0x5F471F00, Road~NS & Avenue~(1,0,0,3)) // Avenue OxD T2
366+
add(0x5F472300, Road~NS & Avenue~(0,0,0,3)) // Avenue OxD T3
367+
add(0x5F077B00, Road~EN & Avenue~CW) // Avenue DxO T1a
368+
add(0x5F077900, Road~SW & Avenue~CW) // Avenue DxO T1a
369+
add(0x5F077A00, Road~EN & Avenue~WC) // Avenue DxO T2a
370+
add(0x5F077C00, Road~SW & Avenue~WC) // Avenue DxO T2a
371+
add(0x00051100, Road~SE & Avenue~(0,0,3,0)) // Avenue DxD T1a
372+
add(0x04023900, Road~SE & Avenue~(3,1,0,0)) // Avenue DxD T1b
373+
add(0x04003700, Road~SE & Avenue~(0,0,3,1)) // Avenue DxD T2
374+
add(0x5F473200, Road~CNE & Avenue~EW) // Orth Ave x Diag Road Short T
375+
add(0x5F077800, Road~CS & Avenue~WN) // Diag Ave x Orth Road Short T
376+
add(0x5F077400, Road~CSW & Avenue~ES) // Diag Ave x Diag Road Short T
328377

329378
// Road roundabouts
330379
add(0x5F06BC80, RdRndbt~(0,2,0,-2)) // surrogate tile "straight roundabout"
@@ -437,8 +486,17 @@ class MiscResolver extends IdResolver {
437486
add(0x091a8800, Onewayroad~WC & Avenue~SN)
438487
add(0x091a1300, Onewayroad~ES & Avenue~SN)
439488
add(0x091a1900, Onewayroad~WN & Avenue~SN)
489+
// add(0x091a1400, Onewayroad~CSE & Avenue~SN)
490+
// add(0x091a2000, Onewayroad~CWN & Avenue~SN)
491+
builder.addOne((Onewayroad~CSE).projectLeft & Avenue~SN, IdTile(0x091a1400, R0F0, nonMirroredOnly))
492+
builder.addOne((Onewayroad~CSE).projectRight & Avenue~SN, IdTile(0x491a1400, R0F0, mirroredOnly))
493+
builder.addOne((Onewayroad~CWN).projectLeft & Avenue~SN, IdTile(0x091a2000, R0F0, nonMirroredOnly))
494+
builder.addOne((Onewayroad~CWN).projectRight & Avenue~SN, IdTile(0x091a2000, R0F0, mirroredOnly))
440495
add(0x091a5700, Onewayroad~NS & Avenue~ES)
441496
add(0x091a6000, Onewayroad~NS & Avenue~SharedDiagRight)
497+
// add(0x091a6600, Onewayroad~CS & Avenue~ES)
498+
builder.addOne((Onewayroad~NS).projectLeft & Avenue~ES, IdTile(0x091a6000, R0F0, nonMirroredOnly))
499+
builder.addOne((Onewayroad~NS).projectRight & Avenue~ES, IdTile(0x491a6000, R0F0, mirroredOnly))
442500
add(0x091a0200, Onewayroad~ES & Avenue~NE)
443501
add(0x091a3800, Onewayroad~ES & Avenue~SharedDiagLeft)
444502
add(0x091d0100, Onewayroad~ES & Lightrail~NS)
@@ -449,8 +507,45 @@ class MiscResolver extends IdResolver {
449507
add(0x092d1600, Onewayroad~NS & Monorail~ES)
450508
add(0x092d1700, Onewayroad~SW & Monorail~ES)
451509
add(0x092d0200, Onewayroad~EW & Monorail~NS)
510+
// Diagonal T-Ints
511+
// add(0x5F973200, Onewayroad~WE & Road~CNE) // Road OxD T
512+
builder.addOne((Onewayroad~WE).projectLeft & Road~CNE, IdTile(0x5F973200, R0F0, nonMirroredOnly))
513+
builder.addOne((Onewayroad~WE).projectRight & Road~CNE, IdTile(0x7F973200, R0F0, mirroredOnly))
514+
// add(0x09803A00, Onewayroad~NE & Road~CS) // Road DxO T1
515+
// add(0x09803C00, Onewayroad~WS & Road~CS) // Road DxO T2
516+
builder.addOne((Onewayroad~NE).projectLeft & Road~CS, IdTile(0x09803A00, R0F0, nonMirroredOnly))
517+
builder.addOne((Onewayroad~NE).projectRight & Road~CS, IdTile(0x49803A00, R0F0, mirroredOnly))
518+
builder.addOne((Onewayroad~WS).projectLeft & Road~CS, IdTile(0x09803C00, R0F0, nonMirroredOnly))
519+
builder.addOne((Onewayroad~WS).projectRight & Road~CS, IdTile(0x49803C00, R0F0, mirroredOnly))
520+
add(0x09702E00, Onewayroad~SE & Road~CEN) // Road DxD T1
521+
add(0x09702F00, Onewayroad~WN & Road~CSW) // Road DxD T2
522+
// add(0x5F971D00, Onewayroad~NS & Avenue~(0,0,0,1)) // Avenue OxD T1
523+
// add(0x5F971F00, Onewayroad~NS & Avenue~(1,0,0,3)) // Avenue OxD T2
524+
// add(0x5F971E00, Onewayroad~NS & Avenue~(0,0,0,3)) // Avenue OxD T3
525+
builder.addOne((Onewayroad~NS).projectLeft & Avenue~(0,0,0,1), IdTile(0x5F971D00, R0F0, nonMirroredOnly)) // Avenue OxD T1
526+
builder.addOne((Onewayroad~NS).projectRight & Avenue~(0,0,0,1), IdTile(0x7F971D00, R0F0, mirroredOnly)) // Avenue OxD T1
527+
builder.addOne((Onewayroad~NS).projectLeft & Avenue~(1,0,0,3), IdTile(0x5F971F00, R0F0, nonMirroredOnly)) // Avenue OxD T2
528+
builder.addOne((Onewayroad~NS).projectRight & Avenue~(1,0,0,3), IdTile(0x7F971F00, R0F0, mirroredOnly)) // Avenue OxD T2
529+
builder.addOne((Onewayroad~NS).projectLeft & Avenue~(0,0,0,3), IdTile(0x5F971E00, R0F0, nonMirroredOnly)) // Avenue OxD T3
530+
builder.addOne((Onewayroad~NS).projectRight & Avenue~(0,0,0,3), IdTile(0x7F971E00, R0F0, mirroredOnly)) // Avenue OxD T3
531+
// add(0x5F977B00, Onewayroad~EN & Avenue~CW) // Avenue DxO T1a
532+
// add(0x5F977900, Onewayroad~SW & Avenue~CW) // Avenue DxO T1b
533+
// add(0x5F977A00, Onewayroad~EN & Avenue~WC) // Avenue DxO T2a
534+
// add(0x5F977C00, Onewayroad~SW & Avenue~WC) // Avenue DxO T2b
535+
builder.addOne((Onewayroad~EN).projectLeft & Avenue~CW, IdTile(0x5F977B00, R0F0, nonMirroredOnly)) // Avenue DxO T1a
536+
builder.addOne((Onewayroad~EN).projectRight & Avenue~CW, IdTile(0x7F977B00, R0F0, mirroredOnly)) // Avenue DxO T1a
537+
builder.addOne((Onewayroad~SW).projectLeft & Avenue~CW, IdTile(0x5F977900, R0F0, nonMirroredOnly))// Avenue DxO T1b
538+
builder.addOne((Onewayroad~SW).projectRight & Avenue~CW, IdTile(0x7F977900, R0F0, mirroredOnly))// Avenue DxO T1b
539+
builder.addOne((Onewayroad~EN).projectLeft & Avenue~WC, IdTile(0x5F977A00, R0F0, nonMirroredOnly))// Avenue DxO T2a
540+
builder.addOne((Onewayroad~EN).projectRight & Avenue~WC, IdTile(0x7F977A00, R0F0, mirroredOnly))// Avenue DxO T2a
541+
builder.addOne((Onewayroad~SW).projectLeft & Avenue~WC, IdTile(0x5F977C00, R0F0, nonMirroredOnly))// Avenue DxO T2b
542+
builder.addOne((Onewayroad~SW).projectRight & Avenue~WC, IdTile(0x7F977C00, R0F0, mirroredOnly))// Avenue DxO T2b
543+
add(0x09051100, Onewayroad~SE & Avenue~(0,0,3,0)) // Avenue DxD T1a
544+
add(0x091a3900, Onewayroad~SE & Avenue~(3,1,0,0)) // Avenue DxD T1b
545+
add(0x091a3700, Onewayroad~SE & Avenue~(0,0,3,1)) // Avenue DxD T2
452546

453-
// Avenue + intersections
547+
548+
// Avenue intersections
454549
add(0x04002100, Avenue~ES & Rail~NE)
455550
add(0x04004300, Avenue~SharedDiagRight & Rail~SW)
456551
builder.addOne((Avenue~SN).projectLeft & Rail~NE, IdTile(0x04001600, R0F0, nonMirroredOnly))
@@ -537,6 +632,97 @@ class MiscResolver extends IdResolver {
537632
add(0x57601300, Dirtroad~CE & Avenue~SN)
538633
add(0x57601309, Dirtroad~CE & Avenue~NS)
539634
add(0x57600400, Dirtroad~NS & Dirtroad~CE)
635+
636+
add(0x57602000, Dirtroad~NS & Street~CSE)
637+
add(0x57602100, Dirtroad~NS & Road~CSE)
638+
add(0x57602200, Dirtroad~NS & Onewayroad~CSE)
639+
// add(0x57602300, Dirtroad~NS & Avenue~CSE) // RHW-Thru x Avenue-End T design and IIDs not finalized
640+
add(0x57602400, Dirtroad~NS & Dirtroad~CSE)
641+
642+
add(0x57603000, Dirtroad~NC & Street~WS)
643+
add(0x57603009, Dirtroad~NC & Street~NE)
644+
add(0x57603100, Dirtroad~NC & Road~WS)
645+
add(0x57603109, Dirtroad~NC & Road~NE)
646+
add(0x57603200, Dirtroad~NC & Onewayroad~WS)
647+
add(0x57603209, Dirtroad~NC & Onewayroad~NE)
648+
add(0x57603300, Dirtroad~NC & Avenue~ES)
649+
add(0x57603309, Dirtroad~CS & Avenue~SE)
650+
651+
add(0x57604000, Dirtroad~SE & Street~WC)
652+
add(0x57604009, Dirtroad~SE & Street~CE)
653+
add(0x57604100, Dirtroad~SE & Road~WC)
654+
add(0x57604109, Dirtroad~SE & Road~CE)
655+
add(0x57604200, Dirtroad~SE & Onewayroad~WC)
656+
add(0x57604209, Dirtroad~SE & Onewayroad~CE)
657+
// add(0x57604300, Dirtroad~SE & Avenue~CW) // RHW-Thru x Avenue-End T design and IIDs not finalized
658+
add(0x57604400, Dirtroad~SE & Dirtroad~WC)
659+
add(0x57604409, Dirtroad~SE & Dirtroad~CE)
660+
661+
add(0x57605000, Dirtroad~CSE & Street~NS)
662+
add(0x57605100, Dirtroad~CSE & Road~NS)
663+
add(0x57605200, Dirtroad~CSE & Onewayroad~NS)
664+
add(0x57605300, Dirtroad~CSE & Avenue~NS) // Long T
665+
add(0x57605309, Dirtroad~CWN & Avenue~NS) // Long T
666+
add(0x57605400, Dirtroad~CWN & Avenue~SN) // Short T
667+
add(0x57605409, Dirtroad~CES & Avenue~WE) // Short T
668+
669+
add(0x57606000, Dirtroad~WS & Street~CSE)
670+
add(0x57606009, Dirtroad~SE & Street~CWS)
671+
add(0x57606100, Dirtroad~WS & Road~CSE)
672+
add(0x57606109, Dirtroad~SE & Road~CWS)
673+
add(0x57606200, Dirtroad~WS & Onewayroad~CSE)
674+
add(0x57606209, Dirtroad~SE & Onewayroad~CWS)
675+
// add(0x57606300, Dirtroad~WS & Onewayroad~CSE) // RHW-Thru x Avenue-End T design and IIDs not finalized
676+
add(0x57606400, Dirtroad~WS & Dirtroad~CSE)
677+
add(0x57606409, Dirtroad~SE & Dirtroad~CWS)
678+
679+
add(0x57607000, Dirtroad~CSE & Street~WS)
680+
add(0x57607009, Dirtroad~CWS & Street~SE)
681+
add(0x57607100, Dirtroad~CSE & Road~WS)
682+
add(0x57607109, Dirtroad~CWS & Road~SE)
683+
add(0x57607200, Dirtroad~CSE & Onewayroad~WS)
684+
add(0x57607209, Dirtroad~CWS & Onewayroad~SE)
685+
add(0x57607300, Dirtroad~CSE & Avenue~SharedDiagLeft) // Long T
686+
add(0x57607309, Dirtroad~CSE & Avenue~NE) // Long T
687+
add(0x57607400, Dirtroad~CSW & Avenue~ES) // Short T
688+
add(0x57607409, Dirtroad~CE & Avenue~SharedDiagLeft) // Short T
689+
690+
// Rhw3
691+
add(0x57610000, Rhw3~NS & Street~CE)
692+
add(0x57611000, Rhw3~EC & Street~NS)
693+
add(0x57610100, Rhw3~NS & Road~CE)
694+
add(0x57611100, Rhw3~EC & Road~NS)
695+
add(0x57610200, Rhw3~NS & Onewayroad~CE)
696+
add(0x57611200, Rhw3~EC & Onewayroad~NS)
697+
add(0x57610300, Rhw3~NS & Avenue~EC)
698+
add(0x57611300, Rhw3~EC & Avenue~SN)
699+
add(0x57611309, Rhw3~EC & Avenue~NS)
700+
add(0x57610400, Rhw3~NS & Dirtroad~CE)
701+
702+
// Mis
703+
add(0x57620000, Mis~NS & Street~CE)
704+
add(0x57621000, Mis~EC & Street~NS)
705+
add(0x57620100, Mis~NS & Road~CE)
706+
add(0x57621100, Mis~EC & Road~NS)
707+
add(0x57620200, Mis~NS & Onewayroad~CE)
708+
add(0x57621200, Mis~EC & Onewayroad~NS)
709+
add(0x57620300, Mis~NS & Avenue~EC)
710+
add(0x57621300, Mis~EC & Avenue~SN)
711+
add(0x57621309, Mis~EC & Avenue~NS)
712+
add(0x57620400, Mis~NS & Dirtroad~CE)
713+
714+
// Rhw4
715+
add(0x57630000, Rhw4~NS & Street~CE)
716+
add(0x57631000, Rhw4~EC & Street~NS)
717+
add(0x57630100, Rhw4~NS & Road~CE)
718+
add(0x57631100, Rhw4~EC & Road~NS)
719+
add(0x57630200, Rhw4~NS & Onewayroad~CE)
720+
add(0x57631200, Rhw4~EC & Onewayroad~NS)
721+
add(0x57630300, Rhw4~NS & Avenue~EC)
722+
add(0x57631300, Rhw4~EC & Avenue~SN)
723+
add(0x57631309, Rhw4~EC & Avenue~NS)
724+
add(0x57630400, Rhw4~NS & Dirtroad~CE)
725+
540726
// RHW on-slopes (orthogonal)
541727
for (rhw <- RhwNetworks if rhw.height == 0) {
542728
val maxHeight = if ((Mis + Rhw4 + Rhw6s).contains(rhw)) 4 else 2

0 commit comments

Comments
 (0)