Skip to content

Commit 48d355f

Browse files
committed
horny-villa: Promote Progress
1 parent 7cce257 commit 48d355f

File tree

1 file changed

+29
-9
lines changed

1 file changed

+29
-9
lines changed

app/src/main/cpp/horny-villa.cpp

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,14 @@ extern "C" JNIEXPORT jobjectArray JNICALL
3131
Java_com_android_support_Menu_getFeatureList(JNIEnv *env, jobject thiz) {
3232
std::string featList[] = {
3333
"Toggle:Currencies",
34+
"Toggle:Promote Progress:true",
3435
"Seekbar:Reward:1_10",
3536
};
3637
return toJobjectArray(env, featList, std::size(featList));
3738
}
3839

3940
bool currencies = false;
41+
bool promote = true;
4042
int reward = 1;
4143
extern "C" JNIEXPORT void JNICALL
4244
Java_com_android_support_Menu_valueChange(
@@ -53,6 +55,10 @@ Java_com_android_support_Menu_valueChange(
5355
break;
5456
}
5557
case 1: {
58+
promote = toJboolean(env, value);
59+
break;
60+
}
61+
case 2: {
5662
reward = toJint(env, value);
5763
break;
5864
}
@@ -62,24 +68,34 @@ Java_com_android_support_Menu_valueChange(
6268
}
6369

6470

65-
bool (*old_CurrenciesTryAdd)(void *instance, int type, int amount, void *param);
71+
bool (*old_TryAdd)(void *instance, int type, int amount, void *param);
6672

67-
bool CurrenciesTryAdd(void *instance, int type, int amount, void *param) {
68-
return old_CurrenciesTryAdd(instance, type, amount * reward, param);
73+
bool new_TryAdd(void *instance, int type, int amount, void *param) {
74+
return old_TryAdd(instance, type, amount * reward, param);
6975
}
7076

71-
bool (*old_CurrenciesSpend)(void *instance, int type, int value, void *param);
77+
bool (*old_Spend)(void *instance, int type, int value, void *param);
7278

73-
bool CurrenciesSpend(void *instance, int type, int value, void *param) {
79+
bool new_Spend(void *instance, int type, int value, void *param) {
7480
if (instance != nullptr) {
7581
if (currencies) {
76-
CurrenciesTryAdd(instance, type, value, param);
82+
new_TryAdd(instance, type, value, param);
7783
return true;
7884
}
7985
}
80-
return old_CurrenciesSpend(instance, type, value, param);
86+
return old_Spend(instance, type, value, param);
8187
}
8288

89+
void (*old_Init)(void *instance, int level, int progress);
90+
91+
void new_Init(void *instance, int level, int progress) {
92+
if (instance != nullptr) {
93+
if (promote) {
94+
progress = 1000;
95+
}
96+
}
97+
return old_Init(instance, level, progress);
98+
}
8399

84100
// Example Game: [Horny Villa](https://www.nutaku.net/games/horny-villa/)
85101
void OnLoaded() {
@@ -88,6 +104,10 @@ void OnLoaded() {
88104
auto Currencies = BNM::Class("StripClub.Model", "Currencies", AssemblyCSharp);
89105
auto Spend = Currencies.GetMethod("Spend", 3);
90106
auto TryAdd = Currencies.GetMethod("TryAdd", 3);
91-
BNM::BasicHook(Spend, CurrenciesSpend, old_CurrenciesSpend);
92-
BNM::BasicHook(TryAdd, CurrenciesTryAdd, old_CurrenciesTryAdd);
107+
auto Promote = BNM::Class("StripClub.Model.Cards", "Promote", AssemblyCSharp);
108+
auto Init = Promote.GetMethod("Init");
109+
110+
BNM::BasicHook(Spend, new_Spend, old_Spend);
111+
BNM::BasicHook(TryAdd, new_TryAdd, old_TryAdd);
112+
BNM::BasicHook(Init, new_Init, old_Init);
93113
}

0 commit comments

Comments
 (0)