extensions/topmenus/TopMenu.cpp
changeset 1766 d30c252089be
parent 1699 4368f4cc417b
child 1947 e73a1e51833b
     1.1 --- a/extensions/topmenus/TopMenu.cpp	Wed Dec 05 15:38:45 2007 +0000
     1.2 +++ b/extensions/topmenus/TopMenu.cpp	Wed Dec 05 18:07:18 2007 +0000
     1.3 @@ -87,6 +87,29 @@
     1.4  	delete [] m_clients;
     1.5  }
     1.6  
     1.7 +unsigned int TopMenu::CalcMemUsage()
     1.8 +{
     1.9 +	unsigned int size = sizeof(TopMenu);
    1.10 +
    1.11 +	size += m_Config.strings.GetMemTable()->MemUsage();
    1.12 +	size += (m_Config.cats.size() * sizeof(int));
    1.13 +	size += (sizeof(topmenu_player_t) * m_max_clients);
    1.14 +	size += (m_SortedCats.size() * sizeof(unsigned int));
    1.15 +	size += (m_UnsortedCats.size() * sizeof(unsigned int));
    1.16 +	size += (m_Categories.size() * (sizeof(topmenu_category_t *) + sizeof(topmenu_category_t)));
    1.17 +	size += (m_Objects.size() * (sizeof(topmenu_object_t *) + sizeof(topmenu_object_t)));
    1.18 +	size += m_ObjLookup.mem_usage();
    1.19 +
    1.20 +	for (size_t i = 0; i < m_Categories.size(); i++)
    1.21 +	{
    1.22 +		size += m_Categories[i]->obj_list.size() * sizeof(topmenu_object_t *);
    1.23 +		size += m_Categories[i]->sorted.size() * sizeof(topmenu_object_t *);
    1.24 +		size += m_Categories[i]->unsorted.size() * sizeof(topmenu_object_t *);
    1.25 +	}
    1.26 +
    1.27 +	return size;
    1.28 +}
    1.29 +
    1.30  void TopMenu::OnClientConnected(int client)
    1.31  {
    1.32  	if (m_clients == NULL)