* Add OnServerHibernationUpdate forward (closes #1483) * Clarify hibernation state * make it 2 forwards instead of 1 --------- Co-authored-by: Odin Landers <ojl9576@rit.edu>
This commit is contained in:
		
							parent
							
								
									908ffdb523
								
							
						
					
					
						commit
						e60c672485
					
				| @ -59,6 +59,8 @@ bool g_OnMapStarted = false; | |||||||
| IForward *PreAdminCheck = NULL; | IForward *PreAdminCheck = NULL; | ||||||
| IForward *PostAdminCheck = NULL; | IForward *PostAdminCheck = NULL; | ||||||
| IForward *PostAdminFilter = NULL; | IForward *PostAdminFilter = NULL; | ||||||
|  | IForward *ServerEnterHibernation = NULL; | ||||||
|  | IForward *ServerExitHibernation = NULL; | ||||||
| 
 | 
 | ||||||
| const unsigned int *g_NumPlayersToAuth = NULL; | const unsigned int *g_NumPlayersToAuth = NULL; | ||||||
| int lifestate_offset = -1; | int lifestate_offset = -1; | ||||||
| @ -203,6 +205,8 @@ void PlayerManager::OnSourceModAllInitialized() | |||||||
| 	PreAdminCheck = forwardsys->CreateForward("OnClientPreAdminCheck", ET_Event, 1, p1); | 	PreAdminCheck = forwardsys->CreateForward("OnClientPreAdminCheck", ET_Event, 1, p1); | ||||||
| 	PostAdminCheck = forwardsys->CreateForward("OnClientPostAdminCheck", ET_Ignore, 1, p1); | 	PostAdminCheck = forwardsys->CreateForward("OnClientPostAdminCheck", ET_Ignore, 1, p1); | ||||||
| 	PostAdminFilter = forwardsys->CreateForward("OnClientPostAdminFilter", ET_Ignore, 1, p1); | 	PostAdminFilter = forwardsys->CreateForward("OnClientPostAdminFilter", ET_Ignore, 1, p1); | ||||||
|  | 	ServerEnterHibernation = forwardsys->CreateForward("OnServerEnterHibernation", ET_Ignore, 0, NULL); | ||||||
|  | 	ServerExitHibernation = forwardsys->CreateForward("OnServerExitHibernation", ET_Ignore, 0, NULL); | ||||||
| 
 | 
 | ||||||
| 	m_bIsListenServer = !engine->IsDedicatedServer(); | 	m_bIsListenServer = !engine->IsDedicatedServer(); | ||||||
| 	m_ListenClient = 0; | 	m_ListenClient = 0; | ||||||
| @ -254,6 +258,8 @@ void PlayerManager::OnSourceModShutdown() | |||||||
| 	forwardsys->ReleaseForward(PreAdminCheck); | 	forwardsys->ReleaseForward(PreAdminCheck); | ||||||
| 	forwardsys->ReleaseForward(PostAdminCheck); | 	forwardsys->ReleaseForward(PostAdminCheck); | ||||||
| 	forwardsys->ReleaseForward(PostAdminFilter); | 	forwardsys->ReleaseForward(PostAdminFilter); | ||||||
|  | 	forwardsys->ReleaseForward(ServerEnterHibernation); | ||||||
|  | 	forwardsys->ReleaseForward(ServerExitHibernation); | ||||||
| 
 | 
 | ||||||
| 	delete [] m_Players; | 	delete [] m_Players; | ||||||
| 
 | 
 | ||||||
| @ -778,6 +784,11 @@ void PlayerManager::OnSourceModLevelEnd() | |||||||
| 
 | 
 | ||||||
| void PlayerManager::OnServerHibernationUpdate(bool bHibernating) | void PlayerManager::OnServerHibernationUpdate(bool bHibernating) | ||||||
| { | { | ||||||
|  | 	cell_t res; | ||||||
|  | 	if (bHibernating) | ||||||
|  | 		ServerEnterHibernation->Execute(&res); | ||||||
|  | 	else | ||||||
|  | 		ServerExitHibernation->Execute(&res); | ||||||
| 	/* If bots were added at map start, but not fully inited before hibernation, there will
 | 	/* If bots were added at map start, but not fully inited before hibernation, there will
 | ||||||
| 	 * be no OnClientDisconnect for them, despite them getting booted right before this. | 	 * be no OnClientDisconnect for them, despite them getting booted right before this. | ||||||
| 	 */ | 	 */ | ||||||
|  | |||||||
| @ -215,6 +215,18 @@ forward Action OnClientPreAdminCheck(int client); | |||||||
|  */ |  */ | ||||||
| forward void OnClientPostAdminFilter(int client); | forward void OnClientPostAdminFilter(int client); | ||||||
| 
 | 
 | ||||||
|  | /** | ||||||
|  |  * Called directly before the server enters hibernation. | ||||||
|  |  * This is your last chance to do anything in the plugin before | ||||||
|  |  * hibernation occurs, as SV_Frame will no longer be called. | ||||||
|  |  */ | ||||||
|  | forward void OnServerEnterHibernation(); | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Called directly before the server leaves hibernation. | ||||||
|  |  */ | ||||||
|  | forward void OnServerExitHibernation(); | ||||||
|  | 
 | ||||||
| /** | /** | ||||||
|  * Called once a client is authorized and fully in-game, and  |  * Called once a client is authorized and fully in-game, and  | ||||||
|  * after all post-connection authorizations have been performed.   |  * after all post-connection authorizations have been performed.   | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user