@@ -266,7 +266,7 @@ function get_ridetype_name(ridetype) {
266
266
}
267
267
}
268
268
269
- function update_widget_ridetype ( ) {
269
+ function reset_widget_ridetype_dropdown ( ) {
270
270
var ridetypedropdown = window . findWidget ( "ridetype_dropdown" ) ;
271
271
272
272
for ( var r = 0 ; r <= MAX_RIDETYPES ; r ++ ) {
@@ -278,6 +278,18 @@ function update_widget_ridetype() {
278
278
ridetypedropdown . selectedIndex = ( r ) ;
279
279
}
280
280
281
+ function update_widget_ridetype ( e ) {
282
+ update_global_ride ( e ) ;
283
+ reset_widget_ridetype_dropdown ( ) ;
284
+ reset_widget_colourScheme ( ) ;
285
+ context . getParkStorage ( 'Levis.RideEditor' ) . set ( 'selected_ride' , e )
286
+ }
287
+
288
+ function update_global_ride ( index ) {
289
+ rideID = map . rides [ index ] . id ;
290
+ rideType = map . rides [ index ] . object . rideType [ 0 ] ;
291
+ }
292
+
281
293
function update_widget_height ( widgetname , increase ) {
282
294
var heightwidget = window . findWidget ( widgetname ) ;
283
295
heightoffset = heightoffset + increase
@@ -291,13 +303,36 @@ function reset_widget_colourScheme() {
291
303
colourdropdown . selectedIndex = 0 ;
292
304
}
293
305
306
+ function get_last_selection ( ) {
307
+ var index = context . getParkStorage ( 'Levis.RideEditor' ) . get ( 'selected_ride' )
308
+ if ( index == null ) {
309
+ return - 1
310
+ }
311
+ if ( index > map . rides . length ) {
312
+ return - 1
313
+ }
314
+ // Set the global ride id as it's stored
315
+ update_global_ride ( index ) ;
316
+ return index
317
+ }
318
+
319
+ function find_rideType ( ) {
320
+ for ( var r = 0 ; r < rideTypes . length ; r ++ ) {
321
+ if ( rideTypes [ r ] . id == rideType ) {
322
+ return r
323
+ }
324
+ }
325
+
326
+ return - 1
327
+ }
328
+
294
329
function validate_selection ( ) {
295
330
if ( rideID == - 1 ) {
296
331
ui . showError ( "Ride Editor Error:" , "Select a ride first." )
297
332
return false ;
298
333
}
299
334
300
- if ( ! changeType && ! changeVisibility && ! changeHeight && ! changeChain ) {
335
+ if ( ! changeType && ! changeVisibility && ! changeHeight && ! changeChain ) {
301
336
ui . showError ( "Ride Editor Error:" , "Select at least one option to change." )
302
337
return false ;
303
338
}
@@ -312,7 +347,7 @@ function inverse_boolean(boolean) {
312
347
}
313
348
314
349
var change_ride = function ( ) {
315
- // Iterate every tile in the
350
+ // Iterate every tile in the
316
351
if ( rideID >= 0 ) {
317
352
for ( var y = 0 ; y < map . size . y ; y ++ ) {
318
353
for ( var x = 0 ; x < map . size . x ; x ++ ) {
@@ -386,12 +421,9 @@ function rides_window() {
386
421
items : map . rides . map ( function ( ride ) {
387
422
return [ ride . id , ride . name ] . join ( " - " ) ;
388
423
} ) ,
389
- selectedIndex : - 1 ,
424
+ selectedIndex : get_last_selection ( ) ,
390
425
onChange : function onChange ( e ) {
391
- rideID = map . rides [ e ] . id ;
392
- rideType = map . rides [ e ] . object . rideType [ 0 ] ;
393
- update_widget_ridetype ( ) ;
394
- reset_widget_colourScheme ( ) ;
426
+ update_widget_ridetype ( e ) ;
395
427
}
396
428
} ) ;
397
429
widgets . push ( {
@@ -452,7 +484,7 @@ function rides_window() {
452
484
items : rideTypes . map ( function ( ridetype ) {
453
485
return ridetype . name ;
454
486
} ) ,
455
- selectedIndex : - 1 ,
487
+ selectedIndex : find_rideType ( ) ,
456
488
onChange : function onChange ( e ) {
457
489
rideType = rideTypes [ e ] . id ;
458
490
}
@@ -562,7 +594,7 @@ function rides_window() {
562
594
563
595
window = ui . openWindow ( {
564
596
classification : 'Ride Editor' ,
565
- title : "Ride Editor 2.1 (by Levis)" ,
597
+ title : "Ride Editor 2.2 (by Levis)" ,
566
598
width : 300 ,
567
599
height : 255 ,
568
600
x : 20 ,
0 commit comments