From 94fd8c9aec01a5d1652d79e9e3b4f8ec89faa890 Mon Sep 17 00:00:00 2001 From: Carlo Date: Mon, 10 Nov 2025 19:22:43 +0100 Subject: [PATCH] Sistemate le chiamate al menu --- build/game.o | Bin 5680 -> 5656 bytes build/gui.o | Bin 9240 -> 9504 bytes build/input.o | Bin 1792 -> 2416 bytes build/main.o | Bin 2544 -> 2592 bytes build/shooter | Bin 32016 -> 32008 bytes include/gui.h | 5 ++++- src/game.c | 2 +- src/gui.c | 19 ++++++++++++------- src/input.c | 16 +++++++++++++--- src/main.c | 4 ++-- 10 files changed, 32 insertions(+), 14 deletions(-) diff --git a/build/game.o b/build/game.o index c6e2a79a2134df3e310d3b082e429db66ce57252..509a49f9745964e7a715be03882a7e220e57f5be 100644 GIT binary patch delta 133 zcmdm>Gec*B2IGv4n$_%Fu6lZU3}CSN7`qo6BhO|*zIG-?lgTp$+!@U$KNQdhl7fOj z_U1^z_l%4VlRbrxGullS6ftMKH`!Cfo{5WNawCV>?ru2kuhSjq406Wu*pA#%^ANHrPbFwg)1 diff --git a/build/gui.o b/build/gui.o index 82e6037a83cbcdec138a3f172b842d93d8c2cd4d..73d8be3307baa4b7160956d9be2aaaffe82f54f3 100644 GIT binary patch delta 2329 zcmZ{lT}T{P6vt=AO`M6k>#Es1<7%AQRgBSmC`Ii<*Vt6D+e)kHOCJ&%r2$iD8f6n~ zXj!eLRcgWQfz}s6sgO{lbh{6wr4*$p78-1QE`*3LrP2~x$OjbKb7txV*CU%aeKia3DrDxn_ry;P9 zJiebRtUp}}3BBfH{RXV*!|Bd}HhHN_Gv)fcXOUprN?|MYChRH)=L7zy9CCa4EA(_54Xu2E&bqQGe6xOx(n za6S*4k(^pA4py#fT5||$tB=**aJyENN!1Jd0M{x-Ra#1m!_}Qy?z+sU;YziShCJ{E zz=%|8D93J>%SeopJJSmi`+aKcY}!9`KtCAXbUv-~T-O0}2O4rcxe*)GDU7 zOCHR2hH+m097JQn0+y|YWm|w=R0}LN#?%cMMRl9S(oOOEya!7$krUJi8ueL=!&h4v zk2C(1%9|G3Dg&jUF82dL=@ z{3t~0g!K|r`6-5=5EtqsjMfSDQ`m|NYngeLvHUBPr~St#sJ9sB`M2Ht4=I0UUn!mE)W#hgWd7&G=L7Tu&35NU{;QH7hJ3xqoeZca=yYglZ`rFdF8M%! zuS)((fa}y6+Ie?=RDD455s&Bg3QSAEKc;_-RmsN#i5^Hk5#X)z+D!*|o8-3S)VHR< zp@xnQ|3l`7c#@*{AKaD4LKOVq!n+Okv@*OecISbKgPv>}@U7j6U+!JIM^g=O^cdU? zhoIkSG<14{(XPQ;PM5J*;qB((8>dT~KLmd}DWf~=!8X_mS3`fIQF|@Cmtz*UBVqU| mky58&H_@Y+HgqIY+CT)xk}36fC?tD~Ior!H<7Sw(%l`*-!u(tS delta 2129 zcmZ{lT}TvB6vt;~YumL(XWH`a_>tp|*<#TLee4#oDk19@LSj)561$OD4?&iY^|D$N z7D4I>@}<&Vl0F_nAF7u!qAwpZ2>O)tAt;bAf~W}Uo|!v!nAijN&feeuf6u-5+@0Nl z&HeQ~Q6+5lR$Ukl$?NApIxwU)wPy~to5{@n7OAddU%Lc)a5tF2;P9c~s1F*{30R*G z3tD}WB-Q0>CzVaAKY7M?e3owqOylLuJoyUX|D}YP6r9B5HJ!sqZ<|--OdW6wc-; zc%V$LcNyF)W=5Q-7I(OJPzO_7Jxo+ux8tCfFr$yC^mV=l<;85(W1(VA@<`^_IrtPb z@)do4Zsp;vhMfx5))43Sm2V!pAr7+IsCT> zwESbC9QW`vPUKNz_tM`y;||YC z^&Y`pIPKvzSa}|MoyXrq-GU$R@NvOAJUoo2 diff --git a/build/input.o b/build/input.o index 146eea8118476b3a4e26940451bf51831bfc644c..f7c24c8d2be6f29ecc7e91a8622819a99f424dbb 100644 GIT binary patch literal 2416 zcmcIkO=uHQ5S~p^Td{4T_y;=s$B`DVU1vor7IMy&gU zPf@x^4tRBR+;g>8OD1`-8?pZocGM$ z%q`U5k=A}zjFpQ}n6!4GRw_mV`Nh^7TZKLv_mRfqfw|`xjif*|l5b>|NQ< z_+n}G+5ANjB>fI0KdZ3OEfhaNx%kvL>GlD1wB0mUqWRsn zf9?|oVM*t$%^2mhRz}TGIRd-&)Q+PjKSFKwMEN03lg$xy{H|aBxxwS~e=)+tf%)hh>`wMh>*Ak@jW*BbOwAD};*%(bd}rIEqQa z{J2OqI~yq1PlGZXQg+nW*4@LzI}xWv@|xxsYYg4?bvCT?zw}{v7-YinnV(Y#T269tuh^ce02yiw3bm5Hc4@_toWN-&>sZa*uuDKGU};$hTDs7_j|q8itdrZxboVP>8Eg4DA5Wlc5p zVH4Cr&D200Fbq($X~#&Ulh_#arP8LZ;vH-;Of7Lq*ymH0iY>(}ZeBwUoupsrKbO^# z`fBQbQNl>37Eo{95*3ELSJEfiB~93Y8uci;ia5$RfhaGW4L0CTT=_D#3w)2j<$Dt_ zeEX%j5_Qg4vjFy^L1+FgzZJPump7fvUynYwc)$M;Itioq;+AD`Al2s<$(Q>vbV}VF zx6k`Q!s(4YjX2$NZ~YO$4-1~$WdEgo5fwVq%a05GK^Z7^FQ0BigwDeN(5~NsXcK0Rgl3FP^@b=C3&3tcW-tI0%$3|2| z0ci?cg*uWf?!mervE2x?!$J6=o%$K$;+t65=EB?dseo2^hwbGS zw!>QCjqO!cZRHhum|?e|6;>P+DnhQhqvb!>AWxLJD08L6l`{WO32^ZdRcl9Wk+I)|W^-_70mP*l@<8(VP~am$dg~LL#(z0b>uXwpGl7jj#AX zJY#iW)EQXju8UBO%fGhsX!IB8)y^#l2RWmgix~LZ6#sebRhoVB6O0ZG4TjIfrmd7| zg?sy1KkMnfWZAH9v2TF&44ijq`!fuostMQV^%$rCCHgc2xX3!34U|VWL759Fo$W2H z&#=r%MAL(PFJDyGf!BLB)*r*SSCwA zCYw&^hB0MhfH1|-s3lr8W5#^aj86kI%&fD|O3&2iOkj87W*peGVE{{{lSw^=Tq^(3#kKieOu1e= zjet1${$wow$7M*?$*m)Rvk2(z?N{H0TB_fJ%WJYe#l0r`m-|HwO5dCJ_8-b2y%f2otmQGLI@>=Kvv(BHy1{XY?3-edPdPq;jN*VL!1FZo8bNz&@-ZxcXk k!$p)|Pv`pI9a1pslE(>n%zxKMFxE)_(j{j+T5|pR-~JIZ$p8QV diff --git a/build/main.o b/build/main.o index 9b66896ed66becd85403fd3d774cc781b3f9099b..e5ebed6fc25fd1cccabacaa5ac68c978782613a0 100644 GIT binary patch delta 516 zcmew$yg+1v2IGQ>nlX&~CN@f`yLxo9G5~=`=kXUH8p3OS!RXN|3gYi$1QMOcC+_#3 zEW_wDIf2nd=rl;&l~16J$(fgp=@1V)$K*mbsmT`@BN$Il)@1t57&qCFNt`hqOcsF2 zN-)^~A}2R6N3i;M`nd*AzRs*U`5*HkM!(4iS;Qq%K*j0s%;z8Hi!xy^{l3#XYBhq<{e3%sCKY1{NSK0K_m|3z5VHk;KqIR2LNQ-i&g*t delta 497 zcmXw$ze~eV5XW;bNs~ZZYAubrShtAc8Z2mOwbD)^h=>SUq=<`DTNgoW5rv{c%elBI zxVY(79sJdy4i5ea9R)$$R4nLSn|$E=UhaF}ci|;xq0jD$1-a_rVl-85yh%hk+1lG_ zNd*tB@SaE=s_eSm)Ui`O-2vJ6yi^<0{^7_*B$wTcY~@$hHnSLp1kS-!u+C?b{=k8l z@Oi|oSJUy_(}w{~!55f?Iu3|0$Y5NU*whuA6d}lS1>0?}BG2Q8Y+;Y`(3|E_ghKL? zT7MmuFr%31Rc;a7^^x4}I-7(b$t2g`XOrN(pXB;SJPl58Mm6CSOSE2KRWZjdIZSZA zi{$37*d*Nf;Z7;loSpMQR6W0RSI}&uJ%GF>#x+~WfY%Vlie|ZwubO4Z{85P^1l@)a y9MxlD!Aa^CEaQzHgChQr-BdAZj2kuQ#50x*+bHryiCui8>bw2JB&k5}@Batp;e|E; diff --git a/build/shooter b/build/shooter index d10c07d631f3346e11c13f8f42f965a290b2baf0..d5218ac33473c404dabf8d3452cf1abe3a3700ea 100755 GIT binary patch delta 3541 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 delta 3323 zcmai13s6+&75@LrB99^uc?kl$AP^Q|c^3rK6>wX{vs&~;L)jv_E2H70@9WJt!=MT5EGOhv#9v76kU|K7WZJI-Xsz2`sQ zd41>HyO-lH9?%~A7e`Hpwbwn5YKZhXs)1!x=aKI&tNBnwlc)*yQPIy{B4Y~@cuOWpjouc!?#avjtIy>hoU?Yjlz7l`nD7d2+i8-cNP{eu#H3!q-JNiog8Mq* zrcHAEawmL1!8J~J@-vb@>|N^D=BTB2@;N5^5Tg?=D7eW9PkvVBu*C^)QSfpnd_czY zNUf7$UJ0mo!jqK|w>aUo)*|oTV2vf15HWDJh>*GMIv;hX#Kve@!#_oc(c=1Z_+Lz% z`&LQGc*eRaR-iNl0^)|kO9GigSF$LIMt(#%DXE5bc78nw=Hg1|UMSKgab|DWuhr5p zIH^sfX85NziZl7b*V;Im3hMX-+5^S$aom&3;KlgA(-=rzRYu3)l~w1tfM_rzOwvSH zmDo(z!12VX5Tn`9#|mt{FN(b3yhHW857WA6dKChbG~DcZ$V^guSz?eL{~7cC8*EF; zsGgW*L=EF+*Q7i`I)pfW@Y0l;j*iXqm&~qe3G;l24PJ=DQC#%Ii}0QtYQuWA3ltHS zb!-mvnM)Zst`v&65B4N=@=|8u2NxNhLcWq}34A+xftNu>ZEz?~8&|?=bPQ|cs1YGw zHujxmH{=50Hqagrj79r5IV!+ zg(Kjaq7FGCQI!;{C%3Qa~t`eQ_ zSqM+n{_w=2=v#Q^4PQDEzagot?6@)?7rFnZXW-kk6`}XmI_4wD^RXeo%Df5vsgeFc zQO@%@4U?(r#M3h}UnM7Tmtx+*Vyr(Lw8izMHFBbmdytYA>|V}POW;v3r3Iy=Duf>m z&sCDL@&rBDJf-Pun1M5(fk+&h~*EG&kNSlV5^oWGC$M%tk2^Yqo&y`8w zJkytZsF`L7T&{slX@SZ8cON&!bBvGDc^i5xjA0OhGb%G0)KWtEY4t<9dE-^H!H$H@ zrSljktmi*4T9%e9cAJ8~WQ4S3E{2Bw%ObBykuHx!Ml5!F3*A^!c2C;z-1Cp2S)Ygp zrAB^|KWI1d&C^D{6s;R=#rVd^=Qqy3bkOdKzx?I|44XESu7Tz#JlV|pHdV)bN?VYu zs4OOqop_V#b~d_Wls8_>slH~?F)#XbzK>SeofQ@^Zlvr5galQ5o=Q3yAtf`Mj>9jrV%pF=I->W& zYUEA3h zOdUhUMX?6c5`(wz%iM;gOA5PPI#e#3UA)}fH3(1RcLP|;R?=h8U$&C__TTVXSya?H zY%d>KErhw`a2P?t5NgGCuiGGWa|Cx_0DkY^ys>(9Z?MI~GmH z66;u69ZRaRl;ZNs+_N3~r(@rA?3a#xQrRDgV_kHthqWcv#)=myXRC*)ZKtRn4p$aZ zJA7VwH?(^l>xYo|R>lZPbd#A)q{Cl#obnjTkPZ3Pik)uW+~rW% zu}|mOt(Q?`b7Efs_IP_=lE=gUfJE-k^yn*@;*##$B*U}7_Xno@Ug!#OG diff --git a/include/gui.h b/include/gui.h index f98e139..0ce3e28 100644 --- a/include/gui.h +++ b/include/gui.h @@ -20,10 +20,13 @@ enum { #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) //extern char* choices[]; +#define START_MODE 0 +#define GMOVR_MODE 1 +#define PAUSE_MODE 2 /* initialization and screens */ void init_colors(void); -int print_menu(WINDOW* win); +int print_menu(WINDOW* win, int mode); void print_gameover(WINDOW* win); void print_win_screen(WINDOW* win); diff --git a/src/game.c b/src/game.c index 6a6187e..7aa86e9 100644 --- a/src/game.c +++ b/src/game.c @@ -16,7 +16,7 @@ int game_run(void) { WINDOW *game_window = NULL; int height, width, win_startx, win_starty; - char *pause_msg = "PAUSA: premi q per uscire dal gioco..."; + char *pause_msg = "PAUSE..."; int pause = 0; int auto_shoot = 0; diff --git a/src/gui.c b/src/gui.c index 5cd3814..6bc98a0 100644 --- a/src/gui.c +++ b/src/gui.c @@ -3,12 +3,6 @@ /************** FUNZIONI GUI ***************/ -static char *choices[] = { - "Start Game", - "Exit", - NULL, -}; - char* title[] = { "###########################################################################################################", @@ -52,8 +46,19 @@ void init_colors() { init_pair(WINSC_PAIR, COLOR_YELLOW, COLOR_BLACK); } +static char *choices[] = { + "", + "Exit", + NULL, +}; // FUNCTION THAT PRINTS THE MENU -int print_menu(WINDOW* win) { +int print_menu(WINDOW* win, int mode) { + switch(mode) { + case START_MODE : choices[0] = "Start Game"; break; + case PAUSE_MODE: choices[0] = "Continue"; break; + case GMOVR_MODE: choices[0] = ""; break; + defualt: choices[0] = "Start Game"; break; + } int height; int width; int ch; diff --git a/src/input.c b/src/input.c index 6032560..39e3bfa 100644 --- a/src/input.c +++ b/src/input.c @@ -1,4 +1,5 @@ #include "../include/input.h" +#include "../include/gui.h" #include /* Returns 1 to continue, 0 if quit requested (player inactive). */ @@ -22,9 +23,18 @@ int process_input(int input, } } else if (input == 'p') { *pause = !(*pause); - } else if (input == 'q') { - /* signal to caller to quit by marking player inactive */ - return 0; + + int choice = print_menu(stdscr, PAUSE_MODE); + + switch(choice) { + case 0: { + werase(stdscr); + mvprintw(LINES-1, 1, "p per pausa"); + *pause = !(*pause); + break; + } + case 1: return 0; break; + } } else if (input == 'g') { *auto_shoot = !(*auto_shoot); } diff --git a/src/main.c b/src/main.c index 5caff27..1ab541e 100644 --- a/src/main.c +++ b/src/main.c @@ -15,12 +15,12 @@ int main(void) { init_colors(); /* show menu */ - int choice = print_menu(stdscr); + int choice = print_menu(stdscr, START_MODE); switch(choice) { case 0: { werase(stdscr); - mvprintw(1, 1, "p per pausa, q per uscire"); + mvprintw(LINES-1, 1, "p per pausa"); refresh(); game_run(); break;