Changeset - r10534:d6624b9bdf98
[Not reviewed]
master
0 4 0
rubidium - 16 years ago 2009-01-03 00:56:16
rubidium@openttd.org
(svn r14791) -Add: the ability to make ISO dates with the string system (PhilSophus)
4 files changed with 11 insertions and 3 deletions:
0 comments (0 inline, 0 general)
src/lang/english.txt
Show inline comments
 
@@ -3495,24 +3495,25 @@ STR_HELIPORTS                           
 

	
 
############ Tooltip measurment
 

	
 
STR_MEASURE_LENGTH                                              :{BLACK}Length: {NUM}
 
STR_MEASURE_AREA                                                :{BLACK}Area: {NUM} x {NUM}
 
STR_MEASURE_LENGTH_HEIGHTDIFF                                   :{BLACK}Length: {NUM}{}Height difference: {NUM} m
 
STR_MEASURE_AREA_HEIGHTDIFF                                     :{BLACK}Area: {NUM} x {NUM}{}Height difference: {NUM} m
 

	
 
############ Date formatting
 
STR_DATE_TINY                                                   :{RAW_STRING}-{RAW_STRING}-{NUM}
 
STR_DATE_SHORT                                                  :{STRING} {NUM}
 
STR_DATE_LONG                                                   :{STRING} {STRING} {NUM}
 
STR_DATE_ISO                                                    :{2:NUM}-{1:RAW_STRING}-{0:RAW_STRING}
 

	
 
########
 

	
 
STR_FEEDER_CARGO_VALUE                                          :{BLACK}Transfer Credits: {LTBLUE}{CURRENCY}
 
STR_DRIVE_THROUGH_ERROR_ON_TOWN_ROAD                            :{WHITE}...this is a town owned road
 
STR_DRIVE_THROUGH_ERROR_DIRECTION                               :{WHITE}...road facing in the wrong direction
 

	
 
STR_TRANSPARENCY_TOOLB                                          :{WHITE}Transparency Options
 
STR_TRANSPARENT_SIGNS_DESC                                      :{BLACK}Toggle transparency for station signs. CTRL+click to lock.
 
STR_TRANSPARENT_TREES_DESC                                      :{BLACK}Toggle transparency for trees. CTRL+click to lock.
 
STR_TRANSPARENT_HOUSES_DESC                                     :{BLACK}Toggle transparency for houses. CTRL+click to lock.
 
STR_TRANSPARENT_INDUSTRIES_DESC                                 :{BLACK}Toggle transparency for industries. CTRL+click to lock.
src/strgen/strgen.cpp
Show inline comments
 
@@ -470,24 +470,25 @@ static const CmdStruct _cmd_structs[] = 
 
	{"VOLUME_S",        EmitSingleChar, SCC_VOLUME_SHORT,     1, 0},
 
	{"WEIGHT",          EmitSingleChar, SCC_WEIGHT,           1, 0},
 
	{"WEIGHT_S",        EmitSingleChar, SCC_WEIGHT_SHORT,     1, 0},
 
	{"FORCE",           EmitSingleChar, SCC_FORCE,            1, 0},
 
	{"VELOCITY",        EmitSingleChar, SCC_VELOCITY,         1, 0},
 

	
 
	{"P", EmitPlural, 0, 0, C_DONTCOUNT}, // plural specifier
 
	{"G", EmitGender, 0, 0, C_DONTCOUNT}, // gender specifier
 

	
 
	{"DATE_TINY",  EmitSingleChar, SCC_DATE_TINY, 1, 0},
 
	{"DATE_SHORT", EmitSingleChar, SCC_DATE_SHORT, 1, 0},
 
	{"DATE_LONG",  EmitSingleChar, SCC_DATE_LONG, 1, 0},
 
	{"DATE_ISO",   EmitSingleChar, SCC_DATE_ISO, 1, 0},
 

	
 
	{"SKIP", EmitSingleChar, SCC_SKIP, 1, 0},
 

	
 
	{"STRING", EmitSingleChar, SCC_STRING, 1, C_CASE},
 
	{"RAW_STRING", EmitSingleChar, SCC_RAW_STRING_POINTER, 1, 0},
 

	
 
	// Numbers
 
	{"COMMA", EmitSingleChar, SCC_COMMA, 1, 0}, // Number with comma
 
	{"NUM",   EmitSingleChar, SCC_NUM,   1, 0}, // Signed number
 

	
 
	{"CURRENCY",   EmitSingleChar, SCC_CURRENCY,    1, 0},
 

	
