From a73fa17a124d33520cda0e2532a33ea8cf94cadd Mon Sep 17 00:00:00 2001 From: Alexandre Date: Sun, 18 Aug 2024 16:04:22 +0200 Subject: [PATCH] Initial commit --- .vscode/settings.json | 11 +++ Makefile | 29 +++++++ README.md | 1 + bin/mamaker | Bin 0 -> 76824 bytes obj/assembly.o | Bin 0 -> 49072 bytes obj/base.o | Bin 0 -> 49160 bytes obj/display.o | Bin 0 -> 44904 bytes obj/main.o | Bin 0 -> 44048 bytes res/digits/big-sign-sum.bmp | Bin 0 -> 126054 bytes res/digits/digit-0.bmp | Bin 0 -> 31554 bytes res/digits/digit-1.bmp | Bin 0 -> 31554 bytes res/digits/digit-2.bmp | Bin 0 -> 31554 bytes res/digits/digit-3.bmp | Bin 0 -> 31554 bytes res/digits/digit-4.bmp | Bin 0 -> 31554 bytes res/digits/digit-5.bmp | Bin 0 -> 31554 bytes res/digits/digit-6.bmp | Bin 0 -> 31554 bytes res/digits/digit-7.bmp | Bin 0 -> 31554 bytes res/digits/digit-8.bmp | Bin 0 -> 31554 bytes res/digits/digit-9.bmp | Bin 0 -> 31554 bytes res/digits/sign-minus.bmp | Bin 0 -> 31554 bytes res/digits/sign-plus.bmp | Bin 0 -> 31554 bytes res/digits/sign-prod.bmp | Bin 0 -> 31554 bytes res/digits/sum-k.bmp | Bin 0 -> 31554 bytes src/assembly.c | 162 ++++++++++++++++++++++++++++++++++++ src/assembly.h | 16 ++++ src/base.c | 114 +++++++++++++++++++++++++ src/base.h | 14 ++++ src/config.txt | 126 ++++++++++++++++++++++++++++ src/consts.h | 103 +++++++++++++++++++++++ src/display.c | 72 ++++++++++++++++ src/display.h | 16 ++++ src/main.c | 55 ++++++++++++ 32 files changed, 719 insertions(+) create mode 100644 .vscode/settings.json create mode 100644 Makefile create mode 100644 README.md create mode 100755 bin/mamaker create mode 100644 obj/assembly.o create mode 100644 obj/base.o create mode 100644 obj/display.o create mode 100644 obj/main.o create mode 100755 res/digits/big-sign-sum.bmp create mode 100755 res/digits/digit-0.bmp create mode 100755 res/digits/digit-1.bmp create mode 100755 res/digits/digit-2.bmp create mode 100755 res/digits/digit-3.bmp create mode 100755 res/digits/digit-4.bmp create mode 100755 res/digits/digit-5.bmp create mode 100755 res/digits/digit-6.bmp create mode 100755 res/digits/digit-7.bmp create mode 100755 res/digits/digit-8.bmp create mode 100755 res/digits/digit-9.bmp create mode 100755 res/digits/sign-minus.bmp create mode 100755 res/digits/sign-plus.bmp create mode 100755 res/digits/sign-prod.bmp create mode 100755 res/digits/sum-k.bmp create mode 100644 src/assembly.c create mode 100644 src/assembly.h create mode 100644 src/base.c create mode 100644 src/base.h create mode 100644 src/config.txt create mode 100644 src/consts.h create mode 100644 src/display.c create mode 100644 src/display.h create mode 100644 src/main.c diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..0971348 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,11 @@ +{ + "files.associations": { + "stdio.h": "c", + "consts.h": "c", + "math.h": "c", + "sdl_image.h": "c", + "display.h": "c", + "base.h": "c", + "assembly.h": "c" + } +} \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ee5e4b0 --- /dev/null +++ b/Makefile @@ -0,0 +1,29 @@ +CC = gcc +FLAGS = -Wall -Wextra -Wpedantic -g +LFLAGS = -lSDL2 -lSDL2_image -lm -lncurses + +all: bin/mamaker + +test: bin/mamaker + bin/mamaker + +bin/mamaker: obj/main.o obj/base.o obj/assembly.o obj/display.o + mkdir -p bin + $(CC) $(FLAGS) $^ $(LFLAGS) -o $@ + +obj/%.o: src/%.c + @mkdir -p obj + $(CC) -o $@ -c $(FLAGS) $< + +obj/main.o: src/main.c +obj/base.o: src/base.c +obj/assembly.o: src/assembly.c +obj/display.o: src/display.c + +.PHONY: clean mrproper + +clean: + rm -rf obj/ + +mrproper: clean + rm -rf bin/ \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..0633a4b --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +Ever wished you could make your own mario party board ? \ No newline at end of file diff --git a/bin/mamaker b/bin/mamaker new file mode 100755 index 0000000000000000000000000000000000000000..7a449556aff4ab509c783a2065f92bbaaa286128 GIT binary patch literal 76824 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

