Merge branch 'master' into jgrpp

# Conflicts:
#	src/industry_gui.cpp
#	src/lang/korean.txt
#	src/town.h
#	src/town_gui.cpp
pull/128/head
Jonathan G Rennison 4 years ago
commit 4adfe0c9ae

@ -12,7 +12,6 @@
#include "smallvec_type.hpp"
#include "enum_type.hpp"
#include <functional>
/** Various types of a pool. */
enum PoolType {

@ -156,6 +156,144 @@ void GfxFillRect(int left, int top, int right, int bottom, int colour, FillRectM
}
}
typedef std::pair<Point, Point> LineSegment;
/**
* Make line segments from a polygon defined by points, translated by an offset.
* Entirely horizontal lines (start and end at same Y coordinate) are skipped, as they are irrelevant to scanline conversion algorithms.
* Generated line segments always have the lowest Y coordinate point first, i.e. original direction is lost.
* @param shape The polygon to convert.
* @param offset Offset vector subtracted from all coordinates in the shape.
* @return Vector of undirected line segments.
*/
static std::vector<LineSegment> MakePolygonSegments(const std::vector<Point> &shape, Point offset)
{
std::vector<LineSegment> segments;
if (shape.size() < 3) return segments; // fewer than 3 will always result in an empty polygon
segments.reserve(shape.size());
/* Connect first and last point by having initial previous point be the last */
Point prev = shape.back();
prev.x -= offset.x;
prev.y -= offset.y;
for (Point pt : shape) {
pt.x -= offset.x;
pt.y -= offset.y;
/* Create segments for all non-horizontal lines in the polygon.
* The segments always have lowest Y coordinate first. */
if (prev.y > pt.y) {
segments.emplace_back(pt, prev);
} else if (prev.y < pt.y) {
segments.emplace_back(prev, pt);
}
prev = pt;
}
return segments;
}
/**
* Fill a polygon with colour.
* The odd-even winding rule is used, i.e. self-intersecting polygons will have holes in them.
* Left and top edges are inclusive, right and bottom edges are exclusive.
* @note For rectangles the GfxFillRect function will be faster.
* @pre dpi->zoom == ZOOM_LVL_NORMAL
* @param shape List of points on the polygon.
* @param colour An 8 bit palette index (FILLRECT_OPAQUE and FILLRECT_CHECKER) or a recolour spritenumber (FILLRECT_RECOLOUR).
* @param mode
* FILLRECT_OPAQUE: Fill the polygon with the specified colour.
* FILLRECT_CHECKER: Fill every other pixel with the specified colour, in a checkerboard pattern.
* FILLRECT_RECOLOUR: Apply a recolour sprite to every pixel in the polygon.
*/
void GfxFillPolygon(const std::vector<Point> &shape, int colour, FillRectMode mode)
{
Blitter *blitter = BlitterFactory::GetCurrentBlitter();
const DrawPixelInfo *dpi = _cur_dpi;
if (dpi->zoom != ZOOM_LVL_NORMAL) return;
std::vector<LineSegment> segments = MakePolygonSegments(shape, Point{ dpi->left, dpi->top });
/* Remove segments appearing entirely above or below the clipping area. */
segments.erase(std::remove_if(segments.begin(), segments.end(), [dpi](const LineSegment &s) { return s.second.y <= 0 || s.first.y >= dpi->height; }), segments.end());
/* Check that this wasn't an empty shape (all points on a horizontal line or outside clipping.) */
if (segments.empty()) return;
/* Sort the segments by first point Y coordinate. */
std::sort(segments.begin(), segments.end(), [](const LineSegment &a, const LineSegment &b) { return a.first.y < b.first.y; });
/* Segments intersecting current scanline. */
std::vector<LineSegment> active;
/* Intersection points with a scanline.
* Kept outside loop to avoid repeated re-allocations. */
std::vector<int> intersections;
/* Normal, reasonable polygons don't have many intersections per scanline. */
active.reserve(4);
intersections.reserve(4);
/* Scan through the segments and paint each scanline. */
int y = segments.front().first.y;
std::vector<LineSegment>::iterator nextseg = segments.begin();
while (!active.empty() || nextseg != segments.end()) {
/* Clean up segments that have ended. */
active.erase(std::remove_if(active.begin(), active.end(), [y](const LineSegment &s) { return s.second.y == y; }), active.end());
/* Activate all segments starting on this scanline. */
while (nextseg != segments.end() && nextseg->first.y == y) {
active.push_back(*nextseg);
++nextseg;
}
/* Check clipping. */
if (y < 0) {
++y;
continue;
}
if (y >= dpi->height) return;
/* Intersect scanline with all active segments. */
intersections.clear();
for (const LineSegment &s : active) {
const int sdx = s.second.x - s.first.x;
const int sdy = s.second.y - s.first.y;
const int ldy = y - s.first.y;
const int x = s.first.x + sdx * ldy / sdy;
intersections.push_back(x);
}
/* Fill between pairs of intersections. */
std::sort(intersections.begin(), intersections.end());
for (size_t i = 1; i < intersections.size(); i += 2) {
/* Check clipping. */
const int x1 = max(0, intersections[i - 1]);
const int x2 = min(intersections[i], dpi->width);
if (x2 < 0) continue;
if (x1 >= dpi->width) continue;
/* Fill line y from x1 to x2. */
void *dst = blitter->MoveTo(dpi->dst_ptr, x1, y);
switch (mode) {
default: // FILLRECT_OPAQUE
blitter->DrawRect(dst, x2 - x1, 1, (uint8)colour);
break;
case FILLRECT_RECOLOUR:
blitter->DrawColourMappingRect(dst, x2 - x1, 1, GB(colour, 0, PALETTE_WIDTH));
break;
case FILLRECT_CHECKER:
/* Fill every other pixel, offset such that the sum of filled pixels' X and Y coordinates is odd.
* This creates a checkerboard effect. */
for (int x = (x1 + y) & 1; x < x2 - x1; x += 2) {
blitter->SetPixel(dst, x, 0, (uint8)colour);
}
break;
}
}
/* Next line */
++y;
}
}
/**
* Check line clipping by using a linear equation and draw the visible part of
* the line given by x/y and x2/y2.

@ -118,6 +118,7 @@ int DrawStringMultiLine(int left, int right, int top, int bottom, StringID str,
void DrawCharCentered(uint32 c, int x, int y, TextColour colour);
void GfxFillRect(int left, int top, int right, int bottom, int colour, FillRectMode mode = FILLRECT_OPAQUE);
void GfxFillPolygon(const std::vector<Point> &shape, int colour, FillRectMode mode = FILLRECT_OPAQUE);
void GfxDrawLine(int left, int top, int right, int bottom, int colour, int width = 1, int dash = 0);
void DrawBox(int x, int y, int dx1, int dy1, int dx2, int dy2, int dx3, int dy3);

@ -1395,7 +1395,9 @@ protected:
/** Sort industries by name */
static bool IndustryNameSorter(const Industry * const &a, const Industry * const &b)
{
return strnatcmp(a->GetCachedName(), b->GetCachedName()) < 0; // Sort by name (natural sorting).
int r = strnatcmp(a->GetCachedName(), b->GetCachedName()); // Sort by name (natural sorting).
if (r == 0) return a->index < b->index;
return r < 0;
}
/** Sort industries by type and name */

