diff --git a/newgrf_config.c b/newgrf_config.c index aecdf40550..ac7b60fd5b 100644 --- a/newgrf_config.c +++ b/newgrf_config.c @@ -6,6 +6,7 @@ #include "macros.h" #include "debug.h" #include "variables.h" +#include "string.h" #include "saveload.h" #include "md5.h" #include "newgrf.h" @@ -261,6 +262,22 @@ const GRFConfig *GetGRFConfig(uint32 grfid) } +/* Build a space separated list of parameters, and terminate */ +char *GRFBuildParamList(char *dst, const GRFConfig *c, const char *last) +{ + uint i; + + /* Return an empty string if there are no parameters */ + if (c->num_params == 0) return strecpy(dst, "", last); + + for (i = 0; i < c->num_params; i++) { + if (i > 0) dst = strecpy(dst, " ", last); + dst += snprintf(dst, last - dst, "%d", c->param[i]); + } + return dst; +} + + static const SaveLoad _grfconfig_desc[] = { SLE_STR(GRFConfig, filename, SLE_STR, 0x40), SLE_VAR(GRFConfig, grfid, SLE_UINT32), diff --git a/newgrf_config.h b/newgrf_config.h index 870ace532f..45d0e270da 100644 --- a/newgrf_config.h +++ b/newgrf_config.h @@ -40,6 +40,7 @@ void ClearGRFConfigList(GRFConfig *config); void ResetGRFConfig(bool defaults); bool IsGoodGRFConfigList(void); bool FillGRFDetails(GRFConfig *config); +char *GRFBuildParamList(char *dst, const GRFConfig *c, const char *last); /* In newgrf_gui.c */ void ShowNewGRFSettings(bool editable, bool show_params, GRFConfig **config); diff --git a/newgrf_gui.c b/newgrf_gui.c index ae14401a92..c2e76a0212 100644 --- a/newgrf_gui.c +++ b/newgrf_gui.c @@ -7,28 +7,11 @@ #include "gfx.h" #include "gui.h" #include "window.h" -#include "strings.h" #include "table/strings.h" #include "table/sprites.h" #include "newgrf_config.h" -/* Build a space separated list of parameters, and terminate */ -static char *BuildParamList(char *dst, const GRFConfig *c, const char *last) -{ - uint i; - - /* Return an empty string if there are no parameters */ - if (c->num_params == 0) return strecpy(dst, "", last); - - for (i = 0; i < c->num_params; i++) { - if (i > 0) dst = strecpy(dst, " ", last); - dst += snprintf(dst, last - dst, "%d", c->param[i]); - } - return dst; -} - - /** Parse an integerlist string and set each found value * @param p the string to be parsed. Each element in the list is seperated by a * comma or a space character @@ -80,7 +63,7 @@ static void ShowNewGRFInfo(const GRFConfig *c, uint x, uint y, uint w, bool show /* Show GRF parameter list */ if (show_params) { if (c->num_params > 0) { - BuildParamList(buff, c, lastof(buff)); + GRFBuildParamList(buff, c, lastof(buff)); SetDParamStr(0, buff); } else { SetDParam(0, STR_01A9_NONE); @@ -401,7 +384,7 @@ static void NewGRFWndProc(Window *w, WindowEvent *e) char buff[512]; if (WP(w, newgrf_d).sel == NULL) break; - BuildParamList(buff, WP(w, newgrf_d).sel, lastof(buff)); + GRFBuildParamList(buff, WP(w, newgrf_d).sel, lastof(buff)); ShowQueryString(BindCString(buff), STR_NEWGRF_PARAMETER_QUERY, 63, 250, w->window_class, w->window_number, CS_ALPHANUMERAL); break; }