src/newgrf_gui.cpp
branchgamebalance
changeset 9907 3b068c3a1c74
parent 9906 6f41b8713b65
child 9909 dce9a6923bb7
equal deleted inserted replaced
9906:6f41b8713b65 9907:3b068c3a1c74
    40 
    40 
    41 	return n;
    41 	return n;
    42 }
    42 }
    43 
    43 
    44 
    44 
    45 static void ShowNewGRFInfo(const GRFConfig *c, uint x, uint y, uint w, bool show_params)
    45 static void ShowNewGRFInfo(const GRFConfig *c, uint x, uint y, uint w, uint bottom, bool show_params)
    46 {
    46 {
    47 	char buff[256];
    47 	char buff[256];
    48 
    48 
    49 	if (c->error != NULL) {
    49 	if (c->error != NULL) {
    50 		SetDParamStr(0, c->filename);
    50 		SetDParamStr(0, c->filename);
    60 
    60 
    61 		char message[512];
    61 		char message[512];
    62 		GetString(message, c->error->message, lastof(message));
    62 		GetString(message, c->error->message, lastof(message));
    63 
    63 
    64 		SetDParamStr(0, message);
    64 		SetDParamStr(0, message);
    65 		y += DrawStringMultiLine(x, y, c->error->severity, w);
    65 		y += DrawStringMultiLine(x, y, c->error->severity, w, bottom - y);
    66 	}
    66 	}
    67 
    67 
    68 	/* Draw filename or not if it is not known (GRF sent over internet) */
    68 	/* Draw filename or not if it is not known (GRF sent over internet) */
    69 	if (c->filename != NULL) {
    69 	if (c->filename != NULL) {
    70 		SetDParamStr(0, c->filename);
    70 		SetDParamStr(0, c->filename);
    71 		y += DrawStringMultiLine(x, y, STR_NEWGRF_FILENAME, w);
    71 		y += DrawStringMultiLine(x, y, STR_NEWGRF_FILENAME, w, bottom - y);
    72 	}
    72 	}
    73 
    73 
    74 	/* Prepare and draw GRF ID */
    74 	/* Prepare and draw GRF ID */
    75 	snprintf(buff, lengthof(buff), "%08X", BSWAP32(c->grfid));
    75 	snprintf(buff, lengthof(buff), "%08X", BSWAP32(c->grfid));
    76 	SetDParamStr(0, buff);
    76 	SetDParamStr(0, buff);
    77 	y += DrawStringMultiLine(x, y, STR_NEWGRF_GRF_ID, w);
    77 	y += DrawStringMultiLine(x, y, STR_NEWGRF_GRF_ID, w, bottom - y);
    78 
    78 
    79 	/* Prepare and draw MD5 sum */
    79 	/* Prepare and draw MD5 sum */
    80 	md5sumToString(buff, lastof(buff), c->md5sum);
    80 	md5sumToString(buff, lastof(buff), c->md5sum);
    81 	SetDParamStr(0, buff);
    81 	SetDParamStr(0, buff);
    82 	y += DrawStringMultiLine(x, y, STR_NEWGRF_MD5SUM, w);
    82 	y += DrawStringMultiLine(x, y, STR_NEWGRF_MD5SUM, w, bottom - y);
    83 
    83 
    84 	/* Show GRF parameter list */
    84 	/* Show GRF parameter list */
    85 	if (show_params) {
    85 	if (show_params) {
    86 		if (c->num_params > 0) {
    86 		if (c->num_params > 0) {
    87 			GRFBuildParamList(buff, c, lastof(buff));
    87 			GRFBuildParamList(buff, c, lastof(buff));
    88 			SetDParamStr(0, buff);
    88 			SetDParamStr(0, buff);
    89 		} else {
    89 		} else {
    90 			SetDParam(0, STR_01A9_NONE);
    90 			SetDParam(0, STR_01A9_NONE);
    91 		}
    91 		}
    92 		y += DrawStringMultiLine(x, y, STR_NEWGRF_PARAMETER, w);
    92 		y += DrawStringMultiLine(x, y, STR_NEWGRF_PARAMETER, w, bottom - y);
    93 	}
    93 	}
    94 
    94 
    95 	/* Show flags */
    95 	/* Show flags */
    96 	if (c->status == GCS_NOT_FOUND)        y += DrawStringMultiLine(x, y, STR_NEWGRF_NOT_FOUND, w);
    96 	if (c->status == GCS_NOT_FOUND)        y += DrawStringMultiLine(x, y, STR_NEWGRF_NOT_FOUND, w, bottom - y);
    97 	if (c->status == GCS_DISABLED)         y += DrawStringMultiLine(x, y, STR_NEWGRF_DISABLED, w);
    97 	if (c->status == GCS_DISABLED)         y += DrawStringMultiLine(x, y, STR_NEWGRF_DISABLED, w, bottom - y);
    98 	if (HASBIT(c->flags, GCF_COMPATIBLE)) y += DrawStringMultiLine(x, y, STR_NEWGRF_COMPATIBLE_LOADED, w);
    98 	if (HASBIT(c->flags, GCF_COMPATIBLE)) y += DrawStringMultiLine(x, y, STR_NEWGRF_COMPATIBLE_LOADED, w, bottom - y);
    99 
    99 
   100 	/* Draw GRF info if it exists */
   100 	/* Draw GRF info if it exists */
   101 	if (c->info != NULL && !StrEmpty(c->info)) {
   101 	if (c->info != NULL && !StrEmpty(c->info)) {
   102 		SetDParamStr(0, c->info);
   102 		SetDParamStr(0, c->info);
   103 		y += DrawStringMultiLine(x, y, STR_02BD, w);
   103 		y += DrawStringMultiLine(x, y, STR_02BD, w, bottom - y);
   104 	} else {
   104 	} else {
   105 		y += DrawStringMultiLine(x, y, STR_NEWGRF_NO_INFO, w);
   105 		y += DrawStringMultiLine(x, y, STR_NEWGRF_NO_INFO, w, bottom - y);
   106 	}
   106 	}
   107 }
   107 }
   108 
   108 
   109 
   109 
   110 /* Dialogue for adding NewGRF files to the selection */
   110 /* Dialogue for adding NewGRF files to the selection */
   149 				n++;
   149 				n++;
   150 			}
   150 			}
   151 
   151 
   152 			if (WP(w, newgrf_add_d).sel != NULL) {
   152 			if (WP(w, newgrf_add_d).sel != NULL) {
   153 				const Widget *wi = &w->widget[5];
   153 				const Widget *wi = &w->widget[5];
   154 				ShowNewGRFInfo(WP(w, newgrf_add_d).sel, wi->left + 2, wi->top + 2, wi->right - wi->left - 2, false);
   154 				ShowNewGRFInfo(WP(w, newgrf_add_d).sel, wi->left + 2, wi->top + 2, wi->right - wi->left - 2, wi->bottom, false);
   155 			}
   155 			}
   156 			break;
   156 			break;
   157 		}
   157 		}
   158 
   158 
   159 		case WE_CLICK:
   159 		case WE_CLICK:
   364 			}
   364 			}
   365 
   365 
   366 			if (WP(w, newgrf_d).sel != NULL) {
   366 			if (WP(w, newgrf_d).sel != NULL) {
   367 				/* Draw NewGRF file info */
   367 				/* Draw NewGRF file info */
   368 				const Widget *wi = &w->widget[SNGRFS_NEWGRF_INFO];
   368 				const Widget *wi = &w->widget[SNGRFS_NEWGRF_INFO];
   369 				ShowNewGRFInfo(WP(w, newgrf_d).sel, wi->left + 2, wi->top + 2, wi->right - wi->left - 2, WP(w, newgrf_d).show_params);
   369 				ShowNewGRFInfo(WP(w, newgrf_d).sel, wi->left + 2, wi->top + 2, wi->right - wi->left - 2, wi->bottom, WP(w, newgrf_d).show_params);
   370 			}
   370 			}
   371 
   371 
   372 			break;
   372 			break;
   373 		}
   373 		}
   374 
   374