Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pre releases 0.0.1 #20

Merged
merged 7 commits into from
Jun 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,34 @@ jobs:
- uses: actions/checkout@v3
with:
submodules: recursive

- name: set up android development environment
uses: android-actions/setup-android@v2

- name: install dependencies
run: |
sdkmanager --install "cmake;3.22.1"
echo "cmake.dir=/usr/local/lib/android/sdk/cmake/3.22.1" > local.properties
npm install -g pnpm

- name: Setup Java JDK
uses: actions/[email protected]
with:
distribution: 'temurin'
java-version: '21'

- name: Update Assets
run: |
git submodule foreach --recursive git pull origin main
git clone https://${{ secrets.ACCESS_TOKEN_GITHUB }}@github.com/imas-tools/gakumas-raw-txts.git app/src/main/assets/gakumas-local/gakumas-raw-txts
mv app/src/main/assets/gakumas-local/gakumas-raw-txts/Resource app/src/main/assets/gakumas-local/raw
rm -rf app/src/main/assets/gakumas-local/gakumas-raw-txts

- name: Build Assets
run: |
mv app/src/main/assets/gakumas-local/GakumasPreTranslation/.env.sample app/src/main/assets/gakumas-local/GakumasPreTranslation/.env
cd app/src/main/assets/gakumas-local && make build-resource

