diff --git a/gpxsee.qrc b/gpxsee.qrc
index b749a107..38b2b309 100644
--- a/gpxsee.qrc
+++ b/gpxsee.qrc
@@ -144,42 +144,66 @@
icons/map/marine/buoy-white-green.png
icons/map/marine/buoy-white-red.png
icons/map/marine/buoy-white-yellow.png
+ icons/map/marine/buoy-white-yellow-white.png
icons/map/marine/buoy-green.png
icons/map/marine/buoy-green-white.png
+ icons/map/marine/buoy-green-white-green-white.png
icons/map/marine/buoy-green-black.png
icons/map/marine/buoy-green-red.png
+ icons/map/marine/buoy-green-red-green.png
+ icons/map/marine/buoy-green-red-green-red.png
icons/map/marine/buoy-red.png
icons/map/marine/buoy-red-white.png
+ icons/map/marine/buoy-red-white-red-white.png
icons/map/marine/buoy-red-black.png
icons/map/marine/buoy-red-green.png
+ icons/map/marine/buoy-red-green-red.png
+ icons/map/marine/buoy-red-green-red-green.png
icons/map/marine/buoy-yellow.png
icons/map/marine/buoy-yellow-white.png
+ icons/map/marine/buoy-yellow-white-yellow.png
icons/map/marine/buoy-yellow-black.png
+ icons/map/marine/buoy-yellow-black-yellow.png
+ icons/map/marine/buoy-yellow-red-yellow.png
icons/map/marine/buoy-black-white.png
icons/map/marine/buoy-black-red.png
+ icons/map/marine/buoy-black-red-black.png
icons/map/marine/buoy-black-green.png
icons/map/marine/buoy-black-yellow.png
+ icons/map/marine/buoy-black-yellow-black.png
icons/map/marine/beacon.png
icons/map/marine/beacon-white.png
icons/map/marine/beacon-white-black.png
icons/map/marine/beacon-white-green.png
icons/map/marine/beacon-white-red.png
- icons/map/marine/beacon-white-yellow.png
+ icons/map/marine/beacon-white-yellow.png
+ icons/map/marine/beacon-white-yellow-white.png
icons/map/marine/beacon-green.png
icons/map/marine/beacon-green-white.png
+ icons/map/marine/beacon-green-white-green-white.png
icons/map/marine/beacon-green-black.png
- icons/map/marine/beacon-green-red.png
+ icons/map/marine/beacon-green-red.png
+ icons/map/marine/beacon-green-red-green.png
+ icons/map/marine/beacon-green-red-green-red.png
icons/map/marine/beacon-red.png
icons/map/marine/beacon-red-white.png
+ icons/map/marine/beacon-red-white-red-white.png
icons/map/marine/beacon-red-black.png
icons/map/marine/beacon-red-green.png
+ icons/map/marine/beacon-red-green-red.png
+ icons/map/marine/beacon-red-green-red-green.png
icons/map/marine/beacon-yellow.png
icons/map/marine/beacon-yellow-white.png
+ icons/map/marine/beacon-yellow-white-yellow.png
icons/map/marine/beacon-yellow-black.png
+ icons/map/marine/beacon-yellow-black-yellow.png
+ icons/map/marine/beacon-yellow-red-yellow.png
icons/map/marine/beacon-black-white.png
icons/map/marine/beacon-black-red.png
+ icons/map/marine/beacon-black-red-black.png
icons/map/marine/beacon-black-green.png
icons/map/marine/beacon-black-yellow.png
+ icons/map/marine/beacon-black-yellow-black.png
icons/map/marine/rock-exposed.png
icons/map/marine/rock-dangerous.png
icons/map/marine/wreck.png
diff --git a/icons/map/marine/beacon-black-red-black.png b/icons/map/marine/beacon-black-red-black.png
new file mode 100644
index 00000000..184d3746
Binary files /dev/null and b/icons/map/marine/beacon-black-red-black.png differ
diff --git a/icons/map/marine/beacon-black-yellow-black.png b/icons/map/marine/beacon-black-yellow-black.png
new file mode 100644
index 00000000..79522e14
Binary files /dev/null and b/icons/map/marine/beacon-black-yellow-black.png differ
diff --git a/icons/map/marine/beacon-green-red-green-red.png b/icons/map/marine/beacon-green-red-green-red.png
new file mode 100644
index 00000000..2736df0a
Binary files /dev/null and b/icons/map/marine/beacon-green-red-green-red.png differ
diff --git a/icons/map/marine/beacon-green-red-green.png b/icons/map/marine/beacon-green-red-green.png
new file mode 100644
index 00000000..f3c0bdea
Binary files /dev/null and b/icons/map/marine/beacon-green-red-green.png differ
diff --git a/icons/map/marine/beacon-green-white-green-white.png b/icons/map/marine/beacon-green-white-green-white.png
new file mode 100644
index 00000000..9c21d6e8
Binary files /dev/null and b/icons/map/marine/beacon-green-white-green-white.png differ
diff --git a/icons/map/marine/beacon-red-green-red-green.png b/icons/map/marine/beacon-red-green-red-green.png
new file mode 100644
index 00000000..e33b743f
Binary files /dev/null and b/icons/map/marine/beacon-red-green-red-green.png differ
diff --git a/icons/map/marine/beacon-red-green-red.png b/icons/map/marine/beacon-red-green-red.png
new file mode 100644
index 00000000..e12f5e73
Binary files /dev/null and b/icons/map/marine/beacon-red-green-red.png differ
diff --git a/icons/map/marine/beacon-red-white-red-white.png b/icons/map/marine/beacon-red-white-red-white.png
new file mode 100644
index 00000000..c57538d2
Binary files /dev/null and b/icons/map/marine/beacon-red-white-red-white.png differ
diff --git a/icons/map/marine/beacon-white-yellow-white.png b/icons/map/marine/beacon-white-yellow-white.png
new file mode 100644
index 00000000..2e72f534
Binary files /dev/null and b/icons/map/marine/beacon-white-yellow-white.png differ
diff --git a/icons/map/marine/beacon-yellow-black-yellow.png b/icons/map/marine/beacon-yellow-black-yellow.png
new file mode 100644
index 00000000..d6112d53
Binary files /dev/null and b/icons/map/marine/beacon-yellow-black-yellow.png differ
diff --git a/icons/map/marine/beacon-yellow-red-yellow.png b/icons/map/marine/beacon-yellow-red-yellow.png
new file mode 100644
index 00000000..97631242
Binary files /dev/null and b/icons/map/marine/beacon-yellow-red-yellow.png differ
diff --git a/icons/map/marine/beacon-yellow-white-yellow.png b/icons/map/marine/beacon-yellow-white-yellow.png
new file mode 100644
index 00000000..3181f630
Binary files /dev/null and b/icons/map/marine/beacon-yellow-white-yellow.png differ
diff --git a/icons/map/marine/buoy-black-red-black.png b/icons/map/marine/buoy-black-red-black.png
new file mode 100644
index 00000000..9b6310d9
Binary files /dev/null and b/icons/map/marine/buoy-black-red-black.png differ
diff --git a/icons/map/marine/buoy-black-yellow-black.png b/icons/map/marine/buoy-black-yellow-black.png
new file mode 100644
index 00000000..0ff9be9b
Binary files /dev/null and b/icons/map/marine/buoy-black-yellow-black.png differ
diff --git a/icons/map/marine/buoy-green-red-green-red.png b/icons/map/marine/buoy-green-red-green-red.png
new file mode 100644
index 00000000..07093775
Binary files /dev/null and b/icons/map/marine/buoy-green-red-green-red.png differ
diff --git a/icons/map/marine/buoy-green-red-green.png b/icons/map/marine/buoy-green-red-green.png
new file mode 100644
index 00000000..ca78b2e4
Binary files /dev/null and b/icons/map/marine/buoy-green-red-green.png differ
diff --git a/icons/map/marine/buoy-green-white-green-white.png b/icons/map/marine/buoy-green-white-green-white.png
new file mode 100644
index 00000000..c5f0d776
Binary files /dev/null and b/icons/map/marine/buoy-green-white-green-white.png differ
diff --git a/icons/map/marine/buoy-red-green-red-green.png b/icons/map/marine/buoy-red-green-red-green.png
new file mode 100644
index 00000000..5a6bf7f2
Binary files /dev/null and b/icons/map/marine/buoy-red-green-red-green.png differ
diff --git a/icons/map/marine/buoy-red-green-red.png b/icons/map/marine/buoy-red-green-red.png
new file mode 100644
index 00000000..fb55915b
Binary files /dev/null and b/icons/map/marine/buoy-red-green-red.png differ
diff --git a/icons/map/marine/buoy-red-white-red-white.png b/icons/map/marine/buoy-red-white-red-white.png
new file mode 100644
index 00000000..12961e4c
Binary files /dev/null and b/icons/map/marine/buoy-red-white-red-white.png differ
diff --git a/icons/map/marine/buoy-white-yellow-white.png b/icons/map/marine/buoy-white-yellow-white.png
new file mode 100644
index 00000000..ba462786
Binary files /dev/null and b/icons/map/marine/buoy-white-yellow-white.png differ
diff --git a/icons/map/marine/buoy-yellow-black-yellow.png b/icons/map/marine/buoy-yellow-black-yellow.png
new file mode 100644
index 00000000..e482b13a
Binary files /dev/null and b/icons/map/marine/buoy-yellow-black-yellow.png differ
diff --git a/icons/map/marine/buoy-yellow-red-yellow.png b/icons/map/marine/buoy-yellow-red-yellow.png
new file mode 100644
index 00000000..63290e6f
Binary files /dev/null and b/icons/map/marine/buoy-yellow-red-yellow.png differ
diff --git a/icons/map/marine/buoy-yellow-white-yellow.png b/icons/map/marine/buoy-yellow-white-yellow.png
new file mode 100644
index 00000000..fc26f219
Binary files /dev/null and b/icons/map/marine/buoy-yellow-white-yellow.png differ
diff --git a/src/map/ENC/mapdata.cpp b/src/map/ENC/mapdata.cpp
index eb35853c..7c5d0adf 100644
--- a/src/map/ENC/mapdata.cpp
+++ b/src/map/ENC/mapdata.cpp
@@ -335,8 +335,8 @@ static uint color(const QList &list)
{
uint c = 0;
- for (int i = 0; i < list.size() && i < 2; i++)
- c |= list.at(i).toUInt() << (i * 8);
+ for (int i = 0; i < list.size() && i < 4; i++)
+ c |= list.at(i).toUInt() << (i * 4);
return c;
}
diff --git a/src/map/ENC/style.cpp b/src/map/ENC/style.cpp
index d2bc4062..0d1a4621 100644
--- a/src/map/ENC/style.cpp
+++ b/src/map/ENC/style.cpp
@@ -6,48 +6,72 @@
using namespace ENC;
using namespace Util;
+#define COLOR2(c1, c2) (((c2)<<4) | (c1))
+#define COLOR3(c1, c2, c3) (((c3)<<8) | ((c2)<<4) | (c1))
+#define COLOR4(c1, c2, c3, c4) (((c4)<<12) | ((c3)<<8) | ((c2)<<4) | (c1))
+
+#define PATH(name) ":/marine/" name ".png"
+#define PATH1(name, c1) ":/marine/" name "-" c1 ".png"
+#define PATH2(name, c1, c2) ":/marine/" name "-" c1 "-" c2 ".png"
+#define PATH3(name, c1, c2, c3) ":/marine/" name "-" c1 "-" c2 "-" c3 ".png"
+#define PATH4(name, c1, c2, c3, c4) ":/marine/" name "-" c1 "-" c2 "-" c3 "-" c4 ".png"
+
#define PNT(type, subtype, img, dx, dy) \
- _points[SUBTYPE((type), (subtype))] = Point(QImage(img), Small, QPoint(dx, dy));
+ _points[SUBTYPE((type), (subtype))] = Point(QImage(img), Small, QPoint((dx), (dy)));
#define COLORSET(type, name, dx, dy) \
- PNT(type, 0, ":/marine/" name ".png", dx, dy); \
- PNT(type, 1, ":/marine/" name "-white.png", dx, dy); \
- PNT(type, 2, ":/marine/" name ".png", dx, dy); \
- PNT(type, 3, ":/marine/" name "-red.png", dx, dy); \
- PNT(type, 4, ":/marine/" name "-green.png", dx, dy); \
- PNT(type, 5, ":/marine/" name ".png", dx, dy); \
- PNT(type, 6, ":/marine/" name "-yellow.png", dx, dy); \
- PNT(type, 7, ":/marine/" name ".png", dx, dy); \
- PNT(type, 8, ":/marine/" name ".png", dx, dy); \
- PNT(type, 9, ":/marine/" name "-yellow.png", dx, dy); \
- PNT(type, 10, ":/marine/" name ".png", dx, dy); \
- PNT(type, 11, ":/marine/" name "-yellow.png", dx, dy); \
- PNT(type, 12, ":/marine/" name ".png", dx, dy); \
- PNT(type, 13, ":/marine/" name ".png", dx, dy); \
- PNT(type, 0x201, ":/marine/" name "-white-black.png", dx, dy); \
- PNT(type, 0x301, ":/marine/" name "-white-red.png", dx, dy); \
- PNT(type, 0x401, ":/marine/" name "-white-green.png", dx, dy); \
- PNT(type, 0x601, ":/marine/" name "-white-yellow.png", dx, dy); \
- PNT(type, 0x901, ":/marine/" name "-white-yellow.png", dx, dy); \
- PNT(type, 0xb01, ":/marine/" name "-white-yellow.png", dx, dy); \
- PNT(type, 0x102, ":/marine/" name "-black-white.png", dx, dy); \
- PNT(type, 0x302, ":/marine/" name "-black-red.png", dx, dy); \
- PNT(type, 0x402, ":/marine/" name "-black-green.png", dx, dy); \
- PNT(type, 0x602, ":/marine/" name "-black-yellow.png", dx, dy); \
- PNT(type, 0x902, ":/marine/" name "-black-yellow.png", dx, dy); \
- PNT(type, 0xb02, ":/marine/" name "-black-yellow.png", dx, dy); \
- PNT(type, 0x103, ":/marine/" name "-red-white.png", dx, dy); \
- PNT(type, 0x203, ":/marine/" name "-red-black.png", dx, dy); \
- PNT(type, 0x403, ":/marine/" name "-red-green.png", dx, dy); \
- PNT(type, 0x104, ":/marine/" name "-green-white.png", dx, dy); \
- PNT(type, 0x204, ":/marine/" name "-green-black.png", dx, dy); \
- PNT(type, 0x304, ":/marine/" name "-green-red.png", dx, dy); \
- PNT(type, 0x106, ":/marine/" name "-yellow-white.png", dx, dy); \
- PNT(type, 0x109, ":/marine/" name "-yellow-white.png", dx, dy); \
- PNT(type, 0x10b, ":/marine/" name "-yellow-white.png", dx, dy); \
- PNT(type, 0x206, ":/marine/" name "-yellow-black.png", dx, dy); \
- PNT(type, 0x209, ":/marine/" name "-yellow-black.png", dx, dy); \
- PNT(type, 0x20b, ":/marine/" name "-yellow-black.png", dx, dy);
+ PNT(type, 0, PATH(name), dx, dy); \
+ PNT(type, 1, PATH1(name, "white"), dx, dy); \
+ PNT(type, 2, PATH(name), dx, dy); \
+ PNT(type, 3, PATH1(name, "red"), dx, dy); \
+ PNT(type, 4, PATH1(name, "green"), dx, dy); \
+ PNT(type, 5, PATH(name), dx, dy); \
+ PNT(type, 6, PATH1(name, "yellow"), dx, dy); \
+ PNT(type, 7, PATH(name), dx, dy); \
+ PNT(type, 8, PATH(name), dx, dy); \
+ PNT(type, 9, PATH1(name, "yellow"), dx, dy); \
+ PNT(type, 10, PATH(name), dx, dy); \
+ PNT(type, 11, PATH1(name, "yellow"), dx, dy); \
+ PNT(type, 12, PATH(name), dx, dy); \
+ PNT(type, 13, PATH(name), dx, dy); \
+ PNT(type, COLOR2(1, 2), PATH2(name, "white", "black"), dx, dy); \
+ PNT(type, COLOR2(1, 3), PATH2(name, "white", "red"), dx, dy); \
+ PNT(type, COLOR2(1, 4), PATH2(name, "white", "green"), dx, dy); \
+ PNT(type, COLOR2(1, 6), PATH2(name, "white", "yellow"), dx, dy); \
+ PNT(type, COLOR2(1, 9), PATH2(name, "white", "yellow"), dx, dy); \
+ PNT(type, COLOR2(1, 11), PATH2(name, "white", "yellow"), dx, dy); \
+ PNT(type, COLOR2(2, 1), PATH2(name, "black", "white"), dx, dy); \
+ PNT(type, COLOR2(2, 3), PATH2(name, "black", "red"), dx, dy); \
+ PNT(type, COLOR2(2, 4), PATH2(name, "black", "green"), dx, dy); \
+ PNT(type, COLOR2(2, 6), PATH2(name, "black", "yellow"), dx, dy); \
+ PNT(type, COLOR2(2, 9), PATH2(name, "black", "yellow"), dx, dy); \
+ PNT(type, COLOR2(2, 11), PATH2(name, "black", "yellow"), dx, dy); \
+ PNT(type, COLOR2(3, 1), PATH2(name, "red", "white"), dx, dy); \
+ PNT(type, COLOR2(3, 2), PATH2(name, "red", "black"), dx, dy); \
+ PNT(type, COLOR2(3, 4), PATH2(name, "red", "green"), dx, dy); \
+ PNT(type, COLOR2(4, 1), PATH2(name, "green", "white"), dx, dy); \
+ PNT(type, COLOR2(4, 2), PATH2(name, "green", "black"), dx, dy); \
+ PNT(type, COLOR2(4, 3), PATH2(name, "green", "red"), dx, dy); \
+ PNT(type, COLOR2(6, 1), PATH2(name, "yellow", "white"), dx, dy); \
+ PNT(type, COLOR2(9, 1), PATH2(name, "yellow", "white"), dx, dy); \
+ PNT(type, COLOR2(11, 1), PATH2(name, "yellow", "white"), dx, dy); \
+ PNT(type, COLOR2(6, 2), PATH2(name, "yellow", "black"), dx, dy); \
+ PNT(type, COLOR2(9, 2), PATH2(name, "yellow", "black"), dx, dy); \
+ PNT(type, COLOR2(11, 2), PATH2(name, "yellow", "black"), dx, dy); \
+ PNT(type, COLOR3(1, 6, 1), PATH3(name, "white", "yellow", "white"), dx, dy); \
+ PNT(type, COLOR3(1, 9, 1), PATH3(name, "white", "yellow", "white"), dx, dy); \
+ PNT(type, COLOR3(1, 11, 1), PATH3(name, "white", "yellow", "white"), dx, dy); \
+ PNT(type, COLOR3(2, 3, 2), PATH3(name, "black", "red", "black"), dx, dy); \
+ PNT(type, COLOR3(2, 6, 2), PATH3(name, "black", "yellow", "black"), dx, dy); \
+ PNT(type, COLOR3(3, 4, 3), PATH3(name, "red", "green", "red"), dx, dy); \
+ PNT(type, COLOR3(4, 3, 4), PATH3(name, "green", "red", "green"), dx, dy); \
+ PNT(type, COLOR3(6, 1, 6), PATH3(name, "yellow", "white", "yellow"), dx, dy); \
+ PNT(type, COLOR3(6, 2, 6), PATH3(name, "yellow", "black", "yellow"), dx, dy); \
+ PNT(type, COLOR3(6, 3, 6), PATH3(name, "yellow", "red", "yellow"), dx, dy); \
+ PNT(type, COLOR4(3, 1, 3, 1), PATH4(name, "red", "white", "red", "white"), dx, dy); \
+ PNT(type, COLOR4(3, 4, 3, 4), PATH4(name, "red", "green", "red", "green"), dx, dy); \
+ PNT(type, COLOR4(4, 1, 4, 1), PATH4(name, "green", "white", "green", "white"), dx, dy); \
+ PNT(type, COLOR4(4, 3, 4, 3), PATH4(name, "green", "red", "green", "red"), dx, dy);
static QImage railroad(qreal ratio)
{