From f93b3638085275290b67b6f248ce9892c7409150 Mon Sep 17 00:00:00 2001 From: RandomityGuy <31925790+RandomityGuy@users.noreply.github.com> Date: Wed, 8 Mar 2023 21:48:12 +0530 Subject: [PATCH] android fixes --- Export/android/app/build.gradle | 3 ++- .../android/app/src/main/AndroidManifest.xml | 8 +++++- data/tmp/cache.dat | 2 +- data/tmp/font/Arial Bold.bfnt | Bin 2162 -> 2162 bytes data/tmp/font/DomCasualD.bfnt | Bin 4761 -> 4761 bytes data/tmp/font/EXPON.bfnt | Bin 2706 -> 2706 bytes data/tmp/font/arial.bfnt | Bin 2153 -> 2153 bytes src/Console.hx | 3 +++ src/Gamepad.hx | 11 +++++++++ src/Http.hx | 3 +++ src/Marble.hx | 2 +- src/MarbleWorld.hx | 23 +++++++++--------- src/ResourceLoader.hx | 2 +- 13 files changed, 40 insertions(+), 17 deletions(-) diff --git a/Export/android/app/build.gradle b/Export/android/app/build.gradle index 51f8e628..97e5df60 100644 --- a/Export/android/app/build.gradle +++ b/Export/android/app/build.gradle @@ -17,7 +17,7 @@ android { externalNativeBuild { cmake { cppFlags '-lstdc++' - arguments "-DANDROID_LD=lld" + arguments "-DANDROID_LD=lld",'-DANDROID_PLATFORM=android-24' } } } @@ -27,6 +27,7 @@ android { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + debuggable true } } compileOptions { diff --git a/Export/android/app/src/main/AndroidManifest.xml b/Export/android/app/src/main/AndroidManifest.xml index e23ff63f..2e1f3eab 100644 --- a/Export/android/app/src/main/AndroidManifest.xml +++ b/Export/android/app/src/main/AndroidManifest.xml @@ -9,11 +9,17 @@ + + + + + android:hardwareAccelerated="true" + android:usesCleartextTraffic="true" + android:debuggable="true"> P z54DMcHnmHvpj`_ITv(ejS_Dx+TMHLu6urLt#umNDx!n7mbI<+Gcg|{VH8;~)Y5`Eh z09w(^odbIY4$+RnpcYMtA{Vu?q)e%m=p?4mK-9(-xB`c1FKJtuN5MrwI$R?=lRA5z z=ro?7E{;#j{Zu}DtYya2r3-ZJQT3=sz)NZ5cm~?ybqZDJ;Ij^@B<~sjBGH_h!xj>X zqBO~LIi@s0^b6+U^Vul!c*lP2v^A_?6EoWkxv<+vgVNGdp{3u`{v`%%Q{7Az;7^?F z6`z>2DF5blv{61OBi~&uM^f5fptlYW`A|FW{E7-Pnle(8(6ZoYdBCj47%@kykIA?Q z+l?-C?n|THXY4dnXC5z1HqF&CrCj6k~wxj(kbY}V72CCrj&xGSf zmQz}ulgriEImPnI66M0LMyg3ev%r(2a-0Fn6x>p=sRMcMn!Q6r!JJlE+oZBuyNGR6 zpt42o*k&7qVcG=Vu_sN;!1raqG4hS&jwH1|LT{T|@TKCN_kR zsAOsEtK3!j)F`nvyp|~0BG(vqg6$Y&w$Di|vn=Zd_a3Fbsq~qBjD3c2@+q?~kJu@q zw{Y;^AW=&D_0Se6W1g|`;Kk^EuEWew_-{y06aB#!*-C9}Am_-sIiJLp(_$st&N-^#9V?!d1989vXFe#4CtZoW YJYs=KO4mpK7|W~E18kx-Pi2qBFAa1#+kL7PaM zJ_w^tL7O&-wuqor1T9(wQxUWX3kuqmM9?NX_sxSY+&AAn_q+F=@0@Q|GAo%|>$R&& z2FC#`U@t5R@DL!!HE@LU9Xh!x;O}aHY=rjl`;%x3(N&_&`mD<8mz0!#Nw|}nM=_0d zCICKv-PpwW6}w^L>zlPLVa*nzwH~62z(W`%8c$Mf( zN_3v_)ufoS%0W WQBFU5HhY<9J=>xomc*%88UFy(vzbu< diff --git a/data/tmp/font/DomCasualD.bfnt b/data/tmp/font/DomCasualD.bfnt index ae5ec9807fa973b61a7eae95f63d274cbfa2997b..09c5c4c3adeab129afaee6a9c58e5b38fb9cd741 100644 GIT binary patch delta 658 zcmX|8OK1~O6g|mICYek!$xNF^n*^+5<5aB;6{H$e>L&|r6dN}I7ZpDsLj7#I(5R?L zyQw-J6pDz5DAbKqS8nV=6a~SJ3NG9k#GO)5H#XkM!Wqt+JNMjs?&r;w=1MopZVA9$ zJVOB<+HC`Qa5k}lmOkUG7V06ci^~%$hCJ7rEBP@o|cf4Pb zKw7Lg;=zvs7c9le^r*i^T-|sK8=-6r899M{f)VV8LfD4}#ZQ?kXJaQguaELfRs~hX zW6`7TI-y&b6p3!JEabp%$w4yN;F8tkPjiaY6`$BOPG_6k9;;DvD!h{#;G%KaElZMv zOM(F`w`0;Ex5m$MA~VD>v&fy9A|1Eko|CX1L6?MuO}gMh#%$nv%yuqp9Xy&axBt)UaR= zaT_^F3z*39s-0(6Qq37fu7_{%LZn5NsBx0@?)^b=fe7tZ1c6D zRatln*Tst1l&RR9cJiDEwK)*iYFyA0Sp8p%!$;u~*AoleP%b|iRj%0MJfL)^tevWm zSH)Zm%77!%F~7uf-0ke=Q_-pmG>dz1w)--X=A?Pt8IfoPkC8-wP$p8~(R7Y)<1R~< z%Wh=UKPkWxeq*P!v)LO$R^I)x`X5W%h4u4^=G!I)%z7n-=RELCzEjap+ A!vFvP diff --git a/data/tmp/font/EXPON.bfnt b/data/tmp/font/EXPON.bfnt index 8c03dac3bfebf571a6f4ef203df19c83874ebfdf..5eccc41c9b8af974a453f224dbab40125d023e27 100644 GIT binary patch delta 833 zcmZ8fJ!lhQ7=G_3xg@p;7tGg~yS6q-a|wi?t(FR51%AJf4~ERW}U8Fk%l#+7}Mf_Zr$g;3Oo zf;Nbmgt9M@dCD-QkSQV+@$e%ug;gt$Azfk9tU<-6upDR5sEcg|zGCDtV3ct>M$A;H zMS8ifjWNlbpDa!!Di|Vul=xSAJ{Xi|;-_B0j;ZVc;;Z~~VV|-{B^-Q=tMWrKBQnNv z%CgUfbnq^6j5e&*r6<(8f}48DTOzDvg<+FH_qu#-(B(5)iD-KW*~Wx}bw<4!&@ZJ^ zs+5ZyK&R&5aZK66WM0b_{rh7ur5ledr^({xEtS3=Jp0X|Mo1R?p)MFzeACM58>ApR z44(=T=nyPM2fPu&)7qMJF^5(wC7Hm(49{f_p(kjyE-t?44z{9YZl^UW`*hx?>+pFYF}8$|`vR9K^Y zpHm#Slzo=M%UrzPut`05Vmggm3OUmqEs&g)cZ}QaV3Bu`bF@*JV@7SXy}@?^?lW8J ju-2qh1e;dw$a%thv~cp04rF(EUSOfU?LFag|NH&|hc~*f delta 778 zcmXw1J7^S96g~6Z-KdGPNp8&UChpFTn~9i3jRXZFCIkx&L8DkHLXhC!7_jk^O4Ept z*&8gx#zIT62>3xn#llJpEm8!r6ckCPHW|}xk`@io<+ShZAi9DIIvO!H+V#AXS8+vm zn^o@;(SycwY-V&Ex1vXHGxkYJvge2Zhu~p*QcGvjIUP$ets6#%tJz87kI~1xl?I~> z{b>|+-tnV3(GNzbqpUK+fN!=RtrRr0Lv?LmpSt{~tKLB-5L`hQLab3vNA#$q$Ef#L zrl3og*t9jy^CZ4%h<-U^#S$kk5pdo zWh4qjZ@H2^NjQxg*g(o!475N^t1=wWJ%EoWQd=CG=&h&0IIZ2Nux9fDdm7$;?)5Zn zN!zV@*3E}w^sF)>XmCyV4emAWv&IOzlMCyDj@!B6Qw{JpNe;`ES+>4T)2`wzPxX2H zZ{h^K1I8;965%<0X!Lng^e&R!n{W%dE;E?jO7CTSM<*|;{EkayRMUixEzt L`5M;q++6Bztg(^@-#R@z!o6rUBLSV4src_@fz@d1^mD1xnaqmh^p z)Qt-_L=)qVL}jN7Lc)f)Fg`%txRQm5urN_lu;cGL-#L4(^a z48M&`@vsJZiqR51v<9o!n46MO&53#N?DRvs7}c1EYOsBs`A;Llx}mV6-O( zbb|`e3|j0OV7#MW@H#nX2cWZ(%{nP9fFtnI7b2m9>8==3FpEmL^ zj$e;r1Zv&hME6-Wy`%1cok5jVK0D#}sbDKCU72_8ThP4vH4UEOGd)<{$@~qqC`VgY zwiw!@T_Fz*y-!0=>&q$1-VT0#oTBV5==b#G+?3x<&`%lZ*hV22brM_Cl#hLOH|yVs z&6G7XY-atfeh#~(k@Y3eUMggDYuG-+x-*v%Xd(GzieEeN_mVU7Yv+S^)QhYKICqR%&YV6B6{M4o z+1f0<#JEIk=_p=??!ZF<`^GL@27QkcCf!lnp?jeIw0a(vLyzgVy+V&dd+5ow7@Pf9 zJY70Z|EBfYZsMHd}2hlR~d&-Se;#a!lvKE^M4~yPQc d6bq@m<;1R4jA5#28X8g9le#z&)9)d({~wH-;bi~- literal 2153 zcmZXVO>9(E6vzK>M#Cr#(~-fc(~2`tt+chGRs5_7#Sv6!5ky4Rj`t#xJ$Efm05O;Vz22Zb!v$sWz`kv zR_>qad!Cjkj=x*+RW0xn?=Uy9r8_@#wv08?2 zyN0n1*i~A}J)_0kr5mu*kUSo;eB8rL(63d~6{$Vk0{s;$K{Yq`AmfG6R`yV4wfTvM zNoar6*+O?gCv}QBONqEX_bzB5`hbW#80A>iu4l2lUPi$_oktyy_!;PKlq}$3HqIpa z-U*%2Z!I3~fS%J)JXXTaJQw@I+!}K`oA&S^^c}5570-~X^8)lNI+!|fd{MI6qtIhm z1v<;lJeyxYy2yM*z0iMSrz6mQteU7^Wh~u_ZP5gKuw2wtzlQNB>Rg%3bq_<(<&l_M zVAPhV^Dtw(`ohk#@|-^hIYbm`eP4neR(Dvev15hrWr~9vby<59A0DmlJ(GHmjrFXe0XO8D+y=8K7Hdo17=u!O`>dZX& z$$Aocp1qcmxn4U5pbMjwMB%-}Gk-T!%2V?%b=!|T@PTV^fphPd8db< z-_gNsHB-kUUS@xww$oktHrRG*GTjN*K;Ney)oa~7OhJqE)DnIh74;BwkRINJLJfU) z1o{Vbp8kt_lKpOjZo8mLo`Q~2CEhja-ROB}do)c4_de+v+6kS;gP-pD+;Qlite<{6 z^+J21gSreo?HsrBEDc~q&P9$-X0G}+LHkkIqOcr$f3P>|KDvgjX4Lgv&G;lF{Wk4^ z_C!bU>b)e#v-Ak|r9NsoLxa$v3;M6EVehRnzU>V8YI`6*P&@T^tm`lhJ*Us<#`78F eldiml@z3NwePXR%XQ;~b`|VYz^leL*Gxk5or{QG) diff --git a/src/Console.hx b/src/Console.hx index 72f4bb8e..99764e31 100644 --- a/src/Console.hx +++ b/src/Console.hx @@ -58,6 +58,9 @@ class Console { #if (hl && !android) consoleFileHandle.writeString('[${e.time}] ${e.text}\n'); #end + #if android + trace('[${e.time}] ${msg}'); + #end for (c in consumers) { c(e); } diff --git a/src/Gamepad.hx b/src/Gamepad.hx index 43150775..5b7556d3 100644 --- a/src/Gamepad.hx +++ b/src/Gamepad.hx @@ -6,6 +6,7 @@ import src.Settings; class Gamepad { public static var gamepad:Pad = Pad.createDummy(); + static var hasPad = false; public static function init() { Pad.wait(onPad); @@ -17,8 +18,10 @@ class Gamepad { pad.onDisconnect = function() { Console.log("Gamepad disconnected"); gamepad = Pad.createDummy(); + hasPad = false; } gamepad = pad; + hasPad = true; } public static function getId(name:String) { @@ -68,6 +71,8 @@ class Gamepad { } public static function isDown(buttons:Array) { + if (!hasPad) + return false; for (button in buttons) { var buttonId = getId(button); if (buttonId < 0 || buttonId > gamepad.buttons.length) @@ -79,6 +84,8 @@ class Gamepad { } public static function isPressed(buttons:Array) { + if (!hasPad) + return false; for (button in buttons) { var buttonId = getId(button); if (buttonId < 0 || buttonId > gamepad.buttons.length) @@ -90,6 +97,8 @@ class Gamepad { } public static function isReleased(buttons:Array) { + if (!hasPad) + return false; for (button in buttons) { var buttonId = getId(button); if (buttonId < 0 || buttonId > gamepad.buttons.length) @@ -101,6 +110,8 @@ class Gamepad { } public static function getAxis(axis:String) { + if (!hasPad) + return 0.0; switch (axis) { case "analogX": return gamepad.xAxis; diff --git a/src/Http.hx b/src/Http.hx index f0663c00..7f5f2d20 100644 --- a/src/Http.hx +++ b/src/Http.hx @@ -40,14 +40,17 @@ class Http { cancellationMutex.release(); var http = new sys.Http(req.url); http.onError = (e) -> { + trace('HTTP Request Failed: ' + req.url); responses.add(() -> req.errCallback(e)); req.fulfilled = true; }; http.onBytes = (b) -> { + trace('HTTP Request Succeeded: ' + req.url); responses.add(() -> req.callback(b)); req.fulfilled = true; }; hl.Gc.blocking(true); // Wtf is this shit + trace('HTTP Request: ' + req.url); http.request(false); hl.Gc.blocking(false); } diff --git a/src/Marble.hx b/src/Marble.hx index 588bc650..2f5db9ca 100644 --- a/src/Marble.hx +++ b/src/Marble.hx @@ -1765,7 +1765,7 @@ class Marble extends GameObject { || Gamepad.isDown(Settings.gamepadSettings.jump)) { move.jump = true; } - if (Key.isDown(Settings.controlsSettings.powerup) + if ((!Util.isTouchDevice() && Key.isDown(Settings.controlsSettings.powerup)) || (Util.isTouchDevice() && MarbleGame.instance.touchInput.powerupButton.pressed) || Gamepad.isDown(Settings.gamepadSettings.powerup)) { move.powerup = true; diff --git a/src/MarbleWorld.hx b/src/MarbleWorld.hx index a0b1eb57..49c740f8 100644 --- a/src/MarbleWorld.hx +++ b/src/MarbleWorld.hx @@ -275,18 +275,17 @@ class MarbleWorld extends Scheduler { public function postInit() { // Add the sky at the last so that cubemap reflections work - this.playGui.init(this.scene2d, this.mission.game.toLowerCase(), () -> { - // this.scene.addChild(this.sky); TODO FIX ANDROID - this._ready = true; - var musicFileName = 'data/sound/music/' + this.mission.missionInfo.music; - AudioManager.playMusic(ResourceLoader.getResource(musicFileName, ResourceLoader.getAudio, this.soundResources), this.mission.missionInfo.music); - MarbleGame.canvas.clearContent(); - if (this.endPad != null) - this.endPad.generateCollider(); - this.playGui.formatGemCounter(this.gemCount, this.totalGems); - Console.log("MISSION LOADED"); - start(); - }); + this.playGui.init(this.scene2d, this.mission.game.toLowerCase()); + this.scene.addChild(this.sky); // TODO FIX ANDROID + this._ready = true; + var musicFileName = 'data/sound/music/' + this.mission.missionInfo.music; + AudioManager.playMusic(ResourceLoader.getResource(musicFileName, ResourceLoader.getAudio, this.soundResources), this.mission.missionInfo.music); + MarbleGame.canvas.clearContent(); + if (this.endPad != null) + this.endPad.generateCollider(); + this.playGui.formatGemCounter(this.gemCount, this.totalGems); + Console.log("MISSION LOADED"); + start(); } public function initScene(onFinish:Void->Void) { diff --git a/src/ResourceLoader.hx b/src/ResourceLoader.hx index 61605ca0..de4a2e52 100644 --- a/src/ResourceLoader.hx +++ b/src/ResourceLoader.hx @@ -564,7 +564,7 @@ class ResourceLoader { zipFilesystem.clear(); // We are only allowed to load one zip for (entry in entries) { var fname = entry.fileName.toLowerCase(); - #if sys + #if (sys && !android) fname = "data/" + fname; #end if (game == 'gold')