Skylanders: Improve figure data view and generation

Co-authored-by: deReeperJosh <joshua@dereeper.co.nz>
This commit is contained in:
Mandar1jn 2023-08-24 17:24:30 +02:00 committed by Admiral H. Curtiss
parent 220988d064
commit afdf6de041
No known key found for this signature in database
GPG key ID: F051B4C4044F33FB
20 changed files with 1369 additions and 146 deletions

View file

@ -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));
}
}