From 77176f349508dca430821ed194754581f47d43c5 Mon Sep 17 00:00:00 2001 From: Cekis Date: Mon, 21 Mar 2022 15:30:01 -0400 Subject: [PATCH] Server account lot size now a config value. --- .../serverGame/src/shared/core/ConfigServerGame.cpp | 2 ++ .../serverGame/src/shared/core/ConfigServerGame.h | 11 +++++++++++ .../serverGame/src/shared/object/CreatureObject.cpp | 7 +++---- .../serverGame/src/shared/object/CreatureObject.h | 3 +++ .../src/shared/ScriptMethodsPlayerAccount.cpp | 11 +++++++++++ 5 files changed, 30 insertions(+), 4 deletions(-) diff --git a/engine/server/library/serverGame/src/shared/core/ConfigServerGame.cpp b/engine/server/library/serverGame/src/shared/core/ConfigServerGame.cpp index 219b08f6..6fcb2e2b 100755 --- a/engine/server/library/serverGame/src/shared/core/ConfigServerGame.cpp +++ b/engine/server/library/serverGame/src/shared/core/ConfigServerGame.cpp @@ -491,6 +491,8 @@ void ConfigServerGame::install(void) KEY_STRING (serverLoadLevel, "heavy"); + KEY_INT (maxHousingLots, 10); + if (data->baseDecayRate <= 1.0f) data->baseDecayRate = 1.0f; diff --git a/engine/server/library/serverGame/src/shared/core/ConfigServerGame.h b/engine/server/library/serverGame/src/shared/core/ConfigServerGame.h index 80094104..612fc936 100755 --- a/engine/server/library/serverGame/src/shared/core/ConfigServerGame.h +++ b/engine/server/library/serverGame/src/shared/core/ConfigServerGame.h @@ -575,6 +575,8 @@ class ConfigServerGame bool useOldSuidGenerator; const char * serverLoadLevel; + + int maxHousingLots; }; private: @@ -1061,6 +1063,8 @@ class ConfigServerGame static bool getUseOldSuidGenerator(); static const char * getServerLoadLevel(); + + static int getMaxHousingLots(); }; //----------------------------------------------------------------------- @@ -3702,4 +3706,11 @@ inline const char *ConfigServerGame::getServerLoadLevel() return data->serverLoadLevel; } +//----------------------------------------------------------------------- + +inline int ConfigServerGame::getMaxHousingLots(void) +{ + return data->maxHousingLots; +} + #endif diff --git a/engine/server/library/serverGame/src/shared/object/CreatureObject.cpp b/engine/server/library/serverGame/src/shared/object/CreatureObject.cpp index aaf8affd..ab0df583 100755 --- a/engine/server/library/serverGame/src/shared/object/CreatureObject.cpp +++ b/engine/server/library/serverGame/src/shared/object/CreatureObject.cpp @@ -193,9 +193,6 @@ const SharedObjectTemplate * CreatureObject::m_defaultSharedTemplate = nullptr; //---------------------------------------------------------------------- -// The max number of lots available to a player. This value is also defined in base_class.java -static const int HOUSING_MAX_LOTS = 10; - // Slot names static const ConstCharCrcLowerString DATAPAD_SLOT_NAME("datapad"); @@ -869,6 +866,8 @@ CreatureObject::CreatureObject(const ServerCreatureObjectTemplate* newTemplate) IGNORE_RETURN(g_creatureList.insert(this)); ObjectTracker::addCreature(); + + m_maxHousingLots = ConfigServerGame::getMaxHousingLots(); } //----------------------------------------------------------------------- @@ -11915,7 +11914,7 @@ void CreatureObject::runMissionCreationQueue() int CreatureObject::getMaxNumberOfLots() const { - return HOUSING_MAX_LOTS; + return m_maxHousingLots; } //---------------------------------------------------------------------- diff --git a/engine/server/library/serverGame/src/shared/object/CreatureObject.h b/engine/server/library/serverGame/src/shared/object/CreatureObject.h index c1161c70..ab06cefd 100755 --- a/engine/server/library/serverGame/src/shared/object/CreatureObject.h +++ b/engine/server/library/serverGame/src/shared/object/CreatureObject.h @@ -1013,6 +1013,9 @@ private: Archive::AutoDeltaVector m_wearableAppearanceData; // Vector for our appearance items. Archive::AutoDeltaVariable m_decoyOrigin; // The OID of the player whom we copied for this decoy creature. + + // The max number of lots available to a player. This value is also defined in base_class.java + int m_maxHousingLots; }; //---------------------------------------------------------------------- diff --git a/engine/server/library/serverScript/src/shared/ScriptMethodsPlayerAccount.cpp b/engine/server/library/serverScript/src/shared/ScriptMethodsPlayerAccount.cpp index 48fa7ad1..6fe97302 100755 --- a/engine/server/library/serverScript/src/shared/ScriptMethodsPlayerAccount.cpp +++ b/engine/server/library/serverScript/src/shared/ScriptMethodsPlayerAccount.cpp @@ -55,6 +55,7 @@ namespace ScriptMethodsPlayerAccountNamespace jboolean JNICALL isIgnoring(JNIEnv *env, jobject self, jlong player, jstring who); jboolean JNICALL adjustLotCount(JNIEnv *env, jobject self, jlong player, jint adjustment); jint JNICALL getAccountNumLots(JNIEnv *env, jobject self, jlong player); + jint JNICALL getMaxHousingLots(JNIEnv *env, jobject self); jint JNICALL getGameFeatureBits(JNIEnv *env, jobject self, jlong player); jint JNICALL getSubscriptionFeatureBits(JNIEnv *env, jobject self, jlong player); jboolean JNICALL isUsingAdminLogin(JNIEnv *env, jobject self, jlong player); @@ -91,6 +92,7 @@ const JNINativeMethod NATIVES[] = { JF("_isIgnoring", "(JLjava/lang/String;)Z", isIgnoring), JF("_adjustLotCount", "(JI)Z", adjustLotCount), JF("_getAccountNumLots", "(J)I", getAccountNumLots), + JF("_getMaxHousingLots", "()I", getMaxHousingLots), JF("_getGameFeatureBits", "(J)I", getGameFeatureBits), JF("_getSubscriptionFeatureBits", "(J)I", getSubscriptionFeatureBits), JF("_isUsingAdminLogin", "(J)Z", isUsingAdminLogin), @@ -199,6 +201,15 @@ jint JNICALL ScriptMethodsPlayerAccountNamespace::getAccountNumLots(JNIEnv *env, // ---------------------------------------------------------------------- +jint JNICALL ScriptMethodsPlayerAccountNamespace::getMaxHousingLots(JNIEnv *env, jobject self) +{ + UNREF(env); + UNREF(self); + return ConfigServerGame::getMaxHousingLots(); +} + +// ---------------------------------------------------------------------- + jint JNICALL ScriptMethodsPlayerAccountNamespace::getGameFeatureBits(JNIEnv *env, jobject self, jlong player) { CreatureObject *playerObject = 0;