summaryrefslogtreecommitdiff
path: root/Source/Android
diff options
context:
space:
mode:
authorAdmiral H. Curtiss <pikachu025@gmail.com>2023-11-05 18:29:19 +0100
committerGitHub <noreply@github.com>2023-11-05 18:29:19 +0100
commitec69ed21733f25d11c3ebb34ff96814964515761 (patch)
tree01ddeac127fe94ea4c5e1b7318329fd306c03c39 /Source/Android
parent1748e6416fe43d2d2f90f385d98d2f7667504330 (diff)
parentafdf6de0413e6098f3f0c2318fe03a04dfaacc6c (diff)
Merge pull request #12133 from mandar1jn/skylanders-improved-generation
Skylanders: Improve figure data view and generation
Diffstat (limited to 'Source/Android')
-rw-r--r--Source/Android/jni/SkylanderConfig.cpp30
1 files changed, 18 insertions, 12 deletions
diff --git a/Source/Android/jni/SkylanderConfig.cpp b/Source/Android/jni/SkylanderConfig.cpp
index 76a0718624..51c621c919 100644
--- a/Source/Android/jni/SkylanderConfig.cpp
+++ b/Source/Android/jni/SkylanderConfig.cpp
@@ -7,7 +7,7 @@
#include "AndroidCommon/AndroidCommon.h"
#include "AndroidCommon/IDCache.h"
-#include "Core/IOS/USB/Emulated/Skylander.h"
+#include "Core/IOS/USB/Emulated/Skylanders/Skylander.h"
#include "Core/System.h"
extern "C" {
@@ -107,11 +107,12 @@ Java_org_dolphinemu_dolphinemu_features_skylanders_SkylanderConfig_loadSkylander
name = it->second.name;
}
- return env->NewObject(pair_class, pair_init,
- env->NewObject(integer_class, int_init,
- system.GetSkylanderPortal().LoadSkylander(
- file_data.data(), std::move(sky_file))),
- ToJString(env, name));
+ return env->NewObject(
+ pair_class, pair_init,
+ env->NewObject(integer_class, int_init,
+ system.GetSkylanderPortal().LoadSkylander(
+ std::make_unique<IOS::HLE::USB::SkylanderFigure>(std::move(sky_file)))),
+ ToJString(env, name));
}
JNIEXPORT jobject JNICALL
@@ -124,7 +125,11 @@ Java_org_dolphinemu_dolphinemu_features_skylanders_SkylanderConfig_createSkyland
std::string file_name = GetJString(env, fileName);
auto& system = Core::System::GetInstance();
- system.GetSkylanderPortal().CreateSkylander(file_name, sky_id, sky_var);
+ {
+ IOS::HLE::USB::SkylanderFigure figure(file_name);
+ figure.Create(sky_id, sky_var);
+ figure.Close();
+ }
system.GetSkylanderPortal().RemoveSkylander(slot);
jclass pair_class = env->FindClass("android/util/Pair");
@@ -154,10 +159,11 @@ Java_org_dolphinemu_dolphinemu_features_skylanders_SkylanderConfig_createSkyland
name = it->second.name;
}
- return env->NewObject(pair_class, pair_init,
- env->NewObject(integer_class, integer_init,
- system.GetSkylanderPortal().LoadSkylander(
- file_data.data(), std::move(sky_file))),
- ToJString(env, name));
+ return env->NewObject(
+ pair_class, pair_init,
+ env->NewObject(integer_class, integer_init,
+ system.GetSkylanderPortal().LoadSkylander(
+ std::make_unique<IOS::HLE::USB::SkylanderFigure>(std::move(sky_file)))),
+ ToJString(env, name));
}
}