Exemple #1
0
void deinitialise_game (void)
{
	////////////////////////////////////////
	//
	// WARNING!	DEINITIALISATION ORDER IS CRITICAL.
	//
	// NOTE : 	MEMORY BLOCK SYSTEM CONSTRAINTS;
	//				DONT NOT USE REGISTER_EXIT_FUNCTION
	//				FOR DEINITIALISATION.
	//
	////////////////////////////////////////

	////////////////////////////////////////
	//
	// UPDATE FUNCTION LIST
	//
	////////////////////////////////////////

	deinitialise_update_function_list ();

	////////////////////////////////////////
	//
	// SAVE GAME OPTIONS FIRST
	//
	////////////////////////////////////////

	save_global_options_data ();

	////////////////////////////////////////
	//
	// SAVE PLAYER LIST
	//
	////////////////////////////////////////

	save_player_list ();

	////////////////////////////////////////
	//
	// DEINITIALISE MISSIONS
	//
	////////////////////////////////////////

	deinitialise_session_list ();

	////////////////////////////////////////
	//
	// DEINITIALISE AI SYSTEM
	//
	////////////////////////////////////////

	deinitialise_file_tag_system ();

	deinitialise_ai_system ();

	////////////////////////////////////////
	//
	// DEINITIALISE COMMS MANAGER
	//
	////////////////////////////////////////

	deinitialise_comms_manager ();

   deinitialise_comms ();

	////////////////////////////////////////
	//
	// INITIALISE LANGUAGE DATABASE
	//
	////////////////////////////////////////

	deinitialise_language_database ();

	////////////////////////////////////////
	//
	// DEINITIALISE 3D SYSTEM
	//
	////////////////////////////////////////

	deinitialise_application_3d_system ();

	////////////////////////////////////////
	//
	// DEINITIALISE SOUND SYSTEM
	//
	////////////////////////////////////////

	deinitialise_application_sound_system ();

	////////////////////////////////////////
	//
	// DEINITIALISE EVENT STACK
	//
	////////////////////////////////////////

	deinitialise_event_stack ();

	////////////////////////////////////////
	//
	// DEINITIALISE USER-INTERFACE
	//
	////////////////////////////////////////

	deinitialise_ui_system ();

	deinitialise_ui_font ();

	deinitialise_ui_objects ();

	////////////////////////////////////////
	//
	// DEINITIALISE CD PLAYER
	//
	////////////////////////////////////////

	release_cd_audio_device ();

	////////////////////////////////////////
	//
	// DEINITIALISE GRAPHICS FILES
	//
	////////////////////////////////////////

	mclose_all_graphics_files ();

	////////////////////////////////////////
	//
	// DEINITIALISE ENTITY SYSTEM
	//
	////////////////////////////////////////

	deinitialise_entity_system ();

	////////////////////////////////////////
	//
	// DEINITIALISE MEMORY BLOCK SYSTEM
	//
	////////////////////////////////////////

	display_memory_block_system_statistics ();

	deinitialise_memory_block_system ();

	check_safe_memory_counter ();

	check_safe_memory_mapped_file_counter ();
}
Exemple #2
0
void deinitialise_game (void)
{
	////////////////////////////////////////
	//
	// WARNING!	DEINITIALISATION ORDER IS CRITICAL.
	//
	// NOTE : 	MEMORY BLOCK SYSTEM CONSTRAINTS;
	//				DONT NOT USE REGISTER_EXIT_FUNCTION
	//				FOR DEINITIALISATION.
	//
	////////////////////////////////////////

	////////////////////////////////////////
	//
	// UPDATE FUNCTION LIST
	//
	////////////////////////////////////////

	deinitialise_update_function_list ();

	////////////////////////////////////////
	//
	// SAVE GAME OPTIONS FIRST
	//
	////////////////////////////////////////

	save_global_options_data ();

	////////////////////////////////////////
	//
	// SAVE PLAYER LIST
	//
	////////////////////////////////////////

	save_player_list ();

	////////////////////////////////////////
	//
	// DEINITIALISE MISSIONS
	//
	////////////////////////////////////////

	deinitialise_session_list ();

	////////////////////////////////////////
	//
	// DEINITIALISE AI SYSTEM
	//
	////////////////////////////////////////

	deinitialise_file_tag_system ();

	deinitialise_ai_system ();

	////////////////////////////////////////
	//
	// DEINITIALISE COMMS MANAGER
	//
	////////////////////////////////////////

	deinitialise_comms_manager ();

   deinitialise_comms ();

	//Werewolf
	net_uninit_heartbeat();

	////////////////////////////////////////
	//
	// INITIALISE LANGUAGE DATABASE
	//
	////////////////////////////////////////

	deinitialise_language_database ();

	////////////////////////////////////////
	//
	// DEINITIALISE 3D SYSTEM
	//
	////////////////////////////////////////

	deinitialise_application_3d_system ();

	////////////////////////////////////////
	//
	// DEINITIALISE SOUND SYSTEM
	//
	////////////////////////////////////////

	deinitialise_application_sound_system ();

	////////////////////////////////////////
	//
	// DEINITIALISE EVENT STACK
	//
	////////////////////////////////////////

	deinitialise_event_stack ();

	////////////////////////////////////////
	//
	// DEINITIALISE USER-INTERFACE
	//
	////////////////////////////////////////

	deinitialise_ui_system ();

	deinitialise_ui_font ();

	deinitialise_ui_objects ();

	////////////////////////////////////////
	//
	// DEINITIALISE CD PLAYER
	//
	////////////////////////////////////////

	release_cd_audio_device ();
	
	////////////////////////////////////////
	//
	// DEINITIALISE GRAPHICS FILES
	//
	////////////////////////////////////////

	mclose_all_graphics_files ();

	////////////////////////////////////////
	//
	// DEINITIALISE ENTITY SYSTEM
	//
	////////////////////////////////////////

	deinitialise_entity_system ();


	////////////////////////////////////////
	//
	// Retro 12Nov2004
	// TRACKIR, USERKEYMAPPING, CONTROLLERS
	//
	// hopefully the final resting place for that code..
	////////////////////////////////////////

	// By Retro.. 030318
	// ..if TrackIR is active, tell it to stop transmitting before closing down..
	if (query_TIR_active() == TRUE)
		ExitTrackIR();

	ShutdownAxisInformation();

	////////////////////////////////////////
	//
	// INIT SHARED MEM 
	//
	////////////////////////////////////////
	// Retro 8Mar2005 - 14Aug2006

	DeInitialise_Shared_Memory(); // we do this in any case, even if it was not set up..

	// arneh - delete the ballistics tables
	delete_ballistics_tables();

	////////////////////////////////////////
	//
	// DEINITIALISE MEMORY BLOCK SYSTEM
	//
	////////////////////////////////////////

	display_memory_block_system_statistics ();

	deinitialise_memory_block_system ();

	check_safe_memory_counter ();

	check_safe_memory_mapped_file_counter ();
}