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); } } }