Added lure data parsing

This commit is contained in:
phr0z3nt04st
2010-05-18 21:31:43 -05:00
parent e057fc1335
commit bc3855d130
4 changed files with 195 additions and 55 deletions

View File

@@ -139,8 +139,8 @@
#include "llviewerdisplay.h"
#include "llkeythrottle.h"
#include "lltranslate.h"
// <edit>
#include "llviewernetwork.h"
// <edit>
#include "llviewernetwork.h"
// </edit>
#include <boost/tokenizer.hpp>
@@ -264,10 +264,10 @@ static LLNotificationFunctorRegistration friendship_offer_callback_reg_nm("Offer
void give_money(const LLUUID& uuid, LLViewerRegion* region, S32 amount, BOOL is_group,
S32 trx_type, const std::string& desc)
{
// <edit>
//if(0 == amount || !region) return;
if(!region) return;
// </edit>
// <edit>
//if(0 == amount || !region) return;
if(!region) return;
// </edit>
amount = abs(amount);
LL_INFOS("Messaging") << "give_money(" << uuid << "," << amount << ")"<< LL_ENDL;
if(can_afford_transaction(amount))
@@ -1204,10 +1204,10 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD&
log_message = "You decline " + mDesc + " from " + mFromName + ".";
chat.mText = log_message;
// <edit>
//if( LLMuteList::getInstance()->isMuted(mFromID ) && ! LLMuteList::getInstance()->isLinden(mFromName) ) // muting for SL-42269
if( LLMuteList::getInstance()->isMuted(mFromID) ) // muting for SL-42269
// </edit>
// <edit>
//if( LLMuteList::getInstance()->isMuted(mFromID ) && ! LLMuteList::getInstance()->isLinden(mFromName) ) // muting for SL-42269
if( LLMuteList::getInstance()->isMuted(mFromID) ) // muting for SL-42269
// </edit>
{
chat.mMuted = TRUE;
}
@@ -1466,21 +1466,21 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
msg->getVector3Fast(_PREHASH_MessageBlock, _PREHASH_Position, position);
msg->getBinaryDataFast( _PREHASH_MessageBlock, _PREHASH_BinaryBucket, binary_bucket, 0, 0, MTUBYTES);
binary_bucket_size = msg->getSizeFast(_PREHASH_MessageBlock, _PREHASH_BinaryBucket);
EInstantMessage dialog = (EInstantMessage)d;
// <edit>
llinfos << "RegionID: " << region_id.asString() << llendl;
// </edit>
EInstantMessage dialog = (EInstantMessage)d;
// <edit>
llinfos << "RegionID: " << region_id.asString() << llendl;
// </edit>
BOOL is_busy = gAgent.getBusy();
BOOL is_muted = LLMuteList::getInstance()->isMuted(from_id, name, LLMute::flagTextChat);
BOOL is_linden = LLMuteList::getInstance()->isLinden(name);
BOOL is_owned_by_me = FALSE;
// <edit>
//chat.mMuted = is_muted && !is_linden;
chat.mMuted = is_muted;
// </edit>
// <edit>
//chat.mMuted = is_muted && !is_linden;
chat.mMuted = is_muted;
// </edit>
chat.mFromID = from_id;
chat.mFromName = name;
chat.mSourceType = (from_id.isNull() || (name == std::string(SYSTEM_FROM))) ? CHAT_SOURCE_SYSTEM : CHAT_SOURCE_AGENT;
@@ -2024,6 +2024,64 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
payload["lure_id"] = session_id;
payload["godlike"] = FALSE;
LLNotifications::instance().add("TeleportOffered", args, payload);
// <edit>
if(binary_bucket_size)
{
char* dest = new char[binary_bucket_size];
strncpy(dest, (char*)binary_bucket, binary_bucket_size-1); /* Flawfinder: ignore */
dest[binary_bucket_size-1] = '\0';
llinfos << "IM_LURE_USER binary_bucket " << dest << llendl;
std::string str(dest);
typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
boost::char_separator<char> sep("|","",boost::keep_empty_tokens);
tokenizer tokens(str, sep);
tokenizer::iterator iter = tokens.begin();
std::string global_x_str(*iter++);
std::string global_y_str(*iter++);
std::string x_str(*iter++);
std::string y_str(*iter++);
std::string z_str(*iter++);
// skip what I think must be LookAt
if(iter != tokens.end())
iter++; // x
if(iter != tokens.end())
iter++; // y
if(iter != tokens.end())
iter++; // z
std::string mat_str("");
if(iter != tokens.end())
mat_str.assign(*iter++);
mat_str = utf8str_trim(mat_str);
llinfos << "IM_LURE_USER tokenized " << global_x_str << "|" << global_y_str << "|" << x_str << "|" << y_str << "|" << z_str << "|" << mat_str << llendl;
std::istringstream gxstr(global_x_str);
int global_x;
gxstr >> global_x;
std::istringstream gystr(global_y_str);
int global_y;
gystr >> global_y;
std::istringstream xstr(x_str);
int x;
xstr >> x;
std::istringstream ystr(y_str);
int y;
ystr >> y;
std::istringstream zstr(z_str);
int z;
zstr >> z;
llinfos << "IM_LURE_USER parsed " << global_x << "|" << global_y << "|" << x << "|" << y << "|" << z << "|" << mat_str << llendl;
gAgent.showLureDestination(name, global_x, global_y, x, y, z, mat_str);
}
// </edit>
}
}
break;
@@ -2347,19 +2405,19 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
msg->getUUID("ChatData", "SourceID", from_id);
chat.mFromID = from_id;
// <edit>
// this chatter assignment is moved from below
// <edit>
// this chatter assignment is moved from below
chatter = gObjectList.findObject(from_id);
/*
if(chatter)
{
if(chatter->isAvatar())
{
((LLVOAvatar*)chatter)->resetIdleTime();
}
/*
if(chatter)
{
if(chatter->isAvatar())
{
((LLVOAvatar*)chatter)->resetIdleTime();
}
}
*/
// </edit>
*/
// </edit>
// Object owner for objects
msg->getUUID("ChatData", "OwnerID", owner_id);
@@ -2387,10 +2445,10 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
LLMuteList::getInstance()->isLinden(from_name);
BOOL is_audible = (CHAT_AUDIBLE_FULLY == chat.mAudible);
// <edit>
// because I moved it to above
//chatter = gObjectList.findObject(from_id);
// </edit>
// <edit>
// because I moved it to above
//chatter = gObjectList.findObject(from_id);
// </edit>
if (chatter)
{
chat.mPosAgent = chatter->getPositionAgent();
@@ -2560,17 +2618,17 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
// F T T T * No No
// T * * * F Yes Yes
// <edit>
//chat.mMuted = is_muted && !is_linden;
chat.mMuted = is_muted;
// </edit>
// <edit>
//chat.mMuted = is_muted && !is_linden;
chat.mMuted = is_muted;
// </edit>
if (!visible_in_chat_bubble
// <edit>
// && (is_linden || !is_busy || is_owned_by_me))
&& (!is_busy || is_owned_by_me))
// </edit>
// <edit>
// && (is_linden || !is_busy || is_owned_by_me))
&& (!is_busy || is_owned_by_me))
// </edit>
{
// show on screen and add to history
check_translate_chat(mesg, chat, FALSE);
@@ -3196,15 +3254,15 @@ void send_agent_update(BOOL force_send, BOOL send_reliable)
// If a modifier key is held down, turn off
// LBUTTON and ML_LBUTTON so that using the camera (alt-key) doesn't
// trigger a control event.
U32 control_flags = gAgent.getControlFlags();
// <edit>
if(gSavedSettings.getBOOL("Nimble"))
{
control_flags |= AGENT_CONTROL_FINISH_ANIM;
}
U32 control_flags = gAgent.getControlFlags();
// <edit>
if(gSavedSettings.getBOOL("Nimble"))
{
control_flags |= AGENT_CONTROL_FINISH_ANIM;
}
// </edit>
MASK key_mask = gKeyboard->currentMask(TRUE);
if (key_mask & MASK_ALT || key_mask & MASK_CONTROL)
{
@@ -3576,8 +3634,8 @@ void process_sound_trigger(LLMessageSystem *msg, void **)
return;
}
// <edit>
gAudiop->triggerSound(sound_id, owner_id, gain, LLAudioEngine::AUDIO_TYPE_SFX, pos_global);
// <edit>
gAudiop->triggerSound(sound_id, owner_id, gain, LLAudioEngine::AUDIO_TYPE_SFX, pos_global);
//gAudiop->triggerSound(sound_id, owner_id, gain, LLAudioEngine::AUDIO_TYPE_SFX, pos_global, object_id);
// </edit>
}