Fixed several compile errors with VS2005
This commit is contained in:
@@ -221,9 +221,9 @@ else (STANDALONE)
|
|||||||
)
|
)
|
||||||
endif (STANDALONE)
|
endif (STANDALONE)
|
||||||
|
|
||||||
if($ENV{OPENSIM_RULES} EQUAL 1)
|
if(1 EQUAL 1)
|
||||||
add_definitions(-DOPENSIM_RULES=1)
|
add_definitions(-DOPENSIM_RULES=1)
|
||||||
endif($ENV{OPENSIM_RULES} EQUAL 1)
|
endif(1 EQUAL 1)
|
||||||
|
|
||||||
if(SERVER)
|
if(SERVER)
|
||||||
include_directories(${LIBS_PREBUILT_DIR}/include/havok)
|
include_directories(${LIBS_PREBUILT_DIR}/include/havok)
|
||||||
|
|||||||
@@ -1,64 +1,64 @@
|
|||||||
// <edit>
|
// <edit>
|
||||||
#include "linden_common.h"
|
#include "linden_common.h"
|
||||||
#include "lldelayeduidelete.h"
|
#include "lldelayeduidelete.h"
|
||||||
#define DELETE_DELAY 0.1f
|
#define DELETE_DELAY 0.1f
|
||||||
#define DELETES_PER_DELAY 512
|
#define DELETES_PER_DELAY 512
|
||||||
std::list<LLDeleteJob*> LLDeleteScheduler::sJobs;
|
std::list<LLDeleteJob*> LLDeleteScheduler::sJobs;
|
||||||
LLDeleteScheduler::LLDeleteScheduler() : LLEventTimer(DELETE_DELAY)
|
LLDeleteScheduler::LLDeleteScheduler() : LLEventTimer(DELETE_DELAY)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
void LLDeleteScheduler::addViewDeleteJob(std::list<LLView*> views)
|
void LLDeleteScheduler::addViewDeleteJob(std::list<LLView*> views)
|
||||||
{
|
{
|
||||||
if(!views.empty())
|
if(!views.empty())
|
||||||
{
|
{
|
||||||
LLViewDeleteJob* job = new LLViewDeleteJob(views);
|
LLViewDeleteJob* job = new LLViewDeleteJob(views);
|
||||||
sJobs.push_back(job);
|
sJobs.push_back(job);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
BOOL LLDeleteScheduler::tick() // IMPORTANT: never return TRUE
|
BOOL LLDeleteScheduler::tick() // IMPORTANT: never return TRUE
|
||||||
{
|
{
|
||||||
if(!sJobs.empty())
|
if(!sJobs.empty())
|
||||||
{
|
{
|
||||||
U32 completed = 0;
|
U32 completed = 0;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
LLDeleteJob* job = sJobs.front();
|
LLDeleteJob* job = sJobs.front();
|
||||||
if(job->work(completed))
|
if(job->work(completed))
|
||||||
{
|
{
|
||||||
delete job;
|
delete job;
|
||||||
sJobs.pop_front();
|
sJobs.pop_front();
|
||||||
}
|
}
|
||||||
} while((completed < DELETES_PER_DELAY) && !sJobs.empty());
|
} while((completed < DELETES_PER_DELAY) && !sJobs.empty());
|
||||||
}
|
}
|
||||||
return FALSE; // EVER
|
return FALSE; // EVER
|
||||||
}
|
}
|
||||||
BOOL LLDeleteJob::work(U32& completed)
|
BOOL LLDeleteJob::work(U32& completed)
|
||||||
{
|
{
|
||||||
llwarns << "THIS IS SPOSED TO BE OVERRIDDEN" << llendl;
|
llwarns << "THIS IS SPOSED TO BE OVERRIDDEN" << llendl;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
LLViewDeleteJob::LLViewDeleteJob(std::list<LLView*> views)
|
LLViewDeleteJob::LLViewDeleteJob(std::list<LLView*> views)
|
||||||
: mList(views)
|
: mList(views)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
LLViewDeleteJob::~LLViewDeleteJob()
|
LLViewDeleteJob::~LLViewDeleteJob()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
BOOL LLViewDeleteJob::work(U32& completed)
|
BOOL LLViewDeleteJob::work(U32& completed)
|
||||||
{
|
{
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if(!mList.empty())
|
if(!mList.empty())
|
||||||
{
|
{
|
||||||
LLView* view = mList.front();
|
LLView* view = mList.front();
|
||||||
delete view;
|
delete view;
|
||||||
mList.pop_front();
|
mList.pop_front();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return TRUE; // job done
|
return TRUE; // job done
|
||||||
}
|
}
|
||||||
} while(++completed < DELETES_PER_DELAY);
|
} while(++completed < DELETES_PER_DELAY);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|||||||
@@ -1,31 +1,31 @@
|
|||||||
// <edit>
|
// <edit>
|
||||||
#ifndef LL_LLDELAYEDUIDELETE_H
|
#ifndef LL_LLDELAYEDUIDELETE_H
|
||||||
#define LL_LLDELAYEDUIDELETE_H
|
#define LL_LLDELAYEDUIDELETE_H
|
||||||
#include "lltimer.h"
|
#include "lltimer.h"
|
||||||
#include "llview.h"
|
#include "llview.h"
|
||||||
class LLDeleteJob
|
class LLDeleteJob
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual BOOL work(U32& completed);
|
virtual BOOL work(U32& completed);
|
||||||
};
|
};
|
||||||
class LLViewDeleteJob : public LLDeleteJob
|
class LLViewDeleteJob : public LLDeleteJob
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
LLViewDeleteJob(std::list<LLView*> views);
|
LLViewDeleteJob(std::list<LLView*> views);
|
||||||
virtual ~LLViewDeleteJob();
|
virtual ~LLViewDeleteJob();
|
||||||
virtual BOOL work(U32& completed);
|
virtual BOOL work(U32& completed);
|
||||||
private:
|
private:
|
||||||
std::list<LLView*> mList;
|
std::list<LLView*> mList;
|
||||||
};
|
};
|
||||||
class LLDeleteScheduler : public LLEventTimer
|
class LLDeleteScheduler : public LLEventTimer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
LLDeleteScheduler();
|
LLDeleteScheduler();
|
||||||
void addViewDeleteJob(std::list<LLView*> views);
|
void addViewDeleteJob(std::list<LLView*> views);
|
||||||
BOOL tick();
|
BOOL tick();
|
||||||
private:
|
private:
|
||||||
static std::list<LLDeleteJob*> sJobs;
|
static std::list<LLDeleteJob*> sJobs;
|
||||||
};
|
};
|
||||||
static LLDeleteScheduler* gDeleteScheduler;
|
static LLDeleteScheduler* gDeleteScheduler;
|
||||||
#endif
|
#endif
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|||||||
@@ -95,10 +95,10 @@
|
|||||||
#include "lltexturefetch.h"
|
#include "lltexturefetch.h"
|
||||||
#include "llimageworker.h"
|
#include "llimageworker.h"
|
||||||
|
|
||||||
// <edit>
|
// <edit>
|
||||||
#include "lldelayeduidelete.h"
|
#include "lldelayeduidelete.h"
|
||||||
#include "llbuildnewviewsscheduler.h"
|
#include "llbuildnewviewsscheduler.h"
|
||||||
// </edit>
|
// </edit>
|
||||||
// The files below handle dependencies from cleanup.
|
// The files below handle dependencies from cleanup.
|
||||||
#include "llkeyframemotion.h"
|
#include "llkeyframemotion.h"
|
||||||
#include "llworldmap.h"
|
#include "llworldmap.h"
|
||||||
@@ -245,9 +245,9 @@ F32 gLogoutMaxTime = LOGOUT_REQUEST_TIME;
|
|||||||
|
|
||||||
LLUUID gInventoryLibraryOwner;
|
LLUUID gInventoryLibraryOwner;
|
||||||
LLUUID gInventoryLibraryRoot;
|
LLUUID gInventoryLibraryRoot;
|
||||||
// <edit>
|
// <edit>
|
||||||
LLUUID gLocalInventoryRoot;
|
LLUUID gLocalInventoryRoot;
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|
||||||
BOOL gDisconnected = FALSE;
|
BOOL gDisconnected = FALSE;
|
||||||
|
|
||||||
@@ -291,9 +291,9 @@ const std::string ERROR_MARKER_FILE_NAME("SecondLife.error_marker");
|
|||||||
const std::string LLERROR_MARKER_FILE_NAME("SecondLife.llerror_marker");
|
const std::string LLERROR_MARKER_FILE_NAME("SecondLife.llerror_marker");
|
||||||
const std::string LOGOUT_MARKER_FILE_NAME("SecondLife.logout_marker");
|
const std::string LOGOUT_MARKER_FILE_NAME("SecondLife.logout_marker");
|
||||||
static BOOL gDoDisconnect = FALSE;
|
static BOOL gDoDisconnect = FALSE;
|
||||||
// <edit>
|
// <edit>
|
||||||
//static BOOL gBusyDisconnect = FALSE;
|
//static BOOL gBusyDisconnect = FALSE;
|
||||||
// </edit>
|
// </edit>
|
||||||
static std::string gLaunchFileOnQuit;
|
static std::string gLaunchFileOnQuit;
|
||||||
|
|
||||||
// Used on Win32 for other apps to identify our window (eg, win_setup)
|
// Used on Win32 for other apps to identify our window (eg, win_setup)
|
||||||
@@ -575,10 +575,10 @@ bool LLAppViewer::init()
|
|||||||
|
|
||||||
initLogging();
|
initLogging();
|
||||||
|
|
||||||
// <edit>
|
// <edit>
|
||||||
gDeleteScheduler = new LLDeleteScheduler();
|
gDeleteScheduler = new LLDeleteScheduler();
|
||||||
gBuildNewViewsScheduler = new LLBuildNewViewsScheduler();
|
gBuildNewViewsScheduler = new LLBuildNewViewsScheduler();
|
||||||
// </edit>
|
// </edit>
|
||||||
//
|
//
|
||||||
// OK to write stuff to logs now, we've now crash reported if necessary
|
// OK to write stuff to logs now, we've now crash reported if necessary
|
||||||
//
|
//
|
||||||
@@ -594,19 +594,19 @@ bool LLAppViewer::init()
|
|||||||
writeSystemInfo();
|
writeSystemInfo();
|
||||||
|
|
||||||
// Build a string representing the current version number.
|
// Build a string representing the current version number.
|
||||||
// <edit> meh
|
// <edit> meh
|
||||||
/*
|
/*
|
||||||
// </edit>
|
// </edit>
|
||||||
gCurrentVersion = llformat("%s %d.%d.%d.%d",
|
gCurrentVersion = llformat("%s %d.%d.%d.%d",
|
||||||
gSavedSettings.getString("VersionChannelName").c_str(),
|
gSavedSettings.getString("VersionChannelName").c_str(),
|
||||||
LL_VERSION_MAJOR,
|
LL_VERSION_MAJOR,
|
||||||
LL_VERSION_MINOR,
|
LL_VERSION_MINOR,
|
||||||
LL_VERSION_PATCH,
|
LL_VERSION_PATCH,
|
||||||
LL_VERSION_BUILD );
|
LL_VERSION_BUILD );
|
||||||
// <edit>
|
// <edit>
|
||||||
*/
|
*/
|
||||||
gCurrentVersion = gSavedSettings.getString("SpecifiedChannel");
|
gCurrentVersion = gSavedSettings.getString("SpecifiedChannel");
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -940,7 +940,7 @@ bool LLAppViewer::mainLoop()
|
|||||||
pauseMainloopTimeout(); // *TODO: Remove. Messages shouldn't be stalling for 20+ seconds!
|
pauseMainloopTimeout(); // *TODO: Remove. Messages shouldn't be stalling for 20+ seconds!
|
||||||
|
|
||||||
LLFastTimer t3(LLFastTimer::FTM_IDLE);
|
LLFastTimer t3(LLFastTimer::FTM_IDLE);
|
||||||
// <edit> bad_alloc!! </edit>
|
// <edit> bad_alloc!! </edit>
|
||||||
idle();
|
idle();
|
||||||
|
|
||||||
if (gAres != NULL && gAres->isInitialized())
|
if (gAres != NULL && gAres->isInitialized())
|
||||||
@@ -1223,11 +1223,11 @@ bool LLAppViewer::cleanup()
|
|||||||
// such that we can suck rectangle information out of
|
// such that we can suck rectangle information out of
|
||||||
// it.
|
// it.
|
||||||
cleanupSavedSettings();
|
cleanupSavedSettings();
|
||||||
llinfos << "Settings patched up" << llendflush;
|
llinfos << "Settings patched up" << llendflush;
|
||||||
|
|
||||||
// <edit> moving this to below.
|
// <edit> moving this to below.
|
||||||
/*
|
/*
|
||||||
// </edit>
|
// </edit>
|
||||||
// delete some of the files left around in the cache.
|
// delete some of the files left around in the cache.
|
||||||
removeCacheFiles("*.wav");
|
removeCacheFiles("*.wav");
|
||||||
removeCacheFiles("*.tmp");
|
removeCacheFiles("*.tmp");
|
||||||
@@ -1236,9 +1236,9 @@ bool LLAppViewer::cleanup()
|
|||||||
removeCacheFiles("*.dsf");
|
removeCacheFiles("*.dsf");
|
||||||
removeCacheFiles("*.bodypart");
|
removeCacheFiles("*.bodypart");
|
||||||
removeCacheFiles("*.clothing");
|
removeCacheFiles("*.clothing");
|
||||||
// <edit>
|
// <edit>
|
||||||
*/
|
*/
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|
||||||
llinfos << "Cache files removed" << llendflush;
|
llinfos << "Cache files removed" << llendflush;
|
||||||
|
|
||||||
@@ -1367,18 +1367,18 @@ bool LLAppViewer::cleanup()
|
|||||||
}
|
}
|
||||||
|
|
||||||
removeMarkerFile(); // Any crashes from here on we'll just have to ignore
|
removeMarkerFile(); // Any crashes from here on we'll just have to ignore
|
||||||
// <edit> moved this stuff from above to make it conditional here...
|
// <edit> moved this stuff from above to make it conditional here...
|
||||||
if(!anotherInstanceRunning())
|
if(!anotherInstanceRunning())
|
||||||
{
|
{
|
||||||
removeCacheFiles("*.wav");
|
removeCacheFiles("*.wav");
|
||||||
removeCacheFiles("*.tmp");
|
removeCacheFiles("*.tmp");
|
||||||
removeCacheFiles("*.lso");
|
removeCacheFiles("*.lso");
|
||||||
removeCacheFiles("*.out");
|
removeCacheFiles("*.out");
|
||||||
removeCacheFiles("*.dsf");
|
removeCacheFiles("*.dsf");
|
||||||
removeCacheFiles("*.bodypart");
|
removeCacheFiles("*.bodypart");
|
||||||
removeCacheFiles("*.clothing");
|
removeCacheFiles("*.clothing");
|
||||||
}
|
}
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|
||||||
writeDebugInfo();
|
writeDebugInfo();
|
||||||
|
|
||||||
@@ -2188,9 +2188,9 @@ bool LLAppViewer::initWindow()
|
|||||||
|
|
||||||
// always start windowed
|
// always start windowed
|
||||||
BOOL ignorePixelDepth = gSavedSettings.getBOOL("IgnorePixelDepth");
|
BOOL ignorePixelDepth = gSavedSettings.getBOOL("IgnorePixelDepth");
|
||||||
// <edit>
|
// <edit>
|
||||||
//gViewerWindow = new LLViewerWindow(gWindowTitle, "Second Life",
|
//gViewerWindow = new LLViewerWindow(gWindowTitle, "Second Life",
|
||||||
gViewerWindow = new LLViewerWindow("Inertia", "Second Life",
|
gViewerWindow = new LLViewerWindow("Inertia", "Second Life",
|
||||||
// </edit>
|
// </edit>
|
||||||
gSavedSettings.getS32("WindowX"), gSavedSettings.getS32("WindowY"),
|
gSavedSettings.getS32("WindowX"), gSavedSettings.getS32("WindowY"),
|
||||||
gSavedSettings.getS32("WindowWidth"), gSavedSettings.getS32("WindowHeight"),
|
gSavedSettings.getS32("WindowWidth"), gSavedSettings.getS32("WindowHeight"),
|
||||||
@@ -2320,10 +2320,10 @@ void LLAppViewer::writeSystemInfo()
|
|||||||
{
|
{
|
||||||
gDebugInfo["SLLog"] = LLError::logFileName();
|
gDebugInfo["SLLog"] = LLError::logFileName();
|
||||||
|
|
||||||
// <edit>
|
// <edit>
|
||||||
//gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("VersionChannelName");
|
//gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("VersionChannelName");
|
||||||
gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("SpecifiedChannel");
|
gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("SpecifiedChannel");
|
||||||
// </edit>
|
// </edit>
|
||||||
gDebugInfo["ClientInfo"]["MajorVersion"] = LL_VERSION_MAJOR;
|
gDebugInfo["ClientInfo"]["MajorVersion"] = LL_VERSION_MAJOR;
|
||||||
gDebugInfo["ClientInfo"]["MinorVersion"] = LL_VERSION_MINOR;
|
gDebugInfo["ClientInfo"]["MinorVersion"] = LL_VERSION_MINOR;
|
||||||
gDebugInfo["ClientInfo"]["PatchVersion"] = LL_VERSION_PATCH;
|
gDebugInfo["ClientInfo"]["PatchVersion"] = LL_VERSION_PATCH;
|
||||||
@@ -2419,10 +2419,10 @@ void LLAppViewer::handleViewerCrash()
|
|||||||
|
|
||||||
//We already do this in writeSystemInfo(), but we do it again here to make /sure/ we have a version
|
//We already do this in writeSystemInfo(), but we do it again here to make /sure/ we have a version
|
||||||
//to check against no matter what
|
//to check against no matter what
|
||||||
// <edit>
|
// <edit>
|
||||||
//gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("VersionChannelName");
|
//gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("VersionChannelName");
|
||||||
gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("SpecifiedChannel");
|
gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("SpecifiedChannel");
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|
||||||
gDebugInfo["ClientInfo"]["MajorVersion"] = LL_VERSION_MAJOR;
|
gDebugInfo["ClientInfo"]["MajorVersion"] = LL_VERSION_MAJOR;
|
||||||
gDebugInfo["ClientInfo"]["MinorVersion"] = LL_VERSION_MINOR;
|
gDebugInfo["ClientInfo"]["MinorVersion"] = LL_VERSION_MINOR;
|
||||||
@@ -3123,9 +3123,9 @@ void LLAppViewer::badNetworkHandler()
|
|||||||
|
|
||||||
// Flush all of our caches on exit in the case of disconnect due to
|
// Flush all of our caches on exit in the case of disconnect due to
|
||||||
// invalid packets.
|
// invalid packets.
|
||||||
// <edit>
|
// <edit>
|
||||||
if(1) return;
|
if(1) return;
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|
||||||
mPurgeOnExit = TRUE;
|
mPurgeOnExit = TRUE;
|
||||||
|
|
||||||
@@ -3342,10 +3342,10 @@ void LLAppViewer::idle()
|
|||||||
// *FIX: (???) SAMANTHA
|
// *FIX: (???) SAMANTHA
|
||||||
if (viewer_stats_timer.getElapsedTimeF32() >= SEND_STATS_PERIOD && !gDisconnected)
|
if (viewer_stats_timer.getElapsedTimeF32() >= SEND_STATS_PERIOD && !gDisconnected)
|
||||||
{
|
{
|
||||||
// <edit> we are not transmitting session stats
|
// <edit> we are not transmitting session stats
|
||||||
//llinfos << "Transmitting sessions stats" << llendl;
|
//llinfos << "Transmitting sessions stats" << llendl;
|
||||||
//send_stats();
|
//send_stats();
|
||||||
// </edit>
|
// </edit>
|
||||||
viewer_stats_timer.reset();
|
viewer_stats_timer.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4083,10 +4083,10 @@ void LLAppViewer::handleLoginComplete()
|
|||||||
initMainloopTimeout("Mainloop Init");
|
initMainloopTimeout("Mainloop Init");
|
||||||
|
|
||||||
// Store some data to DebugInfo in case of a freeze.
|
// Store some data to DebugInfo in case of a freeze.
|
||||||
// <edit>
|
// <edit>
|
||||||
//gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("VersionChannelName");
|
//gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("VersionChannelName");
|
||||||
gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("SpecifiedChannel");
|
gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("SpecifiedChannel");
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|
||||||
gDebugInfo["ClientInfo"]["MajorVersion"] = LL_VERSION_MAJOR;
|
gDebugInfo["ClientInfo"]["MajorVersion"] = LL_VERSION_MAJOR;
|
||||||
gDebugInfo["ClientInfo"]["MinorVersion"] = LL_VERSION_MINOR;
|
gDebugInfo["ClientInfo"]["MinorVersion"] = LL_VERSION_MINOR;
|
||||||
|
|||||||
@@ -307,9 +307,9 @@ extern F32 gSimFrames;
|
|||||||
|
|
||||||
extern LLUUID gInventoryLibraryOwner;
|
extern LLUUID gInventoryLibraryOwner;
|
||||||
extern LLUUID gInventoryLibraryRoot;
|
extern LLUUID gInventoryLibraryRoot;
|
||||||
// <edit>
|
// <edit>
|
||||||
extern LLUUID gLocalInventoryRoot;
|
extern LLUUID gLocalInventoryRoot;
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|
||||||
extern BOOL gDisconnected;
|
extern BOOL gDisconnected;
|
||||||
|
|
||||||
|
|||||||
@@ -1,140 +1,140 @@
|
|||||||
// <edit>
|
// <edit>
|
||||||
#include "llviewerprecompiledheaders.h"
|
#include "llviewerprecompiledheaders.h"
|
||||||
#include "llbuildnewviewsscheduler.h"
|
#include "llbuildnewviewsscheduler.h"
|
||||||
#include "llinventorybridge.h"
|
#include "llinventorybridge.h"
|
||||||
#define BUILD_DELAY 0.1f
|
#define BUILD_DELAY 0.1f
|
||||||
#define BUILD_PER_DELAY 512
|
#define BUILD_PER_DELAY 512
|
||||||
std::list<LLBuildNewViewsScheduler::job> LLBuildNewViewsScheduler::sJobs;
|
std::list<LLBuildNewViewsScheduler::job> LLBuildNewViewsScheduler::sJobs;
|
||||||
LLBuildNewViewsScheduler::LLBuildNewViewsScheduler() : LLEventTimer(BUILD_DELAY)
|
LLBuildNewViewsScheduler::LLBuildNewViewsScheduler() : LLEventTimer(BUILD_DELAY)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
void LLBuildNewViewsScheduler::addJob(LLInventoryPanel* inventory_panel, LLInventoryObject* inventory_object)
|
void LLBuildNewViewsScheduler::addJob(LLInventoryPanel* inventory_panel, LLInventoryObject* inventory_object)
|
||||||
{
|
{
|
||||||
LLBuildNewViewsScheduler::job j;
|
LLBuildNewViewsScheduler::job j;
|
||||||
j.mInventoryPanel = inventory_panel;
|
j.mInventoryPanel = inventory_panel;
|
||||||
j.mInventoryObject = inventory_object;
|
j.mInventoryObject = inventory_object;
|
||||||
sJobs.push_back(j);
|
sJobs.push_back(j);
|
||||||
}
|
}
|
||||||
void LLBuildNewViewsScheduler::cancel(LLInventoryPanel* inventory_panel)
|
void LLBuildNewViewsScheduler::cancel(LLInventoryPanel* inventory_panel)
|
||||||
{
|
{
|
||||||
for(std::list<LLBuildNewViewsScheduler::job>::iterator iter = sJobs.begin();
|
for(std::list<LLBuildNewViewsScheduler::job>::iterator iter = sJobs.begin();
|
||||||
iter != sJobs.end(); )
|
iter != sJobs.end(); )
|
||||||
{
|
{
|
||||||
LLInventoryPanel* job_panel = (*iter).mInventoryPanel;
|
LLInventoryPanel* job_panel = (*iter).mInventoryPanel;
|
||||||
if(job_panel == inventory_panel)
|
if(job_panel == inventory_panel)
|
||||||
{
|
{
|
||||||
iter = sJobs.erase(iter);
|
iter = sJobs.erase(iter);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
++iter;
|
++iter;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
BOOL LLBuildNewViewsScheduler::tick()
|
BOOL LLBuildNewViewsScheduler::tick()
|
||||||
{
|
{
|
||||||
U32 i = 0;
|
U32 i = 0;
|
||||||
while(!sJobs.empty() && (i < BUILD_PER_DELAY))
|
while(!sJobs.empty() && (i < BUILD_PER_DELAY))
|
||||||
{
|
{
|
||||||
LLBuildNewViewsScheduler::job j = sJobs.front();
|
LLBuildNewViewsScheduler::job j = sJobs.front();
|
||||||
buildNewViews(j.mInventoryPanel, j.mInventoryObject);
|
buildNewViews(j.mInventoryPanel, j.mInventoryObject);
|
||||||
sJobs.pop_front();
|
sJobs.pop_front();
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
void LLBuildNewViewsScheduler::buildNewViews(LLInventoryPanel* panelp, LLInventoryObject* objectp)
|
void LLBuildNewViewsScheduler::buildNewViews(LLInventoryPanel* panelp, LLInventoryObject* objectp)
|
||||||
{
|
{
|
||||||
LLFolderViewItem* itemp = NULL;
|
LLFolderViewItem* itemp = NULL;
|
||||||
|
|
||||||
if (objectp)
|
if (objectp)
|
||||||
{
|
{
|
||||||
if (objectp->getType() <= LLAssetType::AT_NONE ||
|
if (objectp->getType() <= LLAssetType::AT_NONE ||
|
||||||
objectp->getType() >= LLAssetType::AT_COUNT)
|
objectp->getType() >= LLAssetType::AT_COUNT)
|
||||||
{
|
{
|
||||||
llwarns << "called with objectp->mType == "
|
llwarns << "called with objectp->mType == "
|
||||||
<< ((S32) objectp->getType())
|
<< ((S32) objectp->getType())
|
||||||
<< " (shouldn't happen)" << llendl;
|
<< " (shouldn't happen)" << llendl;
|
||||||
}
|
}
|
||||||
else if (objectp->getType() == LLAssetType::AT_CATEGORY) // build new view for category
|
else if (objectp->getType() == LLAssetType::AT_CATEGORY) // build new view for category
|
||||||
{
|
{
|
||||||
LLInvFVBridge* new_listener = LLInvFVBridge::createBridge(objectp->getType(),
|
LLInvFVBridge* new_listener = LLInvFVBridge::createBridge(objectp->getType(),
|
||||||
LLInventoryType::IT_CATEGORY,
|
LLInventoryType::IT_CATEGORY,
|
||||||
panelp,
|
panelp,
|
||||||
objectp->getUUID());
|
objectp->getUUID());
|
||||||
|
|
||||||
if (new_listener)
|
if (new_listener)
|
||||||
{
|
{
|
||||||
LLFolderViewFolder* folderp = new LLFolderViewFolder(new_listener->getDisplayName(),
|
LLFolderViewFolder* folderp = new LLFolderViewFolder(new_listener->getDisplayName(),
|
||||||
new_listener->getIcon(),
|
new_listener->getIcon(),
|
||||||
panelp->getRootFolder(),
|
panelp->getRootFolder(),
|
||||||
new_listener);
|
new_listener);
|
||||||
|
|
||||||
folderp->setItemSortOrder(panelp->getSortOrder());
|
folderp->setItemSortOrder(panelp->getSortOrder());
|
||||||
itemp = folderp;
|
itemp = folderp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else // build new view for item
|
else // build new view for item
|
||||||
{
|
{
|
||||||
LLInventoryItem* item = (LLInventoryItem*)objectp;
|
LLInventoryItem* item = (LLInventoryItem*)objectp;
|
||||||
LLInvFVBridge* new_listener = LLInvFVBridge::createBridge(
|
LLInvFVBridge* new_listener = LLInvFVBridge::createBridge(
|
||||||
item->getType(),
|
item->getType(),
|
||||||
item->getInventoryType(),
|
item->getInventoryType(),
|
||||||
panelp,
|
panelp,
|
||||||
item->getUUID(),
|
item->getUUID(),
|
||||||
item->getFlags());
|
item->getFlags());
|
||||||
if (new_listener)
|
if (new_listener)
|
||||||
{
|
{
|
||||||
itemp = new LLFolderViewItem(new_listener->getDisplayName(),
|
itemp = new LLFolderViewItem(new_listener->getDisplayName(),
|
||||||
new_listener->getIcon(),
|
new_listener->getIcon(),
|
||||||
new_listener->getCreationDate(),
|
new_listener->getCreationDate(),
|
||||||
panelp->getRootFolder(),
|
panelp->getRootFolder(),
|
||||||
new_listener);
|
new_listener);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LLFolderViewFolder* parent_folder = (LLFolderViewFolder*)panelp->getRootFolder()->getItemByID(objectp->getParentUUID());
|
LLFolderViewFolder* parent_folder = (LLFolderViewFolder*)panelp->getRootFolder()->getItemByID(objectp->getParentUUID());
|
||||||
|
|
||||||
if (itemp)
|
if (itemp)
|
||||||
{
|
{
|
||||||
itemp->mDelayedDelete = TRUE;
|
itemp->mDelayedDelete = TRUE;
|
||||||
if (parent_folder)
|
if (parent_folder)
|
||||||
{
|
{
|
||||||
itemp->addToFolder(parent_folder, panelp->getRootFolder());
|
itemp->addToFolder(parent_folder, panelp->getRootFolder());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
llwarns << "Couldn't find parent folder for child " << itemp->getLabel() << llendl;
|
llwarns << "Couldn't find parent folder for child " << itemp->getLabel() << llendl;
|
||||||
delete itemp;
|
delete itemp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!objectp || (objectp && (objectp->getType() == LLAssetType::AT_CATEGORY)))
|
if (!objectp || (objectp && (objectp->getType() == LLAssetType::AT_CATEGORY)))
|
||||||
{
|
{
|
||||||
LLViewerInventoryCategory::cat_array_t* categories;
|
LLViewerInventoryCategory::cat_array_t* categories;
|
||||||
LLViewerInventoryItem::item_array_t* items;
|
LLViewerInventoryItem::item_array_t* items;
|
||||||
|
|
||||||
panelp->getModel()->lockDirectDescendentArrays((objectp != NULL) ? objectp->getUUID() : LLUUID::null, categories, items);
|
panelp->getModel()->lockDirectDescendentArrays((objectp != NULL) ? objectp->getUUID() : LLUUID::null, categories, items);
|
||||||
if(categories)
|
if(categories)
|
||||||
{
|
{
|
||||||
S32 count = categories->count();
|
S32 count = categories->count();
|
||||||
for(S32 i = 0; i < count; ++i)
|
for(S32 i = 0; i < count; ++i)
|
||||||
{
|
{
|
||||||
LLInventoryCategory* cat = categories->get(i);
|
LLInventoryCategory* cat = categories->get(i);
|
||||||
addJob(panelp, cat);
|
addJob(panelp, cat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(items)
|
if(items)
|
||||||
{
|
{
|
||||||
S32 count = items->count();
|
S32 count = items->count();
|
||||||
for(S32 i = 0; i < count; ++i)
|
for(S32 i = 0; i < count; ++i)
|
||||||
{
|
{
|
||||||
LLInventoryItem* item = items->get(i);
|
LLInventoryItem* item = items->get(i);
|
||||||
addJob(panelp, item);
|
addJob(panelp, item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
panelp->getModel()->unlockDirectDescendentArrays(objectp->getUUID());
|
panelp->getModel()->unlockDirectDescendentArrays(objectp->getUUID());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|||||||
@@ -1,21 +1,21 @@
|
|||||||
// <edit>
|
// <edit>
|
||||||
#include "llinventoryview.h"
|
#include "llinventoryview.h"
|
||||||
#include "llinventory.h"
|
#include "llinventory.h"
|
||||||
class LLBuildNewViewsScheduler : public LLEventTimer
|
class LLBuildNewViewsScheduler : public LLEventTimer
|
||||||
{
|
{
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
LLInventoryPanel* mInventoryPanel;
|
LLInventoryPanel* mInventoryPanel;
|
||||||
LLInventoryObject* mInventoryObject;
|
LLInventoryObject* mInventoryObject;
|
||||||
} job;
|
} job;
|
||||||
public:
|
public:
|
||||||
LLBuildNewViewsScheduler();
|
LLBuildNewViewsScheduler();
|
||||||
void addJob(LLInventoryPanel* inventory_panel, LLInventoryObject* inventory_object);
|
void addJob(LLInventoryPanel* inventory_panel, LLInventoryObject* inventory_object);
|
||||||
void cancel(LLInventoryPanel* inventory_panel);
|
void cancel(LLInventoryPanel* inventory_panel);
|
||||||
BOOL tick();
|
BOOL tick();
|
||||||
private:
|
private:
|
||||||
static std::list<job> sJobs;
|
static std::list<job> sJobs;
|
||||||
void buildNewViews(LLInventoryPanel* panelp, LLInventoryObject* objectp);
|
void buildNewViews(LLInventoryPanel* panelp, LLInventoryObject* objectp);
|
||||||
};
|
};
|
||||||
static LLBuildNewViewsScheduler* gBuildNewViewsScheduler;
|
static LLBuildNewViewsScheduler* gBuildNewViewsScheduler;
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|||||||
@@ -200,10 +200,12 @@ BOOL LLFilePicker::setupFilter(ELoadFilter filter)
|
|||||||
mOFN.lpstrFilter = INVGZ_FILTER \
|
mOFN.lpstrFilter = INVGZ_FILTER \
|
||||||
L"\0";
|
L"\0";
|
||||||
break;
|
break;
|
||||||
|
/*
|
||||||
case FFLOAD_AO:
|
case FFLOAD_AO:
|
||||||
mOFN.lpstrFilter = AO_FILTER \
|
mOFN.lpstrFilter = AO_FILTER \
|
||||||
L"\0";
|
L"\0";
|
||||||
break;
|
break;
|
||||||
|
*/
|
||||||
// </edit>
|
// </edit>
|
||||||
default:
|
default:
|
||||||
res = FALSE;
|
res = FALSE;
|
||||||
|
|||||||
@@ -1,310 +1,310 @@
|
|||||||
// <edit>
|
// <edit>
|
||||||
|
|
||||||
#include "llviewerprecompiledheaders.h"
|
#include "llviewerprecompiledheaders.h"
|
||||||
#include "llfloaterexploreanimations.h"
|
#include "llfloaterexploreanimations.h"
|
||||||
#include "lluictrlfactory.h"
|
#include "lluictrlfactory.h"
|
||||||
#include "llscrolllistctrl.h"
|
#include "llscrolllistctrl.h"
|
||||||
#include "llfloateranimpreview.h"
|
#include "llfloateranimpreview.h"
|
||||||
#include "llvoavatar.h"
|
#include "llvoavatar.h"
|
||||||
#include "lllocalinventory.h"
|
#include "lllocalinventory.h"
|
||||||
// <stuff for jelly roll>
|
// <stuff for jelly roll>
|
||||||
#include "llfloatertools.h"
|
#include "llfloatertools.h"
|
||||||
#include "llselectmgr.h"
|
#include "llselectmgr.h"
|
||||||
// </stuff for jelly roll>
|
// </stuff for jelly roll>
|
||||||
|
|
||||||
std::map<LLUUID, std::list<LLAnimHistoryItem*>> LLFloaterExploreAnimations::animHistory;
|
std::map<LLUUID, std::list<LLAnimHistoryItem*>> LLFloaterExploreAnimations::animHistory;
|
||||||
LLFloaterExploreAnimations* LLFloaterExploreAnimations::sInstance;
|
LLFloaterExploreAnimations* LLFloaterExploreAnimations::sInstance;
|
||||||
|
|
||||||
|
|
||||||
LLAnimHistoryItem::LLAnimHistoryItem(LLUUID assetid)
|
LLAnimHistoryItem::LLAnimHistoryItem(LLUUID assetid)
|
||||||
{
|
{
|
||||||
mAssetID = assetid;
|
mAssetID = assetid;
|
||||||
}
|
}
|
||||||
|
|
||||||
LLFloaterExploreAnimations::LLFloaterExploreAnimations(LLUUID avatarid)
|
LLFloaterExploreAnimations::LLFloaterExploreAnimations(LLUUID avatarid)
|
||||||
: LLFloater()
|
: LLFloater()
|
||||||
{
|
{
|
||||||
LLFloaterExploreAnimations::sInstance = this;
|
LLFloaterExploreAnimations::sInstance = this;
|
||||||
mAvatarID = avatarid;
|
mAvatarID = avatarid;
|
||||||
mAnimPreview = new LLPreviewAnimation(256, 256);
|
mAnimPreview = new LLPreviewAnimation(256, 256);
|
||||||
mAnimPreview->setZoom(2.0f);
|
mAnimPreview->setZoom(2.0f);
|
||||||
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_explore_animations.xml");
|
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_explore_animations.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLFloaterExploreAnimations::close(bool app_quitting)
|
void LLFloaterExploreAnimations::close(bool app_quitting)
|
||||||
{
|
{
|
||||||
LLFloater::close(app_quitting);
|
LLFloater::close(app_quitting);
|
||||||
}
|
}
|
||||||
|
|
||||||
LLFloaterExploreAnimations::~LLFloaterExploreAnimations()
|
LLFloaterExploreAnimations::~LLFloaterExploreAnimations()
|
||||||
{
|
{
|
||||||
delete mAnimPreview;
|
delete mAnimPreview;
|
||||||
LLFloaterExploreAnimations::sInstance = NULL;
|
LLFloaterExploreAnimations::sInstance = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL LLFloaterExploreAnimations::postBuild(void)
|
BOOL LLFloaterExploreAnimations::postBuild(void)
|
||||||
{
|
{
|
||||||
childSetCommitCallback("anim_list", onSelectAnimation, this);
|
childSetCommitCallback("anim_list", onSelectAnimation, this);
|
||||||
childSetAction("copy_uuid_btn", onClickCopyUUID, this);
|
childSetAction("copy_uuid_btn", onClickCopyUUID, this);
|
||||||
childSetAction("open_btn", onClickOpen, this);
|
childSetAction("open_btn", onClickOpen, this);
|
||||||
childSetAction("jelly_roll_btn", onClickJellyRoll, this);
|
childSetAction("jelly_roll_btn", onClickJellyRoll, this);
|
||||||
update();
|
update();
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLFloaterExploreAnimations::update()
|
void LLFloaterExploreAnimations::update()
|
||||||
{
|
{
|
||||||
LLScrollListCtrl* list = getChild<LLScrollListCtrl>("anim_list");
|
LLScrollListCtrl* list = getChild<LLScrollListCtrl>("anim_list");
|
||||||
LLUUID selection = list->getSelectedValue().asUUID();
|
LLUUID selection = list->getSelectedValue().asUUID();
|
||||||
list->clearRows(); // do this differently probably
|
list->clearRows(); // do this differently probably
|
||||||
|
|
||||||
std::list<LLAnimHistoryItem*> history = animHistory[mAvatarID];
|
std::list<LLAnimHistoryItem*> history = animHistory[mAvatarID];
|
||||||
std::list<LLAnimHistoryItem*>::iterator iter = history.begin();
|
std::list<LLAnimHistoryItem*>::iterator iter = history.begin();
|
||||||
std::list<LLAnimHistoryItem*>::iterator end = history.end();
|
std::list<LLAnimHistoryItem*>::iterator end = history.end();
|
||||||
for( ; iter != end; ++iter)
|
for( ; iter != end; ++iter)
|
||||||
{
|
{
|
||||||
LLAnimHistoryItem* item = (*iter);
|
LLAnimHistoryItem* item = (*iter);
|
||||||
|
|
||||||
LLSD element;
|
LLSD element;
|
||||||
element["id"] = item->mAssetID;
|
element["id"] = item->mAssetID;
|
||||||
|
|
||||||
LLSD& name_column = element["columns"][0];
|
LLSD& name_column = element["columns"][0];
|
||||||
name_column["column"] = "name";
|
name_column["column"] = "name";
|
||||||
name_column["value"] = item->mAssetID.asString();
|
name_column["value"] = item->mAssetID.asString();
|
||||||
|
|
||||||
LLSD& info_column = element["columns"][1];
|
LLSD& info_column = element["columns"][1];
|
||||||
info_column["column"] = "info";
|
info_column["column"] = "info";
|
||||||
if(item->mPlaying)
|
if(item->mPlaying)
|
||||||
info_column["value"] = "Playing";
|
info_column["value"] = "Playing";
|
||||||
else
|
else
|
||||||
info_column["value"] = llformat("%.1f min ago", (LLTimer::getElapsedSeconds() - item->mTimeStopped) / 60.f);
|
info_column["value"] = llformat("%.1f min ago", (LLTimer::getElapsedSeconds() - item->mTimeStopped) / 60.f);
|
||||||
|
|
||||||
list->addElement(element, ADD_BOTTOM);
|
list->addElement(element, ADD_BOTTOM);
|
||||||
}
|
}
|
||||||
|
|
||||||
list->selectByID(selection);
|
list->selectByID(selection);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLFloaterExploreAnimations::draw()
|
void LLFloaterExploreAnimations::draw()
|
||||||
{
|
{
|
||||||
LLFloater::draw();
|
LLFloater::draw();
|
||||||
|
|
||||||
LLRect r = getRect();
|
LLRect r = getRect();
|
||||||
|
|
||||||
gGL.color3f(1.f, 1.f, 1.f);
|
gGL.color3f(1.f, 1.f, 1.f);
|
||||||
|
|
||||||
gGL.getTexUnit(0)->bind(mAnimPreview->getTexture());
|
gGL.getTexUnit(0)->bind(mAnimPreview->getTexture());
|
||||||
|
|
||||||
gGL.begin( LLRender::QUADS );
|
gGL.begin( LLRender::QUADS );
|
||||||
{
|
{
|
||||||
gGL.texCoord2f(0.f, 1.f);
|
gGL.texCoord2f(0.f, 1.f);
|
||||||
gGL.vertex2i(r.getWidth() - 266, r.getHeight() - 25);
|
gGL.vertex2i(r.getWidth() - 266, r.getHeight() - 25);
|
||||||
gGL.texCoord2f(0.f, 0.f);
|
gGL.texCoord2f(0.f, 0.f);
|
||||||
gGL.vertex2i(r.getWidth() - 266, r.getHeight() - 256);
|
gGL.vertex2i(r.getWidth() - 266, r.getHeight() - 256);
|
||||||
gGL.texCoord2f(1.f, 0.f);
|
gGL.texCoord2f(1.f, 0.f);
|
||||||
gGL.vertex2i(r.getWidth() - 10, r.getHeight() - 256);
|
gGL.vertex2i(r.getWidth() - 10, r.getHeight() - 256);
|
||||||
gGL.texCoord2f(1.f, 1.f);
|
gGL.texCoord2f(1.f, 1.f);
|
||||||
gGL.vertex2i(r.getWidth() - 10, r.getHeight() - 25);
|
gGL.vertex2i(r.getWidth() - 10, r.getHeight() - 25);
|
||||||
}
|
}
|
||||||
gGL.end();
|
gGL.end();
|
||||||
|
|
||||||
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
|
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
|
||||||
|
|
||||||
//LLVOAvatar* avatarp = mAnimPreview->getDummyAvatar();
|
//LLVOAvatar* avatarp = mAnimPreview->getDummyAvatar();
|
||||||
//if (!avatarp->areAnimationsPaused())
|
//if (!avatarp->areAnimationsPaused())
|
||||||
//{
|
//{
|
||||||
// mAnimPreview->requestUpdate();
|
// mAnimPreview->requestUpdate();
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// static
|
// static
|
||||||
void LLFloaterExploreAnimations::startAnim(LLUUID avatarid, LLUUID assetid)
|
void LLFloaterExploreAnimations::startAnim(LLUUID avatarid, LLUUID assetid)
|
||||||
{
|
{
|
||||||
std::string asset_str = assetid.asString();
|
std::string asset_str = assetid.asString();
|
||||||
if(asset_str.find("17132261-c061") != std::string::npos) return; // dog1
|
if(asset_str.find("17132261-c061") != std::string::npos) return; // dog1
|
||||||
else if(asset_str.find("fea558cb-8b9b") != std::string::npos) return; // dog2
|
else if(asset_str.find("fea558cb-8b9b") != std::string::npos) return; // dog2
|
||||||
else if(asset_str.find("50cb5750-0743") != std::string::npos) return; // dog3
|
else if(asset_str.find("50cb5750-0743") != std::string::npos) return; // dog3
|
||||||
else if(asset_str.find("-dead-") != std::string::npos) return; // emo
|
else if(asset_str.find("-dead-") != std::string::npos) return; // emo
|
||||||
|
|
||||||
LLAnimHistoryItem* item = NULL;
|
LLAnimHistoryItem* item = NULL;
|
||||||
|
|
||||||
std::list<LLAnimHistoryItem*> history = animHistory[avatarid];
|
std::list<LLAnimHistoryItem*> history = animHistory[avatarid];
|
||||||
std::list<LLAnimHistoryItem*>::iterator iter = history.begin();
|
std::list<LLAnimHistoryItem*>::iterator iter = history.begin();
|
||||||
std::list<LLAnimHistoryItem*>::iterator end = history.end();
|
std::list<LLAnimHistoryItem*>::iterator end = history.end();
|
||||||
for( ; iter != end; ++iter)
|
for( ; iter != end; ++iter)
|
||||||
{
|
{
|
||||||
if((*iter)->mAssetID == assetid)
|
if((*iter)->mAssetID == assetid)
|
||||||
{
|
{
|
||||||
item = (*iter);
|
item = (*iter);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!item)
|
if(!item)
|
||||||
{
|
{
|
||||||
item = new LLAnimHistoryItem(assetid);
|
item = new LLAnimHistoryItem(assetid);
|
||||||
item->mAvatarID = avatarid;
|
item->mAvatarID = avatarid;
|
||||||
item->mTimeStarted = LLTimer::getElapsedSeconds();
|
item->mTimeStarted = LLTimer::getElapsedSeconds();
|
||||||
}
|
}
|
||||||
item->mPlaying = true;
|
item->mPlaying = true;
|
||||||
history.push_back(item);
|
history.push_back(item);
|
||||||
animHistory[avatarid] = history; // is this really necessary?
|
animHistory[avatarid] = history; // is this really necessary?
|
||||||
handleHistoryChange();
|
handleHistoryChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
void LLFloaterExploreAnimations::stopAnim(LLUUID avatarid, LLUUID assetid)
|
void LLFloaterExploreAnimations::stopAnim(LLUUID avatarid, LLUUID assetid)
|
||||||
{
|
{
|
||||||
std::string asset_str = assetid.asString();
|
std::string asset_str = assetid.asString();
|
||||||
if(asset_str.find("17132261-c061") != std::string::npos) return; // dog1
|
if(asset_str.find("17132261-c061") != std::string::npos) return; // dog1
|
||||||
else if(asset_str.find("fea558cb-8b9b") != std::string::npos) return; // dog2
|
else if(asset_str.find("fea558cb-8b9b") != std::string::npos) return; // dog2
|
||||||
else if(asset_str.find("50cb5750-0743") != std::string::npos) return; // dog3
|
else if(asset_str.find("50cb5750-0743") != std::string::npos) return; // dog3
|
||||||
else if(asset_str.find("-dead-") != std::string::npos) return; // emo
|
else if(asset_str.find("-dead-") != std::string::npos) return; // emo
|
||||||
|
|
||||||
LLAnimHistoryItem* item = NULL;
|
LLAnimHistoryItem* item = NULL;
|
||||||
|
|
||||||
std::list<LLAnimHistoryItem*> history = animHistory[avatarid];
|
std::list<LLAnimHistoryItem*> history = animHistory[avatarid];
|
||||||
std::list<LLAnimHistoryItem*>::iterator iter = history.begin();
|
std::list<LLAnimHistoryItem*>::iterator iter = history.begin();
|
||||||
std::list<LLAnimHistoryItem*>::iterator end = history.end();
|
std::list<LLAnimHistoryItem*>::iterator end = history.end();
|
||||||
for( ; iter != end; ++iter)
|
for( ; iter != end; ++iter)
|
||||||
{
|
{
|
||||||
if((*iter)->mAssetID == assetid)
|
if((*iter)->mAssetID == assetid)
|
||||||
{
|
{
|
||||||
item = (*iter);
|
item = (*iter);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!item)
|
if(!item)
|
||||||
{
|
{
|
||||||
item = new LLAnimHistoryItem(assetid);
|
item = new LLAnimHistoryItem(assetid);
|
||||||
item->mAvatarID = avatarid;
|
item->mAvatarID = avatarid;
|
||||||
item->mTimeStarted = LLTimer::getElapsedSeconds();
|
item->mTimeStarted = LLTimer::getElapsedSeconds();
|
||||||
history.push_back(item);
|
history.push_back(item);
|
||||||
}
|
}
|
||||||
item->mPlaying = false;
|
item->mPlaying = false;
|
||||||
item->mTimeStopped = LLTimer::getElapsedSeconds();
|
item->mTimeStopped = LLTimer::getElapsedSeconds();
|
||||||
handleHistoryChange();
|
handleHistoryChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
class LLAnimHistoryItemCompare
|
class LLAnimHistoryItemCompare
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
bool operator() (LLAnimHistoryItem* first, LLAnimHistoryItem* second)
|
bool operator() (LLAnimHistoryItem* first, LLAnimHistoryItem* second)
|
||||||
{
|
{
|
||||||
if(first->mPlaying)
|
if(first->mPlaying)
|
||||||
{
|
{
|
||||||
if(second->mPlaying)
|
if(second->mPlaying)
|
||||||
{
|
{
|
||||||
return (first->mTimeStarted > second->mTimeStarted);
|
return (first->mTimeStarted > second->mTimeStarted);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(second->mPlaying)
|
else if(second->mPlaying)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return (first->mTimeStopped > second->mTimeStopped);
|
return (first->mTimeStopped > second->mTimeStopped);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// static
|
// static
|
||||||
void LLFloaterExploreAnimations::handleHistoryChange()
|
void LLFloaterExploreAnimations::handleHistoryChange()
|
||||||
{
|
{
|
||||||
std::map<LLUUID, std::list<LLAnimHistoryItem*>>::iterator av_iter = animHistory.begin();
|
std::map<LLUUID, std::list<LLAnimHistoryItem*>>::iterator av_iter = animHistory.begin();
|
||||||
std::map<LLUUID, std::list<LLAnimHistoryItem*>>::iterator av_end = animHistory.end();
|
std::map<LLUUID, std::list<LLAnimHistoryItem*>>::iterator av_end = animHistory.end();
|
||||||
for( ; av_iter != av_end; ++av_iter)
|
for( ; av_iter != av_end; ++av_iter)
|
||||||
{
|
{
|
||||||
std::list<LLAnimHistoryItem*> history = (*av_iter).second;
|
std::list<LLAnimHistoryItem*> history = (*av_iter).second;
|
||||||
|
|
||||||
// Sort it
|
// Sort it
|
||||||
LLAnimHistoryItemCompare c;
|
LLAnimHistoryItemCompare c;
|
||||||
history.sort(c);
|
history.sort(c);
|
||||||
|
|
||||||
// Remove dupes
|
// Remove dupes
|
||||||
history.unique();
|
history.unique();
|
||||||
|
|
||||||
// Trim it
|
// Trim it
|
||||||
if(history.size() > 32)
|
if(history.size() > 32)
|
||||||
{
|
{
|
||||||
history.resize(32);
|
history.resize(32);
|
||||||
}
|
}
|
||||||
|
|
||||||
animHistory[(*av_iter).first] = history;
|
animHistory[(*av_iter).first] = history;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update floater
|
// Update floater
|
||||||
if(LLFloaterExploreAnimations::sInstance)
|
if(LLFloaterExploreAnimations::sInstance)
|
||||||
LLFloaterExploreAnimations::sInstance->update();
|
LLFloaterExploreAnimations::sInstance->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// static
|
// static
|
||||||
void LLFloaterExploreAnimations::onSelectAnimation(LLUICtrl* ctrl, void* user_data)
|
void LLFloaterExploreAnimations::onSelectAnimation(LLUICtrl* ctrl, void* user_data)
|
||||||
{
|
{
|
||||||
LLFloaterExploreAnimations* floater = (LLFloaterExploreAnimations*)user_data;
|
LLFloaterExploreAnimations* floater = (LLFloaterExploreAnimations*)user_data;
|
||||||
LLPreviewAnimation* preview = (LLPreviewAnimation*)floater->mAnimPreview;
|
LLPreviewAnimation* preview = (LLPreviewAnimation*)floater->mAnimPreview;
|
||||||
LLScrollListCtrl* list = floater->getChild<LLScrollListCtrl>("anim_list");
|
LLScrollListCtrl* list = floater->getChild<LLScrollListCtrl>("anim_list");
|
||||||
LLUUID selection = list->getSelectedValue().asUUID();
|
LLUUID selection = list->getSelectedValue().asUUID();
|
||||||
|
|
||||||
preview->getDummyAvatar()->deactivateAllMotions();
|
preview->getDummyAvatar()->deactivateAllMotions();
|
||||||
preview->getDummyAvatar()->startMotion(selection, 0.f);
|
preview->getDummyAvatar()->startMotion(selection, 0.f);
|
||||||
preview->setZoom(2.0f);
|
preview->setZoom(2.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
void LLFloaterExploreAnimations::onClickCopyUUID(void* data)
|
void LLFloaterExploreAnimations::onClickCopyUUID(void* data)
|
||||||
{
|
{
|
||||||
LLFloaterExploreAnimations* floater = (LLFloaterExploreAnimations*)data;
|
LLFloaterExploreAnimations* floater = (LLFloaterExploreAnimations*)data;
|
||||||
LLScrollListCtrl* list = floater->getChild<LLScrollListCtrl>("anim_list");
|
LLScrollListCtrl* list = floater->getChild<LLScrollListCtrl>("anim_list");
|
||||||
LLUUID selection = list->getSelectedValue().asUUID();
|
LLUUID selection = list->getSelectedValue().asUUID();
|
||||||
gViewerWindow->mWindow->copyTextToClipboard(utf8str_to_wstring(selection.asString()));
|
gViewerWindow->mWindow->copyTextToClipboard(utf8str_to_wstring(selection.asString()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLFloaterExploreAnimations::onClickOpen(void* data)
|
void LLFloaterExploreAnimations::onClickOpen(void* data)
|
||||||
{
|
{
|
||||||
LLFloaterExploreAnimations* floater = (LLFloaterExploreAnimations*)data;
|
LLFloaterExploreAnimations* floater = (LLFloaterExploreAnimations*)data;
|
||||||
LLScrollListCtrl* list = floater->getChild<LLScrollListCtrl>("anim_list");
|
LLScrollListCtrl* list = floater->getChild<LLScrollListCtrl>("anim_list");
|
||||||
LLUUID selection = list->getSelectedValue().asUUID();
|
LLUUID selection = list->getSelectedValue().asUUID();
|
||||||
LLUUID item = LLLocalInventory::addItem(selection.asString(), LLAssetType::AT_ANIMATION, selection, true);
|
LLUUID item = LLLocalInventory::addItem(selection.asString(), LLAssetType::AT_ANIMATION, selection, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLFloaterExploreAnimations::onClickJellyRoll(void* data)
|
void LLFloaterExploreAnimations::onClickJellyRoll(void* data)
|
||||||
{
|
{
|
||||||
std::string hover_text;
|
std::string hover_text;
|
||||||
LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection();
|
LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection();
|
||||||
LLObjectSelection::valid_iterator sel_it = selection->valid_begin();
|
LLObjectSelection::valid_iterator sel_it = selection->valid_begin();
|
||||||
LLObjectSelection::valid_iterator sel_end = selection->valid_end();
|
LLObjectSelection::valid_iterator sel_end = selection->valid_end();
|
||||||
for( ; sel_it != sel_end; ++sel_it)
|
for( ; sel_it != sel_end; ++sel_it)
|
||||||
{
|
{
|
||||||
LLViewerObject* objectp = (*sel_it)->getObject();
|
LLViewerObject* objectp = (*sel_it)->getObject();
|
||||||
hover_text = objectp->getDebugText();
|
hover_text = objectp->getDebugText();
|
||||||
if(hover_text != "")
|
if(hover_text != "")
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LLFloaterExploreAnimations* floater = (LLFloaterExploreAnimations*)data;
|
LLFloaterExploreAnimations* floater = (LLFloaterExploreAnimations*)data;
|
||||||
LLScrollListCtrl* list = floater->getChild<LLScrollListCtrl>("anim_list");
|
LLScrollListCtrl* list = floater->getChild<LLScrollListCtrl>("anim_list");
|
||||||
LLUUID anim_id = list->getSelectedValue().asUUID();
|
LLUUID anim_id = list->getSelectedValue().asUUID();
|
||||||
|
|
||||||
LLFloaterNewLocalInventory* createy = new LLFloaterNewLocalInventory();
|
LLFloaterNewLocalInventory* createy = new LLFloaterNewLocalInventory();
|
||||||
createy->childSetText("name_line", hover_text);
|
createy->childSetText("name_line", hover_text);
|
||||||
createy->childSetText("asset_id_line", anim_id.asString());
|
createy->childSetText("asset_id_line", anim_id.asString());
|
||||||
createy->childSetValue("type_combo", "animatn");
|
createy->childSetValue("type_combo", "animatn");
|
||||||
createy->childSetText("creator_id_line", LLFloaterNewLocalInventory::sLastCreatorId.asString());
|
createy->childSetText("creator_id_line", LLFloaterNewLocalInventory::sLastCreatorId.asString());
|
||||||
}
|
}
|
||||||
|
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|||||||
@@ -1,58 +1,58 @@
|
|||||||
// <edit>
|
// <edit>
|
||||||
#ifndef LL_LLFLOATEREXPLOREANIMATIONS_H
|
#ifndef LL_LLFLOATEREXPLOREANIMATIONS_H
|
||||||
#define LL_LLFLOATEREXPLOREANIMATIONS_H
|
#define LL_LLFLOATEREXPLOREANIMATIONS_H
|
||||||
|
|
||||||
#include "llfloater.h"
|
#include "llfloater.h"
|
||||||
#include "llfloateranimpreview.h"
|
#include "llfloateranimpreview.h"
|
||||||
#include "llviewerwindow.h" // gViewerWindow
|
#include "llviewerwindow.h" // gViewerWindow
|
||||||
|
|
||||||
class LLAnimHistoryItem
|
class LLAnimHistoryItem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
LLAnimHistoryItem(LLUUID assetid);
|
LLAnimHistoryItem(LLUUID assetid);
|
||||||
|
|
||||||
LLUUID mAvatarID;
|
LLUUID mAvatarID;
|
||||||
LLUUID mAssetID;
|
LLUUID mAssetID;
|
||||||
bool mPlaying;
|
bool mPlaying;
|
||||||
F64 mTimeStarted;
|
F64 mTimeStarted;
|
||||||
F64 mTimeStopped;
|
F64 mTimeStopped;
|
||||||
};
|
};
|
||||||
|
|
||||||
class LLFloaterExploreAnimations
|
class LLFloaterExploreAnimations
|
||||||
: public LLFloater
|
: public LLFloater
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
LLFloaterExploreAnimations(LLUUID avatarid);
|
LLFloaterExploreAnimations(LLUUID avatarid);
|
||||||
BOOL postBuild(void);
|
BOOL postBuild(void);
|
||||||
void close(bool app_quitting);
|
void close(bool app_quitting);
|
||||||
|
|
||||||
void update();
|
void update();
|
||||||
|
|
||||||
LLUUID mAvatarID;
|
LLUUID mAvatarID;
|
||||||
LLPreviewAnimation* mAnimPreview;
|
LLPreviewAnimation* mAnimPreview;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual ~LLFloaterExploreAnimations();
|
virtual ~LLFloaterExploreAnimations();
|
||||||
|
|
||||||
|
|
||||||
// static stuff!
|
// static stuff!
|
||||||
public:
|
public:
|
||||||
static void onSelectAnimation(LLUICtrl* ctrl, void* user_data);
|
static void onSelectAnimation(LLUICtrl* ctrl, void* user_data);
|
||||||
static void onClickCopyUUID(void* data);
|
static void onClickCopyUUID(void* data);
|
||||||
static void onClickOpen(void* data);
|
static void onClickOpen(void* data);
|
||||||
static void onClickJellyRoll(void* data);
|
static void onClickJellyRoll(void* data);
|
||||||
|
|
||||||
static void startAnim(LLUUID avatarid, LLUUID assetid);
|
static void startAnim(LLUUID avatarid, LLUUID assetid);
|
||||||
static void stopAnim(LLUUID avatarid, LLUUID assetid);
|
static void stopAnim(LLUUID avatarid, LLUUID assetid);
|
||||||
|
|
||||||
static std::map<LLUUID, std::list<LLAnimHistoryItem*>> animHistory;
|
static std::map<LLUUID, std::list<LLAnimHistoryItem*>> animHistory;
|
||||||
static LLFloaterExploreAnimations* sInstance;
|
static LLFloaterExploreAnimations* sInstance;
|
||||||
private:
|
private:
|
||||||
static void handleHistoryChange();
|
static void handleHistoryChange();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void draw();
|
void draw();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,127 +1,127 @@
|
|||||||
// <edit>
|
// <edit>
|
||||||
/**
|
/**
|
||||||
* @file llimportobject.h
|
* @file llimportobject.h
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef LL_LLIMPORTOBJECT_H
|
#ifndef LL_LLIMPORTOBJECT_H
|
||||||
#define LL_LLIMPORTOBJECT_H
|
#define LL_LLIMPORTOBJECT_H
|
||||||
|
|
||||||
#include "llviewerobject.h"
|
#include "llviewerobject.h"
|
||||||
#include "llfloater.h"
|
#include "llfloater.h"
|
||||||
|
|
||||||
|
|
||||||
class BuildingSupply : public LLEventTimer
|
class BuildingSupply : public LLEventTimer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
BuildingSupply();
|
BuildingSupply();
|
||||||
BOOL tick();
|
BOOL tick();
|
||||||
};
|
};
|
||||||
|
|
||||||
class LLImportWearable
|
class LLImportWearable
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
std::string mName;
|
std::string mName;
|
||||||
int mType;
|
int mType;
|
||||||
std::string mData;
|
std::string mData;
|
||||||
|
|
||||||
LLImportWearable(LLSD sd);
|
LLImportWearable(LLSD sd);
|
||||||
};
|
};
|
||||||
|
|
||||||
class LLImportObject : public LLViewerObject
|
class LLImportObject : public LLViewerObject
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
//LLImportObject(std::string id, std::string parentId);
|
//LLImportObject(std::string id, std::string parentId);
|
||||||
LLImportObject(std::string id, LLSD prim);
|
LLImportObject(std::string id, LLSD prim);
|
||||||
|
|
||||||
std::string mId;
|
std::string mId;
|
||||||
std::string mParentId;
|
std::string mParentId;
|
||||||
std::string mPrimName;
|
std::string mPrimName;
|
||||||
bool importIsAttachment;
|
bool importIsAttachment;
|
||||||
U32 importAttachPoint;
|
U32 importAttachPoint;
|
||||||
LLVector3 importAttachPos;
|
LLVector3 importAttachPos;
|
||||||
LLQuaternion importAttachRot;
|
LLQuaternion importAttachRot;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class LLXmlImportOptions
|
class LLXmlImportOptions
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
LLXmlImportOptions(LLXmlImportOptions* options);
|
LLXmlImportOptions(LLXmlImportOptions* options);
|
||||||
LLXmlImportOptions(std::string filename);
|
LLXmlImportOptions(std::string filename);
|
||||||
LLXmlImportOptions(LLSD llsd);
|
LLXmlImportOptions(LLSD llsd);
|
||||||
void init(LLSD llsd);
|
void init(LLSD llsd);
|
||||||
std::string mName;
|
std::string mName;
|
||||||
//LLSD mLLSD;
|
//LLSD mLLSD;
|
||||||
std::vector<LLImportObject*> mRootObjects;
|
std::vector<LLImportObject*> mRootObjects;
|
||||||
std::vector<LLImportObject*> mChildObjects;
|
std::vector<LLImportObject*> mChildObjects;
|
||||||
std::vector<LLImportWearable*> mWearables;
|
std::vector<LLImportWearable*> mWearables;
|
||||||
BOOL mKeepPosition;
|
BOOL mKeepPosition;
|
||||||
LLViewerObject* mSupplier;
|
LLViewerObject* mSupplier;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class LLXmlImport
|
class LLXmlImport
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static void import(LLXmlImportOptions* import_options);
|
static void import(LLXmlImportOptions* import_options);
|
||||||
static void onNewPrim(LLViewerObject* object);
|
static void onNewPrim(LLViewerObject* object);
|
||||||
static void onNewItem(LLViewerInventoryItem* item);
|
static void onNewItem(LLViewerInventoryItem* item);
|
||||||
static void onNewAttachment(LLViewerObject* object);
|
static void onNewAttachment(LLViewerObject* object);
|
||||||
static void Cancel(void* user_data);
|
static void Cancel(void* user_data);
|
||||||
|
|
||||||
static bool sImportInProgress;
|
static bool sImportInProgress;
|
||||||
static bool sImportHasAttachments;
|
static bool sImportHasAttachments;
|
||||||
static LLUUID sFolderID;
|
static LLUUID sFolderID;
|
||||||
static LLViewerObject* sSupplyParams;
|
static LLViewerObject* sSupplyParams;
|
||||||
static int sPrimsNeeded;
|
static int sPrimsNeeded;
|
||||||
static std::vector<LLImportObject*> sPrims; // all prims being imported
|
static std::vector<LLImportObject*> sPrims; // all prims being imported
|
||||||
static std::map<U8, bool> sPt2watch; // attach points that need watching
|
static std::map<U8, bool> sPt2watch; // attach points that need watching
|
||||||
static std::map<std::string, U8> sId2attachpt; // attach points of all attachables
|
static std::map<std::string, U8> sId2attachpt; // attach points of all attachables
|
||||||
static std::map<U8, LLVector3> sPt2attachpos; // positions of all attachables
|
static std::map<U8, LLVector3> sPt2attachpos; // positions of all attachables
|
||||||
static std::map<U8, LLQuaternion> sPt2attachrot; // rotations of all attachables
|
static std::map<U8, LLQuaternion> sPt2attachrot; // rotations of all attachables
|
||||||
static int sPrimIndex;
|
static int sPrimIndex;
|
||||||
static int sAttachmentsDone;
|
static int sAttachmentsDone;
|
||||||
static std::map<std::string, U32> sId2localid;
|
static std::map<std::string, U32> sId2localid;
|
||||||
static std::map<U32, LLVector3> sRootpositions;
|
static std::map<U32, LLVector3> sRootpositions;
|
||||||
static LLXmlImportOptions* sXmlImportOptions;
|
static LLXmlImportOptions* sXmlImportOptions;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class LLFloaterImportProgress
|
class LLFloaterImportProgress
|
||||||
: public LLFloater
|
: public LLFloater
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
void close(bool app_quitting);
|
void close(bool app_quitting);
|
||||||
static LLFloaterImportProgress* sInstance;
|
static LLFloaterImportProgress* sInstance;
|
||||||
static void show();
|
static void show();
|
||||||
static void update();
|
static void update();
|
||||||
private:
|
private:
|
||||||
LLFloaterImportProgress();
|
LLFloaterImportProgress();
|
||||||
virtual ~LLFloaterImportProgress();
|
virtual ~LLFloaterImportProgress();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class LLFloaterXmlImportOptions : public LLFloater
|
class LLFloaterXmlImportOptions : public LLFloater
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
LLFloaterXmlImportOptions(LLXmlImportOptions* default_options);
|
LLFloaterXmlImportOptions(LLXmlImportOptions* default_options);
|
||||||
BOOL postBuild();
|
BOOL postBuild();
|
||||||
LLXmlImportOptions* mDefaultOptions;
|
LLXmlImportOptions* mDefaultOptions;
|
||||||
std::map<LLUUID, LLImportWearable*> mImportWearableMap;
|
std::map<LLUUID, LLImportWearable*> mImportWearableMap;
|
||||||
std::map<LLUUID, LLImportObject*> mImportObjectMap;
|
std::map<LLUUID, LLImportObject*> mImportObjectMap;
|
||||||
private:
|
private:
|
||||||
enum LIST_COLUMN_ORDER
|
enum LIST_COLUMN_ORDER
|
||||||
{
|
{
|
||||||
LIST_CHECKED,
|
LIST_CHECKED,
|
||||||
LIST_TYPE,
|
LIST_TYPE,
|
||||||
LIST_NAME,
|
LIST_NAME,
|
||||||
};
|
};
|
||||||
static void onClickSelectAll(void* user_data);
|
static void onClickSelectAll(void* user_data);
|
||||||
static void onClickSelectObjects(void* user_data);
|
static void onClickSelectObjects(void* user_data);
|
||||||
static void onClickSelectWearables(void* user_data);
|
static void onClickSelectWearables(void* user_data);
|
||||||
static void onClickOK(void* user_data);
|
static void onClickOK(void* user_data);
|
||||||
static void onClickCancel(void* user_data);
|
static void onClickCancel(void* user_data);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|||||||
@@ -3815,7 +3815,7 @@ bool confirm_replace_attachment_rez(const LLSD& notification, const LLSD& respon
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
static LLNotificationFunctorRegistration confirm_replace_attachment_rez_reg("ReplaceAttachment", confirm_replace_attachment_rez);
|
LLNotificationFunctorRegistration confirm_replace_attachment_rez_reg("ReplaceAttachment", confirm_replace_attachment_rez);
|
||||||
|
|
||||||
void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
|
void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -59,10 +59,10 @@
|
|||||||
#include "llviewercontrol.h"
|
#include "llviewercontrol.h"
|
||||||
#include "llvoavatar.h"
|
#include "llvoavatar.h"
|
||||||
#include "llsdutil.h"
|
#include "llsdutil.h"
|
||||||
// <edit>
|
// <edit>
|
||||||
#include "llimportobject.h"
|
#include "llimportobject.h"
|
||||||
#include "llappviewer.h" // gLostItemsRoot
|
#include "llappviewer.h" // gLostItemsRoot
|
||||||
// </edit>
|
// </edit>
|
||||||
#include <deque>
|
#include <deque>
|
||||||
|
|
||||||
//#define DIFF_INVENTORY_FILES
|
//#define DIFF_INVENTORY_FILES
|
||||||
@@ -211,14 +211,14 @@ BOOL LLInventoryModel::isObjectDescendentOf(const LLUUID& obj_id,
|
|||||||
while(obj)
|
while(obj)
|
||||||
{
|
{
|
||||||
const LLUUID& parent_id = obj->getParentUUID();
|
const LLUUID& parent_id = obj->getParentUUID();
|
||||||
// <edit>
|
// <edit>
|
||||||
if(parent_id == obj->getUUID())
|
if(parent_id == obj->getUUID())
|
||||||
{
|
{
|
||||||
// infinite loop... same thing as having no parent, hopefully.
|
// infinite loop... same thing as having no parent, hopefully.
|
||||||
llwarns << "This shit has itself as parent! " << parent_id.asString() << ", " << obj->getName() << llendl;
|
llwarns << "This shit has itself as parent! " << parent_id.asString() << ", " << obj->getName() << llendl;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
// </edit>
|
// </edit>
|
||||||
if( parent_id.isNull() )
|
if( parent_id.isNull() )
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -835,14 +835,14 @@ void LLInventoryModel::deleteObject(const LLUUID& id)
|
|||||||
// folders, items, etc in a fairly efficient manner.
|
// folders, items, etc in a fairly efficient manner.
|
||||||
void LLInventoryModel::purgeDescendentsOf(const LLUUID& id)
|
void LLInventoryModel::purgeDescendentsOf(const LLUUID& id)
|
||||||
{
|
{
|
||||||
// <edit> "Deliberately disobeying you" derf derf
|
// <edit> "Deliberately disobeying you" derf derf
|
||||||
//EHasChildren children = categoryHasChildren(id);
|
//EHasChildren children = categoryHasChildren(id);
|
||||||
//if(children == CHILDREN_NO)
|
//if(children == CHILDREN_NO)
|
||||||
//{
|
//{
|
||||||
// llinfos << "Not purging descendents of " << id << llendl;
|
// llinfos << "Not purging descendents of " << id << llendl;
|
||||||
// return;
|
// return;
|
||||||
//}
|
//}
|
||||||
// </edit>
|
// </edit>
|
||||||
LLPointer<LLViewerInventoryCategory> cat = getCategory(id);
|
LLPointer<LLViewerInventoryCategory> cat = getCategory(id);
|
||||||
if(cat.notNull())
|
if(cat.notNull())
|
||||||
{
|
{
|
||||||
@@ -1397,10 +1397,10 @@ void LLInventoryModel::bulkFetch(std::string url)
|
|||||||
|
|
||||||
if (cat)
|
if (cat)
|
||||||
{
|
{
|
||||||
// <edit> Pre-emptive strike
|
// <edit> Pre-emptive strike
|
||||||
if(!(gInventory.isObjectDescendentOf(cat->getUUID(), gLocalInventoryRoot)))
|
if(!(gInventory.isObjectDescendentOf(cat->getUUID(), gLocalInventoryRoot)))
|
||||||
{
|
{
|
||||||
// </edit>
|
// </edit>
|
||||||
if ( LLViewerInventoryCategory::VERSION_UNKNOWN == cat->getVersion())
|
if ( LLViewerInventoryCategory::VERSION_UNKNOWN == cat->getVersion())
|
||||||
{
|
{
|
||||||
LLSD folder_sd;
|
LLSD folder_sd;
|
||||||
@@ -1436,9 +1436,9 @@ void LLInventoryModel::bulkFetch(std::string url)
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
// <edit>
|
// <edit>
|
||||||
}
|
}
|
||||||
// </edit>
|
// </edit>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sFetchQueue.pop_front();
|
sFetchQueue.pop_front();
|
||||||
@@ -1739,10 +1739,10 @@ void LLInventoryModel::addItem(LLViewerInventoryItem* item)
|
|||||||
if(item)
|
if(item)
|
||||||
{
|
{
|
||||||
mItemMap[item->getUUID()] = item;
|
mItemMap[item->getUUID()] = item;
|
||||||
// <edit>
|
// <edit>
|
||||||
if(LLXmlImport::sImportInProgress)
|
if(LLXmlImport::sImportInProgress)
|
||||||
LLXmlImport::onNewItem(item);
|
LLXmlImport::onNewItem(item);
|
||||||
// </edit>
|
// </edit>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1928,8 +1928,8 @@ bool LLInventoryModel::isCategoryComplete(const LLUUID& cat_id) const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// <edit>
|
// <edit>
|
||||||
if((cat_id == gLocalInventoryRoot) || gInventory.isObjectDescendentOf(cat_id, gLocalInventoryRoot)) return true;
|
if((cat_id == gLocalInventoryRoot) || gInventory.isObjectDescendentOf(cat_id, gLocalInventoryRoot)) return true;
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@@ -3485,11 +3485,11 @@ bool LLInventoryCollectFunctor::itemTransferCommonlyAllowed(LLInventoryItem* ite
|
|||||||
LLVOAvatar* my_avatar = NULL;
|
LLVOAvatar* my_avatar = NULL;
|
||||||
|
|
||||||
switch(item->getType())
|
switch(item->getType())
|
||||||
{
|
{
|
||||||
// <edit> I don't even think changing this did anything
|
// <edit> I don't even think changing this did anything
|
||||||
//case LLAssetType::AT_CALLINGCARD:
|
//case LLAssetType::AT_CALLINGCARD:
|
||||||
// // not allowed
|
// // not allowed
|
||||||
// break;
|
// break;
|
||||||
|
|
||||||
case LLAssetType::AT_OBJECT:
|
case LLAssetType::AT_OBJECT:
|
||||||
my_avatar = gAgent.getAvatarObject();
|
my_avatar = gAgent.getAvatarObject();
|
||||||
|
|||||||
@@ -385,14 +385,14 @@ protected:
|
|||||||
// the internal data structures are consistent. These methods
|
// the internal data structures are consistent. These methods
|
||||||
// should be passed pointers of newly created objects, and the
|
// should be passed pointers of newly created objects, and the
|
||||||
// instance will take over the memory management from there.
|
// instance will take over the memory management from there.
|
||||||
// <edit>
|
// <edit>
|
||||||
public:
|
public:
|
||||||
// </edit>
|
// </edit>
|
||||||
void addCategory(LLViewerInventoryCategory* category);
|
void addCategory(LLViewerInventoryCategory* category);
|
||||||
void addItem(LLViewerInventoryItem* item);
|
void addItem(LLViewerInventoryItem* item);
|
||||||
// <edit>
|
// <edit>
|
||||||
protected:
|
protected:
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|
||||||
// Internal method which looks for a category with the specified
|
// Internal method which looks for a category with the specified
|
||||||
// preferred type. Returns LLUUID::null if not found
|
// preferred type. Returns LLUUID::null if not found
|
||||||
@@ -408,18 +408,18 @@ protected:
|
|||||||
//void recalculateCloneInformation();
|
//void recalculateCloneInformation();
|
||||||
|
|
||||||
// file import/export.
|
// file import/export.
|
||||||
// <edit>
|
// <edit>
|
||||||
public:
|
public:
|
||||||
// </edit>
|
// </edit>
|
||||||
static bool loadFromFile(const std::string& filename,
|
static bool loadFromFile(const std::string& filename,
|
||||||
cat_array_t& categories,
|
cat_array_t& categories,
|
||||||
item_array_t& items);
|
item_array_t& items);
|
||||||
static bool saveToFile(const std::string& filename,
|
static bool saveToFile(const std::string& filename,
|
||||||
const cat_array_t& categories,
|
const cat_array_t& categories,
|
||||||
const item_array_t& items);
|
const item_array_t& items);
|
||||||
// <edit>
|
// <edit>
|
||||||
protected:
|
protected:
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|
||||||
// message handling functionality
|
// message handling functionality
|
||||||
//static void processUseCachedInventory(LLMessageSystem* msg, void**);
|
//static void processUseCachedInventory(LLMessageSystem* msg, void**);
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,45 +1,45 @@
|
|||||||
// <edit>
|
// <edit>
|
||||||
#ifndef LL_LLLOCALINVENTORY_H
|
#ifndef LL_LLLOCALINVENTORY_H
|
||||||
#define LL_LLLOCALINVENTORY_H
|
#define LL_LLLOCALINVENTORY_H
|
||||||
|
|
||||||
#include "llviewerinventory.h"
|
#include "llviewerinventory.h"
|
||||||
|
|
||||||
#include "llfloater.h"
|
#include "llfloater.h"
|
||||||
|
|
||||||
#include "llfolderview.h"
|
#include "llfolderview.h"
|
||||||
#include "llinventorymodel.h" // cat_array_t, item_array_t
|
#include "llinventorymodel.h" // cat_array_t, item_array_t
|
||||||
|
|
||||||
class LLLocalInventory
|
class LLLocalInventory
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static LLUUID addItem(std::string name, int type, LLUUID asset_id, bool open);
|
static LLUUID addItem(std::string name, int type, LLUUID asset_id, bool open);
|
||||||
static LLUUID addItem(std::string name, int type, LLUUID asset_id);
|
static LLUUID addItem(std::string name, int type, LLUUID asset_id);
|
||||||
static void addItem(LLViewerInventoryItem* item);
|
static void addItem(LLViewerInventoryItem* item);
|
||||||
static void open(LLUUID item_id);
|
static void open(LLUUID item_id);
|
||||||
static void loadInvCache(std::string filename);
|
static void loadInvCache(std::string filename);
|
||||||
static void saveInvCache(std::string filename, LLFolderView* folder);
|
static void saveInvCache(std::string filename, LLFolderView* folder);
|
||||||
static void climb(LLInventoryCategory* cat,
|
static void climb(LLInventoryCategory* cat,
|
||||||
LLInventoryModel::cat_array_t& cats,
|
LLInventoryModel::cat_array_t& cats,
|
||||||
LLInventoryModel::item_array_t& items);
|
LLInventoryModel::item_array_t& items);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class LLFloaterNewLocalInventory
|
class LLFloaterNewLocalInventory
|
||||||
: public LLFloater
|
: public LLFloater
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
LLFloaterNewLocalInventory();
|
LLFloaterNewLocalInventory();
|
||||||
BOOL postBuild(void);
|
BOOL postBuild(void);
|
||||||
|
|
||||||
static void onClickOK(void* user_data);
|
static void onClickOK(void* user_data);
|
||||||
static LLUUID sLastCreatorId;
|
static LLUUID sLastCreatorId;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual ~LLFloaterNewLocalInventory();
|
virtual ~LLFloaterNewLocalInventory();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|||||||
@@ -254,9 +254,9 @@ LLViewerObject::~LLViewerObject()
|
|||||||
{
|
{
|
||||||
if(iter->second != NULL)
|
if(iter->second != NULL)
|
||||||
{
|
{
|
||||||
// <edit>
|
// <edit>
|
||||||
// There was a crash here
|
// There was a crash here
|
||||||
// </edit>
|
// </edit>
|
||||||
delete iter->second->data;
|
delete iter->second->data;
|
||||||
delete iter->second;
|
delete iter->second;
|
||||||
}
|
}
|
||||||
@@ -1880,11 +1880,11 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
|
|||||||
|
|
||||||
if ( gShowObjectUpdates )
|
if ( gShowObjectUpdates )
|
||||||
{
|
{
|
||||||
// <edit> We want to see updates from our own avatar
|
// <edit> We want to see updates from our own avatar
|
||||||
//if (!((mPrimitiveCode == LL_PCODE_LEGACY_AVATAR) && (((LLVOAvatar *) this)->mIsSelf))
|
//if (!((mPrimitiveCode == LL_PCODE_LEGACY_AVATAR) && (((LLVOAvatar *) this)->mIsSelf))
|
||||||
// && mRegionp)
|
// && mRegionp)
|
||||||
if(mRegionp)
|
if(mRegionp)
|
||||||
// </edit>
|
// </edit>
|
||||||
{
|
{
|
||||||
LLViewerObject* object = gObjectList.createObjectViewer(LL_PCODE_LEGACY_TEXT_BUBBLE, mRegionp);
|
LLViewerObject* object = gObjectList.createObjectViewer(LL_PCODE_LEGACY_TEXT_BUBBLE, mRegionp);
|
||||||
LLVOTextBubble* bubble = (LLVOTextBubble*) object;
|
LLVOTextBubble* bubble = (LLVOTextBubble*) object;
|
||||||
@@ -1935,11 +1935,11 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
|
|||||||
|
|
||||||
if (needs_refresh)
|
if (needs_refresh)
|
||||||
{
|
{
|
||||||
// <edit>
|
// <edit>
|
||||||
if(isChanged(MOVED)) // Update "center" if this or children are selected,
|
if(isChanged(MOVED)) // Update "center" if this or children are selected,
|
||||||
// and translate, scale, or rotate occurred on this.
|
// and translate, scale, or rotate occurred on this.
|
||||||
// Leave dialog refresh to happen always, as before.
|
// Leave dialog refresh to happen always, as before.
|
||||||
// </edit>
|
// </edit>
|
||||||
LLSelectMgr::getInstance()->updateSelectionCenter();
|
LLSelectMgr::getInstance()->updateSelectionCenter();
|
||||||
dialog_refresh_all();
|
dialog_refresh_all();
|
||||||
}
|
}
|
||||||
@@ -4087,14 +4087,14 @@ void LLViewerObject::setDebugText(const std::string &utf8text)
|
|||||||
mText->setDoFade(FALSE);
|
mText->setDoFade(FALSE);
|
||||||
updateText();
|
updateText();
|
||||||
}
|
}
|
||||||
// <edit>
|
// <edit>
|
||||||
std::string LLViewerObject::getDebugText()
|
std::string LLViewerObject::getDebugText()
|
||||||
{
|
{
|
||||||
if(mText)
|
if(mText)
|
||||||
return mText->getStringUTF8();
|
return mText->getStringUTF8();
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|
||||||
void LLViewerObject::setIcon(LLViewerImage* icon_image)
|
void LLViewerObject::setIcon(LLViewerImage* icon_image)
|
||||||
{
|
{
|
||||||
@@ -5161,19 +5161,19 @@ void LLViewerObject::resetChildrenPosition(const LLVector3& offset, BOOL simplif
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// <edit>
|
// <edit>
|
||||||
S32 LLViewerObject::getAttachmentPoint()
|
S32 LLViewerObject::getAttachmentPoint()
|
||||||
{
|
{
|
||||||
return ((S32)((((U8)mState & AGENT_ATTACH_MASK) >> 4) | (((U8)mState & ~AGENT_ATTACH_MASK) << 4)));
|
return ((S32)((((U8)mState & AGENT_ATTACH_MASK) >> 4) | (((U8)mState & ~AGENT_ATTACH_MASK) << 4)));
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string LLViewerObject::getAttachmentPointName()
|
std::string LLViewerObject::getAttachmentPointName()
|
||||||
{
|
{
|
||||||
S32 point = getAttachmentPoint();
|
S32 point = getAttachmentPoint();
|
||||||
if((point > 0) && (point < 39))
|
if((point > 0) && (point < 39))
|
||||||
{
|
{
|
||||||
return gAgent.getAvatarObject()->mAttachmentPoints[point]->getName();
|
return gAgent.getAvatarObject()->mAttachmentPoints[point]->getName();
|
||||||
}
|
}
|
||||||
return llformat("unsupported point %d", point);
|
return llformat("unsupported point %d", point);
|
||||||
}
|
}
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|||||||
@@ -353,9 +353,9 @@ public:
|
|||||||
void setCanSelect(BOOL canSelect);
|
void setCanSelect(BOOL canSelect);
|
||||||
|
|
||||||
void setDebugText(const std::string &utf8text);
|
void setDebugText(const std::string &utf8text);
|
||||||
// <edit>
|
// <edit>
|
||||||
std::string getDebugText();
|
std::string getDebugText();
|
||||||
// </edit>
|
// </edit>
|
||||||
void setIcon(LLViewerImage* icon_image);
|
void setIcon(LLViewerImage* icon_image);
|
||||||
void clearIcon();
|
void clearIcon();
|
||||||
|
|
||||||
@@ -662,11 +662,11 @@ protected:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
static S32 sNumObjects;
|
static S32 sNumObjects;
|
||||||
// <edit>
|
// <edit>
|
||||||
public:
|
public:
|
||||||
S32 getAttachmentPoint();
|
S32 getAttachmentPoint();
|
||||||
std::string getAttachmentPointName();
|
std::string getAttachmentPointName();
|
||||||
// </edit>
|
// </edit>
|
||||||
};
|
};
|
||||||
|
|
||||||
///////////////////
|
///////////////////
|
||||||
|
|||||||
@@ -83,9 +83,9 @@
|
|||||||
#include "llvoiceclient.h"
|
#include "llvoiceclient.h"
|
||||||
#include "llvoicevisualizer.h" // Ventrella
|
#include "llvoicevisualizer.h" // Ventrella
|
||||||
|
|
||||||
// <edit>
|
// <edit>
|
||||||
#include "llfloaterexploreanimations.h"
|
#include "llfloaterexploreanimations.h"
|
||||||
//#include "llao.h"
|
//#include "llao.h"
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|
||||||
#if LL_MSVC
|
#if LL_MSVC
|
||||||
@@ -754,12 +754,12 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
|
|||||||
mUpdatePeriod(1),
|
mUpdatePeriod(1),
|
||||||
mFullyLoadedInitialized(FALSE),
|
mFullyLoadedInitialized(FALSE),
|
||||||
mHasBakedHair( FALSE )
|
mHasBakedHair( FALSE )
|
||||||
// <edit>
|
// <edit>
|
||||||
// mNametagSaysIdle(false),
|
// mNametagSaysIdle(false),
|
||||||
// mIdleForever(true),
|
// mIdleForever(true),
|
||||||
// mIdleMinutes(0),
|
// mIdleMinutes(0),
|
||||||
// mFocusObject(LLUUID::null),
|
// mFocusObject(LLUUID::null),
|
||||||
// mFocusVector(LLVector3d::zero)
|
// mFocusVector(LLVector3d::zero)
|
||||||
// </edit>
|
// </edit>
|
||||||
{
|
{
|
||||||
LLMemType mt(LLMemType::MTYPE_AVATAR);
|
LLMemType mt(LLMemType::MTYPE_AVATAR);
|
||||||
@@ -3072,11 +3072,11 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
|
|||||||
mNameText->setUseBubble(TRUE);
|
mNameText->setUseBubble(TRUE);
|
||||||
sNumVisibleChatBubbles++;
|
sNumVisibleChatBubbles++;
|
||||||
new_name = TRUE;
|
new_name = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// <edit>
|
// <edit>
|
||||||
//LLColor4 avatar_name_color = gColors.getColor( "AvatarNameColor" );
|
//LLColor4 avatar_name_color = gColors.getColor( "AvatarNameColor" );
|
||||||
//avatar_name_color.setAlpha(alpha);
|
//avatar_name_color.setAlpha(alpha);
|
||||||
|
|
||||||
LLQuaternion root_rot = mRoot.getWorldRotation();
|
LLQuaternion root_rot = mRoot.getWorldRotation();
|
||||||
mNameText->setUsePixelSize(TRUE);
|
mNameText->setUsePixelSize(TRUE);
|
||||||
@@ -3157,108 +3157,106 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
|
|||||||
line += lastname->getString();
|
line += lastname->getString();
|
||||||
BOOL need_comma = FALSE;
|
BOOL need_comma = FALSE;
|
||||||
|
|
||||||
BOOL need_comma = FALSE;
|
// <edit>
|
||||||
|
if(getTEImage(TEX_HEAD_BODYPAINT)->isMissingAsset())
|
||||||
// <edit>
|
{
|
||||||
if(getTEImage(TEX_HEAD_BODYPAINT)->isMissingAsset())
|
mNameText->setColor(LLColor4(1.f, 1.0f, 1.0f));
|
||||||
{
|
line += " (Unknown viewer)";
|
||||||
mNameText->setColor(LLColor4(1.f, 1.0f, 1.0f));
|
}
|
||||||
strcat(line, " (Unknown viewer)");
|
else
|
||||||
}
|
{
|
||||||
else
|
std::string uuid_str = getTEImage(TEX_HEAD_BODYPAINT)->getID().asString();
|
||||||
{
|
|
||||||
std::string uuid_str = getTEImage(TEX_HEAD_BODYPAINT)->getID().asString();
|
if(uuid_str == "ccda2b3b-e72c-a112-e126-fee238b67218")
|
||||||
|
{
|
||||||
if(uuid_str == "ccda2b3b-e72c-a112-e126-fee238b67218")
|
// textures other than head are 4934f1bf-3b1f-cf4f-dbdf-a72550d05bc6
|
||||||
{
|
mNameText->setColor(LLColor4(0.f, 1.0f, 0.0f));
|
||||||
// textures other than head are 4934f1bf-3b1f-cf4f-dbdf-a72550d05bc6
|
line += " (Emerald)";
|
||||||
mNameText->setColor(LLColor4(0.f, 1.0f, 0.0f));
|
}
|
||||||
strcat(line, " (Emerald)");
|
else if(uuid_str == "0bcd5f5d-a4ce-9ea4-f9e8-15132653b3d8")
|
||||||
}
|
{
|
||||||
else if(uuid_str == "0bcd5f5d-a4ce-9ea4-f9e8-15132653b3d8")
|
mNameText->setColor(LLColor4(1.0f, 0.3f, 0.5f));
|
||||||
{
|
line += " (MoyMix)";
|
||||||
mNameText->setColor(LLColor4(1.0f, 0.3f, 0.5f));
|
}
|
||||||
strcat(line, " (MoyMix)");
|
else if(uuid_str == "5855f37d-63e5-3918-1404-8ffa3820eb6d")
|
||||||
}
|
{
|
||||||
else if(uuid_str == "5855f37d-63e5-3918-1404-8ffa3820eb6d")
|
mNameText->setColor(LLColor4(1.0f, 0.3f, 0.5f));
|
||||||
{
|
line += " (MoyMix/B)";
|
||||||
mNameText->setColor(LLColor4(1.0f, 0.3f, 0.5f));
|
}
|
||||||
strcat(line, " (MoyMix/B)");
|
else if(uuid_str == "9ba526b6-f43d-6b60-42de-ce62a25ee7fb")
|
||||||
}
|
{
|
||||||
else if(uuid_str == "9ba526b6-f43d-6b60-42de-ce62a25ee7fb")
|
mNameText->setColor(LLColor4(1.0f, 0.3f, 0.5f));
|
||||||
{
|
line += " (MoyMix/nolife)";
|
||||||
mNameText->setColor(LLColor4(1.0f, 0.3f, 0.5f));
|
}
|
||||||
strcat(line, " (MoyMix/nolife)");
|
//else if(uuid_str == "abbca853-30ba-49c1-a1e7-2a5b9a70573f")
|
||||||
}
|
//{
|
||||||
//else if(uuid_str == "abbca853-30ba-49c1-a1e7-2a5b9a70573f")
|
// mNameText->setColor(LLColor4(0.5f, 0.75f, 1.0f));
|
||||||
//{
|
// strcat(line, " (CryoLife/" + "A)");
|
||||||
// mNameText->setColor(LLColor4(0.5f, 0.75f, 1.0f));
|
//}
|
||||||
// strcat(line, " (CryoLife/" + "A)");
|
else if(uuid_str == "0f6723d2-5b23-6b58-08ab-308112b33786")
|
||||||
//}
|
{
|
||||||
else if(uuid_str == "0f6723d2-5b23-6b58-08ab-308112b33786")
|
mNameText->setColor(LLColor4(0.5f, 0.75f, 1.0f));
|
||||||
{
|
line += " (CryoLife)";
|
||||||
mNameText->setColor(LLColor4(0.5f, 0.75f, 1.0f));
|
}
|
||||||
strcat(line, " (CryoLife)");
|
else if(uuid_str == "2c9c1e0b-e5d1-263e-16b1-7fc6d169f3d6")
|
||||||
}
|
{
|
||||||
else if(uuid_str == "2c9c1e0b-e5d1-263e-16b1-7fc6d169f3d6")
|
mNameText->setColor(LLColor4(0.5f, 0.75f, 1.0f));
|
||||||
{
|
line += " (Phoxy SL)";
|
||||||
mNameText->setColor(LLColor4(0.5f, 0.75f, 1.0f));
|
}
|
||||||
strcat(line, " (Phoxy SL)");
|
else if(uuid_str == "c252d89d-6f7c-7d90-f430-d140d2e3fbbe")
|
||||||
}
|
{
|
||||||
else if(uuid_str == "c252d89d-6f7c-7d90-f430-d140d2e3fbbe")
|
mNameText->setColor(LLColor4(0.7f, 0.7f, 0.7f));
|
||||||
{
|
line += " (VLife)";
|
||||||
mNameText->setColor(LLColor4(0.7f, 0.7f, 0.7f));
|
}
|
||||||
strcat(line, " (VLife)");
|
else if(uuid_str == "5aa5c70d-d787-571b-0495-4fc1bdef1500")
|
||||||
}
|
{
|
||||||
else if(uuid_str == "5aa5c70d-d787-571b-0495-4fc1bdef1500")
|
mNameText->setColor(LLColor4(1.f, 0.0f, 0.0f));
|
||||||
{
|
line += " (GridProxy/LordGregGreg)";
|
||||||
mNameText->setColor(LLColor4(1.f, 0.0f, 0.0f));
|
}
|
||||||
strcat(line, " (GridProxy/LordGregGreg)");
|
else if(uuid_str == "8183e823-c443-2142-6eb6-2ab763d4f81c")
|
||||||
}
|
{
|
||||||
else if(uuid_str == "8183e823-c443-2142-6eb6-2ab763d4f81c")
|
mNameText->setColor(LLColor4(1.f, 1.f, 0.0f));
|
||||||
{
|
line += " (GridProxy/DayOh)";
|
||||||
mNameText->setColor(LLColor4(1.f, 1.f, 0.0f));
|
}
|
||||||
strcat(line, " (GridProxy/DayOh)");
|
else if(uuid_str == "f3fd74a6-fee7-4b2f-93ae-ddcb5991da04")
|
||||||
}
|
{
|
||||||
else if(uuid_str == "f3fd74a6-fee7-4b2f-93ae-ddcb5991da04")
|
mNameText->setColor(LLColor4(1.0f, 0.0f, 1.0f));
|
||||||
{
|
line += " (PSL/A)";
|
||||||
mNameText->setColor(LLColor4(1.0f, 0.0f, 1.0f));
|
}
|
||||||
strcat(line, " (PSL/A)");
|
else if(uuid_str == "77662f23-c77a-9b4d-5558-26b757b2144c")
|
||||||
}
|
{
|
||||||
else if(uuid_str == "77662f23-c77a-9b4d-5558-26b757b2144c")
|
mNameText->setColor(LLColor4(1.0f, 0.0f, 1.0f));
|
||||||
{
|
line += " (PSL/B)";
|
||||||
mNameText->setColor(LLColor4(1.0f, 0.0f, 1.0f));
|
}
|
||||||
strcat(line, " (PSL/B)");
|
else if(uuid_str == "1c29480c-c608-df87-28bb-964fb64c5366")
|
||||||
}
|
{
|
||||||
else if(uuid_str == "1c29480c-c608-df87-28bb-964fb64c5366")
|
mNameText->setColor(LLColor4(1.f, 1.0f, 1.0f));
|
||||||
{
|
line += " (Emerald/GEMINI)";
|
||||||
mNameText->setColor(LLColor4(1.f, 1.0f, 1.0f));
|
}
|
||||||
strcat(line, " (Emerald/GEMINI)");
|
else if(uuid_str == "5262d71a-88f7-ef40-3b15-00ea148ab4b5")
|
||||||
}
|
{
|
||||||
else if(uuid_str == "5262d71a-88f7-ef40-3b15-00ea148ab4b5")
|
mNameText->setColor(LLColor4(0.9f, 0.9f, 0.9f));
|
||||||
{
|
line += " (GEMINI Bot)";
|
||||||
mNameText->setColor(LLColor4(0.9f, 0.9f, 0.9f));
|
}
|
||||||
strcat(line, " (GEMINI Bot)");
|
else if(uuid_str == "adcbe893-7643-fd12-f61c-0b39717e2e32")
|
||||||
}
|
{
|
||||||
else if(uuid_str == "adcbe893-7643-fd12-f61c-0b39717e2e32")
|
mNameText->setColor(LLColor4(1.0f, 0.5f, 0.4f));
|
||||||
{
|
line += " (tyk3n)";
|
||||||
mNameText->setColor(LLColor4(1.0f, 0.5f, 0.4f));
|
}
|
||||||
strcat(line, " (tyk3n)");
|
else if(uuid_str == "f5a48821-9a98-d09e-8d6a-50cc08ba9a47")
|
||||||
}
|
{
|
||||||
else if(uuid_str == "f5a48821-9a98-d09e-8d6a-50cc08ba9a47")
|
mNameText->setColor(gColors.getColor( "AvatarNameColor" ));
|
||||||
{
|
line += " (NeilLife)";
|
||||||
mNameText->setColor(gColors.getColor( "AvatarNameColor" ));
|
}
|
||||||
strcat(line, " (NeilLife)");
|
|
||||||
}
|
else
|
||||||
|
{
|
||||||
else
|
LLColor4 avatar_name_color = gColors.getColor( "AvatarNameColor" );
|
||||||
{
|
avatar_name_color.setAlpha(1.f);
|
||||||
LLColor4 avatar_name_color = gColors.getColor( "AvatarNameColor" );
|
mNameText->setColor(avatar_name_color);
|
||||||
avatar_name_color.setAlpha(1.f);
|
}
|
||||||
mNameText->setColor(avatar_name_color);
|
}
|
||||||
}
|
// </edit>
|
||||||
}
|
|
||||||
// </edit>
|
|
||||||
if (is_away || is_muted || is_busy)
|
if (is_away || is_muted || is_busy)
|
||||||
{
|
{
|
||||||
line += " (";
|
line += " (";
|
||||||
@@ -3417,11 +3415,11 @@ void LLVOAvatar::idleUpdateTractorBeam()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// <edit>
|
// <edit>
|
||||||
if(gSavedSettings.getBOOL("DisablePointAtAndBeam"))
|
if(gSavedSettings.getBOOL("DisablePointAtAndBeam"))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|
||||||
const LLPickInfo& pick = gViewerWindow->getLastPick();
|
const LLPickInfo& pick = gViewerWindow->getLastPick();
|
||||||
@@ -4852,8 +4850,8 @@ void LLVOAvatar::processAnimationStateChanges()
|
|||||||
if (found_anim == mSignaledAnimations.end())
|
if (found_anim == mSignaledAnimations.end())
|
||||||
{
|
{
|
||||||
processSingleAnimationStateChange(anim_it->first, FALSE);
|
processSingleAnimationStateChange(anim_it->first, FALSE);
|
||||||
// <edit>
|
// <edit>
|
||||||
LLFloaterExploreAnimations::stopAnim(getID(), anim_it->first);
|
LLFloaterExploreAnimations::stopAnim(getID(), anim_it->first);
|
||||||
// </edit>
|
// </edit>
|
||||||
mPlayingAnimations.erase(anim_it++);
|
mPlayingAnimations.erase(anim_it++);
|
||||||
continue;
|
continue;
|
||||||
@@ -4870,8 +4868,8 @@ void LLVOAvatar::processAnimationStateChanges()
|
|||||||
// signaled but not playing, or different sequence id, start motion
|
// signaled but not playing, or different sequence id, start motion
|
||||||
if (found_anim == mPlayingAnimations.end() || found_anim->second != anim_it->second)
|
if (found_anim == mPlayingAnimations.end() || found_anim->second != anim_it->second)
|
||||||
{
|
{
|
||||||
// <edit>
|
// <edit>
|
||||||
LLFloaterExploreAnimations::startAnim(getID(), anim_it->first);
|
LLFloaterExploreAnimations::startAnim(getID(), anim_it->first);
|
||||||
// </edit>
|
// </edit>
|
||||||
if (processSingleAnimationStateChange(anim_it->first, TRUE))
|
if (processSingleAnimationStateChange(anim_it->first, TRUE))
|
||||||
{
|
{
|
||||||
@@ -6112,43 +6110,43 @@ LLViewerJointAttachment* LLVOAvatar::getTargetAttachmentPoint(LLViewerObject* vi
|
|||||||
// attachObject()
|
// attachObject()
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
BOOL LLVOAvatar::attachObject(LLViewerObject *viewer_object)
|
BOOL LLVOAvatar::attachObject(LLViewerObject *viewer_object)
|
||||||
{
|
{
|
||||||
LLViewerJointAttachment* attachment = getTargetAttachmentPoint(viewer_object);
|
LLViewerJointAttachment* attachment = getTargetAttachmentPoint(viewer_object);
|
||||||
|
|
||||||
// <edit> testzone attachpt
|
// <edit> testzone attachpt
|
||||||
if(!attachment)
|
if(!attachment)
|
||||||
{
|
{
|
||||||
S32 attachmentID = ATTACHMENT_ID_FROM_STATE(viewer_object->getState());
|
S32 attachmentID = ATTACHMENT_ID_FROM_STATE(viewer_object->getState());
|
||||||
LLUUID item_id;
|
LLUUID item_id;
|
||||||
LLNameValue* item_id_nv = viewer_object->getNVPair("AttachItemID");
|
LLNameValue* item_id_nv = viewer_object->getNVPair("AttachItemID");
|
||||||
if( item_id_nv )
|
if( item_id_nv )
|
||||||
{
|
{
|
||||||
const char* s = item_id_nv->getString();
|
const char* s = item_id_nv->getString();
|
||||||
if(s)
|
if(s)
|
||||||
item_id.set(s);
|
item_id.set(s);
|
||||||
}
|
}
|
||||||
if(!item_id.isNull())
|
if(!item_id.isNull())
|
||||||
{
|
{
|
||||||
mUnsupportedAttachmentPoints[attachmentID] = item_id;
|
mUnsupportedAttachmentPoints[attachmentID] = item_id;
|
||||||
if (viewer_object->isSelected())
|
if (viewer_object->isSelected())
|
||||||
{
|
{
|
||||||
LLSelectMgr::getInstance()->updateSelectionCenter();
|
LLSelectMgr::getInstance()->updateSelectionCenter();
|
||||||
LLSelectMgr::getInstance()->updatePointAt();
|
LLSelectMgr::getInstance()->updatePointAt();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mIsSelf)
|
if (mIsSelf)
|
||||||
{
|
{
|
||||||
updateAttachmentVisibility(gAgent.getCameraMode());
|
updateAttachmentVisibility(gAgent.getCameraMode());
|
||||||
|
|
||||||
// Then make sure the inventory is in sync with the avatar.
|
// Then make sure the inventory is in sync with the avatar.
|
||||||
gInventory.addChangedMask( LLInventoryObserver::LABEL, item_id );
|
gInventory.addChangedMask( LLInventoryObserver::LABEL, item_id );
|
||||||
gInventory.notifyObservers();
|
gInventory.notifyObservers();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
llwarns << "No item ID" << llendl;
|
llwarns << "No item ID" << llendl;
|
||||||
}
|
}
|
||||||
// </edit>
|
// </edit>
|
||||||
if (!attachment || !attachment->addObject(viewer_object))
|
if (!attachment || !attachment->addObject(viewer_object))
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -6257,57 +6255,57 @@ BOOL LLVOAvatar::detachObject(LLViewerObject *viewer_object)
|
|||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// <edit> testzone attachpt
|
// <edit> testzone attachpt
|
||||||
LLUUID item_id;
|
LLUUID item_id;
|
||||||
LLNameValue* item_id_nv = viewer_object->getNVPair("AttachItemID");
|
LLNameValue* item_id_nv = viewer_object->getNVPair("AttachItemID");
|
||||||
if( item_id_nv )
|
if( item_id_nv )
|
||||||
{
|
{
|
||||||
const char* s = item_id_nv->getString();
|
const char* s = item_id_nv->getString();
|
||||||
if(s)
|
if(s)
|
||||||
item_id.set(s);
|
item_id.set(s);
|
||||||
}
|
}
|
||||||
if(!item_id.isNull())
|
if(!item_id.isNull())
|
||||||
{
|
{
|
||||||
std::map<S32, LLUUID>::iterator iter = mUnsupportedAttachmentPoints.begin();
|
std::map<S32, LLUUID>::iterator iter = mUnsupportedAttachmentPoints.begin();
|
||||||
std::map<S32, LLUUID>::iterator end = mUnsupportedAttachmentPoints.end();
|
std::map<S32, LLUUID>::iterator end = mUnsupportedAttachmentPoints.end();
|
||||||
for( ; iter != end; ++iter)
|
for( ; iter != end; ++iter)
|
||||||
{
|
{
|
||||||
if((*iter).second == item_id)
|
if((*iter).second == item_id)
|
||||||
{
|
{
|
||||||
mUnsupportedAttachmentPoints.erase((*iter).first);
|
mUnsupportedAttachmentPoints.erase((*iter).first);
|
||||||
if (mIsSelf)
|
if (mIsSelf)
|
||||||
{
|
{
|
||||||
// the simulator should automatically handle
|
// the simulator should automatically handle
|
||||||
// permission revocation
|
// permission revocation
|
||||||
|
|
||||||
stopMotionFromSource(viewer_object->getID());
|
stopMotionFromSource(viewer_object->getID());
|
||||||
LLFollowCamMgr::setCameraActive(viewer_object->getID(), FALSE);
|
LLFollowCamMgr::setCameraActive(viewer_object->getID(), FALSE);
|
||||||
|
|
||||||
LLViewerObject::const_child_list_t& child_list = viewer_object->getChildren();
|
LLViewerObject::const_child_list_t& child_list = viewer_object->getChildren();
|
||||||
for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin();
|
for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin();
|
||||||
iter != child_list.end(); iter++)
|
iter != child_list.end(); iter++)
|
||||||
{
|
{
|
||||||
LLViewerObject* child_objectp = *iter;
|
LLViewerObject* child_objectp = *iter;
|
||||||
// the simulator should automatically handle
|
// the simulator should automatically handle
|
||||||
// permissions revocation
|
// permissions revocation
|
||||||
|
|
||||||
stopMotionFromSource(child_objectp->getID());
|
stopMotionFromSource(child_objectp->getID());
|
||||||
LLFollowCamMgr::setCameraActive(child_objectp->getID(), FALSE);
|
LLFollowCamMgr::setCameraActive(child_objectp->getID(), FALSE);
|
||||||
}
|
}
|
||||||
// Then make sure the inventory is in sync with the avatar.
|
// Then make sure the inventory is in sync with the avatar.
|
||||||
gInventory.addChangedMask(LLInventoryObserver::LABEL, item_id);
|
gInventory.addChangedMask(LLInventoryObserver::LABEL, item_id);
|
||||||
gInventory.notifyObservers();
|
gInventory.notifyObservers();
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
llwarns << "Not found" << llendl;
|
llwarns << "Not found" << llendl;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
llwarns << "No item ID" << llendl;
|
llwarns << "No item ID" << llendl;
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@@ -6469,21 +6467,21 @@ BOOL LLVOAvatar::isWearingAttachment( const LLUUID& inv_item_id )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// <edit> testzone attachpt
|
// <edit> testzone attachpt
|
||||||
BOOL LLVOAvatar::isWearingUnsupportedAttachment( const LLUUID& inv_item_id )
|
BOOL LLVOAvatar::isWearingUnsupportedAttachment( const LLUUID& inv_item_id )
|
||||||
{
|
{
|
||||||
std::map<S32, LLUUID>::iterator end = mUnsupportedAttachmentPoints.end();
|
std::map<S32, LLUUID>::iterator end = mUnsupportedAttachmentPoints.end();
|
||||||
for(std::map<S32, LLUUID>::iterator iter = mUnsupportedAttachmentPoints.begin(); iter != end; ++iter)
|
for(std::map<S32, LLUUID>::iterator iter = mUnsupportedAttachmentPoints.begin(); iter != end; ++iter)
|
||||||
{
|
{
|
||||||
if((*iter).second == inv_item_id)
|
if((*iter).second == inv_item_id)
|
||||||
{
|
{
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// getWornAttachment()
|
// getWornAttachment()
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@@ -8733,11 +8731,11 @@ void LLVOAvatar::dumpLocalTextures()
|
|||||||
|
|
||||||
llinfos << "LocTex " << name << ": "
|
llinfos << "LocTex " << name << ": "
|
||||||
<< "Discard " << image->getDiscardLevel() << ", "
|
<< "Discard " << image->getDiscardLevel() << ", "
|
||||||
<< "(" << image->getWidth() << ", " << image->getHeight() << ") "
|
<< "(" << image->getWidth() << ", " << image->getHeight() << ") "
|
||||||
// <edit>
|
// <edit>
|
||||||
//#if !LL_RELEASE_FOR_DOWNLOAD
|
//#if !LL_RELEASE_FOR_DOWNLOAD
|
||||||
#if 1
|
#if 1
|
||||||
// </edit>
|
// </edit>
|
||||||
// End users don't get to trivially see avatar texture IDs,
|
// End users don't get to trivially see avatar texture IDs,
|
||||||
// makes textures easier to steal
|
// makes textures easier to steal
|
||||||
<< image->getID() << " "
|
<< image->getID() << " "
|
||||||
|
|||||||
@@ -283,9 +283,9 @@ public:
|
|||||||
void getOffObject();
|
void getOffObject();
|
||||||
|
|
||||||
BOOL isWearingAttachment( const LLUUID& inv_item_id );
|
BOOL isWearingAttachment( const LLUUID& inv_item_id );
|
||||||
// <edit> testzone attachpt
|
// <edit> testzone attachpt
|
||||||
BOOL isWearingUnsupportedAttachment( const LLUUID& inv_item_id );
|
BOOL isWearingUnsupportedAttachment( const LLUUID& inv_item_id );
|
||||||
// </edit>
|
// </edit>
|
||||||
LLViewerObject* getWornAttachment( const LLUUID& inv_item_id );
|
LLViewerObject* getWornAttachment( const LLUUID& inv_item_id );
|
||||||
const std::string getAttachedPointName(const LLUUID& inv_item_id);
|
const std::string getAttachedPointName(const LLUUID& inv_item_id);
|
||||||
|
|
||||||
@@ -685,15 +685,15 @@ protected:
|
|||||||
public:
|
public:
|
||||||
static void updateFreezeCounter(S32 counter = 0 );
|
static void updateFreezeCounter(S32 counter = 0 );
|
||||||
// <edit>
|
// <edit>
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//bool mNametagSaysIdle;
|
//bool mNametagSaysIdle;
|
||||||
//bool mIdleForever;
|
//bool mIdleForever;
|
||||||
//LLFrameTimer mIdleTimer;
|
//LLFrameTimer mIdleTimer;
|
||||||
//U32 mIdleMinutes;
|
//U32 mIdleMinutes;
|
||||||
LLUUID mFocusObject;
|
LLUUID mFocusObject;
|
||||||
LLVector3d mFocusVector;
|
LLVector3d mFocusVector;
|
||||||
//void resetIdleTime();
|
//void resetIdleTime();
|
||||||
// </edit>
|
// </edit>
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -722,7 +722,7 @@ private:
|
|||||||
U32 mMaskTexName;
|
U32 mMaskTexName;
|
||||||
// Stores pointers to the joint meshes that this baked texture deals with
|
// Stores pointers to the joint meshes that this baked texture deals with
|
||||||
std::vector< LLViewerJointMesh * > mMeshes; // std::vector<LLViewerJointMesh> mJoints[i]->mMeshParts
|
std::vector< LLViewerJointMesh * > mMeshes; // std::vector<LLViewerJointMesh> mJoints[i]->mMeshParts
|
||||||
|
|
||||||
};
|
};
|
||||||
typedef std::vector<BakedTextureData> bakedtexturedata_vec_t;
|
typedef std::vector<BakedTextureData> bakedtexturedata_vec_t;
|
||||||
bakedtexturedata_vec_t mBakedTextureData;
|
bakedtexturedata_vec_t mBakedTextureData;
|
||||||
|
|||||||
@@ -1,95 +1,95 @@
|
|||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ProjectType>Local</ProjectType>
|
<ProjectType>Local</ProjectType>
|
||||||
<ProductVersion>8.0.50727</ProductVersion>
|
<ProductVersion>8.0.50727</ProductVersion>
|
||||||
<SchemaVersion>2.0</SchemaVersion>
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
<ProjectGuid>{96943E2D-1373-4617-A117-D0F997A94919}</ProjectGuid>
|
<ProjectGuid>{96943E2D-1373-4617-A117-D0F997A94919}</ProjectGuid>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
<ApplicationIcon>
|
<ApplicationIcon>
|
||||||
</ApplicationIcon>
|
</ApplicationIcon>
|
||||||
<AssemblyKeyContainerName>
|
<AssemblyKeyContainerName>
|
||||||
</AssemblyKeyContainerName>
|
</AssemblyKeyContainerName>
|
||||||
<AssemblyName>VSTool</AssemblyName>
|
<AssemblyName>VSTool</AssemblyName>
|
||||||
<AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>
|
||||||
</AssemblyOriginatorKeyFile>
|
</AssemblyOriginatorKeyFile>
|
||||||
<DefaultClientScript>JScript</DefaultClientScript>
|
<DefaultClientScript>JScript</DefaultClientScript>
|
||||||
<DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
|
<DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
|
||||||
<DefaultTargetSchema>IE50</DefaultTargetSchema>
|
<DefaultTargetSchema>IE50</DefaultTargetSchema>
|
||||||
<DelaySign>false</DelaySign>
|
<DelaySign>false</DelaySign>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<RootNamespace>VSTool</RootNamespace>
|
<RootNamespace>VSTool</RootNamespace>
|
||||||
<RunPostBuildEvent>Always</RunPostBuildEvent>
|
<RunPostBuildEvent>Always</RunPostBuildEvent>
|
||||||
<StartupObject>VSTool.VSToolMain</StartupObject>
|
<StartupObject>VSTool.VSToolMain</StartupObject>
|
||||||
<FileUpgradeFlags>
|
<FileUpgradeFlags>
|
||||||
</FileUpgradeFlags>
|
</FileUpgradeFlags>
|
||||||
<UpgradeBackupLocation>
|
<UpgradeBackupLocation>
|
||||||
</UpgradeBackupLocation>
|
</UpgradeBackupLocation>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<OutputPath>.\</OutputPath>
|
<OutputPath>.\</OutputPath>
|
||||||
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
|
||||||
<BaseAddress>285212672</BaseAddress>
|
<BaseAddress>285212672</BaseAddress>
|
||||||
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
|
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
|
||||||
<ConfigurationOverrideFile>
|
<ConfigurationOverrideFile>
|
||||||
</ConfigurationOverrideFile>
|
</ConfigurationOverrideFile>
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
<DocumentationFile>
|
<DocumentationFile>
|
||||||
</DocumentationFile>
|
</DocumentationFile>
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<FileAlignment>4096</FileAlignment>
|
<FileAlignment>4096</FileAlignment>
|
||||||
<NoStdLib>false</NoStdLib>
|
<NoStdLib>false</NoStdLib>
|
||||||
<NoWarn>
|
<NoWarn>
|
||||||
</NoWarn>
|
</NoWarn>
|
||||||
<Optimize>false</Optimize>
|
<Optimize>false</Optimize>
|
||||||
<RegisterForComInterop>false</RegisterForComInterop>
|
<RegisterForComInterop>false</RegisterForComInterop>
|
||||||
<RemoveIntegerChecks>false</RemoveIntegerChecks>
|
<RemoveIntegerChecks>false</RemoveIntegerChecks>
|
||||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
<OutputPath>.\</OutputPath>
|
<OutputPath>.\</OutputPath>
|
||||||
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
|
||||||
<BaseAddress>285212672</BaseAddress>
|
<BaseAddress>285212672</BaseAddress>
|
||||||
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
|
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
|
||||||
<ConfigurationOverrideFile>
|
<ConfigurationOverrideFile>
|
||||||
</ConfigurationOverrideFile>
|
</ConfigurationOverrideFile>
|
||||||
<DefineConstants>TRACE</DefineConstants>
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
<DocumentationFile>
|
<DocumentationFile>
|
||||||
</DocumentationFile>
|
</DocumentationFile>
|
||||||
<DebugSymbols>false</DebugSymbols>
|
<DebugSymbols>false</DebugSymbols>
|
||||||
<FileAlignment>4096</FileAlignment>
|
<FileAlignment>4096</FileAlignment>
|
||||||
<NoStdLib>false</NoStdLib>
|
<NoStdLib>false</NoStdLib>
|
||||||
<NoWarn>
|
<NoWarn>
|
||||||
</NoWarn>
|
</NoWarn>
|
||||||
<Optimize>true</Optimize>
|
<Optimize>true</Optimize>
|
||||||
<RegisterForComInterop>false</RegisterForComInterop>
|
<RegisterForComInterop>false</RegisterForComInterop>
|
||||||
<RemoveIntegerChecks>false</RemoveIntegerChecks>
|
<RemoveIntegerChecks>false</RemoveIntegerChecks>
|
||||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<DebugType>none</DebugType>
|
<DebugType>none</DebugType>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="System">
|
<Reference Include="System">
|
||||||
<Name>System</Name>
|
<Name>System</Name>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Data">
|
<Reference Include="System.Data">
|
||||||
<Name>System.Data</Name>
|
<Name>System.Data</Name>
|
||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="main.cs">
|
<Compile Include="main.cs">
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PreBuildEvent>
|
<PreBuildEvent>
|
||||||
</PreBuildEvent>
|
</PreBuildEvent>
|
||||||
<PostBuildEvent>
|
<PostBuildEvent>
|
||||||
</PostBuildEvent>
|
</PostBuildEvent>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -1,19 +1,19 @@
|
|||||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||||
# Visual Studio 2005
|
# Visual Studio 2005
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VSTool", "VSTool.csproj", "{96943E2D-1373-4617-A117-D0F997A94919}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VSTool", "VSTool.csproj", "{96943E2D-1373-4617-A117-D0F997A94919}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
Release|Any CPU = Release|Any CPU
|
Release|Any CPU = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{96943E2D-1373-4617-A117-D0F997A94919}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{96943E2D-1373-4617-A117-D0F997A94919}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{96943E2D-1373-4617-A117-D0F997A94919}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{96943E2D-1373-4617-A117-D0F997A94919}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{96943E2D-1373-4617-A117-D0F997A94919}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{96943E2D-1373-4617-A117-D0F997A94919}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{96943E2D-1373-4617-A117-D0F997A94919}.Release|Any CPU.Build.0 = Release|Any CPU
|
{96943E2D-1373-4617-A117-D0F997A94919}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user