From b0bf45a8a5627984fc6c983142f2e729be0bb825 Mon Sep 17 00:00:00 2001 From: kin-fuyuki Date: Fri, 20 Feb 2026 00:39:02 -0300 Subject: [PATCH] git deleted my shi! recovered lol --- built/launcher/res/btn.png | Bin 0 -> 159 bytes built/launcher/res/btnhover.png | Bin 0 -> 166 bytes built/launcher/res/btnpress.png | Bin 0 -> 165 bytes built/launcher/res/exit.png | Bin 0 -> 754 bytes built/launcher/res/forebutton.png | Bin 0 -> 2963 bytes built/launcher/res/forebuttonon.png | Bin 0 -> 2043 bytes built/launcher/res/forums.png | Bin 0 -> 1020 bytes built/launcher/res/help.png | Bin 0 -> 794 bytes built/launcher/res/info.ttf | Bin 0 -> 66676 bytes built/launcher/res/launcher.png | Bin 0 -> 11748 bytes built/launcher/res/lockbutton.png | Bin 0 -> 2767 bytes built/launcher/res/log.ttf | Bin 0 -> 24220 bytes built/launcher/res/options.png | Bin 0 -> 1048 bytes built/launcher/res/playoff.png | Bin 0 -> 6082 bytes built/launcher/res/playon.png | Bin 0 -> 5976 bytes built/launcher/res/showcase.ttf | Bin 0 -> 69692 bytes built/launcher/res/update.png | Bin 0 -> 1139 bytes built/launcher/res/verify.png | Bin 0 -> 965 bytes built/launcher/res/versions.png | Bin 0 -> 1206 bytes built/launcher/res/website.png | Bin 0 -> 1126 bytes games/endlauncher/src/main.cpp | 356 ++++++++++++++++++++++++++++ games/endlauncher/src/netio.cpp | 5 + games/endlauncher/src/netio.h | 229 ++++++++++++++++++ 23 files changed, 590 insertions(+) create mode 100644 built/launcher/res/btn.png create mode 100644 built/launcher/res/btnhover.png create mode 100644 built/launcher/res/btnpress.png create mode 100644 built/launcher/res/exit.png create mode 100644 built/launcher/res/forebutton.png create mode 100644 built/launcher/res/forebuttonon.png create mode 100644 built/launcher/res/forums.png create mode 100644 built/launcher/res/help.png create mode 100644 built/launcher/res/info.ttf create mode 100644 built/launcher/res/launcher.png create mode 100644 built/launcher/res/lockbutton.png create mode 100644 built/launcher/res/log.ttf create mode 100644 built/launcher/res/options.png create mode 100644 built/launcher/res/playoff.png create mode 100644 built/launcher/res/playon.png create mode 100644 built/launcher/res/showcase.ttf create mode 100644 built/launcher/res/update.png create mode 100644 built/launcher/res/verify.png create mode 100644 built/launcher/res/versions.png create mode 100644 built/launcher/res/website.png create mode 100644 games/endlauncher/src/main.cpp create mode 100644 games/endlauncher/src/netio.cpp create mode 100644 games/endlauncher/src/netio.h diff --git a/built/launcher/res/btn.png b/built/launcher/res/btn.png new file mode 100644 index 0000000000000000000000000000000000000000..f68b8a08bb27b2cde72a51d58013a96e1392fad5 GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^2|z5s!2~4JZoFLwq&N#aB8wRqxP?KOkzv*x37}x0 zr;B4qMC;oN8+jQNc@7+CxKY1yKC9wIMX?{e1v5qVaq4XU+bZYga%O65V8nU873UoF npIdcUaA3loosaIk={i(*M3vLfzu literal 0 HcmV?d00001 diff --git a/built/launcher/res/btnpress.png b/built/launcher/res/btnpress.png new file mode 100644 index 0000000000000000000000000000000000000000..2a6b8005895a68b895cc952d54c25a4314ffd1a2 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^2|z5s!2~4JZoFLwq&N#aB8wRqxP?KOkzv*x37}xO zr;B4qMC;oN3q>0Y1P)wizCP37jXmos;VWC7i3mHS_&@QVF#Yk)cNeyc3D&N=D_J^s tH}k6E3-c$wRCs^|UicNGTwLxJtDlw2b86Q^TQi^)44$rjF6*2UngAwaJ5>Mx literal 0 HcmV?d00001 diff --git a/built/launcher/res/exit.png b/built/launcher/res/exit.png new file mode 100644 index 0000000000000000000000000000000000000000..328384c736f5465bee405b5258b08158b0c21af0 GIT binary patch literal 754 zcmVAHIP00009a7bBm000XU z000XU0RWnu7ytkQq)9|UR9J=W)lW#1VH^kW@3TdWn5JH8hL{5P8@B2LO`}@Q1g$FR1OeWL6AR@O!m>Wq zRoCCBbQb^sB9aT>DuA;9HUYeg#bU2Rp%9%;Cu}xbFMz`&Zz!cs0C)gkUTfXD{ryP* z5AnO7ds^$S39;P(nzFOAvkD6f&xOO`_W<5%tzV?F#{=E%rMLo62izO}W* z@$vE4@bK^iNeci}R#xT?4Gl3GjWQ4j6nA!ZKHuEjB*~4PI3&H3lan+IgCuJca~Ouv z8w!P(3@puMmYHHs2{r)kMfBw?h+1V@o{r!t|b#+ZE zD=VcW!z527#d0q!EWAt}fQV%Ie7>6`U!|(Ay*iZc0!Xe`RaMQkwYAv+xRbUEc5WIQ z8)uwO=i~bN`c|dX8h}emsr8f=yARSnfM75f$OawOA~*0Q&cmgXGWU<>mZHBx0?osIV!eP6LQ)t!MYGu{}!r z003Zdaq-FO>grvW%QZDUJw0Z#**mE=h!4Pd0Py?$7Y)P66OnAKbsqo(gTalWqN0_Kj*i=QyZu>aX68gs zPtTE@oSZeK)YEkKeqfNyBsoPgzJ1M+ys*7@KjH9nkZeeJF5Z4;E%}rsIhK^;Lqhx+ kk_EffVltUbCQ~Z>0+uClgWVAsb^rhX07*qoM6N<$f*A!}@Bjb+ literal 0 HcmV?d00001 diff --git a/built/launcher/res/forebutton.png b/built/launcher/res/forebutton.png new file mode 100644 index 0000000000000000000000000000000000000000..d38eddc743036e991eeed9d3dfeb1f1d2750a523 GIT binary patch literal 2963 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 JPDHLkV1f#Mqg4O^ literal 0 HcmV?d00001 diff --git a/built/launcher/res/forebuttonon.png b/built/launcher/res/forebuttonon.png new file mode 100644 index 0000000000000000000000000000000000000000..5c0c010fb49bff879d9a47269335b8e0e2a7cdf0 GIT binary patch literal 2043 zcmV8`G-{_3ZD^u!(& z<#|4tOw8=;?Cj}73-cp%b#*nFOpYE}jJwf#y*9J?e4b_5BNKf-pI=>FnOWcWPaayB zJJWnV2izYe*0U^|PN$CyFiMY4bfCo?V5+L>y3WjsqA;_r>x!ainx?9%rfD$1Jtnzh zOxJbm^_o-oR{M2nuBc2fCeL#-Td&urr>9w#VL-y_2ta5kcU?mp9MfzGZSYYJY^(Ah zJnED@&pBqjUKd4y75l#L`#vE$?LkxF7kX2y*xs>{PFv2!Z=UDu*R|Bxu7{nY(I|v) zA6R$5P)In%x~_Bff|8KFs;auK`8E;P$?N^+;XhXD5PkaTxtXok>paha1v6VL79oVu zXtddEcC21il_KoptN%s9qVG9Orm>DV^RUtvMM2jj`e|}=!BIVli2V5K$-^Qi&-1S9 z02`CY=B@5R2Oclq&F@9X9nv5RVt)wX`1sh@Fz{$(BJ|t@rhB(N)^)-l!kF3h^|cor z6X?;*4#bbrr=OnF7`B^eTq;#Qapbl=0gWJWZ8MwAWmq2&$ zOBzDegY;U}*=`X9XH8(;A_O~B>?0ammr=1)K4!h7K9}$2U}AzCGuv!73^Ly8wzcJf zBGD1unq~$EV96q6Ymf7jSPd7W0d$Mql!`ii6!gjQPERUBpwmGS0Rb~QiIZ6SW8YgY zmu5Db&3s(f(Ceg+MW^&!K;xuTkHm*As_?(C#fLIwuMB<;2O?E}jX(1AMCcGFO7IMiNt0PD9e1nx@AuK=`WCASvg zjuH}Yd2yG%q;{!pU!eT>>PcLURJ&&)+YLl+35y(2t7WHZ(=;b1Cmfs*-ANe-tbJ2l zbp^wws6fsM+2v%(b}^J8iplxXRjR3s*AO_S6!WMrPLc z{c5#JWK-oHw__zu4rx{DuxwlN^YEsdL*iQG>8>V0bzRqWJsywkHh?)mOoz$oanjKn z5xrVLk<46P$vr}x&YPww%hHRkcNmAk&GEL!iMid34`7SKTYRd(idyC3#>*My zjYEY%^3#A)GN>`+u^+)9uFOc91e2ZW2~}0KZJWN#h$TC`2@p#M@Z&_Yy(7R|;(RZ5K9JXWPEd87kqeTy2F~%IOsFfN8fT`9`Wx*BKD zgHw{lZmRWd%qSkLYtS{(*7az6MWCt?r#ww_&GwE&>-BF~cRu05b5a4u=J;)FE%yzO z%r#8ujbF~SM8atng_?L}~ zi;ECKmSy<3I{$DPuSYui>sJ_qyGh&Bb=@@0X0stH^gs>_!>hWkIg7;4Mwp13j1a>4 z`FXnha&%a3GyD7J-xY#Q)1cD8Bjwhf5CR2F%B>t|6!z>K@aFTI+UWH3l;f7m<#*+# z^cD_Z0^E(%!9obwI;Y`{)xUiCfKmp^a6*!;sK`05tpelTv+I-q8I^_*py z8v8KaSbZ{?yng)}J4-BH{q~j!qcJEMXfzsCRYhX}Ee`r7=ua|v_UzeoIyJMt@4tTi ziht_p6#A$d{%EmSTwGk7ot>E(=2um!6-rmnI9cdDVURA}zL(su`_M{2~V>lz7i7>2Se(QezeEX!dSkoI4` ze2LNp*St67SF8{leCv>dKc%RwZakGID~^-$H&LEjT>#-;$BYM_{9L@+0@}u z1#(u`HeHQjPU9U(S;2&5S-yGm212h^D@sH8C^ULjtCbE=9d?RdLX-dWv8}zCQz(!s zz!1UTvMgaU>@w`cUnj2Wpl{6#$576qN^RRdr5w({u3vW}wl0GV%;|){N*2+0Jcd!P zudfv(u@1@hk?j`Kpe)PK38bnTao}4nm%}iepP$3PDkb5o3#*OC<1yvNu`Sjx$#XWF Z{R0oeXU9Sxff@h+002ovPDHLkV1g!1^^O1l literal 0 HcmV?d00001 diff --git a/built/launcher/res/forums.png b/built/launcher/res/forums.png new file mode 100644 index 0000000000000000000000000000000000000000..5611d840679fb88e3ca297d2dca09658f62da4a9 GIT binary patch literal 1020 zcmVAHIP00009a7bBm000XU z000XU0RWnu7ytkRu1Q2eR9J=WmtjcUWgN%9k25_67w6zMdQlK8qDb+6M9gAhXrZWO z7&x`4y{SQO76+#9RQF37tDHr0+kWD20pEp~}Rr_o1CT`*|^-kyR z|Lui;;W(rcy1StJy!!F{p6~Ph{eKVt=ivd;q)C$|WvFBsiO4YkZve0WxE+l~&jf=( zCd>bSkBFRJSy}mvWRyFENghabU8yD`iC(vIa&oEwJgs&(sFaE((f>b5!jB*kDFN^% z02CD!m5q*$4gvT?)3j><;BYvyl~VNpo&)dzz$L>l`lqL-Y3l0%ybRz&08av_1fXe} z<`I$S0lW*qrD@udh@1dW2H+!2({6~!834BdQ^5{dZc=jRQ>Fm3{X&*vLhUS1~25&)Q)nYlJMH%F51iHN1MvvX^8b@is-?~e`+ z4lb{+uYca#+e?z;rvJ00rKMHd+uOfIA`uP@3_Ms|T>OFLi>c^U!VrEyOUnx+uakT!8GT9S z9k3@Bi{&8zVWretN~tBK)UU0rt!Du|7CX;ov)u>aQA)k0l)9^wax0~be`s^1udnZy za5x+Q@Tsor_W;~7b77aub+)*;_^HOm#`9TOS)Ts>{x6kM!~fbx{sozTKP7Pl0s*6- zpdfo}Z0unXv6%Ig0=SF4@2B7Q7~2j60*7oi+W`?d3ZP`4WmJ2;-nH`b^2c*?b8FVt z)++6G`)QIErBvfS*V;D;{{uv%UPLYcsB}7=Pl$+DMC`lyt*xyuLZOhgu(0r|)oMNO za5xT6PELLRKsWUt19-o^z5RG?ZS6@BX^FGAIyE(AYieq8TdmeAr_*_4XlUr2Xfz4{ z4WUrzRbAID0MOCVam>^l^m@IA&G=4UUS3;UTiZ8fWo6H}-R`gQ^YeWG4kfTH$%W)} z{0&U9FeYy&IZM(o-wBsu-v}f(J6ZinlO|1?6!9mjv@E5k@RQI00000AHIP00009a7bBm000XU z000XU0RWnu7ytkQ%t=H+R9J=WmqAEWQ51&%^BN&Sh731BWcXxCYrst*xCmp;Al0rm z1r7xf(ohf-M2l3YBq$2eTpENzp|ubf@?1<(LL^kgIN7`&sf7tqQDbH~^S5v&1~D)* zpVWMC;hoEQ|NRg5-FLV^jvP61xQ4j7xT;nFI0xW_Wm)zjH8ub^4qz*QQ*n@pn&Aj zzP`RB0H|sWfE@t705AYd1E{wwYbK*1B3D)QU2ALW*=%i94FNa+;0|U_$aeq*0B%~A zb#FQ9Tk)vs;r90SHzZ>u?e6aGiFiCdMsl61u2Iz+Bp;J}Nzxu4AAi-=)ipt~aE?xm zZQHTAC!nsb?!9f>VCn!CA|v6_T7b45JhP0)c=bBHJy?dbmIhZ!{WRoe2VgfCs>O!!Ur^ ze&Q;t++18$O97mmoSgKPmzO^s92^`5a3+yRl==Ps*R{2^w|qX|sN*q35s$}H zBq9gO%F1q6S6A;5kt=T2zak)cjii%qvfD_W&WiV@b9ysPI6YpHyq~2JP0u@7c@F?U zRWGIE=$!XE-KzP&K~+Pl`mnjV`GczNblcB-xOx*_4oE%$;02HZ@Ipj(yKE^(jvPPv Y0a{LRp(%C9u>b%707*qoM6N<$f_rsa>Hq)$ literal 0 HcmV?d00001 diff --git a/built/launcher/res/info.ttf b/built/launcher/res/info.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c809d80c3896f28c73766517f1df24cf6be9e696 GIT binary patch literal 66676 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 Q6<;g~F`KsJgw3-40hjW+T>t<8 literal 0 HcmV?d00001 diff --git a/built/launcher/res/launcher.png b/built/launcher/res/launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..72a1c40a5213288aa6a7904739e22c6027dbf433 GIT binary patch literal 11748 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 literal 0 HcmV?d00001 diff --git a/built/launcher/res/lockbutton.png b/built/launcher/res/lockbutton.png new file mode 100644 index 0000000000000000000000000000000000000000..1bddb89879cc21172a7a920aa195746af4983815 GIT binary patch literal 2767 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 literal 0 HcmV?d00001 diff --git a/built/launcher/res/playon.png b/built/launcher/res/playon.png new file mode 100644 index 0000000000000000000000000000000000000000..48a57fcfb7d5694659d4b3b1e6e722ddc7bafc89 GIT binary patch literal 5976 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 Gmirr)T#f$# literal 0 HcmV?d00001 diff --git a/built/launcher/res/update.png b/built/launcher/res/update.png new file mode 100644 index 0000000000000000000000000000000000000000..c47f0ca18515c966605f4e0c1eeec739b4d83c1b GIT binary patch literal 1139 zcmV-(1dRKMP)AHIP00009a7bBm000XU z000XU0RWnu7ytkSB}qg6(8ZujHe zAKk%WQByi4^!3+=@B8yS&-?p4d_Uh0aL6GC8Qp#x*eL}C1-kU~^qWSb@uixfpF7aLT3*;eh%P55C!OS{Q8TqmVxwI^ zMDhXD0ccQ4EsIDMfKmX>N~!Neq#i&9fExf_0dO3^1b`b#sjX0sV*suIcmjY6zlL0_PUTbV@ zEc5w%cinC``}_MhEf&kQ$Rmj4C6eo2ub183-9eI{g*CU^{mJS7!C-JkL=r^g63ID|*GZn3o}RAg@9$p-4?slDipVt)v5Lss6%`fllU$0ZpJ=gI zYDs?nH{Mc;iiX7hSgRn^ypg@rvOB_(|w9UT)St=sqi*F^mY3Pb+m*R1pV{nY7n zPimUB0RSRmt*)+q-Dot%rKYB)0{BtWv^PWAkjZ5FxU8(KR75lY&vkTkY-DF=Uk(O? z#|8%n0|4$nptWBM3k&Bh7KdrVEjw1yH1+ki@odoc#$K&yaVq;=rVm2}}Gp~9)p1PWv zn)&th^~T^$!mW3|t8W0%3hCD=X`_)z#J8$;rvKq@<+t zBO@ba0Jbzu7^6WY-?`C;E^)Me_I15AZI@4@2u%5ve3OPO_Hdz0mVJB;zCE zGe|Cnv<;FKq4n*MZX+2a86f!;$%%0Oh#cdgJ;6}^(-GPUlG73TJjn~u?u!=f0{=$n z8k(1zn_E0KHuj=Y>dXE1bl@QQL&Wv4cfb7{a>yZj#UEpBYSs>HZFv9y002ovPDHLk FV1n69AKCx_ literal 0 HcmV?d00001 diff --git a/built/launcher/res/verify.png b/built/launcher/res/verify.png new file mode 100644 index 0000000000000000000000000000000000000000..207bd09280a407affb53c09e109c4ba0fc401588 GIT binary patch literal 965 zcmV;$13LVPP)AHIP00009a7bBm000XU z000XU0RWnu7ytkRcS%G+R9J=WmtSaGRUF5^$Eb9L=BW~<&>>=1YGm!h)K)O`SG|IR zKp%7?;H-4a`mjE@W$lB33chSUjCL@~5Vn@KV1p<=ZG@dha*f!*W=$v=BZaPuL((;) zu#x`B{rb=w30c@)np;@=f%|aJ_nhDT-rwQ;&N;v?yX<7tb{lXC5qSr|Q2=`YWJrdl zr>D8iww@hCq*p{dPtd>0<#OMXEO3)YBwbE=eC8pUCi#9PO+-E+d5`3Nr+qz%s+J%T zIRfAifOP=J0lWg>TU)-Mwf;jy_5%0}KqG)h0Ipe<^-DAwr5)o_00w|>05k#c1Gu5J z9AHTG`yiAf0 z0YF4vo12@n>^^Tek)x_2BJOZFoFM75-;ZrmQIq0yt}ZlFji>-Z2e=BzgK8~F&qxh7E70i z9JVa$bCTz_J{ynoe6>HIwO(mzYMSco?7Sc%egOAeE>{r1n*dxL9UbX`fq^;z@0AUG zwe-d9cCP`rsFVuXO(R?6Z>_PhvA?yo^}L7#0NhkcjR9!eiug~X>JtC}sZ?q#7K?r9 z^?G|lq0l^l+e)c50BC4vxF3(l6QNM(EdT`YIslK>`dWohcdF#?s%e^;Kp=3Ur>EyG zfXhlLM~ZS7rMT^4{2rPMqCh{y|leSPVfnVEbtnf$Y+rsn4G@Nk{S zDCU458Nr%kPOuozcF`T=+Wprxhd?QAxCHwzxXre9 n79AHIP00009a7bBm000XU z000XU0RWnu7ytkSXh}ptR9J=Wm48T_bsWdvUp;)3R#NjYEnAyxj`_$ybaT(Az{{9f z47WjZ>tK`Yk10`%NnL;F{x}K1CA)W^CzTf+-s;W1MC>}sQfFuC(0Iqnw-p2O!cJ_N51@IDp zQvkLD*bksvRn}Wc z2;l1C;^NmG9UZJFO0*E-JOB%Tg8-fYa81*++V1Xd1e3q+G&eVoxLhvw^JsH(bMes7 z5HmA-Jf5>ebo~1D>&LuauS?T3?&<0Awzjr@&&**<9({d%BlY$5Tvb)|iKb~*hr{9X z`FuYD01@rV&CNaN@p$fNn#PwdU0R%&nCN0=!;+qv5BK)=veW5gW_~$vJ|Zf}&(Ghl zY1-}i`FWqsX7jbQvuOd-T=tJI-+or?f2 zEO`_b79NR@kFP2yC^#%h((efg39&+m5B*E}IXOA`-MYHES)dNs?|xMMcFK42Esf)6+TtO#ooETJOrTd?6+# zCNm-;BHd=Qz2J7cBLU?3ZI;bnDXTUB0K45jvt!4OhV1O@N+QYyFs{?-J_3-!%;8yC zS)-+;r5gY|cb{}~;2}CXdI7*^LWmN7=~Dn8qWR+D;blp|)YNd` zz=12l%qK}w1b}%V#4&$ql88RY%gZ})-_>`75Pd|n)8%q~o0yom(O+Lx{=-<41pvVC z@NjKwYwK}YmJ7{h^A7+s;YYR0alI&)LyNv zt)0oq$=NK+a^CFh>^{9-|28vALI~5t=Ca%EK7+v^wY9ZH6Hz2H>x2-m0GLAXZ{Uja zmt)NqpsMOmX=!O~Sy@?!^m@Gyz+eBzv9YmpQ&UqX_UzfyH!v{J85tSbZLwH3#KpzE zE`)fEh{^#xWwBUNG)+q z1pvy+%hR1sX95vDuBvK10Jz=mn(^`RQyCc<1O5H|_AOhs+^Vdsd<(!`B1!`A=9x2R zQcFroS``<6O}!mV{(lN){*9T39#DUbnfsX8=l@2Td1pXhAHIP00009a7bBm000XU z000XU0RWnu7ytkS7)eAyR9J=Wm48T_bsWdv-#dTAyoENMa|AXl1$S@@Dd+RK#SP=e zf-xOrjWZlnV>&2@(k=r3=?B`Nz>WTitQf00!gn_=VBYQ7-39O-<#BNEd*O0Q@9R`h319 z0BD+)rIdONKsA8h0elPKlCJBw6YD(z;C%qfYPIgrb^VtlKP!Nin>TOfx3;#LMdSDmlFM-w{G2fw70i+&f#!01cO0aadB}TlKyC=)Y+DnmK~8u`;cz$$z@pu5?|` z@DEO>vsx*2A3!;PVqMq2Sq^Z!-KIbwkfmu_j#8=`z&fSWJpc;8i#O{>-zX={nEt)*@6Jv8W|b6 zd+^}FcgxGmdxOE?!iEhSngDzW0MpacCuV17^J{8quA5Az&k73*?Jk!~NS+aq!vMBb zR#ryy^75`078be+3JNr@*INx>y;3R;VAgClf7IRG?WwP?fBMv^Qx_~2ixH{{H?3l809EdqD3i{g5mo z86%lZ(n2zt(tniXb&~fJSCFJ7(Yr-*iDVnedx=AGn&jh2^8+NmPMQyp%uVY5ntIBT s97}Pyk~IGl$t|n#%a9>MhKGc|0Cc>LNhi5Q*8l(j07*qoM6N<$g13MtPXGV_ literal 0 HcmV?d00001 diff --git a/games/endlauncher/src/main.cpp b/games/endlauncher/src/main.cpp new file mode 100644 index 0000000..44e57a2 --- /dev/null +++ b/games/endlauncher/src/main.cpp @@ -0,0 +1,356 @@ +#include +#include +#include +#include "netio.h" +#include +#include +#include + +using namespace enginend; +using namespace enginend::nodes; +netio nete{}; +/* + + */ +struct background: public virtual textured { + background(Texture2D* texture,float x,float y,float w, float h) { + this->pos=Vector2{x,y};this->size=Vector2{w,h}; + this->texture=texture; + this->justclicked=false; + } + void boot()override{ + img=LoadImageFromTexture(*this->texture); + } + void tick()override { + Vector2 mp=Vector2(GetMousePositionDesktop()); + Vector2 wp=GetWindowPosition(); + Vector2 rp=Vector2{mp.x-wp.x,mp.y-wp.y}; + if (IsMouseButtonDown(0)) { + if (rp.x>=0&&rp.y>=0&&rp.x<600&&rp.y<300) { + Color pix=GetImageColor(img, (int)rp.x, (int)(300-rp.y)); + if (pix.a!=0) { + if (clicked==false) { + clicked=true; + relmouse=rp; + } + } + } + }else { + clicked=false; + } + if (clicked) { + Vector2 nwp{ + mp.x-relmouse.x, mp.y-relmouse.y + }; + int cm=GetCurrentMonitor(); + Vector2 mop=GetMonitorPosition(cm); + int newwpx=nwp.x-mop.x; + int newwpy=nwp.y-mop.y; + int maxwpx=GetMonitorWidth(cm)-GetScreenWidth(); + int maxwpy=GetMonitorHeight(cm)-GetScreenHeight(); + newwpx=newwpx>maxwpx?maxwpx:newwpx<0?0:newwpx; + newwpy=newwpy>maxwpy?maxwpy:newwpy<0?0:newwpy; + SetWindowPosition(newwpx,newwpy); + } + } + void draw()override{this->textured::draw();} + void exit()override{} +private: + Image img;bool justclicked;bool clicked=false; + Vector2 relmouse; +}; + +struct logi: public virtual textfield { + logi(Texture2D* texture,Color textcol,Color color,float x,float y,float w,float h,Font f,float fs,std::string txt) { + this->pos=Vector2{x,y};this->size=Vector2{w,h};this->content=txt; + this->texture=texture;this->txc=textcol;this->c=color; + this->font=f; + this->fs=fs; + } + void draw() override { + Vector2 p=pos; + float spacing=fs/2.0f; + std::stringstream ss(content); + std::string line; + int lines=0; + + while (std::getline(ss, line)) { + if (lines%2==0) { + Vector2 charPos=p; + for (char& c : line) { + char str[2]={c, '\0'}; + Color fc=Color{255,0,255,255}; + if (c=='/'||c==':') { + fc=Color{255,255,0,255}; + } + + DrawTextEx(font, str, charPos, (float)fs, spacing, fc); + charPos.x+=MeasureTextEx(font, str, (float)fs, spacing).x; + } + } else { + DrawTextEx(font, line.c_str(), p, (float)fs, spacing, Color{0,255,255,255}); + } + + p.y+=(fs+2); + lines++; + } + } +}; +void playbuttonfunc(); +void quit(){exit(0);} +#include +class launcher:public program { +public: + Texture2D bg; + Texture2D buttonfore; + Texture2D buttonlock; + Texture2D playbtn[2]; + Texture2D menubtn[3]; + button* buttons[8]; + button* playbutton; + Texture2D buttonslabel[8]; + Font gamename,changelog,information; + bool vsync=true; + RenderTexture2D target; + text version; + std::string selectedversion=""; + Image img; + bool captured=true; + const char* CONF() final{return "test.tdf";} + launcher(){}; + void boot() override { + tickrate=15; + framerate=15; + SetConfigFlags(FLAG_WINDOW_UNDECORATED|FLAG_WINDOW_TRANSPARENT|FLAG_WINDOW_TOPMOST); + tiny::error("is transparent lol"); + InitWindow(600,300,"test");target=LoadRenderTexture(600, 300); + img=GenImageColor(600, 300, rl::BLANK); + SetTargetFPS(GetMonitorRefreshRate(GetCurrentMonitor())); + this->tickrate=GetMonitorRefreshRate(GetCurrentMonitor()); + bg=LoadTexture("res/launcher.png"); + buttonfore=LoadTexture("res/forebuttonon.png"); + buttonlock=LoadTexture("res/lockbutton.png"); + gamename=LoadFont("res/showcase.ttf"); + changelog=LoadFont("res/log.ttf"); + information=LoadFont("res/info.ttf"); + menubtn[0]=LoadTexture("res/btn.png"); + menubtn[1]=LoadTexture("res/btnhover.png"); + menubtn[2]=LoadTexture("res/btnpress.png"); + selectedversion=nete.currentversion; + version= text (nullptr,Color{255,255,255,255},Color{0,0,0,0},96,16*17,1,1,information,20,"version: "+selectedversion); + SetTraceLogLevel(LOG_ERROR); + buttons[0]=new button(&menubtn[0], {255,255,255,255},468,58,96,16,nullptr); + buttonslabel[0]=LoadTexture("res/options.png"); + buttons[1]=new button(&menubtn[0], {255,255,255,255},468,58+(18*1),96,16,std::function([]() { + OpenURL("http://kosumi.ddns.net:60000/"); + })); + buttonslabel[1]=LoadTexture("res/website.png"); + buttons[2]=new button(&menubtn[0], {255,255,255,255},468,58+(18*2),96,16,std::function([]() { + OpenURL("http://kosumi.ddns.net:60001/"); + })); + buttonslabel[2]=LoadTexture("res/forums.png"); + buttons[3]=new button(&menubtn[0], {255,255,255,255},468,58+(18*3),96,16,std::function([]() { + OpenURL("https://github.com/kin-fuyuki/allgames/issues"); + })); + buttonslabel[3]=LoadTexture("res/help.png"); + buttons[4]=new button(&menubtn[0], {255,255,255,255},468,58+(18*4),96,16,std::function([]() { + nete.download(); + })); + buttonslabel[4]=LoadTexture("res/update.png"); + buttons[5]=new button(&menubtn[0], {255,255,255,255},468,58+(18*5),96,16,nullptr); + buttonslabel[5]=LoadTexture("res/verify.png"); + buttons[6]=new button(&menubtn[0], {255,255,255,255},468,58+(18*6)+15,96,16,nullptr); + buttonslabel[6]=LoadTexture("res/versions.png"); + buttons[7]=new button(&menubtn[0], {255,255,255,255},468,58+(18*7)+17,96,16,std::function([]() { + quit(); + })); + buttonslabel[7]=LoadTexture("res/exit.png"); + playbtn[0]=LoadTexture("res/playoff.png"); + playbtn[1]=LoadTexture("res/playon.png"); + playbutton= new button(&playbtn[0], {255,255,255,255},406,(18*11)+17+9,153,59,std::function(playbuttonfunc)); + currentscene->nodes=std::list{ + new background(&bg,0,0,600,300), + new textured(&buttonfore,3,36,62,62), + new textured(&buttonlock,3,36+((62+4)*1),62,62), + new textured(&buttonlock,3,36+((62+4)*2),62,62), + new textured(&buttonlock,3,36+((62+4)*3),62,62), + new text(nullptr,Color{0,255,0,255},{0,0,0,0},232,19,1,1,gamename,16,"FORESPEND"), + buttons[0],new textured(&buttonslabel[0],468,58,96,16), + buttons[1],new textured(&buttonslabel[1],468,58+(18*1),96,16), + buttons[2],new textured(&buttonslabel[2],468,58+(18*2),96,16), + buttons[3],new textured(&buttonslabel[3],468,58+(18*3),96,16), + buttons[4],new textured(&buttonslabel[4],468,58+(18*4),96,16), + buttons[5],new textured(&buttonslabel[5],468,58+(18*5),96,16), + buttons[6],new textured(&buttonslabel[6],468,58+(18*6)+15,96,16), + buttons[7],new textured(&buttonslabel[7],468,58+(18*7)+17,96,16), + playbutton, + new logi(nullptr,Color{255,0,255,255},Color{0,0,0,0},90,58,466,159,changelog,8,nete.changelog), + new text(nullptr,Color{255,255,255,255},Color{0,0,0,0},96+16,(16*14)-3,1,1,information,20,"downloaded verified"), + &version, + }; + currentscene->boot(); + } + int buttondelay=0; + void tick() override { + if (nete.currentversion!=selectedversion) { + selectedversion=nete.currentversion; + this->version.content="version: "+selectedversion; + tiny::echo("selecting version: %s",selectedversion.c_str()); + } + { + for (button* b : buttons) { + if (b->hover) { + if (b->pressed) { + b->texture=&menubtn[2]; + buttondelay=5; + }else { + if (b->texture->id==menubtn[2].id) { + if(buttondelay<0) { + b->texture=&menubtn[1]; + } + }else { + b->texture=&menubtn[1]; + } + } + }else { + if (b->texture->id==menubtn[2].id) { + if(buttondelay<0) { + b->texture=&menubtn[0]; + } + }else { + b->texture=&menubtn[0]; + } + } + } + } + { + if (playbutton->pressed) { + playbutton->texture=&playbtn[1]; + buttondelay=5; + }else { + if(buttondelay<0) { + playbutton->texture=&playbtn[0]; + } + } + } + currentscene->tick(); + buttondelay--; + } + bool changedmenu=true; + bool itemchanged=true; + void draw() override { + BeginTextureMode(target); + currentscene->draw(); + EndTextureMode(); + BeginDrawing(); + ClearBackground(rl::BLANK); + DrawTexturePro(target.texture, {0, 0, 600, -300}, {0, 0, 600, 300}, {0, 0}, 0, rl::WHITE); + EndDrawing(); + Vector2 mp=Vector2(GetMousePositionDesktop()); + Vector2 wp=GetWindowPosition(); + Vector2 rp=Vector2{mp.x-wp.x,mp.y-wp.y}; + if (rp.x>=0&&rp.y>=0&&rp.x<600&&rp.y<300) { + if (changedmenu) { + UnloadImage(img); + img=LoadImageFromTexture(target.texture); + changedmenu=false; + } + Color pix=GetImageColor(img, (int)rp.x, (int)(300-rp.y)); + if (pix.a==0) { + SetWindowState(FLAG_WINDOW_MOUSE_PASSTHROUGH); + captured=false; + } else { + ClearWindowState(FLAG_WINDOW_MOUSE_PASSTHROUGH); + captured=true; + } + } + } + void exit() override { + currentscene->exit(); + } +}; + +launcher* launch; +tiny::ErrorLevel tiny::level{8}; + +int main(int argc, char *argv[]) { + tiny::startup((char*)"enginend test",(char*)"1.0"); + tiny::echo ("checking if cfg.tdf exists, if not create"); + std::ofstream tdffile("cfg.tdf"); + tdffile.close(); + + tiny::echo ("read cfg.tdf"); + tiny::TDF_FILE config;config.filepath="cfg.tdf";config.read(); + std::string version; + tiny::echo ("getting version"); + try {version=config.getstring({"version"});} + catch (tiny::TDF_ERR e) {version="NULL";} + if (version!="NULL") { + nete.currentversion=version; + config.setstring({"version"},nete.currentversion); + } + launcher e; + launch=&e; + tiny::echo ("starting net"); + nete.start(); + tiny::echo ("downloading github info"); + nete.github(); + tiny::echo ("starting launcher"); + e.boot(); + std::atomic running{true}; + + std::thread tickthread([&e, &running]() { + double tickrate=1.0/e.tickrate; + auto lasttick=std::chrono::high_resolution_clock::now(); + + while (running) { + auto now=std::chrono::high_resolution_clock::now(); + double elapsed=std::chrono::duration_cast>(now-lasttick).count(); + + if (elapsed>=tickrate) { + e.tick(); + lasttick=now; + } else { + std::this_thread::sleep_for(std::chrono::duration(tickrate-elapsed)); + } + } + }); + + double framerate=1.0/e.framerate; + auto lastframe=std::chrono::high_resolution_clock::now(); + + while (!WindowShouldClose()) { + auto now=std::chrono::high_resolution_clock::now(); + double elapsed=std::chrono::duration_cast>(now-lastframe).count(); + + if (elapsed>=framerate) { + e.draw(); + lastframe=now; + } else { + WaitTime(framerate-elapsed); + } + } + + running=false; + tickthread.join(); + + e.exit(); + config.setstring({"version"},nete.currentversion); + config.save(); + config.close(); + return 0; +} +void playbuttonfunc() { + if (nete.currentversion!="NULL") { + FILE* gameexe = fopen(("forespend/versions/"+nete.currentversion+"/bin/game").c_str(), "r"); + if (gameexe) { + fclose(gameexe); + + std::thread thread([]() { + boost::process::system("bin/game",boost::process::start_dir=("forespend/versions/"+nete.currentversion)); + }); + exit(0); + } + + } +} diff --git a/games/endlauncher/src/netio.cpp b/games/endlauncher/src/netio.cpp new file mode 100644 index 0000000..a0175ef --- /dev/null +++ b/games/endlauncher/src/netio.cpp @@ -0,0 +1,5 @@ +#include "netio.h" +size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream) { + size_t written = fwrite(ptr, size, nmemb, stream); + return written; +}; \ No newline at end of file diff --git a/games/endlauncher/src/netio.h b/games/endlauncher/src/netio.h new file mode 100644 index 0000000..335d074 --- /dev/null +++ b/games/endlauncher/src/netio.h @@ -0,0 +1,229 @@ +#pragma once +#include +#include +#include +#include +#include +#include +#include +#ifndef GAMEPLATFORM +#define GAMEPLATFORM "l5.64" +#endif +extern size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream); +inline void makedirs(std::string path) { + size_t pos = 0; + while ((pos = path.find_first_of('/', pos)) != std::string::npos) { + std::string dir = path.substr(0, pos); + if (!dir.empty()) { +#ifdef _WIN32 + mkdir(dir.c_str(), 0); +#else + mkdir(dir.c_str(), 0755); +#endif + } + pos++; + } +} +struct netio { + netio()= default; + std::string url="https://github.com/kin-fuyuki/forespend_cpp/releases/download/"; + std::vector *versionhistory; + std::string changelog="could not connect to github\nplease check your internet connection"; + std::string currentversion="NULL"; + std::string newestversion=""; + + void start() { + const int MAX_RETRIES = 3; + int attempts = 0; + bool download_success = false; + + while (attempts < MAX_RETRIES && !download_success) { + CURL* curltdf = curl_easy_init(); + if (curltdf) { + FILE* history = fopen("versions.tdf", "wb"); + if (!history) break; + + curl_easy_setopt(curltdf, CURLOPT_URL, "https://raw.githubusercontent.com/kin-fuyuki/allgames/refs/heads/master/versions.tdf"); + curl_easy_setopt(curltdf, CURLOPT_WRITEFUNCTION, write_data); + curl_easy_setopt(curltdf, CURLOPT_WRITEDATA, history); + + CURLcode ret = curl_easy_perform(curltdf); + fclose(history); + curl_easy_cleanup(curltdf); + + if (ret == CURLE_OK) { + download_success = true; + } else { + attempts++; + tiny::warning("Version fetch failed (Attempt %d/%d): %s", attempts, MAX_RETRIES, curl_easy_strerror(ret)); + } + } + } + + if (!download_success) { + tiny::fatal("Could not download versions.tdf after %d attempts.", MAX_RETRIES); + return; + } + + // Processing the file + tiny::TDF_FILE fetchversions; + fetchversions.filepath = "versions.tdf"; + fetchversions.read(); + + boost::unordered_map* foreversions = fetchversions.getclass({"forespend"}); + if (!foreversions) return; + + std::vector versions; + for (auto& version : *foreversions) { + if (version.second.type == tiny::TDF_Type::TDF_DEFINES) { + versions = *(std::vector*)version.second.datapointer; + } + } + + if (versions.empty()) return; + + std::sort(versions.begin(), versions.end(), [](const std::string& a, const std::string& b) { + int ra = 0, rb = 0; + float va = 0.0f, vb = 0.0f; + char pa = ' ', pb = ' '; + char rea = ' ', reb = ' '; + sscanf(a.c_str(), "%d.%f.%c.%c", &ra, &va, &pa, &rea); + sscanf(b.c_str(), "%d.%f.%c.%c", &rb, &vb, &pb, &reb); + if (ra != rb) return ra > rb; + if (va != vb) return va > vb; + if (pa != pb) return pa > pb; + return rea < reb; + }); + + this->newestversion = versions[0]; // Sort is descending, index 0 is newest + if (this->newestversion != "") { + this->currentversion = newestversion; + } + + tiny::success("\n\nforespend versions found:"); + for (auto& version : versions) { + tiny::warning("%s", version.c_str()); + } + + // Use a member or persistent copy to avoid pointer to local variable + static std::vector persistent_versions; + persistent_versions = versions; + versionhistory = &persistent_versions; +} + void github() { + CURL* curl; + CURLcode res; + FILE* commitsjson = fopen("commitsjson", "wb"); + curl = curl_easy_init(); + if (curl) { + std::string u = "https://api.github.com/repos/kin-fuyuki/allgames/commits"; + struct curl_slist* headers = NULL; + headers = curl_slist_append(headers, "User-Agent: C++-App"); // Required by GitHub + curl_easy_setopt(curl, CURLOPT_URL, u.c_str()); + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, commitsjson); + curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); + curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 10L); + res = curl_easy_perform(curl); + fclose(commitsjson); + changelog="changelog download error"; + if (res == CURLE_OK) { + try { + changelog="json read error"; + FILE* thecommits=fopen("commitsjson","rb"); + changelog="json parse error"; + nlohmann::json commits = nlohmann::json::parse(thecommits); + std::ostringstream oss; + std::vector monthNames = { + "", "jan", "feb", "mar", "apr", "may", "jun", + "jul", "aug", "sep", "oct", "nov", "dec" + }; + std::string lastMonth = ""; + std::string currentYear = ""; + int limit = std::min((int)commits.size(), 8); + for (int i = 0; i < limit; ++i) { + auto& item = commits[i]; + std::string message = item["commit"]["message"]; + std::string date = item["commit"]["author"]["date"]; // Format: 2025-12-21T13:08:50Z + // Extract components: YYYY-MM-DD and HH:MM:SS + std::string y = date.substr(0, 4); + std::string m = date.substr(5, 2); + std::string d = date.substr(8, 2); + std::string t = date.substr(11, 8); + // Format: MM/DD/YYYY HH:MM:SS + std::string first_line = message.substr(0, message.find('\n')); + oss << m << "/" << d << "/" << y << " " << t << "\n" << " " << first_line << "\n"; + } + changelog = oss.str(); + tiny::fatal("%s", changelog.c_str() ); + } catch (nlohmann::json::parse_error& e) { + tiny::fatal("JSON Parse Error: %s", e.what()); + } + } + + } + } + void download() { + CURLcode ret; + std::string version=versionhistory->at(0); + tiny::success("using version: %s\ndownloading from: %s",version.c_str(),(url+version+"/"+GAMEPLATFORM+"."+version+".zip").c_str()); + + CURL*curl = curl_easy_init(); + FILE* file = fopen(("fore."+version+".zip").c_str(), "wb"); + curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); + curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 10L); + curl_easy_setopt(curl, CURLOPT_URL, "https://github.com/kin-fuyuki/forespend_cpp/releases/download/0.03.a.g/l5.64.0.03.a.g.zip"); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, file); + ret = curl_easy_perform(curl); + curl_easy_cleanup(curl); + fclose(file); + + + makedirs("forespend/versions/"+version+"/"); + int err=0; + zip *z=zip_open("fore.0.03.a.g.zip",0,&err); + if (z) { + + zip_int64_t it=zip_get_num_entries(z, 0); + for (zip_int64_t i = 0; i < it; ++i) { + struct zip_stat st; + zip_stat_init(&st); + if (zip_stat_index(z, i, 0, &st) != 0) continue; + std::string name = st.name; + std::string full = "forespend/versions/"+version+"/" + name; + if (name.back() == '/') { +#ifdef _WIN32 + mkdir(full.c_str(), 0); +#else + mkdir(full.c_str(), 0755); +#endif + continue; + } + size_t pos = full.find_last_of('/'); + if (pos != std::string::npos) { + std::string dir = full.substr(0, pos); +#ifdef _WIN32 + mkdir(dir.c_str(), 0); +#else + mkdir(dir.c_str(), 0755); +#endif + } + zip_file_t *zf = zip_fopen_index(z, i, 0); + if (zf) { + std::ofstream ofs(full, std::ios::binary); + char buff[1 << 16]; + zip_int64_t read; + while ((read = zip_fread(zf, buff, sizeof(buff))) > 0) { + ofs.write(buff, read); + } + ofs.close(); + zip_fclose(zf); + } + } + zip_close(z); + } + } + +}; \ No newline at end of file