@@ -30,31 +30,36 @@ JNI_OnLoad(JavaVM *vm, void *reserved) {
3030// Category:CategoryName
3131extern " C" JNIEXPORT jobjectArray JNICALL
3232Java_com_android_support_Menu_getFeatureList (JNIEnv *env, jobject thiz) {
33- std::vector<std:: string> feats = {
33+ std::string feats[] = {
3434 " Seekbar:Attack:1_20" ,
3535 " Seekbar:Defence:1_20" ,
3636 };
3737 return toJobjectArray (env, feats);
3838}
3939
40- int attack = 1 ;
41- int defence = 1 ;
40+ struct Feature {
41+ int attack{1 };
42+ int defence{1 };
43+ };
44+
45+ Feature feature{};
46+
4247extern " C" JNIEXPORT void JNICALL
4348Java_com_android_support_Menu_valueChange (
4449 JNIEnv *env,
4550 jobject thiz,
4651 jint featIdx,
4752 jstring featName,
48- jobject value
53+ jint value
4954) {
5055 // featIdx: index in feature list
5156 switch (featIdx) {
5257 case 0 : {
53- attack = toJint (env, value) ;
58+ feature. attack = value;
5459 break ;
5560 }
5661 case 1 : {
57- defence = toJint (env, value) ;
62+ feature. defence = value;
5863 break ;
5964 }
6065 default :
@@ -64,34 +69,34 @@ Java_com_android_support_Menu_valueChange(
6469
6570BNM ::Field<int > Camp{};
6671
67- float (*old_GetSkillConditionAttack)(void *instance, void *inSource,
68- void *inSkillProcessContext,
69- void *inSourceSkillFunctionInfos);
72+ double (*old_GetSkillConditionAttack)(void *instance, void *inSource,
73+ void *inSkillProcessContext,
74+ void *inSourceSkillFunctionInfos);
7075
71- float new_GetSkillConditionAttack (void *instance, void *inSource,
72- void *inSkillProcessContext,
73- void *inSourceSkillFunctionInfos) {
76+ double new_GetSkillConditionAttack (void *instance, void *inSource,
77+ void *inSkillProcessContext,
78+ void *inSourceSkillFunctionInfos) {
7479 auto ret = old_GetSkillConditionAttack (instance, inSource, inSkillProcessContext,
7580 inSourceSkillFunctionInfos);
7681 auto camp = Camp[inSource]();
7782 if (camp == 1 ) {
78- ret = ret * attack;
83+ ret = ret * feature. attack ;
7984 }
8085 return ret;
8186}
8287
83- float (*old_GetDefenceRate)(void *instance, void *inSource,
84- void *inSkillProcessContext,
85- void *inSourceSkillFunctionInfos);
88+ double (*old_GetDefenceRate)(void *instance, void *inSource,
89+ void *inSkillProcessContext,
90+ void *inSourceSkillFunctionInfos);
8691
87- float new_GetDefenceRate (void *instance, void *inSource,
88- void *inSkillProcessContext,
89- void *inSourceSkillFunctionInfos) {
92+ double new_GetDefenceRate (void *instance, void *inSource,
93+ void *inSkillProcessContext,
94+ void *inSourceSkillFunctionInfos) {
9095 auto ret = old_GetDefenceRate (instance, inSource, inSkillProcessContext,
9196 inSourceSkillFunctionInfos);
9297 auto camp = Camp[inSource]();
9398 if (camp == 2 ) {
94- ret = ret * defence;
99+ ret = ret * feature. defence ;
95100 }
96101 return ret;
97102}
0 commit comments