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) {