- name: Write branch and commit info
run: |
branch=$(git rev-parse --abbrev-ref HEAD)
Expand Down
23 changes: 22 additions & 1 deletion app/src/main/cpp/GakumasLocalify/Hook.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -740,6 +740,9 @@ namespace GakumasLocal::HookMain {
static auto limitInfo_field = ActorSwingBreastBone_klass->Get<UnityResolve::Field>("limitInfo");

static auto limitInfo_useLimit_field = LimitInfo_klass->Get<UnityResolve::Field>("useLimit");
static auto limitInfo_axisX_field = LimitInfo_klass->Get<UnityResolve::Field>("axisX");
static auto limitInfo_axisY_field = LimitInfo_klass->Get<UnityResolve::Field>("axisY");
static auto limitInfo_axisZ_field = LimitInfo_klass->Get<UnityResolve::Field>("axisZ");

auto swingBreastBones = Il2cppUtils::ClassGetFieldValue
<UnityResolve::UnityType::List<UnityResolve::UnityType::MonoBehaviour*>*>(initializeData, Data_swingBreastBones_field);
Expand Down Expand Up @@ -778,8 +781,26 @@ namespace GakumasLocal::HookMain {
Log::DebugFmt("orig bone: damping: %f, stiffness: %f, spring: %f, pendulum: %f, "
"pendulumRange: %f, average: %f, rootWeight: %f, useLimit: %d, useArmCorrection: %d, isDirty: %d",
damping, stiffness, spring, pendulum, pendulumRange, average, rootWeight, useLimit, useArmCorrection, isDirty);
if (!Config::bUseLimit) {
Il2cppUtils::ClassSetFieldValue(limitInfo, limitInfo_useLimit_field, 0);
}
else {
Il2cppUtils::ClassSetFieldValue(limitInfo, limitInfo_useLimit_field, 1);
auto axisX = Il2cppUtils::ClassGetFieldValue<UnityResolve::UnityType::Vector2Int>(limitInfo, limitInfo_axisX_field);
auto axisY = Il2cppUtils::ClassGetFieldValue<UnityResolve::UnityType::Vector2Int>(limitInfo, limitInfo_axisY_field);
auto axisZ = Il2cppUtils::ClassGetFieldValue<UnityResolve::UnityType::Vector2Int>(limitInfo, limitInfo_axisZ_field);
axisX.m_X *= Config::bLimitXx;
axisX.m_Y *= Config::bLimitXy;
axisY.m_X *= Config::bLimitYx;
axisY.m_Y *= Config::bLimitYy;
axisZ.m_X *= Config::bLimitZx;
axisZ.m_Y *= Config::bLimitZy;
Il2cppUtils::ClassSetFieldValue(limitInfo, limitInfo_axisX_field, axisX);
Il2cppUtils::ClassSetFieldValue(limitInfo, limitInfo_axisY_field, axisY);
Il2cppUtils::ClassSetFieldValue(limitInfo, limitInfo_axisZ_field, axisZ);

}

Il2cppUtils::ClassSetFieldValue(limitInfo, limitInfo_useLimit_field, Config::bUseLimit);
Il2cppUtils::ClassSetFieldValue(bone, damping_field, Config::bDamping);
Il2cppUtils::ClassSetFieldValue(bone, stiffness_field, Config::bStiffness);
Il2cppUtils::ClassSetFieldValue(bone, spring_field, Config::bSpring);
Expand Down
16 changes: 14 additions & 2 deletions app/src/main/cpp/GakumasLocalify/config/Config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ namespace GakumasLocal::Config {
int lodQualityLevel = 4;

bool enableBreastParam = false;
int bUseLimit = 1;
float bDamping = 0.33f;
float bStiffness = 0.08f;
float bSpring = 1.0f;
Expand All @@ -40,6 +39,13 @@ namespace GakumasLocal::Config {
bool bUseArmCorrection = true;
bool bUseScale = false;
float bScale = 1.0f;
bool bUseLimit = true;
float bLimitXx = 1.0f;
float bLimitXy = 1.0f;
float bLimitYx = 1.0f;
float bLimitYy = 1.0f;
float bLimitZx = 1.0f;
float bLimitZy = 1.0f;

void LoadConfig(const std::string& configStr) {
try {
Expand Down Expand Up @@ -68,7 +74,6 @@ namespace GakumasLocal::Config {
GetConfigItem(reflectionQualityLevel);
GetConfigItem(lodQualityLevel);
GetConfigItem(enableBreastParam);
GetConfigItem(bUseLimit);
GetConfigItem(bDamping);
GetConfigItem(bStiffness);
GetConfigItem(bSpring);
Expand All @@ -79,6 +84,13 @@ namespace GakumasLocal::Config {
GetConfigItem(bUseArmCorrection);
GetConfigItem(bUseScale);
GetConfigItem(bScale);
GetConfigItem(bUseLimit);
GetConfigItem(bLimitXx);
GetConfigItem(bLimitXy);
GetConfigItem(bLimitYx);
GetConfigItem(bLimitYy);
GetConfigItem(bLimitZx);
GetConfigItem(bLimitZy);

}
catch (std::exception& e) {
Expand Down
8 changes: 7 additions & 1 deletion app/src/main/cpp/GakumasLocalify/config/Config.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ namespace GakumasLocal::Config {
extern int lodQualityLevel;

extern bool enableBreastParam;
extern int bUseLimit;
extern float bDamping;
extern float bStiffness;
extern float bSpring;
Expand All @@ -39,6 +38,13 @@ namespace GakumasLocal::Config {
extern bool bUseArmCorrection;
extern bool bUseScale;
extern float bScale;
extern bool bUseLimit;
extern float bLimitXx;
extern float bLimitXy;
extern float bLimitYx;
extern float bLimitYy;
extern float bLimitZx;
extern float bLimitZy;

void LoadConfig(const std::string& configStr);
}
70 changes: 69 additions & 1 deletion app/src/main/cpp/deps/UnityResolve/UnityResolve.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -983,7 +983,75 @@ class UnityResolve final {
auto operator ==(const Vector2 x) const -> bool { return this->x == x.x && this->y == x.y; }
};

struct Vector4 {
struct Vector2Int {
int m_X, m_Y;

Vector2Int() { m_X = m_Y = 0; }

Vector2Int(const int f1, const int f2) {
m_X = f1;
m_Y = f2;
}

[[nodiscard]] auto Distance(const Vector2Int& event) const -> float {
const auto dx = this->m_X - event.m_X;
const auto dy = this->m_Y - event.m_Y;
return std::sqrt(dx * dx + dy * dy);
}

auto operator*(const int x) -> Vector2Int {
this->m_X *= x;
this->m_Y *= x;
return *this;
}

auto operator/(const int x) -> Vector2Int {
this->m_X /= x;
this->m_Y /= x;
return *this;
}

auto operator+(const int x) -> Vector2Int {
this->m_X += x;
this->m_Y += x;
return *this;
}

auto operator-(const int x) -> Vector2Int {
this->m_X -= x;
this->m_Y -= x;
return *this;
}

auto operator*(const Vector2Int x) -> Vector2Int {
this->m_X *= x.m_X;
this->m_Y *= x.m_Y;
return *this;
}

auto operator-(const Vector2Int x) -> Vector2Int {
this->m_X -= x.m_X;
this->m_Y -= x.m_Y;
return *this;
}

auto operator+(const Vector2Int x) -> Vector2Int {
this->m_X += x.m_X;
this->m_Y += x.m_Y;
return *this;
}

auto operator/(const Vector2Int x) -> Vector2Int {
this->m_X /= x.m_X;
this->m_Y /= x.m_Y;
return *this;
}

auto operator ==(const Vector2Int x) const -> bool { return this->m_X == x.m_X && this->m_Y == x.m_Y; }
};


struct Vector4 {
float x, y, z, w;

Vector4() { x = y = z = w = 0.F; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,13 @@ interface ConfigListener {
fun onBPendulumRangeChanged(s: CharSequence, start: Int, before: Int, count: Int)
fun onBAverageChanged(s: CharSequence, start: Int, before: Int, count: Int)
fun onBRootWeightChanged(s: CharSequence, start: Int, before: Int, count: Int)
fun onBUseLimitChanged(s: CharSequence, start: Int, before: Int, count: Int)
fun onBUseLimitChanged(value: Boolean)
fun onBLimitXxChanged(s: CharSequence, start: Int, before: Int, count: Int)
fun onBLimitXyChanged(s: CharSequence, start: Int, before: Int, count: Int)
fun onBLimitYxChanged(s: CharSequence, start: Int, before: Int, count: Int)
fun onBLimitYyChanged(s: CharSequence, start: Int, before: Int, count: Int)
fun onBLimitZxChanged(s: CharSequence, start: Int, before: Int, count: Int)
fun onBLimitZyChanged(s: CharSequence, start: Int, before: Int, count: Int)
fun onBScaleChanged(s: CharSequence, start: Int, before: Int, count: Int)
fun onBUseArmCorrectionChanged(value: Boolean)
fun onBUseScaleChanged(value: Boolean)
Expand Down Expand Up @@ -332,17 +338,74 @@ interface ConfigUpdateListener: ConfigListener {
saveConfig()
}

override fun onBUseLimitChanged(s: CharSequence, start: Int, before: Int, count: Int){
binding.config!!.bUseLimit = try {
s.toString().toInt()
override fun onBUseLimitChanged(value: Boolean){
binding.config!!.bUseLimit = value
saveConfig()
checkConfigAndUpdateView()
}

override fun onBLimitXxChanged(s: CharSequence, start: Int, before: Int, count: Int) {
binding.config!!.bLimitXx = try {
s.toString().toFloat()
}
catch (e: Exception) {
0
0f
}
saveConfig()
}

override fun onBScaleChanged(s: CharSequence, start: Int, before: Int, count: Int){
override fun onBLimitXyChanged(s: CharSequence, start: Int, before: Int, count: Int) {
binding.config!!.bLimitXy = try {
s.toString().toFloat()
}
catch (e: Exception) {
0f
}
saveConfig()
}

override fun onBLimitYxChanged(s: CharSequence, start: Int, before: Int, count: Int) {
binding.config!!.bLimitYx = try {
s.toString().toFloat()
}
catch (e: Exception) {
0f
}
saveConfig()
}

override fun onBLimitYyChanged(s: CharSequence, start: Int, before: Int, count: Int) {
binding.config!!.bLimitYy = try {
s.toString().toFloat()
}
catch (e: Exception) {
0f
}
saveConfig()
}

override fun onBLimitZxChanged(s: CharSequence, start: Int, before: Int, count: Int) {
binding.config!!.bLimitZx = try {
s.toString().toFloat()
}
catch (e: Exception) {
0f
}
saveConfig()
}

override fun onBLimitZyChanged(s: CharSequence, start: Int, before: Int, count: Int) {
binding.config!!.bLimitZy = try {
s.toString().toFloat()
}
catch (e: Exception) {
0f
}
saveConfig()
}


override fun onBScaleChanged(s: CharSequence, start: Int, before: Int, count: Int) {
binding.config!!.bScale = try {
s.toString().toFloat()
}
Expand All @@ -351,18 +414,26 @@ interface ConfigUpdateListener: ConfigListener {
}
saveConfig()
}

override fun onBClickPresetChanged(index: Int) {
val setData: FloatArray = when (index) {
// 0.33, 0.08, 0.7, 0.12, 0.25, 0.2, 0.8, 0, noUseArm 啥玩意
0 -> floatArrayOf(0.33f, 0.07f, 0.7f, 0.06f, 0.25f, 0.2f, 0.5f, 1f)
1 -> floatArrayOf(0.365f, 0.06f, 0.62f, 0.07f, 0.25f, 0.2f, 0.5f, 1f)
2 -> floatArrayOf(0.4f, 0.065f, 0.55f, 0.075f, 0.25f, 0.2f, 0.5f, 1f)
3 -> floatArrayOf(0.4f, 0.065f, 0.55f, 0.075f, 0.25f, 0.2f, 0.5f, 0f)
4 -> floatArrayOf(0.4f, 0.06f, 0.4f, 0.075f, 0.55f, 0.2f, 0.8f, 0f)
0 -> floatArrayOf(0.33f, 0.07f, 0.7f, 0.06f, 0.25f, 0.2f, 0.5f,
1f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f)
1 -> floatArrayOf(0.365f, 0.06f, 0.62f, 0.07f, 0.25f, 0.2f, 0.5f,
1f, 1.5f, 1.5f, 1.5f, 1.5f, 1.5f, 1.5f)
2 -> floatArrayOf(0.4f, 0.065f, 0.55f, 0.075f, 0.25f, 0.2f, 0.5f,
1f, 2.0f, 2.0f, 2.0f, 2.0f, 2.0f, 2.0f)
3 -> floatArrayOf(0.4f, 0.065f, 0.55f, 0.075f, 0.25f, 0.2f, 0.5f,
1f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 3.0f)
4 -> floatArrayOf(0.4f, 0.06f, 0.4f, 0.075f, 0.55f, 0.2f, 0.8f,
1f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 3.5f)

5 -> floatArrayOf(0.33f, 0.08f, 0.8f, 0.12f, 0.55f, 0.2f, 1.0f, 0f)
5 -> floatArrayOf(0.33f, 0.08f, 0.8f, 0.12f, 0.55f, 0.2f, 1.0f,
0f)

else -> floatArrayOf(0.33f, 0.08f, 1.0f, 0.055f, 0.15f, 0.2f, 0.5f, 1f)
else -> floatArrayOf(0.33f, 0.08f, 1.0f, 0.055f, 0.15f, 0.2f, 0.5f,
1f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f)
}

binding.config!!.bDamping = setData[0]
Expand All @@ -372,7 +443,19 @@ interface ConfigUpdateListener: ConfigListener {
binding.config!!.bPendulumRange = setData[4]
binding.config!!.bAverage = setData[5]
binding.config!!.bRootWeight = setData[6]
binding.config!!.bUseLimit = setData[7].toInt()
binding.config!!.bUseLimit = if (setData[7] == 0f) {
false
}
else {
binding.config!!.bLimitXx = setData[8]
binding.config!!.bLimitXy = setData[9]
binding.config!!.bLimitYx = setData[10]
binding.config!!.bLimitYy = setData[11]
binding.config!!.bLimitZx = setData[12]
binding.config!!.bLimitZy = setData[13]
true
}

binding.config!!.bUseArmCorrection = true

checkConfigAndUpdateView()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ data class GakumasConfig (
var lodQualityLevel: Int = 4, // 0~5

var enableBreastParam: Boolean = false,
var bUseLimit: Int = 1,
var bDamping: Float = 0.33f,
var bStiffness: Float = 0.08f,
var bSpring: Float = 1.0f,
Expand All @@ -35,5 +34,12 @@ data class GakumasConfig (
var bRootWeight: Float = 0.5f,
var bUseArmCorrection: Boolean = true,
var bUseScale: Boolean = false,
var bScale: Float = 1.0f
var bScale: Float = 1.0f,
var bUseLimit: Boolean = true,
var bLimitXx: Float = 1.0f,
var bLimitXy: Float = 1.0f,
var bLimitYx: Float = 1.0f,
var bLimitYy: Float = 1.0f,
var bLimitZx: Float = 1.0f,
var bLimitZy: Float = 1.0f,
)
Loading
Loading