Merge with develop

This commit is contained in:
kervala 2015-11-06 15:49:55 +01:00
parent de42e97fca
commit 4d3aa59507
10 changed files with 130 additions and 77 deletions

View file

@ -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

View file

@ -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);
}

View file

@ -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;
}

View file

@ -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;

View file

@ -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

View file

@ -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

View file

@ -1950,8 +1950,14 @@ void CInterfaceManager::drawViews(NL3D::UCamera camera)
nlctassert(CHARACTERISTICS::NUM_CHARACTERISTICS==8);
for (uint i=0; i<CHARACTERISTICS::NUM_CHARACTERISTICS; ++i)
{
NLMISC::CCDBNodeLeaf *node = _CurrentPlayerCharacLeaf[i] ? &*_CurrentPlayerCharacLeaf[i]
: &*(_CurrentPlayerCharacLeaf[i] = NLGUI::CDBManager::getInstance()->getDbProp(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;
}

View file

@ -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());
}
}
}

View file

@ -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

View file

@ -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);
}