@@ -168,6 +168,9 @@ void OutfitterPanel::DrawItem(const string &name, const Point &point)
168
168
169
169
const Font &font = FontSet::Get (14 );
170
170
const Color &bright = *GameData::Colors ().Get (" bright" );
171
+ const Color &highlight = *GameData::Colors ().Get (" outfitter difference highlight" );
172
+
173
+ bool highlightDifferences = false ;
171
174
if (playerShip || isLicense || mapSize)
172
175
{
173
176
int minCount = numeric_limits<int >::max ();
@@ -178,8 +181,16 @@ void OutfitterPanel::DrawItem(const string &name, const Point &point)
178
181
minCount = maxCount = player.HasMapped (mapSize);
179
182
else
180
183
{
184
+ highlightDifferences = true ;
185
+ string firstModelName;
181
186
for (const Ship *ship : playerShips)
182
187
{
188
+ // Highlight differences in installed outfit counts only when all selected ships are of the same model.
189
+ string modelName = ship->TrueModelName ();
190
+ if (firstModelName.empty ())
191
+ firstModelName = modelName;
192
+ else
193
+ highlightDifferences &= (modelName == firstModelName);
183
194
int count = ship->OutfitCount (outfit);
184
195
minCount = min (minCount, count);
185
196
maxCount = max (maxCount, count);
@@ -189,13 +200,19 @@ void OutfitterPanel::DrawItem(const string &name, const Point &point)
189
200
if (maxCount)
190
201
{
191
202
string label = " installed: " + to_string (minCount);
203
+ Color color = bright;
192
204
if (maxCount > minCount)
205
+ {
193
206
label += " - " + to_string (maxCount);
207
+ if (highlightDifferences)
208
+ color = highlight;
209
+ }
194
210
195
211
Point labelPos = point + Point (-OUTFIT_SIZE / 2 + 20 , OUTFIT_SIZE / 2 - 38 );
196
- font.Draw (label, labelPos, bright );
212
+ font.Draw (label, labelPos, color );
197
213
}
198
214
}
215
+
199
216
// Don't show the "in stock" amount if the outfit has an unlimited stock.
200
217
int stock = 0 ;
201
218
if (!outfitter.Has (outfit))
0 commit comments