Merge branch 'master' of https://vcs.firestormviewer.org/phoenix-firestorm
commit
3a918b05c7
|
|
@ -840,7 +840,7 @@
|
|||
<key>hash</key>
|
||||
<string>05bdafd8e9f32fc6763862ada4b5c4bc</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/dullahan-1.7.0.202005300110_81.3.10_gb223419_chromium-81.0.4044.138-linux64-201502309.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/dullahan-1.7.0.202005300110_81.3.10_gb223419_chromium-81.0.4044.138-linux64-201502309.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -850,9 +850,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>aa4faf9ef9057362d63f8d57092506b3</string>
|
||||
<string>579253178199688a84e9c4f11d6dc3a5</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/60902/572301/dullahan-1.7.0.202005311828_81.3.10_gb223419_chromium-81.0.4044.138-windows-543086.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/dullahan-1.7.0.202007182328_81.3.10_gb223419_chromium-81.0.4044.138-windows-202002136.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
|
|
@ -862,9 +862,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>6e29ea2ccdad80dcf1b5dc974932c1f6</string>
|
||||
<string>8a00268cfd5fce2477420fe2ff2a56e5</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/60901/572302/dullahan-1.7.0.202005311828_81.3.10_gb223419_chromium-81.0.4044.138-windows64-543086.tar.bz2</string>
|
||||
<string>http://3p.firestormviewer.org/dullahan-1.7.0.202007182328_81.3.10_gb223419_chromium-81.0.4044.138-windows64-202002125.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
|
|
|
|||
|
|
@ -319,7 +319,7 @@ void LLScrollListText::draw(const LLColor4& color, const LLColor4& highlight_col
|
|||
switch(mFontAlignment)
|
||||
{
|
||||
case LLFontGL::LEFT:
|
||||
start_x = 5.f;//0.f; // <FS:Ansariel> Add some padding pixels for better readability
|
||||
start_x = 0.f;
|
||||
break;
|
||||
case LLFontGL::RIGHT:
|
||||
start_x = (F32)getWidth();
|
||||
|
|
|
|||
|
|
@ -540,11 +540,7 @@ void MediaPluginCEF::receiveMessage(const char* message_string)
|
|||
settings.flip_pixels_y = true;
|
||||
settings.frame_rate = 60;
|
||||
|
||||
// <FS:ND> With the latest CEF this does more worse than good. It will allow the viewer to control the audio level (apparently); But it will also break a lot of sites (among then twitch, netflix, spotify).
|
||||
// Right now with the choice between lots of broken sites or volumes for me it's rather the sites being usable.
|
||||
// settings.force_wave_audio = true;
|
||||
settings.force_wave_audio = false;
|
||||
// </FS:ND>
|
||||
settings.force_wave_audio = true;
|
||||
|
||||
settings.initial_height = 1024;
|
||||
settings.initial_width = 1024;
|
||||
|
|
@ -958,7 +954,12 @@ void MediaPluginCEF::checkEditState()
|
|||
|
||||
void MediaPluginCEF::setVolume()
|
||||
{
|
||||
//mVolumeCatcher.setVolume(mCurVolume);
|
||||
#ifdef LL_WINDOWS
|
||||
mCEFLib->setVolume(mCurVolume);
|
||||
#else
|
||||
mVolumeCatcher.setVolume(mCurVolume);
|
||||
#endif
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
|||
|
|
@ -2371,6 +2371,10 @@ elseif (DARWIN)
|
|||
set_target_properties(${VIEWER_BINARY_NAME}
|
||||
PROPERTIES
|
||||
LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Xlinker -dead_strip -Xlinker -map -Xlinker ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_BINARY_NAME}.MAP"
|
||||
#<FS:TS> Force the SDK version in the linked executable to be 10.12. This will fool
|
||||
# macOS into using the pre-Mojave display system, avoiding the blurry display that
|
||||
# otherwise occurs when upscaling the viewer to Retina resolution levels.
|
||||
LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Xlinker -platform_version -Xlinker macos -Xlinker ${CMAKE_OSX_DEPLOYMENT_TARGET} -Xlinker 10.12"
|
||||
)
|
||||
else (WINDOWS)
|
||||
# Linux
|
||||
|
|
|
|||
|
|
@ -82,5 +82,7 @@
|
|||
<string>${MACOSX_BUNDLE_NSPRINCIPAL_CLASS}</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>${MACOSX_BUNDLE_NSMAIN_NIB_FILE}</string>
|
||||
</dict>
|
||||
<key>NSHighResolutionCapable</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
6.4.5
|
||||
6.4.6
|
||||
|
|
|
|||
|
|
@ -25377,7 +25377,7 @@ Change of this parameter will affect the layout of buttons in notification toast
|
|||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>FSRestrictMaxTextureSize</key>
|
||||
<map>
|
||||
|
|
@ -25443,7 +25443,7 @@ Change of this parameter will affect the layout of buttons in notification toast
|
|||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
</map>
|
||||
</llsd>
|
||||
|
|
|
|||
|
|
@ -11,6 +11,17 @@
|
|||
<key>Value</key>
|
||||
<real>0.0</real>
|
||||
</map>
|
||||
<key>AvatarHoverOffsetStepSize</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Step-size for the zoffset_up and zoffset_down command line commands to change avatar Z position.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>0.05</real>
|
||||
</map>
|
||||
<key>RLVaLoginLastLocation</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
|
|||
|
|
@ -807,12 +807,12 @@ bool cmd_line_chat(const std::string& revised_text, EChatType type, bool from_ge
|
|||
}
|
||||
else if (command == "/zoffset_up")
|
||||
{
|
||||
gSavedPerAccountSettings.setF32("AvatarHoverOffsetZ", gSavedPerAccountSettings.getF32("AvatarHoverOffsetZ") + 0.05f);
|
||||
gSavedPerAccountSettings.setF32("AvatarHoverOffsetZ", gSavedPerAccountSettings.getF32("AvatarHoverOffsetZ") + gSavedPerAccountSettings.getF32("AvatarHoverOffsetStepSize"));
|
||||
return false;
|
||||
}
|
||||
else if (command == "/zoffset_down")
|
||||
{
|
||||
gSavedPerAccountSettings.setF32("AvatarHoverOffsetZ", gSavedPerAccountSettings.getF32("AvatarHoverOffsetZ") - 0.05f);
|
||||
gSavedPerAccountSettings.setF32("AvatarHoverOffsetZ", gSavedPerAccountSettings.getF32("AvatarHoverOffsetZ") - gSavedPerAccountSettings.getF32("AvatarHoverOffsetStepSize"));
|
||||
return false;
|
||||
}
|
||||
else if (command == "/zoffset_reset")
|
||||
|
|
|
|||
|
|
@ -1347,41 +1347,41 @@ void LLIMProcessing::processNewMessage(LLUUID from_id,
|
|||
}
|
||||
else // IM_TASK_INVENTORY_OFFERED
|
||||
{
|
||||
if (offline == IM_OFFLINE && session_id.isNull() && aux_id.notNull() && binary_bucket_size > sizeof(S8)* 5)
|
||||
if (sizeof(S8) == binary_bucket_size)
|
||||
{
|
||||
// cap received offline message
|
||||
std::string str_bucket = ll_safe_string((char*)binary_bucket, binary_bucket_size);
|
||||
typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
|
||||
boost::char_separator<char> sep("|", "", boost::keep_empty_tokens);
|
||||
tokenizer tokens(str_bucket, sep);
|
||||
tokenizer::iterator iter = tokens.begin();
|
||||
|
||||
info->mType = (LLAssetType::EType)(atoi((*(iter++)).c_str()));
|
||||
// Note There is more elements in 'tokens' ...
|
||||
|
||||
info->mObjectID = LLUUID::null;
|
||||
info->mFromObject = TRUE;
|
||||
info->mType = (LLAssetType::EType) binary_bucket[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
if (sizeof(S8) != binary_bucket_size)
|
||||
{
|
||||
LL_WARNS("Messaging") << "Malformed inventory offer from object" << LL_ENDL;
|
||||
delete info;
|
||||
break;
|
||||
}
|
||||
info->mType = (LLAssetType::EType) binary_bucket[0];
|
||||
info->mObjectID = LLUUID::null;
|
||||
info->mFromObject = TRUE;
|
||||
/*RIDER*/ // The previous version of the protocol returned the wrong binary bucket... we
|
||||
// still might be able to figure out the type... even though the offer is not retrievable.
|
||||
|
||||
// Should be safe to remove once DRTSIM-451 fully deploys
|
||||
std::string str_bucket(reinterpret_cast<char *>(binary_bucket));
|
||||
std::string str_type(str_bucket.substr(0, str_bucket.find('|')));
|
||||
|
||||
std::stringstream type_convert(str_type);
|
||||
|
||||
S32 type;
|
||||
type_convert >> type;
|
||||
|
||||
// We could try AT_UNKNOWN which would be more accurate, but that causes an auto decline
|
||||
info->mType = static_cast<LLAssetType::EType>(type);
|
||||
// Don't break in the case of a bad binary bucket. Go ahead and show the
|
||||
// accept/decline popup even though it will not do anything.
|
||||
LL_WARNS("Messaging") << "Malformed inventory offer from object, type might be " << info->mType << LL_ENDL;
|
||||
}
|
||||
info->mObjectID = LLUUID::null;
|
||||
info->mFromObject = TRUE;
|
||||
}
|
||||
|
||||
info->mIM = dialog;
|
||||
info->mFromID = from_id;
|
||||
info->mFromGroup = from_group;
|
||||
info->mTransactionID = session_id;
|
||||
info->mFolderID = gInventory.findCategoryUUIDForType(LLFolderType::assetTypeToFolderType(info->mType));
|
||||
|
||||
info->mTransactionID = session_id.notNull() ? session_id : aux_id;
|
||||
|
||||
info->mFromName = name;
|
||||
info->mDesc = message;
|
||||
info->mHost = sender;
|
||||
|
|
@ -2232,7 +2232,7 @@ void LLIMProcessing::requestOfflineMessagesCoro(std::string url)
|
|||
return;
|
||||
}
|
||||
|
||||
if (gAgent.getRegion() == NULL)
|
||||
if (!gAgent.getRegion())
|
||||
{
|
||||
LL_WARNS("Messaging") << "Region null while attempting to load messages." << LL_ENDL;
|
||||
return;
|
||||
|
|
@ -2240,8 +2240,6 @@ void LLIMProcessing::requestOfflineMessagesCoro(std::string url)
|
|||
|
||||
LL_INFOS("Messaging") << "Processing offline messages." << LL_ENDL;
|
||||
|
||||
std::vector<U8> data;
|
||||
S32 binary_bucket_size = 0;
|
||||
LLHost sender = gAgent.getRegionHost();
|
||||
|
||||
LLSD::array_iterator i = messages.beginArray();
|
||||
|
|
@ -2250,12 +2248,30 @@ void LLIMProcessing::requestOfflineMessagesCoro(std::string url)
|
|||
{
|
||||
const LLSD &message_data(*i);
|
||||
|
||||
LLVector3 position(message_data["local_x"].asReal(), message_data["local_y"].asReal(), message_data["local_z"].asReal());
|
||||
data = message_data["binary_bucket"].asBinary();
|
||||
binary_bucket_size = data.size(); // message_data["count"] always 0
|
||||
U32 parent_estate_id = message_data.has("parent_estate_id") ? message_data["parent_estate_id"].asInteger() : 1; // 1 - IMMainland
|
||||
/* RIDER: Many fields in this message are using a '_' rather than the standard '-'. This
|
||||
* should be changed but would require tight coordination with the simulator.
|
||||
*/
|
||||
LLVector3 position;
|
||||
if (message_data.has("position"))
|
||||
{
|
||||
position.setValue(message_data["position"]);
|
||||
}
|
||||
else
|
||||
{
|
||||
position.set(message_data["local_x"].asReal(), message_data["local_y"].asReal(), message_data["local_z"].asReal());
|
||||
}
|
||||
|
||||
// Todo: once dirtsim-369 releases, remove one of the int/str options
|
||||
std::vector<U8> bin_bucket;
|
||||
if (message_data.has("binary_bucket"))
|
||||
{
|
||||
bin_bucket = message_data["binary_bucket"].asBinary();
|
||||
}
|
||||
else
|
||||
{
|
||||
bin_bucket.push_back(0);
|
||||
}
|
||||
|
||||
// Todo: once drtsim-451 releases, remove the string option
|
||||
BOOL from_group;
|
||||
if (message_data["from_group"].isInteger())
|
||||
{
|
||||
|
|
@ -2266,22 +2282,24 @@ void LLIMProcessing::requestOfflineMessagesCoro(std::string url)
|
|||
from_group = message_data["from_group"].asString() == "Y";
|
||||
}
|
||||
|
||||
LLIMProcessing::processNewMessage(message_data["from_agent_id"].asUUID(),
|
||||
LLIMProcessing::processNewMessage(
|
||||
message_data["from_agent_id"].asUUID(),
|
||||
from_group,
|
||||
message_data["to_agent_id"].asUUID(),
|
||||
IM_OFFLINE,
|
||||
(EInstantMessage)message_data["dialog"].asInteger(),
|
||||
LLUUID::null, // session id, since there is none we can only use frienship/group invite caps
|
||||
message_data["timestamp"].asInteger(),
|
||||
message_data.has("offline") ? static_cast<U8>(message_data["offline"].asInteger()) : IM_OFFLINE,
|
||||
static_cast<EInstantMessage>(message_data["dialog"].asInteger()),
|
||||
message_data["transaction-id"].asUUID(),
|
||||
static_cast<U32>(message_data["timestamp"].asInteger()),
|
||||
message_data["from_agent_name"].asString(),
|
||||
message_data["message"].asString(),
|
||||
parent_estate_id,
|
||||
static_cast<U32>((message_data.has("parent_estate_id")) ? message_data["parent_estate_id"].asInteger() : 1), // 1 - IMMainland
|
||||
message_data["region_id"].asUUID(),
|
||||
position,
|
||||
&data[0],
|
||||
binary_bucket_size,
|
||||
bin_bucket.data(),
|
||||
bin_bucket.size(),
|
||||
sender,
|
||||
message_data["asset_id"].asUUID()); // not necessarily an asset
|
||||
message_data["asset_id"].asUUID());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue