Mercurial > LightClone
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();