//===========================================================================//
// File:	CameraShip_Tool.cpp									
//---------------------------------------------------------------------------//
//   Date    Who  Modification                                               //
// --------  ---  ---------------------------------------------------------- //
// 09/09/98  JSE  Inital base class based off of Shadowrun/Adept
//---------------------------------------------------------------------------//
// Copyright (C) 1998, Fasa Interactive										 //
// All Rights reserved worldwide                                             //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL               //
//===========================================================================//

#include "MW4Headers.hpp"

#include "CameraShip.hpp"
#include "MWTool.hpp"
#include <Adept\EntityManager.hpp>

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
	CameraShip__CreateMessage::ConstructCreateMessage(Script *script)
{
	Check_Object(script);
	#if defined(_ARMOR)
		int stack_level = Tool::Instance->GetStackLevel();
	#endif
	//Check_Object(Resource::ParentFileDependencies);

	//
	//--------------
	// Set up stream
	//--------------
	//
	MemoryStream *message_stream = script->messageStream;
	Check_Object(message_stream);
	message_stream->AllocateBytes(sizeof(CameraShip__CreateMessage));
	Entity__CreateMessage::ConstructCreateMessage(script);
	CameraShip__CreateMessage *message =
		Cast_Pointer(
			CameraShip__CreateMessage*,
			message_stream->GetPointer()
		);
	message->messageLength = sizeof(*message);


	Verify(stack_level == Tool::Instance->GetStackLevel());
}

void
	CameraShip::SaveInstanceText(Page *page)
{
	Check_Object(this);
	Check_Object(page);


	Entity::SaveInstanceText(page);
	//
	//-------------------------
	// Save the Execution State
	//-------------------------
	//
	int execution_state = executionState->GetState();
	MString execution_state_text;
	switch(execution_state)
	{
	case ExecutionStateEngine::CameraMotionState:
		{
			execution_state_text = "CameraMotionState";
			break;
		}
	}
	if (execution_state_text)
	{
		page->SetEntry("ExecutionState", execution_state_text);
	}

}
