1.1 --- a/core/MenuStyle_Base.cpp Sun Jun 17 07:32:31 2007 +0000
1.2 +++ b/core/MenuStyle_Base.cpp Sun Jun 17 18:06:03 2007 +0000
1.3 @@ -18,6 +18,9 @@
1.4 #include "PlayerManager.h"
1.5 #include "MenuManager.h"
1.6 #include "HandleSys.h"
1.7 +#if defined MENU_DEBUG
1.8 +#include "Logger.h"
1.9 +#endif
1.10
1.11 BaseMenuStyle::BaseMenuStyle() : m_WatchList(256), m_hHandle(BAD_HANDLE)
1.12 {
1.13 @@ -36,16 +39,25 @@
1.14
1.15 void BaseMenuStyle::AddClientToWatch(int client)
1.16 {
1.17 +#if defined MENU_DEBUG
1.18 + g_Logger.LogMessage("[SM_MENU] AddClientToWatch(%d)", client);
1.19 +#endif
1.20 m_WatchList.push_back(client);
1.21 }
1.22
1.23 void BaseMenuStyle::RemoveClientFromWatch(int client)
1.24 {
1.25 +#if defined MENU_DEBUG
1.26 + g_Logger.LogMessage("[SM_MENU] RemoveClientFromWatch(%d)", client);
1.27 +#endif
1.28 m_WatchList.remove(client);
1.29 }
1.30
1.31 void BaseMenuStyle::_CancelClientMenu(int client, bool bAutoIgnore/* =false */, MenuCancelReason reason/* =MenuCancel_Interrupt */)
1.32 {
1.33 +#if defined MENU_DEBUG
1.34 + g_Logger.LogMessage("[SM_MENU] _CancelClientMenu() (client %d) (bAutoIgnore %d) (reason %d)", client, bAutoIgnore, reason);
1.35 +#endif
1.36 CBaseMenuPlayer *player = GetMenuPlayer(client);
1.37 menu_states_t &states = player->states;
1.38
1.39 @@ -83,6 +95,9 @@
1.40
1.41 void BaseMenuStyle::CancelMenu(CBaseMenu *menu)
1.42 {
1.43 +#if defined MENU_DEBUG
1.44 + g_Logger.LogMessage("[SM_MENU] CancelMenu() (menu %p)", menu);
1.45 +#endif
1.46 int maxClients = g_Players.GetMaxClients();
1.47 for (int i=1; i<=maxClients; i++)
1.48 {
1.49 @@ -100,6 +115,9 @@
1.50
1.51 bool BaseMenuStyle::CancelClientMenu(int client, bool autoIgnore)
1.52 {
1.53 +#if defined MENU_DEBUG
1.54 + g_Logger.LogMessage("[SM_MENU] CancelClientMenu() (client %d) (bAutoIgnore %d)", client, autoIgnore);
1.55 +#endif
1.56 if (client < 1 || client > g_Players.MaxClients())
1.57 {
1.58 return false;
1.59 @@ -153,6 +171,9 @@
1.60
1.61 void BaseMenuStyle::OnClientDisconnected(int client)
1.62 {
1.63 +#if defined MENU_DEBUG
1.64 + g_Logger.LogMessage("[SM_MENU] OnClientDisconnected(%d)", client);
1.65 +#endif
1.66 CBaseMenuPlayer *player = GetMenuPlayer(client);
1.67 if (!player->bInMenu)
1.68 {
1.69 @@ -179,6 +200,13 @@
1.70 do_lookup[total++] = (*iter);
1.71 }
1.72
1.73 +#if defined MENU_DEBUG
1.74 + if (total)
1.75 + {
1.76 + g_Logger.LogMessage("[SM_MENU] ProcessWatchList() found %d clients", total);
1.77 + }
1.78 +#endif
1.79 +
1.80 int client;
1.81 CBaseMenuPlayer *player;
1.82 float curTime = gpGlobals->curtime;
1.83 @@ -186,8 +214,19 @@
1.84 {
1.85 client = do_lookup[i];
1.86 player = GetMenuPlayer(client);
1.87 +#if defined MENU_DEBUG
1.88 + g_Logger.LogMessage("[SM_MENU] ProcessWatchList() (client %d) (bInMenu %d) (menuHoldTime %d) (curTime %f) (menuStartTime %f)",
1.89 + client,
1.90 + player->bInMenu,
1.91 + player->menuHoldTime,
1.92 + curTime,
1.93 + player->menuStartTime);
1.94 +#endif
1.95 if (!player->bInMenu || !player->menuHoldTime)
1.96 {
1.97 +#if defined MENU_DEBUG
1.98 + g_Logger.LogMessage("[SM_MENU] ProcessWatchList() removing client %d", client);
1.99 +#endif
1.100 m_WatchList.remove(client);
1.101 continue;
1.102 }
1.103 @@ -200,6 +239,9 @@
1.104
1.105 void BaseMenuStyle::ClientPressedKey(int client, unsigned int key_press)
1.106 {
1.107 +#if defined MENU_DEBUG
1.108 + g_Logger.LogMessage("[SM_MENU] ClientPressedKey() (client %d) (key_press %d)", client, key_press);
1.109 +#endif
1.110 CBaseMenuPlayer *player = GetMenuPlayer(client);
1.111
1.112 /* First question: Are we in a menu? */
1.113 @@ -275,6 +317,13 @@
1.114
1.115 bool BaseMenuStyle::DoClientMenu(int client, IMenuPanel *menu, IMenuHandler *mh, unsigned int time)
1.116 {
1.117 +#if defined MENU_DEBUG
1.118 + g_Logger.LogMessage("[SM_MENU] DoClientMenu() (client %d) (panel %p) (mh %p) (time %d)",
1.119 + client,
1.120 + menu,
1.121 + mh,
1.122 + time);
1.123 +#endif
1.124 CPlayer *pPlayer = g_Players.GetPlayerByIndex(client);
1.125 if (!pPlayer || pPlayer->IsFakeClient() || !pPlayer->IsInGame())
1.126 {
1.127 @@ -327,18 +376,21 @@
1.128
1.129 bool BaseMenuStyle::DoClientMenu(int client, CBaseMenu *menu, IMenuHandler *mh, unsigned int time)
1.130 {
1.131 +#if defined MENU_DEBUG
1.132 + g_Logger.LogMessage("[SM_MENU] DoClientMenu() (client %d) (menu %p) (mh %p) (time %d)",
1.133 + client,
1.134 + menu,
1.135 + mh,
1.136 + time);
1.137 +#endif
1.138 mh->OnMenuStart(menu);
1.139
1.140 - if (!mh)
1.141 - {
1.142 - mh->OnMenuCancel(menu, client, MenuCancel_NoDisplay);
1.143 - mh->OnMenuEnd(menu);
1.144 - return false;
1.145 - }
1.146 -
1.147 CPlayer *pPlayer = g_Players.GetPlayerByIndex(client);
1.148 if (!pPlayer || pPlayer->IsFakeClient() || !pPlayer->IsInGame())
1.149 {
1.150 +#if defined MENU_DEBUG
1.151 + g_Logger.LogMessage("[SM_MENU] DoClientMenu(): Failed to display to client %d", client);
1.152 +#endif
1.153 mh->OnMenuCancel(menu, client, MenuCancel_NoDisplay);
1.154 mh->OnMenuEnd(menu);
1.155 return false;
1.156 @@ -347,6 +399,9 @@
1.157 CBaseMenuPlayer *player = GetMenuPlayer(client);
1.158 if (player->bAutoIgnore)
1.159 {
1.160 +#if defined MENU_DEBUG
1.161 + g_Logger.LogMessage("[SM_MENU] DoClientMenu(): Client %d is autoIgnoring", client);
1.162 +#endif
1.163 mh->OnMenuCancel(menu, client, MenuCancel_NoDisplay);
1.164 mh->OnMenuEnd(menu);
1.165 return false;
1.166 @@ -363,6 +418,9 @@
1.167 menu_states_t &states = player->states;
1.168 if (player->bInMenu)
1.169 {
1.170 +#if defined MENU_DEBUG
1.171 + g_Logger.LogMessage("[SM_MENU] DoClientMenu(): Cancelling old menu to client %d", client);
1.172 +#endif
1.173 _CancelClientMenu(client, true);
1.174 }
1.175
1.176 @@ -375,6 +433,9 @@
1.177 IMenuPanel *display = g_Menus.RenderMenu(client, states, ItemOrder_Ascending);
1.178 if (!display)
1.179 {
1.180 +#if defined MENU_DEBUG
1.181 + g_Logger.LogMessage("[SM_MENU] DoClientMenu(): Failed to render to client %d", client);
1.182 +#endif
1.183 player->bAutoIgnore = false;
1.184 player->bInMenu = false;
1.185 mh->OnMenuCancel(menu, client, MenuCancel_NoDisplay);
1.186 @@ -402,11 +463,18 @@
1.187 /* We can be interrupted again! */
1.188 player->bAutoIgnore = false;
1.189
1.190 +#if defined MENU_DEBUG
1.191 + g_Logger.LogMessage("[SM_MENU] DoClientMenu() finished successfully (client %d)", client);
1.192 +#endif
1.193 +
1.194 return true;
1.195 }
1.196
1.197 bool BaseMenuStyle::RedoClientMenu(int client, ItemOrder order)
1.198 {
1.199 +#if defined MENU_DEBUG
1.200 + g_Logger.LogMessage("[SM_MENU] RedoClientMenu() (client %d) (order %d)", client, order);
1.201 +#endif
1.202 CBaseMenuPlayer *player = GetMenuPlayer(client);
1.203 menu_states_t &states = player->states;
1.204
1.205 @@ -414,6 +482,9 @@
1.206 IMenuPanel *display = g_Menus.RenderMenu(client, states, order);
1.207 if (!display)
1.208 {
1.209 +#if defined MENU_DEBUG
1.210 + g_Logger.LogMessage("[SM_MENU] RedoClientMenu(): Failed to render menu");
1.211 +#endif
1.212 if (player->menuHoldTime)
1.213 {
1.214 RemoveClientFromWatch(client);
1.215 @@ -428,6 +499,10 @@
1.216
1.217 player->bAutoIgnore = false;
1.218
1.219 +#if defined MENU_DEBUG
1.220 + g_Logger.LogMessage("[SM_MENU] RedoClientMenu(): Succeeded to client %d", client);
1.221 +#endif
1.222 +
1.223 return true;
1.224 }
1.225
1.226 @@ -598,6 +673,14 @@
1.227 return;
1.228 }
1.229
1.230 +#if defined MENU_DEBUG
1.231 + g_Logger.LogMessage("[SM_MENU] CBaseMenu::Cancel(%p) (m_pVote %p) (inVote %d) (m_bShouldDelete %d)",
1.232 + this,
1.233 + m_pVoteHandler,
1.234 + m_pVoteHandler ? m_pVoteHandler->IsVoteInProgress() : false,
1.235 + m_bShouldDelete);
1.236 +#endif
1.237 +
1.238 if (m_pVoteHandler && m_pVoteHandler->IsVoteInProgress())
1.239 {
1.240 m_pVoteHandler->CancelVoting();
1.241 @@ -621,6 +704,14 @@
1.242 return;
1.243 }
1.244
1.245 +#if defined MENU_DEBUG
1.246 + g_Logger.LogMessage("[SM_MENU] CBaseMenu::Destroy(%p) (release %d) (m_bCancelling %d) (m_bShouldDelete %d)",
1.247 + this,
1.248 + releaseHandle,
1.249 + m_bCancelling,
1.250 + m_bShouldDelete);
1.251 +#endif
1.252 +
1.253 /* Save the destruction hint about our handle */
1.254 m_bWillFreeHandle = releaseHandle;
1.255
1.256 @@ -659,6 +750,14 @@
1.257 unsigned int maxTime,
1.258 unsigned int flags)
1.259 {
1.260 +#if defined MENU_DEBUG
1.261 + g_Logger.LogMessage("[SM_MENU] CBaseMenu::BroadcastVote(%p) (maxTime %d) (numClients %d) (m_pVote %p) (inVote %d)",
1.262 + this,
1.263 + maxTime,
1.264 + numClients,
1.265 + m_pVoteHandler,
1.266 + m_pVoteHandler ? m_pVoteHandler->IsVoteInProgress() : false);
1.267 +#endif
1.268 if (!m_pVoteHandler)
1.269 {
1.270 m_pVoteHandler = g_Menus.CreateVoteWrapper(m_pHandler);