src/player_gui.cpp
changeset 8839 bd8a5bb77cd7
parent 8835 4a8e24bfde22
child 9011 d5db20f3fc90
equal deleted inserted replaced
8838:1549b7f9d0a8 8839:bd8a5bb77cd7
   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 = {