Now this only works if you are in the same sim as the landmark. If the vector position is beyond the current sim, the map destination will be set within the sim. This makes llMapDestination mostly useless, and llRequestInventoryData almost completely useless.
To see a demonstration, make a HUD attachement with the script below from the wiki. Drop a landmark into it, the map will come up with your current sim and a spot within it highlighted.
(If you happen to have a copy of my Landmark Pal, you can try that too. It's also broken.)
Here are the questions:
- Was this change intentional?
- If so, are you going to give us a way to obtain the data from a landmark that is useable with llMapDestination, since llRequestInventoryData is now useless for this?
- If not, is it a known bug? (I have reported it)
CODE
key request;
string name;
string sim_name;
vector pos;
default
{
state_entry()
{
llAllowInventoryDrop(1);
if(llGetInventoryNumber(INVENTORY_LANDMARK))
{
name = llGetInventoryName(INVENTORY_LANDMARK,0);
request = llRequestInventoryData(name);
}
else
llWhisper(0,"Please drop a landmark on me");
}
dataserver(key id, string data)
{
if(id == request)
{
pos = (vector)data;
sim_name = llGetRegionName();
llSetText("Touch to show \""+name+"\" on the map.",<1.0,1.0,1.0>,1.0);
}
}
touch_start(integer a)
{
if(name != "")
llMapDestination(sim_name, pos, pos);
}
changed(integer a)
{
if(a & (CHANGED_INVENTORY | CHANGED_ALLOWED_DROP))
if(llGetInventoryNumber(INVENTORY_LANDMARK))
request = llRequestInventoryData(name = llGetInventoryName(INVENTORY_LANDMARK,0));
}
}