A3I`fj_I!{|oiS#v8(s+Sl| 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 Z7EP>k`BA5?o^N~9Jn^(V$Y*W8{|iO%L=6A{ literal 0 HcmV?d00001 diff --git a/obj/base.o b/obj/base.o new file mode 100644 index 0000000000000000000000000000000000000000..7c16d871c9b7e5ef10e6dd98883b24df43aeaea3 GIT binary patch literal 49160 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 literal 0 HcmV?d00001 diff --git a/obj/main.o b/obj/main.o new file mode 100644 index 0000000000000000000000000000000000000000..b1c12cff76c5e6ed679004c1a79b16b8370f55f3 GIT binary patch literal 44048 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

`e=hdf%%6 zm->!VJd5X<(-jvxEKpqRP^!4tVT0n*UYj)M_S&kr*kPyQqUUcE|BmMg@_dLLME@IA zdeQ$L#YO*pii^K`QE~BCZ!0eCE8owGK2opmReI4sna2T1kN*x29yy9jz48>7dKD-x z^;)91FY>p8_G|AUGb zaJe5VF6DlsxRmSW=R?|2%FR%`n%9qG6n_G5gkzcF?YvH@P+as}r}zV`|3<|{|Cr*U z|8~Vi|8o@ok>@9uDc-~VaIfNfc>n5g#YN8pinsAR@J+=<|Gz6P`X5qU^iN{@NxR5* zenS9;c!m*;x1;-dcw#cwywYt<+&^*UB@saJ>MGkBhJg5vLR|G7hP=|7Js zF7wsr6&F3Z{vO`%6#I+*_zyVYA-tLWzx+Ll@c-fdvs|Sg!~Ly7 z@f3c4A^WeAkLcg3((mMY^(Zd&I#qG0*KWn7Uh+Mllq=tVT(8oL{&y%|$n*TaDK2`- z--Ss2xw7A`(u@8-D=zw{@%vlJ=SrTRk5pXx$yCLq+_{P;^M3ep#YLYA#YLZWip%rc zqPX~(9>vAaT%fqYcwPKIii@6iD=vEOQ(W?SQSpbkKfk58^GUcpdL+e5<(ZBf0rKt=K<@{dT(I zGQS$7_?Jn>KTc6RkMk)~JcH+#OBMf+{pU)>v)v~D)ru!^xs8e!ar#cht4%i635vhP z^Q4`MFXVNZe0M4KImmuvk4is`>vev^2w_^(RiagyQ(y@ah_DZZcEahKxbxWApN_>*k6ixhu| z-``zx7`|8WzjOcp(_#4iihs?1`)S3WG}W?RP<#v5_YK9rh}%uL=%20lH1=a&=4cjnd8E%YmA;5&BM>v z7b<-xKQBKi-r}Xl-Ad(tA^F_Q&+iDu&t)euMRBo1k>dD|IpeWR@gLcb1r>jl=b392 zuVVc-Dt;6{7cs@5?_rU)=4F5s#7uY^2 ztQV>wJ^=L@%3Ru|l%MPIDm_m(tbCRJ7#<(zsr39B$Xcq>|Iv%3!uwK{p1YM*tJ434 z{a%Ag@1Vv<@sch;tROH`4w;B^v5c`m+dCsC%T|K zenhF{lU4c$*#DlTxcL3Oip&1*or>>f|Id#%*^Ny`<;wHzQu<7wt7g2$rY++56vfwa ze7fT6IbNXnPL4}{*grA?hX>A-+&wdvE^~XfjV=3n{Pn3jzO6>@Gxtk-$TyB2ZYS=3%*bM zsBkRHe$0Rf=Be-R;`_zV$URcN#0w#SNgaIx;&T5YNyul;Hcpp9NHe_nM~3_I;z=o> z(_;Sp+3)Su=Dyjh%o**6Z6x}O{Z<0gdEy<>i6|{ge#gng`ldyH+u!|PO*VJTmK*u3 z)1rO*(?9bX=l!TZ4w+hi^v60+ymKOU3_PogDr%vh@2~vjT)zAc6qb*lp6l{Y0)~0& zdX`NE2*(v{2NO%^Dtep&7y7&Zy`Z^cnd(?_pPVl_%>5Ip%>7<-ic7gq&R4?~3C9yb zpqTHsGYsprcQR9ITIGEILY0BoPw=e}=+FLl|K6mKev0{I&L2V|X5gVM5OTsE=3^+%ohyZ?FC{~@`N&)RMO0dv(d06DpLJLhxAC$I~LfL{Q8WT0BJQUxL_y}r@8U*7b zDvFBoe!u-&{5$*~#(TEgc9Sk-yPf6SIrAks?EcW5ojLb2XYTCGz0;pM{9j2R|Jq%w zadFDUzb;CG2KWEizlzErkjVNMy7vS*zyJm?fB_6(00S7n00uCC0SsUO0~o*n1~7mD z3}65Q7{CAqFn|FJU;qOczyJm?fB_6(00S7n00uCC0SsUO0~o*n1~7mD3}65Q7{CAq zFn|FJU;qOczyJm?fB_6(00S7n00uCC0SsUO0|pG#^#|d;fAWZXLAdu$5RMiY^4WCU zb*~a`dHcpApYKo5-*g;}|Jrh0+3R4!RS&MR+ti2m z7F<<#;mQX~+3R4!)mB_(x2X^BafQiZIK&mMaFzQvk!p^E`Tc%Z`Awuh+R;|f<%S;}4xu5gv@A*%NlTrJy-ji@|CwHynsmhnXrTftY8;Ml{;;3B?G{#z9S;iaD@66Vx#hXnk9Lc1 zUTU}L*Q}jq;+sG0-@olP9MHGbeCYn`N880WH@zqHZ7pq%Z~m~KyY13_Eq4wcRiCNQ z<@nN2jE_d%moO8&!=Wajg=M-9NqWav5k=*M>o5edXz2EBFdTdF&bI3k0 zwfz=Wk6i#vAog*P6Fe;(NvrnX_rVg2LbO^fs`%{o8-kwZ)hV zoBLL2t*$FM9(;<8@yQjgr`J~7f6}!j zzuD4e_Hs~Kr|U}kTFX1^<&}LU2pQx(F4ziLxFFO+BM&Rc9VuSu>|^2`#=etQ+;S#pcCA_^&$hOfQ?@4vJC5qsDw!*lcCeL$re}3c$$a#fvXz6% zR$WsvH!7xVq^c)r?bxdt^fII|47%=h6DcR2*=ZF zBYD1-)_pJXy@S6^Z+&TB|MRu9Mc0(LlDUwuVkZZ4-1X#&aqjHP2WwSEu{F*R55I zr?FS3TVB;QCACV&eXrZRIrSHCN8%2Y=T+{tcbR zlr@K&-`6!I$3Hm-wU*Z;Z_lcI`ljmoF=ff157(31Kf#nGQ*ti9>w<2r+It66mQ2aE zbbhXDO8QjgD{*DX)sxTbn`(LnQ8K8Gn^eH5}@K3q?h-xTIm;Hr@J^YJq!vx0Eo zr2g@b@ieyfskZm@O?7@|E2lozkB7NVK3q?hCyB4_lEf8uH)?gimqiMyF_*PG><^QeUToi-h}+^dV!%}ltlgED?Fbv+38jK?+i zUgD}7gDv64VW-2*2Ptzx?v}WeiHq*lg@HWY}G66=N;i`a=*589IWY?+%DQ!Hy4&%)o#oMPM7`CuKcys6jJD{5RZ>MO2rg{ueOgUE5vpM8XS6ieaD_%d}LlWQ@Fw&y)LQ7Bv3nVX=9}-nyW5?eeXAE%ud2PjIrD$mEW2j8VwNh^ zZ~hnlnmd%j68O_*TNdF!G$0xf4TuIr1EK-ZfM`H8AQ})2hz3Lhq5;u>Xh1X|8W0VL z21Em*0nvbHKr|p45Dkb1L<6D$(ST?`G$0x%y9R0+lx`VOx@Sr0V;7YkdqnA(7nPoW zP3hBbDZTuW(zktVw%=BI;f=zAbF-$*)YD2&JgM~fV>ezt)V}>ncg`9#r?xMTQ14E z_e}BYrSW{OeNDrd#2@q>+o$4vs_&xpFL(b?y0$s~+8n&~oKBag3x6ryx8d$b-#QJ? z#ASCIRNfZfrD1c?6k=63btm_M+P-T%n%tHvZ-~da_)IA?{Tv;4%W)bm#0y=0Pg)MK zN(v99>Tty9PF8(n`LHg$ zNyFGa!G{4n9yv?H5yv6gX{GK_lJkgH#o3EG$Nk=#e2Ru63g6;8ygY$Zw3(vpl{(%q zz=sEMpi=gdoIkwGhb^eRl}~9np@raesN1zoH2YE9o%@LgS22G^9-v{x*g&!CB|X+~ zE6sisSLpX9#o$_=+SUTr4l{1)YA32(+c+;*;6BQh@A0}eI#!N;Pd8&95dA%0KH}ju)U}fy?>y;;#RdE77an;3Rl2I0juE+INjZrs-!e+a;ldNj_{KvJn|8GoF2^}u zns$Ccb*=w>ZS-jW4c_T*-|DP=l77#^_psQ0^RPeG))RD$$jP(5`mXKxUNJv8jty-4 zWA%Bb;<@qV$ktCgCu;6hf2=;=>Y7G>`<5&2_+C(p=-;3ZWo=Q{UGwy35O}z9KJiTr z`p3E5Ip@z4_-!+>dmmiXagy-8MNHfWM_gTuGlcC?_I<|L#Eb`z3 zUZ3_A?q#cKLx%mP?juh*P9I6n9lY7JKg~U$;tAK|$UEBnfd@~ioQ|YiaeVtMUug3u zwO_3K*rPmLVg5|9>r;+##z4RqViXh{;W~}Sc(}qhHGFN#K4)Cb>T3K69>3>wAbX zbqYVW4(2{t|2Wr}S7mMZt~;iAFjDh9(4R!E87DvXTHC+!@nm`Si91?cSl`m;h7Gy= zhfR!-^Bo?u{9}ByoVuXeUjIgEyi2SfS*`Ore=v$i@Pxe1toRAr8GpPo^tH#6 z$GBG5Z|Xkg%}3qKJRHZ|6~x4;{&CmqHF>zmG0p=wK@3^solv+$|7H2ZeDJk#&CI1U zIb;++vaEw~n{xh61Af;6<2zaU>|+bL)QHJ(j7J5Zskm*-sdVj|`}met-2-(>58YGv z9e_ALspodCo8K(DZ03sfRE~~ZxJJG%{5t!&-#ZO+nDKi~Y3E6}_>@H%=nXL#%$r1h zI$|~GdmtXO@<|~Ee)8qQZ(ZSAhPjx?@j$&S@QDrKSu`LT5Dkb1L<6D$(ST?mFBtehTCP}2 zOeC%M%&RIc1TD6gw6?K;0UUq>Z~zX#0XP5$-~b$e18@KizyUY_2jBo4fCF#<4!{98 z00-az9DoCG01m(bH~i$_$Xx84Ivv330YPHcEqmlo;xc$H`*S4A!N%j-rQ2h{jsvMYd_D^ zv-)&!R>ZCIB0pYLsr*&uaFEkVVCOc+t7q>!P6B$q7EJ=w3MUEq`7^ z&v~&Lf0sY2sU=>lMqcO7imutUoA~e=eyPW*s)Y}$^iw@n)UR~wKSlA_z+*jDjpKY+ z9k{Q@ipF-L=#bkv_1@KE#i@VTeM^tk{+oQf>bkDSYVZjkR(r4Mu^M~Jht=-OdaS0u z@?q6sjok(9GduIgVmx@YozZ7ivW^F<)|2|IXdKL~JrcEJJCEqIs;K9|s%ciA6_@@q z_2-;*bXB?*RRj2X$GwPUW+Y9!OAbI_H$t6m(`xDJXlc- zmR}~h@^#L=-K|Bgx&T9b6IU{F6=e9>$JJ7$`gfU zMbEFDZkw_nE3)R>EEbMe6yjy7+l1_YxcbZn9+~Tv(|_vAq@S%GGm2++ey8dC^o(ot zP58_vKShs~D(h`inK_j~+67*D=YK_)m10I?fwSMk@r=XV>5}zAhS7&Ek4N7vUM_HMRd+Px<3z zaz7``vZemzO0n=gcX)f{-h2a@G2KCI&P262x~1PoI0+o_p?)noZrIzmGxlx6@2BW;$=CMYP8J zwH_6Zvy-nb@`MjW@65 zb;R{U#A^>*zHEOU4i`6W-6!SpLYq?FM!af-xOo?G$3bG$iLpn-vtOg-;>N3aN+z$? z-T#M&8z*~tS&Q_>XFN< zsGNAm3pu=ST`M^!y|}^fdMSq&uJI)EDrqF1dMATd=TX_La2(6qiDy2`;3e5Bd*7;i ziRXU)e_l=F^4$Wny1{T*O})3yv$)^J^&IY%o3>l`o0VNA)?n&=@k(N}Pem2P1tr9J zg~T{N+s7^rbCfC5wf6k?`!8Fus};?}`6gx)hjNCsj~xfR@q#~LeP^7v(|g(*ujx;@ z8^7~&{Dw>{cz%6zdcEg6acy6+9V;j$o_Otz7Z^5dO*Svwr#ZRgwybe1*}U5K`Qx=_ zGTFR_@A~6~IIN$xF_+dYYxTzpbu`KKas65Uyd=k^qI9{i%=Gzu^T%uIgLN+x<$g)s zb~bK}K1^oYg??za>xG4uuRE4ZUfK3ZSDCnv)cO+Der4MaH2x%cto&Y^rq|8({mJ50 zA0Q@(+=;>!$>CMrkzM<4`-O99RPBSb?Jlbh#tO_3JC;_iDE6mxb#PWmX}4-N24|Ie zmJF|2rh~IWJ*+Z$r%`w>X`6#L!eJHnyiqU5Wcp(`tfc3Acww>7I><@3&;3E?$oF38 zyW;#F`i3W7g~tl47w6|DugzD(=$mN*( z_3t`%xuTe3pCo#PeZrWVD9W78HfO)cPu36)klEx_g*yDG0@H<2J?Ub$)#Jy*%SRr!Q5#K>vFnxV}t~}HM cbwC|Z2h;&|KpjvA)B$xs9Z(0<0r?L60sNQ)z5oCK literal 0 HcmV?d00001 diff --git a/res/digits/digit-3.bmp b/res/digits/digit-3.bmp new file mode 100755 index 0000000000000000000000000000000000000000..0b75609d1e2cbada12491ba15bf641401c0aa3a9 GIT binary patch literal 31554 zcmeI4`ES%l6vto4eQuPHiyVX|C3oRU}lYtx8q( zE>NjZsZh1>Lo5En*ZJ01GD~c4JdUjyzm;ZfuRXTsEa-tB9+&64!STH}(^69VO275?AK3IZj#ALfke%yz>O{ z_zmKNUlSkxm3Z}U;^Qy<)3JYvm!1&kKPKLOn7FFRK7K7@#6zcv_kTwG-cx@TL7e>d zfphmEdzhh4p)U0vAs)F%{LZJuiw|OEcAvO?pFPY9Vz>Q@W#3UfR?t_+WHxwp&FHfl`yd;v(EoOAPt@h?x7lC?-%eCU-hAaX z_VemI5DzQ(8Ev=iLucY)HGIx~R}6HapvEp9#m8#; z3p-iCR|-F;j*bfR&i`l^D~uBkoFv9LS7BLox0io6n^kG0Gj`Az5urs&Q}A?3MR^ zN8eA5*Qf=4nFF6E!>j9{*}8(pYTH#D&9lwtRo!epEAWDkH^?sQ?n4Zcx9*$1t~+)b z#ItYJE>?Kfc>Y0UE_NT-?GYOy>hqi4Q4fdQ?%vf7B)6t-z~gcUOCmj4yuQ9 zKL{(A6_&fN1oN_?-{LK=&N})fVZKtG^V^m;tUbT$g49L#nPcuikln&Q#CyBPXMH(w zJD3-I(phKZmOr;6m=&~zcpCTktS=9J6U+-fFq0V}=BcvLNo8uBv}B7)CDF>5nWkOtsMinc1N*Vm z`5p70qTX+s`F1S(YfFbmSY8wRip8{z!pa?G|H98^YHK>7F|9(TCiWHMh~+QjQ0#V^ z_9x1<>$at1v%quYl6iG8?ijsdb%onmdHX(Q!}^H|u+DD@$&JQ$0Lv-}%9muY=P z%zNBu8RI%0^Xt>nNtEk``Ge!);&&dC=JR4cj9)pD`aQ}sP9x8jvh-P*G`Ak(R7q*b z?>Y_J&9Gf~-_8+b<5&LNyx3aIBk-m|W{b)Plt#VMy(avB=wH`$zIvb9i1Usn%vpLZ zO{r~9g5R%6#nj;4YqcHDIm&B^QO^tS3GXkeP_Z*eHLXsb!eeCnO>V+On1}{M1EK-Z ZfM`H8AQ})2hz3Lhq5;u>Xdqb){0BJ{=kfpm literal 0 HcmV?d00001 diff --git a/res/digits/digit-4.bmp b/res/digits/digit-4.bmp new file mode 100755 index 0000000000000000000000000000000000000000..88cb6e880ee408553f7cf5ab749cbede1369b88f GIT binary patch literal 31554 zcmeI4`EM3Q7{{MdD6MU!2Th@+Ck0zds}xFag}2iCz#r6jhcnT5C89B+@xUV{CK~tw z3@R89Z}2}H=gVf2x3Jf|v+s0g_h~ZSx4ZMs%=6jr%+5T|YzwP}i**0zsQle8)3Qvj z%Tz(#^0)WX)JlX@^dsbFPRxKcz#3o;um)HItO3>lYk)Pt8ek2u23P~E0oDL(fHlAx zU=6SaSOcs9)&OgOHNYBR4X_4S1FQkoK#>Mc{zqc&I*H-4BwB`eZ$;St5->4FeQOW!izeid(aw=w~K2KjF(YH>buAR9Z`!1T7;#Rm!;=s!!n)>s}t#dX$ zE5!`QrQ0M9z2)^)rPHh*E2~OlRm=^aCqBuC)<)hj=e782K3H{?*bg7nR@VCy&)gkTKm_WSL6PCu$uqboYn5Je6T9~V9u(ukPlW*erwKZ?`l3+&3t3dYT$*< zVKwj~iNRM%p#J^O$~Dj;UR(no-G$BrIv-Bz=c1X5j_ zJl8FsbDbpW_juQ8cay+6u%?AXb+b%OUYh>OoYfO=Y!0jDLG!jhIR7d4-(w$n_h&Qa zSwm;s^P^MZfX#<<^c%zai^b7GESgV*Q<_jwJUx5Ena%auRe=T*DQ z4zHdC_gM{}v%?B~ef*;PywFE%j9ZA+t>1N<*T745SmA#3t+~w#^F$lEQguvz`Y^Ah zTV8CvayyA_wKB=MnM!zGV_b#*0SSI~_$QhNWSsAa)T(@@+nnp#^mo;F_}e!5S!wrd z<#+$`bokBvNMg%2Zw*){{XY$Ta$m_XiMDYPh}(is|MMgc$~_Z@-Yl)1N-Mg@puPy- zmu^`rcg$JMU)Qf!x1A>W{rV!b0KcG4xr;Z=SuOvjSEo+zKW4 z&IMvIEb6Fjl=Q!QTxk z)9-xSM0h=6ZLodq$a}#yBi0hs9>mc6Y}Y-9*j!K@X*-Ykc~D=3-C*h0=Ei-=usZOH zfBAlOrr})I)8Td>JoT_WH8QrUt0BMqct)gwfleDnKM1$o&;Ol-{{lWEopz=nFXHe~ zYrH)(8|^wF*K>Ya(K&~`5oxerw+&e5MA->HgDQ9GQgr^P@-Y8b<+*ko3z(xSn-Lqv zeq`7+^0qmvgp2)s1em!uo&hpJZ4>@rtunFTRgy{EYQSl$}Xj&&vBv6CanK z7h)Z0)QWDKY{VBkp2`L*uthv2iM|$8hD*MNI9dyeX$0A?bN;dCvZE`o#Iq`i_i+3e zBK{ZWez}yVTzwI1C6_qFZR^w*$&X!__r|T?rF{3_AH0_=ubHp2$qM&1sknq1yYSAv zOM205>-3k&X>0zcY_r0;MCroxxO^wutf0fB;;CR=QIT<8(mwb}O?8FuSJh{nmDCpA zNlb#3t-aa0<8spZ{r-oMF2B66f)CjA-TJ(+f==6~%=%)USgC%Ey-KapcL(3W==&rv z&s>i&&$qSTU$rx}NBO+OzHj(H_dO#SUXbt5UfrleTkoT$mXYk6QEkI}`+51l7Evtt XdbD1c5i?>9um)HItO3@5eGU8%oSKhp literal 0 HcmV?d00001 diff --git a/res/digits/digit-5.bmp b/res/digits/digit-5.bmp new file mode 100755 index 0000000000000000000000000000000000000000..d6d03f4fa8d8631d5d1217a0c890444203128d44 GIT binary patch literal 31554 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 literal 0 HcmV?d00001 diff --git a/res/digits/digit-7.bmp b/res/digits/digit-7.bmp new file mode 100755 index 0000000000000000000000000000000000000000..538fafb3f3db962ac18a0c77e408d35fe2da27af GIT binary patch literal 31554 zcmeI4i%%3+6o(H=1)GY10)l`m3NAiC9s&wdSP=w7w2!nkv1yyWv}x5esWuv0U(q&= ztwv2Wn$}lLt9|^3*Yk68vzKA+EV^+r>HapEy)(1({PvqWv*(_>nVHNfdH(9t_p}bv zIvm!aL{j>meO1?qU~pbW$2pJz9iRhrfDX_BIzR{L03DzMbbt=f0Xjej=l~s{19X56 z&;dF?2j~DDpaXP(4#es}=~6MBpNpy4!Zz!LwA(ihi`oBQcIf&_Ol=prMR98y$?*cW ziMwLj-WIc{l-$C&HSe0s3(O|(iD^ARUSYgayXW%)vyoqTZHDn`*&EIa%$i5(Sddxk zTjUjF5;dKEKY~|=eg)ZW{@BkeH9=lMUU=q0T@^NwaFV2kDpVS4B$9^g}`tWe@vH0+t) z&g=e$yj)&A$D?^wwUU?RRbDM-?_)o&{*z>7S)p7z>1T!Ov34tYxx6x0{k-sd(p|RL z$KCcbTerLA>LK!S9T~ptcWd-lvT|9~_xoAFu{C4lgsCwCg{wZ+CH z>U{gZ_w&MUNaV{!tzS%^t=!~i1;^6wk(KL1RJ}F*Nb9X7MhZ~;CP4jKeNlS6ocHOAR~ABjRx|vp5$w*-g+citnBxQe5qc|;pqB0 zFlc^z=a*tSJ`;mF7x(nEJ~N^p3fdUZhSjiLb00PKvaIpNpO5goZjT|XOj3^Ex`@6? zVaL9Zc{6`zbC!{R)%is>@2GOUn3BcwJpuoyZFV1>zmD}X?y{sr^Ua<_A8*vTyvS#> ze~TGBr(SC8xOzj5LB4HNw&a$Ln@@0mQT>$iokt;`BVQiZa#Wld+wc80IjqVm#LWI1 zk6SOx*7Y#>UB^9*y8C6%BaZd@P9(=I+{5BH=R)>@du`kf`SyqJu8?zi)$5{-!*}d) z&(GJc{;F9lWcxLp$>BBnTe98S@ndpWt>2$)R&Woo=(w-Bu>F-SPd=-imy*E>{G$5o zE~HM0W0|D%9c~y%zFSGkrQGv-@_8Yq6IPGJJrD7LIIg8a_A!1d8LW`EU&wjHwQdsr zBLe*-<2v6$_Jdei+}B*#{#I?%XBq7aj^FrIZCa)^{<$&xpLOVqgnsi_re5y_Xvb>Y zDW+*e|IbMOOKZ(;?a#C)8#`S$BL>fHh`%7m12LfXgJL!w(pc+9Vzy|!55L_Je?{E5 zTVu05$Fi}S!Lwozv&~!+Gk!Zf)`snd9Y5!3e07nww^oZ;t}#G7m!eIGT*!b9&;dF? R2j~DDpaXP(4*Y){cm}^d;6DHW literal 0 HcmV?d00001 diff --git a/res/digits/digit-8.bmp b/res/digits/digit-8.bmp new file mode 100755 index 0000000000000000000000000000000000000000..541457a88f1aa51f6b43c69d16a1b1f794a28425 GIT binary patch literal 31554 zcmeHQ`A;836d&4xg&wvXQot|L7TPaRj#A1|P|BCKP-sh|@xJ11J)`li8t+7n8jbpk zwe^lMUjN}ZAIYYhWp;P2-JPY6WZC`B&b)c=v!9vo?0avZcD8nr{r@u|epkh@B905< zsAE0i_u5Z$J7YLPKU`eXK^PDRhy%m{;s9}gI6xdA4iE>31H=L10C9jgKpY?r5C@0@ z!~x;}aez2L93T!52Z#g20pb90fH*)LAPx`*hy%odl5t>XH{-qM8Nc}>#?SoDc=c|^ zcic$%U_nk?^FhXk9%1~%H;kYESAHCMf$=@#*Cu9-EsXaG{>*D2KFB!u z7ht_n&)Yj0AAL#>pE%s6-(tLTdgEc%)W-P86K*hyVz=-$<2|P~24$WY48I+`4AUgV)iQi^D0vuVd1Gybjz}JWc^# z%~gN#YPx~()xX_fwRD;B{(IMsz;@m9iEkNi*zPA@W6!z4Y2d!A_HAjj!+%oDn?9~r zPyc9#)zbHjw+^khZTL|;xq}a^msuo!t%G*LU8 z_5kZ7y-)vOCx7huWcf*byS_L4xVbI;_oUk~@v6D};5(tEKfNE4&J!d9AjO)2S8Q)Z|)?b$R9ev5nmbMW!-Ql+i z+iiM{clj)FP?0@iIA3jUP}AMj`z7WI6??L*Q#r2x+_4^0)oJ->efcu()xK2kQ&l(J zdRV{6bW19$eWj*%=ajzexPEn>k1hr}_2)j-vuXJ!HLRxJ){`5DQ&3*FNv&TU+jZ+A zUKQx0dT!W}tatZ|vx}APvh38hiD_fp~ zaY(x!d)8l^0*)g_pfe`ZY&N;S`d7R!G0@YebJsEP-6mq{CbrtPL43(4EL3!<-kCpE z@I$KT=2IQa7qpwQYcu1=Kg$;<U%#S{gwWw~h z9~6TXa9MF)K3#TN->&XspGTA@I-jwQRMEvWhZK7` zROIJUr_L^KST!a!|ApBzLAzXV5ZqVkM|WRfn0KR3r}tqy&c#1RP_jeCR@*uz^KO8b z%6rMo`(~U9`l#RL4^}q$+iCg2sxij^7ugy68EyICvc0J9|krmgb!Nb_Ii4O}oM2MsJoMha^c$4AfL#|qw z54hg7-z^_xcI%e;wq^)pcJL0r@Pdyyte&G6-B5-aOc_X)cydE>eXh$!sVY7Aj#v5NYSR?)kKMe9>uis19*kDO*i9f`FYnKE6 E0geTSR{#J2 literal 0 HcmV?d00001 diff --git a/res/digits/digit-9.bmp b/res/digits/digit-9.bmp new file mode 100755 index 0000000000000000000000000000000000000000..976c2af0596898a7ea110e45d50eab2cb8203bd0 GIT binary patch literal 31554 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 G1AhTCi}Akz literal 0 HcmV?d00001 diff --git a/res/digits/sum-k.bmp b/res/digits/sum-k.bmp new file mode 100755 index 0000000000000000000000000000000000000000..e078d799819ae306afbbabfd694f2f95420654e4 GIT binary patch literal 31554 zcmeI4`%fK36vu~xEtZy2Fg)AxEKsPWyeWkgXaNC%`Zn>ACTg_4wZ3b7M2(4>YBZ*5 zHSzg_Z~wz_zT8Z>ckk@(?4G@MCcWn-%icS?bIzR4erI-eW|pPRrK@7+Go}6xs%=AU zm(^A!y42s?r?Eu{YlYk)Pt8ek2u23P~E0oDL(fHlAxU=6SaSOcs9)0V@5^>ntN_$@4cFzC#ul(jU`C1{T zAUFJ8`$@HOM6F_txJ+-m*VkObvZP zZmaxZwvj&cNIKhTS;Xa|utGd&m*ac{kJq&bx$<2!C(RITWH7(0-&9u1-z1Bru1&~= zYj&J8ua2|He3Xji>C4H=t;?Uk?_RTurD;gW)gO}k+x}O`rW1BPO2r9w(T3*7o#wlZ zwmO$-e&Azoy<1+C`(QrTo(*#xReOXy^#qNR_Je1PQtBqo_UNXVW&u1GG`rJCEQtWSk%nc`K zckG4I#+D^7)aP>5HV&x2Vqu(j1T<(Sn=G+oVqOv`V}>EtE1oS?Ibmua!0ecJeq zW+RT*xli14+F^Bt7AIIWkJ4;JvBGt5b>9oNS(C5O;zWMf#F%DO%xRCcO!%QG#7Moz zqt5|5?Ps!Qb#%cWPKXg>!)dQM^5NMVcCamcMzf{MvGtc?uloGjt}lCxZR#?n+2{8S zyH;qn;2+lx<6FM)$u9?$)$pUcan;nSvCe;z^IHEo*C%cq+_jZoMqj>DSq(l|7++l9 zcIyu{r=iAYFxK8WsqS%Ih53EqVk!rf)$zLvV{I9a*H!;Lg?UWn@-dCds&}(E?v)$S zyfEMBBa65)QCW50Q5-ksU*hf)zRl6Zal&ybtDf~@R%oN+SmAi9NBzvQunL)z+WbA9 z7v{Zc8;e=nl-tEQ)MuRDEpx1A-ic=gZOwgX&hLUnoKNaF1J)v$eBfSZQx9hB>@(>2Y}+ht-_-7DTfXe6z_UkI*%%^%VQYx z*X2yJKlONcY~v~BJ<#WJ$s@}5kg7vz80kFuV|_tCY5OB}t$y-C+pObGv)5zDK~DIM zHKl26woUuV3jL!r@#s9zj)@b}untI{mt;S1U%1UMU*$;0m`aj3g6Cp=d{{Yy=i2_p zx`8m8F4MbKX{_c{J&P*;fezIVP<0A@i|Mz7yzq6rKVSPV3I2 zjd-rXv*6D9QMJx7-=8U;>$D^Dg=Neyug&+BZ9&(JR?wU4^}(jNN|DykOJ`NzSsB_o&`xL7JW?5~ zY7f&{9bKplR@G_^LfAddHvRZrmB9*aVBEWDam-w<&o4zA9%VEC9ojf9rsJ;P{fLS! z>toBR?`>jWn}+;Zm&sRqi`QtZz!c9YzQ&hjx#m8gvpRUBGFVMqp|k3ks|;3H^J&{Q zg`GF_aAmMcvi2a1)y&(K!HPQG2Y##HR|c!5VR{_|uS#g&_cdh0%CsIb%lox2wlIf) z@mtIv*sRGjwOe>!#g}->Sq_YSW1bGrFI#`w=?;v`Sw>%dp-t25@ScN7S4gXrepZs} xw7)sG{%7z3Rd3%={~zW?j-Tsyl9R;X`rLB-A2!!9vVU%CSp%#A)_^}6_#aP*Fc<&; literal 0 HcmV?d00001 diff --git a/src/assembly.c b/src/assembly.c new file mode 100644 index 0000000..494a53e --- /dev/null +++ b/src/assembly.c @@ -0,0 +1,162 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "consts.h" +#include "base.h" +#include "assembly.h" + +void init_empty_board() { + start = malloc(sizeof(cell)); + start->id = 0 ; + start->coord_x = 50 ; + start->coord_y = 50 ; + start->star_allowed = false ; + start->type = START ; + start->prev_1 = start; + start->prev_2 = NULL; + start->prev_3 = NULL; + start->prev_4 = NULL; + start->prev_5 = NULL; + start->next_1 = start; + start->next_2 = NULL; + start->next_3 = NULL; + start->next_4 = NULL; + start->next_5 = NULL; + start->meta = "start"; +} + +void init_players() { + players = malloc(sizeof(player)*n_players); + for(int i = 0; i < n_players; i++) { + players[i].name = "player" ; + players[i].standing_tile = start ; + players[i].coins = 10 ; + players[i].stars = 0 ; + players[i].items = malloc(sizeof(ITEM)*3) ; + players[i].max_items = 3 ; + players[i].item_len = 0 ; + + players[i].stats.minigames_wins = 0; + players[i].stats.coin_collected = 0 ; + players[i].stats.red_count = 0 ; + players[i].stats.bowser_count = 0 ; + players[i].stats.items_used = 0 ; + players[i].stats.lost_coins = 0 ; + players[i].stats.lost_stars = 0 ; + players[i].stats.tiles_travelled = 0 ; + players[i].stats.events_triggered = 0 ; + players[i].stats.hidden_blocks = 0 ; + } +} + +void init_shop(char* filename) { + item_costs = malloc(sizeof(int)*n_items); + item_start = malloc(sizeof(int)*n_items) ; + item_end = malloc(sizeof(int)*n_items) ; + item_is_normal_type = malloc(sizeof(bool)*n_items) ; + item_is_special_type = malloc(sizeof(bool)*n_items) ; + + FILE* ptr = fopen(filename, "r"); + + if(ptr == NULL) { + fprintf(stderr, "ERROR : unable to load config file %s\n", filename); + exit(1); + } else { + printf(" Loading %s...\n", filename); + } + + int buffer = -1 ; + int index = 0 ; + int sub_index = 0 ; + + char c = fgetc(ptr); + + bool is_reading = false ; + bool ignore_line = false ; + + while(c != EOF && c != '$') { + if(!ignore_line) { + if(c == '{') { + is_reading = true; + } else if(c == '}') { + is_reading = false; + sub_index = 0; + } else if(c == '*') { + ignore_line = true; + } else if(c == ':') { + buffer = 0; + } else if(is_reading && buffer != -1) { + if(is_an_integer(c)) { + buffer *= 10; + buffer += (char)c - 48; + } else { + if(sub_index == 0) { + index = buffer; + } else if(sub_index == 1) { + item_start[index] = buffer; + } else if(sub_index == 2) { + item_end[index] = n_turns - buffer; + } else if(sub_index == 3) { + item_costs[index] = buffer; + } else if(sub_index == 4) { + item_is_normal_type[index] = (bool)buffer; + } else if(sub_index == 5) { + item_is_special_type[index] = (bool)buffer; + }; + sub_index += 1; + buffer = -1; + } + } + }; + if(c == '\n') { + ignore_line = false; + }; + c = fgetc(ptr); + }; + fclose(ptr); +} + +void init_everything() { + printf("Initializing board...\n"); + init_empty_board(); + printf("Initializing players...\n"); + init_players(); + printf("Initializing items...\n"); + init_shop("src/config.txt"); + printf("Initialization complete...\n"); + //print_items(); +} + +void print_items() { + for(int i = 0; i < n_items; i++) { + printf("Item : %d\n", i); + printf("cost : %d\nTurns : [%d - %d]\ntypes=[N = %d , S = %d]", item_costs[i], item_start[i], item_end[i], item_is_normal_type[i], item_is_special_type[i]); + printf("\n\n"); + } +} + +void destroy_everything() { + for(int i = 0; i < n_players; i++) { + free(players[i].items); + }; + free(players); + free(item_costs); + free(item_start); + free(item_end); + free(item_is_normal_type); + free(item_is_special_type); + free(cell_count); +} + +#include "consts.h" +#include "assembly.h" \ No newline at end of file diff --git a/src/assembly.h b/src/assembly.h new file mode 100644 index 0000000..3d0ec6b --- /dev/null +++ b/src/assembly.h @@ -0,0 +1,16 @@ +#ifndef GBM_ASSEMBLY_H +#define GBM_ASSEMBLY_H + +void init_empty_board(); + +void init_players(); + +void init_shop(char* filename); + +void init_everything(); + +void destroy_everything(); + +void print_items(); + +#endif \ No newline at end of file diff --git a/src/base.c b/src/base.c new file mode 100644 index 0000000..f9f0905 --- /dev/null +++ b/src/base.c @@ -0,0 +1,114 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "consts.h" +#include "base.h" + +int ln_baseN(int n, int b) { + int r = 0; + while(n != 0) { + n = n / b; + r++; + } + return r; +} + +int pw(int x, int n) { + if (n<0) + return 0; + if (n==0) + return 1; + if (n%2==0) + return pw(x*x, n/2); + return x*pw(x*x, n/2); +} + +bool is_an_integer(char c) { + return ((int)c >= 48 && (int)c <= 57); +} + +imgs import_digits(SDL_Renderer* renderer) { + imgs res; + res.arr = malloc(sizeof(SDL_Texture*)*10); + SDL_Texture* texture; + SDL_Surface* img; + + // -------------------------------------------------------- // + img = SDL_LoadBMP("./res/digits/digit-0.bmp"); + texture = SDL_CreateTextureFromSurface(renderer, img); + SDL_FreeSurface(img); + res.arr[0] = texture; + + // -------------------------------------------------------- // + img = SDL_LoadBMP("./res/digits/digit-1.bmp"); + texture = SDL_CreateTextureFromSurface(renderer, img); + SDL_FreeSurface(img); + res.arr[1] = texture; + + // -------------------------------------------------------- // + img = SDL_LoadBMP("./res/digits/digit-2.bmp"); + texture = SDL_CreateTextureFromSurface(renderer, img); + SDL_FreeSurface(img); + res.arr[2] = texture; + + // -------------------------------------------------------- // + img = SDL_LoadBMP("./res/digits/digit-3.bmp"); + texture = SDL_CreateTextureFromSurface(renderer, img); + SDL_FreeSurface(img); + res.arr[3] = texture; + + // -------------------------------------------------------- // + img = SDL_LoadBMP("./res/digits/digit-4.bmp"); + texture = SDL_CreateTextureFromSurface(renderer, img); + SDL_FreeSurface(img); + res.arr[4] = texture; + + // -------------------------------------------------------- // + img = SDL_LoadBMP("./res/digits/digit-5.bmp"); + texture = SDL_CreateTextureFromSurface(renderer, img); + SDL_FreeSurface(img); + res.arr[5] = texture; + + // -------------------------------------------------------- // + img = SDL_LoadBMP("./res/digits/digit-6.bmp"); + texture = SDL_CreateTextureFromSurface(renderer, img); + SDL_FreeSurface(img); + res.arr[6] = texture; + + // -------------------------------------------------------- // + img = SDL_LoadBMP("./res/digits/digit-7.bmp"); + texture = SDL_CreateTextureFromSurface(renderer, img); + SDL_FreeSurface(img); + res.arr[7] = texture; + + // -------------------------------------------------------- // + img = SDL_LoadBMP("./res/digits/digit-8.bmp"); + texture = SDL_CreateTextureFromSurface(renderer, img); + SDL_FreeSurface(img); + res.arr[8] = texture; + + // -------------------------------------------------------- // + img = SDL_LoadBMP("./res/digits/digit-9.bmp"); + texture = SDL_CreateTextureFromSurface(renderer, img); + SDL_FreeSurface(img); + res.arr[9] = texture; + + return res; +} + +void free_digits(imgs dgts) { + for(int i = 0; i < 10; i++) { + SDL_DestroyTexture(dgts.arr[i]); + } + free(dgts.arr); +} \ No newline at end of file diff --git a/src/base.h b/src/base.h new file mode 100644 index 0000000..83fd6a3 --- /dev/null +++ b/src/base.h @@ -0,0 +1,14 @@ +#ifndef GBM_BASE_H +#define GBM_BASE_H + +int ln_baseN(int n, int b); + +int pw(int x, int n); + +imgs import_digits(SDL_Renderer* renderer); + +void free_digits(imgs dgts); + +bool is_an_integer(char c); + +#endif \ No newline at end of file diff --git a/src/config.txt b/src/config.txt new file mode 100644 index 0000000..aeaf0ef --- /dev/null +++ b/src/config.txt @@ -0,0 +1,126 @@ +{ + id:0 + *DOUBLE_DICE + start:0 + end:0 + cost:5 + is_normal:1 + is_special:0 +}; +{ + id:1 + *SPECIAL_DOUBLE_DICE + start:0 + end:0 + cost:10 + is_normal:0 + is_special:1 +}; +{ + id:2 + *TRIPLE_DICE + start:0 + end:0 + cost:15 + is_normal:1 + is_special:0 +}; +{ + id:3 + *SPECIAL_TRIPLE_DICE + start:0 + end:0 + cost:21 + is_normal:0 + is_special:1 +}; +{ + id:4 + *CURSED_DICE + start:0 + end:0 + cost:4 + is_normal:1 + is_special:1 +}; +{ + id:5 + *SMALL_CUSTOM_DICE + start:0 + end:5 + cost:5 + is_normal:1 + is_special:0 +}; +{ + id:6 + *CUSTOM_DICE + start:5 + end:0 + cost:15 + is_normal:1 + is_special:1 +}; +{ + id:7 + *BOO_BELL + start:7 + end:0 + cost:25 + is_normal:1 + is_special:1 +}; +{ + id:8 + *GOLD_PIPE + start:12 + end:0 + cost:28 + is_normal:1 + is_special:1 +}; +{ + id:9 + *KEY + start:1 + end:0 + cost:3 + is_normal:1 + is_special:0 +}; +{ + id:10 + *PLUNDER_CHEST + start:0 + end:0 + cost:20 + is_normal:0 + is_special:1 +}; +{ + id:11 + *WARP_BLOCK + start:0 + end:0 + cost:8 + is_normal:1 + is_special:1 +}; +{ + id:12 + *SPECIAL_WARP_BLOCK + start:10 + end:0 + cost:15 + is_normal:0 + is_special:1 +} +$ +item structure : +{ + id: INT (order in enum) + start: INT (starting turn) + end: INT (item stop selling at turn N_TURNS - this_value) + cost: INT + is_normal: A (all), N (normal shop) or S (special shops) +} \ No newline at end of file diff --git a/src/consts.h b/src/consts.h new file mode 100644 index 0000000..6996a7d --- /dev/null +++ b/src/consts.h @@ -0,0 +1,103 @@ +#ifndef GBM_CONSTS_H +#define GBM_CONSTS_H + +typedef enum CELLTYPE { + START, + BLUE, + RED, + EVENT, + VS, + BOWSER, + CHANCE_TIME, + BOO, + STAR, + BANK +} CELLTYPE ; +static int n_cell_type = 10 ; + +typedef enum ITEM { + DOUBLE_DICE, + SPECIAL_DOUBLE_DICE, + TRIPLE_DICE, + SPECIAL_TRIPLE_DICE, + CURSED_DICE, + SMALL_CUSTOM_DICE, + CUSTOM_DICE, + BOO_BELL, + GOLD_PIPE, + KEY, + PLUNDER_CHEST, + WARP_BLOCK, + SPECIAL_WARP_BLOCK +} ITEM ; +static int n_items = 13 ; + +typedef struct cell { + int id ; // mostly for parkour + int coord_x ; + int coord_y ; + bool star_allowed ; + CELLTYPE type ; + struct cell* prev_1 ; + struct cell* prev_2 ; + struct cell* prev_3 ; + struct cell* prev_4 ; + struct cell* prev_5 ; + struct cell* next_1 ; + struct cell* next_2 ; + struct cell* next_3 ; + struct cell* next_4 ; + struct cell* next_5 ; // I dont wanna deal with free/malloc there pls + char* meta ; // mostly for event spaces (also for hidden blocks) +} cell ; + +typedef struct playerStats { + int minigames_wins ; + int coin_collected ; + int red_count ; + int bowser_count ; + int items_used ; + int lost_coins ; + int lost_stars ; + int tiles_travelled ; + int events_triggered ; + int hidden_blocks ; +} playerStats ; + +typedef struct player { + char* name ; + cell* standing_tile ; + int coins ; + int stars ; + ITEM* items ; + int item_len ; + int max_items ; + playerStats stats ; +} player ; + +typedef struct imgs {int len; SDL_Texture** arr;} imgs ; + +static int* cell_count ; + +static int* item_costs ; +static int* item_start ; +static int* item_end ; +static bool* item_is_normal_type ; +static bool* item_is_special_type ; + +static int n_turns = 20; + +static int n_star_spaces = 5 ; +static int star_cost = 20 ; + +static cell* start ; // starting tile + +static cell** playerCells ; +static int n_players ; + +static player* players ; + +static imgs* digits ; +// len is always 10 for this + +#endif \ No newline at end of file diff --git a/src/display.c b/src/display.c new file mode 100644 index 0000000..f75e311 --- /dev/null +++ b/src/display.c @@ -0,0 +1,72 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "consts.h" +#include "display.h" + +void updateRenderer(SDL_Renderer* renderer) { + //printf("E"); + SDL_RenderPresent(renderer); +} + +void resetRenderer(SDL_Renderer* renderer) { + SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); + SDL_RenderClear(renderer); +} + +void drawRectToRenderer(SDL_Renderer* renderer, SDL_Rect* rect, int R, int G, int B, int A) { + SDL_SetRenderDrawColor(renderer, R, G, B, A); + SDL_RenderFillRect(renderer, rect); +} + +void placeRectToRenderer(SDL_Renderer* renderer, int X, int Y, int W, int H, int R, int G, int B, int A) { + SDL_Rect rect; + rect.x = X; + rect.y = Y; + rect.w = W; + rect.h = H; + SDL_SetRenderDrawColor(renderer, R, G, B, A); + SDL_RenderFillRect(renderer, &rect); +} + +void drawDigitToRenderer(SDL_Renderer* renderer, imgs data, int digit, int X, int Y, int W, int H) { + if (!(0 <= digit && digit <= 9)) + { + fprintf(stderr, "Illegal digit : '%d'.\n", digit); + exit(1); + } + + SDL_Rect rect; + rect.x = X; + rect.y = Y; + rect.w = W; + rect.h = H; + + SDL_Texture* texture = data.arr[digit]; + + SDL_RenderCopy(renderer, texture, NULL, &rect); +} + +void drawNumberToRenderer(SDL_Renderer* renderer, imgs data, int n, int X, int Y, int W, int H, int Woffset) { + if(n == 0) { + drawDigitToRenderer(renderer, data, 0, X + W, Y, W, H); + } else { + int toDraw = 0, remaining = n, nIter = ln_baseN(n, 10); + while(nIter != 0) { + toDraw = remaining%10; + remaining = remaining / 10; + drawDigitToRenderer(renderer, data, toDraw, X + (W-Woffset)*nIter, Y, W, H); + nIter--; + } + } +} \ No newline at end of file diff --git a/src/display.h b/src/display.h new file mode 100644 index 0000000..1851690 --- /dev/null +++ b/src/display.h @@ -0,0 +1,16 @@ +#ifndef GBM_DISPLAY_H +#define GBM_DISPLAY_H + +void updateRenderer(SDL_Renderer* renderer); + +void resetRenderer(SDL_Renderer* renderer); + +void drawRectToRenderer(SDL_Renderer* renderer, SDL_Rect* rect, int R, int G, int B, int A); + +void placeRectToRenderer(SDL_Renderer* renderer, int X, int Y, int W, int H, int R, int G, int B, int A); + +void drawDigitToRenderer(SDL_Renderer* renderer, imgs data, int digit, int X, int Y, int W, int H); + +void drawNumberToRenderer(SDL_Renderer* renderer, imgs data, int n, int X, int Y, int W, int H, int Woffset); + +#endif \ No newline at end of file diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..0ceccfd --- /dev/null +++ b/src/main.c @@ -0,0 +1,55 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "consts.h" +#include "display.h" +#include "base.h" +#include "assembly.h" + +int main(int argc, char** argv) { + srand(time(NULL)); + + //-------------------------------------------------------------------------------// + + if (SDL_Init(SDL_INIT_EVERYTHING) != 0) { + printf("error initializing SDL: %s\n", SDL_GetError()); + } + SDL_Window* win = SDL_CreateWindow("Game", + SDL_WINDOWPOS_CENTERED, + SDL_WINDOWPOS_CENTERED, + 1200, 800, 0); + + Uint32 render_flags = SDL_RENDERER_ACCELERATED; + SDL_Renderer* rend = SDL_CreateRenderer(win, -1, render_flags); + SDL_SetRenderDrawBlendMode(rend, SDL_BLENDMODE_BLEND); + //-------------------------------------------------------------------------------// + + if(SDL_Init(SDL_INIT_AUDIO)) { + fprintf(stderr, "cannot initialize audio"); + exit(1); + } + + /* -------------------------------------------------------- */ + + init_everything(); + + destroy_everything(); + + /* -------------------------------------------------------- */ + + SDL_DestroyRenderer(rend); + SDL_DestroyWindow(win); + SDL_Quit(); + + return 0; +} \ No newline at end of file