@ -640,9 +640,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Op Bestelling 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Musiek Volume
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Effek Volume
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAKS
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -614,9 +614,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}معدل2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}مستوى الصوت
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}مؤثرات الصوت
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}منخفض
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}مرتفع
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}-----

@ -633,9 +633,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Pertsonalizatua 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Musikaren Bolumena
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Efektuen Bolumena
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -952,9 +952,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Уласны 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Гучнасьць музыкі
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Гучнасьць эфэктаў
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}МІН
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}МАКС
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -641,9 +641,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Personalizado 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Volume da Música
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Volume dos Efeitos
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -641,9 +641,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Персонален 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Сила на музиката
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Сила на ефектите
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -644,9 +644,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Personalitzat 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Volum de la música
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Volum dels efectes
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MÍN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MÀX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -744,9 +744,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Proizvoljno 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Glasnoća glazbe
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Glasnoća zvukova
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -735,9 +735,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Volba 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Hlasitost hudby
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Hlasitost efektů
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -645,9 +645,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Custom 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Musik lydstyrke
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Effekt lydstyrke
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAKS
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -648,9 +648,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Aangepast 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Muziekvolume
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Effectenvolume
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -655,9 +655,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Custom 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Music Volume
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Effects Volume
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------
@ -1343,7 +1340,7 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL :Show extra info
STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Display the population of towns in their label on the map
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Thickness of lines in graphs: {STRING2}
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Width of the line in the graphs. A thin line is more precisely readable, a thicker line is easier to see and colours are easier to distinguish
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME :Show the NewGRF's name in the build vehicle window
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME :Show the NewGRF's name in the build vehicle window: {STRING2}
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME_HELPTEXT :Add a line to the build vehicle window, showing which NewGRF the selected vehicle comes from.
STR_CONFIG_SETTING_SHOW_TRAIN_LENGTH_IN_DETAILS :Show train length in details: {STRING2}
STR_CONFIG_SETTING_SHOW_TRAIN_LENGTH_IN_DETAILS_HELPTEXT :Show train length in the vehicle details window

