290 PLW_WIDGET_CLASS_RAIL, |
290 PLW_WIDGET_CLASS_RAIL, |
291 PLW_WIDGET_CLASS_ROAD, |
291 PLW_WIDGET_CLASS_ROAD, |
292 PLW_WIDGET_CLASS_SHIP, |
292 PLW_WIDGET_CLASS_SHIP, |
293 PLW_WIDGET_CLASS_AIRCRAFT, |
293 PLW_WIDGET_CLASS_AIRCRAFT, |
294 |
294 |
295 PLW_WIDGET_PRI_COL_TEXT = 9, |
295 PLW_WIDGET_PRI_COL_DROPDOWN = 9, |
296 PLW_WIDGET_PRI_COL_DROPDOWN, |
|
297 PLW_WIDGET_SEC_COL_TEXT, |
|
298 PLW_WIDGET_SEC_COL_DROPDOWN, |
296 PLW_WIDGET_SEC_COL_DROPDOWN, |
299 PLW_WIDGET_MATRIX, |
297 PLW_WIDGET_MATRIX, |
300 }; |
298 }; |
301 |
299 |
302 static void ShowColourDropDownMenu(Window *w, uint32 widget) |
300 static void ShowColourDropDownMenu(Window *w, uint32 widget) |
327 { |
325 { |
328 switch (e->event) { |
326 switch (e->event) { |
329 case WE_CREATE: |
327 case WE_CREATE: |
330 w->LowerWidget(WP(w, livery_d).livery_class + PLW_WIDGET_CLASS_GENERAL); |
328 w->LowerWidget(WP(w, livery_d).livery_class + PLW_WIDGET_CLASS_GENERAL); |
331 if (!_loaded_newgrf_features.has_2CC) { |
329 if (!_loaded_newgrf_features.has_2CC) { |
332 w->HideWidget(PLW_WIDGET_SEC_COL_TEXT); |
|
333 w->HideWidget(PLW_WIDGET_SEC_COL_DROPDOWN); |
330 w->HideWidget(PLW_WIDGET_SEC_COL_DROPDOWN); |
334 } |
331 } |
335 break; |
332 break; |
336 |
333 |
337 case WE_PAINT: { |
334 case WE_PAINT: { |
338 const Player *p = GetPlayer((PlayerID)w->window_number); |
335 const Player *p = GetPlayer((PlayerID)w->window_number); |
339 LiveryScheme scheme = LS_DEFAULT; |
336 LiveryScheme scheme = LS_DEFAULT; |
340 int y = 51; |
337 int y = 51; |
341 |
338 |
342 /* Disable dropdown controls if no scheme is selected */ |
339 /* Disable dropdown controls if no scheme is selected */ |
343 w->SetWidgetDisabledState(PLW_WIDGET_PRI_COL_TEXT, (WP(w, livery_d).sel == 0)); |
|
344 w->SetWidgetDisabledState(PLW_WIDGET_PRI_COL_DROPDOWN, (WP(w, livery_d).sel == 0)); |
340 w->SetWidgetDisabledState(PLW_WIDGET_PRI_COL_DROPDOWN, (WP(w, livery_d).sel == 0)); |
345 w->SetWidgetDisabledState(PLW_WIDGET_SEC_COL_TEXT, (WP(w, livery_d).sel == 0)); |
|
346 w->SetWidgetDisabledState(PLW_WIDGET_SEC_COL_DROPDOWN, (WP(w, livery_d).sel == 0)); |
341 w->SetWidgetDisabledState(PLW_WIDGET_SEC_COL_DROPDOWN, (WP(w, livery_d).sel == 0)); |
347 |
342 |
348 if (!(WP(w, livery_d).sel == 0)) { |
343 if (!(WP(w, livery_d).sel == 0)) { |
349 for (scheme = LS_BEGIN; scheme < LS_END; scheme++) { |
344 for (scheme = LS_BEGIN; scheme < LS_END; scheme++) { |
350 if (HasBit(WP(w, livery_d).sel, scheme)) break; |
345 if (HasBit(WP(w, livery_d).sel, scheme)) break; |
408 w->widget[PLW_WIDGET_MATRIX].data = livery_height[WP(w, livery_d).livery_class] << 8 | 1; |
403 w->widget[PLW_WIDGET_MATRIX].data = livery_height[WP(w, livery_d).livery_class] << 8 | 1; |
409 MarkWholeScreenDirty(); |
404 MarkWholeScreenDirty(); |
410 break; |
405 break; |
411 } |
406 } |
412 |
407 |
413 case PLW_WIDGET_PRI_COL_TEXT: |
|
414 case PLW_WIDGET_PRI_COL_DROPDOWN: /* First colour dropdown */ |
408 case PLW_WIDGET_PRI_COL_DROPDOWN: /* First colour dropdown */ |
415 ShowColourDropDownMenu(w, PLW_WIDGET_PRI_COL_DROPDOWN); |
409 ShowColourDropDownMenu(w, PLW_WIDGET_PRI_COL_DROPDOWN); |
416 break; |
410 break; |
417 |
411 |
418 case PLW_WIDGET_SEC_COL_TEXT: |
|
419 case PLW_WIDGET_SEC_COL_DROPDOWN: /* Second colour dropdown */ |
412 case PLW_WIDGET_SEC_COL_DROPDOWN: /* Second colour dropdown */ |
420 ShowColourDropDownMenu(w, PLW_WIDGET_SEC_COL_DROPDOWN); |
413 ShowColourDropDownMenu(w, PLW_WIDGET_SEC_COL_DROPDOWN); |
421 break; |
414 break; |
422 |
415 |
423 case PLW_WIDGET_MATRIX: { |
416 case PLW_WIDGET_MATRIX: { |
468 { WWT_IMGBTN, RESIZE_NONE, 14, 44, 65, 14, 35, SPR_IMG_TRUCKLIST, STR_LIVERY_ROADVEH_TIP }, |
461 { WWT_IMGBTN, RESIZE_NONE, 14, 44, 65, 14, 35, SPR_IMG_TRUCKLIST, STR_LIVERY_ROADVEH_TIP }, |
469 { WWT_IMGBTN, RESIZE_NONE, 14, 66, 87, 14, 35, SPR_IMG_SHIPLIST, STR_LIVERY_SHIP_TIP }, |
462 { WWT_IMGBTN, RESIZE_NONE, 14, 66, 87, 14, 35, SPR_IMG_SHIPLIST, STR_LIVERY_SHIP_TIP }, |
470 { WWT_IMGBTN, RESIZE_NONE, 14, 88, 109, 14, 35, SPR_IMG_AIRPLANESLIST, STR_LIVERY_AIRCRAFT_TIP }, |
463 { WWT_IMGBTN, RESIZE_NONE, 14, 88, 109, 14, 35, SPR_IMG_AIRPLANESLIST, STR_LIVERY_AIRCRAFT_TIP }, |
471 { WWT_PANEL, RESIZE_NONE, 14, 110, 399, 14, 35, 0x0, STR_NULL }, |
464 { WWT_PANEL, RESIZE_NONE, 14, 110, 399, 14, 35, 0x0, STR_NULL }, |
472 { WWT_PANEL, RESIZE_NONE, 14, 0, 149, 36, 47, 0x0, STR_NULL }, |
465 { WWT_PANEL, RESIZE_NONE, 14, 0, 149, 36, 47, 0x0, STR_NULL }, |
473 { WWT_TEXTBTN, RESIZE_NONE, 14, 150, 262, 36, 47, STR_02BD, STR_LIVERY_PRIMARY_TIP }, |
466 { WWT_DROPDOWN, RESIZE_NONE, 14, 150, 274, 36, 47, STR_02BD, STR_LIVERY_PRIMARY_TIP }, |
474 { WWT_TEXTBTN, RESIZE_NONE, 14, 263, 274, 36, 47, STR_0225, STR_LIVERY_PRIMARY_TIP }, |
467 { WWT_DROPDOWN, RESIZE_NONE, 14, 275, 399, 36, 47, STR_02E1, STR_LIVERY_SECONDARY_TIP }, |
475 { WWT_TEXTBTN, RESIZE_NONE, 14, 275, 387, 36, 47, STR_02E1, STR_LIVERY_SECONDARY_TIP }, |
|
476 { WWT_TEXTBTN, RESIZE_NONE, 14, 388, 399, 36, 47, STR_0225, STR_LIVERY_SECONDARY_TIP }, |
|
477 { WWT_MATRIX, RESIZE_NONE, 14, 0, 399, 48, 48 + 1 * 14, (1 << 8) | 1, STR_LIVERY_PANEL_TIP }, |
468 { WWT_MATRIX, RESIZE_NONE, 14, 0, 399, 48, 48 + 1 * 14, (1 << 8) | 1, STR_LIVERY_PANEL_TIP }, |
478 { WIDGETS_END }, |
469 { WIDGETS_END }, |
479 }; |
470 }; |
480 |
471 |
481 static const WindowDesc _select_player_livery_2cc_desc = { |
472 static const WindowDesc _select_player_livery_2cc_desc = { |
495 { WWT_IMGBTN, RESIZE_NONE, 14, 44, 65, 14, 35, SPR_IMG_TRUCKLIST, STR_LIVERY_ROADVEH_TIP }, |
486 { WWT_IMGBTN, RESIZE_NONE, 14, 44, 65, 14, 35, SPR_IMG_TRUCKLIST, STR_LIVERY_ROADVEH_TIP }, |
496 { WWT_IMGBTN, RESIZE_NONE, 14, 66, 87, 14, 35, SPR_IMG_SHIPLIST, STR_LIVERY_SHIP_TIP }, |
487 { WWT_IMGBTN, RESIZE_NONE, 14, 66, 87, 14, 35, SPR_IMG_SHIPLIST, STR_LIVERY_SHIP_TIP }, |
497 { WWT_IMGBTN, RESIZE_NONE, 14, 88, 109, 14, 35, SPR_IMG_AIRPLANESLIST, STR_LIVERY_AIRCRAFT_TIP }, |
488 { WWT_IMGBTN, RESIZE_NONE, 14, 88, 109, 14, 35, SPR_IMG_AIRPLANESLIST, STR_LIVERY_AIRCRAFT_TIP }, |
498 { WWT_PANEL, RESIZE_NONE, 14, 110, 274, 14, 35, 0x0, STR_NULL }, |
489 { WWT_PANEL, RESIZE_NONE, 14, 110, 274, 14, 35, 0x0, STR_NULL }, |
499 { WWT_PANEL, RESIZE_NONE, 14, 0, 149, 36, 47, 0x0, STR_NULL }, |
490 { WWT_PANEL, RESIZE_NONE, 14, 0, 149, 36, 47, 0x0, STR_NULL }, |
500 { WWT_TEXTBTN, RESIZE_NONE, 14, 150, 262, 36, 47, STR_02BD, STR_LIVERY_PRIMARY_TIP }, |
491 { WWT_DROPDOWN, RESIZE_NONE, 14, 150, 274, 36, 47, STR_02BD, STR_LIVERY_PRIMARY_TIP }, |
501 { WWT_TEXTBTN, RESIZE_NONE, 14, 263, 274, 36, 47, STR_0225, STR_LIVERY_PRIMARY_TIP }, |
492 { WWT_DROPDOWN, RESIZE_NONE, 14, 275, 275, 36, 47, STR_02E1, STR_LIVERY_SECONDARY_TIP }, |
502 { WWT_TEXTBTN, RESIZE_NONE, 14, 275, 275, 36, 47, STR_02E1, STR_LIVERY_SECONDARY_TIP }, |
|
503 { WWT_TEXTBTN, RESIZE_NONE, 14, 275, 275, 36, 47, STR_0225, STR_LIVERY_SECONDARY_TIP }, |
|
504 { WWT_MATRIX, RESIZE_NONE, 14, 0, 274, 48, 48 + 1 * 14, (1 << 8) | 1, STR_LIVERY_PANEL_TIP }, |
493 { WWT_MATRIX, RESIZE_NONE, 14, 0, 274, 48, 48 + 1 * 14, (1 << 8) | 1, STR_LIVERY_PANEL_TIP }, |
505 { WIDGETS_END }, |
494 { WIDGETS_END }, |
506 }; |
495 }; |
507 |
496 |
508 static const WindowDesc _select_player_livery_desc = { |
497 static const WindowDesc _select_player_livery_desc = { |