Private Issue #297: Accept new flags in ScriptTeleportRequest message. Flags indicate if the world map should be opened and focused.
parent
20dfc94c5d
commit
81df0476b5
|
|
@ -355,5 +355,7 @@ const U8 CLICK_ACTION_DISABLED = 8;
|
||||||
const U8 CLICK_ACTION_IGNORE = 9;
|
const U8 CLICK_ACTION_IGNORE = 9;
|
||||||
// DO NOT CHANGE THE SEQUENCE OF THIS LIST!!
|
// DO NOT CHANGE THE SEQUENCE OF THIS LIST!!
|
||||||
|
|
||||||
|
constexpr U32 BEACON_SHOW_MAP = 0x0001;
|
||||||
|
constexpr U32 BEACON_FOCUS_MAP = 0x0002;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -377,6 +377,10 @@ public:
|
||||||
void enableResizeCtrls(bool enable, bool width = true, bool height = true);
|
void enableResizeCtrls(bool enable, bool width = true, bool height = true);
|
||||||
|
|
||||||
bool isPositioning(LLFloaterEnums::EOpenPositioning p) const { return (p == mPositioning); }
|
bool isPositioning(LLFloaterEnums::EOpenPositioning p) const { return (p == mPositioning); }
|
||||||
|
|
||||||
|
void setAutoFocus(bool focus) { mAutoFocus = focus; } // whether to automatically take focus when opened
|
||||||
|
bool getAutoFocus() const { return mAutoFocus; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void applyControlsAndPosition(LLFloater* other);
|
void applyControlsAndPosition(LLFloater* other);
|
||||||
|
|
||||||
|
|
@ -401,8 +405,6 @@ protected:
|
||||||
void setExpandedRect(const LLRect& rect) { mExpandedRect = rect; } // size when not minimized
|
void setExpandedRect(const LLRect& rect) { mExpandedRect = rect; } // size when not minimized
|
||||||
const LLRect& getExpandedRect() const { return mExpandedRect; }
|
const LLRect& getExpandedRect() const { return mExpandedRect; }
|
||||||
|
|
||||||
void setAutoFocus(bool focus) { mAutoFocus = focus; } // whether to automatically take focus when opened
|
|
||||||
bool getAutoFocus() const { return mAutoFocus; }
|
|
||||||
LLDragHandle* getDragHandle() const { return mDragHandle; }
|
LLDragHandle* getDragHandle() const { return mDragHandle; }
|
||||||
|
|
||||||
void destroy(); // Don't call this directly. You probably want to call closeFloater()
|
void destroy(); // Don't call this directly. You probably want to call closeFloater()
|
||||||
|
|
|
||||||
|
|
@ -486,8 +486,11 @@ void LLFloaterWorldMap::onOpen(const LLSD& key)
|
||||||
const LLUUID landmark_folder_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_LANDMARK);
|
const LLUUID landmark_folder_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_LANDMARK);
|
||||||
LLInventoryModelBackgroundFetch::instance().start(landmark_folder_id);
|
LLInventoryModelBackgroundFetch::instance().start(landmark_folder_id);
|
||||||
|
|
||||||
mLocationEditor->setFocus( true);
|
if (hasFocus())
|
||||||
gFocusMgr.triggerFocusFlash();
|
{
|
||||||
|
mLocationEditor->setFocus( true);
|
||||||
|
gFocusMgr.triggerFocusFlash();
|
||||||
|
}
|
||||||
|
|
||||||
buildAvatarIDList();
|
buildAvatarIDList();
|
||||||
buildLandmarkIDLists();
|
buildLandmarkIDLists();
|
||||||
|
|
|
||||||
|
|
@ -6610,7 +6610,6 @@ void process_initiate_download(LLMessageSystem* msg, void**)
|
||||||
(void**)new std::string(viewer_filename));
|
(void**)new std::string(viewer_filename));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void process_script_teleport_request(LLMessageSystem* msg, void**)
|
void process_script_teleport_request(LLMessageSystem* msg, void**)
|
||||||
{
|
{
|
||||||
if (!gSavedSettings.getBOOL("ScriptsCanShowUI")) return;
|
if (!gSavedSettings.getBOOL("ScriptsCanShowUI")) return;
|
||||||
|
|
@ -6624,6 +6623,11 @@ void process_script_teleport_request(LLMessageSystem* msg, void**)
|
||||||
msg->getString("Data", "SimName", sim_name);
|
msg->getString("Data", "SimName", sim_name);
|
||||||
msg->getVector3("Data", "SimPosition", pos);
|
msg->getVector3("Data", "SimPosition", pos);
|
||||||
msg->getVector3("Data", "LookAt", look_at);
|
msg->getVector3("Data", "LookAt", look_at);
|
||||||
|
U32 flags = (BEACON_SHOW_MAP | BEACON_FOCUS_MAP);
|
||||||
|
if (msg->has("Options"))
|
||||||
|
{
|
||||||
|
msg->getU32("Options", "Flags", flags);
|
||||||
|
}
|
||||||
|
|
||||||
LLFloaterWorldMap* instance = LLFloaterWorldMap::getInstance();
|
LLFloaterWorldMap* instance = LLFloaterWorldMap::getInstance();
|
||||||
if(instance)
|
if(instance)
|
||||||
|
|
@ -6634,7 +6638,17 @@ void process_script_teleport_request(LLMessageSystem* msg, void**)
|
||||||
<< LL_ENDL;
|
<< LL_ENDL;
|
||||||
|
|
||||||
instance->trackURL(sim_name, (S32)pos.mV[VX], (S32)pos.mV[VY], (S32)pos.mV[VZ]);
|
instance->trackURL(sim_name, (S32)pos.mV[VX], (S32)pos.mV[VY], (S32)pos.mV[VZ]);
|
||||||
LLFloaterReg::showInstance("world_map", "center");
|
if (flags & BEACON_SHOW_MAP)
|
||||||
|
{
|
||||||
|
bool old_auto_focus = instance->getAutoFocus();
|
||||||
|
instance->setAutoFocus(false);
|
||||||
|
instance->openFloater("center");
|
||||||
|
if (flags & BEACON_FOCUS_MAP)
|
||||||
|
{
|
||||||
|
instance->setFocus(true);
|
||||||
|
}
|
||||||
|
instance->setAutoFocus(old_auto_focus);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove above two lines and replace with below line
|
// remove above two lines and replace with below line
|
||||||
|
|
|
||||||
|
|
@ -4370,14 +4370,18 @@ version 2.0
|
||||||
// ScriptTeleportRequest
|
// ScriptTeleportRequest
|
||||||
// reliable
|
// reliable
|
||||||
{
|
{
|
||||||
ScriptTeleportRequest Low 195 Trusted Unencoded
|
ScriptTeleportRequest Low 195 Trusted Unencoded
|
||||||
{
|
{
|
||||||
Data Single
|
Data Single
|
||||||
{ ObjectName Variable 1 }
|
{ ObjectName Variable 1 }
|
||||||
{ SimName Variable 1 }
|
{ SimName Variable 1 }
|
||||||
{ SimPosition LLVector3 }
|
{ SimPosition LLVector3 }
|
||||||
{ LookAt LLVector3 }
|
{ LookAt LLVector3 }
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
Options Variable
|
||||||
|
{ Flags U32 }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
d7915d67467e59287857630bd89bf9529d065199
|
b98fc0af5fa88601f5afa4f3c83f08188316e9a8
|
||||||
Loading…
Reference in New Issue