@ -630,9 +630,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Custom 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Music Volume
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Effects Volume
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -648,9 +648,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Custom 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Music Volume
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Effects Volume
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------
@ -867,6 +864,7 @@ STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE :{BIG_FONT}{BLAC
STR_NEWS_NEW_VEHICLE_TYPE :{BIG_FONT}{BLACK}{ENGINE}
STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}New {STRING} now available! - {ENGINE}
STR_NEWS_SHOW_VEHICLE_GROUP_TOOLTIP :{BLACK}Open the group window focused on the vehicle's group
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} no longer accepts {STRING}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} no longer accepts {STRING} or {STRING}
@ -1311,6 +1309,7 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL :Show town popul
STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Display the population of towns in their label on the map
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Thickness of lines in graphs: {STRING}
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Width of the line in the graphs. A thin line is more precisely readable, a thicker line is easier to see and colors are easier to distinguish
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME_HELPTEXT :Add a line to the build vehicle window, showing which NewGRF the selected vehicle comes from.
STR_CONFIG_SETTING_LANDSCAPE :Landscape: {STRING}
STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Landscapes define basic gameplay scenarios with different cargos and town growth requirements. NewGRF and Game Scripts allow finer control though
@ -1322,8 +1321,8 @@ STR_CONFIG_SETTING_TERRAIN_TYPE :Terrain type: {
STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(TerraGenesis only) Hilliness of the landscape
STR_CONFIG_SETTING_INDUSTRY_DENSITY :Industry density: {STRING}
STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Set how many industries should be generated and what level should be maintained during the game
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximum distance from edge for Oil refineries: {STRING}
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Oil refineries are only constructed near the map border, that is at the coast for island maps
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximum distance from edge for Oil industries: {STRING}
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Limit for how far from the map border oil refineries and oil rigs can be constructed. On island maps this ensures they are near the coast. On maps larger than 256 tiles, this value is scaled up.
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Snow line height: {STRING}
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Control at what height snow starts in sub-arctic landscape. Snow also affects industry generation and town growth requirements
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Roughness of terrain: {STRING}
@ -1548,10 +1547,16 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Full
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Colored news appears in: {STRING}
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Year that the newspaper announcements get printed in color. Before this year, it uses monochrome black/white
STR_CONFIG_SETTING_STARTING_YEAR :Starting year: {STRING}
STR_CONFIG_SETTING_ENDING_YEAR :Scoring end year: {STRING}
STR_CONFIG_SETTING_ENDING_YEAR_HELPTEXT :Year the game ends for scoring purposes. At the end of this year, the company's score is recorded and the high-score screen is displayed, but the players can continue playing after that.{}If this is before the starting year, the high-score screen is never displayed.
STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM}
STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Never
STR_CONFIG_SETTING_SMOOTH_ECONOMY :Enable smooth economy (more, smaller changes): {STRING}
STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :When enabled, industry production changes more often, and in smaller steps. This setting has usually no effect, if industry types are provided by a NewGRF
STR_CONFIG_SETTING_ALLOW_SHARES :Allow buying shares from other companies: {STRING}
STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :When enabled, allow buying and selling of company shares. Shares will only be available for companies reaching a certain age
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimum company age to trade shares: {STRING}
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Set the minimum age of a company for others to be able to buy and sell shares from them.
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentage of leg profit to pay in feeder systems: {STRING}
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentage of income given to the intermediate legs in feeder systems, giving more control over the income
STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :When dragging, place signals every: {STRING}
@ -3115,6 +3120,8 @@ STR_TOWN_VIEW_RENAME_TOWN_BUTTON :Rename Town
# Town local authority window
STR_LOCAL_AUTHORITY_CAPTION :{WHITE}{TOWN} local authority
STR_LOCAL_AUTHORITY_ZONE :{BLACK}Zone
STR_LOCAL_AUTHORITY_ZONE_TOOLTIP :{BLACK}Show zone within local authority boundaries
STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Transport company ratings:
STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING}
STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Actions available:
@ -4161,6 +4168,13 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Select h
STR_AI_LIST_CANCEL :{BLACK}Cancel
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Don't change the script
STR_SCREENSHOT_CAPTION :{WHITE}Take a screenshot
STR_SCREENSHOT_SCREENSHOT :{BLACK}Normal screenshot
STR_SCREENSHOT_ZOOMIN_SCREENSHOT :{BLACK}Fully zoomed in screenshot
STR_SCREENSHOT_DEFAULTZOOM_SCREENSHOT :{BLACK}Default zoom screenshot
STR_SCREENSHOT_WORLD_SCREENSHOT :{BLACK}Whole map screenshot
STR_SCREENSHOT_HEIGHTMAP_SCREENSHOT :{BLACK}Heightmap screenshot
STR_SCREENSHOT_MINIMAP_SCREENSHOT :{BLACK}Minimap screenshot
# AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameters

