Changeset - r27435:a26109e60d6d
[Not reviewed]
master
0 4 0
Rubidium - 13 months ago 2023-05-24 20:46:22
rubidium@openttd.org
Codechange: use std::string to create the GRF parameter list
4 files changed with 10 insertions and 18 deletions:
0 comments (0 inline, 0 general)
src/newgrf_config.cpp
Show inline comments
 
@@ -714,18 +714,14 @@ GRFConfig *GetGRFConfig(uint32 grfid, ui
 

	
 

	
 
/** Build a string containing space separated parameter values, and terminate */
 
char *GRFBuildParamList(char *dst, const GRFConfig *c, const char *last)
 
std::string GRFBuildParamList(const GRFConfig *c)
 
{
 
	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 += seprintf(dst, last, "%d", c->param[i]);
 
	std::string result;
 
	for (uint i = 0; i < c->num_params; i++) {
 
		if (!result.empty()) result += ' ';
 
		result += std::to_string(c->param[i]);
 
	}
 
	return dst;
 
	return result;
 
}
 

	
 
/**
src/newgrf_config.h
Show inline comments
 
@@ -220,7 +220,7 @@ void ClearGRFConfigList(GRFConfig **conf
 
void ResetGRFConfig(bool defaults);
 
GRFListCompatibility IsGoodGRFConfigList(GRFConfig *grfconfig);
 
bool FillGRFDetails(GRFConfig *config, bool is_static, Subdirectory subdir = NEWGRF_DIR);
 
char *GRFBuildParamList(char *dst, const GRFConfig *c, const char *last);
 
std::string GRFBuildParamList(const GRFConfig *c);
 

	
 
/* In newgrf_gui.cpp */
 
void ShowNewGRFSettings(bool editable, bool show_params, bool exec_changes, GRFConfig **config);
src/newgrf_gui.cpp
Show inline comments
 
@@ -112,10 +112,9 @@ static void ShowNewGRFInfo(const GRFConf
 
	/* Show GRF parameter list */
 
	if (show_params) {
 
		if (c->num_params > 0) {
 
			char buff[256];
 
			GRFBuildParamList(buff, c, lastof(buff));
 
			std::string params = GRFBuildParamList(c);
 
			SetDParam(0, STR_JUST_RAW_STRING);
 
			SetDParamStr(1, buff);
 
			SetDParamStr(1, params);
 
		} else {
 
			SetDParam(0, STR_NEWGRF_SETTINGS_PARAMETER_NONE);
 
		}
src/settings.cpp
Show inline comments
 
@@ -1134,12 +1134,9 @@ static void GRFSaveConfig(IniFile &ini, 
 
	const GRFConfig *c;
 

	
 
	for (c = list; c != nullptr; c = c->next) {
 
		char params[512];
 
		GRFBuildParamList(params, c, lastof(params));
 

	
 
		std::string key = fmt::format("{:08X}|{}|{}", BSWAP32(c->ident.grfid),
 
				FormatArrayAsHex(c->ident.md5sum), c->filename);
 
		group->GetItem(key, true)->SetValue(params);
 
		group->GetItem(key, true)->SetValue(GRFBuildParamList(c));
 
	}
 
}
 

	
0 comments (0 inline, 0 general)