From 6a2b8a8432d73b974cafedabde6deff256ca08de Mon Sep 17 00:00:00 2001 From: Ne_Eo Date: Fri, 20 Sep 2024 21:20:24 +0200 Subject: [PATCH] Mobile Port (by Mobile Porting Team) With some changes by Ne_Eo Co-Authored-By: Lily --- .github/ISSUE_TEMPLATE/bug.md | 2 + .github/ISSUE_TEMPLATE/compiling.md | 2 + .github/workflows/main.yml | 111 ++ .github/workflows/mobile-release.yml | 82 ++ README.md | 8 + assets/data/config/options.xml | 2 + assets/data/scripts/week6-pause.hx | 3 + assets/images/mobile/menu/arrows.png | Bin 0 -> 1842 bytes assets/images/mobile/menu/arrows.xml | 5 + assets/images/mobile/virtualpad/a.png | Bin 0 -> 23278 bytes assets/images/mobile/virtualpad/b.png | Bin 0 -> 20395 bytes assets/images/mobile/virtualpad/c.png | Bin 0 -> 24067 bytes assets/images/mobile/virtualpad/d.png | Bin 0 -> 23161 bytes assets/images/mobile/virtualpad/default.png | Bin 0 -> 16168 bytes assets/images/mobile/virtualpad/down.png | Bin 0 -> 23859 bytes assets/images/mobile/virtualpad/e.png | Bin 0 -> 23562 bytes assets/images/mobile/virtualpad/f.png | Bin 0 -> 22108 bytes assets/images/mobile/virtualpad/g.png | Bin 0 -> 27632 bytes assets/images/mobile/virtualpad/h.png | Bin 0 -> 25366 bytes assets/images/mobile/virtualpad/i.png | Bin 0 -> 23137 bytes assets/images/mobile/virtualpad/j.png | Bin 0 -> 22475 bytes assets/images/mobile/virtualpad/k.png | Bin 0 -> 23863 bytes assets/images/mobile/virtualpad/l.png | Bin 0 -> 23164 bytes assets/images/mobile/virtualpad/left.png | Bin 0 -> 25101 bytes assets/images/mobile/virtualpad/m.png | Bin 0 -> 23499 bytes assets/images/mobile/virtualpad/n.png | Bin 0 -> 21499 bytes assets/images/mobile/virtualpad/o.png | Bin 0 -> 24691 bytes assets/images/mobile/virtualpad/p.png | Bin 0 -> 24232 bytes assets/images/mobile/virtualpad/q.png | Bin 0 -> 25687 bytes assets/images/mobile/virtualpad/r.png | Bin 0 -> 24590 bytes assets/images/mobile/virtualpad/right.png | Bin 0 -> 20549 bytes assets/images/mobile/virtualpad/s.png | Bin 0 -> 24206 bytes assets/images/mobile/virtualpad/t.png | Bin 0 -> 21122 bytes assets/images/mobile/virtualpad/u.png | Bin 0 -> 21620 bytes assets/images/mobile/virtualpad/up.png | Bin 0 -> 24518 bytes assets/images/mobile/virtualpad/v.png | Bin 0 -> 21434 bytes assets/images/mobile/virtualpad/w.png | Bin 0 -> 23909 bytes assets/images/mobile/virtualpad/x.png | Bin 0 -> 23358 bytes assets/images/mobile/virtualpad/y.png | Bin 0 -> 22654 bytes assets/images/mobile/virtualpad/z.png | Bin 0 -> 21804 bytes hmm.json | 87 ++ key.keystore | Bin 0 -> 2746 bytes project.xml | 19 +- source/funkin/backend/MusicBeatState.hx | 122 ++- source/funkin/backend/MusicBeatSubstate.hx | 121 ++- .../backend/assets/AssetsLibraryList.hx | 70 +- source/funkin/backend/assets/ModsFolder.hx | 6 +- source/funkin/backend/assets/Paths.hx | 2 +- .../backend/assets/ScriptedAssetLibrary.hx | 3 +- source/funkin/backend/shaders/CustomShader.hx | 4 +- source/funkin/backend/shaders/FunkinShader.hx | 6 +- source/funkin/backend/system/Controls.hx | 126 +++ source/funkin/backend/system/Main.hx | 36 +- source/funkin/backend/system/MainState.hx | 15 +- .../backend/system/framerate/Framerate.hx | 40 +- .../backend/system/framerate/SystemInfo.hx | 61 +- .../backend/system/modules/CrashHandler.hx | 67 +- .../backend/system/updating/AsyncUpdater.hx | 2 +- .../backend/system/updating/UpdateScreen.hx | 2 +- source/funkin/backend/utils/MemoryUtil.hx | 8 +- source/funkin/backend/utils/NativeAPI.hx | 4 + source/funkin/backend/utils/ZipUtil.hx | 2 +- source/funkin/backend/utils/native/Android.hx | 31 + source/funkin/backend/utils/native/IOS.hx | 21 + source/funkin/editors/DebugOptions.hx | 2 +- source/funkin/editors/EditorPicker.hx | 10 +- source/funkin/editors/SaveSubstate.hx | 5 + source/funkin/editors/UIDebugState.hx | 3 +- .../editors/character/CharacterEditor.hx | 2 +- .../editors/character/CharacterSelection.hx | 12 +- .../editors/charter/CharterSelection.hx | 51 +- source/funkin/editors/ui/UITextBox.hx | 1 + source/funkin/game/GameOverSubstate.hx | 3 + source/funkin/game/PlayState.hx | 15 +- .../funkin/game/cutscenes/DialogueCutscene.hx | 7 +- source/funkin/game/cutscenes/VideoCutscene.hx | 2 +- source/funkin/import.hx | 3 + source/funkin/menus/BetaWarningState.hx | 18 +- source/funkin/menus/FreeplayState.hx | 31 +- source/funkin/menus/GitarooPause.hx | 2 + source/funkin/menus/MainMenuState.hx | 16 +- source/funkin/menus/ModSwitchMenu.hx | 2 + source/funkin/menus/PauseSubState.hx | 17 +- .../menus/PlaytestingWarningSubstate.hx | 2 + source/funkin/menus/StoryMenuState.hx | 2 + source/funkin/menus/TitleState.hx | 14 +- .../funkin/menus/credits/CreditsCodename.hx | 2 +- source/funkin/menus/credits/CreditsMain.hx | 5 +- source/funkin/options/Options.hx | 16 +- source/funkin/options/OptionsMenu.hx | 19 +- source/funkin/options/OptionsScreen.hx | 27 +- .../options/categories/AppearanceOptions.hx | 2 +- .../options/categories/GameplayOptions.hx | 2 +- .../funkin/options/categories/MiscOptions.hx | 4 +- .../options/categories/MobileOptions.hx | 134 +++ .../options/keybinds/KeybindsOptions.hx | 3 + source/mobile/flixel/FlxButton.hx | 587 +++++++++++ source/mobile/flixel/FlxVirtualPad.hx | 260 +++++ source/mobile/funkin/backend/CNEJNI.hx | 65 ++ .../mobile/funkin/backend/TouchFunctions.hx | 73 ++ .../mobile/funkin/backend/system/CopyState.hx | 216 ++++ .../backend/system/MobileRatioScaleMode.hx | 53 + source/mobile/funkin/backend/utils/SUtil.hx | 188 ++++ .../menus/MobileControlSelectSubState.hx | 271 +++++ source/mobile/objects/FlxButtonGroup.hx | 6 + source/mobile/objects/Hitbox.hx | 170 +++ source/mobile/objects/MobileControls.hx | 200 ++++ source/openfl/display/Shader.hx | 985 ++++++++++++++++++ source/openfl/utils/Assets.hx | 1 + 109 files changed, 4441 insertions(+), 138 deletions(-) create mode 100644 .github/workflows/main.yml create mode 100644 .github/workflows/mobile-release.yml create mode 100644 assets/images/mobile/menu/arrows.png create mode 100644 assets/images/mobile/menu/arrows.xml create mode 100644 assets/images/mobile/virtualpad/a.png create mode 100644 assets/images/mobile/virtualpad/b.png create mode 100644 assets/images/mobile/virtualpad/c.png create mode 100644 assets/images/mobile/virtualpad/d.png create mode 100644 assets/images/mobile/virtualpad/default.png create mode 100644 assets/images/mobile/virtualpad/down.png create mode 100644 assets/images/mobile/virtualpad/e.png create mode 100644 assets/images/mobile/virtualpad/f.png create mode 100644 assets/images/mobile/virtualpad/g.png create mode 100644 assets/images/mobile/virtualpad/h.png create mode 100644 assets/images/mobile/virtualpad/i.png create mode 100644 assets/images/mobile/virtualpad/j.png create mode 100644 assets/images/mobile/virtualpad/k.png create mode 100644 assets/images/mobile/virtualpad/l.png create mode 100644 assets/images/mobile/virtualpad/left.png create mode 100644 assets/images/mobile/virtualpad/m.png create mode 100644 assets/images/mobile/virtualpad/n.png create mode 100644 assets/images/mobile/virtualpad/o.png create mode 100644 assets/images/mobile/virtualpad/p.png create mode 100644 assets/images/mobile/virtualpad/q.png create mode 100644 assets/images/mobile/virtualpad/r.png create mode 100644 assets/images/mobile/virtualpad/right.png create mode 100644 assets/images/mobile/virtualpad/s.png create mode 100644 assets/images/mobile/virtualpad/t.png create mode 100644 assets/images/mobile/virtualpad/u.png create mode 100644 assets/images/mobile/virtualpad/up.png create mode 100644 assets/images/mobile/virtualpad/v.png create mode 100644 assets/images/mobile/virtualpad/w.png create mode 100644 assets/images/mobile/virtualpad/x.png create mode 100644 assets/images/mobile/virtualpad/y.png create mode 100644 assets/images/mobile/virtualpad/z.png create mode 100644 hmm.json create mode 100644 key.keystore create mode 100644 source/funkin/backend/utils/native/Android.hx create mode 100644 source/funkin/backend/utils/native/IOS.hx create mode 100644 source/funkin/options/categories/MobileOptions.hx create mode 100644 source/mobile/flixel/FlxButton.hx create mode 100644 source/mobile/flixel/FlxVirtualPad.hx create mode 100644 source/mobile/funkin/backend/CNEJNI.hx create mode 100644 source/mobile/funkin/backend/TouchFunctions.hx create mode 100644 source/mobile/funkin/backend/system/CopyState.hx create mode 100644 source/mobile/funkin/backend/system/MobileRatioScaleMode.hx create mode 100644 source/mobile/funkin/backend/utils/SUtil.hx create mode 100644 source/mobile/funkin/menus/MobileControlSelectSubState.hx create mode 100644 source/mobile/objects/FlxButtonGroup.hx create mode 100644 source/mobile/objects/Hitbox.hx create mode 100644 source/mobile/objects/MobileControls.hx create mode 100644 source/openfl/display/Shader.hx diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md index dd818bf4a..2ba3b31ed 100644 --- a/.github/ISSUE_TEMPLATE/bug.md +++ b/.github/ISSUE_TEMPLATE/bug.md @@ -14,6 +14,8 @@ labels: bug [ ] Windows [ ] Linux [ ] Mac +[ ] Android +[ ] iOS ### Explain your issue ##### Please check first if your issue haven't already been reported yet. diff --git a/.github/ISSUE_TEMPLATE/compiling.md b/.github/ISSUE_TEMPLATE/compiling.md index 4f516469e..cc8d321a2 100644 --- a/.github/ISSUE_TEMPLATE/compiling.md +++ b/.github/ISSUE_TEMPLATE/compiling.md @@ -14,6 +14,8 @@ labels: compiling help [ ] Windows [ ] Linux [ ] Mac +[ ] Android +[ ] iOS ### Explain your issue ##### Please check first if your issue haven't already been reported yet, and make sure you ran the `update.bat` file before building. diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 000000000..582928bb7 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,111 @@ +name: Main +on: workflow_dispatch +jobs: + Desktop: + runs-on: ${{matrix.os}} + strategy: + fail-fast: false + matrix: + os: [windows-latest, ubuntu-latest, macos-12, macos-14] + steps: + - name: Checkout + uses: actions/checkout@main + - name: Setup Haxe + uses: krdlab/setup-haxe@master + with: + haxe-version: 4.3.6 + - name: Install libVLC (Linux) + if: startsWith(matrix.os, 'ubuntu') + run: sudo apt install libvlc-dev libvlccore-dev + - name: Install Libraries + run: | + haxelib install hmm --quiet + haxelib run hmm install --quiet + - name: Compile (Windows) + if: startsWith(matrix.os, 'windows') + run: haxelib run lime build windows + - name: Compile (Linux) + if: startsWith(matrix.os, 'ubuntu') + run: haxelib run lime build linux + - name: Compile (macOS) + if: startsWith(matrix.os, 'macos') + run: haxelib run lime build mac + - name: Upload Artifact (Windows) + if: startsWith(matrix.os, 'windows') + uses: actions/upload-artifact@main + with: + name: windowsBuild + path: export\release\windows\bin\* + if-no-files-found: error + - name: Upload Artifact (Linux) + if: startsWith(matrix.os, 'ubuntu') + uses: actions/upload-artifact@main + with: + name: linuxBuild + path: export/release/linux/bin/* + if-no-files-found: error + - name: Upload Artifact (macOS 12) + if: matrix.os == 'macos-12' + uses: actions/upload-artifact@main + with: + name: macOSBuild-x86_64 + path: export/release/macos/bin/* + if-no-files-found: error + - name: Upload Artifact (macOS 14) + if: matrix.os == 'macos-14' + uses: actions/upload-artifact@main + with: + name: macOSBuild-arm64 + path: export/release/macos/bin/* + if-no-files-found: error + Mobile: + runs-on: ${{matrix.os}} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-14] + steps: + - name: Checkout + uses: actions/checkout@main + - name: Setup Haxe + uses: krdlab/setup-haxe@master + with: + haxe-version: 4.3.6 + - name: Install Libraries + run: | + haxelib install hmm --quiet + haxelib run hmm install --quiet + - name: Configure Android + if: startsWith(matrix.os, 'ubuntu') + run: | + haxelib run lime config ANDROID_SDK $ANDROID_HOME + haxelib run lime config ANDROID_NDK_ROOT $ANDROID_NDK_LATEST_HOME + haxelib run lime config JAVA_HOME $JAVA_HOME_17_X64 + haxelib run lime config ANDROID_SETUP true + - name: Compile (Android) + if: startsWith(matrix.os, 'ubuntu') + run: haxelib run lime build android -ONLY_ARMV7 + - name: Compile (iOS) + if: startsWith(matrix.os, 'macos') + run: haxelib run lime build ios -nosign + - name: Make Ipa + if: startsWith(matrix.os, 'macos') + run: | + cd export/release/ios/build/*-iphoneos + mkdir Payload + mv *.app Payload + zip -r CodenameEngine.ipa Payload + - name: Upload Artifact (Android) + if: startsWith(matrix.os, 'ubuntu') + uses: actions/upload-artifact@main + with: + name: androidBuild + path: export/release/android/bin/app/build/outputs/apk/release/*.apk + if-no-files-found: error + - name: Upload Artifact (iOS) + if: startsWith(matrix.os, 'macos') + uses: actions/upload-artifact@main + with: + name: iOSBuild + path: export/release/ios/build/Release-iphoneos/*.ipa + if-no-files-found: error diff --git a/.github/workflows/mobile-release.yml b/.github/workflows/mobile-release.yml new file mode 100644 index 000000000..da7fddff2 --- /dev/null +++ b/.github/workflows/mobile-release.yml @@ -0,0 +1,82 @@ +name: Mobile + Release +on: workflow_dispatch +jobs: + Mobile: + runs-on: ${{matrix.os}} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-14] + steps: + - name: Checkout + uses: actions/checkout@main + - name: Setup Haxe + uses: krdlab/setup-haxe@master + with: + haxe-version: 4.3.6 + - name: Install Libraries + run: | + haxelib install hmm --quiet + haxelib run hmm install --quiet + - name: Configure Android + if: startsWith(matrix.os, 'ubuntu') + run: | + haxelib run lime config ANDROID_SDK $ANDROID_HOME + haxelib run lime config ANDROID_NDK_ROOT $ANDROID_NDK_LATEST_HOME + haxelib run lime config JAVA_HOME $JAVA_HOME_17_X64 + haxelib run lime config ANDROID_SETUP true + - name: Compile (Android) + if: startsWith(matrix.os, 'ubuntu') + run: haxelib run lime build android -final + - name: Compile (iOS) + if: startsWith(matrix.os, 'macos') + run: haxelib run lime build ios -final -nosign + - name: Make Ipa And Zip For Release + if: startsWith(matrix.os, 'macos') + run: | + cd export/release/ios/build/*-iphoneos + mkdir Payload + mv *.app Payload + zip -r CodenameEngine.ipa Payload + zip CodenameEngine-iOS.zip CodenameEngine.ipa + - name: Upload Artifact (Android) + if: startsWith(matrix.os, 'ubuntu') + uses: actions/upload-artifact@main + with: + name: androidBuild + path: export/release/android/bin/app/build/outputs/apk/release/*.apk + if-no-files-found: error + - name: Upload Artifact (iOS) + if: startsWith(matrix.os, 'macos') + uses: actions/upload-artifact@main + with: + name: iOSBuild + path: export/release/ios/build/Release-iphoneos/*.zip + if-no-files-found: error + Releaser: + needs: [Mobile] + runs-on: ubuntu-latest + permissions: write-all + steps: + - name: Download Android Build + uses: actions/download-artifact@main + with: + name: androidBuild + path: /home/runner + - name: Move Android File + run: mv /home/runner/CodenameEngine-release.apk /home/runner/CodenameEngine-Android.apk + - name: Download iOS Build + uses: actions/download-artifact@main + with: + name: iOSBuild + path: /home/runner + - name: Publish The Release + uses: marvinpinto/action-automatic-releases@latest + with: + repo_token: "${{ secrets.GITHUB_TOKEN }}" + prerelease: true + automatic_release_tag: "dev-ca565de" + title: "DevBuild ca565de" + files: | + /home/runner/*.apk + /home/runner/*.zip diff --git a/README.md b/README.md index 604cd9c20..8ada852e0 100644 --- a/README.md +++ b/README.md @@ -87,3 +87,11 @@ In the future (when the engine won't be a WIP anymore) we're gonna also publish - Credits to Smokey555 for the backup Animate Atlas to spritesheet code - Credits to MAJigsaw77 for [hxvlc](https://github.com/MAJigsaw77/hxvlc) (video cutscene/mp4 support) and [hxdiscord_rpc](https://github.com/MAJigsaw77/hxdiscord_rpc) (discord rpc integration) + +
+

Mobile Credits

+ +- Credits to [Lily](ttps://youtube.com/@mcagabe19) to porting the engine +- Credits to [Karim Akra](https://youtube.com/@Karim0690) to helping me to port the engine +- Credits to [MAJigsaw77](https://github.com/MAJigsaw77) for mobile controls +
\ No newline at end of file diff --git a/assets/data/config/options.xml b/assets/data/config/options.xml index 888288d7a..d55f9e401 100644 --- a/assets/data/config/options.xml +++ b/assets/data/config/options.xml @@ -1,6 +1,7 @@ + @@ -11,5 +12,6 @@ + \ No newline at end of file diff --git a/assets/data/scripts/week6-pause.hx b/assets/data/scripts/week6-pause.hx index 6a4455cd8..7f49973d5 100644 --- a/assets/data/scripts/week6-pause.hx +++ b/assets/data/scripts/week6-pause.hx @@ -62,6 +62,9 @@ function create(event) { cameras = [pauseCam]; FlxG.sound.play(Paths.sound(isThorns ? 'pixel/ANGRY' : 'pixel/clickText')); + + addVirtualPad('UP_DOWN', 'A'); + addVirtualPadCamera(false); } function confText(text) { diff --git a/assets/images/mobile/menu/arrows.png b/assets/images/mobile/menu/arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..96158666bf9bee9bd5beb023da8da24349f0c9aa GIT binary patch literal 1842 zcmV-22hI42P)hnRB%ZJkP0rTz_$ZC6+kL5sQ^*|qym!)z!gj$MmFo+8Lf6# zD~S{Sb9h;4wd2p)(P$(sa7!W@f@lGvR}dXQ^qATtO++*%qGux75z!>IJ^o_AXAn{0 z_mtYKvWRGC0T=c3Q)Qg^2 z&_rth%hYCgY6DNm0FL>%4))2*hIj458&WUg4lx&sw#qG+JU}z#jZ%69aEfJ0ok)M{ zHp=x(MD(pR2`T;#AR2>cr<6yX84}SG$$Bc(k(77_OY|tr_C9_)@PGpc=y5z#X`w(| zlGB#(M(k#e-r9TN|fuUgIujIyOt=XijdD*FO?|Auv4;RqV`at z@5((=-M9Wt6(PTAJ(P$Z^8n3hP7U(Hai8qNdo@*re4wIBtKK7l?$u7oilL1n%D~P} z$b4^9&UpmO`Wc9kRMK+-7XULD^LNXZFRg7- zWTCv2E^mx6zjkQ$0`#5h&>^3|kpJz_`lZ9Y71>@pFI`?4WB%ya^rhqdHPWMt18RJo z&{l7=Lb9n&;gxrf8**Ec>*#T^qQ}W?AV2m6+CtuifNa~7K=(9R;oOA;xjGT?Yfl5+ z>>pNXmWIUPT2bdNU?k98Y;-+o5fn1FDTD50CJl)v9>E~nb|Zjh$l=2<8T6rjb2Jtp zzlC_k1<-+GXrk{5WO+*6tZfN&t3QBeM7d- zD1-jYQ+JD__0@(YjQO)u+iqQ&RJJhp__}rB0$^s0`6rZ7F0}`(L!QH!zgoBJr@e2* z$dG4RLAxnz}y(~9^IgV+@SS=Zwq67>%*Y7vXg_QQ1l~qgds@>twTO4*OSSHaX*BjZGgmm z5Xqo znJ6UCO1QR7F)4BB3Ys?zZk2l3MHmH*glnhBHq@%vqqoqFUiEKEYi)&VE8+#$PRm^( z#h`icn<{m(^UEczASapT0QR}S9$3G;Qp$g1>X$!dcyGu`DV_p2g-q_Z)c|t*39!p} ziDgI^*+kKcQal21q);n9Ej56i16XG6GQP+rj5dxc8|tze-%$hTN%VOrUTJV$aP@_;?3ntjfF=mYdgDW3s2B7?!Ci9BFW5qXdtSU)^>)Oi4~ z54L?Ek}T{ON0kvc{Hq-J>7Y@46@8~s@0-7C?5ge?X>_}KqN=Fw8-4g$J8fS_x#qJ6 z?6`irBWP}d7F69lQr zKYHsg!$&x#;DrlKGqB$d-ihSIzaQ)ofbA^}l6Ja2gPx@X_@A+-z!8bQl;sb5lVp%= zDPzpLJ^b_HsP=&H5lM~w21o*bi!S^iDUBJynx=0ae%t$vZ8jLnEol3nrHCY~f0Mp! z5VU!kP<3N^Szd2!chKC5Pn`V`k%aSaJ%i>)(3q;{S;~5)`jfK(Kyyov(7#Gh{GAcX zzeNDekD(zEt!rQ(T(HA|=GG>ju*2;7j|BSqxZ0WIf%LB%1O&}3jv=4z4nJ*=44NM) z9>XZ=OhP9L51LyYiV)=Ax^+a705m^VJ?vT3qI6FWps%g_OxZsM$>y*VfxbSz)^9%* z>h=hlpWqvjyfuzU5`$(FYUAxS$!|bl&}@zGAlWP;$pAE)K@)O^fCr(x2heQI#B-25 zdq*UhfM!#?{B{J;Y|XHN->zSk&It6?q*}in0rb@xU%%~!ogrwzdodvbXtu`JZ|~HI zBva6USDwU?_zx-GPWAwIvK_Dq_r?)PV%Z}bQ+S-@?f>Id#=OIrpW(M^bBnOwjWNF< zt1r0w`|U;Ho@`x5SyauFMDo$HHNGL>!q&eT(7+ei8LT?_hk)x_0}Xth63a;bD>pX< zI#1~zyt;!9F88O7@1TQ<{r2k}bS(L7Z@4Rv>iqUy0p;@BcLkRAf$zI|P<4<@cCzaK gAs!?%nAWz_e;Yg;H1piHr~m)}07*qoM6N<$f<-unJpcdz literal 0 HcmV?d00001 diff --git a/assets/images/mobile/menu/arrows.xml b/assets/images/mobile/menu/arrows.xml new file mode 100644 index 000000000..df670d955 --- /dev/null +++ b/assets/images/mobile/menu/arrows.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/images/mobile/virtualpad/a.png b/assets/images/mobile/virtualpad/a.png new file mode 100644 index 0000000000000000000000000000000000000000..7e0abf3be16d51f1f9b2b6022ed5891302d9c31a GIT binary patch literal 23278 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 b4Z!~gfCh6yGR&Rw00000NkvXXu0mjfO{&e> literal 0 HcmV?d00001 diff --git a/assets/images/mobile/virtualpad/b.png b/assets/images/mobile/virtualpad/b.png new file mode 100644 index 0000000000000000000000000000000000000000..93cf690e630786c27c422a7700e0006d08ec3d8d GIT binary patch literal 20395 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 literal 0 HcmV?d00001 diff --git a/assets/images/mobile/virtualpad/d.png b/assets/images/mobile/virtualpad/d.png new file mode 100644 index 0000000000000000000000000000000000000000..75fedc60698fa77c1674be8de10ecc95d3c56a6c GIT binary patch literal 23161 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 literal 0 HcmV?d00001 diff --git a/assets/images/mobile/virtualpad/e.png b/assets/images/mobile/virtualpad/e.png new file mode 100644 index 0000000000000000000000000000000000000000..004693125b1654f341a8337de530fdf5f24f3925 GIT binary patch literal 23562 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 VkB`nIg5UrE002ovPDHLkV1g|02jl<% literal 0 HcmV?d00001 diff --git a/assets/images/mobile/virtualpad/f.png b/assets/images/mobile/virtualpad/f.png new file mode 100644 index 0000000000000000000000000000000000000000..28df192d62f2093f71ed70548dc56246008536b8 GIT binary patch literal 22108 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�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�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 FV1j+zv^D?$ literal 0 HcmV?d00001 diff --git a/assets/images/mobile/virtualpad/i.png b/assets/images/mobile/virtualpad/i.png new file mode 100644 index 0000000000000000000000000000000000000000..3c1787f037fa663c85f5d11a821e48f16b32fa56 GIT binary patch literal 23137 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 z zBmABr_eQ8GD&fkC%5?L>wz%}2DEExzpvd&M45iu{!Y74?}mwOkwILBXA4!VZYA3bt}gDIV) zF$t&&iV*m7$VO?HW3J6epl?(cC;z*_M@P){Gf!f9>5d zZ66YB3±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 M07*qoM6N<$g7$8Y(f|Me literal 0 HcmV?d00001 diff --git a/assets/images/mobile/virtualpad/j.png b/assets/images/mobile/virtualpad/j.png new file mode 100644 index 0000000000000000000000000000000000000000..5e4086c1c83f2d51718ad06f85f44977e41872e0 GIT binary patch literal 22475 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 literal 0 HcmV?d00001 diff --git a/assets/images/mobile/virtualpad/k.png b/assets/images/mobile/virtualpad/k.png new file mode 100644 index 0000000000000000000000000000000000000000..8576c8d6943473780b843909018ca1a16710cf0d GIT binary patch literal 23863 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 KMNUMnLSTYPnB+46 literal 0 HcmV?d00001 diff --git a/assets/images/mobile/virtualpad/l.png b/assets/images/mobile/virtualpad/l.png new file mode 100644 index 0000000000000000000000000000000000000000..56209bfca4e18ddafe3f53deb0c477623a56d8c6 GIT binary patch literal 23164 zcmV*bKvchpP)mA2I*L8sN9mlx}KnU?qfKlJjfIfK&mSv*}4Pj^qAyAG)Xc_?0 zwh)>QngBpa2~t9Gy&$#RK?0hlrI(?JtnCG&U^^#tdFniEJNb9=x-<?u+d+Zn;2M-~9el(949A|{h zo-u_MZ|^@bPDC*nIkdF2XoXg$u%~)y-ujEKyK>Nd z#se=uxLOuE?pQ59UU>Pz)w0m?8Qo9G+-I?JA656*9l5Ph{k{GRvk%M%<$?c4}M3DOu8KL$Q_ENpwU6M48`@7OZl~ z!Aj&11E*g4@ql5t_cenkQujSg5>+)s+Kylb0#sI38oj-}nIth9pEQdcO0^X9SihDc z1H+D|x5?~yeHqJb!<$7Gnfs*H=Pn!0^3?w)VtJwKDzrRzS+V<&{wH~V3lXgytWUc_ zFF)umOIZ~yEiGDx`%$nz4CP`7fE6oND93TWB!u`nN?}U}Pi+G#kw7J4#hMsCNu*wY zw;NJl{M>6ZMj8Slzdgf1^9S6&b)87t5quR@5Rajh`m(O;-v|T(I+XV1$brcG@??@j zuB8A2q+r-_E!1VX>&tB|D*c*YiwIy+sV97nF!XH zvcg}P?ieZSB4t%%x*#c{7_2`OBZzc|Sh;egT(M%sc~Z(3t7pwJ4sBRZ`PA7Ek07Jr zBDX4N{@!f26UwInctlJllutW&=pd=(9uXVT&9c#C=6y4zkhU#s zzoydncIw<&8bGy|M5xQsatR||H^T;(C^F*{#ri{`PgoXdw6wHneSLjb1p)!%(1s0^ zPn!d=@F{W_CWK+4Ro0_d)q&{&Kt=j-`nph|o_rUrRODD)Di(Evmw=~nGQIouQBhH0 zgu~&hnm+oC^|>8`eDgBzqtVjRq7}0ma$N`m_baw`ZFgku^xz0DYHYCf2VWLbzkav6 z|I4@LUDM2QT)q~#;p=xRfYiE~U%y*D{FM)jYyRbb6u`q@`EYu9ZkzXi`Brg5f#s!Q z`+@y|xl^W=HP4xB0PH{9YMWup4%V2mqGJz^uUuYq-Icuj;Lz@dV2BP;d-&0FH7EXD zS@UEg7IsM?&$Y1a(VNR}BWV5rwartR($qj%eG_F(&3tb0Y$z+oF+JEqU?_#IDTrI3 z;?Uj6XJ0?c;jVsU=TV&21K6EMkv;9D9kh_Uk<4&Z)YZ_lYu8s#``F)q-wxKxmmgd$ z*Z%z0qQ2Z0V4gkrYT+5Z2+ZQt=+&)*4^}vk{UvjN+}^w zBDGvesR>P!C?x90Vo(6!5+R8-xmfZ2b_evW8CIgcQ>~`xsk;B=dq9M zEji{Re13$_4}jq~SfM^U;&8*+w|w=f=bzeS=XQ!h$aN=jQsSgI^#U#=Mp|=d8ZtLso`@)ok3%`Ew%{S4iYK9I>zD1F80X(Ol$N$`T zDdqJOP-SKAx(q#rk`5x&4^{*m8+4CL7``NF^mp^>{#JZW97I0vW~v@?RUQt|ExdFK zA1%|X!0>^`gA@YGvUvY*o+SG0{exQ-85xe06(M`NXl!hxy|eqDny&x&_cyF*jY0mG zBNKb7muiC%1GuS5!;bf_UAuWof4K7}ZLd9hW$(^6eVihMlLe~&%!_*K&${pd(_8(q zIh`By+G{@5)Y;paFvFIeYfTi0NvNWJK`J;Yg!rdEOCidFu7YnkqNkG_TCf76aT@07 z=X38hXJOPdpiBdy=}0NjwCopLN{JTg=ZQT>sU@DZF2cYEvmC1+IY2%sEKDvT^=TG6YKmKp*!@G+&lyvu$l|bNe|DQYsr?oYanF>o; z2s65$l7+MkP~2(=by=FPA=v%Ox{ZIm|H+l#?AyEDLlI)AtE=O@OD{({_JGP(*9-rh zb+97KbK%&a7wF0-YWYwY?0QRtmT}xzZ#Sz~uP(HiXkY(wRma9xKTK#DeO7`;Ht(g0 z*q|@^Si%7oH#b0S6KEQif_4+>76L1^y|Thp{l+9thw4Paij zbfE$8{8O8<;t_+1oVu)-w)M^3b|~CFwQv89Kka|~kF&|SYo^D;Raah#2vz|gl+6FI zq!hFN7u2%jh0J^E3xIMxjCIdH&Cw%A3hklhyzll^%WwYBir1cf*}rh!Bu|CE(oVS= zkeA(X3_#mcy)@lIDhSmA(Y`)6)*urxG>-@6RghKnii8VdK6d6*$L@9Kf|I zUO3#%r4=<`dN6gJ*=L@Oci~0EUVfys=V9AKI@$mX$8oM&a>=wcfTyd!U8^yD1;-TR zS`H~)!-lopk(j6Zyw+EqezbGbYZbZsU2wq#)J$jwO-Cl8K#@GE<8sm|-Sy}ollPHu zFW_1hXI;LOIY;&r3WYd$@F2$qQlnzWZ-25pw13x;#l{o+o`RpheXmE8DqhZUON%JX$nTuRJ4X>?moK~fVTc9f4`-d z|GH!f6_ci?&3|CvMF;m~M01!g()A#;AKK7R<^9iEBv#=c-58(BBiN#_(^Wr{EU*z-oOuvoklSZgL zEzd3FQl!Y?)t&oovn)}!@4jC>6F#y(k4dlj*zL$jKQhvnCV(`GxC$~6FSz^^N<_-l zNV+G|vC(2-0yTA%)lZ;l;W<3=%e%97Ir7pI6Z#MBIn=*@m+zwMc530HTRb(mqADZQ zuBAv~?ayy@49FI}=pB2sV2vr)Rxi~m`W~oV`{IjSbkRisg@cnLAO~TX=na$cEV_u_ z-*6E|c~!xHU=6VHT=#D&B|=N4Xcf@c#Y6kMDN`0+C5a1-rOlPdiduI>X$IWbL0>v{ zP(JK4KJi#}xR+%~f>26P-`tEb^)wROUeDgJfQw-U%8}798{T}Axu>0O0A|gE>7HXd z4obTrrq$#eE7zqk?6|ge&mKfHJZt@`J1Eb+gkm zYtmHdYlzvE<@I)oB-Z{MVLbZiquOI+e>q}S)BvnjPx-t0`ufo7Cqk@s(7#!ZW+4-{&M`j`gR~pGK%%YiViG^3qs+(O#prVRj^L9=&PnpI6QX22A-vD3u(7 z6?o5H!k@nKS>`Q12U!+KTMLEALE*X(A|8j1R$kb!g|$0&F-3;ZDVz<^fm#*Mi!*8{ zg4l0aasXVH$V#|XsFL{pB{Q=(DmLaL1F!u4cheW$@sCR?bbq{h@>~P5$)L-MrCkcc zj%)qlxKE4AKD+1G4~{(lSaWWB7rp0w2qjU`&;T(c$sv(QWOd+?lEd2yx`AFd5p&iV zcuqSP&uQmkOr48XRiBp;N!`E9`!b^eCMp2?xp7HRnJr}oH9iV)<9Qk_vEO-)F7)v$J#@BGNEsLs|blQt8jeD&YX(EI^vl8V|--F!WhXU%a}NH}akuML$3Gq~^d*P`c8)n5FM!8)JX5LWgV2vr0 z3dv~C(S3g;ha46!UW|%G2FT&<2;D#{uSRd0j4^o*dc!2Xe_k^lpAXaY;0pxPn>v<7 zUw0>;dwL7j_BW{19TuH?Axq~>L?Gx2g*m$MO+w1x%0=^NHWdvXFm0RXHteLjyqrZ- zCP1K^iPI|h!zX8eZ~%dn8przjxnt!sB;I%q>&Wi3D>0Z==APKV^O3|+eO=6&J)4ai zHl&x^(Xg2Rk!-_#X^B3ip+^=Te&&&j3mr=sW_Hwk z2y)P>>iN}OpQK{??DPPlG?YRl;%=JpP%i;xQ;wAtR~QLQ)5J9MQN=_r^-PG8sSb@fc0+)SWxBEE_mv_O!{>%0gC zES0e)jLbL$KrCG1fH~=8d`?^(dUE9_W-R~6H#coRoH%#EEHZ~>+x>IF}Kl1lmqx)kMo9ohz z8JebP9aaoG+T#IawC(6mqwPlvy6b6jD4}kH<_}Qzj`veF_w;-*OgO}YyN)thh4a#k zDaX;y-f25_{+pe%sy=af%+zlvLIJ9 z`VfX^%!nc#hw%CU2=#Uiu}3DdkKcb_w;Am}_On1u)5rWxQ+(a=0}{ZJCIry@O;a>o zZSnUW*!_?3?vAXTy@4Rp&N>g3%)Mu(Fb9jmpRCXV73dSD<5_S4KVE(&)eTLU9#5JO zlu}uiuapuy)W@@XTXPh(?Kz5Cd-RIh4eQg2+8YD;|Ny=+ZmGm9?2iscKYk10{4@OLllDs4ke2XbRDO7!jCe6BYTsEzjYMqhrG>r{^|TQ<YC7kRfs?(T6y(=qE^!o zz98Q|yB@#KkLmMKUR8}pC@_=B8BMsRpF76V-A@1+F)YnV@Z_FWnhIpa3h8J@i*hVx zNef-tVCXmsrca&B_ipR>puz64VhP9y zQYynErAbrA#x)Ijt(B^YPeQA1VC5&@gEY;&n1dFJo-lF%x2|KfyTl>XqeM^JVP5?6 zAKAWh5oerx0ZXRV0&;XDk*X!36!OTP()TOy{JOVqsINQs;+Y!S`V=`Ns}^ZOX^!LA z=l1X4mFKUWan8BOSj2sYlI;%a2agf7Km~gJB=pHMF(%C58)rA-4+QWBg7^YKOw&XO zQ7|?mas_lkAshuV0nr$Qx>&(gyNs5W7R>-RV!d|lhAv6$Z>^llKZBx}^)PcG zM&rcvBsnPv;GumTqmDBS8_A4?vTZ`0ZR~vW&Es}x84c66?iHTex0}ri&gPCQ&jGK0 zR3ss#B-Gc3b+AMWq6p&M9h!<+mwBrKuTQKBXx#_5+dk88w{O`kfBXNv|JaP{K71pE zMyEIq!m*NruLe5iXsrgl&Q;Xv6Q-dzOyZl1Tt)4dHuazqF}{1@WF}6Xf#LNIyzoM~ z0dARm*;B&qBDxwWCCW;mhq`#-;9F2pD*+93A&?60zU>2i^tC6D(NYK^qZ~kPRu71E zwCT!;Ei?SV?;7QYwcoB>DGe#58<5(I)w^f=^nSsy0TP6Fu_V7JYKrnjv{-9 zVF?u(DH!cIy2R}5{hC!-8MONiSYQ3D;!?2+n7>!f#oOucV z@$L&Luc|2+5d8hZfnAhR$;r%;irW4z9@^KFt*D(;i7YRysI^0VJo{Ew)Nb0zvNPPr zqEOUU_%Wum`RU@_{lv3RF z*xKO@oGaoYMvonty#LSl#JIGj%*55>A6ofu34p$RJAwsw()2u&cF-t#?(Y5o`qa7j z&bgXjyz6ZI!Ju0%Dkm72h2$4c07Sz)w5zSSqV}MxsJ(gNwCsCqTRi$UQq-ob2=laa zN+*aR5I($b>i$396Dwc#0XM64<&{_3Uwv?sj2=4zg9ld!Fhmw39*+?yuw0f`@h=~F zFMo&ynJA-_VU6vBQWBJ6_5Myau6>=h?VC`cp0PZ_sL|belvUdf@vg;H!>&6Y76uq5 zmSyFS!5AT8oyW>ozVw9rb~PO-Qpk%FK=PU5rc^^cyl}9KvLVvpDMfAGv5{{NMQyt0xcBROE6(G#`+qvD zc2tp%Q?%n~aOK(;|z+;+<&Whb99PYD*;yQ?W3qw8tHn5KzUW}aJ!)z(F?{P0IX2I4v?x@Y9#*|{+SLUl1glR z8N2Nw^v33boj~9gX1Te^U~O?d((s@p%1*HE<>yXXa!8?j-){c>_mA-T_unvRz%u0& zL@>E@QVj$uk-+V%w+*{4N5M2TU`IlF{NOrY_fsoFB>Q`%R|gn&plC4bL2sJM5C7&4 zrk&<$uCn??E-Az#JhXER6t%Cfe|suwH*QbIAprC-Oes5wc$Sf1ke47IgM)M&;ijM5 z%L8AzGcVPd1z&)HQ2?WZ03LmFZWJbrXE&SmA0H3?z9R*3k0d{E>+&rby4QToU zZbhkhocNos4*PforSgE1lCrv{vY)S9*$1$-;dJQf1DG~sqschLP;y_bs-7SG^{1G2 z+Wh>!Af@X*gnL5-O_GDLW}8-ED2y2X~Cw zIY`?Qy}i+NKM(_!M!p`V2nHnwe*pjT4>DuHqP%r>IK;!J6t%-f8CKH8aNp&=u8zTX z7zUJ*sc8=!7$<@NH~$}d@gZ8EAV~<|q5a*X*F-1@c7h+Te*J``FGqz$oVHDWVfCVg zTs5O9FKAgUZj8ZQ!PJ#c`;`sc^^34tY{FAsffefG zz=4DGbR2_|q&j!|wv9Y<=pwG1T$AA0jKB>~0(5qbr2c(qy2t z^ov~byIah~FlQ~IVbT;-a$2lRJhZp-l%jT&idsi0BDTOjxN{88R8Scom^s{Fkg31N z0$OA%Io;I!5Pnrd*4sU!!|pHiM?gK{u$KGM(G6dk2A3n&{B38JA8i5+W49Ahb##mLQU3nzU)$_8ss(+wnp zTY%>D(-A`C>l;ofYDcfA6$+s=I*+yD6q^2E$P+2<6=cqhQJRY}3JB8#aujkZzqY}! z+XbH7+d=Eb!V0o7Lu1O^dA#R_cVkr4qLNjybg!R^<|%ySvh(?`zW$RYZn1OICe&r; zgW<_{GvZwHilqGx94a)(-EUJTWn;d!!#`iBSoCt}XC`IkY zjdbka_4ZNJqPXk#kB_;_JgMccJwOzWg9RaD5r{^RrpGO|ib6!gqjN8knum?Ayoe0v z&lBnwic9Cs;Oh5W&)fwI(Gp=c9_j#@ypckqX3BJ$n;Ph8KYCJF5j|~(dA2Ral4ei7 zo3X!>Wv5NSXr4)8OaqiIq*j)`0U6PSQNOu~c;P7;Jr&h_{)0F3v{imeQ9DvatZbcPPAZnUM-DziV^TKIdy67}^X%)pIq9cF+p4s2YlfU^-TGzgC(vbrUC~B>6 zPqt8O2sps9MRQR?5{lb6NB58Ec`2nhtMvu@tkxGetMvsm#@WSCwngIg)krDR=4+E2 zxv)b3tM|5X`1Kcynu^}aYNpLQ4NuCf_W00DA3-DA7uF3=-jMVY2~osUFUNv-gdbit za-Y4JPzoU6H$4HrNx*Nqvk$sIqqbWU>tCe(@S#k%CFi6x&@^st8bkXbLs6?Dp|NXs z9FS7f5|0i_5>E1`ACtuk7Xk{Y1h?M*{K(ylB2ykJDOuNasj;rjZi_@>-!v_^WE@w3CD&oq~hQ96NzJ3EYcP@aVyA z2v(y7^JcpnHF`r`vNzO4Z>S5QMCxbI4~JI5q_uX(VQ&5DZ*gq9I7tBb3J)3`2?X%i zV2WBzbLWg0$)vmE09R4_cu|r_DQXv=aVD3ZIUh95B@8J@Y${#Um4`vBz{r+l z#=XOcL5yNnZza|F{J6`IZ4aVl$&5jW0bUsWXFU{PfL*CrDChjn?RqOnYy5zJQ|kBu;miq^M14tA#6~>g?VhE*htVEvZ z=R`urBS2vb!K-XYSQyPSvG#2pcH6~V3?VdvzJU~nQt5j%=*Zqu%iYUpnAmdgp0!k9tV zF+6^T%|}UcxO>fZ4*%taAyZU_$47O2eRe0b;^?^+kWxs;DHudMQHb~T4!Mm!p-3^F zF@i*;e#Wd{$Z#LAXZ}ccTWh{1!X7(C?UMx*wPl9Jym_bbsrTQAF<}NuH&H^%N_SV) zPZ;&_M~jrARw!4JzcUn zWd?$j)zqc~l(mN2j;3;6kQ7OsL-)eCR)V>_rZ){&UIX;1`Osn`#JD4EXVy?LdLq zgdE$!iuC6#KantVzpxny3j=g79^c3YSq>JYG&NnCnvSXIXps6D+rD9#h}`EtMvB^} z_I7Y|V}1!fZ$+VWx0hfJ51&lw?wy-9q3lFqHv_2kdj{t47!MS1F~(I%Sy@}p9ao&` zeyK~5lqv}Ve(=B(v~7N4Sgc;@GbyjE!t3*q9zG;(q~&B~Fi;Yah;g)Y_}PH*gtxYM z35I^*cJfr!=dpvJH`JBxjU@#slk+PK2PzgJ7Ku=vA~+=>Hg<~I^ekUV_ywFfv6`~V znt^zflwju*<;j%pb``bJf{NNFH*VwVGv;7S8XrY1oPaFGtkX_ME2}8kwGcw^%+dZ~ z74AqwHwaWz;4#gC42E*p8+EcX7{F6U`spooZp-6WunXbcp67%fxAUjG2@{Vpr3 zOn*}|ayrEy*f7ZfK=ya@@rT!P--oVFFI%~*gAwGkTnwS8E%$0v*3?p#NvMvMOm}BA za}uVzi@~QHKr!WvbJ#V4s$!+!xMne`8z*w(k_$_AEuz9;t5M6Q*GE>dS<`j=!Sd`3 zhHax2c=*z`PnxycS0k`Cw0AsucH;p$OoA~Ri-5J4-gQ8Y5JXEF9 z-RX0%*c-Ca@dwCGcb_yc22s?a@uM5B9JfOsw=9Mhtm52vwIDoYC7LLTgl6#cV-M51 z?&XmkQ#bJWb4DpE2T|Y*5|KWXJP8QG<7L9x7qNW)w4(Q^TX@0rq-Tj9OXOxT#uL_o zZS2{+k(mn@fi(t-+LvA|s;G6--3{4kRV$93`>{9))7^t%)y7>cTQD0fP*HH8;;1o_ zEXH5~u0qg)RZL%g6Z2+FL)m>p#~zYF$zS~T0or$M8F7SGXnOt^R?7U~7@!i?iO*o@ z292km%^g?g5A)8%(y1kvhb#zXTL@2ax4^a&=?{fI@IH+_X(Zx&{#SqEPhV*UYYY^% zySEhG%uRRKXJ<_u8@<3~oowlD>;&L1xT;dcL6hk9laS%!*FRE>D2p*zimVVk3ohWt zH(o)djFn6d-}|3?Y1{OdQKfH$reWsRJt#JxfwT(}$MHn%w3&SF+N%a72M653wc`lG z@Ysgo!7w~1B~m}*;(FSN?}_gG|P*QrOD1>loX^K4Ky9YTb9gf4dW2QP}KSb1=8Jx zV@@Yyy4zLM4z3O{Cd?R@V~;3{p&X~=iCVm8Ux8jz$KzWM&{*nO>0_CL&c7T{z^rua z6YF=@&pDl?)9VJk`3`VtbGG&13^6ZiQ4|^8D}*563#QF3F>tE}e<&j?WL!VzbgrJ+ zFuX5PrlR(R$A{F#RQhy+m6iDX8JdxFx;wkwlQG?0ilX+LSIp-#_l?8B6}W;SHCAg0kTVV4N}fl1t_O2Jcnz}o;Rdx zvADSbYMZjGqTcoqnC3%34Kqlo=>~EH1R;V|oN?|2Zt3?@%dCw=QLCE-D=G&BQjkn{ z+u0cmPQG+El%S|ZQdTiCMeUFf zPiR&3Ojx*>PhWl(T3K+&xe?lhA1bS}$U!N^=N=kG4S)j3wW2cS#Taw{Yr>*)T}5rF zJ7g$oTi3r@a(qhDH2i^Jb_T)DUVvZ=LMMQWv#Se8Y6)5uc5#i0-x zV=+p}VvJ<4mR42If<=oEC0xIIS|eA~YKDoo>@Ak=&VX-_34KzETCZmm-*(3a3d^-~ zvlwG*LHOKXUch3@X;hW43*V!z@4bKq9!lk`hk0&L-vln z#5U8#C`D>L5*MR!&gm?fTwSvDFd9Xz(DeLlmUK?ubaw`-8k@O%La?}^cHwl!Rs1Z* zab64=bCq#%p;11}7DccMVVGdWM=k(S3RU1z3dJDM#PFi%BSh__$$aw6Nkfu@1MJZ% zX_-+6Wq~YmkW$im-~h2#9v$|q-UE#k&tgO(y=g`tk1R%2V>5RyzoaCB1XoeJU$0=( z>(7knctX?i^)N%EyH5s+$W+u8va%ci;XWaKlzq3D6*#VAF=T%?AXwU5!3&3alG4z@ zp@1tIeOT}LD}<)8eg6TDZrO;_I)ZAwLLdtC>q0RI!{>7!#PE+YEKI4d1+;=MhLucN z9`#mp?c7N$PJQ)qEQkKyUOxR_D{j3jq83dQ z9G$5ZD6@IO)7>eQs;EU|T6rTz(VC(o$zqfW+0{xk8o?K=<^;f>q2|elrVZPeWOup)IyCQq)4>_)?+I!HG_H1Eni!7oEnqmv0%* zEQXARId=FUlV{IGX|-HB)0K<9u=~j1)`ZZ~m#v#7pE`doKRB|VwqX*45CSbXMO5VB zoBjY8UV=fLhT2*#m_3CFQ>M{4X$qCKb$I<{2-AZQ0xOZg3WqqnXBWG-ZsMiQJLu@> zAZ!(XNkp)U#<>f*_WVUqAZ_IUi>FO;$)QLsg1){!EX!i{?AfjoPzXF84~->=tGCX%1?mp+jsD}&wZ9h9(lxVGiN&~C6i~)3JtH% z&kt|77Fe&y+IGUi#oT_;{6Wbf zg6U4&DrH_ka>c!`Ab$NX#NKsV(Q8eePq3nbAKr2kxBtt2)L)eK7;&70fz)5jAVxAkx{LZre!|p0qX-x{hsGlm#o$%xt%2 z>y|CNWA3CO;twuTk%4k7%B6)P;7i~99*$C6an=HsFJI30zyE#a&!1m#e<>yXJw3?w zp{t#?vK9=JRR{Y|jH0$^y1PI&>o}#m!Bx~wyL1`1ESONbqV|kAkYNxz zN?}PsV&hBWbCTnc#Sn%`pnd|EUVITjpO5EXd4=}%&$D~?`OKa*lYZf$NfjUCUI@}o z482hflyndZv_j*%3&3_H+dD&)n-NzmBLrH~-0Zi>8rZWl4nZTz1lvMO#IVdV`Vuzi z8a=UWf39uw8$5O9*<3w);;=iOj!PCDnis3Tm!JOozjE7W?*ia~2OhxV@npqEEX(3! zzj_p>V;F(p3=}fOlbMVWORdETR@B1C)7@p7qTFL(czqbYG7R59y4$fW?05_-+(&mP zLUb73Q%X_$u_QT^q^MmuFG&vB*Yd$%t-=|B1fW!msf!^zKK|~myQm7dX1W5}wKCfN z`-j|l=bb$E$Ro5&D`)MV-eFY`vSP!pSE!W4E)cyQ3~?!l$5XeU_^pUah$bM^9VHNo zu_LOnvDaqD_C17hc{UN}jb~PIarFxPRdoo%7}Au?MYW1!M*EmH=QJLB>@fhAFJBJ8 z55Dow)J~X0w7-u#?|YKOo3D;sVVRS~fOIBf!~p?yf)%wRO?Nle)^g#TsZ5wMjfP~p z+vhKX0_pBOTQ~8-rtNfe4xa8#Vc3e=l%zVN|E6ZuioX2txD7BH(=3J-tl|^5d^}AK z;95dg&zit9rY9k+g!!)PuebiZ^4?)b91|r>LzfFxD99zm$RoZ=W*MpqMbv??typ=` zrlYe9>+nH{=aX6YzTN!rfA44J{Q1<*Tf~w{)#OghIv8|d{gFTWd1u;Afftg{$Se-}tjn4;EAcV~Q#lq|^o>2&v`iClZZS)6wExztW* z##dH`N?M_M0aqoJ?q0BY1M6RUjz@~5yE9R;qIS^?7N@=b>|^)ag4@6UQ=FqCP#Kqs zvC3iy!{oM4eu7EW`Q_L(0m4d{fUpw@bGShuW!p$=_%4QK82Iyw)~bRPrLwolAOa#pM1rHXPN$`iokx(JZABG-J#B|s+jbaj-FkLhwv1cP zpUZGa0tQ@;wcB>FcSH5eEPC8(aPNWHXOG@2i9)i z!{RB;-2JKd@yYLYjcAtdT#QE+Lq@}>_Cqjv4x*x#OJ}*H{lc!p$3;<_N_S^Z^H(_C zU0+#&Ryzg!!=I2yM^Mu=fh(?SA=KB)eUGosN_RtvirO?e6#kO++Abl?nNWwL6as-q zgNB+)9{Bsuaj^Y^eEJ{0fpu`l=v|KyWid1z3Ov~EgoEGEa?EfDS=l$~UDsU~`|~gF z_N_h8He?(^0MB+yI@^v8v1L9w`uf?mc_UR5nlZgTI^r=r;a);<8=(Y_W#NQ-d1B8o zqFwF8yE}>Z_tMtePk$tWvJzmIFp0_tq`9)Eox?9Z$#-{eVb*D+KC~6S`3vEFBCNxkK zPIo)dq#Q&%ibz?XN+na=$#l0&E=$WywJhyQS$PGs<}al7)wNma?vfR?N)#PCyZuN9 zpZoX+dHB&s0g*R~(@~1%`da??hu`M|U-)|xJJyYkB*rX@VaGYx*-L}J4nqvEOur?0 zV9kcCL)w<*rM#NMT9_#^G-T5%kwAurAA^X*;{5vQ7kRzUA<)>2Dy!r`M>ke~4|U;V z#JV~-($Ph4Umr3aDUA%q5{^yx;r;yO@P4$w%e=YhTt2h>lHrkr>DF1CvG7dvhRN7R z_KfP3lu~)~VhokVC*0vsE?PPf0p3Vr8HHQ6Sfs=TKiac&vy&Ap?kP? zdM#^rhlaEw>_}+DGcEVF9c9hxClG;3v_Ls35=O-%?2m;Jwl(ZIKE?|&+(+yBSNXAF z4mpYs+?@EO6RWYxf|#0y$K%1X=%P^*1gNZeF<|sr3~()`8~^w!f5@0>ZzLFzqE3EWlh_-Go}a{!cBL_E{oB*YYV^c>nAd49^Zf0g)I4h=MudB5klcG zE$@GSOtUN>Nm`VE7N{hGIb>8j*4;6h(?Uf;s7MHzbDvIzq9B=&(J)8Wy~>Y)JFYwj zy#9hDk*YFfmDiwW6hirrYcJwsPyN0mH)F7E#>2$`Nc`n#)OF`Tuo9tZ$4ybIl*Af# zx*Ot&Lh0`8{i0GN)7=pQ{V{gLG&c3xY~PWe?k-tTyK!S$##cyD3$W{G2XiMDAJw7@ z0h${9%->@<7DL$|-Cp(44eTA}kEb)d|q&pTwx1IEm$RCl`DW zi9~{xuWjZXOPAvF4b1bPl)^Mk^qNNGC(Ni{rG=y+Di-s z7n?0_tj1ypj}P-P-8a)!Z;S6s-^1f!mc@2vpM zAK;9OuPExP2Fn7hm_HR2i$MlKXqtv;nuxN|1py0TBtc3u5afLy{RDF-Hl(fjGw03b zn?L(+-uC-D9k%{lkL~(BIX?4cEBV z#J_$0Yc$L|i%?%TcmDi$BsRS=`ZVWQWHE$cV$N8=eP6r{!!!%leUMVp*X^c!DrU@c zw^0&&WqI3XH?ASdg4}t{<=ovgnFG(S8f8@WB!xw{z>o$xO?fmft7|A2L}I&Bvo~{o->1=IaifFqtaUpjdK_A=_}42 zQlD>{CbcR7iA0ta0ia@|wXjB+#n6p{neAeRvbjj#N<_iN%uXZb_iA z8Ch1&!H!<6{_Yc!?jBo3?M@cYo6R5p`a|6CJ%_~RS4U+|sZKAok*9=kg!XFo#}zV#KM>lMz~=f(7TCH@s=+ zGLV``NA?f@3!4kW@Qm0lowM-FqT~Q>3K8IQ_dm;;MW-DXMJ=S#-H)GC>FzO8)Nb3! z;_1!&{EiRuiEnga?b|Z^lPPxnW0A$s8zuvV>m&l)_?`bG_Lrwni5T89E~6}vZCbVq ze`&+NlO*x!OV8jtd$!QMZ})Ic^Q1=2gh?!&Qu;(PVPSx0;6)Td(AV8P1{3LI&+ZMw z%VJDyY$&?UQSgf=UIg6YH$*?g(kWG}-9NsH+7wR4boW>)YU`UP;l1qIv5{COF|ygc zb8_e^)I%g3CRjcYAj>3&_#4llk~!e-U2|ccm9cD61?vx%7|j+M!s}=L;`4Z^06}O~ z^)$?!$FvD}i)y-3xHUD(3KmUxPx`$jiz_JqvnN@tpExPMf!t})hCXMmIs0@1wSP^xvy~m&x6`q255n}gTK9|QBfS3XeQX<$ zJll}~$3arC$b+gtHexT9CD@hT$nd2E$c*C1V#?POF1yb*QsX=lO1lax5;d^A;}OWqLqK zmNXS2Be%w*Qi|s~;>c)(&6_uKbko`q1w*w!g?mkd6gklX70g+57Qx!aVZ|K!F}Zen zZPqd&1c!F*#M(RHd;aP(AHq{nktOK)-K{OWXY*?~oyDt770O~Hhu@X_(TE<{&Ch>x zFO6rO$9I=3#+>R#+GDX8KA$fw@~L_4&nN-W87}5Ng*Z-%+P4aZrKp`!gACTV#g3Es z>2(+L;m3bFW^Tr)vluE7!*1P=T|zOByg3p93}fg_MlLdj0)yo88XeFF{}N~IQwWkP z>V1HZB@@r*KTMM&Z@ijK5*{yFppx3=Nla^Mz+cmV;SXSVeF)P;2n~|gs2m%+zmLru zH*##t8(EfAWmPrH=1m@Uk(V+oh(_I7m<$9b@A$?2S(bq>R~Q6%y%|Jo7wbF>&4o);q*ovlY{oHBJ_K{D`Ia-gyhhJ5iy(2n8Z(^s6$lanW5$0K-y6=+^R z=sH3-xV+jOemo?af-Ie0$Lh1r#IbCIrlIK?OPYd+vf%InQMe@f!jWz+t*Qo(Yr^l@ zv>to!rmXGW`>RL!!>4af|F3|X?tKnbpxRX~hOL9p^{lUz<`3}apZ%cd=AE7Sg;Y){ zYV%Q&qW0>m@nsOdQVP@SMXznd9s`0H_jxgLar=Ew^M}uWG(S)|y_U6m4h_$W7*FI> zG|Gj7(p>|?!&Nh~>p2fsL6?Vk3~6{dcIXg)chB$g=HyJQe}Nl+YVgNft_1-%-TOT8 z*Plx3Bfv$NjQJSA23{*6mY@+5vdHG+(f!Bt`9`d)v8g;n*u`)5ytUWY5S^ z1o7C&qu@@*5k7U#ABaaH>F7JSN4<1P%^;5MDY#HvI~rgfcyRd&#_kVSv!g;g2%%F4Kx%DA_*7)0JgsKbD=EfQN_;{*3J z@Vnbu2F7j(4H>NApa?Npg-;$=<2WO;4gk2N;tk4Z!)X4?xTs=Nl6l!)EL1eo_vU2 zB?qt4JVZNTVbCu;v`i}ppF1}LFz__OUHstrO{{%q8W-(kUuX*@*IZj z7n}Rx^g#xbUjL1s5PR)Oh{y1qeL2b($TCY#DQZWksMWI-wc(zg;ZLM9jM=@13{v*@ z_fuUzVBQJC9O$sQowG<9FHI7?9sK$;A0k*?jZzBT>tp%+={&Uc0JSQSHJ4-Rg{({r z_|Imcv}uWOfNtTwh+gHAUg~(MFF3dlAt7|GZ4S68%+w2EY0xoqX~BXR!BdMutoHDik3Hk<61T+XCCBzrVj|6C)jq z(d2=6Jf59SP2&1*{Dj2ot0C^Xr}tccF(PMx(6Y%DtUqu{Q9Eo!ZH@tU>tpNF7J(M1 zz?iv+KYjblbhNcm*VxEA|LQ~e@tZ+r_s&E~E{0`U>5eFTZmKPdBua#ghDmIEi4T0U zmml786O(7pbqkAnyj-_%raPBHq|Y@WJznsXrStzd3FzRu^~~6=28H zU#m2{K9>TBP@X+M1F@*xsPS-ml7oE6}6?!-&$ZSM*h^-Ifz6e*tU&h+l1{9 z0kTN~1}}fPOGP(Ob^_JYi4*EZNLjeNzvG}4DXvj$os310{oTm!W2k6o+z2Skl}I9s9FlIK z<2WP|g)J22IKrbD<3Bk_#}Sw~W8i-w!0?_@)RqVxc;R3-mzEDGYTx(ASFm?)%-c4z z#BQp0%2G@BsSym;Dl02XcQ$Z4Tr3{L2VfXk9ko!Wg~G&i zZdk&sg=a!?+VxV&BGatT4Ep_lkGz7lYa=R08!(zJt90 zL%tl+afxEweyO!;OeQB^XIXZ8TK!NKYX&W^_N5 zWkC!XgU~cB-QleC7uX~kaZN*?ku05+`eKe2(!uFCO!URWeDalt(E^p|6Q*O-PeN4H z4w!hlj*3T-U2WJ$_9DAl-2x*g$?RFj1DWIy4u?o2-2YS0$sFo=2tlm>NSJ|ix6p*H zfPG_mo=*E=uKUrwJov>=q5OdXk^nB9T2oS$ssGzhTso-=yQ_l_e*eF)c5W>C(#vQV zhDhlab2){kvvTFiEP}8oaln?9VV%!W;c5K>w z3t>o?D4E8Lgu}!N$f+&cLf4CD3xp6<&bTPl($b=(I)-xj_03}YIJWHyZH7~Sz_GD5 zui=Kf8@T^7e}%$uNkRxXrKl~as5Mbk3!4t*pZ=f=D5u}LX6h;QqFtKcFXqO-drQY*Ukq+T+m>7$79pkd4 z3k^G1FO5*UW(VuNy^*q*r?N&Rdb{#I7>Q8`ic%zTT~7xO-1QNtszphO@c4M=>C<^| z%SouHofL4jH2##LHsh8kl~mM5S#@v-MeU@NqP9G#sLg0cD$oQI(>bGbsB*QlcR~=E^redPMRPpXUqj?3mx1&xp12r*4Ta=Pay-T7kxZP z)^TLf(VP|2<{tdW*M8z_+r8H}vAI9t_{wGY=oSx7U6e`GZwPT|C&tE;OhK?EjDdZlgmUSIwEnVznWHXAFZ z8FpN&)cb3gIe$a@8!ugvyU(6Id#G)qf$dCYP|#74QE6t48Hv!>y(sP0a=7_=j0He`g-U( zyq{YhcnNFgCY+ALW8y*#nugX5G~J-Dx3E=GK5^-VRhT{-GF%K<-w1GrFpLi> z+b$Z1IORsX^-ye}mf;U5t*q=t8Y`=h>_5;ywW?C~MSG15Vf_n$zz?2VWd+ihSt{B zg3Bvso!+l$`j(&->FkEoC#BLTx3%iJX1P<}vAbf%yjbt9EqNOD)}u$6IAKD;VZ*}} zQQ_Fw`?nM6ILf;>y^QDFt5|vM*$^lnoG3~_*8ZVhZv6cV*hlxFSJ$JJm4oIgYGqG{ zYt}1SFiox;CvP~2FvN)sxL3vvj&qoZ)O@X8tULyqR`hIqLi>u-l# zp;YTp8qT}ovF>f_-$Q{)Q%8>;W!9{jgu{_jB=Hu2&+BE^uA;RQRMqSSn}JtT3;Loi zN7(&_bjn3oA)KmN3l8`0+A=G5=VQl?v3KuYnwy*P_{;K%VkEJNa36`Se<87ZBk%sp zqBKz`Us?JE9EvdV*DF+SryKO!@;cV84R7Dlb-74AljO7L>FFU7jk14#!D{rXa?XM+ zM%-@qY31Q(Ufh*{!b-{(Pi2i$D0+SD*fD~^AWcn;r%2)?hiRC!wzhHXSm8n#WqOSg7l@IM6K}`^~DE^Bz0s@!la5@x1=9XYXE&WY(pzvB4#Z6mmM} zu#k*TB)0yAcRt*RXW>OW@czr8aVi*Q@h^7Lwd z_dnF%Pgz+RufF7m3~%*FzJeGHUYmXuqrc}xdFIy@|EvizJJwyc~*p#3`W+~)e?zB z(j!Mb9?w7r&9p2=VpVjt5qs_dmcR5cT6r}_(^T{c)6lBwvIb45L=30%2u|xkoQ@;N zNMC-i^6i2m)u4cZdz}28NF;C^2angw)@|F0?l$p~W!seDdD_+kM_=Cb1}1Km>|#gy zMB}+vyu0nSX9`vcO?A9emc+>i(=cgoZy%H#s^%_=luw;?S1Ijn_>Zpv%qeS{l!&w* z%IhziH^0e@88etOXAaa3en%dxV-E$TkbPYw`nq7py3+O;&GCkUV~=n9BS8@Y zc5Is+J9l#QNMQwL<;>G!>(0~Fk{B_f)d|TIQ}pVlg(SV5-K8s0r1yPa3)>yj$hAh+x%R5;llY@+ic$(;@pW@ zi`0zkKk}u`|M{(N7s_z$*|Uc|d-ibo<(K34XT&o{@)8vZ1fFyl>+^J+ag0{U3%EUyottO{Ja{?Makp<({9LcFhOw(>&gyV>DV@TY35A zSBQj59BY0G;{wNa=^rh(@6jH^z^W1%^G&@+*yYDk#z?MSWWYPQf?|gxUw|zBp(ff2IXGl1Iu=CosZ5uT;HF!K8%FD|s zD=SOS%XkXogIFv^BoZMSjS`7O=<4bka-XToZ+@n#apJx4X!MV%WlbObM($=_l5vRn zUEA24z3!@ME8e?f-=p`=W`HQNEQ+H?j?mZJ%fyKjX>4e4$86~Oz>AQAR=nfq)>|02 zY2Qu~2t8RAKouFHZ&I+BQ7&XOOf(v$qob3}n~RRMOJnNtmN$YGmH+4{iu!D&$jJoo z0&sB&+oln$sG!W}!?tY_qbkcjOh{RH)}irUK2GptlqO5qHXg$u6b=`k2&V|9lIa;%M5=I-p6nM^G6f|M(w@t&%xyq{t$J zBnGUAH}Cl_09{>O+bSz7D=I51UyxExi^t=Olv2~Al+BLg)B&c(g1z!X#2QC2W zaLFQp%V5GZO_8x}I%SqQMVx7xsp{RuYG%GAmRpvk0m?K@a;}fe?UU6Wz&QZ)578KEMNw%#cAO7h13^K0twSJ9l!$^$@`YNA2R10HL~wh?#!uD zckBI&jQWd8*Y))Fr7SPjPV#(G=QmV4seMGod8e`yndxGc@qfBsXqu(~q?EejI4PpF zfqq>5!V9?8!7r-=m8PLAXJA$t&CqqJG>?)>Gf{Dg z)o&Pj)X;78SbC z{RzyVvJD>sbj`7qPzfQVEgY#ZRYEw@Qc4MwQRZNjNldS!-19R~2~#Bc(Gp!gk1Sea z%(e}$Vc2nCQu5~W)G)!(X!1?(UaO(cY^8NyalrL9xxQ3imB38|8Q12k6D z>g`=!(eSY^r$=fPF4o$j`D)LstF5dK02~Xq*$sh4L(_%SG)>x;TY2qRxXo^=Xwo!I zlSg~nRbxf1-qzRYcnm$%d*F>eSScOHp}hGUHMWvvXh5h+%Jc1S(-AWK zcbuG6z5m}&o0;92?IoLS>DhDwF$ukd(1Hs7Z~>(SEO=E^#0m-ZVymIx5iUd#u zBZ4BKh0se90_n*n*<@38vn9K;vpapB^84eNnVnv?gn;?*%8S{joTr`hJ>T~E9>Kr> zKtLcC%`~%;l>jVTwv0q*nua7v0E;zEI~PC@gdYNOwY8f1P(8Y)BZ?x1U?2zr7(>@l zQIU{{Tpt5;K}R%1!flz?K?6WE#OO8yBkp)X5K^}Der}K4r;Z-I|L}`8|LO718+m38 z4G9SWA^MIG!tLwk`}EpdqC8cc%8`&0ukOYZ^wPqvk>1;Jq=96F2fqbu zf{h8v1i2;H@;Yz_@FKAGDBn^pgIo3O)S)*zYndVKH0*u^2d4*YzLP33c)z zp`CrfHVV~3tXR%cZ-1$k7!P0zfm(Vy1(Z zvNUP`lAD%fJZCJh=H4}Ws_Tx{_M?S0_pZ@XZC}l5J@H$tWTnoKu*geL2*WTj7VEnH zIv`guj=h6>sI$~ZcWQ!$DynFL7McfVrnyMrrktjG; zvpVkYu&{_AtFXvdgIKKV`s)sdLvC;HfD)K2O~EU8qe4LyL(%S|63X0K7{OpL&)fKr zBSvNf2}ZX?ep@US08}G{CMZ}nQ)?><711iRqN7t%R3Zlgf!AY&%8wvb6XhzNv1 z*I?W+evd!;x6N)#IU62FW<=g;QAtts{mpHjE5-_rB`gsmLL*VTh!GZP1w}prVzI94 zuUoBFxqqOaf&v?*{xZC>mw*(A6AW;C(2oTy77M{(F#2vS77MCm3gL*5s5Gi*4<16d z>XbN2WS83&DGnnTr)nqH?UBFVkL{_R zE7kVIZRy@a^@nr9@req?`-Xdvh#-5zN_@jj32?-45}ROyCh69ELtuN#_8 z>^*dl$aX>UXEn1NqNvBdHvvHx5LAPqSozecQ_bHc1Vh1)m?$tNH%(T-6cn-kiFExT zm5C8IE8xuPQ$?9d&T{P1yrqdcy znGlLa(VZKdUdLQVZceB%!rj~^+{1mw&HHamdZsbmz8~(HaGwDX*>?~38DBqio$!nL z2MvI)AG$8OJ+aN3_unW)&L0l;@7ZskFm*y<#rOtOIPdLLLj@sKu_*f9mc0~}6zNND zS_1cGH#YDtQVgj{md5;4}l;OceBK95f>Pz%IxCv*br z*|4X=hkDrn151z4GtEg~g^DT{P~ex5LjrCTWHyg*6Dlzz`z80YecK6~Mp{ z#5gTO4FA@}@NWThK}1#obaY7sT@SxGF?_s^E{b3rrR{=mAAX?d{i}Ki zJ**YzXrh53#%ovt8X-j!bc^2z$Tq>MI)tLZO1*khF-6Zgus$(q>ZHLFFFMh>?d`qQ z05!!W!Pf59prhEK+Uz!ca?@lr)_ECed1W)Oa-~lAUL!qLXr?)?3$A9hzLce+YE{oI zv=z!b4)36`U;=>IVPo*25)KAfH5(HLCo%uX0v5hJpPG^y>=ru~#e7atj5mz~!2q4E zPF_0Yb(jpZ=g-D=g^X%9$Kc^ty6EZZqw?}{?3jLnZo2S3=EtxaSa%mt@=ZH-im0rv zVsiCl7PTyjYx^H(JyYBo$&ciC{2@ECnc33jyd9x)4QC9`p|`>*?%S4F`{Obu7pK->SVpq?;U@4`+y)Ap?xy^I+s+uZ2 z(RmpQA!5H=&gCh;)W8J;-=0@E@2(B54OALcN!r7Q1ygY;v#9%2 zE`0r5YD#L-3WW#^!(hM|p!2bAg42eCWDh;aJwu~ityNPC2S^qQ3Ht&~egYf)^wE#p zp-{BUPK`Dmt7K(D)dcQ(^+(*Z@Lt}mc`dDwh-h>HDS%b8Vo@yAhw3?O91g~Y!Xg?% zL|aVNRx07(>UGJXU`TWnJDi(0?6~;}9{b5Ic3McI4pdfFa@M@Fqq#DWoDi3)U!~ig zh*U{r@8|Yx$n?CqB9b5n;G~Z=YhEIi@LkIrrR#We`AIDN&;-rQc}UYS-w(t(04EPjrT*{Z zs4l9eq_6}@FkiSLDOeS2Ml&H7`0>+r{{j5-yqO33Xd(nv3#+K3F1l&ZJIGyU{e(@G z?q9~qz$*N1%0?ORxxiY|(m0RNc5t)*l{2ss9`bMkT!@z`H z?D*&7JT@)y9;{X?=bUp6rT#L&B&8(|h{z!McgU64LGb0EV2bfR)#guHB@{A@!}zXpMez~ zi~^m&WPh9{5P>u(A^6PesN+LNPdET5;9S*D#j*-)*Z?RhEaHll&FuW#j-1TBU?|98 z4ugcOY1+9H&!4y!u=I5Fh&H<|C8r=!bBN?MI5#-GPTY%D^X#hiyj>iBmcYp;FQ%@r z9w{K!YE@X!DZu=p4HXHPUeH{p!xEC0m(FCAcil9>FDQ@)5> z8Du~l7!m-Hdq`s{1e84dS+R7ZSa(J`8q(3+p6-59Z6{`bKJ6!-#}HR1qKT=ZibwWP zNfqOZYFRLKA;0VTZCtafd9G$3dpo|xH>{JJCX3tO-EILhsj9Q5N4#lCSV-J>qZW-~ zL}rn_Eqg`9qUcLmDn8+TqT8-gW6`b zfjxPfN)%sFM5R`VRf_i|7>0pMchT`!r|CPWO>Xm8hiiqK z@ymz)wpy&5ckm+q+_WO@xHuCd+&POZ#dst)+uz&H+@`rQpp2`UWa;fcsK;_5B1kkT z0{(!wcf(#h1SkHDKW|7a9KJ-a?Fe4kn?%wZ4U;tKxiB>&h{;q91>>SQM}2#``$^m$ z%yN7}`_bo3+|JOuRgFl>y)CL$sG>?p4DtEXzQD@ukKuFAM$G zQB;xroEYf3j$3roea{ixr<;G4Q8d8G+e?YX^ZF(j$Rby$R zZ8y7F&)Vm9(Gn+p%gV~Q;Dift(r0RzkVM)`%+W}9pPBkms(p#uB7c9_wkPh76%>g= zBQl9wHB;kOMU{Swlk?`E&(rJvg~u~Aj@R>c@qA8tZYmQlDY8_T4Gwe)>Wh_1{3*811+z);ns3^$z#vZhe$spCt3{36%4T%EIU&~+Uj zK00V;`?EXPyM8b3a|X;oo@$^g;C(Dv%h4qrwLbWP6%GJuRR}-v&o-`jT-@L3I3KZi zWbdCQ{(v8yV|5e+n(CTlh!+Nak3VWs1pEOp&=s)h<@!Jm&R;#t({+jMeR{^#=z@-0 zaYqG%Dutq^Xlw@_u5kEwMdba(zQ@GTYt5Z=;Cu4~0LLvl)LR4fLsk~^0kUoq#R#3o$JL;$e zq7j)`r28f@J^>Vd(Xco1Fp|-`Q>tu{TL&uAUu6ug$H~CB_;{1%Kq(q>}&z6l_2!%o@N{lp!X-mfd!9XyppkX~| z#k!*ax!r<%&;q+KXTY)mo<=v`at|KKja9cI8w%2L16@p^RgJOW=vmQ6#q!GR2PPmf zl-SN8`PH{x{NHklzO07S3dN!%QKc1&qPK2n6|Go(``G<>Vw(#VEWjsuqrw3=&dtdL z!*nQC`>Lt(SEFd=xEZtz&}Z$%X>}$E*j$i}0j)}*Xnm1@6u@ciW7@Q7Y}~jpdW;vZ z@b-oc4~(Py`d}zj7JGhFK=?g=(ZCSBgyyc|sZOxBe+hf~Jcz<}wlCcgIOms1J{ zUDpYS0s3*`TH!{m4w(^zb5gW548#eC*z028VUV2>qsh(6#tyoJv4K)2?GIolw>K25MfT0)|qCt=lDgk=J|G72}vj55s4i>f1QP@sT zL3c*Mktie*-*;?6S13)I!asT9(^qiq?OXQm_m8ivj5Zb(5dFRV7C`Ud;Qt+_BW3nV zq!VPV+Yok0e&gA%Q&d=#w0lq+r1O_Oc+MP13Nwy51Ox9wLH@pDWpvXvwhrxAfN{yE zndd@4_S5R$P3z9x(ao}^P#!2}?rrm#J97?2T2Z{f7$rfWR)q+P!Kj(x@uzkir$TJ? zY=BmFEB*BT)=t$8jirsY1N#r?0167Ih>g{a;=61wILN*q9w9#TS!5|nDH8JJsMyiUcC{PNp$QB${NA%dB7NpnR%dW0nti9nK z^g5lB=bS?QRpY~@dO_)z8ThLQ%jH%qqJm*H=%x$LlRl8ax}$)~Z&uOBM6B~I1b3RD z`ye6udz@@Pyq(pbTSIH{o|L&SvHqtd&0a9auB1t*qRRBLCU)C*$C(*>*`o~N`~^n& zmk)Gy+8V*n%9T;OK^Rvx$+BbTKI?uCOi6lKx*V@cMqW%B6T_<6xb`>KFurVj(!PKe zh!+m;0}AvEbb(<&l|pnEcJZR|94~Hv4lonEX5T)SrPG#De2oKLVARcz9(OWvDitI{ zLQg2SU|UlRhoZ`Op`R*w?t>^C zV$<)>dg)Z^O6#!O%s6|j)|QHoGp=YHQ^rr`qIWN(52wk;5kiPYc$tS16}3d=(8l(7 zKF&n*f5G|ygB$zf_&9coD8x>EMLi7_4V?4pIlR>J5`Ver(X?7cuJ1k3%+S$=7Pg;C zXtCW^U9Efk{vgCSDN8LD-G*GVp0}$L8i|Im2;@Tou2TD&`VpM^j)wLKsOm{B^DjcklNWFzm5LppV$!{IpO zI&eUyxmk>A5Sw1y)aS+jO&6}54cv6n>bw=_rhUPFd?~XP#}W~zB$x>$Z?(LARIaN^ zA-W5?cvAlx+wW-N>}gA=y=vU3X%laKW*sDn^W1TS9#O-8W>um69VXbtmi894z+RxX zcDL$RZMmxZYOYVYh=nF-gv3x%>izqsHH3Xb75)lpytR}BODPGKGVYNwtcq!liGoOx zt%#C>5(+E@6etCh6_#OG4J_dio336*ECND+&K2DR=OyRVj77gzYeP8K_aiScPfG#>E0)b^#MftCgs)`X4Bf=&R?PA9# zM&qGo)h21BQ5;&|p4Ndl+K31SLkH~v=uvujd*@qh32Ykql0msbFa^c-;8t2U?cp;0 zlgznp_OMvba*q=ALHGlHT1t21d~P~YR447{xFpw|C0dC?R^*}bWLq$HvTb^*bF7+m zh?yDVdl)l>XZm_i1Cw3TnDO`&%I)RYt#*oRML4Vu6iGo41Qa>BZ>5^7A}RV_y!7E? zaE12+!^aUtk&jIJ2&Z;12pDxk!-iD1VTCi|TUvR8o7w6Qo;x=FA(Gm^`2*`eV^d1cKXoz*V zXzgh=%l_qvbX5KM>Td>m+~XkeyuHt&qff7z47s8$q*4?6(kjm}O#U_=CjuIE($D>oc=9ZnhE z1SpkCDW#N}3u`zi9>BT2f7FCTL^#}c=kMw8wwq7$K4}Z-(BbLe_1o5R{*TYi&leGb zam%ZakkNIW4OQz#<$j#>S$5yF+XDEf-8(JVOtZ0wMUavvXCiIq%7$=$KvVxrE`Ibv z=GM){ZnNi{*KwSW6R#RAX=m!0C3=G3y{dYIfA+#T}S$(P$;?2-&6x>$88F!tUSxAKYgWRJ~zO0NA zy#z#XdYpNg7eLA|HGl_?^xm8A*;Z~?=_agzO2t-y+2L{^IU`%*Tye03Gdq@W<+{r# zbCl(*DFnm-PWtG3Hf$DTN~VkOajr;c=R?HDiPg><%X9Jyfft~1Jjk+^8iNU^bU z18a7!;i7pLWjxM~gFgC4=c0naz(a1<`rd%T(P?t5ph_WLRG+8dyM=t@C-YMai4c@6 zEX9EX3l{9UBRZg7+x2Q*;VmF#syvvymEyvh!j-HX0GPpCoCEzp!W5k9Ir2!HYjjWK z>ia* z4x*L>@mKrkE$yLC=p|?bafrnf=miw&1<1=Wb6et`_vrF*tV-rOs(C|?x*Foj-j6!E z3%mGv^F7?M^5(QcqW_+O(cxYQ28SN*V4Hsns(kF!%glxWtBYs7|6<~UU&MC3nM4%} zf0K`Z7>KKEy{BsrZAJTXzev`q@&=MDN7q46hi1!>yLAny@>TPNKYc!>a2P8-j-n_T zL+OLwLH0dzfR;Ti92z))fx+a~X-t^jh>XM`e+PSLp+jwl4&ZR==c?LQP2HqA>ZCeK zDWga$!g`%@RQWh=e}1NBRv7U!N+b^=BZgba`an?|cU^fm54`lpq|V{TkH2Z;8I3vy zsuALaz0ZFj%kev{PIhhI!(4qPx?se0CbcSr6K7OF=(^66=l_d9{pdZXfPm@?Do@OR z27nD4qt4H?A3f2*mCnSlhaBAS+v_=@@r0!B|9M0Lfm-c*!%eXl0T(d>Bc=2haM&(j>(sAdxQOITQo@fL0aicl|sDaeSujkW+LBU z#A^`>46JZdbFDdJys+&Bwv}(r?*duGzkz|Eh*4pn4V{p4x#^T9h5;vcoyI9sPDx&9 z=zZqnNXS%+RioRe03M5*mf#Lrc7zky45+=cj-?aNW6HG?M^#Wnu)nu$)Y<|}0Wnn7 z8j&&f_fK`DHZP8>=o@+G5DfPGsg*ZFujNidPX)syS6Nlt`?9V}pS6!JC3VWIS{))F z2GDh#zkYEgebzi@jPTb@7sW_+P-~HY8C|{UoSqR>`^M4y(kD_zvb>V_eI@H@sC4VO z5#2@v0Xn?xJih5~toq&y^gPsuVHl=!bOf;IX8+c8ogLTj8CDw^t%8*+byk{e=bTK8 zk-(-UGbeRjPg!FzA4E)x=l4CAvY2jG7*Jg}j#&+}nJLdfMC72pp95MOZS8Hi2i-?) z{SQ?Nv2N#DF4aGt(#-JSp+GF4Kr0;9J!yi5RZH#6l97y{#~DRbYZhzOH`w>i9!}ix5fJPQ<|c+mar5_6p5jY8KOfyTu*x&+T==MIvFACnXhtpwho$D(Ph`nGXEANu zREiv_Q^5fm#y4>Cjf*(=oddK4b{w6~l;IjCQO8LQHOQJWEHfjM&!EWRh)!iOw~>1R zkQDHTQVYCtshrF2Y^F>pWpI^e)cH6O?efUOeXMI)&vwri`mN4mD((L8U4o2LTZS2s@D#?Z>C-HP}Aa~7$c(;<^lm;tzE;QcMveco5M9PqNc@nHqq+c zliSNNpti7%b51&!kNs{Lv+HMN6b@jffzPOEV)o=Y*h87(T}KbjUk@N5Q|lcChE@Xl z`ug;~zCQZ;`Y;e8|1wS-*_@Qy&)JQxCo3j`ATVE<&jcni>%y6oEi7eJiIRfBkw5kE z`;GVUruHiRHs>*yc0XWov3B2D28@CH9F{SBoIXz<`yFk=zK4uj;Of;nt5*YgL@`FP zs`r4^#Zz;hMMI^RBg2|8BEq5N+pWABT$5AIgH^TBWSz;Sw_eHx-&xAE+NoHrxn-V} zm6WmI%O_G(oLn~V{Xk%n9}Sh+eRGF(emWBaOdo_ONr;k!G4$VvR@HsI<`oY19?W>m zSnzRFBgCt_UOj52;jkb;t8X_?-SISjyqSeW$owaFC{!=3rbI76*LC)E?-`qQa!r$4 zi$pO*j#6On*@l0ylO1$#I+Fe1R0z)u&j$X*fYp`xSOe@q2Qvz0a>-pE=j^7ls2x|E zGLz4bA0IvfS^y&^i%b+nCX_caW8#eA-S04<3h6(%S`{Kdh?AfC$gtW@H{%P46gljc zB8QzKhaF+)zl>uylfVJ!u($Kbxql@POueQ`1on&>NqIsrXnm-S7H{r_blx`zusyJq zXTJABdLa?!<1{R+XTq`uYV;aJQ6!{>c=?Lghpic9oa}WSmM&Ge&s_Fm%<~{3C@3$$ zv(Xzj2y=ywfyZ$3)ZTw)_dA50k#h=8;PQK#IcwIL6cxpr6oz5o*Zdqd4zq9bK3Wd# zr2XZ?^oLw=Nk8@iJN4oyv*j`%AZ8v+A%fJG)sOLAL<)@MX&fgYAp6-+wT{PU{4=Gg z5qq`KK%|eXZhIkbrtA9#!HizLa@(7!^CKdB9KD<(ilY-;r>m3QB|C?G*|h!#7)q3i zF)_v*R@KJolg>aE^7Gp280dnIhd~~{<4N{=+Omo>Yq5=4vuAV3uRhBBNy#a`K|P35 z>!vyil&`HuFB7B?(+K#mG{7o;8-E(SMl8G^*5`lXMs4UdcKM+4^vTi81Dxlv4_(Qh#-A&f0^Hf&By8w3RU`ug
- +
@@ -180,6 +180,10 @@ + + + +
@@ -189,6 +193,9 @@ + + + @@ -198,4 +205,10 @@ + + + + + + diff --git a/source/funkin/backend/MusicBeatState.hx b/source/funkin/backend/MusicBeatState.hx index 35b684e57..aa79c4453 100644 --- a/source/funkin/backend/MusicBeatState.hx +++ b/source/funkin/backend/MusicBeatState.hx @@ -12,6 +12,12 @@ import funkin.backend.scripting.ScriptPack; import funkin.backend.system.interfaces.IBeatReceiver; import funkin.backend.system.Conductor; import funkin.options.PlayerSettings; +import mobile.objects.MobileControls; +import mobile.flixel.FlxVirtualPad; +import flixel.FlxCamera; +import flixel.input.actions.FlxActionInput; +import flixel.util.FlxDestroyUtil; +import flixel.util.typeLimit.OneOfTwo; class MusicBeatState extends FlxState implements IBeatReceiver { @@ -105,8 +111,110 @@ class MusicBeatState extends FlxState implements IBeatReceiver inline function get_controlsP2():Controls return PlayerSettings.player2.controls; + public var mobileControls:MobileControls; + public var virtualPad:FlxVirtualPad; + public var camControls:FlxCamera; + public var camVPad:FlxCamera; + public static var instance:MusicBeatState; + + var trackedInputsMobileControls:Array = []; + var trackedInputsVirtualPad:Array = []; + + public function addVirtualPad(DPad:OneOfTwo, Action:OneOfTwo):Void + { + if (virtualPad != null) + removeVirtualPad(); + + virtualPad = new FlxVirtualPad(DPad, Action); + add(virtualPad); + + controls.setVirtualPadUI(virtualPad, virtualPad.curDPadMode, virtualPad.curActionMode); + trackedInputsVirtualPad = controls.trackedInputsUI; + controls.trackedInputsUI = []; + } + + public function removeVirtualPad():Void + { + if (trackedInputsVirtualPad.length > 0) + controls.removeVirtualControlsInput(trackedInputsVirtualPad); + + if (virtualPad != null) + remove(virtualPad); + } + + public function addMobileControls(DefaultDrawTarget:Bool = false) { + if (mobileControls != null) + removeMobileControls(); + + mobileControls = new MobileControls(); + + switch (MobileControls.mode) + { + case 0 | 1 | 2: + controls.setVirtualPadNOTES(mobileControls.virtualPad, RIGHT_FULL, NONE); + case 3: + controls.setHitBox(mobileControls.hitbox); + case 4: // do nothing + } + + trackedInputsMobileControls = controls.trackedInputsNOTES; + controls.trackedInputsNOTES = []; + + camControls = new FlxCamera(); + camControls.bgColor.alpha = 0; + FlxG.cameras.add(camControls, DefaultDrawTarget); + + mobileControls.cameras = [camControls]; + add(mobileControls); + } + + public function removeMobileControls() { + if(trackedInputsMobileControls.length > 0) + controls.removeVirtualControlsInput(trackedInputsMobileControls); + + if(mobileControls != null) + remove(mobileControls); + } + + public function addVirtualPadCamera(DefaultDrawTarget:Bool = false) { + if (virtualPad == null) return; + + camVPad = new FlxCamera(); + camVPad.bgColor.alpha = 0; + FlxG.cameras.add(camVPad, DefaultDrawTarget); + virtualPad.cameras = [camVPad]; + } + + override function destroy() { + // Mobile Controls Related + if(trackedInputsMobileControls.length > 0) + controls.removeVirtualControlsInput(trackedInputsMobileControls); + + if(trackedInputsVirtualPad.length > 0) + controls.removeVirtualControlsInput(trackedInputsVirtualPad); + + if(virtualPad != null) + virtualPad = FlxDestroyUtil.destroy(virtualPad); + + if(mobileControls != null) + mobileControls = FlxDestroyUtil.destroy(mobileControls); + + if(camControls != null) + camControls = FlxDestroyUtil.destroy(camControls); + + if(camVPad != null) + camVPad = FlxDestroyUtil.destroy(camVPad); + + // CNE Related + super.destroy(); + graphicCache.destroy(); + call("destroy"); + stateScripts = FlxDestroyUtil.destroy(stateScripts); + } + public function new(scriptsAllowed:Bool = true, ?scriptName:String) { super(); + instance = this; this.scriptsAllowed = #if SOFTCODED_STATES scriptsAllowed #else false #end; this.scriptName = scriptName; } @@ -125,6 +233,13 @@ class MusicBeatState extends FlxState implements IBeatReceiver script.remappedNames.set(script.fileName, '$i:${script.fileName}'); stateScripts.add(script); script.load(); + stateScripts.set('setVirtualPadMode', function(DPadMode:String, ActionMode:String, ?addCamera = false){ + if(virtualPad == null) return; + removeVirtualPad(); + addVirtualPad(DPadMode, ActionMode); + if(addCamera) + addVirtualPadCamera(false); + }); } } else stateScripts.reload(); @@ -236,13 +351,6 @@ class MusicBeatState extends FlxState implements IBeatReceiver event("onResize", EventManager.get(ResizeEvent).recycle(w, h, null, null)); } - public override function destroy() { - super.destroy(); - graphicCache.destroy(); - call("destroy"); - stateScripts = FlxDestroyUtil.destroy(stateScripts); - } - public override function draw() { graphicCache.draw(); var e = event("draw", EventManager.get(DrawEvent).recycle()); diff --git a/source/funkin/backend/MusicBeatSubstate.hx b/source/funkin/backend/MusicBeatSubstate.hx index e2bbb3123..71a6ce20e 100644 --- a/source/funkin/backend/MusicBeatSubstate.hx +++ b/source/funkin/backend/MusicBeatSubstate.hx @@ -10,6 +10,12 @@ import funkin.backend.system.Conductor; import funkin.backend.system.Controls; import funkin.options.PlayerSettings; import flixel.FlxSubState; +import mobile.objects.MobileControls; +import mobile.flixel.FlxVirtualPad; +import flixel.FlxCamera; +import flixel.input.actions.FlxActionInput; +import flixel.util.FlxDestroyUtil; +import flixel.util.typeLimit.OneOfTwo; class MusicBeatSubstate extends FlxSubState implements IBeatReceiver { @@ -91,9 +97,111 @@ class MusicBeatSubstate extends FlxSubState implements IBeatReceiver inline function get_controlsP2():Controls return PlayerSettings.player2.controls; + public var mobileControls:MobileControls; + public var virtualPad:FlxVirtualPad; + public var camControls:FlxCamera; + public var camVPad:FlxCamera; + public static var instance:MusicBeatSubstate; + + var trackedInputsMobileControls:Array = []; + var trackedInputsVirtualPad:Array = []; + + public function addVirtualPad(DPad:OneOfTwo, Action:OneOfTwo) + { + if (virtualPad != null) + removeVirtualPad(); + + virtualPad = new FlxVirtualPad(DPad, Action); + add(virtualPad); + + controls.setVirtualPadUI(virtualPad, virtualPad.curDPadMode, virtualPad.curActionMode); + trackedInputsVirtualPad = controls.trackedInputsUI; + controls.trackedInputsUI = []; + } + + public function removeVirtualPad() + { + if (trackedInputsVirtualPad.length > 0) + controls.removeVirtualControlsInput(trackedInputsVirtualPad); + + if (virtualPad != null) + remove(virtualPad); + } + + public function addMobileControls(DefaultDrawTarget:Bool = false) { + if (mobileControls != null) + removeMobileControls(); + + mobileControls = new MobileControls(); + + switch (MobileControls.mode) + { + case 0 | 1 | 2: + controls.setVirtualPadNOTES(mobileControls.virtualPad, RIGHT_FULL, NONE); + case 3: + controls.setHitBox(mobileControls.hitbox); + case 4: // do nothing + } + + trackedInputsMobileControls = controls.trackedInputsNOTES; + controls.trackedInputsNOTES = []; + + camControls = new FlxCamera(); + camControls.bgColor.alpha = 0; + FlxG.cameras.add(camControls, DefaultDrawTarget); + + mobileControls.cameras = [camControls]; + mobileControls.visible = false; + add(mobileControls); + } + + public function removeMobileControls() { + if(trackedInputsMobileControls.length > 0) + controls.removeVirtualControlsInput(trackedInputsMobileControls); + + if(mobileControls != null) + remove(mobileControls); + } + + public function addVirtualPadCamera(DefaultDrawTarget:Bool = false) { + if (virtualPad == null) return; + + camVPad = new FlxCamera(); + camVPad.bgColor.alpha = 0; + FlxG.cameras.add(camVPad, DefaultDrawTarget); + virtualPad.cameras = [camVPad]; + } + + override function destroy() { + // Mobile Controls Related + if(trackedInputsMobileControls.length > 0) + controls.removeVirtualControlsInput(trackedInputsMobileControls); + + if(trackedInputsVirtualPad.length > 0) + controls.removeVirtualControlsInput(trackedInputsVirtualPad); + + if(virtualPad != null) + virtualPad = FlxDestroyUtil.destroy(virtualPad); + + if(mobileControls != null) + mobileControls = FlxDestroyUtil.destroy(mobileControls); + + if(camControls != null) + camControls = FlxDestroyUtil.destroy(camControls); + + if(camVPad != null) + camVPad = FlxDestroyUtil.destroy(camVPad); + + // CNE Related + super.destroy(); + call("destroy"); + stateScripts = FlxDestroyUtil.destroy(stateScripts); + + } public function new(scriptsAllowed:Bool = true, ?scriptName:String) { super(); + instance = this; this.scriptsAllowed = #if SOFTCODED_STATES scriptsAllowed #else false #end; this.scriptName = scriptName; } @@ -112,6 +220,13 @@ class MusicBeatSubstate extends FlxSubState implements IBeatReceiver script.remappedNames.set(script.fileName, '$i:${script.fileName}'); stateScripts.add(script); script.load(); + stateScripts.set('setVirtualPadMode', function(DPadMode:String, ActionMode:String, ?addCamera = false){ + if(virtualPad == null) return; + removeVirtualPad(); + addVirtualPad(DPadMode, ActionMode); + if(addCamera) + addVirtualPadCamera(false); + }); } } else stateScripts.reload(); @@ -225,12 +340,6 @@ class MusicBeatSubstate extends FlxSubState implements IBeatReceiver event("onResize", EventManager.get(ResizeEvent).recycle(w, h, null, null)); } - public override function destroy() { - super.destroy(); - call("destroy"); - stateScripts = FlxDestroyUtil.destroy(stateScripts); - } - public override function switchTo(nextState:FlxState) { var e = event("onStateSwitch", EventManager.get(StateEvent).recycle(nextState)); if (e.cancelled) diff --git a/source/funkin/backend/assets/AssetsLibraryList.hx b/source/funkin/backend/assets/AssetsLibraryList.hx index 494479970..0b578d842 100644 --- a/source/funkin/backend/assets/AssetsLibraryList.hx +++ b/source/funkin/backend/assets/AssetsLibraryList.hx @@ -1,7 +1,11 @@ package funkin.backend.assets; +import sys.FileSystem; import funkin.backend.assets.IModsAssetLibrary; import lime.utils.AssetLibrary; +import lime.utils.AssetType; + +using StringTools; class AssetsLibraryList extends AssetLibrary { public var libraries:Array = []; @@ -58,14 +62,30 @@ class AssetsLibraryList extends AssetLibrary { l = cast(l, openfl.utils.AssetLibrary).__proxy; } - // TODO: do base folder scanning #if MOD_SUPPORT - if (l is IModsAssetLibrary) { - var lib = cast(l, IModsAssetLibrary); - for(e in lib.getFiles(folder)) - content.push(e); + if (source == MODS || source == BOTH) { + if (l is IModsAssetLibrary) { + var lib = cast(l, IModsAssetLibrary); + for (e in lib.getFiles(folder)) + content.push(e); + } + } + #else + #if sys + if (source == SOURCE || source == BOTH) { + var fileStuffs = FileSystem.readDirectory(folder); + if (fileStuffs != null && fileStuffs.length > 0) { + for (e in fileStuffs) { + if (!FileSystem.isDirectory(folder + e.toString())) { + content.push(e); + } + } + } else { + Logs.trace('No files/folders found in the requested directory \'${folder}\'', WARNING, YELLOW); + } } #end + #end } return content; } @@ -82,14 +102,30 @@ class AssetsLibraryList extends AssetLibrary { l = cast(l, openfl.utils.AssetLibrary).__proxy; } - // TODO: do base folder scanning #if MOD_SUPPORT - if (l is IModsAssetLibrary) { - var lib = cast(l, IModsAssetLibrary); - for(e in lib.getFolders(folder)) - content.push(e); + if (source == MODS || source == BOTH) { + if (l is IModsAssetLibrary) { + var lib = cast(l, IModsAssetLibrary); + for (e in lib.getFolders(folder)) + content.push(e); + } + } + #else + #if sys + if (source == SOURCE || source == BOTH) { + var fileStuffs = FileSystem.readDirectory(folder); + if (fileStuffs != null && fileStuffs.length > 0) { + for (e in fileStuffs) { + if (FileSystem.isDirectory(folder + e.toString())) { + content.push(e); + } + } + } else { + Logs.trace('No files/folders found in the requested directory \'${folder}\'', WARNING, YELLOW); + } } #end + #end } return content; } @@ -162,6 +198,20 @@ class AssetsLibraryList extends AssetLibrary { libraries.insert(0, lib); return lib; } + + override public function list(type:String):Array { + var items = []; + + for(library in libraries) { + var libraryItems = library.list(type); + + if (libraryItems != null) { + items = items.concat(libraryItems); + } + } + + return items; + } } enum abstract AssetSource(Null) from Bool from Null to Null { diff --git a/source/funkin/backend/assets/ModsFolder.hx b/source/funkin/backend/assets/ModsFolder.hx index cd1704ed3..bc3d021bd 100644 --- a/source/funkin/backend/assets/ModsFolder.hx +++ b/source/funkin/backend/assets/ModsFolder.hx @@ -35,11 +35,11 @@ class ModsFolder { /** * Path to the `mods` folder. */ - public static var modsPath:String = "./mods/"; + public static var modsPath:String = SUtil.getStorageDirectory(true) + "mods/"; /** * Path to the `addons` folder. */ - public static var addonsPath:String = "./addons/"; + public static var addonsPath:String = SUtil.getStorageDirectory(true) + "addons/"; /** * If accessing a file as assets/data/global/LIB_mymod.hx should redirect to mymod:assets/data/global.hx @@ -54,6 +54,8 @@ class ModsFolder { * Initialises `mods` folder. */ public static function init() { + if (!FileSystem.exists(modsPath)) FileSystem.createDirectory(modsPath); + if (!FileSystem.exists(addonsPath)) FileSystem.createDirectory(addonsPath); if(!getModsList().contains(Options.lastLoadedMod)) Options.lastLoadedMod = null; } diff --git a/source/funkin/backend/assets/Paths.hx b/source/funkin/backend/assets/Paths.hx index d8c6ba392..361c1a611 100644 --- a/source/funkin/backend/assets/Paths.hx +++ b/source/funkin/backend/assets/Paths.hx @@ -171,7 +171,7 @@ class Paths return FlxAtlasFrames.fromAseprite('$key.png', '$key.json'); inline static public function getAssetsRoot():String - return ModsFolder.currentModFolder != null ? '${ModsFolder.modsPath}${ModsFolder.currentModFolder}' : './assets'; + return ModsFolder.currentModFolder != null ? '${ModsFolder.modsPath}${ModsFolder.currentModFolder}' : 'assets'; /** * Gets frames at specified path. diff --git a/source/funkin/backend/assets/ScriptedAssetLibrary.hx b/source/funkin/backend/assets/ScriptedAssetLibrary.hx index 0fd8d380c..1ca8268f0 100644 --- a/source/funkin/backend/assets/ScriptedAssetLibrary.hx +++ b/source/funkin/backend/assets/ScriptedAssetLibrary.hx @@ -21,7 +21,8 @@ class ScriptedAssetLibrary extends ModsFolderLibrary { public var scriptName:String; private static var nullValue:Dynamic = {}; - public function new(scriptName:String, args:Array = null, folderPath:String="./assets/", libName:String="assets", ?modName:String) { + public function new(scriptName:String, args:Array = null, folderPath:String="", libName:String="assets", ?modName:String) { + if(folderPath == "") folderPath = SUtil.getStorageDirectory() + "assets/"; if(modName == null) modName = scriptName; super(folderPath, libName, modName); this.scriptName = scriptName; diff --git a/source/funkin/backend/shaders/CustomShader.hx b/source/funkin/backend/shaders/CustomShader.hx index 7ea07c7e1..6aaf81fc3 100644 --- a/source/funkin/backend/shaders/CustomShader.hx +++ b/source/funkin/backend/shaders/CustomShader.hx @@ -19,9 +19,9 @@ class CustomShader extends FunkinShader { /** * Creates a new custom shader * @param name Name of the frag and vert files. - * @param glslVersion GLSL version to use. Defaults to `120`. + * @param glslVersion GLSL version to use. Defaults to `100` in mobile, `120` in desktop. */ - public function new(name:String, glslVersion:String = "120") { + public function new(name:String, glslVersion:String = #if mobile "100" #else "120" #end) { var fragShaderPath = Paths.fragShader(name); var vertShaderPath = Paths.vertShader(name); var fragCode = Assets.exists(fragShaderPath) ? Assets.getText(fragShaderPath) : null; diff --git a/source/funkin/backend/shaders/FunkinShader.hx b/source/funkin/backend/shaders/FunkinShader.hx index ef91d1285..9c8bcfb17 100644 --- a/source/funkin/backend/shaders/FunkinShader.hx +++ b/source/funkin/backend/shaders/FunkinShader.hx @@ -25,16 +25,16 @@ import openfl.display.ShaderInput; class FunkinShader extends FlxShader implements IHScriptCustomBehaviour { private static var __instanceFields = Type.getInstanceFields(FunkinShader); - public var glslVer:String = "120"; + public var glslVer:String = #if mobile "100" #else "120" #end; /** * Creates a new shader from the specified fragment and vertex source. * Accepts `#pragma header`. * @param frag Fragment source (pass `null` to use default) * @param vert Vertex source (pass `null` to use default) - * @param glslVer Version of GLSL to use (defaults to 120) + * @param glslVer Version of GLSL to use (defaults to 120 at desktop, 100 at mobile) */ - public override function new(frag:String, vert:String, glslVer:String = "120") { + public override function new(frag:String, vert:String, glslVer:String = #if mobile "100" #else "120" #end) { if (frag == null) frag = ShaderTemplates.defaultFragmentSource; if (vert == null) vert = ShaderTemplates.defaultVertexSource; this.glFragmentSource = frag; diff --git a/source/funkin/backend/system/Controls.hx b/source/funkin/backend/system/Controls.hx index a09da1c74..8e20d8533 100644 --- a/source/funkin/backend/system/Controls.hx +++ b/source/funkin/backend/system/Controls.hx @@ -9,6 +9,9 @@ import flixel.input.actions.FlxActionSet; import flixel.input.gamepad.FlxGamepadButton; import flixel.input.gamepad.FlxGamepadInputID; import flixel.input.keyboard.FlxKey; +import mobile.flixel.FlxButton as Button; +import mobile.objects.Hitbox; +import mobile.flixel.FlxVirtualPad; enum abstract Action(String) to String from String { var UP = "up"; @@ -419,6 +422,129 @@ class Controls extends FlxActionSet { super.update(); } + + public var trackedInputsUI:Array = []; + public var trackedInputsNOTES:Array = []; + + public function addButtonNOTES(action:FlxActionDigital, button:Button, state:FlxInputState):Void + { + if (button == null) + return; + + var input:FlxActionInputDigitalIFlxInput = new FlxActionInputDigitalIFlxInput(button, state); + trackedInputsNOTES.push(input); + action.add(input); + } + + public function addButtonUI(action:FlxActionDigital, button:Button, state:FlxInputState):Void + { + if (button == null) + return; + + var input:FlxActionInputDigitalIFlxInput = new FlxActionInputDigitalIFlxInput(button, state); + trackedInputsUI.push(input); + action.add(input); + } + + public function setHitBox(hitbox:Hitbox):Void + { + if (Hitbox == null) + return; + + inline forEachBound(Control.NOTE_LEFT, (action, state) -> addButtonNOTES(action, hitbox.buttonLeft, state)); + inline forEachBound(Control.NOTE_DOWN, (action, state) -> addButtonNOTES(action, hitbox.buttonDown, state)); + inline forEachBound(Control.NOTE_UP, (action, state) -> addButtonNOTES(action, hitbox.buttonUp, state)); + inline forEachBound(Control.NOTE_RIGHT, (action, state) -> addButtonNOTES(action, hitbox.buttonRight, state)); + } + + public function setVirtualPadUI(vpad:FlxVirtualPad, DPad:FlxDPadMode, Action:FlxActionMode):Void + { + if (vpad == null) + return; + + switch (DPad) + { + case UP_DOWN: + inline forEachBound(Control.UP, (action, state) -> addButtonUI(action, vpad.buttonUp, state)); + inline forEachBound(Control.DOWN, (action, state) -> addButtonUI(action, vpad.buttonDown, state)); + case LEFT_RIGHT: + inline forEachBound(Control.LEFT, (action, state) -> addButtonUI(action, vpad.buttonLeft, state)); + inline forEachBound(Control.RIGHT, (action, state) -> addButtonUI(action, vpad.buttonRight, state)); + case NONE: // do nothing + default: + inline forEachBound(Control.UP, (action, state) -> addButtonUI(action, vpad.buttonUp, state)); + inline forEachBound(Control.DOWN, (action, state) -> addButtonUI(action, vpad.buttonDown, state)); + inline forEachBound(Control.LEFT, (action, state) -> addButtonUI(action, vpad.buttonLeft, state)); + inline forEachBound(Control.RIGHT, (action, state) -> addButtonUI(action, vpad.buttonRight, state)); + } + + switch (Action) + { + case A: + inline forEachBound(Control.ACCEPT, (action, state) -> addButtonUI(action, vpad.buttonA, state)); + case B: + inline forEachBound(Control.BACK, (action, state) -> addButtonUI(action, vpad.buttonB, state)); + case P: + inline forEachBound(Control.PAUSE, (action, state) -> addButtonUI(action, vpad.buttonP, state)); + case NONE: // do nothing + default: + inline forEachBound(Control.ACCEPT, (action, state) -> addButtonUI(action, vpad.buttonA, state)); + inline forEachBound(Control.BACK, (action, state) -> addButtonUI(action, vpad.buttonB, state)); + } + } + + public function setVirtualPadNOTES(VirtualPad:FlxVirtualPad, DPad:FlxDPadMode, Action:FlxActionMode):Void + { + if (VirtualPad == null) + return; + + switch (DPad) + { + case UP_DOWN: + inline forEachBound(Control.NOTE_UP, (action, state) -> addButtonNOTES(action, VirtualPad.buttonUp, state)); + inline forEachBound(Control.NOTE_DOWN, (action, state) -> addButtonNOTES(action, VirtualPad.buttonDown, state)); + case LEFT_RIGHT: + inline forEachBound(Control.NOTE_LEFT, (action, state) -> addButtonNOTES(action, VirtualPad.buttonLeft, state)); + inline forEachBound(Control.NOTE_RIGHT, (action, state) -> addButtonNOTES(action, VirtualPad.buttonRight, state)); + case NONE: // do nothing + default: + inline forEachBound(Control.NOTE_UP, (action, state) -> addButtonNOTES(action, VirtualPad.buttonUp, state)); + inline forEachBound(Control.NOTE_DOWN, (action, state) -> addButtonNOTES(action, VirtualPad.buttonDown, state)); + inline forEachBound(Control.NOTE_LEFT, (action, state) -> addButtonNOTES(action, VirtualPad.buttonLeft, state)); + inline forEachBound(Control.NOTE_RIGHT, (action, state) -> addButtonNOTES(action, VirtualPad.buttonRight, state)); + } + + switch (Action) + { + case A: + inline forEachBound(Control.ACCEPT, (action, state) -> addButtonNOTES(action, VirtualPad.buttonA, state)); + case B: + inline forEachBound(Control.BACK, (action, state) -> addButtonNOTES(action, VirtualPad.buttonB, state)); + case P: + inline forEachBound(Control.PAUSE, (action, state) -> addButtonNOTES(action, VirtualPad.buttonP, state)); + case NONE: // do nothing + default: + inline forEachBound(Control.ACCEPT, (action, state) -> addButtonNOTES(action, VirtualPad.buttonA, state)); + inline forEachBound(Control.BACK, (action, state) -> addButtonNOTES(action, VirtualPad.buttonB, state)); + } + } + + public function removeVirtualControlsInput(Tinputs:Array):Void + { + for (action in this.digitalActions) + { + var i = action.inputs.length; + while (i-- > 0) + { + var x = Tinputs.length; + while (x-- > 0) + { + if (Tinputs[x] == action.inputs[i]) + action.remove(action.inputs[i]); + } + } + } + } // inline public function checkByName(name:Action):Bool diff --git a/source/funkin/backend/system/Main.hx b/source/funkin/backend/system/Main.hx index cad2266ec..85841bb79 100644 --- a/source/funkin/backend/system/Main.hx +++ b/source/funkin/backend/system/Main.hx @@ -16,6 +16,9 @@ import flixel.addons.transition.TransitionData; import flixel.math.FlxPoint; import flixel.math.FlxRect; import funkin.backend.system.modules.*; +#if mobile +import mobile.funkin.backend.system.MobileRatioScaleMode as FunkinRatioScaleMode; +#end #if ALLOW_MULTITHREADING import sys.thread.Thread; @@ -24,6 +27,7 @@ import sys.thread.Thread; import sys.io.File; #end import funkin.backend.assets.ModsFolder; +import lime.system.System as LimeSystem; class Main extends Sprite { @@ -38,9 +42,7 @@ class Main extends Sprite public static var noTerminalColor:Bool = false; public static var scaleMode:FunkinRatioScaleMode; - #if !mobile public static var framerateSprite:funkin.backend.system.framerate.Framerate; - #end var gameWidth:Int = 1280; // Width of the game in pixels (might be less / more in actual pixels). var gameHeight:Int = 720; // Height of the game in pixels (might be less / more in actual pixels). @@ -63,12 +65,24 @@ class Main extends Sprite instance = this; + #if mobile + #if android + SUtil.doPermissionsShit(); + #end + Sys.setCwd(SUtil.getStorageDirectory(false)); + #end + CrashHandler.init(); + #if !html5 framerateSprite = new funkin.backend.system.framerate.Framerate(); #end + addChild(game = new FunkinGame(gameWidth, gameHeight, MainState, Options.framerate, Options.framerate, skipSplash, startFullscreen)); - #if (!mobile && !web) - addChild(framerateSprite = new funkin.backend.system.framerate.Framerate()); + #if android FlxG.android.preventDefaultKeys = [BACK]; #end + + #if !html5 + addChild(framerateSprite); + FlxG.stage.window.onResize.add((w:Int, h:Int) -> framerateSprite.setScale()); SystemInfo.init(); #end } @@ -127,12 +141,12 @@ class Main extends Sprite #if (sys && TEST_BUILD) trace("Used cne test / cne build. Switching into source assets."); #if MOD_SUPPORT - ModsFolder.modsPath = './${pathBack}mods/'; - ModsFolder.addonsPath = './${pathBack}addons/'; + ModsFolder.modsPath = Sys.getCwd() + '${pathBack}mods/'; + ModsFolder.addonsPath = Sys.getCwd() + '${pathBack}addons/'; #end - Paths.assetsTree.__defaultLibraries.push(ModsFolder.loadLibraryFromFolder('assets', './${pathBack}assets/', true)); + Paths.assetsTree.__defaultLibraries.push(ModsFolder.loadLibraryFromFolder('assets', Sys.getCwd() + '${pathBack}assets/', true)); #elseif USE_ADAPTED_ASSETS - Paths.assetsTree.__defaultLibraries.push(ModsFolder.loadLibraryFromFolder('assets', './assets/', true)); + Paths.assetsTree.__defaultLibraries.push(ModsFolder.loadLibraryFromFolder('assets', Sys.getCwd() + 'assets/', true)); #end @@ -152,10 +166,11 @@ class Main extends Sprite Conductor.init(); AudioSwitchFix.init(); EventManager.init(); + FlxG.signals.preStateSwitch.add(onStateSwitch); FlxG.signals.postStateSwitch.add(onStateSwitchPost); - FlxG.mouse.useSystemCursor = true; + FlxG.mouse.useSystemCursor = !MobileControls.mobileC; ModsFolder.init(); #if MOD_SUPPORT @@ -163,6 +178,9 @@ class Main extends Sprite #end initTransition(); + #if mobile + LimeSystem.allowScreenTimeout = Options.screenTimeOut; + #end } public static function refreshAssets() { diff --git a/source/funkin/backend/system/MainState.hx b/source/funkin/backend/system/MainState.hx index 14c40aff8..f5f078f6d 100644 --- a/source/funkin/backend/system/MainState.hx +++ b/source/funkin/backend/system/MainState.hx @@ -8,6 +8,9 @@ import funkin.menus.TitleState; import funkin.menus.BetaWarningState; import funkin.backend.chart.EventsData; import flixel.FlxState; +#if mobile +import mobile.funkin.backend.system.CopyState; +#end /** * Simple state used for loading the game @@ -17,12 +20,22 @@ class MainState extends FlxState { public static var betaWarningShown:Bool = false; public override function create() { super.create(); + funkin.backend.system.Main.framerateSprite.setScale(); if (!initiated) + { Main.loadGameSettings(); + #if mobile + if (!CopyState.checkExistingFiles()) + { + FlxG.switchState(new CopyState()); + return; + } + #end + } initiated = true; #if sys - CoolUtil.deleteFolder('./.temp/'); // delete temp folder + CoolUtil.deleteFolder('.temp/'); // delete temp folder #end Options.save(); diff --git a/source/funkin/backend/system/framerate/Framerate.hx b/source/funkin/backend/system/framerate/Framerate.hx index 88680e89d..20f307e3c 100644 --- a/source/funkin/backend/system/framerate/Framerate.hx +++ b/source/funkin/backend/system/framerate/Framerate.hx @@ -9,6 +9,7 @@ import openfl.display.Sprite; import openfl.text.TextField; import openfl.text.TextFormat; import openfl.ui.Keyboard; +import flixel.util.FlxTimer; class Framerate extends Sprite { public static var instance:Framerate; @@ -43,6 +44,11 @@ class Framerate extends Sprite { return __bitmap; } + #if mobile + #if android public var presses:Int = 0; #end + public var sillyTimer:FlxTimer = new FlxTimer(); + #end + public function new() { super(); if (instance != null) throw "Cannot create another instance"; @@ -101,13 +107,37 @@ class Framerate extends Sprite { public override function __enterFrame(t:Int) { alpha = CoolUtil.fpsLerp(alpha, debugMode > 0 ? 1 : 0, 0.5); debugAlpha = CoolUtil.fpsLerp(debugAlpha, debugMode > 1 ? 1 : 0, 0.5); + #if android + if(FlxG.android.justReleased.BACK){ + sillyTimer.cancel(); + ++presses; + if(presses >= 3){ + debugMode = (debugMode + 1) % 3; + presses = 0; + return; + } + sillyTimer.start(0.3, (tmr:FlxTimer) -> presses = 0); + } + #elseif ios + for(camera in FlxG.cameras.list) { + var pos = FlxG.mouse.getScreenPosition(camera); + if(posx >= 0 && posx <= 80 && posy >= 0 && posy <= 60) { + if(FlxG.mouse.justPressed) + sillyTimer.start(0.4, (tmr:FlxTimer) -> debugMode = (debugMode + 1) % 3); + + if(FlxG.mouse.justReleased) + sillyTimer.cancel(); + } else if(sillyTimer.active && !sillyTimer.finished) + sillyTimer.cancel(); + } + #end if (alpha < 0.05) return; super.__enterFrame(t); bgSprite.alpha = debugAlpha * 0.5; - x = 10 + offset.x; - y = 2 + offset.y; + x = #if mobile FlxG.game.x + #end 10 + offset.x; + y = #if mobile FlxG.game.y + #end 2 + offset.y; var width = Math.max(fpsCounter.width, #if SHOW_BUILD_ON_FPS Math.max(memoryCounter.width, codenameBuildField.width) #else memoryCounter.width #end) + (x*2); var height = #if SHOW_BUILD_ON_FPS codenameBuildField.y + codenameBuildField.height #else memoryCounter.y + memoryCounter.height #end; @@ -132,4 +162,10 @@ class Framerate extends Sprite { y = c.y + c.height + 4; } } + + public inline function setScale(?scale:Float){ + if(scale == null) + scale = Math.min(FlxG.stage.window.width / FlxG.width, FlxG.stage.window.height / FlxG.height); + scaleX = scaleY = #if android (scale > 1 ? scale : 1) #else (scale < 1 ? scale : 1) #end; + } } \ No newline at end of file diff --git a/source/funkin/backend/system/framerate/SystemInfo.hx b/source/funkin/backend/system/framerate/SystemInfo.hx index 0d2bc73a5..8fa383861 100644 --- a/source/funkin/backend/system/framerate/SystemInfo.hx +++ b/source/funkin/backend/system/framerate/SystemInfo.hx @@ -3,9 +3,22 @@ package funkin.backend.system.framerate; import funkin.backend.utils.native.HiddenProcess; import funkin.backend.utils.MemoryUtil; import funkin.backend.system.Logs; +#if android +import android.os.Build; +import android.os.Build.VERSION; +#end using StringTools; +#if cpp +#if windows +@:cppFileCode('#include ') +#elseif (mac || ios) +@:cppFileCode('#include ') +#else +@:headerInclude('sys/utsname.h') +#end +#end class SystemInfo extends FramerateCategory { public static var osInfo:String = "Unknown"; public static var gpuName:String = "Unknown"; @@ -62,7 +75,7 @@ class SystemInfo extends FramerateCategory { if (process.exitCode() != 0) throw 'Could not fetch CPU information'; cpuName = process.stdout.readAll().toString().trim().split("\n")[1].trim(); - #elseif mac + #elseif (mac || ios) var process = new HiddenProcess("sysctl -a | grep brand_string"); // Somehow this isnt able to use the args but it still works if (process.exitCode() != 0) throw 'Could not fetch CPU information'; @@ -77,6 +90,8 @@ class SystemInfo extends FramerateCategory { break; } } + #elseif android + cpuName = (VERSION.SDK_INT >= VERSION_CODES.S) ? Build.SOC_MODEL : Build.HARDWARE; #end } catch (e) { Logs.trace('Unable to grab CPU Name: $e', ERROR, RED); @@ -116,9 +131,9 @@ class SystemInfo extends FramerateCategory { } static function formatSysInfo() { - __formattedSysText = ""; + __formattedSysText = #if android 'Device: ${Build.BRAND.charAt(0).toUpperCase() + Build.BRAND.substring(1)} ${Build.MODEL} (${Build.BOARD})\n' #else "" #end; if (osInfo != "Unknown") __formattedSysText += 'System: $osInfo'; - if (cpuName != "Unknown") __formattedSysText += '\nCPU: $cpuName ${openfl.system.Capabilities.cpuArchitecture} ${(openfl.system.Capabilities.supports64BitProcesses ? '64-Bit' : '32-Bit')}'; + if (cpuName != "Unknown") __formattedSysText += '\nCPU: $cpuName ${getCPUArch()}'; if (gpuName != cpuName || vRAM != "Unknown") { var gpuNameKnown = gpuName != "Unknown" && gpuName != cpuName; var vramKnown = vRAM != "Unknown"; @@ -146,4 +161,44 @@ class SystemInfo extends FramerateCategory { this.text.text = _text; super.__enterFrame(t); } + + #if windows + @:functionCode(' + SYSTEM_INFO osInfo; + + GetSystemInfo(&osInfo); + + switch(osInfo.wProcessorArchitecture) + { + case 9: + return ::String("x86_64"); + case 5: + return ::String("ARM"); + case 12: + return ::String("ARM64"); + case 6: + return ::String("IA-64"); + case 0: + return ::String("x86"); + default: + return ::String("Unknown"); + } + ') + #elseif (mac || ios) + @:functionCode(' + const NXArchInfo *archInfo = NXGetLocalArchInfo(); + return ::String(archInfo == NULL ? "Unknown" : archInfo->name); + ') + #elseif cpp + @:functionCode(' + struct utsname osInfo{}; + uname(&osInfo); + return ::String(osInfo.machine); + ') + #end + @:noCompletion + private static function getCPUArch():String + { + return "Unknown"; + } } \ No newline at end of file diff --git a/source/funkin/backend/system/modules/CrashHandler.hx b/source/funkin/backend/system/modules/CrashHandler.hx index 19c183165..57c44f75a 100644 --- a/source/funkin/backend/system/modules/CrashHandler.hx +++ b/source/funkin/backend/system/modules/CrashHandler.hx @@ -1,17 +1,18 @@ package funkin.backend.system.modules; -import lime.system.System; -import funkin.backend.utils.NativeAPI; -import openfl.Lib; import openfl.events.UncaughtErrorEvent; import openfl.events.ErrorEvent; import openfl.errors.Error; -import openfl.events.UncaughtErrorEvent; -import haxe.CallStack; +import lime.system.System as LimeSystem; +import haxe.io.Path; +#if sys +import sys.FileSystem; +import sys.io.File; +#end class CrashHandler { - public static function init() { - Lib.current.loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, onUncaughtError); + public static function init():Void { + openfl.Lib.current.loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, onUncaughtError); #if cpp untyped __global__.__hxcpp_set_critical_error_handler(onError); #elseif hl @@ -19,7 +20,11 @@ class CrashHandler { #end } - public static function onUncaughtError(e:UncaughtErrorEvent) { + private static function onUncaughtError(e:UncaughtErrorEvent):Void { + e.preventDefault(); + e.stopPropagation(); + e.stopImmediatePropagation(); + var m:String = e.error; if (Std.isOfType(e.error, Error)) { var err = cast(e.error, Error); @@ -28,40 +33,52 @@ class CrashHandler { var err = cast(e.error, ErrorEvent); m = '${err.text}'; } - var stack = CallStack.exceptionStack(); - var stackLabel:String = ""; + var stack = haxe.CallStack.exceptionStack(); + var stackBuffer = new StringBuf(); for(e in stack) { switch(e) { - case CFunction: stackLabel += "Non-Haxe (C) Function"; - case Module(c): stackLabel += 'Module ${c}'; + case CFunction: stackBuffer.add("Non-Haxe (C) Function\n"); + case Module(c): stackBuffer.add('Module ${c}\n'); case FilePos(parent, file, line, col): switch(parent) { case Method(cla, func): - stackLabel += '(${file}) ${cla.split(".").last()}.$func() - line $line'; + stackBuffer.add('${Path.withoutExtension(file)}.$func() - line $line\n'); case _: - stackLabel += '(${file}) - line $line'; + stackBuffer.add('${file} - line $line\n'); } case LocalFunction(v): - stackLabel += 'Local Function ${v}'; + stackBuffer.add('Local Function ${v}\n'); case Method(cl, m): - stackLabel += '${cl} - ${m}'; + stackBuffer.add('${cl} - ${m}\n'); } - stackLabel += "\r\n"; } + var stackLabel = stackBuffer.toString(); + #if sys + try + { + if (!FileSystem.exists('crash')) + FileSystem.createDirectory('crash'); - e.preventDefault(); - e.stopPropagation(); - e.stopImmediatePropagation(); + File.saveContent('crash/' + Date.now().toString().replace(' ', '-').replace(':', "'") + '.txt', '$m\n$stackLabel'); + } + catch (e:haxe.Exception) + trace('Couldn\'t save error message. (${e.message})'); + #end - NativeAPI.showMessageBox("Codename Engine Crash Handler", 'Uncaught Error:$m\n\n$stackLabel', MSG_ERROR); - #if sys - Sys.exit(1); + NativeAPI.showMessageBox("Error!", '$m\n$stackLabel', MSG_ERROR); + + #if js + if (FlxG.sound.music != null) + FlxG.sound.music.stop(); + + js.Browser.window.location.reload(true); + #else + LimeSystem.exit(1); #end } #if (cpp || hl) - private static function onError(message:Dynamic):Void - { + private static function onError(message:Dynamic):Void { throw Std.string(message); } #end diff --git a/source/funkin/backend/system/updating/AsyncUpdater.hx b/source/funkin/backend/system/updating/AsyncUpdater.hx index af7cfff57..52821a73c 100644 --- a/source/funkin/backend/system/updating/AsyncUpdater.hx +++ b/source/funkin/backend/system/updating/AsyncUpdater.hx @@ -66,7 +66,7 @@ class AsyncUpdater { var reader = ZipUtil.openZip(path); progress.curZipProgress = new ZipProgress(); - ZipUtil.uncompressZip(reader, './', null, progress.curZipProgress); + ZipUtil.uncompressZip(reader, Sys.getCwd(), null, progress.curZipProgress); // FileSystem.deleteFile(path); } if (executableReplaced = FileSystem.exists('$path$executableName')) { diff --git a/source/funkin/backend/system/updating/UpdateScreen.hx b/source/funkin/backend/system/updating/UpdateScreen.hx index 323fda09c..c9555b383 100644 --- a/source/funkin/backend/system/updating/UpdateScreen.hx +++ b/source/funkin/backend/system/updating/UpdateScreen.hx @@ -121,7 +121,7 @@ class UpdateScreen extends MusicBeatState { #if windows // the executable has been replaced, restart the game entirely Sys.command('start /B ${AsyncUpdater.executableName}'); - #else + #elseif !mobile // We have to make the new executable allowed to execute // before we can execute it! Sys.command('chmod +x ./${AsyncUpdater.executableName} && ./${AsyncUpdater.executableName}'); diff --git a/source/funkin/backend/utils/MemoryUtil.hx b/source/funkin/backend/utils/MemoryUtil.hx index 6905d6b20..d40975c83 100644 --- a/source/funkin/backend/utils/MemoryUtil.hx +++ b/source/funkin/backend/utils/MemoryUtil.hx @@ -69,8 +69,12 @@ class MemoryUtil { return funkin.backend.utils.native.Windows.getTotalRam(); #elseif mac return funkin.backend.utils.native.Mac.getTotalRam(); + #elseif ios + return funkin.backend.utils.native.IOS.getTotalRam(); #elseif linux return funkin.backend.utils.native.Linux.getTotalRam(); + #elseif android + return funkin.backend.utils.native.Android.getTotalRam(); #else return 0; #end @@ -124,7 +128,7 @@ class MemoryUtil { var process = new HiddenProcess("wmic", ["memorychip", "get", "SMBIOSMemoryType"]); if (process.exitCode() == 0) memoryOutput = Std.int(Std.parseFloat(process.stdout.readAll().toString().trim().split("\n")[1])); if (memoryOutput != -1) return memoryMap[memoryOutput]; - #elseif mac + #elseif (mac || ios) var process = new HiddenProcess("system_profiler", ["SPMemoryDataType"]); var reg = ~/Type: (.+)/; reg.match(process.stdout.readAll().toString()); @@ -138,6 +142,8 @@ class MemoryUtil { return line.substring("Type:".length).trim(); } } + #elseif android + // MTODO: Do get mem type for android smh? #end return "Unknown"; } diff --git a/source/funkin/backend/utils/NativeAPI.hx b/source/funkin/backend/utils/NativeAPI.hx index 78f0b38de..d5fabb52b 100644 --- a/source/funkin/backend/utils/NativeAPI.hx +++ b/source/funkin/backend/utils/NativeAPI.hx @@ -96,6 +96,10 @@ class NativeAPI { public static function showMessageBox(caption:String, message:String, icon:MessageBoxIcon = MSG_WARNING) { #if windows Windows.showMessageBox(caption, message, icon); + #elseif (ios || iphonesim || web) + trace('$caption - $message'); + #elseif android + android.Tools.showAlertDialog(caption, message, {name: "OK", func: null}, null); #else lime.app.Application.current.window.alert(message, caption); #end diff --git a/source/funkin/backend/utils/ZipUtil.hx b/source/funkin/backend/utils/ZipUtil.hx index eef06a6d7..03358a5ee 100644 --- a/source/funkin/backend/utils/ZipUtil.hx +++ b/source/funkin/backend/utils/ZipUtil.hx @@ -21,7 +21,7 @@ import sys.thread.Thread; using StringTools; // import ZipUtils; ZipUtils.uncompressZip(ZipUtils.openZip("E:\\Desktop\\test\\termination lua.ycemod"), "E:\\Desktop\\test\\uncompressed\\"); -// import ZipUtils; var e = ZipUtils.createZipFile("gjnsdghs.ycemod"); ZipUtils.writeFolderToZip(e, "./mods/Friday Night Funkin'/", "Friday Night Funkin'/"); e.flush(); e.close(); +// import ZipUtils; var e = ZipUtils.createZipFile("gjnsdghs.ycemod"); ZipUtils.writeFolderToZip(e, Sys.getCwd() + "mods/Friday Night Funkin'/", "Friday Night Funkin'/"); e.flush(); e.close(); class ZipUtil { public static var bannedNames:Array = [".git", ".gitignore", ".github", ".vscode", ".gitattributes", "readme.txt"]; diff --git a/source/funkin/backend/utils/native/Android.hx b/source/funkin/backend/utils/native/Android.hx new file mode 100644 index 000000000..4ba180f7e --- /dev/null +++ b/source/funkin/backend/utils/native/Android.hx @@ -0,0 +1,31 @@ +package funkin.backend.utils.native; + +#if android +class Android +{ + @:functionCode(' + FILE *meminfo = fopen("/proc/meminfo", "r"); + + if(meminfo == NULL) + return -1; + + char line[256]; + while(fgets(line, sizeof(line), meminfo)) + { + int ram; + if(sscanf(line, "MemTotal: %d kB", &ram) == 1) + { + fclose(meminfo); + return (ram / 1024); + } + } + + fclose(meminfo); + return -1; + ') + public static function getTotalRam():Float + { + return 0; + } +} +#end diff --git a/source/funkin/backend/utils/native/IOS.hx b/source/funkin/backend/utils/native/IOS.hx new file mode 100644 index 000000000..6f5c84962 --- /dev/null +++ b/source/funkin/backend/utils/native/IOS.hx @@ -0,0 +1,21 @@ +package funkin.backend.utils.native; + +#if ios +@:cppFileCode("#include ") +class IOS { + @:functionCode(' + int mib [] = { CTL_HW, HW_MEMSIZE }; + int64_t value = 0; + size_t length = sizeof(value); + + if(-1 == sysctl(mib, 2, &value, &length, NULL, 0)) + return -1; // An error occurred + + return value / 1024 / 1024; + ') + public static function getTotalRam():Float + { + return 0; + } +} +#end diff --git a/source/funkin/editors/DebugOptions.hx b/source/funkin/editors/DebugOptions.hx index 8dcfeda7d..d7ebdd493 100644 --- a/source/funkin/editors/DebugOptions.hx +++ b/source/funkin/editors/DebugOptions.hx @@ -26,7 +26,7 @@ class DebugOptions extends TreeMenu { class DebugOptionsScreen extends OptionsScreen { public override function new() { - super("Debug Options", "Use this menu to change debug options."); + super("Debug Options", "Use this menu to change debug options.", null, 'LEFT_FULL', 'A_B'); #if windows add(new TextOption( "Show Console", diff --git a/source/funkin/editors/EditorPicker.hx b/source/funkin/editors/EditorPicker.hx index 7056305f2..64a8dc3df 100644 --- a/source/funkin/editors/EditorPicker.hx +++ b/source/funkin/editors/EditorPicker.hx @@ -71,7 +71,9 @@ class EditorPicker extends MusicBeatSubstate { } sprites[0].selected = true; - FlxG.mouse.getScreenPosition(subCam, oldMousePos); + if (!MobileControls.mobileC) FlxG.mouse.getScreenPosition(subCam, oldMousePos); + + addVirtualPad('UP_DOWN', 'A_B'); } public override function update(elapsed:Float) { @@ -86,14 +88,14 @@ class EditorPicker extends MusicBeatSubstate { } changeSelection(-FlxG.mouse.wheel + (controls.UP_P ? -1 : 0) + (controls.DOWN_P ? 1 : 0)); - FlxG.mouse.getScreenPosition(subCam, curMousePos); - if (curMousePos.x != oldMousePos.x || curMousePos.y != oldMousePos.y) { + if (!MobileControls.mobileC) FlxG.mouse.getScreenPosition(subCam, curMousePos); + if (!MobileControls.mobileC && curMousePos.x != oldMousePos.x || curMousePos.y != oldMousePos.y) { oldMousePos.set(curMousePos.x, curMousePos.y); curSelected = -1; changeSelection(Std.int(curMousePos.y / optionHeight)+1); } - if (controls.ACCEPT || FlxG.mouse.justReleased) { + if (controls.ACCEPT || !MobileControls.mobileC && FlxG.mouse.justReleased) { if (options[curSelected].state != null) { selected = true; CoolUtil.playMenuSFX(CONFIRM); diff --git a/source/funkin/editors/SaveSubstate.hx b/source/funkin/editors/SaveSubstate.hx index 7202cf373..219b6a365 100644 --- a/source/funkin/editors/SaveSubstate.hx +++ b/source/funkin/editors/SaveSubstate.hx @@ -26,6 +26,10 @@ class SaveSubstate extends MusicBeatSubstate { public override function create() { super.create(); + #if mobile + mobile.funkin.backend.utils.SUtil.saveContent(options.defaultSaveFile.replace(options.saveExt, ''), options.saveExt, data); + close(); + #else var fileDialog = new FileDialog(); fileDialog.onCancel.add(function() close()); fileDialog.onSelect.add(function(str) { @@ -33,6 +37,7 @@ class SaveSubstate extends MusicBeatSubstate { close(); }); fileDialog.browse(SAVE, options.saveExt.getDefault(Path.extension(options.defaultSaveFile)), options.defaultSaveFile); + #end } public override function update(elapsed:Float) { diff --git a/source/funkin/editors/UIDebugState.hx b/source/funkin/editors/UIDebugState.hx index dd74c90ef..f59611f79 100644 --- a/source/funkin/editors/UIDebugState.hx +++ b/source/funkin/editors/UIDebugState.hx @@ -7,7 +7,8 @@ class UIDebugState extends UIState { public override function create() { super.create(); - FlxG.mouse.useSystemCursor = FlxG.mouse.visible = true; + FlxG.mouse.useSystemCursor = !MobileControls.mobileC; + FlxG.mouse.visible = true; var bg = new FlxSprite().makeSolid(FlxG.width, FlxG.height, 0xFF444444); bg.updateHitbox(); diff --git a/source/funkin/editors/character/CharacterEditor.hx b/source/funkin/editors/character/CharacterEditor.hx index 95da49893..933b9855d 100644 --- a/source/funkin/editors/character/CharacterEditor.hx +++ b/source/funkin/editors/character/CharacterEditor.hx @@ -296,7 +296,7 @@ class CharacterEditor extends UIState { closeCurrentContextMenu(); openContextMenu(topMenu[2].childs); } - if (FlxG.mouse.pressed) { + if (!MobileControls.mobileC && FlxG.mouse.pressed) { nextScroll.set(nextScroll.x - FlxG.mouse.deltaScreenX, nextScroll.y - FlxG.mouse.deltaScreenY); currentCursor = HAND; } else diff --git a/source/funkin/editors/character/CharacterSelection.hx b/source/funkin/editors/character/CharacterSelection.hx index 817acf294..d79b4d150 100644 --- a/source/funkin/editors/character/CharacterSelection.hx +++ b/source/funkin/editors/character/CharacterSelection.hx @@ -18,11 +18,19 @@ class CharacterSelection extends EditorTreeMenu var modsList:Array = Character.getList(true); + final button:String = MobileControls.mobileC ? 'A' : 'ACCEPT'; + var list:Array = [ for (char in (modsList.length == 0 ? Character.getList(false) : modsList)) - new IconOption(char, "Press ACCEPT to edit this character.", Character.getIconFromCharName(char), + new IconOption(char, "Press " + button + " to edit this character.", Character.getIconFromCharName(char), function() { + #if mobile + openSubState(new UIWarningSubstate("CharacterEditor: Not Supported!", "This feature isnt supported on current platform. We are sorry but you need a PC to do that.\n\n\n- Mobile Porting Team", [ + {label: "Ok", color: 0xFFFF0000, onClick: function(t) {}} + ])); + #else FlxG.switchState(new CharacterEditor(char)); + #end }) ]; @@ -32,7 +40,7 @@ class CharacterSelection extends EditorTreeMenu ])); })); - main = new OptionsScreen("Character Editor", "Select a character to edit", list); + main = new OptionsScreen("Character Editor", "Select a character to edit", list, 'UP_DOWN', 'A'); DiscordUtil.call("onEditorTreeLoaded", ["Character Editor"]); } diff --git a/source/funkin/editors/charter/CharterSelection.hx b/source/funkin/editors/charter/CharterSelection.hx index 6fd97bdcd..331539a7d 100644 --- a/source/funkin/editors/charter/CharterSelection.hx +++ b/source/funkin/editors/charter/CharterSelection.hx @@ -16,6 +16,7 @@ using StringTools; class CharterSelection extends EditorTreeMenu { public var freeplayList:FreeplaySonglist; public var curSong:ChartMetaData; + private final button:String = MobileControls.mobileC ? 'A' : 'ACCEPT'; public override function create() { bgType = "charter"; @@ -26,26 +27,44 @@ class CharterSelection extends EditorTreeMenu { freeplayList = FreeplaySonglist.get(false); var list:Array = [ - for(s in freeplayList.songs) new EditorIconOption(s.name, "Press ACCEPT to choose a difficulty to edit.", s.icon, function() { + for(s in freeplayList.songs) new EditorIconOption(s.name, "Press " + button + " to choose a difficulty to edit.", s.icon, function() { curSong = s; var list:Array = [ for(d in s.difficulties) if (d != "") - new TextOption(d, "Press ACCEPT to edit the chart for the selected difficulty", function() { + new TextOption(d, "Press " + button + " to edit the chart for the selected difficulty", function() { + #if mobile + openSubState(new UIWarningSubstate("Charter: Not Supported!", "This feature isnt supported on current platform. We are sorry but you need a PC to do that.\n\n\n- Mobile Porting Team", [ + {label: "Ok", color: 0xFFFF0000, onClick: function(t) {}} + ])); + #else FlxG.switchState(new Charter(s.name, d)); + #end }) ]; list.push(new NewOption("New Difficulty", "New Difficulty", function() { + #if mobile + openSubState(new UIWarningSubstate("New Difficulty: Not Supported!", "This feature isnt supported on current platform. We are sorry but you need a PC to do that.\n\n\n- Mobile Porting Team", [ + {label: "Ok", color: 0xFFFF0000, onClick: function(t) {}} + ])); + #else FlxG.state.openSubState(new ChartCreationScreen(saveChart)); + #end })); - optionsTree.add(new OptionsScreen(s.name, "Select a difficulty to continue.", list)); + optionsTree.add(new OptionsScreen(s.name, "Select a difficulty to continue.", list, 'UP_DOWN', 'A_B')); }, s.parsedColor.getDefault(0xFFFFFFFF)) ]; list.insert(0, new NewOption("New Song", "New Song", function() { + #if mobile + openSubState(new UIWarningSubstate("New Song: Not Supported!", "This feature isnt supported on current platform. We are sorry but you need a PC to do that.\n\n\n- Mobile Porting Team", [ + {label: "Ok", color: 0xFFFF0000, onClick: function(t) {}} + ])); + #else FlxG.state.openSubState(new SongCreationScreen(saveSong)); + #end })); - main = new OptionsScreen("Chart Editor", "Select a song to modify the charts from.", list); + main = new OptionsScreen("Chart Editor", "Select a song to modify the charts from.", list, 'UP_DOWN', 'A'); DiscordUtil.call("onEditorTreeLoaded", ["Chart Editor"]); } @@ -114,16 +133,28 @@ class CharterSelection extends EditorTreeMenu { if (creation.voicesBytes != null) sys.io.File.saveBytes('$songFolder/song/Voices.${Paths.SOUND_EXT}', creation.voicesBytes); #end - var option = new EditorIconOption(creation.meta.name, "Press ACCEPT to choose a difficulty to edit.", creation.meta.icon, function() { + var option = new EditorIconOption(creation.meta.name, "Press " + button + " to choose a difficulty to edit.", creation.meta.icon, function() { curSong = creation.meta; var list:Array = [ for(d in creation.meta.difficulties) - if (d != "") new TextOption(d, "Press ACCEPT to edit the chart for the selected difficulty", function() { + if (d != "") new TextOption(d, "Press " + button + " to edit the chart for the selected difficulty", function() { + #if mobile + openSubState(new UIWarningSubstate("Charter: Not Supported!", "This feature isnt supported on current platform. We are sorry but you need a PC to do that.\n\n\n- Mobile Porting Team", [ + {label: "Ok", color: 0xFFFF0000, onClick: function(t) {}} + ])); + #else FlxG.switchState(new Charter(creation.meta.name, d)); + #end }) ]; list.push(new NewOption("New Difficulty", "New Difficulty", function() { + #if mobile + openSubState(new UIWarningSubstate("New Difficulty: Not Supported!", "This feature isnt supported on current platform. We are sorry but you need a PC to do that.\n\n\n- Mobile Porting Team", [ + {label: "Ok", color: 0xFFFF0000, onClick: function(t) {}} + ])); + #else FlxG.state.openSubState(new ChartCreationScreen(saveChart)); + #end })); optionsTree.insert(1, new OptionsScreen(creation.meta.name, "Select a difficulty to continue.", list)); }, creation.meta.parsedColor.getDefault(0xFFFFFFFF)); @@ -151,8 +182,14 @@ class CharterSelection extends EditorTreeMenu { // Add to List curSong.difficulties.push(name); - var option = new TextOption(name, "Press ACCEPT to edit the chart for the selected difficulty", function() { + var option = new TextOption(name, "Press " + button + " to edit the chart for the selected difficulty", function() { + #if mobile + openSubState(new UIWarningSubstate("Charter: Not Supported!", "This feature isnt supported on current platform. We are sorry but you need a PC to do that.\n\n\n- Mobile Porting Team", [ + {label: "Ok", color: 0xFFFF0000, onClick: function(t) {}} + ])); + #else FlxG.switchState(new Charter(curSong.name, name)); + #end }); optionsTree.members[optionsTree.members.length-1].insert(optionsTree.members[optionsTree.members.length-1].length-1, option); diff --git a/source/funkin/editors/ui/UITextBox.hx b/source/funkin/editors/ui/UITextBox.hx index 3aa97fd27..a7aa609cd 100644 --- a/source/funkin/editors/ui/UITextBox.hx +++ b/source/funkin/editors/ui/UITextBox.hx @@ -72,6 +72,7 @@ class UITextBox extends UISliceSprite implements IUIFocusable { framesOffset = (selected ? 18 : (hovered ? 9 : 0)); @:privateAccess { if (selected) { + FlxG.stage.window.textInputEnabled = true; __wasFocused = true; caretSpr.alpha = (FlxG.game.ticks % 666) >= 333 ? 1 : 0; diff --git a/source/funkin/game/GameOverSubstate.hx b/source/funkin/game/GameOverSubstate.hx index 66b379681..fa44e5e54 100644 --- a/source/funkin/game/GameOverSubstate.hx +++ b/source/funkin/game/GameOverSubstate.hx @@ -89,6 +89,9 @@ class GameOverSubstate extends MusicBeatSubstate DiscordUtil.call("onGameOver", []); gameoverScript.call("postCreate"); + + addVirtualPad('NONE', 'A_B'); + addVirtualPadCamera(false); } override function update(elapsed:Float) diff --git a/source/funkin/game/PlayState.hx b/source/funkin/game/PlayState.hx index 4e1257241..042daf43a 100644 --- a/source/funkin/game/PlayState.hx +++ b/source/funkin/game/PlayState.hx @@ -536,6 +536,7 @@ class PlayState extends MusicBeatState @:dox(hide) override public function create() { + #if mobile lime.system.System.allowScreenTimeout = false; #end Note.__customNoteTypeExists = []; // SCRIPTING & DATA INITIALIZATION #if REGION @@ -759,6 +760,12 @@ class PlayState extends MusicBeatState #end startingSong = true; + addMobileControls(); + mobileControls.visible = true; + #if !android + addVirtualPad('NONE', 'P'); + addVirtualPadCamera(false); + #end super.create(); @@ -958,6 +965,7 @@ class PlayState extends MusicBeatState public override function destroy() { scripts.call("destroy"); + #if mobile lime.system.System.allowScreenTimeout = Options.screenTimeOut; #end for(g in __cachedGraphics) g.useCount--; @:privateAccess @@ -1033,6 +1041,8 @@ class PlayState extends MusicBeatState { var event = scripts.event("onSubstateOpen", EventManager.get(StateEvent).recycle(SubState)); + #if mobile lime.system.System.allowScreenTimeout = Options.screenTimeOut; #end + if (!postCreated) MusicBeatState.skipTransIn = true; @@ -1058,6 +1068,7 @@ class PlayState extends MusicBeatState override function closeSubState() { var event = scripts.event("onSubstateClose", EventManager.get(StateEvent).recycle(subState)); + #if mobile lime.system.System.allowScreenTimeout = false; #end if (event.cancelled) return; if (paused) @@ -1237,7 +1248,7 @@ class PlayState extends MusicBeatState updateRatingStuff(); - if (controls.PAUSE && startedCountdown && canPause) + if (#if android FlxG.android.justReleased.BACK || #else virtualPad.buttonP.justPressed || #end controls.PAUSE && startedCountdown && canPause) pauseGame(); if (canAccessDebugMenus) { @@ -1440,6 +1451,7 @@ class PlayState extends MusicBeatState */ public function endSong():Void { + mobileControls.visible = false; scripts.call("onSongEnd"); canPause = false; inst.volume = 0; @@ -1481,6 +1493,7 @@ class PlayState extends MusicBeatState * Immediately switches to the next song, or goes back to the Story/Freeplay menu. */ public function nextSong() { + mobileControls.visible = false; if (isStoryMode) { campaignScore += songScore; diff --git a/source/funkin/game/cutscenes/DialogueCutscene.hx b/source/funkin/game/cutscenes/DialogueCutscene.hx index 656df6f24..8491946ff 100644 --- a/source/funkin/game/cutscenes/DialogueCutscene.hx +++ b/source/funkin/game/cutscenes/DialogueCutscene.hx @@ -126,7 +126,12 @@ class DialogueCutscene extends Cutscene { super.update(elapsed); dialogueScript.call("update", [elapsed]); - if(controls.ACCEPT) { + var justTouched:Bool = false; + for (touch in FlxG.touches.list) + if (touch.justPressed) + justTouched = true; + + if(justTouched || controls.ACCEPT) { if(dialogueBox.dialogueEnded) next(); else dialogueBox.text.skip(); } diff --git a/source/funkin/game/cutscenes/VideoCutscene.hx b/source/funkin/game/cutscenes/VideoCutscene.hx index de485450e..a6d7ef78b 100644 --- a/source/funkin/game/cutscenes/VideoCutscene.hx +++ b/source/funkin/game/cutscenes/VideoCutscene.hx @@ -92,7 +92,7 @@ class VideoCutscene extends Cutscene { // ZIP PATH: EXPORT // TODO: this but better and more ram friendly - localPath = './.temp/video-${curVideo++}.mp4'; + localPath = '.temp/video-${curVideo++}.mp4'; Main.execAsync(function() { File.saveBytes(localPath, Assets.getBytes(path)); videoReady = true; diff --git a/source/funkin/import.hx b/source/funkin/import.hx index eca238fd6..ae8943ee7 100644 --- a/source/funkin/import.hx +++ b/source/funkin/import.hx @@ -11,6 +11,9 @@ import funkin.options.Options; import funkin.game.PlayState; import funkin.backend.scripting.EventManager; +import mobile.funkin.backend.utils.SUtil; +import mobile.objects.MobileControls; + import openfl.utils.Assets; import flixel.FlxSprite; diff --git a/source/funkin/menus/BetaWarningState.hx b/source/funkin/menus/BetaWarningState.hx index 162014540..b1dafa072 100644 --- a/source/funkin/menus/BetaWarningState.hx +++ b/source/funkin/menus/BetaWarningState.hx @@ -19,7 +19,7 @@ class BetaWarningState extends MusicBeatState { disclaimer = new FunkinText(16, titleAlphabet.y + titleAlphabet.height + 10, FlxG.width - 32, "", 32); disclaimer.alignment = CENTER; - disclaimer.applyMarkup('This engine is still in a *${Main.releaseCycle}* state. That means *majority of the features* are either *buggy* or *non finished*. If you find any bugs, please report them to the Codename Engine GitHub.\n\nPress ENTER to continue', + disclaimer.applyMarkup('This engine is still in a *${Main.releaseCycle}* state. That means *majority of the features* are either *buggy* or *non finished*. If you find any bugs, please report them to the Codename Engine GitHub.\n\n${MobileControls.mobileC ? 'Tap Your Screen' : 'Press ENTER'} to continue', [ new FlxTextFormatMarkerPair(new FlxTextFormat(0xFFFF4444), "*") ] @@ -36,6 +36,22 @@ class BetaWarningState extends MusicBeatState { public override function update(elapsed:Float) { super.update(elapsed); + #if FLX_TOUCH + for (touch in FlxG.touches.list) + { + if (touch.justPressed && transitioning) { + FlxG.camera.stopFX(); FlxG.camera.visible = false; + goToTitle(); + } else if (touch.justPressed && !transitioning) { + transitioning = true; + CoolUtil.playMenuSFX(CONFIRM); + FlxG.camera.flash(FlxColor.WHITE, 1, function() { + FlxG.camera.fade(FlxColor.BLACK, 2.5, false, goToTitle); + }); + } + } + #end + if (controls.ACCEPT && transitioning) { FlxG.camera.stopFX(); FlxG.camera.visible = false; goToTitle(); diff --git a/source/funkin/menus/FreeplayState.hx b/source/funkin/menus/FreeplayState.hx index 7ca66b022..7bc8cfa98 100644 --- a/source/funkin/menus/FreeplayState.hx +++ b/source/funkin/menus/FreeplayState.hx @@ -108,6 +108,9 @@ class FreeplayState extends MusicBeatState curSelected = k; } } + + #if mobile if (funkin.backend.assets.ModsFolder.currentModFolder == null) for (song in songs) song.difficulties = ['EASY', 'NORMAL', 'HARD']; #end // mobile temporary fix + if (songs[curSelected] != null) { for(k=>diff in songs[curSelected].difficulties) { if (diff == Options.freeplayLastDifficulty) { @@ -172,6 +175,8 @@ class FreeplayState extends MusicBeatState changeCoopMode(0, true); interpColor = new FlxInterpolateColor(bg.color); + + addVirtualPad('LEFT_FULL', 'A_B_X_Y'); } #if PRELOAD_ALL @@ -218,7 +223,7 @@ class FreeplayState extends MusicBeatState if (canSelect) { changeSelection((controls.UP_P ? -1 : 0) + (controls.DOWN_P ? 1 : 0)); changeDiff((controls.LEFT_P ? -1 : 0) + (controls.RIGHT_P ? 1 : 0)); - changeCoopMode((FlxG.keys.justPressed.TAB ? 1 : 0)); + changeCoopMode(((virtualPad.buttonX.justPressed || FlxG.keys.justPressed.TAB) ? 1 : 0)); // putting it before so that its actually smooth updateOptionsAlpha(); } @@ -256,7 +261,7 @@ class FreeplayState extends MusicBeatState } #if sys - if (FlxG.keys.justPressed.EIGHT && Sys.args().contains("-livereload")) + if (virtualPad.buttonY.justPressed || FlxG.keys.justPressed.EIGHT && Sys.args().contains("-livereload")) convertChart(); #end @@ -286,7 +291,8 @@ class FreeplayState extends MusicBeatState public function select() { updateCoopModes(); - if (songs[curSelected].difficulties.length <= 0) return; + if (songs[curSelected].difficulties.length <= 0) + return; var event = event("onSelect", EventManager.get(FreeplaySongSelectEvent).recycle(songs[curSelected].name, songs[curSelected].difficulties[curDifficulty], __opponentMode, __coopMode)); @@ -346,11 +352,12 @@ class FreeplayState extends MusicBeatState /** * Array containing all labels for Co-Op / Opponent modes. */ - public var coopLabels:Array = [ - "[TAB] Solo", - "[TAB] Opponent Mode", - "[TAB] Co-Op Mode", - "[TAB] Co-Op Mode (Switched)" + public var coopLabels:Array = MobileControls.mobileC ? ['[X] Solo', '[X] Opponent Mode'] : + [ + '[TAB] Solo', + '[TAB] Opponent Mode', + '[TAB] Co-Op Mode', + '[TAB] Co-Op Mode (Switched)' ]; /** @@ -363,7 +370,13 @@ class FreeplayState extends MusicBeatState if (!songs[curSelected].coopAllowed && !songs[curSelected].opponentModeAllowed) return; var bothEnabled = songs[curSelected].coopAllowed && songs[curSelected].opponentModeAllowed; - var event = event("onChangeCoopMode", EventManager.get(MenuChangeEvent).recycle(curCoopMode, FlxMath.wrap(curCoopMode + change, 0, bothEnabled ? 3 : 1), change)); + var changeThingy:Int = -1; + if(MobileControls.mobileC) + changeThingy = FlxMath.wrap(curCoopMode + change, 0, 1); + else + changeThingy = FlxMath.wrap(curCoopMode + change, 0, bothEnabled ? 3 : 1); + + var event = event("onChangeCoopMode", EventManager.get(MenuChangeEvent).recycle(curCoopMode, changeThingy, change)); if (event.cancelled) return; diff --git a/source/funkin/menus/GitarooPause.hx b/source/funkin/menus/GitarooPause.hx index cff8aec9f..652736572 100644 --- a/source/funkin/menus/GitarooPause.hx +++ b/source/funkin/menus/GitarooPause.hx @@ -46,6 +46,8 @@ class GitarooPause extends MusicBeatState changeThing(); super.create(); + + addVirtualPad('LEFT_RIGHT', 'A'); } override function update(elapsed:Float) diff --git a/source/funkin/menus/MainMenuState.hx b/source/funkin/menus/MainMenuState.hx index 4d30a2621..a581f053c 100644 --- a/source/funkin/menus/MainMenuState.hx +++ b/source/funkin/menus/MainMenuState.hx @@ -12,6 +12,7 @@ import lime.app.Application; import funkin.backend.scripting.events.*; import funkin.options.OptionsMenu; +import mobile.funkin.menus.MobileControlSelectSubState; using StringTools; @@ -75,13 +76,16 @@ class MainMenuState extends MusicBeatState } FlxG.camera.follow(camFollow, null, 0.06); + var modsKey:String = MobileControls.mobileC ? "M" : controls.getKeyName(SWITCHMOD); - versionText = new FunkinText(5, FlxG.height - 2, 0, 'Codename Engine v${Application.current.meta.get('version')}\nCommit ${funkin.backend.system.macros.GitCommitMacro.commitNumber} (${funkin.backend.system.macros.GitCommitMacro.commitHash})\n[${controls.getKeyName(SWITCHMOD)}] Open Mods menu\n'); + versionText = new FunkinText(5, FlxG.height - 2, 0, 'Codename Engine v${Application.current.meta.get('version')}\nCommit ${funkin.backend.system.macros.GitCommitMacro.commitNumber} (${funkin.backend.system.macros.GitCommitMacro.commitHash})\n[$modsKey}] Open Mods menu\n'); versionText.y -= versionText.height; versionText.scrollFactor.set(); add(versionText); changeItem(); + + addVirtualPad('UP_DOWN', 'A_B_M_E'); } var selectedSomethin:Bool = false; @@ -95,7 +99,7 @@ class MainMenuState extends MusicBeatState if (!selectedSomethin) { if (canAccessDebugMenus) { - if (FlxG.keys.justPressed.SEVEN) { + if (FlxG.keys.justPressed.SEVEN || virtualPad.buttonE.justPressed) { persistentUpdate = false; persistentDraw = true; openSubState(new funkin.editors.EditorPicker()); @@ -119,7 +123,7 @@ class MainMenuState extends MusicBeatState FlxG.switchState(new TitleState()); #if MOD_SUPPORT - if (controls.SWITCHMOD) { + if (controls.SWITCHMOD || virtualPad.buttonM.justPressed) { openSubState(new ModSwitchMenu()); persistentUpdate = false; persistentDraw = true; @@ -141,6 +145,12 @@ class MainMenuState extends MusicBeatState }); } + override function closeSubState() { + super.closeSubState(); + removeVirtualPad(); + addVirtualPad('UP_DOWN', 'A_B_M_E'); + } + public override function switchTo(nextState:FlxState):Bool { try { menuItems.forEach(function(spr:FlxSprite) { diff --git a/source/funkin/menus/ModSwitchMenu.hx b/source/funkin/menus/ModSwitchMenu.hx index 1b23b9d2f..fcfc38da4 100644 --- a/source/funkin/menus/ModSwitchMenu.hx +++ b/source/funkin/menus/ModSwitchMenu.hx @@ -34,6 +34,8 @@ class ModSwitchMenu extends MusicBeatSubstate { } add(alphabets); changeSelection(0, true); + + addVirtualPad('UP_DOWN', 'A_B'); } public override function update(elapsed:Float) { diff --git a/source/funkin/menus/PauseSubState.hx b/source/funkin/menus/PauseSubState.hx index fb2326e5c..79e35c044 100644 --- a/source/funkin/menus/PauseSubState.hx +++ b/source/funkin/menus/PauseSubState.hx @@ -14,6 +14,7 @@ import funkin.options.keybinds.KeybindsOptions; import funkin.menus.StoryMenuState; import funkin.backend.system.Conductor; import funkin.backend.utils.FunkinParentDisabler; +import mobile.funkin.menus.MobileControlSelectSubState; class PauseSubState extends MusicBeatSubstate { @@ -108,6 +109,9 @@ class PauseSubState extends MusicBeatSubstate pauseScript.call("postCreate"); game.updateDiscordPresence(); + + addVirtualPad('UP_DOWN', 'A'); + addVirtualPadCamera(); } override function update(elapsed:Float) @@ -150,8 +154,9 @@ class PauseSubState extends MusicBeatSubstate game.registerSmoothTransition(); FlxG.resetState(); case "Change Controls": - persistentDraw = false; - openSubState(new KeybindsOptions()); + persistentUpdate = false; + removeVirtualPad(); + openSubState(MobileControls.mobileC ? new MobileControlSelectSubState() : new KeybindsOptions()); case "Change Options": FlxG.switchState(new OptionsMenu()); case "Exit to charter": @@ -187,6 +192,14 @@ class PauseSubState extends MusicBeatSubstate super.destroy(); } + override function closeSubState() { + persistentUpdate = true; + super.closeSubState(); + removeVirtualPad(); + addVirtualPad('UP_DOWN', 'A'); + addVirtualPadCamera(); + } + function changeSelection(change:Int = 0):Void { var event = EventManager.get(MenuChangeEvent).recycle(curSelected, FlxMath.wrap(curSelected + change, 0, menuItems.length-1), change, change != 0); diff --git a/source/funkin/menus/PlaytestingWarningSubstate.hx b/source/funkin/menus/PlaytestingWarningSubstate.hx index e366bf9f1..f9b5aa469 100644 --- a/source/funkin/menus/PlaytestingWarningSubstate.hx +++ b/source/funkin/menus/PlaytestingWarningSubstate.hx @@ -68,6 +68,8 @@ class PlaytestingWarningSubstate extends MusicBeatSubstate curSelected = options.length-1; changeSelection(0); + + addVirtualPad('LEFT_RIGHT', 'A'); } var sinner:Float = 0; diff --git a/source/funkin/menus/StoryMenuState.hx b/source/funkin/menus/StoryMenuState.hx index 27d700d7a..06d469921 100644 --- a/source/funkin/menus/StoryMenuState.hx +++ b/source/funkin/menus/StoryMenuState.hx @@ -118,6 +118,8 @@ class StoryMenuState extends MusicBeatState { DiscordUtil.call("onMenuLoaded", ["Story Menu"]); CoolUtil.playMenuSong(); + + addVirtualPad('LEFT_FULL', 'A_B'); } var __lastDifficultyTween:FlxTween; diff --git a/source/funkin/menus/TitleState.hx b/source/funkin/menus/TitleState.hx index 4aca30dbf..a6e11f518 100644 --- a/source/funkin/menus/TitleState.hx +++ b/source/funkin/menus/TitleState.hx @@ -119,17 +119,13 @@ class TitleState extends MusicBeatState { if (FlxG.keys.justPressed.F) FlxG.fullscreen = !FlxG.fullscreen; - var pressedEnter:Bool = FlxG.keys.justPressed.ENTER; + var pressedEnter:Bool = controls.ACCEPT; - #if mobile - for (touch in FlxG.touches.list) - { - if (touch.justPressed) - { - pressedEnter = true; - } + if (MobileControls.mobileC) { + for (touch in FlxG.touches.list) + if (touch.justPressed) + pressedEnter = true; } - #end var gamepad:FlxGamepad = FlxG.gamepads.lastActive; diff --git a/source/funkin/menus/credits/CreditsCodename.hx b/source/funkin/menus/credits/CreditsCodename.hx index 579360edf..08da585d7 100644 --- a/source/funkin/menus/credits/CreditsCodename.hx +++ b/source/funkin/menus/credits/CreditsCodename.hx @@ -17,7 +17,7 @@ class CreditsCodename extends funkin.options.OptionsScreen { public override function new() { - super("Codename Engine", "All the contributors of the engine! - Press RESET to update the list (One reset per 2 minutes)."); + super("Codename Engine", "All the contributors of the engine! - Press RESET to update the list (One reset per 2 minutes).", null, 'UP_DOWN', 'A_B'); tryUpdating(true); } diff --git a/source/funkin/menus/credits/CreditsMain.hx b/source/funkin/menus/credits/CreditsMain.hx index 847d2b647..02143bc10 100644 --- a/source/funkin/menus/credits/CreditsMain.hx +++ b/source/funkin/menus/credits/CreditsMain.hx @@ -42,7 +42,8 @@ class CreditsMain extends TreeMenu { CoolUtil.openURL("https://ninja-muffin24.itch.io/funkin"); })); - main = new OptionsScreen('Credits', 'The people who made this possible!', items); + main = new OptionsScreen('Credits', 'The people who made this possible!', items, 'UP_DOWN', 'A_B'); + super.create(); DiscordUtil.call("onMenuLoaded", ["Credits Menu"]); @@ -96,7 +97,7 @@ class CreditsMain extends TreeMenu { case "menu": credsMenus.push(new TextOption(name + " >", desc, function() { - optionsTree.add(new OptionsScreen(name, desc, parseCreditsFromXML(node, source))); + optionsTree.add(new OptionsScreen(name, desc, parseCreditsFromXML(node, source), 'UP_DOWN', 'A_B')); })); } } diff --git a/source/funkin/options/Options.hx b/source/funkin/options/Options.hx index a9bf72ac1..81b50db84 100644 --- a/source/funkin/options/Options.hx +++ b/source/funkin/options/Options.hx @@ -33,15 +33,25 @@ class Options public static var splashesEnabled:Bool = true; public static var hitWindow:Float = 250; public static var songOffset:Float = 0; - public static var framerate:Int = 120; - public static var gpuOnlyBitmaps:Bool = #if (mac || web) false #else true #end; // causes issues on mac and web + public static var framerate:Int = #if !mobile 120 #else 60 #end; + public static var gpuOnlyBitmaps:Bool = #if (mac || web || mobile) false #else true #end; // causes issues on mac, web and mobile public static var lastLoadedMod:String = null; + // mobile options + #if mobile + public static var screenTimeOut:Bool = false; + public static var wideScreen:Bool = false; + #end + public static var hideHitbox:Bool = false; + public static var hitboxType:String = 'gradient'; + public static var controlsAlpha:Float = FlxG.onMobile ? 0.6 : 0; + #if android public static var storageType:String = "EXTERNAL_DATA"; #end + /** * EDITORS SETTINGS */ - public static var intensiveBlur:Bool = true; + public static var intensiveBlur:Bool = #if mobile false #else true #end; public static var editorSFX:Bool = true; public static var editorPrettyPrint:Bool = false; public static var maxUndos:Int = 120; diff --git a/source/funkin/options/OptionsMenu.hx b/source/funkin/options/OptionsMenu.hx index 497bfd9b9..d36aef62b 100644 --- a/source/funkin/options/OptionsMenu.hx +++ b/source/funkin/options/OptionsMenu.hx @@ -5,6 +5,8 @@ import haxe.xml.Access; import funkin.options.type.*; import funkin.options.categories.*; import funkin.options.TreeMenu; +import haxe.ds.Map; +import mobile.flixel.FlxVirtualPad; class OptionsMenu extends TreeMenu { public static var mainOptions:Array = [ @@ -24,6 +26,11 @@ class OptionsMenu extends TreeMenu { desc: 'Change Appearance options such as Flashing menus...', state: AppearanceOptions }, + { + name: 'Mobile Options >', + desc: 'Change Options Related To Mobile & Mobile Controls', + state: MobileOptions + }, { name: 'Miscellaneous >', desc: 'Use this menu to reset save data or engine settings.', @@ -80,7 +87,8 @@ class OptionsMenu extends TreeMenu { main.add(o); } } - + addVirtualPad('UP_DOWN', 'A_B'); + addVirtualPadCamera(false); } public override function exit() { @@ -92,6 +100,7 @@ class OptionsMenu extends TreeMenu { /** * XML STUFF */ + var vpadMap:Map> = new Map(); public function parseOptionsFromXML(xml:Access):Array { var options:Array = []; @@ -136,8 +145,14 @@ class OptionsMenu extends TreeMenu { case "menu": options.push(new TextOption(name + " >", desc, function() { - optionsTree.add(new OptionsScreen(name, desc, parseOptionsFromXML(node))); + optionsTree.add(new OptionsScreen(name, desc, parseOptionsFromXML(node), vpadMap.exists(name) ? vpadMap.get(name)[0] : 'NONE', vpadMap.exists(name) ? vpadMap.get(name)[1] : 'NONE')); })); + case "virtualPad": + var arr = [ + node.getAtt("dpadMode") == null ? MusicBeatState.instance.virtualPad.curDPadMode.getName() : node.getAtt("dpadMode"), + node.getAtt("actionMode") == null ? MusicBeatState.instance.virtualPad.curActionMode.getName() : node.getAtt("actionMode") + ]; + vpadMap.set(node.getAtt("menuName"), arr); } } diff --git a/source/funkin/options/OptionsScreen.hx b/source/funkin/options/OptionsScreen.hx index 455808215..b25474792 100644 --- a/source/funkin/options/OptionsScreen.hx +++ b/source/funkin/options/OptionsScreen.hx @@ -1,6 +1,7 @@ package funkin.options; import funkin.options.type.OptionType; +import mobile.objects.MobileControls; class OptionsScreen extends FlxTypedSpriteGroup { public static var optionHeight:Float = 120; @@ -15,19 +16,30 @@ class OptionsScreen extends FlxTypedSpriteGroup { public var name:String; public var desc:String; - public function new(name:String, desc:String, ?options:Array) { + public var dpadMode:String = 'NONE'; + public var actionMode:String = 'NONE'; + public var prevVPadModes:Array = []; + + public function new(name:String, desc:String, ?options:Array, dpadMode:String = 'NONE', actionMode:String = 'NONE') { super(); this.name = name; this.desc = desc; if (options != null) for(o in options) add(o); + if(MusicBeatState.instance.virtualPad != null) + prevVPadModes = [MusicBeatState.instance.virtualPad.curDPadMode.getName(), MusicBeatState.instance.virtualPad.curActionMode.getName()]; + this.dpadMode = dpadMode; + this.actionMode = actionMode; + MusicBeatState.instance.removeVirtualPad(); + MusicBeatState.instance.addVirtualPad(dpadMode, actionMode); + MusicBeatState.instance.addVirtualPadCamera(false); } public override function update(elapsed:Float) { super.update(elapsed); var controls = PlayerSettings.solo.controls; - - changeSelection((controls.UP_P ? -1 : 0) + (controls.DOWN_P ? 1 : 0) - FlxG.mouse.wheel); + var wheel = FlxG.mouse.wheel; + changeSelection((controls.UP_P ? -1 : 0) + (controls.DOWN_P ? 1 : 0) - wheel); x = id * FlxG.width; for(k=>option in members) { if(option == null) continue; @@ -45,19 +57,24 @@ class OptionsScreen extends FlxTypedSpriteGroup { if (members.length > 0) { members[curSelected].selected = true; - if (controls.ACCEPT || FlxG.mouse.justReleased) + if (controls.ACCEPT || (FlxG.mouse.justReleased && !MobileControls.mobileC)) members[curSelected].onSelect(); if (controls.LEFT_P) members[curSelected].onChangeSelection(-1); if (controls.RIGHT_P) members[curSelected].onChangeSelection(1); } - if (controls.BACK || FlxG.mouse.justReleasedRight) + if (controls.BACK || (FlxG.mouse.justReleasedRight && !MobileControls.mobileC)) close(); } public function close() { onClose(this); + if(prevVPadModes.length > 0){ + MusicBeatState.instance.removeVirtualPad(); + MusicBeatState.instance.addVirtualPad(prevVPadModes[0], prevVPadModes[1]); + MusicBeatState.instance.addVirtualPadCamera(false); + } } public function changeSelection(sel:Int, force:Bool = false) { diff --git a/source/funkin/options/categories/AppearanceOptions.hx b/source/funkin/options/categories/AppearanceOptions.hx index 926213431..de9ab5c52 100644 --- a/source/funkin/options/categories/AppearanceOptions.hx +++ b/source/funkin/options/categories/AppearanceOptions.hx @@ -2,7 +2,7 @@ package funkin.options.categories; class AppearanceOptions extends OptionsScreen { public override function new() { - super("Appearance", "Change Appearance options such as Flashing menus..."); + super("Appearance", "Change Appearance options such as Flashing menus...", null, 'LEFT_FULL', 'A_B'); add(new NumOption( "Framerate", "Pretty self explanatory, isn't it?", diff --git a/source/funkin/options/categories/GameplayOptions.hx b/source/funkin/options/categories/GameplayOptions.hx index 15c0ba603..92e2b5fae 100644 --- a/source/funkin/options/categories/GameplayOptions.hx +++ b/source/funkin/options/categories/GameplayOptions.hx @@ -9,7 +9,7 @@ class GameplayOptions extends OptionsScreen { var offsetSetting:NumOption; public override function new() { - super("Gameplay", 'Change Gameplay options such as Downscroll, Scroll Speed, Naughtyness...'); + super("Gameplay", 'Change Gameplay options such as Downscroll, Scroll Speed, Naughtyness...', null, 'LEFT_FULL', 'A_B'); add(new Checkbox( "Downscroll", "If checked, notes will go from up to down instead of down to up, as if they're falling.", diff --git a/source/funkin/options/categories/MiscOptions.hx b/source/funkin/options/categories/MiscOptions.hx index 2aecb20fd..5da7dd85f 100644 --- a/source/funkin/options/categories/MiscOptions.hx +++ b/source/funkin/options/categories/MiscOptions.hx @@ -3,7 +3,9 @@ package funkin.options.categories; class MiscOptions extends OptionsScreen { public override function new() { - super("Miscellaneous", "Use this menu to reset save data or engine settings."); + dpadMode = 'NONE'; + actionMode = 'A_B'; + super("Miscellaneous", "Use this menu to reset save data or engine settings.", null, #if UPDATE_CHECKING 'UP_DOWN' #else 'NONE' #end, 'A_B'); #if UPDATE_CHECKING add(new Checkbox( "Enable Nightly Updates", diff --git a/source/funkin/options/categories/MobileOptions.hx b/source/funkin/options/categories/MobileOptions.hx new file mode 100644 index 000000000..414a12bb7 --- /dev/null +++ b/source/funkin/options/categories/MobileOptions.hx @@ -0,0 +1,134 @@ +package funkin.options.categories; + +import flixel.FlxG; +import flixel.input.keyboard.FlxKey; +import flixel.util.FlxTimer; +import funkin.backend.MusicBeatState; +import funkin.options.Options; +import lime.system.System as LimeSystem; +#if android +import mobile.funkin.backend.utils.SUtil; +#end +#if sys +import sys.io.File; +#end + +class MobileOptions extends OptionsScreen { + var canEnter:Bool = true; + #if android + final lastStorageType:String = Options.storageType; + var externalPaths:Array = SUtil.checkExternalPaths(true); + var typeNames:Array = ['Data', 'Obb', 'Media', 'External']; + var typeVars:Array = ['EXTERNAL_DATA', 'EXTERNAL_OBB', 'EXTERNAL_MEDIA', 'EXTERNAL']; + #end + + public override function new() { + #if android + if (!externalPaths.contains('\n')) + { + typeNames = typeNames.concat(externalPaths); + typeVars = typeVars.concat(externalPaths); + } + #end + dpadMode = 'LEFT_FULL'; + actionMode = 'A_B'; + super("Mobile", 'Change Mobile Related Things such as Controls alpha, screen timeout....', null, 'LEFT_FULL', 'A_B'); + add(new TextOption( + "Mobile Controls", + "Choose which control to play with (hitbox, vpad left, vpad right, custom...).", + openMobileControlsMenu)); + add(new NumOption( + "Controls Alpha", + "Change how transparent the mobile controls should be", + 0.0, // minimum + 1.0, // maximum + 0.1, // change + "controlsAlpha", // save name or smth + changeControlsAlpha)); // callback + add(new ArrayOption( + "Hitbox Design", + "Choose how your hitbox should look like!", + ['gradient', 'noGradient', 'hidden'], + ['Gradient', 'No Gradient', 'Hidden'], + 'hitboxType')); + #if mobile + add(new Checkbox( + "Allow Screen Timeout", + "If checked, The phone will enter sleep mode if the player is inactive.", + "screenTimeOut")); + add(new Checkbox( + "Wide Screen", + "If checked, It'll change aspect ratio of the game.", + "wideScreen")); + #end + #if android + add(new ArrayOption( + "Storage Type", + "Choose which folder Codename Engine should use! (CHANGING THIS MAKES DELETE YOUR OLD FOLDER!!)", + typeVars, + typeNames, + 'storageType')); + #end + } + + override function update(elapsed) { + #if mobile + final lastScreenTimeOut:Bool = Options.screenTimeOut; + final lastWideScreen:Bool = Options.wideScreen; + if (lastScreenTimeOut != Options.screenTimeOut) LimeSystem.allowScreenTimeout = Options.screenTimeOut; + if (lastWideScreen != Options.wideScreen) FlxG.scaleMode = new mobile.funkin.backend.system.MobileRatioScaleMode(); + #end + super.update(elapsed); + } + + override public function destroy() { + #if android + if (lastStorageType != Options.storageType) { + onStorageChange(); + funkin.backend.utils.NativeAPI.showMessageBox('Notice!', 'Storage Type has been changed and you needed restart the game!!\nPress OK to close the game.'); + LimeSystem.exit(0); + } + #end + } + + function changeControlsAlpha(alpha) { + MusicBeatState.instance.virtualPad.alpha = alpha; + if (mobile.objects.MobileControls.mobileC) { + FlxG.sound.volumeUpKeys = []; + FlxG.sound.volumeDownKeys = []; + FlxG.sound.muteKeys = []; + } else { + FlxG.sound.volumeUpKeys = [FlxKey.PLUS, FlxKey.NUMPADPLUS]; + FlxG.sound.volumeDownKeys = [FlxKey.MINUS, FlxKey.NUMPADMINUS]; + FlxG.sound.muteKeys = [FlxKey.ZERO, FlxKey.NUMPADZERO]; + } + } + + function openMobileControlsMenu() { + if(!canEnter) return; + canEnter = false; + FlxG.state.persistentUpdate = false; + MusicBeatState.instance.camVPad.visible = false; + FlxG.state.openSubState(new mobile.funkin.menus.MobileControlSelectSubState(() -> { + MusicBeatState.instance.camVPad.visible = true; + FlxG.state.persistentUpdate = true; + new FlxTimer().start(0.2, (tmr:FlxTimer) -> canEnter = true); + })); + } + + #if android + function onStorageChange():Void + { + File.saveContent(LimeSystem.applicationStorageDirectory + 'storagetype.txt', Options.storageType); + + var lastStoragePath:String = StorageType.fromStrForce(lastStorageType) + '/'; + + try + { + Sys.command('rm', ['-rf', lastStoragePath]); + } + catch (e:haxe.Exception) + trace('Failed to remove last directory. (${e.message})'); + } + #end +} diff --git a/source/funkin/options/keybinds/KeybindsOptions.hx b/source/funkin/options/keybinds/KeybindsOptions.hx index e4e7d26cd..0d5af6c33 100644 --- a/source/funkin/options/keybinds/KeybindsOptions.hx +++ b/source/funkin/options/keybinds/KeybindsOptions.hx @@ -162,6 +162,9 @@ class KeybindsOptions extends MusicBeatSubstate { } add(alphabets); add(camFollow); + + addVirtualPad('LEFT_FULL', 'A_B'); + addVirtualPadCamera(); } public override function destroy() { diff --git a/source/mobile/flixel/FlxButton.hx b/source/mobile/flixel/FlxButton.hx new file mode 100644 index 000000000..f543a2ee8 --- /dev/null +++ b/source/mobile/flixel/FlxButton.hx @@ -0,0 +1,587 @@ +package mobile.flixel; + +import flixel.FlxCamera; +import flixel.FlxG; +import flixel.FlxSprite; +import flixel.graphics.atlas.FlxAtlas; +import flixel.graphics.atlas.FlxNode; +import flixel.graphics.frames.FlxTileFrames; +import flixel.input.FlxInput; +import flixel.input.FlxPointer; +import flixel.input.IFlxInput; +import flixel.input.touch.FlxTouch; +import flixel.math.FlxPoint; +import flixel.sound.FlxSound; +import flixel.text.FlxText; +import flixel.util.FlxDestroyUtil; + +/** + * A simple button class that calls a function when clicked by the touch. + */ +class FlxButton extends FlxTypedButton +{ + /** + * Used with public variable status, means not highlighted or pressed. + */ + public static inline var NORMAL:Int = 0; + + /** + * Used with public variable status, means highlighted (usually from touch over). + */ + public static inline var HIGHLIGHT:Int = 1; + + /** + * Used with public variable status, means pressed (usually from touch click). + */ + public static inline var PRESSED:Int = 2; + + /** + * Shortcut to setting label.text + */ + public var text(get, set):String; + + /** + * Creates a new `FlxButton` object with a gray background + * and a callback function on the UI thread. + * + * @param X The x position of the button. + * @param Y The y position of the button. + * @param Text The text that you want to appear on the button. + * @param OnClick The function to call whenever the button is clicked. + */ + public function new(X:Float = 0, Y:Float = 0, ?Text:String, ?OnClick:Void->Void):Void + { + super(X, Y, OnClick); + + for (point in labelOffsets) + point.set(point.x - 1, point.y + 3); + + initLabel(Text); + } + + /** + * Updates the size of the text field to match the button. + */ + override function resetHelpers():Void + { + super.resetHelpers(); + + if (label != null) + { + label.fieldWidth = label.frameWidth = Std.int(width); + label.size = label.size; // Calls set_size(), don't remove! + } + } + + inline function initLabel(Text:String):Void + { + if (Text != null) + { + label = new FlxText(x + labelOffsets[NORMAL].x, y + labelOffsets[NORMAL].y, 80, Text); + label.setFormat(null, 8, 0x333333, 'center'); + label.alpha = labelAlphas[status]; + label.drawFrame(true); + } + } + + inline function get_text():String + { + return (label != null) ? label.text : null; + } + + inline function set_text(Text:String):String + { + if (label == null) + initLabel(Text); + else + label.text = Text; + return Text; + } +} + +/** + * A simple button class that calls a function when clicked by the touch. + */ +#if !display +@:generic +#end +class FlxTypedButton extends FlxSprite implements IFlxInput +{ + /** + * The label that appears on the button. Can be any `FlxSprite`. + */ + public var label(default, set):T; + + /** + * What offsets the `label` should have for each status. + */ + public var labelOffsets:Array = [FlxPoint.get(), FlxPoint.get(), FlxPoint.get(0, 1)]; + + /** + * What alpha value the label should have for each status. Default is `[0.8, 1.0, 0.5]`. + * Multiplied with the button's `alpha`. + */ + public var labelAlphas:Array = [0.8, 1.0, 0.5]; + + /** + * What animation should be played for each status. + * Default is ['normal', 'highlight', 'pressed']. + */ + public var statusAnimations:Array = ['normal', 'highlight', 'pressed']; + + /** + * Whether you can press the button simply by releasing the touch button over it (default). + * If false, the input has to be pressed while hovering over the button. + */ + public var allowSwiping:Bool = true; + + /** + * Whether the button can use multiple fingers on it. + */ + public var multiTouch:Bool = false; + + /** + * Maximum distance a pointer can move to still trigger event handlers. + * If it moves beyond this limit, onOut is triggered. + * Defaults to `Math.POSITIVE_INFINITY` (i.e. no limit). + */ + public var maxInputMovement:Float = Math.POSITIVE_INFINITY; + + /** + * Shows the current state of the button, either `FlxButton.NORMAL`, + * `FlxButton.HIGHLIGHT` or `FlxButton.PRESSED`. + */ + public var status(default, set):Int; + + /** + * The properties of this button's `onUp` event (callback function, sound). + */ + public var onUp(default, null):FlxButtonEvent; + + /** + * The properties of this button's `onDown` event (callback function, sound). + */ + public var onDown(default, null):FlxButtonEvent; + + /** + * The properties of this button's `onOver` event (callback function, sound). + */ + public var onOver(default, null):FlxButtonEvent; + + /** + * The properties of this button's `onOut` event (callback function, sound). + */ + public var onOut(default, null):FlxButtonEvent; + + public var justReleased(get, never):Bool; + public var released(get, never):Bool; + public var pressed(get, never):Bool; + public var justPressed(get, never):Bool; + + /** + * We cast label to a `FlxSprite` for internal operations to avoid Dynamic casts in C++ + */ + var _spriteLabel:FlxSprite; + + /** + * We don't need an ID here, so let's just use `Int` as the type. + */ + var input:FlxInput; + + /** + * The input currently pressing this button, if none, it's `null`. Needed to check for its release. + */ + var currentInput:IFlxInput; + + var lastStatus = -1; + + /** + * Creates a new `FlxTypedButton` object with a gray background. + * + * @param X The x position of the button. + * @param Y The y position of the button. + * @param OnClick The function to call whenever the button is clicked. + */ + public function new(X:Float = 0, Y:Float = 0, ?OnClick:Void->Void):Void + { + super(X, Y); + + loadDefaultGraphic(); + + onUp = new FlxButtonEvent(OnClick); + onDown = new FlxButtonEvent(); + onOver = new FlxButtonEvent(); + onOut = new FlxButtonEvent(); + + status = multiTouch ? FlxButton.NORMAL : FlxButton.HIGHLIGHT; + + // Since this is a UI element, the default scrollFactor is (0, 0) + scrollFactor.set(); + + statusAnimations[FlxButton.HIGHLIGHT] = 'normal'; + labelAlphas[FlxButton.HIGHLIGHT] = 1; + + input = new FlxInput(0); + } + + override public function graphicLoaded():Void + { + super.graphicLoaded(); + + setupAnimation('normal', FlxButton.NORMAL); + setupAnimation('pressed', FlxButton.PRESSED); + } + + function loadDefaultGraphic():Void + loadGraphic('flixel/images/ui/button.png', true, 80, 20); + + function setupAnimation(animationName:String, frameIndex:Int):Void + { + // make sure the animation doesn't contain an invalid frame + frameIndex = Std.int(Math.min(frameIndex, #if (flixel < "5.3.0") animation.frames #else animation.numFrames #end - 1)); + animation.add(animationName, [frameIndex]); + } + + /** + * Called by the game state when state is changed (if this object belongs to the state) + */ + override public function destroy():Void + { + label = FlxDestroyUtil.destroy(label); + _spriteLabel = null; + + onUp = FlxDestroyUtil.destroy(onUp); + onDown = FlxDestroyUtil.destroy(onDown); + onOver = FlxDestroyUtil.destroy(onOver); + onOut = FlxDestroyUtil.destroy(onOut); + + labelOffsets = FlxDestroyUtil.putArray(labelOffsets); + + labelAlphas = null; + currentInput = null; + input = null; + + super.destroy(); + } + + /** + * Called by the game loop automatically, handles touch over and click detection. + */ + override public function update(elapsed:Float):Void + { + super.update(elapsed); + + if (visible) + { + // Update the button, but only if at least either touches are enabled + #if FLX_POINTER_INPUT + updateButton(); + #end + + // Trigger the animation only if the button's input status changes. + if (lastStatus != status) + { + updateStatusAnimation(); + lastStatus = status; + } + } + + input.update(); + } + + function updateStatusAnimation():Void + animation.play(statusAnimations[status]); + + /** + * Just draws the button graphic and text label to the screen. + */ + override public function draw():Void + { + super.draw(); + + if (_spriteLabel != null && _spriteLabel.visible) + { + _spriteLabel.cameras = cameras; + _spriteLabel.draw(); + } + } + + #if FLX_DEBUG + /** + * Helper function to draw the debug graphic for the label as well. + */ + override public function drawDebug():Void + { + super.drawDebug(); + + if (_spriteLabel != null) + _spriteLabel.drawDebug(); + } + #end + + /** + * Stamps button's graphic and label onto specified atlas object and loads graphic from this atlas. + * This method assumes that you're using whole image for button's graphic and image has no spaces between frames. + * And it assumes that label is a single frame sprite. + * + * @param atlas Atlas to stamp graphic to. + * @return Whether the button's graphic and label's graphic were stamped on the atlas successfully. + */ + public function stampOnAtlas(atlas:FlxAtlas):Bool + { + var buttonNode:FlxNode = atlas.addNode(graphic.bitmap, graphic.key); + var result:Bool = (buttonNode != null); + + if (buttonNode != null) + { + var buttonFrames:FlxTileFrames = cast frames; + var tileSize:FlxPoint = FlxPoint.get(buttonFrames.tileSize.x, buttonFrames.tileSize.y); + var tileFrames:FlxTileFrames = buttonNode.getTileFrames(tileSize); + this.frames = tileFrames; + } + + if (result && label != null) + { + var labelNode:FlxNode = atlas.addNode(label.graphic.bitmap, label.graphic.key); + result = result && (labelNode != null); + + if (labelNode != null) + label.frames = labelNode.getImageFrame(); + } + + return result; + } + + /** + * Basic button update logic - searches for overlaps with touches and + * the touch and calls `updateStatus()`. + */ + function updateButton():Void + { + var overlapFound = checkTouchOverlap(); + + if (currentInput != null && currentInput.justReleased && overlapFound) + onUpHandler(); + + if (status != FlxButton.NORMAL && (!overlapFound || (currentInput != null && currentInput.justReleased))) + onOutHandler(); + } + + function checkTouchOverlap():Bool + { + var overlap = false; + + for (camera in cameras) + for (touch in FlxG.touches.list) + if (checkInput(touch, touch, touch.justPressedPosition, camera)) + overlap = true; + + return overlap; + } + + function checkInput(pointer:FlxPointer, input:IFlxInput, justPressedPosition:FlxPoint, camera:FlxCamera):Bool + { + if (maxInputMovement != Math.POSITIVE_INFINITY + && justPressedPosition.distanceTo(pointer.getScreenPosition(FlxPoint.weak())) > maxInputMovement + && input == currentInput) + { + currentInput = null; + } + else if (overlapsPoint(pointer.getWorldPosition(camera, _point), true, camera)) + { + updateStatus(input); + return true; + } + + return false; + } + + /** + * Updates the button status by calling the respective event handler function. + */ + function updateStatus(input:IFlxInput):Void + { + if (input.justPressed) + { + currentInput = input; + onDownHandler(); + } + else if (status == FlxButton.NORMAL) + { + // Allow 'swiping' to press a button (dragging it over the button while pressed) + if (allowSwiping && input.pressed) + onDownHandler(); + else + onOverHandler(); + } + } + + function updateLabelPosition() + { + if (_spriteLabel != null) // Label positioning + { + _spriteLabel.x = (pixelPerfectPosition ? Math.floor(x) : x) + labelOffsets[status].x; + _spriteLabel.y = (pixelPerfectPosition ? Math.floor(y) : y) + labelOffsets[status].y; + } + } + + function updateLabelAlpha() + { + if (_spriteLabel != null && labelAlphas.length > status) + _spriteLabel.alpha = alpha * labelAlphas[status]; + } + + /** + * Internal function that handles the onUp event. + */ + function onUpHandler():Void + { + status = FlxButton.NORMAL; + input.release(); + currentInput = null; + onUp.fire(); // Order matters here, because onUp.fire() could cause a state change and destroy this object. + } + + /** + * Internal function that handles the onDown event. + */ + function onDownHandler():Void + { + status = FlxButton.PRESSED; + input.press(); + onDown.fire(); // Order matters here, because onDown.fire() could cause a state change and destroy this object. + } + + /** + * Internal function that handles the onOver event. + */ + function onOverHandler():Void + { + status = FlxButton.HIGHLIGHT; + onOver.fire(); // Order matters here, because onOver.fire() could cause a state change and destroy this object. + } + + /** + * Internal function that handles the onOut event. + */ + function onOutHandler():Void + { + status = FlxButton.NORMAL; + input.release(); + onOut.fire(); // Order matters here, because onOut.fire() could cause a state change and destroy this object. + } + + function set_label(Value:T):T + { + if (Value != null) + { + // use the same FlxPoint object for both + Value.scrollFactor.put(); + Value.scrollFactor = scrollFactor; + } + + label = Value; + _spriteLabel = label; + + updateLabelPosition(); + + return Value; + } + + function set_status(Value:Int):Int + { + status = Value; + updateLabelAlpha(); + return status; + } + + override function set_alpha(Value:Float):Float + { + super.set_alpha(Value); + updateLabelAlpha(); + return alpha; + } + + override function set_x(Value:Float):Float + { + super.set_x(Value); + updateLabelPosition(); + return x; + } + + override function set_y(Value:Float):Float + { + super.set_y(Value); + updateLabelPosition(); + return y; + } + + inline function get_justReleased():Bool + return input.justReleased; + + inline function get_released():Bool + return input.released; + + inline function get_pressed():Bool + return input.pressed; + + inline function get_justPressed():Bool + return input.justPressed; +} + +/** + * Helper function for `FlxButton` which handles its events. + */ +private class FlxButtonEvent implements IFlxDestroyable +{ + /** + * The callback function to call when this even fires. + */ + public var callback:Void->Void; + + #if FLX_SOUND_SYSTEM + /** + * The sound to play when this event fires. + */ + public var sound:FlxSound; + #end + + /** + * @param Callback The callback function to call when this even fires. + * @param sound The sound to play when this event fires. + */ + public function new(?Callback:Void->Void, ?sound:FlxSound):Void + { + callback = Callback; + + #if FLX_SOUND_SYSTEM + this.sound = sound; + #end + } + + /** + * Cleans up memory. + */ + public inline function destroy():Void + { + callback = null; + + #if FLX_SOUND_SYSTEM + sound = FlxDestroyUtil.destroy(sound); + #end + } + + /** + * Fires this event (calls the callback and plays the sound) + */ + public inline function fire():Void + { + if (callback != null) + callback(); + + #if FLX_SOUND_SYSTEM + if (sound != null) + sound.play(true); + #end + } +} \ No newline at end of file diff --git a/source/mobile/flixel/FlxVirtualPad.hx b/source/mobile/flixel/FlxVirtualPad.hx new file mode 100644 index 000000000..3a4fea9d4 --- /dev/null +++ b/source/mobile/flixel/FlxVirtualPad.hx @@ -0,0 +1,260 @@ +package mobile.flixel; + +import flixel.FlxG; +#if MOD_SUPPORT +import sys.FileSystem; +#end +import flixel.math.FlxPoint; +import funkin.options.Options; +import mobile.flixel.FlxButton; +import openfl.display.BitmapData; +import flixel.util.FlxDestroyUtil; +import flixel.graphics.FlxGraphic; +import funkin.backend.assets.Paths; +import mobile.objects.FlxButtonGroup; +import flixel.graphics.frames.FlxTileFrames; +import flixel.graphics.frames.FlxAtlasFrames; +import openfl.utils.Assets; +import haxe.ds.Map; +import flixel.util.typeLimit.OneOfTwo; + +enum FlxDPadMode +{ + UP_DOWN; + LEFT_RIGHT; + LEFT_FULL; + RIGHT_FULL; + NONE; +} + +enum FlxActionMode +{ + A; + B; + P; + A_B; + A_B_C; + A_B_E; + A_B_X_Y; + A_B_M_E; + A_B_C_X_Y; + A_B_C_X_Y_Z; + A_B_C_D_V_X_Y_Z; + NONE; +} + +/** + * A highly modified FlxVirtualPad. + * It's easy to customize the layout. + * + * @author Ka Wing Chin + * @author Mihai Alexandru (M.A. Jigsaw) + */ +class FlxVirtualPad extends FlxButtonGroup +{ + public var buttonLeft:FlxButton = new FlxButton(0, 0); + public var buttonUp:FlxButton = new FlxButton(0, 0); + public var buttonRight:FlxButton = new FlxButton(0, 0); + public var buttonDown:FlxButton = new FlxButton(0, 0); + public var buttonLeft2:FlxButton = new FlxButton(0, 0); + public var buttonUp2:FlxButton = new FlxButton(0, 0); + public var buttonRight2:FlxButton = new FlxButton(0, 0); + public var buttonDown2:FlxButton = new FlxButton(0, 0); + public var buttonA:FlxButton = new FlxButton(0, 0); + public var buttonB:FlxButton = new FlxButton(0, 0); + public var buttonC:FlxButton = new FlxButton(0, 0); + public var buttonD:FlxButton = new FlxButton(0, 0); + public var buttonE:FlxButton = new FlxButton(0, 0); + public var buttonF:FlxButton = new FlxButton(0, 0); + public var buttonG:FlxButton = new FlxButton(0, 0); + public var buttonH:FlxButton = new FlxButton(0, 0); + public var buttonI:FlxButton = new FlxButton(0, 0); + public var buttonJ:FlxButton = new FlxButton(0, 0); + public var buttonK:FlxButton = new FlxButton(0, 0); + public var buttonL:FlxButton = new FlxButton(0, 0); + public var buttonM:FlxButton = new FlxButton(0, 0); + public var buttonN:FlxButton = new FlxButton(0, 0); + public var buttonO:FlxButton = new FlxButton(0, 0); + public var buttonP:FlxButton = new FlxButton(0, 0); + public var buttonQ:FlxButton = new FlxButton(0, 0); + public var buttonR:FlxButton = new FlxButton(0, 0); + public var buttonS:FlxButton = new FlxButton(0, 0); + public var buttonT:FlxButton = new FlxButton(0, 0); + public var buttonU:FlxButton = new FlxButton(0, 0); + public var buttonV:FlxButton = new FlxButton(0, 0); + public var buttonW:FlxButton = new FlxButton(0, 0); + public var buttonX:FlxButton = new FlxButton(0, 0); + public var buttonY:FlxButton = new FlxButton(0, 0); + public var buttonZ:FlxButton = new FlxButton(0, 0); + + public var curDPadMode:FlxDPadMode = NONE; + public var curActionMode:FlxActionMode = NONE; + public static var dpadModes:Map; + public static var actionModes:Map; + + /** + * Create a gamepad. + * + * @param FlxDPadMode The D-Pad mode. `LEFT_FULL` for example. + * @param FlxActionMode The action buttons mode. `A_B_C` for example. + */ + public function new(DPad:OneOfTwo, Action:OneOfTwo) + { + super(); + var dpadMode:FlxDPadMode; + var actionMode:FlxActionMode; + + if(DPad is FlxDPadMode) + dpadMode = cast DPad; + else + dpadMode = cast getDPadModeByString(cast DPad); + + if(Action is FlxActionMode) + actionMode = cast DPad; + else + actionMode = cast getActionModeByString(cast Action); + curDPadMode = dpadMode; + curActionMode = actionMode; + switch (dpadMode) + { + case UP_DOWN: + add(buttonUp = createButton(0, FlxG.height - 258, 'up', 0x00FF00)); + add(buttonDown = createButton(0, FlxG.height - 131, 'down', 0x00FFFF)); + case LEFT_RIGHT: + add(buttonLeft = createButton(0, FlxG.height - 131, 'left', 0xFF00FF)); + add(buttonRight = createButton(127, FlxG.height - 131, 'right', 0xFF0000)); + case LEFT_FULL: + add(buttonUp = createButton(105, FlxG.height - 356, 'up', 0x00FF00)); + add(buttonLeft = createButton(0, FlxG.height - 246, 'left', 0xFF00FF)); + add(buttonRight = createButton(207, FlxG.height - 246, 'right', 0xFF0000)); + add(buttonDown = createButton(105, FlxG.height - 131, 'down', 0x00FFFF)); + case RIGHT_FULL: + add(buttonUp = createButton(FlxG.width - 258, FlxG.height - 404, 'up', 0x00FF00)); + add(buttonLeft = createButton(FlxG.width - 384, FlxG.height - 305, 'left', 0xFF00FF)); + add(buttonRight = createButton(FlxG.width - 132, FlxG.height - 305, 'right', 0xFF0000)); + add(buttonDown = createButton(FlxG.width - 258, FlxG.height - 197, 'down', 0x00FFFF)); + case NONE: // do nothing + } + + switch (actionMode) + { + case A: + add(buttonA = createButton(FlxG.width - 132, FlxG.height - 131, 'a', 0xFF0000)); + case B: + add(buttonB = createButton(FlxG.width - 132, FlxG.height - 131, 'b', 0xFFCB00)); + case P: + add(buttonP = createButton(FlxG.width - 132, 0, 'p', 0xFFCB00)); + case A_B: + add(buttonB = createButton(FlxG.width - 262, FlxG.height - 131, 'b', 0xFFCB00)); + add(buttonA = createButton(FlxG.width - 132, FlxG.height - 131, 'a', 0xFF0000)); + case A_B_C: + add(buttonC = createButton(FlxG.width - 392, FlxG.height - 131, 'c', 0x44FF00)); + add(buttonB = createButton(FlxG.width - 262, FlxG.height - 131, 'b', 0xFFCB00)); + add(buttonA = createButton(FlxG.width - 132, FlxG.height - 131, 'a', 0xFF0000)); + case A_B_E: + add(buttonE = createButton(FlxG.width - 392, FlxG.height - 131, 'e', 0xFF7D00)); + add(buttonB = createButton(FlxG.width - 262, FlxG.height - 131, 'b', 0xFFCB00)); + add(buttonA = createButton(FlxG.width - 132, FlxG.height - 131, 'a', 0xFF0000)); + case A_B_X_Y: + add(buttonX = createButton(FlxG.width - 522, FlxG.height - 131, 'x', 0x99062D)); + add(buttonB = createButton(FlxG.width - 262, FlxG.height - 131, 'b', 0xFFCB00)); + add(buttonY = createButton(FlxG.width - 392, FlxG.height - 131, 'y', 0x4A35B9)); + add(buttonA = createButton(FlxG.width - 132, FlxG.height - 131, 'a', 0xFF0000)); + case A_B_C_X_Y: + add(buttonC = createButton(FlxG.width - 392, FlxG.height - 131, 'c', 0x44FF00)); + add(buttonX = createButton(FlxG.width - 262, FlxG.height - 251, 'x', 0x99062D)); + add(buttonB = createButton(FlxG.width - 262, FlxG.height - 131, 'b', 0xFFCB00)); + add(buttonY = createButton(FlxG.width - 132, FlxG.height - 251, 'y', 0x4A35B9)); + add(buttonA = createButton(FlxG.width - 132, FlxG.height - 131, 'a', 0xFF0000)); + case A_B_C_X_Y_Z: + add(buttonX = createButton(FlxG.width - 392, FlxG.height - 251, 'x', 0x99062D)); + add(buttonC = createButton(FlxG.width - 392, FlxG.height - 131, 'c', 0x44FF00)); + add(buttonY = createButton(FlxG.width - 262, FlxG.height - 251, 'y', 0x4A35B9)); + add(buttonB = createButton(FlxG.width - 262, FlxG.height - 131, 'b', 0xFFCB00)); + add(buttonZ = createButton(FlxG.width - 132, FlxG.height - 251, 'z', 0xCCB98E)); + add(buttonA = createButton(FlxG.width - 132, FlxG.height - 131, 'a', 0xFF0000)); + case A_B_C_D_V_X_Y_Z: + add(buttonV = createButton(FlxG.width - 522, FlxG.height - 251, 'v', 0x49A9B2)); + add(buttonD = createButton(FlxG.width - 522, FlxG.height - 131, 'd', 0x0078FF)); + add(buttonX = createButton(FlxG.width - 392, FlxG.height - 251, 'x', 0x99062D)); + add(buttonC = createButton(FlxG.width - 392, FlxG.height - 131, 'c', 0x44FF00)); + add(buttonY = createButton(FlxG.width - 262, FlxG.height - 251, 'y', 0x4A35B9)); + add(buttonB = createButton(FlxG.width - 262, FlxG.height - 131, 'b', 0xFFCB00)); + add(buttonZ = createButton(FlxG.width - 132, FlxG.height - 251, 'z', 0xCCB98E)); + add(buttonA = createButton(FlxG.width - 132, FlxG.height - 131, 'a', 0xFF0000)); + // CNE Releated + case A_B_M_E: + add(buttonM = createButton(FlxG.width - 522, FlxG.height - 131, 'm', 0x00BBFF)); + add(buttonB = createButton(FlxG.width - 262, FlxG.height - 131, 'b', 0xFFCB00)); + add(buttonE = createButton(FlxG.width - 392, FlxG.height - 131, 'e', 0xFF7D00)); + add(buttonA = createButton(FlxG.width - 132, FlxG.height - 131, 'a', 0xFF0000)); + case NONE: // do nothing + } + + scrollFactor.set(); + var guh = Options.controlsAlpha; + if (guh >= 0.9) + guh = guh - 0.07; + alpha = Options.controlsAlpha; + } + + public static function getDPadModeByString(mode:String):FlxDPadMode { + if(dpadModes == null){ + dpadModes = new Map(); + for(enumValue in FlxDPadMode.createAll()) + dpadModes.set(enumValue.getName(), enumValue); + } + return dpadModes.exists(mode) ? dpadModes.get(mode) : NONE; + } + + public static function getActionModeByString(mode:String):FlxActionMode { + if(actionModes == null){ + actionModes = new Map(); + for(enumValue in FlxActionMode.createAll()) + actionModes.set(enumValue.getName(), enumValue); + } + return actionModes.exists(mode) ? actionModes.get(mode) : NONE; + } + + /** + * Clean up memory. + */ + override public function destroy():Void + { + super.destroy(); + + for (field in Reflect.fields(this)) + if (Std.isOfType(Reflect.field(this, field), FlxButton)) + Reflect.setField(this, field, FlxDestroyUtil.destroy(Reflect.field(this, field))); + } + + private function createButton(X:Float, Y:Float, Graphic:String, Color:Int = 0xFFFFFF):FlxButton + { + var graphic:FlxGraphic; + var path:String = Paths.image('mobile/virtualpad/$Graphic'); + #if MOD_SUPPORT + if(FileSystem.exists(path)) + graphic = FlxGraphic.fromBitmapData(BitmapData.fromFile(path)); + else #end if(Assets.exists(path)) + graphic = FlxGraphic.fromBitmapData(Assets.getBitmapData(path)); + else + graphic = FlxGraphic.fromBitmapData(Assets.getBitmapData(Paths.image('mobile/virtualpad/default'))); + + var button:FlxButton = new FlxButton(X, Y); + try { + button.frames = FlxTileFrames.fromGraphic(graphic, FlxPoint.get(Std.int(graphic.width / 2), graphic.height)); + } + catch (e){ + trace("Failed to create button(s) " + e.message); + return null; + } + button.solid = false; + button.immovable = true; + button.scrollFactor.set(); + button.color = Color; + #if FLX_DEBUG + button.ignoreDrawDebug = true; + #end + return button; + } +} \ No newline at end of file diff --git a/source/mobile/funkin/backend/CNEJNI.hx b/source/mobile/funkin/backend/CNEJNI.hx new file mode 100644 index 000000000..99a7141bf --- /dev/null +++ b/source/mobile/funkin/backend/CNEJNI.hx @@ -0,0 +1,65 @@ +// fully stolen from PsychJNI bleh +package mobile.backend; + +/** + * ... + * @author Lily Ross (mcagabe19) + */ +#if android +import lime.system.JNI; + +class CNEJNI #if (lime >= "8.0.0") implements JNISafety #end +{ + public static final SDL_ORIENTATION_UNKNOWN:Int = 0; + public static final SDL_ORIENTATION_LANDSCAPE:Int = 1; + public static final SDL_ORIENTATION_LANDSCAPE_FLIPPED:Int = 2; + public static final SDL_ORIENTATION_PORTRAIT:Int = 3; + public static final SDL_ORIENTATION_PORTRAIT_FLIPPED:Int = 4; + + public static inline function setOrientation(width:Int, height:Int, resizeable:Bool, hint:String):Dynamic + return setOrientation_jni(width, height, resizeable, hint); + + public static inline function getCurrentOrientationAsString():String + { + return switch (getCurrentOrientation_jni()) + { + case SDL_ORIENTATION_PORTRAIT: "Portrait"; + case SDL_ORIENTATION_LANDSCAPE: "LandscapeRight"; + case SDL_ORIENTATION_PORTRAIT_FLIPPED: "PortraitUpsideDown"; + case SDL_ORIENTATION_LANDSCAPE_FLIPPED: "LandscapeLeft"; + default: "Unknown"; + } + } + + public static inline function isScreenKeyboardShown():Dynamic + return isScreenKeyboardShown_jni(); + + public static inline function clipboardHasText():Dynamic + return clipboardHasText_jni(); + + public static inline function clipboardGetText():Dynamic + return clipboardGetText_jni(); + + public static inline function clipboardSetText(string:String):Dynamic + return clipboardSetText_jni(string); + + public static inline function manualBackButton():Dynamic + return manualBackButton_jni(); + + public static inline function setActivityTitle(title:String):Dynamic + return setActivityTitle_jni(title); + + @:noCompletion private static var setOrientation_jni:Dynamic = JNI.createStaticMethod('org/libsdl/app/SDLActivity', 'setOrientation', + '(IIZLjava/lang/String;)V'); + @:noCompletion private static var getCurrentOrientation_jni:Dynamic = JNI.createStaticMethod('org/libsdl/app/SDLActivity', 'getCurrentOrientation', '()I'); + @:noCompletion private static var isScreenKeyboardShown_jni:Dynamic = JNI.createStaticMethod('org/libsdl/app/SDLActivity', 'isScreenKeyboardShown', '()Z'); + @:noCompletion private static var clipboardHasText_jni:Dynamic = JNI.createStaticMethod('org/libsdl/app/SDLActivity', 'clipboardHasText', '()Z'); + @:noCompletion private static var clipboardGetText_jni:Dynamic = JNI.createStaticMethod('org/libsdl/app/SDLActivity', 'clipboardGetText', + '()Ljava/lang/String;'); + @:noCompletion private static var clipboardSetText_jni:Dynamic = JNI.createStaticMethod('org/libsdl/app/SDLActivity', 'clipboardSetText', + '(Ljava/lang/String;)V'); + @:noCompletion private static var manualBackButton_jni:Dynamic = JNI.createStaticMethod('org/libsdl/app/SDLActivity', 'manualBackButton', '()V'); + @:noCompletion private static var setActivityTitle_jni:Dynamic = JNI.createStaticMethod('org/libsdl/app/SDLActivity', 'setActivityTitle', + '(Ljava/lang/String;)Z'); +} +#end diff --git a/source/mobile/funkin/backend/TouchFunctions.hx b/source/mobile/funkin/backend/TouchFunctions.hx new file mode 100644 index 000000000..bde52dd6f --- /dev/null +++ b/source/mobile/funkin/backend/TouchFunctions.hx @@ -0,0 +1,73 @@ +package mobile.funkin.backend; + +import flixel.FlxG; +import flixel.FlxBasic; +import flixel.FlxObject; +import flixel.FlxCamera; +import flixel.input.touch.FlxTouch; + +class TouchFunctions +{ + public static var touchPressed(get, never):Bool; + public static var touchJustPressed(get, never):Bool; + public static var touchJustReleased(get, never):Bool; + public static var touch(get, never):FlxTouch; + + public static function touchOverlapObject(object:FlxBasic, camera:FlxCamera):Bool + { + for (touch in FlxG.touches.list) + if (touch.overlaps(object, camera)) + return true; + return false; + } + + public static function touchOverlapObjectComplex(object:FlxObject):Bool + { + var overlap = false; + for (camera in object.cameras) + { + for (touch in FlxG.touches.list) + { + @:privateAccess + if (object.overlapsPoint(touch.getWorldPosition(camera, object._point), true, camera)) + overlap = true; + } + } + return overlap; + } + + @:noCompletion + private static function get_touchPressed():Bool + { + for (touch in FlxG.touches.list) + if (touch.pressed) + return true; + return false; + } + + @:noCompletion + private static function get_touchJustPressed():Bool + { + for (touch in FlxG.touches.list) + if (touch.justPressed) + return true; + return false; + } + + @:noCompletion + private static function get_touchJustReleased():Bool + { + for (touch in FlxG.touches.list) + if (touch.justReleased) + return true; + return false; + } + + @:noCompletion + private static function get_touch():FlxTouch + { + for (touch in FlxG.touches.list) + return touch; + return FlxG.touches.list[0]; + } +} diff --git a/source/mobile/funkin/backend/system/CopyState.hx b/source/mobile/funkin/backend/system/CopyState.hx new file mode 100644 index 000000000..b82a2e03e --- /dev/null +++ b/source/mobile/funkin/backend/system/CopyState.hx @@ -0,0 +1,216 @@ +package mobile.funkin.backend.system; + +#if mobile +import lime.utils.Assets as LimeAssets; +import openfl.utils.Assets as OpenFLAssets; +import flixel.addons.util.FlxAsyncLoop; +import flixel.FlxG; +import flixel.text.FlxText; +import flixel.FlxSprite; +import flixel.util.FlxColor; +import openfl.utils.ByteArray; +import haxe.io.Path; +import mobile.funkin.backend.utils.SUtil; +import funkin.backend.assets.Paths; +import funkin.backend.utils.NativeAPI; +import funkin.backend.system.MainState; + +#if sys +import sys.io.File; +import sys.FileSystem; +#end + +using StringTools; + +class CopyState extends funkin.backend.MusicBeatState +{ + public static var locatedFiles:Array = []; + public static var maxLoopTimes:Int = 0; + public static final IGNORE_FOLDER_FILE_NAME:String = "ignore.txt"; + + public var loadingImage:FlxSprite; + public var bottomBG:FlxSprite; + public var loadedText:FlxText; + public var copyLoop:FlxAsyncLoop; + + var loopTimes:Int = 0; + var failedFiles:Array = []; + var failedFilesStack:Array = []; + var canUpdate:Bool = true; + var shouldCopy:Bool = false; + + private static final textFilesExtensions:Array = ['ini', 'txt', 'xml', 'hxs', 'hx', 'lua', 'json', 'frag', 'vert']; + + override function create() + { + locatedFiles = []; + maxLoopTimes = 0; + checkExistingFiles(); + if (maxLoopTimes <= 0) + { + FlxG.switchState(new MainState()); + return; + } + + NativeAPI.showMessageBox("Notice", "Seems like you have some missing files that are necessary to run the game\nPress OK to begin the copy process"); + + shouldCopy = true; + + add(new FlxSprite(0, 0).makeGraphic(FlxG.width, FlxG.height, 0xffcaff4d)); + + loadingImage = new FlxSprite(0, 0, Paths.image('funkay')); + loadingImage.setGraphicSize(0, FlxG.height); + loadingImage.updateHitbox(); + loadingImage.screenCenter(); + add(loadingImage); + + bottomBG = new FlxSprite(0, FlxG.height - 26).makeGraphic(FlxG.width, 26, 0xFF000000); + bottomBG.alpha = 0.6; + add(bottomBG); + + loadedText = new FlxText(bottomBG.x, bottomBG.y + 4, FlxG.width, '', 16); + loadedText.setFormat(Paths.font("vcr.ttf"), 16, FlxColor.WHITE, CENTER); + add(loadedText); + + var ticks:Int = 15; + if (maxLoopTimes <= 15) + ticks = 1; + + copyLoop = new FlxAsyncLoop(maxLoopTimes, copyAsset, ticks); + add(copyLoop); + copyLoop.start(); + + super.create(); + } + + override function update(elapsed:Float) + { + if (shouldCopy && copyLoop != null) + { + if (copyLoop.finished && canUpdate) + { + if (failedFiles.length > 0) + { + NativeAPI.showMessageBox('Failed To Copy ${failedFiles.length} File.', failedFiles.join('\n')); + if (!FileSystem.exists('logs')) + FileSystem.createDirectory('logs'); + File.saveContent('logs/' + Date.now().toString().replace(' ', '-').replace(':', "'") + '-CopyState' + '.txt', failedFilesStack.join('\n')); + } + canUpdate = false; + FlxG.sound.play(Paths.sound('menu/confirm')).onComplete = () -> { + FlxG.switchState(new MainState()); + }; + } + + if (maxLoopTimes == 0) + loadedText.text = "Completed!"; + else + loadedText.text = '$loopTimes/$maxLoopTimes'; + } + super.update(elapsed); + } + + public function copyAsset() + { + var file = locatedFiles[loopTimes]; + loopTimes++; + if (!FileSystem.exists(file)) + { + var directory = Path.directory(file); + if (!FileSystem.exists(directory)) + SUtil.mkDirs(directory); + try + { + if (OpenFLAssets.exists(getFile(file))) + { + if (textFilesExtensions.contains(Path.extension(file))) + createContentFromInternal(file); + else + File.saveBytes(file, getFileBytes(getFile(file))); + } + else + { + failedFiles.push(getFile(file) + " (File Dosen't Exist)"); + failedFilesStack.push('Asset ${getFile(file)} does not exist.'); + } + } + catch (e:haxe.Exception) + { + failedFiles.push('${getFile(file)} (${e.message})'); + failedFilesStack.push('${getFile(file)} (${e.stack})'); + } + } + } + + public function createContentFromInternal(file:String) + { + var fileName = Path.withoutDirectory(file); + var directory = Path.directory(file); + try + { + var fileData:String = OpenFLAssets.getText(getFile(file)); + if (fileData == null) + fileData = ''; + if (!FileSystem.exists(directory)) + SUtil.mkDirs(directory); + File.saveContent(Path.join([directory, fileName]), fileData); + } + catch (e:haxe.Exception) + { + failedFiles.push('${getFile(file)} (${e.message})'); + failedFilesStack.push('${getFile(file)} (${e.stack})'); + } + } + + public function getFileBytes(file:String):ByteArray + { + switch (Path.extension(file)) + { + case 'otf' | 'ttf': + return ByteArray.fromFile(file); + default: + return OpenFLAssets.getBytes(file); + } + } + + public static function getFile(file:String):String + { + if(OpenFLAssets.exists(file)) return file; + + @:privateAccess + for(library in LimeAssets.libraries.keys()){ + if(OpenFLAssets.exists('$library:$file') && library != 'default') + return '$library:$file'; + } + + return file; + } + + public static function checkExistingFiles():Bool + { + locatedFiles = OpenFLAssets.list(); + + // removes unwanted assets + var assets = locatedFiles.filter(folder -> folder.startsWith('assets/')); + var mods = locatedFiles.filter(folder -> folder.startsWith('mods/')); + locatedFiles = assets.concat(mods); + + var filesToRemove:Array = []; + + for (file in locatedFiles) + { + if (FileSystem.exists(file) || OpenFLAssets.exists(getFile(Path.join([Path.directory(getFile(file)), IGNORE_FOLDER_FILE_NAME])))) + { + filesToRemove.push(file); + } + } + + for (file in filesToRemove) + locatedFiles.remove(file); + + maxLoopTimes = locatedFiles.length; + + return (maxLoopTimes <= 0); + } +} +#end diff --git a/source/mobile/funkin/backend/system/MobileRatioScaleMode.hx b/source/mobile/funkin/backend/system/MobileRatioScaleMode.hx new file mode 100644 index 000000000..b5fe45a42 --- /dev/null +++ b/source/mobile/funkin/backend/system/MobileRatioScaleMode.hx @@ -0,0 +1,53 @@ +package mobile.funkin.backend.system; + +import flixel.FlxG; +import flixel.system.scaleModes.BaseScaleMode; + +class MobileRatioScaleMode extends BaseScaleMode +{ + public static var allowWideScreen(default, set):Bool = true; + + override function updateGameSize(Width:Int, Height:Int):Void + { + if (funkin.options.Options.wideScreen && allowWideScreen) + { + super.updateGameSize(Width, Height); + } + else + { + var ratio:Float = FlxG.width / FlxG.height; + var realRatio:Float = Width / Height; + + var scaleY:Bool = realRatio < ratio; + + if (scaleY) + { + gameSize.x = Width; + gameSize.y = Math.floor(gameSize.x / ratio); + } + else + { + gameSize.y = Height; + gameSize.x = Math.floor(gameSize.y * ratio); + } + } + } + + override function updateGamePosition():Void + { + if (funkin.options.Options.wideScreen && allowWideScreen) + FlxG.game.x = FlxG.game.y = 0; + else + super.updateGamePosition(); + } + + @:noCompletion + private static function set_allowWideScreen(value:Bool):Bool + { + allowWideScreen = value; + FlxG.scaleMode = new MobileRatioScaleMode(); + return value; + } + + public function resetSize() {} +} diff --git a/source/mobile/funkin/backend/utils/SUtil.hx b/source/mobile/funkin/backend/utils/SUtil.hx new file mode 100644 index 000000000..af089fe6d --- /dev/null +++ b/source/mobile/funkin/backend/utils/SUtil.hx @@ -0,0 +1,188 @@ +package mobile.funkin.backend.utils; + +#if android +import android.content.Context; +import android.os.Environment; +import android.os.Build.VERSION; +import android.os.Build.VERSION_CODES; +import android.Permissions; +import android.Settings; +#end +import lime.system.System as LimeSystem; +import funkin.backend.utils.NativeAPI; +#if sys +import sys.io.File; +import sys.FileSystem; +#end + +using StringTools; + +/** + * A storage class for mobile. + * @author Mihai Alexandru (M.A. Jigsaw) + */ +class SUtil +{ + #if sys + public static function getStorageDirectory(?force:Bool = false):String + { + #if mobile + var daPath:String; + #if android + if (!FileSystem.exists(LimeSystem.applicationStorageDirectory + 'storagetype.txt')) + File.saveContent(LimeSystem.applicationStorageDirectory + 'storagetype.txt', funkin.options.Options.storageType); + var curStorageType:String = File.getContent(LimeSystem.applicationStorageDirectory + 'storagetype.txt'); + daPath = force ? StorageType.fromStrForce(curStorageType) : StorageType.fromStr(curStorageType); + daPath = haxe.io.Path.addTrailingSlash(daPath); + #elseif ios + daPath = LimeSystem.documentsDirectory; + #end + + return daPath; + #else + return Sys.getCwd(); + #end + } + + public static function mkDirs(directory:String):Void + { + try { + if (FileSystem.exists(directory) && FileSystem.isDirectory(directory)) + return; + } catch (e:haxe.Exception) { + trace('Something went wrong while looking at folder. (${e.message})'); + } + var total:String = ''; + if (directory.substr(0, 1) == '/') + total = '/'; + + var parts:Array = directory.split('/'); + if (parts.length > 0 && parts[0].indexOf(':') > -1) + parts.shift(); + + for (part in parts) + { + if (part != '.' && part != '') + { + if (total != '' && total != '/') + total += '/'; + + total += part; + + try + { + if (!FileSystem.exists(total)) + FileSystem.createDirectory(total); + } + catch (e:haxe.Exception) + trace('Error while creating folder. (${e.message}'); + } + } + } + + public static function saveContent(fileName:String = 'file', fileExtension:String = '.json', + fileData:String = 'You forgor to add somethin\' in yo code :3'):Void + { + try + { + if (!FileSystem.exists('saves')) + FileSystem.createDirectory('saves'); + + File.saveContent('saves/$fileName', fileData); + NativeAPI.showMessageBox("Success!", '$fileName has been saved.', MSG_INFORMATION); + } + catch (e:haxe.Exception) + trace('File couldn\'t be saved. (${e.message})'); + } + + #if android + public static function doPermissionsShit():Void + { + if (VERSION.SDK_INT >= VERSION_CODES.TIRAMISU) + Permissions.requestPermissions(['READ_MEDIA_IMAGES', 'READ_MEDIA_VIDEO', 'READ_MEDIA_AUDIO']); + else + Permissions.requestPermissions(['READ_EXTERNAL_STORAGE', 'WRITE_EXTERNAL_STORAGE']); + + if (!Environment.isExternalStorageManager()) + { + if (VERSION.SDK_INT >= VERSION_CODES.S) + Settings.requestSetting('REQUEST_MANAGE_MEDIA'); + Settings.requestSetting('MANAGE_APP_ALL_FILES_ACCESS_PERMISSION'); + } + + if ((VERSION.SDK_INT >= VERSION_CODES.TIRAMISU && !Permissions.getGrantedPermissions().contains('android.permission.READ_MEDIA_IMAGES')) || (VERSION.SDK_INT < VERSION_CODES.TIRAMISU && !Permissions.getGrantedPermissions().contains('android.permission.READ_EXTERNAL_STORAGE'))) + NativeAPI.showMessageBox('Notice!', 'If you accepted the permissions you are all good!' + '\nIf you didn\'t then expect a crash' + '\nPress Ok to see what happens', MSG_INFORMATION); + + try + { + if (!FileSystem.exists(SUtil.getStorageDirectory())) + mkDirs(SUtil.getStorageDirectory()); + } + catch (e:Dynamic) + { + NativeAPI.showMessageBox('Error!', 'Please create folder to\n' + SUtil.getStorageDirectory(true) + '\nPress OK to close the game', MSG_ERROR); + LimeSystem.exit(1); + } + } + + public static function checkExternalPaths(?splitStorage = false):Array { + var process = new funkin.backend.utils.native.HiddenProcess('grep -o "/storage/....-...." /proc/mounts | paste -sd \',\''); + var paths:String = process.stdout.readAll().toString(); + if (splitStorage) paths = paths.replace('/storage/', ''); + return paths.split(','); + } + + public static function getExternalDirectory(external:String):String { + var daPath:String = ''; + for (path in checkExternalPaths()) + if (path.contains(external)) daPath = path; + + daPath = haxe.io.Path.addTrailingSlash(daPath.endsWith("\n") ? daPath.substr(0, daPath.length - 1) : daPath); + return daPath; + } + #end + #end +} + +#if android +enum abstract StorageType(String) from String to String +{ + final forcedPath = '/storage/emulated/0/'; + final packageNameLocal = 'com.yoshman29.codenameengine'; + final fileLocal = 'CodenameEngine'; + + public static function fromStr(str:String):StorageType + { + final EXTERNAL_DATA = Context.getExternalFilesDir(); + final EXTERNAL_OBB = Context.getObbDir(); + final EXTERNAL_MEDIA = Environment.getExternalStorageDirectory() + '/Android/media/' + lime.app.Application.current.meta.get('packageName'); + final EXTERNAL = Environment.getExternalStorageDirectory() + '/.' + lime.app.Application.current.meta.get('file'); + + return switch (str) + { + case "EXTERNAL_DATA": EXTERNAL_DATA; + case "EXTERNAL_OBB": EXTERNAL_OBB; + case "EXTERNAL_MEDIA": EXTERNAL_MEDIA; + case "EXTERNAL": EXTERNAL; + default: SUtil.getExternalDirectory(str) + '.' + fileLocal; + } + } + + public static function fromStrForce(str:String):StorageType + { + final EXTERNAL_DATA = forcedPath + 'Android/data/' + packageNameLocal + '/files'; + final EXTERNAL_OBB = forcedPath + 'Android/obb/' + packageNameLocal; + final EXTERNAL_MEDIA = forcedPath + 'Android/media/' + packageNameLocal; + final EXTERNAL = forcedPath + '.' + fileLocal; + + return switch (str) + { + case "EXTERNAL_DATA": EXTERNAL_DATA; + case "EXTERNAL_OBB": EXTERNAL_OBB; + case "EXTERNAL_MEDIA": EXTERNAL_MEDIA; + case "EXTERNAL": EXTERNAL; + default: SUtil.getExternalDirectory(str) + '.' + fileLocal; + } + } +} +#end diff --git a/source/mobile/funkin/menus/MobileControlSelectSubState.hx b/source/mobile/funkin/menus/MobileControlSelectSubState.hx new file mode 100644 index 000000000..7d83e850f --- /dev/null +++ b/source/mobile/funkin/menus/MobileControlSelectSubState.hx @@ -0,0 +1,271 @@ +package mobile.funkin.menus; + +import flixel.addons.display.FlxBackdrop; +import flixel.addons.display.FlxGridOverlay; +import flixel.util.FlxGradient; +import mobile.funkin.backend.TouchFunctions; +import mobile.flixel.FlxButton; +import flixel.input.touch.FlxTouch; +import flixel.ui.FlxButton as UIButton; +import funkin.backend.MusicBeatSubstate; +import mobile.objects.MobileControls; +import flixel.FlxSprite; +import flixel.text.FlxText; +import flixel.FlxCamera; +import flixel.util.FlxColor; +import flixel.tweens.*; +import flixel.FlxG; +import funkin.backend.assets.Paths; +import funkin.backend.utils.CoolUtil; +import funkin.menus.ui.Alphabet; + +using StringTools; + +class MobileControlSelectSubState extends MusicBeatSubstate +{ + var options:Array = ['Pad-Right', 'Pad-Left', 'Pad-Custom', 'Hitbox', 'Keyboard']; + var control:MobileControls; + var leftArrow:FlxSprite; + var rightArrow:FlxSprite; + var itemText:Alphabet; + var positionText:FlxText; + var positionTextBg:FlxSprite; + var bg:FlxBackdrop; + var ui:FlxCamera; + var buttonCamera:FlxCamera; + var curOption:Int = MobileControls.mode; + var buttonBinded:Bool = false; + var bindButton:FlxButton; + var reset:UIButton; + var tweenieShit:Float = 0; + var keyboardText:FlxText; + var closeCallBack:Void->Void; + + public function new(?closeCallBack:Void->Void, ?openCallBack:Void->Void) + { + super(); + + this.closeCallBack = closeCallBack; + if(openCallBack != null) openCallBack(); + + bg = new FlxBackdrop(FlxGridOverlay.createGrid(80, 80, 160, 160, true, + FlxColor.fromRGB(FlxG.random.int(0, 255), FlxG.random.int(0, 255), FlxG.random.int(0, 255)), + FlxColor.fromRGB(FlxG.random.int(0, 255), FlxG.random.int(0, 255), FlxG.random.int(0, 255)))); + bg.velocity.set(40, 40); + bg.alpha = 0; + add(bg); + + ui = new FlxCamera(); + ui.bgColor.alpha = 0; + ui.alpha = 0; + FlxG.cameras.add(ui, false); + + buttonCamera = new FlxCamera(); + buttonCamera.bgColor.alpha = 0; + buttonCamera.alpha = 0; + FlxG.cameras.add(buttonCamera, false); + + itemText = new Alphabet(0, 60, ''); + add(itemText); + + leftArrow = new FlxSprite(0, itemText.y - 25); + leftArrow.frames = Paths.getSparrowAtlas('mobile/menu/arrows'); + leftArrow.animation.addByPrefix('idle', 'arrow left'); + leftArrow.animation.addByPrefix('press', "arrow push left"); + leftArrow.animation.play('idle'); + add(leftArrow); + + itemText.x = leftArrow.width + 70; + leftArrow.x = itemText.x - 60; + + rightArrow = new FlxSprite().loadGraphicFromSprite(leftArrow); + rightArrow.flipX = true; + rightArrow.setPosition(itemText.x + itemText.width + 10, itemText.y - 25); + add(rightArrow); + + positionText = new FlxText(0, FlxG.height, FlxG.width / 4, ''); + positionText.setFormat(Paths.font("vcr.ttf"), 18, FlxColor.WHITE, FlxTextAlign.LEFT); + positionText.visible = false; + + positionTextBg = FlxGradient.createGradientFlxSprite(250, 150, [FlxColor.BLACK, FlxColor.BLACK, FlxColor.BLACK, FlxColor.TRANSPARENT], 1, 360); + positionTextBg.setPosition(0, FlxG.height - positionTextBg.height); + positionTextBg.visible = false; + positionTextBg.alpha = 0.8; + add(positionTextBg); + add(positionText); + + keyboardText = new FlxText(0, 0, FlxG.width, "-- No Controls --", 14); + keyboardText.setFormat(Paths.font("vcr.ttf"), 36, FlxColor.WHITE, FlxTextAlign.CENTER); + keyboardText.screenCenter(); + add(keyboardText); + keyboardText.kill(); + + var exit = new UIButton(0, itemText.y - 25, "Exit & Save", () -> + { + MobileControls.mode = curOption; + if (options[curOption] == 'Pad-Custom') + MobileControls.setCustomMode(control.virtualPad); + CoolUtil.playMenuSFX(CANCEL); + if(closeCallBack != null) closeCallBack(); + close(); + }); + exit.color = FlxColor.LIME; + exit.setGraphicSize(Std.int(exit.width) * 3); + exit.updateHitbox(); + exit.x = FlxG.width - exit.width - 70; + exit.label.setFormat(Paths.font('vcr.ttf'), 28, FlxColor.WHITE, FlxTextAlign.CENTER); + exit.label.fieldWidth = exit.width; + exit.label.x = ((exit.width - exit.label.width) / 2) + exit.x; + exit.label.offset.y = -10; // WHY THE FUCK I CAN'T CHANGE THE LABEL Y + add(exit); + + reset = new UIButton(exit.x, exit.height + exit.y + 20, "Reset", () -> + { + changeOption(0); // realods the current control mode ig? + }); + reset.color = FlxColor.RED; + reset.setGraphicSize(Std.int(reset.width) * 3); + reset.updateHitbox(); + reset.label.setFormat(Paths.font('vcr.ttf'), 28, FlxColor.WHITE, FlxTextAlign.CENTER); + reset.label.fieldWidth = reset.width; + reset.label.x = ((reset.width - reset.label.width) / 2) + reset.x; + reset.label.offset.y = -10; + add(reset); + + cameras = [ui]; + leftArrow.cameras = rightArrow.cameras = reset.cameras = exit.cameras = [buttonCamera]; + FlxTween.tween(bg, {alpha: 0.45}, 0.3, { + ease: FlxEase.quadOut, + onComplete: (twn:FlxTween) -> + { + for (camera in [ui, buttonCamera]) + FlxTween.tween(camera, {alpha: 1}, 0.2, {ease: FlxEase.circOut}); + } + }); + changeOption(0); + setOptionText(); + FlxG.mouse.visible = true; + } + + override function update(elapsed:Float) + { + checkArrowButton(leftArrow, () -> changeOption(-1)); + checkArrowButton(rightArrow, () -> changeOption(1)); + + for(touch in FlxG.touches.list){ + if (options[curOption] == 'Pad-Custom') + { + if (buttonBinded) + { + if (touch.justReleased) + { + bindButton = null; + buttonBinded = false; + } + else + moveButton(touch, bindButton); + } + else + { + control.virtualPad.forEachAlive((button:FlxButton) -> + { + if (button.justPressed) + moveButton(touch, button); + }); + } + } + } + + tweenieShit += 180 * elapsed; + keyboardText.alpha = 1 - Math.sin((Math.PI * tweenieShit) / 180); + + super.update(elapsed); + } + + function changeControls(?type:Int = null) + { + if (type == null) + type = curOption; + if (control != null) + control.destroy(); + if (members.contains(control)) + remove(control); + control = new MobileControls(type); + add(control); + control.cameras = [ui]; + } + + function changeOption(change:Int) + { + CoolUtil.playMenuSFX(); + curOption += change; + + if (curOption < 0) + curOption = options.length - 1; + if (curOption >= options.length) + curOption = 0; + + switch (curOption) + { + case 2: + reset.visible = true; + keyboardText.kill(); + changeControls(); + default: + reset.visible = false; + keyboardText.kill(); + changeControls(); + } + updatePosText(); + setOptionText(); + } + + function setOptionText() + { + itemText.text = options[curOption].replace('-', ' '); + itemText.updateHitbox(); + itemText.offset.set(0, 15); + FlxTween.tween(rightArrow, {x: itemText.x + itemText.width + 10}, 0.1, {ease: FlxEase.quintOut}); + } + + function updatePosText() + { + var optionName = options[curOption]; + if (optionName == 'Pad-Custom') + { + positionText.visible = positionTextBg.visible = true; + positionText.text = 'LEFT X: ${control.virtualPad.buttonLeft.x} - Y: ${control.virtualPad.buttonLeft.y}\nDOWN X: ${control.virtualPad.buttonDown.x} - Y: ${control.virtualPad.buttonDown.y}\n\nUP X: ${control.virtualPad.buttonUp.x} - Y: ${control.virtualPad.buttonUp.y}\nRIGHT X: ${control.virtualPad.buttonRight.x} - Y: ${control.virtualPad.buttonRight.y}'; + positionText.setPosition(0, (((positionTextBg.height - positionText.height) / 2) + positionTextBg.y)); + } + else + positionText.visible = positionTextBg.visible = false; + } + + function checkArrowButton(button:FlxSprite, func:Void->Void) + { + // OVERLAPS WON'T WORK IDFK WHY + for(camera in button.cameras) + if (FlxG.mouse.getScreenPosition(camera).x >= button.x && FlxG.mouse.getScreenPosition(camera).x <= button.x + button.width && + FlxG.mouse.getScreenPosition(camera).y >= button.y && FlxG.mouse.getScreenPosition(camera).y <= button.y + button.height) + { + if (FlxG.mouse.justPressed) + func(); + if (FlxG.mouse.pressed) + button.animation.play('press'); + } + if (FlxG.mouse.justReleased && button.animation.curAnim.name == 'press') + button.animation.play('idle'); + + if (FlxG.keys.justPressed.LEFT && button == leftArrow || FlxG.keys.justPressed.RIGHT && button == rightArrow) + func(); + } + + function moveButton(touch:FlxTouch, button:FlxButton):Void + { + bindButton = button; + buttonBinded = bindButton == null ? false : true; + bindButton.x = touch.getScreenPosition(ui).x - Std.int(bindButton.width / 2); + bindButton.y = touch.getScreenPosition(ui).y - Std.int(bindButton.height / 2); + updatePosText(); + } +} diff --git a/source/mobile/objects/FlxButtonGroup.hx b/source/mobile/objects/FlxButtonGroup.hx new file mode 100644 index 000000000..f18dc5c2b --- /dev/null +++ b/source/mobile/objects/FlxButtonGroup.hx @@ -0,0 +1,6 @@ +package mobile.objects; + +import mobile.flixel.FlxButton; +import flixel.group.FlxSpriteGroup.FlxTypedSpriteGroup; + +typedef FlxButtonGroup = FlxTypedSpriteGroup; \ No newline at end of file diff --git a/source/mobile/objects/Hitbox.hx b/source/mobile/objects/Hitbox.hx new file mode 100644 index 000000000..9d66e5dde --- /dev/null +++ b/source/mobile/objects/Hitbox.hx @@ -0,0 +1,170 @@ +package mobile.objects; + +import flixel.FlxG; +import flixel.tweens.*; +import flixel.util.FlxColor; +import openfl.display.Shape; +import funkin.options.Options; +import mobile.flixel.FlxButton; +import openfl.display.BitmapData; +import flixel.util.FlxDestroyUtil; + +/** + * A zone with 4 hint's (A hitbox). + * It's really easy to customize the layout. + * + * @author: Mihai Alexandru and Karim Akra + */ +class Hitbox extends FlxButtonGroup +{ + //final offsetFir:Int = (ClientPrefs.data.hitbox2 ? Std.int(FlxG.height / 4) * 3 : 0); + //final offsetSec:Int = (ClientPrefs.data.hitbox2 ? 0 : Std.int(FlxG.height / 4)); + + public var buttonLeft:FlxButton = new FlxButton(0, 0); + public var buttonDown:FlxButton = new FlxButton(0, 0); + public var buttonUp:FlxButton = new FlxButton(0, 0); + public var buttonRight:FlxButton = new FlxButton(0, 0); + public var buttonExtra:FlxButton = new FlxButton(0, 0); + public var buttonExtra2:FlxButton = new FlxButton(0, 0); + + /** + * Create the zone. + */ + public function new(/*extraMode:ExtraActions*/) + { + super(); + + //switch (extraMode) + //{ + // case NONE: + add(buttonLeft = createHint(0, 0, Std.int(FlxG.width / 4), FlxG.height, 0xFFC24B99)); + add(buttonDown = createHint(FlxG.width / 4, 0, Std.int(FlxG.width / 4), FlxG.height, 0xFF00FFFF)); + add(buttonUp = createHint(FlxG.width / 2, 0, Std.int(FlxG.width / 4), FlxG.height, 0xFF12FA05)); + add(buttonRight = createHint((FlxG.width / 2) + (FlxG.width / 4), 0, Std.int(FlxG.width / 4), FlxG.height, 0xFFF9393F)); + /* case SINGLE: + add(buttonLeft = createHint(0, offsetSec, Std.int(FlxG.width / 4), Std.int(FlxG.height / 4) * 3, 0xFFC24B99)); + add(buttonDown = createHint(FlxG.width / 4, offsetSec, Std.int(FlxG.width / 4), Std.int(FlxG.height / 4) * 3, 0xFF00FFFF)); + add(buttonUp = createHint(FlxG.width / 2, offsetSec, Std.int(FlxG.width / 4), Std.int(FlxG.height / 4) * 3, 0xFF12FA05)); + add(buttonRight = createHint((FlxG.width / 2) + (FlxG.width / 4), offsetSec, Std.int(FlxG.width / 4), Std.int(FlxG.height / 4) * 3, + 0xFFF9393F)); + add(buttonExtra = createHint(0, offsetFir, FlxG.width, Std.int(FlxG.height / 4), 0xFF0066FF)); + case DOUBLE: + add(buttonLeft = createHint(0, offsetSec, Std.int(FlxG.width / 4), Std.int(FlxG.height / 4) * 3, 0xFFC24B99)); + add(buttonDown = createHint(FlxG.width / 4, offsetSec, Std.int(FlxG.width / 4), Std.int(FlxG.height / 4) * 3, 0xFF00FFFF)); + add(buttonUp = createHint(FlxG.width / 2, offsetSec, Std.int(FlxG.width / 4), Std.int(FlxG.height / 4) * 3, 0xFF12FA05)); + add(buttonRight = createHint((FlxG.width / 2) + (FlxG.width / 4), offsetSec, Std.int(FlxG.width / 4), Std.int(FlxG.height / 4) * 3, + 0xFFF9393F)); + add(buttonExtra2 = createHint(Std.int(FlxG.width / 2), offsetFir, Std.int(FlxG.width / 2), Std.int(FlxG.height / 4), 0xA6FF00)); + add(buttonExtra = createHint(0, offsetFir, Std.int(FlxG.width / 2), Std.int(FlxG.height / 4), 0xFF0066FF)); + } + */ + scrollFactor.set(); + var guh = Options.controlsAlpha; + if (guh >= 0.9) + guh = guh - 0.07; + alpha = Options.controlsAlpha; + } + + /** + * Clean up memory. + */ + override function destroy() + { + super.destroy(); + + buttonLeft = FlxDestroyUtil.destroy(buttonLeft); + buttonDown = FlxDestroyUtil.destroy(buttonDown); + buttonUp = FlxDestroyUtil.destroy(buttonUp); + buttonRight = FlxDestroyUtil.destroy(buttonRight); + buttonExtra = FlxDestroyUtil.destroy(buttonExtra); + buttonExtra2 = FlxDestroyUtil.destroy(buttonExtra2); + } + + private function createHint(X:Float, Y:Float, Width:Int, Height:Int, Color:Int = 0xFFFFFF):FlxButton + { + var hintTween:FlxTween = null; + var hint = new FlxButton(X, Y); + hint.loadGraphic(createHintGraphic(Width, Height)); + hint.color = Color; + hint.solid = false; + hint.immovable = true; + hint.multiTouch = true; + hint.moves = false; + hint.scrollFactor.set(); + hint.alpha = 0.00001; + hint.antialiasing = Options.antialiasing; + if (Options.hitboxType != 'hidden') + { + var controlsAlpha = Options.hitboxType == 'gradient' ? Options.controlsAlpha : 0.25; // so it won't cover up your whole screen with a solid color + hint.onDown.callback = function() + { + if (hintTween != null) + hintTween.cancel(); + + hintTween = FlxTween.tween(hint, {alpha: controlsAlpha}, controlsAlpha / 100, { + ease: FlxEase.circInOut, + onComplete: function(twn:FlxTween) + { + hintTween = null; + } + }); + } + hint.onUp.callback = function() + { + if (hintTween != null) + hintTween.cancel(); + + hintTween = FlxTween.tween(hint, {alpha: 0.00001}, controlsAlpha / 10, { + ease: FlxEase.circInOut, + onComplete: function(twn:FlxTween) + { + hintTween = null; + } + }); + } + hint.onOut.callback = function() + { + if (hintTween != null) + hintTween.cancel(); + + hintTween = FlxTween.tween(hint, {alpha: 0.00001}, controlsAlpha / 10, { + ease: FlxEase.circInOut, + onComplete: function(twn:FlxTween) + { + hintTween = null; + } + }); + } + } + #if FLX_DEBUG + hint.ignoreDrawDebug = true; + #end + return hint; + } + + function createHintGraphic(Width:Int, Height:Int):BitmapData + { + var guh = Options.controlsAlpha; + if (guh >= 0.9) + guh = Options.controlsAlpha - 0.07; + var shape:Shape = new Shape(); + shape.graphics.beginFill(0xFFFFFF); + if(Options.hitboxType == 'gradient'){ + shape.graphics.lineStyle(3, 0xFFFFFF, 1); + shape.graphics.drawRect(0, 0, Width, Height); + shape.graphics.lineStyle(0, 0, 0); + shape.graphics.drawRect(3, 3, Width - 6, Height - 6); + shape.graphics.endFill(); + shape.graphics.beginGradientFill(RADIAL, [0xFFFFFF, FlxColor.TRANSPARENT], [guh, 0], [0, 255], null, null, null, 0.5); + shape.graphics.drawRect(3, 3, Width - 6, Height - 6); + shape.graphics.endFill(); + } else { + shape.graphics.lineStyle(10, 0xFFFFFF, 1); + shape.graphics.drawRect(0, 0, Width, Height); + shape.graphics.endFill(); + } + var bitmap:BitmapData = new BitmapData(Width, Height, true, 0); + bitmap.draw(shape); + return bitmap; + } +} \ No newline at end of file diff --git a/source/mobile/objects/MobileControls.hx b/source/mobile/objects/MobileControls.hx new file mode 100644 index 000000000..0fdf5a870 --- /dev/null +++ b/source/mobile/objects/MobileControls.hx @@ -0,0 +1,200 @@ +package mobile.objects; + +import flixel.FlxG; +import flixel.math.FlxPoint; +import mobile.flixel.FlxButton; +import flixel.group.FlxSpriteGroup.FlxTypedSpriteGroup; +import mobile.flixel.FlxVirtualPad; +import flixel.util.FlxDestroyUtil; +import funkin.options.Options; + +class MobileControls extends FlxTypedSpriteGroup +{ + public var virtualPad:FlxVirtualPad = new FlxVirtualPad(FlxDPadMode.NONE, FlxActionMode.NONE); + public var hitbox:Hitbox = new Hitbox(); + // YOU CAN'T CHANGE PROPERTIES USING THIS EXCEPT WHEN IN RUNTIME!! (except for the variables it already has like buttonUp, buttonLeft...) + public var current:CurrentManager; + + public static var mode(get, set):Int; + public static var forcedControl:Null; + public static var mobileC(get, never):Bool; + + public function new(?forceType:Int) + { + super(); + forcedControl = mode; + if (forceType != null) + forcedControl = forceType; + switch (forcedControl) + { + case 0: // RIGHT_FULL + initControler(0); + case 1: // LEFT_FULL + initControler(1); + case 2: // CUSTOM + initControler(2); + case 3: // HITBOX + initControler(3); + case 4: // KEYBOARD + } + current = new CurrentManager(this); + //updateButtonsColors(); + } + + private function initControler(virtualPadMode:Int = 0) + { + switch (virtualPadMode) + { + case 0: + virtualPad = new FlxVirtualPad('RIGHT_FULL', 'NONE'); + add(virtualPad); + case 1: + virtualPad = new FlxVirtualPad('LEFT_FULL', 'NONE'); + add(virtualPad); + case 2: + virtualPad = getCustomMode(new FlxVirtualPad('RIGHT_FULL', 'NONE')); + add(virtualPad); + case 3: + hitbox = new Hitbox(); + add(hitbox); + } + } + + public static function setCustomMode(virtualPad:FlxVirtualPad):Void + { + if (FlxG.save.data.buttons == null) + { + FlxG.save.data.buttons = new Array(); + for (buttons in virtualPad) + FlxG.save.data.buttons.push(FlxPoint.get(buttons.x, buttons.y)); + } + else + { + var tempCount:Int = 0; + for (buttons in virtualPad) + { + FlxG.save.data.buttons[tempCount] = FlxPoint.get(buttons.x, buttons.y); + tempCount++; + } + } + + FlxG.save.flush(); + } + + public static function getCustomMode(virtualPad:FlxVirtualPad):FlxVirtualPad + { + var tempCount:Int = 0; + + if (FlxG.save.data.buttons == null) + return virtualPad; + + for (buttons in virtualPad) + { + if(FlxG.save.data.buttons[tempCount] != null){ + buttons.x = FlxG.save.data.buttons[tempCount].x; + buttons.y = FlxG.save.data.buttons[tempCount].y; + } + tempCount++; + } + + return virtualPad; + } + + override public function destroy():Void + { + super.destroy(); + + if (virtualPad != null) + { + virtualPad = FlxDestroyUtil.destroy(virtualPad); + virtualPad = null; + } + + if (hitbox != null) + { + hitbox = FlxDestroyUtil.destroy(hitbox); + hitbox = null; + } + } + + static function set_mode(mode:Int = 0) + { + FlxG.save.data.mobileControlsMode = mode; + FlxG.save.flush(); + return mode; + } + + static function get_mode():Int + { + if (forcedControl != null) + return forcedControl; + + if (FlxG.save.data.mobileControlsMode == null) + { + FlxG.save.data.mobileControlsMode = 0; + FlxG.save.flush(); + } + + return FlxG.save.data.mobileControlsMode; + } + + @:noCompletion + private static function get_mobileC():Bool return Options.controlsAlpha >= 0.1; + /* + public function updateButtonsColors() { + // Dynamic Controls Color + var buttonsColors:Array = []; + var data:Dynamic; + if (ClientPrefs.data.dynamicColors) + data = ClientPrefs.data; + else + data = ClientPrefs.defaultData; + + buttonsColors.push(data.arrowRGB[0][0]); + buttonsColors.push(data.arrowRGB[1][0]); + buttonsColors.push(data.arrowRGB[2][0]); + buttonsColors.push(data.arrowRGB[3][0]); + if (mode == 3) + { + virtualPad.buttonLeft2.color = buttonsColors[0]; + virtualPad.buttonDown2.color = buttonsColors[1]; + virtualPad.buttonUp2.color = buttonsColors[2]; + virtualPad.buttonRight2.color = buttonsColors[3]; + } + current.buttonLeft.color = buttonsColors[0]; + current.buttonDown.color = buttonsColors[1]; + current.buttonUp.color = buttonsColors[2]; + current.buttonRight.color = buttonsColors[3]; + } + */ +} + +class CurrentManager { + public var buttonLeft:FlxButton; + public var buttonDown:FlxButton; + public var buttonUp:FlxButton; + public var buttonRight:FlxButton; + //public var buttonExtra:FlxButton; + //public var buttonExtra2:FlxButton; + public var target:FlxButtonGroup; + + public function new(control:MobileControls){ + if(MobileControls.mode == 3) { + target = control.hitbox; + buttonLeft = control.hitbox.buttonLeft; + buttonDown = control.hitbox.buttonDown; + buttonUp = control.hitbox.buttonUp; + buttonRight = control.hitbox.buttonRight; + //buttonExtra = control.hitbox.buttonExtra; + //buttonExtra2 = control.hitbox.buttonExtra2; + } else { + target = control.virtualPad; + buttonLeft = control.virtualPad.buttonLeft; + buttonDown = control.virtualPad.buttonDown; + buttonUp = control.virtualPad.buttonUp; + buttonRight = control.virtualPad.buttonRight; + //buttonExtra = control.virtualPad.buttonExtra; + //buttonExtra2 = control.virtualPad.buttonExtra2; + } + } +} diff --git a/source/openfl/display/Shader.hx b/source/openfl/display/Shader.hx new file mode 100644 index 000000000..72b017197 --- /dev/null +++ b/source/openfl/display/Shader.hx @@ -0,0 +1,985 @@ +package openfl.display; + +#if !flash +import openfl.display3D._internal.GLProgram; +import openfl.display3D._internal.GLShader; +import openfl.display._internal.ShaderBuffer; +import openfl.utils._internal.Float32Array; +import openfl.utils._internal.Log; +import openfl.display3D.Context3D; +import openfl.display3D.Program3D; +import openfl.utils.ByteArray; + +/** + // TODO: Document GLSL Shaders + A Shader instance represents a Pixel Bender shader kernel in ActionScript. + To use a shader in your application, you create a Shader instance for it. + You then use that Shader instance in the appropriate way according to the + effect you want to create. For example, to use the shader as a filter, you + assign the Shader instance to the `shader` property of a ShaderFilter + object. + A shader defines a function that executes on all the pixels in an image, + one pixel at a time. The result of each call to the function is the output + color at that pixel coordinate in the image. A shader can specify one or + more input images, which are images whose content can be used in + determining the output of the function. A shader can also specify one or + more parameters, which are input values that can be used in calculating + the function output. In a single shader execution, the input and parameter + values are constant. The only thing that varies is the coordinate of the + pixel whose color is the function result. Shader function calls for + multiple output pixel coordinates execute in parallel to improve shader + execution performance. + + The shader bytecode can be loaded at run time using a URLLoader instance. + The following example demonstrates loading a shader bytecode file at run + time and linking it to a Shader instance. + + ```as3 + var loader:URLLoader = new URLLoader(); + loader.dataFormat = URLLoaderDataFormat.BINARY; + loader.addEventListener(Event.COMPLETE, onLoadComplete); + loader.load(new URLRequest("myShader.pbj")); + var shader:Shader; + + function onLoadComplete(event:Event):void { + // Create a new shader and set the loaded data as its bytecode + shader = new Shader(); + shader.byteCode = loader.data; + + // You can also pass the bytecode to the Shader() constructor like this: + // shader = new Shader(loader.data); + + // do something with the shader + } + ``` + + You can also embed the shader into the SWF at compile time using the + `[Embed]` metadata tag. The `[Embed]` metadata tag is only available if + you use the Flex SDK to compile the SWF. The `[Embed]` tag's `source` + parameter points to the shader file, and its `mimeType` parameter is + `"application/octet-stream"`, as in this example: + + ```as3 + [Embed(source="myShader.pbj", mimeType="application/octet-stream)] var MyShaderClass:Class; + + // ... + + // create a new shader and set the embedded shader as its bytecode var + shaderShader = new Shader(); + shader.byteCode = new MyShaderClass(); + + // You can also pass the bytecode to the Shader() constructor like this: + // var shader:Shader = new Shader(new MyShaderClass()); + + // do something with the shader + ``` + + In either case, you link the raw shader (the `URLLoader.data` property or + an instance of the `[Embed]` data class) to the Shader instance. As the + previous examples demonstrate, you can do this in two ways. You can pass + the shader bytecode as an argument to the `Shader()` constructor. + Alternatively, you can set it as the Shader instance's `byteCode` + property. + + Once a Shader instance is created, it can be used in one of several ways: + + * A shader fill: The output of the shader is used as a fill for content + drawn with the drawing API. Pass the Shader instance as an argument to the + `Graphics.beginShaderFill()` method. + * A shader filter: The output of the shader is used as a graphic filter + applied to a display object. Assign the Shader instance to the `shader` + property of a ShaderFilter instance. + * A blend mode: The output of the shader is rendered as the blending + between two overlapping display objects. Assign the Shader instance to the + `blendShader` property of the upper of the two display objects. + * Background shader processing: The shader executes in the background, + avoiding the possibility of freezing the display, and dispatches an event + when processing is complete. Assign the Shader instance to the `shader` + property of a ShaderJob instance. + + Shader fills, filters, and blends are not supported under GPU rendering. + + **Mobile Browser Support:** This feature is not supported in mobile + browsers. + + _Adobe AIR profile support:_ This feature is supported on all desktop operating + systems, but it is not supported on all mobile devices. It is not + supported on AIR for TV devices. See + [AIR Profile Support](https://help.adobe.com/en_US/air/build/WS144092a96ffef7cc16ddeea2126bb46b82f-8000.html) + for more information regarding API support across multiple profiles. +**/ +#if !openfl_debug +@:fileXml('tags="haxe,release"') +@:noDebug +#end +@:access(openfl.display3D.Context3D) +@:access(openfl.display3D.Program3D) +@:access(openfl.display.ShaderInput) +@:access(openfl.display.ShaderParameter) +// #if (!display && !macro) +#if !macro +@:autoBuild(openfl.utils._internal.ShaderMacro.build()) +#end +class Shader +{ + /** + The raw shader bytecode for this Shader instance. + **/ + public var byteCode(null, default):ByteArray; + + /** + Provides access to parameters, input images, and metadata for the + Shader instance. ShaderParameter objects representing parameters for + the shader, ShaderInput objects representing the input images for the + shader, and other values representing the shader's metadata are + dynamically added as properties of the `data` property object when the + Shader instance is created. Those properties can be used to introspect + the shader and to set parameter and input values. + For information about accessing and manipulating the dynamic + properties of the `data` object, see the ShaderData class description. + **/ + public var data(get, set):ShaderData; + + /** + Get or set the fragment source used when compiling with GLSL. + + This property is not available on the Flash target. + **/ + public var glFragmentSource(get, set):String; + + /** + The compiled GLProgram if available. + + This property is not available on the Flash target. + **/ + @SuppressWarnings("checkstyle:Dynamic") public var glProgram(default, null):GLProgram; + + /** + Get or set the vertex source used when compiling with GLSL. + + This property is not available on the Flash target. + **/ + public var glVertexSource(get, set):String; + + /** + The precision of math operations performed by the shader. + The set of possible values for the `precisionHint` property is defined + by the constants in the ShaderPrecision class. + + The default value is `ShaderPrecision.FULL`. Setting the precision to + `ShaderPrecision.FAST` can speed up math operations at the expense of + precision. + + Full precision mode (`ShaderPrecision.FULL`) computes all math + operations to the full width of the IEEE 32-bit floating standard and + provides consistent behavior on all platforms. In this mode, some math + operations such as trigonometric and exponential functions can be + slow. + + Fast precision mode (`ShaderPrecision.FAST`) is designed for maximum + performance but does not work consistently on different platforms and + individual CPU configurations. In many cases, this level of precision + is sufficient to create graphic effects without visible artifacts. + + The precision mode selection affects the following shader operations. + These operations are faster on an Intel processor with the SSE + instruction set: + + * `sin(x)` + * `cos(x)` + * `tan(x)` + * `asin(x)` + * `acos(x)` + * `atan(x)` + * `atan(x, y)` + * `exp(x)` + * `exp2(x)` + * `log(x)` + * `log2(x)` + * `pow(x, y)` + * `reciprocal(x)` + * `sqrt(x)` + **/ + public var precisionHint:ShaderPrecision; + + /** + The compiled Program3D if available. + + This property is not available on the Flash target. + **/ + public var program:Program3D; + + @:noCompletion private var __alpha:ShaderParameter; + @:noCompletion private var __bitmap:ShaderInput; + @:noCompletion private var __colorMultiplier:ShaderParameter; + @:noCompletion private var __colorOffset:ShaderParameter; + @:noCompletion private var __context:Context3D; + @:noCompletion private var __data:ShaderData; + @:noCompletion private var __glFragmentSource:String; + @:noCompletion private var __glSourceDirty:Bool; + @:noCompletion private var __glVertexSource:String; + @:noCompletion private var __hasColorTransform:ShaderParameter; + @:noCompletion private var __inputBitmapData:Array>; + @:noCompletion private var __isGenerated:Bool; + @:noCompletion private var __matrix:ShaderParameter; + @:noCompletion private var __numPasses:Int; + @:noCompletion private var __paramBool:Array>; + @:noCompletion private var __paramFloat:Array>; + @:noCompletion private var __paramInt:Array>; + @:noCompletion private var __position:ShaderParameter; + @:noCompletion private var __textureCoord:ShaderParameter; + @:noCompletion private var __texture:ShaderInput; + @:noCompletion private var __textureSize:ShaderParameter; + + #if openfljs + @:noCompletion private static function __init__() + { + untyped Object.defineProperties(Shader.prototype, { + "data": { + get: untyped #if haxe4 js.Syntax.code #else __js__ #end ("function () { return this.get_data (); }"), + set: untyped #if haxe4 js.Syntax.code #else __js__ #end ("function (v) { return this.set_data (v); }") + }, + "glFragmentSource": { + get: untyped #if haxe4 js.Syntax.code #else __js__ #end ("function () { return this.get_glFragmentSource (); }"), + set: untyped #if haxe4 js.Syntax.code #else __js__ #end ("function (v) { return this.set_glFragmentSource (v); }") + }, + "glVertexSource": { + get: untyped #if haxe4 js.Syntax.code #else __js__ #end ("function () { return this.get_glVertexSource (); }"), + set: untyped #if haxe4 js.Syntax.code #else __js__ #end ("function (v) { return this.set_glVertexSource (v); }") + }, + }); + } + #end + + /** + Creates a new Shader instance. + + @param code The raw shader bytecode to link to the Shader. + **/ + public function new(code:ByteArray = null) + { + byteCode = code; + precisionHint = FULL; + + __glSourceDirty = true; + __numPasses = 1; + __data = new ShaderData(code); + } + + @:noCompletion private function __clearUseArray():Void + { + for (parameter in __paramBool) + { + parameter.__useArray = false; + } + + for (parameter in __paramFloat) + { + parameter.__useArray = false; + } + + for (parameter in __paramInt) + { + parameter.__useArray = false; + } + } + + // private function __clone ():Shader { + // var classType = Type.getClass (this); + // var shader = Type.createInstance (classType, []); + // for (input in __inputBitmapData) { + // if (input.input != null) { + // var field = Reflect.field (shader.data, input.name); + // field.channels = input.channels; + // field.height = input.height; + // field.input = input.input; + // field.smoothing = input.smoothing; + // field.width = input.width; + // } + // } + // for (param in __paramBool) { + // if (param.value != null) { + // Reflect.field (shader.data, param.name).value = param.value.copy (); + // } + // } + // for (param in __paramFloat) { + // if (param.value != null) { + // Reflect.field (shader.data, param.name).value = param.value.copy (); + // } + // } + // for (param in __paramInt) { + // if (param.value != null) { + // Reflect.field (shader.data, param.name).value = param.value.copy (); + // } + // } + // return shader; + // } + @:noCompletion private function __createGLShader(source:String, type:Int):GLShader + { + var gl = __context.gl; + + var shader = gl.createShader(type); + gl.shaderSource(shader, source); + gl.compileShader(shader); + var shaderInfoLog = gl.getShaderInfoLog(shader); + var hasInfoLog = shaderInfoLog != null && StringTools.trim(shaderInfoLog) != ""; + var compileStatus = gl.getShaderParameter(shader, gl.COMPILE_STATUS); + + if (hasInfoLog || compileStatus == 0) + { + final startMessage = '${(compileStatus == 0) ? "Error" : "Info" } ${(type == gl.VERTEX_SHADER) ? "compiling vertex shader" : "compiling fragment shader"}'; + var message = startMessage; + message += "\n" + shaderInfoLog; + message += "\n" + source; + #if sys + if (compileStatus == 0) + { + try + { + if (!sys.FileSystem.exists('logs')) + sys.FileSystem.createDirectory('logs'); + + sys.io.File.saveContent('logs/' + 'ShaderCompileError.txt', '$message'); + } + catch (e:haxe.Exception) + Log.warn('Couldn\'t save error message. (${e.message})', null); + } + #end + if (compileStatus == 0) + #if (android && !macro) + android.Tools.showAlertDialog("Shader Compile Error!", message, null, null) + #elseif !ios + openfl.Lib.application.window.alert('$message', 'Shader Compile Error!') + #else + Log.error(message) + #end; + else if (hasInfoLog) + Log.debug(message); + } + + return shader; + } + + @:noCompletion private function __createGLProgram(vertexSource:String, fragmentSource:String):GLProgram + { + var gl = __context.gl; + + var vertexShader = __createGLShader(vertexSource, gl.VERTEX_SHADER); + var fragmentShader = __createGLShader(fragmentSource, gl.FRAGMENT_SHADER); + + var program = gl.createProgram(); + + // Fix support for drivers that don't draw if attribute 0 is disabled + for (param in __paramFloat) + { + if (param.name.indexOf("Position") > -1 && StringTools.startsWith(param.name, "openfl_")) + { + gl.bindAttribLocation(program, 0, param.name); + break; + } + } + + gl.attachShader(program, vertexShader); + gl.attachShader(program, fragmentShader); + gl.linkProgram(program); + + if (gl.getProgramParameter(program, gl.LINK_STATUS) == 0) + { + var message = "Unable to initialize the shader program"; + message += "\n" + gl.getProgramInfoLog(program); + Log.error(message); + } + + return program; + } + + @:noCompletion private function __disable():Void + { + if (program != null) + { + __disableGL(); + } + } + + @:noCompletion private function __disableGL():Void + { + var gl = __context.gl; + + var textureCount = 0; + + for (input in __inputBitmapData) + { + input.__disableGL(__context, textureCount); + textureCount++; + if (textureCount == gl.MAX_TEXTURE_IMAGE_UNITS) + break; + } + + for (parameter in __paramBool) + { + parameter.__disableGL(__context); + } + + for (parameter in __paramFloat) + { + parameter.__disableGL(__context); + } + + for (parameter in __paramInt) + { + parameter.__disableGL(__context); + } + + __context.__bindGLArrayBuffer(null); + + #if lime + if (__context.__context.type == OPENGL) + { + gl.disable(gl.TEXTURE_2D); + } + #end + } + + @:noCompletion private function __enable():Void + { + __init(); + + if (program != null) + { + __enableGL(); + } + } + + @:noCompletion private function __enableGL():Void + { + var textureCount = 0; + + var gl = __context.gl; + + for (input in __inputBitmapData) + { + gl.uniform1i(input.index, textureCount); + textureCount++; + } + + #if lime + if (__context.__context.type == OPENGL && textureCount > 0) + { + gl.enable(gl.TEXTURE_2D); + } + #end + } + + @:noCompletion private function __init():Void + { + if (__data == null) + { + __data = cast new ShaderData(null); + } + + if (__glFragmentSource != null && __glVertexSource != null && (program == null || __glSourceDirty)) + { + __initGL(); + } + } + + @:noCompletion private function __initGL():Void + { + if (__glSourceDirty || __paramBool == null) + { + __glSourceDirty = false; + program = null; + + __inputBitmapData = new Array(); + __paramBool = new Array(); + __paramFloat = new Array(); + __paramInt = new Array(); + + __processGLData(glVertexSource, "attribute"); + __processGLData(glVertexSource, "uniform"); + __processGLData(glFragmentSource, "uniform"); + } + + if (__context != null && program == null) + { + var gl = __context.gl; + + #if (js && html5) + var prefix = (precisionHint == FULL ? "precision mediump float;\n" : "precision lowp float;\n"); + #else + var prefix = "#ifdef GL_ES\n" + + (precisionHint == FULL ? "#ifdef GL_FRAGMENT_PRECISION_HIGH\n" + + "precision highp float;\n" + + "#else\n" + + "precision mediump float;\n" + + "#endif\n" : "precision lowp float;\n") + + "#endif\n\n"; + #end + + var vertex = prefix + glVertexSource; + var fragment = prefix + glFragmentSource; + + var id = vertex + fragment; + + if (__context.__programs.exists(id)) + { + program = __context.__programs.get(id); + } + else + { + program = __context.createProgram(GLSL); + + // TODO + // program.uploadSources (vertex, fragment); + program.__glProgram = __createGLProgram(vertex, fragment); + + __context.__programs.set(id, program); + } + + if (program != null) + { + glProgram = program.__glProgram; + + for (input in __inputBitmapData) + { + if (input.__isUniform) + { + input.index = gl.getUniformLocation(glProgram, input.name); + } + else + { + input.index = gl.getAttribLocation(glProgram, input.name); + } + } + + for (parameter in __paramBool) + { + if (parameter.__isUniform) + { + parameter.index = gl.getUniformLocation(glProgram, parameter.name); + } + else + { + parameter.index = gl.getAttribLocation(glProgram, parameter.name); + } + } + + for (parameter in __paramFloat) + { + if (parameter.__isUniform) + { + parameter.index = gl.getUniformLocation(glProgram, parameter.name); + } + else + { + parameter.index = gl.getAttribLocation(glProgram, parameter.name); + } + } + + for (parameter in __paramInt) + { + if (parameter.__isUniform) + { + parameter.index = gl.getUniformLocation(glProgram, parameter.name); + } + else + { + parameter.index = gl.getAttribLocation(glProgram, parameter.name); + } + } + } + } + } + + @:noCompletion private function __processGLData(source:String, storageType:String):Void + { + var lastMatch = 0, position, regex, name, type; + + if (storageType == "uniform") + { + regex = ~/uniform ([A-Za-z0-9]+) ([A-Za-z0-9_]+)/; + } + else + { + regex = ~/attribute ([A-Za-z0-9]+) ([A-Za-z0-9_]+)/; + } + + while (regex.matchSub(source, lastMatch)) + { + type = regex.matched(1); + name = regex.matched(2); + + if (StringTools.startsWith(name, "gl_")) + { + continue; + } + + var isUniform = (storageType == "uniform"); + + if (StringTools.startsWith(type, "sampler")) + { + var input = new ShaderInput(); + input.name = name; + input.__isUniform = isUniform; + __inputBitmapData.push(input); + + switch (name) + { + case "openfl_Texture": + __texture = input; + case "bitmap": + __bitmap = input; + default: + } + + Reflect.setField(__data, name, input); + if (__isGenerated) + Reflect.setField(this, name, input); + } + else if (!Reflect.hasField(__data, name) || Reflect.field(__data, name) == null) + { + var parameterType:ShaderParameterType = switch (type) + { + case "bool": BOOL; + case "double", "float": FLOAT; + case "int", "uint": INT; + case "bvec2": BOOL2; + case "bvec3": BOOL3; + case "bvec4": BOOL4; + case "ivec2", "uvec2": INT2; + case "ivec3", "uvec3": INT3; + case "ivec4", "uvec4": INT4; + case "vec2", "dvec2": FLOAT2; + case "vec3", "dvec3": FLOAT3; + case "vec4", "dvec4": FLOAT4; + case "mat2", "mat2x2": MATRIX2X2; + case "mat2x3": MATRIX2X3; + case "mat2x4": MATRIX2X4; + case "mat3x2": MATRIX3X2; + case "mat3", "mat3x3": MATRIX3X3; + case "mat3x4": MATRIX3X4; + case "mat4x2": MATRIX4X2; + case "mat4x3": MATRIX4X3; + case "mat4", "mat4x4": MATRIX4X4; + default: null; + } + + var length = switch (parameterType) + { + case BOOL2, INT2, FLOAT2: 2; + case BOOL3, INT3, FLOAT3: 3; + case BOOL4, INT4, FLOAT4, MATRIX2X2: 4; + case MATRIX3X3: 9; + case MATRIX4X4: 16; + default: 1; + } + + var arrayLength = switch (parameterType) + { + case MATRIX2X2: 2; + case MATRIX3X3: 3; + case MATRIX4X4: 4; + default: 1; + } + + switch (parameterType) + { + case BOOL, BOOL2, BOOL3, BOOL4: + var parameter = new ShaderParameter(); + parameter.name = name; + parameter.type = parameterType; + parameter.__arrayLength = arrayLength; + parameter.__isBool = true; + parameter.__isUniform = isUniform; + parameter.__length = length; + __paramBool.push(parameter); + + if (name == "openfl_HasColorTransform") + { + __hasColorTransform = parameter; + } + + Reflect.setField(__data, name, parameter); + if (__isGenerated) + Reflect.setField(this, name, parameter); + + case INT, INT2, INT3, INT4: + var parameter = new ShaderParameter(); + parameter.name = name; + parameter.type = parameterType; + parameter.__arrayLength = arrayLength; + parameter.__isInt = true; + parameter.__isUniform = isUniform; + parameter.__length = length; + __paramInt.push(parameter); + Reflect.setField(__data, name, parameter); + if (__isGenerated) + Reflect.setField(this, name, parameter); + + default: + var parameter = new ShaderParameter(); + parameter.name = name; + parameter.type = parameterType; + parameter.__arrayLength = arrayLength; + #if lime + if (arrayLength > 0) + parameter.__uniformMatrix = new Float32Array(arrayLength * arrayLength); + #end + parameter.__isFloat = true; + parameter.__isUniform = isUniform; + parameter.__length = length; + __paramFloat.push(parameter); + + if (StringTools.startsWith(name, "openfl_")) + { + switch (name) + { + case "openfl_Alpha": __alpha = parameter; + case "openfl_ColorMultiplier": __colorMultiplier = parameter; + case "openfl_ColorOffset": __colorOffset = parameter; + case "openfl_Matrix": __matrix = parameter; + case "openfl_Position": __position = parameter; + case "openfl_TextureCoord": __textureCoord = parameter; + case "openfl_TextureSize": __textureSize = parameter; + default: + } + } + + Reflect.setField(__data, name, parameter); + if (__isGenerated) + Reflect.setField(this, name, parameter); + } + } + + position = regex.matchedPos(); + lastMatch = position.pos + position.len; + } + } + + @:noCompletion private function __update():Void + { + if (program != null) + { + __updateGL(); + } + } + + @:noCompletion private function __updateFromBuffer(shaderBuffer:ShaderBuffer, bufferOffset:Int):Void + { + if (program != null) + { + __updateGLFromBuffer(shaderBuffer, bufferOffset); + } + } + + @:noCompletion private function __updateGL():Void + { + var textureCount = 0; + + for (input in __inputBitmapData) + { + input.__updateGL(__context, textureCount); + textureCount++; + } + + for (parameter in __paramBool) + { + parameter.__updateGL(__context); + } + + for (parameter in __paramFloat) + { + parameter.__updateGL(__context); + } + + for (parameter in __paramInt) + { + parameter.__updateGL(__context); + } + } + + @:noCompletion private function __updateGLFromBuffer(shaderBuffer:ShaderBuffer, bufferOffset:Int):Void + { + var textureCount = 0; + var input, inputData, inputFilter, inputMipFilter, inputWrap; + + for (i in 0...shaderBuffer.inputCount) + { + input = shaderBuffer.inputRefs[i]; + inputData = shaderBuffer.inputs[i]; + inputFilter = shaderBuffer.inputFilter[i]; + inputMipFilter = shaderBuffer.inputMipFilter[i]; + inputWrap = shaderBuffer.inputWrap[i]; + + if (inputData != null) + { + input.__updateGL(__context, textureCount, inputData, inputFilter, inputMipFilter, inputWrap); + textureCount++; + } + } + + var gl = __context.gl; + + if (shaderBuffer.paramDataLength > 0) + { + if (shaderBuffer.paramDataBuffer == null) + { + shaderBuffer.paramDataBuffer = gl.createBuffer(); + } + + // Log.verbose ("bind param data buffer (length: " + shaderBuffer.paramData.length + ") (" + shaderBuffer.paramCount + ")"); + + __context.__bindGLArrayBuffer(shaderBuffer.paramDataBuffer); + gl.bufferData(gl.ARRAY_BUFFER, shaderBuffer.paramData, gl.DYNAMIC_DRAW); + } + else + { + // Log.verbose ("bind buffer null"); + + __context.__bindGLArrayBuffer(null); + } + + var boolIndex = 0; + var floatIndex = 0; + var intIndex = 0; + + var boolCount = shaderBuffer.paramBoolCount; + var floatCount = shaderBuffer.paramFloatCount; + var paramData = shaderBuffer.paramData; + + var boolRef, floatRef, intRef, hasOverride; + var overrideBoolValue:Array = null, + overrideFloatValue:Array = null, + overrideIntValue:Array = null; + + for (i in 0...shaderBuffer.paramCount) + { + hasOverride = false; + + if (i < boolCount) + { + boolRef = shaderBuffer.paramRefs_Bool[boolIndex]; + + for (j in 0...shaderBuffer.overrideBoolCount) + { + if (boolRef.name == shaderBuffer.overrideBoolNames[j]) + { + overrideBoolValue = shaderBuffer.overrideBoolValues[j]; + hasOverride = true; + break; + } + } + + if (hasOverride) + { + boolRef.__updateGL(__context, overrideBoolValue); + } + else + { + boolRef.__updateGLFromBuffer(__context, paramData, shaderBuffer.paramPositions[i], shaderBuffer.paramLengths[i], bufferOffset); + } + + boolIndex++; + } + else if (i < boolCount + floatCount) + { + floatRef = shaderBuffer.paramRefs_Float[floatIndex]; + + for (j in 0...shaderBuffer.overrideFloatCount) + { + if (floatRef.name == shaderBuffer.overrideFloatNames[j]) + { + overrideFloatValue = shaderBuffer.overrideFloatValues[j]; + hasOverride = true; + break; + } + } + + if (hasOverride) + { + floatRef.__updateGL(__context, overrideFloatValue); + } + else + { + floatRef.__updateGLFromBuffer(__context, paramData, shaderBuffer.paramPositions[i], shaderBuffer.paramLengths[i], bufferOffset); + } + + floatIndex++; + } + else + { + intRef = shaderBuffer.paramRefs_Int[intIndex]; + + for (j in 0...shaderBuffer.overrideIntCount) + { + if (intRef.name == shaderBuffer.overrideIntNames[j]) + { + overrideIntValue = cast shaderBuffer.overrideIntValues[j]; + hasOverride = true; + break; + } + } + + if (hasOverride) + { + intRef.__updateGL(__context, overrideIntValue); + } + else + { + intRef.__updateGLFromBuffer(__context, paramData, shaderBuffer.paramPositions[i], shaderBuffer.paramLengths[i], bufferOffset); + } + + intIndex++; + } + } + } + + // Get & Set Methods + @:noCompletion private function get_data():ShaderData + { + if (__glSourceDirty || __data == null) + { + __init(); + } + + return __data; + } + + @:noCompletion private function set_data(value:ShaderData):ShaderData + { + return __data = cast value; + } + + @:noCompletion private function get_glFragmentSource():String + { + return __glFragmentSource; + } + + @:noCompletion private function set_glFragmentSource(value:String):String + { + if (value != __glFragmentSource) + { + __glSourceDirty = true; + } + + return __glFragmentSource = value; + } + + @:noCompletion private function get_glVertexSource():String + { + return __glVertexSource; + } + + @:noCompletion private function set_glVertexSource(value:String):String + { + if (value != __glVertexSource) + { + __glSourceDirty = true; + } + + return __glVertexSource = value; + } +} +#else +typedef Shader = flash.display.Shader; +#end \ No newline at end of file diff --git a/source/openfl/utils/Assets.hx b/source/openfl/utils/Assets.hx index db92e5303..13538288c 100644 --- a/source/openfl/utils/Assets.hx +++ b/source/openfl/utils/Assets.hx @@ -614,6 +614,7 @@ class Assets } else { + @:privateAccess LimeAssets.libraries.remove(name); _library = new AssetLibrary(); _library.__proxy = library; LimeAssets.registerLibrary(name, _library);

pQgSd8`qU3gOcEz)&*PQG`cvv)$Or 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 Am;e9( literal 0 HcmV?d00001 diff --git a/assets/images/mobile/virtualpad/m.png b/assets/images/mobile/virtualpad/m.png new file mode 100644 index 0000000000000000000000000000000000000000..a73db43d433d6abda6efd7a33018677ff1769544 GIT binary patch literal 23499 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 KMNUMnLSTYI8Fr@t literal 0 HcmV?d00001 diff --git a/assets/images/mobile/virtualpad/n.png b/assets/images/mobile/virtualpad/n.png new file mode 100644 index 0000000000000000000000000000000000000000..4844e113aeaaea443af40c7fe2042118b53b2114 GIT binary patch literal 21499 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 T1ho4n00000NkvXXu0mjfk}&qJ literal 0 HcmV?d00001 diff --git a/assets/images/mobile/virtualpad/o.png b/assets/images/mobile/virtualpad/o.png new file mode 100644 index 0000000000000000000000000000000000000000..d53a7d63bc4dc11ceb05fd4e3216f87a83a9a129 GIT binary patch literal 24691 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℘ZFC? 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⩔my(9+Sc| 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 N002ovPDHLkV1l8NSpon6 literal 0 HcmV?d00001 diff --git a/assets/images/mobile/virtualpad/q.png b/assets/images/mobile/virtualpad/q.png new file mode 100644 index 0000000000000000000000000000000000000000..cb6ae7743433773fd2d34f4ae27d21d206a4c3c5 GIT binary patch literal 25687 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 F{6BBqC8+=a literal 0 HcmV?d00001 diff --git a/assets/images/mobile/virtualpad/right.png b/assets/images/mobile/virtualpad/right.png new file mode 100644 index 0000000000000000000000000000000000000000..95a8a4ff8a521f2b195d5b94679df689dabbe42d GIT binary patch literal 20549 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 literal 0 HcmV?d00001 diff --git a/assets/images/mobile/virtualpad/s.png b/assets/images/mobile/virtualpad/s.png new file mode 100644 index 0000000000000000000000000000000000000000..02d386f99efb4e97fb46f3071bb4e3f77a6dc71c GIT binary patch literal 24206 zcmW(+V?bnW8;+Z8+qP|Qc5SZ7c5Rz&Y}`EAwr$(iW^MJ&`~5jHzh=&Pp69wR-1mw6 zt}KHDj}H$928JXjE2#zs1`Z4Q?hpG7bTxAL-~(MX1wg5R)RO-yu+wrGS;RnjUOd znCsV5)->X_{6``S@HQ70oWp zql6))3Wl9o;?4Y%Qf>!EWA7f#Q6nsLKoK%iBDQTVB;)+F1ZQEme>T2v_QHhB3vCCXe95(1@%uUw6=`ah@3HB(;!mMxQ zl?9a7Ib?|Da$&%@2FOKgPH!OD#GOrv4YM{T)yG;4ITwhldQBOwZ z8`ZyC+4Honc<^3R>}V=Rxoxw#ou|ca&oQcSPR2$?+uw{6=TP31Id5p)--zna z^_CSjwHyd;La*coU7Kn913txIS}9ZK)@9vo{hrx(eS4#O?}YKIaG^)@Q__vDh3k2P zt+z*h_R0Ut`ZS;?k4}OmN5O_T(Mx;$*qdi<(&eAbeE}B?i^70bKj(4oiYJ%dHqNWg zhmGtS7M3mp=c3hbfvMVk#v?7Dl}3)%WyBG95`^H(%X8g|DHuV7GHSOCPQB?|S`VoF zJ8wu(>9=A0XJI@5TS3QkP66AZD;xT^$kxzkJt?+cS`*^;@Le;jQ`CW`_QmiLN>+0O zb@Z~tYQp~SAt~!3-v4~@Uaw=BpM`y=lGHbndT8=t;kfFQ(9pN^viI(OJS`x@wFE=S zJ**6kil6tHdk))?j|N1pBjeqyD?A!W41DJbr>u`Wfad4;R8EjW_wUX)(nCdHn$SDG ze_afQK@mraNxpznu#CcVTa$OsQ_F!ioLRsBN&-*1=_nBr7qZvC^Hf^6oPn}V>a|(d z(vQ9Vk?seJ5Upoig&#eXR-7z}m9U~mYe_^2moKoIRHxD?qx^Aor{^s*@T^L>C1(B; zKT!SrbIL$aN|`3kRa7}iy4gKZ8XJ12)dkix-$HjHTe;Myks)H@h#b`&RZGb<>bDqT z!bx!;$wyd;&1rjXdrM|XKEo4-a*|}%QL*k#uM6&re*hOQd`Yropx->A3+%yML?Q&%mP)V-&IPx(Cc$YozTwnc#Dv)e*SyHKcRJ3*)X>P zd-+GlxOdTF;T2WF8|WQEn0QxHE2yD4%{Y^0wzOrTW7yg&(sC0`;-s~yy9w4Q^Qs85TjZE|%g4jMn>QdX{-=y7aKilGhw1IItBZ zOXyFKaV;)obu5t!(TmOsCf(MzTsuthM;4Mg!|t;KT|Q3d@HXNvx3b=ZJ{r245jfjS z+-h{Un_HyPW~)9ORGRbrbL@Tf55wk^(k5cY!BmGV+9rXWU!pK$SE@rxrCC%HTUu}a z$xb@x^<)tx*HAxXyF9?t83PR;x#|HlD+$Zo{qyjcSSZ?x9txZT_qF{r2_7i&S1|4Q|u7`G1ISw6hSJ(>JKM8_)e)g*8}UV>8#sdd`nQFvT#^22^0x!he4Nd_A)AHhkk#1iR5M zx9XMzeEQ92MolC%e@b*9H{_v^lsHv+1*W$AS!CSf@EbM+@dvqiP{Kk_2h?ds zCe>a9oT0mXrYc2SI|0*7JHA1n=f0oIWysu?D@*q2=Hv37G+1C2O?N|+z;#6vV){z` zuoAIF5e&;hp64%Gs3OLQAs3IdcWC~qd)U#i1^$(TJD@)Dl|@PgcyF9Q(O#D{awZ){ z1RpNZ9ouW5a38RpjB^pn$(EV095QbqXPw94yfHkk{_3x=mj5w|&OleTpc(Rja1$7M zkk4ak;RB&?$o+xqch!V!^r{v?6)$Bl4ZP=LX8dkvdNbJF432M*7uYXK zJS_fCE0@5lY0~2uTjd5yH$$3|Q7^>zTjDhSL<`-kIBD!AB6ckZzP3BRQ4bnWZFbqn zH!!kUs~>UMhx44{5{wIYKd5|v&S?~Q>zpgbRk}%x(Mpmle{+{y?|Hge2$~3jIli=p z4?L{4@ob&FR-G;2*Sf+h&11ZAu#H6NC)jCn&*OK!#jG#^0xUqQMAo+-Ld}y*nv~g6 zjnLlBHNkQ8#AQeTZ0Y1%9`J?EwCMmV-Mpn!#uLff3l7^=LJi8M)^Ao!E>sJtwfkeX zC)yW|!NM))fxh>bL4WoGUakAOrc?-0Y5H}ti6O+-mZv*wW;i;^l1>(4KWutJU;B2| zU4#XoS!BhVq&0}v7M{pOaTd`W@U_!n_3z*8g-l^Wj|8PNF*u(w7`l&oTBNA?^YBuI zj63?rl)@#i6=eA4>v}M_m)N#U9&hTLjEdQ0GS{M?C6U9?JrRNW24bCFGDSN1=bml>FNGB-nIhV9fw-x&GZ(oPTc_*WbxY$JE|=cZ?G0>IK2hM*Tz zELVd)|Bk2x#9uXSLCcZb%ne~KAnTOlQ@EkPgyN~J5K=OQ6g6ekRQVmE+G%SDF^_fY zRk+@txAeU6UIes;a>GDZ1G~F(8!U6O=f_2>Ntum%=o^IyUM0_qg= z)xee0-f}jSAQxqcQzNA%LkEMs5LO_!o%AGtnARFAF3t98GEnV7uc z4kohSHfd%I8&6|#R@!BCr7`Ir^7K4e z7G3tf2_%@PLM1wxsD(=U-tK-Faiw(@%luICOY7mMsBI)`z?`4~9M3Sj z(skg0P3~J?7oT}fJgJ)m4XI!VAwP)Pd#Ek9!MzHF>a#i78fJ85S7zJVIs7uV5Yp=1 z&-5=VltiQ*;f- zkK?eO&Hj$bX3MxWG!y=Q@l&x&GKmsI@sr+#&30?#HF{0sQUx*J(=7D#^=%$vYDro( zr213}AW?2^S*Z^#E*+W8G`3Iy21a20x44O3G5Mc;F^;%F5=$;dFNYJ%U?xH2I36gb zY04ewd#CeCr%2O-Lldkt3F|C76E&`OaAYU{lpOdYW>ZLEbyayi$Hj9wZf3|L{AT(& zl@hKJh45qRPhOb~)H%~PE;tN~Dw`#w<#V%Uie-}qwwD|UoQvLkbsz7H_+6DBjA>X( z^cT*O-0Sg56Dm-b#z#X+(g})TIN?*th$gN=t7&#T=7m{GKQ0eWtCr;SOvCKv3dM!E z5bu}R9rtkqR^HNMEWf6k^E*zhU-=Jm4yfakc&hkze_{jvDQRtxNhp_yrvFqzT`}a5 z=>99-k#SO-Zj|INoaatHsuC8D9AJM%z^GFT_ON*gts#mGr_>8fNaqNABw@rA%HgjO zaTKjZWt=FGKwfx^=852GW3}Z>amdM>uvB+!cc%Xh?nVYB#xR*bqP<=hY-R_p0h#}< zJ-}sE`bn(IlX8|5kcPsSRA(Fpop_qfl^LE;(BM2JZK?D-A7XtqjC$m=a4W6K#G1@7 zH|t7mupp_^_7Sk3VMc5+aPD{bH#8Z?br6f95}!}XXUR#53N9`O6>@K+R?NxOZCy81Nrn6G zSrm}Le1em$wfrxE?fH0tIOVUhBLf{qg!hobPR$!9(MrVIMdH+WlD>y23TV;tE|*S& z7E5g%{BwbijQU|#EuKRu_qCL;HqueJZbR~I1!qL9YA#+gqN`^Qdt@lC@r!kTorDlj zRydj#RLoXGEywX#^zS~4cShWb92Gut6NII)I4t^xFfnv{Q(c)SZ4P)k-91uHM+73j zHOa=~UnL$r^pR71o132}-*KH00#n_+J$%vu$EeeA!Ns_9e(l=XUxag=a3SL-Hjwjb z-wCLja6)LWEqr%I+|Q7lWwT|k(WGqj21`P<$%GaI7zwh|*Kj0wPqO`_#vspy*MI<# zNLvS%7qtx=*qKAx*9YeGtWm&iY%lOP2S!fcCyg#w24g*c=fQXDg}5Awz~Ks#8HfA( z(tw!YY3uQ#skG>H_VXUAL~YggL`JD9CQej&VyUYQ7;8A=W_#{w;2cPLVPpCF3^?BI@EzICtotmhpV-*AS}J;+1wHH6rImWZp@~m%``X-Wwvj{&)lpqu6rw}qS`a~=|MQcYYR@Vhb*z^sk%?V9U3Di_kR$q)J zg_KkC)_yy^9zJs+!-UgROStic0Xr#><9!NozB(Ol<5B$g1IM{Xu}HPhK0&MllbTr( zV8P>{&}VPsG=<1X$1yB0TQukV1%JMFh zS3I97p(CK}n2_T|zQOk(>5+ARJVjB7`&;$lS!bACMwP&tQAzdv=D7s3NrJ`rXA0|V zigp~jJRLxjlBRL{PEg48TM+%h+NRO~k8&MWlWTI+dbFLCy{)*a@0BAvW|P0B=tUHC zHJ;{n@K;^a+QAiI!z37l~LDSH@{!r@`2j0Lg}~Qr@4B@iPeEo#od%np2;K* z2xb373A4eWCX}7bbVA03T$zGoT2SeGEF9xfnVm~Tk0;#{x`xmw-o`?pi!{LCH}Pt@mRfePNan1R2()PMp1W~7nK`5=vx zWgmPA;A$0nn`>ct(HH)fM0EQ61{sz6b5q_a}t%WmevDP@1Y zcJq%S-NF*%fd^a8nytuL47M&5B#HS;j{^!pLM6ZBb*%mdu8^DKhQ9^u1p&AeFenF? z+Q;{I%c+7-#b3&FfCf48_kdD_b~nDj-d(xvwtw`>t=>0p?sIP@3+nrHO{Jwu-&VW* zJ0Ld-KA8@+k*Ea3=gaSAWR94hUefIaPq{PHm`zC50Fo#@wEV}JiU`F^_j^4M z1~Zj%`|s(jL#u4$)FYIhFtRR7U9UVA(^$C}_;Gy}URw>AnKPW>2Z(VeNmzQQih)Y; zB1bw;Ngvnrk%%KH?Q@rZuScCYJZ7ui(cf?Q7g>ncah%!8soF!R(uj(pw-FkpEforGxO^Kx91%`63z3FFu_F!9YD-3d}j4`ACTg_1)|(8BIC939qubl*#hwn8EF?(!b-Kp7eYm(_^<)2OhTg z`e42~HhbU3X?b0NP&1T(J5Q%k4KyOOi=Cg8EMI@RDK5IR^Voz)@0ruFAGTJEXDlHU z!~m=HMyuoQhXq__m&s>Ajn$JMGMznEoMjaD(BkmnG7jSO#;blh`gF_81gboF<5JBsuj{gZ9Y2=;OWqpi0_F0)ZS3hYt3d z0`3-YwfUzEQ+6iSO!vx()gybouYlILl?si9+mu~om2W5 zz9SZ1vv2ltP=#d8Zwj7lcloizd{Mju7l~TlGAOAn+%32cH8ZPg>-PSDk9a+ism{&` zoz*i%->176yw-{`AQC6`_r6{9*>c6z>%vWSUc|s)&wGTbsOx>iaY)A1Z66 zAe>ay)LMOk)Ab>=H&)Z@p9ySAQ?xZ~s$R18RNP_mDY^i_>DC>3nojx3#t*4N8OBSw zWR|jFoZqi6CwJ`47P_5ltHTcl6vgMVDrV>Xly|)wcI%y?Ty;X6D{0u975J3Amyvgs zO_7DqLPIdZu5`$%pQnXQLuzahY17Ryi`vGt8kkFpD{ErK_gX!8f6Me@k4Umvk(MdA z=lSV&*rr2RvWR?X5kOm~x&SKcxj%o96)^zJl%`V(nxE>|76}}(0VU83A*9w%PPAwO z2~mTvaoQo*#>r(sB0v+!q@PVXK5Uj2yZ9fvRfYA9-TYO&G_i5#$%-ALs!0NsX2~> zYM}pvZF9l$5uLg!!NDkt5rxask!yC4BZWi84Bk8c?3u-|*IjGg4wAHq6}IKb|yr*{bijpqkI z)%>3`%*m!7Rr<70_|F;R`eM{%B!1Y1SDp=~glPxHOfp!NDXc`@a!I?vx>zC&g60D5 zxajTK@683xn3$s;E(y#er0B`;aF5lXA0|y;Yy?IPHFepGG)Nzo@KDK_#&M%N;6+;K zUiP@t<&Xf%@#SFU3J&s9H@lv`&|FS;&)+l5V*gM~-)&vsF)Q~O$6@8`a~d?DVud#6 zB0s(Oya|^;xuH7S^;~Nslk(qIvkc)h=rEGPerH`$2fAWOsj0q)JGz_?VvK7oJ}K5T z8DFw*{$eHv8)S<#JJeo;7n^@ilDsLH6OUND0n-Y~=lRGm1D8`rk6JhSHChT}3iH#g zqWmR^_46>hIMTU^<7->$yIqmjkwV~)zJ&$6t?#^p%oFVUY3e_Ya_eVuP#}Vs6^*u< z*Qvt~u+Z(|36IxqwkC#ldYZj@+1Z40ma!>nt@#5MB16aGmb)z4a1sO@MbU)@Q(AVc zJ(zU67$p0_+?SUj6-y^^t^0%%H5P?^VAQjQQ~v;C=boZhU{#*hmix0s*C@2Dv%}qM zs>D@j0jVHGIdLRDx*E0qe#M7J6ivOqi9x5L>ihVh5ycr9L>(LVuB}xBWP)a!j6u*I zGpMMcw|)wHy>H{WE!OOr$U0Z-4-YQXreY{@j75#-&XW7Z~k$CU; zt{9Ls%LFmgyxVoeNC8qHL`FJvq>~F6s?yA;p+dj* z;nKi&d&~ID>w4SM*v8eYc^aCl#8N+fGpdFcSH+#7w=D%59NSi zbi;8u6}+7?9#El`MK|p6D%{D8D6*}yobbu)+6%%EedVO=K|qTU2l7*5YAR_-KC@mV zVsRR@vC>%M{Wg$La!|L2>VBtbfLF&PPVD?LjCX0%Plkb}POoD`lwlQZK=PQg9>IsfZ#Ml4y z#MAG{g44eZz)+K2&~39Iimrr)jYMP+cXXPU&tScRN;HEI;m$Miz%fR2O-QTE78Ftvvp@Pap~9UhQHO zW)qbGv!`nn{Au1nZjj0+UVW-6c9vv>&P`_mmN+SFB<{?OULsq08s~&2KHX&ZE~Rpo z8$@z=9Mx`FU%urG5qJ_K*$h9{?IE|g_RL-o$!FS%Ak1mfIPTQF*e~})$n2+CdO%HX zo{f|>J4nNu8MuB+bP6e*?)p6tYmr-n;(!BdUggOwHYb23I_Bs=hGVAe`!g~49!7yb zu#Qop$B8jvQs)%6(cky1qXO9Vao`nFxRWNyh1qnLkifpIpo+KqsQ67LhmVDDHF5Rx zB^yGFFj@t{4vOio#ZleB z4CT`wA=>|@H0#K@?biC~mOBj?3g$xNGuVQYO=+YwSde!U4-J`CDptRkjE z{mke&5^Hhkh)H#wv{a4})3#bJlnNcREreoRatMPaVroR9AsOL7KG$Kz;^AZwcr0pZ z!emtEecVCTh^%jfu?wicQiUjveHLww*8=Rci}1Ie`3xxAj%U`dAb0D$++-7}QzT{a z!P})*=S&wVb8~r!(%*StSmtO~aHU&)8auS-e+Z}+e_(=?wGdArIn-Z~PqiN;O8-NA&7 zk*orq&_AyRU2)HAX7JV&7bwed-O#D6r6O92e%se0=JTqp?ppiC0B00<7lQ-GodDW3 zHREa_Q`@X;YosUcbLRZSh66wqW^+?*q$+Rhi8B_=q2K2w1uYB@?^8@bpr$|L=jRFB z<}LCT!ns|Q1c*e1Uuhev=)UQsGGEN)VWUt^vpn20hn9B4F~6Yn|-(g8PLI> zm+eB+ov8Xg~bz~SdLt&1lK&5a;~nS)&x zJ-V!=SOaeYNtfN@!9pB|hB8tMR+tH1O>U1DpijdV_}b$AQMjVL=tqVFsuC%`)E$qd z%ET_NWRO{H%^iHylPHgQrTdr))uPtp8h@w0A&`lU3{-qcVK&hmj2PBqk-2f?12rqk zfl5s(HBsp7>69d>r}abk+FOwpPjU76-tJf}G?bCeGFpED=DyqR{Pp=u?R<|S%=^I{ zDiaFGOm20q7s%oQdUfRA<`b>OTx1O)A#!-%xgAO?qRN#@Q}eDKsCl*qe;?wi-7e5K z|4N9wOBF4u$wRdRIYEz)KJC$ARHLWsQONjz+ucd z4=j+mVdQ54nM}ea^L~Id>^NqV9A^17S6yqC?NUb@Hm%upcobRRv6$F4UoBGYLRM-! z4uqKG;Oj~A5+QSazdL*YjjOOTaynBdE6p})q|7QEQNH~}Ko;&BY3SiAlc>(G0pl-* z3JG5Y@-o1mi)$>z;b0LX|KHX!GFeM=bJ8+0`Yb{ZVp7G7zgI4i?oaN!6&TY5Ugi1y zsGt+yr2kKdrK^P1x!gZ`6TUBg9&|iofx7-#i$cB$iT5-dfH{M(%qJJLc9YsmjGk&< zQKLzCzaZs{P|4R&#mLgrneuJbrNbJWuLN#!!u-;L{YvxY{a6ALONFB1#tP(C-oQ6G zKKvLb!G7XL+I*()#Qjh_UOCvYJYIf7lD-!<<~+1gm;q^MtJ6Y$p5 zf3FrMM1y-EimPVRMlE>kU4FgU-;`oDT^NtmlET1?|C$}J1!?KFwOmgGIH@ZF9-$=i z)|hxMka4Xl_RKGn=xe?M6=d;dfyOqTnt$rJVsk{Ii$ZiGtv;lb6+9Q}PW@bYJ-l)NiFZDEk+J(Hye3tfXf%WenQ{EyHtDeTBP(z(^~Iy$8eN9GCmAnVS+438?kQFX7!s8fTnlB0QezHt zRk;P?14EgsIoj9VauFIEc$q3zB>zi}Zj-}aLoiaGoyzhqQ#z@uBtFE7iA7<_NQ~Ug zuk6BvKUevwAL@(U(I6=^-O|KrBc`CQN+74c$o;IKs!#g~_8O`Ni2}|cIAGK20-iK# zRNlI3(sfwN*-h7kEGmb4Y5LiEhKKe*A&=4rc?CU27B{`YBRH&|xYflLXQqRgr02ZdrCrIxeyp-vnTb(A-iK8l=+*GCwP_rj*csQTKJlWmvHl(OBedbeGusOc5t*KUrND;^f? zl1!`yZ)Q!CwDVqXl_vHr3-@`cKB~=ulqQEkC}z`|D`Q%8(Q&@Hl)bU+^69R5gx&yD zRZ#M@V5~PzPGmW7kX5I}gQ<@%0GZg{Y~}9J?tO#4{kh3BL;>{*O9JE~b_J|gCa1mB zK@W+zvkSUY(Y)iIP$SLQg>3t#(~%saY4VxDs-y`ayCgdw6cvyDl0+XQqadE54ZYVx zk@G6@)HS8~Ge>Vn#QVJF4*5Fy@F^-@P*}*67p+>0K)s?(3j^{_F%zlPz}Ux$E>NK~ zOQ{Ajg+PS*2KxsP>NarM&`#!X;UGbOQ#$N@RoCV5`8MZFzA(lkxL##7#F?=1c!GpHd9l0eR^AhxL z8FH0nXt84Yxbl6#?UG;C*NWz8bQ-KhbJg#5+i&@2wjKoF<8v{GnMzid znNKvcz+=6C+rFhcM5C;LI}v@;YanSJvkCgU!(MKTq$2kjs!2hTm;v|eY>GM`kmcn2 z)n@>Pq+HZ`OZU(PPGDEy3EfX~>;u7SrBq*(7*J#Bp>#4!zy9%0^9bC(1Jtk0_GWsP z)J2?6sGKok(s-kSfX-UoK!^c z#nQ|H5KWi)!O*TMyEgdRF490${<~U-h`fMk%$B$$8&ZdVQBJ zLvGeqf*`6CPS%=g?%KOMzSe@DXc;`KPO|Y3KoLSn6h}u2Y##qCu*Ze$K11oS1V-2L zlK4AAzXfgfab_=2fLWOq*Hz`eOqMI~M>%mr11@A(QGv&o)^W^l=|++@1TrYJ@$ZY4 zgqxmwMmL=AXzi7-b7_sg)iFYSUHb8_Y@$h5_#-c`dKXO4@OLq7SGE{zUN+@k4v>FM z2k0?)C*%y#jt$8|x61pW24w_Kfn<349vik$ssW*7KZ z^9j22hcZcshUs56?gA;B{^0b@LbRPc7=C%y& z+RS>bFh8XBap!oqVAdx-nL`s=%6WqRLOFusY*Z){%Qjppsd9z6ty0q6#v7w)yxd61 zVIKwR@R6Qpf;0lSaMuTQ$gykDV0T)n9T)GMsbx}`cHLbtplEEDWEL3pr*e|B4oAA z9mY@q*+g=`80Q+Uusqb)p8-&&qq>2Uq#ILj%O)>Hdc523I!zN6sk*__g&;@%w5!KG zf~>WZlD-@I;?YjxBOvsW1}DV#J*qJ;q>N=ECXYL`#OcxadwQAE=OA<|m5eI-(z@xW zjbL?FDwZyG(h7A0?wBdloB|r8IBHka`W>u*9P&obBUDX_&RA9ud8jWN$FxIP@PPjF z`rvoKUM`fl=*G&|`1tH~Io35%(_8Kt!0#iXJez?4Ysu8SX5Ro6V!GoI5Vl`@FvmrO zV?ig5$0{On8gYO3l==g!mON!pUAn$T>^gQ$9=20^+Ct5~Ec$y2EI5ZD#e5?f^dEgh zJx(UGWHS1TkWh9M^xdjkfljV~POi^~{l)^6nu7hVqJpQWR|_VA3}xihsAG7nYpE$- z-y-GqX2Q!3Cl&HXj1kI*UV1J66STC`i*mhIo`k6NZqh&h^kUSGNuUJq1J^^^eunI^ z2mvkSA$87Z`ZnqyW8RyK2>U+cFSBpNAls>vu=p2Hsq#qcCv z^TAT>j#h;~FI48#@VRE$>f+V1c9-#XewQbgbTvdue90s09lz|VhXN%>tZUkP{g4pU z9!pMb{ORfrJ-_g?N67>EIpC_O#J9NaU8yr;3HWOQ-uuR@3wMv;6cN@Mdnf%Sp-FtG zhV)|5a9m3$K|)c-R2&xdSD@dsu+f6&qe^^IsZ)(aK;Bm z>i&VvtH+ri!Le&I?JzBJI3l{CE7|5{OiEVG*%a)Oiw{Ssbb7Lh*l4HDL9`qT3r`_Y zERl{bT2)I6!3V2JJ6p%)5=3wPC{+jUW}ceV(8?^E(Wo~KPB&#)H+wb9$7cGi+DQdZ zli*z;;8Ug#z$YZ__6e(Z(M2&(yIJHIw{|=Mw7r?#Su2iSwCR*dB4>YrtrjquMQj15 zu($@ox3Sek;-H3lRMA5|%p52QpGUMx!o z$}SSqWkVfG=m76D*$n2;$fq%CMAf)S(A^W3`Aw4Y{L<(UCz`IU|3VO62LB=Oj<6-N zk?s6U9uxt!?NCyPgGI%ISyy?01@}v_BvBfoj3pQR?bYhxIZLZD7i?A7)APj(YsY_W?MhD`-JK;S>sj-Ep@ zwUz4cfWGa|f&?rbRqR3yLN^&W845&?wnS{D1JH2IPs4IOT52+~J<PyC_{2&@|0e%T?d#7pTs$AeyQ`O+#i|`Dx$|QaeFo3@I#aR_8 zd%DqSQw^?fX!CAQ?u7kx8s|zpO3{{cjn>$D`nS5VRFvl6^(AdOSUnwSwbX_F@lv>|(;WjMzCGch{RRY134%?>Mhaz5+flT$* z6114)#PJ+9{gejE8}&~7*)g_+eK<28P%XlD3YKoj=jrnt#@H0M3p_TM1X@W^dN-2& zWtB_>qWuz25!D!=9!GIj8 zCY$}d%%8S?mz!?VKG1w3oBOIxb`+#lKOwypgbN&;lA28>CqB2fwJAJkCW5WW1L~ku zX)p^Irx17SpfKRQlr6a>bqt9{jAbGIGv9?Nw-HbF>7lM$fr*FrPY(&7lniz%~c@W>KCONIad^U-*9dZPEg+`n#<7_QLaI5s`{H5-FiT zebj?PBmrw~o(GYR#A;yIU8S&L^ziEep5?MRJs`gM@dh9M$L`8d!tQIubx}j9r)s?X zd~Rw#i6^Vin`FXKJ%5nX=t~KriH_+}0VU(Y;Sy8Dsoe!*TNUtBU!jJl&Bm}Jnu%eh z!Q%*@o7q2E$g{h5=JTQ?=A+qRYu!p8S#v;_($fg>OgDy7zHEs0|4gc+2SnR-)h4Q_TauUQaylXz<(SpGoAL+Rt*{?izUxxZMx-bMF=lW%~W^rNnsj) zoNKQ&+NjS_^A8waUdX_6(xuR2`NI{1NXAjyed+qM0OS`A1G&+g>)Cf?#CN*^$QTTu z!=Sym{X_?FB2yP^C~OY7X8=5&GXRoDX;RL4IMpq;M{WL%gtMGvqA*+j`$KK?c}%i4 z*N$?U8lDE3Grkh12|iSq&-s=h*c_Qf2|0Hvw%CFC$ee-OyQ47z96PY?&npyJov%;! z{d|R*stOOF%A^MG4e9m=3*|aqYd2n z`)w-s?uPABp6aY0Lr5)fl8Ns;W?_M7n4=rKYAoJNTqufiFKafUrwlnzod}5{jMYyP zBe~dTSas%)AoZpQPtC53!q@0=={D_z5178yt${gYc+ac$e#TQLxW)GIDKCkPqkm*s zoQdG$CdcO8X^w&4?T~@jUTEcNTW)ZUy`9b47>RLUrj=uB>Aq&}f-PJ9_qsxVK?Xo! z`Ph9O6DZ0pudT>G{H?WJxR=YCGDb6%?|jJWlqQ2-Xd6EJkQ`6?m`{z>F1P#Ja(E^$ zO%KRJ1e&w(ep~;#HYO~B<})Ey0SkQN{8@kq3b1-pg3NNg>k`LxmITDEP+y$LHLqEh zJh|NaF=3i0MmDo)#ge$+vic)vl9g^NZ7fnuy}K4Uoc@oD2KN}hfR)z(20+h9ZvK+? zBDHE0W0>Wbf%_Sa%P1L~ac_LJPNQ2h+qOV?Wi!%b5`@1uS>O36aazdsaa3kWi||EO|Lx+t_bd?=Asi^*%(01D7iWW$OLBru zEn!gk_D4B8;#vPofHg`Fu31vgx^>S)x$B^O|K5f2$2osLI&S?~XU!KujX_sur8>6y zV)sh)VKIc`lfAssOGrak zPWiIvC8$sXTXul$zTpvLlLqe$YkkilYzel;_Cm&3JJUTR6b`d<4L|K%9W>QTgSN=M zdm86g5r@))f|`c>YwNu5$53-@3V;1y9`w`^pjZH~zrx+y_i`mqeFnK zLH+M#XZ2(2o!3sQhkBrTY%SDpKqA|3B-KATgnTcN2uK^lUmzCy&EEnaL+eTLM%L2M zRalQWCwx{(dOAg-C-Gi;vM5jlV*S8QWE$A21wj1um8qqpye{t$-CsSsOSXB%Yr z&OrW;3?=$b10Z^XkY0UvzNzf&dE_0BE5e2LrP*8Bl;Usx&`gGtG)|vli4k-2t?$g< zFZy;L{js3#SUGb_((aLc#qV`a5lU=?fv0`EwxMMgo$PHKzh|j(!Oo4lE9G z)K%1ywny=;>Ng5q+pGru_l}>dD(nt!LGE%^@%{)y{_15T5O%u8O6akU{C+$`!hJt;>;o z_rD_+jQHm(2bj(PY!QEsAf2yrp6_F|=1(g@G<>j)Fili|nN}1WL>*o5##o$9tfVDludkJs;$q0g4@v zt=Y`e|CRzD1m;;#2OnDT7hL&GZef;2eq?AYKH*@2ax$@UCr8CTxR6j8Dpm{LUJPbjcY)j?6Uvdxe!-J)tx;pLkg?&}&Wud5K0HA^6$W_G}L&`-S3JOa7OZx867) zS-u@{`ICUy;+iP^C>|&QNGt0rK?vVuFf?NI;YZPRk)yV#K#gb#G{{OCkT?tVErwc;rADc;^>o!~ zfsw3Y3bV3}$opK0^*i8cDSg^#cV|#9QKVZ$1VjE$ilS>)4b5U9gi|&Acq2Sk%t>80 zI=FQ{4{6JI_K!_t*_`eR0ZLp^Ou>45JE-MiWzZ$^O!%{abt2`@AVKUCe5;+4s@{VZ zDQPXTIh_4Ub6C`M-WlN6E?=tl3a7j8S}b0S%NRrm!QQVUoLyIG#g*m!ZU^%#ZZYj#Nlq?q8p)Ph$p~R;6DZP z`Z^Oh-DtA_-#oX5!KkaM5A>=jZ^G?v9e#cGOVmv+Imwk(%@A~B6gC_px#{ZDvyG&y z0MArCZw>yL*zJ>9El5=pNf0f)=C`tQS58Y*K0GV?<>vwcpb_+`uXtqt(f;>xn0 zW&A?_<-Jz=dz*7xYmvBFdyaoON)IagDtGWS?_U;ChukDz(noSUVTc4ZYh@5W$NguT zdTR@Rb9`KlNO-NJssH*snGHN>*bp=qz1TH`)iehZEH9R0QS1FjU#ZKc=6#^7)TcEU z#EmSi20kvwTVs9OK*uevp$b7RvWCBz2z)ZXBUq}tP9pnDZL@{0Lw?u=jO@zP zq?lGiea%W#>QDL^8=Pu9##zHu7eLvdqEuCo)T?Bo+9H3J*LhoM+mTAorRL(bS9mZ{ zm7UFYAIZ*XUIBOHrCv;wDQYGiM~6^vVD&4LvW!WWzl=)49|^1T;FThW#+rD(M@mY7 zlgsdxHrqLYN{$aXQ{=-)4M13HkO z`s757;A?eT=39)JHfWN+<=6ceTJbt(C?awkr3Y3@m#*0wJ`=QTkD4(%$f}y`TEjs1 zA6gw1X#q90nn}eaf>cWR_Y?zXI&J)*1<&Krs01=`N3wmmv-!1;YX-iXsJhfDCgZd) zjwCQqb3Rp5oQhv?BqwH>gcff&mLJ*?K}hw&9X?@L$Lp8Rbbde;9TMW+_e%; zfYY;VLh7r&d)CFiYq40ox8#b#s)F8mbK`5S+LYx%n>KVKMp!?e8#nw#8uXtX#4apY z#%V;doZRiVs7bTA8{A;I`}a)z!+LP)ub9NRuuKvq^}jp~a#ILudnl{XHyBr&j z>f_`-Bw1&6M4b&Z`21&&ckRnZYbT~*Vi+@rVqo;Y0B9YT;_x%eH2K48Px7bl{EDD6 z&fMEB%UJRZ>}BOjL6Rh<|LEh4^wpPpna4Fo)-+Ii#R3S970II0~>8cZH3Tfi?@cfGeWLq3Jpw_ z8)=$8p0U(1Ch;>IKlS)BG8JI=<6W%>_|-oi;n#QlhQlvx?7s{@O;P*kiof&5O^?v= z&?@2>WydCTOhyhK#w8DZvtN@IXQQH8jO@TiXSj==SR`lO$s{@a;|C8Cb=aL?!Px0J z=9>4K69}&@O+G6j;g%dM96OWkn+|8vSz^u0DK*0xGHE0LQDM*{;&kjf$kC2YjyPle zTehv5NaW;a){J7t_ZJt|J!C_-Xt-u!#-ybHn_70Io{c}|V0K4Qzt@irO99nKfZDv1RRa zo!!`X+x=D4O0X)tnOc8|4*WpD3b!RGaxdi#}S z$*~=%2}SKxMuoiW^mkX~+A6BW$i~X=Jj&?1hjZ$L**H|2c{{^hJaqE)yguYe#tS*J zZfMT&&N5@8k`PS2@*J*zxR%4Bi>=$Yvm`xtI1(?r&V0rzjfkOZb= z5|;!~bb3ULb`hp^`+g1t+Xj5igA@de@2cU0o@q4Q@zK1(oIYWkUPR(KKCAJx+5|I7ijz$g@P4vjo9Z=0!^&3F@wzPaQDTItT7wk1kogD!43) zbD$tTJ%@Zrz=>cl(wk@_BI|6}vW1mByUNd)2s@tOG-YCnWtZLB7o7or+`$R8V`#kn zL#3_JnSj<3A@J4Ha;%4Khxf3)t~cFw-ZS51bf5{h+ji%i4hN@HO}~f*V`nk*{CO;NySe10lM5(n9cXQ_KIe(3hN9Lk+}nQq z6z=6gN>O{`W6Zt%<9I}Vd3JJ^slkQ|M_TR7f>F~-R@9b={;i7e`U8YB;1$%zXMhmcT&f|`g38 zwqVbp5JtyunkiQ;7LW1dq8|_)+B>?s9gZB+*`Yd9-$OU@o9Y6AVaDamZ8AW?p*uUk zRlcIO?{TS`idwxVW*6-x@h*@+QKTzsAAXbZSDu;Eqmzo-x${rV8P=bus$E z;w`}=j7v*%f}QI0Yzz{f6R4=o%$L8ii_0bu2MV))^a+|CT0w+3wUQgRrSuZOH8ToI zb(7ElH*k)a#|aOwMi(ZEBqL)_r0e_Ci3Rlzg&UPQx^xqDi%!Iif@PYl-n*G~b)6Z_ ztZ&&#gRc%vwXd-!5@vT>GvPb}t8A33gUBxbFI7>S4o7R>76gzg_t*BX0| z!l!GTJ-q})t)i#q*GNKBtEZ@~D2ow|MsYb^6+NJp-+7dCpIpf3hRoTg>MRe3OQ`HT zmMHF)l>X%lw^LaU7fuBkh4!va?z`aI?5Xd`X=;xz#Gk(TE1r#OXhJ5a#R>Thbj3n5 zWkN=NOF~AvnmmsP_laAz@ha$0NX`lU~e~Ma1pLz&Ml5n6h<|h}w_Z782 zysXdZ@HI^%Jhhg1p3F{v6}9OodtHo_c`7LT0qKgxn~m)}v+fmQ@l2u_Y`Um@we|lt zN$3{n7FtULttEnMYZuNvJva|UaBmAS=;b!nhWGKK(?83~h9dShJi^Z5jJp$mp}Y7);_l%-CKAy?Hpo&%%@u9S>;>ZTa=jQEJacK z-0k-hb()-W^ObmAnL$bK#;%eA)yWyJr~hy<8*cqA+oOm3Jmy~oBWoI{{nXr|i}$9( z(Hg^HsTo6iXSl0uMQx!Pj(k~+K7*9q-QCm=?v*-gmYiDtJ-c&iTApBu)Jqa=ho9ie zH-66GTDxPo6bGZPIi2QTzC>iIKVvP&nW~31<%OWU838T|<{~9cJ?#L!b%v3uP5^U%Ji13tyinx|GZG~6%CJ_B zp7kXbKl44N4jYTCC^!`dW4>}eAw?%dj0iezG~B58Et?$TvPlOKx*lKKJ9?J^tu4l& zMbj8O-;<-eF9})iv@FX6@DKpFrtplz#oDn7t*os=k9xXB;YA{!!Dk z3~~Tl|6rPCej-UA80^X*2*n;R`jjvpdqpiwz2a=Hf24q-_6L{dSJXbR@%U8K-u{t9 zw5PO_`j@rmSJYnp>#8Yg6Il%XbKC=zND!7~VVWj}VSqD@Bup7pt@N8J*&?gujYrsc z_18H6yI1ky*=I5=(15Hc)S^(EUDTeq87^d+&}h2sjJ($ulMSL-lk>Y0wGI^#!T=zt z^$$iv>^;)LirpJ+1*#{EKD@9CQ4Hx8ReI5mE?ek^PB`563`3?F%ceh|@KjF8(dU>e zY7;L~-IenairTZ`fep5z_NrOQ;A-Z1Q4!b7F0QCev~f%owYM!QX^qY#)Ru65MeU*8 zRZ-NYeGLHZ?p_yTu?(0bf)e=<4u>%e1Jg9^4(G|VB!HC5Q4$gn_rKn8A6vTq!iVnt zDyL4EZKqNzfGo?nap3MFbyf&g0gXU^p__J6r;d zZT?AE()Z7Y^fqio?HnB6dHmQYYRh0CTTvUwZ#sJwwXqmae(1K+6}2UxA{QfxWHuw4 zBp{0@@|`IUbj4!xpdc;R-N9=|Yx%(A*E4hYgdCr?zv%1<^48Av>^{;=Lv4Usrx#UL ziJLlY-R*RI?rAJZVCK1ILl&r3fyp%reAc5H9C5`s?2hINeELfWNr?P`rfhNm`?(cL zb6N;VRh;Fekt(osTDp!f&XujGb(9>a%zGK>FMoxuK{kOnP?`P1%V>IdWqw8N)ziyR z)Sk!*kF3d6)Lwo<$wA4~b!rNoOE*!sXkMD4c2iXqwP245WfyCCJe~|Co@tu4Ho^&- zs%3Q4LebHDL6PLXVbx&W;7+!D?t7^K%L${V;83-S1tFGc(i!ez>!H1@xa3#7J-Cxj zXFPv!W<>6${vsL3O$Br*d~d3SY;rJ76U(xSF7%>fVr01(i923U{G#hRS~;#I#TB(Z zE4P+qMGPde*9gt|yuc*4`QSjM;fmZjSPNM@r68rKZ9m9k*Zi<-MQvY*WqFn*5ro6x zNOiU(GDf64!Le-g^>Ub!Agmg^+1SR4|GJ5x5jQ9Q_zF%MH;Ykq!%{)8e1ws75#okU zM^BK=2luezQ@>@a-&XLMO}*CgK)UShkBW8bLN`hujn7@4g9-b5u z{so$2k~mWyjZ^pv4om2|*I6sP20m>FMThIGlPu>CdSc zB%r0|NDsZ~Zb?E2pzr)+8D?^`C(IM)ewWX_^($(;y?&M~%hWBJ&f%3ijvFiDc!Usw zz`2uXqlX92`3h_MP}CMp=@zN(RgeKQHKMA3PKgCu>8Y~x-%ZoR>2#tfik;P8kDY@y;k05=*JaWP9+l5#Ob+P^uc?(XiUrY3)MEh+KU zbsbI9P!t7KRf&R47)35jQIxzFn!P=}onl|CuXeKAE9D&dwr78@^zG$bUnxj$GrRp{ zW+|`CItxaDVl6KYYvNsBir>w(>Umr%pL5*|8Hhb`*E0oOj9@TGz@4bfEW?V(P}I&k zBV|cARVPhfJ{#kKW%SG%bX<}|dfiAqMQy3qoZXJ2HI}8Ql~eO&7#L}a+MoBSs4eXR z?7_REK>FK*Chp)0UZ9i3EY68R=#ZN$ET+Os9ausqeIJFPX!HSFbvK6(j|BS)@Isja%lhIe7M)RF7 z6P{X|S5X@p*BhtkkD^xSW=V=#M{6vhgk69WwGTyYoSysN#&qXe&Pv2ewbQGpbrx3C z_H@{a+K=B^vZA)MFP^v_ArTDbpE!CHgOVLZ0nBWII1G%;cVMYYp1+UEkR3ayCM?S; znC6^J!~S0{{<>@TmR47H(1_Rgo2*T14mg1L42A?>V^5CrR$E(Zud9&E(3F$1OIOsM z{bd$EeKS*=#@UKm)tOM##m+Wi>v@bp+SEV^(}yQ#i?UmKzBAlybN5GeNd>on_w`A%T<|>>3zJr=;-JmUSQN8 z&7e1TZ)tUnZ>(_~?g<*voc?ltzDm3_?4ojVzEqFtG(g?=fciRC*HQJK^rE5KsD9HuL zR@DCCE1WuEPQ?S!ajU2`l8V|cTT#1vef1T!X~?-~Ppr_OP?-q=La9;c%Eed-6(L#7u^6GEk4W95p>Vp5GS- zP$5TKuo%14H|G`}IdTM_&qrfpr=#a6n-A{c%`1Py_S(b}g##d|KW>mU3S^T*C=|lu@$lB0Z{|Hb zfLjd5|16jm&qQp*^ia4p8QXEXldm)Oye@58-`j`zMLar{BkG>#lOl6pq@Fo&k_ zMC!j*#v3znBz}EA!JPiGe*JpJjT^_LNt1xI$%Qm6XHnVys%tx)aXOtHtSM1ZJCHRn z)ha8fCUOWkF}xdw!M1JNXlZH5d)#z}L?<)kHVLsCL`L*7hRO!8sV*|^w=5Yuai!F znF3~q0RH*UfAY@ycX~JU0YykTKlz|0a`*4mpX9wL=bq$)X343aU{{dk%a^ll+qQz_ z;6@XlVct>)>Lb9Wy!XD3bAIYG%DnNvHQ&lzCMp2|Y}>YtKp=poY506Tyk2k70-^WO zf5c)jdU|?@Mx#U`5js0N`#k1y=DytI4m=i#^gNN=cE@$6XYb}D5r{ zJa^llthXo9O92@@xTU3qU@*w=;lpWcY$V{eRhP*ZA&FugUw)6o3QC1$+15ybEGm$@ z9%?>>G@WQHN_%@d>({UEbN^2=XLSJ2E!eT93?%2I%zH^mSEHLKAti=kieF>v zq=$730`e2YOLuLsUZ67-fliV{rxc-83K6s-2cBh1uGx_V3GjHmI2;Z%O+!^x48zEn zt0Gx^R;Z7ZI}dOe=E5i&`FI4^&V zyauUh$5L*{41(zdL8Dyr&Lh^E8S%WbqW5vUB7obvg1Ik@@zno19M+!^2}MJaAa2YI zGayl5E{I#XAe$hNjQI5Ja@Sw}V!bmtg8qKTIL*Wv$Q##AQ(o?L-$)NKiNX}@mHVyK5{UNVc`!k}N{`Y^f^T#iq!R=#OZ)t4_J8MTHjU&xxwP)TKK!_>k1=!ANCrKw zAgz_*C6~uVIzeP5C{ieC>AgI-7r6Hajt|}X_xQ#yZl=}WLtKhsl22UqJ_ZgNiWrQ? znnL~2sSH^^4FB)%V%eW6Y)(m^j}R7f9s!LslF%=m0826gV81)lIce8ibJT}c8~ZMK zo91Edgq1iZ`BI|qBL~Iazq0S2gd{X%yg0-t21OStqc@I~>X+z-{?>YG-E7P_1rgpV&J$$J12k{FCz4521IjGC^| z)a`D^&0)bj70Eybf*9>5d7@PL{@x4(UC! zk4n)oN35RV`$Xs9{RBNn=uu*MTiYiIM9$|!JC$=PENrsg^-J2#PVcD~U=V97^mF;oMlqC?VtdRcwR9PW?f5S3U zZAeH$AS44z)3G!K$*NVHA)o2oIY{+xbE=MAGU8w)8d@KF*EUy`A>*wYh_xm2WD9do${^>GI^&Y{$JXVNr8)#NdTFvoNn;Ysa;$AyUc<5;SO zY|2O`fQ)2msBxF9nsH2riKWIYLrz?mkddr(>r~hp9wC7cnXWR){S`@;1wt}J$|w?= zqzFJNb$g+9WF*T%B(JYXJE@5>1PIAO$dbJ(2CCHi{L`O%?^m=TOZGNXSV~mr3LvS- zh8IWo5NbBo;CcM9&OR_90iiCk>kA^~s-WN(imXMr62nmQG=us4<2QY;s zWJySpBuNfk*Bz29IRrveB*l${YM(|#1R{onEJ>1Ek|d`jNky%gjPnb03o9&ykQ41H zLWr2KL=O_0s;ZvEcL*x7(uPG$k|f!%48J5vZX|q?B)I@&SvE||j0++3#JC(speGhT z^vJU8kz~msgh&Pj@L`FhG#U-mG+!JD!o%+;2GqxrckNI?2lO;#QAdcZs9I5AO>6Qv$xC~3g z-Kjxu@SuPa>OKlD+{EMJW( zB0Ui$x!qqgMDo?BV(M9EnU{+ z(IXq==9XssHA5st*5zbdmS%MYyn%S=Xvo(PXb5ygA~iCmrl2?hVrEPhvXEp`md!*z zR)nx*O;&{=yClhyogU}DX}{=P1ttmtfr5dAhJoVr;?bOZDYS%Jxq$W5GK(PJ&9xe! cKrHhA1FjzztBw?1OaK4?07*qoM6N<$g53pq(EtDd literal 0 HcmV?d00001 diff --git a/assets/images/mobile/virtualpad/t.png b/assets/images/mobile/virtualpad/t.png new file mode 100644 index 0000000000000000000000000000000000000000..af9f5103cfadf7a5b8362310c403a9c480a7c11b GIT binary patch literal 21122 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 literal 0 HcmV?d00001 diff --git a/assets/images/mobile/virtualpad/v.png b/assets/images/mobile/virtualpad/v.png new file mode 100644 index 0000000000000000000000000000000000000000..2e9ccf775f4c6eb6c6ef840f8f37f6426e3fe65d GIT binary patch literal 21434 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 KMNUMnLSTYBPID~) literal 0 HcmV?d00001 diff --git a/assets/images/mobile/virtualpad/w.png b/assets/images/mobile/virtualpad/w.png new file mode 100644 index 0000000000000000000000000000000000000000..3c84a137de2bdfab13ecb2c9e0301af89e14724c GIT binary patch literal 23909 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 iNP^Y?M1@1lIQaj3{p#ivk4q>30000 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%0Di9*ww3T36 zg+fV!K0Hloh~Nep3LykaiLie!BGxOMKBAPZ`E5&6D4`=w1KCz6v<-%>y=@!f9o?_$ zg{d2gfE&|nBgaVDFBY3|nnPS4NGc!}ELgyzMUe_;`nc_Z-}Cm5ZhIGa7hsh-IBD>p z!4rKxpVTz1B{w(M=kxh&A%tCDUmt!E6%`e(j*gCeKx&%S-q_f`&RR@~qq~?yNB=_o*pB!&lg3ZdHg4S5HB}TQ zRhfeI3oHgsm@pv^VDsk9)`STYG%2N>mzSqn+uF3y@kx^=iM+f#_2Gvf+LIxrUJ0eoOJm*8ZPv;leY$tTMXKm3qMlO_qX;ELw5;cK-3lA74^mUteI` zw#(&mxdFUhuT)Aovxrg>BtmGmVHmn)Ssp;<=jT^X+R?r`-FFGF*lK{bxK|Pq4pIH! Z{{vxuYyyh#Tdn{A002ovPDHLkV1lT*az6k7 literal 0 HcmV?d00001 diff --git a/assets/images/mobile/virtualpad/y.png b/assets/images/mobile/virtualpad/y.png new file mode 100644 index 0000000000000000000000000000000000000000..4ac65849e915dd2b9fc80cda77c83b881131ff45 GIT binary patch literal 22654 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 literal 0 HcmV?d00001 diff --git a/assets/images/mobile/virtualpad/z.png b/assets/images/mobile/virtualpad/z.png new file mode 100644 index 0000000000000000000000000000000000000000..99bca74b218cabb5183e3151b1ef490091e23503 GIT binary patch literal 21804 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 dW|>;`6zWj=`TbB_ - + @@ -92,7 +92,7 @@ - + @@ -141,7 +141,7 @@