@ -633,9 +633,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Propra 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Muzika Volumeno
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Efekta Volumeno
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAKS
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -697,9 +697,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Omatehtud 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Muusika helitugevus
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Efektide helitugevus
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}VÄHIM
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}SUURIM
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -618,9 +618,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Sjálvgjørdur 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Tónleika ljóðstyrki
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Effekt ljóðstyrki
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}:
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -648,9 +648,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Oma 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Musiikin voimakkuus
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Äänitehosteiden voimakkuus
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------
@ -1312,7 +1309,7 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL :Näytä kunnan
STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Näytä kuntien asukasluvut kartalla
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Viivojen paksuus kuvaajissa: {STRING}
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Viivan leveys kuvaajissa. Ohut viiva on tarkasti luettavissa kun taas paksumpi viiva on helpompi nähdä ja sen värit ovat helpommin havaittavissa
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME :Näytä NewGRF:n nimi liikennevälineikkunassa
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME :Näytä NewGRF:n nimi liikennevälineikkunassa: {STRING}
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME_HELPTEXT :Lisää liikennevälinevalikoimaikkunaan rivin, joka näyttää, mistä NewGRF:stä valittu liikenneväline on peräisin.
STR_CONFIG_SETTING_LANDSCAPE :Maasto: {STRING}
@ -3403,6 +3400,10 @@ STR_INDUSTRY_DIRECTORY_ITEM_PROD2 :{ORANGE}{INDUST
STR_INDUSTRY_DIRECTORY_ITEM_PROD3 :{ORANGE}{INDUSTRY} {STRING}, {STRING}, {STRING}
STR_INDUSTRY_DIRECTORY_ITEM_PRODMORE :{ORANGE}{INDUSTRY} {STRING}, {STRING}, {STRING} ja {NUM} muuta
STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Teollisuusmuotojen nimet - kohdista päänäkymä teollisuuslaitokseen napsauttamalla nimeä. Ctrl+Klik avaa uuden näkymäikkunan teollisuuslaitoksen sijaintiin
STR_INDUSTRY_DIRECTORY_ACCEPTED_CARGO_FILTER :{BLACK}Vastaanotettava rahti: {SILVER}{STRING}
STR_INDUSTRY_DIRECTORY_PRODUCED_CARGO_FILTER :{BLACK}Tuotettu rahti: {SILVER}{STRING}
STR_INDUSTRY_DIRECTORY_FILTER_ALL_TYPES :Kaikki rahtityypit
STR_INDUSTRY_DIRECTORY_FILTER_NONE :Ei mitään
# Industry view
STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTRY}

@ -649,9 +649,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Personnalisé 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Volume sonore
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Volume des effets sonores
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------
@ -1313,6 +1310,7 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL :Afficher la pop
STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Afficher la population des villes dans leur label sur la carte
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Épaisseur des lignes dans les graphiques{NBSP}: {STRING}
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Épaisseur de la ligne dans les graphiques. Une ligne fine est lisible plus précisément, une ligne épaisse est plus facile à voir et les couleurs sont plus facile à distinguer
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME_HELPTEXT :Ajoute une ligne à la fenêtre d'achat des véhicules, montrant de quel NewGRF provient le véhicule sélectionné.
STR_CONFIG_SETTING_LANDSCAPE :Paysage{NBSP}: {STRING}
STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Les paysages définissent les scénarios de jouabilité classique avec différentes marchandises et exigences pour la croissance des villes. Les NewGRFs et les scripts de jeux autorisent cependant un contrôle plus fin
@ -3402,6 +3400,10 @@ STR_INDUSTRY_DIRECTORY_ITEM_PROD2 :{ORANGE}{INDUST
STR_INDUSTRY_DIRECTORY_ITEM_PROD3 :{ORANGE}{INDUSTRY} {STRING}, {STRING}, {STRING}
STR_INDUSTRY_DIRECTORY_ITEM_PRODMORE :{ORANGE}{INDUSTRY} {STRING}, {STRING}, {STRING} et {NUM} autre{P "" s}...
STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Noms des industries - Cliquer sur un nom pour centrer la vue principale sur l'industrie. Ctrl-clic pour ouvrir une nouvelle vue sur l'industrie.
STR_INDUSTRY_DIRECTORY_ACCEPTED_CARGO_FILTER :{BLACK}Cargaison acceptée{NBSP}: {SILVER}{STRING}
STR_INDUSTRY_DIRECTORY_PRODUCED_CARGO_FILTER :{BLACK}Cargaison produite{NBSP}: {SILVER}{STRING}
STR_INDUSTRY_DIRECTORY_FILTER_ALL_TYPES :Tous les types de cargaison
STR_INDUSTRY_DIRECTORY_FILTER_NONE :Aucune
# Industry view
STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTRY}
@ -4182,6 +4184,7 @@ STR_SCREENSHOT_ZOOMIN_SCREENSHOT :{BLACK}Capture
STR_SCREENSHOT_DEFAULTZOOM_SCREENSHOT :{BLACK}Capture d'écran sans zoom
STR_SCREENSHOT_WORLD_SCREENSHOT :{BLACK}Capture d'écran de toute la carte
STR_SCREENSHOT_HEIGHTMAP_SCREENSHOT :{BLACK}Capture d'écran de la carte d'altitude
STR_SCREENSHOT_MINIMAP_SCREENSHOT :{BLACK}Capture d'écran de la mini-carte
# AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Paramètres

