/** * Returns all the max mental states for a creature. * * @param env Java environment * @param self class calling this function * @param mob id of creature to access * * @return the max mental states for the creature */ jobjectArray JNICALL ScriptMethodsMentalStatesNamespace::getMaxMentalStates(JNIEnv *env, jobject self, jlong mob) { UNREF(self); CreatureObject * creature = 0; if (!JavaLibrary::getObject(mob, creature)) return 0; // create the array of mental states LocalObjectArrayRefPtr attribs = createNewObjectArray( MentalStates::NumberOfMentalStates, JavaLibrary::getClsMentalState()); if (env->ExceptionCheck()) { env->ExceptionDescribe(); return 0; } // set the array elements for (int i = 0; i < MentalStates::NumberOfMentalStates; ++i) { LocalRefPtr mentalState = createNewObject(JavaLibrary::getClsMentalState(), JavaLibrary::getMidMentalState(), i, creature->getMaxMentalState(static_cast<MentalStates::Enumerator>(i))); if (env->ExceptionCheck()) { env->ExceptionDescribe(); return 0; } setObjectArrayElement(*attribs, i, *mentalState); } return attribs->getReturnValue(); } // JavaLibrary::getMaxMentalStates
/** * Returns a creature's max mentalState. * * @param env Java environment * @param self class calling this function * @param mob id of creature to access * @param mentalState mentalState we are interested in * * @return the max mental state value, or MENTAL_STATE_ERROR on error */ jfloat JNICALL ScriptMethodsMentalStatesNamespace::getMaxMentalState(JNIEnv *env, jobject self, jlong mob, jint mentalState) { UNREF(self); if (mentalState < 0 || mentalState >= MentalStates::NumberOfMentalStates) return MENTAL_STATE_ERROR; CreatureObject * creature = 0; if (!JavaLibrary::getObject(mob, creature)) return MENTAL_STATE_ERROR; return creature->getMaxMentalState(static_cast<MentalStates::Enumerator>(mentalState)); } // JavaLibrary::getMaxMentalStates