diff --git a/.gitignore b/.gitignore index 10a30655b..249fc4f4f 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ *.pyc *.orig *.rej +/edited-files.txt diff --git a/indra/llprimitive/llmaterialtable.cpp b/indra/llprimitive/llmaterialtable.cpp index 4c22203eb..e3c25dd0a 100644 --- a/indra/llprimitive/llmaterialtable.cpp +++ b/indra/llprimitive/llmaterialtable.cpp @@ -513,6 +513,14 @@ U8 LLMaterialTable::getMCode(const std::string& name) } } + // + if(name.find("MCode") == 0) + { + S32 s; + sscanf(name.c_str(), "MCode%d", &s); + return U8(s); + } + // return 0; } @@ -530,7 +538,10 @@ std::string LLMaterialTable::getName(U8 mcode) } } - return NULL; + // + //return NULL; + return llformat("MCode%d", mcode); + // } diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 1c6979c18..b40d6a7e7 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -709,7 +709,7 @@ http://www.secondlife.com BlockAvatarAppearanceMessages - + Comment Ignore's appearance messages (for simulating Ruth) Persist @@ -718,7 +718,18 @@ Boolean Value 0 - + + BroadcastViewerEffects + + Comment + Broadcast Viewer Effects + Persist + 1 + Type + Boolean + Value + 0 + BrowserProxyAddress Comment @@ -4241,17 +4252,6 @@ Value 0 - RadarChatKeysChannel - - Comment - Private channel used to broadcast the key of incoming avatars - Persist - 1 - Type - S32 - Value - -8888888 - FloaterLandRect5 Comment diff --git a/indra/newview/hbprefsinert.cpp b/indra/newview/hbprefsinert.cpp index 9316ee529..cda9a5031 100644 --- a/indra/newview/hbprefsinert.cpp +++ b/indra/newview/hbprefsinert.cpp @@ -68,6 +68,7 @@ private: BOOL mEnableLLWind; BOOL mEnableClouds; BOOL mInitialEnableClouds; + BOOL mBroadcastViewerEffects; U32 mSpeedRezInterval; U32 mLinksForChattingObjects; U32 mTimeFormat; @@ -120,6 +121,7 @@ void LLPrefsInertImpl::refreshValues() mRevokePermsOnStandUp = gSavedSettings.getBOOL("RevokePermsOnStandUp"); mEnableLLWind = gSavedSettings.getBOOL("WindEnabled"); mEnableClouds = gSavedSettings.getBOOL("CloudsEnabled"); + mBroadcastViewerEffects = gSavedSettings.getBOOL("BroadcastViewerEffects"); } void LLPrefsInertImpl::refresh() @@ -193,6 +195,8 @@ void LLPrefsInertImpl::cancel() gSavedSettings.setU32("LinksForChattingObjects", mLinksForChattingObjects); gSavedSettings.setBOOL("RevokePermsOnStandUp", mRevokePermsOnStandUp); gSavedSettings.setBOOL("WindEnabled", mEnableLLWind); + gSavedSettings.setBOOL("BroadcastViewerEffects", mBroadcastViewerEffects); + gLLWindEnabled = mEnableLLWind; if(mInitialEnableClouds != gSavedSettings.getBOOL("CloudsEnabled")) diff --git a/indra/newview/llfloateravatarlist.cpp b/indra/newview/llfloateravatarlist.cpp index c5391ffb7..1584a1396 100644 --- a/indra/newview/llfloateravatarlist.cpp +++ b/indra/newview/llfloateravatarlist.cpp @@ -68,21 +68,6 @@ typedef enum e_radar_alert_type ALERT_TYPE_CHATRANGE = 3 } ERadarAlertType; -void announce(std::string msg) -{ - //llinfos << "Radar broadcasting key: " << key.asString() << " - on channel " << gSavedSettings.getS32("RadarChatKeysChannel") << llendl; - gMessageSystem->newMessage("ScriptDialogReply"); - gMessageSystem->nextBlock("AgentData"); - gMessageSystem->addUUID("AgentID", gAgent.getID()); - gMessageSystem->addUUID("SessionID", gAgent.getSessionID()); - gMessageSystem->nextBlock("Data"); - gMessageSystem->addUUID("ObjectID", gAgent.getID()); - gMessageSystem->addS32("ChatChannel", gSavedSettings.getS32("RadarChatKeysChannel")); - gMessageSystem->addS32("ButtonIndex", 1); - gMessageSystem->addString("ButtonLabel", msg); - gAgent.sendReliableMessage(); -} - void chat_avatar_status(std::string name, LLUUID key, ERadarAlertType type, bool entering) { if (gSavedSettings.getBOOL("RadarChatAlerts")) @@ -121,10 +106,6 @@ void chat_avatar_status(std::string name, LLUUID key, ERadarAlertType type, bool LLFloaterChat::addChat(chat); } } - if (type == ALERT_TYPE_SIM && entering && gSavedSettings.getBOOL("RadarChatKeys")) - { - announce(key.asString()); - } } LLAvatarListEntry::LLAvatarListEntry(const LLUUID& id, const std::string &name, const LLVector3d &position) : @@ -1052,20 +1033,7 @@ void LLFloaterAvatarList::onClickGetKey(void *userdata) void LLFloaterAvatarList::onClickSendKeys(void *userdata) { - LLFloaterAvatarList *self = (LLFloaterAvatarList*)userdata; - std::map::iterator iter; - LLAvatarListEntry *entry; - - if (self->mAvatars.size() == 0) - return; - - for (iter = self->mAvatars.begin(); iter != self->mAvatars.end(); iter++) - { - entry = &iter->second; - - if (!entry->isDead() && entry->isInSim()) - announce(entry->getID().asString()); - } + //TODO remove } static void send_freeze(const LLUUID& avatar_id, bool freeze) diff --git a/indra/newview/llglsandbox.cpp b/indra/newview/llglsandbox.cpp index ec8076abe..cf1ff38ba 100644 --- a/indra/newview/llglsandbox.cpp +++ b/indra/newview/llglsandbox.cpp @@ -71,11 +71,12 @@ BOOL LLAgent::setLookAt(ELookAtType target_type, LLViewerObject *object, LLVector3 position) { - if (object && target_type != LOOKAT_TARGET_NONE && gSavedSettings.getBOOL("PrivateLookAt")) + if(gSavedSettings.getBOOL("PrivateLookAt")) { - target_type = LOOKAT_TARGET_NONE; - object = mAvatarObject; + if(!mLookAt || mLookAt->isDead()) + return FALSE; position.clearVec(); + return mLookAt->setLookAt(LOOKAT_TARGET_NONE, mAvatarObject, position); } if(object && object->isAttachment()) @@ -104,18 +105,11 @@ BOOL LLAgent::setLookAt(ELookAtType target_type, LLViewerObject *object, LLVecto BOOL LLAgent::setPointAt(EPointAtType target_type, LLViewerObject *object, LLVector3 position) { // disallow pointing at attachments and avatars - if (object && (object->isAttachment() || object->isAvatar())) + if (object && (object->isAttachment() || object->isAvatar()) || gSavedSettings.getBOOL("PrivateLookAt")) { return FALSE; } - if (object && target_type != POINTAT_TARGET_NONE && gSavedSettings.getBOOL("PrivateLookAt")) - { - target_type = POINTAT_TARGET_NONE; - object = NULL; - position.clearVec(); - } - if(!mPointAt || mPointAt->isDead()) { mPointAt = (LLHUDEffectPointAt *)LLHUDManager::getInstance()->createViewerEffect(LLHUDObject::LL_HUD_EFFECT_POINTAT); diff --git a/indra/newview/llhudeffectlookat.cpp b/indra/newview/llhudeffectlookat.cpp index 77461e8f0..45837fbb1 100644 --- a/indra/newview/llhudeffectlookat.cpp +++ b/indra/newview/llhudeffectlookat.cpp @@ -47,6 +47,12 @@ #include "llxmltree.h" +// +#include "llresmgr.h" +#include "llhudrender.h" +#include "llviewerwindow.h" +#include "llviewercontrol.h" +// BOOL LLHUDEffectLookAt::sDebugLookAt = FALSE; @@ -498,6 +504,8 @@ void LLHUDEffectLookAt::setSourceObject(LLViewerObject* objectp) //----------------------------------------------------------------------------- void LLHUDEffectLookAt::render() { + if (gSavedSettings.getBOOL("PrivateLookAt") && + (gAgent.getAvatarObject() == ((LLVOAvatar*)(LLViewerObject*)mSourceObject))) return; if (sDebugLookAt && mSourceObject.notNull()) { gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); @@ -521,6 +529,34 @@ void LLHUDEffectLookAt::render() gGL.vertex3f(0.f, 0.f, 1.f); } gGL.end(); gGL.popMatrix(); + // + const std::string text = ((LLVOAvatar*)(LLViewerObject*)mSourceObject)->getFullname(); + LLVector3 offset = gAgent.getCameraPositionAgent() - target; + offset.normalize(); + LLVector3 shadow_offset = offset * 0.49f; + offset *= 0.5f; + const LLFontGL* font = LLResMgr::getInstance()->getRes(LLFONT_SANSSERIF); + LLGLEnable gl_blend(GL_BLEND); + glPushMatrix(); + gViewerWindow->setupViewport(); + hud_render_utf8text(text, + target + shadow_offset, + *font, + LLFontGL::NORMAL, + -0.5f * font->getWidthF32(text) + 2.0f, + -2.0f, + LLColor4::black, + FALSE); + hud_render_utf8text(text, + target + offset, + *font, + LLFontGL::NORMAL, + -0.5f * font->getWidthF32(text), + 0.0f, + (*mAttentions)[mTargetType].mColor, + FALSE); + glPopMatrix(); + // } } diff --git a/indra/newview/llhudmanager.cpp b/indra/newview/llhudmanager.cpp index 955d78618..7d0ed57ef 100644 --- a/indra/newview/llhudmanager.cpp +++ b/indra/newview/llhudmanager.cpp @@ -79,6 +79,7 @@ void LLHUDManager::updateEffects() void LLHUDManager::sendEffects() { + if(!gSavedSettings.getBOOL("BroadcastViewerEffects"))return; S32 i; for (i = 0; i < mHUDEffects.count(); i++) { diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 4dbfa3511..615948f3a 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -4011,7 +4011,7 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags) else { LLSimpleListener* callback = mInventoryPanel->getListenerByName("Inventory.AttachCustom"); - new_item->addListener(callback, "on_click", NULL); + new_item->addListener(callback, "on_click", LLSD()); } // } diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp index ccbda7901..1285fea45 100644 --- a/indra/newview/llpanelface.cpp +++ b/indra/newview/llpanelface.cpp @@ -383,9 +383,15 @@ void LLPanelFace::getState() if( objectp && objectp->getPCode() == LL_PCODE_VOLUME - && objectp->permModify()) - { - BOOL editable = objectp->permModify(); + // + //&& objectp->permModify()) + ) + // + { + // + //BOOL editable = objectp->permModify(); + BOOL editable = TRUE; + // // only turn on auto-adjust button if there is a media renderer and the media is loaded childSetEnabled("textbox autofix",FALSE); diff --git a/indra/newview/llpanelobject.cpp b/indra/newview/llpanelobject.cpp index 75f479c16..508417f6d 100644 --- a/indra/newview/llpanelobject.cpp +++ b/indra/newview/llpanelobject.cpp @@ -164,6 +164,8 @@ BOOL LLPanelObject::postBuild() mComboMaterial = getChild("material"); childSetCommitCallback("material",onCommitMaterial,this); mComboMaterial->removeall(); + // + /* // *TODO:translate for (LLMaterialTable::info_list_t::iterator iter = LLMaterialTable::basic.mMaterialInfoList.begin(); iter != LLMaterialTable::basic.mMaterialInfoList.end(); ++iter) @@ -174,6 +176,12 @@ BOOL LLPanelObject::postBuild() mComboMaterial->add(minfop->mName); } } + */ + for(U8 mcode = 0; mcode < 0x10; mcode++) + { + mComboMaterial->add(LLMaterialTable::basic.getName(mcode)); + } + // mComboMaterialItemCount = mComboMaterial->getItemCount(); // Base Type @@ -362,9 +370,19 @@ void LLPanelObject::getState( ) } // can move or rotate only linked group with move permissions, or sub-object with move and modify perms + // + // Enables position, size, and rotation textboxes + // but they're also editable + // No arrow crap though + /* BOOL enable_move = objectp->permMove() && !objectp->isAttachment() && (objectp->permModify() || !gSavedSettings.getBOOL("EditLinkedParts")); BOOL enable_scale = objectp->permMove() && objectp->permModify(); BOOL enable_rotate = objectp->permMove() && ( (objectp->permModify() && !objectp->isAttachment()) || !gSavedSettings.getBOOL("EditLinkedParts")); + */ + BOOL enable_move = TRUE; + BOOL enable_scale = TRUE; + BOOL enable_rotate = TRUE; + // S32 selected_count = LLSelectMgr::getInstance()->getSelection()->getObjectCount(); BOOL single_volume = (LLSelectMgr::getInstance()->selectionAllPCode( LL_PCODE_VOLUME )) @@ -449,7 +467,15 @@ void LLPanelObject::getState( ) // BUG? Check for all objects being editable? S32 roots_selected = LLSelectMgr::getInstance()->getSelection()->getRootObjectCount(); - BOOL editable = root_objectp->permModify(); + // + // Makes status and material available + // I would like it if they were semi-gray, you could copy the value, + // but not editable + + //BOOL editable = root_objectp->permModify(); + BOOL editable = TRUE; + + // // Select Single Message childSetVisible("select_single", FALSE); @@ -535,6 +561,8 @@ void LLPanelObject::getState( ) { mComboMaterial->setEnabled( TRUE ); mLabelMaterial->setEnabled( TRUE ); + // + /* if (material_code == LL_MCODE_LIGHT) { if (mComboMaterial->getItemCount() == mComboMaterialItemCount) @@ -552,6 +580,9 @@ void LLPanelObject::getState( ) // *TODO:Translate mComboMaterial->setSimple(std::string(LLMaterialTable::basic.getName(material_code))); } + */ + mComboMaterial->setSimple(std::string(LLMaterialTable::basic.getName(material_code))); + // } else { @@ -721,8 +752,11 @@ void LLPanelObject::getState( ) // Cut interpretation varies based on base object type F32 cut_begin, cut_end, adv_cut_begin, adv_cut_end; - if ( selected_item == MI_SPHERE || selected_item == MI_TORUS || - selected_item == MI_TUBE || selected_item == MI_RING ) + // + //if ( selected_item == MI_SPHERE || selected_item == MI_TORUS || + // selected_item == MI_TUBE || selected_item == MI_RING ) + if(!linear_path) + // { cut_begin = begin_t; cut_end = end_t; @@ -746,7 +780,10 @@ void LLPanelObject::getState( ) F32 twist = volume_params.getTwist(); F32 twist_begin = volume_params.getTwistBegin(); // Check the path type for conversion. - if (path == LL_PCODE_PATH_LINE || path == LL_PCODE_PATH_FLEXIBLE) + // + //if (path == LL_PCODE_PATH_LINE || path == LL_PCODE_PATH_FLEXIBLE) + if(linear_path) + // { twist *= OBJECT_TWIST_LINEAR_MAX; twist_begin *= OBJECT_TWIST_LINEAR_MAX; @@ -839,7 +876,11 @@ void LLPanelObject::getState( ) BOOL top_shear_x_visible = TRUE; BOOL top_shear_y_visible = TRUE; BOOL twist_visible = TRUE; - BOOL advanced_cut_visible = FALSE; + // + // Enable advanced cut (aka dimple, aka path, aka profile cut) for everything + //BOOL advanced_cut_visible = FALSE; + BOOL advanced_cut_visible = TRUE; + // BOOL taper_visible = FALSE; BOOL skew_visible = FALSE; BOOL radius_offset_visible = FALSE; @@ -1423,8 +1464,13 @@ void LLPanelObject::getVolumeParams(LLVolumeParams& volume_params) F32 begin_s, end_s; F32 begin_t, end_t; - if (selected_type == MI_SPHERE || selected_type == MI_TORUS || - selected_type == MI_TUBE || selected_type == MI_RING) + // + //if (selected_type == MI_SPHERE || selected_type == MI_TORUS || + // selected_type == MI_TUBE || selected_type == MI_RING) + BOOL linear_path = (path == LL_PCODE_PATH_LINE) || + (path == LL_PCODE_PATH_FLEXIBLE); + if(!linear_path) + // { begin_s = adv_cut_begin; end_s = adv_cut_end; @@ -1695,7 +1741,10 @@ void LLPanelObject::sendPosition(BOOL btn_down) // Clamp the Z height const F32 height = newpos.mV[VZ]; const F32 min_height = LLWorld::getInstance()->getMinAllowedZ(mObject); - const F32 max_height = LLWorld::getInstance()->getRegionMaxHeight(); + // + //const F32 max_height = LLWorld::getInstance()->getRegionMaxHeight(); + const F32 max_height = F32(340282346638528859811704183484516925440.0f); + // if (!mObject->isAttachment()) { diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp index 6654d4f9f..fd3aaee5e 100644 --- a/indra/newview/llpreviewtexture.cpp +++ b/indra/newview/llpreviewtexture.cpp @@ -335,7 +335,10 @@ void LLPreviewTexture::draw() // virtual BOOL LLPreviewTexture::canSaveAs() const { - return mIsCopyable && !mLoadingFullImage && mImage.notNull() && !mImage->isMissingAsset(); + // + //return mIsCopyable && !mLoadingFullImage && mImage.notNull() && !mImage->isMissingAsset(); + return !mLoadingFullImage && mImage.notNull() && !mImage->isMissingAsset(); + // } @@ -361,7 +364,10 @@ void LLPreviewTexture::saveAs() } mLoadingFullImage = TRUE; getWindow()->incBusyCount(); - mImage->setLoadedCallback( LLPreviewTexture::onFileLoadedForSave, + // + //mImage->setLoadedCallback( LLPreviewTexture::onFileLoadedForSave, + mImage->setLoadedCallbackNoAux( LLPreviewTexture::onFileLoadedForSave, + // 0, TRUE, FALSE, new LLUUID( mItemUUID ) ); } @@ -424,6 +430,18 @@ void LLPreviewTexture::onFileLoadedForSave(BOOL success, } } +// +// virtual +LLUUID LLPreviewTexture::getItemID() +{ + const LLViewerInventoryItem* item = getItem(); + if(item) + { + return item->getUUID(); + } + return LLUUID::null; +} +// // It takes a while until we get height and width information. // When we receive it, reshape the window accordingly. diff --git a/indra/newview/llpreviewtexture.h b/indra/newview/llpreviewtexture.h index 3a2357387..a627c2e21 100644 --- a/indra/newview/llpreviewtexture.h +++ b/indra/newview/llpreviewtexture.h @@ -63,6 +63,9 @@ public: virtual BOOL canSaveAs() const; virtual void saveAs(); + // + virtual LLUUID getItemID(); + // virtual void loadAsset(); virtual EAssetStatus getAssetStatus(); diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index a1e21c5f1..ba7240cd1 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -1577,7 +1577,8 @@ void LLVOAvatar::getSpatialExtents(LLVector3& newMin, LLVector3& newMax) //----------------------------------------------------------------------------- void LLVOAvatar::renderCollisionVolumes() { - LLGLDepthTest gls_depth(GL_FALSE); + //BLATANTLY STOLEN FROM SIMMAN DURRR + LLGLDepthTest gls_depth(GL_FALSE); //make it so the skeleton shows through the mesh and prims (good for milfags) for (S32 i = 0; i < mNumCollisionVolumes; i++) { mCollisionVolumes[i].renderCollision(); diff --git a/indra/newview/skins/default/xui/en-us/panel_preferences_inert.xml b/indra/newview/skins/default/xui/en-us/panel_preferences_inert.xml index a245a8b54..0443b07db 100644 --- a/indra/newview/skins/default/xui/en-us/panel_preferences_inert.xml +++ b/indra/newview/skins/default/xui/en-us/panel_preferences_inert.xml @@ -125,6 +125,11 @@ label="Preview animations on the avatar instead on a dummy before uploading" left="10" mouse_opaque="true" name="preview_anim_in_world_check" radio_style="false" width="400" /> +