//===========================================================================//
// File:	rpl4mode.hpp                                                        //
// Project: Battletech                                                       //
// Contents: RPL4 controls                                                   //
//---------------------------------------------------------------------------//
//   Date    Who  Modification                                               //
// --------  ---  ---------------------------------------------------------- //
// 03/08/96  CPB  Created from BRL4MODE.HPP                                  //
//---------------------------------------------------------------------------//
// Copyright (C) 1996, Virtual World Entertainment, Inc.                     //
// All Rights reserved worldwide                                             //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL               //
//===========================================================================//

#if !defined(RPL4MODE_HPP)
#	define RPL4MODE_HPP

#	if !defined(MODE_HPP)
#		include <mode.hpp>
#	endif


	//#########################################################################
	//########################## RPL4ControlsManager ##########################
	//#########################################################################
	class RPL4ModeManager:
		public ModeManager
	{
	public:
		enum
		{
		};
		//-------------------------------------------------------------------
		// Construction/destruction/verification
		//-------------------------------------------------------------------
	public:
		RPL4ModeManager(ModeMask initial_mask):
			ModeManager(initial_mask)
				{}

		//-------------------------------------------------------------------
		// Mode control
		//-------------------------------------------------------------------
		enum
		{
			ModeNonConfigBit = ModeManager::nextModeBit,
			ModeConfigReadyBit,
			ModeConfigOnBit,
			ModePreset1Bit,
			ModePreset2Bit,
			ModePreset3Bit,
			ModePreset4Bit,
			ModePreset5Bit,
			ModePreset6Bit,

			ModeBasicBit,
			ModeStandardBit,

			ModeIntercomBit
		};
		enum
		{
			ModePreset1     = 1L<<ModePreset1Bit,
			ModePreset2     = 1L<<ModePreset2Bit,
			ModePreset3     = 1L<<ModePreset3Bit,
			ModePreset4     = 1L<<ModePreset4Bit,
			ModePreset5     = 1L<<ModePreset5Bit,
			ModePreset6     = 1L<<ModePreset6Bit,
			ModeNonConfig   = 1L<<ModeNonConfigBit,
			ModeConfigReady = 1L<<ModeConfigReadyBit,
			ModeConfigOn    = 1L<<ModeConfigOnBit,

			ModeBasic    = 1L<<ModeBasicBit,
			ModeStandard = 1L<<ModeStandardBit,

			ModeIntercom  = 1L<<ModeIntercomBit
		};

		// Handy combinations
		enum
		{
			ModeConfiguring =
				ModeConfigReady | ModeConfigOn,

			ModeAllNonConfig =
				ModePreset1 | ModePreset2 | ModePreset3 |
				ModePreset4 | ModePreset5 | ModePreset6 |
				ModeNonConfig,

			ModeInitial = ModeNonConfig | ModeBasic
		};

		Logical		// defined as virtual in MODE.HPP
			ModeStringLookup(const char *name, ModeMask *returned_value);
	};
#endif


