diff LightClone/Source/World.cpp @ 37:58a16d529d95

Refactoring code and adding events for drag and drop
author koryspansel <koryspansel@bendbroadband.com>
date Wed, 21 Sep 2011 20:30:29 -0700
parents b60cbf3fa894
children 2caa7c7e2cb5
line wrap: on
line diff
--- a/LightClone/Source/World.cpp	Wed Sep 21 12:18:15 2011 -0700
+++ b/LightClone/Source/World.cpp	Wed Sep 21 20:30:29 2011 -0700
@@ -13,10 +13,9 @@
  */
 World::World()
 {
-	nGameState				= GameState_Active;
-	nSimulationState		= SimulationState_Idle;
-	pFunction				= 0;
-	nCurrentLevel			= 0;
+	nGameState			= GameState_Active;
+	nSimulationState	= SimulationState_Idle;
+	nCurrentLevel		= 0;
 }
 
 /*
@@ -37,7 +36,7 @@
 			eCode = kBot.Initialize(pResourceManager);
 			if(eCode == Error_Success)
 			{
-				//eCode = kProgram.Initialize(pResourceManager);
+				eCode = kProgram.Initialize();
 				if(eCode == Error_Success)
 				{
 					eCode = InitializeInterface(pResourceManager);				
@@ -60,7 +59,7 @@
 void World::Terminate()
 {
 	kInterface.Terminate();
-	//kProgram.Terminate();
+	kProgram.Terminate();
 	kBot.Terminate();
 	kEnvironment.Terminate();
 }
@@ -97,12 +96,6 @@
 	ErrorCode eCode = kLoader.Load(pName);
 	if(eCode == Error_Success)
 	{
-		if(pFunction)
-		{
-			delete[] pFunction;
-			pFunction = NULL;
-		}
-
 		const Size& kSize = kLoader.GetSize();
 
 		eCode = kEnvironment.Setup(kSize.X, kSize.Y);
@@ -118,28 +111,8 @@
 			}
 
 			kBot.Setup(&kEnvironment);
-			kBot.kPosition	= kLoader.GetInitialPosition();
-			kBot.kDirection	= kLoader.GetInitialDirection();
-
-			const uint32 nCount = 2;//kLoader.GetFunctionCount();
-
-			pFunction = new Code[nCount + 1];
-			pFunction[0].Initialize(MainFunctionLength);
-			pFunction[0].Clear();
-
-			for(uint32 i = 0; i < nCount; ++i)
-			{
-				const uint32 nLength = kLoader.GetFunctionLength(i);
-
-				pFunction[i + 1].Initialize(nLength);
-				pFunction[i + 1].Clear();
-			}
-
-			for(uint32 i = 0; i < nCount; ++i)
-			{
-				//kProgram.Initialize(i, kLoader.GetFunctionLength(i));
-				//kProgram.Clear(i);
-			}
+			kBot.SetPosition(kLoader.GetInitialPosition());
+			kBot.SetDirection(kLoader.GetInitialDirection());
 		}
 	}
 
@@ -147,35 +120,6 @@
 }
 
 /*
- * ResetEnvironment
- */
-void World::ResetEnvironment()
-{
-	kEnvironment.Reset();
-}
-
-/*
- * ResetBot
- */
-void World::ResetBot()
-{
-	kBot.Reset();
-	kBot.kPosition	= kLoader.GetInitialPosition();
-	kBot.kDirection	= kLoader.GetInitialDirection();
-}
-
-/*
- * ResetCode
- */
-void World::ClearCode()
-{
-	for(uint32 i = 0; i < kLoader.GetFunctionCount(); ++i)
-	{
-		pFunction[i].Clear();
-	}
-}
-
-/*
  * Update
  */
 void World::Update(float fElapsed)
@@ -478,10 +422,13 @@
 {
 	if(nSimulationState == SimulationState_Idle)
 	{
-		ResetEnvironment();
-		ResetBot();
+		kEnvironment.Reset();
 
-		kBot.Upload(pFunction, kLoader.GetFunctionCount() + 1);
+		kBot.Reset();
+		kBot.SetPosition(kLoader.GetInitialPosition());
+		kBot.SetDirection(kLoader.GetInitialDirection());
+
+		kProgram.Upload(kBot.GetVirtualMachine());
 
 		nSimulationState = SimulationState_Active;
 	}
@@ -494,8 +441,11 @@
 {
 	if(nSimulationState == SimulationState_Active)
 	{
-		ResetEnvironment();
-		ResetBot();
+		kEnvironment.Reset();
+
+		kBot.Reset();
+		kBot.SetPosition(kLoader.GetInitialPosition());
+		kBot.SetDirection(kLoader.GetInitialDirection());
 
 		nSimulationState = SimulationState_Idle;
 	}
@@ -506,6 +456,8 @@
  */
 void World::OnReset(GuiEventArguments& kArguments)
 {
+	kProgram.Clear();
+
 	pMain->Clear();
 	pFunctionA->Clear();
 	pFunctionB->Clear();