summaryrefslogtreecommitdiff
path: root/indra/newview/llviewermessage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llviewermessage.cpp')
-rwxr-xr-xindra/newview/llviewermessage.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 3c2949d9ee..be3357041a 100755
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -5514,19 +5514,22 @@ bool handle_special_notification(std::string notificationID, LLSD& llsdBlock)
{
if (gAgent.isTeen())
{
+ gAgent.clearFailedTeleportRequest();
maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_KB", llsdBlock);
returnValue = true;
}
else if (gAgent.prefersPG())
{
- if (gAgent.hasRestartableFailedTeleportRequest())
+ if ((LLStringUtil::compareStrings(notificationID, "RegionEntryAccessBlocked") == 0) &&
+ gAgent.hasRestartableFailedTeleportRequest())
{
maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_ChangeAndReTeleport", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_and_reteleport_callback);
returnValue = true;
}
else
{
- maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_ChangeOnly", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_callback);
+ gAgent.clearFailedTeleportRequest();
+ maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_Change", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_callback);
returnValue = true;
}
}
@@ -5535,19 +5538,22 @@ bool handle_special_notification(std::string notificationID, LLSD& llsdBlock)
{
if (!gAgent.isAdult())
{
+ gAgent.clearFailedTeleportRequest();
maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_KB", llsdBlock);
returnValue = true;
}
else if (gAgent.prefersPG() || gAgent.prefersMature())
{
- if (gAgent.hasRestartableFailedTeleportRequest())
+ if ((LLStringUtil::compareStrings(notificationID, "RegionEntryAccessBlocked") == 0) &&
+ gAgent.hasRestartableFailedTeleportRequest())
{
maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_ChangeAndReTeleport", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_and_reteleport_callback);
returnValue = true;
}
else
{
- maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_ChangeOnly", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_callback);
+ gAgent.clearFailedTeleportRequest();
+ maturityLevelNotification = LLNotificationsUtil::add(notificationID+"_Change", llsdBlock, llsdBlock, handle_prompt_for_maturity_level_change_callback);
returnValue = true;
}
}