@ -838,9 +838,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Gnàthaichte 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Àirde a' chiùil
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Àirde nan èifeachdan fuaime
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}As lugha
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}As motha
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -649,9 +649,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Persoal 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Volume da música
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Volume dos efectos de son
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MÍN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MÁX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -649,9 +649,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Benutzerdef. 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Musiklautstärke
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Soundlautstärke
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -750,9 +750,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Προσαρμοσμένο 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Ένταση Μουσικής
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Ένταση Εφέ
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}ΕΛΑΧ
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}ΜΕΓ
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -654,9 +654,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}מותאם אישית 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}עוצמת מנגינת רקע
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}עוצמת הצלילים
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}מינ'
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}מקס'
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -711,9 +711,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Saját 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Zene Hangereje
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Hangok Hangereje
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -617,9 +617,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Sérval 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Tónlistarstyrkur
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Hljóðstyrkur
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}LÆGST
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}HÆST
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}:
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -642,9 +642,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Bebas 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Volume Musik
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Volume Efek
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAKS
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -639,9 +639,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Saincheaptha 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Airde Ceoil
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Airde na maisíochtaí
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}ÍOSTA
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}UASTA
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -650,9 +650,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Personale 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Volume musica
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Volume effetti
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -639,9 +639,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}カスタム2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}音楽音量
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}効果音音量
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}最小
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}最大
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -655,9 +655,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}사용자 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}음량
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}효과 음량
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}최소
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}최대
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------
@ -1343,6 +1340,8 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL :도시 이름
STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :도시 이름 옆에 도시의 인구 수를 표시합니다.
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :그래프 선의 두께: {STRING}
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :그래프의 선 두께를 설정합니다. 얇으면 자세히 볼 수 있고, 두꺼우면 눈에 확 들어오며 색상을 분간하기가 편해집니다.
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME :차량 구입 창에서 NewGRF의 이름을 보여주기: {STRING}
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME_HELPTEXT :차량 구입 창 맨 아래 줄에, 이 차량이 어떤 NewGRF에서 추가되는 지 해당 NewGRF의 이름을 표시해줍니다.
STR_CONFIG_SETTING_SHOW_TRAIN_LENGTH_IN_DETAILS :상세정보 화면에서 열차 길이 보이기: {STRING}
STR_CONFIG_SETTING_SHOW_TRAIN_LENGTH_IN_DETAILS_HELPTEXT :열차의 길이를 상세정보 화면에 표시할지 설정합니다.
STR_CONFIG_SETTING_SHOW_VEHICLE_GROUP_IN_DETAILS :상세정보에서 열차가 소속된 그룹 이름 보이기: {STRING}
@ -1369,9 +1368,6 @@ STR_CONFIG_SETTING_OPEN_VEHICLE_GUI_CLONE_SHARE_HELPTEXT :이 설정을
STR_CONFIG_SETTING_ADV_SIG_BRIDGE_TUN_MODES :고급 다리/터널 신호기 활성화: {STRING}
STR_CONFIG_SETTING_ADV_SIG_BRIDGE_TUN_MODES_HELPTEXT :다리와 터널 위 신호기 시뮬레이션 고급 모드를 활성화합니다. 이 설정을 끄면, 고급 모드에 있지 않은 다리와 터널을 고급 모드로 변경할 수 없지만 다른 플레이어는 이 설정을 켜서 고급 모드를 사용할 수 있습니다.
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME :차량 구입 창에서 NewGRF의 이름을 보여주기
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME_HELPTEXT :이 설정을 켜면 차량 구입 창의 하단에 선택한 차량이 어떤 NewGRF에서 추가된 차량인지 표시해줍니다
STR_CONFIG_SETTING_LANDSCAPE :지형: {STRING}
STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :지형에 따라 화물과 도시 성장 요구 조건이 다른 게임 플레이 시나리오가 만들어집니다. NewGRF과 게임 스크립트를 통해 세밀한 조절이 가능합니다.
STR_CONFIG_SETTING_LAND_GENERATOR :지형 만들기: {STRING}
@ -4073,6 +4069,10 @@ STR_INDUSTRY_DIRECTORY_ITEM_PROD2 :{ORANGE}{INDUST
STR_INDUSTRY_DIRECTORY_ITEM_PROD3 :{ORANGE}{INDUSTRY} {STRING}, {STRING}, {STRING}
STR_INDUSTRY_DIRECTORY_ITEM_PRODMORE :{ORANGE}{INDUSTRY} {STRING}, {STRING}, {STRING} 및 {NUM}종의 화물
STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}산업시설 이름 - 산업시설로 이동하려면 이름을 클릭하세요. CTRL+클릭하면 이 산업시설의 위치를 기준으로 새로운 외부 화면을 엽니다
STR_INDUSTRY_DIRECTORY_ACCEPTED_CARGO_FILTER :{BLACK}받는 화물: {SILVER}{STRING}
STR_INDUSTRY_DIRECTORY_PRODUCED_CARGO_FILTER :{BLACK}생산 화물: {SILVER}{STRING}
STR_INDUSTRY_DIRECTORY_FILTER_ALL_TYPES :모든 화물
STR_INDUSTRY_DIRECTORY_FILTER_NONE :없음
# Industry view
STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTRY}
@ -5048,6 +5048,7 @@ STR_SCREENSHOT_ZOOMIN_SCREENSHOT :{BLACK}최대
STR_SCREENSHOT_DEFAULTZOOM_SCREENSHOT :{BLACK}기본 확대 스크린 샷 (UI 없음)
STR_SCREENSHOT_WORLD_SCREENSHOT :{BLACK}지도 전체 스크린 샷
STR_SCREENSHOT_HEIGHTMAP_SCREENSHOT :{BLACK}높이맵 스크린 샷
STR_SCREENSHOT_MINIMAP_SCREENSHOT :{BLACK}미니맵 스크린 샷
# AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} 매개 변수

