From 08f81564314fb68fe16aa9a46b4e18cbf6c60cc2 Mon Sep 17 00:00:00 2001 From: dP Date: Sun, 18 Feb 2024 02:14:14 +0530 Subject: [PATCH] grf: Remap all colours in cmclient grf tints --- bin/data/cmclient-5.grf | Bin 91470 -> 91470 bytes grf/cmclient/gencmclientgrf.py | 92 +++++++++++++++++++-------------- 2 files changed, 53 insertions(+), 39 deletions(-) diff --git a/bin/data/cmclient-5.grf b/bin/data/cmclient-5.grf index 0f95982fc210cda95fe4b7a16cfdf964bebabfd8..5ba1aaa2da52683264e39b77fa2164301bce5187 100644 GIT binary patch delta 5993 zcmX?iiuK$n)(xVJTuclM3@i)`41XCXCvhuJ*5d5g)M zytRzRliPXi7=0%n<4s~TnykrZDjWw>5D#M{OfKY0;&O#?BPZYGQ)Vof%*ZdrSUg#V zzgEu_Ce;LEG{YDzFh(nk(Kh)wf3|Qvj5`^|@R;l>&@WR5<1U3Umcba&lRpSZajk-J zS5FoZ%$Au5$+kjL!slU97hsHwle2_MxK6{k?vq~# z>2N)Pai30>6E0zlnmk!pS@;`F@H>q0WAaJiB$2x?E(;?x;By%!+lxqwaKQMSFa{Un z zVm!vUc(RuGHG?HcVEgtRJC^L&v17@SojbSh*uH)H&c$G`Wa*N{OBop%82&SqO*W9Y zX1EI#?B2a=HyD70cY{fg$gbTGO&2drZj^MHTrD|qa)6{JJ4A57WE-h#23L^4f&~k% zTuFz31?dYGEV#S?46a6vxP4$yKWUd)3MFJ(IWxGJm+`W7Ep^{zp4i1M)LBOx9vdnKeL{r*iKiO*r z%aMSiqtjmJy?c#}_U$uv+#7zuX@6W?JP4S?$D2SjEtni4cg?^M2{<}B9XWdB$dMz? z#>Q4h;^N{>Or;nx;*TlD}rK9u78asLQXfs9d&e`SQx6N9&f!sK}bM zwu*>|h_+p76a5d-lsY*<;hF)+b{IZ?{=$We7cPRqxeMpdpTBq>1VDlpEfsShxVDY4YSEr}59tV06TH6^9~ zAU%f;@2y%QDJ8vs_MAC$=Crh4YHfjr-jvBLYN(nDi%R?|cJ11|d(UB`>YY;3();Jk znLBr`u*fA5VYsF)b(p3;Fz~4HF7@BJbJy-ehxfWeYyw%;(t2qg!lnrtFijvg_VpEj zHSGdxvcaxt(&TBH*9_Jo0e6p@V&BD!7ndG5;J9hKgoLEgtXZ>WH8r;^XlWLQ1jMAt zbF?rt)z)oW>{IG+;J~JB5)zV5jg7Nr&6?dJCe*|O)3iwYnm&?6Yu!C+YU@BYIUI0= zY64l++#=S}#KXYAz`)2b-OQ8Gi;0P0dXp!kKZw5U$+(q?nPGaD7o#VLzUsx;&BVem zJ;|HV2}CdRW-Mf4WtcAM!x#vnb9@-rFtIUAm-1x{2hqj8jJKHB8K(RDF-Cysm41xt zm^c`wNBT1+uyQakFx;7*@587%{jopeE+$Tf>GJ~^^FTCzAmc|SE{5q$L5$8!+ziv* zgBZ=3co?QP1Th-2@-i?mT$sK#lu>;8*&xO}OneN}yMq}YF!3`?&kbRm!z#eQz%YG! zK?tMhbmdUSRwhA)>8nB+A2A6rOz#V0e8DQrz`!sCBriUFQaED+s|W)F!we8#bh=Ii zV;hqw!}cu^jB<=jVhr1_L^4VRFB9+AR0gGq^D`ll4e2wr6d28L<|1_l=fAqJJ{>unjOCfDEdoqpAtk)KJ0Vfr&` z#xf>VhUsxOjAxkC7^dskGM2HbGcYh%P2ONEzI~r9qZ%WV2E+7cc8oijG#R!pv}d$q zWYS`o{?LK3o>!ZJfngiiaCv0IuQ)P#G3hXDS8!sqWn|K2n6BW&C_8%@@;x3G> zOnMB{=eaOmX4Pk4V6X$(Gku>ecMFvv29GH@_(Gca&*^YT65FqvF9 zTaVFn@-iJcZZif3hD5MJ?#T_lUXvwtMHtN|>*Do#zspR?Izzay3A<5d5y6RBdY@g1A`Mt`(%Ef$jJ$&mlz#48=DC-vN|y^FnEC^ zz~*i)Fjr$_b%qB1?#W@6O{^{q3=Hld6=1CaR@WI_Cu>;iFuG4JoGmfA%UX=lWAZ|4 zHAc_LC#I%R{xMAMcaxd?=0VNm z|1KPpyX_Jf{U*P$Tf^!P%BGVa28e?q0vy0SlieJm7y~9RbVy|koXqaHjxC6Rf#C

>??^4Mc#=yY9 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 Str;~LyQf=QGpd0`)foW#?M7b! delta 5634 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 diff --git a/grf/cmclient/gencmclientgrf.py b/grf/cmclient/gencmclientgrf.py index 14cd3ebc74..19119f4b99 100644 --- a/grf/cmclient/gencmclientgrf.py +++ b/grf/cmclient/gencmclientgrf.py @@ -17,49 +17,49 @@ g.add(grf.AlternativeSprites( grf.FileSprite(toolbar_png, 32, 0, 40, 40, zoom=grf.ZOOM_2X) )) -sprite = lambda *args, **kw: g.add(grf.FileSprite(toolbar_png, *args, **kw)) -sprite2 = lambda x, y, w, h, x2, y2: g.add(grf.AlternativeSprites(grf.FileSprite(toolbar_png, x, y, w, h), grf.FileSprite(toolbar_png, x2, y2, w * 2, h * 2, zoom=grf.ZOOM_2X))) -sprite( 0, 44, 12, 10) # hq button icon -sprite( 0, 55, 12, 10) # watch button icon +sprite = lambda name, *args, **kw: g.add(grf.FileSprite(toolbar_png, *args, name=name, **kw)) +sprite2 = lambda name, x, y, w, h, x2, y2: g.add(grf.AlternativeSprites(grf.FileSprite(toolbar_png, x, y, w, h, name=name), grf.FileSprite(toolbar_png, x2, y2, w * 2, h * 2, name=name + '_2x', zoom=grf.ZOOM_2X))) +sprite('hq_icon', 0, 44, 12, 10) # hq button icon +sprite('watch_icon', 0, 55, 12, 10) # watch button icon # sprite2(0, 55, 12, 10, 13, 55) # watch button icon -sprite(45, 67, 10, 10) # host black -sprite(45, 44, 10, 10) # player black +sprite('host_black', 45, 67, 10, 10) # host black +sprite('player_black', 45, 44, 10, 10) # player black -sprite2(85, 67, 11, 11, 97, 67) # host white -sprite2(85, 44, 11, 11, 97, 44) # player white +sprite2('host_white', 85, 67, 11, 11, 97, 67) # host white +sprite2('player_white', 85, 44, 11, 11, 97, 44) # player white -sprite2( 0, 82, 11, 11, 0, 94) # competitor coloured -sprite2(12, 82, 11, 11, 23, 94) # host coloured -sprite2(24, 82, 11, 11, 46, 94) # player coloured -sprite2(36, 82, 11, 11, 69, 94) # company afk -sprite2(48, 82, 11, 11, 92, 94) # company locked +sprite2('competitor_icon', 0, 82, 11, 11, 0, 94) # competitor coloured +sprite2('host_icon', 12, 82, 11, 11, 23, 94) # host coloured +sprite2('player_icon', 24, 82, 11, 11, 46, 94) # player coloured +sprite2('company_afk_icon', 36, 82, 11, 11, 69, 94) # company afk +sprite2('company_locked_icon', 48, 82, 11, 11, 92, 94) # company locked innerhl_png = grf.ImageFile('sprites/innerhighlight00.png') -sprite = lambda *args, **kw: g.add(grf.FileSprite(innerhl_png, *args, **kw)) -sprite( 18, 8, 64, 31, xofs=-31, yofs= 7) -sprite( 98, 8, 64, 31, xofs=-31, yofs= 7) -sprite(178, 8, 64, 23, xofs=-31, yofs= 7) -sprite(258, 8, 64, 23, xofs=-31, yofs= 7) -sprite(338, 8, 64, 31, xofs=-31, yofs= 7) -sprite(418, 8, 64, 31, xofs=-31, yofs= 7) -sprite(498, 8, 64, 23, xofs=-31, yofs= 7) -sprite(578, 8, 64, 23, xofs=-31, yofs= 7) -sprite(658, 8, 64, 39, xofs=-31, yofs=-1) -sprite( 2, 72, 64, 39, xofs=-31, yofs=-1) -sprite( 82, 72, 64, 31, xofs=-31, yofs=-1) -sprite(162, 72, 64, 31, xofs=-31, yofs=-1) -sprite(242, 72, 64, 39, xofs=-31, yofs=-1) -sprite(322, 72, 64, 39, xofs=-31, yofs=-1) -sprite(402, 72, 64, 31, xofs=-31, yofs=-1) -sprite(482, 72, 64, 47, xofs=-31, yofs=-9) -sprite(562, 72, 64, 15, xofs=-31, yofs= 7) -sprite(642, 72, 64, 31, xofs=-31, yofs=-1) -sprite(722, 72, 64, 31, xofs=-31, yofs=-1) -sprite( 2, 136, 20, 14, xofs= 1, yofs= 5) -sprite( 34, 136, 20, 20, xofs= 0, yofs= 0) -sprite(185, 125, 18, 15, xofs= -8, yofs= 7) +sprite = lambda name, *args, **kw: g.add(grf.FileSprite(innerhl_png, *args, name=name, **kw)) +sprite('inner_hl', 18, 8, 64, 31, xofs=-31, yofs= 7) +sprite('inner_hl', 98, 8, 64, 31, xofs=-31, yofs= 7) +sprite('inner_hl', 178, 8, 64, 23, xofs=-31, yofs= 7) +sprite('inner_hl', 258, 8, 64, 23, xofs=-31, yofs= 7) +sprite('inner_hl', 338, 8, 64, 31, xofs=-31, yofs= 7) +sprite('inner_hl', 418, 8, 64, 31, xofs=-31, yofs= 7) +sprite('inner_hl', 498, 8, 64, 23, xofs=-31, yofs= 7) +sprite('inner_hl', 578, 8, 64, 23, xofs=-31, yofs= 7) +sprite('inner_hl', 658, 8, 64, 39, xofs=-31, yofs=-1) +sprite('inner_hl', 2, 72, 64, 39, xofs=-31, yofs=-1) +sprite('inner_hl', 82, 72, 64, 31, xofs=-31, yofs=-1) +sprite('inner_hl', 162, 72, 64, 31, xofs=-31, yofs=-1) +sprite('inner_hl', 242, 72, 64, 39, xofs=-31, yofs=-1) +sprite('inner_hl', 322, 72, 64, 39, xofs=-31, yofs=-1) +sprite('inner_hl', 402, 72, 64, 31, xofs=-31, yofs=-1) +sprite('inner_hl', 482, 72, 64, 47, xofs=-31, yofs=-9) +sprite('inner_hl', 562, 72, 64, 15, xofs=-31, yofs= 7) +sprite('inner_hl', 642, 72, 64, 31, xofs=-31, yofs=-1) +sprite('inner_hl', 722, 72, 64, 31, xofs=-31, yofs=-1) +sprite('inner_hl', 2, 136, 20, 14, xofs= 1, yofs= 5) +sprite('inner_hl', 34, 136, 20, 20, xofs= 0, yofs= 0) +sprite('inner_hl', 185, 125, 18, 15, xofs= -8, yofs= 7) #red g.add(grf.PaletteRemap([ @@ -146,8 +146,8 @@ y = SPRITE_MARGIN for p in TILEDATA: x = SPRITE_MARGIN _, _, w, h, xofs, yofs = p - for _ in range(1, 16 + 4): - g.add(grf.FileSprite(borderhl_png, x, y, w, h, xofs=xofs, yofs=yofs)) + for i in range(1, 16 + 4): + g.add(grf.FileSprite(borderhl_png, x, y, w, h, xofs=xofs, yofs=yofs, name=f'border_hl_{i}')) x += SPRITE_MARGIN + w y += h + SPRITE_MARGIN @@ -181,7 +181,17 @@ def gen_white_tint_contrast(): return func -remap = lambda f: g.add(grf.PaletteRemap.oklab_from_function(f, remap_water=True)) +def gen_oklab_tint(tint, ratio): + return lambda x: grf.oklab_blend(x, np.array(tint), ratio=ratio) + + +# (0.5498, 0.17, 0.1) +# (0.7433, 0.09, 0.15) +# (0.7433, 0, 0.15) +# (0.7418, -0.09, 0.15) + + +remap = lambda f: g.add(grf.PaletteRemap.oklab_from_function(f, remap_range=grf.ALL_COLOURS)) remap(gen_tint((1, 0, 0), 0.6)) # deep red tint remap(gen_tint((1, 0.5, 0), 0.65)) # deep orange tint remap(gen_tint((0, 1, 0), 0.65)) # deep green tint @@ -189,8 +199,12 @@ remap(gen_tint((0, 1, 1), 0.65)) # deep cyan tint remap(gen_tint((1, 0, 0), 0.4)) # red tint remap(gen_tint((1, 0.5, 0), 0.4)) # orange tint remap(gen_tint((1.0, 1.0, 0), 0.4)) # yellow tint +# remap(gen_oklab_tint((0.5498, 0.17, 0.1), 0.5)) # red tint +# remap(gen_oklab_tint((0.7433, 0.09, 0.15), 0.5)) # orange tint +# remap(gen_oklab_tint((0.7433, 0, 0.15), 0.5)) # yellow tint remap(gen_tint((1.0, 1.0, 0.5), 0.4)) # yellow white tint remap(gen_white_tint_contrast()) # white tint +# remap(gen_oklab_tint((0.7418, -0.09, 0.15), 0.5)) # white tint remap(gen_tint((0, 1.0, 0), 0.4)) # green tint remap(gen_tint((0, 1.0, 1.0), 0.4)) # cyan tint remap(gen_tint((0.5, 1.0, 1.0), 0.4)) # cyan white tint