Minimap enhancements!!
Much of this patch comes from upstream and Kitty Barnett, or is inspired from their works This commit applies the World-Minimap patches from Catznip. Catznip stuffs: - Issue 1383: Parcel lines on mini map - Show parcels on the minimap - Minimap menu: "Show" submenu: "Property Lines" "Parcels for Sale" - Option to have world map textures on the minimap - Minimap menu: "World Map Textures" - Singular touch: Made this comply with hypergridding. The minimap will now scroll zoom based on where your mouse is if centering on camera is off. A lot of cruft was cleaned up in this merge, a lot of gSavedSettings lookups in draw were converted to LLCachedControls, some license updates were performed. Finally: By myself, but inspired by upstream and requested in the group before: - Option to show tracking circles around people selected on the radar while the radar is visible - Minimap menu: "Show" submenu: "Radar Tracking Circles"
This commit is contained in:
@@ -6063,6 +6063,17 @@ This should be as low as possible, but too low may break functionality</string>
|
|||||||
<key>Value</key>
|
<key>Value</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
</map>
|
</map>
|
||||||
|
<key>DoubleClickShowWorldMap</key>
|
||||||
|
<map>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>Enable double-click to show world map from mini map</string>
|
||||||
|
<key>Persist</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>Boolean</string>
|
||||||
|
<key>Value</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
</map>
|
||||||
<key>DragAndDropToolTipDelay</key>
|
<key>DragAndDropToolTipDelay</key>
|
||||||
<map>
|
<map>
|
||||||
<key>Comment</key>
|
<key>Comment</key>
|
||||||
@@ -10181,6 +10192,28 @@ This should be as low as possible, but too low may break functionality</string>
|
|||||||
<key>Value</key>
|
<key>Value</key>
|
||||||
<integer>1</integer>
|
<integer>1</integer>
|
||||||
</map>
|
</map>
|
||||||
|
<key>MiniMapCollisionParcels</key>
|
||||||
|
<map>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>Show collision parcels on the mini-map as they become available</string>
|
||||||
|
<key>Persist</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>Boolean</string>
|
||||||
|
<key>Value</key>
|
||||||
|
<boolean>0</boolean>
|
||||||
|
</map>
|
||||||
|
<key>MiniMapForSaleParcels</key>
|
||||||
|
<map>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>Show for-sale parcels with a yellow highlight on the mini-map</string>
|
||||||
|
<key>Persist</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>Boolean</string>
|
||||||
|
<key>Value</key>
|
||||||
|
<boolean>0</boolean>
|
||||||
|
</map>
|
||||||
<key>MiniMapPrimMaxAltitudeDelta</key>
|
<key>MiniMapPrimMaxAltitudeDelta</key>
|
||||||
<map>
|
<map>
|
||||||
<key>Comment</key>
|
<key>Comment</key>
|
||||||
@@ -10214,6 +10247,28 @@ This should be as low as possible, but too low may break functionality</string>
|
|||||||
<key>Value</key>
|
<key>Value</key>
|
||||||
<real>256.0</real>
|
<real>256.0</real>
|
||||||
</map>
|
</map>
|
||||||
|
<key>MiniMapPropertyLines</key>
|
||||||
|
<map>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>Show property boundaries on the mini-map</string>
|
||||||
|
<key>Persist</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>Boolean</string>
|
||||||
|
<key>Value</key>
|
||||||
|
<boolean>0</boolean>
|
||||||
|
</map>
|
||||||
|
<key>MiniMapRadarTrackingCircles</key>
|
||||||
|
<map>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>Show tracking circles around the avatars you've selected on the radar in the minimap</string>
|
||||||
|
<key>Persist</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>Boolean</string>
|
||||||
|
<key>Value</key>
|
||||||
|
<boolean>0</boolean>
|
||||||
|
</map>
|
||||||
<key>MiniMapCenter</key>
|
<key>MiniMapCenter</key>
|
||||||
<map>
|
<map>
|
||||||
<key>Comment</key>
|
<key>Comment</key>
|
||||||
@@ -10328,6 +10383,17 @@ This should be as low as possible, but too low may break functionality</string>
|
|||||||
<key>Value</key>
|
<key>Value</key>
|
||||||
<real>128.0</real>
|
<real>128.0</real>
|
||||||
</map>
|
</map>
|
||||||
|
<key>MiniMapWorldMapTextures</key>
|
||||||
|
<map>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>Use the world map texture tile on the mini-map rather than the terrain texture</string>
|
||||||
|
<key>Persist</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>Boolean</string>
|
||||||
|
<key>Value</key>
|
||||||
|
<boolean>0</boolean>
|
||||||
|
</map>
|
||||||
<key>MouseSensitivity</key>
|
<key>MouseSensitivity</key>
|
||||||
<map>
|
<map>
|
||||||
<key>Comment</key>
|
<key>Comment</key>
|
||||||
|
|||||||
@@ -1547,6 +1547,11 @@ LLUUID LLFloaterAvatarList::getSelectedID()
|
|||||||
return LLUUID::null;
|
return LLUUID::null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uuid_vec_t LLFloaterAvatarList::getSelectedIDs()
|
||||||
|
{
|
||||||
|
return mAvatarList->getSelectedIDs();
|
||||||
|
}
|
||||||
|
|
||||||
//static
|
//static
|
||||||
void LLFloaterAvatarList::callbackFreeze(const LLSD& notification, const LLSD& response)
|
void LLFloaterAvatarList::callbackFreeze(const LLSD& notification, const LLSD& response)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -215,6 +215,7 @@ public:
|
|||||||
static void toggle(void*);
|
static void toggle(void*);
|
||||||
|
|
||||||
static void showInstance();
|
static void showInstance();
|
||||||
|
static bool instanceVisible() { return instanceExists() && instance().getVisible(); }
|
||||||
|
|
||||||
// Decides which user-chosen columns to show and hide.
|
// Decides which user-chosen columns to show and hide.
|
||||||
void assessColumns();
|
void assessColumns();
|
||||||
@@ -241,6 +242,7 @@ public:
|
|||||||
std::string getSelectedNames(const std::string& separator = ", ");
|
std::string getSelectedNames(const std::string& separator = ", ");
|
||||||
std::string getSelectedName();
|
std::string getSelectedName();
|
||||||
LLUUID getSelectedID();
|
LLUUID getSelectedID();
|
||||||
|
uuid_vec_t getSelectedIDs();
|
||||||
|
|
||||||
static void lookAtAvatar(LLUUID &uuid);
|
static void lookAtAvatar(LLUUID &uuid);
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -33,21 +33,31 @@
|
|||||||
#ifndef LL_LLNETMAP_H
|
#ifndef LL_LLNETMAP_H
|
||||||
#define LL_LLNETMAP_H
|
#define LL_LLNETMAP_H
|
||||||
|
|
||||||
|
#include "llmath.h"
|
||||||
#include "llpanel.h"
|
#include "llpanel.h"
|
||||||
#include "llmemberlistener.h"
|
#include "llmemberlistener.h"
|
||||||
#include "v3math.h"
|
#include "v3math.h"
|
||||||
#include "v3dmath.h"
|
#include "v3dmath.h"
|
||||||
#include "v4color.h"
|
#include "v4color.h"
|
||||||
#include "llimage.h"
|
#include "llpointer.h"
|
||||||
|
#include "llcoord.h"
|
||||||
|
|
||||||
|
|
||||||
class LLTextBox;
|
class LLTextBox;
|
||||||
|
class LLImageRaw;
|
||||||
class LLViewerTexture;
|
class LLViewerTexture;
|
||||||
|
class LLFloaterMap;
|
||||||
|
class LLMenuGL;
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
class LLViewerRegion;
|
||||||
|
class LLAvatarName;
|
||||||
|
// [/SL:KB]
|
||||||
|
|
||||||
typedef enum e_minimap_center
|
enum EMiniMapCenter
|
||||||
{
|
{
|
||||||
MAP_CENTER_NONE = 0,
|
MAP_CENTER_NONE = 0,
|
||||||
MAP_CENTER_CAMERA = 1
|
MAP_CENTER_CAMERA = 1
|
||||||
} EMiniMapCenter;
|
};
|
||||||
|
|
||||||
class LLNetMap : public LLPanel
|
class LLNetMap : public LLPanel
|
||||||
{
|
{
|
||||||
@@ -55,77 +65,93 @@ public:
|
|||||||
LLNetMap(const std::string& name);
|
LLNetMap(const std::string& name);
|
||||||
virtual ~LLNetMap();
|
virtual ~LLNetMap();
|
||||||
|
|
||||||
virtual void draw();
|
static const F32 MAP_SCALE_MIN;
|
||||||
virtual void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
|
static const F32 MAP_SCALE_MID;
|
||||||
virtual BOOL handleMouseDown( S32 x, S32 y, MASK mask );
|
static const F32 MAP_SCALE_MAX;
|
||||||
virtual BOOL handleMouseUp( S32 x, S32 y, MASK mask );
|
|
||||||
virtual BOOL handleHover( S32 x, S32 y, MASK mask );
|
|
||||||
virtual BOOL handleDoubleClick( S32 x, S32 y, MASK mask );
|
|
||||||
virtual BOOL handleRightMouseDown( S32 x, S32 y, MASK mask );
|
|
||||||
virtual BOOL handleScrollWheel(S32 x, S32 y, S32 clicks);
|
|
||||||
virtual BOOL handleToolTip( S32 x, S32 y, std::string& msg, LLRect* sticky_rect_screen );
|
|
||||||
|
|
||||||
void renderScaledPointGlobal( const LLVector3d& pos, const LLColor4U &color, F32 radius );
|
/*virtual*/ void draw();
|
||||||
|
/*virtual*/ BOOL handleScrollWheel(S32 x, S32 y, S32 clicks);
|
||||||
|
/*virtual*/ BOOL handleMouseDown( S32 x, S32 y, MASK mask );
|
||||||
|
/*virtual*/ BOOL handleMouseUp( S32 x, S32 y, MASK mask );
|
||||||
|
/*virtual*/ BOOL handleHover( S32 x, S32 y, MASK mask );
|
||||||
|
/*virtual*/ BOOL handleToolTip( S32 x, S32 y, std::string& msg, LLRect* sticky_rect_screen );
|
||||||
|
/*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
|
||||||
|
|
||||||
|
/*virtual*/ BOOL postBuild();
|
||||||
|
/*virtual*/ BOOL handleRightMouseDown( S32 x, S32 y, MASK mask );
|
||||||
|
/*virtual*/ BOOL handleDoubleClick( S32 x, S32 y, MASK mask );
|
||||||
|
|
||||||
static void mm_setcolor(LLUUID key,LLColor4 col); //moymod
|
static void mm_setcolor(LLUUID key,LLColor4 col); //moymod
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
void refreshParcelOverlay() { mUpdateParcelImage = true; }
|
||||||
|
// [/SL:KB]
|
||||||
void setScale( F32 scale );
|
void setScale( F32 scale );
|
||||||
|
void renderScaledPointGlobal( const LLVector3d& pos, const LLColor4U &color, F32 radius );
|
||||||
|
|
||||||
// Not used at present
|
private:
|
||||||
void translatePan( F32 delta_x, F32 delta_y );
|
const LLVector3d& getObjectImageCenterGlobal() { return mObjectImageCenterGlobal; }
|
||||||
void setPan( F32 x, F32 y ) { mTargetPanX = x; mTargetPanY = y; }
|
|
||||||
|
|
||||||
void renderPoint(const LLVector3 &pos, const LLColor4U &color,
|
void renderPoint(const LLVector3 &pos, const LLColor4U &color,
|
||||||
S32 diameter, S32 relative_height = 0);
|
S32 diameter, S32 relative_height = 0);
|
||||||
LLVector3 globalPosToView(const LLVector3d& global_pos, BOOL rotated);
|
|
||||||
LLVector3d viewPosToGlobal(S32 x,S32 y, BOOL rotated);
|
LLVector3 globalPosToView(const LLVector3d& global_pos);
|
||||||
|
LLVector3d viewPosToGlobal(S32 x,S32 y);
|
||||||
|
|
||||||
void drawRing(const F32 radius, LLVector3 pos_map, const LLColor4& color);
|
void drawRing(const F32 radius, LLVector3 pos_map, const LLColor4& color);
|
||||||
|
|
||||||
void drawTracking( const LLVector3d& pos_global,
|
void drawTracking( const LLVector3d& pos_global,
|
||||||
BOOL rotated,
|
|
||||||
const LLColor4& color,
|
const LLColor4& color,
|
||||||
BOOL draw_arrow = TRUE);
|
BOOL draw_arrow = TRUE);
|
||||||
|
|
||||||
void setDirectionPos( LLTextBox* text_box, F32 rotation );
|
void setDirectionPos( LLTextBox* text_box, F32 rotation );
|
||||||
void updateMinorDirections();
|
void updateMinorDirections();
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
bool createImage(LLPointer<LLImageRaw>& rawimagep) const;
|
||||||
void createObjectImage();
|
void createObjectImage();
|
||||||
|
void createParcelImage();
|
||||||
|
|
||||||
LLHandle<LLView> mPopupMenuHandle;
|
void renderPropertyLinesForRegion(const LLViewerRegion* pRegion, const LLColor4U& clrOverlay);
|
||||||
|
// [/SL:KB]
|
||||||
|
// void createObjectImage();
|
||||||
|
|
||||||
|
static bool outsideSlop(S32 x, S32 y, S32 start_x, S32 start_y, S32 slop);
|
||||||
|
|
||||||
|
private:
|
||||||
|
// bool mUpdateNow;
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
bool mUpdateObjectImage;
|
||||||
|
protected:
|
||||||
|
friend class OverlayToggle;
|
||||||
|
bool mUpdateParcelImage;
|
||||||
|
private:
|
||||||
|
// [/SL:KB]
|
||||||
|
|
||||||
F32 mScale; // Size of a region in pixels
|
F32 mScale; // Size of a region in pixels
|
||||||
F32 mPixelsPerMeter; // world meters to map pixels
|
F32 mPixelsPerMeter; // world meters to map pixels
|
||||||
F32 mObjectMapTPM; // texels per meter on map
|
F32 mObjectMapTPM; // texels per meter on map
|
||||||
F32 mObjectMapPixels; // Width of object map in pixels
|
F32 mObjectMapPixels; // Width of object map in pixels
|
||||||
F32 mDotRadius; // Size of avatar markers
|
F32 mDotRadius; // Size of avatar markers
|
||||||
F32 mTargetPanX;
|
|
||||||
F32 mTargetPanY;
|
|
||||||
F32 mCurPanX;
|
|
||||||
F32 mCurPanY;
|
|
||||||
|
|
||||||
BOOL mPanning; // map has been dragged
|
bool mPanning; // map is being dragged
|
||||||
S32 mMouseDownPanX; // value at start of drag
|
LLVector2 mTargetPan;
|
||||||
S32 mMouseDownPanY; // value at start of drag
|
LLVector2 mCurPan;
|
||||||
S32 mMouseDownX;
|
LLVector2 mStartPan; // pan offset at start of drag
|
||||||
S32 mMouseDownY;
|
LLCoordGL mMouseDown; // pointer position at start of drag
|
||||||
|
|
||||||
BOOL mUpdateNow;
|
|
||||||
LLVector3d mObjectImageCenterGlobal;
|
LLVector3d mObjectImageCenterGlobal;
|
||||||
LLPointer<LLImageRaw> mObjectRawImagep;
|
LLPointer<LLImageRaw> mObjectRawImagep;
|
||||||
LLPointer<LLViewerTexture> mObjectImagep;
|
LLPointer<LLViewerTexture> mObjectImagep;
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
LLVector3d mParcelImageCenterGlobal;
|
||||||
|
LLPointer<LLImageRaw> mParcelRawImagep;
|
||||||
|
LLPointer<LLViewerTexture> mParcelImagep;
|
||||||
|
// [/SL:KB]
|
||||||
|
|
||||||
private:
|
|
||||||
LLUUID mClosestAgentToCursor;
|
LLUUID mClosestAgentToCursor;
|
||||||
LLVector3d mClosestAgentPosition;
|
LLVector3d mClosestAgentPosition;
|
||||||
LLUUID mClosestAgentAtLastRightClick;
|
LLUUID mClosestAgentAtLastRightClick;
|
||||||
|
|
||||||
static BOOL sRotateMap;
|
|
||||||
static LLNetMap* sInstance;
|
|
||||||
static BOOL isAgentUnderCursor(void*) { return sInstance && sInstance->mClosestAgentToCursor.notNull(); }
|
|
||||||
static BOOL outsideSlop(S32 x, S32 y, S32 start_x, S32 start_y, S32 slop);
|
|
||||||
|
|
||||||
static void showAgentProfile(void*);
|
static void showAgentProfile(void*);
|
||||||
BOOL isAgentUnderCursor() { return mClosestAgentToCursor.notNull(); }
|
BOOL isAgentUnderCursor() { return mClosestAgentToCursor.notNull(); }
|
||||||
|
|
||||||
@@ -183,10 +209,7 @@ private:
|
|||||||
/*virtual*/ bool handleEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata);
|
/*virtual*/ bool handleEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//moymod - Custom minimap markers :o
|
//moymod - Custom minimap markers :o
|
||||||
|
|
||||||
class mmsetred : public LLMemberListener<LLNetMap> //moymod
|
class mmsetred : public LLMemberListener<LLNetMap> //moymod
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -224,9 +247,6 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class LLEnableProfile : public LLMemberListener<LLNetMap>
|
class LLEnableProfile : public LLMemberListener<LLNetMap>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -239,6 +259,15 @@ private:
|
|||||||
/*virtual*/ bool handleEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata);
|
/*virtual*/ bool handleEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// [SL:KB] - Patch: World-MiniMap | Checked: 2012-07-08 (Catznip-3.3.0)
|
||||||
|
class OverlayToggle : public LLMemberListener<LLNetMap>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/*virtual*/ bool handleEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata);
|
||||||
|
};
|
||||||
|
// [/SL:KB]
|
||||||
|
|
||||||
|
LLMenuGL* mPopupMenu;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,31 +2,25 @@
|
|||||||
* @file llviewerparcelmgr.cpp
|
* @file llviewerparcelmgr.cpp
|
||||||
* @brief Viewer-side representation of owned land
|
* @brief Viewer-side representation of owned land
|
||||||
*
|
*
|
||||||
* $LicenseInfo:firstyear=2002&license=viewergpl$
|
* $LicenseInfo:firstyear=2002&license=viewerlgpl$
|
||||||
*
|
|
||||||
* Copyright (c) 2002-2009, Linden Research, Inc.
|
|
||||||
*
|
|
||||||
* Second Life Viewer Source Code
|
* Second Life Viewer Source Code
|
||||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
* Copyright (C) 2010, Linden Research, Inc.
|
||||||
* to you under the terms of the GNU General Public License, version 2.0
|
|
||||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
|
||||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
|
||||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
|
||||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
|
||||||
*
|
*
|
||||||
* There are special exceptions to the terms and conditions of the GPL as
|
* This library is free software; you can redistribute it and/or
|
||||||
* it is applied to this Source Code. View the full text of the exception
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
* License as published by the Free Software Foundation;
|
||||||
* online at
|
* version 2.1 of the License only.
|
||||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
|
||||||
*
|
*
|
||||||
* By copying, modifying or distributing this software, you acknowledge
|
* This library is distributed in the hope that it will be useful,
|
||||||
* that you have read and understood your obligations described above,
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* and agree to abide by those obligations.
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
*
|
*
|
||||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
* License along with this library; if not, write to the Free Software
|
||||||
* COMPLETENESS OR PERFORMANCE.
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||||
* $/LicenseInfo$
|
* $/LicenseInfo$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -130,6 +124,10 @@ LLViewerParcelMgr::LLViewerParcelMgr()
|
|||||||
mRenderSelection(TRUE),
|
mRenderSelection(TRUE),
|
||||||
mCollisionBanned(0),
|
mCollisionBanned(0),
|
||||||
mCollisionTimer(),
|
mCollisionTimer(),
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
mCollisionRegionHandle(0),
|
||||||
|
mCollisionUpdateSignal(NULL),
|
||||||
|
// [/SL:KB]
|
||||||
mMediaParcelId(0),
|
mMediaParcelId(0),
|
||||||
mMediaRegionId(0),
|
mMediaRegionId(0),
|
||||||
mHighlightSegments(NULL),
|
mHighlightSegments(NULL),
|
||||||
@@ -152,6 +150,11 @@ LLViewerParcelMgr::LLViewerParcelMgr()
|
|||||||
mHighlightSegments = new U8[(mParcelsPerEdge+1)*(mParcelsPerEdge+1)];
|
mHighlightSegments = new U8[(mParcelsPerEdge+1)*(mParcelsPerEdge+1)];
|
||||||
resetSegments(mHighlightSegments);
|
resetSegments(mHighlightSegments);
|
||||||
|
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
mCollisionBitmap = new U8[getCollisionBitmapSize()];
|
||||||
|
memset(mCollisionBitmap, 0, getCollisionBitmapSize());
|
||||||
|
// [/SL:KB]
|
||||||
|
|
||||||
mCollisionSegments = new U8[(mParcelsPerEdge+1)*(mParcelsPerEdge+1)];
|
mCollisionSegments = new U8[(mParcelsPerEdge+1)*(mParcelsPerEdge+1)];
|
||||||
resetSegments(mCollisionSegments);
|
resetSegments(mCollisionSegments);
|
||||||
|
|
||||||
@@ -208,6 +211,11 @@ LLViewerParcelMgr::~LLViewerParcelMgr()
|
|||||||
delete[] mHighlightSegments;
|
delete[] mHighlightSegments;
|
||||||
mHighlightSegments = NULL;
|
mHighlightSegments = NULL;
|
||||||
|
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
delete[] mCollisionBitmap;
|
||||||
|
mCollisionBitmap = NULL;
|
||||||
|
// [/SL:KB]
|
||||||
|
|
||||||
delete[] mCollisionSegments;
|
delete[] mCollisionSegments;
|
||||||
mCollisionSegments = NULL;
|
mCollisionSegments = NULL;
|
||||||
|
|
||||||
@@ -1741,18 +1749,31 @@ void LLViewerParcelMgr::processParcelProperties(LLMessageSystem *msg, void **use
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
S32 bitmap_size = parcel_mgr.mParcelsPerEdge
|
// S32 bitmap_size = parcel_mgr.mParcelsPerEdge
|
||||||
* parcel_mgr.mParcelsPerEdge
|
// * parcel_mgr.mParcelsPerEdge
|
||||||
/ 8;
|
// / 8;
|
||||||
U8* bitmap = new U8[ bitmap_size ];
|
// U8* bitmap = new U8[ bitmap_size ];
|
||||||
msg->getBinaryDataFast(_PREHASH_ParcelData, _PREHASH_Bitmap, bitmap, bitmap_size);
|
// msg->getBinaryDataFast(_PREHASH_ParcelData, _PREHASH_Bitmap, bitmap, bitmap_size);
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
msg->getBinaryDataFast(_PREHASH_ParcelData, _PREHASH_Bitmap, parcel_mgr.mCollisionBitmap, parcel_mgr.getCollisionBitmapSize());
|
||||||
|
// [/SL:KB]
|
||||||
|
|
||||||
parcel_mgr.resetSegments(parcel_mgr.mCollisionSegments);
|
parcel_mgr.resetSegments(parcel_mgr.mCollisionSegments);
|
||||||
parcel_mgr.writeSegmentsFromBitmap( bitmap, parcel_mgr.mCollisionSegments );
|
// parcel_mgr.writeSegmentsFromBitmap( bitmap, parcel_mgr.mCollisionSegments );
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
parcel_mgr.writeSegmentsFromBitmap(parcel_mgr.mCollisionBitmap, parcel_mgr.mCollisionSegments);
|
||||||
|
// [/SL:KB]
|
||||||
|
|
||||||
delete[] bitmap;
|
// delete[] bitmap;
|
||||||
bitmap = NULL;
|
// bitmap = NULL;
|
||||||
|
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
LLViewerRegion* pRegion = LLWorld::getInstance()->getRegion(msg->getSender());
|
||||||
|
parcel_mgr.mCollisionRegionHandle = (pRegion) ? pRegion->getHandle() : 0;
|
||||||
|
|
||||||
|
if (parcel_mgr.mCollisionUpdateSignal)
|
||||||
|
(*parcel_mgr.mCollisionUpdateSignal)(pRegion);
|
||||||
|
// [/SL:KB]
|
||||||
}
|
}
|
||||||
else if (sequence_id == HOVERED_PARCEL_SEQ_ID)
|
else if (sequence_id == HOVERED_PARCEL_SEQ_ID)
|
||||||
{
|
{
|
||||||
@@ -1770,7 +1791,10 @@ void LLViewerParcelMgr::processParcelProperties(LLMessageSystem *msg, void **use
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// look for music.
|
// Check for video
|
||||||
|
LLViewerParcelMedia::update(parcel);
|
||||||
|
|
||||||
|
// Then check for music
|
||||||
if (gAudiop)
|
if (gAudiop)
|
||||||
{
|
{
|
||||||
if (parcel)
|
if (parcel)
|
||||||
@@ -1818,9 +1842,6 @@ void LLViewerParcelMgr::processParcelProperties(LLMessageSystem *msg, void **use
|
|||||||
gAudiop->stopInternetStream();
|
gAudiop->stopInternetStream();
|
||||||
}
|
}
|
||||||
}//if gAudiop
|
}//if gAudiop
|
||||||
|
|
||||||
// now check for video
|
|
||||||
LLViewerParcelMedia::update( parcel );
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1828,9 +1849,6 @@ void optionally_start_music(LLParcel* parcel)
|
|||||||
{
|
{
|
||||||
if (gSavedSettings.getBOOL("AudioStreamingMusic"))
|
if (gSavedSettings.getBOOL("AudioStreamingMusic"))
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Make the user click the start button on the overlay bar. JC
|
// Make the user click the start button on the overlay bar. JC
|
||||||
// llinfos << "Starting parcel music " << parcel->getMusicURL() << llendl;
|
// llinfos << "Starting parcel music " << parcel->getMusicURL() << llendl;
|
||||||
|
|
||||||
@@ -2571,3 +2589,12 @@ void LLViewerParcelMgr::onTeleportFailed()
|
|||||||
{
|
{
|
||||||
mTeleportFailedSignal();
|
mTeleportFailedSignal();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
boost::signals2::connection LLViewerParcelMgr::setCollisionUpdateCallback(const collision_update_signal_t::slot_type & cb)
|
||||||
|
{
|
||||||
|
if (!mCollisionUpdateSignal)
|
||||||
|
mCollisionUpdateSignal = new collision_update_signal_t();
|
||||||
|
return mCollisionUpdateSignal->connect(cb);
|
||||||
|
}
|
||||||
|
// [/SL:KB]
|
||||||
|
|||||||
@@ -2,31 +2,25 @@
|
|||||||
* @file llviewerparcelmgr.h
|
* @file llviewerparcelmgr.h
|
||||||
* @brief Viewer-side representation of owned land
|
* @brief Viewer-side representation of owned land
|
||||||
*
|
*
|
||||||
* $LicenseInfo:firstyear=2002&license=viewergpl$
|
* $LicenseInfo:firstyear=2002&license=viewerlgpl$
|
||||||
*
|
|
||||||
* Copyright (c) 2002-2009, Linden Research, Inc.
|
|
||||||
*
|
|
||||||
* Second Life Viewer Source Code
|
* Second Life Viewer Source Code
|
||||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
* Copyright (C) 2010, Linden Research, Inc.
|
||||||
* to you under the terms of the GNU General Public License, version 2.0
|
|
||||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
|
||||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
|
||||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
|
||||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
|
||||||
*
|
*
|
||||||
* There are special exceptions to the terms and conditions of the GPL as
|
* This library is free software; you can redistribute it and/or
|
||||||
* it is applied to this Source Code. View the full text of the exception
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
* License as published by the Free Software Foundation;
|
||||||
* online at
|
* version 2.1 of the License only.
|
||||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
|
||||||
*
|
*
|
||||||
* By copying, modifying or distributing this software, you acknowledge
|
* This library is distributed in the hope that it will be useful,
|
||||||
* that you have read and understood your obligations described above,
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* and agree to abide by those obligations.
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
*
|
*
|
||||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
* License along with this library; if not, write to the Free Software
|
||||||
* COMPLETENESS OR PERFORMANCE.
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||||
* $/LicenseInfo$
|
* $/LicenseInfo$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -36,10 +30,13 @@
|
|||||||
#include "v3dmath.h"
|
#include "v3dmath.h"
|
||||||
#include "lldarray.h"
|
#include "lldarray.h"
|
||||||
#include "llframetimer.h"
|
#include "llframetimer.h"
|
||||||
#include "llmemory.h"
|
#include "llsingleton.h"
|
||||||
#include "llparcelselection.h"
|
#include "llparcelselection.h"
|
||||||
#include "llui.h"
|
#include "llui.h"
|
||||||
|
|
||||||
|
#include <boost/function.hpp>
|
||||||
|
#include <boost/signals2.hpp>
|
||||||
|
|
||||||
class LLUUID;
|
class LLUUID;
|
||||||
class LLMessageSystem;
|
class LLMessageSystem;
|
||||||
class LLParcel;
|
class LLParcel;
|
||||||
@@ -169,6 +166,14 @@ public:
|
|||||||
LLParcel* getHoverParcel() const;
|
LLParcel* getHoverParcel() const;
|
||||||
|
|
||||||
LLParcel* getCollisionParcel() const;
|
LLParcel* getCollisionParcel() const;
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
const U8* getCollisionBitmap() const { return mCollisionBitmap; }
|
||||||
|
size_t getCollisionBitmapSize() const { return mParcelsPerEdge * mParcelsPerEdge / 8; }
|
||||||
|
U64 getCollisionRegionHandle() const { return mCollisionRegionHandle; }
|
||||||
|
|
||||||
|
typedef boost::signals2::signal<void (const LLViewerRegion*)> collision_update_signal_t;
|
||||||
|
boost::signals2::connection setCollisionUpdateCallback(const collision_update_signal_t::slot_type & cb);
|
||||||
|
// [/SL:KB]
|
||||||
|
|
||||||
// Can this agent build on the parcel he is on?
|
// Can this agent build on the parcel he is on?
|
||||||
// Used for parcel property icons in nav bar.
|
// Used for parcel property icons in nav bar.
|
||||||
@@ -361,6 +366,11 @@ private:
|
|||||||
// Watch for pending collisions with a parcel you can't access.
|
// Watch for pending collisions with a parcel you can't access.
|
||||||
// If it's coming, draw the parcel's boundaries.
|
// If it's coming, draw the parcel's boundaries.
|
||||||
LLParcel* mCollisionParcel;
|
LLParcel* mCollisionParcel;
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
U8* mCollisionBitmap;
|
||||||
|
U64 mCollisionRegionHandle;
|
||||||
|
collision_update_signal_t* mCollisionUpdateSignal;
|
||||||
|
// [/SL:KB]
|
||||||
U8* mCollisionSegments;
|
U8* mCollisionSegments;
|
||||||
BOOL mRenderCollision;
|
BOOL mRenderCollision;
|
||||||
BOOL mRenderSelection;
|
BOOL mRenderSelection;
|
||||||
|
|||||||
@@ -2,31 +2,25 @@
|
|||||||
* @file llviewerparceloverlay.cpp
|
* @file llviewerparceloverlay.cpp
|
||||||
* @brief LLViewerParcelOverlay class implementation
|
* @brief LLViewerParcelOverlay class implementation
|
||||||
*
|
*
|
||||||
* $LicenseInfo:firstyear=2002&license=viewergpl$
|
* $LicenseInfo:firstyear=2002&license=viewerlgpl$
|
||||||
*
|
|
||||||
* Copyright (c) 2002-2009, Linden Research, Inc.
|
|
||||||
*
|
|
||||||
* Second Life Viewer Source Code
|
* Second Life Viewer Source Code
|
||||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
* Copyright (C) 2010, Linden Research, Inc.
|
||||||
* to you under the terms of the GNU General Public License, version 2.0
|
|
||||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
|
||||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
|
||||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
|
||||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
|
||||||
*
|
*
|
||||||
* There are special exceptions to the terms and conditions of the GPL as
|
* This library is free software; you can redistribute it and/or
|
||||||
* it is applied to this Source Code. View the full text of the exception
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
* License as published by the Free Software Foundation;
|
||||||
* online at
|
* version 2.1 of the License only.
|
||||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
|
||||||
*
|
*
|
||||||
* By copying, modifying or distributing this software, you acknowledge
|
* This library is distributed in the hope that it will be useful,
|
||||||
* that you have read and understood your obligations described above,
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* and agree to abide by those obligations.
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
*
|
*
|
||||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
* License along with this library; if not, write to the Free Software
|
||||||
* COMPLETENESS OR PERFORMANCE.
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||||
* $/LicenseInfo$
|
* $/LicenseInfo$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -54,8 +48,13 @@
|
|||||||
#include "llglheaders.h"
|
#include "llglheaders.h"
|
||||||
#include "pipeline.h"
|
#include "pipeline.h"
|
||||||
|
|
||||||
|
|
||||||
const U8 OVERLAY_IMG_COMPONENTS = 4;
|
const U8 OVERLAY_IMG_COMPONENTS = 4;
|
||||||
|
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
LLViewerParcelOverlay::update_signal_t* LLViewerParcelOverlay::mUpdateSignal = NULL;
|
||||||
|
// [/SL:KB]
|
||||||
|
|
||||||
LLViewerParcelOverlay::LLViewerParcelOverlay(LLViewerRegion* region, F32 region_width_meters)
|
LLViewerParcelOverlay::LLViewerParcelOverlay(LLViewerRegion* region, F32 region_width_meters)
|
||||||
: mRegion( region ),
|
: mRegion( region ),
|
||||||
mParcelGridsPerEdge( S32( region_width_meters / PARCEL_GRID_STEP_METERS ) ),
|
mParcelGridsPerEdge( S32( region_width_meters / PARCEL_GRID_STEP_METERS ) ),
|
||||||
@@ -858,6 +857,10 @@ void LLViewerParcelOverlay::idleUpdate(bool force_update)
|
|||||||
{
|
{
|
||||||
updateOverlayTexture();
|
updateOverlayTexture();
|
||||||
updatePropertyLines();
|
updatePropertyLines();
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
if (mUpdateSignal)
|
||||||
|
(*mUpdateSignal)(mRegion);
|
||||||
|
// [/SL:KB]
|
||||||
mTimeSinceLastUpdate.reset();
|
mTimeSinceLastUpdate.reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -929,6 +932,7 @@ S32 LLViewerParcelOverlay::renderPropertyLines ()
|
|||||||
S32 drawn = 0;
|
S32 drawn = 0;
|
||||||
F32* vertexp;
|
F32* vertexp;
|
||||||
U8* colorp;
|
U8* colorp;
|
||||||
|
bool render_hidden = LLSelectMgr::sRenderHiddenSelections && gFloaterTools && gFloaterTools->getVisible();
|
||||||
|
|
||||||
const F32 PROPERTY_LINE_CLIP_DIST_SQUARED = 256.f * 256.f;
|
const F32 PROPERTY_LINE_CLIP_DIST_SQUARED = 256.f * 256.f;
|
||||||
|
|
||||||
@@ -970,7 +974,7 @@ S32 LLViewerParcelOverlay::renderPropertyLines ()
|
|||||||
|
|
||||||
gGL.end();
|
gGL.end();
|
||||||
|
|
||||||
if (LLSelectMgr::sRenderHiddenSelections && gFloaterTools && gFloaterTools->getVisible())
|
if (render_hidden)
|
||||||
{
|
{
|
||||||
LLGLDepthTest depth(GL_TRUE, GL_FALSE, GL_GREATER);
|
LLGLDepthTest depth(GL_TRUE, GL_FALSE, GL_GREATER);
|
||||||
|
|
||||||
@@ -1005,3 +1009,12 @@ S32 LLViewerParcelOverlay::renderPropertyLines ()
|
|||||||
|
|
||||||
return drawn;
|
return drawn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
boost::signals2::connection LLViewerParcelOverlay::setUpdateCallback(const update_signal_t::slot_type & cb)
|
||||||
|
{
|
||||||
|
if (!mUpdateSignal)
|
||||||
|
mUpdateSignal = new update_signal_t();
|
||||||
|
return mUpdateSignal->connect(cb);
|
||||||
|
}
|
||||||
|
// [/SL:KB]
|
||||||
|
|||||||
@@ -2,31 +2,25 @@
|
|||||||
* @file llviewerparceloverlay.h
|
* @file llviewerparceloverlay.h
|
||||||
* @brief LLViewerParcelOverlay class header file
|
* @brief LLViewerParcelOverlay class header file
|
||||||
*
|
*
|
||||||
* $LicenseInfo:firstyear=2002&license=viewergpl$
|
* $LicenseInfo:firstyear=2002&license=viewerlgpl$
|
||||||
*
|
|
||||||
* Copyright (c) 2002-2009, Linden Research, Inc.
|
|
||||||
*
|
|
||||||
* Second Life Viewer Source Code
|
* Second Life Viewer Source Code
|
||||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
* Copyright (C) 2010, Linden Research, Inc.
|
||||||
* to you under the terms of the GNU General Public License, version 2.0
|
|
||||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
|
||||||
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
|
||||||
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
|
||||||
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
|
||||||
*
|
*
|
||||||
* There are special exceptions to the terms and conditions of the GPL as
|
* This library is free software; you can redistribute it and/or
|
||||||
* it is applied to this Source Code. View the full text of the exception
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
* License as published by the Free Software Foundation;
|
||||||
* online at
|
* version 2.1 of the License only.
|
||||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
|
||||||
*
|
*
|
||||||
* By copying, modifying or distributing this software, you acknowledge
|
* This library is distributed in the hope that it will be useful,
|
||||||
* that you have read and understood your obligations described above,
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* and agree to abide by those obligations.
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
*
|
*
|
||||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
* License along with this library; if not, write to the Free Software
|
||||||
* COMPLETENESS OR PERFORMANCE.
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||||
* $/LicenseInfo$
|
* $/LicenseInfo$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -73,6 +67,9 @@ public:
|
|||||||
|
|
||||||
BOOL isBuildCameraAllowed(const LLVector3& pos) const;
|
BOOL isBuildCameraAllowed(const LLVector3& pos) const;
|
||||||
F32 getOwnedRatio() const;
|
F32 getOwnedRatio() const;
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
const U8* getOwnership() const { return mOwnership; }
|
||||||
|
// [/SL:KB]
|
||||||
|
|
||||||
// Returns the number of vertices drawn
|
// Returns the number of vertices drawn
|
||||||
S32 renderPropertyLines();
|
S32 renderPropertyLines();
|
||||||
@@ -88,6 +85,11 @@ public:
|
|||||||
void idleUpdate(bool update_now = false);
|
void idleUpdate(bool update_now = false);
|
||||||
void updateGL();
|
void updateGL();
|
||||||
|
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
typedef boost::signals2::signal<void (const LLViewerRegion*)> update_signal_t;
|
||||||
|
static boost::signals2::connection setUpdateCallback(const update_signal_t::slot_type & cb);
|
||||||
|
// [/SL:KB]
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// This is in parcel rows and columns, not grid rows and columns
|
// This is in parcel rows and columns, not grid rows and columns
|
||||||
// Stored in bottom three bits.
|
// Stored in bottom three bits.
|
||||||
@@ -129,6 +131,10 @@ private:
|
|||||||
S32 mVertexCount;
|
S32 mVertexCount;
|
||||||
F32* mVertexArray;
|
F32* mVertexArray;
|
||||||
U8* mColorArray;
|
U8* mColorArray;
|
||||||
|
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
static update_signal_t* mUpdateSignal;
|
||||||
|
// [/SL:KB]
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -48,6 +48,7 @@
|
|||||||
#include "v3math.h"
|
#include "v3math.h"
|
||||||
#include "v4math.h"
|
#include "v4math.h"
|
||||||
|
|
||||||
|
#include "lfsimfeaturehandler.h"
|
||||||
#include "llagent.h"
|
#include "llagent.h"
|
||||||
#include "llagentcamera.h"
|
#include "llagentcamera.h"
|
||||||
#include "llcallingcard.h"
|
#include "llcallingcard.h"
|
||||||
@@ -222,7 +223,7 @@ public:
|
|||||||
virtual ~BaseCapabilitiesComplete()
|
virtual ~BaseCapabilitiesComplete()
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/*virtual*/ void error(U32 statusNum, const std::string& reason)
|
void error(U32 statusNum, const std::string& reason)
|
||||||
{
|
{
|
||||||
LL_WARNS2("AppInit", "Capabilities") << statusNum << ": " << reason << LL_ENDL;
|
LL_WARNS2("AppInit", "Capabilities") << statusNum << ": " << reason << LL_ENDL;
|
||||||
LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromHandle(mRegionHandle);
|
LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromHandle(mRegionHandle);
|
||||||
@@ -232,7 +233,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*virtual*/ void result(const LLSD& content)
|
void result(const LLSD& content)
|
||||||
{
|
{
|
||||||
LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromHandle(mRegionHandle);
|
LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromHandle(mRegionHandle);
|
||||||
if(!regionp) //region was removed
|
if(!regionp) //region was removed
|
||||||
@@ -422,6 +423,14 @@ LLViewerRegion::~LLViewerRegion()
|
|||||||
|
|
||||||
delete mImpl;
|
delete mImpl;
|
||||||
mImpl = NULL;
|
mImpl = NULL;
|
||||||
|
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-07-26 (Catznip-3.3)
|
||||||
|
if (mWorldMapTile)
|
||||||
|
{
|
||||||
|
mWorldMapTile->setBoostLevel(LLViewerTexture::BOOST_NONE);
|
||||||
|
mWorldMapTile = NULL;
|
||||||
|
}
|
||||||
|
// [/SL:KB]
|
||||||
}
|
}
|
||||||
|
|
||||||
LLEventPump& LLViewerRegion::getCapAPI() const
|
LLEventPump& LLViewerRegion::getCapAPI() const
|
||||||
@@ -1087,7 +1096,28 @@ F32 LLViewerRegion::getLandHeightRegion(const LLVector3& region_pos)
|
|||||||
return mImpl->mLandp->resolveHeightRegion( region_pos );
|
return mImpl->mLandp->resolveHeightRegion( region_pos );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool LLViewerRegion::isAlive()
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
LLViewerTexture* LLViewerRegion::getWorldMapTile() const
|
||||||
|
{
|
||||||
|
if (!mWorldMapTile)
|
||||||
|
{
|
||||||
|
U32 gridX, gridY;
|
||||||
|
grid_from_region_handle(mHandle, &gridX, &gridY);
|
||||||
|
// Singu Note: We must obey the override on certain grids!
|
||||||
|
std::string simOverrideMap = LFSimFeatureHandler::instance().mapServerURL();
|
||||||
|
std::string strImgURL = (simOverrideMap.empty() ? gSavedSettings.getString("MapServerURL") : simOverrideMap) + llformat("map-1-%d-%d-objects.jpg", gridX, gridY);
|
||||||
|
|
||||||
|
mWorldMapTile = LLViewerTextureManager::getFetchedTextureFromUrl(strImgURL, TRUE, LLViewerTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
|
||||||
|
mWorldMapTile->setBoostLevel(LLViewerTexture::BOOST_MAP);
|
||||||
|
}
|
||||||
|
return mWorldMapTile;
|
||||||
|
}
|
||||||
|
// [/SL:KB]
|
||||||
|
|
||||||
|
//bool LLViewerRegion::isAlive()
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
bool LLViewerRegion::isAlive() const
|
||||||
|
// [/SL:KB]
|
||||||
{
|
{
|
||||||
return mAlive;
|
return mAlive;
|
||||||
}
|
}
|
||||||
@@ -1817,13 +1847,13 @@ public:
|
|||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
|
||||||
/*virtual*/ void error(U32 statusNum, const std::string& reason)
|
void error(U32 statusNum, const std::string& reason)
|
||||||
{
|
{
|
||||||
LL_WARNS2("AppInit", "SimulatorFeatures") << statusNum << ": " << reason << LL_ENDL;
|
LL_WARNS2("AppInit", "SimulatorFeatures") << statusNum << ": " << reason << LL_ENDL;
|
||||||
retry();
|
retry();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*virtual*/ void result(const LLSD& content)
|
void result(const LLSD& content)
|
||||||
{
|
{
|
||||||
LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromHandle(mRegionHandle);
|
LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromHandle(mRegionHandle);
|
||||||
if(!regionp) //region is removed or responder is not created.
|
if(!regionp) //region is removed or responder is not created.
|
||||||
@@ -2044,6 +2074,7 @@ void LLViewerRegion::getNeighboringRegionsStatus( std::vector<S32>& regions )
|
|||||||
{
|
{
|
||||||
mImpl->mLandp->getNeighboringRegionsStatus( regions );
|
mImpl->mLandp->getNeighboringRegionsStatus( regions );
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLViewerRegion::showReleaseNotes()
|
void LLViewerRegion::showReleaseNotes()
|
||||||
{
|
{
|
||||||
std::string url = this->getCapability("ServerReleaseNotes");
|
std::string url = this->getCapability("ServerReleaseNotes");
|
||||||
|
|||||||
@@ -75,6 +75,9 @@ class LLDataPacker;
|
|||||||
class LLDataPackerBinaryBuffer;
|
class LLDataPackerBinaryBuffer;
|
||||||
class LLHost;
|
class LLHost;
|
||||||
class LLBBox;
|
class LLBBox;
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-07-26 (Catznip-3.3)
|
||||||
|
class LLViewerTexture;
|
||||||
|
// [/SL:KB]
|
||||||
|
|
||||||
class LLViewerRegionImpl;
|
class LLViewerRegionImpl;
|
||||||
|
|
||||||
@@ -143,7 +146,12 @@ public:
|
|||||||
inline BOOL getRestrictPushObject() const;
|
inline BOOL getRestrictPushObject() const;
|
||||||
inline BOOL getReleaseNotesRequested() const;
|
inline BOOL getReleaseNotesRequested() const;
|
||||||
|
|
||||||
bool isAlive(); // can become false if circuit disconnects
|
// bool isAlive(); // can become false if circuit disconnects
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3.0)
|
||||||
|
bool isAlive() const; // can become false if circuit disconnects
|
||||||
|
|
||||||
|
LLViewerTexture* getWorldMapTile() const;
|
||||||
|
// [/SL:KB]
|
||||||
|
|
||||||
void setWaterHeight(F32 water_level);
|
void setWaterHeight(F32 water_level);
|
||||||
F32 getWaterHeight() const;
|
F32 getWaterHeight() const;
|
||||||
@@ -455,6 +463,10 @@ private:
|
|||||||
LLDynamicArray<U32> mCacheMissFull;
|
LLDynamicArray<U32> mCacheMissFull;
|
||||||
LLDynamicArray<U32> mCacheMissCRC;
|
LLDynamicArray<U32> mCacheMissCRC;
|
||||||
|
|
||||||
|
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-07-26 (Catznip-3.3)
|
||||||
|
mutable LLPointer<LLViewerTexture> mWorldMapTile;
|
||||||
|
// [/SL:KB]
|
||||||
|
|
||||||
bool mAlive; // can become false if circuit disconnects
|
bool mAlive; // can become false if circuit disconnects
|
||||||
bool mCapabilitiesReceived;
|
bool mCapabilitiesReceived;
|
||||||
bool mFeaturesReceived;
|
bool mFeaturesReceived;
|
||||||
|
|||||||
@@ -1,36 +1,67 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||||
<menu bottom="100" color="MenuDefaultBgColor" drop_shadow="true" height="101" left="100"
|
<menu bottom="100" color="MenuDefaultBgColor" drop_shadow="true" height="101" left="100"
|
||||||
mouse_opaque="false" name="popup" opaque="true" width="128">
|
mouse_opaque="false" name="popup" opaque="true" width="128">
|
||||||
<menu_item_call bottom_delta="-18" height="18" label="Zoom Close" left="0"
|
<menu_item_call label="Zoom Close" name="Zoom Close">
|
||||||
mouse_opaque="true" name="Zoom Close" width="128">
|
|
||||||
<on_click function="MiniMap.ZoomLevel" userdata="2" />
|
<on_click function="MiniMap.ZoomLevel" userdata="2" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
<menu_item_call bottom_delta="-18" height="18" label="Zoom Medium" left="0"
|
<menu_item_call label="Zoom Medium" name="Zoom Medium">
|
||||||
mouse_opaque="true" name="Zoom Medium" width="128">
|
|
||||||
<on_click function="MiniMap.ZoomLevel" userdata="1" />
|
<on_click function="MiniMap.ZoomLevel" userdata="1" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
<menu_item_call bottom_delta="-18" height="18" label="Zoom Far" left="0"
|
<menu_item_call label="Zoom Far" name="Zoom Far">
|
||||||
mouse_opaque="true" name="Zoom Far" width="128">
|
|
||||||
<on_click function="MiniMap.ZoomLevel" userdata="0" />
|
<on_click function="MiniMap.ZoomLevel" userdata="0" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
<menu_item_separator />
|
<menu_item_separator />
|
||||||
<menu_item_check bottom_delta="-18" enabled="true" height="18" label="Center on Camera"
|
<menu_item_check label="Center on Camera" name="Center on Camera">
|
||||||
left="0" mouse_opaque="true" name="Center on Camera" width="128">
|
|
||||||
<on_click function="MiniMap.Center" userdata="1" />
|
<on_click function="MiniMap.Center" userdata="1" />
|
||||||
<on_check function="MiniMap.CheckCenter" userdata="1" />
|
<on_check function="MiniMap.CheckCenter" userdata="1" />
|
||||||
</menu_item_check>
|
</menu_item_check>
|
||||||
<menu_item_check bottom_delta="-18" enabled="true" height="18" label="Rotate Mini-Map"
|
<menu_item_check label="Rotate Mini-Map" name="Rotate Mini-Map">
|
||||||
left="0" mouse_opaque="true" name="Rotate Mini-Map" width="128">
|
|
||||||
<on_click function="MiniMap.ToggleControl" userdata="MiniMapRotate" />
|
<on_click function="MiniMap.ToggleControl" userdata="MiniMapRotate" />
|
||||||
<on_check control="MiniMapRotate" />
|
<on_check control="MiniMapRotate" />
|
||||||
</menu_item_check>
|
</menu_item_check>
|
||||||
<menu_item_check bottom_delta="-18" enabled="false" height="18" label="Show Objects"
|
<menu
|
||||||
left="0" mouse_opaque="true" name="Show Objects" width="128">
|
label="Show"
|
||||||
<on_click function="MiniMap.ToggleControl" userdata="ShowMiniMapObjects" />
|
name="Minimap Show">
|
||||||
<on_check control="ShowMiniMapObjects" />
|
<menu_item_check
|
||||||
|
label="Objects"
|
||||||
|
name="Objects">
|
||||||
|
<menu_item_check.on_click
|
||||||
|
function="MiniMap.ToggleControl"
|
||||||
|
userdata="ShowMiniMapObjects" />
|
||||||
|
<menu_item_check.on_check
|
||||||
|
control="ShowMiniMapObjects" />
|
||||||
</menu_item_check>
|
</menu_item_check>
|
||||||
<menu bottom_delta="0" color="MenuDefaultBgColor" drop_shadow="true" height="175" left="0"
|
<menu_item_check
|
||||||
mouse_opaque="false" name="Chat Distance Rings" label="Chat Distance Rings" opaque="true" tear_off="false" width="125">
|
label="Property Lines"
|
||||||
|
name="Property Lines">
|
||||||
|
<menu_item_check.on_click
|
||||||
|
function="Minimap.ToggleOverlay"
|
||||||
|
userdata="MiniMapPropertyLines" />
|
||||||
|
<menu_item_check.on_check
|
||||||
|
control="MiniMapPropertyLines" />
|
||||||
|
</menu_item_check>
|
||||||
|
<menu_item_check
|
||||||
|
label="Parcels for Sale"
|
||||||
|
name="Parcels for Sale">
|
||||||
|
<menu_item_check.on_click
|
||||||
|
function="Minimap.ToggleOverlay"
|
||||||
|
userdata="MiniMapForSaleParcels" />
|
||||||
|
<menu_item_check.on_check
|
||||||
|
control="MiniMapForSaleParcels" />
|
||||||
|
<menu_item_check.on_enable
|
||||||
|
control="MiniMapPropertyLines" />
|
||||||
|
</menu_item_check>
|
||||||
|
<menu_item_check
|
||||||
|
label="Radar Tracking Circles"
|
||||||
|
name="Radar Tracking Circles">
|
||||||
|
<menu_item_check.on_check
|
||||||
|
control="MiniMapRadarTrackingCircles"/>
|
||||||
|
<menu_item_check.on_click
|
||||||
|
function="MiniMap.ToggleControl"
|
||||||
|
userdata="MiniMapRadarTrackingCircles"/>
|
||||||
|
</menu_item_check>
|
||||||
|
</menu>
|
||||||
|
<menu name="Chat Distance Rings" label="Chat Distance Rings">
|
||||||
<menu_item_check label="Show All" name="Show All">
|
<menu_item_check label="Show All" name="Show All">
|
||||||
<on_check function="MiniMap.CheckChatRings" />
|
<on_check function="MiniMap.CheckChatRings" />
|
||||||
<on_click function="MiniMap.ChatRings" />
|
<on_click function="MiniMap.ChatRings" />
|
||||||
@@ -50,47 +81,41 @@
|
|||||||
</menu_item_check>
|
</menu_item_check>
|
||||||
</menu>
|
</menu>
|
||||||
<menu_item_separator />
|
<menu_item_separator />
|
||||||
<menu_item_call bottom_delta="-18" enabled = "false" height="18" label="Stop Tracking"
|
<menu_item_call label="Stop Tracking" name="Stop Tracking">
|
||||||
left="0" mouse_opaque="true" name="Stop Tracking" width="128">
|
|
||||||
<on_click function="MiniMap.StopTracking" />
|
<on_click function="MiniMap.StopTracking" />
|
||||||
<on_enable function="MiniMap.EnableTracking" />
|
<on_enable function="MiniMap.EnableTracking" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
<menu_item_call bottom_delta="-18" enabled = "false" height="18" label="Profile..."
|
<menu_item_call label="Profile..." name="Profile">
|
||||||
left="0" mouse_opaque="true" name="Profile" width="128">
|
|
||||||
<on_click function="MiniMap.ShowProfile" />
|
<on_click function="MiniMap.ShowProfile" />
|
||||||
<on_enable function="MiniMap.EnableProfile" />
|
<on_enable function="MiniMap.EnableProfile" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
<menu_item_call bottom_delta="-18" enabled = "true" height="18" label="Cam..."
|
<menu_item_call label="Cam..." name="Camfollow">
|
||||||
left="0" mouse_opaque="true" name="Camfollow" width="128">
|
|
||||||
<on_click function="MiniMap.CamFollow" />
|
<on_click function="MiniMap.CamFollow" />
|
||||||
<on_enable function="MiniMap.EnableProfile" />
|
<on_enable function="MiniMap.EnableProfile" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
<menu bottom_delta="0" color="MenuDefaultBgColor" drop_shadow="true" height="175" left="0"
|
<menu name="Mark" label="Mark">
|
||||||
mouse_opaque="false" name="Mark" label="Mark" opaque="true" tear_off="false" width="125">
|
<menu_item_call label="Red" name="Red">
|
||||||
<menu_item_call bottom_delta="-18" enabled = "true" height="18" label="Red"
|
|
||||||
left="0" mouse_opaque="true" name="Red" width="128">
|
|
||||||
<on_click function="MiniMap.setred" />
|
<on_click function="MiniMap.setred" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
<menu_item_call bottom_delta="-18" enabled = "true" height="18" label="Green"
|
<menu_item_call label="Green" name="Green">
|
||||||
left="0" mouse_opaque="true" name="Green" width="128">
|
|
||||||
<on_click function="MiniMap.setgreen" />
|
<on_click function="MiniMap.setgreen" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
<menu_item_call bottom_delta="-18" enabled = "true" height="18" label="Blue"
|
<menu_item_call label="Blue" name="Blue">
|
||||||
left="0" mouse_opaque="true" name="Blue" width="128">
|
|
||||||
<on_click function="MiniMap.setblue" />
|
<on_click function="MiniMap.setblue" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
<menu_item_call bottom_delta="-18" enabled = "true" height="18" label="Yellow"
|
<menu_item_call label="Yellow" name="Yellow">
|
||||||
left="0" mouse_opaque="true" name="Yellow" width="128">
|
|
||||||
<on_click function="MiniMap.setyellow" />
|
<on_click function="MiniMap.setyellow" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
<menu_item_call bottom_delta="-18" enabled = "true" height="18" label="Custom..."
|
<menu_item_call label="Custom..." name="Custom">
|
||||||
left="0" mouse_opaque="true" name="Custom" width="128">
|
|
||||||
<on_click function="MiniMap.setcustom" />
|
<on_click function="MiniMap.setcustom" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
</menu>
|
</menu>
|
||||||
<menu_item_call bottom_delta="-18" enabled = "true" height="18" label="Unmark"
|
<menu_item_call label="Unmark" name="Unmark">
|
||||||
left="0" mouse_opaque="true" name="Unmark" width="128">
|
|
||||||
<on_click function="MiniMap.setunmark" />
|
<on_click function="MiniMap.setunmark" />
|
||||||
<on_enable function="MiniMap.enableunmark" />
|
<on_enable function="MiniMap.enableunmark" />
|
||||||
</menu_item_call>
|
</menu_item_call>
|
||||||
|
<menu_item_check label="World Map Textures" name="World Map Textures">
|
||||||
|
<on_check control="MiniMapWorldMapTextures" />
|
||||||
|
<on_click function="MiniMap.ToggleControl" userdata="MiniMapWorldMapTextures" />
|
||||||
|
</menu_item_check>
|
||||||
</menu>
|
</menu>
|
||||||
|
|||||||
Reference in New Issue
Block a user