Beispiel #1
0
void LLEnvManagerNew::onRegionSettingsResponse(const LLSD& content)
{
	// If the message was valid, grab the UUID from it and save it for next outbound update message.
	mLastReceivedID = content[0]["messageID"].asUUID();

	// Refresh cached region settings.
	LL_DEBUGS("Windlight") << "Caching region environment settings: " << content << LL_ENDL;
	F32 sun_hour = 0; // *TODO
	LLEnvironmentSettings new_settings(content[1], content[2], content[3], sun_hour);
	mCachedRegionPrefs = new_settings;

	// Load region sky presets.
	LLWLParamManager::instance()->refreshRegionPresets();

	// Use the region settings if parcel settings didnt override it already -KC
	if (KCWindlightInterface::instance().haveParcelOverride(new_settings))
	{
		// If using server settings, update managers.
		if (getUseRegionSettings())
		{
			updateManagersFromPrefs(mInterpNextChangeMessage);
		}
		//bit of a hacky override since I've repurposed many of the settings and methods here -KC
		else if (gSavedSettings.getBOOL("UseEnvironmentFromRegionAlways"))
		{
			setUseRegionSettings(true, mInterpNextChangeMessage);
		}
	}

	// Let interested parties know about the region settings update.
	mRegionSettingsChangeSignal();

	// reset
	mInterpNextChangeMessage = false;
}
Beispiel #2
0
void LLEnvManagerNew::onRegionSettingsResponse(const LLSD& content)
{
	// If the message was valid, grab the UUID from it and save it for next outbound update message.
	mLastReceivedID = content[0]["messageID"].asUUID();

	// Refresh cached region settings.
	LL_DEBUGS("Windlight") << "Caching region environment settings: " << content << LL_ENDL;
	F32 sun_hour = 0; // *TODO
	LLEnvironmentSettings new_settings(content[1], content[2], content[3], sun_hour);
	mCachedRegionPrefs = new_settings;

	// Load region sky presets.
	LLWLParamManager::instance().refreshRegionPresets();

	// Use the region settings if parcel settings didnt override it already -KC
	if (KCWindlightInterface::instance().haveParcelOverride(new_settings))
	{
		// If using server settings, update managers.
//      	if (getUseRegionSettings())
// [RLVa:KB] - Checked: 2011-08-29 (RLVa-1.4.1a) | Added: RLVa-1.4.1a
		if ( (getUseRegionSettings()) && (LLWLParamManager::getInstance()->mAnimator.getIsRunning()) )
// [/RLVa:KB]
		{
			updateManagersFromPrefs(mInterpNextChangeMessage);
		}
		//bit of a hacky override since I've repurposed many of the settings and methods here -KC
		//NOTE* It might not be a good idea to do this if under RLV_BHVR_SETENV -KC
		else if (gSavedSettings.getBOOL("UseEnvironmentFromRegionAlways") 
		 && !(rlv_handler_t::isEnabled() && gRlvHandler.hasBehaviour(RLV_BHVR_SETENV)))
		{
			setUseRegionSettings(true, mInterpNextChangeMessage);
		}
	}

	// Let interested parties know about the region settings update.
	mRegionSettingsChangeSignal();

	// reset
	mInterpNextChangeMessage = false;
}