//==========================================================================//
// File:	mode.cpp                                                           //
// Project: MUNGA           Brick: Controls Manager                         //
// Contents: Interface specification for Controls/Gauges                    //
//--------------------------------------------------------------------------//
//   Date    Who  Modification                                              //
// --------  ---  ----------------------------------------------------------//
// 02/13/96  CPB  First created                                             //
//--------------------------------------------------------------------------//
// Copyright (C) 1996, Virtual World Entertainment, Inc.                    //
// All Rights reserved worldwide                                            //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL              //
//==========================================================================//

#include <munga.hpp>
#pragma hdrstop

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

#if defined(DEBUG)
#	define Test_Tell(n) DEBUG_STREAM << n
#else
#	define Test_Tell(n)
#endif

//############################################################################
//############################    ModeManager    #############################
//############################################################################
ModeManager::ModeManager(ModeMask initial_mask)
{
	Check_Pointer(this);

	modeMask = initial_mask;

	Check_Fpu();
}

ModeManager::~ModeManager()
{
	Check(this);
	Check_Fpu();
}

Logical
	ModeManager::TestInstance() const
{
	Check_Fpu();
	return True;
}

Logical
	ModeManager::ModeStringLookup(
		const char *name,
		ModeMask *returned_value
	)
{
	Check(this);

	// There's only one mode value available at this level.

	if (stricmp(name, "ModeAlwaysActive") == 0)
	{
		*returned_value = ModeManager::ModeAlwaysActive;
		Check_Fpu();
		return True;
	}
	else
	{
		*returned_value = (ModeMask) 0;
	}
	Check_Fpu();
	return False;
}
