1.1 --- a/core/MenuStyle_Base.cpp Sat Aug 31 11:50:11 2013 -0700
1.2 +++ b/core/MenuStyle_Base.cpp Sat Aug 31 11:50:28 2013 -0700
1.3 @@ -1,5 +1,5 @@
1.4 /**
1.5 - * vim: set ts=4 :
1.6 + * vim: set ts=4 sw=4 tw=99 noet :
1.7 * =============================================================================
1.8 * SourceMod
1.9 * Copyright (C) 2004-2008 AlliedModders LLC. All rights reserved.
1.10 @@ -604,7 +604,7 @@
1.11 }
1.12
1.13 CBaseMenu::CBaseMenu(IMenuHandler *pHandler, IMenuStyle *pStyle, IdentityToken_t *pOwner) :
1.14 -m_pStyle(pStyle), m_Strings(512), m_Pagination(7), m_bShouldDelete(false), m_bCancelling(false),
1.15 +m_pStyle(pStyle), m_Pagination(7), m_bShouldDelete(false), m_bCancelling(false),
1.16 m_pOwner(pOwner ? pOwner : g_pCoreIdent), m_bDeleting(false), m_bWillFreeHandle(false),
1.17 m_hHandle(BAD_HANDLE), m_pHandler(pHandler), m_nFlags(MENUFLAG_BUTTON_EXIT)
1.18 {
1.19 @@ -627,94 +627,74 @@
1.20 bool CBaseMenu::AppendItem(const char *info, const ItemDrawInfo &draw)
1.21 {
1.22 if (m_Pagination == (unsigned)MENU_NO_PAGINATION
1.23 - && m_items.size() >= m_pStyle->GetMaxPageItems())
1.24 + && m_items.length() >= m_pStyle->GetMaxPageItems())
1.25 {
1.26 return false;
1.27 }
1.28
1.29 CItem item;
1.30
1.31 - item.infoString = m_Strings.AddString(info);
1.32 + item.info = info;
1.33 if (draw.display)
1.34 - {
1.35 - item.displayString = m_Strings.AddString(draw.display);
1.36 - }
1.37 + item.display = draw.display;
1.38 item.style = draw.style;
1.39
1.40 - m_items.push_back(item);
1.41 -
1.42 + m_items.append(item);
1.43 return true;
1.44 }
1.45
1.46 bool CBaseMenu::InsertItem(unsigned int position, const char *info, const ItemDrawInfo &draw)
1.47 {
1.48 - if (m_Pagination == (unsigned)MENU_NO_PAGINATION
1.49 - && m_items.size() >= m_pStyle->GetMaxPageItems())
1.50 - {
1.51 - return false;
1.52 - }
1.53 -
1.54 - if (position >= m_items.size())
1.55 + if (m_Pagination == (unsigned)MENU_NO_PAGINATION &&
1.56 + m_items.length() >= m_pStyle->GetMaxPageItems())
1.57 {
1.58 return false;
1.59 }
1.60
1.61 + if (position >= m_items.length())
1.62 + return false;
1.63 +
1.64 CItem item;
1.65 - item.infoString = m_Strings.AddString(info);
1.66 + item.info = info;
1.67 if (draw.display)
1.68 - {
1.69 - item.displayString = m_Strings.AddString(draw.display);
1.70 - }
1.71 + item.display = draw.display;
1.72 item.style = draw.style;
1.73
1.74 - CVector<CItem>::iterator iter = m_items.iterAt(position);
1.75 - m_items.insert(iter, item);
1.76 -
1.77 + m_items.insert(position, item);
1.78 return true;
1.79 }
1.80
1.81 bool CBaseMenu::RemoveItem(unsigned int position)
1.82 {
1.83 - if (position >= m_items.size())
1.84 - {
1.85 + if (position >= m_items.length())
1.86 return false;
1.87 - }
1.88
1.89 - m_items.erase(m_items.iterAt(position));
1.90 -
1.91 - if (m_items.size() == 0)
1.92 - {
1.93 - m_Strings.Reset();
1.94 - }
1.95 -
1.96 + m_items.remove(position);
1.97 return true;
1.98 }
1.99
1.100 void CBaseMenu::RemoveAllItems()
1.101 {
1.102 m_items.clear();
1.103 - m_Strings.Reset();
1.104 }
1.105
1.106 const char *CBaseMenu::GetItemInfo(unsigned int position, ItemDrawInfo *draw/* =NULL */)
1.107 {
1.108 - if (position >= m_items.size())
1.109 - {
1.110 + if (position >= m_items.length())
1.111 return NULL;
1.112 - }
1.113
1.114 if (draw)
1.115 {
1.116 - draw->display = m_Strings.GetString(m_items[position].displayString);
1.117 + draw->display = m_items[position].display.chars();
1.118 draw->style = m_items[position].style;
1.119 }
1.120
1.121 - return m_Strings.GetString(m_items[position].infoString);
1.122 + return m_items[position].info.chars();
1.123 }
1.124
1.125 unsigned int CBaseMenu::GetItemCount()
1.126 {
1.127 - return m_items.size();
1.128 + return m_items.length();
1.129 }
1.130
1.131 bool CBaseMenu::SetPagination(unsigned int itemsPerPage)
1.132 @@ -747,12 +727,12 @@
1.133
1.134 void CBaseMenu::SetDefaultTitle(const char *message)
1.135 {
1.136 - m_Title.assign(message);
1.137 + m_Title = message;
1.138 }
1.139
1.140 const char *CBaseMenu::GetDefaultTitle()
1.141 {
1.142 - return m_Title.c_str();
1.143 + return m_Title.chars();
1.144 }
1.145
1.146 void CBaseMenu::Cancel()
1.147 @@ -844,7 +824,5 @@
1.148
1.149 unsigned int CBaseMenu::GetBaseMemUsage()
1.150 {
1.151 - return m_Title.size()
1.152 - + m_Strings.GetMemTable()->GetMemUsage()
1.153 - + (m_items.size() * sizeof(CItem));
1.154 + return m_Title.length() + (m_items.length() * sizeof(CItem));
1.155 }