From e75581fa7828f78cca582d4b26032f5029250f86 Mon Sep 17 00:00:00 2001 From: Massive Box <71317968+MassiveBox@users.noreply.github.com> Date: Thu, 1 Jul 2021 14:49:46 +0000 Subject: [PATCH] Initial commit --- Makefile | 17 + Makefile.RS97 | 20 + README.md | 36 ++ assets/bgm/game_over | Bin 0 -> 21934 bytes assets/bgm/in_game | Bin 0 -> 22554 bytes assets/images/BMP_CHARACTOR.png | Bin 0 -> 3448 bytes assets/images/JILJIL.png | Bin 0 -> 32412 bytes assets/images/fpsfont.png | Bin 0 -> 2731 bytes assets/images/icon.png | Bin 0 -> 766 bytes assets/images/pause.png | Bin 0 -> 317638 bytes assets/sfx/bongo | Bin 0 -> 182 bytes assets/sfx/cat_sound | Bin 0 -> 5568 bytes assets/sfx/cho | Bin 0 -> 858 bytes assets/sfx/clap | Bin 0 -> 2978 bytes assets/sfx/cough_cough | Bin 0 -> 6704 bytes assets/sfx/game_start | Bin 0 -> 10532 bytes assets/sfx/inhale | Bin 0 -> 5970 bytes assets/sfx/reverse | Bin 0 -> 2040 bytes assets/sfx/ronf | Bin 0 -> 5020 bytes assets/sfx/rumble | Bin 0 -> 5854 bytes assets/sfx/sneeze_long | Bin 0 -> 5372 bytes assets/sfx/sneeze_short | Bin 0 -> 2730 bytes ipk/control/control | 11 + ipk/create-ipk.sh | 9 + .../apps/gmenu2x/sections/games/jiljil-c.lnk | 4 + .../home/retrofw/games/jiljil-c/jiljil.png | Bin 0 -> 766 bytes ipk/debian-binary | 1 + src/audio.c | 128 +++++++ src/audio.h | 10 + src/graphics.c | 77 ++++ src/graphics.h | 8 + src/include.h | 11 + src/keys.c | 37 ++ src/keys.h | 1 + src/logic.c | 135 +++++++ src/logic.h | 15 + src/main.c | 49 +++ src/main.h | 7 + src/match.c | 351 ++++++++++++++++++ src/match.h | 3 + 40 files changed, 930 insertions(+) create mode 100644 Makefile create mode 100644 Makefile.RS97 create mode 100644 README.md create mode 100644 assets/bgm/game_over create mode 100644 assets/bgm/in_game create mode 100644 assets/images/BMP_CHARACTOR.png create mode 100644 assets/images/JILJIL.png create mode 100644 assets/images/fpsfont.png create mode 100644 assets/images/icon.png create mode 100644 assets/images/pause.png create mode 100644 assets/sfx/bongo create mode 100644 assets/sfx/cat_sound create mode 100644 assets/sfx/cho create mode 100644 assets/sfx/clap create mode 100644 assets/sfx/cough_cough create mode 100644 assets/sfx/game_start create mode 100644 assets/sfx/inhale create mode 100644 assets/sfx/reverse create mode 100644 assets/sfx/ronf create mode 100644 assets/sfx/rumble create mode 100644 assets/sfx/sneeze_long create mode 100644 assets/sfx/sneeze_short create mode 100644 ipk/control/control create mode 100644 ipk/create-ipk.sh create mode 100644 ipk/data/home/retrofw/apps/gmenu2x/sections/games/jiljil-c.lnk create mode 100644 ipk/data/home/retrofw/games/jiljil-c/jiljil.png create mode 100644 ipk/debian-binary create mode 100644 src/audio.c create mode 100644 src/audio.h create mode 100644 src/graphics.c create mode 100644 src/graphics.h create mode 100644 src/include.h create mode 100644 src/keys.c create mode 100644 src/keys.h create mode 100644 src/logic.c create mode 100644 src/logic.h create mode 100644 src/main.c create mode 100644 src/main.h create mode 100644 src/match.c create mode 100644 src/match.h diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..b2b7ce1 --- /dev/null +++ b/Makefile @@ -0,0 +1,17 @@ +CC := gcc +CFLAGS := `sdl-config --libs --cflags` -ggdb3 -O0 --std=c99 -Wall -lSDL_image -lSDL_mixer -lm +HDRS := +SRCS := src/main.c src/match.c src/graphics.c src/logic.c src/keys.c src/audio.c +OBJS := $(SRCS:.c=.o) + +EXEC := jiljil.dge + +all: $(EXEC) + +$(EXEC): $(OBJS) $(HDRS) Makefile + $(CC) -o $@ $(OBJS) $(CFLAGS) + +clean: + rm -f $(EXEC) $(OBJS) + +.PHONY: all clean diff --git a/Makefile.RS97 b/Makefile.RS97 new file mode 100644 index 0000000..af6ac1e --- /dev/null +++ b/Makefile.RS97 @@ -0,0 +1,20 @@ +CC := mipsel-linux-gcc +CFLAGS := `sdl-config --libs --cflags` -ggdb3 -O0 --std=c99 -Wall -lSDL_image -lSDL_mixer -lm +HDRS := +SRCS := src/main.c src/match.c src/graphics.c src/logic.c src/keys.c src/audio.c +OBJS := $(SRCS:.c=.o) + +EXEC := jiljil.dge + +all: $(EXEC) + +$(EXEC): $(OBJS) $(HDRS) Makefile + $(CC) -o $@ $(OBJS) $(CFLAGS) + cp ./jiljil.dge ./ipk/data/home/retrofw/games/jiljil-c/jiljil.dge + cp -r assets ./ipk/data/home/retrofw/games/jiljil-c/assets/ + ./ipk/create-ipk.sh + +clean: + rm -f $(EXEC) $(OBJS) + +.PHONY: all clean diff --git a/README.md b/README.md new file mode 100644 index 0000000..416e0c8 --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +# RetroFW JilJil + +![1](https://telegra.ph/file/3402cbb5a0065adee1f4f.jpg)![2](https://telegra.ph/file/51443278b9b2e4f8213f5.jpg)![3](https://telegra.ph/file/fc95a25bf190d0b726c1e.jpg) + +This repo contains the source code for my port of [JilJil](https://www.cavestory.org/pixels-works/jil-jil.php) for (hopefully) **RetroFW** compatible devices and **Linux**. + +JilJil is a simple **arcade-style** score based game, where you control a weird **worm** inside an aquarium, and you have to run away from a **cat** that is trying to catch you by the ribbon on your tail. You also have to bounce off of a **lemon** as many times as you can. + +While this game is named as a port of JilJil, the actual source code of JilJil is not publicly available, so I decided to rewrite the game from scratch and I've added some tweaks here and there to spice up the gameplay. The physics are not supposed to be 1:1 to actual JilJil! + +Some of the assets and resources used to create this game are (c) 1997 Studio Pixel. If you represent mr. Daisuke Amaya, Studio Pixel, or any affiliates, please contact me at legal@massivebox.eu.org. + +## Make-ing + +### For Linux + +Simply run `make`. +You'll need `SDL` development libraries (including SDL Mixer and SDL Image), and the C compiler `gcc`. +You will get an executable called `2048.dge`, run it and enjoy your 2048 experience! + +### For RetroFW + +Run `make -f Makefile.RS97` +You'll need a [working buildroot installation](https://github.com/retrofw/retrofw.github.io/wiki/Configuring-a-Toolchain), that includes the SDL development libraries, and `gcc`. Since RetroFW runs on MIPSel devices, instead of the compiler `gcc`, the Makefile will use `mipsel-linux-gcc`, make sure it is a working command on your machine, if it isn't, make sure that the folder where the `mipsel-linux-gcc` binary is stored is in `$PATH`. +You will get a file called `build.ipk` that you can [install](https://github.com/retrofw/retrofw.github.io/wiki/Emulators-and-Apps#install-ipk) on RetroFW devices. + +### For Windows + +I have no idea. Just get Linux :P + +## Contributing + +Contributions are always welcome! You can contribute by opening a pull request or an issue. +You can also report me stuff via email if you don't want to sign up to whichever Git server I choose to host this project. +My mail is hello@massivebox.eu.org. + diff --git a/assets/bgm/game_over b/assets/bgm/game_over new file mode 100644 index 0000000000000000000000000000000000000000..a83fb8cb9e3d6c0f73915eb1d055043c2856cb96 GIT binary patch literal 21934 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 ID=Uis16e7WIsgCw literal 0 HcmV?d00001 diff --git a/assets/bgm/in_game b/assets/bgm/in_game new file mode 100644 index 0000000000000000000000000000000000000000..2cb0de87a316995a3b89571f120afab075860f0d GIT binary patch literal 22554 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 E0ZZ?{;s5{u literal 0 HcmV?d00001 diff --git a/assets/images/BMP_CHARACTOR.png b/assets/images/BMP_CHARACTOR.png new file mode 100644 index 0000000000000000000000000000000000000000..d3877bcf9d85e5e2f78d3705d864fe2e873bd5c3 GIT binary patch literal 3448 zcma);F^eTd6oso*Se)H~Zlpy_HZU~Mz}!)0a0YalUbh1=F*B0|O$1?KGjjtG(SKlS zxXI=UhDHj;2L6EA^PN+--+QwRSTo&KU3Koc_nx}dufM&#_rdYe>qo7%$B%Jagmi&BxzA)#A$!&p-LHwcD?7 z4ef^?U(@8RuP#11yYeT2c7OhJ&B?hBz$ilw5#{fca zseszgHtaKEZAOeSf=P4i5U#fvwde+$rpq;6l8iGJXwyn#Y^u!gf<&r82J)qc>KQ-R z*jJLNq?|2TLTl=7;sThIIgA+Pa-a#eyAESlUm2O1EIXs6!h?Xtgl3UNp}4WGi)0*M zcZqHWA~1}&-WUxMwUf|7CDTEsv^?ycsiB93URTAq6IgQ_P=JhM9I??D2K}$)y4T*E zZ6p4!@zS%Bc8kt(*HD@|`}EehG82;zK4Qa~>dBaATq6{+EO8Uo0!|8x3%M+V7H)JM zqr`}T^b4C4>mlGpUX`4)-t^e;PZ~Q1b7DBKL>M+*WE=?p0l~c0B zRWT|%fFuzj42uzlTw3$kKl=JwaV4cdquUPH4fs0P1NOZwcX-RV7_)_FSZCTX>e;oZ zct?Hv@cqO3|8Mn%EsNTvdahnscNy%0ec!z;>{@$FC{-zB7vU+fUOmn_KU4yCMv4=* zZ36@bxD!6RA%LPX=-=Oy8XW4V z1={w3na9JscSkYOlfCiWF&^|iO;4$lh|jZ0ImW=S^xk5 literal 0 HcmV?d00001 diff --git a/assets/images/JILJIL.png b/assets/images/JILJIL.png new file mode 100644 index 0000000000000000000000000000000000000000..274fcdeb7989ce035045f227e2a74f175b66f6eb GIT binary patch literal 32412 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 literal 0 HcmV?d00001 diff --git a/assets/images/icon.png b/assets/images/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9ca0f8fec5d3f04e495e0539ab62e5c53ff260bd GIT binary patch literal 766 zcmcJNJq`jP5QX0wd#$V~J%&f4~vQz)U-e1bxKiJQQnR(J)ue?2z_p{IujnQzh73->+nDfXXUf*+N SU;3!$KQPG-T>fd(W`s9W_v#4% literal 0 HcmV?d00001 diff --git a/assets/images/pause.png b/assets/images/pause.png new file mode 100644 index 0000000000000000000000000000000000000000..c09390203a37df4979b4088f0be34a39e1dd744b GIT binary patch literal 317638 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 U9OaIm`+t(d28}j8ZZy;Te>87KNdN!< literal 0 HcmV?d00001 diff --git a/assets/sfx/bongo b/assets/sfx/bongo new file mode 100644 index 0000000000000000000000000000000000000000..c5b81f79a593708b4f603e924939dbfe49f0147e GIT binary patch literal 182 zcmWIYbaPwBz`zjh80MOmTcRKYWHSPxpf&>-Gcs@hMbZ+JOIUz(H4vvHmL!7c+S(c* zsIIC?5ApZ$aCY+W3-I^x_6rQ~^YIT34ULFT&n>BLoj7aJ%1yfuqJcdJ_H5m_dikO` zGp0|Q*x683UQ(2uniw4sBt(<>TYy7Ze&185tdykd%^^k(HC1S5R0~TvAq1 IRb9gX00Xu|4FCWD literal 0 HcmV?d00001 diff --git a/assets/sfx/cat_sound b/assets/sfx/cat_sound new file mode 100644 index 0000000000000000000000000000000000000000..c5f410b9b069d0454579e1ab1ffcccf1366421ec GIT binary patch literal 5568 zcma)9$#UbocJ5o1MYc&*_SxqtvdFE zZ~q8AXGbUTKfv3=$j(uG)V{^9Oa5_9lZptTnUYL%o>rvd4(HRbvP>By6cA+zXK_!|Gm_<|q&ex{mpz0x z_b#Ze8Wi=!a+OBev><6(hjMXAW?R}Nn!Y4C24_<&ry?e-4AHFV_ei}Rc9t8LCw!q; zg1jN4q-cWSVzUr|7&J-uYJIKGL$}afQRPx?I+Q)Tup2aXIMlN`ipX4~Hj{2`0_|Q> zlm!hQ4*c4WLR&J9_ZVPU{VW1loXu8ttyV4=EQN~Gp(SsB~&wfF;Lq^aV9|*x14h= z8J9}ILozBA6-vNY$(fLvNGN2kG$R^rUJz^?Wx}`OFliJFm7r0y513i){rYF$0u;ao zeVQ_9uw;fY7~5)U(LpzeLWe~l55}}wh4h(e?NSO<@38^$9lZV1O6+f#n=O9(m4U|) z0Yw3T!@st*zuyM8@`iz{l5ztRS8GXh>oY_~?7i5l-YWvRJ=))(0O%g}Z&2au+x6!JS%I~Jr&AYtG)X1boO10@4wHQ#JxBS9B*H61yrNV) zMwJ$j4~|vQc6wMA3Qm<*P(Fs{(pZ3W0BLDkP7@Wek|7G|=Xi>cwU!bHKB0z|2o{u# ztF-APi$!>NJHfHKmIGK7PG4>Uv0S8A%Ne=!Gm^*(MOAZha5J$3J&|7K4jH7o#Zz=x zud`U%sZP011X1*I&;*y;#|Xu4%KL7Wgr=rhUJ;!$Hdo#-ff$&NuV@n-Zg#!H-D0Ha zVwpt_r?*KbXoBFS2@Z5K4)FcY!+5>yber-x+f*j5%+>g2esN`2O^|NgS@?q-ulzz~ ze0mW*nnC}*Iqoc<4o@ByN7^?7j_dSz_8cEoKNbPHae?FxnIjD=4e6&sDtZahQyIoMucxWpP&Mq?aH0=8A z&ERZNoykcY)zk302}aCZ>wrIqqNi*U&JiM3F1G=dgWF|rx%{~b+|#(XH6e9=zCGb; zFnvBfwU12@KTd+hdNeL4su`tZn^~alXz=jVJzVZWx%5#tYkV-cyO%++i-VWjquzQRR@ZSdWDN__hkF{# z9xj9C_ON$fj-FLU!U#TOkI!kad^iu9^}*n-IB$4@Ablvver}_q>-$rX2rhSJ|H0=d z95*TmpV#F3;%*%5n&acuG+$S#i8{?T=ss-Kaq&a~+T?+_^DtAUQLt>fLDl#{x|^Ru z-JJxpA8Mr5>ieLX1pTIT7u6aEu89KmLyafaMZu=&1!Y4<{KlT1yzGL`&3c3yo1TxK z@4g>jKk^~DtBwyqCAczNEK`L}*C10ro2%@8(GBjKb3nv7udCtSfchmJ>8%}nFPb#S zV1JwLWWRIWT*0tBW7nP>qox9Ls#CXh_-gcUe|)ff$WnP-rbn{jAjBiKDp)6K7QyBH zG|I|_9iF)+26t)KZgn)sZkEUAtJ03ubd{cjO$qr}5A(@VTn_8|xMMbqy2|O%V0AY- zv_DbI);_+oxt@wpc?OrOfL;bxJ9e(Azg6qC`= z+et+9YL@h}$GSVLyv?w@k^RtL%Tu&45uIBh<6*st&+N4rs%eF2g4dH?Tu)r;a$dl`J}Fw>St7|& z!k+p=2YU-GEFogyP{>O`;(SU~WQ+uk*Y152*k7;#kQn$!YCQ#B(eA;OqnYrMBcg3f z2f2dLa2H-8pqe62DJ=P{VyN99$01*n*TMLAlrRV5>od zOAVV21ID5durQnz9uo%?O9I0vV8d)F10`5%WS9an0;YjK+9`q=!~$_*36=#0IIsek zg>{M%W`X}x<{1G@3KSK%olw@pCm_@eg03m@KBJ{1Lbr?rVvQ*YB_iC(3^`hd+yY?(Y6ffz?2?sFg)@k8r?b3}MJmC8mNW`r zwQ#G#!T^;pUa=TWn8|>K!NCd=Odw-mssOr+oy&3!Y$J0n2eQc_u3$mSEZ+!LNs03) z^`2v(L`aFY-uAS$jlnA!vj&qwr37df&$%a5IZTZPlHBqz7y~{Fw1U!lWtdV}O{j&l8I%sk#HtJ`3`1eQGFMQzCz?^4r~pTS~7nEewL=2!)J7hzunV2?Wau zl;1uvt-vemhUWXVH%Xv4sf;1q5P$*!jsn2U1?;)GDY1INd;I zh%zvXe;K_u8x+1)$6JZKqkaP3l4{`Q2$n9)4Xhv#V5pC_h}+Z5-uO2U-l5;!d3*mV zh)?W&?}DQhqy|nDu#^c%D=bG=APU6?2Ld?qw3^a0KnYOBAtDrsUwE%Ag*aqS)k8fVQTD?!`yLEs52BmLaet7*t{m}p3{By`Z zzPyk9^83~3_hkM7^!NY14Eg)OzX$rf=Xa^EwLVAs*!wlCkE1@KeAfOb^X2wuU?2Ow z4EFoLk1(ILf0y`j>ocg2eP0Iqec(r!KWYCi^u^YnV14NRBG~W4K45&>{9WSzYyBTR Cm%P0I literal 0 HcmV?d00001 diff --git a/assets/sfx/cho b/assets/sfx/cho new file mode 100644 index 0000000000000000000000000000000000000000..b5762bf8557605e8322fef2df8a82e3fe3bb5e19 GIT binary patch literal 858 zcmY*XQHLZk5bkyRaIbfN;O_mN_XjL@%k9H(Yu(UKGy3e%gis@ddMH8&Aq-7FG{eyh z%l^juDm^o2zm~2f_0^ZEN}hf`JUo49n)UtfA1`MA^>foSH~2n%YwEaZK4Rx(+wE^* zzkvB?yWgr6Nt}ERBvF9uMT+z}L^EW{oO2&^F9w%KacL9^lbBSPrTATm4W>;W~RaxpHC(A*Pf{UJyg9A;`M7X4kFT-Z^49OhcLG({UPy;gHdl%8DtM zGEBe`V;qM=sX|3D0HZpN^XYY-=eN`8FGwXLl(m4aUHw8&SmOBhIt|Bp9+GCM1rqSC z5_ZUg;IZl==h-{QfcKRbBp{g_>xKEg>)Pklv!gYz$4OSQ_RV&FLlLUGfs9@j=GA*6!354D(ua*34MY>f*+|3F+C z9%HJhgRyKVb(w*BAz%Bx#GaRRahAg)SnlS`&~3&e{C`l&IpLLfZ712TZ94*I35QRw Q=iF0-Y58X*zRbA!2bjW?fdBvi literal 0 HcmV?d00001 diff --git a/assets/sfx/clap b/assets/sfx/clap new file mode 100644 index 0000000000000000000000000000000000000000..c9a60fc07da36c0772b01f8fd7d6c06604031db6 GIT binary patch literal 2978 zcmdT_OK&7s8FeHUkyycoUBm{21X32PSS1lkM5GX;A;gf!WZKWM+imx&s=Ds`-n#Yd zu5P=#J)W@{CY~AcKtVzSV#y*Bf)#5Pk=V}9;C$6KunUV364&Z_eD}NOJLi12u5Y~l z+H2=uU0Yj!T>%eQj;+IsAR?yKBwwxwYpJ*=cPKzk>TNGPhd87Tq<5^?!W& zd(~ba-JAMwPt95D@zc{ErhlEk_scIn6Q6zY`6oNydf^){d^>;o=Z9rCyRUAwBU6?Y zZ@1R_b#CHb$Xz+wy}j4LlaNwcpOub>eUZx{Grs7(v(Z*3DeLYWjTnzZhML}MCX^J$ z$A^)T-1t#j&Z@MmbDNglXf@oAbJ^dx(N1LK>e6RLxXn+*ZZ~!l-R~W_W%rFYew=?E zeecEZ->j9n@!;Ov2XB7oZSVBtUIm@MdQyI{v9;M! z7t1<{_kIyB^**cO-7fp^FQ1hBz~2vlvi$qv&EDy9(fQGCp68=IJ~>{>9X_karw@Mp zoBPMXyV3H|lgD?uumAM@LCM;?o0tFi+n@Lk-a4#*dwIv~9UO_WbECh=Sf};g`o5f8 zoaD>PY+p>{&F$N4QqSgh*ax>-QC&~QrPsZ!AWOXr#+Uczg}V7t_ww@LN1vX=zk9lT zd86^oKP)<;@_O;{!t}SoVstz7I*!?(!}8O|lOR8je|}&jQ?C89LoklgqAK$&TRuFW zNADkSTcmEdJ*pg&CaV+1C5!U2sqd^G72Z^*m3Cf5N4tT~$Bw1Pc#pvD1rFxI5b3Y;A0G_4sTt^DLWB%S3A9{PgZ( z>H>yc#+ddpim~(Jq3}lZup_w^u}X^C^i}0mHgiKaJ3+lNWk-58F4Bbe+gk(Yb8jUw zjnXE`bR-N9nPO2eka?C?Q#(*)QFv>uOGL=QPwT9%3WLnJ-^DKHL3(GJ$L($~1an^& za7pQ~>5R*=44X_~^VcvUilP|blFL({W?5d2J*sNWLXl{0GC2@F?gT<`sW~!@hrN-l z5+3$=IzFDDUjkq0xXv9$B1bW|xeEH-5qRZwk)#Db99b>>#EndD7-P|ZyTltHS}y{s zBb6^L{E=X#qA*loXpQ0uJ_utIXCz3Xw$?_8(I6a2DmxR#UOQ7Aof@%5yZ z!x;fg10;si!Qmt@(j*pcMzP5(mxvk8p-n?W2(M%gGEvZvn$tx}!Q%)d(05-ruAqoe zJnTaZ9xCIKB(eDB6V%Z{TLZQh3?v$Di9b_#M;)o4j^>SRs zfC%~qJR+^&1v#NOhLFG}=CBcji2~3G z(`(L94GiFgL2yqqBP}g(;OR1VBy^V|i#s)*wq$}MqkcA)J zo9An+#<6CGiW7qshbtbW^gmXUuIrvP;ikw++tmu<0le#~tKL!7D{U(lSCyz(^K0ld z8Cbevdd=kOevL}&uQ0ALo60LBO2*Tdj7HLzSZn_T DjTEwP literal 0 HcmV?d00001 diff --git a/assets/sfx/cough_cough b/assets/sfx/cough_cough new file mode 100644 index 0000000000000000000000000000000000000000..5554b025795dad216c53f2a51b295ef001b3ab6d GIT binary patch literal 6704 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 literal 0 HcmV?d00001 diff --git a/assets/sfx/inhale b/assets/sfx/inhale new file mode 100644 index 0000000000000000000000000000000000000000..9176ce9a7306850e4df902ce2e67b7eabf798023 GIT binary patch literal 5970 zcmd5<&x;(n74||7xh9w7n0x+;91=)wo5NiO*dUBBqW4{9zsGwNT?{P>7kjy z#(2rz@=xYd)p$IH#T(m~sAsAq)zj1Wp58D0{jY!d%in(Y;>ADy^xdC#|B`?B?TZ&L zzQOM|e|)k2fAiwknAu(5$Y0_8dr;n9%j^DjkIjEod(Y)7-sBwq9v@%9$9+N&d~+VW z`~T-Q`n>j;?189bd)E3G?MtApd#}peP>`ek_sgx*{ol53AZy#~+{J6e%|!}ds~9%2bW!^I^!+Ayr=0CE4cpsaq!sl7_VJ$A)E!it`EF> zLw|$ZkLhvj@$TDOy9o>uaPgr7+F*sao=psp9mn+a1kKtUDFeP*X>#2f@YLv%*|q~? zkdcdE(^&!`fbpBb!LWnVS#w)uBT0%c` zet2Oo4EquvoCQSVALQ9O83P^Q5W4@+ZbOg?AS`+{Xlbb>uuj=K?NScD;L#byXjy0ExQe+3Zc6t0 zNasRAr)eSSBPhi{B|9Z^n=Xxn`*9NGa$*3aV`EZwNpGWO5CzzfZ^ZGupiiw5@nur$SpW2C?{{T zqxmlCLTaAv;h;EaCZHcSD#~@Ta=x6%WS29^>~ZcvN-ImwwK*00`KyDH6xiOTr71eq z#R{BRA!c*TSsq~MX_Th`>#L_^TuR}nfJTUsS$i;(;3dP@xG-jjC6rTjl$glb`)sE& zrNiLQe3-1OHLGKqbS>96A-Z5(Jxx|wcq{30xg2GL#liw{l!BC?T9!NG?rU^LC{k*a zEl_7nTI0B2Sp%Fb`;-ejRtOhvUhY^w1iilkB&}hYb|zkGg}~b9`#j2+T$`Nb?Y?L$ zNlo`k>AgQ$P9)*A&9hI`8+w}*!NdiU0|e0n?SM&e?3 zPB7Urr5|UcJ1#AJ%f-c~|HSxuYKS$`w98yVJLgaemANL&?d`p~ZfAd9?A7)84CB3t zuS+mH4mV_q%3bqfC*g1$@i3)oOuFzLw|1^VLvm@naK%qG@>hd}5$PoJo#*h9#qttF zaBMV9A5+tm5D}8LEJp?DYS`OC=5$JazK@33p6_HBp!bK1P?CiTllAT2?~qG_M@IUA zqVvdVQ{_87GD6IXMYt&sCGdRG0=88-{dDo#{PQ-)SFgq^{^sId={p_HG$0R9LOzrz z7-C5~iBPHeo>yc|wJUF?#j;x%zk-(L9~b0qobmA}JggoTN;pRk`xHv+I8}2h?fj5n zyGVsTA#U4nFhMR+A-lhs!BiJ`D|cOBW;JsEhG)9WQY=G^?wFW+DkkNGuUWJq@`%&5Qju6^C?@YkpU24S@+0Eu{bH;+CegkJ8aY8^R)i6{X}5D-t^i zBs1tVJFS?6l@i8XPqOn4vJVUK)tBWXZ<}7h4wx9}36>eZS zLNx*;6S1Wlm28d$r1k7k%Hf$%M8lGNKypx~q>xd-!Z}fR!=DgkDJCRNi(H*h1t~5) z$~n}IEyB3q48_4|x?mQS1&%wQUhj%R!2mZ!!DLZn8}QU9xFMbKl>|z3zYaFVstR3UxPZ>uHMzep&i_xK!G9+w~h5; zgYP&_{BVXK>*9f;FIfp75y){Vf|X&5ehcasfWAq;2dpnzr< zox0y0H})Hu?-#UwyTtO&pkLU~*8AooPfX!^C*K|$UB3|a*12~`+jiKz|8-rg#2rGP z>d#f%Yj@+dPGNTYu;K3gb-XI(J@hV22eBdR@29~Acm2}48_i0$&2?aC;Q9FK9gKdi zJaDBeYSd)=h^s+yPJ(XE?L7J Dkq%|t literal 0 HcmV?d00001 diff --git a/assets/sfx/reverse b/assets/sfx/reverse new file mode 100644 index 0000000000000000000000000000000000000000..0a0b554dd028feadcbcb77a8e47651d57d033893 GIT binary patch literal 2040 zcmcJPS#KOg5XUzX61>7E;GOS42q+d2;!uP_4m+`f?e*Hb_Ih_`rf>B*GkbY$FFxX% z5Kts52tqEAkia+MBk*tM1u0KFP`lI9-P2WFUG=NJd}(6h@3$+JZ!TQ9IN#{J|6Zk1 zIfvi7A5_ksbCq{6Ge7ff=PkVdz{=T~&P;sU;GDI_SZ|D%Rx4w);zmKxN~Q#pQVK34 zLy8!5GnTWX1| zwN*Oy4Z87@l^lztW=3kkqXyI1N5D5u4d?KQGcHvoNZgB4K^1%<5*`sakitpADLl*= z$!NwhN?DR&Nt$H%&`Jd%9rF4kNkx{j4xuDXp-u?RDD0BhU@L6Il|Ub7L0F^`Mo0r! zFqCjyXcwJ#2B(qkERIfL#u(`YBCNIb+6t$2P+n_ivD|uVoQ&&DRL7}}=MoA|3um~2 z8HvV9hYTrcEvAHV-dY8V%CbVs5=nCyv)n0U64s3tro@&Gw!POrz#eo&FuJtb29J!J z;Ec^(P{CsYxesv2dptHk(YP`wt#zIUVReCoz`Lks;Jfk)kMWu*C%jZlX~%>?OoXBq z85aggCXxgIL!<#OmTE+h7%Ri_UQCG}9_*heHP}HJqYyybK7C z0VbN-2oU@b1m!|y2DM0Ino=OwrY)Kz32C-T%A1`mNzyEBa*-yeGtiiDn(>rnnNCSt zP{w3NmZ0UP|Lk1gRLY50E@4MRiFOBCZIF^nx%0_TiDSGSY=UssL4wu!GhJY`4Hp-LgCE_WPsJXnnXj z9&fB~Yz#KX>!ZQOaC2jQINBJj^#+5rQNKSN4hMr?S$2B?N69^CMS-C-3`zm1LXE~0 zA{&Zf7w{D06B}?P1bD+8f~$&>EKAz0m1c8gx!zc;EiF~6^9$8lt-4U1pPOA+s8wr? z<<)j;HAOBm4peY$*^q}E-u8>GFY@B7#!xo#zUaREC&lk^MK7aA->C?xLe*5+3 z2dDRcx_9^F@L+FuYrHWUB7guPh7O5jptI9jMI0LS`qI+U;^HFO*HW+78;!>DnXEKd z+ntm!pzlIa0-qciKn{AN?c>uYZ@BQ+t7i{Sf7svb>TG%b=9Mod&VTqn$@z~ieEiA9 ziBB(m_W74zUH1BvUPaB~wlj=zI!ZEbCD@9gaC?(W{Xv$wamzkhIWaCmrhbaV_k dfqW0S`=8`r3Q_sBL{ldx(dh9ptREd!{sFB1-oXF> literal 0 HcmV?d00001 diff --git a/assets/sfx/ronf b/assets/sfx/ronf new file mode 100644 index 0000000000000000000000000000000000000000..e9f6ffe1003a1c414939f5736001a608be344ceb GIT binary patch literal 5020 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 literal 0 HcmV?d00001 diff --git a/assets/sfx/sneeze_short b/assets/sfx/sneeze_short new file mode 100644 index 0000000000000000000000000000000000000000..2cea8bc096d5f9a1737740509995b0eda551f5ad GIT binary patch literal 2730 zcma(T+j85+Rhj8Sr*G{S^u055)9Iw1cH-I@$CuPjB`b~{S)nczFQ!NeAP6q7SS)t2 zTmS??kRTA#Ph?SOr5Q_roJyuGE1q-_XLy#<;qfJDTd_#8CFabZx9t0bNyq?)%u(pjCIMRzZOKK6mO;UWJ^y9Kg__v>>Z)otVHN zzFjse7Uy<08}vO(Vybd-7~~dvl;CnT)!g-E-^%x$?Cf$BK5EZPDes_|0TO8rDtQo% zb0ARJ$XCop#;b$NCoSdq{8F|=5mLINOHtPP)7z&M{P*Ym z>mTg@_M2+Hm+T>ZoWvg#^3d1++>qI#`hYhi-7~izCRY;n!O;^Qyz{FshA)n!db&yb z#SC2Xc8_J6E;ltlnTBP*mM%WpR10_Jfv>*UoRe;0+S!wXcjhAYf`3?6p1Vhdi#MX+ z(eYKcwLOGui<-B1P%50NCp~#dJ=z_wz5CIJ?Auo-^Oxr3pn1!*=y1Iy-OTG-)lwGk z-c!XfO`i8uaEOv2uX>pZ}pW;gw|Z1d$}9<&h4Lt^Udco z?*)^=&E)3k!+VpNjeYs^p3;2&6o0)RrFVAQCr+C*3jaRWYyGlIOK^erNGg+~7W%|H ztlhfvC0>yCd#ltOHMUm694cxV*QRw+2n|s5wt>%!M_O&WGXO)jy}ofu`bHEQ#>xYK zX>@me`HFhWU>Aya=9HV6jU3iB2ZjOI0K^%p=|V#Xe!f^w&y>7{#0Mnx>*?kELgMQA zd*>7PQL%M$2 zAGF(}``sS$u?Emn&DpKE^-(6Mwz@qN4o2*Yd$>1_O45#I$v8?5%Y}&B%~oyS$nuU!EjGcC0(X?Jzoy`K(4_frE@ zvgOjEH+vl@mkEbUrQ242-UE5(ST>)Kb)cFj9Hr3SmcNE~R7D=_MonCEhJ)yEPxHgb z{T%Ec$fNLJ-`y0slE?Qu&fMmL$D~pyEhk$uT$(8+Z>*)@be1N%NwuD&EfQ5CzZID_TB}a~mKat7fA-)aVwVm1bYov}O-xy`G67?)qil?x@^rVbU_F zGYED8?KGl58g^HGlxMigbby*h4&?|@vnvo*WKvOJDpV;(dIbWls7;f8Az=f2rY!E#><4+R@y_ZDKSIp0^mYwGM%ZGV^hd6$GD4FgA$HByWwJ; zLtbMXnM7+-OiK(3L=zefjY89)q+()CSz|;hSZiAKJ}V(ZRjC51oT(7OK;ndR23%C* zcH1RBty`vNx-R6zHVAhd&7uxQSf?dQpfA(1>OpKO5MvALHLgRAAfW^EDgm@^h|n>+ z4yX%lgc@c*fu}l7wI-^#OllMWYWSecw18Bp+Oz}#rraaUp^Q;x5nOXIwJ1j})|gIN zg&K%y03utH>l!pQ8$%-eGKpzfOfU#y0zG69gHerH7S$=$gu&u7ZBPVj8bYdLRWTG5 zr85g!vdvY~v_yRoV(S*h5D~EviU>kX7vXa?juC@4(JVv^h!KK1!6t%&)PR;&)v*CJ zmBK1ku>lY?g#XZ_hKY%oqMg98Gl&T&bWqA1W>aP}+vcoBUB+v+YdbDsoVkn%gfoY@ z4t5-I%^lmNoY6WHLGc)MZI9ZVcs8wxu7Xn{7(~!Sj6lECufQTgoixGE8B1Tw*NHj?? zjNg#Bi#sTj#?6x$F`Z~kghAA@MN)_@5P`-}m>6G)C1laFe(N>YYu49?F~vQz)U-e1bxKiJQQnR(J)ue?2z_p{IujnQzh73->+nDfXXUf*+N SU;3!$KQPG-T>fd(W`s9W_v#4% literal 0 HcmV?d00001 diff --git a/ipk/debian-binary b/ipk/debian-binary new file mode 100644 index 0000000..cd5ac03 --- /dev/null +++ b/ipk/debian-binary @@ -0,0 +1 @@ +2.0 diff --git a/src/audio.c b/src/audio.c new file mode 100644 index 0000000..af28041 --- /dev/null +++ b/src/audio.c @@ -0,0 +1,128 @@ +#include "include.h" + +#include "audio.h" + +// sfx +Mix_Chunk *bongo; +Mix_Chunk *cat_sound; +Mix_Chunk *cho; +Mix_Chunk *clap; +Mix_Chunk *cough_cough; +Mix_Chunk *game_start; +Mix_Chunk *inhale; +Mix_Chunk *reverse; +Mix_Chunk *ronf; +Mix_Chunk *rumble; +Mix_Chunk *sneeze_long; +Mix_Chunk *sneeze_short; + +// bgm +Mix_Chunk *game_over; +Mix_Chunk *in_game; + +int bgm_channel = 0; + +void load_audio(void) { + + bongo = Mix_LoadWAV("assets/sfx/bongo"); + cat_sound = Mix_LoadWAV("assets/sfx/cat_sound"); + cho = Mix_LoadWAV("assets/sfx/cho"); + clap = Mix_LoadWAV("assets/sfx/clap"); + cough_cough = Mix_LoadWAV("assets/sfx/cough_cough"); + game_start = Mix_LoadWAV("assets/sfx/game_start"); + inhale = Mix_LoadWAV("assets/sfx/inhale"); + reverse = Mix_LoadWAV("assets/sfx/reverse"); + ronf = Mix_LoadWAV("assets/sfx/ronf"); + rumble = Mix_LoadWAV("assets/sfx/rumble"); + sneeze_long = Mix_LoadWAV("assets/sfx/sneeze_long"); + sneeze_short = Mix_LoadWAV("assets/sfx/sneeze_short"); + + game_over = Mix_LoadWAV("assets/bgm/game_over"); + in_game = Mix_LoadWAV("assets/bgm/in_game"); + +} + +void unload_audio(void) { + + Mix_FreeChunk(bongo); + Mix_FreeChunk(cat_sound); + Mix_FreeChunk(cho); + Mix_FreeChunk(clap); + Mix_FreeChunk(cough_cough); + Mix_FreeChunk(game_start); + Mix_FreeChunk(inhale); + Mix_FreeChunk(reverse); + Mix_FreeChunk(ronf); + Mix_FreeChunk(rumble); + Mix_FreeChunk(sneeze_long); + Mix_FreeChunk(sneeze_short); + + Mix_FreeChunk(game_over); + Mix_FreeChunk(in_game); + +} + +int play_sound_internal(char *name, int loop) { + + Mix_Chunk *sound; + + if(!strcmp(name, "bongo")) { + sound = bongo; + } else if (!strcmp(name, "cat_sound")) { + sound = cat_sound; + } else if (!strcmp(name, "cho")) { + sound = cho; + } else if (!strcmp(name, "clap")) { + sound = clap; + } else if (!strcmp(name, "cough_cough")) { + sound = cough_cough; + } else if (!strcmp(name, "game_start")) { + sound = game_start; + } else if (!strcmp(name, "inhale")) { + sound = inhale; + } else if (!strcmp(name, "reverse")) { + sound = reverse; + } else if (!strcmp(name, "ronf")) { + sound = ronf; + } else if (!strcmp(name, "rumble")) { + sound = rumble; + } else if (!strcmp(name, "sneeze_long")) { + sound = sneeze_long; + } else if (!strcmp(name, "sneeze_short")) { + sound = sneeze_short; + } else if (!strcmp(name, "game_over")) { + sound = game_over; + } else if (!strcmp(name, "in_game")) { + sound = in_game; + } + + return Mix_PlayChannel(-1, sound, loop); + +} + +void play_sound(char *name) { + play_sound_internal(name, 0); +} + +void play_sound_and_wait(char *name) { + int chan = play_sound_internal(name, 0); + int playing = Mix_Playing(chan); + while(playing) { // wait for sound to end + SDL_Delay(50); + playing = Mix_Playing(chan); + } + SDL_Delay(500); +} + +void play_bgm(char *name) { + bgm_channel = play_sound_internal(name, -1); +} +void pause_bgm(void) { + Mix_Pause(bgm_channel); +} +void resume_bgm(void) { + Mix_Resume(bgm_channel); +} +void stop_bgm(void) { + Mix_HaltChannel(bgm_channel); +} \ No newline at end of file diff --git a/src/audio.h b/src/audio.h new file mode 100644 index 0000000..38dbb7b --- /dev/null +++ b/src/audio.h @@ -0,0 +1,10 @@ +void play_sound(char *name); +void play_sound_and_wait(char *name); +void play_bgm(char *name); + +void pause_bgm(void); +void resume_bgm(void); +void stop_bgm(void); + +void load_audio(void); +void unload_audio(void); \ No newline at end of file diff --git a/src/graphics.c b/src/graphics.c new file mode 100644 index 0000000..f32fca9 --- /dev/null +++ b/src/graphics.c @@ -0,0 +1,77 @@ +#include "include.h" + +#include "main.h" + +extern SDL_Surface *tilesIMG; +extern SDL_Surface *fpsFontIMG; + +// load_asset is a helper function to reload assets from a file +SDL_Surface* load_asset(char path[]) { + + SDL_Surface* _img = IMG_Load(path); + SDL_Surface* img = SDL_DisplayFormat(_img); + SDL_FreeSurface(_img); + + return img; + +} + +// print_score draws the specified score on the specified screen at the specified coordinates +void print_score(int score_x, int score_y, int number, SDL_Surface * screen) { + + int n = log10(number) + 1; + int i; + int *numberArray = calloc(n, sizeof(int)); + for ( i = 0; i < n; ++i, number /= 10 ) + { + numberArray[i] = number % 10; + } + + SDL_Rect SrcZero = {x: 0, y: 112, w: 8, h: 16}; + SDL_Rect DstDigitZero = {x: score_x, y: score_y}; + SDL_Rect DstDigitOne = {x: score_x + 8, y: score_y}; + SDL_Rect DstDigitTwo = {x: score_x + 16, y: score_y}; + + if(n == 1) { + SDL_BlitSurface(tilesIMG, &SrcZero, screen, &DstDigitZero); + SDL_BlitSurface(tilesIMG, &SrcZero, screen, &DstDigitOne); + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 8 * numberArray[0], y: 112, w: 8, h: 16}, screen, &DstDigitTwo); + } else if(n == 2) { + SDL_BlitSurface(tilesIMG, &SrcZero, screen, &DstDigitZero); + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 8 * numberArray[0], y: 112, w: 8, h: 16}, screen, &DstDigitTwo); + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 8 * numberArray[1], y: 112, w: 8, h: 16}, screen, &DstDigitOne); + } else if(n == 3) { + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 8 * numberArray[0], y: 112, w: 8, h: 16}, screen, &DstDigitTwo); + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 8 * numberArray[1], y: 112, w: 8, h: 16}, screen, &DstDigitOne); + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 8 * numberArray[2], y: 112, w: 8, h: 16}, screen, &DstDigitZero); + } else { // for zero digits and more than 3 we just show zeroes lol + SDL_BlitSurface(tilesIMG, &SrcZero, screen, &DstDigitTwo); + SDL_BlitSurface(tilesIMG, &SrcZero, screen, &DstDigitOne); + SDL_BlitSurface(tilesIMG, &SrcZero, screen, &DstDigitZero); + } + +} + +// clear_screen resets the screen +void clear_screen(SDL_Surface* screen) { + + SDL_FillRect(screen, NULL, 0); + + int row, col; + for (row = 0; row < 2; row++) { + for (col = 0; col < 14; col++) { + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 64, y: 64, w: 20, h: 20}, screen, &(SDL_Rect){x: 21 + 20*col, y: row*221}); + } + } + + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 80, y: 112, w: 17, h: 7}, screen, &(SDL_Rect){x: 208, y: 22}); //Hi + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 80, y: 121, w: 47, h: 7}, screen, &(SDL_Rect){x: 226, y: 22}); //Score + + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 80, y: 121, w: 47, h: 7}, screen, &(SDL_Rect){x: 226, y: 213}); //Score + + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 64, y: 95, w: 23, h: 7}, screen, &(SDL_Rect){x: 22, y: 213}); //JpLeft + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 64, y: 84, w: 65, h: 8}, screen, &(SDL_Rect){x: 49, y: 212}); //JpRight + + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 80, y: 16, w: 48, h: 7}, screen, &(SDL_Rect){x: 141, y: 224}); //exit->esc + +} diff --git a/src/graphics.h b/src/graphics.h new file mode 100644 index 0000000..dfa5d70 --- /dev/null +++ b/src/graphics.h @@ -0,0 +1,8 @@ +void clear_screen(SDL_Surface*); +void game_over_animation(SDL_Surface*); +void game_won_animation(SDL_Surface*); +void print_board(SDL_Surface*); +void move_board(int, SDL_Surface*); +void print_score(int, int, int, SDL_Surface*); + +SDL_Surface* load_asset(char path[]); diff --git a/src/include.h b/src/include.h new file mode 100644 index 0000000..38bcd7b --- /dev/null +++ b/src/include.h @@ -0,0 +1,11 @@ +#include +#include +#include +#include +#include +#include + +#include +#include +#include "SDL/SDL_mixer.h" +#include "SDL/SDL_sound.h" \ No newline at end of file diff --git a/src/keys.c b/src/keys.c new file mode 100644 index 0000000..28cf32b --- /dev/null +++ b/src/keys.c @@ -0,0 +1,37 @@ +#include "include.h" + +int internal_keycode_from_sdl(int sdl_keycode) { + + /* + invalid = -1 + up = 0 + right = 1 + down = 2 + left = 3 + start = 4 + select = 5 + */ + + + switch(sdl_keycode) { + case SDLK_ESCAPE: //Select + return 5; + case SDLK_RETURN: + return 4; + case SDLK_LCTRL: // A button + case SDLK_RIGHT: // right + return 1; + case SDLK_LSHIFT: // Y button + case SDLK_LEFT: // left + return 3; + case SDLK_LALT: // B button + case SDLK_DOWN: // down + return 2; + case SDLK_SPACE: // X button + case SDLK_UP: // up + return 0; + default: + return -1; + } + +} diff --git a/src/keys.h b/src/keys.h new file mode 100644 index 0000000..83530e9 --- /dev/null +++ b/src/keys.h @@ -0,0 +1 @@ +int internal_keycode_from_sdl(int); \ No newline at end of file diff --git a/src/logic.c b/src/logic.c new file mode 100644 index 0000000..945b960 --- /dev/null +++ b/src/logic.c @@ -0,0 +1,135 @@ +#include "include.h" + +// get_best_score_from_file loads the best saved score from best_score.txt and puts it to best_score +int get_best_score_from_file(void) { + + if(access("./best_score.txt", F_OK) != 0) { + return 0; + } + + FILE *fp; + char buff[10]; + fp = fopen("./best_score.txt", "r"); + fscanf(fp, "%s", buff); + int bs; + sscanf(buff, "%d", &bs); + return bs; + +} + +// save_best_score_to_file puts the best score (from global var best_score) to best_score.txt +void save_best_score_to_file(int score) { + + int best_score = score; + FILE *fp = fopen("./best_score.txt", "w"); + char snum[5]; + sprintf(snum, "%d", best_score); + fputs(snum, fp); + fclose(fp); + +} + +float points_distance(int x1, int y1, int x2, int y2) { + return sqrt(pow(x2- x1, 2) + pow(y2-y1, 2)); +} + +int is_player_inside_lemon(int player_x, int player_y, int lemon_x, int lemon_y) { + return points_distance(player_x, player_y, lemon_x+32, lemon_y+32) < 32; +} + + +void entity_decelerate(float *speed_x, float *speed_y, float deceleration) { + + if(*speed_x > 0) { + *speed_x -= deceleration; + }else{ + *speed_x += deceleration; + } + if(*speed_y > 0) { + *speed_y -= deceleration; + }else{ + *speed_y += deceleration; + } + +} +void player_decelerate(float *speed_x, float *speed_y) { + entity_decelerate(speed_x, speed_y, 0.1); +} +void lemon_decelerate(float *speed_x, float *speed_y) { + entity_decelerate(speed_x, speed_y, 0.005); + *speed_y += 0.05; +} + +void entity_cap(float *speed_x, float *speed_y) { + + if(*speed_x > 3) { + *speed_x = 3; + } + if(*speed_x < -3) { + *speed_x = -3; + } + if(*speed_y > 3) { + *speed_y = 3; + } + if(*speed_y < -3) { + *speed_y = -3; + } + +} +void player_cap(float *speed_x, float *speed_y) { + entity_cap(speed_x, speed_y); +} +void lemon_cap(float *speed_x, float *speed_y) { + entity_cap(speed_x, speed_y); +} + +void player_approximate(float *player_speed_x, float *player_speed_y) { + if(*player_speed_x > -0.1 && *player_speed_x < 0.1) { + *player_speed_x = 0; + } + if(*player_speed_y > -0.1 && *player_speed_y < 0.1) { + *player_speed_y = 0; + } +} + +void avoid_entity_outside_bonds(int *x, int *y, float *speed_x, float *speed_y, int br_x, int br_y) { + if(*x < 20 || *x > br_x) { + if(*x < 20) { + *x = 20; + }else{ + *x = br_x; + } + *speed_x = -*speed_x; + } + if(*y < 20 || *y > br_y) { + if(*y < 20) { + *y = 20; + }else{ + *y = br_y; + } + *speed_y = -*speed_y; + } +} +void avoid_player_outside_bonds(int *x, int *y, float *speed_x, float *speed_y) { + avoid_entity_outside_bonds(x, y, speed_x, speed_y, 284, 204); +} +void avoid_lemon_outside_bonds(int *x, int *y, float *speed_x, float *speed_y) { + avoid_entity_outside_bonds(x, y, speed_x, speed_y, 237, 157); +} + +int check_player_inside_prints(int tail_x, int tail_y, int paw1_x, int paw1_y, int paw2_x, int paw2_y) { + + if(tail_x + 5 >= paw1_x && tail_x <= paw1_x + 10) { + if(tail_y + 5 >= paw1_y && tail_y <= paw1_y + 10) { + return 1; + } + } + if(tail_x + 5 >= paw2_x && tail_x <= paw2_x + 10) { + if(tail_y + 5 >= paw2_y && tail_y <= paw2_y + 10) { + return 1; + } + } + + return 0; + +} \ No newline at end of file diff --git a/src/logic.h b/src/logic.h new file mode 100644 index 0000000..990119e --- /dev/null +++ b/src/logic.h @@ -0,0 +1,15 @@ +int get_best_score_from_file(void); +void save_best_score_to_file(int); + +int is_player_inside_lemon(int, int, int, int); + +void player_decelerate(float*, float*); +void player_cap(float*, float*); +void player_approximate(float*, float*); +void avoid_player_outside_bonds(int*, int*, float*, float*); + +void lemon_decelerate(float*, float*); +void lemon_cap(float*, float*); +void avoid_lemon_outside_bonds(int*, int*, float*, float*); + +int check_player_inside_prints(int, int, int, int, int, int); \ No newline at end of file diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..f379d57 --- /dev/null +++ b/src/main.c @@ -0,0 +1,49 @@ +#include "include.h" + +//#include "main.h" +#include "audio.h" +#include "match.h" +#include "graphics.h" + +SDL_Surface *tilesIMG; +SDL_Surface *fpsFontIMG; + +int main(void) { + + // attempt to initialize graphics and timer systema + if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER|SDL_INIT_AUDIO) != 0) { + printf("error initializing SDL: %s\n", SDL_GetError()); + return 1; + } + + atexit(SDL_Quit); + + SDL_Surface * screen = SDL_SetVideoMode(320, 240, 16, SDL_SWSURFACE); + if (!screen) { + printf("error creating window: %s\n", SDL_GetError()); + SDL_Quit(); + return 1; + } + SDL_ShowCursor(SDL_DISABLE); + + if(Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 4096) != 0) { + printf("error initializing SDL Mixer: %s\n", Mix_GetError()); + } + load_audio(); + + tilesIMG = load_asset("assets/images/JILJIL.png"); + fpsFontIMG = load_asset("assets/images/fpsfont.png"); + + int quit = 0; + quit = boot_animation(screen); + if(!quit) { + while(!quit) { + quit = match(screen); + } + } + + SDL_Quit(); + unload_audio(); + Mix_Quit(); + +} diff --git a/src/main.h b/src/main.h new file mode 100644 index 0000000..ee1df09 --- /dev/null +++ b/src/main.h @@ -0,0 +1,7 @@ +#ifndef MAINDOTH +#define MAINDOTH + +extern SDL_Surface *tilesIMG; +extern SDL_Surface *fpsFontIMG; + +#endif \ No newline at end of file diff --git a/src/match.c b/src/match.c new file mode 100644 index 0000000..44d6a41 --- /dev/null +++ b/src/match.c @@ -0,0 +1,351 @@ +#include "include.h" + +#include "main.h" +#include "audio.h" +#include "logic.h" +#include "graphics.h" +#include "keys.h" + +int pause_game(SDL_Surface *screen) { + + pause_bgm(); + //return 1 = quit; return 0 = proceed + SDL_Surface *pauseIMG = load_asset("assets/images/pause.png"); + + SDL_BlitSurface(pauseIMG, NULL, screen, NULL); + SDL_Flip(screen); + + SDL_FreeSurface(pauseIMG); + + SDL_Event event; + while (1) { + while (SDL_PollEvent(&event)) { + switch (event.type) { + case SDL_QUIT: + return 1; + case SDL_KEYDOWN: + switch (event.key.keysym.sym) { + case SDLK_ESCAPE: //select -> exit + return 1; + case SDLK_RETURN: //start -> continue + resume_bgm(); + return 0; + case SDLK_BACKSPACE: //R -> reset + resume_bgm(); + return 2; + break; + case SDLK_LSHIFT: //Y -> clear best score + save_best_score_to_file(0); + resume_bgm(); + return 2; + case SDLK_SPACE: //X -> zen mode + // to be implemented soon (TM) + break; + case SDLK_LALT: //B -> hard mode + // to be implemented soon (TM) + break; + case SDLK_LCTRL: //A -> normal + // to be implemented soon (TM) + break; + default: + break; + } + } + } + SDL_Delay(100); + } + +} + +int match(SDL_Surface *screen) { + + //return 1 = quit; return 0 = new game + + int game_over = 0; + + int player_x = 155; + int player_y = 213; + float player_speed_x = 0; + float player_speed_y = 0; + + int player_last_x_1 = 0; + int player_last_y_1 = 0; + int paw1_x = 0; + int paw1_y = 0; + int player_last_x_2 = 0; + int player_last_y_2 = 0; + int paw2_x = 0; + int paw2_y = 0; + + int lemon_x = 0; + int lemon_y = 0; + float lemon_speed_x = 2.5; + float lemon_speed_y = 2.5; + + int down_keys[6] = {0}; + int score = 0; + int best_score = get_best_score_from_file(); + + int player_past_x[40] = {0}; + int player_past_y[40] = {0}; + + long long frame = 0; + long long last_point = 0; + + play_sound("game_start"); + stop_bgm(); + play_bgm("in_game"); + while(!game_over) { + + + frame++; + Uint32 start = SDL_GetTicks(); + SDL_Event event; + + // add or remove keys to the down keys array + int key = 0; + while (SDL_PollEvent(&event)) { + switch (event.type) { + case SDL_QUIT: + return 1; + case SDL_KEYDOWN: + key = internal_keycode_from_sdl(event.key.keysym.sym); + if(key != -1) { + down_keys[key] = 1; + } + break; + case SDL_KEYUP: + key = internal_keycode_from_sdl(event.key.keysym.sym); + if(key != -1) { + down_keys[key] = 0; + } + break; + } + } + + player_decelerate(&player_speed_x, &player_speed_y); + player_cap(&player_speed_x, &player_speed_y); + player_approximate(&player_speed_x, &player_speed_y); + avoid_player_outside_bonds(&player_x, &player_y, &player_speed_x, &player_speed_y); + + // add speed according to down keys + if(down_keys[0]) { + player_speed_y -= 0.2; + } + if(down_keys[1]) { + player_speed_x += 0.2; + } + if(down_keys[2]) { + player_speed_y += 0.2; + } + if(down_keys[3]) { + player_speed_x -= 0.2; + } + + // add player speed to player position + player_x += player_speed_x; + player_y += player_speed_y; + + + lemon_decelerate(&lemon_speed_x, &lemon_speed_y); + lemon_cap(&lemon_speed_x, &lemon_speed_y); + avoid_lemon_outside_bonds(&lemon_x, &lemon_y, &lemon_speed_x, &lemon_speed_y); + + // add lemon speed to lemon position + lemon_x += lemon_speed_x; + lemon_y += lemon_speed_y; + + if (is_player_inside_lemon(player_x, player_y, lemon_x, lemon_y)) { + lemon_speed_x = lemon_speed_x + player_speed_x; + lemon_speed_y = lemon_speed_y + player_speed_y; + player_speed_x = -player_speed_x * 0.9; + player_speed_y = -player_speed_y * 0.9; + if(last_point + 30 < frame) { + score++; + play_sound("clap"); + last_point = frame; + } + } + + clear_screen(screen); + + // update paw prints + if(frame % 30 == 0) { + if((frame / 30) % 2 == 0) { + player_last_x_1 = player_past_x[0]; + player_last_y_1 = player_past_y[0]; + paw1_x = player_last_x_2; + paw1_y = player_last_y_2; + }else{ + player_last_x_2 = player_past_x[0]; + player_last_y_2 = player_past_y[0]; + paw2_x = player_last_x_1; + paw2_y = player_last_y_1; + } + } + + // TEST + // SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 31, y: 79, w: 5, h: 5}, screen, &(SDL_Rect){x: player_past_x[5], y: player_past_y[5]}); + + if(check_player_inside_prints(player_past_x[5], player_past_y[5], paw1_x, paw1_y, paw2_x, paw2_y)) { + if(frame > 180) { + game_over = 1; + } + } + + // draw lemon + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 0, y: 48, w: 64, h: 64}, screen, &(SDL_Rect){x: lemon_x, y: lemon_y}); + + // add position to past positions and draw tail pieces + int *temp_past_x; + temp_past_x = player_past_x; + int *temp_past_y; + temp_past_y = player_past_y; + int i; + for(i = 0; i < 39; i++) { + player_past_x[i] = temp_past_x[i+1]; + player_past_y[i] = temp_past_y[i+1]; + if(i % 5 == 0 && player_past_x[i] != 0 && player_past_y[i] != 0) { + // draw player tail pieces + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 128 - i/5 * 16, y: 0, w: 16, h: 16}, screen, &(SDL_Rect){x: player_past_x[i], y: player_past_y[i]}); + } + } + player_past_x[39] = player_x; + player_past_y[39] = player_y; + + // draw player head + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 0, y: 0, w: 16, h: 16}, screen, &(SDL_Rect){x: player_x, y: player_y}); + + // add paw prints + if(paw1_x != 0) { // make sure it isn't in the first secs of the game where random prints would appear in top left + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 0, y: 16, w: 32, h: 32}, screen, &(SDL_Rect){x: paw1_x, y: paw1_y}); + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 32, y: 16, w: 32, h: 32}, screen, &(SDL_Rect){x: paw2_x, y: paw2_y}); + } + + // handle pause input + int was_paused = 0; + if(down_keys[4] || down_keys[5]) { + switch(pause_game(screen)) { + case 1: // request to exit + return 1; + case 2: // restart the game + return 0; + } + was_paused = 1; + down_keys[4] = 0; + down_keys[5] = 0; + } + + print_score(276, 204, score, screen); // current score + print_score(276, 21, best_score, screen); // best score + + + SDL_Flip(screen); + + // sleep so that the fps stays at abt 60fps + if(!was_paused) { + + Uint32 end = SDL_GetTicks(); + float elapsedMS = end - start; + + SDL_Delay(floor(16.666f - elapsedMS)); + + } + + } + + stop_bgm(); + play_bgm("game_over"); + + if(score > best_score) { + save_best_score_to_file(score); + } + + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 64, y: 32, w: 64, h: 16}, screen, &(SDL_Rect){x: 133, y: 206}); // push start + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 64, y: 16, w: 16, h: 16}, screen, &(SDL_Rect){x: player_x, y: player_y}); // caught face + SDL_Flip(screen); + + SDL_Event event; + while (1) { + while (SDL_PollEvent(&event)) { + switch (event.type) { + case SDL_QUIT: + return 1; + case SDL_KEYDOWN: + switch (event.key.keysym.sym) { + case SDLK_ESCAPE: //select -> pause menu + pause_game(screen); + case SDLK_RETURN: //start -> new game + return 0; + default: + break; + } + } + } + SDL_Delay(100); + } + + return 0; + +} + +int boot_animation(SDL_Surface *screen) { + + //return 1 = quit 0 = continue; + + SDL_Event event; + SDL_Flip(screen); + + play_sound_and_wait("inhale"); + SDL_Rect SrcR = {x: 89, y: 64, w: 35, h: 20}; + SDL_Rect DestR = {x: 126, y: 51}; + SDL_BlitSurface(tilesIMG, &SrcR, screen, &DestR); //Jil + SDL_Flip(screen); + + DestR.x = 126+35; + SDL_BlitSurface(tilesIMG, &SrcR, screen, &DestR); //Jil + SDL_Flip(screen); + + play_sound_and_wait("sneeze_long"); + + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 80, y: 25, w: 44, h: 7}, screen, &(SDL_Rect){x: 138, y: 121}); //Date + SDL_Flip(screen); + + play_sound_and_wait("sneeze_short"); + + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 64, y: 103, w: 55, h: 9}, screen, &(SDL_Rect){x: 133, y: 141}); //Tortoiseshell + SDL_Flip(screen); + //SDL_Delay(1000); + + play_sound_and_wait("cough_cough"); + while (SDL_PollEvent(&event)) { + // discard the inputs + } + + SDL_BlitSurface(tilesIMG, &(SDL_Rect){x: 66, y: 37, w: 62, h: 10}, screen, &(SDL_Rect){x: 133, y: 166}); //Push start + SDL_Flip(screen); + + play_sound("ronf"); + + while (1) { + while (SDL_PollEvent(&event)) { + switch (event.type) { + case SDL_QUIT: + return 1; + case SDL_KEYDOWN: + switch (event.key.keysym.sym) { + case SDLK_ESCAPE: //select -> pause menu + if(pause_game(screen)) { + return 1; + } + case SDLK_RETURN: //start -> continue + return 0; + default: + break; + } + } + } + SDL_Delay(100); + } + +} \ No newline at end of file diff --git a/src/match.h b/src/match.h new file mode 100644 index 0000000..770ee06 --- /dev/null +++ b/src/match.h @@ -0,0 +1,3 @@ +int match(SDL_Surface *); +int pause_game(SDL_Surface *); +int boot_animation(SDL_Surface *); \ No newline at end of file