From a1d0f11032381f51b60ca41450766b96aa72a712 Mon Sep 17 00:00:00 2001 From: EmsiaetKadosh Date: Tue, 11 Mar 2025 18:37:34 +0800 Subject: [PATCH] remake UTF-8 and I forgot what I have done in this commit --- .clang-format | Bin 13592 -> 8470 bytes Animation.h | 156 ++++++++++++++++++++++++++++++++++++++++++++ CMakeLists.txt | 8 ++- Chars.h | Bin 7888 -> 4091 bytes File.h | 83 +++++++++++++++++++++++ Game.cpp | Bin 746 -> 372 bytes Game.h | Bin 4140 -> 2226 bytes Hud.cpp | Bin 264 -> 131 bytes Hud.h | Bin 508 -> 253 bytes IText.cpp | Bin 9988 -> 4993 bytes IText.h | Bin 33258 -> 16634 bytes InteractManager.cpp | Bin 20168 -> 10084 bytes InteractManager.h | Bin 8996 -> 4577 bytes LICENSE | Bin 2142 -> 1070 bytes Renderer.cpp | Bin 5896 -> 3112 bytes Renderer.h | Bin 13510 -> 7043 bytes Task.h | 7 +- TestCode.h | Bin 1460 -> 434 bytes TextureManager.cpp | Bin 152 -> 75 bytes TextureManager.h | Bin 700 -> 349 bytes Window.cpp | Bin 20374 -> 12345 bytes Window.h | Bin 14196 -> 7688 bytes def.cpp | Bin 2946 -> 1472 bytes def.h | Bin 15502 -> 7812 bytes dev.md | Bin 198 -> 154 bytes exception.cpp | Bin 540 -> 269 bytes exception.h | Bin 7264 -> 3631 bytes hbp.h | Bin 1856 -> 927 bytes includes.h | Bin 738 -> 409 bytes main.cpp | Bin 23324 -> 12279 bytes utils.h | 6 +- xWindows.h | Bin 2594 -> 1770 bytes 32 files changed, 254 insertions(+), 6 deletions(-) create mode 100644 Animation.h create mode 100644 File.h diff --git a/.clang-format b/.clang-format index aecc7e32a3e57c7267f87a3894816c44bb50207a..302e0fe434795bedc0ec226f40165006057de93d 100644 GIT binary patch literal 8470 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 literal 13592 zcmeHOU2I&%6&`pg>l~zSHqw;ueR!My3)sz}T zuXT7D!EZ%1iQdg>GhSKzx*ub5s;SbmNlmDOXxWVUCeWjRZ*7%+ck5rrFskTKN@32T z8pUtp=-;I2jA2YX)oI076XqUQgXlE@Y8;itw=q!b!0aWoPwLNhv`pfCo4QkN!~2`~ z_Kgq?q0**Dk73>8;H7}o?!ovh)-r*o=75(Z+Pl@g%ERYQ{e48Q#fOx9^ld`hy=oYL zJv>vUeBX-a8O&3{XBPd(^(RMCc0Qg)K{JVG(ltHvXgz>mn?khH(9&|W$1!T9w8`5b zI3s;h^C7Jy_}C9w3TNb&mcb{=m}}w~N{O4pXkehHt{0j<3aYoEk#cWF-d>oxkywORHW#)v#tLMg1%{D?i+c5+$7 zs!QzC^H}a#uh~486JA~a)1^kgSX`s|Xn_o~=vTmNkCyHzD2$@zAf!Hw7bz7rf1A|y zfF^w`skY!f2`bdZC}ttuN&GSjYZM8YmI*Ddto}PRHGlNxlYavB7CkNp-L`;^Xo|i_ zA85rqw13)!P`B#~k36V*&S-9l9$YsmmGF)0qRc$3j27gMq{q?Uee|aNk!v5EP!gli z$+)&a@kaU|eQ!5fjb4WI%$BQ_XhUY9%*C$@m~jj%Cg!z+DtQ!+EBXuR*tAlv4&@V< zPQE!id#v44{ZqXkKi?5>>(Yth3#DRa3v+H-V`$_ro&IeV4eFlK5(<-$Y6(x*BAukV zMWfm#wR7P=J&zq2nmc^*cZbg&UO&7!vp%#gL-TG;i`o|S?f`X4QEcfNB-we@pUkd( z`dIp%(-$ICiR+9}v`^Y*5ws2l+H!Oe(wA+gG>v4FY6o7#?_GH9T!B@#VpT;T0sS%$ zE+is+Zjoq!oC<@>rZkq@|A)fi03F z65l1V*i7kj-NosS*x-7D$d6vZyoqt|8ghvWA~I)^4CH=LY43b0eI9Fj<`(6|Ky%ma zgO4*VreF0Z4_xpzW(SY82Xc4mF+LJiDLoT^nL);5?q}p>U@-k^EHBI(shq_(C&vcRK;0k7wG;%tF!hLwmEAZmcBt% z?nMSck-G}&WpO^NSBAaSWH#i$_7P7L8*!;}pKSBQE>M05b~>sxWqfaGJ`6qAM{Itz z5-ym@(>In|ahQ_Xdz;pkP>SZL%TW|fh2<-4q-J(9bJ*vPLu0aMptNXtb0Ph^J>qr2 zT0vY)U0V9W4aXK>E5zE}+IFHl(#8A9O3V&=uHrG=I}|IkS&w4o%Urvts~hoap%st8 zj)(BM8X23KL7a?TZ(3fO?LdeLSoU(%jrD|eY+B=N%EXa)blU@|C z*AnR|Vb)GKhtx~_NIfd4dVy-pGB&6Iyd>HaM}!ORXg45YxqU>ttQZule&e381YVgh zY`~~}n0X!E;&GJ8DBi5;ad*dB5%G8$-=>3l4E^8Kcv$ISU5NXpagD=7+3JW`75yr> zx|lY?GseZdYnfAO9X_b@8>>K~JCoa5Nx1k*sTe*@Wx>=@sG!>>zs;$&mPGA=3x&P^fi(Xx+G4K;x2XiY~;d!HS z*$WGoeeBZxcI&*4wF_3)7?tT0absL-GxillC0dW0VbR`-m~lkUXhsRIZa)(#NO$pG zE|#}~(;=Wqm{XCi!EURuYM*eavvx~-5}P}jOkZKP=wHs&`1b^wW(LaW&1h#TfJ@u1o-ta@ot@R0`G-P9JI0QV#DzYFcTwBjb!dKiKL&krurE_j4$6tXojeKg z>XzW=dyo;&5NyShc_t&i)PHQQ{AWID;{eZ2!!vys`rnIQ(U-e686#_8O@_H&bY3DgkwWq|`3x;io&OEK}uaxT_t^%c#Tn3=PtXJ)0vEVfItQM8h2 zXivkrInM1-@$5bC-Ro_dnrF2!f5*u`OZ@72xZ{FX_sCV9wL|NbJ>&ngp12MoV0aCI zj#cvTt+dUld0L!A?s6jikM2g^YnYm+?lbjg2dg4FwL7A{h&m<`GxK3Qqa85&4AT=2 zcTquN1ofHI<33}C6!p-PZ=N|iHQ(EPc)hnR)o|=5!3ro1Yh%O#=ID%#q#wWg6PsnM z59dm3A;#OBiSgD{Y$Ue(kbDnjE|e1?>tZ%hUHe%LKi0-;0}N#hAJ?*!2uCgOCWow9 zvKTxsyaHeT+o9`vf7SmYcB@;w=7Fmvf6MjUv8EbIjoy=8U-y5?j8l+JFe@tG^atL> z?neIy-sPU{BWv@QK!-QCc-Mtd#>B7=9s6>4W(|TIZBYIAdp9z#6g1JIy70uiCA=-e zUd_5nM4s_F^&{^d?_#EYYM%E70t!owO%ijb=Jk1Joul{VxH4!jvZPHgTPq^gM|LE^ zDy;Ow^0n=>3^Qw0{9qAKbeI32Bz0^zD-*@`6vm?CuMgC2`Uzt_ogRuhLC+bJ3 zhLPXoF4B)cS@qx1`AOmBsd-P$ysg$}o=_WsVaKyi`M(_aQaSO^?V0)`?|Q2Im4F_7 zBz!Z5xDwilFpC3@*PNU2FZZlHRfCa4Il0T_FE?6ytX++)(qu0d_h{?xeKGOq(A_ZI z!?{70sSglFOHiLXQi6Qh959;ANsl?z=)JBsIuT|g_6Mxd=dgCxtMkx=se@_X%l|M} zLrHj_ruK?<7k+)_U%9qtI*=OyWBRrt_JufMZcLQysmrzYzu5Wn-t)q5sfYKmwp>sA z^Xl&Zr1v}|YAZbk^=~5^aps9Id z;hFlb7dm}n>6Yuo;%L3qBc|W?oN~XlUyr}RQOF!ePF9_rtyVe|eEtsEZ zTcPV%sjMf;H}8|0my6TYX8e&d^_%s-;NvPyhnZ;*0>C&Yl#pyxQnXQ z_BV_t+Pvi9RZ$>z1QBvNlCM?!6|H*=J?Tej{hb(VZX3B856hY3?CF02beLt!Ng&t9 zyST2d;%-RPYKqLo7~M^V9^D06tQYRNdXrmo24)mIUv@puYScZ?lK9OvRbo&%f!aPY z0d0%ca|;8npF52F7{2Z)V%oXc{*xLd4ZXd3h1}gNwX2{O4`FUflo-M@LY`z~p;y-U zC8x2`qz$bms}U5C-In#bxKYu41wC^HGNNQ+&k7Jb((vdo4}x&?%dmZRLaX!vd*?=^ z>&7l)8_`({@EUuYC!-}`PP^l7Z6%TG$y^*~{|jKN`WD)`+nGQ$o^fs)D!}}o0JqmT zel6`R^BNvGHAzl+E@X9Yw>>tJoC2Iep*FLo~mgXX{|#a>fH}UGY_Jr)7A$e zA>N~4^_y{rbXZ&Cm~hr(+vGn4;_)roOYp2Z>t=mj&Phy`Z!yx&VG+aJak6$~>yY6S z0X>=-fj&FY^5Xq}-dZas81K^07uO7LE;ra!+Mc-kUCs_NcP=M5ie5ClS#2*T4qS-J z-rLB2?C&*u%G)Tvo1BEw^9K614sTxg2)k@%C=uOZUhG_$=N-6k;A^CoYS5f)i<`^x m=wB`;7Os%9!N;R>F1&)u=yuJ6t8rS1i$BKh`JWt!depend = depend; + return *this; + } + + Animation& features(Style style) noexcept { + this->style = style; + return *this; + } + + Animation& loop(const bool val = true) noexcept { + doLoop = val; + return *this; + } + + Animation& includeReverse(const bool val = true) noexcept { + doReverse = val; + return *this; + } + + Animation& setDuration(const unsigned int val) noexcept { + if (duration == 0) duration = 1; + duration = val; + return *this; + } + + void reset() const noexcept { progress = 0; } + + double weight(double x) const noexcept { + if (x <= 0.0) return 0.0; + if (x >= 1.0) return 1.0; + x *= 2; + return x < 1.0 ? pow(x, 5.0) * 0.5 : 1.0 + pow(x - 2.0, 5.0) * 0.5; + } + + double calculateNext() const noexcept { + if (++progress > duration) progress = doReverse ? 1 - duration : 0; + double p = static_cast(progress < 0 ? -progress : progress) / duration; + const double w = weight(p); + double val1 = 0, val2 = 0; + switch (style & 0xff) { + case AS_SIN_IN: + val1 = 1 - cos(p * 1.5707963267948966192313216916398); + break; + case AS_QUADRATIC_IN: + val1 = p * p; + break; + case AS_CUBIC_IN: + val1 = p * p * p; + break; + case AS_LINEAR: + default: + val1 = p; + break; + } + switch (style & 0xff00) { + case AS_SIN_OUT: + val2 = sin(p * 1.5707963267948966192313216916398); + break; + case AS_QUADRATIC_OUT: + p = 1 - p; + val2 = 1 - p * p; + break; + case AS_CUBIC_OUT: + p = 1 - p; + val2 = 1 + p * p * p; + break; + case AS_LINEAR: + default: + val2 = p; + break; + } + return val1 * (1 - w) + val2 * w; + } + + double getValue() const noexcept { return static_cast(progress) / duration; } + + template + double adapts(T from, T to) const noexcept { + const double val = calculateNext(); + return (to - from) * val + from; + } + + unsigned int adaptsColor(const unsigned int from, const unsigned int to) const noexcept { + const double val = calculateNext(); + const long long fr = from; + const long long t = to; + unsigned int ret = 0; + long long temp = 0; + temp = (t & 0xff000000) - (fr & 0xff000000); + temp = static_cast(temp * val); + temp += fr & 0xff000000; + if (temp > 0xffffffffLL) ret = 0xff000000; + else ret = temp & 0xff000000; + temp = (t & 0x00ff0000) - (fr & 0x00ff0000); + temp = static_cast(temp * val); + temp += fr & 0x00ff0000; + if (temp > 0xffffffLL) ret |= 0x00ff0000; + else ret |= temp & 0x00ff0000; + temp = (t & 0x0000ff00) - (fr & 0x0000ff00); + temp = static_cast(temp * val); + temp += fr & 0x0000ff00; + if (temp > 0xffffLL) ret |= 0x0000ff00; + else ret |= temp & 0x0000ff00; + temp = (t & 0x000000ff) - (fr & 0x000000ff); + temp = static_cast(temp * val); + temp += fr & 0x000000ff; + if (temp > 0xffLL) ret |= 0x000000ff; + else ret |= temp & 0x000000ff; + return ret; + } +}; diff --git a/CMakeLists.txt b/CMakeLists.txt index bff4f24..819751b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ add_definitions(-DUNICODE) add_definitions(-D_UNICODE) add_definitions(-DCINTERFACE) add_definitions(-D__CARLBEKS_CMAKE_VSCODE__) -set(CMAKE_CXX_STANDARD 23) +set(CMAKE_CXX_STANDARD 26) set(CMAKE_WIN32_EXECUTABLE true) if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") add_compile_options(${PROJECT_NAME} -Wno-microsoft-string-literal-from-predefined) @@ -47,5 +47,11 @@ add_executable(${PROJECT_NAME} ) set(CPACK_PROJECT_NAME ${PROJECT_NAME}) set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) + +set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/../exenv/") +set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/../exenv/") +set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/../exenv/") +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/../exenv/") + include(CPack) diff --git a/Chars.h b/Chars.h index fbb672968afec7cf3be88890a19b9311688a148d..04c816ff18c69b8a2d650638b0d03fed90f00c4f 100644 GIT binary patch literal 4091 zcmds4QEwYX5PtUkiXn*P?AY;LNSvg$qo!{ALJ$Qa^}$%t`Mi!-z1*3*Gf9+23W)N8 z0xwiZMXCf6eW5_$DGF5mG1yJ`7tHLgedqdc-L%R>Px762Zswcaxo>86^LZ_whlpxhwHu$#o_&CbgBI2Y!??3IGBKl$Pw+G#mqu%ki-P3Q*fB(66__qL4+48Zdd1rt8 z)qD6g%Ja#^Q))qnhu#jA%>kpSn2I@%WD32JQ!RrzoF)oQB&w)@QV&1(GTgnZVo<_z zOflcItspGL9j@w#S1Kv=3@pg1i*R#RKt)~`cv(>p(^L_go)5!wru>s$vCI^KQw2Au z@`}Y2A(!J4m8uFQR(bHPwPFd@4`bG>evIoVCWYl!r1;`R88~w{y?cUVkDhcylrd-%rvU=2AS<+=#4CHy67iw z>fV10p3xs8i&m&EFJYPRKc-J_hirs^JjSj#ju4MnpmanjQ8emI`bn_H7g&cdU?Yt~ z*2@w^ArnQtc9|W)sLENqgRzP?ggo{=kv1>c5X_ZWYN>`$j;)a6>R!|o1{g`%)t@k) zxCTt)HPsi?T814`^1n*Q7`v&kumr1fm^_BjJrFUFn{V1l*q8_Jcbt%4+Y8x-cbhj@ z1=aM*t5d_U%XZ|>t!mS!njDcKK4C=+)ESK% z%wZv`)_~yvgZ;t-NDwxzTnWUci%y}|@Cj5*HEHer1#ftRImg#7?VewJED$OpG-Vm& bel%z#gYgnBC>qJ&@#SGSFys`NF;V&tQ*7xu literal 7888 zcmeHM-EJF282!Wrk|QBrVF5LD8q%&q)1$ZRhk`pS&UOQIYIK)lTD2)(O zZ%`$A#SIU@6LHNQuK}Dhv!7>ny&G>*r-cfQ?AhI!`TpjcGiP@H`dcocOqu^cmSsmG zX~+}&ww>&q7Y=Vd|Wq+))Haxs=Sh594ehRlX^ zAfplYZ$gf3>tb|Mda?_N5n4YqbsG{kaLqn-lr3m!LH_`K8<5tLHIx8PwlJ3e9J`B} zR(8xit!K*<)cg4FqrD4%Dsn~2kVCr%acdLWDE9*T^4X3V*^wFCQ+Fg!F(QH|ly(TK zO2=qp1ljLX{6e{IdhbI+7q-&QGW7Ub0{Ou7y({Ns6(i0Yy;e&JquOSSN}V=RpWY@%}8HHW?hH1TulMwTTAFu1s*YD zN^(+f8il-RpMf`5Qr=igj`OB??#;?rPw>Rv-S03fsYdYiv1X~>bH#| zPtV{>2mSo32m1gGE`Ai{nw&Xy<{CNm)Ie2d{!lS(53&0*b>W;%jka%982)^3f@)r}OJo5GqSD z{aTX6lwXs^sBXLq6+tFiN!HW_F8J6$=0N^K4x%h0kgw5q-LL_&kvgz;(PTYW=w0xh z5Krdi6YMDqXkUb{S21g!ft`I0E_Me!h>7HE7f_}!3e08o-DtbM^0L=luU)IJ98TBf zwMA~i2J)K*I9MQisL8m%MSl8`{r8@8WKQq4;Vs;OgKsw<-oAe?+791&`TIA2>^-+y ze)-|M-)d6-wf5fX`?a56{Q02jNlN1RSBOx|t)3mOyomdeeHLeVo(%XxPDgIHKV){J zc&IGU`8^)Lb&Th|!OzOE$epy!?OqN+eR*~zEy0UtD2aJ7Xzb_IBV4xKd01J<@qIKqR;f%&be4h`J+s>JYp5&H-iz*2i~nC>O7Zidj60{DMpc7T8>#v zzs~+P=8@;PN6^qfj%^}`(vdA<;~H!xCXwZqU{{u9>a*&OfJQt~9YE)d@!7W6?6Ej# zkxsp{?RvhkchqXx;s0p(eSFe&X!uZ8e-r+32RtbPIm{#EiieK&fa^@PvtzDX^~;&c{! zo-JR;=Ie1itgm{XuJi11{l@FCeaA~;zhb?Pi=ea2T@{te5uBN$nAwbH_ijB|)|ZuK zjun$LxlB{kBFq1;^Kq^wKNjcWHI&E3FU4mox7(a88?WFz?Z@8jTE5lxgpf6dd`C5z zy(?{pX2H0^d1jU`Cj5&CKv(zn96K5=jIcN9|hc@I+VDS=bmEyP8A0vM{g=tJH3O z#p72lMyPIf(+lkF$#C7b+-uwEzGB literal 746 zcma))%}&Bl5QWcHo}#Inl4y-aH#M$^u+XK6YlMm_~^ zXXecP`PCJp=WC#WN~IcW#X41>H+``_D%VnT>?to#>{BhUeDJnV!Fr=RUFzEBt>S;Y z9{V|Qg(k{W5tZT_Y6L>gIR+ub$3|mIlTc|R?W=H~=(*Z(TeL(6W8pvNDj CEPJv5 diff --git a/Game.h b/Game.h index 2a2b1df0ba648af2a26edb4bf624661b25ae125e..27dbbaff55849949c2f0756354237dfd3c78816d 100644 GIT binary patch literal 2226 zcmah~-)kF35PrVv{0l};HpkqVmH(_^+O0|wYQQMpLUPkJ^!e2G3i5- zQb?f>A&^2#^APgj$3Daj{bL&0@l*eW&hFkycX3LMjWyrQ&dz-M&8X9fI~^D(Mhr_} zcmOL?%?UHNNh0+Gq=4%mwXU_Ueb~mhIDS7$#05#A3t2u)IfXCQnMjx-!<4~c z9E}u58+Ij6V2t6L6KpT3H+pg8)2$If#!SJUORf>e;$VV*p8$TsNI+6Pj-vs|441;6 zY6A6U@ZL-%F~K)l7{UM5)}8gwfaXduVKzD4!Sq)PXY5Pw#?dr4uJBt#4Y8_$OjAaU zR4}Gkm?de0PFRwsSg=7$hxFPc-R_hN{J(Aa2mc7YIF8tUhP-g&*m8}3Yk8|TK<+Z7 zc*1OyBM56l>d-?aW&$DEK4qDi2Ux~8|W^yI4*k~SO zY2PqJne`&Q^%nHC`r%FsBJ1t4UA##JD{)&rT)A&WB<0&se;J`WuKOeGw$p6J5j5fK z;qlqihvzRI&mR4L@!hMlM?bxO`Rx4ki6!XuU%#B6{PxeEKhB;$zc{`>d-e0#<3DB( zPTze0V)n!H*@Is%o;>^e_`b_CJAL`)9KvPCgXZBqAlzp1JcZE#2rbH$8?m=m+K7cVZCHt~W4-54{ zvm}xpT+X`XX1!?>`j79(g{4`g`$=#d4^cs7nw_A6;z1i?INhd1n;S*`e%&5%U9QS8 zE}1sYn^g7Hn$=ggJHNiDTZ72cG&8E^&iGLZ7;<&F5x-S1kKHKmXd)0&+B=>Pt4Nwk z&5Hg5Bfi}|$4^&$D-t<1K{#d4Z@1Q!GKOV-(zVb{q7cWBDoVzZmlHZm_n zih$etY%x_N6jVhkMO9q$OBXZgpW&^^1mcGDO0k`t_tV@MKew<;(wqgSec%1Ead2s= zS9)4p9WE)-VUh!<#tOxKOf~Xt`&Vc*_5ed(v>-$ zJ#n%xFYw%wq0D4}^$e8zc=u$Cl|#_RGQ#rDXY?cJ+tGYJ#X7yeg2-aaE4i$%YaByFJBKeme|14LV@bj70A_dnN6lOhL zX3Qh0gOx*g(1R}4ja<}8lrg)p4+&Q0;9SQw)GFBjJxH-e%)I|K1_x_H3}o^g-Wy&9 z&=9Z{D*pNuZ(QRJJyLIo9wN)@3J9{i8R|?Xh15uWba;=|E_W?!UDoIkn!v&V=q>mj zaLi1sEpwA17j4kkO z9n6FY{33Q!&6&*$Z;jK0NZ?L%s5Gk@cZOE(ANxd{Um~H5xD(YG@Ku!X^lA=PfOy_k zzelHt3sOnW2ljh*W=^x+48l2ERQvVJ=mH-2jzS6JuU|is(S8uP&gCjHFV;O-MpzMoPZ$*zO zqgckez!=#q@BDz^Fhvak){UEb*hRTm8@XY%df%{%Rd+XQqj#n4u=#`b^bJl_TX@fU{>yPkWrbEue)O*o~Y##BWZt3|ZwV zcA&IPJnhSi{m-v{4*qJ{Z=hq2i+Y3X5p44tE|a39-@ngmDKE66#@6bmf4NRoQ5Pf0 zduN`|s;_7BWQZ$i)1lmn{alE7xv%~Y@9NR<-?bA(ua@5f{IcLzKTqG`tAbP4W)QOV EFY(r{wg3PC diff --git a/Hud.cpp b/Hud.cpp index e2b028138e78ad4431971d6f561d1847b8c28b33..bc030c05bb2e137fa1b8ddba059d12df4e4c822b 100644 GIT binary patch literal 131 zcmYkyK?=e!5JutsoZ_c$bkT;2Zn~9%&{M?BK!Z9XNh%ic?q=EL<9*JNbGRh&MHsgg z<1@(m literal 264 zcmZ{e!3x4K5JcZOUs38s4^|Yt^eTejS7;irsEM>y6!F*9VePeq%!b*WxA}aT={VDj zH4TA1owOq3z*D;6LQ5?_sIyb8NOF$qC8Bh}iYaruONyT7R7c81JZEl71qu$;cm>Fs?$QakYukC|$>+0|*<-E;SoFCkUnHsuhGmL0XU{8&?4USIjxw zw*t>nGldy8ZK)*3!^BvrX!&g?$*-@1JxnZvS!bj``~I9SkQ?nhYC|_pjYrdwwNg<2 Waeh1))!*Idf}DKNujvOEa)2jCf>V(I literal 508 zcmb7>O-lno42Iup_g4&hsh}36z0{)!mfoa)V7eWpMR#MaoJ5$h98|bf~awY&jtTJ%iP`9F0NS3JQtwN0|4<4@X+LVt?(8pZ@rO7&?diPt{@Euizg3O^ diff --git a/IText.cpp b/IText.cpp index 10af54c98a928e4a4e68f0ac5226aacb8ab4c70e..62efb9362f80cfb64de7f465beebc71bb2839675 100644 GIT binary patch literal 4993 zcmeHLZBHXN5dNI}3im2S354Z1sZte=RP6@tP&sle#x%aV|(8G%rn{Dt?ur!SPO1N%C7F%;kA)m*k5^?n=#83d-uc6-p<~S z5y(}m-%FKblT@%b#{)65(fCdHEfqujG8gIzl?pAilatCa`oOO;(YIQvQL8l)_M?!a zv8^{)k}G4G%Ec@ZHcP za%F352*0okK0a~9N1zrQj+?>4NTw*&*mv_dQEJup8Z_pb;2xn2D5iy-XyrxrtB=*{ zT6@oAYRBFPJoLE3z;k?(!P`0~OmWTE`+$~hf5B?@llPkU0(fz*5ZYO444!JtjdiZGt(BHFga90c_%E*xd1VIs>J8_=ny2$7IYNanSk=X9lAMjfz```*DT-|chiJQ#o zJHjDv5 zjYDt_Y}gkTk;^H!N(+j9Bu$5|BndVkw4qsWL&$YPw_3@VtC4VmN4dV{C8i|K187DE z9FNDIJ#(Z*Kus=<)%8Y`8OyCqE)#C-dvI#Iz$qt{2{i%;X@Fb}ozrBU!DavW^ux*F z$?@qSd%*E&H$FN3Oz-i}Co#GbbwOPGZrRLVc=G2+=M$B}uKtEXbcQm^>i!77 zUBmEn54z}r$c5d3(QPhMcWWu(I}+#rPk6YE&t%^>PWb;$l0hX85-Q0Ahx_S^*8Kt@ z;S-xfp#TJIITm5y?iri5TDMY64Lo=@5kO2z>`MU=t?-Bl>oBFU5}3#zvnrj}Byx=* zGBh0kZ-CJRO>;A-)WzMCZm)NEw1{;FU%)zqd8c_v%{D75;3mR6$H2fb;7*551vn8U zbDt|SfN=E9dg>M}RyUw3O{`W>qeA3HOuV^eL;3M`20jgl;#zI-4H@n@)vP$lSgK0s;a4;?g z3#{xPxbYJMT+)L>O#N4Z6(OZ0G#~*mo}lKpvu>}$jQmT$RS01q!f$o-Qn+r*cPIv= zd6wk~_N&0Q>Pk!(G&slQ7r>w3kq_(P9u2nTKI7h`1bPej7FcoS`zxo(QpW>5icE3Q zj6o+gWjhON+HJN6bHGCn*cj%D9p?Qb3AoOctfrm?T9@}upM3`0ozM@|0^Bm#kRaIY zv@tV0f!PWs>2)o>IYk3;-wPnrQO!BO08sRP1nWJyG+?A}T&Z6O9RZ!tX0RR<$B#$d z(}9C+4DvF+#}JqFp1Ap{4uKmZjl~WDU4n5~!KUXzWOhU;^>Q{{Fy^ORdd{;^m(>&$ zlmLHGFI8g$&6UZx#Y-`OD((LDz?YIpg#USHG1S70X?}i!1V(}tg73SvbEEeB@J zk;`H)JpSo6bDr|l)CF@q;Rww|rbxE2g9D}}S$1PJdw5_ObXBoO70e#;VebC5q3^#7 zZDg*nW4VVSUhJ|Y>%1k?zD_V+m2lf7$)#OE+5xpxnN*^TBK!k2R|fLBFd4uI4)DTw Pe>_zQX$y!4GbsNzMqZO^ literal 9988 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 ByO#g} literal 33258 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 PLifB5gy+o9ZT$ZOVB)yy diff --git a/InteractManager.cpp b/InteractManager.cpp index c8b27b222b3622ed4bde189fc50d201f137cb1a9..3b69791ebe5b9d2e236c0948fe5c01293cbb774b 100644 GIT binary patch literal 10084 zcmbuF*>c-P7KX1!Pk|^^3OR`=fs(k{;}q7&5lJzkyv25DV4x+!1_2cSYRUFmb3acu z-5?bI#5r4bZLGeE(3S(HWsi3O${YZYYvMeq5y=145xqit^($pu?d} zijuSX7|7{;j7dY(rka`W69&!kiZHmQ3x@8fHcpn_h@37x8l*Vs$YUs~q);mi#Wn4S zLMd#LMZ#Ig7|0~M8)|W1!!D{dlSj-K*UiP~qFf4bvs-dZ>!M*^8j&XG*KxL_Q$@Gb zv6FN_qnKHuP1Qk_G(eNs&wvumMIu5v36y7+$0;Q?)VUMks-&M4-Ko0F!(0fus2lF2 z1*2CNopI%ynbFXfW08=6573hR=CU22A>@>CfO3#?#Q|DzKsuunhop)^9FZ#8&?8lp zp--wP!hlrKf+4A*0NmmJ0P|-744(xsbr!(PSpXB~fJ0221u%50xd?|Cx=pGWxA~zAXUuwC8=V*uSga1eNC#E?;BFZe19fY%vYV6 z);}T&!eP?Y8R#((L$|K4lQ;~@I7?~Ajr^HQ?IToRo(MsX?LE|B`eHJ(++A{r@1YGf zM2_@5l%j^n0l$ZC)DSuD_fU}jLEYL$?YKWW+dgx6Jk#j;1^{F9pYUrUw zHAK!3J(TI6O-Xtv)3>CG3jOy#q>SS1k}BHLAyrgmuUYM*CO*l&kAnCl^**ZMlf3&V zg-??1qYggFxQ`28r78#kD(f>8Ml>Xp&nH)mO@8VD`wNnLQSep9E7Uad3Gy*WUD>P<_Xe5 zV`|RN^4lOMTOAgJR;$*%ci)Ktkv?<7MmZEbW-0^gAiD480C0H~J)$R)0gVyO<@ zz3-b%9P~;t2mk(qFentaAP#E80%#Bmpf@al#;^cN!UCuV3+TjfbYeIt20H{=!2)On z3!oJ&fL5>oTEPJ>D!~FeA6%UeuFeNn=Yy;B!PWWT>U?l@KDas`T%8Xt`k=mjhrhmU ze*0WhLNQ0by?aL>)IveM-`^7k%}`ALn|Ip;LOT>he&cvLJv^Nr9_pdSF!#GppEYOV z=^XKNj(F&Zx-m4%vrrVpiMS_&>1^@Pma3OL^NN!6(K+Mkobhzdc<2oG_4H5}7C>28 z08L>5w1fkEog}_a5+5aDhtT=q>-_N14|WK&!YWI0L&`@hoLpYMG==a{2=9&~&fv9IOBBzN*LlIq19`Ql!_h%b%S zz426asGen+i?WQFan@R36kWf9`SJm}$HGS_!q-ATTRM*;{-)OguadxGis1bRd<*o5{<3D7(I1y3D z7zah^DQ0AB8{Zm58I49|c5z#jYTVWjqWqI+wcG6{TXIc5WLZMjG%lW}^Y|BGXLs^x zob^I}UO^)l~m_c>-BK z1hqpmk{?KxYvtu%wtT`$#=K*ESpR{}KP2|)q2JpY>d1E-`4q!@HD2Z1`UxfV9y?@% z`GOs-&x5@@xft6o&d*P$?>liJe7KP3{k?Rx9E~Qn lb1}YfPhU;j#>m)j8^0Nw-Ov7R_p>i`pZwkK6X>oM`hOnic$okI literal 20168 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 literal 8996 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 T4=s=}nj;pTr(7&PhM&nF+yPYv literal 2142 zcmai!TTdEM6ovQm{E8EvY+`KF^r>%(HzF5VTMcJU`k8exGR}rro*I1WC%&;h`q<->KB0|22jp&i+uq5||8WSoUVwt*k!duCEqVp3G zOCl%kUtv$4qx^+et2P}OIs|Xde72>?OHk z8TgX39NQXh(oDTp_=De+w>fszJ-{xe$r^UE*Q0@!Vj4^yh`J}QAX_Tsy#1^M#+iFd z`fDmuvEogW8uJVss;o+5YOcYXb=c3IlueM|dJ&3e!4=_RsD&y}iK&0r+7nfv}--OUm!?dY8Nk=NPY zu;3fp8&L)PbmQvj#O$;Sntj}O-78gG5WC#s_rGZ#ZTMgE6-wN$o}Ht{ogG`>EiG(` zZ%`l4E#J9QtfyESM93q5!*}t{zk-*<4gG5vHTuMLIe#TqwUeK9x+1|)2~a`fV1M`iyTM?*b|;$xQj}aqo0s9h}wRVb%^zvxEr#9z4Q~>F0ox|_WgN* zUkIeu5fSo5ob`6`ZBHwC}&^m%!1Z^H;BbfmiA%rj2@HD&{A=g=S*g z_EXKO>vNOh$KdJs3{H9P@DtuVD@`mE*4#9KeeDuEr3vJy%um}PRhoEORM9E+MChf3 zHb`F0U$d0Pu_4=CwS7`pQJRBJc|)Xd&(Rk=V>_dVs%0e6PqW>|lD9f*{kJ<3Rq}=n a9mk&tldG=D1ukh9GmgxHyxrT!-TVy&^j8A_ diff --git a/Renderer.cpp b/Renderer.cpp index 3b49ecd5cdb8649a4f3b135800c31e5013a5552f..449e607febdde7f1ee57d9c7f5cf4f0cafbbb92e 100644 GIT binary patch literal 3112 zcmcImS#KLR5Pp_^1?>XH3Xs=!(DcEn3&d+T4jLzhq{8TvKyfK8n-!@pM@iJi|2;E2 z_RvwM4>kOt9nSg9d3M%6J7ZZTImn#NHtcq36_@ZE&y6jZ(d@;`(~HxKA5-M(_kU1Y zln7eOL(h6R$Rb6*L)Ead@?F$QRU_30=0~RSKvv> zfN3MY2)P3GPrs+ECo8>RR}8APeAVw&&Ywwvk>p6VkY8Rxq3jeK33W=CsyrFgyl8r^ z$}%}0G8J4JO90erQ*>|5%T(|cD5LMBS`;v3-UiB{u1A$akqo*-&q&nsFZ21i`$L0I z{r;W+Z*~41;mvtzDZXn3*CizPTS#w5kz{688??6MEB}PhMzXVn=(g;lzFv#No3B~?=N6Awjy%5X zGP7K9P_t6{hdRcVm2PwtMDK}7M21l?+YTOeJY-+LV&-B9!NHovf7g+QqRwS0L4KJ1 zDFw9D2Uz}}crd0hnia5Pma^DH&~gHQQc*N-O}-C;H)Q`(8c%y_RcQr^mslCweTdNe zdSoXjj9aTL++_4SS{R_)u&y)$78tMC8;ML#?$K569oKm&DWy?rPh|v&n~eBsOS=_> zd{GN=wt;z0tC#cO?&0+h-&dQRG)8|S?oIl99M4&7X?)}si<^EDn9I$YNudFvi-PM+B+27-|ua}@36-Q zq&w(uN#h>4{&;V4S?7B)di{R<@OpIne&W%N3=y&+JIE68*GjXf_Qt!OW?Q>P;><=pKkq|Xe1S;hx2D-_&aLLU7@7;S-8AdYq1 zX;`N

T_@*}jR}Ms8SANwf-*UD3=%acX~050e%jqMCXbbOgN|LeLcpQb>2ZoMS*r zgl#^ZOD$yL9+q-xs?F3?c#cf1{A((#!>KdEJ9UIA+uzviq1JaFp50Imun-@Lce=1C zjkY<;VaK<2A<|>}yW`u|!vWu#Y76N+;9bMl)=LhwW<+Q%+@MDtuI-y)Bum3{&rR1+ zW;9?4%PJX!)k-H_3fz9Q>1u6@37%$QZ?$E~e6JU#QZ8rf1x}@3xhnBE1;d29Q`yX2 zCnG2b8`vSBQeph3`ODZ!wPsCJk z3qR*(jfcuFNi69z_Tu8F^OXE{5f*Nnjoi86Zp}F&5ii})aNBv=?M%DTVoVFSX~qB2 rneAWL3f6E?r literal 5896 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 b%J^!*Mt{x0-zzxgL-VWvd8m=*;cWT~CL$gw literal 13510 zcmeHNOLJUD74FI=H7W`(vde~RrOJ$*SdopxLvcbRS&9SJBQt^|2uE1bJOr}j8jYkV z!cG;HVguo^34x+mvgQx)6If7evZb=i4@kiR!uR!=GkyBr+nR^TqY7$jG*{iHPoF;T zbNc@KWA`*Z6aH`J=3U1%+#T1&-))zb0KTEKCq2fqb8GPi@(TW;4K0%HTS*MYy?qhZ@UpMaY5 z&`s>qc9VXOJf2Bldjpso*u4wNN#$A4YoP7G{iqK!;i=--0jPQrvv+~(Sx?W??h-x| z7{BDQ!|L)c+K>M1Pe=b)|L4lmTYJ-w^k&G@26jEf$}GZm3)E}@qtcbR84uCMSO-t1 z_}&7~7u}lMz<0&1x~I&Teco_$m|ycyOCBn~&jZIYW)@t{&*UL%?j@Y;CLruCVU+uX z|Kgo8cfZFCa-Q1KaZS)qj%UDI^Jk|_Df>-GnB%A5NyQyO9v!SX#LO;6A0*(b?jmNN z!xZG8r|f`JTmH23IPEUJqF3bpAvi!=ZsAvKTqKxbY!7GSx*f=f@*?l2 z!K)@dUo#)t!C9EnSf+tbKZCHeK{x3j?Us^jE_?>zpl=Zl%2_R*25{?#c&zlfiu}pI zt1h@Aa-bd4lW>eWM9)T_8F;+r$Gg!O_dN9+n;O95uek7es<$G|OQoH^3Z3Fv8SGiS zQ5o?!aE2??Ct3>^88v&SqfOJJ-Gi>t^2vYtguG2CSDN7B4$eTEjXkCHyA|kQ3U1L$ zMLok^>`R%c*SQ7kl-PCnx)??=cL@JMuf7PvNC9e$I)EAG2}ug&P3VT4qj zc%6uGEMlC|m2pb6n|@nXErAlAoK{SW<;psEbqG$t=!L9%3rvG;uMi zKjUME$M@db%dhtF1Xyyv<*5(IwEd3jAfb=778FPpWbojxI*~ zJ@_)(&bahg9OKdiK`tH@ucR&6@{lk^VU#T{}QGfr<-_$?g?1R6xHX0vUZF~Lb z*ME8Wx8=01{X81C6w_SMT=@w6A$i?11G z^+Xg6XL|Tfpjpf@tk%^*9sO5P4p+PYmCs$ zrMBHVJo;^5Kkel^%wd@CNzEseX*Cpk!5Y>xmt^&4r0a2Iz)M>qXK%yu6vG9~G8VJ8 zVm2>%PzBz99~`H(b`Xqw+gNL5%+du80 ziIr7%9=L-qwx_VvRgzF56HV%qcz+BG$RP3EXS&m?Ff|Wo8qy$p2kyz%Htuw%4(5vy3){jymsf~(IxEPdHJ9=k{X1WJ=ZRnL z*8jTsLaSo^#me7*uPWuVS2dZb`rWXT zX7ZXneiFN_BgZ3E+o1En$B7P}Z~JUgPa*YJh`_?(&^0Tbi#|cTHao%{?2yWk)ZzxeteSFiWI zMFx1*4ZI=Y9TA^e$i>(ztD#dlw{h;h-~Xf&!PBDzJ5j5f19UA1Eq#EqEQK*Obhgv? z0+bAECfYWu9cEV@bU8!Uk6EL35;ItF>V`p2D4A;B>Z?9JD-W)tUz_1Z@vA zX-@Mjnq7vR!uLK;`^e@cNdP zidHZw$=F_`z_J$7iYCtR%gz|*)tZS9f)uUD-)zYKWorW`Wu@Guvw|;!wp@+ji@KLS zZG4l*w@}!_pe5T#RAvcs4t5)PcS{e+Orh*{koOV+8}Aet*~R0^Y8{btP+EGIIE9s) zfNo)A&)W-gj{q+oDZfJe6ZM7APvWC1F8VAW?*G~9Hr9npW*vDFcT#u;+YLx!v< zk(;M|S;X>V7lUzi1Cr;hJ#$K3r?!{xYKmez_X!w{ zniv%yNcpO5a<&UhdRI;f+d29Jd%OAuaPUTz^0siS5xX7}t0ZP}?DG<`-G|dR2?O;=OAzLoScD>a+1C3b+(}xt>uxPZNFn*?3}(?Lhq5s$p~Th)0`)cme%7)zG2tIv-JHo3dRvBPiH)v zr!>Z#r&V~WQQhWAY5(=V7S+Tbj&Bp=#WSlNL8D?#6X{80E5^DhRGJ|-9xloagC(sQ fpJZgyw=4J#gH-J7j@A(AwQI|2S@>f|kU#wgltYqS diff --git a/Task.h b/Task.h index a31825d..de9bcf3 100644 --- a/Task.h +++ b/Task.h @@ -17,7 +17,7 @@ public: explicit Task(const Function& func) : func(func) {} explicit Task(Function&& func) : func(std::move(func)) {} void schedulePop(const bool pop) noexcept { reserved[0] = pop; } - bool scheduledPop() const noexcept { return reserved[0]; } + [[nodiscard]] bool scheduledPop() const noexcept { return reserved[0]; } int pop() noexcept override { schedulePop(true); @@ -32,7 +32,10 @@ public: void runAll() { for (Task& task : tasks) { task.func(task); - if (task.scheduledPop()) tasks.pop(&task); + if (task.scheduledPop()) { + task.schedulePop(false); + tasks.pop(&task); + } } } diff --git a/TestCode.h b/TestCode.h index 06a1968ab8ba00ee98606916d6378851f7eef691..3d05f6abbf5eb533c0273dfc2fa3460992ac0445 100644 GIT binary patch literal 434 zcmZvXK}*Ci5QWd?S3D3QmDX+-ytvkjc=AU`Y=$<}CTS8Bk^S#ZwpnDs)6Bei@5`iZ zMcd*zkV>TS{*9L<8b#?{V5N9Am}G^Y z7TB#eWWRKriELf@miSZd~QB=wtE+fQH>`wgVZqd uz_!xyi!rHWhPOe*^vJ(`lHPsElH!}H3OBGDSW^N2LH|t`cny6{AH^@1e0$NN7Hoo6=r8zTHSeu{q2wnbIU%G|b5N2I|z=D5LEuzT_ssITgxtgCl=Dz)(3 zs&18?@+I4S&r(gsQ-+_&wd$;HxbayW??9-%2i1%6HB>jRd4YG?Z}vgq_-A;TQ~iW4 z%#m01?`R9K$_z`q6k%sS?SOU38WEGEFrgj0{FcACQxEBO#l3Dp<2Pr{iEc#=xA4lB zx>D91W1n&RO5V|B^;&1_T8Hc=-ucoWV^MGq<5|vAH#+fDmIt27Uu0Sm-x5{}k9kIg zD|`lzEMlv_&)jmd=JqE`VTn&f8T3_=)~gzQMSjsfkR9Czy#=RU(ILOel33{#Nvu_i zjX8BG?knC6Ug>us@f M=EAPtVDl#Z1~fn5zyJUM diff --git a/TextureManager.cpp b/TextureManager.cpp index b21bb73f702dae8f3c226869a6bd29cc4939be7f..108b7a554beac207dc2922fa4d52afdbed71a6c0 100644 GIT binary patch literal 75 zcmdPb=hD|#a4t$sEJ;mKNUBtD%`MJMOfB(FOvx|KP{_|yFf!FO)HO2H1FGZVQqIgv d&M8evRZt2^ttcriO7%_5OH5BK(#ufd0su?u7OwyR literal 152 zcmXYq!3u&v6h+T^zCvD3Zt7zvBqz)?72$ozhbZ#h3cZv%dYFC6e>kL)O(ptrfW(}mSh4g(*NE_&B2~}oHy@1 zzE{^!*Z3Higf;eG_;iYfSYAl`ctr1T^)O$~SIb5A0o;v&h7)C7alVXGHfhF*=J&;M z0-!9#h}#2yN(zkU@3v@HX-AF*4tR!YN8|ccf^ow=?)wi`^6ahVurBe<2IaRXwos** zowyYarM<&{R5Xq9F3Ow9K@uM_(3pB_R0Gv5({zR%<{^}_8>vZ18c@WquKspYk*1&*Dcu*| z%+Ad2`}ou`zsPIQg=%F=w4%-wG}SBhQqO9XbDx3SaL!b6vj8hqP)9n^p@#fN)T6at z#JQ^q%|wrABx`<(PKV`mr&_8-F$3N4bB@A-Z{rx6;MIU$>mJq%8CuU7^rm;6Zt*r* zxAYgDAfwBAA`N7>mCkgBTFq<)2@gOg%>0B)%Ka77Ej>{Uv+q9E7`|=lCsE^R2IRAS znWm*SPQ8`=9PEEm#EQvlFVW!jfOF?)?^xp8ZKxvElzDQvvG3rwJ?&|qe3sE(X3n-+ jdRMOXy>pw;^a>ckz0J||LvPyt8*FZ^kDBXW*_i1Ivq^Yk diff --git a/Window.cpp b/Window.cpp index cbcff94b683da41aa5f4e67c18ec927432f82181..e08ae7f5bf93bbffcc0841090364ff26fab06dda 100644 GIT binary patch literal 12345 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 diff --git a/Window.h b/Window.h index 98288d31eab0f3e80694fe3b77f93c9099277e27..15656312a1f95a3124147f3f886ae381baf186c9 100644 GIT binary patch literal 7688 zcmcgxTXPi06@K3R6>XZuGstbo}oQM`}%P%oBdhUx8~+8z>5+q+bue^k`!-_ zx%Rvj+Me5Ad9wvvlI1jDu9#j=Nw*|@>8GK`PRT|{pls2xf-^uYW`h+u1W6I5=1fL&d>3@s@CLurM<*qX`W*m@+_935cl! zG?{>yBws8X9Xo!6MQ9AM6nwV@y4OG_XIh~903|L5dV8~?SG*HQDOgcyHnBI5tp&C_ z*S-t6p+;aZ`Y+AN5K>iZvyNR9$JDb~vySYGVW;fkX@WrcRo@F`5e7A!&Cqi=vK#{C zV4n!Rs`{wgrLdwtE7G2;@IDAC3b?2EQZI{hhifiB@__}ibkJU z>=X4qQ2|U}nJ2?I>Mg)v1T6gJ+P&z)7r6Iw_35j%TZ6CGE^n^gYu>xK{^hgi((

?y!?mFYb*afdu}lL{z0D@db#?jPwb7ZJV_&&uKs8g6Vh6cX)Mu;=j)$+k)~9@ z1D;MF>&$OMaSWqno(CJmHS{#tD60$28(&9PA4FF!M;D*PG(4B=AdTO!QScnk7qeFJ z^qlY2+!C+xVhUdNeAxnD5)=f~7TI#EP0iOrwzOH#b40}o*tTILWy=X95T^F+fGlD` zVn6h2w9VH5o((*w7Rm{)$e}AikXT{7=jcPY9>YQ~7%xVI`5YcDj2}NWKE+Ci?%#q{ zMUSp;TspV;kMq&zkDE9C6y3kLer-7|Q?X+CqUOSAOTT*S*GnuidmDT~HmZ0vJ47HP zN6ZyHHwZ;y{HZlOA+?5Eq}CO)Hv9@l%a(_SH*$?UyeYSczx7-le=E5P{+cs6^N|-z zXR>fpH?Zeiqz>})B0ca)>A?3rUvtSX*n?>8=M^8&Ao;NHIrQf=RJfjO6lFCO}$xP^!l969wHV`dd+?CRA;iogEs#c97#kD^MnpqcZV7+!S?AnBOWs-J zokiMFsRmbD8DVQoNo-iuJDf%I(-D8H;Z`06sX9qGd69gp2hEe{vE&*pOHSECqvmyz zq2Vnh*_jGm(nR!qoa{XPuqthL38z>Y7qySH?M2?F=^`)wtEQ zR@@YBLZl_w=$0@emiYBl-XhDV{FNJIb+$cO6}9O2f^i9EKZ`C* zx-t&sP+3gY6w%A?VWl!iO6xtI^}%H*frahD063HMBq*7awjs z{U>oSkOVo-$ew$mDqW~8PT%bJl)rW%?1d+r*B|Xp*yfYv=J_imp}KtMVf5lc^!Q&S z%g6UNZ{F8JwlJ&{X~FRVlq#@~L3&zUU+B%2LMFA71oLiTyh{Mrp}Q?;@89B_dR!sO zwu@>f?wxnxAv^b0(kR+XkjikFx%%(s z-#*>=_WS6|Pu9=Z(H7{vVmS-Y{mCBxQhajS-g?p13+MVG3ngtkQ&JsPp;dsX>qII4y|1OeYMd1OI` z^b>^{8lFHz(yA`_W8&M8{YmH=)oKn}SlFpecgv-eywzYPPC&-yJ7l7^z@MB165gv- zOBiUwN>qg%yIAt9YzwKtpjxjaQma~o#+fD-q*Tm9>QUh$?ZdX?0XUjXJqm{d#n4>7 zzl;%k&6hzg1`ZF8ot!C5A3Rpbla(E+`8artCi8gePLG&I*+BwKk`gmXVe6#c#F;)wV@8Ln2Y>MQfnI^ac=OKLjRzl=Fi#96 zmC|>wHt(KCQK=OBa_ttXSj_I#0j^}@FuvXUsd*b(1pT8yrViDrOQ~TQ#-D8)W>SVX z!==$t`uzxp_=8|ElCteMIYN&?s`xn*!hcu|Hj2f){Ew4U8B;V}E7FwikZS)BFiO5v zFJRgreSVicqu8C|p(zc&PjV8-(U`WKMvmAKL)gNszAX8lCWW#O_J!eb>LGR4)uX#E zgh1VX<@Lv&QKL|ZNJ>t<9gPxyTeE$sp_)YcCmUtpJ^9fdQO0jM(CX3|Fx3?m+xw5f z)PpG;s(_Y}Pu$TYhNTrQrDaQpy0qHPy=rb?&Nj4CihWj|S!lNgd8RCXYP)5wL;hu}38{Y7 zYCujK&@2m9UB~Gs5XYhN>yb60~=4<#K zG%p0BSMt$`eEdu_{xZg=%xFG36ph|A-^@o|j7GTbrnzXY?QuRE&EUudPqLRF*Y~@$ z!A00&9bdi;F74SZWs8f}7S~{pP@_TYl+#&eO(bVI-DTGGe*R2mRE}TcTv!<+LG}HU&VT&Etil>P; zicd2heg9to6~=vLxL2#7J%<@hcy?y48b8`*?MMy2Q=E6huDA`#Tuq(m`NW15(5~4y zA?6I@X=N`uIJ0hfYdmDulUA|bJ=wzi1w1Dnxu*@RZ9?{jw_Y^#br62Oz5JLJdY7Ry zaY`fkoY{obuSBVqC$eP5dUpWP-|L z**G-;UW^X!9y5cxM}L(yj_iCg@$T-kvK^Wo#SYEK@2{GH$2S+`7#e0uORX7KfYSjo?fp0dA(CjZ@*@=fgO!Bf2ko6K6v zBxuk4XM-7~65wqHTvi+&$vyUVH`7yuUL<2G`X}=HCTH&2Byy#hS9% zy93VaUYyQ>3uVj@NyG(*MG_r#JYBL#B@&jeZ(^4EBYj-fuS16o{3WX$H<>+$HRMj2 zYRFJ4un_AL$*Cy`h$;@FB)*I5Xj7k(a4*gySJnr`5h6|ebQt(Gg3K`r%U=RE?(O{a zv9ambrXD=_#lvs?tN!`vBO6uhW;y=NTU*m7=mkB7*7+J!FYWGzd1uCYOk$& zp4$V7PUbqsyPw&*iAd(xkYk)5iT=uU6FgdWFBqZB^_o?=2QH^xg(O;468Tt5D;g2^ z+C}F!Mo(EQYu&7t;VE85h+eGEh#hgP4r10hyPlMI+GP)bpXKQmB+)usN8K9o(5L(? zYy2u)xRzPOVPp9o$5ss2xY{|4I<=qk;W9hY))I5Bc63y^D)rotPdYs(g_)oiU6fO(i9QwnLbG=*Soa^k2ILY-@Ay8gPRP? zSB&!IW0q!R&|W8=Pqf$Q_w?R0Z({9p*tKFV(jLZ18+Ui}%)#10kTTACx?@ff-{WQX zB>PnCDaYq1wMKlRj5C#HFJ=;s#S(-SmCjznS%GIFo~>9_`PQS%PBT`x?8WqAP1l>1 z6DQ@WSkHC&ql)gOt5!HZXDf(VM2bpTfqcDl*S>K(-l63Wj<@z`W8QB6U4HR1u+#Y9 zWMPlHTn@<;hb@EOO)r@Yu~nfbtijV16OubLb{#oBHr)TjzPZfLONy~BF2)YUW~Xwp)aw5JiAQUuT7{&n`iP&Mv%Ki+s$hB-cZ+`3&50|P zFs9dQ)gkNk&ZPn!aO*Nv#of;=>iin+1epcaV_Vgp>>gcw;f;4D|2|`G4Ah?d=(8JD z^vP*gOJVexZ~ts&a{7yJe;AKUKUni*c&p7j1#*xcMe)Ax zaIlbi`51E$IU??iI}h0}>d09|?p|0&`nb!!RukW}oa=lN9h*Rtn6rPz-rvdTX{7Pd z(n+HJrO57U$2)1~jnt}l%x7NaO`altOd-bfR8*$;633p#3Mu+(ja2N6Kz4TI<^IXH zPN&!j=iWtZ`aUmtwRnG1&X3q8)@q0EopNRhFFUP?{Wv@s$2*$7yI_`5pHJ;UdR1yi zF2kc%uq$Dn?tM2Z$ob*Tr^W(1psb~sL-ITM#*s(AT^?He%a6CF|G4^ln{~@pvlrTV z^*U;9=4GkZc(bTgWqD=DY^C*+R_Bv8e^c^B)QYSYd0r4dnFJ5M$Iw9Z(dN=YUx?~W z&gVMTw5+H}X|2aw$Ml{^HYPUuv7mJbE0;>dRV%PjXu5@3SY)f(S$tPy*!E+2m&`jp z_IKE&(6}g4TgiJ;VvpiD&q!h;7hO^V`~DhZ7_ld`*3--F-xz3o5GVMyUD&xJq=GvF9-94f>Q_PtUisuBxJH zEju4|jsm%F3b}n+`o>-xN|m<4LF28T`BS+x#(!2k(o^Uq(@32}+1(9f@oW)hff0-4 zu5vGz#I4(aZ!K8-*LvUg)!jDpm!)EFmhe3lqP8=G!A2|1{p}V72c{)SXR;SbBR;w9+i17Uvrxq#V9$$0u^D z@7@`b_ej*j)qtw{`Tw8AyS4J+*_lWeqo3PR?x|Ye#r8oUpT=_dX7`A#fOy(%A=3PM zq%5|z!@1wsR-Glb{YaJys6USml})Ngz6G{~FUh|0UU&s(Ox_l-rsLa5shQ*=@0m62 z*^S)G&l;=>m9KA;5M#RarF6uq9a%dtKGh!GMq>HSwW|_*e3g1Y`TA&5E?c+Wn>y9q zvv-PRmL>mGp5sXaC+^W_-Z4MCZ_fohIYVl6AKzYlSbO4o?bxyVA5FaL&jQtcP)OC2 z`;97%RQhZAZV*Yx>3i^8Mp-SI8~RkccdY#wIRURZZ{HuPgDyQ^yq?%07$Q+58Ag3s z<}BFSo|%=m(=#@9xUc8%zYp$z6#7A*?-jai&Wg5%ReZCOw}v&W)pvE%XAz$sZ>;I( z`t!8m{~hq})A;_1{T#n@6~9Ny`8*NQXZhbWOM7qjR`L9}xrMLi5xI5HK8rau^JRR6 zdvhH2kuR;`rFz%1kkJyLPI4Rc3OKT85rqZdLZ`R&FALpG#@g>nvBv(@6Wu^c7&a&NR zFxboX&?h1Jdw0_JKIdM~>-Auyky%V(d4%!KaEA7drOIqUNjQJs>38}cx}@{GGcH$R zpCb4vuDe_R^klSU+7xFmBK)z!%yK22)Z#7^R40s&8P3=aVaN0rQ3vLtz;*2y6(0^5bA*@QY<7)Rbg@f7CE@3^wJN~EZrG8zmF+F+%m zu@E=mz{DO~@aQ%88iF^~)^54!L~a8gfeE2jg(){m2NH9LgHqSJ^cpA(7U3>_%gmQD zVTuARLW)%|mz&@uYZ2Kv+5fG|llSC#&*s$6{DWyzb-@2+T1*aC2E7Wu903(MGbQC- zh^q0$m$&s>q$=4A){J^dEWqz5XqCf^Vm~P^E$VR%axn2rLb!nXNIPY0_R* z+yp1(+F8``CORg*0|@|pcn6u)R^@?4ccVClFOZhw^8f$< literal 2946 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 literal 15502 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 diff --git a/dev.md b/dev.md index b84f1698ff5206e7ed87ccccb67ce6c3392d3efa..a659cbb889a1aa592702384101795dbdadbe7edc 100644 GIT binary patch literal 154 zcmY#ZNJ%Z@($Y%KNh~f_2q{X;E6zzQNleN~4N0vi(b9U_--RxjUj!6hzw_y?DKFHfgyzykGCS-$}j0~Y|bIW#{2 diff --git a/exception.cpp b/exception.cpp index c23b1a35281ae32a440e9de1876b1e170a9f001f..9601749304af93fa3b9c239733cdf59139080c1a 100644 GIT binary patch literal 269 zcmY+-!HU8_3>l)zpL_{P zo{Kz(uZW7!Ky`;r(>aB-Qzmq02p)=Mw#bTN#(P4H+o)`#*fnzJysmqLAPt^oXZZqn z)7X*={++j~!9m2HqVpEM`>J-j4Ax>?udCkGCegun1b+(?XgWKEccOcX>A(GoQAFya uhf*Fg2_JB|Qn*%&d18lO7U|&hPm)eymGaaxattRp_&C>69=-e&5Ag(pt5gF3 literal 540 zcmaKoPfNo<5XIlse2S1lv8c5c1kt022YV>AM=wdUZiBX|>57Wg)yOE9BbQ25=#zY>h1RNgHy{t}rD|U0V6~Ryp)Pf%3)Yb6w|WVC zM=LaQSv2yNKSL*C71cAn=nX{!nuYxdg*j(m{hwjq96Y83v zYjGUoUC=>=<_I-Q81QSN0IR@C9fNwOHMQxULYKRrj@2orLoCNES7`VC@V@xxQJA~K zuL<)U@%t&$%;27|UiFT1O)i-7fPU=nzkI(Aw*SF1NH2796?}Z{vSmi4T^I2dJCA4Y N`3O7H4IOQiYyspyRsaA1 diff --git a/exception.h b/exception.h index 2952734f7239aee83164c3b34d74d5d1524ac221..f70438ba2d461d5a512a5b5ce2db00598d230aed 100644 GIT binary patch literal 3631 zcmb_fO>f&U3_Zucg7ARA&e8-MFko=I0sH8oSh^Nnh8?mT6kBx!IFcvH{Xo(GK1w!h z$FYN??xjg2>XCe;9@Xj8nNH!Gq(svQR*!JLQH)UigG55DL2!8g;pE-PyN?sJbDTG+ zB=LsedPp57Oo&o&{t(hsGc*k#%~lBuLFp(6Xu1C63_`(`hF@AT9*;mjru5WtQYkbI z(Q)7m@-5h?7&itbrkAe|hh}FCyD&a_HE^E!3D-o9;C@YXiGY+y$s$_C;r>>%s$dXo1<$Z%ltdHv6n#8nUGjqe%#!3jbxqlcef^Y6FYUc)~cvt{@tlqn@NK9ejeB+Xm{I9NdFM2y+dyn*F zZa?-*DZJo!Bw^82N+q_8;IBttCvrP=o#s7h>&AU4Wj7huY(rmbs`86B2R+6uW1tmI6K626)9OAHnTE47(5JYRi&nX2tj(74 zaTA9|A*6SLMUdh|)ykXWgtW-RVK?^71-JB39MmS39Je*8jwCSje9D(WYBMA{L)*2l zg28iDYt`!jhD%Jj)aiOv8x=FAeqc{{2)%IOt^I)?Gj|DYTL5)92=h14Uv8(JGpKJ4 z@nNGI4()588tglToVkl7EN+C*%UUdW%0^_|;F01rFw$$LY;Buc0OSc zbAwu)jp~^M*Hk32bz`dRC&;{Ai#K|`K9G-3l+#PXxaoQ4KRHRY AJ^%m! literal 7264 zcmd5>ZEq4m5T38_D=sx@plXdKCZ??>zVw5!)uv+nfc=0#DG3EU=v$ipb@h36Saz@X z0!Ir+E0#L%9Ho9@?6C8{un9c5t;5`rkrk3H>;lJp=iUdx)`p%)f>AG4vT??5>%g$OdR@ zV~lFNVR6ir*0c-lnqWhS=M!AfwF_WPa_KwtHXXbgy>q*nBNN@b+z8*PY;kxU~;+DbaF3*;^4JAfAR zBBj2JV?I9RH90smSelrhk!W6->CwbSiMamRk%3WY6Bsn|Ie#p{N{gdRv!{zES$JK1 zOhT5#p7-Di_mLa3W$hIE+uZe{1e&0IDxe-@F|BRV5xs(c?WHJ)#!@~wng-LK{2mZZgPeU{g1 z^TF$3h;)pB+ABebiZ)DktUmtwFC zu%7;K{a9;p?oNUFeVSr;eEoW64=rx(bPuOqyy(4;w|3lBPN83M+A-fI0@d$vwYvi6 zd8SvKc0VTwmZ2RhOP)`M1?smy#ju#)twa8h6}w#?>P4{C~*EWbpAUHG6MPUte1f__;N+h%@Xop~;|DxB52T vJG86=9Ga-s*|mzZV;lU<#~^#|%3Z^qqo?@~&&pl(soCiv;vq-dIA8t`DuA~; diff --git a/hbp.h b/hbp.h index 40ab4502e8e990219be557442e3afba17ae5222a..1d5166446e5739d67da05d021187ff1ebbdd25ed 100644 GIT binary patch literal 927 zcmaJ=VQZs65dEybVz5UrC6s>8-GMbpBP1HskdI-jlen;%mEH9$cl5vC8oeasNnUXo-5F}52e3)I>#BxwVgQJjt= zC{AVf*BD6Rdx5oqKdzJIL7HzjQM^cYpgH{L4js*ZqdfSUk0(Hl5VcXC1?*hZIlp7tZj&8eu|K8!pLT z?&29#J1Qs8k6|68uTh*mLVY^{7#Q^%YZ)Xv$=C*n$8)Lr?3T2J7*Z$~yGyyM6;$)kD^K97K zmo}yS^_I!$p2(@^Me&)YdK#yWH7GNx!CTjQH~OW7psockSm#)5b=&n@c}sq*;6+GT z!baIOZWMace=EMU7Un@5&SA|sMRvcLy%SfsbG<`$oJ!d)8I|IS=9P7`gjZXs4==m{ YN$mho-C<{^xlS7*dyj03cdk#}zjtH(W|#Ff2f-!r&*3D% zr`91m(F=wy5yX*(koa?R}?b=yvfrxlJ)&qg#zvJT)EGII++oYZ=SgDaklDq7$h&(wP zc*HT7C=Y$?kgdrK!{3SUu)b)9h~^C6o21`Lpvj-}5Hf z)YpCwY3i)VM&9xe&(=nEQU>()j7w~)mzKQ6M18||GW}{qQRQR^Tbjy3J|_FX`!xc; zg?Dp=oFY)1yD47XRH3G99aOK-yT!hwZn%YH$Xox3JngjBQ=N`$3i~xtNmFw^Pq$6H v$!t-q*PEQOyNCX=r%6xBeuSOu$)Vn^rblGd1dl0~avb7Y|Bye|Iu?HeE^jc8 diff --git a/includes.h b/includes.h index 307b69e5619c404b0ffa3121c766fcbaf9fe5734..2344b9f0b1179cbdff1d6ee655f6462e8d468fd8 100644 GIT binary patch literal 409 zcmZwC%MOAt5CzaZU(x6q8jOB`AwGz4V@O;N?FfyuC4EHvdjU5sy6l$w68H=q|vuZHZQ7vrF?d-)3VjN!GoAM#AU}$Cps7^Bl>F<0ETV0pP%}cS5U} zy%U{{sjd4MiWbZw)37*FfqhOAEIf)1 f-&r{g;}vJmW4H^&^=q=A@CoExIH2JhoR9wiWY&RN literal 738 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 gvM2h%9Z4tKGlAG~EIl^5o+4&<;k&o$6`z>h($ diff --git a/utils.h b/utils.h index e7c0eb4..f7f05f7 100644 --- a/utils.h +++ b/utils.h @@ -29,8 +29,8 @@ private: AnywhereEditable* prev = nullptr; AnywhereEditable* next = nullptr; AnywhereEditableList* list = nullptr; // 指示自身属于某个列表 -protected: bool managedByList = false; // 指示是否在列表内管理内存,而非列表外管理内存 +public: byte reserved[7]{}; // reserved[0]: Task::schedulePop public: @@ -146,9 +146,9 @@ public: int pushNewed(T* value) noexcept; virtual int pop(T* value) noexcept; AnywhereIterator begin() noexcept { return AnywhereIterator(head.next); } - AnywhereIteratorEnd end() noexcept { return AnywhereIteratorEnd(); } + [[nodiscard]] AnywhereIteratorEnd end() noexcept { return {}; } AnywhereIterator begin() const noexcept { return AnywhereIterator(head.next); } - AnywhereIteratorEnd end() const noexcept { return AnywhereIteratorEnd(); } + [[nodiscard]] AnywhereIteratorEnd end() const noexcept { return {}; } AnywhereEditable* front() const noexcept { return head.next == &tail ? nullptr : head.next; } AnywhereEditable* back() const noexcept { return tail.prev == &head ? nullptr : tail.prev; } }; diff --git a/xWindows.h b/xWindows.h index 28bdde66ea53b746eef4bf818c7467208884dd82..0ca2b897db8e252c50294a7a39a71cb4a8de7823 100644 GIT binary patch literal 1770 zcmb_cO;6N77(TbZVzMM;mawHDl4Vg2E*KL*6Tol~LuT8zyA#`)Iy2=XWD{~nY-DVZOyg=Jm>opxnli{;d%r(<049n7)WEAi&*XlgNE-%Dbt#48m3ISN)j$u zN;)JjdMS^{c=gElwiFXOWrp=q*n$H?3^yr|+vMs7U26<_dEmAi%_ZNfg{Mt|p}aeV zF;YwsZGkaFd?;APquq#Ub8Ec0O!s-*2crYX@{~oe+hfsFs!iPKWO5H^d5(tDBn)Ql zW8OZ(_B2_O5i?whPN%#2U~6>)SGWPiQp+3Z?d(h>$^1OP!ounSH;pEaAUBFOEnUyC zYAs8##iOUl?y*~#CT76(6Uv3bOAwwAUUGg#(AX( zQ0T#B@UO?mqvxN`PfyQZylU(!5HXU(^fs5sutp@aaUbQDNd=EAJ%^&90+{Sdk#Loj z73*|lLNDL?{LQD)>kqZN*Wq_|)VH&Dn2FZ1f@cL+&}Ar_6nR(kGCV~NW#%UdUfd#< zHTAslH24KyvI5#Dd03L8>zJT@bLd~{;kC9_}e;s zd4DoGd0S7%Rd`m1eI*MKcV#M7FhDgbtWLGh1karQ0v5B}Xm^T+2aAhg*lveb zuJG+0bY?+pKePBB_u*gD-=^GZ9 zS9}}RW2VJg&${#_Tel@!b-$_=NBZ)7=dF*<(7vK09O3Ke@oR0Q>(;STG)An>*$4LN zI{oM9X)zLNar()OEe&6=?+G_c7 zGp`G_K-3gJ<@W&ZvYsfWJyzty)JQg$4;Lm!Gxcv`tgjxAqAc#^{WrXk4G|WFSfs4& zIPQzL*0UBTnUQ5`{9GvumGuwfR28XZ{(SxalU3!s>U1dvO@6Dk=i(jnFPST)bER}{ z5^gQUtUEh*wo*?e8mS;Sz*~ef1P|GjfyCeIC*mO6W zYLvfI>txL}d)cb2cS7A&ME{af{R^mW9sUF^#IKscVqc`TW>I( z0^O}$aOWT<@0hKydfA*IrMHHEpY1rE$vvq#y(k7WVf60Oo!e)=@2a`K)AIga`wL-e BufqTU