@@ -94,6 +94,7 @@ int GetSurfaceRoadInfo(DRIVER2_ROAD_INFO* outRoadInfo, int surfId)
9494{
9595 DRIVER2_CURVE * curve ;
9696 DRIVER2_STRAIGHT * straight ;
97+ DRIVER2_JUNCTION * junction ;
9798
9899 ClearMem ((char * )outRoadInfo , sizeof (DRIVER2_ROAD_INFO ));
99100 outRoadInfo -> surfId = surfId ;
@@ -116,6 +117,11 @@ int GetSurfaceRoadInfo(DRIVER2_ROAD_INFO* outRoadInfo, int surfId)
116117 outRoadInfo -> AILanes = straight -> AILanes ;
117118 return 1 ;
118119 }
120+ else if (IS_JUNCTION_SURFACE (surfId ))
121+ {
122+ junction = GET_JUNCTION (surfId );
123+ outRoadInfo -> ConnectIdx = & junction -> ExitIdx ;
124+ }
119125
120126 return 0 ;
121127}
@@ -166,7 +172,7 @@ void ProcessStraightsDriver2Lump(char *lump_file, int lump_size)
166172 Getlong ((char * )& NumDriver2Straights , lump_file );
167173 Driver2StraightsPtr = (DRIVER2_STRAIGHT * )(lump_file + 4 );
168174
169- // [A] patch chicago roads
175+ // [A] patch Chicago & Vegas roads
170176 if (GameLevel == 0 && gDisableChicagoBridges )
171177 {
172178 DRIVER2_STRAIGHT * str ;
@@ -196,6 +202,14 @@ void ProcessStraightsDriver2Lump(char *lump_file, int lump_size)
196202 }
197203 }
198204 }
205+ else if (GameLevel == 2 )
206+ {
207+ int i ;
208+ DRIVER2_STRAIGHT * str ;
209+
210+ Driver2StraightsPtr [348 ].ConnectIdx [2 ] = 8244 ;
211+ Driver2StraightsPtr [348 ].ConnectIdx [3 ] = 351 ;
212+ }
199213}
200214
201215// [D] [T]
@@ -233,6 +247,13 @@ void ProcessJunctionsDriver2Lump(char *lump_file, int lump_size, int fix)
233247 old ++ ;
234248 }
235249 }
250+
251+ // [A] patch Vegas roads
252+ if (GameLevel == 2 )
253+ {
254+ Driver2JunctionsPtr [8244 & 0x1fff ].ExitIdx [1 ] = 348 ;
255+ Driver2JunctionsPtr [8244 & 0x1fff ].ExitIdx [3 ] = 347 ;
256+ }
236257}
237258
238259// [D] [T]
0 commit comments