@ -830,9 +830,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Propria II
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Amplitudo Musicae
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Amplitido Sonorum
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -640,9 +640,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Pielāgotā 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Mūzikas skaļums
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Efektu skaļums
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAKS
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -834,9 +834,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Speciali 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Muzikos garsas
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Efektų garsas
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -648,9 +648,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Benotzerdéf. 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Musikvolume
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Volume vun den Effekter
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -621,9 +621,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Pilihan Diri 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Volum Muzik
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Volum Kesan Bunyi
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAKS
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -650,9 +650,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Egendefinert 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Musikkvolum
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Lydeffektvolum
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAKS
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -641,9 +641,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Eigendefinert 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Musikkvolum
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Lydeffektvolum
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAKS.
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -1027,9 +1027,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Własny 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Głośność muzyki
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Głośność efektów
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -647,9 +647,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Personaliz. 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Volume da Música
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Volume dos efeitos
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -640,9 +640,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Personale 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Volumul muzicii
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Volumul efectelor sonore
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -787,9 +787,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Пользоват. 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Громкость музыки
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Громкость звука
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}МИН
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}МАКС
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -827,9 +827,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Lični raspored 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Jačina muzike
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Jačina ambijenta
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}Tiho
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}Glasno
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -648,9 +648,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}自定义2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}音乐音量
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}音效音量
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -703,9 +703,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Vlastné 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Hlasitosť hudby
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Hlasitosť zvuk. efektov
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -792,9 +792,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Po meri 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Glasnost glasbe
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Glasnost zvokov
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -649,9 +649,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Personal 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Volumen música
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Volumen efectos
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MÍN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MÁX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -649,9 +649,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Personal 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Volumen música
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Volumen efectos
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MÍN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MÁX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -648,9 +648,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Personlig 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Musikvolym
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Effektvolym
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -634,9 +634,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}பாடல்பட்டியல் 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}ஒலி அளவு
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}ஒலியமைப்புகளின் அளவு
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}குறைந்தபட்ச
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}அதிகபட்ச
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -631,9 +631,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}กำหนดเอง 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}ระดับเสียงดนตรี
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}ระดับเสียงเอฟเฟกต์
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}ต่ำสุด
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}สูงสุด
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -639,9 +639,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}自訂二
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}背景音樂音量
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}音效音量
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}最小
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}最大
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -644,9 +644,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Özel 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Müzik Sesi
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Efekt Sesi
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}ASGARİ
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}AZAMİ
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -776,9 +776,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Набір 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Гучність музики
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Гучність ефектів
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}Мін.
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}Макс.
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -390,9 +390,6 @@ STR_PERFORMANCE_DETAIL_TOTAL :{BLACK}Пурӗ
############ End of order list
# Music window
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}ЧИ САХ(MIN)
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}ЧИ НУМ(MAX)
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -639,9 +639,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Oanpast 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Musykfolume
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Effektenfolume
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAKS
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -369,7 +369,6 @@ STR_PERFORMANCE_DETAIL_PERCENT :{WHITE}{NUM}%
############ End of order list
# Music window
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -612,9 +612,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Свое 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Гласност на музка
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Гласност на ефекти
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}МИН
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -338,7 +338,6 @@ STR_PERFORMANCE_DETAIL_PERCENT :{WHITE}{NUM}%
############ End of order list
# Music window
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -598,9 +598,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}सानुकूल २
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}संगीत आवाज
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}प्रभाव आवाज
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}कमी
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}अधिक
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -628,9 +628,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}انتخابی 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}شدت صدای موسیقی
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}شدت صدای محیط
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}کمینه
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}بیشینه
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -619,9 +619,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}اپنی مرضی کے مطابق 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}موسیقی کی آواز
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}اثرات کی آواز
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}کم
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}زیادہ
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -648,9 +648,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Tự Chọn 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Âm Lượng
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Hiệu Ứng Tiếng
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}Nhỏ
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}Lớn
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -639,9 +639,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Cyfaddas 2
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Lefel Sain Cerddoriaeth
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Lefel Sain Effeithiau
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}ISAF
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}UCHAF
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------

