File diff r16986:652ac23f0157 → r16987:076ce713b4f2
src/smallmap_gui.cpp
Show inline comments
 
@@ -65,6 +65,9 @@ static const int NUM_NO_COMPANY_ENTRIES 
 
/** Macro for non-company owned property entry of LegendAndColour */
 
#define MO(a, b) {a, b, {INVALID_COMPANY}, true, false, false}
 

	
 
/** Macro used for forcing a rebuild of the owner legend the first time it is used. */
 
#define MOEND() {0, 0, {OWNER_NONE}, true, true, false}
 

	
 
/** Macro for end of list marker in arrays of LegendAndColour */
 
#define MKEND() {0, STR_NULL, {INVALID_INDUSTRYTYPE}, true, true, false}
 

	
 
@@ -150,13 +153,15 @@ static LegendAndColour _legend_land_owne
 
	MO(0x00, STR_SMALLMAP_LEGENDA_NO_OWNER), // This colour will vary depending on settings.
 
	MO(0xB4, STR_SMALLMAP_LEGENDA_TOWNS),
 
	MO(0x20, STR_SMALLMAP_LEGENDA_INDUSTRIES),
 
	/* The legend will be terminated after adding the companies. */
 
	/* The legend will be terminated the first time it is used. */
 
	MOEND(),
 
};
 

	
 
#undef MK
 
#undef MC
 
#undef MS
 
#undef MO
 
#undef MOEND
 
#undef MKEND
 

	
 
/**
 
@@ -1107,6 +1112,12 @@ public:
 
					str = STR_SMALLMAP_INDUSTRY;
 
				} else if (i == SMT_OWNER) {
 
					if (tbl->u.company != INVALID_COMPANY) {
 
						if (!Company::IsValidID(tbl->u.company)) {
 
							/* Rebuild the owner legend. */
 
							BuildOwnerLegend();
 
							this->OnInit();
 
							return;
 
						}
 
						/* Non-fixed legend entries for the owner view. */
 
						SetDParam(0, tbl->u.company);
 
						str = STR_SMALLMAP_COMPANY;
 
@@ -1132,6 +1143,22 @@ public:
 
		this->column_width = min_width + LEGEND_BLOB_WIDTH + WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT;
 
	}
 

	
 
	virtual void OnPaint()
 
	{
 
		if (this->map_type == SMT_OWNER) {
 
			for (const LegendAndColour *tbl = _legend_table[this->map_type]; !tbl->end; ++tbl) {
 
				if (tbl->u.company != INVALID_COMPANY && !Company::IsValidID(tbl->u.company)) {
 
					/* Rebuild the owner legend. */
 
					BuildOwnerLegend();
 
					this->InvalidateData(1);
 
					break;
 
				}
 
			}
 
		}
 

	
 
		this->DrawWidgets();
 
	}
 

	
 
	virtual void DrawWidget(const Rect &r, int widget) const
 
	{
 
		switch (widget) {