From 5de7f55889dcccb6c4aa396842b492392a6d80e2 Mon Sep 17 00:00:00 2001 From: Carlo Date: Mon, 10 Nov 2025 13:48:17 +0100 Subject: [PATCH] Added menu --- Makefile | 4 +-- build/game.o | Bin 6096 -> 5680 bytes build/gui.o | Bin 7400 -> 9240 bytes build/main.o | Bin 2104 -> 2544 bytes build/shooter | Bin 22432 -> 32016 bytes build/space_shooter | Bin 22968 -> 22968 bytes include/gui.h | 9 ++++++- src/game.c | 7 ----- src/gui.c | 62 ++++++++++++++++++++++++++++++++++++++------ src/main.c | 15 ++++++++++- 10 files changed, 78 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index 5bef432..ec9dc70 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,10 @@ CC = gcc CFLAGS = -Wall -Wextra -Iinclude -std=c11 -LDFLAGS = -lncurses +LDFLAGS = -lncurses -lmenu SRC = $(wildcard src/*.c) OBJ = $(patsubst src/%.c, build/%.o, $(SRC)) -TARGET = build/space_shooter +TARGET = build/shooter all: $(TARGET) diff --git a/build/game.o b/build/game.o index 8ee3cbfa44f33765cf3b7a156bbfb4e35af36bd8..c6e2a79a2134df3e310d3b082e429db66ce57252 100644 GIT binary patch delta 1256 zcmZ{kPiWIn9LM{zwn^5eG-;D;s9UXqLB!F^>db~2K zv})A%-eJVxD=?Ytg~MhLqUu>T z19|lsI|wz^W=Bv@qMkvWL%oW66SazZ3-vzgW7KujSEwIRzoLFeWv~&knS!dL_MoPr z85v;1I6jIx0k!BDw4!~=VzF?kSST$(LfaEwyj&>HFTjx27cP}Amgb8vt<8lB#eAs% zYg(?0ZxZC#W@Ux(5w{?3-Mszz=h`~q5yIaP9wq!Q;Tqw(#3$TD{TOe4{rxV7Y+TO_ zlbAS(IYGEi_<3M)yYhf|6U6(D@Fd||9v7WS_%9M~5uOrf#H~Hvak+t8vUz~Nr3u)G z+r6_L(yl|3dzU+SAHh!D&cF4%;;^=n%AX0}PIycNauXdr^dZ7`aG$@zaj5HdX36u4 zjfujicoTMyWcBm8pH&Cluq$8MvQA@8AkgTLwH$H-{HOTwPdzTu=uF4@!xL*%N*U0wM%1d}*1Z84JFET_A11e1xW;D(40l$BjM@Jm1BQ5f delta 1646 zcmaJ>T}TvB6rNdscGmrI*V%1aQCvf76G5YJp$Dy0FcH#H@FBFx9oxlR$Jw>X2*iRg zBuGy`5?61DC3E-dpKSuka94yqwl z(L$;`kd(_q{cJLj?22m&{IEwLEYyjMc2c6=lrpNY-89#5h??j;CJ}>UdE*u-efq!@FBw)hI0&87_Kq=%5an69zzcl zJ0-q=VJQqdEBGpQe~MuX!*+(9@WoksE}4oZyEIPK;)zseuaX$x^ealLE5_-HCMOlH z_Zmy-oUSR|nv#rh2}RfA2`={;m_ zt?E6}n7=BT$?x1s|hq z0J)w*ORhBZ8f9H5`y25R;*Zk(AVF7nkPK^uCrzH(@D{WpeGuty7<}2jH+%~j@{!>g z_`H(*DovXY$W?$`+iCQ>NMDHbrO@w{_!Ds2D+Ocp8A;F!-fn!FjRDwqu83;Q%>Q!`AJF7Z$xMeR68~WqwaGU3q%|f^amlK!Wx;a({F-A3dY2uzwasQQvd(} diff --git a/build/gui.o b/build/gui.o index 1c5a1ef36ef92e5ddc8da511c8d9f2bbd9089b9b..82e6037a83cbcdec138a3f172b842d93d8c2cd4d 100644 GIT binary patch literal 9240 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 diff --git a/build/main.o b/build/main.o index 7d1b69d8edbe4c1a25ece35843db8e85e7038049..9b66896ed66becd85403fd3d774cc781b3f9099b 100644 GIT binary patch delta 705 zcmZ9KOGq106o%*C%)_BR@&JbvjVZbaDuRLpgj%c$<5E{q5DhZEz%b4v1_V(N1!)To zryKV!>P~mTg`!#5E?v6QT|fnw1q1ClH@O>s_|M#XzW>g>^C*R1V@E0O>OprxwfCOG zfjuy9f729{eRx};>*08HZ>y^0b*${^>pN=ysE2PZ8HTT@lxUe)`z|bcN5OVy+n=(V zbR940W($6{H@Pk*1%F}1bClp@G^mV4%XF9V=I{X@ZPNKgqtO7@>PN`13@gJqyJeGb z$1Ii+H7n|>sJ^J15b)Vf*IUWu=hmEDK`A<3)_0V(4bdwqMbBCE9Df;JxD{`r%}^?u z9;o`SrYL+0S#gUHil~8>Gy#)HdkCS3nrKM}VHfETAr#RMXh}zCEt`OItaD<#1do`{ zQ5eP1A+*fzLqxUMcS`pEqyUQU*@BjtV``$PA4bdm37zEgDIpZm2wKuJYNF(ht+i?G zGvb)?QD|4+@V&>iv?&_cdw^*z%|i@ESS$R}QgT?)Qf7$$15^*h^)&BeFr^RknR--D yne%m?gn-51S?^*y5HY^+2Mwl-VY5`nzv0+On>+L#P}^{iv%lhpQ_S;M#h delta 378 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 v_VVU@3vos38+{cGjge1${7!Lok`ZMK(y literal 22432 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 diff --git a/build/space_shooter b/build/space_shooter index 1d636f92186795a0ca11827c6b279d3ac5321334..da27dae4c602c2f2153a8df62d346d81a421d389 100755 GIT binary patch delta 2758 zcmZ`*dr(wm6u4Jh%T3D`J5=~7R9MgdqMr}+{#PSaXWj0&a z>!2qaksdlVX-ye+VKgfid_heX3|VSUQTez&Qb2rw zSYi)LY)t@bYK&pjuTctNmvCXuty|X5s{X9`=)ImB{@>i6@Y=@-d!(&~Fn=~5_6{;z zT5Otm$83!TXoSgxR@By{=A%MZ|2LJDfnq-s940a_jkP`h-zrp+9n zt%2>Rm38gx0a_j!2bFnTy0Jd7{3(e;E6Gnz{iSh$QaqYZLYuyD}9qqU}o8)G2 zM?{5-_Z3BOIXX~Q&thZ&HBPt@F}`dkX)2EMx|S5f`Us2sT_Rx#q9a&Au%Ae|C=|U# zhYbb9exb7Va{B#Y7{gp?@^SO*+4k4vr^ zf`vGaqm84XG+uB8N*NStCqs5(X}M3-B(O#%no3BIF{&UZG9h&FP#YIs znNSru!qhWKv;6>0Mve~23+|WXx*oV0k&0=gT9Sg3dNG{KagPc|@M>6YnG$L=lY6VP z7e$9@=TQEwC6Y_+g$^H1HAa9yk=8 zY#x4(dav%LgL*Gc<^-4VJLrw(<7VJa`?NOpuA;bYr3|Bmy#X09BiSX89}`)2;Etkv zf9zI}wRgVYyeR*P>=DXZ-Fr730C@&_YcfP-+#Ja!dSztdHjr$%S4Jjo++9Wv^2*4> zO#t$Jj8VBriwSpQBJ!`?#+|oc5M1^%)W;uGRwh;p%OD;p=AdJfy&W-_Yeg=5yRb_T z!%h$@h{g+e5prB3IG0@(3eR9C+EAcw%WYV|^AqMhvM+})PKCXltyte~+_3Y}a9MYt zF*a=GK{V4rMdLeoRS7f(g~FI)g7ci9tC_YYV5o0v$22Y4cFyv0AEHdE1q(vcB!Y zR#T2Gu-6(B{ShYAuP;0F5~8}PFJWzu9Iy0l5P7pnM>*L|U6^IVDBdo-oT5djzV(_Oco~vVb)zij%yHIq~U>c4in3 zddeYcAe!fVbdEyH{C>em5e5{)dGwTG$C!B#;(=b4QPS@ zOLR7lSkYKJh>VXu96VZAnT!3pW?8P+@uGsgn+hF^2GkZw-bb1_X*@Op>z7^D6 z{PyENIKo&9e`RHvcIl7FQb-Xta~-4Mh%nZ)dyHmU51oS9qV66F%5hGGFcyZNt!Wb= vKKnT~2nw>z>uHd(W)g*mxd>}9DcH_q@s?Ylsk delta 2794 zcmZ`*dvH|M8NYWofejGz+GN>8b~luyAwaT`BrGcOXqVhLL_h?gj%C&mZPbzgi4D_g z7(>)`St0!h11&Qo;~#(nTD)eA3??X#1f6!kQ3qdO$AA|NB`oqtq}=|#d+w%rw0CCD zcfarZeUJ0I=bSz5s@$&1f3wMP2k(}Q=b)M-KV`8$d9q{fA0KFGdoJ8==}Or7Slz_8 zKU23@?PKLSY8~frYF+{FTOy=Q2x%pqfw#NBRF@9-`bZw{aMqczo)O-CQ~+<^JtD?C z!t0{|yqjhU@4OM-Zfb&8Diq!&BfLKPV7x=FR=*fO*(RS?Z>N-6e(N41NlGX-@ji%P zm-ZK-%BC83Ti4-@+$+3q{0uc5`<0W`4?AR(>ExlE>uE;>_=E{AgG!}o8Q!%V6>RLg z!?_G$L~^;A>>6Rqr|oGoQ}1I>!*P%4WpMk?^mSTB!R2IB4>x*s&f2BTNnzE$iQn_> zl60vn1_qInZM_4OvNTY{F?pJD*N||u7XOV8hURa1X5luGM0Ao%b001IIJ;u zKQ*V_BTu8V6LS+!_ajB9@fK%7z3dWD4$6ktSV)g&On02Rsq3L;4TVCD zJs89HTd)wysU^eXE{YvCkz+S>z0+G8T?X6fd`5PCJmQU>mC*8AYm{mBtQ_=P6RSM} z^r>Ul5?lkzmEZ-f5vrKV;A+yY4%$#i>a<|cz8SO`I4j#u4cZveiSI6HZNi2%(!rQc z&Y-ozxQ({BC)IDguIoX+riA=wndfRl?Pb;E6Peg?6OJx_4}zs1D?E?51FX3gk=7W3`B#`85&g<}&6M5#w%9L8^SzW>5m ziuvZ6H6k7S+0mTXHPsw8ihyyVuHBg31AuIcPW4cP20W8!hdZTcYeaQF*ZlyT$focr$dJ7{SbAD6jDxR;aNlbMn|YTvCR#pAA*|7Wkypw=K8|Hv1KKEL{Z z*f_|5aO!?O8L`wxuyKXMMzIkT6HPJLcps2KHoVmDDKD}Z$xK2Q!yhX9G~~aH#f|-q zblUu2w-S!OkZklOc+a7xOy`2`p(fdg{Mv}L4vTziDD2BVqeqST>gZE@GjGJmJJj#8 zk6IqSuIakA?GlEM@rKQ}=9k#(d?+y30Y@iqQ*8$0p2V!Q13$pV0L{s^8bGj#TgQor zR83u+TVY9%BtDarhF%-~c5KJg0^c(0pS>&TNMZVztPN6DxkLf))9Odwh&8#SvZ}nw zQ&X}2_myh{HC1_%L>CK->vw#w>nl-c9Lm%|R-)2w$RE(aQOIX{b-f3&?6R)gaL_be z(e)h2GM+8uCm`o{kmu0#E0Bw@Lia)5fb53+4YsTX`5vSVyYF2bYdL(%;lXmEzZNyQ z+Qvfh-<9~18S~9sHyT) zSFHCu1+D|@EAsO4Xz{$J+~}<-dh=R|qk*63UCW14ho3qx9kQg&-e;=O>y!^CH9ye{ zRJW-|uS~u|;jdO#%}=nV@0ljlJ3>ewfVN~QQ7X!!7k~YlypfXpCGrAVg|UTNF)pP` z{=M=i)U?ncx2pRWx@G4{tWSQ{GUa&o;eU#A9HxJkl*C2M3+HMoP+qnaPNl<2Ufj8< z0=kB-Dh{XdNnzN8^Cd}gN}eUc>!r-nx$-g!lse=WXk+OgEJc&mNNM&2`F(P($d7B8 SE^sZhbVZ4LLEW{&ZT%11MnCBQ diff --git a/include/gui.h b/include/gui.h index 34426ed..f98e139 100644 --- a/include/gui.h +++ b/include/gui.h @@ -2,6 +2,10 @@ #define GUI_H #include +#include +#include +#include +#include #include "objects.h" #include "utils.h" @@ -14,9 +18,12 @@ enum { WINSC_PAIR }; +#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) +//extern char* choices[]; + /* initialization and screens */ void init_colors(void); -void print_menu(WINDOW* win); +int print_menu(WINDOW* win); void print_gameover(WINDOW* win); void print_win_screen(WINDOW* win); diff --git a/src/game.c b/src/game.c index d351a2e..6a6187e 100644 --- a/src/game.c +++ b/src/game.c @@ -49,13 +49,6 @@ int game_run(void) { return 0; } - /* show menu */ - print_menu(stdscr); - getch(); - werase(stdscr); - mvprintw(1, 1, "p per pausa, q per uscire"); - refresh(); - /* create windows */ game_window = newwin(height, width, win_starty, win_startx); nodelay(game_window, TRUE); diff --git a/src/gui.c b/src/gui.c index 009b69d..5cd3814 100644 --- a/src/gui.c +++ b/src/gui.c @@ -1,8 +1,14 @@ #include "../include/gui.h" -#include + /************** FUNZIONI GUI ***************/ +static char *choices[] = { + "Start Game", + "Exit", + NULL, +}; + char* title[] = { "###########################################################################################################", @@ -13,7 +19,7 @@ char* title[] = "###########################################################################################################" }; -char menu_desc[] = "BENVENUTO. Premi qualsiasi tasto per giocare..."; +char menu_desc[] = "BENVENUTO. Premi p per giocare..."; char* gameover[] = @@ -36,6 +42,7 @@ char* win_screen[] = char win_desc[] = "HAI VINTO. Premi q per uscire..."; + void init_colors() { start_color(); init_pair(ENEMY_PAIR, COLOR_RED, COLOR_BLACK); @@ -45,23 +52,62 @@ void init_colors() { init_pair(WINSC_PAIR, COLOR_YELLOW, COLOR_BLACK); } -void print_menu(WINDOW* win) { +// FUNCTION THAT PRINTS THE MENU +int print_menu(WINDOW* win) { int height; int width; + int ch; getmaxyx(win, height, width); + ITEM **items; + MENU *menu; + int n_choices; + int index = -1; + + n_choices = ARRAY_SIZE(choices); + items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *)); + for(int i = 0; i < n_choices; ++i) { + items[i] = new_item(choices[i], ""); + } + items[n_choices] = NULL; + menu = new_menu(items); + + // Create a menu window + WINDOW *menu_win = newwin(10, 40, (LINES-10)/2, (COLS-40)/2); + keypad(menu_win, TRUE); + set_menu_win(menu, menu_win); + set_menu_sub(menu, derwin(menu_win, 6, 38, 3, 1)); + set_menu_mark(menu, " > "); + box(menu_win, 0, 0); + post_menu(menu); + wattron(win, COLOR_PAIR(TITLE_PAIR)); for(int i = 0; i < (TEXTLINES+BORDERLINES); i++) { mvwprintw(win, i+1, (width-(strlen(title[0])))/2, "%s", title[i]); } wattroff(win, COLOR_PAIR(TITLE_PAIR)); - wattron(win, A_BLINK); - mvwprintw(win, (TEXTLINES+BORDERLINES)+1, (width-(strlen(menu_desc)))/2, "%s", menu_desc); - wattroff(win, A_BLINK); - wrefresh(win); - return; + wrefresh(menu_win); + + while((ch = wgetch(win)) != '\n') { + switch(ch) { + case KEY_DOWN: menu_driver(menu, REQ_DOWN_ITEM); break; + case KEY_UP: menu_driver(menu, REQ_UP_ITEM); break; + } + wrefresh(menu_win); + } + + ITEM *cur = current_item(menu); + index = item_index(cur); + + unpost_menu(menu); + free_menu(menu); + for(int i = 0; i < n_choices; i++) free_item(items[i]); + free(items); + delwin(menu_win); + + return index; } void print_gameover(WINDOW* win) { diff --git a/src/main.c b/src/main.c index c87703e..5caff27 100644 --- a/src/main.c +++ b/src/main.c @@ -14,7 +14,20 @@ int main(void) { init_colors(); - game_run(); + /* show menu */ + int choice = print_menu(stdscr); + + switch(choice) { + case 0: { + werase(stdscr); + mvprintw(1, 1, "p per pausa, q per uscire"); + refresh(); + game_run(); + break; + } + case 1: break; + } + /* cleanup terminal */ curs_set(1);