@ -743,12 +743,23 @@ struct MusicWindow : public Window {
}
case WID_M_MUSIC_VOL: case WID_M_EFFECT_VOL: {
int sw = ScaleGUITrad(slider_width);
int hsw = sw / 2;
DrawFrameRect(r.left + hsw, r.top + 2, r.right - hsw, r.bottom - 2, COLOUR_GREY, FR_LOWERED);
/* Draw a wedge indicating low to high volume level. */
const int ha = (r.bottom - r.top) / 5;
int wx1 = r.left, wx2 = r.right;
if (_current_text_dir == TD_RTL) std::swap(wx1, wx2);
const uint shadow = _colour_gradient[COLOUR_GREY][3];
const uint fill = _colour_gradient[COLOUR_GREY][6];
const uint light = _colour_gradient[COLOUR_GREY][7];
const std::vector<Point> wedge{ Point{wx1, r.bottom - ha}, Point{wx2, r.top + ha}, Point{wx2, r.bottom - ha} };
GfxFillPolygon(wedge, fill);
GfxDrawLine(wedge[0].x, wedge[0].y, wedge[2].x, wedge[2].y, light);
GfxDrawLine(wedge[1].x, wedge[1].y, wedge[2].x, wedge[2].y, _current_text_dir == TD_RTL ? shadow : light);
GfxDrawLine(wedge[0].x, wedge[0].y, wedge[1].x, wedge[1].y, shadow);
/* Draw a slider handle indicating current volume level. */
const int sw = ScaleGUITrad(slider_width);
byte volume = (widget == WID_M_MUSIC_VOL) ? _settings_client.music.music_vol : _settings_client.music.effect_vol;
if (_current_text_dir == TD_RTL) volume = 127 - volume;
int x = r.left + (volume * (r.right - r.left - sw) / 127);
const int x = r.left + (volume * (r.right - r.left - sw) / 127);
DrawFrameRect(x, r.top, x + sw, r.bottom, COLOUR_GREY, FR_NONE);
break;
}
@ -853,32 +864,14 @@ static const NWidgetPart _nested_music_window_widgets[] = {
NWidget(WWT_PANEL, COLOUR_GREY, -1), SetFill(1, 1), EndContainer(),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, WID_M_SLIDERS),
NWidget(NWID_HORIZONTAL), SetPIP(20, 20, 20),
NWidget(NWID_HORIZONTAL), SetPIP(4, 0, 4),
NWidget(NWID_VERTICAL),
NWidget(WWT_LABEL, COLOUR_GREY, -1), SetFill(1, 0), SetDataTip(STR_MUSIC_MUSIC_VOLUME, STR_NULL),
NWidget(WWT_EMPTY, COLOUR_GREY, WID_M_MUSIC_VOL), SetMinimalSize(67, 0), SetMinimalTextLines(1, 0), SetFill(1, 0), SetDataTip(0x0, STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_LABEL, COLOUR_GREY, -1), SetDataTip(STR_MUSIC_RULER_MIN, STR_NULL),
NWidget(WWT_LABEL, COLOUR_GREY, -1), SetDataTip(STR_MUSIC_RULER_MARKER, STR_NULL), SetFill(1, 0),
NWidget(WWT_LABEL, COLOUR_GREY, -1), SetDataTip(STR_MUSIC_RULER_MARKER, STR_NULL), SetFill(1, 0),
NWidget(WWT_LABEL, COLOUR_GREY, -1), SetDataTip(STR_MUSIC_RULER_MARKER, STR_NULL), SetFill(1, 0),
NWidget(WWT_LABEL, COLOUR_GREY, -1), SetDataTip(STR_MUSIC_RULER_MARKER, STR_NULL), SetFill(1, 0),
NWidget(WWT_LABEL, COLOUR_GREY, -1), SetDataTip(STR_MUSIC_RULER_MARKER, STR_NULL), SetFill(1, 0),
NWidget(WWT_LABEL, COLOUR_GREY, -1), SetDataTip(STR_MUSIC_RULER_MAX, STR_NULL),
EndContainer(),
NWidget(WWT_EMPTY, COLOUR_GREY, WID_M_MUSIC_VOL), SetMinimalSize(67, 0), SetPadding(2), SetMinimalTextLines(1, 0), SetFill(1, 0), SetDataTip(0x0, STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC),
EndContainer(),
NWidget(NWID_VERTICAL),
NWidget(WWT_LABEL, COLOUR_GREY, -1), SetFill(1, 0), SetDataTip(STR_MUSIC_EFFECTS_VOLUME, STR_NULL),
NWidget(WWT_EMPTY, COLOUR_GREY, WID_M_EFFECT_VOL), SetMinimalSize(67, 0), SetMinimalTextLines(1, 0), SetFill(1, 0), SetDataTip(0x0, STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_LABEL, COLOUR_GREY, -1), SetDataTip(STR_MUSIC_RULER_MIN, STR_NULL),
NWidget(WWT_LABEL, COLOUR_GREY, -1), SetDataTip(STR_MUSIC_RULER_MARKER, STR_NULL), SetFill(1, 0),
NWidget(WWT_LABEL, COLOUR_GREY, -1), SetDataTip(STR_MUSIC_RULER_MARKER, STR_NULL), SetFill(1, 0),
NWidget(WWT_LABEL, COLOUR_GREY, -1), SetDataTip(STR_MUSIC_RULER_MARKER, STR_NULL), SetFill(1, 0),
NWidget(WWT_LABEL, COLOUR_GREY, -1), SetDataTip(STR_MUSIC_RULER_MARKER, STR_NULL), SetFill(1, 0),
NWidget(WWT_LABEL, COLOUR_GREY, -1), SetDataTip(STR_MUSIC_RULER_MARKER, STR_NULL), SetFill(1, 0),
NWidget(WWT_LABEL, COLOUR_GREY, -1), SetDataTip(STR_MUSIC_RULER_MAX, STR_NULL),
EndContainer(),
NWidget(WWT_EMPTY, COLOUR_GREY, WID_M_EFFECT_VOL), SetMinimalSize(67, 0), SetPadding(2), SetMinimalTextLines(1, 0), SetFill(1, 0), SetDataTip(0x0, STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC),
EndContainer(),
EndContainer(),
EndContainer(),

