From 1006b231f026eacac27381f87f8c4b4dc58772a3 Mon Sep 17 00:00:00 2001 From: flameyosflow Date: Sat, 20 Dec 2025 11:02:42 +0200 Subject: [PATCH] Update --- game/build_client.sh | 4 +-- game/client | Bin 43752 -> 0 bytes game/client.c | 67 ++++++++++++++++++++++++++++++++++++------- game/client.o | Bin 38624 -> 0 bytes game/client.sui | 22 ++++++++++++++ soup/server.c | 9 ++---- tests/arrays.c | 2 +- tests/arrays.o | Bin 75688 -> 75328 bytes tests/arrays.sui | 2 +- 9 files changed, 85 insertions(+), 21 deletions(-) delete mode 100755 game/client delete mode 100644 game/client.o diff --git a/game/build_client.sh b/game/build_client.sh index 16f9f01..5b8fecc 100755 --- a/game/build_client.sh +++ b/game/build_client.sh @@ -24,5 +24,5 @@ echo "Linking..." gcc main.o suic_math.o suic_terrain.o suic_lighting.o suic_net.o suic_ui.o suic_game_client.o \ $RAYLIB_LIBS -lm -o game_client -echo "✓ Successfully built: game_client" -echo " Run with: ./game_client" +echo "Successfully built: game_client" +echo "Run with: ./game_client" diff --git a/game/client b/game/client deleted file mode 100755 index 989692a8d348427eb311a9e24d0731cf620da34b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43752 zcmeIb4Rlo1*)M()7(_~(iAtrG%BY}GAp}H41x+A>gC!Cnfnd=gBoh)%GU;R@!CN30 zjxrs_m$$F6=#@5Fw6tQ2iWsRtKuuDM8ZA}Y(l)iU?~KrvR&1lv=Kg;BW9H0|gYEtQ z*Sc%n>tW?Q=lOp2-p}4=f1Hptp1HF#GcpW)4KZ#oi1l48Dfx;~{T=lHkZ(*g&cgiy z<4eXc;6nvX^7ADCS6;3msc^WWlT5uGik}Y0C^-#vgoMLQRC*d3 z6yT+xu1}ibPqC`cbeInwuY7SgjC8$?N-rIbQ}PsIKoKL6EAHG?r<`Lk=kVpabdGQW7y zZytV_Yd76eYGk$;oup}ghLIs~l{RQbiEBP(nZj%i>c75j!o^kFp1$qQ*B`%N-?)R% zxsC7oCe_v~yL#%R+RBNwHT6x+6Pu@9J@M+Pxs8F`DIzTjls{2!X;?%{`n7+J=q?3p zkPDJ$4?<@57>wRyBfr;1{*N~DZ`#mTA^ySq{?LZL%ZC0X#N)y%zwbhDFu(WN z*gtGTKVoC&xDCC_2To|Io&7p^g1#ZRkIJ`>0GFO87`{0rMZQXZ(7(KT2q%jK;49Lsdpaps~tm2&||w z{LKv@l2cVz-dtsr*4GBgD;HFk!>dskEMGCZc!4n!{_BeZmHsOWjX8~9_OC1s`WqYl zl}3@jys;_hFYz~rjJeRGOzrGopsvW@SZ&V?Y*O6bwdXeJm`mZSos)>T5#MGb5T`ju`4B2PM>{Vr8gGlr<`gK=y)$YBZ=J z0#4eQ9W1Z&m(=!jG({b?kY4Zm1@sYcORU zVoV0ki}Cy&V}+hCOa4&7C+&V=FVmQzVB*qrjdy-q z(mA&sAs@xP$3h=vq4!$oU$oE_+du+rNlas~i~+Qc=yT|SbI zYD!$LcKJxUsv1EUZJ~1wpf7j3e4;#k>no>SK9Mfw`HGQep_8YtY3=ffG+n2pb?~?vG`6%wi?GmBrp-#RZ`Z=s(fMZ|rhg|4;=1bvf*{&_)>w{{EtJPUoRg+AIs-)^Df zEtZK3B_=xz)BG7CM&LciQX&$H04u+XPj=v;H? zE8jw&sEL4H3q99DFSgJpS?FaJdY*;8)Iy(Zp;uezQ!Mlb3;jw9z1c#aYN5AS=vP_j z>n-%FE%c2RI^Rb6+GL?m(?q~_3;kLPeXE6jorS*LLZ5D-cUb5%Ec8wb{RRuY$3nl+ zLhrTE^DXqx9zUyr&uZYa8u+XRKC6MxYT&aP_^bv#tAWpI;L~g11Lp-Fds~kU_eLDg ztiiI!>aYM0)L#igZM^)KSG>a8u1o^e}g!em+=OHf1NnDFyc!EelKxu zUBrt8eh+bO4aM^X9wg2!jCh{F?tCoLdy})}TM6;) z0{=d7ZXv|m1^zg3ZXLuo3j7h`+%kx_2>ctwxm6Hv5ct=LbBiFpRN(g#=hi^HSm5^% z=axV`U*JLF+zN>23H(mt+yaQZ1-^_pm;P~=z;7eYC4bxy_c@|t6zxx(OZ<4B zz-JQY(mviR@au?kNgwYN_!Qz?%Ez}0{Bq)4!pGYMei3ml-Qybtem-$7+2bt&Kbtt0 z>hT7Fk08z^dVHzCGl_F)9xoR7$E$#INgmG!&i+05k8{Fr-Qf+t=WRW5ytu?OxpVT5 zz0n!pLZb|f`sM#Hj1yJ4&avyDf&m~p<1HBQMjfvaT-zTSg`weF5aQ5q=0KlwYzyUH zRuJ-!3HhrYA-L?H-tcknzCYdQ-Pb?Fo6+Tc>z|=>VZg5p3?JyLa*i!b>NCEU8LOac zG+kNhZJjX_l7=_@`%soQGUEo&2S(+A6sthpcR5Nx$hiIGWW0zY->6FBv=?6v*;3e8 zfRWAX4X^5`a{jr~d6|bly;aV4Jbm8isEfV=KT*de1mSnQ;qF-bCj$fFeco_yxTw<` z_VhsL9B?DRBA%Y`o8E9&?BvIg@$`aaq_ci2SO>xS(`{*5U4nH8tY4?Io)WCXV7;Br z+9+6zwI`j`Bv?lfSBF=`cYBXFJlq>D!$4lt>y6xg$Q$;$fRFY@O8dOwVz(5%z5mBA zvu02+;I8WTwyx?oLOEdeM+`LZ1>(u&jpPpxzsvF-MxBt>%|X7g)&c)dw+ua zQlzva;&~|pS@vf{bUA)pMQ|i7!7@jzNBLjkd4&=Ol*1(+FtR