src/strings.cpp
Show inline comments
 
@@ -275,37 +275,37 @@ static char *FormatYmdString(char *buff,
 
	return FormatString(buff, GetStringPtr(STR_DATE_LONG), args, 0, last);
 
}
 

	
 
static char *FormatMonthAndYear(char *buff, Date date, const char *last)
 
{
 
	YearMonthDay ymd;
 
	ConvertDateToYMD(date, &ymd);
 

	
 
	int64 args[2] = { STR_MONTH_JAN + ymd.month, ymd.year };
 
	return FormatString(buff, GetStringPtr(STR_DATE_SHORT), args, 0, last);
 
}
 

	
 
static char *FormatTinyDate(char *buff, Date date, const char *last)
 
static char *FormatTinyOrISODate(char *buff, Date date, StringID str, const char *last)
 
{
 
	YearMonthDay ymd;
 
	ConvertDateToYMD(date, &ymd);
 

	
 
	char day[3];
 
	char month[3];
 
	/* We want to zero-pad the days and months */
 
	snprintf(day,   lengthof(day),   "%02i", ymd.day);
 
	snprintf(month, lengthof(month), "%02i", ymd.month + 1);
 

	
 
	int64 args[3] = { (int64)(size_t)day, (int64)(size_t)month, ymd.year };
 
	return FormatString(buff, GetStringPtr(STR_DATE_TINY), args, 0, last);
 
	return FormatString(buff, GetStringPtr(str), args, 0, last);
 
}
 

	
 
static char *FormatGenericCurrency(char *buff, const CurrencySpec *spec, Money number, bool compact, const char *last)
 
{
 
	/* We are going to make number absolute for printing, so
 
	 * keep this piece of data as we need it later on */
 
	bool negative = number < 0;
 
	const char *multiplier = "";
 
	char buf[40];
 
	char *p;
 
	int j;
 

	
 
@@ -705,25 +705,30 @@ static char *FormatString(char *buff, co
 

	
 
						c = Utf8Consume(&s);
 
					}
 
					/* Does this string have a gender, if so, set it */
 
					if (c == SCC_GENDER_INDEX) gender = (byte)s[0];
 
				}
 
				str = ParseStringChoice(str, gender, buff, &len);
 
				buff += len;
 
				break;
 
			}
 

	
 
			case SCC_DATE_TINY: { // {DATE_TINY}
 
				buff = FormatTinyDate(buff, GetInt32(&argv), last);
 
				buff = FormatTinyOrISODate(buff, GetInt32(&argv), STR_DATE_TINY, last);
 
				break;
 
			}
 

	
 
			case SCC_DATE_ISO: { // {DATE_ISO}
 
				buff = FormatTinyOrISODate(buff, GetInt32(&argv), STR_DATE_ISO, last);
 
				break;
 
			}
 

	
 
			case SCC_CARGO: { // {CARGO}
 
				/* Layout now is:
 
				 *   8bit   - cargo type
 
				 *   16-bit - cargo count */
 
				CargoID cargo = GetInt32(&argv);
 
				StringID cargo_str = (cargo == CT_INVALID) ? STR_8838_N_A : GetCargo(cargo)->quantifier;
 
				buff = GetStringWithArgs(buff, cargo_str, argv++, last);
 
				break;
 
			}
src/table/control_codes.h
Show inline comments
 
@@ -44,24 +44,25 @@ enum StringControlCode {
 
	SCC_CARGO_SHORT,
 
	SCC_POWER,
 
	SCC_VOLUME,
 
	SCC_VOLUME_SHORT,
 
	SCC_WEIGHT,
 
	SCC_WEIGHT_SHORT,
 
	SCC_FORCE,
 
	SCC_VELOCITY,
 

	
 
	SCC_DATE_TINY,
 
	SCC_DATE_SHORT,
 
	SCC_DATE_LONG,
 
	SCC_DATE_ISO,
 

	
 
	SCC_STRING1,
 
	SCC_STRING2,
 
	SCC_STRING3,
 
	SCC_STRING4,
 
	SCC_STRING5,
 

	
 
	SCC_SKIP,
 
	SCC_STRING,
 
	SCC_COMMA,
 
	SCC_NUM,
 
	SCC_HEX,
0 comments (0 inline, 0 general)