view LightClone/Source/Program.cpp @ 75:57c0ce406a68 tip

Add main menu
author koryspansel <koryspansel@bendbroadband.com>
date Tue, 18 Oct 2011 17:08:17 -0700
parents 95677f648a2c
children
line wrap: on
line source

/*
 * Program
 */

#include "Program.h"
#include "Compiler.h"

/*
 * Program
 */
Program::Program()
{
}

/*
 * Initialize
 */
ErrorCode Program::Initialize()
{
	return Clear(), Error_Success;
}

/*
 * Terminate
 */
void Program::Terminate()
{
}

/*
 * SetAction
 */
void Program::SetAction(uint32 nFunction, uint32 nIndex, uint32 nAction)
{
	if(nFunction < MaximumFunctionCount && nIndex < MaximumInstructionCount)
	{
		kFunction[nFunction].nInstruction[nIndex] = nAction;
	}
}

/*
 * GetAction
 */
uint32 Program::GetAction(uint32 nFunction, uint32 nIndex) const
{
	return (nFunction < MaximumFunctionCount && nIndex < MaximumInstructionCount) ? kFunction[nFunction].nInstruction[nIndex] : 0;
}

/*
 * Clear
 */
void Program::Clear()
{
	for(uint32 i = 0; i < MaximumFunctionCount; ++i)
	{
		for(uint32 j = 0; j < MaximumInstructionCount; ++j)
		{
			kFunction[i].nInstruction[j] = Action_None;
		}
	}
}

/*
 * Upload
 */
ErrorCode Program::Upload(VirtualMachine& kMachine) const
{
	kMachine.Reset();
	kMachine.Clear();

	Compiler kCompiler;
	return kCompiler.Compile(*this, kMachine.GetMemoryPointer(), kMachine.GetMemorySize());

}