diff --git a/.appveyor.yml b/.appveyor.yml
index d062ec65..a9ce6291 100644
--- a/.appveyor.yml
+++ b/.appveyor.yml
@@ -1,4 +1,4 @@
-version: 13.35.{build}
+version: 13.36.{build}
configuration:
- Release
diff --git a/gpxsee.pro b/gpxsee.pro
index 4b279f37..29183b9e 100644
--- a/gpxsee.pro
+++ b/gpxsee.pro
@@ -3,7 +3,7 @@ unix:!macx:!android {
} else {
TARGET = GPXSee
}
-VERSION = 13.35
+VERSION = 13.36
QT += core \
diff --git a/gpxsee.qrc b/gpxsee.qrc
index 8eca235c..1708da6f 100644
--- a/gpxsee.qrc
+++ b/gpxsee.qrc
@@ -214,6 +214,8 @@
icons/map/marine/24h-anchorage.png
icons/map/marine/dw-anchorage.png
icons/map/marine/tanker-anchorage.png
+ icons/map/marine/nature-reserve-line.png
+ icons/map/marine/sanctuary-line.png
diff --git a/icons/map/marine/anchorage.png b/icons/map/marine/anchorage.png
index e87bb9f5..f22d5d48 100644
Binary files a/icons/map/marine/anchorage.png and b/icons/map/marine/anchorage.png differ
diff --git a/icons/map/marine/anchoring-prohibited.png b/icons/map/marine/anchoring-prohibited.png
index 3463fa39..a115be6a 100644
Binary files a/icons/map/marine/anchoring-prohibited.png and b/icons/map/marine/anchoring-prohibited.png differ
diff --git a/icons/map/marine/beacon.png b/icons/map/marine/beacon.png
index d97883b9..36d054d2 100644
Binary files a/icons/map/marine/beacon.png and b/icons/map/marine/beacon.png differ
diff --git a/icons/map/marine/buoy.png b/icons/map/marine/buoy.png
index b32bfab2..159cd69c 100644
Binary files a/icons/map/marine/buoy.png and b/icons/map/marine/buoy.png differ
diff --git a/icons/map/marine/chimney.png b/icons/map/marine/chimney.png
index 2a1d45be..73998ab1 100644
Binary files a/icons/map/marine/chimney.png and b/icons/map/marine/chimney.png differ
diff --git a/icons/map/marine/crane.png b/icons/map/marine/crane.png
index 37c6fb71..b59a9a33 100644
Binary files a/icons/map/marine/crane.png and b/icons/map/marine/crane.png differ
diff --git a/icons/map/marine/dw-route-line.png b/icons/map/marine/dw-route-line.png
index 2bdf9232..ba5fed55 100644
Binary files a/icons/map/marine/dw-route-line.png and b/icons/map/marine/dw-route-line.png differ
diff --git a/icons/map/marine/flagstaff.png b/icons/map/marine/flagstaff.png
index 59a17aff..15d6978b 100644
Binary files a/icons/map/marine/flagstaff.png and b/icons/map/marine/flagstaff.png differ
diff --git a/icons/map/marine/fleeting-area.png b/icons/map/marine/fleeting-area.png
index 35a84c30..e05dab43 100644
Binary files a/icons/map/marine/fleeting-area.png and b/icons/map/marine/fleeting-area.png differ
diff --git a/icons/map/marine/fog-signal.png b/icons/map/marine/fog-signal.png
index 83288877..e038bb1c 100644
Binary files a/icons/map/marine/fog-signal.png and b/icons/map/marine/fog-signal.png differ
diff --git a/icons/map/marine/gauge.png b/icons/map/marine/gauge.png
index 6ce98d42..1bd38638 100644
Binary files a/icons/map/marine/gauge.png and b/icons/map/marine/gauge.png differ
diff --git a/icons/map/marine/light-yellow.png b/icons/map/marine/light-yellow.png
index 4b7ca018..de8ed414 100644
Binary files a/icons/map/marine/light-yellow.png and b/icons/map/marine/light-yellow.png differ
diff --git a/icons/map/marine/light.png b/icons/map/marine/light.png
index 8ff3dfdc..bbcf0172 100644
Binary files a/icons/map/marine/light.png and b/icons/map/marine/light.png differ
diff --git a/icons/map/marine/monument.png b/icons/map/marine/monument.png
index 66a07b26..f30ddc23 100644
Binary files a/icons/map/marine/monument.png and b/icons/map/marine/monument.png differ
diff --git a/icons/map/marine/mooring-buoy.png b/icons/map/marine/mooring-buoy.png
index 8d9c3462..c53f9a20 100644
Binary files a/icons/map/marine/mooring-buoy.png and b/icons/map/marine/mooring-buoy.png differ
diff --git a/icons/map/marine/nature-reserve-line.png b/icons/map/marine/nature-reserve-line.png
new file mode 100644
index 00000000..c677c355
Binary files /dev/null and b/icons/map/marine/nature-reserve-line.png differ
diff --git a/icons/map/marine/sanctuary-line.png b/icons/map/marine/sanctuary-line.png
new file mode 100644
index 00000000..33d5de51
Binary files /dev/null and b/icons/map/marine/sanctuary-line.png differ
diff --git a/icons/map/marine/spar-buoy.png b/icons/map/marine/spar-buoy.png
index 5c15a05e..4b6380cb 100644
Binary files a/icons/map/marine/spar-buoy.png and b/icons/map/marine/spar-buoy.png differ
diff --git a/icons/map/marine/tower.png b/icons/map/marine/tower.png
index dfee2e8b..757087bd 100644
Binary files a/icons/map/marine/tower.png and b/icons/map/marine/tower.png differ
diff --git a/icons/map/marine/windmotor.png b/icons/map/marine/windmotor.png
index 738daccd..3b3a7be5 100644
Binary files a/icons/map/marine/windmotor.png and b/icons/map/marine/windmotor.png differ
diff --git a/icons/map/marine/wreck-exposed.png b/icons/map/marine/wreck-exposed.png
index 21704e76..ce5c51c5 100644
Binary files a/icons/map/marine/wreck-exposed.png and b/icons/map/marine/wreck-exposed.png differ
diff --git a/lang/gpxsee_zh_CN.ts b/lang/gpxsee_zh_CN.ts
index 8e54b269..880de478 100644
--- a/lang/gpxsee_zh_CN.ts
+++ b/lang/gpxsee_zh_CN.ts
@@ -486,17 +486,17 @@
All
-
+ 所有图层
Raster only
-
+ 仅栅格层
Vector only
-
+ 仅矢量层
@@ -733,7 +733,7 @@
Layers
-
+ 图层
@@ -1692,7 +1692,7 @@
Detect pauses
-
+ 检测暂停
@@ -1796,7 +1796,7 @@
Detection:
-
+ 检测模式:
@@ -1821,7 +1821,7 @@
Pause detection
- 暂停检测
+ 检测暂停
@@ -1870,7 +1870,7 @@
Opacity:
- 透明度:
+ 不透明度:
@@ -1922,7 +1922,7 @@
Lightening:
-
+ 明亮度:
diff --git a/pkg/windows/gpxsee64.nsi b/pkg/windows/gpxsee64.nsi
index 38b9e872..d97fb058 100644
--- a/pkg/windows/gpxsee64.nsi
+++ b/pkg/windows/gpxsee64.nsi
@@ -49,7 +49,7 @@ Unicode true
; The name of the installer
Name "GPXSee"
; Program version
-!define VERSION "13.35"
+!define VERSION "13.36"
; The file to write
OutFile "GPXSee-${VERSION}_x64.exe"
diff --git a/src/map/ENC/mapdata.cpp b/src/map/ENC/mapdata.cpp
index 41c594e2..ad46b72a 100644
--- a/src/map/ENC/mapdata.cpp
+++ b/src/map/ENC/mapdata.cpp
@@ -178,14 +178,24 @@ static bool polygonPointCb(const MapData::Poly *polygon, void *context)
if (baseType == TSSLPT || baseType == RCTLPT || baseType == I_TRNBSN
|| baseType == BRIDGE || baseType == I_BRIDGE || baseType == BUAARE
- || baseType == RESARE || baseType == I_RESARE || baseType == LNDARE
- || baseType == LNDRGN
- || type == SUBTYPE(ACHARE, 2) || type == SUBTYPE(ACHARE, 3)
- || type == SUBTYPE(ACHARE, 9) || type == SUBTYPE(I_ACHARE, 2)
- || type == SUBTYPE(I_ACHARE, 3) || type == SUBTYPE(I_ACHARE, 9)
- || type == SUBTYPE(I_BERTHS, 6))
+ || baseType == LNDARE || baseType == LNDRGN
+ || type == SUBTYPE(ACHARE, 2) || type == SUBTYPE(I_ACHARE, 2)
+ || type == SUBTYPE(ACHARE, 3) || type == SUBTYPE(I_ACHARE, 3)
+ || type == SUBTYPE(ACHARE, 9) || type == SUBTYPE(I_ACHARE, 9)
+ || type == SUBTYPE(I_BERTHS, 6)
+ || type == SUBTYPE(RESARE, 1) || type == SUBTYPE(I_RESARE, 1)
+ || type == SUBTYPE(RESARE, 2) || type == SUBTYPE(I_RESARE, 2)
+ || type == SUBTYPE(RESARE, 4) || type == SUBTYPE(I_RESARE, 4)
+ || type == SUBTYPE(RESARE, 5) || type == SUBTYPE(I_RESARE, 5)
+ || type == SUBTYPE(RESARE, 6) || type == SUBTYPE(I_RESARE, 6)
+ || type == SUBTYPE(RESARE, 7) || type == SUBTYPE(I_RESARE, 7)
+ || type == SUBTYPE(RESARE, 9) || type == SUBTYPE(I_RESARE, 9)
+ || type == SUBTYPE(RESARE, 12) || type == SUBTYPE(I_RESARE, 12)
+ || type == SUBTYPE(RESARE, 17) || type == SUBTYPE(I_RESARE, 17)
+ || type == SUBTYPE(RESARE, 22) || type == SUBTYPE(I_RESARE, 22)
+ || type == SUBTYPE(RESARE, 23) || type == SUBTYPE(I_RESARE, 23))
points->append(MapData::Point(baseType, polygon->bounds().center(),
- polygon->attributes(), polygon->HUNI()));
+ polygon->attributes(), polygon->HUNI(), true));
return true;
}
@@ -285,14 +295,32 @@ static QString weed(uint type)
}
}
+static uint restrictionCategory(uint type, const MapData::Attributes &attr)
+{
+ uint catrea = attr.value(CATREA).toUInt();
+
+ if (!catrea) {
+ uint restrn = attr.value(
+ (type == RESARE) ? RESTRN : I_RESTRN).toUInt();
+
+ if (restrn == 1)
+ return 2;
+ else if (restrn == 7)
+ return 17;
+ else
+ return 0;
+ } else
+ return catrea;
+}
+
MapData::Point::Point(uint type, const Coordinates &c, const QString &label)
- : _type(SUBTYPE(type, 0)), _pos(c), _label(label)
+ : _type(SUBTYPE(type, 0)), _pos(c), _label(label), _polygon(false)
{
_id = ((quint64)order(_type))<<32 | (uint)qHash(c);
}
MapData::Point::Point(uint type, const Coordinates &c, const Attributes &attr,
- uint HUNI) : _pos(c), _attr(attr)
+ uint HUNI, bool polygon) : _pos(c), _attr(attr), _polygon(polygon)
{
uint subtype = 0;
@@ -328,10 +356,18 @@ MapData::Point::Point(uint type, const Coordinates &c, const Attributes &attr,
subtype = CATLIT;
else if (type == I_DISMAR)
subtype = CATDIS;
+ else if (type == I_BERTHS)
+ subtype = I_CATBRT;
+ else if (type == ACHARE)
+ subtype = CATACH;
+ else if (type == I_ACHARE)
+ subtype = I_CATACH;
QList list(_attr.value(subtype).split(','));
std::sort(list.begin(), list.end());
- _type = SUBTYPE(type, list.first().toUInt());
+ _type = (type == RESARE || type == I_RESARE)
+ ? SUBTYPE(type, restrictionCategory(type, _attr))
+ : SUBTYPE(type, list.first().toUInt());
_id = ((quint64)order(_type))<<32 | (uint)qHash(c);
_label = QString::fromLatin1(_attr.value(OBJNAM));
@@ -377,9 +413,7 @@ MapData::Poly::Poly(uint type, const Polygon &path, const Attributes &attr,
{
uint subtype = 0;
- if (type == RESARE || type == I_RESARE)
- subtype = CATREA;
- else if (type == ACHARE)
+ if (type == ACHARE)
subtype = CATACH;
else if (type == I_ACHARE)
subtype = I_CATACH;
@@ -389,17 +423,19 @@ MapData::Poly::Poly(uint type, const Polygon &path, const Attributes &attr,
subtype = CATMFA;
else if (type == I_BERTHS)
subtype = I_CATBRT;
- else if (type == RESARE || type == I_RESARE) {
- uint restr = _attr.value((type == RESARE) ? RESTRN : I_RESTRN).toUInt();
- if (restr == 1)
- subtype = 2;
- else if (restr == 7)
- subtype = 17;
+
+ switch (type) {
+ case DEPARE:
+ _type = SUBTYPE(type, depthLevel(_attr.value(DRVAL1).toDouble()));
+ break;
+ case RESARE:
+ case I_RESARE:
+ _type = SUBTYPE(type, restrictionCategory(type, attr));
+ break;
+ default:
+ _type = SUBTYPE(type, _attr.value(subtype).toUInt());
}
- _type = (type == DEPARE)
- ? SUBTYPE(DEPARE, depthLevel(_attr.value(DRVAL1).toDouble()))
- : SUBTYPE(type, _attr.value(subtype).toUInt());
}
MapData::Line::Line(uint type, const QVector &path,
diff --git a/src/map/ENC/mapdata.h b/src/map/ENC/mapdata.h
index 92e1b137..74de79bb 100644
--- a/src/map/ENC/mapdata.h
+++ b/src/map/ENC/mapdata.h
@@ -49,13 +49,15 @@ public:
class Point {
public:
- Point(uint type, const Coordinates &c, const Attributes &attr, uint HUNI);
+ Point(uint type, const Coordinates &c, const Attributes &attr,
+ uint HUNI, bool polygon = false);
Point(uint type, const Coordinates &s, const QString &label);
const Coordinates &pos() const {return _pos;}
uint type() const {return _type;}
const QString &label() const {return _label;}
const Attributes &attributes() const {return _attr;}
+ bool polygon() const {return _polygon;}
bool operator<(const Point &other) const
{return _id < other._id;}
@@ -66,6 +68,7 @@ public:
QString _label;
quint64 _id;
Attributes _attr;
+ bool _polygon;
};
MapData(const QString &path);
diff --git a/src/map/ENC/rastertile.cpp b/src/map/ENC/rastertile.cpp
index 91bccd5f..c0e57efb 100644
--- a/src/map/ENC/rastertile.cpp
+++ b/src/map/ENC/rastertile.cpp
@@ -277,7 +277,7 @@ void RasterTile::processPoints(QList &points,
double range = attr.value(VALNMR).toDouble();
if (attr.contains(SECTR1)
- || (range >= 6 && !(point.type() & 0xFFFF))) {
+ || (range > 6 && !(point.type() & 0xFFFF))) {
sectorLights.append(SectorLight(point.pos(), color,
attr.value(LITVIS).toUInt(), range,
attr.value(SECTR1).toDouble(), attr.value(SECTR2).toDouble()));
@@ -313,7 +313,7 @@ void RasterTile::processPoints(QList &points,
TextPointItem *item = new TextPointItem(pos + offset, label, fnt, img,
color, hColor, 0, 2, rotate);
if (item->isValid() && (slMap.contains(point.pos())
- || !item->collides(textItems))) {
+ || (point.polygon() && img) || !item->collides(textItems))) {
textItems.append(item);
if (lightsMap.contains(point.pos()))
lights.append(new TextPointItem(pos + _style->lightOffset(),
diff --git a/src/map/ENC/style.cpp b/src/map/ENC/style.cpp
index f39631c3..bf09ac79 100644
--- a/src/map/ENC/style.cpp
+++ b/src/map/ENC/style.cpp
@@ -70,17 +70,26 @@ void Style::polygonStyle()
_polygons[TYPE(DRGARE)] = Polygon(QBrush(QColor(0xa0, 0xa0, 0xff),
Qt::Dense4Pattern));
_polygons[TYPE(UNSARE)] = Polygon(QBrush(QColor(0x99, 0x99, 0x99)));
+ _polygons[SUBTYPE(RESARE, 1)] = Polygon(QImage(":/marine/safety-zone-line.png"));
+ _polygons[SUBTYPE(RESARE, 2)] = Polygon(QImage(":/marine/noanchor-line.png"));
+ _polygons[SUBTYPE(RESARE, 4)] = Polygon(QImage(":/marine/nature-reserve-line.png"));
+ _polygons[SUBTYPE(RESARE, 5)] = Polygon(QImage(":/marine/sanctuary-line.png"));
+ _polygons[SUBTYPE(RESARE, 6)] = Polygon(QImage(":/marine/sanctuary-line.png"));
+ _polygons[SUBTYPE(RESARE, 7)] = Polygon(QImage(":/marine/sanctuary-line.png"));
_polygons[SUBTYPE(RESARE, 9)] = Polygon(QBrush(QColor(0xff, 0x00, 0x00),
Qt::BDiagPattern));
- _polygons[SUBTYPE(RESARE, 2)] = Polygon(QImage(":/marine/noanchor-line.png"));
- _polygons[SUBTYPE(I_RESARE, 2)] = Polygon(QImage(":/marine/noanchor-line.png"));
- _polygons[SUBTYPE(RESARE, 17)] = Polygon(
- QImage(":/marine/entry-prohibited-line.png"));
- _polygons[SUBTYPE(I_RESARE, 17)] = Polygon(
- QImage(":/marine/entry-prohibited-line.png"));
_polygons[SUBTYPE(RESARE, 12)] = Polygon(QImage(":/marine/safety-zone-line.png"));
- _polygons[SUBTYPE(I_RESARE, 12)] = Polygon(QImage(":/marine/safety-zone-line.png"));
- _polygons[SUBTYPE(RESARE, 1)] = Polygon(QImage(":/marine/safety-zone-line.png"));
+ _polygons[SUBTYPE(RESARE, 17)] = Polygon(QImage(":/marine/entry-prohibited-line.png"));
+ _polygons[SUBTYPE(RESARE, 22)] = Polygon(QImage(":/marine/sanctuary-line.png"));
+ _polygons[SUBTYPE(RESARE, 23)] = Polygon(QImage(":/marine/nature-reserve-line.png"));
+ _polygons[SUBTYPE(I_RESARE, 1)] = _polygons[SUBTYPE(RESARE, 1)];
+ _polygons[SUBTYPE(I_RESARE, 2)] = _polygons[SUBTYPE(RESARE, 2)];
+ _polygons[SUBTYPE(I_RESARE, 4)] = _polygons[SUBTYPE(RESARE, 4)];
+ _polygons[SUBTYPE(I_RESARE, 9)] = _polygons[SUBTYPE(RESARE, 9)];
+ _polygons[SUBTYPE(I_RESARE, 12)] = _polygons[SUBTYPE(RESARE, 12)];
+ _polygons[SUBTYPE(I_RESARE, 17)] = _polygons[SUBTYPE(RESARE, 17)];
+ _polygons[SUBTYPE(I_RESARE, 22)] = _polygons[SUBTYPE(RESARE, 22)];
+ _polygons[SUBTYPE(I_RESARE, 23)] = _polygons[SUBTYPE(RESARE, 23)];
_polygons[SUBTYPE(ACHARE, 1)] = Polygon(QImage(":/marine/anchor-line.png"));
_polygons[SUBTYPE(ACHARE, 2)] = _polygons[SUBTYPE(ACHARE, 1)];
_polygons[SUBTYPE(ACHARE, 3)] = _polygons[SUBTYPE(ACHARE, 1)];
@@ -162,9 +171,14 @@ void Style::polygonStyle()
<< SUBTYPE(I_ACHARE, 2) << SUBTYPE(I_ACHARE, 3) << SUBTYPE(I_ACHARE, 4)
<< SUBTYPE(I_ACHARE, 5) << SUBTYPE(I_ACHARE, 6) << SUBTYPE(I_ACHARE, 7)
<< SUBTYPE(I_ACHARE, 8) << SUBTYPE(I_ACHARE, 9) << SUBTYPE(I_ACHARE, 10)
- << SUBTYPE(I_ACHARE, 11) << SUBTYPE(I_ACHARE, 12) << SUBTYPE(RESARE, 9)
- << SUBTYPE(RESARE, 2) << SUBTYPE(I_RESARE, 2) << SUBTYPE(RESARE, 17)
- << SUBTYPE(I_RESARE, 17) << SUBTYPE(RESARE, 12) << SUBTYPE(I_RESARE, 12)
+ << SUBTYPE(I_ACHARE, 11) << SUBTYPE(I_ACHARE, 12) << SUBTYPE(RESARE, 1)
+ << SUBTYPE(I_RESARE, 1) << SUBTYPE(RESARE, 2) << SUBTYPE(I_RESARE, 2)
+ << SUBTYPE(RESARE, 4) << SUBTYPE(I_RESARE, 4) << SUBTYPE(RESARE, 5)
+ << SUBTYPE(I_RESARE, 5) << SUBTYPE(RESARE, 6) << SUBTYPE(I_RESARE, 6)
+ << SUBTYPE(RESARE, 7) << SUBTYPE(I_RESARE, 7) << SUBTYPE(RESARE, 9)
+ << SUBTYPE(I_RESARE, 9) << SUBTYPE(RESARE, 12) << SUBTYPE(I_RESARE, 12)
+ << SUBTYPE(RESARE, 17) << SUBTYPE(I_RESARE, 17) << SUBTYPE(RESARE, 22)
+ << SUBTYPE(I_RESARE, 22) << SUBTYPE(RESARE, 23) << SUBTYPE(I_RESARE, 23)
<< SUBTYPE(RESARE, 1) << TYPE(CBLARE) << TYPE(PIPARE) << TYPE(PRCARE)
<< TYPE(I_TRNBSN) << SUBTYPE(MARKUL, 3) << TYPE(CONZNE);
}
@@ -382,6 +396,8 @@ void Style::pointStyle(qreal ratio)
_points[SUBTYPE(I_BERTHS, 6)] = Point(QImage(":/marine/fleeting-area.png"),
Small);
+ _points[SUBTYPE(I_BERTHS, 6)].setTextColor(QColor(0xeb, 0x49, 0xeb));
+ _points[SUBTYPE(I_BERTHS, 6)].setHaloColor(QColor());
_points[SUBTYPE(ACHARE, 2)] = Point(QImage(":/marine/dw-anchorage.png"),
Small);
_points[SUBTYPE(ACHARE, 3)] = Point(QImage(":/marine/tanker-anchorage.png"),
@@ -391,6 +407,30 @@ void Style::pointStyle(qreal ratio)
_points[SUBTYPE(I_ACHARE, 2)] = _points[SUBTYPE(ACHARE, 2)];
_points[SUBTYPE(I_ACHARE, 3)] = _points[SUBTYPE(ACHARE, 3)];
_points[SUBTYPE(I_ACHARE, 9)] = _points[SUBTYPE(ACHARE, 9)];
+ _points[SUBTYPE(RESARE, 1)].setTextColor(QColor(0xeb, 0x49, 0xeb));
+ _points[SUBTYPE(RESARE, 1)].setHaloColor(QColor());
+ _points[SUBTYPE(RESARE, 2)] = _points[SUBTYPE(RESARE, 1)];
+ _points[SUBTYPE(RESARE, 4)].setTextColor(QColor(0x30, 0xa0, 0x1b));
+ _points[SUBTYPE(RESARE, 4)].setHaloColor(QColor());
+ _points[SUBTYPE(RESARE, 5)] = _points[SUBTYPE(RESARE, 4)];
+ _points[SUBTYPE(RESARE, 6)] = _points[SUBTYPE(RESARE, 4)];
+ _points[SUBTYPE(RESARE, 7)] = _points[SUBTYPE(RESARE, 4)];
+ _points[SUBTYPE(RESARE, 9)] = _points[SUBTYPE(RESARE, 1)];
+ _points[SUBTYPE(RESARE, 12)] = _points[SUBTYPE(RESARE, 1)];
+ _points[SUBTYPE(RESARE, 17)] = _points[SUBTYPE(RESARE, 1)];
+ _points[SUBTYPE(RESARE, 22)] = _points[SUBTYPE(RESARE, 4)];
+ _points[SUBTYPE(RESARE, 23)] = _points[SUBTYPE(RESARE, 4)];
+ _points[SUBTYPE(I_RESARE, 1)] = _points[SUBTYPE(RESARE, 1)];
+ _points[SUBTYPE(I_RESARE, 2)] = _points[SUBTYPE(RESARE, 2)];
+ _points[SUBTYPE(I_RESARE, 4)] = _points[SUBTYPE(RESARE, 4)];
+ _points[SUBTYPE(I_RESARE, 5)] = _points[SUBTYPE(RESARE, 5)];
+ _points[SUBTYPE(I_RESARE, 6)] = _points[SUBTYPE(RESARE, 6)];
+ _points[SUBTYPE(I_RESARE, 7)] = _points[SUBTYPE(RESARE, 7)];
+ _points[SUBTYPE(I_RESARE, 9)] = _points[SUBTYPE(RESARE, 9)];
+ _points[SUBTYPE(I_RESARE, 12)] = _points[SUBTYPE(RESARE, 12)];
+ _points[SUBTYPE(I_RESARE, 17)] = _points[SUBTYPE(RESARE, 17)];
+ _points[SUBTYPE(I_RESARE, 22)] = _points[SUBTYPE(RESARE, 22)];
+ _points[SUBTYPE(I_RESARE, 23)] = _points[SUBTYPE(RESARE, 23)];
_points[SUBTYPE(SMCFAC, 7)] = Point(svg2img(":/POI/restaurant-11.svg",
ratio), Small);
diff --git a/src/map/IMG/lights.h b/src/map/IMG/lights.h
index c722f73e..c1265801 100644
--- a/src/map/IMG/lights.h
+++ b/src/map/IMG/lights.h
@@ -23,7 +23,8 @@ public:
};
Lights() : color(None), range(0) {}
- bool isSectorLight() const {return ((color && range) || !sectors.isEmpty());}
+ bool isSectorLight() const
+ {return ((color && range > 6) || !sectors.isEmpty());}
Color color;
quint32 range;
diff --git a/src/map/IMG/rastertile.cpp b/src/map/IMG/rastertile.cpp
index 515065fd..82664113 100644
--- a/src/map/IMG/rastertile.cpp
+++ b/src/map/IMG/rastertile.cpp
@@ -256,7 +256,7 @@ void RasterTile::drawSectorLights(QPainter *painter,
QRect rect(lightRect(pos, start.range ? start.range : 6));
- painter->setPen(QPen(Qt::black, 6, Qt::SolidLine,
+ painter->setPen(QPen(Qt::black, 6, Qt::SolidLine,
Qt::FlatCap));
painter->drawArc(rect, a1 * 16, as * 16);
painter->setPen(QPen(Style::color(start.color), 4,
@@ -274,15 +274,13 @@ void RasterTile::drawSectorLights(QPainter *painter,
}
}
} else {
- if (p->lights.color && p->lights.range) {
- QRect rect(lightRect(pos, p->lights.range));
+ QRect rect(lightRect(pos, p->lights.range));
- painter->setPen(QPen(Qt::black, 6, Qt::SolidLine, Qt::FlatCap));
- painter->drawArc(rect, 0, 360 * 16);
- painter->setPen(QPen(Style::color(p->lights.color), 4,
- Qt::SolidLine, Qt::FlatCap));
- painter->drawArc(rect, 0, 360 * 16);
- }
+ painter->setPen(QPen(Qt::black, 6, Qt::SolidLine, Qt::FlatCap));
+ painter->drawArc(rect, 0, 360 * 16);
+ painter->setPen(QPen(Style::color(p->lights.color), 4,
+ Qt::SolidLine, Qt::FlatCap));
+ painter->drawArc(rect, 0, 360 * 16);
}
}
}