From 37140eec0b8e68112b2d6fbc39d82f58fcaaaaae Mon Sep 17 00:00:00 2001 From: iProgramInCpp Date: Tue, 19 Dec 2023 21:09:41 +0200 Subject: [PATCH] * Options: Use a texture instead of drawing rectangles for the on/off switches. --- game/assets/gui/gui_custom.png | Bin 0 -> 2375 bytes source/client/gui/components/OptionList.cpp | 43 ++++-------------- source/client/gui/screens/StartMenuScreen.cpp | 2 +- 3 files changed, 11 insertions(+), 34 deletions(-) create mode 100644 game/assets/gui/gui_custom.png diff --git a/game/assets/gui/gui_custom.png b/game/assets/gui/gui_custom.png new file mode 100644 index 0000000000000000000000000000000000000000..1315f75ba244daf262273c13937815d62a1bfa31 GIT binary patch literal 2375 zcmdUx`9IYA8ofpE!oYG z6h|>Qma#L*9%gJajG4L9{V(q4m(TOOp6&HKpV#w#eNwF~jA49d`2YZbnVQ_P1^^I8 z1Oebvoa-U0~sQ@OUQ+)u7eT*T#AMciIW6W*=r?c6m)mCBgPT^a0hs)@6ITJag2_&M!Q zrPDVu+$Q69;xljZD}NSSPYXTtqj{oN7v_oE(MbP#gx20b3M~?SIF+~B^23sG7$t&T zYsSo;-EQ3@8u&&AdMn;*4^~iiZmzaMjE;_yhZ$Lk(`W28G&IbxQBZfS(*|I9%YvW% zL{g2jm;so)TV~dFb1}=thWw*npr@uKTK8U8v~C#K+|n{xLd!1!Zg3szA49fM9F?yq z|CF05DU$$?CfqOaAI>rLI&68qW;iCEHi-}M*$8QQI6bz{qM+EhK80c`k<gMw&fGC zX+L1?>gy-WopKi`U>G5r?*J)wsna5;V$0wa_U|-ZGT4-n-pzhmMz2aoz>?AEwVYYvsvW+^Xp?vcE;DqQCA zKlS=~|5M~F*$N%nndXG+c7!F`povLM?{+RzQz~D4<<=J|BYdqK_a>veW((TqT3D3Z zwalxSELPWccax8LOQ9#~6o`TH;3~o^#Rg8Vm+N)zS4V33H`h%`^mrXfG!TtV3JluUc-t9Yw#I z$3$YyWQeb!24{)HF0kv+`9@ojM6t1o60r z$@jj_V40%;Ux3>P}iO$7`e7%d!x1cOPZLOxT+T{ziJRH zY_JP6HpJt@FyWz$TgBJ@iB^e;JR!pkz_c2t9B(G4X5@<0@997*_Q1O}oa)vG+c?0I zm6Fy5EHxzybmqbQr<@gNpx}*R$A2x|N>+M$pul@smBh}cGZ01?vnX@5l-nJGUcte^ z-I9+Fu(}5Xo)M4LAJirCxC6@cUYMI(#F?1uEU1WXJ9ZuQvgiI%zmVIxJRQ;PlNGin zc-Kp*r*aHPan7Z!lrR}=yzA7;pkDthQBRLh?>a^6%-^1g*P#tp*fnnX#aL+ZtDU>u zC31a(;#er<#eBRuHZ`MnK$?B89dg)qpgZ}Ag8T6Skok-PC1f%crMLN{6ZRcI4szbB&q=wXn;JB-~)a*2OC%PY-VIKh)Nu9}WbE@@`N4s^?OcgV^MGiwAR7(vCj}1y+ zvWEQ0vq)YxDtg*r&lMdwT247OQ%wpJIJbs{yW_a=Xj*OW@re12cvm_&)=*s!Ttb`6 zY|5rhkJFMk-1!9)zId4n!0GI}mh~Y&r5`94H$4o05h~a5AsbfM#d_>RN)SNmj9h}g zDlcul@sTADD3c7;4&vs5g9J)t zfYXi9=NC9jCCkmv+1{#aPqJY{4fFKlkaRdb+*|R0)u8?t-Bl0}Uxvg<&NPQ8OSmNI z$P}Gf^A`gCaEHZNh{U~ZAbb2R#I>|Z;#i5Ufl~SwcfqCWvk$Tzuj%l`m0IYcDh~c> zzR4B@Ah{|81?uY5mQXs}tHnZ8b!YB1mf=*BOW&i@d(z=1PO4@mjecfqA%MqFhVr%$ zIk$P!QJOD~VPB(IM(D}vGkcJ{0SDyHl*3)?!LcvEpyTI&iPgKgH|wiy`3MOa_+_Q` zp~FqN3{WHMVfe{=Be3w%ISllF&YX;s866r+mV$S|k+gycY}6&&1P0K~$#0VLHOW|} zp7VzO+b2gZQvA9Xfp+(39HlA;mSG@W@{mqB4fsN_iHnuC^c*FJY?zc=FW?5nt|psU vrp4Rdwf;AJ`gL9&wS}AWoA|#z$_;ETZwc@OEW-uzs}WN}i(9n@uJQi`f~->O literal 0 HcmV?d00001 diff --git a/source/client/gui/components/OptionList.cpp b/source/client/gui/components/OptionList.cpp index ab67381..641d8d6 100644 --- a/source/client/gui/components/OptionList.cpp +++ b/source/client/gui/components/OptionList.cpp @@ -12,13 +12,13 @@ #include "client/renderer/FoliageColor.hpp" #include "client/renderer/GrassColor.hpp" -#define C_OPTION_ITEM_HEIGHT (18) +#define C_OPTION_ITEM_HEIGHT (20) -#define C_ON_OFF_SWITCH_WIDTH (28) -#define C_ON_OFF_SWITCH_HEIGHT (16) +#define C_ON_OFF_SWITCH_WIDTH (32) +#define C_ON_OFF_SWITCH_HEIGHT (18) #define C_DISTANCE_SWITCH_WIDTH (60) -#define C_DISTANCE_SWITCH_HEIGHT (16) +#define C_DISTANCE_SWITCH_HEIGHT (18) BooleanOptionItem::BooleanOptionItem(bool* pValue, const std::string& text) { @@ -115,6 +115,8 @@ void DistanceOptionItem::onClick(OptionList* pList, int mouseX, int mouseY) if (mouseX <= itemX + C_SCROLLED_LIST_ITEM_WIDTH - C_DISTANCE_SWITCH_WIDTH - 6) return; + if (mouseX > itemX + C_SCROLLED_LIST_ITEM_WIDTH - 6) + return; int oldValue = *m_pValue; *m_pValue = (oldValue + 1) % RD_COUNT; @@ -193,36 +195,11 @@ bool OptionList::isSelectedItem(int index) void OptionList::drawOnOffSwitch(int x, int y, bool state, bool disabled) { - // Draws a simplistic On/Off switch. + m_pMinecraft->m_pTextures->loadAndBindTexture("gui/gui_custom.png"); + + blit(x, y, 0, state ? 18 : 0, C_ON_OFF_SWITCH_WIDTH, C_ON_OFF_SWITCH_HEIGHT, C_ON_OFF_SWITCH_WIDTH, C_ON_OFF_SWITCH_HEIGHT); - uint32_t - edgeColor = 0xFF444444, - backdropEnabled = 0xFFAAAAAA, - backdropDisabled = 0xFF333333, - leverOn = 0xFFFFFFFF, - leverOff = 0xFF888888; - - if (disabled) - { - edgeColor = 0xFF222222; - backdropEnabled = 0xFF555555; - backdropDisabled = 0xFF191919, - leverOn = 0xFF7F7F7F, - leverOff = 0xFF444444; - } - - // Draw edges - fill(x + 0, y + 0, x + C_ON_OFF_SWITCH_WIDTH - 0, y + C_ON_OFF_SWITCH_HEIGHT - 0, edgeColor); - - // Draw backdrop - fill(x + 1, y + 1, x + C_ON_OFF_SWITCH_WIDTH - 1, y + C_ON_OFF_SWITCH_HEIGHT - 1, state ? backdropEnabled : backdropDisabled); - - if (state) - // Draw ON position - fill(x + C_ON_OFF_SWITCH_WIDTH / 2 + 2, y + 1, x + C_ON_OFF_SWITCH_WIDTH - 1, y + C_ON_OFF_SWITCH_HEIGHT - 1, leverOn); - else - // Draw OFF position - fill(x + 1, y + 1, x + C_ON_OFF_SWITCH_WIDTH / 2 - 2, y + C_ON_OFF_SWITCH_HEIGHT - 1, leverOff); + m_pMinecraft->m_pTextures->loadAndBindTexture("gui/gui.png");// bind the old texture back } void OptionList::renderItem(int index, int x, int y, int height, Tesselator& t) diff --git a/source/client/gui/screens/StartMenuScreen.cpp b/source/client/gui/screens/StartMenuScreen.cpp index 9c98c08..30dfc85 100644 --- a/source/client/gui/screens/StartMenuScreen.cpp +++ b/source/client/gui/screens/StartMenuScreen.cpp @@ -208,7 +208,7 @@ const char* gSplashes[] = "Woo, worldofminecraft!", "Woo, reddit!", "Woo, 2pp!", - "Google anlyticsed!", + "Not Google anlyticsed!", "Give us Gordon!", "Tip your waiter!", "Very fun!",