~!u#LUi%In2u2LG=@q&7WHPJYFj%qL|~UD15=@nN>XSk7AZwE zI@IrBjDay(wW9q|zh#~+BEYgDQXGdDiw?gpF?{8*9S-AGbSS*)pw6CSl-(j^vpvU& zd{ZIJ50Mf5-JX*i%Z}d7NDc`ni;F~_z}#XclIrx^5tl~Dp}it_kUfa5#K=QBhA}dQ z$B8ObQc2*D#xBEQ&~p;?bn<%7!LQv*4s6`vNe;jOBXV@GEwnU@F>Y+83;r!wL3@~#9lOkc0b|QijHbZ=F6ZGDU&WzrD zeVORHm!7~&ENnI>l=k%v0of(Uo|aP;{`LVCJR2izbQBh*;I=#VE6Lc}ZJt2s7<~LS zl&0J4*XZLwBZBMvp(spve?)LIdc)>YSd)2pxuCIoVUUipR#2CtMqmU&N?@SnaGY&c zTIA_4UH%v7R#y3HX~!gt2yNNRI%AJu_!606)`I7aL`7w^F(6qybX-)HH=_q}2u=7m z2A5+uPs-BX>0~o4vNFDG!&(QjjnTBKa6OoAph*~6#@pVCx4rw`Ls&@uJ6I(NRaVER zsXLwn@%&vfzfTA#GOsuZ5jwlH2OD0qYu^Sa?$AI zS{j{PHhM8&M5roeq>U`ZMs7)hi)tN2yKE4Cih(5%z@%?$q>XVV8Z)C4Z5e5!^Qtf= zbf*Zg6_pTu*a@NTr6mRmp;l2H8G{&1l^aCh-}T6nB|Wy9qCyjGeyzZr8`g=&W8I_i z+yF?WYh`tBSS;FaIEbRvR$<$r+Z?IUQlJr&TuZ%^%XXOnsMD0R^seVyklOX~Eb=s& zEWQk|$h((D(Pj89Sm3j2P<(|^5yG1UnPIJrGN@A>Lt(>;1 z$NXDvDa|334TNFcWGw*C8hfkAA2G~NQ!)&ZGD;`wlj5YzbS0x?v%UkKbCFQbmn_FN zA)aj(Dp949)tnUdDi&4b%tws(QiC(*GJ#7miF1-6CKr$WnOTj=g*jJQA#_f1l+pfu z|A{V!PLFry1dtQSmq=4nhIxn5=F8<2;gq~q<@gi@>+3~^om4m)7{rGRNOtW{55lo% z9^1f1P&?PwT1AJ(IK(8a1Grr2TbyUn>_HcaS9>m-~ax^zNcS6@_ zfV4NVxtSobyl=tsetmLzU$hbUCg5%?_py>MY6rd*cpmU+z_$bM0GK(7v6_8U3fn%znQ=OgY|DZ zcfP&vJy-bWYk!N;c;L*}!as$>eSM?X{tm5fgnw~nZ}{c#A+%9)osh38JYMAtU=fUh zX8RAIzEPm;x)?UNiZETu_K2lDD?aPlxuQn)rBvqRxUNjO{uJZE9YqINh2?`O7zu@w zkSXHLu~Z0(R&`8JO35{vP7Fj-dRPU>-62;ILUlQYNM$s4nFkvZYT5NYG_np~u7Q5} zWrn|apECzVD!ZMc*x$gm%pOF`)ZZ33lInYA0Cv-`eY8I%LZ0y@*max$FerhUQ?MfEzG_bb=n_;2`Iv!{g2t2YwpU}iPLD&tao-$N`y|ityDwBDyV#a=d>LdmEw^zx`Ec^+m9*C< zhM+r2smpB^B;FljFMyuz5c>nA*aXNfLPvuV5(5}^SGYK1BFPRz9$FL|8n~4rkI<~7 ziI7ExA0rJ6>?^=V3HM>UyDYL5QqlumLMY0gy>nK`!7L6 zsBwlwwiwcMG&|WJlkcK`H5zu;)ZxjaHpIkBMYZVSB6c^CTb99U*1zFWg=T4r<7^6K z(>ttQ+0rs^fXWO;8PYNsIh4%cF7*RF58|2 zhv-RkBNFc?CkL@{N;gQ9Vd<%L-^sd1GQY$9`E0ST?|9rJJ2>7hvV-?_dk*ugnX$b> zvA%B4LC)3UAK}Jw={gV8En>$)WOE(8)onwk710mFyImIrmCyHAnRo+< z$x;)>kL;#|@WZyktZomsh>vj~VN2{ds#`+j4Q@-=QZgAl{g|uw;Oy=0>C|J>XFUv* zaWWXjS5ih_$zl}{pO0Q>Q;Vk2(}n22R} zrAWMYo}Vl6wi1a)<-$iUgpd<1cq0UB3X>wM+fpSTrQ{aO z3fiPMm)N<1rgY|tawts93`TP6IGN%HsC*Ei-~j`f3}tGngRPW7Dy}YtE0<>rq!FE~ zXj8&yhuV(@)v;x!XsDQT5i)8ue$)(k$!}B!m|qi>;u1!(njkJ$i=1}5xYh2;TACyx zx5cTJE9=WiB6s2_T_oR9v16%)Leio?Fkpm^gCR(Rgf~SZ;O5j4qSdjz4KX%<(J@&I zx&0|MwSzJ*rPKmQuA-L`MxVuDo9sKP$Th!~1c+sQSfKK^@>fg|S5`X+=wV_;)?ziQ z7qL+$O~Ux=s*1y&brfdiZ~~Yj4BGgw!fZmR>V&Fu&w9#pLRJKI>2w20Ilx4Ni0-kt zh;pTrbM)skz9pCfQhYJpx{9D9cia=oo)(LyVkk&@LC_!H-z>zxs=Tf%u6GeCP1F!;I?4(OW3Q z9f9|MNy4$#RY%6Io{anIHCME*I(F8Y@d(&kfyFz-GH_OTWW9?NoNg9lcUBO)VDCpl z{Rk9|HQV+Mp^JWy)^&GK#G#>3bfX}Ji2A8dPFb44Oo7fPjW3S|I+B-JW~#w3qs^{ixVTY0tCG9UB-x*V^|OX}A{wd|xZ~*eQFcTy*f6KXm*d zJ^JHXnd7^xnb0skiq^mFdc!Eh>+(g`&#nh>+vCNJ4V#V9#K!P;DXI_$_pH*Bm>V6< z*qB`I7nJa&=)wnLr<|o7#M_>~6xeMZ!c%W1%tl8Yy$+k&Q4%611;TH@)k1jL+ss-x zh9_^-EXE+p82oS-E0eUmKS|nEM=0|AcB1?;u=QB8H~d=+fKpRe$j6n>V%RaqRF z3V#KBw0bWATD=eX77>`)*)+o&ar_PEj`))6zo#)X_wCAOnxgj@u|FOX#k17p0BW)l zHHn||298e0CZ%LbW_TFEEqP+bx zG)UN-&!j*H5TJM{94r(Lx?~JXAk}4-!Zr^6$`}NVMxWmZ`3^qs+C)P5@80lRIIjk$ z7;k^c>9lgX%_T~k>BgpC3LN1rMZgebq}A$?Y4??DW!fzQj5vOem_$PS4t_0Zx8;~j zqiulNZYAvM=W0CDT9&eQrm*%+ZLKZU+ID5FLqON4cOl2r|0!U^QLeRosah{7tye5D z)LLR_usnw>&&_!5Hot~Di?1VY5!7{Q)b+p-iQ~g-7*V#_r|=mf!ff-1!Y3;{rtt9! zKc?`fmHu&spQ-pK6#fsz?^pOLg`ZUTN`)J;h8%u{4^{YM3Lma;Q{f}i_%7fqF~*w) z)+WZARe)Ur%jh=03S<_OA{rG#Gfo9S@wRq4cFB(;-eA8SIB3b;=P3~p9i`w!PA2By z#mAc6#gB<&7bB75t0oynt4QMvng3j+o9D{lOjbSSo(j(vxCnBRc)WY0wT;jkrfij@ z0&%6l#~>ztx*;j98YQbAU$=_I$7111FMMP9KjqB3hwc0qh;TQDZ9Q7m6+>e#aqdhS zYx`2%)s><~_4%qSSV*9tW>v zd-075%;Akj;M|#?v0e;@@tH6owT3#)ahOK06@E+c<+>-{Xq1kP2fCCow=p_;H zj7jBPopZg>{Nvt?n0Mk*lvsXK+A7!?t-Gn=T>VzJxlyUcop?9koez}Sy;mVD8pm`O zJ!2SRZIH1NU`jgO>Ae3S-VhK|6s%`Zs~o$PduZZ2AfXkNpiP3ABfa5*(UFJ_wLi@j~$z6tOB? zoSUS6F-gr!Qood>PDxV7CaF`C)C-f;tCQ4=lT=Re7!8{2y3|Ea@9Ut-0KHM~c&nUc z&>PV!X2h)`53sTkDS*s$pmDDi#8p|XyO|_T=L2tGKHIWeyuO|5?q_oD6!|+y_VIgX z=ei1}Zp7p}4VkeWAY$^x7B)L@A5=TKaT^mVk_iRsMP?2U3mrXN)*_bp2pE{{i|zM4+EyhchZn;uu4U{Jy@S>}MH0&KJDHQaJq1CpDr+5m6P+r%z`F z%|G0^bNHuNdIXl%pWYDSIrCGjZ2A}CVFx|uv=KuhAFJKdR87SDxzk4y-BgR&VWOw+ zi=B(*W3s0YVMia{Dw>Iz%|=LMHk;BJ{V|%SbvK`HbUttewp-&bfFcv?45zvEBmD;W zyz_zo2_!iTuZJ<%B;YuX-hz!&*ikf=E|afYF)hVA2cv&#_niD%LKp^yO&@TsyOtiL zP4rmoZb&stZ(VW#A)XB})eD=l;~bJV#{b!m?UZ;w?t^wJ@j{SYlIwOvXR;dsX8nF5 zaj}^vJ*Rpi?GzTnBeQ5Q4AN* zC1wW1wli%; zl+P}6lk|=`S3<1XA|{_*j+wBIITulx3X_#PB_KFB{doKeoPLO0*@P!ntrn0D%hZH3 z+nk`{l>9O^!OS+>g?E>u7y9r>R2tl?3@QP^fyX?MrNAW?0sW@f0(Jeo70-JM(79uq zek}Iq#xUb30qE$(Z?x$qCv7hdPmEZ7QqokCSx*W{Ih7WYizr!`l#J37ZGO#SQ+UTG zibm}Gq@<}Nv*ufDlGbG|#NF7-UweyvuUmwBMoW~$%)R{Gx7dRz#G!lVlei{@n6Y;@ ziFc+DhwtU~SgbUK=-TThF+YXq-g_H~S4iSHt-Hm_()nPg80m;4CIZ_a$ZE#wi(QPX zFDGD^z=o*tXuX*MT12dt!e*xIYN}SV&0z|cHIi+PP`J#KZ1XII%jVBE&jt>|tdaHR z=Ye3XESA%HhA`;5?L3y}E|ez`_-xD*_JWG`6UB6{n+l33id>^P@4Xm=Pa9DOFrp4F zGZoWt%$!A)IKnhq}b~#4u~xJNhIBk?*{!yN38Bs;mm>iiafT387-Q z8oXQtK)K<n5@?VT)q>5#zO)PR9$hOA5 z6$g65kok#uu9(7}nxFqdN@3Mz#6~0hh#1ktY9suLtnjIbJR-&^K@NiK%!#4io+bxP zBA`XWC8}Zd%NASzP`2_?ZCxU49fz&w$-%n>&#pGwg)jN($eB2yv%LFyM7?C2y?}UK zO4Jo43e{10m!M+Ax$KQR?n^9|%zX9Q^{Usd#9bzF*wL>}z5)}k-9GH*TTDn9WVQ4q zUU~4DwPie;S&pPz6^}BhuhRSjEEHd*Q>9E)LB~{~FF%-J#?yv=mG0Q5wMexLP8g$H z96PejF&s6dFT6;_s3AfOtNFp|HdRTw&IT>(37orF$~qE8+1t(qgjby0yRt&#xZM}T zT_i$7s>W!g;RaNLY-j}396y7?(cyf06Hhcc4kF!V4(`n3SVJf3YV!m%`g8Ypyuovm zZhq8=Ll>S49aZNhCIzs$^&X_Lai1s88dzK$D{xlh4ePT8Rt$)Y2&;7$cK^B5mG#s{ z=b(-ObzICu_2NGlP ztcgk1RK?PJ^wSj1^8{ALbcM^k`)o5`;X2z26)rO?+w>}2W?{BDSK^Ml;ga^aDa6XY zQ{j~gzeC~NP>Qtm!8^tU8jtK2`~8vUxg}rFf%gPA_hawxq1+KE$D-TF?H6(}DaXRu z$UP$Dj!8MzE>?P@(`1p1qOh$wmuA1)6d)wp}J>he$!4t(}tC zBlA*cYpXv9j_%{fARKzU@(XLnmh7(MQFo%dR)+V5 zqZH9q)@P}vBbMiwtgAK}g%gvI<&3v5!}j4W^CJm9mf#Zr4BWJ9Ylxc<+(yi38Y8VVODmWt(h9JD$4aKQ z0(DC)|E858X;yZm#-fMtXD;9n{zKfw5dJjJx{~im7djDhdNkmt)WL(O1AO_y*&g>S zcS}`QRH#1BszuuHOgKl5)1t#i+BiNY$La0FB5fUlm>8!!CF)kM;cgt()?ka8!*tjj z3T7lK?x$}g2I!42KJW1Gn*gImvDBCv?2oP4rM3#$%-9wqz_!Ut*c9wGcj%N_JcKDl z)OJ@e7a}m7*n(L0CE{`mq63QLDVTLNc!@2D%Y+~fXe~m6`YOT1TNgv+{{C2HYP0co zLD+010=gUraD2)`5gH%VXt6L_%y+Wam9TnNs?{=Ob*X^(oK0F6UeH4&+Z81{F=6^4 zw+oW_#Aae(BPk06M^*367#$kqew$2$2gQxPz8x z2};Di&0auN^d71LP!&L^>R#~F7ugHGhr8$n-$iy=qPF$|qX(OgGlJ$%*vLwyO zw^EHXC?m~)_(fO|&+0a58aWRtc0HvK)=WUd`}YjTV7!+%ggpKOcu~2rFScu^>U8W; z=yU|wiGPHPxIK95cAGDOA_nts4`t6IYTNVb?L;n-D^+|Wv+icdAdE!seB}$oW$)~S zaq<+*+5}#rcSeL@wq^=AXgq`V&aTv2{Fy_1w0+#FFPsUG~lsD$x{-9+$Y|x1)8UQBo(`JxEZC5t$X)rlI2C ze4OWqn#XS1FSb5nqR$syqTR-R4|K@INb4$D}E}p|vxQCq2>P5%>TWa^WugCk?Ti zpU0C~3_LOPvqy92F98u_eks5outf-fp?(nohkkNDlw1IE0R)$=%urR~qI4z}-i6Ky zViQ_aLK}UCd-ui0X7s+rU%?R-As6Tqj-Rdo%_Aah^e&5mZwtfw3d66(Ha>&E&e(W# z=*FWN8(YP=gz<}o!T443Nn#%^dtT&!0k>-eZhLs+=N$&(iH|%3MmLY4IimxN!DivjVUq&;I$_$wDwP5jm%-s#6-XWfRq^~u`>XgkACI!>KABr=uy2V zO&y6xB^nDn%bcS5h$yI* zvxv;4$Y$54w8hI|A#%Es@_zxt_i~~SioA$rAYBT=hhAj&-8G4keT*BM?S&uMRr=+8 zi@sn~nVqY1Bb(AlFGXr_nPer{xXMi!={b$72`N&M&BNJzwgcJ@ zd?GGHd_}a?$O>P@&iaL4{%}&o*OUGR6$CTW&+imdgXmD2y#J}t7AiZ62fC=9d`4ZQc-+Qp77Z9eY>2_k?p_^zbLYK zC}SGv!1-)yOvNfD^dE}o+I`PjyXXQ>pttK+7YjNMZjav4y89LA7)_;-&4#pJjM_-) zq!#-Wv9muv&HkUiN7;kWXpP+_UT|=FC!DtKUP6~nb1L#9viaour%SFLCKpBUaWb?L zGl*!z8<92|Pf#X4gut0@m4LhMfNl8u`Zj28?x%~>q6~huM z5;Jil{4uL?D2uxJ1ikc}+CDw1eNYgJoZ{t^Q@lJ1FJpxl`GSyMzO@xIjO(zuAuBM$ zY2MBXj2?&4XH@S@{ANbt9Uv-@BI$nrwF;c`6pMC@MN90$Cf_xd)SyVZ3!4gDf?c50 z3VivyP>$xKIZyX1CME^ae4xLdQh#Oqe;F|cy>0hWC~&ggkM8&prdML=f_bp`6g{>I z&4xD@t%?~!qDM|eIPqRouB_=HPV;4vsxelB?KmiEnj&c-4w9-|3?x!@zf9HNFo~i^ zp#RK3hvK`S1KD?Tbhbw6;(xQ_!?yMnG^bM(+hJHlrx9pa^?WQc?A|xoH-oE@8CcxF_!%u|Hnu~ z#1WmEi3|nr3gPeyVK>|ziSlhJwQx)ZUnp$&t?>TXCU&LMS!)wz7S^KEGwlt{qahJP zitDaHjnk&Z8Uu=mg6ps{L|ClZh;)r|4Ho668tOm-M>bD`gXfNS98Z52ewdt4wuenh z>E;<8xvCtiv!lZzSFPkKEh=LXmC;5)>^gRd-?thD53z#p;5K&)^yRO1HDaSdZ7Jdx zs`{|UCXbCa%VVSA`0sbH;~tgAMw{iak^Vn?qw?5jvphEPx*?kbS$S-ceax#E9(#D5y(q;}MQ{3``ZZhx7ZPU`=fPyFxlNa@e6 z|D!d)zvFni3xDc0h(D^CTh(aj$GaPiyKDR_iUW=K8<@+hLxnX#`7kR`i$CTmXmjdA z{`$t6&`P7cZdr}LK9nRVGg8?2W_$Q6w>ew0e(YO%)&BSyzuhoy`30T_hF6R~K5E2y zdxkyu_vZJ%Y@Gk<4R@UUTXD%%JW81VvKR9>Q`lq%Q{_y4}Zn`g$_r)iR zzVWU9UJ&^GJ=1?`{^4-VlFP2i{V?Z5)qh-F@P!*6%Q#d#=dHQxe$>18?CR{(RTu&UeN>-+kxij*|NQ!~*KhxIaMqVbdq0S_ zynM^dcV|4h(YJ^m`K zJEwtv?$_0XP5Fty^WMyHWhv;R)~zDR-s6s=TQ- z#6_}jtt{vZm{XxtKTuMk*rP-#g%il@#WEdS9B8~kNA;5+sk6%TOg z%-0XhoiXCwi>KqSVghf;2QUA;7v7ro$irW_VZ^)N0o`4&`LUmS9M9~|PG(KzjBqb*L@q{0-UxT0DJ=Q7~qvJ3=E9Kf^Hw+1i-1- z&6^AO0AMX(3~&SBwilrfxbR2N2mJ2dfq~lJZ&nzzRClv**`E)0?5rbUK#hy zH!_-C8DAWE#_)}Zm-I3C*}8dP0H5Sx*W(QAFc`)-{7l79@53k`>>6jeW}h|sX6NTt z3~w=RJpcO3uN-#~sD>LqOYl>U`Z^!>jDoXV_hrt?8s=#oGQ^buFVcPsSc_1XY}ka% zO2HQX+d*yu|Jzo6<|7IHPS8(){~lw}K8E~i2n85_AAWXXf_4xv!Owg%p>H6zJ28Ff zO5yJld^c!r@Lg!jKVp%P(D$MYeP=Yjb34R{q!g0F-R=KK|z37HUNvhZQn>sMQ3Zr(7Yb?A^iR|_e_V2JE+EXqx{l;SRF zquvr zwSBXMoa6AqYgt_9E7+m<3SO$dzTfv12Rw;P5g7+!-kb+MtxKqI{1>aHd4+{QG!C@CG z{|a8B;MEGwR&b$$RSNR!e_r<~_>h86D!5a@E(PCFP-{*FgC zeliTF(b9qkUYQb5jPjGkV!|*~w>GX&^j<|5^LWsvEBdpS;{lhL(*kl{MmuvSkcxGU z>d0JckbW)aRJg=k9B>7GNdLh#q+&fIf$<-Jr1L)o;w9$YfZxLp=|>e^%(p>%Rnecj z4iC6=Ja6Nf^7ms^$xFQ)2K)%7?0O0`Y#J5o%PP^ z%Zh%XN8&e0V3a6&wW5ppui_1sSIZ&K8SYe52`O+7=o!X&iE&?ZxhBoPTOxgYyKM+_ zZnSaeF)b^eh|t zXd60zJ=8r&d8gRO7uwKowV^Myq1Te0d6uE)6*`2Vjr?jG`u#Ta{}A*n<30`)xVj`T z9=DO-VMFKt`ZZWRzXrNn*|dT`*vOv%Jsabj(ITaXDy1PJAFLMS^Eo#3F*fu`HuM`n zcb{tBC0p|7){x7pD7DLwtV()@0* zk$=&K{<;nQkPZEP8~TT!XItt)&#Q+!2Cx6~ZRiti==nDEn{DVNHgvxYo&T%WV0prI z1^ZEYKL3Y}{NpzCAK1`;VnhFx4gJqH^ncjUM+{@RvW(5@g)H`#kfKh~GqKuor{?V_ zA)iVUScN!P$*nM&>Uj*|QwJqJc~D|B_=9!E@?d%86r-`GuA$c7?5hvdH2Qs0DvhdT zbrLa_`*BWC9`Yx&>->$?MtMU+?Mh!|O^_!ff%@`VpEyIrVTn;uUR%*rOAY!7tngKp zSA=lLn52jNbq#?abfkbXrVaR3)P$-P3&)mMB935Pd2P)-ejvolD=P^ao0bvOHPsSS z20{e2{(1tcSRASYO<$m*q86t^fqLb#p*m2%JQ2AM72<2C!QqtA=nuh0{j%CX#a%4Z z9E5xe4zrA=8lOJc@-+klbqyiI=ff1;=kfYx&&LUj&s#X(@ZB_b-pqozzIn4}FYuK3 zN(yGq_4o{5;o@5gissBRZt{oZQPkW(MLDa_Xb7yR%D-vuoSCzHQ*x(VW7PTU5JHlY zdli+60`OhvuML$OHT8(FArz=jk*TN+H2PC0g~9R_CI03R4&^HO%)-n?E=d1~eR*A= z-q#o^4~Bd`qZ$SqQ}k#0m)F#5#RWRT3)N&MI$cY^wF+ zsI0D_7WF5Hvx^rXkwS?as`m2~+Ni24Z?=>hrJPe=6H+E=Y(Yb{Kj=4nb4rSQIK@LS zjY#5>BDk*imy|DqpTe3(!dXqhMkJYU&ODT+vZkKRREZG%<-wWd6?ZKU2Ab+CWq?h~ z{6=Fah*U`_Dk^wZb$PIur18$ ziso|GkI3N^msPcaK+qzL3h?<*I-lp3LNo^)H3odu<@J>)Cn~?BJcvqUUCwFzvVWzH zv{dwN)uJfHqCl{=vLvveBIrkNXhaI9rIJ)A3REJ~AwM4u0(G)YeLj3VP#^H2;Y4Pp zgzNJyYiv~I7KuRS)U2sbEf2=mj;widz3%bkjz|=V!i%+?$W# zvb=t|<`m%ww<+is9n^<$Xjz4fLRAT4XE zsjZw?Q)%SZ@W8*p5Q5d^Xph{=mGv+xVJIj$cjJ(nW1SFFh!4D=zqXtT>ZzeNM2iSD zH^hM}SBxyV!GNg5Tz|E%iskZES3*}~Dy)K;b0&t$mrH$LIX;6yz|_~za8q7aQ-K)p zy5KEWxRa)l+(vFipso&IBMkC3{kKWnhdl#7SZ0We=SjRY%okYlrsrRpl8Xnc{zj#* z;W#a*Af|IER{^jL{Am9>l)i>zQlzD?^|^?Q}RhT1=-G2%*(e*vi68`k=I z|5(F3%v*R7Fix$n_i?`h8eM9Ay&tWi-hYOOxM;(ARRG~$uh!T5yBe-j!a9B}r(py5 z+&k8|-apomd|r&7GCF?Jc&)(?+eGW@{c8;mQ3#jzul05L!{AYWCWUb6{csKS{yFu} z!%w>Ye}Tq2QPrHBH@ZQ@#r(8h^ku!cpJml|yCqjc@y&omL3~sIT*HU)Y}MEMD;j=X zZ-6NqT2GtgzM@rM?@MT?&q1_&di+l)eO>=Xi;`4us;+oNb}OjC(|DkNt*`gDG(4gO z6-@X4qcr`|_entwH>v)l&FJ>i_^WuZ_W$in2wWPv1(v*}`~N9eXW>V?(dR?kqf#f` zpT;%(4aBfJlF--ZM;-s7{!!>M_q2b#-`A=1b;auZ)P8jyoPaLtKcTNSnmf7Siz`Qh z#9ixa_z^f(eSQ8EQ~Jlrv|L(G!%Xn4`g&jT(0@uL9j7*-^%6LgNz?J`{f3y0zFR9Q zn5F#ZrO~y1djDmtysS{?uH?x3@NY=yRtI@}4_tsB9lsub&IBzHyHpYPoJS>csctyM Y(|)xmeqnG>{dtc|iO;7gq@l+D0{Wm;4gdfE diff --git a/game/client.c b/game/client.c index 9ad3971..65835e2 100644 --- a/game/client.c +++ b/game/client.c @@ -1,15 +1,60 @@ -#include "suic_app.h" -#include "runtime.h" +#include "libsuicmez/libsuicmez.h" +#include +#include +#include +#include + +void* gc_alloc(const TypeInfo* type, size_t size); +void gc_init(void); +void gc_shutdown(void); + +// Helper for allocating arrays +static void* suic_alloc_array(const TypeInfo* type, size_t elem_size, size_t len, void* init_data) { + void* ptr = gc_alloc(type, elem_size * len); + if (init_data) memcpy(ptr, init_data, elem_size * len); + return ptr; +} + +// Helper for allocating structs +static void* suic_alloc_struct(const TypeInfo* type, size_t size, void* init_data) { + void* ptr = gc_alloc(type, size); + if (init_data) memcpy(ptr, init_data, size); + return ptr; +} + + +; +; + + + + +int suic_main(void); + int suic_main(void) { - suic_app_init(1280, 720, "Voxel Shooter - Client"); - - while (!suic_app_should_close()) { - suic_app_frame_begin(); - suic_draw_hello(); // gameplay / UI call - suic_app_frame_end(); + suic_init_window(1280, 720, suic_alloc_array(NULL, sizeof(char), 21, "Voxel Shooter Client")); + suic_set_target_fps(120); + suic_disable_cursor(); + while ((suic_window_should_close() == false)) { + float dt = suic_get_frame_time(); + suic_begin_drawing(); + suic_clear_background(135, 206, 235, 255); + DrawFPS(10, 10); + suic_end_drawing(); } - - suic_app_shutdown(); + suic_close_window(); return 0; -} \ No newline at end of file +} + +int main(int argc, char* argv[]) { + // Initialize GC + gc_init(); + // init globals + // init event loop + int result = suic_main(); + // Shutdown GC + gc_shutdown(); + return result; +} + diff --git a/game/client.o b/game/client.o deleted file mode 100644 index c6e108565e0e881f527285b596ec0eed7beb8929..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38624 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 qh|`wt^5p4K5r}2wvtqdP`aq@z+b||NjDPQp249 diff --git a/game/client.sui b/game/client.sui index e69de29..7f90f69 100644 --- a/game/client.sui +++ b/game/client.sui @@ -0,0 +1,22 @@ +fn main() -> int do + init_window(1280, 720, "Voxel Shooter Client") + defer close_window() + set_target_fps(120) + disable_cursor() + + # Main loop + while window_should_close() == false do + let dt = get_frame_time() + + # Rendering + begin_drawing() + clear_background(135, 206, 235, 255) + + # Draw FPS + draw_fps(10, 10) + + end_drawing() + end + + 0 +end \ No newline at end of file diff --git a/soup/server.c b/soup/server.c index b341dca..b9e24ad 100644 --- a/soup/server.c +++ b/soup/server.c @@ -4,9 +4,6 @@ #include #include -void* gc_alloc(const TypeInfo* type, size_t size); -void gc_init(void); -void gc_shutdown(void); // Helper for allocating arrays static void* suic_alloc_array(const TypeInfo* type, size_t elem_size, size_t len, void* init_data) { @@ -22,12 +19,12 @@ static void* suic_alloc_struct(const TypeInfo* type, size_t size, void* init_dat return ptr; } - - +void* gc_alloc(const TypeInfo* type, size_t size); +void gc_init(void); +void gc_shutdown(void); int suic_main(void); - int suic_main(void) { char* SERVER_HOST = suic_alloc_array(NULL, sizeof(char), 10, "127.0.0.1"); int SERVER_PORT = 8888; diff --git a/tests/arrays.c b/tests/arrays.c index 7e33cc5..644f914 100644 --- a/tests/arrays.c +++ b/tests/arrays.c @@ -51,7 +51,7 @@ int suic_main(void); int suic_main(void) { int* arr = suic_alloc_array(NULL, sizeof(int), 4, (int[]){1, 2, 3, 4}); - int x = arr[0]; + int x = arr[2]; return x; } diff --git a/tests/arrays.o b/tests/arrays.o index ec5d2dde62de12d7dd39bf7d437347aff1ecbaa8..6366f7487dc982ebb3f843e7bcd2f50385d89797 100755 GIT binary patch delta 20326 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

    xp7 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 bIomaSX?o#VFo5Q_(4WTO@<8ia$^QQjcXT>k delta 22368 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 int do let arr = [1, 2, 3, 4]; # let empty = []; - let x = arr[0]; + let x = arr[1]; x end