diff --git a/code/nel/include/nel/gui/group_html.h b/code/nel/include/nel/gui/group_html.h
index bafa63348..675d2c20e 100644
--- a/code/nel/include/nel/gui/group_html.h
+++ b/code/nel/include/nel/gui/group_html.h
@@ -366,7 +366,7 @@ namespace NLGUI
bool _Connecting;
double _TimeoutValue; // the timeout in seconds
double _ConnectingTimeout;
- uint32 _RedirectsRemaining;
+ sint _RedirectsRemaining;
// minimal embeded lua script support
// Note : any embeded script is executed immediately after the closing
diff --git a/code/nel/src/3d/driver/opengl/driver_opengl_extension.cpp b/code/nel/src/3d/driver/opengl/driver_opengl_extension.cpp
index 1a660f9c7..ba755b958 100644
--- a/code/nel/src/3d/driver/opengl/driver_opengl_extension.cpp
+++ b/code/nel/src/3d/driver/opengl/driver_opengl_extension.cpp
@@ -1781,13 +1781,19 @@ void registerGlExtensions(CGlExtensions &ext)
// GPU_MEMORY_INFO_EVICTED_MEMORY_NVX;
GLint nDedicatedMemoryInKB = 0;
+#ifdef GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX
glGetIntegerv(GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX, &nDedicatedMemoryInKB);
+#endif
GLint nTotalMemoryInKB = 0;
+#ifdef GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX
glGetIntegerv(GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX, &nTotalMemoryInKB);
+#endif
GLint nCurAvailMemoryInKB = 0;
+#ifdef GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX
glGetIntegerv(GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX, &nCurAvailMemoryInKB);
+#endif
nlinfo("Memory: total: %d available: %d dedicated: %d", nTotalMemoryInKB, nCurAvailMemoryInKB, nDedicatedMemoryInKB);
}
diff --git a/code/nel/src/gui/widget_manager.cpp b/code/nel/src/gui/widget_manager.cpp
index d57658571..9417778f3 100644
--- a/code/nel/src/gui/widget_manager.cpp
+++ b/code/nel/src/gui/widget_manager.cpp
@@ -1026,7 +1026,7 @@ namespace NLGUI
void CWidgetManager::reset()
{
setCurContextHelp( NULL );
-
+
_ViewsUnderPointer.clear();
_CtrlsUnderPointer.clear();
_GroupsUnderPointer.clear();
@@ -1254,7 +1254,7 @@ namespace NLGUI
sint32 wParent, sint32 hParent )
{
CCtrlBase::TToolTipParentType parentType= newCtrl->getToolTipParent();
- CInterfaceGroup *groupContextHelp =
+ CInterfaceGroup *groupContextHelp =
getWindowForActiveMasterGroup(newCtrl->getContextHelpWindowName());
uint32 _ScreenH, _ScreenW;
@@ -1383,7 +1383,7 @@ namespace NLGUI
{
if (!newCtrl) return;
if (!newCtrl->getInvalidCoords()) return;
-
+
CInterfaceGroup *groupContextHelp =
getWindowForActiveMasterGroup(newCtrl->getContextHelpWindowName());
@@ -1450,7 +1450,7 @@ namespace NLGUI
// **** resolve auto posref
- uint clampCount =
+ uint clampCount =
adjustTooltipPosition( newCtrl, win, newCtrl->getToolTipParentPosRef(),
newCtrl->getToolTipPosRef(), xParent, yParent,
wParent, hParent);
@@ -1458,7 +1458,7 @@ namespace NLGUI
if (clampCount != 0)
{
// try to fallback on alternate tooltip posref
- uint altClampCount =
+ uint altClampCount =
adjustTooltipPosition( newCtrl, win, newCtrl->getToolTipParentPosRefAlt(),
newCtrl->getToolTipPosRefAlt(), xParent, yParent,
wParent, hParent);
@@ -1961,6 +1961,7 @@ namespace NLGUI
}
while (cb);
}
+
// Check if screen size changed
uint32 w, h;
CViewRenderer::getInstance()->checkNewScreenSize ();
@@ -1974,7 +1975,7 @@ namespace NLGUI
setScreenWH( w, h );
}
}
-
+
// Update global color from database
if (!_RProp)
{
@@ -1983,6 +1984,7 @@ namespace NLGUI
_BProp = CDBManager::getInstance()->getDbProp("UI:SAVE:COLOR:B");
_AProp = CDBManager::getInstance()->getDbProp("UI:SAVE:COLOR:A");
}
+
setGlobalColor(NLMISC::CRGBA(
(uint8)_RProp->getValue32(),
(uint8)_GProp->getValue32(),
@@ -1996,7 +1998,7 @@ namespace NLGUI
c.B = gc.B;
c.A = (uint8) (( (uint16) c.A * (uint16) getContentAlpha() ) >> 8);
setGlobalColorForContent( c );
-
+
// Update global alphaS from database
updateGlobalAlphas();
@@ -2005,7 +2007,7 @@ namespace NLGUI
Computed String are rendered in on big drawQuads at last part of each layer
*/
CDBManager::getInstance()->flushObserverCalls();
-
+
for (uint32 nMasterGroup = 0; nMasterGroup < _MasterGroups.size(); nMasterGroup++)
{
CWidgetManager::SMasterGroup &rMG = _MasterGroups[nMasterGroup];
@@ -2158,7 +2160,7 @@ namespace NLGUI
bool CWidgetManager::handleKeyboardEvent( const CEventDescriptor &evnt )
{
bool handled = false;
-
+
CEventDescriptorKey &eventDesc = (CEventDescriptorKey&)evnt;
//_LastEventKeyDesc = eventDesc;
@@ -2541,7 +2543,7 @@ namespace NLGUI
if (eventDesc.getEventTypeExtended() == CEventDescriptorMouse::mouserightup)
- {
+ {
if (!handled)
if (pNewCurrentWnd != NULL)
pNewCurrentWnd->handleEvent(evnt);
@@ -2589,7 +2591,7 @@ namespace NLGUI
}
_CapturedView = NULL;
-
+
if( CInterfaceElement::getEditorMode() )
stopDragging();
}
@@ -2634,7 +2636,7 @@ namespace NLGUI
if( eventDesc.getType() != CEventDescriptor::mouse )
return false;
- const CEventDescriptorMouse &e = static_cast< const CEventDescriptorMouse& >( eventDesc );
+ const CEventDescriptorMouse &e = static_cast< const CEventDescriptorMouse& >( eventDesc );
if( e.getEventTypeExtended() != CEventDescriptorMouse::mousemove )
return false;
@@ -2699,7 +2701,7 @@ namespace NLGUI
e->setParent( NULL );
draggedElement = e;
-
+
return true;
}
@@ -2715,7 +2717,7 @@ namespace NLGUI
g = tw;
std::string oldid = e->getId();
-
+
e->setParent( g );
e->setIdRecurse( e->getShortId() );
e->setParentPos( g );
@@ -2730,7 +2732,7 @@ namespace NLGUI
onWidgetMoved( oldid, e->getId() );
}
}
-
+
// ------------------------------------------------------------------------------------------------
void CWidgetManager::movePointer (sint32 dx, sint32 dy)
{
@@ -3091,7 +3093,7 @@ namespace NLGUI
{
const SMasterGroup &mg = _MasterGroups[ i ];
- std::vector< CInterfaceGroup* >::size_type j;
+ std::vector< CInterfaceGroup* >::size_type j;
for( j = 0; j < mg.Group->getNumGroup(); j++ )
{
CInterfaceGroup *g = mg.Group->getGroup( j );
@@ -3106,8 +3108,8 @@ namespace NLGUI
return true;
}
-
-
+
+
// ***************************************************************************
void CWidgetManager::enableMouseHandling( bool handle )
{
@@ -3116,7 +3118,7 @@ namespace NLGUI
{
if(!getPointer())
return;
-
+
// If Left captured, reset
if( getCapturePointerLeft() )
setCapturePointerLeft( NULL );
@@ -3124,12 +3126,12 @@ namespace NLGUI
// Same for Right
if( getCapturePointerRight() )
setCapturePointerRight( NULL );
-
+
// Avoid any problem with modals
disableModalWindow();
}
}
-
+
// ***************************************************************************
uint CWidgetManager::getUserDblClickDelay()
{
@@ -3137,11 +3139,11 @@ namespace NLGUI
NLMISC::CCDBNodeLeaf *pNL = CDBManager::getInstance()->getDbProp("UI:SAVE:DOUBLE_CLICK_SPEED");
if( pNL != NULL )
nVal = pNL->getValue32();
-
+
uint dbclickDelay = (uint)(DOUBLE_CLICK_MIN + (DOUBLE_CLICK_MAX-DOUBLE_CLICK_MIN) * (float)nVal / 100.0f);
return dbclickDelay;
}
-
+
// ------------------------------------------------------------------------------------------------
void CWidgetManager::setupOptions()
{
@@ -3165,9 +3167,9 @@ namespace NLGUI
_SystemOptions[OptionTimeoutContext]= opt->getValue("context_timeout");
_SystemOptions[OptionTimeoutContextHtml]= opt->getValue("context_html_timeout");
}
-
+
}
-
+
// Get the alpha roll over speed
float CWidgetManager::getAlphaRolloverSpeed()
{
@@ -3181,7 +3183,7 @@ namespace NLGUI
{
_AlphaRolloverSpeedDB = NULL;
}
-
+
void CWidgetManager::setContainerAlpha(uint8 alpha)
{
_ContainerAlpha = alpha;
@@ -3376,11 +3378,11 @@ namespace NLGUI
void CWidgetManager::selectWidget( const std::string &name )
{
- std::vector< std::string >::iterator itr
+ std::vector< std::string >::iterator itr
= std::find( editorSelection.begin(), editorSelection.end(), name );
CInterfaceElement *e = getElementFromId( name );
-
+
if( itr != editorSelection.end() )
{
// If multiselection is on unselect if already selected
@@ -3405,7 +3407,7 @@ namespace NLGUI
e->setEditorSelected( true );
editorSelection.push_back( name );
}
-
+
}
notifySelectionWatchers();
@@ -3422,7 +3424,7 @@ namespace NLGUI
std::vector< IEditorSelectionWatcher* >::iterator itr = selectionWatchers.begin();
while( itr != selectionWatchers.end() )
{
- (*itr)->selectionChanged();
+ (*itr)->selectionChanged();
++itr;
}
}
@@ -3431,7 +3433,7 @@ namespace NLGUI
{
std::vector< IEditorSelectionWatcher* >::iterator itr =
std::find( selectionWatchers.begin(), selectionWatchers.end(), watcher );
-
+
// We already have this watcher
if( itr != selectionWatchers.end() )
return;
@@ -3443,7 +3445,7 @@ namespace NLGUI
{
std::vector< IEditorSelectionWatcher* >::iterator itr =
std::find( selectionWatchers.begin(), selectionWatchers.end(), watcher );
-
+
// We don't have this watcher
if( itr == selectionWatchers.end() )
return;
@@ -3473,7 +3475,7 @@ namespace NLGUI
void CWidgetManager::registerWidgetWatcher( IWidgetWatcher *watcher )
{
- std::vector< IWidgetWatcher* >::const_iterator itr
+ std::vector< IWidgetWatcher* >::const_iterator itr
= std::find( widgetWatchers.begin(), widgetWatchers.end(), watcher );
// already exists
if( itr != widgetWatchers.end() )
@@ -3524,7 +3526,7 @@ namespace NLGUI
g->addView( v );
onWidgetAdded( v->getId() );
-
+
return v;
}
@@ -3568,7 +3570,7 @@ namespace NLGUI
e->setParent( g );
e->setParentPos( g );
e->setParentSize( g );
- e->setIdRecurse( e->getShortId() );
+ e->setIdRecurse( e->getShortId() );
onWidgetMoved( oldId, e->getId() );
}
@@ -3580,9 +3582,9 @@ namespace NLGUI
g->alignElements();
// Align the new group to the top window
g->alignTo( getTopWindow() );
-
+
g->setActive( true );
-
+
return true;
}
@@ -3634,7 +3636,7 @@ namespace NLGUI
SMasterGroup mg;
mg.Group = root;
-
+
root->setIdRecurse( project );
root->setW( 1024 );
root->setH( 768 );
@@ -3666,7 +3668,7 @@ namespace NLGUI
VariableData v;
v.type = "sint32";
v.value = "255";
-
+
v.entry = "UI:SAVE:COLOR:R";
parser->setVariable( v );
@@ -3678,7 +3680,7 @@ namespace NLGUI
v.entry = "UI:SAVE:COLOR:A";
parser->setVariable( v );
-
+
return true;
}
diff --git a/code/nel/src/logic/logic_state_machine.cpp b/code/nel/src/logic/logic_state_machine.cpp
index 0edc7bd14..94a8c6587 100644
--- a/code/nel/src/logic/logic_state_machine.cpp
+++ b/code/nel/src/logic/logic_state_machine.cpp
@@ -49,7 +49,7 @@ void xmlCheckNodeName (xmlNodePtr &node, const char *nodeName)
// Make an error message
char tmp[512];
smprintf (tmp, 512, "LogicStateMachine STATE_MACHINE XML Syntax error in block line %d, node %s should be %s",
- (int)node->line, node->name, nodeName);
+ node ? (int)node->line:-1, node->name, nodeName);
nlinfo (tmp);
nlstop;
diff --git a/code/nel/src/misc/displayer.cpp b/code/nel/src/misc/displayer.cpp
index 57b3e09d4..e1738592c 100644
--- a/code/nel/src/misc/displayer.cpp
+++ b/code/nel/src/misc/displayer.cpp
@@ -700,6 +700,9 @@ void CMsgBoxDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *m
# endif
abort();
break;
+
+ default:
+ break;
}
// no more sent mail for crash
diff --git a/code/nel/src/pacs/global_retriever.cpp b/code/nel/src/pacs/global_retriever.cpp
index 115fac0e6..0b8d355df 100644
--- a/code/nel/src/pacs/global_retriever.cpp
+++ b/code/nel/src/pacs/global_retriever.cpp
@@ -784,7 +784,7 @@ bool NLPACS::CGlobalRetriever::buildInstance(const string &id, const NLMISC::C
const CRetrieverInstance &instance = makeInstance(retrieverId, 0, CVector(position));
// check make instance success
- if (&instance == NULL || instance.getInstanceId() == -1 || instance.getRetrieverId() != retrieverId)
+ if (instance.getInstanceId() == -1 || instance.getRetrieverId() != retrieverId)
return false;
// links new instance to its neighbors
diff --git a/code/ryzom/client/src/interface_v3/interface_manager.cpp b/code/ryzom/client/src/interface_v3/interface_manager.cpp
index 70be8abe4..a218d4de1 100644
--- a/code/ryzom/client/src/interface_v3/interface_manager.cpp
+++ b/code/ryzom/client/src/interface_v3/interface_manager.cpp
@@ -1950,8 +1950,14 @@ void CInterfaceManager::drawViews(NL3D::UCamera camera)
nlctassert(CHARACTERISTICS::NUM_CHARACTERISTICS==8);
for (uint i=0; igetDbProp(toString("SERVER:CHARACTER_INFO:CHARACTERISTICS%d:VALUE", i), false));
+ if (!_CurrentPlayerCharacLeaf[i])
+ _CurrentPlayerCharacLeaf[i] = NLGUI::CDBManager::getInstance()->getDbProp(toString("SERVER:CHARACTER_INFO:CHARACTERISTICS%d:VALUE", i), false);
+
+ NLMISC::CCDBNodeLeaf *node = NULL;
+
+ if (_CurrentPlayerCharacLeaf[i])
+ node = &*_CurrentPlayerCharacLeaf[i];
+
_CurrentPlayerCharac[i] = node ? node->getValue32() : 0;
}
diff --git a/code/ryzom/client/src/net_manager.cpp b/code/ryzom/client/src/net_manager.cpp
index ecadce14e..b238dbd55 100644
--- a/code/ryzom/client/src/net_manager.cpp
+++ b/code/ryzom/client/src/net_manager.cpp
@@ -923,7 +923,7 @@ void CInterfaceChatDisplayer::displayTell(/*TDataSetIndex senderIndex, */const u
bool windowVisible;
ucstring goodSenderName = CEntityCL::removeTitleAndShardFromName(senderName);
-
+
// The sender part is up to and including the first ":" after the goodSenderName
ucstring::size_type pos = finalString.find(goodSenderName);
pos = finalString.find(':', pos);
@@ -3288,7 +3288,7 @@ private:
contentStr = "";
i = digitStart;
}
- }
+ }
else if(contentStr.size()>=5 && contentStr[0]=='@' && contentStr[1]=='{' && contentStr[2]=='W')
{
uint i;
@@ -3883,30 +3883,67 @@ bool CNetManager::update()
CInterfaceManager *im = CInterfaceManager::getInstance();
if (im)
{
- CCDBNodeLeaf *node = m_PingLeaf ? &*m_PingLeaf
- : &*(m_PingLeaf = NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:PING", false));
- if (node)
- node->setValue32(getPing());
- node = m_UploadLeaf ? &*m_UploadLeaf
- : &*(m_UploadLeaf = NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:UPLOAD", false));
- if (node)
- node->setValue32((sint32)(getMeanUpload()*1024.f/8.f));
- node = m_DownloadLeaf ? &*m_DownloadLeaf
- : &*(m_DownloadLeaf = NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:DOWNLOAD", false));
- if (node)
- node->setValue32((sint32)(getMeanDownload()*1024.f/8.f));
- node = m_PacketLostLeaf ? &* m_PacketLostLeaf
- : &*(m_PacketLostLeaf = NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:PACKETLOST", false));
- if (node)
- node->setValue32((sint32)getMeanPacketLoss());
- node = m_ServerStateLeaf ? &*m_ServerStateLeaf
- : &*(m_ServerStateLeaf = NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:SERVERSTATE", false));
- if (node)
- node->setValue32((sint32)getConnectionState());
- node = m_ConnectionQualityLeaf ? &*m_ConnectionQualityLeaf
- : &*(m_ConnectionQualityLeaf = NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:CONNECTION_QUALITY", false));
- if (node)
- node->setValue32((sint32)getConnectionQuality());
+ CCDBNodeLeaf *node = NULL;
+
+ if (!m_PingLeaf)
+ m_PingLeaf = NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:PING", false);
+
+ if (m_PingLeaf)
+ {
+ node = &*m_PingLeaf;
+ if (node)
+ node->setValue32(getPing());
+ }
+
+ if (!m_UploadLeaf)
+ m_UploadLeaf = NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:UPLOAD", false);
+
+ if (m_UploadLeaf)
+ {
+ node = &*m_UploadLeaf;
+ if (node)
+ node->setValue32((sint32)(getMeanUpload()*1024.f/8.f));
+ }
+
+ if (!m_DownloadLeaf)
+ m_DownloadLeaf = NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:DOWNLOAD", false);
+
+ if (m_DownloadLeaf)
+ {
+ node = &*m_DownloadLeaf;
+ if (node)
+ node->setValue32((sint32)(getMeanDownload()*1024.f/8.f));
+ }
+
+ if (!m_PacketLostLeaf)
+ m_PacketLostLeaf = NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:PACKETLOST", false);
+
+ if (m_PacketLostLeaf)
+ {
+ node = &*m_PacketLostLeaf;
+ if (node)
+ node->setValue32((sint32)getMeanPacketLoss());
+ }
+
+ if (!m_ServerStateLeaf)
+ m_ServerStateLeaf = NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:SERVERSTATE", false);
+
+ if (m_ServerStateLeaf)
+ {
+ node = &*m_ServerStateLeaf;
+ if (node)
+ node->setValue32((sint32)getConnectionState());
+ }
+
+ if (!m_ConnectionQualityLeaf)
+ m_ConnectionQualityLeaf = NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:CONNECTION_QUALITY", false);
+
+ if (m_ConnectionQualityLeaf)
+ {
+ node = &*m_ConnectionQualityLeaf;
+ if (node)
+ node->setValue32((sint32)getConnectionQuality());
+ }
}
}
diff --git a/code/ryzom/client/src/sky_object.cpp b/code/ryzom/client/src/sky_object.cpp
index 9d4ada303..ad6b7615f 100644
--- a/code/ryzom/client/src/sky_object.cpp
+++ b/code/ryzom/client/src/sky_object.cpp
@@ -396,7 +396,7 @@ bool CSkyObject::setup(const CClientDate &date, const CClientDate &animationDate
for(uint k = 0; k < SKY_MAX_NUM_STAGE; ++k)
{
if (TexPanner[k].U != 0.f || TexPanner[k].V != 0.f ||
- OffsetUBitmap != NULL || OffsetVBitmap != NULL )
+ OffsetUBitmap[k] != NULL || OffsetVBitmap[k] != NULL )
{
//nlinfo("global date = %f", animTime);
// there's tex panning for that stage
diff --git a/code/ryzom/common/src/game_share/utils.h b/code/ryzom/common/src/game_share/utils.h
index 56ac05e0f..a93c68a4d 100644
--- a/code/ryzom/common/src/game_share/utils.h
+++ b/code/ryzom/common/src/game_share/utils.h
@@ -425,7 +425,8 @@ inline void CCallStackSingleton::setTopStackEntry(ICallStackEntry* newEntry)
inline void CCallStackSingleton::display(NLMISC::CLog *log)
{
nlassert(log!=NULL);
- getTopStackEntry()->displayStack(*log);
+ ICallStackEntry *entry = getTopStackEntry();
+ if (entry) entry->displayStack(*log);
log->displayNL("");
}
@@ -468,15 +469,13 @@ inline ICallStackEntry::~ICallStackEntry()
inline void ICallStackEntry::displayStack(NLMISC::CLog& log) const
{
// stop recursing when we reach a NULL object
- // (this is implemented in this way in order to ximplify call code)
- if (this==NULL)
- return;
+ // (this is implemented in this way in order to simplify call code)
// display this entry
displayEntry(log);
// recurse through call stack
- _Next->displayStack(log);
+ if (_Next) _Next->displayStack(log);
}