From f5553377f95eb5cb16386b9673a24c1c85ee5cf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Sun, 4 May 2025 15:50:02 +0200 Subject: [PATCH] Use colored buoys/beacons in ENC maps --- gpxsee.qrc | 40 ++++++++ icons/map/marine/beacon-black-green.png | Bin 0 -> 282 bytes icons/map/marine/beacon-black-red.png | Bin 0 -> 277 bytes icons/map/marine/beacon-black-white.png | Bin 0 -> 278 bytes icons/map/marine/beacon-black-yellow.png | Bin 0 -> 278 bytes icons/map/marine/beacon-green-black.png | Bin 0 -> 283 bytes icons/map/marine/beacon-green-red.png | Bin 0 -> 290 bytes icons/map/marine/beacon-green-white.png | Bin 0 -> 286 bytes icons/map/marine/beacon-green.png | Bin 0 -> 281 bytes icons/map/marine/beacon-red-black.png | Bin 0 -> 277 bytes icons/map/marine/beacon-red-green.png | Bin 0 -> 289 bytes icons/map/marine/beacon-red-white.png | Bin 0 -> 284 bytes icons/map/marine/beacon-red.png | Bin 0 -> 278 bytes icons/map/marine/beacon-white-black.png | Bin 0 -> 277 bytes icons/map/marine/beacon-white-green.png | Bin 0 -> 285 bytes icons/map/marine/beacon-white-red.png | Bin 0 -> 281 bytes icons/map/marine/beacon-white-yellow.png | Bin 0 -> 279 bytes icons/map/marine/beacon-white.png | Bin 0 -> 275 bytes icons/map/marine/beacon-yellow-black.png | Bin 0 -> 276 bytes icons/map/marine/beacon-yellow-white.png | Bin 0 -> 280 bytes icons/map/marine/beacon-yellow.png | Bin 0 -> 275 bytes icons/map/marine/beacon.png | Bin 202 -> 266 bytes icons/map/marine/buoy-black-green.png | Bin 0 -> 327 bytes icons/map/marine/buoy-black-red.png | Bin 0 -> 328 bytes icons/map/marine/buoy-black-white.png | Bin 0 -> 291 bytes icons/map/marine/buoy-black-yellow.png | Bin 0 -> 324 bytes icons/map/marine/buoy-green-black.png | Bin 0 -> 336 bytes icons/map/marine/buoy-green-red.png | Bin 0 -> 352 bytes icons/map/marine/buoy-green-white.png | Bin 0 -> 349 bytes icons/map/marine/buoy-green.png | Bin 0 -> 332 bytes icons/map/marine/buoy-red-black.png | Bin 0 -> 330 bytes icons/map/marine/buoy-red-green.png | Bin 0 -> 343 bytes icons/map/marine/buoy-red-white.png | Bin 0 -> 338 bytes icons/map/marine/buoy-red.png | Bin 0 -> 332 bytes icons/map/marine/buoy-white-black.png | Bin 0 -> 320 bytes icons/map/marine/buoy-white-green.png | Bin 0 -> 338 bytes icons/map/marine/buoy-white-red.png | Bin 0 -> 341 bytes icons/map/marine/buoy-white-yellow.png | Bin 0 -> 331 bytes icons/map/marine/buoy-white.png | Bin 0 -> 324 bytes icons/map/marine/buoy-yellow-black.png | Bin 0 -> 324 bytes icons/map/marine/buoy-yellow-white.png | Bin 0 -> 331 bytes icons/map/marine/buoy-yellow.png | Bin 0 -> 330 bytes src/map/ENC/mapdata.cpp | 28 +++++- src/map/ENC/style.cpp | 112 +++++++++++++++++------ 44 files changed, 150 insertions(+), 30 deletions(-) create mode 100644 icons/map/marine/beacon-black-green.png create mode 100644 icons/map/marine/beacon-black-red.png create mode 100644 icons/map/marine/beacon-black-white.png create mode 100644 icons/map/marine/beacon-black-yellow.png create mode 100644 icons/map/marine/beacon-green-black.png create mode 100644 icons/map/marine/beacon-green-red.png create mode 100644 icons/map/marine/beacon-green-white.png create mode 100644 icons/map/marine/beacon-green.png create mode 100644 icons/map/marine/beacon-red-black.png create mode 100644 icons/map/marine/beacon-red-green.png create mode 100644 icons/map/marine/beacon-red-white.png create mode 100644 icons/map/marine/beacon-red.png create mode 100644 icons/map/marine/beacon-white-black.png create mode 100644 icons/map/marine/beacon-white-green.png create mode 100644 icons/map/marine/beacon-white-red.png create mode 100644 icons/map/marine/beacon-white-yellow.png create mode 100644 icons/map/marine/beacon-white.png create mode 100644 icons/map/marine/beacon-yellow-black.png create mode 100644 icons/map/marine/beacon-yellow-white.png create mode 100644 icons/map/marine/beacon-yellow.png create mode 100644 icons/map/marine/buoy-black-green.png create mode 100644 icons/map/marine/buoy-black-red.png create mode 100644 icons/map/marine/buoy-black-white.png create mode 100644 icons/map/marine/buoy-black-yellow.png create mode 100644 icons/map/marine/buoy-green-black.png create mode 100644 icons/map/marine/buoy-green-red.png create mode 100644 icons/map/marine/buoy-green-white.png create mode 100644 icons/map/marine/buoy-green.png create mode 100644 icons/map/marine/buoy-red-black.png create mode 100644 icons/map/marine/buoy-red-green.png create mode 100644 icons/map/marine/buoy-red-white.png create mode 100644 icons/map/marine/buoy-red.png create mode 100644 icons/map/marine/buoy-white-black.png create mode 100644 icons/map/marine/buoy-white-green.png create mode 100644 icons/map/marine/buoy-white-red.png create mode 100644 icons/map/marine/buoy-white-yellow.png create mode 100644 icons/map/marine/buoy-white.png create mode 100644 icons/map/marine/buoy-yellow-black.png create mode 100644 icons/map/marine/buoy-yellow-white.png create mode 100644 icons/map/marine/buoy-yellow.png diff --git a/gpxsee.qrc b/gpxsee.qrc index 469cea0e..b749a107 100644 --- a/gpxsee.qrc +++ b/gpxsee.qrc @@ -139,7 +139,47 @@ icons/map/marine/light-major.png icons/map/marine/buoy.png + icons/map/marine/buoy-white.png + icons/map/marine/buoy-white-black.png + 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-green.png + icons/map/marine/buoy-green-white.png + icons/map/marine/buoy-green-black.png + icons/map/marine/buoy-green-red.png + icons/map/marine/buoy-red.png + icons/map/marine/buoy-red-white.png + icons/map/marine/buoy-red-black.png + icons/map/marine/buoy-red-green.png + icons/map/marine/buoy-yellow.png + icons/map/marine/buoy-yellow-white.png + icons/map/marine/buoy-yellow-black.png + icons/map/marine/buoy-black-white.png + icons/map/marine/buoy-black-red.png + icons/map/marine/buoy-black-green.png + icons/map/marine/buoy-black-yellow.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-green.png + icons/map/marine/beacon-green-white.png + icons/map/marine/beacon-green-black.png + icons/map/marine/beacon-green-red.png + icons/map/marine/beacon-red.png + icons/map/marine/beacon-red-white.png + icons/map/marine/beacon-red-black.png + icons/map/marine/beacon-red-green.png + icons/map/marine/beacon-yellow.png + icons/map/marine/beacon-yellow-white.png + icons/map/marine/beacon-yellow-black.png + icons/map/marine/beacon-black-white.png + icons/map/marine/beacon-black-red.png + icons/map/marine/beacon-black-green.png + icons/map/marine/beacon-black-yellow.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-green.png b/icons/map/marine/beacon-black-green.png new file mode 100644 index 0000000000000000000000000000000000000000..63bf20cbfdc264524399ac145a5c367aaa0be3ca GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp@KrGI|1|%;mJK6}O7>k44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d72G^}9Gu0R{01Y44~ zy9!vY3r?)vGaKoQOYkH})6mDfR-(Me-=1yHci)5S5w;`G}PN3H_~9NumHxBmNA zhbZp$DG1ZQ+b7Dk$k$`(L=HvIj3yP^?TaiKjjlJg-dLcopuIZ$#ChAj^^O{UOy<5Z z*6uN%x2rn)N%fQ^IeSh7f1P&kh)(|#75_`GcW;c+37k}X?C7DirnhQL4bow9&Vnac ST!HRpVDNPHb6Mw<&;$UnN?V)& literal 0 HcmV?d00001 diff --git a/icons/map/marine/beacon-black-red.png b/icons/map/marine/beacon-black-red.png new file mode 100644 index 0000000000000000000000000000000000000000..b1c483d1db0c36b0b2afbbacb019e1ad26e33fb2 GIT binary patch literal 277 zcmeAS@N?(olHy`uVBq!ia0vp@KrGI|1|%;mJK6}O7>k44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d72G^}9Gu0R{01Y44~ zy9!vY3r?)vGaKoQOYkH})6mDfR-(Me-=1yC@@)5S5w;`G}PN3I3~9`BUj|C?ox zbT{8}ZRMPIEjV-bBrzeS7L|u;9-E#YHDPzSw>42o>;?CV9gpNb?b`SK`03ZuCpgy6 z{km@LwC5V0krjpguYKk44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d72G^}9Gu0R{01Y44~ zy9!vY3r?)vGaKoQOYkH})6mDfR-(Me-=1yC^8)5S5w;`G}o2l);ta5%qw^uK=N z$=j(a9cP+v2l}z;Xs%V_W=zmm^sLKsEo6EUH$C?VV=d!WEy>!IHP)~G>Q$Whl+mxjc$&~DYBPxA^luBceE#%$uuo4j)zEL25Ol>LDg OGkCiCxvXk44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d72G^}9Gu0R{01Y44~ zy9!vY3r?)vGaKoQOYkH})6mDfR-(Me-=1yC^8)5S5w;`G}PN4^6J9NFUk|0hj; zXC!pwT=VTfKQ(oGN#+bKa7~GOOg1Qx>J0iAf1xJk`nYfbH~QbCvm1_p}2o OX7F_Nb6Mw<&;$T%hgwbm literal 0 HcmV?d00001 diff --git a/icons/map/marine/beacon-green-black.png b/icons/map/marine/beacon-green-black.png new file mode 100644 index 0000000000000000000000000000000000000000..803a56e3ed1fd590ec370f982dc1a995da877e9d GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp@KrGI|1|%;mJK6}O7>k44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d72G^}9Gu0R{01Y44~ zy9!vY3r?)vGaKoQOYkH})6mDfR-(Me-=1yHca)5S5w;`G}PORfV3Jd?ZRum1P1 z4RMGSDyY?wv~m?NDARF~nOQJF#YEwxXmp?t@5Iwyw~ikz*NeY#Aaj*L`)og%UzL0B z&t7A2Z^qB3YX#p2PFnQQ#y|A-q~jX>DU;M+J}wCBKI$Dcr*7khpIhFlF*S(y6*~(m TC`rBq+RotV>gTe~DWM4ftMXf% literal 0 HcmV?d00001 diff --git a/icons/map/marine/beacon-green-red.png b/icons/map/marine/beacon-green-red.png new file mode 100644 index 0000000000000000000000000000000000000000..483ef81db6776dc614248b3b37c149d37dd58598 GIT binary patch literal 290 zcmeAS@N?(olHy`uVBq!ia0vp@KrGI|1|%;mJK6}O7>k44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d72G^}9Gu0R{01Y44~ zy9!vY3r?)vGaKoQOYkH})6mDfR-(Me-=1yHck)5S5w;`G}PN3H_~9Nuofm;e30 z#eVICShbF=vL)B6gmP6(0uQySBnqfxR(j5oRXC^h^2X_>>G$n62uP=Faw+tDRJQfk zt0zbA?*Gm{W!Ij%#z{xB^Y50eK3Z<#=$Mz_mlNN-@YD)^@9JfCxw`+P;KesW bj0c$SE83~;ynlH=&=Cxtu6{1-oD!Mk44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d72G^}9Gu0R{01Y44~ zy9!vY3r?)vGaKoQOYkH})6mDfR-(Me-=1yHcm)5S5w;`G}PN4^6J9NFS>TmR4h zrZKrnlGFLigLOqt*_<0$m0DC1g;ZYd6n)@uV(S{6-z|US9&$?;dgytJO@HDpZtq@r z{{3IYn<-`2mLz?+RsH_SwEGuX=kmt3zP+ij-MuKof0FLr>CvBNU98rb))6+FgTbo$ Xii65q=HyPG0~kDA{an^LB{Ts5h2dUm literal 0 HcmV?d00001 diff --git a/icons/map/marine/beacon-green.png b/icons/map/marine/beacon-green.png new file mode 100644 index 0000000000000000000000000000000000000000..36e522dc2fecd8a518364572df87d7f62b832d74 GIT binary patch literal 281 zcmeAS@N?(olHy`uVBq!ia0vp@KrGI|1|%;mJK6}O7>k44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d72G^}9Gu0R{01Y44~ zy9!vY3r?)vGaKoQOYkH})6mDfR-(Me-=1yHcS)5S5w;`G}PORfV3Jd?ZRum1P1 z4RMH-DyY?o+;l|1piE^-gUgOdDkiRzHg8Xw$uRM>*RA7U%j4oBRxn#Fh*c1&^HTqH zhU;-}zTIBaN48!;Ci9-JEc4D!n&NJBa`KmAi`5AqC#fyx7c;ZJp(e<%=ZvtkU{09& QDWKg9p00i_>zopr0MLF{YybcN literal 0 HcmV?d00001 diff --git a/icons/map/marine/beacon-red-black.png b/icons/map/marine/beacon-red-black.png new file mode 100644 index 0000000000000000000000000000000000000000..b96ea97c151ae06c5577ca85e512163aec1ebab2 GIT binary patch literal 277 zcmeAS@N?(olHy`uVBq!ia0vp@KrGI|1|%;mJK6}O7>k44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d72G^}9Gu0R{01Y44~ zy9!vY3r?)vGaKoQOYkH})6mDfR-(Me-=1yC@@)5S5w;`G}PN4^6JJWa0u|38?y z;k3`LE;*aG3I4qiPOBVRCaL&zsZ_`FSn#B*dld2hLU?ohjTOdQqAG1~|GsN2`FQL1 zJ=Lq9R!>=yv**O)4Z4+QK6&tcQmNf19lOEBbFMKPw{J(rR2PO14E5X0)F;?UZ~*OP N@O1TaS?83{1OOFQTAu&_ literal 0 HcmV?d00001 diff --git a/icons/map/marine/beacon-red-green.png b/icons/map/marine/beacon-red-green.png new file mode 100644 index 0000000000000000000000000000000000000000..724823717cc32ddace5240b995f666531b1e9a19 GIT binary patch literal 289 zcmeAS@N?(olHy`uVBq!ia0vp@KrGI|1|%;mJK6}O7>k44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d72G^}9Gu0R{01Y44~ zy9!vY3r?)vGaKoQOYkH})6mDfR-(Me-=1yHcU)5S5w;`G}PN3H`3Jl<`;FaN8* zHD4`dI%jOJ^@%>QmMq_nqfk44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d72G^}9Gu0R{01Y44~ zy9!vY3r?)vGaKoQOYkH})6mDfR-(Me-=1yHcq)5S5w;`G}PN3H_~9Nule|2K!9 z(9^b<{WYL$jrvO83mu9<9zu3aD%En!EEu%HEv{)lUA|I2qJwvqr(C6eT7LB2`>N&7 z1H+7D;;Qdi@3>k&Wyz^Il`*-QYS+Gb@V)h{I_sCNvvcXWnZ2#YTuh3U7k44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d72G^}9Gu0R{01Y44~ zy9!vY3r?)vGaKoQOYkH})6mDfR-(Me-=1yC^8)5S5w;`G}PN3H`3Jl<{p{vQ5TG2T6IlKhX(nBXL>G({ybNag15qyvo;wsr;EI>+)d{bcVIWVdI<;|)t^&Uiaf=8b3789#BIi$T|W4mt@dRe38h>|iLJXr}&m<8@b{ O#SEUVelF{r5}E*aUtCxK literal 0 HcmV?d00001 diff --git a/icons/map/marine/beacon-white-black.png b/icons/map/marine/beacon-white-black.png new file mode 100644 index 0000000000000000000000000000000000000000..7c48f3dfb05684d8f9bb42cdc417962f26fe7e80 GIT binary patch literal 277 zcmeAS@N?(olHy`uVBq!ia0vp@KrGI|1|%;mJK6}O7>k44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d72G^}9Gu0R{01Y44~ zy9!vY3r?)vGaKoQOYkH})6mDfR-(Me-=1yC@@)5S5w;`G}ohI|JUc$nXI{ogO~ za+ioEuO_p%xQ(KR&S}MMOblNbZ_7Oov+?7dxjJ;s#uZ9Cw=`bfvT4tzpF6(4pVM{p z_4&Uu!q1nooj4rxR(ON@`N(;1J>@?9%3If@>LoSDFe2s&^Jk44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d72G^}9Gu0R{01Y44~ zy9!vY3r?)vGaKoQOYkH})6mDfR-(Me-=1yHcW)5S5w;`G}ofm{a^c$`1Cecylm zol1(maLn2|j^D-#9orPegs&XjX3FSrd-{{2jE)%9k44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d72G^}9Gu0R{01Y44~ zy9!vY3r?)vGaKoQOYkH})6mDfR-(Me-=1yHcS)5S5w;`G}o2e}Rya5$fR@$Y{- zcm8zFbG!Jsc3%x%DV3x!v6X4V^hql9+ZS2tq^t>Bcx)lplMSu6yp2y*D}D}pAAa)u z`lW{|{{AbE{$iuv@Mh-B`3+lVPkHGn^@6egb||a&k|#3^BSM}qZ&oof-pz2P)KcAF SGh`9aZU#?RKbLh*2~7YT6JG8B literal 0 HcmV?d00001 diff --git a/icons/map/marine/beacon-white-yellow.png b/icons/map/marine/beacon-white-yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..57f41a7487752e2a3d9f2bb878bface89c555f6f GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp@KrGI|1|%;mJK6}O7>k44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d72G^}9Gu0R{01Y44~ zy9!vY3r?)vGaKoQOYkH})6mDfR-(Me-=1yC^0)5S5w;`G}o2e}R?@HkI?_`iPR zhqB0p8P5+K_WP!CtIcFa#7c%QLEB`XhuQcsD~GKPC=O;V%3OTzf>+T=_r3M1+wI%9 z9)EpqmviyB9dpmT$e)}yZl6@Py)A6JU~kk44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d72G^}9Gu0R{01Y44~ zy9!vY3r?)vGaKoQOYkH})6mDfR-(Me-=1yC@{)5S5w;`G}ohI|JUc$nXI{ogO~ za+ioEuO_p%xQ(Jv^tps+MuuMvx&7tZZNiG#TfI#6LY1bQ6?n9N5noxGlJ2Y3bbbDR z$9I+I86qpEswccxORwIhUVY$oS@=;QUEZ@1I(okvLxnvr@%~7%P-Q5Qi2&Nl;OXk; Jvd$@?2>`a7QM&*D literal 0 HcmV?d00001 diff --git a/icons/map/marine/beacon-yellow-black.png b/icons/map/marine/beacon-yellow-black.png new file mode 100644 index 0000000000000000000000000000000000000000..f74fa690e24bcbb45f67eefe15f742b3153108fd GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp@KrGI|1|%;mJK6}O7>k44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d72G^}9Gu0R{01Y44~ zy9!vY3r?)vGaKoQOYkH})6mDfR-(Me-=1yC^C)5S5w;`G}PLp}yYo~G{q^&2_2 z$4rj8c<`y1wd8G~CZ>sAlQw8f>M1rpo4GK_w0%}O51X9KmDpRJ?^5=?`up4OSjFGn z{P|z4+&xzvJ8iM9+@*i2+{w;)OCIjN$m+dJWQJu#hLg)~6{ZI9U5m_BHokrJ4`?le Mr>mdKI;Vst0O2cIN&o-= literal 0 HcmV?d00001 diff --git a/icons/map/marine/beacon-yellow-white.png b/icons/map/marine/beacon-yellow-white.png new file mode 100644 index 0000000000000000000000000000000000000000..6e2c02662018ab590f5b53ff8689b6f9d88be449 GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp@KrGI|1|%;mJK6}O7>k44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d72G^}9Gu0R{01Y44~ zy9!vY3r?)vGaKoQOYkH})6mDfR-(Me-=1yC^G)5S5w;`G}PN3H`3Jl<{p>o-n_ z)wwdOQlMNCAA!DnO9!F{V&=0x?wx%d7nmp?ab zJoE7DNBIYFuQfcUT7KSfC(wV*Cl9?(D!zL!OL|WenR7ED!^g#1ovA^*Ti!z5Zkxgy Ppw$eXu6{1-oD!M<5RzF= literal 0 HcmV?d00001 diff --git a/icons/map/marine/beacon-yellow.png b/icons/map/marine/beacon-yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..8f7cc09a31f2c35bf63c6fc45d494e643765ab35 GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0vp@KrGI|1|%;mJK6}O7>k44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d72G^}9Gu0R{01Y44~ zy9!vY3r?)vGaKoQOYkH})6mDfR-(Me-=1yC@{)5S5w;`G}PN3H_~JeMZ^-@oI5 z9(T&h+Y6@0zFKJ#c*e1l$@37ihtd7SHsOWYt-))p-I&?MHh9kdBCc6eX6K<+@%Y#I zoZfxzp05tBw#wU9BD~vn(qvoD?YCccEsgRz8>M5Sx@fx^Q-ko9YvwBAyEdc(ZDsIu L^>bP0l+XkKkC<1# literal 0 HcmV?d00001 diff --git a/icons/map/marine/beacon.png b/icons/map/marine/beacon.png index 36d054d2ee04c0544804cf1e0935278333c080ea..5e400143e032d8e6852f5610041561029c4bb69f 100644 GIT binary patch delta 212 zcmX@b*u^wKJXoBAje&vT!m^`{K#H+A$lZzY=1HA;AcrO0(btiIVPik{pF~z5Um@8e z$d`ekN{xY`p@o6r7f`6-1p`B=0RzLU1O^7H84L{K1#@-<+Duf`DogZqaSX9I{dS5W z*8u|_=2F%F^@R?xQU$W+&c}p&k8Nua<7B|u*k3U_9pjj>^|Re_GdM&ideLCp=5XKB9}c`N}jtI<&{n4@_Tod0G+|$ M>FVdQ&MBb@0Ig_CPXGV_ delta 148 zcmV;F0Biq>0?Gl97YY~%1^@s6A@Fxpk!mV`YDq*vR5;7+R6!2FAP8$0zmnP^$rlOSy5_ zychTPKXTa?p?a8~WznUTH=pYQ?$bu}Obz`_v!l&3XMp$xl%>ptE}G)pl72 z^V_S~!dxfmmMZ=bOJ`8&pX98RAaK<2Qr(GWi6%RIj^w?0>ln&Xh5cu_g7Ri?A@uiFO6g-N(}v7F52>Kfo2U_&;O2ir0ij(_8NrI4wwu4m+U3 zu)tL-ZDK}ty58$^ULKDGtHR_|0&Sm3TVGu7bNtj*_0>%8uWsC^q;x4KIkWE0!Q%#8 zHpdk_t$pUHa<@F*UM=p))gUs5FM;*X583MNRu$$#(cN3^mj3LV#pCL!9(N>KFh}k0 RWS~Nn{1`6_P!Id>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9 z$=lt9q5Hz~%2_}jXMsm#F#`j)FbFd;%$g$s6s+@faSYKoUmN7f$DqiO-TS}(U5qt* zvr@NA&oYPT2^mfe*LqdoI3!-%uzpUy#S#zG_aFGf7WsF1_Bi(KZm&{$8{DXt@v-6J z9FbDb0}L#x=JSf?#cIq{4;N=-F+Y%RS!4{^nM4rgu&C*&t;ucLK6U>l3!5( literal 0 HcmV?d00001 diff --git a/icons/map/marine/buoy-black-yellow.png b/icons/map/marine/buoy-black-yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..6f9d983315b8d38c19fe3d1e3886b67c9d45e10f GIT binary patch literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^fU&$ z?9!Y2ZmE~o6V~i}w{Kx$lh(-1G_`$sDtY4TIcK;Q#i!@(xPOIz+TCgfh3RuWy`D&@ zyqvDN=}9BUpFWL=OBgf`K4mI9;9XvmSN<_hWuI7aZPf3{ypppf<(+w(BsKZMQ;^#k NJYD@<);T3K0RT8yZb|?E literal 0 HcmV?d00001 diff --git a/icons/map/marine/buoy-green-black.png b/icons/map/marine/buoy-green-black.png new file mode 100644 index 0000000000000000000000000000000000000000..f002b93b3bf5137cb17090a604a3afdbfa777d84 GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^fTX2JeP z|JCERWS2?KcAq@KENE#{(&Hm)a#Lo`ocB}0V_o$Z>j$iNR^Mmy&y?aksl;*6X@b^I zp)(~R3=ZDn7U#LuPflAU!C16A|M+q@JFi|9#YN9|)^aucKYRawJWJUmjevU^-k#r; zVl`!#W^P~-)en8J*Im{zrOmJ6^qaWFGaH`>*7Ve})|~A87ACW6!VA4`f2YhjrIQwT aN&4HnJU9QVcU*u@X7F_Nb6Mw<&;$V1J94rB literal 0 HcmV?d00001 diff --git a/icons/map/marine/buoy-green-red.png b/icons/map/marine/buoy-green-red.png new file mode 100644 index 0000000000000000000000000000000000000000..024ab597a54a92d4755c6526242908de07b1cfe4 GIT binary patch literal 352 zcmeAS@N?(olHy`uVBq!ia0vp^fc)^Rih5z80HTSK>ks8E0d{ThA{GP-OUCIV-}m%Twm( z)AV&qQYN0`sCv3lwEN(vzZ?obyI);m-z4@cT-m^QbBegC>0W;Ija`4GKPaou<&U=4 ne7!fK*CKRwZ^d#^h9Arc);%UGKALj_-Ou3Z>gTe~DWM4f&Y8tESot&r%CySz!I-K zCQo-(hMp@9D|yvVPF!Vi^^bjD^5QAc*%KC+dntTueATllH0akux1HfKA|7iSo|)z~ zr*^9CW3Y>JRMe4V|cC;TW-IeGu5q{q7Q9`gsRcg|OE?~6Hm#zX8N=Nrx-)$RwU z)-o~ZY%VlqQujO^a)!B}e*3D+I%~Fg7%BZzjoua@80eC*+{S3p-s>ww7HnW*cqaaO z!K3GgdwvB@`jg(JQ>oDGr>r%FWs>TSnBROq3}xeQAF%bT5v#Ua>zS&Y7JP|!?Ue}Y U`P&>BfsSSHboFyt=akR{0BWLev;Y7A literal 0 HcmV?d00001 diff --git a/icons/map/marine/buoy-red-green.png b/icons/map/marine/buoy-red-green.png new file mode 100644 index 0000000000000000000000000000000000000000..7c5a06d976a375bf1007a1c8e7e103013a894369 GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^fynKuLBh8rbYAv~C%hD%sb{r9# zU^TO0;&v{E32S--B`iF>o-L}cO^p906j#WkG@-U|Wr_;Z$1OUM3v2?)&#BCEXN!8D zwT}7xzlYnI7``->GRpp7{IQ15tmE%Yn*^16LfPD*qAK}Ew{KkEvHkkSt*m$XHg1l1 g9vpeb>DZ#B_CFb;f9UPF3<@v?Pgg&ebxsLQ0CLN9hyVZp literal 0 HcmV?d00001 diff --git a/icons/map/marine/buoy-red-white.png b/icons/map/marine/buoy-red-white.png new file mode 100644 index 0000000000000000000000000000000000000000..9c82e5b6da74b2182a6baef8628b97a567a7b1d2 GIT binary patch literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^fs?$AsS6Pl zyqMQxY9Pa~B{*?Ex2C)1)RdLhi*^*wy>p_EBmU$q*$~$f(f1|K-QA~DM=o6;H07kA zkQD#v&w>mOg!fP0#OQf!(W-2gMKi9ia+<{SK=4n+H{lQW%O>%=+iRYUOQ~0De0RcN bN(r-XMuySN$8SY|j%M(5^>bP0l+XkKl(%eF literal 0 HcmV?d00001 diff --git a/icons/map/marine/buoy-red.png b/icons/map/marine/buoy-red.png new file mode 100644 index 0000000000000000000000000000000000000000..bc57dfb43ec0a8d2102e77c6d03dd9e97ffca920 GIT binary patch literal 332 zcmeAS@N?(olHy`uVBq!ia0vp^fHHk|ftKfEUk{5iK`;t~dpgQ;(W literal 0 HcmV?d00001 diff --git a/icons/map/marine/buoy-white-black.png b/icons/map/marine/buoy-white-black.png new file mode 100644 index 0000000000000000000000000000000000000000..f9d25421b4e696526ac4c24048140d017280dd26 GIT binary patch literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^f!MABCP7@9z@LIJ(?;#gU)!o{LPSZ*_D? ztm8>nIB6i`di8{ie6P>8Dbr3ia?IxR6^`j#Jo~C|&ODAgA#y^oYnmQiO5698*)#1- z&a^Pur?)S5t1ur3tcm&ES24TqUha!B;kT~OALee!JCdPv_qb_-;lXo3K({h5c)I$z JtaD0e0su`qY?c53 literal 0 HcmV?d00001 diff --git a/icons/map/marine/buoy-white-green.png b/icons/map/marine/buoy-white-green.png new file mode 100644 index 0000000000000000000000000000000000000000..5fde7a38938f5577fa960b7373c5211c15f7b734 GIT binary patch literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^f^wOWnzoov09y7Lh@drSL;7-p0K5~$2>{+oaw!;y^7KDq6w<={_D>D zF_U{c(4b>07}iNHEjlRgJw0qwPT@k9%ITL*dOYl4Ty#`XLgRGTn`dVoiq}uH+97mk zWfOxj|nSiB+aftQTXYx7lF9(hM^-zY!wu1h^dqI-0@L)z4*}Q$iB}HD+_+ literal 0 HcmV?d00001 diff --git a/icons/map/marine/buoy-white-red.png b/icons/map/marine/buoy-white-red.png new file mode 100644 index 0000000000000000000000000000000000000000..24a99acb0274c4c90579525b0f1af9c5a628ea06 GIT binary patch literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^fTX5}CM z^UE_;-y1E_nc#4GsnXFtS)Pwco|Eo>Hk}|-x<&l~W6x?^)@sMa_q3XLWd1Mp+Vk8= zm*Iexv}j|t+v<=zClwwy=)NxayH9drc&56frbwYupka&SmQ!7C|E%jsTE8u*K$oK` ziIw3Dd-j#z_CGG)H3;w1^fZjP7}Q~PdHZ92FQ${a71Ftn^j6_y&YC+xo2+i_U(D|*)u8+%mdKI;Vst09s{m*8l(j literal 0 HcmV?d00001 diff --git a/icons/map/marine/buoy-white.png b/icons/map/marine/buoy-white.png new file mode 100644 index 0000000000000000000000000000000000000000..d2ef25e8a2c4b824e4824d17e0b933ecd7d1c0eb GIT binary patch literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^f#+Hz5@yz&YB

)3{Pu9t(6P NgQu&X%Q~loCIB$wZ;b!| literal 0 HcmV?d00001 diff --git a/icons/map/marine/buoy-yellow-black.png b/icons/map/marine/buoy-yellow-black.png new file mode 100644 index 0000000000000000000000000000000000000000..4e2ad793cfa23cee179f349dfe0841f3814a3521 GIT binary patch literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^fxatD4Mi7xnNd}<*_*#jSixqpmLuSiRK zrq!n8kyP+B>GJWV@6uIem%1*JwKZQSwn}LgN9}cfSCj0cCmUy-I`0{`rng($eDft{ z&u8;jc1>y2n6jwK;}V0+!Q)%sH%x!|WIOL2uSwO0-mU z85rdM`ki7_Svh^xN-md&=Bv6@cn^r}>HW+31lFz^Y zcj8_y-FC(F)jD%o#RY8N6g+~8ZP=LNw%4-1IUw;{FXC%OWjKra2B9flb@RMer=@Mv zk``^WX$xIx!TkSo>9kvUYt?76*i8yA4G`8|IVn%>;;HhZfsV`6i=5-4t0LmU84~o* zdqzEzP+2)&bMq1hmAdk49+w!lJoxrT{lV$7E#;dQa(A9nI+tEja&=;&#!KFBs}j_9 TUYXhobS#6XtDnm{r-UW|s5NfM literal 0 HcmV?d00001 diff --git a/src/map/ENC/mapdata.cpp b/src/map/ENC/mapdata.cpp index b9b32176..eb35853c 100644 --- a/src/map/ENC/mapdata.cpp +++ b/src/map/ENC/mapdata.cpp @@ -331,6 +331,16 @@ static uint restrictionCategory(uint type, const MapData::Attributes &attr) return catrea; } +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); + + return c; +} + MapData::Point::Point(uint type, const Coordinates &c, const QString &label) : _type(SUBTYPE(type, 0)), _pos(c), _label(label), _polygon(false) { @@ -384,12 +394,22 @@ MapData::Point::Point(uint type, const Coordinates &c, const Attributes &attr, subtype = CATMFA; else if (type == I_BUNSTA) subtype = I_CATBUN; + else if (type == BOYCAR || type == BOYINB || type == BOYISD + || type == BOYLAT || type == I_BOYLAT || type == BOYSAW || type == BOYSPP + || type == BCNCAR || type == BCNISD || type == BCNLAT || type == I_BCNLAT + || type == BCNSAW || type == BCNSPP) + subtype = COLOUR; QList list(_attr.value(subtype).split(',')); - std::sort(list.begin(), list.end()); - _type = (type == RESARE || type == I_RESARE) - ? SUBTYPE(type, restrictionCategory(type, _attr)) - : SUBTYPE(type, list.first().toUInt()); + if (type == RESARE || type == I_RESARE) + _type = SUBTYPE(type, restrictionCategory(type, _attr)); + else if (subtype == COLOUR) + _type = SUBTYPE(type, color(list)); + else { + std::sort(list.begin(), list.end()); + _type = SUBTYPE(type, list.first().toUInt()); + } + _id = ((quint64)order(_type))<<32 | (uint)qHash(c); _label = QString::fromLatin1(_attr.value(OBJNAM)); diff --git a/src/map/ENC/style.cpp b/src/map/ENC/style.cpp index f39c1bd5..b0fd16e6 100644 --- a/src/map/ENC/style.cpp +++ b/src/map/ENC/style.cpp @@ -6,6 +6,77 @@ using namespace ENC; using namespace Util; +#define IMG(type, subtype, img, dx, dy) \ + _points[SUBTYPE((type), (subtype))] = Point(QImage(img), Small, QPoint(dx, dy)); + +#define BUOY(type) \ + IMG((type), 0, ":/marine/buoy.png", 6, -6); \ + IMG((type), 1, ":/marine/buoy-white.png", 6, -6); \ + IMG((type), 2, ":/marine/buoy.png", 6, -6); \ + IMG((type), 3, ":/marine/buoy-red.png", 6, -6); \ + IMG((type), 4, ":/marine/buoy-green.png", 6, -6); \ + IMG((type), 5, ":/marine/buoy.png", 6, -6); \ + IMG((type), 6, ":/marine/buoy-yellow.png", 6, -6); \ + IMG((type), 7, ":/marine/buoy.png", 6, -6); \ + IMG((type), 8, ":/marine/buoy.png", 6, -6); \ + IMG((type), 9, ":/marine/buoy.png", 6, -6); \ + IMG((type), 10, ":/marine/buoy.png", 6, -6); \ + IMG((type), 11, ":/marine/buoy-yellow.png", 6, -6); \ + IMG((type), 12, ":/marine/buoy.png", 6, -6); \ + IMG((type), 13, ":/marine/buoy.png", 6, -6); \ + IMG((type), 0x201, ":/marine/buoy-white-black.png", 6, -6); \ + IMG((type), 0x301, ":/marine/buoy-white-red.png", 6, -6); \ + IMG((type), 0x401, ":/marine/buoy-white-green.png", 6, -6); \ + IMG((type), 0x601, ":/marine/buoy-white-yellow.png", 6, -6); \ + IMG((type), 0xb01, ":/marine/buoy-white-yellow.png", 6, -6); \ + IMG((type), 0x102, ":/marine/buoy-black-white.png", 6, -6); \ + IMG((type), 0x302, ":/marine/buoy-black-red.png", 6, -6); \ + IMG((type), 0x402, ":/marine/buoy-black-green.png", 6, -6); \ + IMG((type), 0x602, ":/marine/buoy-black-yellow.png", 6, -6); \ + IMG((type), 0xb02, ":/marine/buoy-black-yellow.png", 6, -6); \ + IMG((type), 0x103, ":/marine/buoy-red-white.png", 6, -6); \ + IMG((type), 0x203, ":/marine/buoy-red-black.png", 6, -6); \ + IMG((type), 0x403, ":/marine/buoy-red-green.png", 6, -6); \ + IMG((type), 0x104, ":/marine/buoy-green-white.png", 6, -6); \ + IMG((type), 0x204, ":/marine/buoy-green-black.png", 6, -6); \ + IMG((type), 0x304, ":/marine/buoy-green-red.png", 6, -6); \ + IMG((type), 0x106, ":/marine/buoy-yellow-white.png", 6, -6); \ + IMG((type), 0x206, ":/marine/buoy-yellow-black.png", 6, -6); + +#define BEACON(type) \ + IMG((type), 0, ":/marine/beacon.png", 0, -8); \ + IMG((type), 1, ":/marine/beacon-white.png", 0, -8); \ + IMG((type), 2, ":/marine/beacon.png", 0, -8); \ + IMG((type), 3, ":/marine/beacon-red.png", 0, -8); \ + IMG((type), 4, ":/marine/beacon-green.png", 0, -8); \ + IMG((type), 5, ":/marine/beacon.png", 0, -8); \ + IMG((type), 6, ":/marine/beacon-yellow.png", 0, -8); \ + IMG((type), 7, ":/marine/beacon.png", 0, -8); \ + IMG((type), 8, ":/marine/beacon.png", 0, -8); \ + IMG((type), 9, ":/marine/beacon.png", 0, -8); \ + IMG((type), 10, ":/marine/beacon.png", 0, -8); \ + IMG((type), 11, ":/marine/beacon-yellow.png", 0, -8); \ + IMG((type), 12, ":/marine/beacon.png", 0, -8); \ + IMG((type), 13, ":/marine/beacon.png", 0, -8); \ + IMG((type), 0x201, ":/marine/beacon-white-black.png", 0, -8); \ + IMG((type), 0x301, ":/marine/beacon-white-red.png", 0, -8); \ + IMG((type), 0x401, ":/marine/beacon-white-green.png", 0, -8); \ + IMG((type), 0x601, ":/marine/beacon-white-yellow.png", 0, -8); \ + IMG((type), 0xb01, ":/marine/beacon-white-yellow.png", 0, -8); \ + IMG((type), 0x102, ":/marine/beacon-black-white.png", 0, -8); \ + IMG((type), 0x302, ":/marine/beacon-black-red.png", 0, -8); \ + IMG((type), 0x402, ":/marine/beacon-black-green.png", 0, -8); \ + IMG((type), 0x602, ":/marine/beacon-black-yellow.png", 0, -8); \ + IMG((type), 0xb02, ":/marine/beacon-black-yellow.png", 0, -8); \ + IMG((type), 0x103, ":/marine/beacon-red-white.png", 0, -8); \ + IMG((type), 0x203, ":/marine/beacon-red-black.png", 0, -8); \ + IMG((type), 0x403, ":/marine/beacon-red-green.png", 0, -8); \ + IMG((type), 0x104, ":/marine/beacon-green-white.png", 0, -8); \ + IMG((type), 0x204, ":/marine/beacon-green-black.png", 0, -8); \ + IMG((type), 0x304, ":/marine/beacon-green-red.png", 0, -8); \ + IMG((type), 0x106, ":/marine/beacon-yellow-white.png", 0, -8); \ + IMG((type), 0x206, ":/marine/beacon-yellow-black.png", 0, -8); + static QImage railroad(qreal ratio) { QImage img(16 * ratio, 4 * ratio, QImage::Format_ARGB32_Premultiplied); @@ -268,6 +339,21 @@ void Style::lineStyle(qreal ratio) void Style::pointStyle(qreal ratio) { + BUOY(BOYCAR); + BUOY(BOYINB); + BUOY(BOYISD); + BUOY(BOYLAT); + BUOY(I_BOYLAT); + BUOY(BOYSAW); + BUOY(BOYSPP); + + BEACON(BCNCAR); + BEACON(BCNISD); + BEACON(BCNLAT); + BEACON(I_BCNLAT); + BEACON(BCNSAW); + BEACON(BCNSPP); + _points[SUBTYPE(BUAARE, 1)].setTextFontSize(Large); _points[SUBTYPE(BUAARE, 5)].setTextFontSize(Large); _points[SUBTYPE(BUAARE, 4)].setTextFontSize(Large); @@ -275,32 +361,6 @@ void Style::pointStyle(qreal ratio) _points[SUBTYPE(BUAARE, 6)].setTextFontSize(Small); _points[TYPE(SOUNDG)].setTextFontSize(Small); _points[TYPE(SOUNDG)].setHaloColor(QColor()); - _points[TYPE(BOYCAR)] = Point(QImage(":/marine/buoy.png"), Small, - QPoint(6, -6)); - _points[TYPE(BOYINB)] = Point(QImage(":/marine/buoy.png"), Small, - QPoint(6, -6)); - _points[TYPE(BOYISD)] = Point(QImage(":/marine/buoy.png"), Small, - QPoint(6, -6)); - _points[TYPE(BOYLAT)] = Point(QImage(":/marine/buoy.png"), Small, - QPoint(6, -6)); - _points[TYPE(I_BOYLAT)] = Point(QImage(":/marine/buoy.png"), Small, - QPoint(6, -6)); - _points[TYPE(BOYSAW)] = Point(QImage(":/marine/buoy.png"), Small, - QPoint(6, -6)); - _points[TYPE(BOYSPP)] = Point(QImage(":/marine/buoy.png"), Small, - QPoint(6, -6)); - _points[TYPE(BCNCAR)] = Point(QImage(":/marine/beacon.png"), Small, - QPoint(0, -8)); - _points[TYPE(BCNISD)] = Point(QImage(":/marine/beacon.png"), Small, - QPoint(0, -8)); - _points[TYPE(BCNLAT)] = Point(QImage(":/marine/beacon.png"), Small, - QPoint(0, -8)); - _points[TYPE(I_BCNLAT)] = Point(QImage(":/marine/beacon.png"), Small, - QPoint(0, -8)); - _points[TYPE(BCNSAW)] = Point(QImage(":/marine/beacon.png"), Small, - QPoint(0, -8)); - _points[TYPE(BCNSPP)] = Point(QImage(":/marine/beacon.png"), Small, - QPoint(0, -8)); _points[SUBTYPE(LNDMRK, 3)] = Point(QImage(":/marine/chimney.png"), Small, QPoint(0, -11)); _points[SUBTYPE(LNDMRK, 5)] = Point(QImage(":/marine/flagstaff.png"),