diff --git a/gpxsee.qrc b/gpxsee.qrc
index 34783f32..4848fef1 100644
--- a/gpxsee.qrc
+++ b/gpxsee.qrc
@@ -313,6 +313,7 @@
icons/map/marine/degaussing-line.png
icons/map/marine/nofishing-line.png
icons/map/marine/fishing-line.png
+ icons/map/marine/minefield-line.png
diff --git a/icons/map/marine/anchor-line.png b/icons/map/marine/anchor-line.png
index 43067ec8..27dfaabb 100644
Binary files a/icons/map/marine/anchor-line.png and b/icons/map/marine/anchor-line.png differ
diff --git a/icons/map/marine/cable-area-line.png b/icons/map/marine/cable-area-line.png
index f8ed6111..775eed1f 100644
Binary files a/icons/map/marine/cable-area-line.png and b/icons/map/marine/cable-area-line.png differ
diff --git a/icons/map/marine/fishing-line.png b/icons/map/marine/fishing-line.png
index 39602831..e613198f 100644
Binary files a/icons/map/marine/fishing-line.png and b/icons/map/marine/fishing-line.png differ
diff --git a/icons/map/marine/minefield-line.png b/icons/map/marine/minefield-line.png
new file mode 100644
index 00000000..91deabb4
Binary files /dev/null and b/icons/map/marine/minefield-line.png differ
diff --git a/icons/map/marine/pipeline-area-line.png b/icons/map/marine/pipeline-area-line.png
index ac80ec25..021516e9 100644
Binary files a/icons/map/marine/pipeline-area-line.png and b/icons/map/marine/pipeline-area-line.png differ
diff --git a/src/map/IMG/mapdata.h b/src/map/IMG/mapdata.h
index 668b474f..1ad4443b 100644
--- a/src/map/IMG/mapdata.h
+++ b/src/map/IMG/mapdata.h
@@ -33,7 +33,8 @@ public:
enum Flags {
OneWay = 1,
- Invert = 2
+ Invert = 2,
+ Direction = 4
};
/* QPointF insted of Coordinates for performance reasons (no need to
diff --git a/src/map/IMG/rastertile.cpp b/src/map/IMG/rastertile.cpp
index 527cbfe2..d4f616be 100644
--- a/src/map/IMG/rastertile.cpp
+++ b/src/map/IMG/rastertile.cpp
@@ -204,7 +204,9 @@ void RasterTile::drawLines(QPainter *painter,
for (int i = 0; i < lines.size(); i++) {
const MapData::Poly &poly = lines.at(i);
- const Style::Line &style = _data->style()->line(poly.type);
+ const Style::Line &style = _data->style()->line(
+ (poly.flags & MapData::Poly::Direction)
+ ? poly.type | 1<<20 : poly.type);
if (!style.img().isNull()) {
if (poly.flags & MapData::Poly::Invert)
diff --git a/src/map/IMG/rgnfile.cpp b/src/map/IMG/rgnfile.cpp
index 399d1db8..4b3cfd41 100644
--- a/src/map/IMG/rgnfile.cpp
+++ b/src/map/IMG/rgnfile.cpp
@@ -252,7 +252,9 @@ bool RGNFile::readLineInfo(Handle &hdl, quint32 size, MapData::Poly *line) const
if (!readUInt8(hdl, val))
return false;
- if (((val >> 3) & 3) & 2)
+ if ((val >> 3) & 3)
+ line->flags |= MapData::Poly::Direction;
+ if ((val >> 3) & 2)
line->flags |= MapData::Poly::Invert;
return true;
diff --git a/src/map/IMG/style.cpp b/src/map/IMG/style.cpp
index 310d33df..b3ba0c46 100644
--- a/src/map/IMG/style.cpp
+++ b/src/map/IMG/style.cpp
@@ -495,26 +495,41 @@ void Style::defaultLineStyle(qreal ratio)
_lines[0x10309] = Line(QPen(QColor(0x0e, 0x10, 0x87), 1, Qt::SolidLine));
_lines[0x10401] = Line(QImage(":/marine/cable.png"));
_lines[0x10402] = Line(QImage(":/marine/pipeline.png"));
+ _lines[0x10403] = Line(QPen(QColor(0xe7, 0x28, 0xe7), 2, Qt::DotLine));
_lines[0x10404] = Line(QImage(":/marine/fishing-farm-line.png"));
- _lines[0x10405] = Line(QImage(":/marine/pipeline-area-line.png"));
- _lines[0x10406] = Line(QImage(":/marine/cable-area-line.png"));
+ _lines[0x10405] = Line(QPen(QColor(0xe7, 0x28, 0xe7), 1, Qt::DashLine));
+ _lines[0x110405] = Line(QImage(":/marine/pipeline-area-line.png"));
+ _lines[0x10406] = Line(QPen(QColor(0xe7, 0x28, 0xe7), 1, Qt::DashLine));
+ _lines[0x110406] = Line(QImage(":/marine/cable-area-line.png"));
_lines[0x10407] = Line(QPen(QColor(0xa3, 0xa3, 0xa3), 1, Qt::DashLine));
_lines[0x10408] = Line(QPen(QColor(0xff, 0x40, 0x40), 1, Qt::DashLine));
_lines[0x10409] = Line(QPen(QColor(0, 0, 0), 1, Qt::DotLine));
+ _lines[0x1040b] = Line(QPen(QColor(0, 0, 0), 2, Qt::DashLine));
_lines[0x1040c] = Line(QPen(QColor(0, 0, 0), 2));
- _lines[0x10501] = Line(QImage(":/marine/noanchor-line.png"));
- _lines[0x10502] = Line(QImage(":/marine/nofishing-line.png"));
- _lines[0x10503] = Line(QImage(":/marine/entry-prohibited-line.png"));
+ _lines[0x10501] = Line(QPen(QColor(0xe7, 0x28, 0xe7), 1, Qt::DashLine));
+ _lines[0x110501] = Line(QImage(":/marine/noanchor-line.png"));
+ _lines[0x10502] = Line(QPen(QColor(0xe7, 0x28, 0xe7), 1, Qt::DashLine));
+ _lines[0x110502] = Line(QImage(":/marine/nofishing-line.png"));
+ _lines[0x10503] = Line(QPen(QColor(0xe7, 0x28, 0xe7), 1, Qt::DashLine));
+ _lines[0x110503] = Line(QImage(":/marine/entry-prohibited-line.png"));
_lines[0x10504] = Line(QPen(QColor(0xe7, 0x28, 0xe7), 1, Qt::DashLine));
- _lines[0x10505] = Line(QImage(":/marine/noanchor-line.png"));
- _lines[0x10506] = Line(QImage(":/marine/nature-reserve-line.png"));
- _lines[0x10507] = Line(QImage(":/marine/safety-zone-line.png"));
+ _lines[0x10505] = Line(QPen(QColor(0xe7, 0x28, 0xe7), 1, Qt::DashLine));
+ _lines[0x110505] = Line(QImage(":/marine/noanchor-line.png"));
+ _lines[0x10506] = Line(QPen(QColor(0x30, 0xa0, 0x1b), 1, Qt::DashLine));
+ _lines[0x110506] = Line(QImage(":/marine/nature-reserve-line.png"));
+ _lines[0x10507] = Line(QPen(QColor(0xe7, 0x28, 0xe7), 1, Qt::DashLine));
+ _lines[0x110507] = Line(QImage(":/marine/safety-zone-line.png"));
+ _lines[0x10508] = Line(QPen(QColor(0xff, 0x40, 0x40), 1, Qt::DashLine));
+ _lines[0x110508] = Line(QImage(":/marine/minefield-line.png"));
_lines[0x10601] = Line(QPen(QColor(0, 0, 0), 1, Qt::DashLine));
_lines[0x10602] = Line(QPen(QColor(0xfc, 0xb4, 0xfc), 2));
_lines[0x10603] = Line(QPen(QColor(0xe7, 0x28, 0xe7), 1.5, Qt::DashDotLine));
_lines[0x10604] = Line(QPen(QColor(0xe7, 0x28, 0xe7), 1, Qt::DashDotLine));
- _lines[0x10606] = Line(QImage(":/marine/anchor-line.png"));
- _lines[0x10608] = Line(QImage(":/marine/fishing-line.png"));
+ _lines[0x10606] = Line(QPen(QColor(0xe7, 0x28, 0xe7), 1, Qt::DashLine));
+ _lines[0x110606] = Line(QImage(":/marine/anchor-line.png"));
+ _lines[0x10608] = Line(QPen(QColor(0xe7, 0x28, 0xe7), 1, Qt::DashLine));
+ _lines[0x110608] = Line(QImage(":/marine/fishing-line.png"));
+ _lines[0x1060b] = Line(QPen(QColor(0xe7, 0x28, 0xe7), 1, Qt::DashDotDotLine));
_lines[0x1060c] = Line(QPen(QColor(0xe7, 0x28, 0xe7), 1, Qt::SolidLine));
_lines[0x1060d] = Line(QPen(QColor(0xeb, 0x49, 0xeb), 1, Qt::DashLine));
_lines[0x10611] = Line(QPen(QColor(0xeb, 0x49, 0xeb), 1, Qt::DashLine));