From 3cbb0d1e17fd9539f1dcc53c0f229b510e6eedd1 Mon Sep 17 00:00:00 2001 From: "sigonasr2, Sig, Sigo" Date: Thu, 28 Sep 2023 21:13:04 +0000 Subject: [PATCH] Implement framework for menu system Co-authored-by: sigonasr2 --- Crawler/Menu.h | 18 ++++++++++++++++++ Crawler/MenuButton.h | 17 +++++++++++++++++ Crawler/assets/RetroMenu.png | Bin 0 -> 2146 bytes 3 files changed, 35 insertions(+) create mode 100644 Crawler/Menu.h create mode 100644 Crawler/MenuButton.h create mode 100644 Crawler/assets/RetroMenu.png diff --git a/Crawler/Menu.h b/Crawler/Menu.h new file mode 100644 index 00000000..31b4bd48 --- /dev/null +++ b/Crawler/Menu.h @@ -0,0 +1,18 @@ +#pragma once +#include "MenuButton.h" +#include "olcPixelGameEngine.h" +#include + +class Crawler; + +class Menu{ + std::stack*stack=nullptr; + std::vectorbuttons; + vf2d size; //Size in tiles (24x24), every menu will be tile-based + + Menu(); + void AddButton(vf2d pos); + void Update(float fElapsedTime); + void Draw(Crawler*game); +}; + diff --git a/Crawler/MenuButton.h b/Crawler/MenuButton.h new file mode 100644 index 00000000..3008d68e --- /dev/null +++ b/Crawler/MenuButton.h @@ -0,0 +1,17 @@ +#pragma once +#include "olcPixelGameEngine.h" +#include + +class Menu; +class Crawler; + +class MenuButton{ + Menu*menuDest; + vf2d size; + std::string label; + Decal*icon; + std::functiononClick; + + void Update(float fElapsedTime); + void Draw(Crawler*game); +}; \ No newline at end of file diff --git a/Crawler/assets/RetroMenu.png b/Crawler/assets/RetroMenu.png new file mode 100644 index 0000000000000000000000000000000000000000..f74213f49baeff9ca30dd9b0994f5898e008ff13 GIT binary patch literal 2146 zcmaJ@2~ZPP7+w$+p=b+=j8$A$Dk3JEghN;fhXesJ7$Hg`wy-2iSRvVTcViX=IqKP} zg<7a6Q?-Hzs1zzH3Mk^$(JHnhUX0=~#iK%N2af`_ZvzFb)|ox>-uM0A`>*#lYZcMq z4tC@0AP91ZjF82Ew+P%Ww!^@)u6KDW1lepOl`2*xpNnZIy%5(@NraHo8vzbM0YRJ* z*Q63GoJ8nIgB0mJdJKU{trUs#k&EQUP$Gql$e@YXjA*4MBUR(CMS=qD0yqo^=m{2w zIenUe!8j>m(Z#@Tei}t!3x!RUA}YB84y9-U_7VCBMM$6>96)Q6u^8Fxeq%6_A}K6u z#8A|1HVe&OLWsR3t$q5&>Wcm~;b+a{>c1nV0C(kP(cACXFmf8DL%$Pohk$ z6hQzE_lpx8IjC-6`ojl_KzRfe3q|Owbe2s1A3Be`K{uvQEXAZy#(@A{TVeoy!w{tJ z?Is*dIVe>YvPe=Q7#4Oxei~%ccxy4bIOc z3_2d@*RcS+XK5zBvf{UI_`1msktEOz(=@&6F>h1w@r}Nm=g4wr4v8&EKt(mwas3Ggv#-a*(!PkeM zo7&K}@{&R%hNg{EgnKJ5URfAl-Tojwu(G{3GjMC*#dfPGw;kH9DX5kiDj09)*S^C( z`jNeJvG0)w>pYHN(wVN?JD%6=YCLer)hjORSoUhY|8~#jW+b3|_o5JP7Pn;Iw#{{u zTlbV|&YjSmFv#sjH+Xe%#R>B0!WTER0>_bgWglNHF2Bt=c#;Co>FAllpY~2G%sBte zRj1lobyaHgtf57XW<(fX66Tj*Ylh&n7laiTtZm~~bwr$hI z@2CYnSFHSe+j`2&PnmBgIURAmyvez{a2%ojDw3PI^59gqHTY3dt*&rcv@2XKOfWet z>uyG0ZYY~LW`nNr;&GW0d>%#^Bh(B8**o#K6|}j8FVXc#S%^}#vR>6#&;-A?SmH6s z=cKfBNOt0{H{+m>YI8Hu&w|)C*OKJJ;nA*&6%HG|%)-+qJw|L)AvrBrL~p#ynfZ^a zZahf{*x!Ps>}&cYzt=rC>gAQw%Bm{HP}ym7deg&e`8~@zH@4$0MZW7R=d3@}{4DFq z^a9&B8%QzFt+&*;KF9l|I^#k8ysJfd8`p$1#%_to=W6oQsa9}F?O&sNyyJHMlIUoC zFL8YMnBiyv)bit*DnZAp+gZbw4j+}cdBQqz(zsUp-|C-LxN!>=8J~Nw-VN#t+13sF z!RNGRt15n?+;)X$-hq*RE!Jfv?Y(jx9FAO|qLV5xAN3G1*YzUS2SN+?)!Z3Ybi-wf zQ~or^p}T5E7WcMquX&04CIoA&&2@2Z&R2J^)2mZw0By$L}V?%j0n4!-s5`<8~R#d-1WTR)@MR21Ap zJ9Zpo41a`VUF*&fo7_sB^ox()Rj;YIRAxWP-DS`8wVHK}-bXX-CYWYU-tAtb=_