corrected, removed, and updated comments throughout the code to be more useful. no code changes. SL-13762
parent
2b291c2732
commit
4617a37edf
|
|
@ -174,7 +174,7 @@ int main(int argc, char **argv)
|
|||
sleep(5);
|
||||
}
|
||||
|
||||
// FIXME: do some dialog stuff here?
|
||||
// *FIX: do some dialog stuff here?
|
||||
if (CRASH_BEHAVIOR_ALWAYS_SEND == crash_behavior)
|
||||
{
|
||||
gSendReport = TRUE;
|
||||
|
|
@ -219,7 +219,8 @@ int main(int argc, char **argv)
|
|||
db_filep = new LLFileEncoder("DB", db_file_name.c_str());
|
||||
|
||||
// Get the filename of the SecondLife.log file
|
||||
//FIXME tofu - get right MAX_PATH
|
||||
// *TODO tofu - get right MAX_PATH.
|
||||
// *FIX: What's up with this? This #define just can't be safe.
|
||||
#define MAX_PATH PATH_MAX
|
||||
char tmp_sl_name[MAX_PATH];
|
||||
tmp_sl_name[0] = '\0';
|
||||
|
|
|
|||
|
|
@ -1096,7 +1096,7 @@ void LLBVHLoader::optimize()
|
|||
KeyVector::iterator ki = joint->mKeys.begin();
|
||||
if (joint->mKeys.size() == 1)
|
||||
{
|
||||
//FIXME: use single frame to move pelvis
|
||||
// *FIX: use single frame to move pelvis
|
||||
// if only one keyframe force output for this joint
|
||||
rot_changed = TRUE;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -922,7 +922,8 @@ void LLKeyframeMotion::applyConstraint(JointConstraint* constraint, F32 time, U8
|
|||
target_jointp = mCharacter->findCollisionVolume(shared_data->mTargetConstraintVolume);
|
||||
if (target_jointp)
|
||||
{
|
||||
// FIXME: do proper normal calculation for stretched spheres (inverse transpose)
|
||||
// *FIX: do proper normal calculation for stretched
|
||||
// spheres (inverse transpose)
|
||||
norm = target_pos - target_jointp->getWorldPosition();
|
||||
}
|
||||
|
||||
|
|
@ -1613,7 +1614,7 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp)
|
|||
}
|
||||
}
|
||||
|
||||
// FIXME: support cleanup of old keyframe data
|
||||
// *FIX: support cleanup of old keyframe data
|
||||
LLKeyframeDataCache::addKeyframeData(getID(), mJointMotionList);
|
||||
mAssetStatus = ASSET_LOADED;
|
||||
|
||||
|
|
|
|||
|
|
@ -416,7 +416,7 @@ protected:
|
|||
class LLKeyframeDataCache
|
||||
{
|
||||
public:
|
||||
//FIXME: implement this as an actual singleton member of LLKeyframeMotion
|
||||
// *FIX: implement this as an actual singleton member of LLKeyframeMotion
|
||||
LLKeyframeDataCache(){};
|
||||
~LLKeyframeDataCache();
|
||||
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ LLMotion *LLMotionRegistry::createMotion( const LLUUID &id )
|
|||
|
||||
if ( motion_entry.getID().isNull() )
|
||||
{
|
||||
//FIXME - RN: need to replace with a better default scheme
|
||||
// *FIX: need to replace with a better default scheme. RN
|
||||
motion = LLKeyframeMotion::create(id);
|
||||
}
|
||||
else
|
||||
|
|
@ -394,7 +394,7 @@ BOOL LLMotionController::stopMotionLocally(const LLUUID &id, BOOL stop_immediate
|
|||
if (isMotionActive(motion) && !motion->isStopped())
|
||||
{
|
||||
// when using timesteps, set stop time to last frame's time, otherwise grab current timer value
|
||||
// FIXME: should investigate this inconsistency...hints of obscure bugs
|
||||
// *FIX: should investigate this inconsistency...hints of obscure bugs
|
||||
|
||||
F32 stop_time = (mTimeStep != 0.f || mPaused) ? (mTime) : mTimeOffset + (mTimer.getElapsedTimeF32() * mTimeFactor);
|
||||
motion->setStopTime(stop_time);
|
||||
|
|
|
|||
|
|
@ -364,7 +364,8 @@ LONG WINAPI default_windows_exception_handler(struct _EXCEPTION_POINTERS *except
|
|||
//
|
||||
// Generate a minidump if we can.
|
||||
//
|
||||
// FIXME: This needs to be ported over form the viewer-specific LLWinDebug class
|
||||
// TODO: This needs to be ported over form the viewer-specific
|
||||
// LLWinDebug class
|
||||
|
||||
//
|
||||
// At this point, we always want to exit the app. There's no graceful
|
||||
|
|
@ -510,10 +511,13 @@ void default_unix_signal_handler(int signum, siginfo_t *info, void *)
|
|||
{
|
||||
llinfos << "Signal handler - Got SIGCHLD from " << info->si_pid << llendl;
|
||||
}
|
||||
// Check result code for all child procs for which we've registered callbacks
|
||||
// THIS WILL NOT WORK IF SIGCHLD IS SENT w/o killing the child (Go, launcher!)
|
||||
// FIXME: Now that we're using SIGACTION, we can actually implement the launcher behavior to determine
|
||||
// who sent the SIGCHLD even if it doesn't result in child termination
|
||||
|
||||
// Check result code for all child procs for which we've
|
||||
// registered callbacks THIS WILL NOT WORK IF SIGCHLD IS SENT
|
||||
// w/o killing the child (Go, launcher!)
|
||||
// TODO: Now that we're using SIGACTION, we can actually
|
||||
// implement the launcher behavior to determine who sent the
|
||||
// SIGCHLD even if it doesn't result in child termination
|
||||
if (LLApp::sChildMap.count(info->si_pid))
|
||||
{
|
||||
LLApp::sChildMap[info->si_pid].mGotSigChild = TRUE;
|
||||
|
|
|
|||
|
|
@ -224,8 +224,9 @@ private:
|
|||
|
||||
static void runErrorHandler();
|
||||
|
||||
// FIXME: On Windows, we need a routine to reset the structured exception handler when some evil driver has taken it over for their own purposes
|
||||
|
||||
// *NOTE: On Windows, we need a routine to reset the structured
|
||||
// exception handler when some evil driver has taken it over for
|
||||
// their own purposes
|
||||
typedef int(*signal_handler_func)(int signum);
|
||||
static LLAppErrorHandler sErrorHandler;
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ void LLMortician::die()
|
|||
// It is valid to call die() more than once on something that hasn't died yet
|
||||
if (sDestroyImmediate)
|
||||
{
|
||||
//HACK: we need to do this to ensure destruction order on shutdown
|
||||
// *NOTE: This is a hack to ensure destruction order on shutdown.
|
||||
mIsDead = TRUE;
|
||||
delete this;
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -368,11 +368,12 @@ LLSD LLSDXMLParser::Impl::parse(std::istream& input)
|
|||
}
|
||||
}
|
||||
|
||||
// FIXME: This code is buggy - if the stream was empty or not good, there
|
||||
// is not buffer to parse, both the call to XML_ParseBuffer and the buffer
|
||||
// manipulations are illegal
|
||||
// futhermore, it isn't clear that the expat buffer semantics are preserved
|
||||
|
||||
// *FIX.: This code is buggy - if the stream was empty or not
|
||||
// good, there is not buffer to parse, both the call to
|
||||
// XML_ParseBuffer and the buffer manipulations are illegal
|
||||
// futhermore, it isn't clear that the expat buffer semantics are
|
||||
// preserved
|
||||
|
||||
status = XML_ParseBuffer(mParser, 0, true);
|
||||
if (status == XML_STATUS_ERROR && !mGracefullStop)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -97,10 +97,11 @@ struct DeletePairedPointerArray
|
|||
|
||||
|
||||
// Alternate version of the above so that has a more cumbersome
|
||||
// syntax, but it can be used with compositional functors. *FIX: The
|
||||
// functor retuns a bool because msdev bombs during the composition if
|
||||
// you return void. Once we upgrade to a newer compiler, the second
|
||||
// unary_function template parameter can be set to void.
|
||||
// syntax, but it can be used with compositional functors.
|
||||
// NOTE: The functor retuns a bool because msdev bombs during the
|
||||
// composition if you return void. Once we upgrade to a newer
|
||||
// compiler, the second unary_function template parameter can be set
|
||||
// to void.
|
||||
//
|
||||
// Here's a snippit showing how you use this object:
|
||||
//
|
||||
|
|
|
|||
|
|
@ -344,7 +344,7 @@ void LLCPUInfo::stream(std::ostream& s) const
|
|||
s << "Unable to collect processor info";
|
||||
}
|
||||
#else
|
||||
// *FIX: This works on linux. What will it do on other systems?
|
||||
// *NOTE: This works on linux. What will it do on other systems?
|
||||
FILE* cpuinfo = LLFile::fopen(CPUINFO_FILE, "r"); /* Flawfinder: ignore */
|
||||
if(cpuinfo)
|
||||
{
|
||||
|
|
@ -430,7 +430,7 @@ void LLMemoryInfo::stream(std::ostream& s) const
|
|||
}
|
||||
|
||||
#else
|
||||
// *FIX: This works on linux. What will it do on other systems?
|
||||
// *NOTE: This works on linux. What will it do on other systems?
|
||||
FILE* meminfo = LLFile::fopen(MEMINFO_FILE,"r"); /* Flawfinder: ignore */
|
||||
if(meminfo)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2930,7 +2930,7 @@ void LLVolume::generateSilhouetteVertices(std::vector<LLVector3> &vertices,
|
|||
if (fFacing[j] == (AWAY | TOWARDS))
|
||||
{ //this is a degenerate triangle
|
||||
//take neighbor facing (degenerate faces get facing of one of their neighbors)
|
||||
// FIXME IF NEEDED: this does not deal with neighboring degenerate faces
|
||||
// *FIX IF NEEDED: this does not deal with neighboring degenerate faces
|
||||
for (S32 k = 0; k < 3; k++)
|
||||
{
|
||||
S32 index = face.mEdge[j*3+k];
|
||||
|
|
|
|||
|
|
@ -758,7 +758,7 @@ size_t LLHTTPAssetStorage::nullOutputCallback(void *data, size_t size, size_t nm
|
|||
// this is a very limited function for use by the simstate loader and other one-offs
|
||||
S32 LLHTTPAssetStorage::getURLToFile(const LLUUID& uuid, LLAssetType::EType asset_type, const LLString &url, const char *filename, progress_callback callback, void *userdata)
|
||||
{
|
||||
// FIXME: There is no guarantee that the uuid and the asset_type match
|
||||
// *NOTE: There is no guarantee that the uuid and the asset_type match
|
||||
// - not that it matters. - Doug
|
||||
lldebugs << "LLHTTPAssetStorage::getURLToFile() - " << url << llendl;
|
||||
|
||||
|
|
|
|||
|
|
@ -472,7 +472,7 @@ BOOL LLThrottleGroup::dynamicAdjust()
|
|||
// JC - Actually, need to let mCurrentBPS go less than nominal, otherwise
|
||||
// you aren't allowing bandwidth to actually be moved from one channel
|
||||
// to another.
|
||||
// FIXME: If clamping high end, would be good to re-
|
||||
// *TODO: If clamping high end, would be good to re-
|
||||
// allocate to other channels in the above code.
|
||||
const F32 MAX_BPS = 4 * mNominalBPS[i];
|
||||
if (mCurrentBPS[i] > MAX_BPS)
|
||||
|
|
|
|||
|
|
@ -693,7 +693,8 @@ void LLTransferSourceChannel::updateTransfers()
|
|||
|
||||
if (cdp->isBlocked())
|
||||
{
|
||||
// FIXME We need to make sure that the throttle bits available gets reset.
|
||||
// *NOTE: We need to make sure that the throttle bits
|
||||
// available gets reset.
|
||||
|
||||
// We DON'T want to send any packets if they're blocked, they'll just end up
|
||||
// piling up on the other end.
|
||||
|
|
|
|||
|
|
@ -483,7 +483,7 @@ size_t headerCallback(void* data, size_t size, size_t nmemb, void* user)
|
|||
size_t headerLen = size * nmemb;
|
||||
LLURLRequestComplete* complete = (LLURLRequestComplete*)user;
|
||||
|
||||
// FIXME: This should be a utility in llstring.h: isascii()
|
||||
// *TODO: This should be a utility in llstring.h: isascii()
|
||||
for (size_t i = 0; i < headerLen; ++i)
|
||||
{
|
||||
if (headerLine[i] < 0)
|
||||
|
|
|
|||
|
|
@ -454,9 +454,9 @@ BOOL LLMessageSystem::mTimeDecodes = FALSE;
|
|||
// static, 50ms per message decode
|
||||
F32 LLMessageSystem::mTimeDecodesSpamThreshold = 0.05f;
|
||||
|
||||
// FIXME: This needs to be moved into a seperate file so that it never gets
|
||||
// *NOTE: This needs to be moved into a seperate file so that it never gets
|
||||
// included in the viewer. 30 Sep 2002 mark
|
||||
// NOTE: I don't think it's important that the messgage system tracks
|
||||
// *NOTE: I don't think it's important that the messgage system tracks
|
||||
// this since it must get set externally. 2004.08.25 Phoenix.
|
||||
static std::string g_shared_secret;
|
||||
std::string get_shared_secret();
|
||||
|
|
@ -4506,7 +4506,7 @@ void process_deny_trusted_circuit(LLMessageSystem *msg, void **)
|
|||
// times out, and allows us to re-establish it, but does
|
||||
// mean that if our shared_secret or clock is wrong, we'll
|
||||
// spin.
|
||||
// FIXME: probably should keep a count of number of resends
|
||||
// *TODO: probably should keep a count of number of resends
|
||||
// per circuit, and stop resending after a while.
|
||||
llinfos << "Got DenyTrustedCircuit. Sending CreateTrustedCircuit to "
|
||||
<< msg->getSender() << llendl;
|
||||
|
|
|
|||
|
|
@ -42,10 +42,6 @@ const U32 MESSAGE_NUMBER_OF_HASH_BUCKETS = 8192;
|
|||
|
||||
const S32 MESSAGE_MAX_PER_FRAME = 400;
|
||||
|
||||
// FIXME: This needs to be moved to a server-side only header.
|
||||
// 30 Sep 2002 mark
|
||||
//extern char *MESSAGE_SHARED_SECRET;
|
||||
|
||||
class LLMessageStringTable
|
||||
{
|
||||
public:
|
||||
|
|
@ -118,7 +114,9 @@ const F32 LL_MINIMUM_RELIABLE_TIMEOUT_SECONDS = 1.f;
|
|||
const F32 LL_MINIMUM_SEMIRELIABLE_TIMEOUT_SECONDS = 1.f;
|
||||
const F32 LL_PING_BASED_TIMEOUT_DUMMY = 0.0f;
|
||||
|
||||
// FIXME: These factors shouldn't include the msec to sec conversion implicitly
|
||||
// *NOTE: Maybe these factors shouldn't include the msec to sec conversion
|
||||
// implicitly.
|
||||
// However, all units should be MKS.
|
||||
const F32 LL_SEMIRELIABLE_TIMEOUT_FACTOR = 5.f / 1000.f; // factor * averaged ping
|
||||
const F32 LL_RELIABLE_TIMEOUT_FACTOR = 5.f / 1000.f; // factor * averaged ping
|
||||
const F32 LL_FILE_XFER_TIMEOUT_FACTOR = 5.f / 1000.f; // factor * averaged ping
|
||||
|
|
|
|||
|
|
@ -842,7 +842,7 @@ S32 LLFontGL::render(const LLWString &wstr,
|
|||
glEnd();
|
||||
}
|
||||
|
||||
//FIXME: get this working in all alignment cases, etc.
|
||||
// *FIX: get this working in all alignment cases, etc.
|
||||
if (draw_ellipses)
|
||||
{
|
||||
// recursively render ellipses at end of string
|
||||
|
|
|
|||
|
|
@ -921,7 +921,7 @@ BOOL LLImageGL::setDiscardLevel(S32 discard_level)
|
|||
}
|
||||
else
|
||||
{
|
||||
#ifndef LL_LINUX // FIXME: This should not be skipped for the linux client.
|
||||
#ifndef LL_LINUX // *FIX: This should not be skipped for the linux client.
|
||||
llerrs << "LLImageGL::setDiscardLevel() called on image without mipmaps" << llendl;
|
||||
#endif
|
||||
return FALSE;
|
||||
|
|
|
|||
|
|
@ -202,8 +202,9 @@ void LLComboBox::setEnabled(BOOL enabled)
|
|||
mButton->setEnabled(enabled);
|
||||
}
|
||||
|
||||
//FIXME: these are all hacks to support the fact that the combobox has mouse capture
|
||||
// so we can hide the list when we don't handle the mouse up event
|
||||
// *HACK: these are all hacks to support the fact that the combobox
|
||||
// has mouse capture so we can hide the list when we don't handle the
|
||||
// mouse up event
|
||||
BOOL LLComboBox::handleHover(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
if (mList->getVisible())
|
||||
|
|
|
|||
|
|
@ -887,7 +887,7 @@ void LLFloater::setFocus( BOOL b )
|
|||
last_focus->isInEnabledChain() &&
|
||||
last_focus->isInVisibleChain())
|
||||
{
|
||||
// FIXME: should handle case where focus doesn't stick
|
||||
// *FIX: should handle case where focus doesn't stick
|
||||
last_focus->setFocus(TRUE);
|
||||
}
|
||||
}
|
||||
|
|
@ -1716,7 +1716,7 @@ void LLFloaterView::restoreAll()
|
|||
floaterp->setMinimized(FALSE);
|
||||
}
|
||||
|
||||
//FIXME: make sure dependents are restored
|
||||
// *FIX: make sure dependents are restored
|
||||
|
||||
// children then deleted by default view constructor
|
||||
}
|
||||
|
|
@ -1861,7 +1861,8 @@ BOOL LLFloaterView::getCycleMode()
|
|||
|
||||
void LLFloaterView::bringToFront(LLFloater* child, BOOL give_focus)
|
||||
{
|
||||
//FIXME: make this respect floater's mAutoFocus value, instead of using parameter
|
||||
// *TODO: make this respect floater's mAutoFocus value, instead of
|
||||
// using parameter
|
||||
if (child->getHost())
|
||||
{
|
||||
// this floater is hosted elsewhere and hence not one of our children, abort
|
||||
|
|
@ -2690,7 +2691,7 @@ void LLMultiFloater::tabClose()
|
|||
|
||||
void LLMultiFloater::setVisible(BOOL visible)
|
||||
{
|
||||
//FIXME: shouldn't have to do this, fix adding to minimized multifloater
|
||||
// *FIX: shouldn't have to do this, fix adding to minimized multifloater
|
||||
LLFloater::setVisible(visible);
|
||||
|
||||
if (mTabContainer)
|
||||
|
|
|
|||
|
|
@ -216,7 +216,9 @@ BOOL LLMenuItemGL::addToAcceleratorList(std::list <LLKeyBinding*> *listp)
|
|||
accelerator = *list_it;
|
||||
if ((accelerator->mKey == mAcceleratorKey) && (accelerator->mMask == mAcceleratorMask))
|
||||
{
|
||||
//FIXME: get calling code to throw up warning or route warning messages back to app-provided output
|
||||
|
||||
// *NOTE: get calling code to throw up warning or route
|
||||
// warning messages back to app-provided output
|
||||
// LLString warning;
|
||||
// warning.append("Duplicate key binding <");
|
||||
// appendAcceleratorString( warning );
|
||||
|
|
@ -1542,7 +1544,7 @@ void LLMenuItemBranchDownGL::doIt( void )
|
|||
}
|
||||
mBranch->translate( delta_x, 0 );
|
||||
|
||||
//FIXME: get menuholder lookup working more generically
|
||||
// *TODO: get menuholder lookup working more generically
|
||||
// hide existing menus
|
||||
if (!mBranch->getTornOff())
|
||||
{
|
||||
|
|
@ -2183,7 +2185,7 @@ void LLMenuGL::arrange( void )
|
|||
{
|
||||
U32 max_width = (getParent() != NULL) ? getParent()->getRect().getWidth() : U32_MAX;
|
||||
U32 max_height = (getParent() != NULL) ? getParent()->getRect().getHeight() : U32_MAX;
|
||||
//FIXME: create the item first and then ask for its dimensions?
|
||||
// *FIX: create the item first and then ask for its dimensions?
|
||||
S32 spillover_item_width = PLAIN_PAD_PIXELS + LLFontGL::sSansSerif->getWidth( "More" );
|
||||
S32 spillover_item_height = llround(LLFontGL::sSansSerif->getLineHeight()) + MENU_ITEM_PADDING;
|
||||
|
||||
|
|
@ -3407,7 +3409,7 @@ BOOL LLPieMenu::handleMouseUp( S32 x, S32 y, MASK mask )
|
|||
mFirstMouseDown = FALSE;
|
||||
}
|
||||
|
||||
//FIXME: is this necessary?
|
||||
// *FIX: is this necessary?
|
||||
if (!mShrinkBorderTimer.getStarted())
|
||||
{
|
||||
mShrinkBorderTimer.start();
|
||||
|
|
@ -3766,7 +3768,7 @@ void LLPieMenu::show(S32 x, S32 y, BOOL mouse_down)
|
|||
LLUI::setCursorPositionLocal(getParent(), center.mX, center.mY);
|
||||
}
|
||||
|
||||
// FIXME: what happens when mouse buttons reversed?
|
||||
// *FIX: what happens when mouse buttons reversed?
|
||||
mRightMouseDown = mouse_down;
|
||||
mFirstMouseDown = mouse_down;
|
||||
mUseInfiniteRadius = TRUE;
|
||||
|
|
|
|||
|
|
@ -714,7 +714,7 @@ protected:
|
|||
};
|
||||
|
||||
|
||||
//FIXME: this is currently working, so finish implementation
|
||||
// *TODO: this is currently working, so finish implementation
|
||||
class LLEditMenuHandlerMgr
|
||||
{
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ BOOL LLResizeBar::handleHover(S32 x, S32 y, MASK mask)
|
|||
// We only handle the click if the click both started and ended within us
|
||||
if( gFocusMgr.getMouseCapture() == this )
|
||||
{
|
||||
//FIXME: this, of course, is fragile
|
||||
// *NOTE: this, of course, is fragile
|
||||
LLView* floater_view = getParent()->getParent();
|
||||
S32 floater_view_x;
|
||||
S32 floater_view_y;
|
||||
|
|
|
|||
|
|
@ -846,7 +846,7 @@ void LLTabContainer::addTabPanel(LLPanel* child,
|
|||
|
||||
if (placeholder)
|
||||
{
|
||||
//FIXME: wont work for horizontal tabs
|
||||
// *FIX: wont work for horizontal tabs
|
||||
btn_rect.translate(0, -LLBUTTON_V_PAD-2);
|
||||
LLString box_label = trimmed_label;
|
||||
LLTextBox* text = new LLTextBox(box_label, btn_rect, box_label, font);
|
||||
|
|
|
|||
|
|
@ -1543,7 +1543,7 @@ LLRect LLView::getRequiredRect()
|
|||
|
||||
const LLRect LLView::getScreenRect() const
|
||||
{
|
||||
//FIXME: check for one-off error
|
||||
// *FIX: check for one-off error
|
||||
LLRect screen_rect;
|
||||
localPointToScreen(0, 0, &screen_rect.mLeft, &screen_rect.mBottom);
|
||||
localPointToScreen(mRect.getWidth(), mRect.getHeight(), &screen_rect.mRight, &screen_rect.mTop);
|
||||
|
|
|
|||
|
|
@ -68,7 +68,9 @@ LLDir_Linux::LLDir_Linux()
|
|||
|
||||
char path [32];
|
||||
|
||||
// !!! FIXME: /proc/%d/exe doesn't work on FreeBSD.
|
||||
// *NOTE: /proc/%d/exe doesn't work on FreeBSD. But that's ok,
|
||||
// because this is the linux implementation.
|
||||
|
||||
sprintf (path, "/proc/%d/exe", (int) getpid ());
|
||||
int rc = readlink (path, tmp_str, sizeof (tmp_str)-1);
|
||||
if ( (rc != -1) && (rc <= ((int) sizeof (tmp_str)-1)) )
|
||||
|
|
@ -89,7 +91,7 @@ LLDir_Linux::LLDir_Linux()
|
|||
}
|
||||
}
|
||||
|
||||
// !!! FIXME: don't use /tmp, use $HOME/.secondlife/tmp or something.
|
||||
// *TODO: don't use /tmp, use $HOME/.secondlife/tmp or something.
|
||||
mTempDir = "/tmp";
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ BOOL LLVFile::read(U8 *buffer, S32 bytes, BOOL async, F32 priority)
|
|||
// We can't do a read while there are pending async writes
|
||||
waitForLock(VFSLOCK_APPEND);
|
||||
|
||||
// FIXME
|
||||
// *FIX: (???)
|
||||
if (async)
|
||||
{
|
||||
mHandle = sVFSThread->read(mVFS, mFileID, mFileType, buffer, mPosition, bytes, threadPri());
|
||||
|
|
@ -186,7 +186,7 @@ BOOL LLVFile::write(const U8 *buffer, S32 bytes)
|
|||
}
|
||||
BOOL success = TRUE;
|
||||
|
||||
// FIXME: allow async writes? potential problem wit mPosition...
|
||||
// *FIX: allow async writes? potential problem wit mPosition...
|
||||
if (mMode == APPEND) // all appends are async (but WRITEs are not)
|
||||
{
|
||||
U8* writebuf = new U8[bytes];
|
||||
|
|
|
|||
|
|
@ -225,8 +225,9 @@ void LLKeyboardWin32::scanKeyboard()
|
|||
// On Windows, verify key down state. JC
|
||||
if (mKeyLevel[key])
|
||||
{
|
||||
// FIXME: I KNOW there must be a better way of interrogating the key state than this, using async
|
||||
// key state can cause ALL kinds of bugs - Doug
|
||||
// *TODO: I KNOW there must be a better way of
|
||||
// interrogating the key state than this, using async key
|
||||
// state can cause ALL kinds of bugs - Doug
|
||||
if (key < KEY_BUTTON0)
|
||||
{
|
||||
// ...under windows make sure the key actually still is down.
|
||||
|
|
|
|||
|
|
@ -168,7 +168,7 @@ S32 OSMessageBox(const char* text, const char* caption, U32 type)
|
|||
}
|
||||
|
||||
S32 result = 0;
|
||||
#if LL_MESA_HEADLESS // !!! FIXME
|
||||
#if LL_MESA_HEADLESS // !!! *FIX: (???)
|
||||
llwarns << "OSMessageBox: " << text << llendl;
|
||||
return OSBTN_OK;
|
||||
#elif LL_WINDOWS
|
||||
|
|
@ -251,7 +251,7 @@ bool LLSplashScreen::isVisible()
|
|||
// static
|
||||
LLSplashScreen *LLSplashScreen::create()
|
||||
{
|
||||
#if LL_MESA_HEADLESS || LL_SDL // !!! FIXME
|
||||
#if LL_MESA_HEADLESS || LL_SDL // !!! *FIX: (???)
|
||||
return 0;
|
||||
#elif LL_WINDOWS
|
||||
return new LLSplashScreenWin32;
|
||||
|
|
|
|||
|
|
@ -194,7 +194,7 @@ LLWindowSDL::LLWindowSDL(char *title, S32 x, S32 y, S32 width,
|
|||
mOriginalAspectRatio = 1024.0 / 768.0; // !!! FIXME //(double)CGDisplayPixelsWide(mDisplay) / (double)CGDisplayPixelsHigh(mDisplay);
|
||||
|
||||
if (!title)
|
||||
title = "SDL Window"; // !!! FIXME
|
||||
title = "SDL Window"; // *FIX: (???)
|
||||
|
||||
// Stash the window title
|
||||
mWindowTitle = new char[strlen(title) + 1];
|
||||
|
|
@ -239,7 +239,7 @@ static SDL_Surface *Load_BMP_Resource(const char *basename)
|
|||
BOOL LLWindowSDL::createContext(int x, int y, int width, int height, int bits, BOOL fullscreen, BOOL disable_vsync)
|
||||
{
|
||||
//bool glneedsinit = false;
|
||||
// const char *gllibname = null; // !!! fixme
|
||||
// const char *gllibname = null;
|
||||
|
||||
llinfos << "createContext, fullscreen=" << fullscreen <<
|
||||
" size=" << width << "x" << height << llendl;
|
||||
|
|
@ -250,7 +250,6 @@ BOOL LLWindowSDL::createContext(int x, int y, int width, int height, int bits, B
|
|||
|
||||
if (SDL_Init(SDL_INIT_VIDEO) < 0)
|
||||
{
|
||||
// !!! fixme: stderr?
|
||||
llinfos << "sdl_init() failed! " << SDL_GetError() << llendl;
|
||||
setupFailure("window creation error", "error", OSMB_OK);
|
||||
return false;
|
||||
|
|
@ -306,7 +305,7 @@ BOOL LLWindowSDL::createContext(int x, int y, int width, int height, int bits, B
|
|||
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, (bits <= 16) ? 16 : 24);
|
||||
SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, (bits <= 16) ? 1 : 8);
|
||||
|
||||
// !!! FIXME: try to toggle vsync here?
|
||||
// *FIX: try to toggle vsync here?
|
||||
|
||||
mFullscreen = fullscreen;
|
||||
was_fullscreen = fullscreen;
|
||||
|
|
@ -437,7 +436,7 @@ BOOL LLWindowSDL::createContext(int x, int y, int width, int height, int bits, B
|
|||
}
|
||||
// If VRAM is not detected, that is handled later
|
||||
|
||||
#if 0 // !!! FIXME: all video cards suck under Linux. :)
|
||||
#if 0 // *FIX: all video cards suck under Linux. :)
|
||||
// Since we just created the context, it needs to be set up.
|
||||
glNeedsInit = TRUE;
|
||||
if(glNeedsInit)
|
||||
|
|
@ -510,7 +509,7 @@ BOOL LLWindowSDL::createContext(int x, int y, int width, int height, int bits, B
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
#if 0 // !!! FIXME: we're going to brave it for now...
|
||||
#if 0 // *FIX: we're going to brave it for now...
|
||||
if (alphaBits < 8)
|
||||
{
|
||||
close();
|
||||
|
|
@ -579,7 +578,7 @@ void LLWindowSDL::destroyContext()
|
|||
llinfos << "shutdownGL begins" << llendl;
|
||||
gGLManager.shutdownGL();
|
||||
llinfos << "SDL_QuitSS/VID begins" << llendl;
|
||||
SDL_QuitSubSystem(SDL_INIT_VIDEO); // !!! !!! FIXME: this might be risky...
|
||||
SDL_QuitSubSystem(SDL_INIT_VIDEO); // *FIX: this might be risky...
|
||||
//unload_all_glsyms();
|
||||
|
||||
mWindow = NULL;
|
||||
|
|
@ -603,22 +602,22 @@ LLWindowSDL::~LLWindowSDL()
|
|||
|
||||
void LLWindowSDL::show()
|
||||
{
|
||||
// !!! FIXME: What to do with SDL?
|
||||
// *FIX: What to do with SDL?
|
||||
}
|
||||
|
||||
void LLWindowSDL::hide()
|
||||
{
|
||||
// !!! FIXME: What to do with SDL?
|
||||
// *FIX: What to do with SDL?
|
||||
}
|
||||
|
||||
void LLWindowSDL::minimize()
|
||||
{
|
||||
// !!! FIXME: What to do with SDL?
|
||||
// *FIX: What to do with SDL?
|
||||
}
|
||||
|
||||
void LLWindowSDL::restore()
|
||||
{
|
||||
// !!! FIXME: What to do with SDL?
|
||||
// *FIX: What to do with SDL?
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -648,7 +647,8 @@ BOOL LLWindowSDL::getVisible()
|
|||
{
|
||||
BOOL result = FALSE;
|
||||
|
||||
// !!! FIXME: This isn't really right...
|
||||
// *FIX: This isn't really right...
|
||||
// Then what is?
|
||||
if (mWindow)
|
||||
{
|
||||
result = TRUE;
|
||||
|
|
@ -693,7 +693,7 @@ BOOL LLWindowSDL::getFullscreen()
|
|||
|
||||
BOOL LLWindowSDL::getPosition(LLCoordScreen *position)
|
||||
{
|
||||
// !!! FIXME: can anything be done with this?
|
||||
// *FIX: can anything be done with this?
|
||||
position->mX = 0;
|
||||
position->mY = 0;
|
||||
return TRUE;
|
||||
|
|
@ -729,7 +729,7 @@ BOOL LLWindowSDL::setPosition(const LLCoordScreen position)
|
|||
{
|
||||
if(mWindow)
|
||||
{
|
||||
// !!! FIXME...
|
||||
// *FIX: (???)
|
||||
//MacMoveWindow(mWindow, position.mX, position.mY, false);
|
||||
}
|
||||
|
||||
|
|
@ -740,7 +740,7 @@ BOOL LLWindowSDL::setSize(const LLCoordScreen size)
|
|||
{
|
||||
if(mWindow)
|
||||
{
|
||||
// !!! FIXME...
|
||||
// *FIX: (???)
|
||||
//SizeWindow(mWindow, size.mX, size.mY, true);
|
||||
}
|
||||
|
||||
|
|
@ -949,10 +949,10 @@ void LLWindowSDL::afterDialog()
|
|||
llinfos << "LLWindowSDL::afterDialog()" << llendl;
|
||||
if (old_fullscreen && !was_fullscreen)
|
||||
{
|
||||
// NOT YET WORKING (see below)
|
||||
// *FIX: NOT YET WORKING (see below)
|
||||
//switchContext(TRUE, old_size, TRUE);
|
||||
}
|
||||
// !!! FIXME - we need to restore the GL context using
|
||||
// *FIX: we need to restore the GL context using
|
||||
// LLViewerWindow::restoreGL() - but how??
|
||||
}
|
||||
|
||||
|
|
@ -1853,15 +1853,15 @@ void LLWindowSDL::gatherInput()
|
|||
mCallbacks->handlePaint(this, 0, 0, mWindow->w, mWindow->h);
|
||||
break;
|
||||
|
||||
case SDL_VIDEORESIZE: // !!! FIXME: handle this?
|
||||
case SDL_VIDEORESIZE: // *FIX: handle this?
|
||||
llinfos << "Handling a resize event: " << event.resize.w <<
|
||||
"x" << event.resize.h << llendl;
|
||||
|
||||
// !!! FIXME: I'm not sure this is necessary!
|
||||
// *FIX: I'm not sure this is necessary!
|
||||
mWindow = SDL_SetVideoMode(event.resize.w, event.resize.h, 32, mSDLFlags);
|
||||
if (!mWindow)
|
||||
{
|
||||
// FIXME: More informative dialog?
|
||||
// *FIX: More informative dialog?
|
||||
llinfos << "Could not recreate context after resize! Quitting..." << llendl;
|
||||
if(mCallbacks->handleCloseRequest(this))
|
||||
{
|
||||
|
|
@ -2463,7 +2463,7 @@ void spawn_web_browser(const char* escaped_url)
|
|||
|
||||
void shell_open( const char* file_path )
|
||||
{
|
||||
// !!! FIXME:
|
||||
// *FIX: (???)
|
||||
fprintf(stderr, "shell_open: %s\n", file_path);
|
||||
}
|
||||
|
||||
|
|
@ -2480,7 +2480,7 @@ void *LLWindowSDL::getPlatformWindow()
|
|||
|
||||
void LLWindowSDL::bringToFront()
|
||||
{
|
||||
// !!! FIXME:
|
||||
// *FIX: (???)
|
||||
fprintf(stderr, "bringToFront\n");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2519,7 +2519,7 @@ void LLAgent::updateLookAt(const S32 mouse_x, const S32 mouse_y)
|
|||
}
|
||||
else
|
||||
{
|
||||
//FIXME: rotate mframeagent by sit object's rotation?
|
||||
// *FIX: rotate mframeagent by sit object's rotation?
|
||||
LLQuaternion look_rotation = mAvatarObject->mIsSitting ? mAvatarObject->getRenderRotation() : mFrameAgent.getQuaternion(); // use camera's current rotation
|
||||
LLVector3 look_offset = LLVector3(2.f, 0.f, 0.f) * look_rotation * av_inv_rot;
|
||||
setLookAt(LOOKAT_TARGET_IDLE, mAvatarObject, look_offset);
|
||||
|
|
@ -2705,7 +2705,7 @@ U8 LLAgent::getRenderState()
|
|||
return 0;
|
||||
}
|
||||
|
||||
// FIXME: don't do stuff in a getter! This is infinite loop city!
|
||||
// *FIX: don't do stuff in a getter! This is infinite loop city!
|
||||
if ((mTypingTimer.getElapsedTimeF32() > TYPING_TIMEOUT_SECS)
|
||||
&& (mRenderState & AGENT_STATE_TYPING))
|
||||
{
|
||||
|
|
@ -3076,7 +3076,7 @@ void LLAgent::updateCamera()
|
|||
// where it is updated. All three of its attributes are updated: (1) position,
|
||||
// (2) focus, and (3) upvector. They can then be queried elsewhere in llAgent.
|
||||
//--------------------------------------------------------------------------------
|
||||
//FIXME: use combined rotation of frameagent and sit object
|
||||
// *TODO: use combined rotation of frameagent and sit object
|
||||
LLQuaternion avatarRotationForFollowCam = mAvatarObject->mIsSitting ? mAvatarObject->getRenderRotation() : mFrameAgent.getQuaternion();
|
||||
|
||||
LLFollowCamParams* current_cam = LLFollowCamMgr::getActiveFollowCamParams();
|
||||
|
|
@ -3452,7 +3452,7 @@ LLVector3d LLAgent::calcFocusPositionTargetGlobal()
|
|||
}
|
||||
LLVector3 focus_agent = mFocusObject->getRenderPosition() + mFocusObjectOffset;
|
||||
mFocusTargetGlobal.setVec(getPosGlobalFromAgent(focus_agent));
|
||||
//FIXME: get camera pointat behavior working
|
||||
// *FIX: get camera pointat behavior working
|
||||
//if (mTrackFocusObject)
|
||||
//{
|
||||
// mCameraFocusOffset = gAgent.getPosGlobalFromAgent(gCamera->getOrigin()) - mFocusTargetGlobal;
|
||||
|
|
@ -7119,7 +7119,7 @@ void LLAgent::queryWearableCache()
|
|||
{
|
||||
hash ^= BAKED_TEXTURE_HASH[baked_texture_index];
|
||||
num_queries++;
|
||||
//FIXME: make sure at least one request gets packed
|
||||
// *NOTE: make sure at least one request gets packed
|
||||
|
||||
//llinfos << "Requesting texture for hash " << hash << " in baked texture slot " << baked_texture_index << llendl;
|
||||
gMessageSystem->nextBlockFast(_PREHASH_WearableData);
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
#include "llinventoryview.h"
|
||||
#include "llpermissionsflags.h"
|
||||
#include "lluploaddialog.h"
|
||||
#include "llviewermenu.h" // FIXME -- for upload_new_resource()
|
||||
#include "llviewermenu.h" // for upload_new_resource()
|
||||
#include "llviewerwindow.h"
|
||||
#include "viewer.h"
|
||||
|
||||
|
|
@ -165,9 +165,9 @@ void LLNewAgentInventoryResponder::result(const LLSD& result)
|
|||
// remove the "Uploading..." message
|
||||
LLUploadDialog::modalUploadFinished();
|
||||
|
||||
// *FIX: This is a pretty big hack. What this does is check the
|
||||
// file picker if there are any more pending uploads. If so,
|
||||
// upload that file.
|
||||
// *NOTE: This is a pretty big hack. What this does is check
|
||||
// the file picker if there are any more pending uploads. If
|
||||
// so, upload that file.
|
||||
const char* next_file = LLFilePicker::instance().getNextFile();
|
||||
if(next_file)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -613,7 +613,7 @@ void LLAvatarTracker::processNotify(LLMessageSystem* msg, bool online)
|
|||
// we were tracking someone who went offline
|
||||
deleteTrackingData();
|
||||
}
|
||||
//FIXME get actual inventory id
|
||||
// *TODO: get actual inventory id
|
||||
gInventory.addChangedMask(LLInventoryObserver::CALLING_CARD, LLUUID::null);
|
||||
}
|
||||
if(notify)
|
||||
|
|
|
|||
|
|
@ -56,10 +56,6 @@ private:
|
|||
|
||||
void buildDirname( void );
|
||||
|
||||
#if LL_WINDOWS
|
||||
//FIXME
|
||||
#endif
|
||||
|
||||
#if LL_DARWIN
|
||||
NavDialogCreationOptions mNavOptions;
|
||||
static pascal void doNavCallbackEvent(NavEventCallbackMessage callBackSelector,
|
||||
|
|
|
|||
|
|
@ -668,7 +668,8 @@ void LLDrawable::updateTexture()
|
|||
return;
|
||||
}
|
||||
|
||||
//FIXME: this updates textures on all faces in this drawable, not just the viewer object we care about
|
||||
// *FIX: this updates textures on all faces in this drawable, not
|
||||
// just the viewer object we care about
|
||||
if (mVObjp->getNumTEs())
|
||||
{
|
||||
// For each face in this drawable, change the drawpool if necessary.
|
||||
|
|
@ -768,9 +769,9 @@ void LLDrawable::shiftPos(const LLVector3 &shift_vector)
|
|||
mXform.setScale(1,1,1);
|
||||
mXform.updateMatrix();
|
||||
|
||||
if (isStatic() || //DP FIXME: don't know why this is happening, but
|
||||
//some terrain patches are becoming active
|
||||
//(earth quake, maybe?)
|
||||
if (isStatic() || // *FIX: don't know why this is happening, but
|
||||
// some terrain patches are becoming active
|
||||
// (earth quake, maybe?) DP
|
||||
getRenderType() == LLPipeline::RENDER_TYPE_TERRAIN)
|
||||
{
|
||||
LLStrider<LLVector3> verticesp;
|
||||
|
|
|
|||
|
|
@ -1007,10 +1007,10 @@ void LLDrawPoolTerrain::renderOwnership()
|
|||
glClientActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
|
||||
// HACK: Because the region is 256 meters wide, but has 257 pixels, the
|
||||
// texture coordinates for pixel 256x256 is not 1,1. This makes the
|
||||
// ownership map not line up with the selection. Fix this with a texture
|
||||
// matrix multiply.
|
||||
// *NOTE: Because the region is 256 meters wide, but has 257 pixels, the
|
||||
// texture coordinates for pixel 256x256 is not 1,1. This makes the
|
||||
// ownership map not line up with the selection. We address this with
|
||||
// a texture matrix multiply.
|
||||
glMatrixMode(GL_TEXTURE);
|
||||
glPushMatrix();
|
||||
|
||||
|
|
|
|||
|
|
@ -622,7 +622,7 @@ void LLFace::renderForSelect() const
|
|||
S32 name = mVObjp->mGLName;
|
||||
|
||||
LLColor4U color((U8)(name >> 16), (U8)(name >> 8), (U8)name);
|
||||
#if 0 // FIXME: Postponing this fix until we have texcoord pick info...
|
||||
#if 0 // *FIX: Postponing this fix until we have texcoord pick info...
|
||||
if (mTEOffset != -1)
|
||||
{
|
||||
color.mV[VALPHA] = (U8)(getTextureEntry()->getColor().mV[VALPHA] * 255.f);
|
||||
|
|
|
|||
|
|
@ -270,8 +270,9 @@ void LLFloaterBuy::onClickBuy(void*)
|
|||
LLUUID category_id;
|
||||
category_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_OBJECT);
|
||||
|
||||
// FIXME: doesn't work for multiple object buy, which UI does not currently support
|
||||
// sale info is used for verification only, if it doesn't match region info then sale is canceled
|
||||
// *NOTE: doesn't work for multiple object buy, which UI does not
|
||||
// currently support sale info is used for verification only, if
|
||||
// it doesn't match region info then sale is canceled.
|
||||
gSelectMgr->sendBuy(gAgent.getID(), category_id, sInstance->mSaleInfo );
|
||||
|
||||
sInstance->close();
|
||||
|
|
|
|||
|
|
@ -259,8 +259,9 @@ void LLFloaterBuyContents::onClickBuy(void*)
|
|||
LLUUID category_id;
|
||||
category_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_CATEGORY);
|
||||
|
||||
// FIXME: doesn't work for multiple object buy, which UI does not currently support
|
||||
// sale info is used for verification only, if it doesn't match region info then sale is canceled
|
||||
// *NOTE: doesn't work for multiple object buy, which UI does not
|
||||
// currently support sale info is used for verification only, if
|
||||
// it doesn't match region info then sale is canceled.
|
||||
gSelectMgr->sendBuy(gAgent.getID(), category_id, sInstance->mSaleInfo);
|
||||
|
||||
sInstance->close();
|
||||
|
|
|
|||
|
|
@ -330,8 +330,10 @@ void LLFloaterBuyLandUI::updateAgentInfo()
|
|||
{
|
||||
mAgentCommittedTier = gStatusBar->getSquareMetersCommitted();
|
||||
mAgentCashBalance = gStatusBar->getBalance();
|
||||
|
||||
// *TODO: This is an approximation, we should send this value down
|
||||
// to the viewer. See SL-10728 for details.
|
||||
mAgentHasNeverOwnedLand = mAgentCommittedTier == 0;
|
||||
// FIXME: this is an approximation, see SL-10728
|
||||
}
|
||||
|
||||
void LLFloaterBuyLandUI::updateParcelInfo()
|
||||
|
|
@ -493,7 +495,7 @@ void LLFloaterBuyLandUI::updateParcelInfo()
|
|||
return;
|
||||
}
|
||||
|
||||
// FIXME: There should be a check based on the database value
|
||||
// *TODO: There should be a check based on the database value
|
||||
// indra.user.ever_owned_land, only that value never makes it
|
||||
// to the viewer, see SL-10728
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ BOOL LLFloaterScriptDebug::postBuild()
|
|||
|
||||
if (mTabContainer)
|
||||
{
|
||||
// FIXME: apparantly fails for tab containers?
|
||||
// *FIX: apparantly fails for tab containers?
|
||||
// mTabContainer->requires("all_scripts", WIDGET_TYPE_FLOATER);
|
||||
// mTabContainer->checkRequirements();
|
||||
return TRUE;
|
||||
|
|
|
|||
|
|
@ -442,7 +442,7 @@ void LLSnapshotLivePreview::draw()
|
|||
glColor4fv(image_color.mV);
|
||||
LLViewerImage::bindTexture(mViewerImage[old_image_index]);
|
||||
// calculate UV scale
|
||||
//FIXME get this to work with old image
|
||||
// *FIX get this to work with old image
|
||||
BOOL rescale = !mImageScaled[old_image_index] && mViewerImage[mCurImageIndex].notNull();
|
||||
F32 uv_width = rescale ? llmin((F32)mWidth[old_image_index] / (F32)mViewerImage[mCurImageIndex]->getWidth(), 1.f) : 1.f;
|
||||
F32 uv_height = rescale ? llmin((F32)mHeight[old_image_index] / (F32)mViewerImage[mCurImageIndex]->getHeight(), 1.f) : 1.f;
|
||||
|
|
@ -540,7 +540,7 @@ void LLSnapshotLivePreview::onIdle( void* snapshot_preview )
|
|||
|
||||
if (previewp->getSnapshotType() == SNAPSHOT_POSTCARD)
|
||||
{
|
||||
//FIXME: just resize and reuse existing jpeg?
|
||||
// *FIX: just resize and reuse existing jpeg?
|
||||
previewp->mJPEGImage = NULL; // deletes image
|
||||
previewp->mJPEGImage = new LLImageJPEG();
|
||||
previewp->mJPEGImage->setEncodeQuality(llclamp(previewp->mSnapshotQuality, 0, 100));
|
||||
|
|
|
|||
|
|
@ -527,7 +527,8 @@ void LLFloaterWorldMap::trackAvatar( const LLUUID& avatar_id, const LLString& na
|
|||
if(iface->setCurrentByID(avatar_id) || gAgent.isGodlike())
|
||||
{
|
||||
// *HACK: Adjust Z values automatically for liaisons & gods so
|
||||
// we swoop down when they click on the map.
|
||||
// they swoop down when they click on the map. Requested
|
||||
// convenience.
|
||||
if(gAgent.isGodlike())
|
||||
{
|
||||
childSetValue("spin z", LLSD(200.f));
|
||||
|
|
@ -671,8 +672,9 @@ void LLFloaterWorldMap::updateLocation()
|
|||
|
||||
if (status == LLTracker::TRACKING_AVATAR)
|
||||
{
|
||||
// *HACK: Adjust Z values automatically for liaisons & gods so
|
||||
// we swoop down when they click on the map.
|
||||
// *HACK: Adjust Z values automatically for liaisons &
|
||||
// gods so they swoop down when they click on the
|
||||
// map. Requested convenience.
|
||||
if(gAgent.isGodlike())
|
||||
{
|
||||
pos_global[2] = 200;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
#include "llinventory.h"
|
||||
|
||||
#include "llcallbacklist.h"
|
||||
#include "llinventoryclipboard.h" // *FIX: remove this!!!!
|
||||
#include "llinventoryclipboard.h" // *TODO: remove this once hack below gone.
|
||||
#include "llinventoryview.h"// hacked in for the bonus context menu items.
|
||||
#include "llkeyboard.h"
|
||||
#include "lllineeditor.h"
|
||||
|
|
@ -39,7 +39,9 @@
|
|||
#include "llvoavatar.h"
|
||||
#include "llfloaterproperties.h"
|
||||
|
||||
//RN: HACK
|
||||
// RN: HACK
|
||||
// We need these because some of the code below relies on things like
|
||||
// gAgent root folder. Remove them once the abstraction leak is fixed.
|
||||
#include "llagent.h"
|
||||
#include "viewer.h"
|
||||
|
||||
|
|
@ -400,10 +402,11 @@ void LLFolderViewItem::dirtyFilter()
|
|||
}
|
||||
}
|
||||
|
||||
// *FIX: This can be optimized a lot by simply recording that it is selected in
|
||||
// the appropriate places, and assuming that set selection means 'deselect' for a
|
||||
// leaf item. Do this optimization after multiple selection is implemented to
|
||||
// make sure it all plays nice together.
|
||||
// *TODO: This can be optimized a lot by simply recording that it is
|
||||
// selected in the appropriate places, and assuming that set selection
|
||||
// means 'deselect' for a leaf item. Do this optimization after
|
||||
// multiple selection is implemented to make sure it all plays nice
|
||||
// together.
|
||||
BOOL LLFolderViewItem::setSelection(LLFolderViewItem* selection, BOOL open,
|
||||
BOOL take_keyboard_focus)
|
||||
{
|
||||
|
|
@ -634,7 +637,8 @@ BOOL LLFolderViewItem::handleHover( S32 x, S32 y, MASK mask )
|
|||
{
|
||||
LLToolDragAndDrop::ESource src = LLToolDragAndDrop::SOURCE_WORLD;
|
||||
|
||||
//FIXME: push this into listener and remove dependency on llagent
|
||||
// *TODO: push this into listener and remove
|
||||
// dependency on llagent
|
||||
if(mListener && gInventory.isObjectDescendentOf(mListener->getUUID(), gAgent.getInventoryRootID()))
|
||||
{
|
||||
src = LLToolDragAndDrop::SOURCE_AGENT;
|
||||
|
|
@ -3452,7 +3456,7 @@ BOOL LLFolderView::canCopy()
|
|||
// copy selected item
|
||||
void LLFolderView::copy()
|
||||
{
|
||||
// *FIX: total hack to clear the inventory clipboard
|
||||
// *NOTE: total hack to clear the inventory clipboard
|
||||
LLInventoryClipboard::instance().reset();
|
||||
S32 count = mSelectedItems.size();
|
||||
if(getVisible() && mEnabled && (count > 0))
|
||||
|
|
@ -3493,7 +3497,7 @@ BOOL LLFolderView::canPaste()
|
|||
selected_items_t::iterator item_it;
|
||||
for (item_it = mSelectedItems.begin(); item_it != mSelectedItems.end(); ++item_it)
|
||||
{
|
||||
//FIXME: only check folders and parent folders of items
|
||||
// *TODO: only check folders and parent folders of items
|
||||
LLFolderViewItem* item = (*item_it);
|
||||
LLFolderViewEventListener* listener = item->getListener();
|
||||
if(!listener || !listener->isClipboardPasteable())
|
||||
|
|
@ -4614,7 +4618,7 @@ void LLInventoryFilter::setHoursAgo(U32 hours)
|
|||
{
|
||||
if (mFilterOps.mHoursAgo != hours)
|
||||
{
|
||||
//FIXME: need to cache last filter time, in case filter goes stale
|
||||
// *NOTE: need to cache last filter time, in case filter goes stale
|
||||
BOOL less_restrictive = (mFilterOps.mMinDate == 0 && mFilterOps.mMaxDate == U32_MAX && hours > mFilterOps.mHoursAgo);
|
||||
BOOL more_restrictive = (mFilterOps.mMinDate == 0 && mFilterOps.mMaxDate == U32_MAX && hours <= mFilterOps.mHoursAgo);
|
||||
mFilterOps.mHoursAgo = hours;
|
||||
|
|
|
|||
|
|
@ -1386,7 +1386,7 @@ void LLGroupMgr::sendGroupRoleMembersRequest(const LLUUID& group_id)
|
|||
if (!group_datap->isMemberDataComplete()
|
||||
|| !group_datap->isRoleDataComplete())
|
||||
{
|
||||
// TODO: KLW FIXME: Should we start a member or role data request?
|
||||
// *TODO: KLW FIXME: Should we start a member or role data request?
|
||||
llinfos << " Pending: " << (group_datap->mPendingRoleMemberRequest ? "Y" : "N")
|
||||
<< " MemberDataComplete: " << (group_datap->mMemberDataComplete ? "Y" : "N")
|
||||
<< " RoleDataComplete: " << (group_datap->mRoleDataComplete ? "Y" : "N") << llendl;
|
||||
|
|
|
|||
|
|
@ -466,7 +466,9 @@ void LLHUDEffectLookAt::calcTargetPosition()
|
|||
}
|
||||
else if (looking_at_self && gAgent.cameraCustomizeAvatar())
|
||||
{
|
||||
//FIXME: have animation overrides for lookat behavior and then we don't need to do this
|
||||
// *NOTE: We have to do this because animation
|
||||
// overrides do not set lookat behavior.
|
||||
// *TODO: animation overrides for lookat behavior.
|
||||
objRot = avatarp->mPelvisp->getWorldRotation();
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -115,8 +115,6 @@ void LLHUDEffectPointAt::packData(LLMessageSystem *mesgsys)
|
|||
mLastSendTime = mTimer.getElapsedTimeF32();
|
||||
}
|
||||
|
||||
//FIXME: avatar selection does a weird double take
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// unpackData()
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -148,19 +148,19 @@ void LLHUDText::renderText(BOOL for_select)
|
|||
|
||||
mOffsetY = lltrunc(mHeight * ((mVertAlignment == ALIGN_VERT_CENTER) ? 0.5f : 1.f));
|
||||
|
||||
//FIXME: cache this image
|
||||
// *TODO: cache this image
|
||||
LLUUID image_id;
|
||||
image_id.set(gViewerArt.getString("rounded_square.tga"));
|
||||
LLViewerImage* imagep = gImageList.getImage(image_id, MIPMAP_FALSE, TRUE);
|
||||
|
||||
//FIXME: make this a per-text setting
|
||||
// *TODO: make this a per-text setting
|
||||
LLColor4 bg_color = gSavedSettings.getColor4("BackgroundChatColor");
|
||||
bg_color.setAlpha(gSavedSettings.getF32("ChatBubbleOpacity") * alpha_factor);
|
||||
|
||||
const S32 border_height = 16;
|
||||
const S32 border_width = 16;
|
||||
|
||||
//FIXME move this into helper function
|
||||
// *TODO move this into helper function
|
||||
F32 border_scale = 1.f;
|
||||
|
||||
if (border_height * 2 > mHeight)
|
||||
|
|
@ -939,7 +939,7 @@ void LLHUDText::renderAllHUD()
|
|||
void LLHUDText::addPickable(std::set<LLViewerObject*> &pick_list)
|
||||
{
|
||||
//this might put an object on the pick list a second time, overriding it's mGLName, which is ok
|
||||
//FIXME: we should probably cull against pick frustum
|
||||
// *FIX: we should probably cull against pick frustum
|
||||
VisibleTextObjectIterator text_it;
|
||||
for (text_it = sVisibleTextObjects.begin(); text_it != sVisibleTextObjects.end(); ++text_it)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -183,7 +183,7 @@ BOOL LLInvFVBridge::isItemMovable()
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
//FIXME: make sure this does the right thing
|
||||
// *TODO: make sure this does the right thing
|
||||
void LLInvFVBridge::showProperties()
|
||||
{
|
||||
LLShowProps::showProperties(mUUID);
|
||||
|
|
@ -420,7 +420,7 @@ void LLInvFVBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
|
|||
hideContextEntries(menu, items, disabled_items);
|
||||
}
|
||||
|
||||
//FIXME: remove this
|
||||
// *TODO: remove this
|
||||
BOOL LLInvFVBridge::startDrag(EDragAndDropType* type, LLUUID* id)
|
||||
{
|
||||
BOOL rv = FALSE;
|
||||
|
|
@ -3366,7 +3366,7 @@ void LLLSLTextBridge::openItem()
|
|||
// | LLWearableBridge |
|
||||
// +=================================================+
|
||||
|
||||
// HACK to get from avatar inventory to avatar
|
||||
// *NOTE: hack to get from avatar inventory to avatar
|
||||
void wear_inventory_item_on_avatar( LLInventoryItem* item )
|
||||
{
|
||||
if(item)
|
||||
|
|
@ -3663,7 +3663,7 @@ void wear_inventory_category(LLInventoryCategory* category, bool copy, bool appe
|
|||
}
|
||||
}
|
||||
|
||||
// HACK to get from avatar inventory to avatar
|
||||
// *NOTE: hack to get from avatar inventory to avatar
|
||||
void wear_inventory_category_on_avatar( LLInventoryCategory* category, BOOL append )
|
||||
{
|
||||
// Avoid unintentionally overwriting old wearables. We have to do
|
||||
|
|
@ -4161,7 +4161,8 @@ void LLWearableBridge::openItem()
|
|||
}
|
||||
else if(item)
|
||||
{
|
||||
// *FIX: Could in theory fetch and then do the operation above.
|
||||
// *TODO: We should fetch the item details, and then do
|
||||
// the operation above.
|
||||
gViewerWindow->alertXml("CannotWearInfoNotComplete");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ LLManipRotate::LLManipRotate( LLToolComposite* composite )
|
|||
|
||||
void LLManipRotate::handleSelect()
|
||||
{
|
||||
//FIXME: put this in mouseDown?
|
||||
// *FIX: put this in mouseDown?
|
||||
gSelectMgr->saveSelectedObjectTransform(SELECT_ACTION_TYPE_PICK);
|
||||
gFloaterTools->setStatusText("Drag colored bands to rotate object");
|
||||
}
|
||||
|
|
@ -1292,7 +1292,7 @@ LLVector3 LLManipRotate::getConstraintAxis()
|
|||
LLSelectNode* first_node = gSelectMgr->getFirstMoveableNode(TRUE);
|
||||
if (first_node)
|
||||
{
|
||||
//FIXME: get agent local attachment grid working
|
||||
// *FIX: get agent local attachment grid working
|
||||
// Put rotation into frame of first selected root object
|
||||
axis = axis * grid_rotation;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1896,7 +1896,6 @@ LLVector3 LLManipScale::cornerToUnitVector( S32 part ) const
|
|||
LLVector3 LLManipScale::edgeToUnitVector( S32 part ) const
|
||||
{
|
||||
llassert( (LL_EDGE_MIN <= part) && (part <= LL_EDGE_MAX) );
|
||||
//FIXME
|
||||
part -= LL_EDGE_MIN;
|
||||
S32 rotation = part >> 2; // Edge between which faces: 0 => XY, 1 => YZ, 2 => ZX
|
||||
LLVector3 v;
|
||||
|
|
|
|||
|
|
@ -612,7 +612,7 @@ BOOL LLManipTranslate::handleHover(S32 x, S32 y, MASK mask)
|
|||
}
|
||||
|
||||
// Clamp to arrow direction
|
||||
//FIXME: does this apply anymore?
|
||||
// *FIX: does this apply anymore?
|
||||
if (!axis_exists)
|
||||
{
|
||||
axis_magnitude = relative_move.normVec();
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ public:
|
|||
static void toggle(void*);
|
||||
static BOOL visible(void*);
|
||||
|
||||
// HACK for agent-driven button highlighting
|
||||
// This function is used for agent-driven button highlighting
|
||||
static LLFloaterMove* getInstance() { return sInstance; }
|
||||
|
||||
protected:
|
||||
|
|
|
|||
|
|
@ -598,9 +598,10 @@ BOOL LLNetMap::handleToolTip( S32 x, S32 y, LLString& msg, LLRect* sticky_rect_s
|
|||
region->getHost().getString(buffer, MAX_STRING);
|
||||
msg.append(buffer);
|
||||
#endif
|
||||
// FIXME: put in XML so it can be translated
|
||||
// *TODO: put this under the control of XUI so it can be
|
||||
// translated.
|
||||
msg.append("\n(Double-click to open Map)");
|
||||
|
||||
|
||||
S32 SLOP = 4;
|
||||
localPointToScreen(
|
||||
x - SLOP, y - SLOP,
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
#include "lltooldraganddrop.h"
|
||||
#include "lluiconstants.h"
|
||||
#include "llvoavatar.h"
|
||||
#include "llviewermenu.h" // FIXME: for is_agent_friend()
|
||||
#include "llviewermenu.h" // *FIX: for is_agent_friend()
|
||||
#include "llviewerobjectlist.h"
|
||||
#include "llviewerregion.h"
|
||||
#include "llviewborder.h"
|
||||
|
|
@ -184,7 +184,7 @@ BOOL LLDropTarget::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
|
|||
if(gInventory.getItem(inv_item->getUUID())
|
||||
&& LLToolDragAndDrop::isInventoryGiveAcceptable(inv_item))
|
||||
{
|
||||
//FIXME: get multiple object transfers working
|
||||
// *TODO: get multiple object transfers working
|
||||
*accept = ACCEPT_YES_COPY_SINGLE;
|
||||
if(drop)
|
||||
{
|
||||
|
|
@ -206,7 +206,7 @@ BOOL LLDropTarget::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
|
|||
LLViewerInventoryCategory* inv_cat = (LLViewerInventoryCategory*)cargo_data;
|
||||
if( gInventory.getCategory( inv_cat->getUUID() ) )
|
||||
{
|
||||
//FIXME: get multiple object transfers working
|
||||
// *TODO: get multiple object transfers working
|
||||
*accept = ACCEPT_YES_COPY_SINGLE;
|
||||
if(drop)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -141,9 +141,6 @@ void LLPanelContents::onClickNewScript(void *userdata)
|
|||
}
|
||||
if(object)
|
||||
{
|
||||
// *HACK: In order to resolve SL-22177, we need to create the
|
||||
// script first, and then you have to click it in inventory to
|
||||
// edit it. Bring this back when the functionality is secure.
|
||||
LLPermissions perm;
|
||||
perm.init(gAgent.getID(), gAgent.getID(), LLUUID::null, LLUUID::null);
|
||||
perm.initMasks(
|
||||
|
|
@ -168,6 +165,13 @@ void LLPanelContents::onClickNewScript(void *userdata)
|
|||
LLViewerInventoryItem::II_FLAGS_NONE,
|
||||
time_corrected());
|
||||
object->saveScript(new_item, TRUE, true);
|
||||
|
||||
// *NOTE: In order to resolve SL-22177, we needed to create
|
||||
// the script first, and then you have to click it in
|
||||
// inventory to edit it.
|
||||
// *TODO: The script creation should round-trip back to the
|
||||
// viewer so the viewer can auto-open the script and start
|
||||
// editing ASAP.
|
||||
#if 0
|
||||
S32 left, top;
|
||||
gFloaterView->getNewFloaterPosition(&left, &top);
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@ BOOL LLGroupDropTarget::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
|
|||
if(gInventory.getItem(inv_item->getUUID())
|
||||
&& LLToolDragAndDrop::isInventoryGroupGiveAcceptable(inv_item))
|
||||
{
|
||||
//FIXME: get multiple object transfers working
|
||||
// *TODO: get multiple object transfers working
|
||||
*accept = ACCEPT_YES_COPY_SINGLE;
|
||||
if(drop)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -261,7 +261,7 @@ void LLPanelObject::getState( )
|
|||
if(!objectp)
|
||||
{
|
||||
objectp = gSelectMgr->getFirstObject();
|
||||
//FIXME: shouldn't we just keep the child?
|
||||
// *FIX: shouldn't we just keep the child?
|
||||
if (objectp)
|
||||
{
|
||||
LLViewerObject* parentp = objectp->getSubParent();
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ void LLPanelVolume::getState( )
|
|||
if(!objectp)
|
||||
{
|
||||
objectp = gSelectMgr->getFirstObject();
|
||||
//FIXME: shouldn't we just keep the child?
|
||||
// *FIX: shouldn't we just keep the child?
|
||||
if (objectp)
|
||||
{
|
||||
LLViewerObject* parentp = objectp->getSubParent();
|
||||
|
|
|
|||
|
|
@ -246,7 +246,7 @@ void LLSelectMgr::selectObjectOnly(LLViewerObject* object, S32 face)
|
|||
|
||||
// Stop the object from moving (this anticipates changes on the
|
||||
// simulator in LLTask::userSelect)
|
||||
//FIXME: shouldn't zero out these either
|
||||
// *FIX: shouldn't zero out these either
|
||||
object->setVelocity(LLVector3::zero);
|
||||
object->setAcceleration(LLVector3::zero);
|
||||
//object->setAngularVelocity(LLVector3::zero);
|
||||
|
|
@ -928,7 +928,7 @@ void LLSelectMgr::getGrid(LLVector3& origin, LLQuaternion &rotation, LLVector3 &
|
|||
{
|
||||
LLSelectNode* grid_node = mGridObjects.getFirstNode();
|
||||
LLViewerObject* grid_object = mGridObjects.getFirstObject();
|
||||
//FIXME: get to work with multiple grid objects
|
||||
// *TODO: get to work with multiple grid objects
|
||||
if (grid_node && grid_node->getObject()->isDead())
|
||||
{
|
||||
mGridObjects.removeNode(grid_node);
|
||||
|
|
@ -960,7 +960,8 @@ void LLSelectMgr::getGrid(LLVector3& origin, LLQuaternion &rotation, LLVector3 &
|
|||
LLVector3 local_min_extents(F32_MAX, F32_MAX, F32_MAX);
|
||||
LLVector3 local_max_extents(F32_MIN, F32_MIN, F32_MIN);
|
||||
|
||||
//FIXME: silhouette flag is insufficient as it gets cleared by view update
|
||||
// *FIX: silhouette flag is insufficient as it gets
|
||||
// cleared by view update.
|
||||
if (!mGridValid ||
|
||||
grid_object->isChanged(LLXform::SILHOUETTE)
|
||||
|| (grid_object->getParent() && grid_object->getParent()->isChanged(LLXform::SILHOUETTE)))
|
||||
|
|
@ -1116,7 +1117,7 @@ void LLSelectMgr::remove(LLDynamicArray<LLViewerObject*>& objects)
|
|||
void LLSelectMgr::remove(LLViewerObject *objectp, S32 te, BOOL undoable)
|
||||
{
|
||||
// check if object already in list
|
||||
// FIXME: can we just check isSelected()?
|
||||
// *FIX: can we just check isSelected()?
|
||||
LLSelectNode *nodep = findSelectNode(objectp);
|
||||
|
||||
if (!nodep)
|
||||
|
|
@ -1371,7 +1372,7 @@ void LLSelectMgr::cleanup()
|
|||
//-----------------------------------------------------------------------------
|
||||
// selectionSetImage()
|
||||
//-----------------------------------------------------------------------------
|
||||
//FIXME: re-arch texture applying out of lltooldraganddrop
|
||||
// *TODO: re-arch texture applying out of lltooldraganddrop
|
||||
void LLSelectMgr::selectionSetImage(const LLUUID& imageid)
|
||||
{
|
||||
// First for (no copy) textures and multiple object selection
|
||||
|
|
@ -1398,7 +1399,7 @@ void LLSelectMgr::selectionSetImage(const LLUUID& imageid)
|
|||
LLToolDragAndDrop::dropTextureOneFace(objectp,te,item,LLToolDragAndDrop::SOURCE_AGENT,LLUUID::null);
|
||||
|
||||
// HACK! HACK! ARG!
|
||||
// FIXME: Replace mSelectedObjects with a REAL container class!
|
||||
// *TODO: Replace mSelectedObjects with a REAL container class!
|
||||
LLViewerObject* tmp_object;
|
||||
S32 tmp_te;
|
||||
mSelectedObjects.getCurrentTE(&tmp_object,&tmp_te);
|
||||
|
|
@ -3649,9 +3650,10 @@ struct LLBuyData
|
|||
LLSaleInfo mSaleInfo;
|
||||
};
|
||||
|
||||
// FIXME: doesn't work for multiple object buy, which UI does not currently support
|
||||
// sale info is used for verification only, if it doesn't match region info then sale is canceled
|
||||
// Need to get sale info -as displayed in the UI- for every item.
|
||||
// *NOTE: does not work for multiple object buy, which UI does not
|
||||
// currently support sale info is used for verification only, if it
|
||||
// doesn't match region info then sale is canceled Need to get sale
|
||||
// info -as displayed in the UI- for every item.
|
||||
void LLSelectMgr::sendBuy(const LLUUID& buyer_id, const LLUUID& category_id, const LLSaleInfo sale_info)
|
||||
{
|
||||
LLBuyData buy;
|
||||
|
|
|
|||
|
|
@ -435,9 +435,11 @@ public:
|
|||
void sendOwner(const LLUUID& owner_id, const LLUUID& group_id, BOOL override = FALSE);
|
||||
void sendGroup(const LLUUID& group_id);
|
||||
|
||||
// Category ID is the UUID of the folder you want to contain the purchase
|
||||
// FIXME: sale_info check doesn't work for multiple object buy, which UI does not currently support
|
||||
// sale info is used for verification only, if it doesn't match region info then sale is canceled
|
||||
// Category ID is the UUID of the folder you want to contain the purchase.
|
||||
// *NOTE: sale_info check doesn't work for multiple object buy,
|
||||
// which UI does not currently support sale info is used for
|
||||
// verification only, if it doesn't match region info then sale is
|
||||
// canceled
|
||||
void sendBuy(const LLUUID& buyer_id, const LLUUID& category_id, const LLSaleInfo sale_info);
|
||||
void sendAttach(U8 attachment_point);
|
||||
void sendDetach();
|
||||
|
|
@ -570,7 +572,7 @@ public:
|
|||
void setTransient(BOOL transient) { mTransient = transient; }
|
||||
BOOL isTransient() { return mTransient; }
|
||||
LLViewerObject *getObject();
|
||||
//FIXME: invalidate stored textures and colors when # faces change
|
||||
// *NOTE: invalidate stored textures and colors when # faces change
|
||||
void saveColors();
|
||||
void saveTextures(const std::vector<LLUUID>& textures);
|
||||
void saveTextureScaleRatios();
|
||||
|
|
|
|||
|
|
@ -656,7 +656,7 @@ BOOL idle_startup()
|
|||
}
|
||||
|
||||
// create necessary directories
|
||||
// FIXME: these mkdir's should error check
|
||||
// *FIX: these mkdir's should error check
|
||||
gDirUtilp->setLindenUserDir(firstname.c_str(), lastname.c_str());
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -507,7 +507,7 @@ void LLTexLayerSetBuffer::onTextureUploadComplete(const LLUUID& uuid, void* user
|
|||
else
|
||||
{
|
||||
llinfos << "Baked upload failed. Reason: " << result << llendl;
|
||||
//FIXME: retry upload after n seconds, asset server could be busy
|
||||
// *FIX: retry upload after n seconds, asset server could be busy
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -1196,8 +1196,9 @@ BOOL LLTexLayer::setInfo(LLTexLayerInfo* info)
|
|||
LLTexLayerInfo::morph_name_list_t::iterator iter;
|
||||
for (iter = mInfo->mMorphNameList.begin(); iter != mInfo->mMorphNameList.end(); iter++)
|
||||
{
|
||||
// FIXME: we assume that the referenced visual param is a morph target,
|
||||
// need a better way of actually looking this up
|
||||
// *FIX: we assume that the referenced visual param is a
|
||||
// morph target, need a better way of actually looking
|
||||
// this up.
|
||||
LLPolyMorphTarget *morph_param;
|
||||
LLString *name = &(iter->first);
|
||||
morph_param = (LLPolyMorphTarget *)(getTexLayerSet()->getAvatar()->getVisualParam(name->c_str()));
|
||||
|
|
@ -2800,7 +2801,8 @@ void LLGradientPaletteList::initPalette(F32 domain)
|
|||
S32 ramp_end = 255;
|
||||
F32 ramp_factor = (ramp_end == ramp_start) ? 0.f : (255.f / ((F32)ramp_end - (F32)ramp_start));
|
||||
|
||||
//FIXME: move conditionals outside of loop, since this really is just a sequential process
|
||||
// *TODO: move conditionals outside of loop, since this really
|
||||
// is just a sequential process.
|
||||
for (S32 i = 0; i < 512; i++)
|
||||
{
|
||||
palette[(i * 4) + 1] = 0;
|
||||
|
|
|
|||
|
|
@ -971,8 +971,8 @@ void LLTextureCtrl::setEnabled( BOOL enabled )
|
|||
else
|
||||
{
|
||||
setToolTip( "" );
|
||||
//FIXME: would be better to keep floater open
|
||||
// and show disabled state
|
||||
// *TODO: would be better to keep floater open and show
|
||||
// disabled state.
|
||||
closeFloater();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -176,7 +176,7 @@ void LLToolCompTranslate::pickCallback(S32 x, S32 y, MASK mask)
|
|||
gToolTranslate->setCurrentTool( gToolTranslate->mSelectRect );
|
||||
gToolTranslate->mSelectRect->handleMouseDown( x, y, mask );
|
||||
|
||||
//FIXME: add toggle to trigger old click-drag functionality
|
||||
// *TODO: add toggle to trigger old click-drag functionality
|
||||
// gToolTranslate->mManip->handleMouseDownOnPart( XY_part, x, y, mask);
|
||||
}
|
||||
}
|
||||
|
|
@ -377,8 +377,8 @@ BOOL LLToolCompCreate::handleMouseDown(S32 x, S32 y, MASK mask)
|
|||
|
||||
void LLToolCompCreate::pickCallback(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
// HACK: Mask off shift and control, so you can't multi-select
|
||||
// multiple objects with the create tool.
|
||||
// *NOTE: We mask off shift and control, so you cannot
|
||||
// multi-select multiple objects with the create tool.
|
||||
mask = (mask & ~MASK_SHIFT);
|
||||
mask = (mask & ~MASK_CONTROL);
|
||||
|
||||
|
|
@ -547,8 +547,8 @@ LLToolCompGun::~LLToolCompGun()
|
|||
|
||||
BOOL LLToolCompGun::handleHover(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
// HACK to make mouselook kick in again after item selected
|
||||
// from context menu
|
||||
// *NOTE: This hack is here to make mouselook kick in again after
|
||||
// item selected from context menu.
|
||||
if ( mCur == mNull && !gPopupMenuView->getVisible() )
|
||||
{
|
||||
gSelectMgr->deselectAll();
|
||||
|
|
|
|||
|
|
@ -1555,7 +1555,7 @@ void LLToolDragAndDrop::dropInventory(LLViewerObject* hit_obj,
|
|||
hit_obj->updateInventory(new_item, TASK_INVENTORY_ITEM_KEY, true);
|
||||
if (gFloaterTools->getVisible())
|
||||
{
|
||||
//FIXME: only show this if panel not expanded?
|
||||
// *FIX: only show this if panel not expanded?
|
||||
gFloaterTools->showPanel(LLFloaterTools::PANEL_CONTENTS);
|
||||
}
|
||||
|
||||
|
|
@ -2663,7 +2663,8 @@ EAcceptance LLToolDragAndDrop::dad3dGiveInventoryObject(
|
|||
{
|
||||
giveInventory(obj->getID(), item );
|
||||
}
|
||||
//FIXME: deal with all the issues surrounding multi-object inventory transfers
|
||||
// *TODO: deal with all the issues surrounding multi-object
|
||||
// inventory transfers.
|
||||
return ACCEPT_YES_SINGLE;
|
||||
}
|
||||
return ACCEPT_NO;
|
||||
|
|
@ -2688,7 +2689,8 @@ EAcceptance LLToolDragAndDrop::dad3dGiveInventory(
|
|||
{
|
||||
giveInventory(obj->getID(), item);
|
||||
}
|
||||
//FIXME: deal with all the issues surrounding multi-object inventory transfers
|
||||
// *TODO: deal with all the issues surrounding multi-object
|
||||
// inventory transfers.
|
||||
return ACCEPT_YES_SINGLE;
|
||||
}
|
||||
|
||||
|
|
@ -2704,7 +2706,8 @@ EAcceptance LLToolDragAndDrop::dad3dGiveInventoryCategory(
|
|||
if(!cat) return ACCEPT_NO;
|
||||
giveInventoryCategory(obj->getID(), cat);
|
||||
}
|
||||
//FIXME: deal with all the issues surrounding multi-object inventory transfers
|
||||
// *TODO: deal with all the issues surrounding multi-object
|
||||
// inventory transfers.
|
||||
return ACCEPT_YES_SINGLE;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ BOOL LLToolPipette::handleMouseUp(S32 x, S32 y, MASK mask)
|
|||
{
|
||||
mSuccess = TRUE;
|
||||
gSelectMgr->unhighlightAll();
|
||||
//FIXME: this assumes the pipette tool is a transient tool
|
||||
// *NOTE: This assumes the pipette tool is a transient tool.
|
||||
gToolMgr->clearTransientTool();
|
||||
setMouseCapture(FALSE);
|
||||
return TRUE;
|
||||
|
|
|
|||
|
|
@ -7,6 +7,9 @@
|
|||
*/
|
||||
|
||||
// A tool to pick texture entry infro from objects in world (color/texture)
|
||||
// This tool assumes it is transient in the codebase and must be used
|
||||
// accordingly. We should probably restructure the way tools are
|
||||
// managed so that this is handled automatically.
|
||||
|
||||
#ifndef LL_LLTOOLPIPETTE_H
|
||||
#define LL_LLTOOLPIPETTE_H
|
||||
|
|
|
|||
|
|
@ -438,7 +438,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield)
|
|||
display_update_camera();
|
||||
stop_glerror();
|
||||
|
||||
//FIXME: merge these two methods
|
||||
// *TODO: merge these two methods
|
||||
gHUDManager->updateEffects();
|
||||
LLHUDObject::updateAll();
|
||||
stop_glerror();
|
||||
|
|
|
|||
|
|
@ -337,7 +337,7 @@ void LLViewerJointAttachment::clampObjectPosition()
|
|||
{
|
||||
if (mAttachedObject)
|
||||
{
|
||||
//FIXME: object can drift when hitting maximum radius
|
||||
// *NOTE: object can drift when hitting maximum radius
|
||||
LLVector3 attachmentPos = mAttachedObject->getPosition();
|
||||
F32 dist = attachmentPos.normVec();
|
||||
dist = llmin(dist, MAX_ATTACHMENT_DIST);
|
||||
|
|
|
|||
|
|
@ -906,7 +906,7 @@ void llDrawElementsBatchBlend(const U32 vert_offset, const U32 vert_count, LLFac
|
|||
o_texcoords0= (LLVector2*)(gAGPVertices + AVATAR_OFFSET_TEX0); o_texcoords0.setStride(AVATAR_VERTEX_BYTES);
|
||||
o_texcoords1= (LLVector2*)(gAGPVertices + AVATAR_OFFSET_TEX1); o_texcoords1.setStride(AVATAR_VERTEX_BYTES);
|
||||
|
||||
#if !LL_LINUX // !!! FIXME
|
||||
#if !LL_LINUX // !!! *TODO: do the linux implementation
|
||||
if (gGLManager.mSoftwareBlendSSE)
|
||||
{
|
||||
// do SSE blend without binormals or extra texcoords
|
||||
|
|
|
|||
|
|
@ -1603,7 +1603,9 @@ class LLObjectTouch : public view_listener_t
|
|||
msg->addVector3Fast(_PREHASH_GrabOffset, LLVector3::zero );
|
||||
msg->sendMessage( object->getRegion()->getHost());
|
||||
|
||||
// HACK: Hope the packets arrive safely and in order.
|
||||
// *NOTE: Hope the packets arrive safely and in order or else
|
||||
// there will be some problems.
|
||||
// *TODO: Just fix this bad assumption.
|
||||
msg->newMessageFast(_PREHASH_ObjectDeGrab);
|
||||
msg->nextBlockFast(_PREHASH_AgentData);
|
||||
msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
|
||||
|
|
@ -1627,7 +1629,7 @@ class LLObjectEnableTouch : public view_listener_t
|
|||
bool new_value = obj && obj->flagHandleTouch();
|
||||
gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
|
||||
|
||||
// HACK Update label
|
||||
// Update label based on the node touch name if available.
|
||||
LLSelectNode* node = gSelectMgr->getFirstRootNode();
|
||||
if (node && node->mValid && !node->mTouchName.empty())
|
||||
{
|
||||
|
|
@ -3535,9 +3537,8 @@ void derez_objects(EDeRezDestination dest, const LLUUID& dest_id)
|
|||
if(!object || !node->mValid) continue;
|
||||
if(object->getRegion() != region)
|
||||
{
|
||||
// *FIX: This doesn't work at all if the some of the
|
||||
// objects are in regions besides the first object
|
||||
// selected. We should really support this.
|
||||
// Derez doesn't work at all if the some of the objects
|
||||
// are in regions besides the first object selected.
|
||||
|
||||
// ...crosses region boundaries
|
||||
error = "AcquireErrorObjectSpan";
|
||||
|
|
@ -4307,7 +4308,7 @@ class LLToolsEnableBuyOrTake : public view_listener_t
|
|||
bool new_value = is_buy ? enable_buy(NULL) : enable_take();
|
||||
gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
|
||||
|
||||
// HACK: Update label
|
||||
// Update label
|
||||
LLString label;
|
||||
LLString buy_text;
|
||||
LLString take_text;
|
||||
|
|
@ -4497,7 +4498,7 @@ class LLToolsSaveToObjectInventory : public view_listener_t
|
|||
LLSelectNode* node = gSelectMgr->getFirstRootNode();
|
||||
if(node && (node->mValid) && (!node->mFromTaskID.isNull()))
|
||||
{
|
||||
// *FIX: check to see if the fromtaskid object exists.
|
||||
// *TODO: check to see if the fromtaskid object exists.
|
||||
derez_objects(DRD_SAVE_INTO_TASK_INVENTORY, node->mFromTaskID);
|
||||
}
|
||||
}
|
||||
|
|
@ -4861,7 +4862,7 @@ class LLViewEnableLastChatter : public view_listener_t
|
|||
{
|
||||
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
|
||||
{
|
||||
//FIXME: add check that last chatter is in range
|
||||
// *TODO: add check that last chatter is in range
|
||||
bool new_value = (gAgent.cameraThirdPerson() && gAgent.getLastChatter().notNull());
|
||||
gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
|
||||
return true;
|
||||
|
|
@ -5862,7 +5863,7 @@ void upload_done_callback(const LLUUID& uuid, void* user_data, S32 result) // St
|
|||
LLUploadDialog::modalUploadFinished();
|
||||
delete data;
|
||||
|
||||
// *FIX: This is a pretty big hack. What this does is check the
|
||||
// *NOTE: This is a pretty big hack. What this does is check the
|
||||
// file picker if there are any more pending uploads. If so,
|
||||
// upload that file.
|
||||
const char* next_file = LLFilePicker::instance().getNextFile();
|
||||
|
|
@ -6231,7 +6232,7 @@ class LLObjectEnableSitOrStand : public view_listener_t
|
|||
}
|
||||
gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
|
||||
|
||||
// HACK: Update label
|
||||
// Update label
|
||||
LLString label;
|
||||
LLString sit_text;
|
||||
LLString stand_text;
|
||||
|
|
@ -7751,8 +7752,7 @@ BOOL enable_save_into_task_inventory(void*)
|
|||
LLSelectNode* node = gSelectMgr->getFirstRootNode();
|
||||
if(node && (node->mValid) && (!node->mFromTaskID.isNull()))
|
||||
{
|
||||
// *FIX: check to see if the fromtaskid object exists.
|
||||
|
||||
// *TODO: check to see if the fromtaskid object exists.
|
||||
LLViewerObject* obj = node->getObject();
|
||||
if( obj && !obj->isAttachment() )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2483,7 +2483,8 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**)
|
|||
|
||||
llinfos << "process_agent_movement_complete()" << llendl;
|
||||
|
||||
// *FIX: check timestamp.
|
||||
// *TODO: check timestamp to make sure the movement compleation
|
||||
// makes sense.
|
||||
LLVector3 agent_pos;
|
||||
msg->getVector3Fast(_PREHASH_Data, _PREHASH_Position, agent_pos);
|
||||
LLVector3 look_at;
|
||||
|
|
@ -2876,7 +2877,8 @@ void send_agent_update(BOOL force_send, BOOL send_reliable)
|
|||
|
||||
|
||||
|
||||
// TODO: FIX this dependency
|
||||
// *TODO: Remove this dependency, or figure out a better way to handle
|
||||
// this hack.
|
||||
extern U32 gObjectBits;
|
||||
|
||||
void process_object_update(LLMessageSystem *mesgsys, void **user_data)
|
||||
|
|
|
|||
|
|
@ -2000,7 +2000,7 @@ BOOL LLViewerObject::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
|
|||
//
|
||||
// There is a problem here if dt is negative. . .
|
||||
|
||||
//FIXME: should also wrap linear accel/velocity in check
|
||||
// *TODO: should also wrap linear accel/velocity in check
|
||||
// to see if object is selected, instead of explicitly
|
||||
// zeroing it out
|
||||
LLVector3 accel = getAcceleration();
|
||||
|
|
@ -3133,7 +3133,8 @@ void LLViewerObject::setPositionGlobal(const LLVector3d &pos_global, BOOL damped
|
|||
|
||||
delta_pos = delta_pos * invRotation;
|
||||
|
||||
//FIXME: is this right? Shouldn't we be calling the LLViewerObject version of setPosition?
|
||||
// *FIX: is this right? Shouldn't we be calling the
|
||||
// LLViewerObject version of setPosition?
|
||||
LLVector3 old_pos = mDrawable->mXform.getParent()->getPosition();
|
||||
mDrawable->mXform.getParent()->setPosition(old_pos + delta_pos);
|
||||
setChanged(TRANSLATED | SILHOUETTE);
|
||||
|
|
@ -3900,7 +3901,7 @@ void LLViewerObject::setIcon(LLViewerImage* icon_image)
|
|||
mIcon = (LLHUDIcon *)LLHUDObject::addHUDObject(LLHUDObject::LL_HUD_ICON);
|
||||
mIcon->setSourceObject(this);
|
||||
mIcon->setImage(icon_image);
|
||||
//FIXME: make this user configurable
|
||||
// *TODO: make this user configurable
|
||||
mIcon->setScale(0.03f);
|
||||
}
|
||||
else
|
||||
|
|
@ -4573,7 +4574,7 @@ LLViewerObject::LLInventoryCallbackInfo::~LLInventoryCallbackInfo()
|
|||
|
||||
void LLViewerObject::updateVolume(const LLVolumeParams& volume_params)
|
||||
{
|
||||
if (setVolume(volume_params, 1)) // FIXME: magic number, ack!
|
||||
if (setVolume(volume_params, 1)) // *FIX: magic number, ack!
|
||||
{
|
||||
// Transmit the update to the simulator
|
||||
sendShapeUpdate();
|
||||
|
|
|
|||
|
|
@ -2268,7 +2268,7 @@ bool LLViewerParcelMgr::canAgentBuyParcel(LLParcel* parcel, bool forGroup) const
|
|||
= parcel->getReservedForNewbie()
|
||||
? (!forGroup && gStatusBar->getSquareMetersCommitted() == 0)
|
||||
: true;
|
||||
//FIXME: should be based on never_owned_land, see SL-10728
|
||||
// *TODO: should be based on never_owned_land, see SL-10728
|
||||
|
||||
bool isAuthorized
|
||||
= (authorizeBuyer.isNull() || (gAgent.getID() == authorizeBuyer));
|
||||
|
|
@ -2537,7 +2537,7 @@ BOOL LLViewerParcelMgr::isParcelModifiableByAgent(const LLParcel* parcelp, U64 g
|
|||
BOOL rv = FALSE;
|
||||
if (parcelp)
|
||||
{
|
||||
// *FIX: This should only work for leased parcels, but group owned
|
||||
// *NOTE: This should only work for leased parcels, but group owned
|
||||
// parcels cannot be OS_LEASED yet. Phoenix 2003-12-15.
|
||||
rv = isParcelOwnedByAgent(parcelp, group_proxy_power);
|
||||
|
||||
|
|
|
|||
|
|
@ -628,8 +628,6 @@ BOOL LLViewerTextEditor::handleMouseDown(S32 x, S32 y, MASK mask)
|
|||
startSelection();
|
||||
}
|
||||
gFocusMgr.setMouseCapture( this, &LLTextEditor::onMouseCaptureLost );
|
||||
//FIXME:
|
||||
//gViewerWindow->requestFastFrame(this);
|
||||
}
|
||||
|
||||
handled = TRUE;
|
||||
|
|
@ -667,8 +665,6 @@ BOOL LLViewerTextEditor::handleHover(S32 x, S32 y, MASK mask)
|
|||
{
|
||||
mLastSelectionX = x;
|
||||
mLastSelectionY = y;
|
||||
//FIXME:
|
||||
//gViewerWindow->requestFastFrame(this);
|
||||
}
|
||||
|
||||
if( y > mTextRect.mTop )
|
||||
|
|
|
|||
|
|
@ -688,7 +688,8 @@ BOOL LLViewerWindow::handleRightMouseDown(LLWindow *window, LLCoordGL pos, MASK
|
|||
}
|
||||
}
|
||||
|
||||
//FIXME: this should be rolled into the composite tool logic, not hardcoded at the top level
|
||||
// *HACK: this should be rolled into the composite tool logic, not
|
||||
// hardcoded at the top level.
|
||||
if (gToolPie && (CAMERA_MODE_CUSTOMIZE_AVATAR != gAgent.getCameraMode()) )
|
||||
{
|
||||
// If the current tool didn't process the click, we should show
|
||||
|
|
@ -921,9 +922,10 @@ BOOL LLViewerWindow::handleTranslatedKeyDown(KEY key, MASK mask, BOOL repeated)
|
|||
gAgent.clearAFK();
|
||||
}
|
||||
|
||||
// HACK: We want to interpret KEY_RETURN later when it arrives as a Unicode char,
|
||||
// not as a keydown. Otherwise when client frame rate is really low, hitting
|
||||
// return sends your chat text before it's all entered/processed.
|
||||
// *NOTE: We want to interpret KEY_RETURN later when it arrives as
|
||||
// a Unicode char, not as a keydown. Otherwise when client frame
|
||||
// rate is really low, hitting return sends your chat text before
|
||||
// it's all entered/processed.
|
||||
if (key == KEY_RETURN && mask == MASK_NONE)
|
||||
{
|
||||
return FALSE;
|
||||
|
|
@ -1583,7 +1585,6 @@ void LLViewerWindow::initWorldUI()
|
|||
gFloaterTools->setVisible(FALSE);
|
||||
|
||||
// Status bar
|
||||
//FIXME change this back
|
||||
S32 menu_bar_height = gMenuBarView->getRect().getHeight();
|
||||
LLRect root_rect = gViewerWindow->getRootView()->getRect();
|
||||
LLRect status_rect(0, root_rect.getHeight(), root_rect.getWidth(), root_rect.getHeight() - menu_bar_height);
|
||||
|
|
@ -2023,7 +2024,9 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask)
|
|||
{
|
||||
return TRUE;
|
||||
}
|
||||
//FIXME: get this to play well with mouselook and hidden cursor modes, etc.
|
||||
|
||||
// *TODO: get this to play well with mouselook and hidden
|
||||
// cursor modes, etc, and re-enable.
|
||||
//if (gFocusMgr.getMouseCapture())
|
||||
//{
|
||||
// gFocusMgr.setMouseCapture(NULL, NULL);
|
||||
|
|
@ -2091,7 +2094,7 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask)
|
|||
}
|
||||
|
||||
// Topmost view gets a chance before the hierarchy
|
||||
//FIXME: get rid of this?
|
||||
// *FIX: get rid of this?
|
||||
LLView* top_view = gFocusMgr.getTopView();
|
||||
if (top_view)
|
||||
{
|
||||
|
|
@ -2420,7 +2423,7 @@ BOOL LLViewerWindow::handlePerFrameHover()
|
|||
}
|
||||
}
|
||||
|
||||
//FIXME: sometimes tools handle the mouse as a captor, so this
|
||||
// *NOTE: sometimes tools handle the mouse as a captor, so this
|
||||
// logic is a little confusing
|
||||
LLTool *tool = NULL;
|
||||
if (gToolMgr && gHoverView)
|
||||
|
|
@ -2586,7 +2589,8 @@ BOOL LLViewerWindow::handlePerFrameHover()
|
|||
if (!gToolBar->getVisible()
|
||||
&& !gChatBar->getVisible())
|
||||
{
|
||||
// FIXME: this is highly depenent on the XML describing the position of the buttons
|
||||
// *NOTE: this is highly depenent on the XML
|
||||
// describing the position of the buttons
|
||||
overlay_rect.translate(0, 0);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2432,8 +2432,7 @@ BOOL LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
// HACK!!!!
|
||||
// this is necessary for the floating name text above your head
|
||||
// *NOTE: this is necessary for the floating name text above your head.
|
||||
if (mDrawable.notNull())
|
||||
{
|
||||
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME, TRUE);
|
||||
|
|
@ -2829,7 +2828,7 @@ BOOL LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
|
|||
}
|
||||
else if (chat_fade_amt < 3.f)
|
||||
{
|
||||
//FIXME: only remove lines down to minimum number
|
||||
// *NOTE: only remove lines down to minimum number
|
||||
mNameText->addLine(utf8str_to_wstring(chat_iter->mText), old_chat, style);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,7 +46,10 @@ const F32 fsigma = (6+3*sigma)/(6.f-7.f*sigma);
|
|||
const F64 Ndens = 2.55e25;
|
||||
const F64 Ndens2 = Ndens*Ndens;
|
||||
|
||||
// !!! FIXME: This #define should be in llcommon somewhere...
|
||||
// !!! *FIX: This #define should be in llcommon somewhere...
|
||||
// We should not be #defining anything with leading underscores and
|
||||
// much less double leading underscores since that is always vendor
|
||||
// specific. Change this to something like LL_FORCE_INLINE.
|
||||
#ifdef __GNUC__
|
||||
#define __forceinline inline __attribute__((always_inline))
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1768,9 +1768,9 @@ BOOL LLVOVolume::isAttachment() const
|
|||
|
||||
BOOL LLVOVolume::isHUDAttachment() const
|
||||
{
|
||||
//HACK assume hud attachment points are in defined range
|
||||
// since this range is constant for backwards compatibility reasons
|
||||
// this is probably a reasonable assumption to make
|
||||
// *NOTE: we assume hud attachment points are in defined range
|
||||
// since this range is constant for backwards compatibility
|
||||
// reasons this is probably a reasonable assumption to make
|
||||
S32 attachment_id = ATTACHMENT_ID_FROM_STATE(mState);
|
||||
return ( attachment_id >= 31 && attachment_id <= 38 );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1494,7 +1494,10 @@ void LLWorldMapView::drawTrackingArrow(const LLRect& rect, S32 x, S32 y,
|
|||
y_clamped = llclamp( y_clamped, 0.f, (F32)(rect.getHeight() - arrow_size) );
|
||||
}
|
||||
|
||||
//FIXME: deal with non-square window properly
|
||||
// *FIX: deal with non-square window properly.
|
||||
// I do not understand what this comment means -- is it actually
|
||||
// broken or is it correctly dealing with non-square
|
||||
// windows. Phoenix 2007-01-03.
|
||||
S32 half_arrow_size = (S32) (0.5f * arrow_size);
|
||||
|
||||
F32 angle = atan2( y + half_arrow_size - y_center, x + half_arrow_size - x_center);
|
||||
|
|
|
|||
Loading…
Reference in New Issue