Changeset - r7755:f4e3b487aca8
[Not reviewed]
master
0 3 0
glx - 17 years ago 2007-10-18 20:35:59
glx@openttd.org
(svn r11293) -Fix: newgrf defined industry news messages use TTD format for args, which is not the same as our. So we must detect those strings and pass them the right params
3 files changed with 22 insertions and 7 deletions:
0 comments (0 inline, 0 general)
src/industry_cmd.cpp
Show inline comments
 
@@ -1621,7 +1621,12 @@ CommandCost CmdBuildIndustry(TileIndex t
 
					const Industry *ind = CreateNewIndustryHelper(RandomTile(), p1, flags, indspec, tilespec_index);
 
					if (ind != NULL) {
 
						SetDParam(0, indspec->name);
 
						SetDParam(1, ind->town->index);
 
						if (indspec->new_industry_text > STR_LAST_STRINGID) {
 
							SetDParam(1, STR_TOWN);
 
							SetDParam(2, ind->town->index);
 
						} else {
 
							SetDParam(1, ind->town->index);
 
						}
 
						AddNewsItem(indspec->new_industry_text,
 
								NEWS_FLAGS(NM_THIN, NF_VIEWPORT | NF_TILE, NT_OPENCLOSE, 0), ind->xy, 0);
 
						break;
 
@@ -1829,7 +1834,12 @@ static void MaybeNewIndustry(void)
 
	}
 

	
 
	SetDParam(0, ind_spc->name);
 
	SetDParam(1, ind->town->index);
 
	if (ind_spc->new_industry_text > STR_LAST_STRINGID) {
 
		SetDParam(1, STR_TOWN);
 
		SetDParam(2, ind->town->index);
 
	} else {
 
		SetDParam(1, ind->town->index);
 
	}
 
	AddNewsItem(ind_spc->new_industry_text,
 
		NEWS_FLAGS(NM_THIN, NF_VIEWPORT | NF_TILE, NT_OPENCLOSE, 0), ind->xy, 0);
 
}
 
@@ -1984,7 +1994,13 @@ static void ChangeIndustryProduction(Ind
 
	}
 

	
 
	if (!suppress_message && str != STR_NULL) {
 
		SetDParam(0, i->index);
 
		if (str > STR_LAST_STRINGID) {
 
			SetDParam(0, STR_TOWN);
 
			SetDParam(1, i->town->index);
 
			SetDParam(2, indspec->name);
 
		} else {
 
			SetDParam(0, i->index);
 
		}
 
		AddNewsItem(str,
 
			NEWS_FLAGS(NM_THIN, NF_VIEWPORT | NF_TILE, closeit ? NT_OPENCLOSE : NT_ECONOMY, 0),
 
			i->xy + TileDiffXY(1, 1), 0);
src/newgrf_text.cpp
Show inline comments
 
@@ -636,7 +636,7 @@ uint RemapNewGRFStringControlCode(uint s
 
			return SCC_CURRENCY;
 

	
 
		case SCC_NEWGRF_PRINT_STRING_ID:
 
			return SCC_STRING;
 
			return SCC_STRING1;
 

	
 
		case SCC_NEWGRF_PRINT_DATE:
 
			return SCC_DATE_LONG;
src/strgen/strgen.cpp
Show inline comments
 
@@ -1014,7 +1014,6 @@ static void WriteStringsH(const char *fi
 
	FILE *out;
 
	int i;
 
	int next = -1;
 
	int lastgrp;
 

	
 
	out = fopen("tmp.xxx", "w");
 
	if (out == NULL) fatal("can't open tmp.xxx");
 
@@ -1023,8 +1022,6 @@ static void WriteStringsH(const char *fi
 
	fprintf(out, "#ifndef TABLE_STRINGS_H\n");
 
	fprintf(out, "#define TABLE_STRINGS_H\n");
 

	
 
	lastgrp = 0;
 

	
 
	for (i = 0; i != lengthof(_strings); i++) {
 
		if (_strings[i] != NULL) {
 
			if (next != i) fprintf(out, "\n");
 
@@ -1033,6 +1030,8 @@ static void WriteStringsH(const char *fi
 
		}
 
	}
 

	
 
	fprintf(out, "\nstatic const StringID STR_LAST_STRINGID = 0x%X;\n", next - 1);
 

	
 
	fprintf(out,
 
		"\nenum {\n"
 
		"\tLANGUAGE_PACK_IDENT = 0x474E414C, // Big Endian value for 'LANG' (LE is 0x 4C 41 4E 47)\n"
0 comments (0 inline, 0 general)