@@ -33,14 +33,12 @@ JNI_OnLoad(JavaVM *vm, void *reserved) {
3333extern " C" JNIEXPORT jobjectArray JNICALL
3434Java_com_android_support_Menu_getFeatureList (JNIEnv *env, jobject thiz) {
3535 std::string feats[] = {
36- " Toggle:Characters" ,
3736 " Seekbar:Reward:1_20" ,
3837 };
3938 return toJobjectArray (env, feats);
4039}
4140
4241struct Feature {
43- bool characters{false };
4442 int reward{1 };
4543};
4644
@@ -57,10 +55,6 @@ Java_com_android_support_Menu_valueChange(
5755 // featIdx: index in feature list
5856 switch (featIdx) {
5957 case 0 : {
60- feature.characters = value;
61- break ;
62- }
63- case 1 : {
6458 feature.reward = value;
6559 break ;
6660 }
@@ -86,47 +80,6 @@ void new_AddCharacterTemptation(void *instance, void *character, int added) {
8680 return old_AddCharacterTemptation (instance, character, added * feature.reward );
8781}
8882
89- void (*old_Load)(void *instance);
90-
91- void new_Load (BNM ::IL2CPP ::Il2CppObject *instance) {
92- old_Load (instance);
93- if (feature.characters ) {
94- auto userCharacterFactory = GetField<void *>(instance, " userCharacterFactory" );
95- auto characterStaticUsecase = GetField<void *>(userCharacterFactory,
96- " characterStaticUsecase" );
97- auto characters = GetProperty<void *>(characterStaticUsecase,
98- " Characters" );
99- auto count = GetMethod<int >(characters, " get_Count" )();
100- for (int i = 0 ; i < count; i++) {
101- auto character = GetMethod<void *>(characters, " get_Item" )(i);
102- auto id = GetProperty<int >(character, " Id" );
103- GetMethod<void >(instance, " AddCharacterOrExperience" )(id, 100 );
104- }
105- }
106- }
107-
108- bool (*old_TryBuyVip)(void *instance);
109-
110- bool new_TryBuyVip (void *instance) {
111- auto monthlyVipUsecase = GetField<void *>(instance, " monthlyVipUsecase" );
112- auto userInventoryUsecase = GetField<void *>(monthlyVipUsecase, " userInventoryUsecase" );
113- auto vipAccessKey = GetMethod<void *>(instance, " GetVipAccessKey" )();
114- GetMethod<void >(userInventoryUsecase, " AddItem" )(vipAccessKey, 1 );
115- return true ;
116- }
117-
118- void (*old_TryBuy)(void *instance, void *config);
119-
120- void new_TryBuy (void *instance, void *config) {
121- auto key = GetProperty<void *>(config, " Key" );
122- auto usecase = GetField<void *>(instance, " usecase" );
123- auto inventoryUsecase = GetField<void *>(usecase, " inventoryUsecase" );
124- GetMethod<void >(inventoryUsecase, " AddItem" )(key, 1 );
125-
126- auto OnPurchased = GetField<void *>(instance, " OnPurchased" );
127- GetMethod<void >(OnPurchased, " Invoke" )(config);
128- }
129-
13083
13184// [Wet Wealth](https://www.nutaku.net/games/wet-wealth/)
13285void OnLoaded () {
@@ -139,22 +92,8 @@ void OnLoaded() {
13992
14093 auto UserCharactersUsecase = BNM::Class (" WetWealth.Characters" , " UserCharactersUsecase" ,
14194 AssemblyCSharp);
142- auto Load = UserCharactersUsecase.GetMethod (" Load" );
14395 auto AddCharacterTemptation = UserCharactersUsecase.GetMethod (" AddCharacterTemptation" );
14496
145- auto MonthlyVipPresenter = BNM::Class (" WetWealth.SlotMachine" ,
146- " MonthlyVipPresenter" ,
147- AssemblyCSharp);
148- auto TryBuyVip = MonthlyVipPresenter.GetMethod (" TryBuyVip" );
149-
150- auto BuildingRepairPresenter = BNM::Class (" WetWealth.BuildingRepair" ,
151- " BuildingRepairPresenter" ,
152- AssemblyCSharp);
153- auto TryBuy = BuildingRepairPresenter.GetMethod (" TryBuy" );
154-
15597 BNM::BasicHook (AddItem, new_AddItem, old_AddItem);
156- BNM::BasicHook (Load, new_Load, old_Load);
15798 BNM::BasicHook (AddCharacterTemptation, new_AddCharacterTemptation, old_AddCharacterTemptation);
158- BNM::BasicHook (TryBuyVip, new_TryBuyVip, old_TryBuyVip);
159- BNM::BasicHook (TryBuy, new_TryBuy, old_TryBuy);
16099}
0 commit comments