It's funny that you say that works3iff wrote: The code.
in the relevant switch,
return [STORE_TEMP(string(STR_CONCAT2, string(STR_TOWN), string(STR_IND_COAL_MINE), string(STR_RESERVE_ANNOUNCE)), 0x100), CB_RESULT_IND_PROD_DECREMENT_BY_1 | 1 << 8];
in the lang file,
STR_CONCAT2 :{BLACK}{BIGFONT}{STRING}{NBSP}{STRING}{}{STRING}
(allows 3 strings to be displayed, town, industry type and the announcement)
STR_IND_COAL_MINE :Coal Mine
STR_RESERVE_ANNOUNCE :{BIGFONT}{BLACK}announces reserves are likely to be {RED}exhausted{BLACK} within 5 years.
It might not be pretty or elegant but it seems to work. I hadn't realised it might have been that easy.
Anyway, there is no such thnig as "text stack" for the production change callbacks.
However, the first "{STRING}" in the text will be replaced by the town name, and the second "{STRING}" will be replaced by the industry name.
So your case can be simplified to:
Code: Select all
STR_RESERVE_ANNOUNCE :{BIGFONT}{BLACK}{STRING} {STRING} announces reserves are likely to be {RED}exhausted{BLACK} within 5 years.
return [STORE_TEMP(string(STR_RESERVE_ANNOUNCE), 0x100), CB_RESULT_IND_PROD_DECREMENT_BY_1 | 1 << 8];