(svn r11862) -Fix [FS#1559]: when two NewGRFs 'fight' to define the same cargo it could happen that the strings are defined by one cargo and the 'action2' by another and when one assumes that both come from the same NewGRF... So store the GRF ID with the strings. To be extra sure add the same protection mechanism to industries and towns too.

This commit is contained in:
rubidium
2008-01-15 13:19:49 +00:00
parent e0c61a8921
commit fcee6dad93
8 changed files with 102 additions and 34 deletions

View File

@@ -12,7 +12,7 @@
#include "date_type.h"
#include "town_type.h"
#include "player_type.h"
#include "strings_type.h"
#include "newgrf_string_type.h"
enum {
HOUSE_NO_CLASS = 0,
@@ -170,7 +170,7 @@ struct HouseSpec {
Year max_date; ///< last year it can be built
byte population; ///< population (Zero on other tiles in multi tile house.)
byte removal_cost; ///< cost multiplier for removing it
StringID building_name; ///< building name
GRFMappedStringID building_name; ///< building name
uint16 remove_rating_decrease; ///< rating decrease if removed
byte mail_generation; ///< mail generation multiplier (tile based, as the acceptances below)
byte cargo_acceptance[3]; ///< acceptance level for the cargo slots