summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/strings.cpp25
-rw-r--r--src/table/control_codes.h1
-rw-r--r--src/table/strgen_tables.h1
3 files changed, 27 insertions, 0 deletions
diff --git a/src/strings.cpp b/src/strings.cpp
index c44e2f912..06c4132d5 100644
--- a/src/strings.cpp
+++ b/src/strings.cpp
@@ -912,6 +912,31 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg
buff = FormatBytes(buff, args->GetInt64(), last);
break;
+ case SCC_CARGO_TINY: { // {CARGO_TINY}
+ /* Tiny description of cargotypes. Layout:
+ * param 1: cargo type
+ * param 2: cargo count */
+ StringID cargo_str = CargoSpec::Get(args->GetInt32(SCC_CARGO_SHORT))->units_volume;
+ int64 amount = 0;
+ switch (cargo_str) {
+ case STR_TONS:
+ amount = _units[_settings_game.locale.units].c_weight.ToDisplay(args->GetInt64());
+ break;
+
+ case STR_LITERS:
+ amount = _units[_settings_game.locale.units].c_volume.ToDisplay(args->GetInt64());
+ break;
+
+ default: {
+ amount = args->GetInt64();
+ break;
+ }
+ }
+
+ buff = FormatCommaNumber(buff, amount, last);
+ break;
+ }
+
case SCC_CARGO_SHORT: { // {CARGO_SHORT}
/* Short description of cargotypes. Layout:
* param 1: cargo type
diff --git a/src/table/control_codes.h b/src/table/control_codes.h
index 61399c834..a1cfe7576 100644
--- a/src/table/control_codes.h
+++ b/src/table/control_codes.h
@@ -50,6 +50,7 @@ enum StringControlCode {
SCC_CARGO_LONG,
SCC_CARGO_SHORT,
+ SCC_CARGO_TINY,
SCC_POWER,
SCC_VOLUME_LONG,
SCC_VOLUME_SHORT,
diff --git a/src/table/strgen_tables.h b/src/table/strgen_tables.h
index e3e9ec9df..12c9e17e4 100644
--- a/src/table/strgen_tables.h
+++ b/src/table/strgen_tables.h
@@ -69,6 +69,7 @@ static const CmdStruct _cmd_structs[] = {
{"INDUSTRY", EmitSingleChar, SCC_INDUSTRY_NAME, 1, C_CASE | C_GENDER}, // industry, takes an industry #, can have cases
{"CARGO_LONG", EmitSingleChar, SCC_CARGO_LONG, 2, C_NONE | C_GENDER},
{"CARGO_SHORT", EmitSingleChar, SCC_CARGO_SHORT, 2, C_NONE}, // short cargo description, only ### tons, or ### litres
+ {"CARGO_TINY", EmitSingleChar, SCC_CARGO_TINY, 2, C_NONE}, // tiny cargo description with only the amount, not a specifier for the amount or the actual cargo name
{"POWER", EmitSingleChar, SCC_POWER, 1, C_NONE},
{"VOLUME_LONG", EmitSingleChar, SCC_VOLUME_LONG, 1, C_NONE},
{"VOLUME_SHORT", EmitSingleChar, SCC_VOLUME_SHORT, 1, C_NONE},