1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-09-02 10:48:04 +00:00

the Android version is now able to access honeycomb rules via assets

This commit is contained in:
Zeno Rogue
2021-06-01 14:24:22 +02:00
parent 3c3c95e072
commit 9ebd7d98d5
4 changed files with 36 additions and 2 deletions

View File

@@ -48,6 +48,8 @@ import android.widget.FrameLayout.LayoutParams;
import android.widget.Toast;
import android.util.Log;
import java.io.InputStream;
public class HyperRogue extends Activity implements SensorEventListener {
private static final int RESULT_SETTINGS = 1;
@@ -626,6 +628,18 @@ public class HyperRogue extends Activity implements SensorEventListener {
pon.getTextBounds(s,0,s.length(),bounds);
return bounds.width();
}
public byte[] getAsset(String s) {
try {
InputStream is = getAssets().open(s);
int length = is.available();
byte[] data = new byte[length];
is.read(data);
return data;
} catch (IOException e) {
return null;
}
}
private SensorManager mSensorManager;
private Sensor mSensor;

View File

@@ -45,6 +45,7 @@ void special_log(char c);
#include <string>
namespace hr {
std::string get_asset(const std::string &str);
void gdpush(int t);
void shareScore(MOBPAR_FORMAL);
@@ -242,6 +243,20 @@ Java_com_roguetemple_hyperroid_HyperRogue_initGame(MOBPAR_FORMAL) {
JNIEnv *tw_env; jobject tw_thiz;
string get_asset(const string &str) {
jclass cls = tw_env->GetObjectClass(tw_thiz);
jmethodID mid = tw_env->GetMethodID(cls, "getAsset", "(Ljava/lang/String;)[B");
jobject jstr = tw_env->NewStringUTF(str.c_str());
jbyteArray arr = (jbyteArray) tw_env->CallObjectMethod(tw_thiz, mid, jstr);
tw_env->DeleteLocalRef(jstr);
tw_env->DeleteLocalRef(cls);
jsize len = tw_env->GetArrayLength(arr);
jbyte* data = tw_env->GetByteArrayElements(arr, NULL);
string s((char*) & (data[0]), len);
tw_env->DeleteLocalRef(arr);
return s;
}
int textwidth(int siz, const string &str) {
jclass cls = tw_env->GetObjectClass(tw_thiz);
jmethodID mid = tw_env->GetMethodID(cls, "getTextWidth", "(Ljava/lang/String;I)I");

View File

@@ -1,6 +1,7 @@
#!/bin/sh
mkdir -p app/src/main/assets/sounds
cp ../sounds/* app/src/main/assets/sounds/
cp ../honeycomb-rules-*.txt app/src/main/assets/
mkdir -p app/src/main/res/raw/
#for x in caves crossroads desert graveyard hell icyland jungle laboratory mirror rlyeh