core/MenuStyle_Base.cpp
changeset 970 b47becc0083d
parent 959 f0231833e6ec
child 997 2fc3152c3118
     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);