Some cleanup to that and missing files
This commit is contained in:
224
indra/newview/llmapresponders.cpp
Normal file
224
indra/newview/llmapresponders.cpp
Normal file
@@ -0,0 +1,224 @@
|
||||
/**
|
||||
* @file llmapresponders.cpp
|
||||
* @brief Processes responses received for map requests.
|
||||
*
|
||||
* $LicenseInfo:firstyear=2006&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2006-2010, Linden Research, Inc.
|
||||
*
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
* 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
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
*
|
||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#include "llmapresponders.h"
|
||||
|
||||
#include "llfloaterworldmap.h"
|
||||
#include "llviewerimagelist.h"
|
||||
#include "llworldmap.h"
|
||||
#include "llagent.h"
|
||||
|
||||
//virtual
|
||||
void LLMapLayerResponder::result(const LLSD& result)
|
||||
{
|
||||
llinfos << "LLMapLayerResponder::result from capabilities" << llendl;
|
||||
|
||||
S32 agent_flags = result["AgentData"]["Flags"];
|
||||
|
||||
if (agent_flags != LLWorldMap::getInstance()->mCurrentMap)
|
||||
{
|
||||
llwarns << "Invalid or out of date map image type returned!" << llendl;
|
||||
return;
|
||||
}
|
||||
|
||||
LLUUID image_id;
|
||||
//U32 left, right, top, bottom;
|
||||
|
||||
LLWorldMap::getInstance()->mMapLayers[agent_flags].clear();
|
||||
|
||||
bool use_web_map_tiles = LLWorldMap::useWebMapTiles();
|
||||
|
||||
LLSD::array_const_iterator iter;
|
||||
BOOL adjust = FALSE;
|
||||
for(iter = result["LayerData"].beginArray(); iter != result["LayerData"].endArray(); ++iter)
|
||||
{
|
||||
const LLSD& layer_data = *iter;
|
||||
|
||||
LLWorldMapLayer new_layer;
|
||||
new_layer.LayerDefined = TRUE;
|
||||
|
||||
new_layer.LayerExtents.mLeft = layer_data["Left"];
|
||||
new_layer.LayerExtents.mRight = layer_data["Right"];
|
||||
new_layer.LayerExtents.mBottom = layer_data["Bottom"];
|
||||
new_layer.LayerExtents.mTop = layer_data["Top"];
|
||||
|
||||
new_layer.LayerImageID = layer_data["ImageID"];
|
||||
// if (use_web_map_tiles)
|
||||
// {
|
||||
// new_layer.LayerImage = LLWorldMap::loadObjectsTile((U32)new_layer.LayerExtents.mLeft, (U32)new_layer.LayerExtents.mBottom); // no good... Maybe using of level 2 and higher web maps ?
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
new_layer.LayerImage = gImageList.getImage(new_layer.LayerImageID, MIPMAP_TRUE, FALSE);
|
||||
// }
|
||||
gGL.getTexUnit(0)->bind(new_layer.LayerImage.get());
|
||||
new_layer.LayerImage->setAddressMode(LLTexUnit::TAM_CLAMP);
|
||||
|
||||
F32 x_meters = F32(new_layer.LayerExtents.mLeft*REGION_WIDTH_UNITS);
|
||||
F32 y_meters = F32(new_layer.LayerExtents.mBottom*REGION_WIDTH_UNITS);
|
||||
adjust = LLWorldMap::getInstance()->extendAABB(U32(x_meters), U32(y_meters),
|
||||
U32(x_meters+REGION_WIDTH_UNITS*new_layer.LayerExtents.getWidth()),
|
||||
U32(y_meters+REGION_WIDTH_UNITS*new_layer.LayerExtents.getHeight())) || adjust;
|
||||
|
||||
LLWorldMap::getInstance()->mMapLayers[agent_flags].push_back(new_layer);
|
||||
}
|
||||
|
||||
LLWorldMap::getInstance()->mMapLoaded[agent_flags] = TRUE;
|
||||
if(adjust) gFloaterWorldMap->adjustZoomSliderBounds();
|
||||
|
||||
/*
|
||||
U32 agent_flags;
|
||||
msg->getU32Fast(_PREHASH_AgentData, _PREHASH_Flags, agent_flags);
|
||||
|
||||
if (agent_flags < 0 || agent_flags >= MAP_SIM_IMAGE_TYPES)
|
||||
{
|
||||
llwarns << "Invalid map image type returned! " << agent_flags << llendl;
|
||||
return;
|
||||
}
|
||||
*/
|
||||
|
||||
bool found_null_sim = false;
|
||||
|
||||
adjust = FALSE;
|
||||
if (result.has("MapBlocks"))
|
||||
{
|
||||
const LLSD& map_blocks = result["MapBlocks"];
|
||||
for (iter = map_blocks.beginArray(); iter != map_blocks.endArray(); ++iter)
|
||||
{
|
||||
const LLSD& map_block = *iter;
|
||||
|
||||
S32 x_regions = map_block["X"];
|
||||
S32 y_regions = map_block["Y"];
|
||||
std::string name = map_block["Name"];
|
||||
S32 access = map_block["Access"];
|
||||
S32 region_flags = map_block["RegionFlags"];
|
||||
S32 water_height = map_block["WaterHeight"];
|
||||
LLUUID image_id = map_block["MapImageID"];
|
||||
|
||||
U32 x_meters = x_regions * REGION_WIDTH_UNITS;
|
||||
U32 y_meters = y_regions * REGION_WIDTH_UNITS;
|
||||
|
||||
if (access == 255)
|
||||
{
|
||||
// This region doesn't exist
|
||||
if (LLWorldMap::getInstance()->mIsTrackingUnknownLocation &&
|
||||
LLWorldMap::getInstance()->mUnknownLocation.mdV[0] >= x_meters &&
|
||||
LLWorldMap::getInstance()->mUnknownLocation.mdV[0] < x_meters + 256 &&
|
||||
LLWorldMap::getInstance()->mUnknownLocation.mdV[1] >= y_meters &&
|
||||
LLWorldMap::getInstance()->mUnknownLocation.mdV[1] < y_meters + 256)
|
||||
{
|
||||
// We were tracking this location, but it doesn't exist
|
||||
LLWorldMap::getInstance()->mInvalidLocation = TRUE;
|
||||
}
|
||||
|
||||
found_null_sim = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
adjust = LLWorldMap::getInstance()->extendAABB(x_meters,
|
||||
y_meters,
|
||||
x_meters+REGION_WIDTH_UNITS,
|
||||
y_meters+REGION_WIDTH_UNITS) || adjust;
|
||||
U64 handle = to_region_handle(x_meters, y_meters);
|
||||
|
||||
// llinfos << "Map sim " << name << " image layer " << agent_flags << " ID " << image_id.getString() << llendl;
|
||||
|
||||
LLSimInfo* siminfo = new LLSimInfo();
|
||||
LLWorldMap::sim_info_map_t::iterator iter = LLWorldMap::getInstance()->mSimInfoMap.find(handle);
|
||||
if (iter != LLWorldMap::getInstance()->mSimInfoMap.end())
|
||||
{
|
||||
LLSimInfo* oldinfo = iter->second;
|
||||
for (S32 image=0; image<MAP_SIM_IMAGE_TYPES; ++image)
|
||||
{
|
||||
siminfo->mMapImageID[image] = oldinfo->mMapImageID[image];
|
||||
}
|
||||
delete oldinfo;
|
||||
}
|
||||
LLWorldMap::getInstance()->mSimInfoMap[handle] = siminfo;
|
||||
|
||||
siminfo->mHandle = handle;
|
||||
siminfo->mName.assign( name );
|
||||
siminfo->mAccess = access; /*Flawfinder: ignore*/
|
||||
siminfo->mRegionFlags = region_flags;
|
||||
siminfo->mWaterHeight = (F32) water_height;
|
||||
siminfo->mMapImageID[agent_flags] = image_id;
|
||||
if (use_web_map_tiles)
|
||||
{
|
||||
siminfo->mCurrentImage = LLWorldMap::loadObjectsTile((U32)x_regions, (U32)y_regions);
|
||||
}
|
||||
else
|
||||
{
|
||||
siminfo->mCurrentImage = gImageList.getImage(siminfo->mMapImageID[LLWorldMap::getInstance()->mCurrentMap], MIPMAP_TRUE, FALSE);
|
||||
}
|
||||
siminfo->mCurrentImage->setAddressMode(LLTexUnit::TAM_CLAMP);
|
||||
gGL.getTexUnit(0)->bind(siminfo->mCurrentImage.get());
|
||||
|
||||
if (siminfo->mMapImageID[2].notNull())
|
||||
{
|
||||
siminfo->mOverlayImage = gImageList.getImage(siminfo->mMapImageID[2], MIPMAP_TRUE, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
siminfo->mOverlayImage = NULL;
|
||||
}
|
||||
|
||||
if (LLWorldMap::getInstance()->mIsTrackingUnknownLocation &&
|
||||
LLWorldMap::getInstance()->mUnknownLocation.mdV[0] >= x_meters &&
|
||||
LLWorldMap::getInstance()->mUnknownLocation.mdV[0] < x_meters + 256 &&
|
||||
LLWorldMap::getInstance()->mUnknownLocation.mdV[1] >= y_meters &&
|
||||
LLWorldMap::getInstance()->mUnknownLocation.mdV[1] < y_meters + 256)
|
||||
{
|
||||
if (siminfo->mAccess == SIM_ACCESS_DOWN)
|
||||
{
|
||||
// We were tracking this location, but it doesn't exist
|
||||
LLWorldMap::getInstance()->mInvalidLocation = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// We were tracking this location, and it does exist
|
||||
bool is_tracking_dbl = LLWorldMap::getInstance()->mIsTrackingDoubleClick == TRUE;
|
||||
gFloaterWorldMap->trackLocation(LLWorldMap::getInstance()->mUnknownLocation);
|
||||
if (is_tracking_dbl)
|
||||
{
|
||||
LLVector3d pos_global = LLTracker::getTrackedPositionGlobal();
|
||||
gAgent.teleportViaLocation( pos_global );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(adjust) gFloaterWorldMap->adjustZoomSliderBounds();
|
||||
gFloaterWorldMap->updateSims(found_null_sim);
|
||||
}
|
||||
43
indra/newview/llmapresponders.h
Normal file
43
indra/newview/llmapresponders.h
Normal file
@@ -0,0 +1,43 @@
|
||||
/**
|
||||
* @file llmapresponders.h
|
||||
* @brief Processes responses received for map requests.
|
||||
*
|
||||
* $LicenseInfo:firstyear=2006&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2006-2010, Linden Research, Inc.
|
||||
*
|
||||
* Second Life Viewer Source Code
|
||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||
* 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
|
||||
* it is applied to this Source Code. View the full text of the exception
|
||||
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
||||
* online at
|
||||
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
||||
*
|
||||
* By copying, modifying or distributing this software, you acknowledge
|
||||
* that you have read and understood your obligations described above,
|
||||
* and agree to abide by those obligations.
|
||||
*
|
||||
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
||||
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#ifndef LL_LLMAPLAYERRESPONDER_H
|
||||
#define LL_LLMAPLAYERRESPONDER_H
|
||||
|
||||
#include "llhttpclient.h"
|
||||
|
||||
class LLMapLayerResponder : public LLHTTPClient::Responder
|
||||
{
|
||||
virtual void result(const LLSD& content);
|
||||
};
|
||||
|
||||
#endif // LL_LLMAPLAYERRESPONDER_H
|
||||
@@ -37,6 +37,7 @@
|
||||
#include "llregionhandle.h"
|
||||
#include "message.h"
|
||||
|
||||
|
||||
#include "llappviewer.h" // for gPacificDaylightTime
|
||||
#include "llagent.h"
|
||||
#include "llmapresponders.h"
|
||||
@@ -46,9 +47,7 @@
|
||||
#include "llviewerimagelist.h"
|
||||
#include "llviewerregion.h"
|
||||
#include "llregionflags.h"
|
||||
|
||||
#include "hippogridmanager.h"
|
||||
|
||||
#include "hippogridmanager.h"
|
||||
bool LLWorldMap::sGotMapURL = false;
|
||||
const F32 REQUEST_ITEMS_TIMER = 10.f * 60.f; // 10 minutes
|
||||
|
||||
@@ -133,9 +132,9 @@ LLWorldMap::LLWorldMap() :
|
||||
mMapLoaded[map] = FALSE;
|
||||
mMapBlockLoaded[map] = new BOOL[MAP_BLOCK_RES*MAP_BLOCK_RES];
|
||||
for (S32 idx=0; idx<MAP_BLOCK_RES*MAP_BLOCK_RES; ++idx)
|
||||
{
|
||||
{
|
||||
mMapBlockLoaded[map][idx] = FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,12 +155,12 @@ void LLWorldMap::reset()
|
||||
mSimInfoMap.clear();
|
||||
|
||||
for (S32 m=0; m<MAP_SIM_IMAGE_TYPES; ++m)
|
||||
{
|
||||
{
|
||||
mMapLoaded[m] = FALSE;
|
||||
}
|
||||
|
||||
clearSimFlags();
|
||||
|
||||
|
||||
eraseItems();
|
||||
|
||||
mMinX = U32_MAX;
|
||||
@@ -225,8 +224,8 @@ void LLWorldMap::clearSimFlags()
|
||||
{
|
||||
for (S32 map=0; map<MAP_SIM_IMAGE_TYPES; ++map)
|
||||
{
|
||||
for (S32 idx=0; idx<MAP_BLOCK_RES*MAP_BLOCK_RES; ++idx)
|
||||
{
|
||||
for (S32 idx=0; idx<MAP_BLOCK_RES*MAP_BLOCK_RES; ++idx)
|
||||
{
|
||||
mMapBlockLoaded[map][idx] = FALSE;
|
||||
}
|
||||
}
|
||||
@@ -267,7 +266,7 @@ LLSimInfo* LLWorldMap::simInfoFromName(const std::string& sim_name)
|
||||
break;
|
||||
}
|
||||
sim_info = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
return sim_info;
|
||||
}
|
||||
@@ -568,7 +567,7 @@ void LLWorldMap::processMapLayerReply(LLMessageSystem* msg, void**)
|
||||
bool LLWorldMap::useWebMapTiles()
|
||||
{
|
||||
return gSavedSettings.getBOOL("UseWebMapTiles") &&
|
||||
((gHippoGridManager->getConnectedGrid()->isSecondLife() || sGotMapURL) && LLWorldMap::getInstance()->mCurrentMap == 0);
|
||||
(( gHippoGridManager->getConnectedGrid()->isSecondLife() || sGotMapURL) && LLWorldMap::getInstance()->mCurrentMap == 0);
|
||||
}
|
||||
|
||||
// public static
|
||||
@@ -628,34 +627,34 @@ void LLWorldMap::processMapBlockReply(LLMessageSystem* msg, void**)
|
||||
|
||||
U64 handle = to_region_handle(x_meters, y_meters);
|
||||
|
||||
if (accesscode == 255)
|
||||
{
|
||||
if (accesscode == 255)
|
||||
{
|
||||
// This region doesn't exist
|
||||
if (LLWorldMap::getInstance()->mIsTrackingUnknownLocation &&
|
||||
LLWorldMap::getInstance()->mUnknownLocation.mdV[0] >= x_meters &&
|
||||
LLWorldMap::getInstance()->mUnknownLocation.mdV[0] < x_meters + 256 &&
|
||||
LLWorldMap::getInstance()->mUnknownLocation.mdV[1] >= y_meters &&
|
||||
LLWorldMap::getInstance()->mUnknownLocation.mdV[1] < y_meters + 256)
|
||||
{
|
||||
{
|
||||
// We were tracking this location, but it doesn't exist
|
||||
LLWorldMap::getInstance()->mInvalidLocation = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
found_null_sim = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
adjust = LLWorldMap::getInstance()->extendAABB(x_meters,
|
||||
y_meters,
|
||||
x_meters+REGION_WIDTH_UNITS,
|
||||
y_meters+REGION_WIDTH_UNITS) || adjust;
|
||||
|
||||
// llinfos << "Map sim " << name << " image layer " << agent_flags << " ID " << image_id.getString() << llendl;
|
||||
|
||||
|
||||
LLSimInfo* siminfo = new LLSimInfo();
|
||||
sim_info_map_t::iterator iter = LLWorldMap::getInstance()->mSimInfoMap.find(handle);
|
||||
if (iter != LLWorldMap::getInstance()->mSimInfoMap.end())
|
||||
{
|
||||
{
|
||||
LLSimInfo* oldinfo = iter->second;
|
||||
for (S32 image=0; image<MAP_SIM_IMAGE_TYPES; ++image)
|
||||
{
|
||||
@@ -690,7 +689,7 @@ void LLWorldMap::processMapBlockReply(LLMessageSystem* msg, void**)
|
||||
#ifdef IMMEDIATE_IMAGE_LOAD
|
||||
siminfo->mOverlayImage = gImageList.getImage(siminfo->mMapImageID[2], MIPMAP_TRUE, FALSE);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
siminfo->mOverlayImage = NULL;
|
||||
@@ -734,7 +733,14 @@ void LLWorldMap::processMapBlockReply(LLMessageSystem* msg, void**)
|
||||
LLWorldMap::getInstance()->mSLURLRegionHandle = 0;
|
||||
|
||||
callback(handle, LLWorldMap::getInstance()->mSLURL, image_id, LLWorldMap::getInstance()->mSLURLTeleport);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(gAgent.mLureShow)
|
||||
{
|
||||
if((x_regions == gAgent.mLureGlobalX) && (y_regions == gAgent.mLureGlobalY))
|
||||
{
|
||||
gAgent.onFoundLureDestination();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -771,92 +777,94 @@ void LLWorldMap::processMapItemReply(LLMessageSystem* msg, void**)
|
||||
LLItemInfo new_item(world_x, world_y, name, uuid, extra, extra2);
|
||||
LLSimInfo* siminfo = LLWorldMap::getInstance()->simInfoFromHandle(new_item.mRegionHandle);
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case MAP_ITEM_TELEHUB: // telehubs
|
||||
switch (type)
|
||||
{
|
||||
case MAP_ITEM_TELEHUB: // telehubs
|
||||
{
|
||||
// Telehub color, store in extra as 4 U8's
|
||||
U8 *color = (U8 *)&new_item.mExtra;
|
||||
|
||||
F32 red = fmod((F32)X * 0.11f, 1.f) * 0.8f;
|
||||
F32 green = fmod((F32)Y * 0.11f, 1.f) * 0.8f;
|
||||
F32 blue = fmod(1.5f * (F32)(X + Y) * 0.11f, 1.f) * 0.8f;
|
||||
F32 add_amt = (X % 2) ? 0.15f : -0.15f;
|
||||
add_amt += (Y % 2) ? -0.15f : 0.15f;
|
||||
F32 red = fmod((F32)X * 0.11f, 1.f) * 0.8f;
|
||||
F32 green = fmod((F32)Y * 0.11f, 1.f) * 0.8f;
|
||||
F32 blue = fmod(1.5f * (F32)(X + Y) * 0.11f, 1.f) * 0.8f;
|
||||
F32 add_amt = (X % 2) ? 0.15f : -0.15f;
|
||||
add_amt += (Y % 2) ? -0.15f : 0.15f;
|
||||
color[0] = U8((red + add_amt) * 255);
|
||||
color[1] = U8((green + add_amt) * 255);
|
||||
color[2] = U8((blue + add_amt) * 255);
|
||||
color[3] = 255;
|
||||
|
||||
// extra2 specifies whether this is an infohub or a telehub.
|
||||
if (extra2)
|
||||
{
|
||||
|
||||
// extra2 specifies whether this is an infohub or a telehub.
|
||||
if (extra2)
|
||||
{
|
||||
LLWorldMap::getInstance()->mInfohubs.push_back(new_item);
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
LLWorldMap::getInstance()->mTelehubs.push_back(new_item);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case MAP_ITEM_PG_EVENT: // events
|
||||
case MAP_ITEM_MATURE_EVENT:
|
||||
case MAP_ITEM_ADULT_EVENT:
|
||||
{
|
||||
struct tm* timep;
|
||||
// Convert to Pacific, based on server's opinion of whether
|
||||
// it's daylight savings time there.
|
||||
timep = utc_to_pacific_time(extra, gPacificDaylightTime);
|
||||
|
||||
break;
|
||||
}
|
||||
case MAP_ITEM_PG_EVENT: // events
|
||||
case MAP_ITEM_MATURE_EVENT:
|
||||
case MAP_ITEM_ADULT_EVENT:
|
||||
{
|
||||
struct tm* timep;
|
||||
// Convert to Pacific, based on server's opinion of whether
|
||||
// it's daylight savings time there.
|
||||
timep = utc_to_pacific_time(extra, gPacificDaylightTime);
|
||||
|
||||
S32 display_hour = timep->tm_hour % 12;
|
||||
if (display_hour == 0) display_hour = 12;
|
||||
S32 display_hour = timep->tm_hour % 12;
|
||||
if (display_hour == 0) display_hour = 12;
|
||||
|
||||
new_item.mToolTip = llformat( "%d:%02d %s",
|
||||
display_hour,
|
||||
timep->tm_min,
|
||||
(timep->tm_hour < 12 ? "AM" : "PM") );
|
||||
display_hour,
|
||||
timep->tm_min,
|
||||
(timep->tm_hour < 12 ? "AM" : "PM") );
|
||||
|
||||
// HACK: store Z in extra2
|
||||
// HACK: store Z in extra2
|
||||
new_item.mPosGlobal.mdV[VZ] = (F64)extra2;
|
||||
if (type == MAP_ITEM_PG_EVENT)
|
||||
{
|
||||
if (type == MAP_ITEM_PG_EVENT)
|
||||
{
|
||||
LLWorldMap::getInstance()->mPGEvents.push_back(new_item);
|
||||
}
|
||||
else if (type == MAP_ITEM_MATURE_EVENT)
|
||||
{
|
||||
}
|
||||
else if (type == MAP_ITEM_MATURE_EVENT)
|
||||
{
|
||||
LLWorldMap::getInstance()->mMatureEvents.push_back(new_item);
|
||||
}
|
||||
else if (type == MAP_ITEM_ADULT_EVENT)
|
||||
{
|
||||
}
|
||||
else if (type == MAP_ITEM_ADULT_EVENT)
|
||||
{
|
||||
LLWorldMap::getInstance()->mAdultEvents.push_back(new_item);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case MAP_ITEM_LAND_FOR_SALE: // land for sale
|
||||
case MAP_ITEM_LAND_FOR_SALE_ADULT: // adult land for sale
|
||||
{
|
||||
new_item.mToolTip = llformat("%d sq. m. L$%d", new_item.mExtra, new_item.mExtra2);
|
||||
if (type == MAP_ITEM_LAND_FOR_SALE)
|
||||
break;
|
||||
}
|
||||
case MAP_ITEM_LAND_FOR_SALE: // land for sale
|
||||
case MAP_ITEM_LAND_FOR_SALE_ADULT: // adult land for sale
|
||||
{
|
||||
new_item.mToolTip = llformat("%d sq. m. %s%d", new_item.mExtra,
|
||||
gHippoGridManager->getConnectedGrid()->getCurrencySymbol().c_str(),
|
||||
new_item.mExtra2);
|
||||
if (type == MAP_ITEM_LAND_FOR_SALE)
|
||||
{
|
||||
LLWorldMap::getInstance()->mLandForSale.push_back(new_item);
|
||||
}
|
||||
else if (type == MAP_ITEM_LAND_FOR_SALE_ADULT)
|
||||
{
|
||||
}
|
||||
else if (type == MAP_ITEM_LAND_FOR_SALE_ADULT)
|
||||
{
|
||||
LLWorldMap::getInstance()->mLandForSaleAdult.push_back(new_item);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MAP_ITEM_CLASSIFIED: // classifieds
|
||||
{
|
||||
//DEPRECATED: no longer used
|
||||
break;
|
||||
}
|
||||
case MAP_ITEM_AGENT_LOCATIONS: // agent locations
|
||||
{
|
||||
if (!siminfo)
|
||||
case MAP_ITEM_CLASSIFIED: // classifieds
|
||||
{
|
||||
//DEPRECATED: no longer used
|
||||
break;
|
||||
}
|
||||
case MAP_ITEM_AGENT_LOCATIONS: // agent locations
|
||||
{
|
||||
if (!siminfo)
|
||||
{
|
||||
llinfos << "siminfo missing for " << new_item.mPosGlobal.mdV[0] << ", " << new_item.mPosGlobal.mdV[1] << llendl;
|
||||
break;
|
||||
}
|
||||
@@ -882,11 +890,11 @@ void LLWorldMap::processMapItemReply(LLMessageSystem* msg, void**)
|
||||
if (new_item.mExtra > 0)
|
||||
{
|
||||
agentcounts.push_back(new_item);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -932,20 +940,20 @@ BOOL LLWorldMap::extendAABB(U32 min_x, U32 min_y, U32 max_x, U32 max_y)
|
||||
mMinX = min_x;
|
||||
}
|
||||
if (min_y < mMinY)
|
||||
{
|
||||
{
|
||||
rv = TRUE;
|
||||
mMinY = min_y;
|
||||
}
|
||||
if (max_x > mMaxX)
|
||||
{
|
||||
{
|
||||
rv = TRUE;
|
||||
mMaxX = max_x;
|
||||
}
|
||||
}
|
||||
if (max_y > mMaxY)
|
||||
{
|
||||
rv = TRUE;
|
||||
mMaxY = max_y;
|
||||
}
|
||||
}
|
||||
lldebugs << "World map aabb: (" << mMinX << ", " << mMinY << "), ("
|
||||
<< mMaxX << ", " << mMaxY << ")" << llendl;
|
||||
return rv;
|
||||
@@ -1022,7 +1030,7 @@ void LLWorldMap::updateTelehubCoverage()
|
||||
}
|
||||
|
||||
for (it = mSimInfoMap.begin(); it != mSimInfoMap.end(); ++it)
|
||||
{
|
||||
{
|
||||
U64 handle = (*it).first;
|
||||
LLSimInfo* info = (*it).second;
|
||||
|
||||
|
||||
@@ -1245,11 +1245,11 @@ BOOL LLWorldMapView::handleToolTip( S32 x, S32 y, std::string& msg, LLRect* stic
|
||||
|
||||
if (agent_count == 1)
|
||||
{
|
||||
message += "person";
|
||||
message += "avatar";
|
||||
}
|
||||
else
|
||||
{
|
||||
message += "people";
|
||||
message += "avatars";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user