@ -1039,6 +1039,7 @@ void SQGSWindow_Register(Squirrel *engine)
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SC_TAKE_DEFAULTZOOM, "WID_SC_TAKE_DEFAULTZOOM");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SC_TAKE_WORLD, "WID_SC_TAKE_WORLD");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SC_TAKE_HEIGHTMAP, "WID_SC_TAKE_HEIGHTMAP");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SC_TAKE_MINIMAP, "WID_SC_TAKE_MINIMAP");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_BACKGROUND, "WID_GO_BACKGROUND");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_CURRENCY_DROPDOWN, "WID_GO_CURRENCY_DROPDOWN");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_DISTANCE_DROPDOWN, "WID_GO_DISTANCE_DROPDOWN");

@ -532,10 +532,9 @@ static Track ChooseShipTrack(Ship *v, TileIndex tile, DiagDirection enterdir, Tr
* Get the available water tracks on a tile for a ship entering a tile.
* @param tile The tile about to enter.
* @param dir The entry direction.
* @param trackdir The trackdir the ship has on the old tile.
* @return The available trackbits on the next tile.
*/
static inline TrackBits GetAvailShipTracks(TileIndex tile, DiagDirection dir, Trackdir trackdir)
static inline TrackBits GetAvailShipTracks(TileIndex tile, DiagDirection dir)
{
TrackBits tracks = GetTileShipTrackStatus(tile) & DiagdirReachesTracks(dir);
@ -883,7 +882,7 @@ static void ShipController(Ship *v)
DiagDirection diagdir = DiagdirBetweenTiles(gp.old_tile, gp.new_tile);
assert(diagdir != INVALID_DIAGDIR);
tracks = GetAvailShipTracks(gp.new_tile, diagdir, v->GetVehicleTrackdir());
tracks = GetAvailShipTracks(gp.new_tile, diagdir);
if (tracks == TRACK_BIT_NONE) goto reverse_direction;
/* Choose a direction, and continue if we find one */

@ -203,7 +203,6 @@ enum TownRatingCheckType {
/** Special values for town list window for the data parameter of #InvalidateWindowData. */
enum TownDirectoryInvalidateWindowData {
TDIWD_FORCE_REBUILD,
TDIWD_FILTER_CHANGES, ///< The filename filter has changed (via the editbox)
TDIWD_POPULATION_CHANGE,
TDIWD_FORCE_RESORT,
};

@ -705,7 +705,14 @@ private:
this->towns.clear();
for (const Town *t : Town::Iterate()) {
this->towns.push_back(t);
if (this->string_filter.IsEmpty()) {
this->towns.push_back(t);
continue;
}
this->string_filter.ResetState();
this->string_filter.AddLine(t->GetCachedName());
if (this->string_filter.GetState()) this->towns.push_back(t);
}
this->towns.shrink_to_fit();
@ -964,7 +971,7 @@ public:
{
if (wid == WID_TD_FILTER) {
this->string_filter.SetFilterTerm(this->townname_editbox.text.buf);
this->InvalidateData(TDIWD_FILTER_CHANGES);
this->InvalidateData(TDIWD_FORCE_REBUILD);
}
}
@ -981,27 +988,6 @@ public:
this->towns.ForceRebuild();
break;
case TDIWD_FILTER_CHANGES:
if (this->string_filter.IsEmpty()) {
this->towns.ForceRebuild();
} else {
this->towns.clear();
for (const Town *t : Town::Iterate()) {
this->string_filter.ResetState();
this->string_filter.AddLine(t->GetCachedName());
if (this->string_filter.GetState()) this->towns.push_back(t);
}
this->towns.SetListing(this->last_sorting);
this->towns.ForceResort();
this->towns.Sort();
this->towns.shrink_to_fit();
this->towns.RebuildDone();
this->vscroll->SetCount((int)this->towns.size()); // Update scrollbar as well.
}
break;
case TDIWD_POPULATION_CHANGE:
if (this->towns.SortType() == 1) this->towns.ForceResort();
break;

Loading…
Cancel
Save