Add optional chat ranges rings on MiniMap
Ability to show Whisper, Chat and Shout range circles on the MiniMap. Range values are at the moment hardcoded as [10, 20, 100]. Each ring is binded to the following Debug Settings: Whisper ring: MiniMapWhisperRing Chat Ring: MiniMapChatRing Shout Ring: MiniMapShoutRing Each ring colour can be customised through the following Debug Settings: Whisper ring: MiniMapWhisperRingColor Chat Ring: MiniMapChatRingColor Shout Ring: MiniMapShoutRingColor The following Debug Setting is used to enable/disable all the rings at once: MiniMapChatRings
This commit is contained in:
@@ -10068,6 +10068,98 @@ 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>MiniMapChatRings</key>
|
||||||
|
<map>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>Display chat distance rings on mini map</string>
|
||||||
|
<key>Persist</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>Boolean</string>
|
||||||
|
<key>Value</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
</map>
|
||||||
|
<key>MiniMapWhisperRing</key>
|
||||||
|
<map>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>Display whisper distance ring on mini map</string>
|
||||||
|
<key>Persist</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>Boolean</string>
|
||||||
|
<key>Value</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
</map>
|
||||||
|
<key>MiniMapWhisperRingColor</key>
|
||||||
|
<map>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>Color for whisper distance ring on mini map</string>
|
||||||
|
<key>Persist</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>Color4</string>
|
||||||
|
<key>Value</key>
|
||||||
|
<array>
|
||||||
|
<real>0.0</real>
|
||||||
|
<real>1.0</real>
|
||||||
|
<real>0.0</real>
|
||||||
|
<real>0.5</real>
|
||||||
|
</array>
|
||||||
|
</map>
|
||||||
|
<key>MiniMapChatRing</key>
|
||||||
|
<map>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>Display chat distance ring on mini map</string>
|
||||||
|
<key>Persist</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>Boolean</string>
|
||||||
|
<key>Value</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
</map>
|
||||||
|
<key>MiniMapChatRingColor</key>
|
||||||
|
<map>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>Color for chat distance ring on mini map</string>
|
||||||
|
<key>Persist</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>Color4</string>
|
||||||
|
<key>Value</key>
|
||||||
|
<array>
|
||||||
|
<real>1.0</real>
|
||||||
|
<real>1.0</real>
|
||||||
|
<real>0.0</real>
|
||||||
|
<real>0.5</real>
|
||||||
|
</array>
|
||||||
|
</map>
|
||||||
|
<key>MiniMapShoutRing</key>
|
||||||
|
<map>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>Display shout distance ring on mini map</string>
|
||||||
|
<key>Persist</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>Boolean</string>
|
||||||
|
<key>Value</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
</map>
|
||||||
|
<key>MiniMapShoutRingColor</key>
|
||||||
|
<map>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>Color for shout distance ring on mini map</string>
|
||||||
|
<key>Persist</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>Color4</string>
|
||||||
|
<key>Value</key>
|
||||||
|
<array>
|
||||||
|
<real>1.0</real>
|
||||||
|
<real>0.0</real>
|
||||||
|
<real>0.0</real>
|
||||||
|
<real>0.5</real>
|
||||||
|
</array>
|
||||||
|
</map>
|
||||||
<key>MiniMapScale</key>
|
<key>MiniMapScale</key>
|
||||||
<map>
|
<map>
|
||||||
<key>Comment</key>
|
<key>Comment</key>
|
||||||
|
|||||||
@@ -89,6 +89,9 @@ const F32 DOT_SCALE = 0.75f;
|
|||||||
const F32 MIN_PICK_SCALE = 2.f;
|
const F32 MIN_PICK_SCALE = 2.f;
|
||||||
const S32 MOUSE_DRAG_SLOP = 2; // How far the mouse needs to move before we think it's a drag
|
const S32 MOUSE_DRAG_SLOP = 2; // How far the mouse needs to move before we think it's a drag
|
||||||
|
|
||||||
|
const F32 WIDTH_PIXELS = 2.f;
|
||||||
|
const S32 CIRCLE_STEPS = 100;
|
||||||
|
|
||||||
LLNetMap::LLNetMap(const std::string& name) :
|
LLNetMap::LLNetMap(const std::string& name) :
|
||||||
LLPanel(name),
|
LLPanel(name),
|
||||||
mScale(128.f),
|
mScale(128.f),
|
||||||
@@ -112,6 +115,10 @@ LLNetMap::LLNetMap(const std::string& name) :
|
|||||||
(new LLCheckCenterMap())->registerListener(this, "MiniMap.CheckCenter");
|
(new LLCheckCenterMap())->registerListener(this, "MiniMap.CheckCenter");
|
||||||
(new LLRotateMap())->registerListener(this, "MiniMap.Rotate");
|
(new LLRotateMap())->registerListener(this, "MiniMap.Rotate");
|
||||||
(new LLCheckRotateMap())->registerListener(this, "MiniMap.CheckRotate");
|
(new LLCheckRotateMap())->registerListener(this, "MiniMap.CheckRotate");
|
||||||
|
(new LLChatRings())->registerListener(this, "MiniMap.ChatRings");
|
||||||
|
(new LLWhisperRing())->registerListener(this, "MiniMap.WhisperRing");
|
||||||
|
(new LLChatRing())->registerListener(this, "MiniMap.ChatRing");
|
||||||
|
(new LLShoutRing())->registerListener(this, "MiniMap.ShoutRing");
|
||||||
(new LLStopTracking())->registerListener(this, "MiniMap.StopTracking");
|
(new LLStopTracking())->registerListener(this, "MiniMap.StopTracking");
|
||||||
(new LLEnableTracking())->registerListener(this, "MiniMap.EnableTracking");
|
(new LLEnableTracking())->registerListener(this, "MiniMap.EnableTracking");
|
||||||
(new LLShowAgentProfile())->registerListener(this, "MiniMap.ShowProfile");
|
(new LLShowAgentProfile())->registerListener(this, "MiniMap.ShowProfile");
|
||||||
@@ -194,6 +201,10 @@ void LLNetMap::draw()
|
|||||||
{
|
{
|
||||||
static LLFrameTimer map_timer;
|
static LLFrameTimer map_timer;
|
||||||
|
|
||||||
|
static const LLCachedControl<LLColor4> map_whisper_ring_color("MiniMapWhisperRingColor", LLColor4(0.f,1.f,0.f,0.5f));
|
||||||
|
static const LLCachedControl<LLColor4> map_chat_ring_color("MiniMapChatRingColor", LLColor4(0.f,0.f,1.f,0.5f));
|
||||||
|
static const LLCachedControl<LLColor4> map_shout_ring_color("MiniMapShoutRingColor", LLColor4(1.f,0.f,0.f,0.5f));
|
||||||
|
|
||||||
if (mObjectImagep.isNull())
|
if (mObjectImagep.isNull())
|
||||||
{
|
{
|
||||||
createObjectImage();
|
createObjectImage();
|
||||||
@@ -488,6 +499,18 @@ void LLNetMap::draw()
|
|||||||
dot_width,
|
dot_width,
|
||||||
dot_width);
|
dot_width);
|
||||||
|
|
||||||
|
// Draw chat range ring(s)
|
||||||
|
//static LLUICachedControl<bool> chat_rings("MiniMapChatRings");
|
||||||
|
static LLUICachedControl<bool> whisper_ring("MiniMapWhisperRing");
|
||||||
|
static LLUICachedControl<bool> chat_ring("MiniMapChatRing");
|
||||||
|
static LLUICachedControl<bool> shout_ring("MiniMapShoutRing");
|
||||||
|
if(whisper_ring)
|
||||||
|
drawRing(LLWorld::getInstance()->getWhisperDistance(), pos_map, map_whisper_ring_color);
|
||||||
|
if(chat_ring)
|
||||||
|
drawRing(LLWorld::getInstance()->getSayDistance(), pos_map, map_chat_ring_color);
|
||||||
|
if(shout_ring)
|
||||||
|
drawRing(LLWorld::getInstance()->getShoutDistance(), pos_map, map_shout_ring_color);
|
||||||
|
|
||||||
// Draw frustum
|
// Draw frustum
|
||||||
// <FS:CR> Aurora Sim
|
// <FS:CR> Aurora Sim
|
||||||
//F32 meters_to_pixels = mScale/ LLWorld::getInstance()->getRegionWidthInMeters();
|
//F32 meters_to_pixels = mScale/ LLWorld::getInstance()->getRegionWidthInMeters();
|
||||||
@@ -584,6 +607,22 @@ LLVector3 LLNetMap::globalPosToView(const LLVector3d& global_pos, BOOL rotated)
|
|||||||
return pos_local;
|
return pos_local;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LLNetMap::drawRing(const F32 radius, const LLVector3 pos_map, const LLColor4& color)
|
||||||
|
|
||||||
|
{
|
||||||
|
// <FS:CR> Aurora Sim
|
||||||
|
F32 meters_to_pixels = mScale / LLWorld::getInstance()->getRegionWidthInMeters();
|
||||||
|
//F32 meters_to_pixels = mScale / REGION_WIDTH_METERS;
|
||||||
|
// </FS:CR> Aurora Sim
|
||||||
|
F32 radius_pixels = radius * meters_to_pixels;
|
||||||
|
|
||||||
|
glMatrixMode(GL_MODELVIEW);
|
||||||
|
gGL.pushMatrix();
|
||||||
|
gGL.translatef((F32)pos_map.mV[VX], (F32)pos_map.mV[VY], 0.f);
|
||||||
|
gl_ring(radius_pixels, WIDTH_PIXELS, color, color, CIRCLE_STEPS, FALSE);
|
||||||
|
gGL.popMatrix();
|
||||||
|
}
|
||||||
|
|
||||||
void LLNetMap::drawTracking(const LLVector3d& pos_global, BOOL rotated,
|
void LLNetMap::drawTracking(const LLVector3d& pos_global, BOOL rotated,
|
||||||
const LLColor4& color, BOOL draw_arrow )
|
const LLColor4& color, BOOL draw_arrow )
|
||||||
{
|
{
|
||||||
@@ -1137,6 +1176,67 @@ bool LLNetMap::LLCheckRotateMap::handleEvent(LLPointer<LLEvent> event, const LLS
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool LLNetMap::LLChatRings::handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
|
||||||
|
{
|
||||||
|
BOOL all_enabled = gSavedSettings.getBOOL("MiniMapChatRings");
|
||||||
|
gSavedSettings.setBOOL("MiniMapChatRings", !all_enabled);
|
||||||
|
gSavedSettings.setBOOL("MiniMapWhisperRing", !all_enabled);
|
||||||
|
gSavedSettings.setBOOL("MiniMapChatRing", !all_enabled);
|
||||||
|
gSavedSettings.setBOOL("MiniMapShoutRing", !all_enabled);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool LLNetMap::LLWhisperRing::handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
|
||||||
|
{
|
||||||
|
BOOL all_enabled = gSavedSettings.getBOOL("MiniMapChatRings");
|
||||||
|
BOOL whisper_enabled = gSavedSettings.getBOOL("MiniMapWhisperRing");
|
||||||
|
BOOL chat_enabled = gSavedSettings.getBOOL("MiniMapChatRing");
|
||||||
|
BOOL shout_enabled = gSavedSettings.getBOOL("MiniMapShoutRing");
|
||||||
|
|
||||||
|
gSavedSettings.setBOOL("MiniMapWhisperRing", !whisper_enabled);
|
||||||
|
|
||||||
|
if(all_enabled)
|
||||||
|
gSavedSettings.setBOOL("MiniMapChatRings", !all_enabled);
|
||||||
|
else if(!whisper_enabled && chat_enabled && shout_enabled)
|
||||||
|
gSavedSettings.setBOOL("MiniMapChatRings", TRUE);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool LLNetMap::LLChatRing::handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
|
||||||
|
{
|
||||||
|
BOOL all_enabled = gSavedSettings.getBOOL("MiniMapChatRings");
|
||||||
|
BOOL whisper_enabled = gSavedSettings.getBOOL("MiniMapWhisperRing");
|
||||||
|
BOOL chat_enabled = gSavedSettings.getBOOL("MiniMapChatRing");
|
||||||
|
BOOL shout_enabled = gSavedSettings.getBOOL("MiniMapShoutRing");
|
||||||
|
|
||||||
|
gSavedSettings.setBOOL("MiniMapChatRing", !chat_enabled);
|
||||||
|
|
||||||
|
if(all_enabled)
|
||||||
|
gSavedSettings.setBOOL("MiniMapChatRings", !all_enabled);
|
||||||
|
else if(whisper_enabled && !chat_enabled && shout_enabled)
|
||||||
|
gSavedSettings.setBOOL("MiniMapChatRings", TRUE);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool LLNetMap::LLShoutRing::handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
|
||||||
|
{
|
||||||
|
BOOL all_enabled = gSavedSettings.getBOOL("MiniMapChatRings");
|
||||||
|
BOOL whisper_enabled = gSavedSettings.getBOOL("MiniMapWhisperRing");
|
||||||
|
BOOL chat_enabled = gSavedSettings.getBOOL("MiniMapChatRing");
|
||||||
|
BOOL shout_enabled = gSavedSettings.getBOOL("MiniMapShoutRing");
|
||||||
|
|
||||||
|
gSavedSettings.setBOOL("MiniMapShoutRing", !shout_enabled);
|
||||||
|
|
||||||
|
if(all_enabled)
|
||||||
|
gSavedSettings.setBOOL("MiniMapChatRings", !all_enabled);
|
||||||
|
else if(whisper_enabled && chat_enabled && !shout_enabled)
|
||||||
|
gSavedSettings.setBOOL("MiniMapChatRings", TRUE);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool LLNetMap::LLStopTracking::handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
|
bool LLNetMap::LLStopTracking::handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
|
||||||
{
|
{
|
||||||
LLTracker::stopTracking(false);
|
LLTracker::stopTracking(false);
|
||||||
|
|||||||
@@ -82,6 +82,8 @@ private:
|
|||||||
LLVector3 globalPosToView(const LLVector3d& global_pos, BOOL rotated);
|
LLVector3 globalPosToView(const LLVector3d& global_pos, BOOL rotated);
|
||||||
LLVector3d viewPosToGlobal(S32 x,S32 y, BOOL rotated);
|
LLVector3d viewPosToGlobal(S32 x,S32 y, BOOL rotated);
|
||||||
|
|
||||||
|
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,
|
BOOL rotated,
|
||||||
const LLColor4& color,
|
const LLColor4& color,
|
||||||
@@ -157,6 +159,30 @@ private:
|
|||||||
/*virtual*/ bool handleEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata);
|
/*virtual*/ bool handleEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class LLChatRings : public LLMemberListener<LLNetMap>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/*virtual*/ bool handleEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata);
|
||||||
|
};
|
||||||
|
|
||||||
|
class LLWhisperRing : public LLMemberListener<LLNetMap>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/*virtual*/ bool handleEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata);
|
||||||
|
};
|
||||||
|
|
||||||
|
class LLChatRing : public LLMemberListener<LLNetMap>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/*virtual*/ bool handleEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata);
|
||||||
|
};
|
||||||
|
|
||||||
|
class LLShoutRing : public LLMemberListener<LLNetMap>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/*virtual*/ bool handleEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata);
|
||||||
|
};
|
||||||
|
|
||||||
class LLStopTracking : public LLMemberListener<LLNetMap>
|
class LLStopTracking : public LLMemberListener<LLNetMap>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -94,6 +94,12 @@ const F32 LLWorld::mScale = 1.f;
|
|||||||
F32 LLWorld::mWidthInMeters = mWidth * mScale;
|
F32 LLWorld::mWidthInMeters = mWidth * mScale;
|
||||||
// </FS:CR> Aurora Sim
|
// </FS:CR> Aurora Sim
|
||||||
|
|
||||||
|
//TODO: This will use chat ranges
|
||||||
|
// according to opensim settings
|
||||||
|
const F32 LLWorld::mWhisperDistance = 10;
|
||||||
|
const F32 LLWorld::mSayDistance = 20;
|
||||||
|
const F32 LLWorld::mShoutDistance = 100;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Functions
|
// Functions
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -125,6 +125,10 @@ public:
|
|||||||
F32 getRegionMinHeight() const { return -mWidthInMeters; }
|
F32 getRegionMinHeight() const { return -mWidthInMeters; }
|
||||||
F32 getRegionMaxHeight() const { return MAX_OBJECT_Z; }
|
F32 getRegionMaxHeight() const { return MAX_OBJECT_Z; }
|
||||||
|
|
||||||
|
F32 getWhisperDistance() const { return mWhisperDistance; }
|
||||||
|
F32 getSayDistance() const { return mSayDistance; }
|
||||||
|
F32 getShoutDistance() const { return mShoutDistance; }
|
||||||
|
|
||||||
void updateRegions(F32 max_update_time);
|
void updateRegions(F32 max_update_time);
|
||||||
void updateVisibilities();
|
void updateVisibilities();
|
||||||
void updateParticles();
|
void updateParticles();
|
||||||
@@ -198,6 +202,10 @@ private:
|
|||||||
static F32 mWidthInMeters;
|
static F32 mWidthInMeters;
|
||||||
// </FS:CR> Aurora Sim
|
// </FS:CR> Aurora Sim
|
||||||
|
|
||||||
|
static const F32 mWhisperDistance;
|
||||||
|
static const F32 mSayDistance;
|
||||||
|
static const F32 mShoutDistance;
|
||||||
|
|
||||||
F32 mLandFarClip; // Far clip distance for land.
|
F32 mLandFarClip; // Far clip distance for land.
|
||||||
LLPatchVertexArray mLandPatch;
|
LLPatchVertexArray mLandPatch;
|
||||||
S32 mLastPacketsIn;
|
S32 mLastPacketsIn;
|
||||||
|
|||||||
@@ -24,6 +24,26 @@
|
|||||||
<on_click function="MiniMap.Rotate" userdata="" />
|
<on_click function="MiniMap.Rotate" userdata="" />
|
||||||
<on_check function="MiniMap.CheckRotate" userdata="" />
|
<on_check function="MiniMap.CheckRotate" userdata="" />
|
||||||
</menu_item_check>
|
</menu_item_check>
|
||||||
|
<menu bottom_delta="0" color="MenuDefaultBgColor" drop_shadow="true" height="175" left="0"
|
||||||
|
mouse_opaque="false" name="Chat Distance Rings" opaque="true" tear_off="false" width="125">
|
||||||
|
<menu_item_check label="Show All" name="Show All">
|
||||||
|
<on_check control="MiniMapChatRings" />
|
||||||
|
<on_click function="MiniMap.ChatRings" userdata="MiniMapChatRings" />
|
||||||
|
</menu_item_check>
|
||||||
|
<menu_item_separator />
|
||||||
|
<menu_item_check label="Show Whisper Ring" name="Show Whisper Ring">
|
||||||
|
<on_check control="MiniMapWhisperRing" />
|
||||||
|
<on_click function="MiniMap.WhisperRing" userdata="MiniMapWhisperRing" />
|
||||||
|
</menu_item_check>
|
||||||
|
<menu_item_check label="Show Chat Ring" name="Show Chat Ring">
|
||||||
|
<on_check control="MiniMapChatRing" />
|
||||||
|
<on_click function="MiniMap.ChatRing" userdata="MiniMapChatRing" />
|
||||||
|
</menu_item_check>
|
||||||
|
<menu_item_check label="Show Shout Ring" name="Show Shout Ring">
|
||||||
|
<on_check control="MiniMapShoutRing" />
|
||||||
|
<on_click function="MiniMap.ShoutRing" userdata="MiniMapShoutRing" />
|
||||||
|
</menu_item_check>
|
||||||
|
</menu>
|
||||||
<menu_item_separator />
|
<menu_item_separator />
|
||||||
<menu_item_call bottom_delta="-18" enabled = "false" height="18" label="Stop Tracking"
|
<menu_item_call bottom_delta="-18" enabled = "false" height="18" label="Stop Tracking"
|
||||||
left="0" mouse_opaque="true" name="Stop Tracking" width="128">
|
left="0" mouse_opaque="true" name="Stop Tracking" width="128">
|
||||||
@@ -41,9 +61,7 @@
|
|||||||
<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 bottom_delta="0" color="MenuDefaultBgColor" drop_shadow="true" height="175" left="0"
|
||||||
mouse_opaque="false" name="Mark" opaque="true" tear_off="false"
|
mouse_opaque="false" name="Mark" opaque="true" tear_off="false" width="125">
|
||||||
width="125">
|
|
||||||
<on_enable function="MiniMap.EnableProfile" />
|
|
||||||
<menu_item_call bottom_delta="-18" enabled = "true" height="18" label="Red"
|
<menu_item_call bottom_delta="-18" enabled = "true" height="18" label="Red"
|
||||||
left="0" mouse_opaque="true" name="Red" width="128">
|
left="0" mouse_opaque="true" name="Red" width="128">
|
||||||
<on_click function="MiniMap.setred" />
|
<on_click function="MiniMap.setred" />
|
||||||
|
|||||||
Reference in New Issue
Block a user