#include "munga.h"
#pragma hdrstop

#include "mode.h"

#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;
}
