mirror of
https://bitbucket.org/theswgsource/src-1.2.git
synced 2026-09-22 07:13:03 -04:00
1013 lines
40 KiB
C++
Executable File
1013 lines
40 KiB
C++
Executable File
//========================================================================
|
|
//
|
|
// ScriptMethodsCollection.cpp - implements script methods dealing with collection
|
|
//
|
|
// copyright 2001 Sony Online Entertainment
|
|
//
|
|
//========================================================================
|
|
|
|
#include "serverScript/FirstServerScript.h"
|
|
#include "serverScript/JavaLibrary.h"
|
|
|
|
#include "serverGame/CreatureObject.h"
|
|
#include "serverGame/PlayerCreatureController.h"
|
|
#include "serverGame/PlayerObject.h"
|
|
|
|
using namespace JNIWrappersNamespace;
|
|
|
|
// ======================================================================
|
|
// ScriptMethodsCollectionNamespace
|
|
// ======================================================================
|
|
|
|
namespace ScriptMethodsCollectionNamespace
|
|
{
|
|
bool install();
|
|
jboolean JNICALL modifyCollectionSlotValue(JNIEnv *env, jobject self, jlong player, jstring slotName, jlong delta);
|
|
jlong JNICALL getCollectionSlotValue(JNIEnv *env, jobject self, jlong player, jstring slotName);
|
|
jboolean JNICALL hasCompletedCollectionSlotPrereq(JNIEnv *env, jobject self, jlong player, jstring slotName);
|
|
jboolean JNICALL hasCompletedCollectionSlot(JNIEnv *env, jobject self, jlong player, jstring slotName);
|
|
jboolean JNICALL hasCompletedCollection(JNIEnv *env, jobject self, jlong player, jstring collectionName);
|
|
jboolean JNICALL hasCompletedCollectionPage(JNIEnv *env, jobject self, jlong player, jstring pageName);
|
|
jboolean JNICALL hasCompletedCollectionBook(JNIEnv *env, jobject self, jlong player, jstring bookName);
|
|
jobjectArray JNICALL getCompletedCollectionSlotsInCollection(JNIEnv *env, jobject self, jlong player, jstring collectionName);
|
|
jobjectArray JNICALL getCompletedCollectionSlotsInPage(JNIEnv *env, jobject self, jlong player, jstring pageName);
|
|
jobjectArray JNICALL getCompletedCollectionsInPage(JNIEnv *env, jobject self, jlong player, jstring pageName);
|
|
jobjectArray JNICALL getCompletedCollectionSlotsInBook(JNIEnv *env, jobject self, jlong player, jstring bookName);
|
|
jobjectArray JNICALL getCompletedCollectionsInBook(JNIEnv *env, jobject self, jlong player, jstring bookName);
|
|
jobjectArray JNICALL getCompletedCollectionPagesInBook(JNIEnv *env, jobject self, jlong player, jstring bookName);
|
|
jobjectArray JNICALL getCompletedCollectionBooks(JNIEnv *env, jobject self, jlong player);
|
|
jobjectArray JNICALL getCollectionSlotInfo(JNIEnv *env, jobject self, jstring slotName);
|
|
jboolean JNICALL isCollectionSlotATitle(JNIEnv *env, jobject self, jstring slotName);
|
|
jboolean JNICALL isCollectionATitle(JNIEnv *env, jobject self, jstring collectionName);
|
|
jboolean JNICALL isCollectionPageATitle(JNIEnv *env, jobject self, jstring pageName);
|
|
jobjectArray JNICALL getCollectionSlotCategoryInfo(JNIEnv *env, jobject self, jstring slotName);
|
|
jobjectArray JNICALL getCollectionSlotPrereqInfo(JNIEnv *env, jobject self, jstring slotName);
|
|
jstring JNICALL getCollectionSlotName(JNIEnv *env, jobject self, jint collectionSlotId);
|
|
jobjectArray JNICALL getAllCollectionSlotsInCollection(JNIEnv *env, jobject self, jstring collectionName);
|
|
jobjectArray JNICALL getAllCollectionSlotsInPage(JNIEnv *env, jobject self, jstring pageName);
|
|
jobjectArray JNICALL getAllCollectionsInPage(JNIEnv *env, jobject self, jstring pageName);
|
|
jobjectArray JNICALL getAllCollectionSlotsInBook(JNIEnv *env, jobject self, jstring bookName);
|
|
jobjectArray JNICALL getAllCollectionsInBook(JNIEnv *env, jobject self, jstring bookName);
|
|
jobjectArray JNICALL getAllCollectionPagesInBook(JNIEnv *env, jobject self, jstring bookName);
|
|
jobjectArray JNICALL getAllCollectionBooks(JNIEnv *env, jobject self);
|
|
jobjectArray JNICALL getAllCollectionSlotsInCategory(JNIEnv *env, jobject self, jstring categoryName);
|
|
jobjectArray JNICALL getAllCollectionSlotsInCategoryInCollection(JNIEnv *env, jobject self, jstring collectionName, jstring categoryName);
|
|
jobjectArray JNICALL getAllCollectionSlotsInCategoryInPage(JNIEnv *env, jobject self, jstring pageName, jstring categoryName);
|
|
jobjectArray JNICALL getAllCollectionSlotsInCategoryInBook(JNIEnv *env, jobject self, jstring bookName, jstring categoryName);
|
|
jobjectArray JNICALL getAllCollectionSlotCategoriesInCollection(JNIEnv *env, jobject self, jstring collectionName);
|
|
jobjectArray JNICALL getAllCollectionSlotCategoriesInPage(JNIEnv *env, jobject self, jstring pageName);
|
|
jobjectArray JNICALL getAllCollectionSlotCategoriesInBook(JNIEnv *env, jobject self, jstring bookName);
|
|
jobjectArray JNICALL getAllCollectionSlotCategories(JNIEnv *env, jobject self);
|
|
}
|
|
|
|
//========================================================================
|
|
// install
|
|
//========================================================================
|
|
|
|
bool ScriptMethodsCollectionNamespace::install()
|
|
{
|
|
const JNINativeMethod NATIVES[] = {
|
|
#define JF(a,b,c) {a,b,(void*)(ScriptMethodsCollectionNamespace::c)}
|
|
JF("_modifyCollectionSlotValue", "(JLjava/lang/String;J)Z", modifyCollectionSlotValue),
|
|
JF("_getCollectionSlotValue", "(JLjava/lang/String;)J", getCollectionSlotValue),
|
|
JF("_hasCompletedCollectionSlotPrereq", "(JLjava/lang/String;)Z", hasCompletedCollectionSlotPrereq),
|
|
JF("_hasCompletedCollectionSlot", "(JLjava/lang/String;)Z", hasCompletedCollectionSlot),
|
|
JF("_hasCompletedCollection", "(JLjava/lang/String;)Z", hasCompletedCollection),
|
|
JF("_hasCompletedCollectionPage", "(JLjava/lang/String;)Z", hasCompletedCollectionPage),
|
|
JF("_hasCompletedCollectionBook", "(JLjava/lang/String;)Z", hasCompletedCollectionBook),
|
|
JF("_getCompletedCollectionSlotsInCollection", "(JLjava/lang/String;)[Ljava/lang/String;", getCompletedCollectionSlotsInCollection),
|
|
JF("_getCompletedCollectionSlotsInPage", "(JLjava/lang/String;)[Ljava/lang/String;", getCompletedCollectionSlotsInPage),
|
|
JF("_getCompletedCollectionsInPage", "(JLjava/lang/String;)[Ljava/lang/String;", getCompletedCollectionsInPage),
|
|
JF("_getCompletedCollectionSlotsInBook", "(JLjava/lang/String;)[Ljava/lang/String;", getCompletedCollectionSlotsInBook),
|
|
JF("_getCompletedCollectionsInBook", "(JLjava/lang/String;)[Ljava/lang/String;", getCompletedCollectionsInBook),
|
|
JF("_getCompletedCollectionPagesInBook", "(JLjava/lang/String;)[Ljava/lang/String;", getCompletedCollectionPagesInBook),
|
|
JF("_getCompletedCollectionBooks", "(J)[Ljava/lang/String;", getCompletedCollectionBooks),
|
|
JF("getCollectionSlotInfo", "(Ljava/lang/String;)[Ljava/lang/String;", getCollectionSlotInfo),
|
|
JF("isCollectionSlotATitle", "(Ljava/lang/String;)Z", isCollectionSlotATitle),
|
|
JF("isCollectionATitle", "(Ljava/lang/String;)Z", isCollectionATitle),
|
|
JF("isCollectionPageATitle", "(Ljava/lang/String;)Z", isCollectionPageATitle),
|
|
JF("getCollectionSlotCategoryInfo", "(Ljava/lang/String;)[Ljava/lang/String;", getCollectionSlotCategoryInfo),
|
|
JF("getCollectionSlotPrereqInfo", "(Ljava/lang/String;)[Ljava/lang/String;", getCollectionSlotPrereqInfo),
|
|
JF("getCollectionSlotName", "(I)Ljava/lang/String;", getCollectionSlotName),
|
|
JF("getAllCollectionSlotsInCollection", "(Ljava/lang/String;)[Ljava/lang/String;", getAllCollectionSlotsInCollection),
|
|
JF("getAllCollectionSlotsInPage", "(Ljava/lang/String;)[Ljava/lang/String;", getAllCollectionSlotsInPage),
|
|
JF("getAllCollectionsInPage", "(Ljava/lang/String;)[Ljava/lang/String;", getAllCollectionsInPage),
|
|
JF("getAllCollectionSlotsInBook", "(Ljava/lang/String;)[Ljava/lang/String;", getAllCollectionSlotsInBook),
|
|
JF("getAllCollectionsInBook", "(Ljava/lang/String;)[Ljava/lang/String;", getAllCollectionsInBook),
|
|
JF("getAllCollectionPagesInBook", "(Ljava/lang/String;)[Ljava/lang/String;", getAllCollectionPagesInBook),
|
|
JF("getAllCollectionBooks", "()[Ljava/lang/String;", getAllCollectionBooks),
|
|
JF("getAllCollectionSlotsInCategory", "(Ljava/lang/String;)[Ljava/lang/String;", getAllCollectionSlotsInCategory),
|
|
JF("getAllCollectionSlotsInCategoryInCollection", "(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;", getAllCollectionSlotsInCategoryInCollection),
|
|
JF("getAllCollectionSlotsInCategoryInPage", "(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;", getAllCollectionSlotsInCategoryInPage),
|
|
JF("getAllCollectionSlotsInCategoryInBook", "(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;", getAllCollectionSlotsInCategoryInBook),
|
|
JF("getAllCollectionSlotCategoriesInCollection", "(Ljava/lang/String;)[Ljava/lang/String;", getAllCollectionSlotCategoriesInCollection),
|
|
JF("getAllCollectionSlotCategoriesInPage", "(Ljava/lang/String;)[Ljava/lang/String;", getAllCollectionSlotCategoriesInPage),
|
|
JF("getAllCollectionSlotCategoriesInBook", "(Ljava/lang/String;)[Ljava/lang/String;", getAllCollectionSlotCategoriesInBook),
|
|
JF("getAllCollectionSlotCategories", "()[Ljava/lang/String;", getAllCollectionSlotCategories),
|
|
};
|
|
|
|
return JavaLibrary::registerNatives(NATIVES, sizeof(NATIVES)/sizeof(NATIVES[0]));
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jboolean JNICALL ScriptMethodsCollectionNamespace::modifyCollectionSlotValue(JNIEnv *env, jobject self, jlong player, jstring slotName, jlong delta)
|
|
{
|
|
UNREF(self);
|
|
|
|
CreatureObject * creature = 0;
|
|
if (!JavaLibrary::getObject(player, creature))
|
|
return JNI_FALSE;
|
|
|
|
PlayerObject * const playerObject = PlayerCreatureController::getPlayerObject(creature);
|
|
if (!playerObject)
|
|
return JNI_FALSE;
|
|
|
|
JavaStringParam localSlotName(slotName);
|
|
std::string slotNameString;
|
|
JavaLibrary::convert(localSlotName, slotNameString);
|
|
|
|
return playerObject->modifyCollectionSlotValue(slotNameString, static_cast<int64>(delta));
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jlong JNICALL ScriptMethodsCollectionNamespace::getCollectionSlotValue(JNIEnv *env, jobject self, jlong player, jstring slotName)
|
|
{
|
|
UNREF(self);
|
|
|
|
CreatureObject * creature = 0;
|
|
if (!JavaLibrary::getObject(player, creature))
|
|
return static_cast<int64>(-1);
|
|
|
|
PlayerObject * const playerObject = PlayerCreatureController::getPlayerObject(creature);
|
|
if (!playerObject)
|
|
return static_cast<int64>(-1);
|
|
|
|
JavaStringParam localSlotName(slotName);
|
|
std::string slotNameString;
|
|
JavaLibrary::convert(localSlotName, slotNameString);
|
|
|
|
unsigned long value;
|
|
if (!playerObject->getCollectionSlotValue(slotNameString, value))
|
|
return static_cast<int64>(-1);
|
|
|
|
return static_cast<int64>(value);
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jboolean JNICALL ScriptMethodsCollectionNamespace::hasCompletedCollectionSlotPrereq(JNIEnv *env, jobject self, jlong player, jstring slotName)
|
|
{
|
|
UNREF(self);
|
|
|
|
CreatureObject const * creature = 0;
|
|
if (!JavaLibrary::getObject(player, creature))
|
|
return JNI_FALSE;
|
|
|
|
PlayerObject const * const playerObject = PlayerCreatureController::getPlayerObject(creature);
|
|
if (!playerObject)
|
|
return JNI_FALSE;
|
|
|
|
JavaStringParam localSlotName(slotName);
|
|
std::string slotNameString;
|
|
JavaLibrary::convert(localSlotName, slotNameString);
|
|
|
|
return playerObject->hasCompletedCollectionSlotPrereq(slotNameString);
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jboolean JNICALL ScriptMethodsCollectionNamespace::hasCompletedCollectionSlot(JNIEnv *env, jobject self, jlong player, jstring slotName)
|
|
{
|
|
UNREF(self);
|
|
|
|
CreatureObject const * creature = 0;
|
|
if (!JavaLibrary::getObject(player, creature))
|
|
return JNI_FALSE;
|
|
|
|
PlayerObject const * const playerObject = PlayerCreatureController::getPlayerObject(creature);
|
|
if (!playerObject)
|
|
return JNI_FALSE;
|
|
|
|
JavaStringParam localSlotName(slotName);
|
|
std::string slotNameString;
|
|
JavaLibrary::convert(localSlotName, slotNameString);
|
|
|
|
return playerObject->hasCompletedCollectionSlot(slotNameString);
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jboolean JNICALL ScriptMethodsCollectionNamespace::hasCompletedCollection(JNIEnv *env, jobject self, jlong player, jstring collectionName)
|
|
{
|
|
UNREF(self);
|
|
|
|
CreatureObject const * creature = 0;
|
|
if (!JavaLibrary::getObject(player, creature))
|
|
return JNI_FALSE;
|
|
|
|
PlayerObject const * const playerObject = PlayerCreatureController::getPlayerObject(creature);
|
|
if (!playerObject)
|
|
return JNI_FALSE;
|
|
|
|
JavaStringParam localCollectionName(collectionName);
|
|
std::string collectionNameString;
|
|
JavaLibrary::convert(localCollectionName, collectionNameString);
|
|
|
|
return playerObject->hasCompletedCollection(collectionNameString);
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jboolean JNICALL ScriptMethodsCollectionNamespace::hasCompletedCollectionPage(JNIEnv *env, jobject self, jlong player, jstring pageName)
|
|
{
|
|
UNREF(self);
|
|
|
|
CreatureObject const * creature = 0;
|
|
if (!JavaLibrary::getObject(player, creature))
|
|
return JNI_FALSE;
|
|
|
|
PlayerObject const * const playerObject = PlayerCreatureController::getPlayerObject(creature);
|
|
if (!playerObject)
|
|
return JNI_FALSE;
|
|
|
|
JavaStringParam localPageName(pageName);
|
|
std::string pageNameString;
|
|
JavaLibrary::convert(localPageName, pageNameString);
|
|
|
|
return playerObject->hasCompletedCollectionPage(pageNameString);
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jboolean JNICALL ScriptMethodsCollectionNamespace::hasCompletedCollectionBook(JNIEnv *env, jobject self, jlong player, jstring bookName)
|
|
{
|
|
UNREF(self);
|
|
|
|
CreatureObject const * creature = 0;
|
|
if (!JavaLibrary::getObject(player, creature))
|
|
return JNI_FALSE;
|
|
|
|
PlayerObject const * const playerObject = PlayerCreatureController::getPlayerObject(creature);
|
|
if (!playerObject)
|
|
return JNI_FALSE;
|
|
|
|
JavaStringParam localBookName(bookName);
|
|
std::string bookNameString;
|
|
JavaLibrary::convert(localBookName, bookNameString);
|
|
|
|
return playerObject->hasCompletedCollectionBook(bookNameString);
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getCompletedCollectionSlotsInCollection(JNIEnv *env, jobject self, jlong player, jstring collectionName)
|
|
{
|
|
UNREF(self);
|
|
|
|
CreatureObject const * creature = 0;
|
|
if (!JavaLibrary::getObject(player, creature))
|
|
return 0;
|
|
|
|
PlayerObject const * const playerObject = PlayerCreatureController::getPlayerObject(creature);
|
|
if (!playerObject)
|
|
return 0;
|
|
|
|
JavaStringParam localCollectionName(collectionName);
|
|
std::string collectionNameString;
|
|
JavaLibrary::convert(localCollectionName, collectionNameString);
|
|
|
|
std::vector<CollectionsDataTable::CollectionInfoSlot const *> collectionInfo;
|
|
IGNORE_RETURN(playerObject->getCompletedCollectionSlotCountInCollection(collectionNameString, &collectionInfo));
|
|
if (collectionInfo.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(collectionInfo.size(), JavaLibrary::getClsString());
|
|
for (std::vector<CollectionsDataTable::CollectionInfoSlot const *>::const_iterator iter = collectionInfo.begin(); iter != collectionInfo.end(); ++iter)
|
|
{
|
|
JavaString jval((*iter)->name);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getCompletedCollectionSlotsInPage(JNIEnv *env, jobject self, jlong player, jstring pageName)
|
|
{
|
|
UNREF(self);
|
|
|
|
CreatureObject const * creature = 0;
|
|
if (!JavaLibrary::getObject(player, creature))
|
|
return 0;
|
|
|
|
PlayerObject const * const playerObject = PlayerCreatureController::getPlayerObject(creature);
|
|
if (!playerObject)
|
|
return 0;
|
|
|
|
JavaStringParam localPageName(pageName);
|
|
std::string pageNameString;
|
|
JavaLibrary::convert(localPageName, pageNameString);
|
|
|
|
std::vector<CollectionsDataTable::CollectionInfoSlot const *> collectionInfo;
|
|
IGNORE_RETURN(playerObject->getCompletedCollectionSlotCountInPage(pageNameString, &collectionInfo));
|
|
if (collectionInfo.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(collectionInfo.size(), JavaLibrary::getClsString());
|
|
for (std::vector<CollectionsDataTable::CollectionInfoSlot const *>::const_iterator iter = collectionInfo.begin(); iter != collectionInfo.end(); ++iter)
|
|
{
|
|
JavaString jval((*iter)->name);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getCompletedCollectionsInPage(JNIEnv *env, jobject self, jlong player, jstring pageName)
|
|
{
|
|
UNREF(self);
|
|
|
|
CreatureObject const * creature = 0;
|
|
if (!JavaLibrary::getObject(player, creature))
|
|
return 0;
|
|
|
|
PlayerObject const * const playerObject = PlayerCreatureController::getPlayerObject(creature);
|
|
if (!playerObject)
|
|
return 0;
|
|
|
|
JavaStringParam localPageName(pageName);
|
|
std::string pageNameString;
|
|
JavaLibrary::convert(localPageName, pageNameString);
|
|
|
|
std::vector<CollectionsDataTable::CollectionInfoCollection const *> collectionInfo;
|
|
IGNORE_RETURN(playerObject->getCompletedCollectionCountInPage(pageNameString, &collectionInfo));
|
|
if (collectionInfo.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(collectionInfo.size(), JavaLibrary::getClsString());
|
|
for (std::vector<CollectionsDataTable::CollectionInfoCollection const *>::const_iterator iter = collectionInfo.begin(); iter != collectionInfo.end(); ++iter)
|
|
{
|
|
JavaString jval((*iter)->name);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getCompletedCollectionSlotsInBook(JNIEnv *env, jobject self, jlong player, jstring bookName)
|
|
{
|
|
UNREF(self);
|
|
|
|
CreatureObject const * creature = 0;
|
|
if (!JavaLibrary::getObject(player, creature))
|
|
return 0;
|
|
|
|
PlayerObject const * const playerObject = PlayerCreatureController::getPlayerObject(creature);
|
|
if (!playerObject)
|
|
return 0;
|
|
|
|
JavaStringParam localBookName(bookName);
|
|
std::string bookNameString;
|
|
JavaLibrary::convert(localBookName, bookNameString);
|
|
|
|
std::vector<CollectionsDataTable::CollectionInfoSlot const *> collectionInfo;
|
|
IGNORE_RETURN(playerObject->getCompletedCollectionSlotCountInBook(bookNameString, &collectionInfo));
|
|
if (collectionInfo.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(collectionInfo.size(), JavaLibrary::getClsString());
|
|
for (std::vector<CollectionsDataTable::CollectionInfoSlot const *>::const_iterator iter = collectionInfo.begin(); iter != collectionInfo.end(); ++iter)
|
|
{
|
|
JavaString jval((*iter)->name);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getCompletedCollectionsInBook(JNIEnv *env, jobject self, jlong player, jstring bookName)
|
|
{
|
|
UNREF(self);
|
|
|
|
CreatureObject const * creature = 0;
|
|
if (!JavaLibrary::getObject(player, creature))
|
|
return 0;
|
|
|
|
PlayerObject const * const playerObject = PlayerCreatureController::getPlayerObject(creature);
|
|
if (!playerObject)
|
|
return 0;
|
|
|
|
JavaStringParam localBookName(bookName);
|
|
std::string bookNameString;
|
|
JavaLibrary::convert(localBookName, bookNameString);
|
|
|
|
std::vector<CollectionsDataTable::CollectionInfoCollection const *> collectionInfo;
|
|
IGNORE_RETURN(playerObject->getCompletedCollectionCountInBook(bookNameString, &collectionInfo));
|
|
if (collectionInfo.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(collectionInfo.size(), JavaLibrary::getClsString());
|
|
for (std::vector<CollectionsDataTable::CollectionInfoCollection const *>::const_iterator iter = collectionInfo.begin(); iter != collectionInfo.end(); ++iter)
|
|
{
|
|
JavaString jval((*iter)->name);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getCompletedCollectionPagesInBook(JNIEnv *env, jobject self, jlong player, jstring bookName)
|
|
{
|
|
UNREF(self);
|
|
|
|
CreatureObject const * creature = 0;
|
|
if (!JavaLibrary::getObject(player, creature))
|
|
return 0;
|
|
|
|
PlayerObject const * const playerObject = PlayerCreatureController::getPlayerObject(creature);
|
|
if (!playerObject)
|
|
return 0;
|
|
|
|
JavaStringParam localBookName(bookName);
|
|
std::string bookNameString;
|
|
JavaLibrary::convert(localBookName, bookNameString);
|
|
|
|
std::vector<CollectionsDataTable::CollectionInfoPage const *> collectionInfo;
|
|
IGNORE_RETURN(playerObject->getCompletedCollectionPageCountInBook(bookNameString, &collectionInfo));
|
|
if (collectionInfo.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(collectionInfo.size(), JavaLibrary::getClsString());
|
|
for (std::vector<CollectionsDataTable::CollectionInfoPage const *>::const_iterator iter = collectionInfo.begin(); iter != collectionInfo.end(); ++iter)
|
|
{
|
|
JavaString jval((*iter)->name);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getCompletedCollectionBooks(JNIEnv *env, jobject self, jlong player)
|
|
{
|
|
UNREF(self);
|
|
|
|
CreatureObject const * creature = 0;
|
|
if (!JavaLibrary::getObject(player, creature))
|
|
return 0;
|
|
|
|
PlayerObject const * const playerObject = PlayerCreatureController::getPlayerObject(creature);
|
|
if (!playerObject)
|
|
return 0;
|
|
|
|
std::vector<CollectionsDataTable::CollectionInfoBook const *> collectionInfo;
|
|
IGNORE_RETURN(playerObject->getCompletedCollectionBookCount(&collectionInfo));
|
|
if (collectionInfo.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(collectionInfo.size(), JavaLibrary::getClsString());
|
|
for (std::vector<CollectionsDataTable::CollectionInfoBook const *>::const_iterator iter = collectionInfo.begin(); iter != collectionInfo.end(); ++iter)
|
|
{
|
|
JavaString jval((*iter)->name);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getCollectionSlotInfo(JNIEnv *env, jobject self, jstring slotName)
|
|
{
|
|
UNREF(self);
|
|
|
|
JavaStringParam localSlotName(slotName);
|
|
std::string slotNameString;
|
|
JavaLibrary::convert(localSlotName, slotNameString);
|
|
|
|
CollectionsDataTable::CollectionInfoSlot const * slot = CollectionsDataTable::getSlotByName(slotNameString);
|
|
if (!slot)
|
|
return 0;
|
|
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(4, JavaLibrary::getClsString());
|
|
setObjectArrayElement(*valueArray, 0, JavaString(slot->collection.page.book.name));
|
|
setObjectArrayElement(*valueArray, 1, JavaString(slot->collection.page.name));
|
|
setObjectArrayElement(*valueArray, 2, JavaString(slot->collection.name));
|
|
setObjectArrayElement(*valueArray, 3, JavaString(slot->music));
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jboolean JNICALL ScriptMethodsCollectionNamespace::isCollectionSlotATitle(JNIEnv *env, jobject self, jstring slotName)
|
|
{
|
|
UNREF(self);
|
|
|
|
JavaStringParam localSlotName(slotName);
|
|
std::string slotNameString;
|
|
JavaLibrary::convert(localSlotName, slotNameString);
|
|
|
|
CollectionsDataTable::CollectionInfoSlot const * const slot = CollectionsDataTable::getSlotByName(slotNameString);
|
|
return (slot && !slot->titles.empty());
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jboolean JNICALL ScriptMethodsCollectionNamespace::isCollectionATitle(JNIEnv *env, jobject self, jstring collectionName)
|
|
{
|
|
UNREF(self);
|
|
|
|
JavaStringParam localCollectionName(collectionName);
|
|
std::string collectionNameString;
|
|
JavaLibrary::convert(localCollectionName, collectionNameString);
|
|
|
|
CollectionsDataTable::CollectionInfoCollection const * const collection = CollectionsDataTable::getCollectionByName(collectionNameString);
|
|
|
|
return (collection && !collection->titles.empty());
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jboolean JNICALL ScriptMethodsCollectionNamespace::isCollectionPageATitle(JNIEnv *env, jobject self, jstring pageName)
|
|
{
|
|
UNREF(self);
|
|
|
|
JavaStringParam localPageName(pageName);
|
|
std::string pageNameString;
|
|
JavaLibrary::convert(localPageName, pageNameString);
|
|
|
|
CollectionsDataTable::CollectionInfoPage const * const page = CollectionsDataTable::getPageByName(pageNameString);
|
|
|
|
return (page && !page->titles.empty());
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getCollectionSlotCategoryInfo(JNIEnv *env, jobject self, jstring slotName)
|
|
{
|
|
UNREF(self);
|
|
|
|
JavaStringParam localSlotName(slotName);
|
|
std::string slotNameString;
|
|
JavaLibrary::convert(localSlotName, slotNameString);
|
|
|
|
CollectionsDataTable::CollectionInfoSlot const * slot = CollectionsDataTable::getSlotByName(slotNameString);
|
|
if (!slot)
|
|
return 0;
|
|
|
|
if (slot->categories.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(slot->categories.size(), JavaLibrary::getClsString());
|
|
for (std::vector<std::string>::const_iterator iter = slot->categories.begin(); iter != slot->categories.end(); ++iter)
|
|
{
|
|
JavaString jval(*iter);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getCollectionSlotPrereqInfo(JNIEnv *env, jobject self, jstring slotName)
|
|
{
|
|
UNREF(self);
|
|
|
|
JavaStringParam localSlotName(slotName);
|
|
std::string slotNameString;
|
|
JavaLibrary::convert(localSlotName, slotNameString);
|
|
|
|
CollectionsDataTable::CollectionInfoSlot const * slot = CollectionsDataTable::getSlotByName(slotNameString);
|
|
if (!slot)
|
|
return 0;
|
|
|
|
if (slot->prereqsPtr.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(slot->prereqsPtr.size(), JavaLibrary::getClsString());
|
|
for (std::vector<CollectionsDataTable::CollectionInfoSlot const *>::const_iterator iter = slot->prereqsPtr.begin(); iter != slot->prereqsPtr.end(); ++iter)
|
|
{
|
|
JavaString jval((*iter)->name);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jstring JNICALL ScriptMethodsCollectionNamespace::getCollectionSlotName(JNIEnv *env, jobject self, jint collectionSlotId)
|
|
{
|
|
UNREF(self);
|
|
|
|
CollectionsDataTable::CollectionInfoSlot const * slot = CollectionsDataTable::getSlotByBeginSlotId(collectionSlotId);
|
|
if (!slot)
|
|
return 0;
|
|
|
|
return JavaString(slot->name).getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getAllCollectionSlotsInCollection(JNIEnv *env, jobject self, jstring collectionName)
|
|
{
|
|
UNREF(self);
|
|
|
|
JavaStringParam localCollectionName(collectionName);
|
|
std::string collectionNameString;
|
|
JavaLibrary::convert(localCollectionName, collectionNameString);
|
|
|
|
std::vector<CollectionsDataTable::CollectionInfoSlot const *> const & slots = CollectionsDataTable::getSlotsInCollection(collectionNameString);
|
|
if (slots.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(slots.size(), JavaLibrary::getClsString());
|
|
for (std::vector<CollectionsDataTable::CollectionInfoSlot const *>::const_iterator iter = slots.begin(); iter != slots.end(); ++iter)
|
|
{
|
|
JavaString jval((*iter)->name);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getAllCollectionSlotsInPage(JNIEnv *env, jobject self, jstring pageName)
|
|
{
|
|
UNREF(self);
|
|
|
|
JavaStringParam localPageName(pageName);
|
|
std::string pageNameString;
|
|
JavaLibrary::convert(localPageName, pageNameString);
|
|
|
|
std::vector<CollectionsDataTable::CollectionInfoSlot const *> const & slots = CollectionsDataTable::getSlotsInPage(pageNameString);
|
|
if (slots.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(slots.size(), JavaLibrary::getClsString());
|
|
for (std::vector<CollectionsDataTable::CollectionInfoSlot const *>::const_iterator iter = slots.begin(); iter != slots.end(); ++iter)
|
|
{
|
|
JavaString jval((*iter)->name);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getAllCollectionsInPage(JNIEnv *env, jobject self, jstring pageName)
|
|
{
|
|
UNREF(self);
|
|
|
|
JavaStringParam localPageName(pageName);
|
|
std::string pageNameString;
|
|
JavaLibrary::convert(localPageName, pageNameString);
|
|
|
|
std::vector<CollectionsDataTable::CollectionInfoCollection const *> const & collections = CollectionsDataTable::getCollectionsInPage(pageNameString);
|
|
if (collections.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(collections.size(), JavaLibrary::getClsString());
|
|
for (std::vector<CollectionsDataTable::CollectionInfoCollection const *>::const_iterator iter = collections.begin(); iter != collections.end(); ++iter)
|
|
{
|
|
JavaString jval((*iter)->name);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getAllCollectionSlotsInBook(JNIEnv *env, jobject self, jstring bookName)
|
|
{
|
|
UNREF(self);
|
|
|
|
JavaStringParam localBookName(bookName);
|
|
std::string bookNameString;
|
|
JavaLibrary::convert(localBookName, bookNameString);
|
|
|
|
std::vector<CollectionsDataTable::CollectionInfoSlot const *> const & slots = CollectionsDataTable::getSlotsInBook(bookNameString);
|
|
if (slots.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(slots.size(), JavaLibrary::getClsString());
|
|
for (std::vector<CollectionsDataTable::CollectionInfoSlot const *>::const_iterator iter = slots.begin(); iter != slots.end(); ++iter)
|
|
{
|
|
JavaString jval((*iter)->name);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getAllCollectionsInBook(JNIEnv *env, jobject self, jstring bookName)
|
|
{
|
|
UNREF(self);
|
|
|
|
JavaStringParam localBookName(bookName);
|
|
std::string bookNameString;
|
|
JavaLibrary::convert(localBookName, bookNameString);
|
|
|
|
std::vector<CollectionsDataTable::CollectionInfoCollection const *> const & collections = CollectionsDataTable::getCollectionsInBook(bookNameString);
|
|
if (collections.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(collections.size(), JavaLibrary::getClsString());
|
|
for (std::vector<CollectionsDataTable::CollectionInfoCollection const *>::const_iterator iter = collections.begin(); iter != collections.end(); ++iter)
|
|
{
|
|
JavaString jval((*iter)->name);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getAllCollectionPagesInBook(JNIEnv *env, jobject self, jstring bookName)
|
|
{
|
|
UNREF(self);
|
|
|
|
JavaStringParam localBookName(bookName);
|
|
std::string bookNameString;
|
|
JavaLibrary::convert(localBookName, bookNameString);
|
|
|
|
std::vector<CollectionsDataTable::CollectionInfoPage const *> const & pages = CollectionsDataTable::getPagesInBook(bookNameString);
|
|
if (pages.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(pages.size(), JavaLibrary::getClsString());
|
|
for (std::vector<CollectionsDataTable::CollectionInfoPage const *>::const_iterator iter = pages.begin(); iter != pages.end(); ++iter)
|
|
{
|
|
JavaString jval((*iter)->name);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getAllCollectionBooks(JNIEnv *env, jobject self)
|
|
{
|
|
UNREF(self);
|
|
|
|
std::vector<CollectionsDataTable::CollectionInfoBook const *> const & books = CollectionsDataTable::getAllBooks();
|
|
if (books.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(books.size(), JavaLibrary::getClsString());
|
|
for (std::vector<CollectionsDataTable::CollectionInfoBook const *>::const_iterator iter = books.begin(); iter != books.end(); ++iter)
|
|
{
|
|
JavaString jval((*iter)->name);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getAllCollectionSlotsInCategory(JNIEnv *env, jobject self, jstring categoryName)
|
|
{
|
|
UNREF(self);
|
|
|
|
JavaStringParam localCategoryName(categoryName);
|
|
std::string categoryNameString;
|
|
JavaLibrary::convert(localCategoryName, categoryNameString);
|
|
|
|
std::vector<CollectionsDataTable::CollectionInfoSlot const *> const & slots = CollectionsDataTable::getSlotsInCategory(categoryNameString);
|
|
if (slots.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(slots.size(), JavaLibrary::getClsString());
|
|
for (std::vector<CollectionsDataTable::CollectionInfoSlot const *>::const_iterator iter = slots.begin(); iter != slots.end(); ++iter)
|
|
{
|
|
JavaString jval((*iter)->name);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getAllCollectionSlotsInCategoryInCollection(JNIEnv *env, jobject self, jstring collectionName, jstring categoryName)
|
|
{
|
|
UNREF(self);
|
|
|
|
JavaStringParam localCollectionName(collectionName);
|
|
std::string collectionNameString;
|
|
JavaLibrary::convert(localCollectionName, collectionNameString);
|
|
|
|
JavaStringParam localCategoryName(categoryName);
|
|
std::string categoryNameString;
|
|
JavaLibrary::convert(localCategoryName, categoryNameString);
|
|
|
|
std::vector<CollectionsDataTable::CollectionInfoSlot const *> const & slots = CollectionsDataTable::getSlotsInCategoryByCollection(collectionNameString, categoryNameString);
|
|
if (slots.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(slots.size(), JavaLibrary::getClsString());
|
|
for (std::vector<CollectionsDataTable::CollectionInfoSlot const *>::const_iterator iter = slots.begin(); iter != slots.end(); ++iter)
|
|
{
|
|
JavaString jval((*iter)->name);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getAllCollectionSlotsInCategoryInPage(JNIEnv *env, jobject self, jstring pageName, jstring categoryName)
|
|
{
|
|
UNREF(self);
|
|
|
|
JavaStringParam localPageName(pageName);
|
|
std::string pageNameString;
|
|
JavaLibrary::convert(localPageName, pageNameString);
|
|
|
|
JavaStringParam localCategoryName(categoryName);
|
|
std::string categoryNameString;
|
|
JavaLibrary::convert(localCategoryName, categoryNameString);
|
|
|
|
std::vector<CollectionsDataTable::CollectionInfoSlot const *> const & slots = CollectionsDataTable::getSlotsInCategoryByPage(pageNameString, categoryNameString);
|
|
if (slots.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(slots.size(), JavaLibrary::getClsString());
|
|
for (std::vector<CollectionsDataTable::CollectionInfoSlot const *>::const_iterator iter = slots.begin(); iter != slots.end(); ++iter)
|
|
{
|
|
JavaString jval((*iter)->name);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getAllCollectionSlotsInCategoryInBook(JNIEnv *env, jobject self, jstring bookName, jstring categoryName)
|
|
{
|
|
UNREF(self);
|
|
|
|
JavaStringParam localBookName(bookName);
|
|
std::string bookNameString;
|
|
JavaLibrary::convert(localBookName, bookNameString);
|
|
|
|
JavaStringParam localCategoryName(categoryName);
|
|
std::string categoryNameString;
|
|
JavaLibrary::convert(localCategoryName, categoryNameString);
|
|
|
|
std::vector<CollectionsDataTable::CollectionInfoSlot const *> const & slots = CollectionsDataTable::getSlotsInCategoryByBook(bookNameString, categoryNameString);
|
|
if (slots.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(slots.size(), JavaLibrary::getClsString());
|
|
for (std::vector<CollectionsDataTable::CollectionInfoSlot const *>::const_iterator iter = slots.begin(); iter != slots.end(); ++iter)
|
|
{
|
|
JavaString jval((*iter)->name);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getAllCollectionSlotCategoriesInCollection(JNIEnv *env, jobject self, jstring collectionName)
|
|
{
|
|
UNREF(self);
|
|
|
|
JavaStringParam localCollectionName(collectionName);
|
|
std::string collectionNameString;
|
|
JavaLibrary::convert(localCollectionName, collectionNameString);
|
|
|
|
std::set<std::string> const & categories = CollectionsDataTable::getAllSlotCategoriesInCollection(collectionNameString);
|
|
if (categories.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(categories.size(), JavaLibrary::getClsString());
|
|
for (std::set<std::string>::const_iterator iter = categories.begin(); iter != categories.end(); ++iter)
|
|
{
|
|
JavaString jval(*iter);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getAllCollectionSlotCategoriesInPage(JNIEnv *env, jobject self, jstring pageName)
|
|
{
|
|
UNREF(self);
|
|
|
|
JavaStringParam localPageName(pageName);
|
|
std::string pageNameString;
|
|
JavaLibrary::convert(localPageName, pageNameString);
|
|
|
|
std::set<std::string> const & categories = CollectionsDataTable::getAllSlotCategoriesInPage(pageNameString);
|
|
if (categories.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(categories.size(), JavaLibrary::getClsString());
|
|
for (std::set<std::string>::const_iterator iter = categories.begin(); iter != categories.end(); ++iter)
|
|
{
|
|
JavaString jval(*iter);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getAllCollectionSlotCategoriesInBook(JNIEnv *env, jobject self, jstring bookName)
|
|
{
|
|
UNREF(self);
|
|
|
|
JavaStringParam localBookName(bookName);
|
|
std::string bookNameString;
|
|
JavaLibrary::convert(localBookName, bookNameString);
|
|
|
|
std::set<std::string> const & categories = CollectionsDataTable::getAllSlotCategoriesInBook(bookNameString);
|
|
if (categories.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(categories.size(), JavaLibrary::getClsString());
|
|
for (std::set<std::string>::const_iterator iter = categories.begin(); iter != categories.end(); ++iter)
|
|
{
|
|
JavaString jval(*iter);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
jobjectArray JNICALL ScriptMethodsCollectionNamespace::getAllCollectionSlotCategories(JNIEnv *env, jobject self)
|
|
{
|
|
UNREF(self);
|
|
|
|
std::set<std::string> const & categories = CollectionsDataTable::getAllSlotCategories();
|
|
if (categories.empty())
|
|
return 0;
|
|
|
|
int i = 0;
|
|
LocalObjectArrayRefPtr valueArray = createNewObjectArray(categories.size(), JavaLibrary::getClsString());
|
|
for (std::set<std::string>::const_iterator iter = categories.begin(); iter != categories.end(); ++iter)
|
|
{
|
|
JavaString jval(*iter);
|
|
setObjectArrayElement(*valueArray, i++, jval);
|
|
}
|
|
|
|
return valueArray->getReturnValue();
|
|
}
|
|
|
|
//========================================================================
|