void ConfigSharedPathfinding::install ()
{
	KEY_BOOL(autoCreateBuildingPathNodes,false);
	KEY_BOOL(useCityRegions,true);
	KEY_BOOL(jitterCityWaypoints,false);
	KEY_BOOL(enableDirtyBoxes,false);
	KEY_BOOL(enablePathScrubber,false);
}
void ConfigSharedTerrain::install ()
{
	KEY_INT (maximumNumberOfChunksAllowed, 40 * 1024);
	KEY_BOOL (disableGetHeight, false);
	KEY_BOOL (debugReportInstall, false);
	KEY_BOOL (debugReportLogPrint, false);
	KEY_BOOL (disableFloraCaching, false);
	KEY_FLOAT (maximumValidHeightInMeters, 16000.0f);

	DEBUG_REPORT_LOG_PRINT (ms_debugReportInstall, ("ConfigSharedTerrain::install\n"));
}
void ConfigPlanetServer::install(void)
{

	ConfigServerUtility::install();
	ExitChain::add(&remove, "ConfigPlanetServer::remove");
	
	data = new ConfigPlanetServer::Data;

	KEY_STRING (centralServerAddress, "swo-dev1.station.sony.com");
	KEY_INT    (centralServerPort, 44455);
	KEY_STRING (sceneID, "default");
	KEY_INT    (gameServicePort, 0);
	KEY_INT    (taskManagerPort, 60001);
	KEY_INT    (watcherServicePort, 60002);
	KEY_INT    (maxWatcherConnections, 1);
	KEY_INT    (watcherOverflowLimit, 1024 * 1024 * 8); // 8MB overflow for CS PlanetWatcher tool
	KEY_BOOL   (logObjectLoading, false);
	KEY_INT    (maxWatcherUpdatesPerMessage,500); // Max object updates to send to the watcher in a single message
	KEY_STRING (gameServiceBindInterface, "");
	KEY_STRING (watcherServiceBindInterface, "");
	KEY_BOOL   (loadWholePlanet, false);
	KEY_BOOL   (loadWholePlanetMultiserver, false);
	KEY_BOOL   (logPreloading, false);
	KEY_INT    (numTutorialServers, 1);
	KEY_INT    (maxInterestRadius, Node::getNodeSize());
	KEY_INT    (populationCountTime, 60); // seconds
	KEY_BOOL   (logChunkLoading, false);
	KEY_INT    (preloadBailoutTime, 0); // seconds
	KEY_STRING (preloadDataTableName, "datatables/planet_server/preload_list.iff");
	KEY_INT    (authTransferSanityCheckTimeMs, 15000);
	KEY_INT    (gameServerRestartDelayTimeSeconds, 60);
	KEY_BOOL   (enableContentsChecking, false);
	KEY_INT    (maxGameServers, 0);
	KEY_BOOL   (enableStartupCreateProxies, true);
	KEY_BOOL   (requestDbSaveOnGameServerCrash, true);
	KEY_BOOL   (gameServerProfiling, false);
	KEY_BOOL   (gameServerDebugging, false);
	KEY_INT    (gameServerDebuggingPortBase, 0);
	KEY_INT    (maxTimeToWaitForGameServerStartSeconds, 5*60); // seconds
}
void ConfigServerDatabase::install(void)
{
	ExitChain::add(ConfigServerDatabase::remove,"ConfigServerDatabase::remove");

	ConfigServerUtility::install();
	data = &staticData;

	KEY_INT     (objvarNameCleanupTime, 0);
	KEY_INT     (orphanedObjectCleanupTime, 0);
	KEY_INT     (marketAttributesCleanupTime, 0);
	KEY_INT     (messagesCleanupTime, 0);
	KEY_INT     (brokenObjectCleanupTime, 0);
	KEY_INT     (vendorObjectCleanupTime, 0);
	KEY_STRING  (customSQLFilename,"");
	KEY_BOOL    (enableFixBadCells, false);
	KEY_STRING  (objectTemplateListUpdateFilename,"");

	KEY_STRING  (DSN,"gameserver");
	KEY_STRING  (alternateDSN,"");
	KEY_STRING  (databaseUID,"gameserver");
	KEY_STRING  (databasePWD,"gameserver");
	KEY_STRING  (databaseProtocol,"DEFAULT");
	KEY_STRING  (centralServerAddress, "localhost");
	KEY_INT     (centralServerPort, 44451);
	KEY_STRING  (commoditiesServerAddress, "localhost");
	KEY_INT     (commoditiesServerPort, 44457);	//todo: confirm that this is a good port MSH
	KEY_INT     (taskManagerPort, 60001);
	KEY_INT     (expectedDBVersion, 270);
	KEY_BOOL    (correctDBVersionRequired,true);
	KEY_INT     (saveFrequencyLimit,10);
	KEY_STRING  (schemaOwner, "");
	KEY_STRING  (goldSchemaOwner, "");
	KEY_FLOAT   (uniqueMessageCacheTimeSec, 30.0f);
	KEY_INT     (loaderThreads,2);
	KEY_INT     (persisterThreads,1);
	KEY_INT     (newCharacterThreads,1);
	KEY_INT     (characterImmediateDeleteMinutes,120);
	KEY_BOOL    (logObjectLoading, false);
	KEY_BOOL    (enableQueryProfile, false);
	KEY_BOOL    (verboseQueryMode, false);
	KEY_BOOL    (logWorkerThreads, false);
	KEY_STRING  (gameServiceBindInterface, "");
	KEY_BOOL    (reportSaveTimes, false);
	KEY_BOOL    (shouldSleep, true);
	KEY_BOOL    (enableLoadLocks, true);
	KEY_INT     (databaseReconnectTime, 0);
	KEY_BOOL    (logChunkLoading,false);
	KEY_BOOL    (useMemoryManagerForOCI,true);
	KEY_INT     (maxCharactersPerLoadRequest,10);
	KEY_INT     (maxChunksPerLoadRequest,200);
	KEY_FLOAT   (maxLoadStartDelay,300.0f);
	KEY_INT     (maxErrorCountBeforeDisconnect,5);
	KEY_INT     (maxErrorCountBeforeBailout,15);
	KEY_INT     (errorSleepTime,5000);
	KEY_INT     (disconnectSleepTime,30000);
	KEY_INT     (saveAtModulus,-1);
	KEY_INT     (saveAtDivisor,10);
	KEY_INT     (backloggedQueueSize,50);
	KEY_INT     (backloggedRecoveryQueueSize,25);
	KEY_INT     (maxTimewarp,data->saveFrequencyLimit * 2 < 600 ? 600 : data->saveFrequencyLimit * 2);
	KEY_BOOL    (enableObjvarPacking, true);
	KEY_INT     (prefetchNumRows,0);
	KEY_INT     (prefetchMemory,0);
	KEY_INT     (defaultFetchBatchSize,1000);
	KEY_INT     (queryReportingRate,60);
	KEY_INT     (enableDatabaseErrorLogging, 0);
	KEY_INT     (defaultMessageBulkBindSize, 1000);
	KEY_BOOL    (enableGoldDatabase, false);
	KEY_STRING  (maxGoldNetworkId, "10000000");
	KEY_FLOAT   (defaultQueueUpdateTimeLimit, 0.25f);
	KEY_BOOL    (enableDataCleanup, false);
	KEY_INT     (defaultLazyDeleteBulkBindSize, 100);
	KEY_INT     (defaultLazyDeleteSleepTime, 1000);
	KEY_INT     (writeDelay, 0);
	KEY_BOOL    (delayUnloadIfObjectStillHasData, true);
	KEY_FLOAT   (experienceConsolidationTime, 0.0f);
	KEY_INT     (maxLoaderFinishedTasks, 100);
	KEY_FLOAT   (reportLongFrameTime, 1.0f);
	KEY_BOOL    (enableVerboseMessageLogging, false);
	KEY_BOOL    (profilerExpandAll, true);
	KEY_INT     (profilerDisplayPercentageMinimum, 0);
	KEY_BOOL    (fatalOnDataError, false);
	KEY_INT     (maxUnackedLoadCount, 1000000000);  // by default, set to an "unlimited" number, and use maxUnackedLoadCountPerServer as the cap
	KEY_INT     (maxUnackedLoadCountPerServer, 2);
	KEY_INT     (auctionLocationLoadBatchSize, 100);
	KEY_INT     (auctionLoadBatchSize, 100);
	KEY_INT     (auctionAttributeLoadBatchSize, 100);
	KEY_INT     (auctionBidLoadBatchSize, 100);
	KEY_INT     (oldestUnackedLoadAlertThresholdSeconds, 10*60); // seconds
}