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()wP(#4qQ?71G)pRJWc6Ok>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')